promotional bannermobile promotional banner
premium banner
This is a server utility that addresses cheating, griefing, and server griefing with logging and auto-disconnection for some server griefing actions.

Description

Banner.png

 

Harder Cheating And Anti Griefing will make various checks and create reports to make it harder to cheat.   

Current features

Report Stacks of Items In Containers Over the Maximum Count.

* Reports potential violations, player, and location.

* Cheating automatically fixes potential violations by default but this can be turned off.

Report Stacks of Items In Player Inventories Over the Maximum Count.

* Reports potential violations, player, and location.

Report illegal clicks on a target too far away from the player.  

* Reports potential violations and the player location and the target location.  This is used to lag the server by loading remote blocks and to track other players locations by loading remote chunks (usually gates and portals).

Anti-Griefing  (Currently in 1.21.5 only)

Reports And Disconnects players who click too many times per second.
* This is done ot grief servers.

Reports And Disconnects players who change Recipes too many times per second.
* This is done to grief servers.

Configuration (Version 3)

["General Settings"]
#Debug Level: 0 = minimal logging, 1 = more logging , 2 = maximumal logging.
#Range: 0 ~ 2
debugLevel = 0
 
["Logging and Enforcement"]
#log activity in /config/harderchating/Activity.log
logActivity = true
#Number of days to ban someone.
#Range: > 1
banDays = 7
#Flag to Ban players who are disconnected for server ddos attacks
banPlayer = false
 
["Feature Flags:  True = On, False = Off"]
#checkMaxClicksPerSecond
checkMaxClicksPerSecond = true
#checkMaxMonsters
checkMaxMonsters = true
#checkMaxRecipesPerSecond
checkMaxRecipesPerSecond = true
#fixBadStacks
fixBadStacks = true
#If False, will not protect uncommon items.  Helpful for duping. Risk of losing player items.
saveUncommonItems = true
#If False, will not protect epic items.  Helpful for duping. Risk of losing player items.
saveRareItems = true
 
["Limits : Numerical limit values for various things"]

 

#Remove entities if too many in that category.  Format: Category,Integer list
maxCategoryCountsStringList = ["MONSTER,25", "CREATURE,25", "MISC,10", "AMBIENT,10", "AXOLOTLS,10", "UNDERGROUND_WATER_CREATURE,10", "WATER_AMBIENT,20", "WATER_CREATURE,20"]
#If entities in a chunk (mob and item stacks) are less, skip checking and let entity enter world.
#Range: 5 ~ 350
chunkEntityLimit = 60
 
#Legal Max Clicks per Second (15 to 99) Default 20.
#Range: 15 ~ 99
maxClicksPerSecond = 32
#Legal Max Crafting Recipe Changes per Second (132 to 512) Default 128.
#Range: 128 ~ 512
maxCraftRecipesPerSecond = 132
#Legal Max Click Distance (6 to 64) Default 12.
#Range: 6 ~ 64
maxClickDistance = 12
#Chunk entity count audit throttle.  Default is 100 ticks (5 seconds).
#Range: > 5
ticksBetweenEntityCountAudits = 100
 
["Blockable and Unblockable Lists  (inclusion and exclusion"]
#Blocked regardless of item rarity or on unblockable lists
blockItemsStringList = ["minecraft:diamond_block", "minecraft:emerald_block", "minecraft:gold_ingot", "minecraft:diamond", "minecraft:emerald"]
#Unblockable Mods Name List : Items from these mods will not be stopped from entering crowded chunks.
unblockableModsStringList = ["minecraft", "ironchest"]
#Items in these Item Tags won't be stopped from entering the crowded chunks.
unblockableItemTagStringList = ["#minecraft:enchantable/durability", "#minecraft:decorated_pot_sherds", "#minecraft:smithing_templates", "#minecraft:shulker_boxes"]
#Itemsin this list won't be stopped from entering the crowded chunks.
unblockableItemStringList = ["minecraft:beacon", "minecraft:dragon_egg", "minecraft:dragon_breath", "minecraft:nether_star", "minecraft:ender_chest", "minecraft:netherite_scrap", "minecraft:ancient_debris", "minecraft:conduit", "minecraft:netherite_upgrade_smithing_template"]


Activity.Log Example  (located in \config\hardercheating directory)

 

HarderCheating Activity Log. If empty, set 'logActivity' to true in the configuration.
HarderCheating Activity Log. To suppress, set 'logActivity' to false in the configuration.

2025/12/22 22:13:58.107 (BlockPos{x=-13, y=63, z=28}) Dev ) 380df991-f603-344c-a090-369bad2a924a
2025/12/22 22:13:58.184 Player picked up [Diamond Axe] stack size 20
2025/12/22 22:13:58.184 (BlockPos{x=-13, y=64, z=30}) Dev ) 380df991-f603-344c-a090-369bad2a924a
[Diamond Axe] stack size 20 : Set to legal maximum value.
2025/12/22 22:13:58.735 Dev                Disconnected for Rapid Crafting Recipe Spamming.
2025/10/17 16:13:59.362 Tick Audit: MONSTER Entity 47 ( (n) creeper) ticking at BlockPos{x=131, y=218, z=169} with 51 chunk entities.
2025/10/17 16:17:60.412 Tick Audit: CREATURE Entity 60 ( (n) wandering_trader) ticking at BlockPos{x=113, y=64, z=173} with 34 chunk entities.
2025/10/17 16:20:24.764 Tick Audit: MONSTER Entity 33 ( (n) creeper) ticking at BlockPos{x=132, y=218, z=167} with 86 chunk entities.

2025/10/17 16:20:24.765 MONSTER: 79 of 252025/10/17 16:20:24.765 CREATURE: 6 of 252025/10/17 16:20:24.765 MISC: 1 of 102025/10/17 16:20:24.765 Considering removing MONSTER (( (n) skeleton) at BlockPos{x=135, y=218, z=164}).2025/10/17 16:20:24.766 Removed: Entity MONSTER (( (n) skeleton)) at BlockPos{x=135, y=218, z=164} with 78 chunk category entities.2025/10/17 16:20:24.766 Considering removing MONSTER (( (n) creeper) at BlockPos{x=135, y=218, z=175}).2025/10/17 16:20:24.766 Removed: Entity MONSTER (( (n) creeper)) at BlockPos{x=135, y=218, z=175} with 77 chunk category entities.... section removed for brevity2025/10/17 16:20:24.769 Considering removing MONSTER (( (n) creeper) at BlockPos{x=135, y=218, z=160}).2025/10/17 16:20:24.769 Removed: Entity MONSTER (( (n) creeper)) at BlockPos{x=135, y=218, z=160} with 27 chunk category entities.2025/10/17 16:20:24.769 Considering removing MONSTER (( (n) skeleton) at BlockPos{x=135, y=218, z=164}).2025/10/17 16:20:24.769 Removed: Entity MONSTER (( (n) skeleton)) at BlockPos{x=135, y=218, z=164} with 26 chunk category entities.2025/10/17 16:20:24.769 Considering removing MONSTER (( (n) skeleton) at BlockPos{x=135, y=218, z=164}).2025/10/17 16:20:24.769 Removed: Entity MONSTER (( (n) skeleton)) at BlockPos{x=135, y=218, z=164} with 25 chunk category entities.

2025/10/17 16:20:24.769 Removed a total of 54 entities.
2025/10/1716:20:24.769 MONSTER: 25 of 25
2025/10/17 16:20:24.769 CREATURE: 6 of 25
2025/10/17 16:20:24.769 MISC: 1 of 10

2025/12/22 22:13:59 (BlockPos{x=-13, y=63, z=29}) Dev ) 380df991-f603-344c-a090-369bad2a924a
2025/12/22 22:13:58 Dev                Disconnected for Clicking too many times per second.
[Diamond Axe] stack size 30 : Set to legal maximum value.
2025/12/22 22:15:52 (BlockPos{x=-13, y=65, z=26}) Dev ) 380df991-f603-344c-a090-369bad2a924a
[Egg] stack size 64 : Set to legal maximum value.