NoCheatPlus/Instructions.txt
NeatMonster 2feceae9b0 + [Angle] Added a new check to prevent players from attacking multiple
entities at the same time (using a forcefield for example);
+ [BedFlying] Added a new check to prevent players from flying (and also
canceling fall damages) by sending fake bed leaving packets;
+ [NoPwnage] Added new options in the configuration to change all the
displayed messages (message displayed when asking for the completion of
a captcha, etc.);
= [FastBreak] Added the type of the broken block in the message
displayed in the chat/console to reduce the number of false positives;
+ [WaterWalk] Check completely rewritten to be more accurate;
= [General] Fixed configuration not be reloaded correctly;
= [NoPwnage] Fixed kicks not being executed properly;
= [NoPwnage] Fixed captcha disabling the check forever for a player when
he successfully enters it;
= [Running] Fixed an issue happening when players where standing on a
fence into water (was also happening with the WaterWalk check);
= [Running] Fixed an issue happening when players where trying to jump
out of a cobweb while still being in the air (false flying warnings).
2012-05-14 21:06:22 +02:00

1460 lines
64 KiB
Plaintext

################################################################################
# #
# 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 #
# #
################################################################################
NoCheatPlus only supports "SuperPerms", CraftBukkits official permission
framework. You'll need to use a permissions plugin that supports "SuperPerms"
to use it with NoCheatPlus. Here are some I know of:
- bPermissions;
- PermissionsEx;
- Essentials GroupManager.
I personally recommend bPermissions, but any of them will do just fine.
By default all these permissions are set to "op", which means players with OP-
status have all permissions, unless you change it.
--------------------------------------------------------------------------------
----------------------- 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.
-------------------- BLOCKBREAK Permissions for CHECKS -------------------------
- nocheatplus.checks.blockbreak.fastbreak
Allows the player to break blocks very quickly.
- nocheatplus.checks.blockbreak.reach
Allows the player to break blocks that are further away than usual.
- nocheatplus.checks.blockbreak.direction
Don't force players to look at the blocks that they try to destroy.
- nocheatplus.checks.blockbreak.noswing
Don't force players to swing their arm when breaking blocks.
-------------------- BLOCKPLACE Permissions for CHECKS -------------------------
- nocheatplus.checks.blockplace.fastplace
Allows the player to place blocks very quickly.
- nocheatplus.checks.blockplace.reach
Allows the player to place blocks that are further away than usual.
- nocheatplus.checks.blockplace.direction
Don't force players to look at the blocks that they try to place.
- nocheatplus.checks.blockplace.projectile
Allows the player to throw projectiles very quickly, like expbottles, eggs,
monster eggs, eyes of ender, ender pearls. This is usually used by griefers
to level up very quickly or to crash the server by spawning too much mobs.
- nocheatplus.checks.blockplace.autosign
Allows the player to place multiple signs with the same text. This is
usually used by griefers to place quickly a lot of signs with their
signature.
----------------------- CHAT Permissions for CHECKS ----------------------------
- nocheatplus.checks.chat.nopwnage
Don't limit the number of messages and commands that a player may send in a
short timeframe, the delay allowed to join the server again, etc. in short
everything watched by the NoPwnage check.
- nocheatplus.checks.chat.arrivalslimit
Don't limit the number of new players allowed to join in a short timeframe.
- nocheatplus.checks.chat.color
Don't filter color codes from messages that get sent by players, allowing
them to use colors in their messages.
---------------------- FIGHT Permissions for CHECKS ----------------------------
- nocheatplus.checks.fight.direction
Don't force players to look at their targets while fighting.
- nocheatplus.checks.fight.noswing
Don't force players to move their arms while fighting.
- nocheatplus.checks.fight.reach
Don't limit the distance for fights.
- nocheatplus.checks.fight.speed
Don't limit the number of attacks that the player can do per second.
- nocheatplus.checks.fight.godmode
Don't prevent the player from keeping the temporary invulnerability that he
gets when taking damage.
- nocheatplus.checks.fight.instantheal
Don't prevent the player from accellerating their health generation by
food saturation.
- nocheatplus.checks.fight.knockback
Don't prevent the player from doing knockbacks when it's not technically
possible (if he hasn't really run [if he has just sent the packet before
attacking the entity]).
- nocheatplus.checks.fight.critical
Don't prevent the player from doing criticals hits when it's not technically
possible (if he hasn't really jumped/fallen [if he has just sent a packet
before attacking the entity]).
- nocheatplus.checks.fight.angle
Don't prevent the player from attacking multiple entities at the time (this
check is mostly triggered when a player is using a forcefield).
--------------------- INVENTORY Permissions for CHECKS -------------------------
- nocheatplus.checks.inventory.drop
Don't limit the number of items that a player may drop within a short time.
- nocheatplus.checks.inventory.instantbow
Don't prevent players from shooting their bows instantly without taking the
usual time to pull the string back.
- nocheatplus.checks.inventory.instanteat
Don't prevent players from eating their food instantly without taking the
usual time to munch on it.
------------------------ MOVING Permissions for CHECKS -------------------------
- nocheatplus.checks.moving.runfly
Allows the player to move freely. It also treats the player as if he has the
".flying", ".swimming", ".sneaking" and ".nofall" permission too.
- nocheatplus.checks.moving.flying
Allows the player to fly, independent of if he is in "creative mode" or not.
He will be limited in speed by the config settings "flyingspeedvertical" and
"flyingspeedhorizontal". It also treats the player as if he has the
".nofall" permission too.
- nocheatplus.checks.moving.nofall
Allows the player to avoid fall damage by using hacks. Normally NoCheatPlus
will keep track of a players movement and try to rectify the fall-damage
calculations of Minecraft in case they seem to be wrong because of players
tricking the server.
- nocheatplus.checks.moving.swimming
Allows the player to swim as fast as he is allowed to walk. Normally a
player swims slower than he walks and NoCheatPlus prevents faster movement
in water.
- nocheatplus.checks.moving.sneaking
Allows the player to sneak faster than he is allowed to walk. Normally a
player sneaks a lot slower than he walks and NoCheatPlus prevents faster
movement while sneaking.
- nocheatplus.checks.moving.blocking
Allows the player to move faster than he is allowed while blocking. Normally
a player move a lot slower while blocking than when he walks and NoCheatPlus
prevent faster movement while blocking. Please note this will also allow the
player to attack an entity while blocking (which is not possible with an un-
modified client).
- nocheatplus.checks.moving.cobweb
Allows the player to move fast than he is allowed while being into cobweb.
Normally a player more a lot slower than when he wallks and NoCheatPlus will
try to prevent that kind of behavior.
- nocheatplus.checks.moving.morepackets
Allows players to make a lot more movements than normally possible. Doing
more movements will result in faster overall movement speed and causes the
server to spend a lot of additional time for processing these movements.
- nocheatplus.checks.moving.morepacketsvehicle
Allows players to make a lot more movements (while being in a vehicule) than
normally possible. Doing more movements will result in faster overall
movement speed and causes the server to spent a lot of additional time for
processing these movements.
- nocheatplus.checks.moving.waterwalk
Allows players to walk on water (by using a griefing client). This
functionality is also called Jesus mode.
- nocheatplus.checks.moving.respawntrick
Allows player to respawn on top if they are blocked by a gravel or a sand
block (instead of removing the blocks blocking them). This is usually used
by players to go quickly to the surface when they are in their mines).
- nocheatplus.checks.moving.boatonground
Allows players to place boats on the ground (and not only on the water).
--------------------------------------------------------------------------------
---------------------------- 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.
---------------------------- BLOCKBREAK Subsection -----------------------------
Checks that at least technically have to do with the player breaking blocks.
1) FASTBREAK:
This check will prevent players from breaking blocks too quickly by
checking the interval of time elapsed since they've broken their last
block. This should prevent players from using the features called
"Smasher", "Click Nuker" and "Creative Nuker" of their griefing client.
active:
Should players be checked for this behaviour.
intervalsurvival:
The regular interval between each block breaks if the player is in
survival mode.
intervalcreative:
The regular interval between each block breaks if the player is in
creative mode.
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. If the Violation
Level becomes too hight, the player will be kicked. The Violation Level
(VL) is the difference between the usual minimum time it takes to break
two blocks and the real time elapsed. The VL increases with every failed
attempt to break a block, and decreases with every successful attempt.
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 NoCheatPlus
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.
---------------------------- BLOCKPLACE Subsection -----------------------------
Checks that at least technically have to do with the player placing blocks.
1) FASTPLACE:
This check will prevent players from placing blocks too quicly by checking
the interval of time elapsed since they've placed their last block. This
should prevent players from using the features called "FastPlace" and
"Build" of their griefing client.
active:
Should players be checked for this behaviour.
interval:
The regular interval between two block places (doesn't depend on the
player's gamemode).
actions:
What should happen if the player is considered to cheat this way. The
default is to prevent him from placing the block ("cancel" placing)
and on repeated offenses to log messages about it. If the Violation
Level becomes too hight, the player will be kicked. The Violation Level
(VL) is the difference between the usual minimum time it takes to place
two blocks and the real time elapsed. The VL increases with every failed
attempt to place a block, and decreases with every successful attempt.
2) REACH:
Players may slightly increase the distance at which they can place
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 placing the block ("cancel" placing)
and on repeated offenses to log messages about it. The Violation Level
(VL) is the distance in Blocks between the reach distance that
NoCheatPlus allowed and what the player actually tried to use. The VL
increases with every failed attempt to place a block out of reach, and
decreases with every successful attempt.
3) DIRECTION:
Players may place blocks without really looking at them. This is often
combined with placing a lot of blocks in a certain shape.
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 placed block location. The value represents (roughly) the
amount of 1/100 blocks that the player is allowed to look past the to
be placed block. 75 (0.75 blocks) seems a good default value.
penaltytime:
If a player fails this check, how long should he be prevented from
placing blocks afterwards, in milliseconds. This is intended to make
automated placing of blocks harder. 0.1 second (value 100) 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 placing 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 placement.
4) PROJECTILE
Players may throw projectiles (experience bottles, eggs, monster eggs,
eyes of ender, ender pearls) really quickly in order to crash the server.
active:
Should players get checked for this type of hack.
interval:
The time (in milliseconds) between each thrown projectile. It takes
more than 150 ms if the player is keeping its right button pressed.
actions:
What should happen if a player fails this check. Default is to prevent
the placing of the block ("cancel" it) and after repeated/more severe
offenses to log a message and kick the player. The Violation Level (VL)
for this check is the interval elapsed subtracted to the interval
defined in the configuration's file; It increases with every failure and
decreases with every successfully thrown projectile.
5) FASTSIGN
Players using custom clients are able to spam the server with signs
containing the text they have chosen.
active:
Should players get checked for this type of hack.
exclusions:
If the first line of the sign is included into this list, the sign won't
be checked.
------------------------------- CHAT Subsection --------------------------------
Checks that at least technically have to do with chat or commands.
1) NOPWNAGE:
The instructions for this check comes directly from NoPwnage's instructions
file. You can find the project at http://dev.bukkit.org/server-mods/
nopwnage/.
active:
Should messages be check to see if players are spamming the server?
warnplayers:
Should a player that reaches the "warnLevel" get a text message telling
him that he is under suspicion of being a bot.
warnothers:
Should all players get warned when a player gets banned for spambot-like
activity?
warnlevel:
How much suspicion must a message earn to issue a warning for the
player?
warntimeout:
After what time (in ms) should a player be considered "unwarned" again.
banlevel:
How much suspicion must a message earn to execute the "commands"
(usually ban the player). If warnings for players are enabled and the
player hasn't been warned yet, he'll get warned instead.
otheractions:
NoPwnage allows you to decide what should happen when a player reaches
"banLevel" or relogged too fast. The default is to kick him and ban IP
and name. You'll also get a log message to console stating how exactly
he reached the "banLevel" (how much suspicion was added by each check).
"[player]" and "[ip]" wildcards will be replaced by the actual data
during execution.
IMPORTANT: Please notice that cancelling the check will not cancel the
actual message but kick the player (and the kick message defined in the
configuration will displayed on the player's screen).
move.active:
move.weightbonus:
move.weightmalus:
move.timeout:
NoPwnage will check if a player moved within the "timeout" timeframe. If
he did move, the suspicion will be reduced by the "weightbonus" value.
If he did not move, the suspicion will be increased by "weightmalus"
value.
Only used if "actived".
repeat.active:
repeat.weight:
repeat.timeout:
NoPwnage will check if a player repeats his messages within the
"timeout" timeframe. Even if the message is a bit different, it will be
counted as being a repetition. The suspicion is increased by "weight"
and for each additional repetition by "weight/2". This means that
multiple repetitions will increase suspicion, but not as much as the
first repetition.
Only used if "actived".
speed.active:
speed.weight:
speed.timeout:
NoPwnage will check if a player sends messages too fast. If a message is
sent within "timout" ms after the previous message, increase suspicion
by "weight". For each additional message that is sent within "timeout",
the suspicion is increased by "weight/2". This means that multiple
too fast sent messages in a row will increase suspicion, but not as much
as the first.
Only used if "actived".
first.active:
first.weight:
first.timeout:
NoPwnage will check if a player sends his first message within "timeout"
ms after his login. If he does, increase supspicion by "weight".
Only used if "actived".
global.active:
global.weight:
global.timeout:
NoPwnage will check if a player repeats a message that has been sent by
another player just before, within "timeout". If he does, suspicion will
be increased by "weight" and for each additional repetition by
"weight/2", independent of by which player. This means that multiple
repetitions will increase suspicion, but not as much as the first
repetition.
Only used if "actived".
banned.active:
banned.weight:
banned.timeout:
NoPwnage will remember the last message that caused someone to get
banned. If a player repeats that message within "timeout" ms, the
suspicion will be increased by "weight".
Only used if "actived".
relog.active:
relog.time:
relog.warnings:
relog.timeout:
NoPwnage will remember the time when a player leaves the server. If he
returns within "time" ms, he will get warned. If he has been warned
"warnings" times already, the "commands" will be executed for him.
Warnings get removed if the time of the last warning was more than
"timeout" ms ago.
Only used if "actived".
captcha.active:
Should players that get to "banlevel" be presented with a captcha first
instead of running the commands immediatly?
captcha.tries:
How many attempts will a player have to give the correct answer. A
failed attempt will display the question again. Be generous here, as
players may not be fast enough to read the question the first few times
or be otherwise distracted.
captcha.length:
How many characters should the captcha have.
captcha.characters:
The characters for the captcha are randomly drawn from this string
messages.kick
messages.captchaquestion
messages.captchasuccess
messages.warnplayer
messages.warnothers
messages.warnrelog
You can customize here all the message which are going to be displayed
by the NoPwnage check (the kick message displayed when a spambot is
kicked, the message asking for a captcha, the warning messages, etc.).
2) ARRIVALSLIMIT:
This check limits the number of new players joining every X seconds to
prevent the usage of softwares like PWN4G3.
active:
Should players get checked for that kind of spam.
playerslimit:
The number of new players allowed to join during the interval defined
in the configuration.
timeframe:
The interval in milliseconds during which the number of new players
defined in the configuration are allowed to join.
cooldowndelay:
The number of milliseconds during which new players won't be allowed
to join if too many new players have been detected.
kickmessage:
The message that will be displayed when a player is kicked by this
check.
newtime:
The time elsaped since the player's first join to be considered as
an old/regular player.
actions:
What should happen if the access is denied to the player.
3) COLOR:
Players may use color-codes to send colored messages. This may be used
to fool other players into believing they are admins or similar.
active:
Should player messages get checked for the use of color codes.
actions:
What should be done if a player sends messages with color codes.
Default is to log a message and prevent ("cancel") the use of the
color codes, by filtering them from the message. The message itself
will still be transmitted. The Violation Level (VL) for this check is
the number of messages that contained color codes. It increases with
each color-code message by 1 and decreases slowly with colorless
messages.
------------------------------ FIGHT Subsection --------------------------------
Checks that at least technically have to do with direct combat.
1) DIRECTION:
Players may attack other players and creatures without really looking at
them. This is often combined with automatically attacking every living
thing within reach ("kill-aura"). This check will check if the attacker
looks at his target.
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 his target's location. The value represents (roughly) the
amount of 1/100 blocks that the player is allowed to look past the to
be attacked entity. 75 (0.75 blocks) seems a good default value.
penaltytime:
If a player fails this check, how long should he be prevented from
attacking stuff afterwards, in milliseconds. This is intended to make
automated attacking of enemies harder. 0.5 second (value 500) 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 attack from happening ("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
target. It increases with every failure and decreases with every
successful attack.
2) NOSWING:
Players may attack entities without moving their arm. This is confusing
for nearby players, as they won't see who is attacking them or the nearby
creatures.
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 attack from happening ("cancel" it).
The Violation Level (VL) is the number of attacking attempts without
first swinging the arm. It increases with every failed attempt by 1 and
decreases with every successful attempt slowly.
3) REACH:
Players may slightly increase the distance at which they can attack enemy
creatures/players. This check will try to identify that by comparing
player and target location.
active:
Should players be checked for this behaviour.
distance:
How far can the enemy be away from the attacker, in 1/100 Blocks. The
default value of 400, which is 4.00 blocks seems to work fine most of
the time. Increase if you get to many false positives to e.g. 425 or
450.
penaltytime:
If a player fails this check, how long should he be prevented from
attacking stuff afterwards, in milliseconds. This is intended to make
automated attacking of enemies harder. 0.5 second (value 500) 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 the player is considered to cheat this way. The
default is to prevent him from attacking the target ("cancel" attack)
and on repeated offenses to log messages about it. The Violation Level
(VL) is the distance in Blocks between the reach distance that
NoCheatPlus allowed and what the player actually tried to use. The VL
increases with every failed attempt to attack enemies out of reach, and
decreases with every successful attempt.
4) SPEED:
Players may be attacking extremely fast within a short time by using
automated clicking or hacks. This is an advantage in many situations.
active:
Should players be checked for this behavior.
attacklimit:
How many attacks may a player start within 1 second. Consider setting
this to a value that's close to how fast you believe players can click
their mouse. The default is 15 per second.
actions:
What should happen if the player fails this check. Default is to stop
the attack ("cancel" it) and log messages. The Violation Level (VL) is
the number of attacks beyond the set limit. For each failed check it
is increased by 1 and it gets decreased for every successful attack.
5) GODMODE:
Players may trick Bukkit into not dealing them damage when they get
attacked. This will try to identify and correct that behavior.
active:
Should players be checked for this behavior.
actions:
What should happen if the player fails this check. Default is to make
him vulnerable to the attack ("cancel" his "godmode") and log messages.
The Violation Level (VL) for this check is the number of ticks that the
player seemingly tried to stay invulnerable. A second has 20 ticks.
Every time the player fails the check, the VL gets increased by the
amount of ticks (but at most 15 per failed check), and everytime the
player didn't avoid taking damage it gets reduced slowly.
6) INSTANTHEAL:
Players may trick Bukkit into regenerating their health faster when they
are satiated (full food bar) than normally possible. This will try to
identify and correct that behaviour.
active:
Should players be checked for this behavior.
actions:
What should happen if the player fails this check. Default is to not
allow the health regeneration ("cancel" the regeneration) and log a
message. The Violation Level (VL) for this check is the number of
seconds that the player tried to skip while regenerating health. It
gets reduced whenever the player regenerates health while obeying the
normal regeneration times.
7) KNOCKBACK:
Players may send sprint packets to the server just before attacking an
entity in order to do a knockback on this entity. This check will try to
identify players doing this.
active:
Should players be checked for this behavior.
interval:
The minimal interval in milliseconds to enable sprinting before
attacking an entity (50 milliseconds is a good default value).
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 difference between
the interval defined in the configuration file and the real interval.
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.
----------------------------- INVENTORY Subsection -----------------------------
Checks that at least technically have to do with the inventory or usage of
items can be found here.
1) DROP:
The "inventory.drop" check. It limits how many separate items a player can
drop onto the ground within a specific time. Dropping a lot of separate
items at once can cause lag on the server, therefore this check exists.
active:
Should the check be enabled. Set to false if you are not interested in
this at all.
time:
Over how many seconds should dropped items be counted, before the
counter gets reset and starts at zero again.
limit:
How many items may be dropped in the timeframe that is specified by
the "time" setting. Please consider that dying causes a player to drop
up to 36 separate items (stacks). Therefore this value shouldn't be
set below ~50.
actions:
What should happen when a player goes beyond the set limit. Default
settings log a message and kick the player from the server. The VL of
the drop check symbolizes how many items a player dropped beyond the
set limit. If the limit is 100 and he tried to drop 130, he will have a
Violation Level of 130 - 100 = 30.
2) INSTANTBOW:
Players may attack extremely fast and with a fully charged bow without
waiting for it to be fully pulled back. This is a significant advantage in
PvP and PvE combat.
active:
Should players be checked for this behavior. Set to false if you don't
care about players using bows faster than normally possible.
actions:
What should happen if the player fails this check. Default is to stop
the attack ("cancel" it) and log messages. The Violation Level (VL) for
this check the time difference between how long it took the player to
fire an arrow and how long NoCheatPlus thinks he should have taken, in
1/10 seconds. Therefore a VL of 10 would mean that the player shot an
arrow 1 second faster than NoCheatPlus expected. The VL gets increased
with every failed check and slowly decreased for every passed check.
3) INSTANTEAT:
Players may eat various kinds of food instantly instead of waiting the
usual time munching on the item.
active:
Should players be checked for this behavior. Set to false if you don't
care about players eating their food faster than normally possible.
actions:
What should happen if the player fails this check. Default is to stop
the eating ("cancel" it) and log messages. The Violation Level (VL) for
this check the time difference between how long it took the player to
eat his food and how long NoCheatPlus thinks he should have taken, in
1/10 seconds. Therefore a VL of 10 would mean that the player ate his
food 1 second faster than NoCheatPlus expected. The VL gets increased
with every failed check and slowly decreased for every passed check.
------------------------------ MOVING Subsection -------------------------------
Checks that at least technically have to do with the player moving around or
impacting the world with his movement can be found here.
1) RUNFLY:
Players may move in illegal ways (flying, running too fast) or try to
trick the server into thinking that they are not falling/flying by
cleverly manipulating the data that they send to the server.
active:
Should players get checked for this type of movement related hacks at
all. If deactivated, player may freely move around on the server, fly
or run really fast.
walkspeed:
How fast should the player be allowed to walk. Default is "100",
meaning 100% of normal walking speed. You will not see this option in
your config.yml file, because normally you shouldn't have to change the
walking speed of players at all (NoCheatPlus knows when players sprint,
use Swiftness potions etc and will already adapt the speed based on that
data).
sneakspeed:
How fast should the player be allowed to sneak. Default is "100",
meaning 100% of normal sneaking speed. You will not see this option in
your config.yml file, because normally you shouldn't have to change the
sneaking speed of players at all (NoCheatPlus knows when players sprint,
use Swiftness potions etc and will already adapt the speed based on
that data).
blockspeed:
How fast should the player be allowed to move while blocking. Default is
"100" meaning 100% of normal blocking speed. You will not see this
option in your config.yml file, because normally you shouldn't have to
change the blocking speed of player at all (NoCheatPlus knows when
players block, use Swiftness potions etc and will already adapt the
speed based on that data).
swimspeed:
How fast should the player be allowed to swim. Default is "100",
meaning 100% of normal swimming speed. You will not see this option in
your config.yml file, because normally you shouldn't have to change the
swimming speed of players at all (NoCheatPlus knows when players sprint,
use Swiftness potions etc and will already adapt the speed based on
that data).
verticalswimspped:
How fast should the player be allowed to swim (but on the vertical
axis). Default is "100", meaning 100% of normal swimming speed. You will
not see this option in our config.yml file, because normally you
shouldn't have to change the swimming speed of players at all
(NoCheatPlus knows when players sprint, use Swiftness potions etc and
will already adapt the speed based on that data).
sprintspeed:
How fast should the player be allowed to sprint. Default is "100",
meaning 100% of normal sprinting speed. You will not see this option in
your config.yml file, because normally you shouldn't have to change the
sprinting speed of players at all (NoCheatPlus knows when players
sprint, use Swiftness potions etc and will already adapt the speed based
on that data).
cobwebspeed:
How fast should the player be allowed to move while being into cobweb.
Default is "100" meaning 100% of normal speed while being into cobweb.
You will not see this option in your config.yml file, because normally
you shouldn't have to change the speed while being into cobweb of
players at all (NoCheatPlus knows when players are in cobweb, use
Swiftness potions etc and will already adapt the speed based on that
data).
allowfastsneaking:
Should sneaking players be allowed to move as fast as normal players.
Set this to true, if you use plugins that enable players to do that
(e.g. the "Heroes" plugin or other RPG plugins tend to do that)
allowfastblock:
Should players blocking be allowed to move as fast as normal players.
Set this to true if you use plugins that enable players to do that.
actions:
What should happen when a player sneaks/swims/walks/runs faster than
normally allowed or is flying. Default is to log messages (depending on
how severe the cheating is) and teleport the player to the last known
legitimate location on ground that NoCheatPlus can remember for that
player ("cancel" the movement).
NOFALL:
This is an entire subsection dedicated to the "moving.nofall" check.
It will be used to check if the player has tried to avoid fall
damages.
active:
Should players be checked for a common type of "nofall" hack, that
allows them to avoid taking damage when falling. If you don't care
about fall damage, you can deactivate this. It gets deactivated if a
player is allowed to fly (see some lines below), because it doesn't
make sense to allow flying and then hurt players when they land.
aggressivemode:
Enable an improved version of nofall check, that will catch additional
types of "nofall" hacks and deal damage to players directly. This is
usually safe to activate. It will only work if the "checknofall" is
also set to "true".
actions:
What should happen if a player is considered to be using a "nofall"
hack. Default reaction is to log a message and encourage Bukkit to
deal fall damage anyway ("cancel" the hack). The Violation Level is
the fall distance in blocks that the player tried to avoid. It gets
increased every time that the player fails the check, and decreased
over time if the player doesn't fail the check.
FLYING:
This is an entire subsection dedicated to the "moving.flying" check.
It will be used instead of the "runfly" check whenever a player has
the right to fly.
allowflyingalways:
Should all players be allowed to fly always.
allowflyingincreative:
Should players that are set to "creative mode" be allowed to fly. If
they are already allowed because of "allowflyingalways" to fly, this
setting gets ignored.
flyingspeedlimithorizontal:
How many 1/100 blocks may a player fly horizontal within one "step".
The official "creative mode" flying reaches speeds of about 0.6
blocks which means a value of 60 here.
flyingspeedlimitvertical:
How many 1/100 blocks may a player fly vertically up within one
"step". A value of 100 which means 1 block seems reasonable for most
cases.
flyingheightlimit:
What is the maximum height (in blocks) that a player may reach by
flying, relative to the max world height he is in. Some servers
experience lag when players fly very, very high. This value is how
far above the map height a player may fly.
actions:
What should happen if a player flies faster/higher than defined here?
Default is to log messages and to prevent the player from moving
("cancel" his last movement). The Violation Level (VL) of this check
is the distance that the player went beyond what NoCheatPlus allowed
him. The VL increases with every failed check and slowly decreases for
every passed check.
BEDFLYING:
This is an entire subsection dedicated to the "moving.bedflying" check.
It will be used instead as a complements of the running check to make
sure that the player isn't try to fly by sending bed leaving packets.
This technique can also be used to avoid fall damages.
active:
Should players get checked for this type of movement related hacks at
all. If deactivated, player may be able to fly (but really slowly).
actions:
What should happen if a player flies but isn't allowed to do so?
Default is to log messages and to prevent the player from moving
("cancel" his last movement). The Violation Level (VL) of this check
is the distance that the player went beyond what NoCheatPlus allowed
him. The VL increases with every failed check and slowly decreases for
every passed check.
2) MOREPACKETS:
The morepackets check is complementary to the "runfly" check. While the
"runfly" check(s) limit the distance a player can move per step, this
"morepackets" check limits the number of "steps" a player may take per
second. A normal value is 20 steps per second.
active:
Should players be checked for this kind of cheating. If you are not
interested in players that cheat that way, set this to false. It is a
good idea to have this active, because players that cheat by sending
more packets than normally allowed may lag the server (each of those
packets has to be processed, after all).
actions:
What should happen if a player is considered to be cheating by taking
more steps per second than normal. Default is to log messages and
teleport the player back to a location where he was ~1 second before
("cancel" his movement). The Violation Level VL is the number of
packets that the player sent beyond the expected amount.
3) MOREPACKETSVEHICULE:
The morepacketsvehicule check is complementary to the "morepackets" check.
While the "morepacket" check limit the number of player-move packets send
per second, this "morepacketsvehicle" limit the number of vehicule-move
packets sent per second. A normal value is 20 packets per second.
active:
Should players be checked for this kind of cheating. If you are not
interested in players that cheat that way, set this to false. It is a
good idea to have this active, because players that cheat by sending
more packets than normally allowed may lag the server (each of those
packets has to be processed, after all).
actions:
What should happen if a player is considered to be cheating by taking
more steps per second than normal. Default is to log messages and break
the boat the player is using. The Violation Level VL is the number of
packets that the player sent beyond the expected amount.
4) WATERWALK:
The waterwalk check is used to prevent players from walking on water using
a client dedicated to griefing (this mode is usually called Jesus mod).
Firstly, it'll check if the player's move is valid (not only moving the X
and Z axes but also on the Y axis and, of course, if the player is near the
surface (most of the griefing client set the player 0.3 blocks under the
water surface). Secondly, it'll make sure the player is jumping on the
surface of the water by checking his velocity.
active:
Should players be checked for this kind of cheating. If you are not
interested in players that cheat that way, set this to false. It is a
good idea to have this active, because players won't be able to cross
easily the oceans.
actions:
What should happen if a player is considered to be cheating by walking
on water. Default is to log messages and to prevent the player from
moving ("cancel" his last movement). The Violation Level (VL) of this
check is the distance between the player and the surface or how far away
is his velocity from a regular value. The VL increases with every failed
check and slowly decreases for every passed check.
--------------------------------------------------------------------------------
------------------------------- 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% sure
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. ;)