Minecraft anticheat guide

Attribute Changes and Anticheat Reach and Speed Checks

How plugins, datapacks, and effects change player attributes, why hardcoded defaults cause reach and speed false flags, and how to map your server's values.

Short answer: match the anticheat to your real values

Attributes are the numbers that control stats such as movement speed, attack damage, and interaction range. Vanilla, plugins, datapacks, and status effects can change them. An anticheat that assumes default values can flag a legal player as fast or long-reaching after a change. List every source that edits attributes on your server, then confirm that the anticheat reads the values you actually use.

What attributes control

Attributes are base values that the game combines with modifiers. A modifier can come from an item, an enchantment, a potion effect, or a plugin. The final value is what the game uses when it moves a player or resolves an attack.

Two players with the same item can therefore have different values. When you read an alert, check the effects and equipment the player had at that timestamp, next to the position data. Without that context, the alert cannot be explained.

Recent Minecraft versions also include attributes for how far a player can reach to interact with blocks and entities. Confirm the attribute names and default values for your version on the Minecraft wiki, and in the release notes that describe the change.

Where server values come from

Most server owners see attribute changes from four sources. The table lists each source and why it matters to checks. Start with the sources you can list from your plugin folder and datapack folder, then add effects that players can receive during play.

Sources of attribute changes and their effect on checks.
SourceExampleWhy it matters to checks
Vanilla defaultBase movement speed for a playerBaseline that speed and reach checks may assume
Status effectSpeed or Slowness changes movement while activeMovement changes without a matching input change
Item or enchantmentArmor or a weapon with an attribute modifierCan change reach or damage for one player only
Plugin or datapackCustom values per world, gamemode, or rankChecks may use hardcoded defaults and misread the change

Map and test each custom value

Map the values before you change the anticheat. The goal is a written list that matches the server, so the anticheat's assumptions and the server's real values agree. Test each profile in staging with a test account, and keep the anticheat in alert-only mode during the test.

Use the mapping in your change log

A short example shows why the mapping matters. Suppose a kit gives players a larger interaction range, but the reach check still uses the default value. Legal interactions at the edge of the new range would look like reach cheating. The fix is to match the check to the value the kit sets, or to exempt that item, and then test the kit in staging.

Keep the mapping next to your anticheat change log.Include the attribute name, the source, the world or gamemode, and the test result. When a player disputes a reach or speed alert, you can check the mapping and the logged value on the same page.

Avoid raising a threshold because one player complained. Set thresholds from logged data that includes known values, and recheck them after any attribute change.

What we have not verified

This article does not list the attribute values for any specific Minecraft version, and it does not state how any particular anticheat reads attributes. Those details come from the Minecraft wiki, the release notes for your version, and your anticheat's documentation. Run the mapping on your own server before you rely on it.

FAQ

Why did speed alerts start after we installed a kit plugin?

The kit plugin may have set movement or interaction attributes when items were equipped. Check its configuration for attribute entries, then compare the alert time with the equip event in your logs.

Do potion effects count as attribute changes?

Effects change the modifiers applied to attribute values while they are active. Test Speed and Slowness on staging and confirm that the anticheat handles both the start and the end of each effect.

If we change attributes in one world, do other worlds change too?

Only if the plugin or datapack applies the value globally. Read the scope setting in the plugin documentation, then test one player in each world to confirm the result.

Can we raise the reach threshold to stop these alerts?

You can, but a higher threshold also hides real reach cheats. Set the value from logged data with known attributes, and recheck it after each attribute change.

Related sources and official pages

Browse all anticheat guides