├── .gitignore
├── Development
├── API.md
├── Build-Infos.md
├── Debugging.md
├── Dev-Pinboard.creole
├── Discussion
│ ├── ClientSideAntiCheat.md
│ ├── Design.md
│ ├── FakeEntities.md
│ └── Future.md
├── Notable-Builds.md
├── Roadmap.md
└── bip
│ ├── bip-3.13.6-and-earlier.md
│ ├── bip-3.13.7-and-later.md
│ ├── bip-3.15.0-and-later.md
│ └── bip-3.16.1-and-later.md
├── FAQ.md
├── Features-and-Compatibility.md
├── Fundamentals.md
├── Getting-Started.md
├── Known-Issues.md
├── Others
├── Backgrounds.md
└── Lag.md
├── README.md
├── Resources
├── ActionExplenation.gif
├── ActionLevels.gif
├── Banners
│ ├── NoCheatPlusChristmasNewYear.gif
│ └── NoCheatPlusDefault.gif
├── Icons
│ ├── NoLogo.gif
│ └── PDF.gif
├── Installation.gif
├── LagMeter.gif
├── Multiworld.gif
├── Notepad++.gif
├── StringsExplenation.gif
├── actions.png
└── world_nether_config.zip
├── Settings
├── Checks
│ ├── Checks.md
│ ├── TODOList.txt
│ ├── [Blockbreak]-Direction.md
│ ├── [Blockbreak]-Fastbreak.md
│ ├── [Blockbreak]-Frequency.md
│ ├── [Blockbreak]-Noswing.md
│ ├── [Blockbreak]-Reach.md
│ ├── [Blockbreak]-Wrongblock.md
│ ├── [Blockinteract]-Direction.md
│ ├── [Blockinteract]-Reach.md
│ ├── [Blockinteract]-Speed.md
│ ├── [Blockinteract]-Visible.md
│ ├── [Blockplace]-Against.md
│ ├── [Blockplace]-Autosign.md
│ ├── [Blockplace]-Direction.md
│ ├── [Blockplace]-Fastplace.md
│ ├── [Blockplace]-Noswing.md
│ ├── [Blockplace]-Preventmisc.md
│ ├── [Blockplace]-Reach.md
│ ├── [Blockplace]-Scaffold.md
│ ├── [Blockplace]-Speed.md
│ ├── [Chat]-Captcha.md
│ ├── [Chat]-Color.md
│ ├── [Chat]-Commands.md
│ ├── [Chat]-Logins.md
│ ├── [Chat]-Relog.md
│ ├── [Chat]-Text.md
│ ├── [Chat]-Warning.md
│ ├── [Combined]-Bedleave.md
│ ├── [Combined]-Enderpearl.md
│ ├── [Combined]-Improbable.md
│ ├── [Combined]-Invulnerable.md
│ ├── [Combined]-Munchhausen.md
│ ├── [Combined]-Yawrate.md
│ ├── [Fight]-Angle.md
│ ├── [Fight]-Criticals.md
│ ├── [Fight]-Direction.md
│ ├── [Fight]-Fastheal.md
│ ├── [Fight]-General.md
│ ├── [Fight]-Godmode.md
│ ├── [Fight]-Noswing.md
│ ├── [Fight]-Reach.md
│ ├── [Fight]-Selfhit.md
│ ├── [Fight]-Speed.md
│ ├── [Inventory]-Drop.md
│ ├── [Inventory]-Fastclick.md
│ ├── [Inventory]-Fastconsume.md
│ ├── [Inventory]-Gutenberg.md
│ ├── [Inventory]-Hotfix.md
│ ├── [Inventory]-Instantbow.md
│ ├── [Inventory]-Instanteat.md
│ ├── [Inventory]-Inventorymove.md
│ ├── [Inventory]-Items.md
│ ├── [Inventory]-Moreinventory.md
│ ├── [Inventory]-Open.md
│ ├── [Moving-Vehicle]-Envelope.md
│ ├── [Moving-Vehicle]-General.md
│ ├── [Moving-Vehicle]-Morepackets.md
│ ├── [Moving]-Creativefly.md
│ ├── [Moving]-General.md
│ ├── [Moving]-Morepackets.md
│ ├── [Moving]-Nofall.md
│ ├── [Moving]-Passable.md
│ ├── [Moving]-Survivalfly.md
│ ├── [Net]-Attackfrequency.md
│ ├── [Net]-Flyingfrequency.md
│ ├── [Net]-General.md
│ ├── [Net]-Keepalivefrequency.md
│ ├── [Net]-Packetfrequency.md
│ ├── [Net]-Sounddistance.md
│ └── [Net]-WrongTurn.md
├── Commands.md
├── Configuration.md
├── Data.creole
├── General.md
├── Logging.creole
├── Miscellaneous.md
├── Multiworld.md
├── Permissions.md
├── Protection.creole
└── [Settings]-Compatibility.md
├── YAML.md
├── _Sidebar.md
└── wInfos
├── Alternative-Markdown.md
├── Contribution-Guidelines.md
└── Markown-Examples.md
/.gitignore:
--------------------------------------------------------------------------------
1 | *.db
2 | /.project
3 |
--------------------------------------------------------------------------------
/Development/API.md:
--------------------------------------------------------------------------------
1 | # History of API changes
2 | * Not sure we can keep double-bookkeeping here.
3 |
4 | # Maven
5 |
6 |
7 | Repositories:
8 | ```xml
9 |
10 | md_5-snapshots
11 | https://repo.md-5.net/content/repositories/snapshots/
12 |
13 |
14 | md_5-releases
15 | https://repo.md-5.net/content/repositories/releases/
16 |
17 | ```
18 |
19 | Depend on NoCheatPlus (snapshot):
20 | ```xml
21 |
22 | fr.neatmonster
23 | nocheatplus
24 | 3.16.1-SNAPSHOT
25 | provided
26 |
27 | ```
28 |
29 | # Official API
30 | The static access starting point can be: `NCPAPIProvider.getNocheatPlusAPI()`
31 |
32 | This is largely incomplete, but contains some useful functionality, such as getting handles for registrations with the IGenericInstanceRegistry.
33 |
34 | # Hooking into NoCheatPlus
35 | The hooks package of NCPCore contains two "managers" for different concepts to exempt players from checks.
36 |
37 | `NCPExemptionManager` This is the simple way to just exempt a player from a check, then unexempt. The current implementation is meant to be used short-term rather. Different plugins using exemptions might easily conflict. There is a command to set exemptions manually as well (useful for faster testing). If a player is exempted from a check, the check will not be run at all (for virtually all cases).
38 |
39 | `NCPHookManager` This allows to register "hooks" that get called in case of violations and allow to do more complex stuff ("after-failure" hooks: the check is run). Hooks are able to prevent further actions processing, you can also register "stats" hooks that come first or force your hook to be registered before other hooks by implementing an extra interface. Cancelling the actions processing will not reset violation levels(!). For some cases you can reset them manually, though that is not officially supported yet (Example: MovingData.getData(player).clearFlyData() ...clearMorePacketsData() ...survivalFlyVL = 0).
40 |
41 | **Moving/flying skills** might work with adding velocity to the player (MovingData) - if not, please provide us with a [debug log](Debugging). Vertical velocity currently supports a few flags (fr.neatmonster.nocheatplus.checks.moving.velocity.VelocityFlags) - this may be extended to control automatic velocity removal better (flags to retain entries, flags for horizontal velocity).
42 |
43 | **Event handlers relating to listeners of NoCheatPlus:** Register listeners with the NoCheatPlusAPI, relating to sorting order.
44 | * NoCheatPlusAPI.addComponent(Bukkit Listener) or NoCheatPlusAPI.getEventRegistry() to add an efficient MiniListener.
45 | * Use @RegisterMethodWithOrder for per-method registration order with Bukkit Listeners.
46 | * Use @RegisterEventsWithOrder for a preset for all event handlers contained in the listener.
47 | * Pass a RegistrationOrder instance directly to the event registry to have a preset.
48 | * Implement IRegisterWithOrder with a MiniListener. (@RegisterWithOrder is also supported for MiniListener instances, for obscure reason.).
49 | * (Note 1: MiniListener instances only have one event handler method.)
50 | * (Note 2: Currently the tags for listeners within NCP are not fully set up - check listeners should have something with NoCheatPlus inside. Priority values have not been considered yet either. This will soon receive an overhaul, so you can distinguish between feature and system listeners, e.g. to have data adjusted before wrapping around actual check listeners.)
51 |
52 | # Other hooking spots
53 | There are more spots that are accessible, but most are "not officially supported", such as `ConfigurationManager`, `DataManager` and `ExecutionHistory`. Some are designs of older times, some are more like refactoring stages (probably stuck in it slightly).
54 |
55 | Some methods of the TickTask (utilities) might be useful.
56 |
57 | Reloading the configuration can also be registered for:
58 | * NCPReloadEvent (commands.CommandHandler). Called after reload done.
59 | * You can register a component implementing INotifyReload (commands) to receive word of reloading the config just before the event is fired. This is also used by some checks and other components of NCP. These are cleared on reloading.
60 |
61 | The plugin class itself does have some methods some of which could be of use, however we prefer you to use NCPAPIProvider.getNoCheatPlusAPI(), since we might separate some API from the plugin class itself, keeping the static API provider as long as possible (since 3.9.2-RC-b520 some static API has been moved to not-static, still implemented in the plugin class, should use NoCheatPlusAPI, though).
62 |
63 | # Examples
64 |
65 | ## Adjusting the set-back location.
66 | Essentially MovingData.setTeleported from within a hook does the job - it will be handled as the location to set "back" to, only do this if IViolationData.willCancel() returns true, otherwise nothing else should be done, except perhaps to ensure not to let players collide with or pass through blocks with this (and don't allow flying, ...).
67 |
68 | Notes from the past with some potentially useful details (note that some points are not up to date anymore): https://gist.github.com/asofold/b05c0a17c605e7c69bb30ee5e79a6e7b
69 |
70 |
71 | # Related
72 | * [Debugging](Debugging)
73 |
--------------------------------------------------------------------------------
/Development/Build-Infos.md:
--------------------------------------------------------------------------------
1 | Somewhat digested version of a changes history.
2 | * [Scroll down: Build Info Pages](https://github.com/NoCheatPlus/Docs/wiki/Build-Infos#build-info-pages)
3 | * [Scroll down: Related links](https://github.com/NoCheatPlus/Docs/wiki/Build-Infos#related-links)
4 |
5 | # Release types
6 | | Release type | Explanation |
7 | | :------------| :---------- |
8 | | **RC release** | Official stable release. The developer is somewhat convinced, that we can't do much better within short term. |
9 | | **release candidate** | Meant to become a RC release soon, waiting for last minute feedback. |
10 | | **BETA Release** | Official beta release, possibly some areas remain uncovered, or it's not been time to test further. A _mostly stable_ development build might also be released as beta (marked as recommended on Jenkins). |
11 | | **mostly stable** | A development build that has been tested a lot and appears to be good to use, or at least the best option for a specific Minecraft version. |
12 | | development | Ordinary development builds. |
13 | | [BLEEDING] | Bleeding edge development builds that contain changes, which need a lot of testing to consolidate, or which are of experimental nature, consequently running into issues with these can't be excluded. |
14 |
15 | Broken builds usually are marked as _broken_ or _deficient_ or get removed from Jenkins. They should not appear in this list, unless to indicate that people should update.
16 |
17 | # Related links
18 | * [A complete list of changes grouped by build number: Jenkins.](https://ci.md-5.net/job/NoCheatPlus/changes)
19 | * [Complete list of changes on GitHub.](https://github.com/NoCheatPlus/NoCheatPlus/commits/master)
20 | * [**Quick overview over the latest notable builds by Minecraft version.**](https://github.com/NoCheatPlus/Docs/wiki/Notable-Builds)
21 | * [What's next: development roadmap.](Roadmap)
22 |
23 | # Build Info Pages
24 | * [NoCheatPlus 3.16.1 and later](https://github.com/NoCheatPlus/Docs/wiki/bip-3.16.1-and-later)
25 | * [NoCheatPlus 3.15.0 and later](https://github.com/NoCheatPlus/Docs/wiki/bip-3.15.0-and-later)
26 | * [NoCheatPlus 3.13.7 and later](https://github.com/NoCheatPlus/Docs/wiki/bip-3.13.7-and-later)
27 | * [NoCheatPlus 3.13.6 and earlier](https://github.com/NoCheatPlus/Docs/wiki/bip-3.13.6-and-earlier)
28 |
29 |
--------------------------------------------------------------------------------
/Development/Debugging.md:
--------------------------------------------------------------------------------
1 | # Create Debug Output
2 |
3 | **Most of these options are not really meant to be used on (big) live/production servers, some can cause extreme amounts of log file output and result in performance issues.**
4 |
5 | NoCheatPlus allows you to generate debug logs in various ways. With this you can help us tracking issues or cheats, by generating debug output selectively and providing us a paste link, or link/send a compressed file.
6 |
7 | Mostly console output will be interesting, but also the in-game chat might be useful, check the output-client.log file to not need to use screenshots, unless for showing map/block setups.
8 |
9 | If you try to report a false positive and want to help finding the causes faster this can be very helpful. Rather send a little longer log not to miss out parts, so unless familiar with it you should add a little before and after the violation message of TestNCP for instance. For moving always at least from jumpphase=0 until the violation and "set back to..." a couple of lines below. If possible or not sure it is a singular issue, include a couple of violations.
10 |
11 | **Please use a paste or send as a (compressed) file attachment by mail if the output is a little bit longer.**
12 |
13 | If sending a server log, you might want to ensure to not expose any sensitive data, such as logged session keys, ips or whatever your log may contain.
14 |
15 | ### Debug flags in the configuration
16 | You can manually enable permanent debugging with setting a/the check-group debug flag, like _checks.moving.debug_ to true. Debugging all checks can be done with setting _checks.debug_ to true. Additional output can be generated with enabling logging.extended.status.
17 |
18 | NoCheatPlus allows to set debug flags for almost all check groups. The flag in the logging section can also be set, but it will not lead to more check-related output. Some debugging output is only generated, if the configuration flags are set, e.g. with ProtocolLib.
19 |
20 | **This is not suitable for production servers with many players on, due to the amount of logging done with each move for each player.** For production servers we recommend using on-the-fly debugging rather.
21 |
22 | ### On-the-fly debug output for individual players
23 | Using the command _/ncp debug player ... (Permission: nocheatplus.command.debug) allows you to start debug logging for a player. The output is written to the log file specified in the configuration (not to the console).
24 |
25 | Syntax 3.16.1 / build 1144: /ncp debug player (player-name-or-uuid) yes/no/default[:checktype1[:checktype2...]] - For individual checks as well as groups (ALL, BLOCKBREAK, INVENTORY, FIGHT, ...).
26 | * Examples:
27 | * `/ncp debug player abcdde yes` Same with `/ncp debug player abcdde` Debug all checks for player name 'abcdde'.
28 | * `/ncp debug player abcdde yes:MOVING_SURVIVALFLY` Turn on debug for only SurvivalFly check.
29 | * `/ncp debug player abcdde yes:MOVING:FIGHT_CRITICAL` Turn on debug for all moving releated checks and critial check.
30 | * `/ncp debug player abcdde default` Reset to default state for all checks, something still remains on if it is set in config
31 | * `/ncp debug player abcdde no` Turn off debug mode for all checks.
32 |
33 | Syntax 3.16.0 and before and slightly later: /ncp debug player (player-name) - No resetting other than 'ncp remove' or 'ncp reload'.
34 |
35 | The debug logging may reset with the player logging out. In order to turn on-the-fly debugging off, you can either use _/ncp debug player (player-name-or-uuid) default_ (3.16.1 and later) or more coarse... _/ncp remove (player)_ (Permission: nocheatplus.command.remove) or _/ncp reload_ , with the latter removing all data for all players.
36 |
37 | For more confined output you can set the log file to a folder name, such as "logs". Then you can use _/ncp reload_ before and after debugging players, and the output will be confined to one log file. DrawBack is that this call is slightly heavier, due to affecting all players data and also due to reloading the configuration.
38 |
39 | With using _/ncp reload_ repeatedly, e.g. for recording individual sequences to individual files, you'd have to repeat _/ncp debug player (player)_, because on-the-fly debugging will reset with reloading the configuration. The advantage might be more easy to find log sequences, if reproducing the issue is difficult.
40 |
41 | ### Debug level (Legacy)
42 | For the most detailed output use a development build of NCP (or manually edit BuildParameters.properties in the jar and set DEBUG_LEVEL to something like 10000).
43 |
44 | ### Allviolations hook
45 | NCP can log all violations of all players to the console and/or to the ingame notification channel. You can activate the allviolations hook in the configuration, under logging.extended.allviolations. If you want more fine grained control over who sees those notifications and whose output you want to see, use TestNCP from the NCPTools collection (see below).
46 |
47 | # NCPTools
48 |
49 | NCPTools at BukkitDev (https://dev.bukkit.org/projects/ncptools) is a collection of tools we use for testing and debugging with NoCheatPlus.
50 |
51 | These tools are meant for testing and debugging with test servers.
52 |
53 | See the README.txt in the zip file or on the download page for more details.
54 |
55 | ### FightHelper
56 | Reduce all damage to 1 or 0, so the player does not die, keep restoring health. Meant for continuous combat testing, without need for respawning and teleporting all the time. This might affect some plugins or calculations due to the reduced damage - e.g. god mode will behave differently with this on.
57 |
58 | ### MoreCommands
59 | Add more commands under /morecommands (/more), that are useful for setting up a test server. One permission per command (morecommands.command[.subcommandname]). Most commands are not meant for ordinary staff.
60 | Setting up a test server (or admin-only, DESTRUCTIVE!):
61 | * more op : Set op and creative mode at once.
62 | * more ordinary : Remove op and set to survival mode.
63 | * more pyramid : Create pyramids with a bedrock base and other blocks on top (snow layers, stairs, steps, water/lava, any blocks).
64 | * more setradius : Set blocks within xz-radius (and between up to two y-offsets, from the block you stand on).
65 | * more snowlayer : Place random height snowlayer on top of existing blocks within some radius.
66 | * more setspawn : Set world spawn.
67 | Testing:
68 | * more food : Stack up food or add bread.
69 | * more heal : Heal + hunger.
70 | * more seteffect EFFECT@mc-levelxseconds : Set potion effects hard (no args is remove all).
71 | * more spawn : Teleport to the world spawn.
72 | * more velocity : Add velocity.
73 | * more fly : toggle flying.
74 | * more walkspeed
75 | * more flyspeed
76 | * more permissions : list effective permissions of a player, allowing to confine output to sub-nodes of given arguments.
77 | * more day : Set day time and fine weather.
78 |
79 | ### MoveLogger
80 | Log all moves by all player to the console. Meant to track issues with logging or if NCP is not there, to be able to compare.
81 |
82 | ### SimpleConfigEditor
83 | Handle with care: Simplistic ingame configuration editing, no safety whatsoever, not for ordinary staff - avoid typos :), especially with tab completion (e.g. save config to WorldGuard.jar).
84 | File: sce.ja
85 | Command: /simpleconfigeditor or /sce (simpleconfigeditor.command)
86 | Sub commands:
87 | -
88 |
89 | ### TestNCP
90 | This plugin is found at the project site of [NCPTools].
91 | TestNCP allows you receiving console and in-game output for every violation, even if logging would not normally show the message due to low VL for instance.
92 |
93 | The plugins configuration allows setting testers, wither '*' for all players (spam), or the player names for distinct players.
94 |
95 | Input about violations can be confined to individual players using _/testncp input (player)_
96 |
97 | ### EventMirror (Legacy, not contained in the collection at present)
98 | This plugin is found at the project site of [NCPTools].
99 | EventMirror sends in-game info about players actions, to allow checking if certain events happened at all. It does not cover all existing events, though.
100 |
101 | Any Player can use _/mirror_ to receive events in-game. The messages are restricted to the player that is involved.
102 |
103 | Use _nocheatplus.admin.debug_ permission to get more debug informations.
104 |
105 |
--------------------------------------------------------------------------------
/Development/Discussion/ClientSideAntiCheat.md:
--------------------------------------------------------------------------------
1 | # Client Side Anti Cheat
2 | This topic keeps popping up, thus we need to clarify our position on this kind of idea.
3 |
4 | ## The Idea
5 |
6 | * Have a client-side solution for detecting or preventing cheats.
7 |
8 | ## Pro
9 |
10 | * The client-side is literally forced to be legit.
11 | * Cheat client developers can't possibly bypass checking for checksums of the binaries/jars.
12 | * Obfuscation rules, cheat client developers have an extra hard time finding what to change to bypass stuff.
13 | * Nodus doesn't work anymore.
14 | * Client side binary installers will ensure no tricks can be used.
15 | * Memory scanning allows to do stuff you won't even want to imagine.
16 | * Ridiculous constraints like not running more than two programs at a time will ensure that no one can bypass this.
17 |
18 | ## Contra Pro
19 |
20 | * Things last until you have one capable cheat client developer interested in "bypassing shit". They're as forced to be legit as they're forced to use a vanilla client for a vanilla server.
21 | * Checksums don't really help, they can be found, faked and will finally be forgotten.
22 | * Obfuscation doesn't prevent people altering the Minecraft server into a system capable of running plugins, why would it scare off a cheat client developer who is used to dealing with obfuscated client code in the first place?
23 | * Nodus can still be updated.
24 | * Client side binary installers will be worked around like every single other game installer of the past and present. Truly legit people may fear malware, unwanted data leaking, privacy risks, security risks, and so on.
25 | * Who wants to have their (entire !?) memory scanned? A capable cheat client developer will prefer to remove that feature by altering the software.
26 | * Ridiculous constraints will be either bypassed by capable cheat client developers having a look at your program, or by players not playing on your server, because it's annoying.
27 | * The client altered by a capable cheat client developer will eventually leak, now (almost) all people can use/do it.
28 |
29 | ## Contra anyway
30 |
31 | * Having to install an extra client just for certain servers is a nuisance in general.
32 | * How trustworthy is such a software, be it a binary installer or just altered obfuscated jar files?
33 | * The more intrusive a software is and the more special things it can do...
34 | * ...the more likely security holes will open.
35 | * ...the more likely it'll be an actual risk to your data (privacy, passwords, pictures).
36 | * ...the more likely no one will have a clue what the software actually is doing.
37 | * ...the more likely you'll bungle the EULA for users from Tonga and might even get dragged to court for distributing malware.
38 | * The more such is used, the more cheat client developers will have a look.
39 | * The less such is used, the more likely it'll contain bugs and pose a security or privacy risk.
40 | * People want more... what will it do next?
41 | * Client side stuff can virtually always be bypassed in a generic way.
42 |
43 | ## To be fair
44 |
45 | To be fair, there is one thing a client side checker can do.
46 |
47 | Requirements:
48 | * The software is hardly used by anyone.
49 | * Your players can be tricked into using it.
50 |
51 | Pro:
52 | * Cheat consumers can't just download a random cheat client and use it on your server. Job done.
53 |
54 | It could still happen that someone pays someone else (or is someone else) who then bypasses that client. In essence you probably don't really need a highly complex client side thing just for this use case, as nobody will even try to make a specialized client.
55 |
56 | # Suggestions
57 |
58 | Where could this possibly lead to?
59 |
60 | ## Future A: HACSS and HACCS
61 |
62 | Hardware Anti Cheat!!
63 |
64 | Think of a fancy piece of hardware needed to connect to your server. The suggested platform would cover an entire wall of a room and allow real-time streaming of everything inside the room to your server side interface (HACSS) or you subscribe to the cloud service (HACCS). Nothing your players could possibly do will go unnoticed, biometric data gathering will allow identifying real-life cheaters in a reliable way.
65 |
66 | ## Future B: PEACE BOTS
67 |
68 | Since nobody is playing anymore anyway, just fake players by using 100% legit bots, also use bots for the remaining lot of actual players, use a fake server for the players to cheat there, and have additional 100% legit bots connect to the real server instead of the real players. Inform the players about their progress on the real server now and then. No more real-life trouble.
69 |
70 | ## Making Sense
71 |
72 | If you want to confine your players to using a certain client, we suggest to do it right. Not sure this is right:
73 | * Open source.
74 | * No tricks, no exposing of additional data, no extra privacy violations, no legal trouble.
75 | * Focus on sending extra packets to the server, with the design aim to erase false positives in the first place. This allows to make server side checks way more strict and removes a lot of server-side workarounds and special cases. Cheating gets harder, because the server expects the extra kinds of packets that just tell in more detail what the player is doing in-game.
76 | * Of course cheating isn't gone that way, relax.
77 |
--------------------------------------------------------------------------------
/Development/Discussion/FakeEntities.md:
--------------------------------------------------------------------------------
1 | # Using fake entities to detect fight-cheats
2 |
3 | ## Idea
4 | * Fake entities are placed and moved around near players.
5 | * Legitimate players are not meant to notice the fake entities in any way.
6 | * A cheat implementation might take them for real and attack them.
7 |
8 | ### Preventing false positives
9 | * Entities might be rendered invisible.
10 | * Render so shortly that players don't notice.
11 | * Moving entities around, such that the legitimate player never is able to hit them.
12 | * Tricks.
13 |
14 | ### Make the entities appear real to the cheat implementation
15 | * Render invisible.
16 | * Adjust field of view.
17 | * More tricks.
18 |
19 | ### Expected benefit of the method
20 | * Cheaters are detected almost 100% of the time.
21 | * False positives hardly exist.
22 | * Banning (almost) instantly is possible.
23 | * Positive PR due to banning real cheaters.
24 | * Performance impact is low, due to only using packet sending for faking entities, possibly run asynchronously.
25 |
26 | ## Problems
27 | Current known issues are:
28 | * Interference with game play: flickering, false positives due to latency (after all something clickable is clickable).
29 | * Easily detectable: Even without using cheats, the use of this method is certainly detectable with quite simple code. Clients could adjust on-the-fly, at least not to get banned.
30 | * Clients can emulate normal clicking. The code is on client side, it's certainly possible to just have the cheat use the vanilla code for estimating what is hit, instead of sending an attack packet for a nearby entity.
31 | * It's unthinkable that players can't see entities, but a cheat running on client code can't determine what's rendered/visible.
32 | * Same goes for bounding boxes: If a player can't click on it, why should a cheat client click on it?
33 | * If the entities are changed such that there is only a very short window to hit an entity with a certain id, you could have a legitimate player still click on it due to latency/congestion, and you will have cheat implementations that just queue the necessary actions and play them out realistically, including emulating clicking like a player.
34 | * Bypasses: Claims are bypasses exist. Very likely, and very likely it'll be bypassed in generic ways, so it won't really pay to use fake entities for direct detection at all.
35 | * You can reduce false positives by having thresholds, demanding multiple hits.
36 | * A player with networking congestion could still see a 1-tick-visible thing and run in circles and keep hitting it for 1 or 2 seconds, despite it being very improbable. This needn't be a problem, however how does the player explain not to have used cheats?
37 | * This doesn't really affect the general problems with the clients being able to bypass it.
38 |
39 | ## Outlook
40 | * What a player can click on a client can click on too. A client may not want to click on things players can't click on. A client may not want to pursue targets that haven't been rendered.
41 | * Only simplistic/old-style clients are caught. Better than nothing (see conclusion).
42 | * Obfuscating real players and entities in more complex ways as well as letting fake entities appear more realistic (don't ask me how to do so without having legitimate players see them), it'll at some point impact system performance, without much potential to actually gain ground, in terms of clients not being able to track real vs. fake.
43 | * Moving away from a more or less direct detection to posing traps for entity trackers is a different topic and has nothing to do with the current "hype".
44 |
45 | ## Conclusion
46 | * Using fake entities will catch current simple clients for a while, but it should be possible to detect and bypass that in generic ways. It's not feasible to use this method on the medium/long run.
47 | * Server side pattern detection will be similarly easy to bypass by adapting cheats, however there is a much higher chance to catch stuff after adjusting patterns to new cheats/clients than with using entities that can be ignored by cheats in generic ways.
48 |
--------------------------------------------------------------------------------
/Development/Notable-Builds.md:
--------------------------------------------------------------------------------
1 | Quick overview about notable builds.
2 |
3 | ## Latest Stable Builds by Minecraft version
4 |
5 | Latest/Most stable builds ordered by the version of Minecraft. In general the latest version(s) and the most significant or popular versions are supported: 1.12.2, 1.11.2, _1.10.2_, _1.9.4_, 1.8.8, 1.7.10 (Pre-DMCA, as long as it takes less effort to keep than to remove: _1.7.2_, _1.6.4_, _1.5.2_, _1.4.5-R1.0_)
6 |
7 | For requests please use [GitHub Issues](https://github.com/NoCheatPlus/Issues/issues).
8 |
9 | | MC (focus) | MC (supported) | NoCheatPlus version | Release type |
10 | | :-------------| :------------- | :------------------ | :----------- |
11 | | 1.12.2 | 1.4.5-R1.0 - 1.12.2 | [3.16.0-RC-sMD5NET-b1134](https://github.com/NoCheatPlus/Docs/wiki/Notable-Builds#3160-rc-smd5net-b1134) | RC release |
12 | | _1.4.5_ | _1.4.2 - 1.4.5_ | _[3.10.9-SNAPSHOT-b666](https://ci.md-5.net/job/NoCheatPlus/666/)_ | _development_ |
13 | | _1.3.2_ | _1.3.1 - 1.3.2_ | _[3.7.10-RC-b201](https://dev.bukkit.org/bukkit-plugins/nocheatplus/files/33-nocheat-plus-3-7-10-rc-b201/)_ | _RC release_ |
14 | | _1.2.5_ | _1.1 - 1.2.5_ | _[3.6.1](https://dev.bukkit.org/bukkit-plugins/nocheatplus/files/23-nocheat-plus-v3-6-1-1-1-1-2-5/)_ | _RC release_ |
15 |
16 | Release types
17 | * RC release - Official stable release.
18 | * BETA release - Official beta release or a promoted development build.
19 | * mostly stable - A promoted development build.
20 | * _development_ - A development build, might contain issues.
21 |
22 | _(Italic entries indicate potentially unstable development builds or versions that are not supported anymore, in terms of developing fixes or features. In general there are no back-ports for old releases.)_
23 |
24 | ## Notable Builds in Order of Appearance
25 |
26 | Builds mentioned above, with download links and hashes for comparison.
27 |
28 | ### 3.16.0-RC-sMD5NET-b1134
29 | * Release type: **RC Release**
30 | * Supported versions of Minecraft (CraftBukkit/Spigot)
31 | * Focus: 1.12.2
32 | * Supported: 1.4.5-R1.0 - 1.12.2
33 | * Download at Jenkins: https://ci.md-5.net/job/NoCheatPlus/1134/
34 | * Hashes
35 | * MD5: b034f5d318eebc057bd331c1fe06f6c9
36 | * SHA512: 2ae947d7ef3d6c4ba2aecd7aae68c70ea64514df1b78bbaeaeef919c14d1d09fa941e1b0c253e90633a43044dd7e439a23243cba6ec601201dbe875cc8348983
37 | * File size: 1489360
38 |
--------------------------------------------------------------------------------
/Development/bip/bip-3.13.7-and-later.md:
--------------------------------------------------------------------------------
1 | ## Build Infos Page - NoCheatPlus 3.13.7 and later.
2 |
3 | **These builds are outdated.**
4 |
5 | [Back to the Build-Infos overview.](https://github.com/NoCheatPlus/Docs/wiki/Build-Infos)
6 |
7 | ----
8 |
9 | ### 3.14.0-SNAPSHOT-sMD5NET-b989(mostly stable, cumulative)
10 | * Release type: **mostly stable**
11 | * Supported versions of Minecraft (CraftBukkit/Spigot)
12 | * Focus: 1.9.4
13 | * Supported: 1.4.5-R1.0 - 1.9.4
14 | * Download at Jenkins: https://ci.md-5.net/job/NoCheatPlus/989/
15 | * Hashes
16 | * MD5: f14bcc06f982d4d75750e36897716820
17 | * SHA512: 73565272d83ca943118cbd8cea9891dc02fab1a539c26f8cb909ea7b3fefc5e92ea0e2f07901a2209e2f64f47ca6d96da986f4b4c1a9f6aa919eb76ad60c6ce9
18 | * File size: 1165971
19 | * New
20 | * MC 1.9.4 compatibility.
21 | * Basic boat fly check.
22 | * Exempt NPCs from all checks by default.
23 | * 'ncp stopwatch' for testing.
24 | * Configuration
25 | * Create a new vehicle section, change related paths.
26 | * The temporary login denial message is now configurable (strings.msgtempdenylogin).
27 | * Configure exemption by meta data and exemption for NPCs.
28 | * Add configuration for boatsanywhere (place on land).
29 | * Change default for 'ignoreallowflight' to true.
30 | * Fixes
31 | * Sweep attack detection (AoE).
32 | * StackOverflowError with inventory.open and a blacklist kick by WorldGuard.
33 | * NoFall: Skip dealing damage to players who are allowed to fly.
34 | * SurvivalFly: Fix climbing up trap door above ladder. (partial)
35 | * Prevent another variant of packet-based speeding.
36 | * Vehicles: Fix vehicle detection for missing vehicle events.
37 | * Vehicles: set-back handling.
38 | * Support higher levels of the levitation effect.
39 | * Improve vertical piston support (not finished, not yet officially activated).
40 | * TO BE TESTED: Allow vertical velocity on ladders and vines (once).
41 | * Account for off hand in (hopefully) all relevant places.
42 | * Also recognize ProtocolLib versions just with build number prefix.
43 | * Do not check for meta data off the primary thread.
44 | * Internals
45 | * Debug only: unused vertical velocity tracking.
46 | * [BREAKING] Larger refactoring and changes for vehicle fly checks (mostly unify/change location and set-back handling).
47 | * Hard teleport on vehicle set-backs by default, from within other event handling.
48 | * Location trace doesn't merge entries anymore (fight / latency).
49 | * Extend/alter debug logging.
50 | * Added GPLv3 headers to source files.
51 |
52 | ### 3.14.0-SNAPSHOT-sMD5NET-b960(mostly stable, cumulative)
53 | * MC 1.9
54 | * Blocks break data and flags.
55 | * Dedicated MCAccess module for CB with MC 1.9.
56 | * Allow standing on shulkers.
57 | * Rough levitation support.
58 | * Very coarse elytra support, hardly safe vs. abuse. _Note recent configuration overrides (not advertised!)._
59 | * Allow versions of ProtocolLib with MC 1.9 (currently disable SoundDistance): 3.7, 3.7.0, 4.0.0 or later.
60 | * Ignore sweep attack follow up damage.
61 | * "Noob tower": jumping upwards, building underneath.
62 | * Ignore multi-block place of bedrock and ender crystals.
63 | * Block place: check the placed material instead of what's in main hand, if available.
64 | * Disable FastHeal with MC 1.9.
65 | * (Still enable the pvp-knockback workaround with MC 1.9.)
66 | * Configuration
67 | * Change creativefly model configurations (default speeds for elytra and spectator).
68 | * Increase hover login ticks to 60 (previously 0).
69 | * Fixes
70 | * More cases with splashing through water.
71 | * creativefly
72 | * Fix violation skipping/cooldown mechanics. This might increase violation levels.
73 | * Fix set back handling (maxheight).
74 | * Fly-nofly transition: Reduce [ERROR].
75 | * Player instances stored wrongly.
76 | * Internals
77 | * Add more minimized build profiles to pinpoint Spigot 1.8.8/1.9.
78 | * Organize some workaround code better.
79 | * Extend/alter debug logging.
80 |
81 | ### 3.13.8-SNAPSHOT-sMD5NET-b930(cumulative)
82 | * New
83 | * A quick check for extreme moves.
84 | * Fixes
85 | * Portal events: only clear data if a location is present, add debug log.
86 | * FastClick: Don't add violation twice for display.
87 | * Fix HashMapLow (bucket position).
88 | * Changes
89 | * Handle system time running backwards differently.
90 | * Adjust log message for ProtocolLib.
91 | * Internals
92 | * [BREAKING] Add a penalty framework. Breaks internal API, see commit messages and diffs.
93 | * Catch unintended input somewhere.
94 |
95 | ### 3.13.7-RC-sMD5NET-b925
96 | * RC Release (milestone release).
97 | * MD5: d27d11a413b1ef0f6875959f9af806e7
98 | * SHA512: 9382f7d2dc8edc05104a5f56998c42803678de45ea32768015609e638d1d783febd56d7912766dabe0ae802c2fbd3cc152f686876599f8af6bd12276c54e46d9
99 | * File size: 1032874
100 | * Internals
101 | * Use internal registry for a Random instance.
102 |
103 |
--------------------------------------------------------------------------------
/Development/bip/bip-3.16.1-and-later.md:
--------------------------------------------------------------------------------
1 | ## Build Infos Page - NoCheatPlus 3.16.1 and later.
2 |
3 | [Back to the Build-Infos overview.](https://github.com/NoCheatPlus/Docs/wiki/Build-Infos)
4 |
5 | ----
6 |
7 | ### 3.16.1-SNAPSHOT-sMD5NET-b1149(cumulative)
8 | * Release type: [BLEEDING] development
9 | * New
10 | * The void-to-void set back policy now supports dragging players downwards into the void.
11 | * Support for overriding block breaking times for specific side conditions: compatibility.blocks.breakingtime
12 | * Support permission caching (configurable).
13 | * Fight.WrongTurn: Invalid pitch (experimental).
14 | * SurvivalFly: Don't allow relaxing the VL in-air (configurable), neither allow horizontal buffer regain, if frozen.
15 | * Actions now support 'cancel with probability', e.g.: 30%cancel.
16 | * Configuration
17 | * Activation (_active_), lag adaption (_lag_) and _debug_ flags: starting from _checks_ for all sub checks, the value 'default' now means to fetch the flag state from the check/group above in the hierarchy, enabling you to turn on/off activation/lag-adaption/debug for groups of checks with one switch. Note that not all _active_ flags are actual checks with a check type (yet), best compare to the default configuration, where _default_ is set.
18 | * Fixes
19 | * Fix dealing too high amounts of damage with jump effect.
20 | * Deal fall damage from 3.5 blocks height on.
21 | * Fix passable with fences at 1.0 height.
22 | * Adjust lost-ground case to accommodate for equipped end portal frames.
23 | * Improve slime block + piston support (partial).
24 | * Fix wooden pick with iron blocks (efficiency 0 - 5).
25 | * Fight.direction (loop check): Skip if hitting from inside the box.
26 | * Fight.NoSwing: Patch up first attack always triggering.
27 | * Track trampling of soil, due to false positives with SurvivalFly (and possibly Passable).
28 | * Include soil and grass path in the multi client protocol block shape patch (blind, with lily pad).
29 | * FastClick: Fix 'continuous drop' from the player inventory and 'collect to cursor'.
30 | * Net checks: cover cases with UnsupportedOperationException better.
31 | * Attempt to skip Inventory.Open for NPCs in general.
32 | * Define all the default child permissions within plugin.yml (check .silent, command filter).
33 | * Catch a NullPointerException within the UseEntityAdapter.
34 | * Prevent NullPointerException in the "skip paper" workaround.
35 | * Incompatibilities
36 | * MC 1.6.x and older: Old versions of ProtocolLib might be incompatible (Temporary players vs. getUniqueId).
37 | * API breakage (see: Internals, below).
38 | * Internals
39 | * [BREAKING] Don't allow removal of PlayerData for online players.
40 | * Other fixes: Disable multi protocol patch with unit tests. Fix Activation return types.
41 | * [BREAKING] Slight overhaul of check type hierarchy and utilities (No freely definable check types yet.).
42 | * [BREAKING] Use a new internal event registry, to allow control of processing order, as well as unregistering events.
43 | * [BREAKING] Always use permission subscriptions for notifications. Might lead to notifications missing, if a permission plugin somehow bypasses the subscription mechanics. Removes PermStateReceiver and related internals.
44 | * [BREAKING] New implementation of exemption handling (basic internals: consistency within thread-context, thread-safe access, mimic legacy behavior).
45 | * [BREAKING] (I)WorldDataManager stores all sorts of per-world (-per-check-type) things (to be continued).
46 | * [BREAKING] (I)PlayerDataManager stores per player data (including config cache, debug flags, exemptions).
47 | * [BREAKING] (I)PlayerData holds a cache for per player configuration and data.
48 | * [BREAKING] ActionFactoryFactory API changed.
49 | * BridgeHealth (+use) changed.
50 | * Safer IPlayerData getting, pre-create during AsyncPlayerPreLogin.
51 | * (Other cleanup, fixes related to the more complex recent additions.)
52 |
--------------------------------------------------------------------------------
/Features-and-Compatibility.md:
--------------------------------------------------------------------------------
1 | # General compatibility
2 | NoCheatPlus features a range of compatibility features.
3 | * Compatibility with multiple versions of Minecraft. You can rely on the latest version of NoCheatPlus still running on a range of past versions of Minecraft.
4 | * Configuration allows working around issues with specific blocks (custom mods, early adopter): [Config compatibility settings]
5 | * A range of API features to allow developers to make their plugins compatible (exemption API, exemption by meta data, hooks for violation processing, other).
6 | * Vanilla features. It may not seem worth mentioning, but we can't support all features to arbitrary depths. Still you will find that NoCheatPlus provides a balance between supporting vanilla features, extensions like higher level potion effects and attributes (vanilla too, but usually not encountered without command blocks or adventure maps), and finally protection from abusing those features vs. false positives. Our aim is to support all vanilla features, of course, it's a larger task than you might think.
7 |
8 |
9 | # Plugin Compatibility
10 | This is a small list of plugins that work together with NoCheatPlus
11 |
12 | ## Officially supported
13 | Here we list all plugins that use cncp (CompatNoCheatPlus) to support other plugins and enhance compatibility.
14 | * [mcMMO]
15 | * [Citizens 2] (Out of the box)
16 |
17 | ## Plugins that support NoCheatPlus
18 | Here are all plugins which either use the NC+ API or specially account for NC+ to create a smooth game experience.
19 | * [BungeeNCPNotify] hooks into NoCheatPlus and reports violations (configurable) of certain checks to staff members on other servers.
20 | * [DoubleJump4NCP] Lets you double jump.
21 |
22 | [mcMMO]:https://dev.bukkit.org/bukkit-plugins/mcmmo/
23 | [Citizens 2]:https://dev.bukkit.org/bukkit-plugins/citizens/
24 |
25 | [DoubleJump4NCP]:https://www.spigotmc.org/resources/doublejump4ncp.1519/
26 | [BungeeNCPNotify]:https://dev.bukkit.org/bukkit-plugins/bungeencpnotify/
27 | [Config compatibility settings]:https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/%5BSettings%5D-Compatibility.creole
28 |
29 |
--------------------------------------------------------------------------------
/Fundamentals.md:
--------------------------------------------------------------------------------
1 | # This page describes the fundamentals of what NoCheatPlus is based upon.
2 |
3 | ### Levels of Protection and Detection
4 | The fundamental concept of NoCheatPlus is to cover the most important grounds for survival game play with _deterministic protection_ in the first place. This means the protection is meant to still be there after cheat clients have updated, and it can only by bypassed if there are bugs. Naturally not all possible cheats are covered or are even possible to cover, and cheat clients can adapt to the limits in some cases, but they can't _break_ the limits.
5 |
6 | The next layer consists of _heuristics and educated guessing_, which may be more prone to allow actual bypasses, but which are likely to hold for a while, due to the conception aiming at fundamental mechanics of legitimate game play rather than detecting specific behavior of cheating, the latter of which could change with a cheat client update.
7 |
8 | The thing we do least is _detecting specific cheats or patterns of cheating_, which usually allows a cheat client to completely bypass the checks with the next client update, in which case we would end up with _hourly updates_ on both sides. Such an approach would allow for easier banning, however despite the _detection_ for a range of known cheats and cheat clients, it does not provide any actual long-term _protection_, which is why we don't rely on such methods in the first place.
9 |
10 | Main reasons for taking the approach 'protection before detection' are:
11 | * The level of protection the vanilla server provides by default is not very high.
12 | * Manpower - this is the 'free' plugin, and we need to provide something usable, without burning all our brain with cat and mice play. Thus we focus on rather lasting things in the first place.
13 |
14 | **Related**
15 | * [Fake entities and killaura bot checks](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Development/Discussion/FakeEntities.md)
16 | * [Client-side anticheat](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Development/Discussion/ClientSideAntiCheat.md)
17 |
18 | ### False Positives
19 | A large amount of time is spent with testing and balancing, in order to not cause or at least to reduce false positives. For game play, false positives can be show stoppers. It's worth nothing to detect a cheat, if we cause game play breaking false positives - supporting a wide range of server types means not underestimating this aspect.
20 |
21 | To be able to confine better what cheating can do, we also must keep false positives at bay by design, otherwise we too often end up with reducing the sensitivity of a checking method, resulting in both less protection. Our primary approach is to create more precise envelopes for legitimate client behavior based on experience and diligence, thus we need to account for the physics of things, just to avoid the word _mechanics_ for a split second. Naturally with multi-player games there is latency, networking congestion and just _lag_ of other type on client- and/or server-side. In order to reduce or fully remove false positives, we will need infrastructure to be able to (rather) deterministically determine what may be or may have been the case at the time of the client side taking action. It can't be achieved by allowing a wider range for hitting, for a simple example.
22 |
23 | ### Abstraction and Infrastructure
24 | Many servers stay on the previous version of Minecraft, when a Minecraft update happens. Such can cover longer phases, thinking of 1.7.x ... 1.8.x ... 1.9. Thus we support multiple versions of Minecraft by default. It's harder to remove compatibility than to keep going, most of the time, and cheat clients tend to be written for the most used versions of Minecraft.
25 |
26 | Infrastructure is needed for things like:
27 | * Piston compatibility (future: pushed a block far, moving through blocks, on-ground?). Also concerns other block changes like doors, block breaking and placing by others, blocks changing with redstone or gravity.
28 | * Latency and precision with fight checks (part future).
29 | * Judge player moving (past moves with details about the environment).
30 | * Efficiency with testing for map/block properties over and over.
31 | * Keeping code changes minimal for a new version of Minecraft, because checks can rely on the infrastructure to remain mostly unchanged.
32 |
33 | Of course infrastructure is expensive, as it does not catch cheaters directly, and it's either lengthy or even difficult to create, or at least it needs experimentation. Experience tells that so far, the approach has paid off manifold.
34 |
35 | **Related**
36 | * [Future of NoCheatPlus](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Development/Discussion/Future.md)
37 | * [NoCheatPlus' design](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Development/Discussion/Design.md)
38 |
39 | # Conclusion
40 | Ideally multiple developers should share time to create a future open-source thing, instead of wasting time with detecting individual instances of cheat implementations (...). We've at least shown what could have been done much faster with people sharing resources.
41 |
--------------------------------------------------------------------------------
/Getting-Started.md:
--------------------------------------------------------------------------------
1 | # Installation
2 | 1. Download NoCheatPlus from the current source:
3 | * [Jenkins]
4 |
5 | 2. Drop the NoCheatPlus.jar in your /plugins folder like this: 
6 |
7 | 3. Start-up your server
8 |
9 | # Configuration
10 | 1. [Make other plugins compatible with NoCheatPlus](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Features-and-Compatibility.md)
11 | 2. Install ProtocolLib to enable the NET checks
12 | 3. [Setup permissions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Permissions.md)
13 | 4. [Learn what YAML is and how to edit it](https://github.com/Updated-NoCheatPlus/Docs/blob/master/YAML.md)
14 | 5. [Configure NoCheatPlus](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Configuration.md)
15 | 6. [Study the Commands](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Commands.md)
16 |
17 | [Jenkins]:https://ci.codemc.io/job/Updated-NoCheatPlus/job/Updated-NoCheatPlus/
18 |
19 |
--------------------------------------------------------------------------------
/Known-Issues.md:
--------------------------------------------------------------------------------
1 | **Table of contents**
2 | * [General Issues](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Known-Issues.md#general-issues)
3 | * [Hitting/Fighting](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Known-Issues.md#hittingfighting)
4 | * [Moving/Passable](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Known-Issues.md#movingpassable)
5 | * [Compatibility Issues](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Known-Issues.md#compatibility-issues)
6 | * [Skills, machines and other](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Known-Issues.md#skills-machines-and-other)
7 | * [Super jumps and flying skills](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Known-Issues.md#super-jumps-and-flying-skills)
8 | * [Tekkit, FeedTheBeast, Hexxit and all the other mod packs](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Known-Issues.md#tekkit-feedthebeast-hexxit-and-all-the-other-mod-packs)
9 | * [Spout and CompatNoCheatPlus](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Known-Issues.md#spout-and-compatnocheatplus)
10 | * [Passable check](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Known-Issues.md#passable-check)
11 | * [Other](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Known-Issues.md#other)
12 | * [Special (cheat) Client-Mods](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Known-Issues.md#special-cheat-client-mods)
13 | * [Minecraft Chat Apps](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Known-Issues.md#minecraft-chat-apps)
14 |
15 | ## General Issues
16 | Issues that are only related to NCP and occur in vanilla Minecraft.
17 |
18 | ### Hitting/Fighting
19 | Currently there are some known issues in NoCheatPlus which might cause false positives (false cheat detection) on PvP (Player vs Player) and PvE (Player vs Environment).
20 | We recommend to use the "/ncp info " command to find out which checks/parts of NoCheatPlus are causing those false positives and make the affected fight checks less strict (over configuration file) based on that data.
21 |
22 | Additional informations about pvp:
23 | * The higher the latency (server and client) the worse is the hit detection
24 | * Beware of players who fake information in order to persuade you into making the 'fight' checks less strict (always verify first-hand)
25 | * If you encounter problems with the fight.direction check you could set "strict" to false in your configuration file.
26 | * Turning down the "penalty" value for fight.direction and fight.reach check could help also.
27 | * Increasing the 'maxloopletencyticks' leniency will help as well.
28 | * Time penalties in general might be interesting to balance out (search for penalty, also toolchangepenalty).
29 |
30 | ### Moving/Passable
31 | * If a certain block type poses problems, be it a bug or just client mods or server mods or plugins "optimizing" things, you can tweak it by configuration: [Compatibility Section](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Features-and-Compatibility.md)
32 | * Velocity handling might conflict with some plugins that provide skills like "super jump".
33 | * Fly-settings of server and plugins: We recommend to set allow-flight to true rather, and let NCP handling the fly checks, otherwise there can be conflicts leading to new exploits or just trouble. (server.properties file)
34 | * Multi-World plugins (e.g. MultiVerse): These might have per-world settings for allow-flight, or other fly-related settings, which might override the servers allow-flight setting.
35 | * Other anti-hack plugins: Two fly checks would usually conflict, due to differing set-back policies, also due to differing false-positives. Disable all but one, we suggest you enable the one in NCP and disable the others.
36 |
37 | ## Compatibility issues
38 | Issues that arise from using other client mods, server mods, plugins.
39 |
40 | ### Skills, Machines and other
41 | Some plugins provide extra skills like fast block breaking, or automatic mining and block placing etc. To keep it compatible with protection plugins they use custom events to tell other plugins that they break blocks. These will be interpreted by NCP and might lead to various violations.
42 | CompatNoCheatPlus provides a platform for handling these, mcMMO, Citizens, MachinaCraft should work out of the box, others might need adapting some configuration entries (ask before doing so!), others might need additions to cncp. Keep to cncp for this and add a ticket there, these are usually easy to fix/provide.
43 | ### Super jumps and flying skills
44 | These provide problems to make compatible, though it is not impossible technically. Currently mostly not compatible.
45 | (See the [Compatibility Section](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Features-and-Compatibility.md))
46 |
47 | ### Tekkit, FeedTheBeast, Hexxit and all the other mod packs
48 | * Many blocks that tekkit and other use are unknown to NoCheatPlus, block breaking speeds should be assumed as instantaneous break (would allow playing , but also fast break cheating).
49 | * The passable check might not know the shape of some blocks, at the risk of allowing noclip hacks, those can be added to the ignorepassable list in the NCP configuration.
50 | * Weapons such as wands from Thaumcraft that use special fighting ability's will trigger some fight checks of NoCheatPlus since NCP doesn't know this kind of fighting style.
51 | * Going trough TwilightForest portals will trigger SurvivalFly because of this mode having strange movement while the player is teleported to the other world.
52 | * NoCheatPlus will most likely block FakePlayers because of the bukkit superperms not supporting any "offline players". To make them compatible with NoCheatPlus you need to set "FakeJoin" to true so FakePlayers send fake login events to the server (might cause other issues).
53 | * Placing blocks without any attachment on the ground such as cables or similar will trigger the "AgainstAir" check of NoCheatPlus. To workaround this issue give your default users group the "nocheatplus.checks.blockplace.against.air" permission.
54 | * Jet packs and other "fly" tools are most likely incompatible with the SurvivalFly check.
55 |
56 | ### Spout and CompatNoCheatPlus
57 | CompatNoCheatPlus and Spout seem to have issues, however I am not sure if they were due to unlucky versions mixed (to be tested/updated). You need to disable the Player-class hook in CompatNoCheatPlus for sure! Otherwise NoCheatPlus will get unusable on your spout server.
58 |
59 | ### Passable check
60 | The SpoutCraft client seems to allow moving into the corners of fence-arrangements, which is not possible in vanilla. Ladders can be added to the ignorepassable list in the config of NCP.
61 |
62 | ## Other
63 | All issues that didn't fit in any category above are listed here.
64 |
65 | ### Special (cheat) Client-Mods
66 | Some client mods do non-vanilla moving stuff that can conflict with the passable check.
67 | ### Minecraft Chat Apps
68 | MCChat is ignoring teleports and setbacks coming from your server so you might get constant violation spam if you join with this application on your server together with NoCheatPlus. This issue can only get fully fixed by its developer itself.
69 |
--------------------------------------------------------------------------------
/Others/Backgrounds.md:
--------------------------------------------------------------------------------
1 | This page explains the "behind the scene" tricks of NoCheatPlus, how it works and more.
2 |
3 | ## Asynchronous
4 |
5 | `When you execute something synchronously, you wait for it to finish before moving on to another task. When you execute something asynchronously, you can move on to another task before it finishes....`
6 | [Adam Robinson (Stackoverflow)](http://stackoverflow.com/questions/748175/asynchronous-vs-synchronous-execution-what-does-it-really-mean?answertab=active#tab-top)
7 | NoCheatPlus does a couple of things asynchronously to improve performance on your server.
8 |
9 | ## Long-term and Short-term
10 | Some checks like BLOCKBREAK_FREQUENCY implement another checking interval (shortterm) to catch and prevent very quick cheating more smoothly then the normal (longterm) check interval.
11 | Especially checks like FIGHT_SPEED profit from this since damage to a player/creature is hard to undo. So a cheater would get instantly stopped by the shortterm interval if he/she tried to hit a creature/player 30 times in 10 server ticks.
12 |
13 | ## Violations
14 | To count cheat attempts we use "VL" which stands for violation level in NoCheatPlus and its used
15 | by Actions and Strings to punish players based on their violation level.
16 |
17 | **Notes**
18 | * Every check has its own violation levels and generates them in a different way based on how the check counts (SurvivalFly will reach much higher VLs compared to BedLeave)
19 | * Backgrounds
20 | * By default the violation will be kept till you restart your server (even on log out)
21 | * Violation levels that have been logged are different compared to those shown in the info or history command because the command ones only show the VLs that have been added
22 | * Many cheat clients are adapted to cause as small as possible levels, thus distinction of false positives and cheating becomes harder and harder.
23 | * Make use of **/ncp info ** to have a rough idea how many different checks the player triggers (also compare output for differing times).
24 |
--------------------------------------------------------------------------------
/Others/Lag.md:
--------------------------------------------------------------------------------
1 | # Server
2 | Lag and latency effects on server side.
3 |
4 | ## TPS - Ticks per second
5 | `Imagine you have an alarm which rings every minute. Every time the alarm goes off its a "tick". Now during each minute you have to do some work. Sometimes this can be simple stuff like picking up books from your desk and placing them on your bed and sometimes it can be very difficult stuff like cleaning your desk completely. Similarly your server has a concept of ticks, and during each tick it does stuff like spawn mobs, load chunks, perform physics checks etc. So when you have small amounts of work to do, you can finish it in less than a minute and spend the rest of the time relaxing but when you get too much work and can't finish it in a minute you need to delay the alarm clock meaning now a tick isn't once every minute, its taking more than a minute. Similarly your server also relaxes when it finishes in less than its ticking interval and when it can't finish its work in time it has to extend the tick time too. Normally your server ticks 20 times a second, like how you were ticking once a minute. When you can't keep up with your work, you degrade to less than 1 tick per minute, similarly your server degrades to less than 20 ticks per second. Usually this will be met by an increase in cpu usage because the server is constantly doing work (not in all cases though!)`
6 | [@ammar2 at SpigotMC](https://www.spigotmc.org/threads/what-is-tps.4277/#post-43925)
7 |
8 | So in short: If your server can't keep up 20 ticks per second, you might notice server side lag, by the server responding slower than usual, e.g. broken blocks or players moves arrive later at other players ends, short player freezes might result, machines or entities move/work slightly slower, buttons take longer to activate. For TPS above 16 it probably isn't that much noticeable client-side.
9 |
10 | ## Network
11 | Game experience could suffer because of lost/delayed packets if your server:
12 | * Has a bad/defect network card (hardware) that can't process all packets properly.
13 | * Connection quality (provider, WLAN, mobile, routed twice around the world).
14 | * The operating system might be faulty or have driver problems.
15 | * Is hooked on a busy local network (Example: At home you have 5 other clients that download/upload on high-speed).
16 | * Is running other background processes that overload your network traffic.
17 |
18 | # Client
19 | Lag and latency effects on client side.
20 |
21 | ## TPS - Ticks per second
22 | Just like the server, the client also needs to finish a lot of tasks 20 times a second (20 ticks).
23 |
24 | ## FPS - Frames per second
25 | As you may know in order to create a moving picture you need to quickly display a lot of pictures (frames) one after an other. A computer works pretty similar because it also displays 60 (or more) frames per second to make you think that there is actually movement in that picture.
26 |
27 | * A basic Computer monitor can output a maximum of 60 Hz while a professional one can reach 120 Hz.
28 | * Usually you won't notice any performance improvements if your GPU surpasses your monitors maximum FPS, all it does is probably shorten your GPUs life time.
29 | * If your GPU fails to keep up with the game renderer (too many particles, too much chunks loaded at once and much more...) you will feel lag.
30 | * VSync or VerticalSync tries to synchronize your GPU with the monitor by making the GPU only process as much FPS as the monitor can handle.
31 |
32 | * [Monitor & TV Refresh Rates as Fast As Possible]
33 | * [FreeSync and VSync explanation]
34 |
35 | ## Network
36 | Latency can also occur if the client:
37 | * Has a bad/defect network card (hardware) that can't process all packets properly
38 | * Connection quality (provider, WLAN, mobile, routed twice around the world).
39 | * The operating system might be faulty or have driver problems.
40 | * Is hooked on a busy local network (Example: At home you have 5 other clients that download/upload on high-speed)
41 | * Is running other background processes that overload your network traffic. Often the upload bandwidth is much lower than the download bandwidth, thus it's much easier to create noticeable lag with uploading stuff.
42 |
43 | # Hardware bottlenecks
44 | A small list to explain which hardware is responsible for a curtain type of latency:
45 |
46 | - **TPS**
47 | - Disk I/O (MC reads/writes map data, plugins might use local databases).
48 | - CPU (Minecraft uses a lot of single-core CPU power for the primary thread, but initial packet handling and chunk loading may be done asynchronously).
49 | - RAM (MC keeps a lot of data in your random access memory before it garbage collects it. Garbage collection could have an impact, low ram might crash the server or lead to more intense disk-io).
50 |
51 | - **FPS**
52 | - GPU/GPU drivers (Additionally to the TPS list you will also need a good GPU to keep up with the game renderer and display enough frames for a smooth game experience)
53 | - CPU
54 | - RAM (If your client runs out of memory bad things will happen such as: GarbageCollection going crazy, everything gets moved from your RAM to your hard drive, might trigger a OOME-Out Of Memory Error which could crash your computer or make your operating system forcefully close programs, ...)
55 |
56 | - **Network**
57 | - Network card
58 | - CPU (Yes processing packets requires a CPU).
59 | - Router (On good ones you can tweak a lot of settings to manage your network traffic properly, quality of service).
60 | - Internet connection (Try to not host on WiFi if you can avoid it).
61 | - Internet provider (If you do home hosting: You might need to look up business plans of your internet provider for the best results, you do need good uplink and downlink).
62 |
63 | [Monitor & TV Refresh Rates as Fast As Possible]:https://www.youtube.com/watch?v=YCWZ_kWTB9w
64 | [FreeSync and VSync explanation]:https://www.youtube.com/watch?v=5Ey-KObDABI
65 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | # Welcome to the wiki
4 | This page will explain everything that you need to know about NoCheatPlus.
5 |
6 | NoCheatPlus is a Bukkit (CraftBukkit/Spigot) plugin meant to protect your server from various kinds of cheating. A wide area of cheats is covered, such as player and vehicle moving, interaction, block breaking and placing, fighting, chat and other types of areas including client behavior that might crash the server.
7 | NCP’s popularity and open-source nature means that we are obligated to adopt a different approach in how we block cheats in order to not resort in the infamous ‘cat-and-mice’ play with us spending countless of hours trying to keep up with cheat clients. Have a look at the [Fundamentals page](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Fundamentals.md) for more details on our approach.
8 |
9 | Download and further project links:
10 | * [(*Legacy/Outdated*) NoCheatPlus on BukkitDev - with downloads for releases approved by their staff.](https://dev.bukkit.org/projects/nocheatplus)
11 | * [(*Legacy/Outdated*) NoCheatPlus on SpigotMC - also with downloads for releases.](https://www.spigotmc.org/resources/nocheatplus2015-07-25.26/)
12 | * [(*Legacy/Outdated*) CompatNoCheatPlus Jenkins on ci.md-5.net - development builds.](https://ci.md-5.net/job/CompatNoCheatPlus/)
13 | * [(*Outdated*) NoCheatPlus Build-Infos: Orientation for development builds and releases.](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Development/Build-Infos.md)
14 | * [(*Updated*) NoCheatPlus Jenkins on CodeMC - all builds including development builds.](https://ci.codemc.io/job/Updated-NoCheatPlus/job/Updated-NoCheatPlus/)
15 | * [(*Updated*) CompatNoCheatPlus - use with mcMMO, MagicSpells, ...](https://github.com/xaw3ep/CompatNoCheatPlus)
16 | * [Classic/Original NoCheat (Evenprime)](https://github.com/md-5/NoCheat)
17 |
18 |
19 |
20 | ## Home
21 | * [Getting Started](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Getting-Started.md)
22 | * [FAQ](https://github.com/Updated-NoCheatPlus/Docs/blob/master/FAQ.md)
23 | * [Known Issues](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Known-Issues.md)
24 | * [Features and Compatibility](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Features-and-Compatibility.md)
25 | * [Commands](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Commands.md)
26 | * [Permissions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Permissions.md)
27 | * [Notable Builds](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Development/Notable-Builds.md)
28 |
29 | ## Configuration
30 | * [Multiworld](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Multiworld.md)
31 | * [Data](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Data.creole)
32 | * [Logging](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Logging.creole)
33 | * [Protection](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Protection.creole)
34 | * [Checks](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/Checks.md)
35 | * [General](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md)
36 | * [Miscellaneous](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Miscellaneous.md)
37 | * [Compatibility](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/%5BSettings%5D-Compatibility.md)
38 |
39 | ## Development
40 | * [API](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Development/API.md)
41 | * [Debugging](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Development/Debugging.md)
42 | * [Dev Pinboard](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Development/Dev-Pinboard.creole)
43 | * [Build Infos](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Development/Build-Infos.md)
44 |
45 | ## Others
46 | * [Backgrounds](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Others/Backgrounds.md)
47 | * [Lag](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Others/Lag.md)
48 |
49 |
50 |
_If you prefer a full text search for any GitHub wiki, have a look at: [Github Wiki Search](https://github.com/linyows/github-wiki-search)_
51 | _To report an issue, or request support: [Issues](https://github.com/Updated-NoCheatPlus/NoCheatPlus/issues)_
52 |
--------------------------------------------------------------------------------
/Resources/ActionExplenation.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Updated-NoCheatPlus/Docs/a958f2f642d89b0cece2e2230c732d1df8dffeef/Resources/ActionExplenation.gif
--------------------------------------------------------------------------------
/Resources/ActionLevels.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Updated-NoCheatPlus/Docs/a958f2f642d89b0cece2e2230c732d1df8dffeef/Resources/ActionLevels.gif
--------------------------------------------------------------------------------
/Resources/Banners/NoCheatPlusChristmasNewYear.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Updated-NoCheatPlus/Docs/a958f2f642d89b0cece2e2230c732d1df8dffeef/Resources/Banners/NoCheatPlusChristmasNewYear.gif
--------------------------------------------------------------------------------
/Resources/Banners/NoCheatPlusDefault.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Updated-NoCheatPlus/Docs/a958f2f642d89b0cece2e2230c732d1df8dffeef/Resources/Banners/NoCheatPlusDefault.gif
--------------------------------------------------------------------------------
/Resources/Icons/NoLogo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Updated-NoCheatPlus/Docs/a958f2f642d89b0cece2e2230c732d1df8dffeef/Resources/Icons/NoLogo.gif
--------------------------------------------------------------------------------
/Resources/Icons/PDF.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Updated-NoCheatPlus/Docs/a958f2f642d89b0cece2e2230c732d1df8dffeef/Resources/Icons/PDF.gif
--------------------------------------------------------------------------------
/Resources/Installation.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Updated-NoCheatPlus/Docs/a958f2f642d89b0cece2e2230c732d1df8dffeef/Resources/Installation.gif
--------------------------------------------------------------------------------
/Resources/LagMeter.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Updated-NoCheatPlus/Docs/a958f2f642d89b0cece2e2230c732d1df8dffeef/Resources/LagMeter.gif
--------------------------------------------------------------------------------
/Resources/Multiworld.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Updated-NoCheatPlus/Docs/a958f2f642d89b0cece2e2230c732d1df8dffeef/Resources/Multiworld.gif
--------------------------------------------------------------------------------
/Resources/Notepad++.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Updated-NoCheatPlus/Docs/a958f2f642d89b0cece2e2230c732d1df8dffeef/Resources/Notepad++.gif
--------------------------------------------------------------------------------
/Resources/StringsExplenation.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Updated-NoCheatPlus/Docs/a958f2f642d89b0cece2e2230c732d1df8dffeef/Resources/StringsExplenation.gif
--------------------------------------------------------------------------------
/Resources/actions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Updated-NoCheatPlus/Docs/a958f2f642d89b0cece2e2230c732d1df8dffeef/Resources/actions.png
--------------------------------------------------------------------------------
/Resources/world_nether_config.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Updated-NoCheatPlus/Docs/a958f2f642d89b0cece2e2230c732d1df8dffeef/Resources/world_nether_config.zip
--------------------------------------------------------------------------------
/Settings/Checks/Checks.md:
--------------------------------------------------------------------------------
1 | # BlockBreak
2 | #### Checks related to players breaking blocks.
3 | * [Direction](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockbreak%5D-Direction.md)
4 | * [FastBreak](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockbreak%5D-Fastbreak.md)
5 | * [Frequency](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockbreak%5D-Frequency.md)
6 | * [NoSwing](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockbreak%5D-Noswing.md)
7 | * [Reach](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockbreak%5D-Reach.md)
8 | * [WrongBlock](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockbreak%5D-Wrongblock.md)
9 |
10 | # BlockInteract
11 | #### Checks related to players interacting with blocks.
12 | * [Direction](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockinteract%5D-Direction.md)
13 | * [Reach](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockinteract%5D-Reach.md)
14 | * [Speed](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockinteract%5D-Speed.md)
15 | * [Visible](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockinteract%5D-Visible.md)
16 |
17 | # BlockPlace
18 | #### Checks related to players placing blocks.
19 | * [Against](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockplace%5D-Against.md)
20 | * [AutoSign](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockplace%5D-Autosign.md)
21 | * [Direction](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockplace%5D-Direction.md)
22 | * [FastPlace](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockplace%5D-Fastplace.md)
23 | * [Reach](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockplace%5D-Reach.md)
24 | * [Scaffold](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockplace%5D-Scaffold.md)
25 | * [NoSwing](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockplace%5D-Noswing.md)
26 | * [Speed](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockplace%5D-Speed.md)
27 | * [PreventMisc](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockplace%5D-Preventmisc.md)
28 |
29 | # Chat
30 | #### Checks related to chat activity and login/join.
31 | * [Captcha](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BChat%5D-Captcha.md)
32 | * [Color](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BChat%5D-Color.md)
33 | * [Commands](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BChat%5D-Commands.md)
34 | * [Text](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BChat%5D-Text.md)
35 | * [Warning](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BChat%5D-Warning.md)
36 | * [Relog](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BChat%5D-Relog.md)
37 | * [Logins](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BChat%5D-Logins.md)
38 |
39 | # Combined
40 | #### Checks combined by multiple inputs within NoCheatPlus or that just don't fit into any other category.
41 | * [BedLeave](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BCombined%5D-Bedleave.md)
42 | * [Enderpearls](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BCombined%5D-Enderpearl.md)
43 | * [Improbable](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BCombined%5D-Improbable.md)
44 | * [Invulnerable](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BCombined%5D-Invulnerable.md)
45 | * [MunchHausen](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BCombined%5D-Munchhausen.md)
46 | * [YawRate(Settings)](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BCombined%5D-Yawrate.md)
47 |
48 | # Fight
49 | #### Checks related to players interacting with other entities.
50 | * [General](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BFight%5D-General.md)
51 | * [Angle](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BFight%5D-Angle.md)
52 | * [Critical](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BFight%5D-Criticals.md)
53 | * [Direction](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BFight%5D-Direction.md)
54 | * [FastHeal](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BFight%5D-Fastheal.md)
55 | * [GodMode](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BFight%5D-Godmode.md)
56 | * [NoSwing](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BFight%5D-Noswing.md)
57 | * [Reach](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BFight%5D-Reach.md)
58 | * [SelfHit](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BFight%5D-Selfhit.md)
59 | * [Speed](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BFight%5D-Speed.md)
60 |
61 | # Inventory
62 | #### Concerns players interacting with inventories and/or containers.
63 | * [Drop](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BInventory%5D-Drop.md)
64 | * [FastClick](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BInventory%5D-Fastclick.md)
65 | * [InstantBow](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BInventory%5D-Instantbow.md)
66 | * [InstantEat](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BInventory%5D-Instanteat.md)
67 | * [FastConsume](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BInventory%5D-Fastconsume.md)
68 | * [InventoryMove](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BInventory%5D-Inventorymove.md)
69 | * [MoreInventory](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BInventory%5D-Moreinventory.md)
70 | * [Gutenburg](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BInventory%5D-Gutenberg.md)
71 | * [Items](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BInventory%5D-Items.md)
72 | * [Open](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BInventory%5D-Open.md)
73 | * [Hotifx](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BInventory%5D-Hotfix.md)
74 |
75 | # Moving
76 | #### Checks that concern player movement and locations.
77 | * [General](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving%5D-General.md)
78 | * [CreativeFly](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving%5D-Creativefly.md)
79 | * [MorePackets](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving%5D-Morepackets.md)
80 | * [NoFall](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving%5D-Nofall.md)
81 | * [Passable](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving%5D-Passable.md)
82 | * [SurvivalFly](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving%5D-Survivalfly.md)
83 | ## Vehicle
84 | #### Checks related to players riding vehicles
85 | * [General](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving-Vehicle%5D-General.md)
86 | * [MorePackets](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving-Vehicle%5D-Morepackets.md)
87 | * [Envelope](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving-Vehicle%5D-Envelope.md)
88 |
89 | # Net
90 | #### These checks are ProtocolLib-dependant. They check players on a packet-level.
91 | * [General](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BNet%5D-General.md)
92 | * [AttackFrequency](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BNet%5D-Attackfrequency.md)
93 | * [FlyingFrequency](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BNet%5D-Flyingfrequency.md)
94 | * [KeepAliveFrequency](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BNet%5D-Keepalivefrequency.md)
95 | * [PacketFrequency](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BNet%5D-Packetfrequency.md)
96 | * [SoundDistance](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BNet%5D-Sounddistance.md)
97 | * [WrongTurn](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BNet%5D-WrongTurn.md)
98 |
99 |
--------------------------------------------------------------------------------
/Settings/Checks/TODOList.txt:
--------------------------------------------------------------------------------
1 | List of stuff that's still missing documentation:
2 |
3 | [X] Document all modifiers under CreativeFly
4 | * Splitmove in moving.general
5 | * Net.general
6 | * Text: allowvlreset
7 | * Vehicle.schedulesetbacks
8 | [X] vehicle.schedulesetpassenger
9 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockbreak]-Direction.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockbreak.direction`
2 | Permission (bypass): `nocheatplus.checks.blockbreak.direction`
3 | Exemption: `BLOCKBREAK_DIRECTION`
4 |
5 | BlockBreak.Direction forces players to look at the block they want to break
6 |
7 | **Related**
8 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
9 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
10 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockbreak]-Fastbreak.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockbreak.fastbreak`
2 | Permission (bypass): `nocheatplus.checks.blockbreak.fastbreak`
3 | Exemption: `BLOCKBREAK_FASTBREAK`
4 |
5 | Fastbreak forces players to break blocks with realistic speed when being in survival gamemode. In order to smooth out lag spikes we allow a tiny bit of faster block breaking times to avoid false positives when server or client encounter latency (be it network or CPU time-outs).
6 |
7 | | Option | Description |
8 | | :--------------- | :---------- |
9 | | strict | If set to true, fastbreak will measure the time from interaction to block break. If set to false, it will measure the time from block break to block break, which allows one cheated fast break always, but forces normal speed for sequences of block breaks, being less strict in laggy environments, or in case the server mod does the interact events differently. |
10 | | delay | Here you can give a little bit of additional per block breaking time in order to avoid false positives when events get delayed by the server tick. NoCheatPlus reads this value in milliseconds (ms). |
11 | | intervalsurvival | Modifier in % for block breaking duration in survival mode. Set to a lower value to allow faster block breaking (in per cent). |
12 | | grace | Set a value in milliseconds (ms) that players will be allowed to mine faster in each check period of fastbreak. |
13 |
14 | **Notes**
15 | * Blocks with a low breaking time could allow instant breaking if [their breaking time - set delay] results in a small value
16 | * Fastbreak combines with the frequency check: the latter will hard-limit the number of blocks regardless of type, which is important if the fastbreak check allows "instant" breaking.
17 | * Do not set intervalsurvival to something higher then 100% or all block breaking is likely to become violations.
18 |
19 | **Related**
20 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
21 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
22 | * [[Blockbreak] Frequency](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockbreak%5D-Frequency.md)
23 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockbreak]-Frequency.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockbreak.frequency`
2 | Permission (bypass): `nocheatplus.checks.blockbreak.frequency`
3 | Exemption: `BLOCKBREAK_FREQUENCY`
4 |
5 | Frequency limits the total amount of blocks a player can break in custom time frames.
6 | It does not concern the speed at which players can break a single block (which is covered by the FastBreak check).
7 |
8 |
9 | | Option | Description |
10 | | :------------------ | :---------- |
11 | | intervalcreative | The minimally allowed time to pass between breaking blocks in creative gamemode. |
12 | | intervalsurvival | The minimally allowed time to pass between breaking blocks in survival gamemode. |
13 | | shortterm _ticks_ | Number of server ticks (50 ms each) to keep track for limiting short term bursts. |
14 | | shortterm _limit_ | How many blocks are players allowed to break in the specified ticks? |
15 |
16 | **Notes**
17 | * There is a general buffer counting in 2 seconds by default and allowing to accumulate as many blockbreaks as fit into the time given the intervalcreative and/or intervalsurvival settings interpreted as durations.
18 | * In addition it has a short term setting, also counting the blocks within the last n ticks and limiting the short term amount. This way players cannot break 80 blocks at once and then pause for two seconds.
19 |
20 | **Related**
21 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
22 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
23 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockbreak]-Noswing.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockbreak.noswing`
2 | Permission (bypass): `nocheatplus.checks.blockbreak.noswing`
3 | Exemption: `BLOCKBREAK_NOSWING`
4 |
5 | This check demands your players to swing their arm before they can break a block. The animation allows others to notice what the player is doing.
6 |
7 | **Related**
8 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
9 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
10 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockbreak]-Reach.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockbreak.reach`
2 | Permission (bypass): `nocheatplus.checks.blockbreak.reach`
3 | Exemption: `BLOCKBREAK_REACH`
4 |
5 | The BlockBreak.Reach check ensures that the block the player is trying to break is within a legit reach/distance (5.2 blocks in Survival, 5.6 in Creative)
6 |
7 | **Related**
8 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
9 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
10 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockbreak]-Wrongblock.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockbreak.wrongblock`
2 | Permission (bypass): `nocheatplus.checks.blockbreak.wrongblock`
3 | Exemption: `BLOCKBREAK_WRONGBLOCK`
4 |
5 | The WrongBlock check prevents players from interacting with a block and breaking another one.
6 |
7 | | Option | Description |
8 | | :----- | :--------- |
9 | | level | Internal leniency level that this check will use. Higher the value, the more the time it will take for this check to stop cheaters. |
10 | | Improbable _feedonly_ | Decide the influence this check should have when contributing to the Improbable check analysis. If false, this check can directly incur Improbable **violations** with its data. If true this check will only contribute in feeding Improbable with its data.|
11 | | Improbable _weight_ |The weight this check should have when feeding improbable. Set to 0.0 if you don't want this check to feed Improbable at all.|
12 |
13 |
14 | **Related**
15 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
16 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
17 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockinteract]-Direction.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockinteract.direction`
2 | Permission (bypass): `nocheatplus.checks.blockinteract.direction`
3 | Exemption: `BLOCKINTERACT_DIRECTION`
4 | Better with: `ProtocolLib (plugin)`
5 |
6 |
7 | The Direction check forces players to look (eye location) at the block they want to interact with.
8 |
9 | **Notes**
10 | * The BukkitAPI throws a interaction event before the place/break events come, so the BLOCKINTERACT_DIRECTION check will pretty much always catch the cheat attempt first before the other two do. If you wish to only check Direction on placing/breaking then disable the interaction one first.
11 | * Do note that this check will need ProtocolLib in order to mitigate a vanilla bug (packet inversion: the interaction is processed before the looking direction) which causes the check to throw false positives almost everytime you switch block while interacting.
12 |
13 | **Related**
14 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
15 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
16 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockinteract]-Reach.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockinteract.reach`
2 | Permission (bypass): `nocheatplus.checks.blockinteract.reach`
3 | Exemption: `BLOCKINTERACT_REACH`
4 |
5 | The BlockInteract.Reach check prevents players from interacting with blocks that are too far away (5.2 blocks in Survival, 5.6 in Creative)
6 |
7 | **Related**
8 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
9 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
10 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockinteract]-Speed.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockinteract.speed`
2 | Permissions: `nocheatplus.checks.blockinteract.speed`
3 | Exemption: `BLOCKINTERACT_SPEED`
4 |
5 | The speed check limits the amount of interactions a player can do within a given time frame.
6 |
7 | | Option | Description |
8 | | :-------- | :---------- |
9 | | interval | How long should the check last? (ms). |
10 | | limit | Maximal amount of interactions that can be done in the given interval |
11 |
12 | **Notes**
13 | * Be aware that its possible to do 20-30 interactions in 2 seconds even without a modified client given the right circumstances.
14 | * Trying to constantly break grass in a protected area (WorldGuard) can create about 35-45 interactions in 2 seconds.
15 |
16 | **Related**
17 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
18 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
19 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockinteract]-Visible.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockinteract.visible`
2 | Permission (bypass): `nocheatplus.checks.blockinteract.visible`
3 | Exemption: `BLOCKINTERACT_VISIBLE`
4 | Better with: `ProtocolLib (plugin)`
5 |
6 | Visible uses a simplified method of ray-tracing to prevent players from interacting with blocks that are not in sight at all (such as through walls).
7 |
8 | **Notes**
9 | * This check does not cover interactions thru entities such as item frames, paintings, mobs in general.
10 | * Do note that this check will need ProtocolLib in order to mitigate a vanilla bug (packet inversion: the interaction is processed before the looking direction) which causes the check to throw false positives almost everytime you switch block while interacting.
11 |
12 | **Related**
13 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
14 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
15 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockplace]-Against.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockplace.against`
2 | Permission (bypass): `nocheatplus.checks.blockplace.against`
3 | Exemption: `BLOCKPLACE_AGAINST`
4 |
5 | Prevents players from placing blocks against liquid blocks or air as if they were solid.
6 |
7 | **Notes**
8 | * Some mods such as IC2 (via Forge) might allow placing blocks such as cables in/against air, so this feature might conflict there.
9 |
10 | **Related**
11 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
12 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
13 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockplace]-Autosign.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockplace.autosign`
2 | Permission (bypass): `nocheatplus.checks.blockplace.autosign`
3 | Exemption: `BLOCKPLACE_AUTOSIGN`
4 |
5 | This check ensures that players spend a minimum amount of time per written line, after having placed a sign.
6 |
7 | | Option | Description |
8 | | :----- | :--------- |
9 | | skipempty | Should AutoSign skip checking empty signs? |
10 |
11 | **Related**
12 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
13 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
14 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockplace]-Direction.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockplace.direction`
2 | Permission (bypass): `nocheatplus.checks.blockplace.direction`
3 | Exemption: `BLOCKPLACE_DIRECTION`
4 |
5 | The BlockPlace.Direction check forces players to look at the position they want to place their block on.
6 |
7 | **Related**
8 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
9 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
10 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockplace]-Fastplace.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockplace.fastplace`
2 | Permission: `nocheatplus.checks.blockplace.fastplace`
3 | Exemption: `BLOCKPLACE_FASTPLACE`
4 |
5 | The FastPlace check will prevent players from using cheats that place blocks really quickly in order to work (E.g.: Scaffold and AutoBuild).
6 |
7 | | Option | Description |
8 | | :-------------- | :---------- |
9 | | limit | How many blocks should a player be allowed to place in 2 seconds? |
10 | | Shortterm _ticks_ | The amount of ticks to track for the short-term checking. 1 tick = 50ms. |
11 | | Shortterm _limit_ | How many blocks should a player be able to place in the specified ticks? (Ex.: 10 blocks in 6 tick(300ms)) |
12 | | Improbable _feedonly_ | Decide the influence this check should have when contributing to the Improbable check analysis. If false, this check can directly incur Improbable **violations** with its data. If true this check will only contribute in feeding Improbable with its data.|
13 | | Improbable _weight_ |The weight this check should have when feeding improbable. Set to 0.0 if you don't want this check to feed Improbable at all.|
14 |
15 |
16 | **Related**
17 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
18 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
19 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockplace]-Noswing.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockplace.noswing`
2 | Permission: `nocheatplus.checks.blockplace.noswing`
3 | Exemption: `BLOCKPLACE_NOSWING`
4 |
5 | The BlockPlace.NoSwing check ensures that players swing their arm before they can place a block.
6 |
7 | | Option | Description |
8 | | :------------------ | :---------- |
9 | | exemptions | What block should be exempted from being checked? |
10 |
11 | **Notes**
12 | * We put exemptions in here because of some strange Minecraft/Craftbukkit bugs where a legit player wouldn't swing his arm when placing a lily pad or trying to use a flint and steel.
13 |
14 | **Related**
15 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
16 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
17 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockplace]-Preventmisc.md:
--------------------------------------------------------------------------------
1 | Miscellaneous preventions for the BlockPlace section
2 |
3 | | Option | Description |
4 | | :----- | :--------- |
5 | |preventmisc _boatsanywhere_| Do you want players to be able to place boats anywhere on ground? If false players will be able to place them only on water (can prevent boatfly in waterless areas)
6 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockplace]-Reach.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockplace.reach`
2 | Permission: `nocheatplus.checks.blockplace.reach`
3 | Exemption: `BLOCKPLACE_REACH`
4 |
5 | The BlockPlace.Reach check ensures that the location the player is trying to place their block on, is within a legit reach/distance (5.2 blocks in Survival, 5.6 in Creative)
6 |
7 | **Related**
8 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
9 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
10 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockplace]-Scaffold.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockplace.scaffold`
2 | Permission (bypass): `nocheatplus.checks.blockplace.scaffold`
3 | Exemption: `BLOCKPLACE_SCAFFOLD`
4 |
5 | Scaffold is a multi-module check that attempts to enforce realistic speeds and movements when scaffolding (placing blocks below yourself)
6 |
7 | | Option | Description |
8 | | :----- | :--------- |
9 | | angle | The angle subcheck forces players to look at the block-face they want to place their block on.|
10 | | sprint | Prevents players from sprinting while simultaneously placing blocks below them.|
11 | | time _average_| A FastPlace check but for scaffold-type block placements. If all other subchecks fail to detect the cheat this will at least ensure a realistc block placement time. If the calculated average time is inferior to this value, Scaffold will trigger.|
12 | | rotate _difference_| The rotate subecheck checks for large changes in rotation between block placements. If the calculated difference is bigger than the set difference, Scaffold will trigger.|
13 | | toolswitch | The toolswitch subcheck checks if the player is quickly switching inventory slots between block placements.|
14 | | Improbable _feedonly_ | Decide the influence this check should have when contributing to the Improbable check analysis. If false, this check can directly incur Improbable **violations** with its data. If true this check will only contribute in feeding Improbable with its data.|
15 | | Improbable _weight_ |The weight this check should have when feeding improbable. Set to 0.0 if you don't want this check to feed Improbable at all.|
16 |
17 | **Notes**
18 | * Keep in mind that legit fast-scaffolding techniques do exist (e.g.: "godbridge") so you may want to tweak Scaffold's time subcheck to your likings, especially on gamemodes where bridging is a core/important mechanic, like Skywars.
19 | * Some Scaffold implementations tend to also trigger MorePackets if turning around too fast.
20 | * Yaw rate is also monitored here. Makes it even harder to do unlikely rotation changes.
21 |
22 | **Related**
23 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
24 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
25 |
--------------------------------------------------------------------------------
/Settings/Checks/[Blockplace]-Speed.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.blockplace.speed`
2 | Permission: `nocheatplus.checks.blockplace.speed`
3 | Exemption: `BLOCKPLACE_SPEED`
4 |
5 | The BlockPlace.Speed check prevents players from throwing projectiles (experience bottles, eggs, monster eggs, eyes of ender, ender pearls) too quickly.
6 |
7 | | Option | Description |
8 | | :-------- | :---------- |
9 | | interval | The time (in milliseconds) between each thrown projectile. In theory it takes more than 150 ms if the player is keeping their right button pressed. Lower the value, the quicker the time players can throw projectles. |
10 | | Improbable _feedonly_ | Decide the influence this check should have when contributing to the Improbable check analysis. If false, this check can directly incur Improbable **violations** with its data. If true this check will only contribute in feeding Improbable with its data.|
11 | | Improbable _weight_ |The weight this check should have when feeding improbable.|
12 |
13 |
14 | **Related**
15 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
16 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
17 |
--------------------------------------------------------------------------------
/Settings/Checks/[Chat]-Captcha.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.chat.captcha`
2 | Permission (bypass): `nocheatplus.checks.chat.captcha`
3 | Exemption: `CHAT_CAPTCHA`
4 | Depends on: `[Chat] Commands` or `[Chat] Text`
5 |
6 | The captcha feature can be used together with our text or commands spam check to ask players that fail one/both of those a randomly generated captcha, which needs to be answered in order to continue.
7 |
8 | | Option | Description |
9 | | :--------------- | :---------- |
10 | | characters | Which chars (numbers, letters and symbols) should be used to generate a captcha? |
11 | | length | How many chars should the captcha have? |
12 | | question | The message that will be sent to players upon triggering a chat-related check (Text/Commands), the text [captcha] will be replaced with the actual captcha. |
13 | | success | Set the message which will be shown to the player if they answer correctly. |
14 | | tries | Max tries before a player will get kicked from the server. Be generous here, as players may not be fast enough to read the question the first few times or be otherwise distracted. |
15 |
16 | **Related**
17 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
18 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
19 | * [Text](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BChat%5D-Text.md)
20 | * [Commands](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BChat%5D-Commands.md)
21 | * [Formatting codes](http://minecraft.gamepedia.com/Formatting_codes)
22 |
--------------------------------------------------------------------------------
/Settings/Checks/[Chat]-Color.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.chat.color`
2 | Permission (bypass): `nocheatplus.checks.chat.color`
3 | Exemption: `CHAT_COLOR`
4 |
5 | Color is an obsolete check that was designed to stop players from using color in their chat messages even tho they didn't have the permissions for color. Mojang fixed this long time ago but you can still use it if you run on a very old Minecraft version.
6 |
7 | **Related**
8 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
9 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
10 |
--------------------------------------------------------------------------------
/Settings/Checks/[Chat]-Commands.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.chat.commands`
2 | Permission (bypass): `nocheatplus.checks.chat.commands`
3 | Exemption: `CHAT_COMMANDS`
4 |
5 | This check aims to prevent command spamming (player chat only).
6 |
7 | | Setting | Description |
8 | | :---------------- | :---------- |
9 | | exclusions | A list of case sensitive commands to exclude from the commands check. Commands to match complete words, you cant add "/test" to allow "test123", whereas it is possible to use entries like "/region info" to exclude just that sub command. |
10 | | handleaschat | Commands entered in this section will get treated as normal chat activity, thus, getting checked by the Text check instead. If you don't enter every PM command here, a player will be able to spam other players in private much easier. |
11 | | level | Set the total score level at which the commands check will throw 1 violation. |
12 | | shortterm _ticks_ | Number of server ticks to count commands for shortterm checking. |
13 | | shortterm _level_ | Level for which to generate an exception. |
14 |
15 | **Related**
16 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
17 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
18 | * [Captcha](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BChat%5D-Captcha.md)
19 | * [Text](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BChat%5D-Text.md)
20 | * [Long-term and Short-term](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Others/Backgrounds.md#long-term-and-short-term)
21 |
--------------------------------------------------------------------------------
/Settings/Checks/[Chat]-Logins.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.chat.logins`
2 | Permission (bypass): `nocheatplus.checks.chat.logins`
3 | Exemption: `CHAT_LOGINS`
4 |
5 | This check limits the amount of players that can join in a short time.
6 |
7 | | Option | Description |
8 | | :----------------- | :---------- |
9 | | startupdelay | Set delay in seconds till NoCheatPlus enables this check after a server start. |
10 | | perworldcount | If set to true, the counting will be performed for each world individually and not server-wide. |
11 | | seconds | How long should the check last? (Seconds) |
12 | | limit | How many players are allowed to log-in during the given time-frame? |
13 | | kickmessage | This message will be shown to those players that get kicked because too many other players logged in at the same time. |
14 |
15 |
16 | **Related**
17 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
18 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
19 |
--------------------------------------------------------------------------------
/Settings/Checks/[Chat]-Relog.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.chat.relog`
2 | Permission (bypass): `nocheatplus.checks.chat.relog`
3 | Exemption: `CHAT_RELOG`
4 |
5 | Relog prevents players from re-logging too fast.
6 |
7 | | Setting | Description |
8 | | :--------------------- | :---------- |
9 | | timeout | Time/minimum delay that will be enforced between log-in phases(ms). |
10 | | warning _message_ | Set the warning message that will get sent to all players that tried to relog too fast. |
11 | | warning _number_ | Amount of warnings that need to occur before kicking a player for "too fast re-logging". This resets after "warning timeout" executed. |
12 | | warning _timeout_ | Time in milliseconds after which the number of warnings sent resets. |
13 | | kickmessage | Message to display when a player gets kicked by relog check. |
14 |
15 |
16 | **Related**
17 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
18 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
19 | * [Color codes](http://minecraft.gamepedia.com/Formatting_codes)
20 |
--------------------------------------------------------------------------------
/Settings/Checks/[Chat]-Text.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.chat.text`
2 | Permission (bypass): `nocheatplus.checks.chat.text`
3 | Exemption: `CHAT_TEXT`
4 |
5 | Advanced check designed to prevent chat spam and floodding.
6 |
7 | | Option | Description |
8 | | :--------------- | :---------- |
9 | | allowvlreset | TODO: |
10 |
11 | ## Frequency
12 | This check is split in two in order to cover both faster and slower types of chat spamming.
13 |
14 | ### Normal
15 | First module of the Text.frequency check: the "text.frequency.normal" check keeps track of the server chat activity for about 30 seconds.
16 | Meant to prevent slower types (more annoying) of chat spam.
17 |
18 | | Option | Description |
19 | | :--------------- | :---------- |
20 | | minimum | Each message sent by the player will at least count in with this weight. (0.0 means not every message will have a weight) |
21 | | factor | How strong old chat messages should count in, 1.0 would let the check count in fully. |
22 | | weight | Multiplier to balance out things, the calculated score will just be multiplied with this. |
23 | | level | Accumulated score for which to generate a violation for. |
24 |
25 | ### Shortterm
26 | Second module of the Text.frequency check: the "text.frequency.shortterm" check covers 5 seconds of chat activity, roughly.
27 | Meant to protect the server from obvious spam-bots and/or players intentionally flodding the chat
28 |
29 | | Option | Description |
30 | | :--------------- | :---------- |
31 | | minimum | Each message sent by the player will at least count in with this weight. (0.0 means not every message will have a weight) |
32 | | factor | How strong old chat messages should count in, 1.0 would let the check count in fully. |
33 | | weight | Multiplier to balance out things, the calculated score will just be multiplied with this. |
34 | | level | Accumulated score for which to generate a violation for. |
35 |
36 | ## Message
37 | This section allows you to alter the weights of specific messages
38 |
39 | | Option | Description |
40 | | :---------------- | :---------- |
41 | | lettercount | Counting the letters versus the word length. Unbalanced counts would be more expensive. |
42 | | partition | TODO: |
43 | | uppercase | A message with many caps letter will cost more |
44 | | afterjoin | Chatting immediately after join will cost more |
45 | | nomoving | Chatting and not having moved _recently_ is also more expensive. |
46 | | repeatviolation | Repeating a message which has been previously deleted and/or flagged by the Text check will cost more |
47 | | repeatglobal | Repeating a message that is getting repeated a lot in chat by other players is expensive |
48 | | repeatself | A player repeating the same message they just sent will cost more. |
49 | | words _lengthav_ | Word length vs. average word length weight, really long words will count in more |
50 | | words _lengthmsg_ | Word length vs. message length weight |
51 | | words _noletter_ | Weight for words that don't contain any letter, only special characters. Will make countdowns harder to get by. Set to 0.0 to disable. |
52 |
53 | ## Global
54 | Text.Global: uses more extended and advanced methods that are fed by all players messages.
55 |
56 | | Option | Description |
57 | | :------------------ | :---------- |
58 | | weight | Multiplier to allow balancing the score result of this check. 1.0 = no change |
59 | | words | Keeps track of recently spoken words as a whole.|
60 | | prefixes _active_ | Keeps track of recently spoken words, but arranges them to also count in if prefixes of a word are repeated/detected, such as "hello" and "helloccc". Words that just have been used are more "expensive" than old ones. |
61 | | similarity _active_ | Checks words for similarities with the Levenshtein algorithm applied within a metric tree. (most heavy operation, performance-wise) |
62 |
63 | ## Player
64 | Text.Player: uses more extended and advanced methods that keep track of each player individually.
65 |
66 | | Option | Description |
67 | | :------------------ | :---------- |
68 | | words _active_ | Keeps track of recently spoken words as a whole.|
69 | | prefixes _active_ | Keeps track of recently spoken words, but arranges them to also count in if prefixes of a word are repeated/detected, such as "hello" and "helloccc". Words that just have been used are more "expensive" than old ones. |
70 | | similarity _active_ | Keeps track of recently spoken words and assigns a higher score with recently spoken words being repeated similarly. |
71 |
72 |
73 | **Related**
74 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
75 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
76 | * [Captcha](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BChat%5D-Captcha.md)
77 | * [Long-term and Short-term](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Others/Backgrounds.md#long-term-and-short-term)
78 |
--------------------------------------------------------------------------------
/Settings/Checks/[Chat]-Warning.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.chat.warning`
2 | Depends on: `[Chat] Text` or `[Chat] Commands`
3 |
4 | Allows you to warn the player of the chat.text and chat.commands weight levels, possibly before a violation is triggered.
5 |
6 | | Option | Description |
7 | | :------------- | :---------- |
8 | | level | Chance(%) to warn a player.. |
9 | | message | This message will be sent to all of the players that fail a chat check. |
10 | | timeout | Time in seconds before warning again (cooldown) (seconds). |
11 |
12 | **Notes**
13 | * Currently warning does not necessarily happen before violations are being triggered.
14 | * Color codes are supported in message config
15 | * If for example your CHAT_TEXT_SHORTTERM check has level set to 160 you calculate: (160 / 100) * level you set here in warning. Result= The level at which warning will trigger for CHAT_TEXT_SHORTTERM
16 |
17 | **Related**
18 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
19 | * [Text](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BChat%5D-Text.md)
20 | * [Chat Commands](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BChat%5D-Commands.md)
21 |
--------------------------------------------------------------------------------
/Settings/Checks/[Combined]-Bedleave.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.combined.bedleave`
2 | Permission (bypass): `nocheatplus.checks.combined.beadleave`
3 | Exemption: `COMBINED_BEDLEAVE`
4 |
5 | This check makes sure that there has been a bed near the player if they send a bed-leave packet. Without this check, players could abuse the small "teleport" you do after exiting a bed in order to fly around.
6 |
7 |
8 | **Related**
9 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
10 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
11 | * [SurvivalFly](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving%5D-Survivalfly.md)
12 |
--------------------------------------------------------------------------------
/Settings/Checks/[Combined]-Enderpearl.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.combined.enderpearl`
2 | Permission (bypass): `nocheatplus.checks.combined.enderpearl`
3 | Exemption: `COMBINED_ENDERPEARL`
4 |
5 | This check aims to prevent no-clipping by abusing the teleportation of ender pearls.
6 |
7 | | Option | Description |
8 | | :-------------- | :---------- |
9 | | preventclickblock | Prevent the client from throwing ender pearls against walls if NCP detects that the client has a solid block in front of it |
10 |
11 | **Related**
12 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
13 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
14 | * [Passable](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving%5D-Passable.md)
15 |
--------------------------------------------------------------------------------
/Settings/Checks/[Combined]-Improbable.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.combined.improbable`
2 | Permission (bypass): `nocheatplus.checks.combined.improbable`
3 | Exemption: `COMBINED_IMPROBABLE`
4 |
5 | Improbable is a simple heuristic check which combines several frequencies and occurrences from other checks/inputs into one count. It's rather meant to suggest that the player could be cheating by intercepting 'symptoms' of improbable behaviour in a longer run. (E.g.: turning around extremely quick does not mean that the player is cheating per se, but it is suspicious etc...)
6 |
7 | | Option | Description |
8 | | :-------------- | :---------- |
9 | | level | How lenient should Improbable be when checking players. Higher the value, the more the time this check will take to stop cheaters. |
10 |
11 | **Related**
12 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
13 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
14 |
--------------------------------------------------------------------------------
/Settings/Checks/[Combined]-Invulnerable.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.combined.invulnerable`
2 | Permission (bypass): `nocheatplus.checks.combined.invulnerable`
3 | Exemption: `COMBINED_INVULNERABLE`
4 |
5 | Selectively alter or remove the initial invulnerability after login.
6 |
7 | | Option | Description |
8 | | :---------------------- | :---------- |
9 | | triggers _always_ | Always apply the alterations. |
10 | | triggers _falldistance_ | Trigger with the fall distance being greater than 0. Reduces the impact of this check, because most of the time players are not affected at all. |
11 | | initialticks _join_ | Allows to override the amount of invulnerable ticks, whatever Minecraft is using. Default is -1 and means not altering. |
12 | | ignore | Damage types for which the invulnerable ticks are to be ignored. By default FALL is set, to prevent abusing the login invulnerability to avoid fall damage. |
13 | | modifiers | Define individual modifiers per damage type (the preset is defined with 'all'). The player will stay invulnerable for this amount of ticks longer/shorter for the specified damage type, allowing for negative values as well. |
14 |
15 | **Related**
16 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
17 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
18 |
--------------------------------------------------------------------------------
/Settings/Checks/[Combined]-Munchhausen.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.combined.munchhausen`
2 | Permission (bypass): `nocheatplus.checks.combined.munchhausen`
3 | Exemption: `COMBINED_MUNCHHAUSEN`
4 |
5 | Enable this check if you see players hook themselves with a fishing rods to abuse the knockback for flying. At the moment we are speculating if it will ever be possible to do, the solution however is already here if it ever happens.
6 |
7 | **Related**
8 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
9 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
10 |
--------------------------------------------------------------------------------
/Settings/Checks/[Combined]-Yawrate.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.combined.yawrate`
2 | Permission (bypass): `nocheatplus.checks.combined.yawrate`
3 | Exemption: `COMBINED_YAWRATE`
4 |
5 | Yawrate monitors how quickly players turn around to perform certain actions (most important, to attack) by checking how quickly the yaw-change rate varies over time.
6 |
7 | | Option | Description |
8 | | :----------------- | :---------- |
9 | | rate | Yaw speed change rate allowed without triggering a fight penalty. Set to 360 if you want to steer clear from any possible false positive, although this will only prevent extremely fast-turning killauras |
10 | | penalty _factor_ | How many times should the counted penalties be multiplied? 2.0 is already double. |
11 | | penalty _minimum_ | Set minimal amount of attacking penalty in milliseconds for every violation of Yawrate. |
12 | | penalty _minimum_ | Set maximum amount of attacking penalty in milliseconds for every violation of Yawrate. |
13 | | Improbable _feedonly_ | Decide the influence this check should have when contributing to the Improbable check analysis. If false, this check can directly incur Improbable **violations** with its data. If true this check will only contribute in feeding Improbable with its data. NOTE: if you set this to true, YawRate will still work and *silently* give players penalties. See `checks.fight.yawrate.active` if you want to completely disable this check|
14 | | Improbable _weight_ | The weight this check should have when feeding improbable. **NOTE**: the effect is inverted here: higher the value, less the weight this check will have when feeding Improbable. Set to 0.0 if you don't want this check to feed Improbable at all.|
15 |
16 | **Related**
17 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
18 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
19 | * [Improbable](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BCombined%5D-Improbable.md)
20 |
--------------------------------------------------------------------------------
/Settings/Checks/[Fight]-Angle.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.fight.angle`
2 | Permission (bypass): `nocheatplus.checks.fight.angle`
3 | Exemption: `FIGHT_ANGLE`
4 |
5 | Angle is a multi-algorithm check which prevents players from hitting too many entities at the same time (2 or more)
6 |
7 | | Option | Description |
8 | | :------------------ | :---------- |
9 | | threshold| Control the strictness of every checking method, if the VL generated by the algorithm is higher than its threshold, Angle will trigger.|
10 | | threshold _average_move_ | Average move between each attacks, if the move is inferior to 0.2 blocks, a violation will be generated. | Average time between each attacks, if the time elapsed is inferior to 150ms, a violation will be generated.
11 | | threshold _average_time_| Average time between each attacks, if the time elapsed is inferior to 150ms, a violation will be generated.
12 | |threshold _average_yaw_| Average yaw change between each attacks, if the player's yaw is inferior to 50 degrees, a violation will be generated.
13 | |threshold _average_switch_| Checks for too fast target switch (if greater than 0 it'll trigger a violation)
14 |
15 | **Related**
16 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
17 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
18 |
--------------------------------------------------------------------------------
/Settings/Checks/[Fight]-Criticals.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.fight.criticals`
2 | Permission (bypass): `nocheatplus.checks.fight.criticals`
3 | Exemption: `FIGHT_CRITICALS`
4 | Better with: `[Moving] NoFall`
5 |
6 | This check ensures that critical hits performed by players are legit.
7 |
8 | | Option | Description |
9 | | :------------------ | :---------- |
10 | | falldistance | Jumping lower than this limit allows criticals violations. |
11 | | falldistleniency | The leniency value used to compare fall distance differences. Higher the value, higher the leniency.|
12 |
13 | **Tags**
14 | * `falldist_mismatch`: This tag indicates a mismatch between Minecraft's fall distance and our calculated fall distance (the fall distance is taken from the NoFall check).
15 | * `lowjump`: The player tried to jump lower than normal in order to get more critical hits.
16 | * `silent_jump`: The player accumulated fall distance while still being on ground (often the case with packet-based critical cheats).
17 |
18 | **Notes**
19 | * In MC you need to hit someone while falling to get a critical hit.
20 | * Check `checks.moving.nofall.anticrticals` if you wish to further tweak settings concerning critical cheats.
21 | * The `falldist_mismatch` module uses NoFall's internal calculations to determine if players could be cheating, so disabling NoFall will partially cripple this check.
22 | * Some packet-based critical cheats may trigger MorePackets if cheaters hit their target too many times while moving.
23 |
24 | **Related**
25 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
26 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
27 | * [NoFall](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving%5D-Nofall.md)
28 |
--------------------------------------------------------------------------------
/Settings/Checks/[Fight]-Direction.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.fight.direction`
2 | Permission (bypass): `nocheatplus.checks.fight.direction`
3 | Exemption: `FIGHT_DIRECTION`
4 |
5 | The Fight.Direction check prevents players from hitting entities out of FOV/crosshair
6 |
7 | | Option | Description |
8 | | :------------------ | :---------- |
9 | | strict | Extra strict interpretation method, will also check the angle between the viewing direction and the direction towards the target, making the check more accurate in a close combat, at cost of (potentially) more false positives. This only applies to PVP, not versus mobs. |
10 | | failall | Only set off the direction check if no suitable looking direction during the loop can pass. |
11 | | loopprecision | How much should NoCheatPlus expand the target hitbox by? (Mitigates false positives) Higher value, higher leniency thus a higher chance of cheating (minimum: 0.5)
12 | | strictangleprecision| If the strict mode is active, what should the max angle be between the vector from attacker to target and the look vector? Max 100.0, min 50.0.
13 | | penalty | How long should a player have to wait to hit other entities after triggering the check. |
14 |
15 | **Notes**
16 | * Disabling this would allow players to fight entities while having their back turned on them.
17 |
18 | **Related**
19 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
20 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
21 |
--------------------------------------------------------------------------------
/Settings/Checks/[Fight]-Fastheal.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.fight.fastheal`
2 | Permission (bypass): `nocheatplus.checks.fight.fastheal`
3 | Exemption: `FIGHT_FASTHEAL`
4 |
5 | FastHeal enforces realistic health regeneration speeds on players, preventing Regen cheats and the like from working.
6 |
7 | | Option | Description |
8 | | :------------------ | :---------- |
9 | | interval | Interval in ms (milliseconds) between regaining health (from saturation). |
10 | | buffer | Buffer for which FastHeal will compensate faster health regeneration for (ms). |
11 |
12 | **Notes**
13 | * In Minecraft 1.6 and older a player could faster generate health by spamming movement packets, this was later on changed in MC 1.7.x and higher to generate health based on server ticks instead. However there seem to still be some cases left where players seem to still be able to generate health faster which is the reason why we didnt remove Fastheal from NC+.
14 | * This check will auto-disable itself in newer versions (1.9+) since it's not possible to use this kind of cheat anymore.
15 | * Fastheal has a buffer to prevent false positives by smoothing out lag spikes
16 | * You want to only adjust the interval if your server heals your players faster/slower for some reason (mods?)
17 |
18 | **Related**
19 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
20 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
21 |
--------------------------------------------------------------------------------
/Settings/Checks/[Fight]-General.md:
--------------------------------------------------------------------------------
1 | This page lists miscellaneous config options regarding fighting.
2 |
3 | | Option | Description |
4 | | :---------------------- | :---------- |
5 | | canceldead | Prevent dead players from hitting other players/entities while being still dead. This cancels silently.|
6 | | toolchangepenalty | Amount of time in ms, that players have to wait to hit an entity after switching item in their hotbar. This is helpful only if you have problems with AutoSwitch/FastSwitch cheats, otherwise leave it disabled as it can impact gameplay/pvp a lot.|
7 | | maxlooplatencyms | Maximum latency counted in milliseconds for the loop checks (direction/reach). Higher the value, higher the leniency for these checks.|
8 | | pvp _knockbackvelocity_ | Should NoCheatPlus calculate the knockback velocity resulting from pvp by itself? Since MC 1.8, no velocity is sent by the server for pvp anymore, thus we don't get told by an event that the player is getting pushed. You should not touch this since NCP will automatically enable/disable it according to the detect version. Force set with true/false if you have problems with Survivalfly setbacking players in pvp.|
9 | | yawrate _active_ | Yawrate tracks how fast players turn sideways. Having yawrate enabled allows to prevent some types of actions such as turning instantly and hit another player or entity. Also feeds the improbable check.|
10 |
11 | **Notes**
12 | * pvp _knockbackvelocity_ has nothing to do with the already removed fight.knockback check.
13 |
14 | **Related**
15 | * [Violations](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Others/Backgrounds.md#violations)
16 | * [Yawrate](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BCombined%5D-Yawrate.md)
17 |
--------------------------------------------------------------------------------
/Settings/Checks/[Fight]-Godmode.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.fight.godmode`
2 | Permission (bypass): `nocheatplus.checks.fight.godmode`
3 | Exemption: `FIGHT_GODMODE`
4 |
5 | The GodMode checks verifies if players try to deny the damage that has been inflicted to them (Mobs/pvp/others)
6 |
7 | | Option | Description |
8 | | :------------------ | :---------- |
9 | | minage | Minimal delay to count it as lagging. |
10 | | maxage | Maximal delay to count it as lagging. |
11 |
12 | **Related**
13 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
14 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
15 |
--------------------------------------------------------------------------------
/Settings/Checks/[Fight]-Noswing.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.fight.noswing`
2 | Permission (bypass): `nocheatplus.checks.fight.noswing`
3 | Exemption: `FIGHT_NOSWING`
4 |
5 | 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 mobs.
6 |
7 | **Related**
8 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
9 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
10 |
--------------------------------------------------------------------------------
/Settings/Checks/[Fight]-Reach.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.fight.reach`
2 | Permission (bypass): `nocheatplus.checks.fight.reach`
3 | Exemption: `FIGHT_REACH`
4 |
5 | The Fight.Reach check prevents players from _consistenly_ over-reaching.
6 |
7 | | Option | Description |
8 | | :------------------ | :---------- |
9 | | survivaldistance | Maximum attack distance for survival and adventure gamemode. |
10 | | penalty | How long should a player have to wait to hit other entities after triggering the check. (ms) |
11 | | reduce | Whether or not the dynamic _survivaldistance_ feature should be enabled. If players hit too close at the _survivaldistance_, the maximum reach is reduced, so it is harder to use killaura. A player that hits between the dynamic limit and the _survivaldistance_ limit gets a silent penalty without violation level added. |
12 | | precision | If true, the check will subtract from the calculated reach distance the player's own hitbox radious (0.3 blocks). |
13 | | reducedistance | Maximum amount of distance by which the _survivaldistance_ can be reduced (Blocks). |
14 | | reducestep | Takes effect when a player hits at a rather long distance (blocks). This is to prevent killauras getting too many hits in a row at too big distance. |
15 | | Improbable _feedonly_ | Decide the influence this check should have when contributing to the Improbable check analysis. If false, this check can directly incur Improbable **violations** with its data. If true this check will only contribute in feeding Improbable with its data.|
16 | | Improbable _weight_ |The weight this check should have when feeding improbable. **NOTE**: the effect is inverted here: higher the value = less the weight this check will have when feeding Improbable. Set to 0.0 if you don't want this check to feed Improbable at all.|
17 |
18 | **Notes**
19 | * Because of lag the reach distance isn't a fixed value and may increase/decrease, reach is for that reason designed to be dynamic and adapt to server lag if needed.
20 | * The maximum reach for attacking is set to 3.0 blocks client-side, the server however allows players to hit up to 6 blocks maximum to compensate for latency, this can be easily exploited by cheaters to always attack at the maximum range the server will allow.
21 |
22 | **Related**
23 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
24 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
25 |
--------------------------------------------------------------------------------
/Settings/Checks/[Fight]-Selfhit.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.fight.selfhit`
2 | Permission (bypass): `nocheatplus.checks.fight.selfhit`
3 | Exemption: `FIGHT_SELFHIT`
4 |
5 | This check was originally designed to prevent cheaters from hitting themselves, in order to fly around. This was later on fixed by Mojang.
6 |
7 | | Option | Description |
8 | | :----- | :--------- |
9 | | excludeprojectiles| Should SelfHit exclude checking players hitting themselves with projectiles (e.g.: with a bow)?|
10 | | message| Should NCP log a message to players who try to hit themselves with a projectile? |
11 |
12 | **Notes**
13 | * Leaving SelfHit enabled wont conflict with Mojangs or Spigots fix on this exploit
14 | * In 1.8 it is possible to fly with a bow (bowfly) so you should still leave this enabled if your server runs in 1.8.
15 |
16 | **Related**
17 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
18 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
19 |
--------------------------------------------------------------------------------
/Settings/Checks/[Fight]-Speed.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.fight.speed`
2 | Permission (bypass): `nocheatplus.checks.fight.speed`
3 | Exemption: `FIGHT_SPEED`
4 |
5 | The Fight.Speed check prevents players from hitting entities too quickly.
6 |
7 | | Option | Description |
8 | | :------------------ | :---------- |
9 | | limit | How many clicks per second should players be allowed to perform? |
10 | | shortterm _ticks_ | Ticks to track for the short-term checking. |
11 | | shortterm _limit_ | How many clicks can a player perform in the specified ticks? |
12 | | Improbable _feedonly_ | Decide the influence this check should have when contributing to the Improbable check analysis. If false, this check can directly incur Improbable **violations** with its data. If true this check will only contribute in feeding Improbable with its data.|
13 | | Improbable _weight_ |The weight this check should have when feeding improbable. Set to 0.0 if you don't want this check to feed Improbable at all.|
14 |
15 |
16 | **Notes**
17 | * See also `Net.AttackFrequency`for a better version of this check.
18 | * It is *extremely* unlikely that a (casual) player can reach 20 CPS and keeping such value for long period of times, anything above 20(+)-ish can be considered as cheating.
19 | * 1 tick = 50 ms.
20 |
21 | **Related**
22 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
23 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
24 | * [Long-term and Short-term](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Others/Backgrounds.md#long-term-and-short-term)
25 |
--------------------------------------------------------------------------------
/Settings/Checks/[Inventory]-Drop.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.inventory.drop`
2 | Permission (bypass): `nocheatplus.checks.inventory.drop`
3 | Exemption: `INVENTORY_DROP`
4 |
5 | Hackers can drop their entire inventory with 1 click to lag and crash your server, to prevent this we simply limit the amount of drops a player is allowed to do.
6 |
7 | | Option | Description |
8 | | :------------------ | :---------- |
9 | | limit | Set the amount of items a player can drop in one timeframe. |
10 | | timeframe | Set the limit in ms (milliseconds) when the drop check should reset and start counting from scratch. |
11 |
12 | **Notes**
13 | * If (for example) your limit is set to 100 and your timeframe to 20, will allow your players to drop 100 items in 20 milliseconds
14 |
15 | **Related**
16 | * [Active](General#Active)
17 | * [Actions](General#Actions)
--------------------------------------------------------------------------------
/Settings/Checks/[Inventory]-Fastclick.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.inventory.fastclick`
2 | Permission (bypass): `nocheatplus.checks.inventory.fastclick`
3 | Exemption: `INVENTORY_FASTCLICK`
4 |
5 | FastClick limits the amount of clicks a player can perform inside an inventory.
6 |
7 | | Option | Description |
8 | | :------------------ | :---------- |
9 | | sparecreative | Set this to true if you don't want Fastclick to check players that are in creative mode. |
10 | | tweaks1_5 | Set this to true if you want to support the new inventory tweaks that were introduce in Minecraft 1.5 (such as inventory painting). |
11 | | limit _shortterm_ | How many clicks should a player be able to perform in one tick (50ms) ?|
12 | | limit _normal_ | How many clicks should a player be able to perform in one second? |
13 | | limit _chest_ | The time, in ms, that a player is not allowed to interact with a chest/container if it is below this time after opening. This will force more realistic interaction times, slowing all cheststealer-like cheats down.|
14 | | Improbable _feedonly_ | Decide the influence this check should have when contributing to the Improbable check analysis. If false, this check can directly incur Improbable **violations** with its data. If true this check will only contribute in feeding Improbable with its data.|
15 | | Improbable _weight_ |The weight this check should have when feeding improbable. Set to 0.0 if you don't want this check to feed Improbable at all.|
16 |
17 | **Notes**
18 | * If you run Minecraft 1.4.x and older then set tweaks1_5 to false.
19 | * This check will also prevent mods such as InvTweaks and similar ones from working right (because they give advantage compared to vanilla players), if you want your players to be able to use those mods then disable this check or give them the right exempt permission.
20 |
21 | **Related**
22 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
23 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
24 | * [Long-term and Short-term](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Others/Backgrounds.md#long-term-and-short-term)
25 |
--------------------------------------------------------------------------------
/Settings/Checks/[Inventory]-Fastconsume.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.inventory.fastconsume`
2 | Permission (bypass): `nocheatplus.checks.inventory.fastconsume`
3 | Exemption: `INVENTORY_FASTCONSUME`
4 |
5 | Fastconsume replaces the former Instanteat check and extends it by forcing vanilla consume durations on potions, water bottles and more.
6 |
7 | | Option | Description |
8 | | :------------------ | :---------- |
9 | | duration | How long should it take to consume an item? (seconds) (Legit speed: 1.5s for most items, except dried kelp). |
10 | | whitelest | True means that Fastconsume will only check the items you have added in your list. False means that Fastconsume ignores all items you added in your list (option below). |
11 | | items | You can add items here that you want to whitelist/blacklist from the Fastconsume check. |
12 |
13 | **Notes**
14 | * NoCheatPlus will automatically fallback to "Instanteat" if your server does not support the consume event which fastconsume needs to work.
15 | * Setting duration higher will require players more time to consume the item while setting it lower allows them to consume it quicker.
16 | * This check will auto-disable itself in newer versions (1.9+) since it's not possible to use this kind of cheat anymore.
17 |
18 | **Related**
19 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
20 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
21 | * [Instanteat](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BInventory%5D-Instanteat.md)
22 |
--------------------------------------------------------------------------------
/Settings/Checks/[Inventory]-Gutenberg.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.inventory.gutenberg`
2 | Permission (bypass): `nocheatplus.checks.inventory.gutenberg`
3 | Exemption: `INVENTORY_GUTENBERG`
4 |
5 | Gutenberg prevents players from writing books that have more then 50 pages using a weakness in Minecraft.
6 |
7 | | Option | Description |
8 | | :----- | :--------- |
9 | | pagelimit| The legit amount of pages NCP will allow the player to write|
10 |
11 | **Related**
12 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
13 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
14 |
--------------------------------------------------------------------------------
/Settings/Checks/[Inventory]-Hotfix.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.inventory.hotfix`
2 |
3 | The Hotfix check fixes a bug introduced in MC 1.9 to duplicate blocks falling inside a portal
4 |
5 | | Option | Description |
6 | | :----- | :--------- |
7 | | duplication _fallingblockendportal_| Do you want the hotfix for item duplication glitch check active? |
8 |
9 | **Related**
10 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
11 |
--------------------------------------------------------------------------------
/Settings/Checks/[Inventory]-Instantbow.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.inventory.instantbow`
2 | Permission (bypass): `nocheatplus.checks.inventory.instantbow`
3 | Exemption: `INVENTORY_INSTANTBOW`
4 |
5 | This check will make sure that your players use the proper fire speed to shoot arrows with a bow. InstantBow will take actions against players that try to go over the allowed limit.
6 |
7 | | Option | Description |
8 | | :------------------ | :---------- |
9 | | strict | If set to true, this monitors time from pulling to firing. If set to false, this only regards the time between shots - use for problems with lag/latency, at the cost of allowing one instant shot always. |
10 | | delay | The legit speed NCP will accept from pulling the string to the actual shot. |
11 |
12 | **Related**
13 | * This check will auto-disable itself on newer versions (1.9+) since it's not possible to use this kind of cheat anymore.
14 |
15 | **Related**
16 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
17 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
18 |
--------------------------------------------------------------------------------
/Settings/Checks/[Inventory]-Instanteat.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.inventory.instanteat`
2 | Permission (bypass): `nocheatplus.checks.inventory.instanteat`
3 | Exemption: `INVENTORY_INSTANTEAT`
4 |
5 | This check was designed to prevent players from eating food faster then usually possible.
6 |
7 | **Note**
8 | * NoCheatPlus will detect your CraftBukkit version and replace this check with "fastconsume" if your server supports the consume event
9 | * This check has been tested and doesn't cause any problems with plugins that modify eat speed such as FastEat or AutoSoup.
10 |
11 | **Related**
12 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
13 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
14 | * [Fastconsume](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BInventory%5D-Fastconsume.md)
15 |
--------------------------------------------------------------------------------
/Settings/Checks/[Inventory]-Inventorymove.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.inventory.inventorymove`
2 | Permission (bypass): `nocheatplus.checks.inventory.inventorymove`
3 | Exemption: `INVENTORY_INVENTORYMOVE`
4 |
5 | InventoryMove checks for impossible inventory clicks (e.g.: while sneaking, swimming, moving etc...).
6 |
7 | | Option | Description |
8 | | :----- | :--------- |
9 | | disable_creative | Set to true if you want InventoryMove to skip players in creative mode. |
10 | | hdistdivisor | Divisor used to calculate the minimum horizontal distance. Higher the value, less the leniency. |
11 | | Improbable _feedonly_ | Decide the influence this check should have when contributing to the Improbable check analysis. If false, this check can directly incur Improbable **violations** with its data. If true this check will only contribute in feeding Improbable with its data. Currently applies only for clicking in inventory and attacking at the same time.|
12 | | Improbable _weight_ |The weight this check should have when feeding improbable. Set to 0.0 if you don't want this check to feed Improbable at all.|
13 |
14 | **Related**
15 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
16 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
17 |
--------------------------------------------------------------------------------
/Settings/Checks/[Inventory]-Items.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.inventory.items`
2 | Permission (bypass): `nocheatplus.checks.inventory.items`
3 | Exemption: `INVENTORY_ITEMS`
4 |
5 | This check was a hotfix against a devastating exploit in Minecraft 1.4.5 (and lower) which allowed hackers to apply unlimited enchantments on a book without paying any exp or similar. So a book could kill players instantly or have loot X on it and drop 100 leather from a cow.
6 |
7 | **Notes**
8 | * In Minecraft 1.4.6 this exploit got fixed and the "enchanted books" got introduced into the game
9 |
10 | **Related**
11 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
12 |
--------------------------------------------------------------------------------
/Settings/Checks/[Inventory]-Moreinventory.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.inventory.moreinventory`
2 | Permission (bypass): `nocheatplus.checks.inventory.moreinventory`
3 | Exemption: `INVENTORY_ MOREINVENTORY`
4 |
5 | MoreInventory prevents players from obtaining 4 additional storage slots by exploiting the player crafting slots.
6 |
7 | **Related**
8 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
9 |
--------------------------------------------------------------------------------
/Settings/Checks/[Inventory]-Open.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.inventory.open`
2 | Permission (bypass): `nocheatplus.checks.inventory.open`
3 | Exemption: `INVENTORY_OPEN`
4 |
5 | In order to support Minecraft in preventing dupe bugs, we have come up with a simple idea to close inventories on teleports and other activities.
6 |
7 | | Option | Description |
8 | | :------------------ | :---------- |
9 | | close | Set to true to close inventories if conflicting other actions. |
10 | | cancelother | Cancel other actions as well that conflict with an open inventory. |
11 |
12 | **Related**
13 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
14 |
--------------------------------------------------------------------------------
/Settings/Checks/[Moving-Vehicle]-Envelope.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.moving.vehicle.envelope`
2 | Permission (bypass): `nocheatplus.checks.moving.vehicle.envelope`
3 | Exemption: `MOVING_VEHICLE_ENVELOPE`
4 |
5 | The VehicleEnvelope check handles everything related to vehicle movement (As of 1.9, vehicles are not under the server's control anymore so we need checks for players in vehicles as well)
6 |
7 | | Option | Description |
8 | | :----- | :--------- |
9 | | hdistcap _default_ | Horizontal speed multiplier for players riding vehicles|
10 | | hdistcap _pig_ | Horizontal speed multiplier for players riding pigs|
11 |
12 | **Related**
13 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
14 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
15 | * [Vehicle.MorePackets](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving-Vehicle%5D-Morepackets.md)
16 |
--------------------------------------------------------------------------------
/Settings/Checks/[Moving-Vehicle]-General.md:
--------------------------------------------------------------------------------
1 | This page explains configuration options which affect vehicles.
2 |
3 | | Option | Description |
4 | | :------------------------------ | :---------- |
5 | | vehicles _preventdestroyown_ | Prevent players from accidentally destroying their own minecart while riding it.|
6 | | vehicles _enforcelocation_ | Attempt to track extreme deviations from the vehicle position and correct them. Experimental (hopefully-) legacy option. Likely inoperable and useless, subject to removal.|
7 | | vehicle _schedulesetbacks_ | TODO: |
8 | |vehicle _schedulesetpassenger_ | Keep the player into the vehicle -with the exception for boats- after a vehicle setback has recently happened. |
9 | | illegalvehiclemove | Kick and log this message to players who try to exploit vehicles.|
10 |
11 | **Note**
12 | * Minecraft fixed the "destroyown vehicle" bug so the `vehicle.preventdestroyown` feature is just here for legacy servers. Leaving it enabled won't conflict with anything.
13 | * Set `vehicle.schedulesetpassenger` to true if you're noticing odd visual glitches/bugs (such as the player being off the vehicle client-side but still riding it server-side) after a vehicle setback. This is especially beneficiary for newer clients (1.16+) where such glitches are quite common.
14 |
15 | **Related**
16 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
17 |
--------------------------------------------------------------------------------
/Settings/Checks/[Moving-Vehicle]-Morepackets.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.moving.vehicle.morepackets`
2 | Permission (bypass): `nocheatplus.checks.moving.vehicle.morepackets`
3 | Exemption: `MOVING_VEHICLE_MOREPACKETS`
4 |
5 | The Vehicle.MorePackets does the same job as the Moving.MorePackets check this one however, is for players riding vehicles (carts, horses, boats etc..)
6 |
7 | **Related**
8 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
9 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
10 | * [Moving.Morepackets](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving%5D-Morepackets.md)
11 |
--------------------------------------------------------------------------------
/Settings/Checks/[Moving]-Creativefly.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.moving.creativefly`
2 | Permission (bypass): `nocheatplus.checks.moving.creativefly`
3 | Exemption: `MOVING_CREATIVEFLY`
4 | Better with: `[Moving] Morepackets`
5 |
6 | CreativeFly aims to control special movements such as levitating, gliding and flying (in survival) as well as checking players in Creative and Spectator mode.
7 |
8 | | Option | Description |
9 | | :------------------ | :---------- |
10 | | ignoreallowflight | Should CreativeFly **ignore** players who are set to be allowed to fly in _survival/adventure_ and let SurvivalFly handle them instead? Provided there aren't side conditions forcing use of CreativeFly (see notes) regardless of `ignoreallowflight` being set to false. If this option is set to false, players in _survival_ who are set to be allowed to fly will be able to use almost **any kind of movement cheat** as SurvivalFly will not be run for the player. |
11 | | ignorecreative | Should CreativeFly **ignore** players who are in creative mode and let SurvivalFly handle them instead? Provided there aren't other side conditions forcing use of CreativeFly (see notes), regardless of `ignorecreative` being set to true. **This does not disable CreativeFly**. |
12 | | **riptiding** | Riptiding is handled by CreativeFly. |
13 | | riptiding _horizontal speed_|Maximum horizontal speed allowed while riptiding. The formula is as it follows: (horizontal value / 100 * 0.6).|
14 | | riptiding _vertical ascend speed_|Maximum ascend speed allowed in riptiding. The formula is as it follows: (vertical value / 100). |
15 | | riptiding _vertical maxheight_|The maximum height in blocks that players can travel after having gone beyond MC's 256 height limit. (maxheight + 256 = maximum world height).|
16 | | riptiding _modifiers_|Set whether NCP should increase the base riptiding speed by the attribute/potion modifier value.|
17 | | **slowfalling** | Slowfalling is handled by CreativeFly. |
18 | | slowfalling _horizontal speed_ |Maximum horizontal speed allowed with slowfalling active. The formula is as it follows: (horizontal value / 100 * 0.6).|
19 | | slowfalling _vertical ascend speed_ |Maximum ascend speed allowed with slowfalling active. The formula is as it follows: (vertical value / 100). Set to 0 here since players cannot ascend while being exposed to slowfall. Setting it to a different value may allow slowly fly upwards.|
20 | | slowfalling _vertical maxheight_|The maximum height in blocks that players can travel after having gone beyond MC's 256 height limit. (maxheight + 256 = maximum world height).|
21 | | slowfalling _vertical gravity_|Set whether NCP should calculate the ordinary falling friction with slowfalling active.|
22 | | slowfalling _modifiers_|Set whether NCP should increase the base slowfalling speed by the attribute/potion modifier value.|
23 | | slowfalling _ground_|Set whether NCP should perform a ground check and collect all ground flags with slowfalling active.|
24 | | **creative** | Creative mode fly modelling, this also applies to players in survival who can fly: players in Creative (or that can fly) are checked by the CreativeFly by default (unless ignorecreative/allowflight is set to true)|
25 | | creative _horizontal speed_|Maximum horizontal speed allowed in creative mode. The formula is as it follows: (horizontal value / 100 * 0.6).|
26 | | creative _vertical ascend speed_|Maximum ascend speed allowed in creative mode. The formula is as it follows: (vertical value / 100). |
27 | | creative _vertical maxheight_|The maximum height in blocks that players can travel after having gone beyond MC's 256 height limit. (maxheight + 256 = maximum world height).|
28 | | **spectator** | Spectator mode is handled by CreativeFly only. |
29 | | spectator _horizontal speed_ |Maximum horizontal speed allowed in spectator mode. The formula is as it follows: (horizontal value / 100 * 0.6).|
30 | | spectator _vertical ascend speed_ |Maximum ascend speed allowed in spectator mode. The formula is as it follows: (vertical value / 100).|
31 | | spectator _vertical maxheight_|The maximum height in blocks that players can travel after having gone beyond MC's 256 height limit. (maxheight + 256 = maximum world height)|
32 | | spectator _vertical gravity_|Set whether NCP should calculate the ordinary falling friction for players in spectator mode.|
33 | | spectator _modifiers_|Set whether NCP should increase the base speed for players in spectator mode by the attribute/potion modifier value.|
34 | | spectator _ground_|Set whether NCP should perform a ground check and collect all ground flags for players in spectator mode.|
35 | | **levitation** | Levitation is handled by CreativeFly. |
36 | | levitation _horizontal speed_ |Maximum horizontal speed allowed with levitation active. The formula is as it follows: (horizontal value / 100 * 0.6).|
37 | | levitation _vertical ascend speed_ |Maximum ascend speed allowed with levitation active. The formula is as it follows: (vertical value / 100). Set to 0 here since players cannot ascend while being exposed to levitation. Setting it to a different value may allow slowly fly upwards.|
38 | | levitation _vertical maxheight_|The maximum height in blocks that players can travel after having gone beyond MC's 256 height limit. (maxheight + 256 = maximum world height).|
39 | | levitation _vertical gravity_|Set whether NCP should calculate the ordinary falling friction with levitation active.|
40 | | levitation _modifiers_|Set whether NCP should increase the base levitation speed by the attribute/potion modifier value.|
41 | | levitation _ground_|Set whether NCP should perform a ground check and collect all ground flags with levitation active.|
42 | | **elytra** | Gliding with an elytra is handled by CreativeFly only.|
43 | | elytra _horizontal speed_|Maximum horizontal speed allowed when gliding. The formula is as it follows: (horizontal value / 100 * 0.6).|
44 | | elytra _horizontal modsprint_|The horizontal sprint modifier multiplier.|
45 | | elytra _vertical ascend speed_ |Maximum ascend speed allowed when gliding. The formula is as it follows: (horizontal value / 100 * 0.6). Set to 0 here since players cannot intentionally glide upwards.|
46 | | elytra _maxheight_|The maximum height in blocks that players can travel after having gone beyond MC's 256 height limit. (maxheight + 256 = maximum world height).|
47 | | elytra _modifiers_|Set whether NCP should increase the base speed for players gliding with an elytra by the attribute/potion modifiers value|
48 | | elytra _resetFwOnGround_ | Reset the firework boost time if NCP detects the player to be on ground. |
49 | | elytra _strict_ | Enable extra elytra checking methods. With this disabled, it'll be much easier for cheaters to exploit the elytra and fly around in Survival.|
50 |
51 | **Tags**
52 | * `hFrict`: Horizontal friction has been applied.
53 | * `hFrict_lev`: Levitation horizontal friction.
54 | * `hFrict_rip`: Riptide horizontal friction.
55 | * `vRipGlide`: Vertical distance checking for riptiding and gliding at the same time.
56 | * `hRipGlide`: Horizontal distance checking for riptiding and gliding at the same time.
57 | * `hDist`: Indicates that the player went beyond the horizontal limits.
58 | * `hVel`: Player has velocity active.
59 | * `hDolphinsGrace`: Dolphin's grace amplifier.
60 | * `MaxHeight`: Indicates that the player tried to fly too high up.
61 | * `AntiLevitate`: Player triggered the "anti-levitate" subcheck.
62 | * `vDist`: Indicates that the player went beyond the vertical limits.
63 | * `Bunnyhop`: This move was (most likely) a bunnyhop and all conditions have been applied.
64 | * `vFrict_g`: Vertical friction (gravity).
65 | * `Jump_gain`: Ordinary jump.
66 | * `Step_up`: Ordinary step-up.
67 | * `Fw_speed`: The player is boosting their elytra with a firework.
68 | * `e_vdiff`: Tag usually associated to elytra cheats (fly etc...).
69 | * `e_vasc`: Vertical ascending phase with the elytra.
70 | * `e_vdesc`: Vertical descending phase with the elytra.
71 | * `e_jump`: Special elytra jump.
72 | * `e_asc1/2/3`: Vertical ascending phase with the elytra (special cases).
73 | * `e_hspeed/(liq)`: The player glided horizontally more than allowed for this gliding phase (`liq` means the player is gliding in a liquid)..
74 | * `EXTREME_MOVE`: A sanity check. The player tried to cover a really high amount of distance with just one move.
75 |
76 | **Notes**
77 |
78 | The following conditions will _force_ the use of CreativeFly, regardless of the `ignoreallowflight/creative` option:
79 | * The player is exposed to slowfalling or levitation.
80 | * The player is in a gliding phase (not just wearing the elytra).
81 | * The player is in Spectator mode.
82 | * The player is riptiding
83 | * SurvivalFly is disabled in the configuration (NCP will then fallback to the enabled check).
84 | * The player is exempted from SurvivalFly.
85 |
86 |
87 | **Related**
88 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
89 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
90 | * [SurvivalFly](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving%5D-Survivalfly.md)
91 |
--------------------------------------------------------------------------------
/Settings/Checks/[Moving]-General.md:
--------------------------------------------------------------------------------
1 | This page explains configuration options which affect or support multiple moving checks.
2 |
3 | | Option | Description |
4 | | :------------------------------ | :---------- |
5 | | velocity _activationcounter_ | Queued unused velocity is removed after this amount of incoming moving packets. Decreasing this will nerf some abuses (such as long-jump) but it could also create more false positives (lag(...))|
6 | | velocity _activationticks_ | Queued unused velocity is removed after this amount of server ticks. Decreasing this will nerf some abuses (such as long-jump) but it could also create more false positives (lag(...))|
7 | | velocity _strictinvalidation_ | More strict invalidation of queued velocity.|
8 | | splitmoves | TODO: |
9 | | ignorestance | Ignore the bounding box check for players. This can be used to prevent compatibility issues on legacy setups. Set to default, it will disable from 1.8 on. Force set with true/false. |
10 | | tempkickillegal | Setting this to false will just kick a player that does a illegal movement instead of actually tempbanning him for 24 hours. Technically NCP uses its deny login feature, only counting until next restart, not the ban command.|
11 | | loadchunks _join_ | Should NCP load chunks around the player when joining the server before checking? (Prevents some types of false positive caused by lag)|
12 | | loadchunks _move_ |Should NCP load chunks around the player when moving before checking? (Prevents some types of false positive caused by lag)
13 | | loadchunks _teleport_ |Should NCP load chunks around the player when teleporting before checking? (Prevents some types of false positive caused by lag)
14 | | loadchunks _worldchange_ |Should NCP load chunks around the player when changing world before checking? (Prevents some types of false positive caused by lag)
15 | | sprintinggrace | Grace period for which SurvivalFly will let the player walk at sprinting speed even though their sprint has been toggled off (latency) (seconds) |
16 | | assumesprint | This workaround will let NCP assume that the player is ALWAYS sprinting whenever *possible*.|
17 | | speedgrace | Grace period for which SurvivalFly will let the player walk as if the speed effect was still active (latency) (seconds) |
18 | | enforcelocation | Track if the player has somehow managed to get to ridiculous places without a moving event firing. Fixed the vehicle-teleport exploit. Legacy option for some time before Spigot 1.7.10. Setting to default will activate/deactivate based on the detected Minecraft version. Force set with true/false.|
19 | | setback _method_ | Technique of setting back players. Legacy before MC 1.9: "set_to" The set_to setting will lead to problems since MC 1.11.2 since 2017-03-24, because TeleportCause.PLUGIN will result there, leaving potential for misinterpretation by other plugins. For MC 1.11.2 but also for 1.9 and later, the setting "cancel+update_from+schedule" is the default, it would cancel moving events, and induce teleporting to the set back location by updating the from location, with a fall-back check on-tick (schedule). The defaults can be referenced via their ids: `default.legacy` for pre-1.9, `default.modern` for latest (currently post-1.9), `default.cautious` for the latest with potential risks disabled (such as the teleport skipping condition using packet level ack). Using the `default` flag only will let NCP adjust by itself according to the detected server version. |
20 | | illegalplayermove| Kick and log this message to players who try to use certain exploits.|
21 |
22 | There are also hidden options, which give more access to internals. Use with care, as these might allow different kinds of cheats or lead to other false positives, if changed. Ask back if in doubt or test changes made.
23 |
24 | |Hidden Option | Description |
25 | | :------------------------------ | :---------- |
26 | | yonground | Control the vertical distance to blocks, at which NCP will assume the player to touch ground. This affect any moving-related checks, dealing fall damage etc. Capped at a maximum value of 0.0625, and a minimum of 0.00001. The default value may be around 0.016. Adjusting this to something higher might allow moving slightly above cactus without taking damage, but it might also help on certain false positives. Changes should be tested with issues that can be reproduced at will. |
27 |
28 | **Notes**
29 | * Players could do a illegal movements which would crash the server, so we made a check against it that would tempban a player for 24 hours if they exploit that. However some users wanted to just kick such players and for that reason we put boolean to activate/deactivate temporary banning called `tempkickillegal`.
30 | * *If you use plugins that allow 0 delay between two hits, reduce `velocity.activationcounter` and `velocity.activationticks` to something lower.*
31 | * The `assumesprint` workaround is needed for the long-standing bug that has been introduced in MC 1.7 with the CTRL sprint feature. The server doesn't properly reflect the sprinting state of the client, causing a ton of false positives.
32 | * The Minecraft client moves (well more falls) even if no chunks are loaded up which could trigger a tiny Passable false positive. We tried to smooth this further out by loading up the chuncks on join as fast as possible with `loadchuncks _join_`. It seems that Mojang allows the client to move inside unloaded chunks, for the vanilla fly check because it would prevent false positives with it.
33 |
--------------------------------------------------------------------------------
/Settings/Checks/[Moving]-Morepackets.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.moving.morepackets`
2 | Permission (bypass): `nocheatplus.checks.moving.morepackets`
3 | Exemption: `MOVING_MOREPACKETS`
4 | Better with: `[Moving] Survivalfly`
5 |
6 | The MorePackets check is complementary to the SurvivalFly and CreativeFly checks. While the other check(s) limit the actual distance a player can move with one server-side event, this check limits the number of events a player may perform within certain time-frames.
7 |
8 | | Option | Description |
9 | | :---------------------- | :---------- |
10 | | seconds | How long the check should last. Higher values compensate for higher latency but it will take longer to setback cheaters. |
11 | | epsideal | The ideal amount of events that NCP will expect a player to send. |
12 | | epsmax | The maximum number of events per second tolerated (in average). |
13 | | burst | The burst mechanics allow MorePackets to keep track of packet rates in a longer run|
14 | | burst _packets_ | The number of events arriving within 500ms to trigger a burst-event (*not* a VL). All packets above this count arriving within the same time window will increase the burst counting. |
15 | | burst _directviolation_ | Amount of *burst-events* to trigger a violation directly, without even considering to calculate any mid-term average. With burst packets set to 40 and directviolation set to 60, more than 100 packets within the first time window will trigger the direct violation. This may seem much, but 5 seconds worth of lag happen more often than expected with the client side. |
16 | | burst _epmviolation_ | Amount of burst-events *per minute* to trigger a violation. Note that only bursts get counted in here, as configured with `burst.packets`. |
17 | | setbackage | After how many move events should MorePacket update the setback location if a violation has not recently happened. The higher the value is, the longer the setback will be in case of a violation. If not careful, laggy players could be setbacked to a really old location. |
18 |
19 | **Notes**
20 | * A normal value is 20 steps per second.
21 |
22 | **Tags**
23 | * `eps`: events per second.
24 | * `burstdirect`: burst-events that have triggered a direct violation (no average mid-term calculation).
25 | * `burstepm`: Mid-term violation (events per minute).
26 |
27 | **Related**
28 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
29 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
30 |
--------------------------------------------------------------------------------
/Settings/Checks/[Moving]-Nofall.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.moving.nofall`
2 | Permission (bypass): `nocheatplus.checks.moving.nofall`
3 | Exemption: `MOVING_NOFALL`
4 |
5 | The NoFall check prevents players from manipulating fall damage and fall distance .
6 |
7 | | Option | Description |
8 | | :------------------ | :---------- |
9 | | dealdamage | If this is option is set to false, fall damage will be disabled altogether. NCP will *override* Minecraft's onGround logic and use its own to apply fall damage to players, in order to prevent further exploits from clients. Thus, this will also apply to legit players. It's pretty much unbypassable. |
10 | | skipallowflight | Should NoFall not deal fall damage to players who are set to be allowed to fly when they land on ground?|
11 | | resetonviolation | Clean Nofall data on attempts to take fall damage while not actually having hit the ground. |
12 | | resetonteleport | Compatibility fall-back option to clean nofall data after a teleport. |
13 | | resetonvehicle | Clean the NoFall data after entering a vehicle. Fixes a bug where a player could get killed due to the amount of fall damage inflicted. Used to be the case on older versions. |
14 | | anticriticals | If this is set to true, NoFall will set the player's falldistance to 0 if NCP detects the player to be on ground. Prevents most Critical cheats from working correctly (Cheaters will see critical particles client-side, but no real additional damage will be inflicted to the player). See `checks.fight.critical` for more information about this kind of cheat. |
15 |
16 | **Tags**
17 | * `fakefall`: Player attempted to fake fall distance in order to get fall damage while still being on the ground.
18 | * `fakeground`: Player tried to get fall damage while still being airborne. Usually done by faking the onGround flag to true while in air.
19 |
20 | **Notes**
21 | * The NoFall check does not directly detect NoFall cheats, instead, we calculate fall distances on our own and apply fall damage to players accordingly.
22 |
23 | **Related**
24 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
25 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
26 | * [SurvivalFly](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving%5D-Survivalfly.md)
27 | * [Critical](https://github.com/Updated-NoCheatPlus/Docs/edit/master/Settings/Checks/%5BFight%5D-Criticals.md)
28 |
--------------------------------------------------------------------------------
/Settings/Checks/[Moving]-Passable.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.moving.passable`
2 | Permission (bypass): `nocheatplus.checks.moving.passable`
3 | Exemption: `MOVING_PASSABLE`
4 | Better with: `[Combined] Enderpearl`
5 |
6 | Passable prevents players from moving into or inside of blocks.
7 |
8 | | Option | Description |
9 | | :---------------------------------------- | :---------- |
10 | | untracked _teleport active_ | This is to prevent players setting home at or teleport to another player who is at an untracked location (currently only COMMAND teleport reason). Untracked locations exist due to CraftBukkit trying to be nice to plugins, by not firing events for moves that don't cover enough distance/turning, effectively allowing to shift a tiny bit into a block without plugins being able to notice in an effective way. |
11 | | untracked _command active_ | NCP supports detecting potential abuse by detecting players running certain commands at untracked locations. Typically a cheater could try to move into a block just by a tiny bit, so plugins won't notice, then they'd set home there, move back the tiny bit and teleport into the other block in a 'legal' way. |
12 | | untracked _command tryteleport_ | Control if NCP is only to warn, or to try to teleport the player to the last tracked position. |
13 | | untracked _command prefixes_ | The commands to track. This should be all commands that let you set home/warp/back and similar locations you could teleport to. "warp" for example also includes "warp xyz ...". You can distinguish by using 'warp set' instead of covering unneeded commands with just 'warp', depends on the plugins/command syntax. |
14 |
15 | There are also hidden options, which give more access to internals. Use with care, as these might allow different kinds of cheats or lead to other false positives, if changed. Ask back if in doubt or test changes made.
16 | | Option | Description |
17 | | :---------------------------------------- | :---------- |
18 | | horizontalmargins | Control the XZ (horizontal) raytracing factor strictness for which the player will be considered as colliding with a block. (Max: 1.0, min: 0.1, default: 0.999999) |
19 | | verticalmargins | Control the Y (vertical) raytracing factor strictness for which the player will be considered as colliding with a block. (Max: 1.0, min: 0.1, default: 0.999999) |
20 |
21 | **Notes**
22 | - Violations might trigger if players teleport or join and start moving while not having received or rendered the chunk they stand on. This causes the client to think that there are only air blocks around so it "falls down" and accidently clips a little into the solid blocks on your server. So please DO NOT quickly ban on Passable violations.
23 | - The more lag, the more time it takes for the world to load up and the more likely it is for Passable to throw a false positive on join/teleport.
24 |
25 | **Related**
26 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
27 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
28 |
--------------------------------------------------------------------------------
/Settings/Checks/[Net]-Attackfrequency.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.net.attackfrequency`
2 | Permission (bypass): `nocheatplus.checks.net.attackfrequency`
3 | Exemption: `NET_ATTACKFREQUENCY`
4 | Depends on: `ProtocolLib (plugin)`
5 |
6 | The AttackFrequency check limits the amount attacks a player can perform in multiple time-frames.
7 |
8 | | Option | Description |
9 | | :------------------ | :---------- |
10 | | limitforseconds | Set the click limit for each established time frame.|
11 | | limitforseconds _half_| How many clicks should players be able to do in 500 milliseconds?|
12 | | limitforseconds _one_| How many clicks should players be able to do in one second?|
13 | | limitforseconds _two_| How many clicks should players be able to do in two seconds?|
14 | | limitforseconds _four_| How many clicks should players be able to do in four seconds?|
15 | | limitforseconds _eight_| How many clicks should players be able to do in eight seconds?|
16 | | Improbable _weight_ | How much weight should this check have when feeding Combined.Improbable? Set to 0.0 to disable.|
17 |
18 | **Note**
19 | * It is *extremely* unlikely that a (casual) player can reach 20 CPS and keeping such value for long period of times, anything above 20-ish can be considered as cheating.
20 |
21 | **Related**
22 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
23 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
24 |
--------------------------------------------------------------------------------
/Settings/Checks/[Net]-Flyingfrequency.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.net.flyingfrequency`
2 | Permission (bypass): `nocheatplus.checks.net.flyingfrequency`
3 | Exemption: `NET_FLYINGFREQUENCY`
4 | Depends on: `ProtocolLib (plugin)`
5 |
6 | Check aimed at catching packet manipulation/spam. It prevents extremely fast ticking by just sending packets that don't do anything new and also don't trigger moving events in CraftBukkit.
7 |
8 | | Option | Description |
9 | | :------------------ | :---------- |
10 | | seconds | Seconds used within the internals of the check: a violation will be triggered if (Total packet score / _seconds_ > _packetsperseconds_)|
11 | | packetspersecond | Amount of packets per seconds tolerated. |
12 |
13 | **Note**
14 |
15 | * When a flying packet gets canceled, the position of the player _won't_ get updated to the server but they will still be able to move client-side; this will result in a _server-sided_ freeze. When the player thaws out of this state, all their movements will be sent as a batch, making them look like as if they were speeding, causing (high) violations in SurvivalFly. Hence why it's not recommended to immediately cancel packets here.
16 |
17 | **Related**
18 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
19 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
20 |
--------------------------------------------------------------------------------
/Settings/Checks/[Net]-General.md:
--------------------------------------------------------------------------------
1 | This page lists miscellaneous config options regarding the net checks.
2 |
3 | | Option | Description |
4 | | :---------------------- | :---------- |
5 | | superseded | TODO: |
6 | | flying _cancelwaiting_ | TODO: |
7 |
8 | **Related**
9 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
10 |
--------------------------------------------------------------------------------
/Settings/Checks/[Net]-Keepalivefrequency.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.net.keepalivefrequency`
2 | Permission (bypass): `nocheatplus.checks.net.keepalivefrequency`
3 | Exemption: `NET_KEEPALIVEFREQUENCY`
4 | Depends on: `ProtocolLib (plugin)`
5 |
6 | KeepAlive limits the amount of keep-alive packets that can be sent to the server to gain certain advantages (i.e.: GodMode).
7 |
8 | | Option | Description |
9 | | :------------------ | :---------- |
10 | | seconds | Grace period, in seconds after login for which KeepAliveFrequency will not check the player.|
11 |
12 | **Related**
13 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
14 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
15 |
--------------------------------------------------------------------------------
/Settings/Checks/[Net]-Packetfrequency.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.net.packetfrequency`
2 | Permission (bypass): `nocheatplus.checks.net.packetfrequency`
3 | Exemption: `NET_PACKETFREQUENCY`
4 | Depends on: `ProtocolLib (plugin)`
5 |
6 | This check limits the overall amount of packets a player can send in one time-frame.
7 |
8 | | Option | Description |
9 | | :------------------ | :---------- |
10 | | limitpersecond | Maximum amount of packets that NCP will accept in one second |
11 | | seconds | Seconds that the check will use in its internals to determine how long it should last.|
12 |
13 | **Note**
14 | * As of MC 1.9, it shouldn't be possible to crash/harm servers by flodding them with packets, but if you notice further packet-based exploits in newer versions, then force-enabling this check might be useful.
15 |
16 | **Related**
17 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
18 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
19 |
--------------------------------------------------------------------------------
/Settings/Checks/[Net]-Sounddistance.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.net.sounddistance`
2 | Permission (bypass): `nocheatplus.checks.net.sounddistance`
3 | Exemption: `NET_SOUNDDISTANCE`
4 | Depends on: `ProtocolLib (plugin)`
5 |
6 | This check prevents hackers from tracking far away players by abusing the weather mechanics in Minecraft. It needs ProtocolLib enabled and running, otherwise it wont load up.
7 |
8 | | Option | Description |
9 | | :------------------ | :---------- |
10 | | maxdistance | Limit the distance (in blocks) at which weather can be heard for each player. |
11 |
12 | **Related**
13 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
14 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
15 |
--------------------------------------------------------------------------------
/Settings/Checks/[Net]-WrongTurn.md:
--------------------------------------------------------------------------------
1 | Config path: `checks.net.wrongturn`
2 | Permission (bypass): `nocheatplus.checks.net.wrongturn`
3 | Exemption: `NET_WRONGTURN`
4 | Depends on: `ProtocolLib (plugin)`
5 |
6 | WrongTurn invalidates the player's pitch if it's above 90 or below -90.
7 |
8 | **Related**
9 | * [Active](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active)
10 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#actions)
11 |
--------------------------------------------------------------------------------
/Settings/Commands.md:
--------------------------------------------------------------------------------
1 | **Table of content**
2 | * [Administrative commands](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Commands.md#administrative-commands)
3 | * [Auxiliary commands](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Commands.md#auxiliary-commands)
4 | * [Stopwatch commands](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Commands.md#stopwatch)
5 |
6 | NoCheatPlus integrates a lightweight command system. It allows you to quickly exempt players from checks or to access and manage check data about a player.
7 |
8 | All commands support tab completion and some even allow shortcuts. The root command is named **nocheatplus**, however the alias **ncp** should also work and is used for reference here.
9 |
10 | NoCheatPlus also supports [Bukkit aliases](http://wiki.bukkit.org/Bukkit.yml#aliases) if you wish to have another alias command aside form **nocheatplus** and **ncp**.
11 |
12 | You can give a player access to a specific command by giving them the sub-node with the commands default name, like `nocheatplus.admin.info`.
13 | For further information about permissions in NoCheatPlus, we recommend looking at the [Permissions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Permissions.md).
14 |
15 |
16 | # Administrative commands
17 | Those commands are used to basically manage NoCheatPlus on your server. Arguments in **( )** are needed, while arguments in **[ ]** are optional.
18 |
19 | | Command | Explanation |
20 | | :---------------------- | :---------- |
21 | | /ncp reload | Reloads, generates and regenerates the configuration file of NoCheatPlus. Run this in-case you changed something on your configuration file while your server was running. |
22 | | /ncp notify on/off | Toggle all in-game notifications/alerts generated by NoCheatPlus. |
23 | | /ncp info (player) | Display the violation levels of a given player. |
24 | | /ncp lag | Show info about server sided latency. The average lag shows the percentage of the server running too slow (0% = 20 tps, 10% = 18 tps) for the last 1 second, 3.33 and 270 seconds, roughly. Also lag spikes are displayed, tracked over at most 1 hour with a resolution of 20 minutes buckets (i.e. not exact) for spikes > 150 ms (3x to 20x) and spikes > 1000 ms (20x +). Be aware that this information is needed to make most NoCheatPlus checks adapt to server sided lag. |
25 | | /ncp removeplayer (player) [check_type] | Remove all the data collected by NoCheatPlus so far for a given player. You can use the [check_type] option to make NoCheatPlus only remove data from a specific check (Default will clean all data of all checks!). To list all check names execute a command such as this: /ncp removeplayer (PlayerName) list. "*" is supported here. |
26 | | /ncp exempt (player) [check_type] | Exempt a player from being checked by NoCheatPlus or by a specific check. |
27 | | /ncp unexempt (player) [check_type] | Remove any exemption you given to a specified player. "*" Is supported here. |
28 | | /ncp exemptions (player) | Gives back a list of all check that a specific player has been exempted from. |
29 | | /ncp commands | List all commands, more than shown here. The other commands are mainly for use with actions, such as delaying other commands, kicking with a message, telling players messages in colour, deny login for a players, allow it again and other. |
30 | | /ncp top [num_entries] _(check type/s)_ [sort order] | Show the 'top' players by violation history. Default sort order is '-n -sumvl' . Sort priority can be specified using -n for number of violations, -sumvl for the sum of all added vl, -avgvl for the average added vl, -maxvl for the maximum of all added vl and -time for sorting by the last violation time. |
31 | | /ncp version | Show version information about the server, plugin, compatibility modules and registered hooks. |
32 | | /ncp log counters| Log special statistics. |
33 | | /ncp debug player (player-name-or-uuid) yes/no/default[:checktype1[:checktype2...]] _NCP 3.16.1_| Set/reset debug flags to yes/no/default for check types, including check groups like FIGHT and ALL. |
34 | | ncp debug player (playername) _LEGACY: NCP 3.16.0 and slightly further_ | Full debug including moving. |
35 |
36 | # Auxiliary commands
37 | Those commands are mainly used by NoCheatPlus itself to execute strings or commands over actions on violating players but you can also make use of them if you wish to do so. Most of them have no difference compared to the vanilla commands apart from the delay option. Some might be confined to console use.
38 | Arguments in **( )** are needed, while arguments in **[ ]** are optional.
39 |
40 | | Command | Explanation |
41 | | :---------------------- | :---------- |
42 | | /ncp ban \[delay=(ticks)] (player) [reason] | Ban a player from your server (banned-players.txt). |
43 | | /ncp kick \[delay=(ticks)] (player) [reason] | Kicks a player from your server. |
44 | | /ncp unkick (player) | Allows you to remove a tempkick/tempban from a player. "*" is supported here. |
45 | | /ncp kicklist | Lists all players that have been tempkicked/tempbanned on your server by NoCheatPlus actions. |
46 | | /ncp tell \[delay=(ticks)] (player) (message) | Send a private message to a specified player, using color codes with '&'. |
47 | | /ncp delay \[delay=(ticks)] (command) | Execute a command delayed by the given number of ticks. **Commands are executed with OP privileges (console).** |
48 | | /ncp log stream (stream_id)\[@(level)]\[?color/?nocolor] (message) | Log to the logging stream system of NoCheatPlus. Shortcuts for stream_id are: notify (ingame notification), debug (debug to file), init (only for setup), status (runtime status/errors), console for the plugin logger, file for the default log file. Level for errors is @severe, @warning for warnings, @info is default, @fine for debugging. If no level is set the debug shortcut will use the level @fine. Default levels and numbers (Java) are supported. All registered stream ids (case sensitive) are supported. To force add colors append ?color (c, col) to the level definition, to force remove colors append ?nocolor (nc, noc, nocol). To log to multiple streams, each with individual level and color/nocolor-flag, separate definitions by '+'. Don't include spaces with definitions (e.g. correct: _/ncp log stream notify?c+console@warning?nc &ctest&etest&ctest_). |
49 |
50 | # stopwatch
51 | Especially with measuring distances and/or time, these might be useful. The 'stopwatch' command allows abbreviation with 'sw', only for players. The precision of the distance-related variants is determined by on-tick execution of checking, so it may not be as precise in environments with larger lag/delay spikes (client or server). Typically a distance of 100 blocks straight without height difference is a good measure for comparison (1.11.2 and before about 14 seconds without effects). Speed cheats should be compared to continuous sprint+jump ("bunny-hopping"), unless it's a low-food-level comparison, because the sprinting state isn't always correctly reported on server side, so we assume sprinting whenever technically possible.
52 |
53 | | Command | Explanation |
54 | | :---------------------- | :---------- |
55 | | /ncp stopwatch start | Simply start a stopwatch. The time for an already running stopwatch would be shown in chat. |
56 | | /ncp stopwatch stop | Stop a running stopwatch and show time in chat. |
57 | | /ncp stopwatch distance (distance) | Start a stopwatch, automatically stop when the player has reached the given distance (blocks). This is not 100% precise (on-tick), but it does use the euclidean distance. |
58 | | /ncp stopwatch return (margin) | Simply start a stopwatch, automatically stop when the player returns to the position where the stopwatch had been started, with the given margin (blocks, euclidean, on-tick). |
59 |
--------------------------------------------------------------------------------
/Settings/Configuration.md:
--------------------------------------------------------------------------------
1 | # Table of contents
2 | * [Multiworld](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Multiworld.md)
3 | * [Data](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Data.creole)
4 | * [Logging](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Logging.creole)
5 | * [Protection](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Protection.creole)
6 | * [Checks](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/Checks.md)
7 | * [Actions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md)
8 | * [Miscellaneous](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Miscellaneous.md)
9 | * [Config Compatibility](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/%5BSettings%5D-Compatibility.creole)
10 |
--------------------------------------------------------------------------------
/Settings/Data.creole:
--------------------------------------------------------------------------------
1 | =Expiration=
2 |
3 | The data section allows you to specify a data expiration duration for players data in minutes. If set to something greater than 0, this will periodically remove players data if the players have been logged out for longer than the specified duration in minutes. At present this would also delete set-back locations and current violation levels, if activated, so it should not be set to a too short duration.
4 |
5 | |Duration|Time in minutes after which NoCheatPlus will start cleaning the data of players that have been offline this long|
6 | |History|Setting this to true will also clean away the violation history of those players|
7 |
8 | =Consistency Checks=
9 | **EDIT THIS:** it's doing consistency checks for some internal mappings and also might release some memory
10 | |interval|Interval in seconds at which NC+ will check for consistency|
11 | |maxtime|The maximal limit given in milliseconds that NoCheatPlus can take for a consistency check. If it exceed it will get aborted. Value has to be in range of 1 to 50.|
12 | |suppresswarnings|Setting this to true will not print any alerts in the console or nocheatplus.log|
13 |
14 |
15 | **References**\\
16 | [[https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/General.md#active|General->Active]]\\
17 | [[https://github.com/Updated-NoCheatPlus/Docs/blob/master/Others/Backgrounds.md#violations|Violations]]
18 |
--------------------------------------------------------------------------------
/Settings/Logging.creole:
--------------------------------------------------------------------------------
1 | |debug|NoCheatPlus will print additional debug information in your console and log file if you set this to true.|
2 | |maxqueuesize|Maximal amount of debug info that can get queued before NoCheatPlus starts to drop them.|
3 |
4 | **Notes**:\\
5 | * The queues are used if its scheduled for the primary thread or for an asynchronous task
6 |
7 | =Backend=
8 | Here you can configure the different logging aspects of NoCheatPlus.\\
9 | |prefix|Allows you to set the prefix of the logging messages.|
10 | |asynchronous|NoCheatPlus will log asynchronously if this is set to true.|
11 | |filename|Specify an existing folder or a name without extension (must not exist as file), and NCP will create a log file for each run and reload, named by date, all within that folder.|
12 | |subscriptions|Enabling subscriptions will allow other things (IRC, plugins etc.) but players to receive ingame notifications (permission subscriptions).|
13 |
14 | **Notes**\\
15 | * Prefixes can be blank if you only want to see the messages
16 | * Color codes are supported in prefixes using &
17 | * NoCheatPlus will log in a folder if you change {{{filename: nocheatplus}}} (a new folder "nocheatplus" will be created and logs will be stored in there instead of the single nocheatplus.log file)
18 |
19 | **References**\\
20 | * [[https://github.com/Updated-NoCheatPlus/Docs/blob/master/Others/Backgrounds.md|Backgrounds]]\\
21 | * [[ https://wiki.ess3.net/mc/| Color Codes]]\\
22 |
--------------------------------------------------------------------------------
/Settings/Miscellaneous.md:
--------------------------------------------------------------------------------
1 | # Configversion
2 |
3 | Set `notify` to false to suppress the messages about outdated configurations. Only the main configuration file is checked at present.
4 | The other entries are not meant to be changed by hand, they indicate with which version the config was created and last saved back.
5 |
6 |
--------------------------------------------------------------------------------
/Settings/Multiworld.md:
--------------------------------------------------------------------------------
1 | # How to create a world specific configuration file ?
2 |
3 | 1. Create an empty .yml file according to a world name on your server or download the example empty one from [here](Resources/world_nether_config.zip) (unzip and rename it). Example: world_config.yml (the _ is required! and everything is case sensitive!).
4 | 2. Start-up your server or just run `/ncp reload` or `/nocheatplus reload` if your server is already running.
5 | 3. NoCheatPlus should now write every settings available for world specific configuration in that/those empty yaml files.
6 | 4. If you rather prefer to use some settings of your global config.yml then set "savebackconfig" to false and remove the settings from your world specific configuration file.
7 |
8 | * Example end result: 
9 | * Other examples: WorldName_config.yml, world_nether_config.yml, world_the_end_config.yml, HungerGames_config.yml or BackupWorld_config.yml
10 |
11 | ## Configs that only work in config.yml (Global configuration file)
12 |
13 | * configversion.notify
14 | * configversion.created
15 | * configversion.saved
16 | * logging.active
17 | * logging.exteneded.status
18 | * logging.backend.console.active
19 | * logging.backend.console.prefix
20 | * logging.backend.console.asynchronous
21 | * logging.backend.file.active
22 | * logging.backend.file.prefix
23 | * logging.backend.file.filename
24 | * logging.backend.ingamechat.active
25 | * logging.backend.ingamechat.prefix
26 | * logging.backend.ingamechat.subscriptions
27 | * data.expiration.active
28 | * data.expiration.duration
29 | * data.expiration.history
30 | * data.consistencychecks.active
31 | * data.consistencychecks.interval
32 | * data.consistencychecks.maxtime
33 | * data.consistencychecks.suppresswarnings
34 | * protection.plugins.hide.active
35 | * protection.plugins.hide.nopermission.message
36 | * protection.plugins.hide.nopermission.commands
37 | * protection.plugins.hide.unknowncommand.message
38 | * protection.plugins.hide.unknowncommand.commands
39 | * protection.commands.consoleonly.active
40 | * protection.commands.consoleonly.message
41 | * protection.commands.consoleonly.commands
42 | * protection.clients.motd.active
43 | * protection.clients.motd.allowall
44 | * checks.chat.commands.exclusions
45 | * checks.chat.commands.handleaschat
46 | * checks.chat.text.global.words.active
47 | * checks.chat.text.global.prefixes.active
48 | * checks.chat.text.global.similarity.active
49 | * checks.chat.text.player.words.active
50 | * checks.chat.text.player.prefixes.active
51 | * checks.chat.text.player.similarity.active
52 | * checks.moving.survivalfly.hover.step
53 | * checks.net.flyingfrequency.seconds
54 | * checks.net.flyingfrequency.packetspersecond
55 | * checks.net.flyingfrequency.reduceredundant.seconds
56 | * compatibility.exemptions
57 | * compatibility.exemptions.remove
58 | * compatibility.exemptions.remove.join
59 | * compatibility.exemptions.remove.leave
60 | * compatibility.managelisteners
61 | * compatibility.bukkitapionly
62 | * compatibility.blocks
63 | * compatibility.blocks.breakingtimes
64 | * compatibility.blocks.allowinstantbreak
65 | * compatibility.blocks.overrideflags
66 | * compatibility.blocks.overrideflags.snow
67 |
68 | **Notes**
69 | * The world name is case sensitive (MiningWorld, theWorld etc.).
70 | * You can set savebackconfig to false, in order to not have NoCheatPlus add default values to a config file. Thus you can override just the values you are interested in and keep a minimal world-specific configuration file.
71 | * WorldName_config.yml has always higher priority then config.yml. So NoCheatPlus will first apply all settings from config.yml and then override them for a specific world using WorldName_config.yml
72 | * Some settings can only be used in the global config.yml and aren't multiworld compatible (Please don't just copy config.yml and rename it to WorldName_config.yml or similar.)
73 | * World specific files can be created, changed or removed while your server and NoCheatPlus are running. Just use the /ncp reload or /nocheatplus reload command to let NoCheatPlus reread your configuration file.
74 | * If a world gets unloaded, deleted or renamed then NoCheatPlus will automaticly ignore your world specific configuration files you made for it
75 |
--------------------------------------------------------------------------------
/Settings/Permissions.md:
--------------------------------------------------------------------------------
1 | **Table of context**
2 | * [Shortcuts](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Permissions.md#shortcuts)
3 | * [Checks](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Permissions.md#checks)
4 | * [Specific](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Permissions.md#specific)
5 | * [Commands](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Permissions.md#commands)
6 | * [Auxiliary commands](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Permissions.md#auxiliary-commands)
7 | * [Miscellaneous and parent permissions](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Permissions.md#miscellaneous-and-parent-permissions)
8 | * [Configure permission caching behavior](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Permissions.md#configure-permission-caching-behavior)
9 |
10 | # Shortcuts
11 | `nocheatplus.shortcut.info` Gives permissions to
12 | `nocheatplus.shortcut.monitor` Gives permissions for
13 | `nocheatplus.shortcut.safeadmin` Gives permissions to
14 | `nocheatplus.shortcut.bypass` Gives permissions to bypass all checks.
15 |
16 | # Checks
17 | `nocheatplus.checks` Exempts from all checks
18 | `nocheatplus.checks.` Exempts from all checks of a given check category.
19 | `nocheatplus.checks..` Exempts group of this check. (Example: nocheatplus.checks.moving.creativefly will exempt from CreativeFly).
20 |
21 | ## Specific
22 | `nocheatplus.bypass.denylogin` Exempts from login denial.
23 | `nocheatplus.checks.blockplace.boatsanywhere` Allows to place boats on the ground (not just in water).
24 | `nocheatplus.checks.blockbreak.break.liquid` Allows to break water/lava through cheats.
25 |
`nocheatplus.checks.moving.survivalfly.speeding` Extra speed permission for [SurvivalFly](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving%5D-Survivalfly.md).
26 | `nocheatplus.checks.moving.survivalfly.sprinting` Will exempt players from getting checked for backwards and blindness sprinting.
27 | `nocheatplus.checks.moving.survivalfly.step` Will exempt players from SurvivalFly's step cheat modules.
28 | `nocheatplus.checks.moving.survivalfly.sneaking` Exempt players from the horizontal limits for sneaking.
29 | `nocheatplus.checks.moving.survivalfly.blocking` Exempt players from the horizontal limits for blocking/shielding.
30 | `nocheatplus.checks.moving.survivalfly.waterwalk` Will exempt players from getting checked by SurvivalFly's main waterwalk checks.
31 |
32 | # Commands
33 | `nocheatplus.command.commands` Can view all NC+ commands with _/ncp commands_
34 | `nocheatplus.command.exempt` Can exempt players from checks with _/ncp exempt_
35 | `nocheatplus.command.exemptions` Can list all check exemptions of a player with _/ncp exemptions_
36 | `nocheatplus.command.info` Can view check violations of a player with _/ncp info_
37 | `nocheatplus.command.inspect` Can retrieve player status data with _/ncp inspect_
38 | `nocheatplus.command.lag` Can view server lag spikes with _/ncp lag_
39 | `nocheatplus.command.log` Can access internal debug data with _/ncp log_
40 |
`nocheatplus.command.notify` Can toggle on/off in-game cheat notifications (includes permission `nocheatplus.notify`) for _/ncp notify_ command)
41 | `nocheatplus.notify` Can view NC+ in-game notifications (but can't toggle them on/off without the permission above)
42 | `nocheatplus.command.reload` Can reload NC+ to re-read configurations and permissions with _/ncp reload_
43 | `nocheatplus.command.removeplayer` Can remove a players violation history with _/ncp removeplayer_
44 | `nocheatplus.command.unexempt` Can unexempt a player from checks with _/ncp unexempt_
45 | `nocheatplus.command.version` Can view the version information with _/ncp version_
46 |
47 | ## Auxiliary commands
48 | `nocheatplus.command.allowlogin` Can remove temporary kicked players with _/ncp allowlogin_
49 | `nocheatplus.command.ban` Can ban players with _/ncp ban_
50 | `nocheatplus.command.delay` Can delay command execution with _/ncp delay_
51 | `nocheatplus.command.denylogin` Can temporary kick players with _/ncp denylogin_
52 | `nocheatplus.command.kick` Can kick players with _/ncp kick_
53 | `nocheatplus.command.kicklist` Can view all players that have been temp-kicked with _/ncp kicklist_
54 | `nocheatplus.command.tell` Can send private messages to players using _/ncp tell_
55 |
56 | # Miscellaneous and parent permissions
57 |
58 | `nocheatplus.admin` Gives access to all [NoCheatPlus commands](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Commands.md) including Auxiliary ones
59 | `nocheatplus.notify` Will receive hack notifications over in-game chat
60 |
61 | Commands for which the permission got set by the protection features (hide plugins), might have altered default permissions or NoCheatPlus may have set a filter permission 'nocheatplus.filter.command.COMMAND_NAME', for the case the command was allowed to be run by everyone.
62 |
63 | **Notes**
64 | * By default NoCheatPlus assigns all permissions and gives full rights to players that have been `/op-ed` on your server. If you don't want to give OPs full access to all NoCheatPlus features then take a look in the configuration of your permissions plugin (Example with PermissionsEx: allowOps: false).
65 |
66 | **Related**
67 | * [Checks](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/Checks.md)
68 | * [Commands](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Commands.md)
69 | * [Debugging](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Development/Debugging.md)
70 |
71 | # Configure permission caching behavior
72 | Since NoCheatPlus 3.16.1-SNAPSHOT (since build 1040) / 3.17.0-RC, permission caching has been introduced. This allows for configuration of how to check for permissions, in case permission checks turn out to consume too much performance, or in case you want to override the behavior for other reasons.
73 |
74 | You can set a default policy and define further rules for mapping permissions to policies for individual permissions, based on wildcards, or based on regular expressions.
75 |
76 | Policy definition:
77 | * Fetching policy[, flag1 [,flag2]]
78 | * Separate any parts by ' ' or ',' or ':'.
79 | * Flags are preceded by the state '+' for true and '-' for false. Default flag states can be omitted, such as `+world` or `+offline`.
80 | * Flags apply for invalidation, regardless of the fetching policy.
81 |
82 | | Fetching policies | Meaning/usage |
83 | | ----------------- | ------------- |
84 | | ALWAYS | Always check. |
85 | | ONCE | Once until invalidation. |
86 | | INTERVAL:_(seconds)_ | Only check every _(seconds)_ seconds. |
87 | | TRUE | Always assume permission to be set to true. |
88 | | FALSE | Always assume permission to be set to false. |
89 |
90 | | Policy flags| Meaning/usage |
91 | | ----------- | ------------- |
92 | | +offline | Invalidate permissions once the player is offline (default). Strictly this also invalidates with logging on. |
93 | | -offline | No invalidation with leaving the server, unless +world is set (!). |
94 | | +world | Invalidate with world changes and leaving the server (default).|
95 | | -world | No world based invalidation. Behavior with leaving the server depends on the `offline` flag now. |
96 |
97 | Rule definition:
98 | * Matching rule separated by ' :: ' from a policy definition.
99 |
100 | | Matching rule | Meaning/usage |
101 | | ------------- | ------------- |
102 | | _(directly the permission, excluding the variants given below.)_ | Match only that permission |
103 | | startswith:_(...)_ _or_ _(...)_* | All permissions that start with the given part. |
104 | | endswith:_(...)_ _or_ *_(...)_ | All permissions that end with the given part. |
105 | | contains:_(...)_ _or_ \*_(...)_\* | All permissions that contain the given part. |
106 | | regex:_(regular expression pattern)_ | All permissions matching the regular expression pattern (standard java String.matches). |
107 | (Constructions with * _(...)_ * _(...)_ * don't work, use regular expressions instead.)
108 |
109 | ## Default policy
110 | * Configuration path: permissions.policy.default
111 | * Value: string
112 | * Content: policy definition
113 | * Examples:
114 | * `INTERVAL:10, -offline, -world` for checking every 10 seconds, ignoring world changing and leaving the server.
115 | * `ONCE` for checking once only, still invalidate with changing the world and with logging on/off.
116 |
117 | ## Rules
118 | * Configuration path: permissions.policy.rules
119 | * Value: String list.
120 | * Content: matching rule separated by ' :: ' from a policy definition.
121 | * The first matching rule is applies, testing in the order in which they're defined.
122 | * Examples:
123 | * See default configuration...
124 | * `nocheatplus.checks.survivalfly.* :: FALSE, -offline, -world` Never check the sub permissions of survivalfly, assume set to false always.
125 | * `startswith:nocheatplus.checks.survivalfly. :: FALSE, -offline, -world` Same as above.
126 | * `nocheatplus.checks.survivalfly* :: INTERVAL:10` Check the survivalfly permission and sub permission only every 10 seconds (invalidate with logging on/off and with world changing).
127 |
--------------------------------------------------------------------------------
/Settings/Protection.creole:
--------------------------------------------------------------------------------
1 | =Plugins=
2 | Here you can hide your plugins from being sniffed out using some simple tricks.
3 |
4 | ==No permission==
5 | Add commands to have the configured message be sent to players, who try to use this command, but who don't have permission to use it.
6 | In order to protect commands that don't have a permission set, NCP will set a filter permission 'nocheatplus.filter.command.lc-command', with lc-command being the lower case command name.
7 |
8 | |message| The message to display, instead of the 'no permission' message. |
9 | |commands| List of commands. NoCheatPlus tries to detect aliases, but you should test them to be sure, including aliases like 'minecraft:op' and 'otherplugin.chathistory'. Currently sub-commands like 'cs reload' can not be detected.|
10 |
11 | ==Unknown Command==
12 | Add commands to have the configured message be sent to players, who try to use this command, but who don't have permission to use it.
13 | In order to protect commands that don't have a permission set, NCP will set a filter permission 'nocheatplus.filter.command.lc-command', with lc-command being the lower case command name.
14 |
15 | |message| The message to display, instead of the 'no permission' message. |
16 | |commands| List of commands. NoCheatPlus tries to detect aliases, but you should test them to be sure, including aliases like 'minecraft:op' and 'otherplugin.chathistory'. Currently sub-commands like 'cs reload' can not be detected.|
17 |
18 | =Commands=
19 |
20 | ==Console only==
21 |
22 | |message| Message to display, if a player tries to use this command in-game. This will display, regardless of the player having permissions or not. |
23 | |commands| Commands to not be run from in-game. NoCheatPlus will attempt to fetch the original command label, but you should test aliases for the commands to be sure, e.g. 'minecraft:op' \\or 'otherplugin:reload fromhttp'. |
24 |
25 |
26 | **Note**:
27 | * Use the protection bypass permission if you want curtain players/groups to bypass your plugin protection.
28 |
29 | **References**\\
30 | * [[https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Permissions.md|Permissions]]
31 |
--------------------------------------------------------------------------------
/Settings/[Settings]-Compatibility.md:
--------------------------------------------------------------------------------
1 | This section of the configuration file provides you with additional settings to improve overall compatibility stuff.
2 | # Exemptions
3 | |**Option**|**Meaning**|
4 | | :--------|:----------|
5 | | _wildcard default metadata_ active | TODO |
6 | |_wildcard default metadata_ keys | TODO |
7 | |_wildcard_ npc | TODO |
8 | | _npc_ active | TODO |
9 | | _npc_ bukkitnpc | TODO |
10 | | _npc metadata_ active | TODO |
11 | | _npc metadata_ keys | TODO |
12 | | _remove_ join | TODO |
13 | | _remove_ leave | TODO |
14 |
15 | # Server
16 | |**Option**|**Meaning**|
17 | | :--------|:----------|
18 | | cbdedicated| If true, NoCheatPlus will use its dedicated module for the detected server version, only for 1.4.5 to 1.12.2. |
19 | | cbreflection | Resort to the BukkitAPI if no dedicated module is present. Applies from MC 1.13+ and on. |
20 |
21 | # Blocks
22 | |**Option**|**Meaning**|
23 | | :--------|:----------|
24 | |breakingtime| Enables you to override the breaking time of a block for specific side conditions. An entry in this section maps a condition definition to the breaking time in milliseconds. Definitions for side conditions can be: BLOCK_TYPE:TOOL_TYPE:TOOL_MATERIAL_BASE:EFFICIENCY_LEVEL.|
25 | | allowinstabreak | Blocks entered here will not be monitored by the FastBreak check, meaning the player will be able to mine them at whichever speed.|
26 |
27 | Example of breakingtime:
28 |
`SAND:AXE:DIAMOND:0: 10000`
29 | (Changes the breaking time for sand with a diamond axe with no efficiency enchantment to 10 seconds, thus fastbreak will trigger).
30 |
31 | Use of breakingtime parameters:
32 |
` BLOCK_TYPE`: Bukkit block names. Currently no extras are possible, such as data values/variants.
33 |
`TOOL_TYPE`: `NONE, SWORD, SHEARS, SPADE, AXE, PICKAXE, HOE`
34 |
`TOOL_MATERIAL_BASE`: `NONE, WOOD, STONE, IRON, DIAMOND, NETHERITE, GOLD`
35 |
`EFFICIENCY_LEVEL`: Level of the efficiency enchantment.
36 |
37 | |**Option**|**Meaning**|
38 | | :--------|:----------|
39 | | overrideflags | This section allows you to tell NCP how to interpret the shape of blocks (if you can walk on them, walk through them and the like) by using flags. Using the `default` flag will let NCP use the flags that have already been initialized, useful in the case you only want to add one specific flag for a block (Use where you know what it means, set `checks.blockbreak.debug` to true, in order to dump the flags that NCP is using internally to the log-file). |
40 |
41 | Example to both pass through and stand on:
42 | `default+ign_passable+ground_height`
43 | (It's recommended to set dimensions too, if possible.)
44 |
45 | Currently, NoCheatPlus supports the following flags:
46 | |**Flag**|**Meaning**|
47 | | :--------|:----------------------------|
48 | | F_STAIRS | Indicator flag for stairs. |
49 | | F_LIQUID | Indicator for all liquid types. |
50 | | F_POWDERSNOW | Like powder snow, which has special onGround properties.|
51 | | F_BLUE_ICE | Like blue ice, more slipperiness.|
52 | | F_WATER_PLANT | Like water plants (1.13+).|
53 | | F_WATER | Like water. |
54 | | F_LAVA | Like lava. |
55 | | F_CARPET | Inidicator flag for carpets. |
56 | | F_COBWEB | Like cobwebs, adhesive.|
57 | | F_COBWEB2 | Like berry bushes, which behaves similarly to webs. |
58 | | F_SOULSAND | Like soulsand. Ensures slower speed if walking on this block with this flag. |
59 | | F_BUBBLECOLUMN | Like bubblec column, which allows the player to move faster vertically. |
60 | | F_STICKY | Like honey block, sticky. Landing on this block will half fall damage. |
61 | | F_RAILS | All rails types a minecart can move on. |
62 | | F_ICE | Like ice, which will allow the player to slide on it, increasing their horizontal speed. |
63 | | F_LEAVES | Indicator flag for all leaves. |
64 | | F_SLIME | Indicator flag for slime, just to distinguish it from other bouncy blocks, like beds. |
65 | | F_ANVIL | Indicator flag for anvils. |
66 | | F_THIN_FENCE | Indicator flag for panes and iron bars. |
67 | | F_THICK_FENCE | Indicator flag for walls and fences (e.g.: cobblestone wall). |
68 | | F_FAKEBOUNDS | Meta-flag used to activate a workaround for the edges of thin fences (iron bars and glass panes) on 1.8 servers (which are bugged and would trigger the Passable check when colliding on them XZ). |
69 | | F_SOLID | Result of Minecraft's isSolid. Used for setting the ground flag. |
70 | | F_IGN_PASSABLE | Indicate that this block is fully passable (used for compatibility). |
71 | | F_GROUND | The player can stand on this block sneaking or not. |
72 | | F_HEIGHT_100 | This block is 1 block high. |
73 | | F_HEIGHT_150 | This block is 1.5 blocks high, like fences.|
74 | | F_CLIMBABLE | This block is climbable, which currently will allow to land without taking fall damage, like ladders and vines.|
75 | | F_CLIMBUPABLE | This block is climbable upwards under special conditions like vines, which are climbable only if attached to a block.|
76 | | F_ CLIMBLIQ | This block is climbable in water, used for 1.13 kelp plants.|
77 | | F_VARIABLE | The block can change shape. |
78 | | F_XZ100 | The block has full xz(horizontal)-bounds, like a normal block (eg.: stone).|
79 | | F_GROUND_HEIGHT | This flag indicates that everything between the minimum ground height and the height of the block can also be stood on. In addition this flag directly triggers a passable workaround for otherwise colliding blocks. |
80 | | F_HIGHT_8SIM_DEC | The height is assumed to decrease from 1.0 with increasing data value from 0 to 0x7, with 0x7 being the lowest. (repeating till 0x15)). 0x8 means falling/full block. This is meant to model flowing water/lava. However the hit-box for collision checks will be set to 0.5 height or 1.0 height only.|
81 | | F_HEIGHT_8SIM_INC | The height is assumed to increase with data value up to 0x7, repeating up to 0x15. However the hit-box for collision checks will be set to 0.5 height or 1.0 height only, as with the 1.4.x snow levels.|
82 | | F_HEIGHT_8_INC | The height increases with data value (8 heights). This is for MC 1.5 snow levels. |
83 | | F_COLLIDE_EDGES | Meta-flag to indicate that the (max.-) edges should mean a collision. |
84 | | F_PASSABLE_X4 | At its 0x04 status, this block is fully passable, like fence gates. |
85 | | F_BOUNCE25 | Bouncy block. Bounce back 25% of fall height without taking fall damage. |
86 | | F_FACING_LOW3D2_NSWE | The facing direction is described by the lower 3 data bits in order of NSWE, starting at and defaulting to 2, which includes invalid states. Main purpose is ladders, no guarantees on defaults for other blocks yet.|
87 | | F_ATTACHED_LOW2_SNEW |The direction the block is attached to is described by the lower 2 bits in order of SNEW.|
88 | | F_ALLOW_LOWJUMP | Allow players to low jump on this block, possibly allowing them to cheat. |
89 | | F_HEIGHT8_1 | One eighth block height (0.125).|
90 | | F_FALLDIST_HALF | Fall distance is divided by 2, if a move goes through this medium (currently only supports liquid). |
91 | | F_FALLDIST_ZERO | Fall distance is set to zero, if a move goes through this medium (currently only supports liquid). |
92 | | F_MIN_HEIGHT16_15 | Minimum height 15/16 (0.9375 = 1 - 0.0625). Only applies with F_GROUND_HEIGHT set.|
93 | | F_MIN_HEIGHT16_14 | Minimum height 14/16 (0.8750). Only applies with F_GROUND_HEIGHT set.|
94 | | F_MIN_HEIGHT16_13 | Minimum height 13/16 (0.8125). Only applies with F_GROUND_HEIGHT set.|
95 | | F_MIN_HEIGHT16_11 | Minimum height 11/16 (0.6875). Only applies with F_GROUND_HEIGHT set.|
96 | | F_MIN_HEIGHT8_5 | Minimum height 5/8 (0.625). Only applies with F_GROUND_HEIGHT set. |
97 | | F_MIN_HEIGHT16_9 | Minimum height 9/16 (0.5625). Only applies with F_GROUND_HEIGHT set.|
98 | | F_MIN_HEIGHT16_7 | Minimum height 7/16 (0.4375). Only applies with F_GROUND_HEIGHT set.|
99 | | F_MIN_HEIGHT16_5 | Minimum height 5/16 (0.3125). Only applies with F_GROUND_HEIGHT set. |
100 | | F_MIN_HEIGHT4_1 | Minimum height 1/4 (0.25). Only applies with F_GROUND_HEIGHT set.|
101 | | F_MIN_HEIGHT8_1 | Minimum height 1/8 (0.125). Only applies with F_GROUND_HEIGHT set.|
102 | | F_MIN_HEIGHT16_1 | Minimum height 1/16 (0.0625). Only applies with F_GROUND_HEIGHT set.|
103 | | F_VARIABLE_USE | Block change tracking: ordinary right click interaction (use) can change the shape. |
104 | | F_VARIABLE_REDSTONE | Block change tracking: block redstone events can change the shape.|
105 | | F_HEIGHT16_15 | Height 15/16 (0.9375 = 1 - 0.0625).|
106 |
107 |
108 | |**Option**|**Meaning**|
109 | | :--------|:----------|
110 | | minimalworldY | Alter the the minimal y coordinate a block can be at (non air). Original intention is to provide compatibility for datapacks (1.17+). |
111 |
112 | # Changetracker
113 | This section allows you to alter some option concerning NoCheatPlus' block change tracker system, which allows the moving checks to account for moving blocks (eg.: with pistons).
114 | |**Option**|**Meaning**|
115 | | :--------|:----------|
116 | | active | Should the change tracker system be active at all? Without it, moving blocks will cause false positives. |
117 | | pistons | Should pistons be covered by the tracker? |
118 | | maxageticks | Maximum age in ticks for which entries will be purged by the tracker system. |
119 | | *perworld* maxentries | Maximum entries per world allowed before being removed. |
120 |
121 | **Related**
122 | * [Passable](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BMoving%5D-Passable.md)
123 | * [FastBreak](https://github.com/Updated-NoCheatPlus/Docs/blob/master/Settings/Checks/%5BBlockbreak%5D-Fastbreak.md)
124 | * [BukkitAPI](https://hub.spigotmc.org/javadocs/bukkit)
125 | * [Block names/enum](https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html)
126 |
--------------------------------------------------------------------------------
/YAML.md:
--------------------------------------------------------------------------------
1 | NoCheatPlus uses YAML for the configuration which stands for "**Y**et **A**nother **M**arkdown **L**anguage"
2 |
3 |
4 | * Only use spaces and never tabs (for indentation).
5 | * Keep the indentation level: Never change the amount of white-spaces in front of options in the config file "config.yml".
6 | * Don't insert special characters. If you plan on complicated text entries, wrap them like '...' or "..." to be save.
7 | * Always refer to the default config file for reference.
8 | * You can use a [YAML Parser] to verify that your .yml is actually valid
9 | * For those that use Notepad++ to edit their YAML files we recommend to enable "Replace by space" in Settings -> Preferences -> Tab Settings
10 | 
11 |
12 |
13 | [YAML Parser]: http://yaml-online-parser.appspot.com/
--------------------------------------------------------------------------------
/_Sidebar.md:
--------------------------------------------------------------------------------
1 | ## [Home](Home)
2 | * [Getting Started](Getting-Started)
3 | * [FAQ](FAQ)
4 | * [Known Issues](Known-Issues)
5 | * [Compatibility](Compatibility)
6 | * [Features](Features)
7 | * [Commands](Commands)
8 | * [Permissions](Permissions)
9 | * [Notable Builds](Notable-Builds)
10 |
11 | ## [Configuration](Configuration)
12 | * [Multiworld](Multiworld)
13 | * [Data](Data)
14 | * [Logging](Logging)
15 | * [Protection](Protection)
16 | * [Checks](Checks)
17 | * [General](General)
18 | * [Strings](Strings)
19 | * [Miscellaneous](Miscellaneous)
20 | * [Compatibility]([Settings]-Compatibility)
21 |
22 | ## Developers
23 | * [API](API)
24 | * [Debugging](Debugging)
25 | * [Dev Pinboard](Dev-Pinboard)
26 | * [Build Infos](Build-Infos)
27 |
28 | ## Others
29 | * [Backgrounds](Backgrounds)
30 | * [Lag](Lag)
31 |
32 |
--------------------------------------------------------------------------------
/wInfos/Alternative-Markdown.md:
--------------------------------------------------------------------------------
1 | # Markdown inside code blocks
2 |
3 |
4 | foo
5 |
6 |
7 |
8 | foo
9 |
10 |
11 |
12 | foo
13 |
14 |
15 |
16 | test _emphasis_ (span) |
17 |
18 |
19 |
20 | test _emphasis_ (span) |
21 |
22 |
23 |
24 | test _emphasis_ (block) |
25 |
26 |
27 | ## More complicated
28 |
29 |
30 |
31 | * this is _not_ a list item |
32 |
33 | * this is _not_ a list item |
34 |
35 | * this _is_ a list item
36 | |
37 |
38 |
39 | ## With indent
40 |
41 |
42 |
43 | This text is no code block: if it was, the
44 | closing `
` would be too and the HTML block
45 | would be invalid.
46 |
47 | Markdown content in HTML blocks is assumed to be
48 | indented the same as the block opening tag.
49 |
50 | **This should be the third paragraph after the header.**
51 |
52 |
53 |
54 | ## Code block with rogue `
`s in Markdown code span and block
55 |
56 |
57 |
58 |
59 | This is a code block however:
60 |
61 |
62 |
63 | Funny isn't it? Here is a code span: `
`.
64 |
65 |
66 |
67 |
68 |
69 |
70 | * List item, not a code block
71 |
72 | Some text
73 |
74 | This is a code block.
75 |
76 |
77 |
78 | ## No code block in markdown span mode
79 |
80 |
81 | This is not a code block since Markdown parse paragraph
82 | content as span. Code spans like `
` are allowed though.
83 |
84 |
85 | _Hello_ _world_
86 |
87 | ## Preserving attributes and tags on more than one line:
88 |
89 |
91 | Some _span_ content.
92 |
93 |
94 |
95 | ## Header confusion bug
96 |
97 |
98 |
99 | Hello World!
100 | ============
101 |
102 | Hello World! |
103 |
104 |
105 |
106 | Source: https://github.com/trentm/python-markdown2/blob/master/test/php-markdown-extra-cases/Inline%20HTML%20with%20Markdown%20content.text
107 |
108 | More: http://daringfireball.net/projects/markdown/syntax#html
--------------------------------------------------------------------------------
/wInfos/Contribution-Guidelines.md:
--------------------------------------------------------------------------------
1 | If you want to contribute content to this wiki there are a few points you should pay attention on
2 |
3 | # Formats
4 | * Please only use markdown or creole, MediaWiki for your pages
5 |
6 | # Linking
7 | * Always use internal links if you want to link on something which is on this wiki with: `[[Backend|Backend]]`
8 | * If you want to link something that is external make a references in the bottom of a wiki page like `[DBO]: https://dev.bukkit.org/bukkit-plugins/nocheatplus/` and then link to that reference with `[DBO]` (Watch Home.md for examples.
9 |
10 | ## Images
11 | * If you want to link at a internal image that you created do follow steps:
12 | * Upload your image to wiki/Resources
13 | * Use `` if you are inside the Home page of the wiki and `` if you are in a sub page
14 | * If possible try to save your images in GIF using web colors only to keep the file sizes low and quick loading
15 |
16 | ## Resources
17 | * Upload your resource to wiki/Resources and point to it with `[Example](wiki/Resources/world_nether_config.zip)` (Homepage) or `[Example](Resources/world_nether_config.zip)` (sub page)
18 |
--------------------------------------------------------------------------------
/wInfos/Markown-Examples.md:
--------------------------------------------------------------------------------
1 | # Formatting
2 | **Bolt**
3 | _Italic_
4 | `Code`
5 |
6 | # Headers
7 |
8 | # 1
9 | ## 2
10 | ### 3
11 | #### 4
12 | ##### 5
13 | ###### 6
14 |
15 | # Links
16 |
17 | http://google.com
18 | [Google](http://google.com)
19 |
20 | 
21 |
22 | # References
23 |
24 | [text to link][link1]
25 |
26 | [link1]: http://where.it.links.to
27 |
28 |
29 | # Tables
30 |
31 | | Option | Description |
32 | | :------------------ | :---------- |
33 | | stuff | Tstuff |
34 |
35 | Option | Option
36 | ------ | ------
37 | Text | Text
38 |
39 | # More
40 |
41 | https://guides.github.com/features/mastering-markdown/
42 | https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
43 |
--------------------------------------------------------------------------------