Support
DM me on Spigot for now.
What Is Kojin?
Kojin is named after a figure of Japanese mythology, named Kōjin - a god associated with powerful, purifying forces. According to legend, he was responsible for watching over households and ensuring misdeeds were punished appropriately.
Kojin is a modern punishment management solution for your Minecraft server, currently built to run on standalone Spigot servers, but full Bungee/Network support is planned in a Premium version.
Features
[Coming Soon]
Warning
Kojin is still in an alpha stage, although I'm rapidly developing it. I cannot guarantee it is without bugs at this time, although my testing has not revealed any.
There is one inefficiency if you delete player data from your server, but that will be fixed in a later update.
Commands & Permissions
Storage:
# SQLite (.db file in the Sorcery folder) or MySQL (if you have a MySQL server)
# If you have a server of another SQL implementation (e.g. Postgres, MariaDB) then choose MySQL and it will still probably work
# If you don't know what you're doing and only have a single server, just leave it as SQLite.
Use: SQLite
# This is only used if you choose to use MySQL
SQL-Info:
Address: 'localhost'
Port: '3306'
Database: 'schema'
Username: 'admin'
Password: 'password'
Settings:
# If a Punishment is given without a reason, what should show?
Default-Reason: 'Unspecified'
Ban:
# What message should be given to the banned player? (This is the ban screen)
Punished-Message: |
&f[&4Kojin&f] &cYou are permanently banned.
&cReason: &6<reason>
# What message should be given to the punisher? (typically a staff member or the console)
Punisher-Message: |
&f[&4Kojin&f] You have &cpermanently banned &6<player>&f.
&cReason: &6<reason>
Unban:
# What message should be given to the unbanner? (typically a staff member or the console)
Punisher-Message: '&f[&4Kojin&f] You have &aunbanned &6<player>&f.'
Temp-Ban:
# What message should be given to the banned player? (This is the ban screen)
Punished-Message: |
&f[&4Kojin&f] &cYou are temporarily banned.
&cReason: &6<reason>
&cExpires: &6<time>
# What message should be given to the punisher? (typically a staff member or the console)
Punisher-Message: |
&f[&4Kojin&f] You have &ctemporarily banned &6<player>&f.
&cReason: &6<reason>
&cExpires: &6<time>
IP-Ban:
# What message should be given to the banned player? (This is the ban screen)
Punished-Message: |
&f[&4Kojin&f] &cYou are permanently ip-banned.
&cReason: &6<reason>
# What message should be given to the punisher? (typically a staff member or the console)
Punisher-Message: |
&f[&4Kojin&f] You have &cpermanently ip-banned &6<player>&f.
&cIP: &6<ip>
&cReason: &6<reason>
IP-Unban:
# What message should be given to the unbanner? (typically a staff member or the console)
Punisher-Message: '&f[&4Kojin&f] You have &aunbanned &6<player>''s IP (<ip>)&f.'
Mute:
# What message should be given to the muted player?
Punished-Message: |
&f[&4Kojin&f] &cYou are permanently muted.
&cReason: &6<reason>
# What message should be given to the punisher? (typically a staff member or the console)
Punisher-Message: |
&f[&4Kojin&f] You have &cpermanently muted &6<player>&f.
&cReason: &6<reason>
Unmute:
# What message should be given to the unmuted player?
Punished-Message: '&f[&4Kojin&f] You have been &aunmuted&f.'
# What message should be given to the unmuter? (typically a staff member or the console)
Punisher-Message: '&f[&4Kojin&f] You have &aunmuted &6<player>&f.'
Temp-Mute:
# What message should be given to the muted player?
Punished-Message: |
&f[&4Kojin&f] &cYou are temporarily muted.
&cReason: &6<reason>
&cExpires: &6<time>
# What message should be given to the punisher? (typically a staff member or the console)
Punisher-Message: |
&f[&4Kojin&f] You have &ctemporarily muted &6<player>&f.
&cReason: &6<reason>
&cExpires: &6<time>
Kick:
# What message should be given to the kicked player? (This is the kick screen)
Punished-Message: |
&f[&4Kojin&f] &cYou were kicked.
&cReason: &6<reason>
# What message should be given to the punisher? (typically a staff member or the console)
Punisher-Message: |
&f[&4Kojin&f] You have &ckicked &6<player>&f.
&cReason: &6<reason>
# What ongoing punishments look like in /kojin history
History-Format-Active: |
&f[&c<type>&f] - &4&lACTIVE
&fReason: &e<reason>
&fCreated At: &e<created>
&fExpires: &e<expiry>
&fPunisher: &e<punisher>
# What expired punishments look like in /kojin history
History-Format-Expired: |
&f[&c<type>&f] - &7&lEXPIRED
&fReason: &e<reason>
&fCreated At: &e<created>
&fExpired: &e<expiry>
&fPunisher: &e<punisher>
# What revoked punishments look like in /kojin history
History-Format-Revoked: |
&f[&c<type>&f] - &a&lREVOKED
&fPunishment Reason: &e<reason>
&fCreated At: &e<created>
&fPunisher: &e<punisher>
&fRevoked By: &e<revoker>
Messages:
No-Permission: '&cInsufficient permissions.'
Incorrect-Args: '&cIncorrect args! Try &e<suggestion>'
Never-Joined: '&c<player> has never joined the server before! You cannot punish them!'
Cannot-Self-Punish: '&cYou cannot punish yourself!'
Already-Banned: '&c<player> is already banned!'
Already-IP-Banned: '&c<player> is already ip-banned!'
Already-Muted: '&c<player> is already muted!'
Not-Banned: '&c<player> is not banned, so they cannot be unbanned!'
Not-IP-Banned: '&c<player> is not IP-banned, so their IP cannot be unbanned!'
Not-Muted: '&c<player> is not muted, so they cannot be unmuted!'
Not-A-Number: '&cThe input must be a number!'
Cannot-Kick-Offline: '&c<player> is offline and cannot be kicked!'
Cannot-Ban-IP: '&cCannot IP-Ban <player> because they are offline and their IP is unknown.'
Requirements
I haven't added any metrics yet, but will probably add bStats down the line.
DM me on Spigot for now.
What Is Kojin?
Kojin is named after a figure of Japanese mythology, named Kōjin - a god associated with powerful, purifying forces. According to legend, he was responsible for watching over households and ensuring misdeeds were punished appropriately.
Kojin is a modern punishment management solution for your Minecraft server, currently built to run on standalone Spigot servers, but full Bungee/Network support is planned in a Premium version.
Features
- Full UUID Support
- Customizable Messages for every Punishment
- Traditional Color Code (&1, &c, etc.) and Hex Code (#123456, etc.) Support
- Choose between SQLite and MySQL
- Full and Auditable History for all Punishments
- Asynchronous database access to keep your server running smoothly.
[Coming Soon]
Warning
Kojin is still in an alpha stage, although I'm rapidly developing it. I cannot guarantee it is without bugs at this time, although my testing has not revealed any.
There is one inefficiency if you delete player data from your server, but that will be fixed in a later update.
Commands & Permissions
- /kojin help - Display a help menu.
- Permission: kojin.help
- /kojin ban <player> [reason] - Ban a player, optionally give a reason.
- Permission: kojin.ban
- /kojin tempban <player> <duration> [reason] - Temporarily ban a player for a given duration, optionally give a reason. Duration format is "1d6h" for example (1 day 6 hours).
- Permission: kojin.tempban
- /kojin unban <player> - Unban a player.
- Permission: kojin.unban
- /kojin banip <player> [reason] - Ban a player's IP address, optionally give a reason.
- Permission: kojin.banip
- /kojin unbanip <player> - Unban a player's IP address.
- Permission: kojin.unbanip
- /kojin mute <player> [reason] - Mute a player, optionally give a reason.
- Permission: kojin.mute
- /kojin tempmute <player> <duration> [reason] - Mute a player, optionally give a reason. Duration format is "1d6h" for example (1 day 6 hours).
- Permission: kojin.unmute
- /kojin unmute <player> - Unmute a player.
- Permission: kojin.mute
- /kojin kick <player> [reason] - Kick a player, optionally give a reason.
- Permission: kojin.kick
- /kojin history <player> [page] - View the punishment history of a player. Defaults to Page 1.
- Permission: kojin.history
Code (Text):
Storage:
# SQLite (.db file in the Sorcery folder) or MySQL (if you have a MySQL server)
# If you have a server of another SQL implementation (e.g. Postgres, MariaDB) then choose MySQL and it will still probably work
# If you don't know what you're doing and only have a single server, just leave it as SQLite.
Use: SQLite
# This is only used if you choose to use MySQL
SQL-Info:
Address: 'localhost'
Port: '3306'
Database: 'schema'
Username: 'admin'
Password: 'password'
Settings:
# If a Punishment is given without a reason, what should show?
Default-Reason: 'Unspecified'
Ban:
# What message should be given to the banned player? (This is the ban screen)
Punished-Message: |
&f[&4Kojin&f] &cYou are permanently banned.
&cReason: &6<reason>
# What message should be given to the punisher? (typically a staff member or the console)
Punisher-Message: |
&f[&4Kojin&f] You have &cpermanently banned &6<player>&f.
&cReason: &6<reason>
Unban:
# What message should be given to the unbanner? (typically a staff member or the console)
Punisher-Message: '&f[&4Kojin&f] You have &aunbanned &6<player>&f.'
Temp-Ban:
# What message should be given to the banned player? (This is the ban screen)
Punished-Message: |
&f[&4Kojin&f] &cYou are temporarily banned.
&cReason: &6<reason>
&cExpires: &6<time>
# What message should be given to the punisher? (typically a staff member or the console)
Punisher-Message: |
&f[&4Kojin&f] You have &ctemporarily banned &6<player>&f.
&cReason: &6<reason>
&cExpires: &6<time>
IP-Ban:
# What message should be given to the banned player? (This is the ban screen)
Punished-Message: |
&f[&4Kojin&f] &cYou are permanently ip-banned.
&cReason: &6<reason>
# What message should be given to the punisher? (typically a staff member or the console)
Punisher-Message: |
&f[&4Kojin&f] You have &cpermanently ip-banned &6<player>&f.
&cIP: &6<ip>
&cReason: &6<reason>
IP-Unban:
# What message should be given to the unbanner? (typically a staff member or the console)
Punisher-Message: '&f[&4Kojin&f] You have &aunbanned &6<player>''s IP (<ip>)&f.'
Mute:
# What message should be given to the muted player?
Punished-Message: |
&f[&4Kojin&f] &cYou are permanently muted.
&cReason: &6<reason>
# What message should be given to the punisher? (typically a staff member or the console)
Punisher-Message: |
&f[&4Kojin&f] You have &cpermanently muted &6<player>&f.
&cReason: &6<reason>
Unmute:
# What message should be given to the unmuted player?
Punished-Message: '&f[&4Kojin&f] You have been &aunmuted&f.'
# What message should be given to the unmuter? (typically a staff member or the console)
Punisher-Message: '&f[&4Kojin&f] You have &aunmuted &6<player>&f.'
Temp-Mute:
# What message should be given to the muted player?
Punished-Message: |
&f[&4Kojin&f] &cYou are temporarily muted.
&cReason: &6<reason>
&cExpires: &6<time>
# What message should be given to the punisher? (typically a staff member or the console)
Punisher-Message: |
&f[&4Kojin&f] You have &ctemporarily muted &6<player>&f.
&cReason: &6<reason>
&cExpires: &6<time>
Kick:
# What message should be given to the kicked player? (This is the kick screen)
Punished-Message: |
&f[&4Kojin&f] &cYou were kicked.
&cReason: &6<reason>
# What message should be given to the punisher? (typically a staff member or the console)
Punisher-Message: |
&f[&4Kojin&f] You have &ckicked &6<player>&f.
&cReason: &6<reason>
# What ongoing punishments look like in /kojin history
History-Format-Active: |
&f[&c<type>&f] - &4&lACTIVE
&fReason: &e<reason>
&fCreated At: &e<created>
&fExpires: &e<expiry>
&fPunisher: &e<punisher>
# What expired punishments look like in /kojin history
History-Format-Expired: |
&f[&c<type>&f] - &7&lEXPIRED
&fReason: &e<reason>
&fCreated At: &e<created>
&fExpired: &e<expiry>
&fPunisher: &e<punisher>
# What revoked punishments look like in /kojin history
History-Format-Revoked: |
&f[&c<type>&f] - &a&lREVOKED
&fPunishment Reason: &e<reason>
&fCreated At: &e<created>
&fPunisher: &e<punisher>
&fRevoked By: &e<revoker>
Messages:
No-Permission: '&cInsufficient permissions.'
Incorrect-Args: '&cIncorrect args! Try &e<suggestion>'
Never-Joined: '&c<player> has never joined the server before! You cannot punish them!'
Cannot-Self-Punish: '&cYou cannot punish yourself!'
Already-Banned: '&c<player> is already banned!'
Already-IP-Banned: '&c<player> is already ip-banned!'
Already-Muted: '&c<player> is already muted!'
Not-Banned: '&c<player> is not banned, so they cannot be unbanned!'
Not-IP-Banned: '&c<player> is not IP-banned, so their IP cannot be unbanned!'
Not-Muted: '&c<player> is not muted, so they cannot be unmuted!'
Not-A-Number: '&cThe input must be a number!'
Cannot-Kick-Offline: '&c<player> is offline and cannot be kicked!'
Cannot-Ban-IP: '&cCannot IP-Ban <player> because they are offline and their IP is unknown.'
- Spigot 1.21.5 or higher
- It likely works on earlier versions, but I haven't tested it yet.
- SQLite Driver (this is built-in to modern versions of Spigot, so unless you're using a weird modded version or something, you should be fine) OR MySQL Driver + MySQL Database (most server hosts will have this available to you - just ask them!)
I haven't added any metrics yet, but will probably add bStats down the line.
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft version listed: 1.21
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
Kojin - Advanced Punishment Manager is a free Minecraft Java mod. Compatible with Minecraft 1.21. Downloaded 9 times (via Spigot). Download it and open it directly in the game.