Punishmental Help

Punishmental has multiple features that help you get as much as you want from it, as easily as possible. The root of the plugin is the main command, /punish or /p. You use like below, replacing [player] with the players username and [punishment] with the punishment (A list of 60+ punishments is available on the main page).

/Punish [player] [punishment]

Of course, you can swap round the player and the punishment, so doing /punish jake fall will work just as well as /punish jake fall , and this will work with ALL punishments. A more in-depth explanation is available below; though it’s not required. All you need to know is to type /punish , then the punishment and the player in any order :)

Normal Command

/Punish [Punishment] [Player] or /Punish [Player] [Punishment]

On the server’s console or a player’s chatbox, type /Punish followed by the targets username, then the punishment you want to issue (see above table). You can use /p if you want. The punishment and username can be either way round. Thats It! Press enter and whatever punishment you have forced upon your victim will happen. This part of the command is the main block Examples:

  • /p Steve explode – Steve will explode
  • /Punish infall Steve – Steve will fall forever until you do /Punish end Steve or /Punish Steve End
  • /p rename all steve – Renames all the players to steve

Setting Damage/Game Mode

/Punish [Punishment] [Player] [Optional Damage, ‘x’ or ‘y’ ]

If you want to set the damage or stop the player going out of creative, you can add the amount of half-hearts to the end of the main block (see normal command) that you want them to be on by the end, or the letter ‘y’ (no quotes) if you want to leave the player in the game mode they are currently in. Setting the damage delt will only work on punishments involving mobs and a few others where possible, such asfstrike and fexplode. The punishment and player can still be the opposite way round. If you don’t want to include the damage, leave this blank or use ‘x’. This part is known as the damage block


  • /p fred fstrike 10 – The lightning will strike and leave fred on 5 hearts damage.
  • /p hounds fred 7 – The hounds will de-spawn once they have left fred on 3.5 hearts.

Repeating Punishments

/Punish [Punishment] [Player] [Optional Damage, ‘y’ or ‘x’] [Optional repeat] [Optional delay in seconds]

If you want to make the punishment more than once, type the main block, then the damage block (see above) and then add the amount of times you want to repeat, and the delay in milliseconds between the punishment repeating. This is known as the timing block


  • /p bob fstrike 10 5 500 – send 5 lightning strikes every half a second that leave bob on 5 hearts.
  • /p bob creeper x 7 1000 – Spawn a creeper near bob every second for 7 seconds.

PLEASE NOTE: Do not set the amount of times ridiculously high and/or the delay ridiculously small. All servers are different and so it is impossible to add a safeguard to prevent this. If you do I’m not responsible for any servers crashing :)

Special Arguments

/Punish [Punishment] [Player] [Optional Damage, ‘y’ or ‘x’] [Optional Repeat] [Optional Delay in Seconds] [Optional Special Arguments]

For punishments that can be repeated but also require text to be added (like chatroll), after the timing block you can add any extra text.


  • /Punish Chatroll bill x 5 2000 i like bob – every 2 seconds, bill will say “I like bob”, 5 times (thats 5 times total, not 5 times every 2 seconds)

Special Syntax

/Punish [Punishment] [Player] [Special Arguments]

For punishments that require text and can’t be repeated, such as kick or chat (the single-time version of chatroll), the special arguments can be put after the main block. The compatible punishments are listed at the bottom of the main list above. Said punishments use “Special Syntax”


  • /Punish kick luke Because he smells – The player Luke will be kicked from the server, with his client telling him he was kicked “because he smells”
  • /Punish luke chat bob isn’t awesome – Luke will say “bob isn’t awesome”

Automatic Punishments

If you look in the config file (its at /plugins/Punishmental/config.yml), you’ll see a little bit saying “Autopunish”, and underneath that it says “Enabled”. Change the word ‘false’ to ‘true’ and Punishmental will make anyone who tries making fire, placing TNT, water or lava be punished automatically, as well as removing the offending blocks. So you can enforce the rules without actually having anyone online.

This can be fine-tuned as well. If you want people to be able to use water buckets, just set the word ‘true’ after ‘WaterBucket’ to ‘false’ (no quotes in any of that). The same works for any other items. The automatic punishment for that will then be switched off.

If you want a punishment to happen when any player places a block, find the blockID (search minecraft wiki) and put that after the punishment name in the Autopunish section of the config file. Whenever a player places that block, they suffer that punishment. Anyone with the Punish.EXEMPT permission can’t be punished by this method.

I’ll be making a video tutorial to help anyone who’s stuck, but in the meantime if you have any problems, message me or post a comment!

Other Commands that are not punishments & Permissions

  • /punish Restore [username] : Resets the blocks that were used in the ‘hole’ punishment back to their original state. NOW WORKS WITH WEBS! AND DIFFERENT COLORED WOOL!
  • /punish stop [username] : Stops punishments without killing the player (2.86 and above)
  • /SaveUserData [username] : Save a player’s data (Inventory, health etc…) to be restored by /RestoreUserData
  • /RestoreUserData [Username] : Reverts a players data to the last /saveplayerdata


  • Use Punish.* to allow users to use all the punishments
  • or replace * with with the command for the punishment you want to allow
  • So if you want to permit someone to use the strip command, you’d use Punish.strip
  • If you want to be able to make someone un-punishable, give them the Punish.EXEMPT permission
  • You can punish every player on the server by typing all instead of the username