summaryrefslogtreecommitdiffstats
path: root/EssentialsAntiCheat/Instructions.txt
diff options
context:
space:
mode:
Diffstat (limited to 'EssentialsAntiCheat/Instructions.txt')
-rw-r--r--EssentialsAntiCheat/Instructions.txt939
1 files changed, 939 insertions, 0 deletions
diff --git a/EssentialsAntiCheat/Instructions.txt b/EssentialsAntiCheat/Instructions.txt
new file mode 100644
index 000000000..e7dd42630
--- /dev/null
+++ b/EssentialsAntiCheat/Instructions.txt
@@ -0,0 +1,939 @@
+
+################################################################################
+# #
+# Important files, config.yml or "clean up your stuff" #
+# #
+################################################################################
+
+ 1) The config file for NoCheat 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 NoCheat 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 #
+# #
+################################################################################
+
+ NoCheat 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 NoCheat know it is a log action. Don't remove
+ it from the action, or NoCheat 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 NoCheat know it is a command action. Don't
+ remove it from the action, or NoCheat 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 #
+# #
+################################################################################
+
+
+ NoCheat only supports "SuperPerms", CraftBukkits official permission framework.
+ You'll need to use a permissions plugin that supports "SuperPerms" to use it
+ with NoCheat. 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 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 "nocheat.checks.moving.morepackets". That
+ means he is allowed to use that hack/cheat because NoCheat won't check/stop it.
+
+
+------------------------ MOVING Permissions for CHECKS -------------------------
+
+ - nocheat.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.
+
+ - nocheat.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.
+
+ - nocheat.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 NoCheat prevents faster movement in
+ water.
+
+ - nocheat.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 NoCheat prevents faster
+ movement while sneaking.
+
+ - nocheat.checks.moving.nofall
+ Allows the player to avoid fall damage by using hacks. Normally NoCheat
+ 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.
+
+ - nocheat.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.
+
+
+-------------------- BLOCKBREAK Permissions for CHECKS -------------------------
+
+ - nocheat.checks.blockbreak.reach
+ Allows the player to break blocks that are further away than usual.
+
+ - nocheat.checks.blockbreak.direction
+ Don't force players to look at the blocks that they try to destroy.
+
+ - nocheat.checks.blockbreak.noswing
+ Don't force players to swing their arm when breaking blocks.
+
+
+-------------------- BLOCKPLACE Permissions for CHECKS -------------------------
+
+ - nocheat.checks.blockplace.reach
+ Allows the player to place blocks that are further away than usual.
+
+ - nocheat.checks.blockplace.direction
+ Don't force players to look at the blocks that they try to place.
+
+
+--------------------- INVENTORY Permissions for CHECKS -------------------------
+
+ - nocheat.checks.inventory.drop
+ Don't limit the number of items that a player may drop within a short time
+
+ - nocheat.checks.inventory.instantbow
+ Don't prevent players from shooting their bows instantly without taking the
+ usual time to pull the string back
+
+ - nocheat.checks.inventory.instanteat
+ Don't prevent players from eating their food instantly without taking the
+ usual time to munch on it
+
+
+----------------------- CHAT Permissions for CHECKS ----------------------------
+
+ - nocheat.checks.chat.spam
+ Don't limit the number of messages and commands that a player may send in a
+ short timeframe
+
+ - nocheat.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 ----------------------------
+
+ - nocheat.checks.fight.direction
+ Don't force players to look at their targets while fighting
+
+ - nocheat.checks.fight.noswing
+ Don't force players to move their arms while fighting
+
+ - nocheat.checks.fight.reach
+ Don't limit the distance for fights
+
+ - nocheat.checks.fight.speed
+ Don't limit the number of attacks that the player can do per second
+
+ - nocheat.checks.fight.godmode
+ Don't prevent the player from keeping the temporary invulnerability that he
+ gets when taking damage
+
+ - nocheat.checks.fight.instantheal
+ Don't prevent the player from accellerating their health generation by
+ food saturation
+
+
+--------------------------------------------------------------------------------
+----------------------- Permissions for ADMINISTRATION -------------------------
+--------------------------------------------------------------------------------
+
+ - nocheat.admin.chatlog
+ The player will receive log messages that are directed at the "ingame chat"
+ as a normal chat message ingame.
+
+ - nocheat.admin.commands
+ The player gets access to some of the "/nocheat" commands
+
+ - nocheat.admin.reload
+ In combination with "nocheat.admin.commands", the player gets access to the
+ "/nocheat reload" command, which will cause NoCheat to reread its config
+ files.
+
+
+--------------------------------------------------------------------------------
+---------------------- Things to know about Permissions ------------------------
+--------------------------------------------------------------------------------
+
+ NoCheat defines "parent" nodes for all permissions already for you. That means
+ you can use one of the following:
+
+ - nocheat
+ - nocheat.admin
+ - nocheat.checks
+ - nocheat.checks.moving
+ - nocheat.checks.blockbreak
+ - nocheat.checks.blockplace
+ - nocheat.checks.inventory
+ - nocheat.checks.chat
+ - nocheat.checks.fight
+
+ 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
+ NoCheat permissions.
+
+
+ You can exclude a specific player from getting logged by appending ".silent"
+ to the relevant permission node of the specific check. E.g.
+
+ - nocheat.checks.moving.nofall.silent
+
+ will prevent NoCheat 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 "nocheat 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 NoCheats 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 NoCheat.
+
+ 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. "&7NC&f:" would produce
+ the letters NC in red (&7), followed by black text (&f).
+
+ filename:
+
+ The name of the logfile that NoCheat will use to log its messages. The
+ default name is "nocheat.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 NoCheat to show messages related to checks in the console. Error
+ messages may still get displayed there though.
+
+ ingamechat:
+
+ Should NoCheat display messages in the ingame chat? Set to false if you
+ don't want NoCheat to show messages ingame. The messages will only be seen
+ by players with the permission node "nocheat.admin.chatlog" or if you don't
+ use a permissions plugin, by players who are OP.
+
+ showactivechecks:
+
+ Should NoCheat display lists of checks that are enabled for each world. Set
+ to true if you are unsure that your (multiworld) setup of the config files
+ is done correctly.
+
+ debugmessages:
+
+ Should some additional messages be displayed in the server console, e.g.
+ about NoCheat encountering lag. The displayed messages may change from
+ version to version. This is deactivated by default.
+
+
+--------------------------------------------------------------------------------
+-------------------------------- CHECKS Section --------------------------------
+--------------------------------------------------------------------------------
+
+ Everything that in has to do with the various checks that NoCheat runs on the
+ players. Use these to specify what will be done, how it will be done and what
+ happens if somebody fails checks.
+
+
+----------------------------- 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 NoCheat 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 NoCheat 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 NoCheat 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 NoCheat 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 (NoCheat 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 (NoCheat 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 (NoCheat knows when players sprint,
+ 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 (NoCheat knows when players sprint,
+ 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)
+
+ 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 NoCheat can remember for that player
+ ("cancel" the movement)
+
+ checknofall:
+ 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.
+
+ nofallaggressivemode:
+ 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".
+
+ nofallactions:
+ 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 NoCheat 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
+
+
+---------------------------- BLOCKBREAK Subsection -----------------------------
+
+ Checks that at least technically have to do with the player breaking blocks.
+
+ 1) 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 NoCheat
+ 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.
+
+ 2) 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 NoCheat 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.
+
+ 3) 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) 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 NoCheat
+ 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.
+
+ 2) 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 NoCheat 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.
+
+
+------------------------------- CHAT Subsection --------------------------------
+
+ Checks that at least technically have to do with chat or commands.
+
+ 1) 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.
+
+ 2) SPAM:
+
+ Players may send a ton of messages/commands in a short time to cause
+ lag or even crash a server.
+
+ active:
+ Should player messages get checked for sending of too many messages.
+
+ whitelist:
+ A " " (whitespace) separated list of words. Messages that start with
+ these sequences will not be counted. This is ideal to exempt commands
+ from getting filtered, by e.g. adding "/help" to the list.
+
+ timeframe:
+ For how many seconds should messages and commands be counted, before
+ the counters get reset and counting starts at zero again.
+
+ messagelimit:
+ How many "normal" chat messages may be sent within the timeframe. All
+ messages that don't start with "/" are considered "normal".
+
+ commandlimit:
+ How many commands may be issued within the timeframe. Some mods (e.g.
+ TooManyItems) send a command on every mouse-click, which may cause
+ problems if this is set too low. So choose wisely. Every message that
+ starts with "/" is considered a command, even if the command doesn't
+ exist.
+
+ actions:
+ What should happen if players send more messages/commands than declared
+ by the above limits? Default is to prevent the message/command from
+ being processed ("cancel" them) and for severe cases where players send
+ a lot of messages/commands, kick them. The Violation Level (VL) is the
+ number of messages/commands that were sent beyond the specified limits.
+ It gets increased for every message/command by 1 and reset to zero when
+ the "timeframe" has passed.
+
+
+------------------------------ 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 NoCheat 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 NoCheat
+ 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.
+
+
+--------------------------------------------------------------------------------
+------------------------------- 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 #
+# #
+################################################################################
+
+
+- NoCheat isn't perfect and won't prevent all forms of cheating. It's a best
+ effort approach.
+
+- NoCheat may make mistakes. Don't see everything NoCheat says or does as
+ indisputable fact that somebody cheated. It's not possible to be 100% sure
+ if somebody is cheating or not, NoCheat 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. ;)