Professional Documents
Culture Documents
# #
# Important files, config.yml or "clean up your stuff" #
# #
################################################################################
1) The config file for NoCheatPlus is called "config.yml" now.
2) You can have different config files for different worlds. To achieve this,
copy the "config.yml" and rename the copy to "worldname_config.yml". Set-
tings in that file will now only affect the world with the name "worldname".
You may also delete all settings from that world-specific file that you
won't use. They'll be implicitly taken from the master "config.yml" file.
3) If you have files named "config.txt", "default_actions.txt" or "actions.txt"
please delete them. They are no longer used by NoCheatPlus and serve no
purpose anymore.
4) Never change the amount of white-spaces in front of options in the config
file "config.yml". It will break the configuration.
################################################################################
# #
# How "actions" work, an Overview #
# #
################################################################################
NoCheatPlus allows to define in detail what should happen when a player fails a
check in form of "actions". There are 4 possible things that may be done:
(read on to learn in detail on how to define/modify actions)
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.
################################################################################
# #
# How to customize your "actions" #
# #
################################################################################
1) The "cancel" action is just the word "cancel". Read in the detailed option
description to find out what it does depending on the check that it is
assigned to.
2) The "log" action is a string of the form "log:string:delay:repeat:target".
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 very
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.
3) The "cmd" action is a string of the form "cmd:string:delay:repeat".
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.
4) 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 to define layers of actions and handle
repeated or severe failing of checks different. For example the spam check
will only kick players if they reach a certain violation level (vl).
################################################################################
# #
# Permissions #
# #
################################################################################
--------------------------------------------------------------------------------
----------------------- Permissions for ADMINISTRATION -------------------------
--------------------------------------------------------------------------------
- nocheatplus.admin.chatlog
The player will receive log messages that are directed at the "ingame chat"
as a normal chat message ingame.
- nocheatplus.admin.commands
The player gets access to some of the "/nocheatplus" commands.
- nocheatplus.admin.reload
In combination with "nocheatplus.admin.commands", the player gets access to
the "/nocheatplus reload" command, which will cause NoCheatPlus to reread
its config files.
- nocheatplus.admin.plugins
Give this permissions to the players you want to be able to see the plugins
your server is using.
--------------------------------------------------------------------------------
--------------------------- Permissions for CHECKS -----------------------------
--------------------------------------------------------------------------------
These permission nodes are grouped the same way as the options in the config
file, based on the event type they belong to. The logic is, that a player
having one of these nodes means he will NOT be checked. Players without the
permission node will be checked.
Example: A player has permission "nocheatplus.checks.moving.morepackets". That
means he is allowed to use that hack/cheat because NoCheatPlus won't check/
stop it.
--------------------------------------------------------------------------------
---------------------------- Permissions for MODS ------------------------------
--------------------------------------------------------------------------------
- nocheatplus.mods.cjb.fly
Don't prevent the player from using CJB's fly mod.
- nocheatplus.mods.cjb.xray
Don't prevent the player from using CJB's xray.
- nocheatplus.mods.cjb.radar
Don't prevent the player from using CJB's radar.
- nocheatplus.mods.minecraftautomap.ores
Don't prevent the player from using Minecraft AutoMap's ores detector.
- nocheatplus.mods.minecraftautomap.cave
Don't prevent the player from using Minecraft AutoMap's cave mode.
- nocheatplus.mods.minecraftautomap.radar
Don't prevent the player from using Minecraft AutoMap's radar.
- nocheatplus.mods.rei.cave
Don't prevent the player from using Rei's Minimap's cave mode.
- nocheatplus.mods.rei.radar
Don't prevent the player from using Rei's Minimap's radar.
- nocheatplus.mods.smartmoving.climbing
Don't prevent the player from using Smart Moving's climb.
- nocheatplus.mods.smartmoving.swimming
Don't prevent the player from using Smart Moving's swim.
- nocheatplus.mods.smartmoving.crawling
Don't prevent the player from using Smart Moving's crawl.
- nocheatplus.mods.smartmoving.sliding
Don't prevent the player from using Smart Moving's slide.
- nocheatplus.mods.smartmoving.jumping
Don't prevent the player from using Smart Moving's jump.
- nocheatplus.mods.smartmoving.flying
Don't prevent the player from using Smart Moving's fly.
- nocheatplus.mods.zombe.fly
Don't prevent the player from using Zombe's fly mod.
- nocheatplus.mods.zombe.xray
Don't prevent the player from using Zombe's noclip.
- nocheatplus.mods.zombe.cheat
Don't prevent the player from using Zombe's cheat.
--------------------------------------------------------------------------------
---------------------- Things to know about Permissions ------------------------
--------------------------------------------------------------------------------
NoCheatPlus defines "parent" nodes for all permissions already for you. That
means you can use one of the following:
- nocheatplus
- nocheatplus.admin
- nocheatplus.checks
- nocheatplus.checks.blockbreak
- nocheatplus.checks.blockplace
- nocheatplus.checks.chat
- nocheatplus.checks.inventory
- nocheatplus.checks.moving
- nocheatplus.checks.fight
- nocheatplus.mods
- nocheatplus.mods.cjb
- nocheatplus.mods.minecraftautomap
- nocheatplus.mods.rei
- nocheatplus.mods.smartmoving
- nocheatplus.mods.zombe
To give a player all the permissions that start with that permission node.
Especially you don't have to and should not use ".*" anywhere when defining
NoCheatPlus permissions.
You can exclude a specific player from getting logged by appending ".silent"
to the relevant permission node of the specific check. E.g.
- nocheatplus.checks.moving.nofall.silent
will prevent NoCheatPlus from recording log messages for that player for the
"nofall" check, while still executing all other actions as usual. These silent
permissions won't show up elsewhere, e.g. when using the "nocheatplus permlist"
command.
################################################################################
# #
# All available config settings #
# #
################################################################################
Here you'll find the whole list of settings that you can manipulate in the
config.yml file. It is further split into logical sections.
--------------------------------------------------------------------------------
-------------------------------- LOGGING Section -------------------------------
--------------------------------------------------------------------------------
Everything that in general has to do with controlling NoCheatPluss logging can
be found at this part of the config.yml.
active:
Should messages get logged at all. If you are not interested in messages,
set this to false and you'll hear and see (almost) nothing of NoCheatPlus.
prefix:
Will be placed in front of many log messages. To get colors, use "&"
followed by a number (0-9) or a letter (A-F). E.g. "&7NCP&f:" would produce
the letters NCP in red (&7), followed by black text (&f).
filename:
The name of the logfile that NoCheatPlus will use to log its messages. The
default name is "nocheatplus.log", but you can use a different one if you
want to.
file:
Should the logfile be used at all. Set to false if you don't want to use
the logfile. By default the logfile will be used (true).
console:
Should the server console be used to display messages. Set to false if you
don't want NoCheatPlus to show messages related to checks in the console.
Error messages may still get displayed there though.
ingamechat:
Should NoCheatPlus display messages in the ingame chat? Set to false if you
don't want NoCheatPlus to show messages ingame. The messages will only be
seen by players with the permission node "nocheatplus.admin.chatlog" or if
you don't use a permissions plugin, by players who are OP.
debugmessages:
Should some additional messages be displayed in the server console, e.g.
about NoCheatPlus encountering lag. The displayed messages may change from
version to version. This is deactivated by default.
--------------------------------------------------------------------------------
---------------------------- MISCELLANEOUS Section -----------------------------
--------------------------------------------------------------------------------
Everything that in has nothing to do with the other categories
allowclientmods:
Allow all your players to use all the client mods (Zombe, CJB, Rei's
Minimap, Minecraft AutoMap and Smart Moving).
opbyconsoleonly:
Only allow the commands /op and /deop to be executed by the console.
protectplugins:
Don't not allow your players to access the /plugins, /pl, /? commands by
default. Of course, the players having the explicit permisssion to use them
won't be blocked.
--------------------------------------------------------------------------------
-------------------------------- CHECKS Section --------------------------------
--------------------------------------------------------------------------------
Everything that in has to do with the various checks that NoCheatPlus runs on
the players. Use these to specify what will be done, how it will be done and
what happens if somebody fails checks.
2) REACH:
Players may slightly increase the distance at which they can break
blocks. This check will try to identify that by comparing player and
block location.
active:
Should players be checked for this behaviour.
actions:
What should happen if the player is considered to cheat this way. The
default is to prevent him from breaking the block ("cancel" breaking)
and on repeated offenses to log messages about it. The Violation Level
(VL) is the distance in Blocks between the reach distance that NoCheatPl
us
allowed and what the player actually tried to use. The VL increases with
every failed attempt to break a block out of reach, and decreases with
every successful attempt.
3) DIRECTION:
Players may break blocks without really looking at them. This is often
combined with breaking a lot of blocks surrounding the player at the same
time.
active:
Should players get checked for this type of hack.
precision:
How strict should NoCheatPlus be when comparing the players line of view
with the broken block location. The value represents (roughly) the
amount of 1/100 blocks that the player is allowed to look past the to
be broken block. 50 (0.5 blocks) seems a good default value.
penaltytime:
If a player fails this check, how long should he be prevented from
breaking blocks afterwards, in milliseconds. This is intended to make
automated destruction of blocks harder. 0.3 seconds (value 300) is the
default. Set to 0, if you don't want to limit players at all after
failing this check.
actions:
What should happen if a player fails this check. Default is to prevent
the breaking of the block ("cancel" it) and after repeated/more severe
offenses to log a message. The Violation Level (VL) for this check is
the distance in Blocks between the line of view of the player and the
block. It increases with every failure and decreases with every
successful block break.
4) NOSWING:
Players may break blocks without moving their arm. This is confusing for
nearby players, as they won't see who broke the blocks.
active:
Should players get checked for this type of hack.
actions:
What should happen if the player didn't swing his arm first? Default is
to log a message and prevent the breaking of the block ("cancel" it).
The Violation Level (VL) is the number of block-break attempts without
first swinging the arm. It increases with every failed attempt by 1 and
decreases with every successful attempt slowly.
8) CRITICAL
Players may send jump packets to the server just before attacking an
entity in order to do a critical hit on this entity. This check will try
to identify players doing this.
active:
Should players be checked for this behavior.
falldistance:
The distance the players must have fallen for their hit to be considered
as legit. The default value is around 0.01.
velocity:
The velocity the players must have for their hit to be considered as
legit. The default value is around 0.1.
actions:
What should happen if the player fails this check. Default is to not
allow the player to attack the entity ("cancel" the attack) and log
the event. The Violation Level (VL) for this check is the difference
between the real values and the values defined in the configuration.
9) ANGLE
Players may be able to attack accurately multiple entities at the same time
using a forcefield. This check will try to stop that kind of cheat by check
for the time, the angle delta and the location of the player between each
hit. This check has been introduced recently so it's still experimental.
active:
Should players be checked for this behavior.
threshold:
This is the minimum value (percentage) to trigger a violation. This
percentage is calculated by doing a weighted average of the percentage
of the time, angle and location checks. I recommand to use a value close
to 50.
actions:
What should happen if the player fails this check. Default is to not
allow the player to attack the entity ("cancel" the attack) and log
the event. The Violation Level (VL) for this check is the difference
between the real values and the values defined in the configuration.
--------------------------------------------------------------------------------
------------------------------- STRINGS Section --------------------------------
--------------------------------------------------------------------------------
This is the section that defines various strings for "log" or "cmd" actions.
Each has a name (the part in front of ":") and a definition (the part behind
the ":"). Whenever you use a "log" or "cmd" action in one of the "actions: "
options of this config file, the string will be taken from this section.
Arbitrary many additional strings may be defined here, or existing strings
may be changed.
Most messages/commands use place-holders in [ ], which will be replaced at
runtime with relevant information. Some of these may only be available in
certain circumstances, only "[player]" can be used everywhere, especially
in "cmd" actions.
################################################################################
# #
# Other noteworthy stuff, DONATIONS #
# #
################################################################################
- NoCheatPlus isn't perfect and won't prevent all forms of cheating. It's a
best effort approach.
- NoCheatPlus may make mistakes. Don't see everything NoCheatPlus says or does
as indisputable fact that somebody cheated. It's not possible to be 100% sur
e
if somebody is cheating or not, NoCheatPlus will try to be right most of the
time.
Thank you for reading this file. It took hours to write it, so it's nice that
people actually take a look at it. ;)