This page gives an overview of the configuration of the checks that NoCheatPlus contains.
For the case of violations most checks allow to define custom actions to be executed with violations.
Note that for some checks immediate kicking or teleporting of players is not recommended, because it can conflict with the set-back logic or further event-processing, such as with the flying checks - for those we recommend to use the command prefix "ncp delay ", in order to run the actions outside of the event processing.
NoCheatPlus allows defining in detail what should happen when a player fails a check in form of "actions". There are 4 possible things that may be done:
Action | Description |
cancel | The effects of the action "cancel" depend on the check that it is used for. Usually it means to prevent something from happening, e.g. stop an attack or prevent sending of a chat message. |
log | Create and show/log a message. Log messages can be customized in how often, when and where they are registered/shown. |
cmd | Execute a command of Bukkit or another plugin as if it were typed into the server console by an admin. Like logging, these can be customized. |
vl>X | Is meant to symbolize "violation level at least X". Used to define actions that will be executed only if players reached a certain violation level. Failing a check usually increases their "vl", not failing checks reduces it over time. Violation levels mean different things for different checks, e.g. they may describe moved distance beyond the limit, number of attacks above the attack limit, sent messages beyond the spam limit. |
Cancel: Depended on the check you can use "cancel" to prevent something from happening.
Log: The "log" action is a string of the form "log:string:delay:repeat:target".
Action | Description |
log | Is simply used to let NoCheatPlus know it is a log action. Don't remove it from the action, or NoCheatPlus will not know what it is and how to handle it. |
string | Is the message that will be logged. Because there is so little space here, you only give a name here and define the actual log message in the "strings" section of the config file. |
delay | A number declaring how many times that action initially has to be executed before it really leads to logging a message. Use this for situations where it's common to have false positives in checks and you only want the log message to be shown if a player fails the check multiple times within a minute. |
repeat | A number declaring how many seconds have to pass after logging the message before it will be logged again for that player. This is needed to prevent "log-spam". Usually a value of 5 seconds is acceptable, for rare events you can use lower values. It is recommended to at least use the value 1 (one second) here. |
target | Where should the message be logged to? You can use three letters here. The order that you use is not important. "c" means logging to console "i" means logging to ingame chat and "f" means logging to the log file. |
Cmd: The "cmd" action is a string of the form "cmd:string:delay:repeat".
Action | Description |
cmd | Is simply used to let NoCheatPlus know it is a command action. Don't remove it from the action, or NoCheatPlus will not know what it is and how to handle it. |
string | Is the command that will be issued. Because there is so little space here, you only give a name here and define the actual command in the "strings" section of the config file. |
delay | A number declaring how many times that action initially has to be executed before it really leads to running the command in the console. Use this to create e.g. a 3-strikes-law by setting it to 3. Only if a player fails the check 3 times within 1 minute, the command will be really run. |
repeat | A number declaring how many seconds have to pass after running the command before it can be run again for that player. Because many commands are expensive (take time, resources), you may want to limit how often they can be called. |
The ":delay:repeat" part can be omitted
Vl: The "vl>" isn't really an action. It limits all actions that are written afterwards to be only executed if the players’ violation level has reached at least the given value. This allows defining layers of actions and handling repeated or severe failing of checks different. For example the spam check will only kick players if they reach a certain violation level (vl).
Currently you have to use vl>... with a log action like "vl>50 log:...", otherwise it would not work.
Notes:
- Violation levels can differ in magnitude and in how they change with repeated violations amongst checks, there is no way to compare them consistently.
- Some checks like SurvivalFly (moving section) don't really allow a simple judgment only on base of the amount of violation.
- Many cheat clients are adapted to cause as small as possible levels, thus distinction of false positives and cheating becomes harder and harder.
- Make use of /ncp info PLAYER to have a rough idea how many different checks the player triggers (also compare output for differing times).
TODO: General things about checks (generic).
TODO: Specific information/overview about each section.
TODO: Fill in information for checks that link to or use each other somehow.