xGinko / AnarchyExploitFixes

Fix exploits on anarchy Minecraft servers
GNU General Public License v3.0
283 stars 53 forks source link
2b2t 2b2torg aef anarchy anarchy-minecraft-servers bukkit elytra exploit-fixes exploitfixer exploits minecraft paper plugin spigot spigot-plugin
[![bstats](https://bstats.org/signatures/bukkit/AnarchyExploitFixes.svg)](https://bstats.org/plugin/bukkit/AnarchyExploitFixes/8700) ## AnarchyExploitFixes [![MIT License](https://img.shields.io/github/license/xGinko/AnarchyExploitFixes?&logo=github)](LICENSE) [![Build Status](https://img.shields.io/github/actions/workflow/status/xGinko/AnarchyExploitFixes/gradle.yml)]() [![CodeFactor Grade](https://img.shields.io/codefactor/grade/github/xGinko/AnarchyExploitFixes)](https://www.codefactor.io/repository/github/xGinko/AnarchyExploitFixes) [![Github Downloads](https://img.shields.io/github/downloads/xGinko/AnarchyExploitFixes/total.svg)](https://github.com/xGinko/AnarchyExploitFixes/releases/) [![Join the Discord](https://discord.com/api/guilds/1037611857705451560/widget.png?style=shield)](https://discord.gg/PyYe5ffRQG) [![Stargazers](https://img.shields.io/github/stars/xGinko/AnarchyExploitFixes?label=stars)](https://github.com/xGinko/AnarchyExploitFixes/stargazers) [![Forks](https://img.shields.io/github/forks/xGinko/AnarchyExploitFixes?label=forks)](https://github.com/xGinko/AnarchyExploitFixes/network/members) [![Watchers](https://img.shields.io/github/watchers/xGinko/AnarchyExploitFixes?label=watchers)](https://github.com/xGinko/AnarchyExploitFixes/watchers) [![Ko-Fi Donations](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/Z8Z3RVMAJ) AnarchyExploitFixes is a [Paper](https://github.com/PaperMC/Paper) plugin attempting to fix all major exploits affecting anarchistic Minecraft servers. It is designed for high configurability and performance.

Contact

Join the Discord:

Join the Discord

Servers using AnarchyExploitFixes:

(Add your server in a pull request)

constantiam.net (70-80), 5b5t.org (50-150), 6b6t.org (50-150), openanarchy.org (40-150), endcrystal.me (10-50), 6g6s.org (10-50), scfanarchy.ggs.gg (0-3), 22b22t.tk (8-40), 2b2t.com.ar (10-50), f3f5.org (5-24), alacity.net (20-50), oldmate.sydney (5-20), play.basedmc.club (5-16), 2b2t.pl (5-15), mc.zedanarchy.org (5-15), mc.omada.cafe (5-10)

Downloads

Downloads can be obtained from the modrinth page or the actions tab.

Requirements

Building from source

First, clone this repository.

Then run the following command in the root directory:

./gradlew clean build

Notice

Please note that some exploits have already been patched by LPX AntiPacketExploit and Panilla, meaning they are most likely not included. It is recommended to use those alongside AEF to patch the majority of exploits.

Commands

These commands can only be executed from console or by opped players.

Features

This list does not include all features, check the config for all features!

All features listed here can be disabled or enabled in the config.

Config options

Missing config options will now automatically add themselves with every update without the config resetting.

This config was created on a 1.20.6 Paper server, default entries will vary based on server type and version.

config.yml ```yml config-version: 1.1 ############## # Language # ############## language: # The default language that will be used if auto-language is set to false # or no matching language file was found. default-language: en_us # If set to true, will display messages based on client language. auto-language: true ############# # General # ############# general: # The time in ticks (1 sec = 20 ticks) a checked tps will be cached # by the plugin. max-tps-check-interval-in-ticks: 20 # In case packet modules are causing trouble, you can disable them here. disable-all-packet-listeners: false # The Y-level at which the nether ceiling generates the last layer of bedrock # on your server. nether-ceiling-y: 127 # A server restart is required when changing a command's enable status! commands: say: enable: false # Uses MiniMessage format: https://docs.advntr.dev/minimessage/format.html. format: 'SERVER: %message%' help: # Help command that shows a small command overview for players. enable: false toggleconnectionmsgs: # If you don't use join leave/messages, you can set this to false. enable: true ################### # Miscellaneous # ################### misc: join-leave-messages: # If you want to hide yourself or someone else when logging # into the game, use these permissions: # aef.silentJoin, aef.silentLeave enable: true # If set to true, players will see join/leave messages by default # and enter /toggleconnectionmsgs to disable them. # If set to false will work the other way around. connection-messages-on-by-default: true show-in-console: false first-join-messages: # Configure message in lang folder. # You can hide yourself and other players using the permission: # aef.silentJoin enable: false show-in-console: true kicks: # Configure mask message in lang folder. mask-kick-messages: false prevent-message-kick: # Cancels the kick for specific kick messages. enable: false kick-messages-to-listen-to: - Kicked for spamming - Stop spamming! ########## # Chat # ########## chat: command-whitelist: # This will make it pretty much impossible to find your plugins as # only the commands you specify will be able to work. # Allow bypass using permission: aef.bypass.commandwhitelist enable: false # Will show logs when a command was denied. log: false # Enable only if you have problems with the default commandwhitelist. # Otherwise not recommended to use. use-packets: false # Add all commands you WANT your players to be able to access # WITHOUT the '/'. Not case sensitive. whitelisted-commands: - help - vote - kill - discord - togglechat - toggleconnectionmsgs - toggletells - togglewhispering - toggleprivatemsgs - ignore - ignorelist - ignorehard - toggledeathmsg - dmt - worldstats - stats - tps - msg - whisper - w - m - t - pm - tell - r - reply - last # Add all subcommands you DON'T want your players to be able # to access. Case sensitive! blacklisted-subcommands: - help about - vote List - vote Best - vote Total - worldstats reload - stats reload prevent-scanning-server-plugins: # Prevents hacked clients running .plugins to find out what plugins # the server is using. # Recommended to use in combination with command whitelist. enable: true ############ # Elytra # ############ elytra: # NOTE: Set nocheatplus horizontal elytra settings to 500 or higher. elytra-speed: # If set to false, will only calculate 2-Dimensional speed without taking height # changes into consideration. calculate-3D-speed: false # Display info in Actionbar while flying. display-actionbar: true # Inform flying player if they are in old or new chunks. display-chunk-info-in-actionbar: true # Plays XP pickup sound to alert players when theyre going above the limit. play-sound-when-too-fast: true sound: ENTITY_EXPERIENCE_ORB_PICKUP # Recommended to leave false if you dont experience any issues. teleport-instead-of-canceling-movement: false Global-Settings: # Global settings. If nothing else is enabled, this will be used for all environments. enable: true # Can be slow with a lot of players. Enable only if needed. use-bypass-permission: false deny-elytra-usage: false speed-old-chunks: 1.81 speed-new-chunks: 1.81 enable-bursting: true burst-speed-old-chunks: 5.0 burst-speed-old-chunk-TPS: 18.0 burst-speed-new-chunks: 3.12 burst-speed-new-chunk-TPS: 19.0 deny-elytra-on-low-TPS: true deny-elytra-TPS: 12.0 also-remove-elytra-on-low-TPS: true At-Spawn: # Use separate values for players at spawn. enable: false # Radius in blocks around 00 that should count as spawn. radius: 3000 # Can be slow with a lot of players. Enable only if needed. use-bypass-permission: false deny-elytra-usage: false speed-old-chunks: 1.0 speed-new-chunks: 0.8 deny-elytra-on-low-TPS: true deny-elytra-TPS: 10.0 also-remove-elytra-on-low-TPS: true Nether-Ceiling: # Use separate values for players above the nether ceiling. enable: true # Can be slow with a lot of players. Enable only if needed. use-bypass-permission: false deny-elytra-usage: false speed-old-chunks: 0.5 speed-new-chunks: 0.5 enable-bursting: true burst-speed-old-chunks: 1.0 burst-speed-old-chunk-TPS: 18.0 burst-speed-new-chunks: 1.0 burst-speed-new-chunk-TPS: 18.0 deny-elytra-on-low-TPS: true deny-elytra-TPS: 12.0 also-remove-elytra-on-low-TPS: true packet-elytra-fly: # Patches the future/rusherhack/kamiblue 2b2t elytra fly exploit. patch-packet-elytra-fly: false # The fly exploit causes the player to constantly toggle gliding. # If too many glide toggles occur within a timeframe, they are # most likely using PacketFly. # Still may trigger false positives when players are jumping and # sprinting with elytra equipped, so recommended to play around # with the values. max-elytra-opens-per-time: 25 # Time in seconds a elytra open count will be remembered by the plugin. time-in-seconds: 8 # Configure message in lang folder. notify-player-to-disable-packetfly: true # If enabled, player will be kicked with a message instead of # getting their elytra dropped. kick-instead-of-remove-elytra: false ################## # Chunk Limits # ################## chunk-limits: entity-limits: dropped-item-limit: # Limit the amount of dropped items in a chunk to combat lag. # Be aware this does not prioritize items by value or anything, # it just deletes whatever happens to get over the limit during # counting. enable: false log-removals: true max-dropped-items-per-chunk: 200 # The delay in ticks the plugin will wait after an item in a chunk # has dropped before the check logic will run. # This improves performance as there will be no check for each single # item entity that spawns. post-item-drop-check-delay-ticks: 60 # The period in ticks in which all loaded chunks should be regularly # checked. Keep in mind: A lower number provides more accuracy but is # also worse for performance. check-period-in-ticks: 1200 # Runs item check when a chunk is loaded. check-on-chunk-load: true whitelist-specific-item-types: false # Check the paper api for correct Material enums: # https://jd.papermc.io/paper/1.20.6/org/bukkit/Material.html # Make sure your minecraft version is matching as well. whitelisted-types: - BLACK_SHULKER_BOX - BLUE_SHULKER_BOX - BROWN_SHULKER_BOX - CYAN_SHULKER_BOX - GRAY_SHULKER_BOX - GREEN_SHULKER_BOX - LIGHT_BLUE_SHULKER_BOX - LIGHT_GRAY_SHULKER_BOX - LIME_SHULKER_BOX - MAGENTA_SHULKER_BOX - ORANGE_SHULKER_BOX - PINK_SHULKER_BOX - PURPLE_SHULKER_BOX - RED_SHULKER_BOX - SHULKER_BOX - WHITE_SHULKER_BOX - YELLOW_SHULKER_BOX tile-entity-limit: # Limit the amount of tile entities in a chunk to prevent lag. enable: false log-removals: true max-tile-entities-per-chunk: 100 check-period-in-ticks: 20 villager-limit: enable: false max-villagers-per-chunk: 25 log-removals: false # Check all chunks every x ticks. check-period-in-ticks: 600 # Professions that are in the top of the list are going to be scheduled # for removal first. removal-priority: - NONE - NITWIT - SHEPHERD - FISHERMAN - BUTCHER - CARTOGRAPHER - LEATHERWORKER - FLETCHER - MASON - FARMER - ARMORER - TOOLSMITH - WEAPONSMITH - CLERIC - LIBRARIAN non-living-limit: # Limit the amount of non living entities in a chunk to prevent lag. # Ignores dropped items. enable: false log-removals: true max-non-living-per-chunk: 100 check-period-in-ticks: 20 custom-limit: # Limit specific entity types per chunk. enable: false log-removals: true # Check all loaded chunks every x ticks. check-period-in-ticks: 1200 chunk-age-skip: enable: true # How long a chunk has to have been inhabited for it to be checked. # 1 second = 20 ticks. min-age-in-ticks: 800 # When a chunk is loaded, entities inside of it are not necessarily # loaded as well. Force loading is worse for performance, but there # might be a scenario where this turns out to be useful. forceload-entities: false # Check the paper api for correct EntityType enums: # https://jd.papermc.io/paper/1.20.6/org/bukkit/entity/EntityType.html # Make sure your minecraft version is matching as well. limited-types: ALLAY: 20 ARROW: 20 AXOLOTL: 10 BAT: 3 BEE: 15 BLAZE: 10 CAT: 10 CAVE_SPIDER: 10 CHICKEN: 10 COD: 6 COW: 10 CREEPER: 10 DOLPHIN: 4 DONKEY: 10 DROWNED: 10 ENDERMAN: 10 ENDERMITE: 3 EVOKER: 15 FIREBALL: 5 FOX: 10 FROG: 20 GLOW_SQUID: 20 GOAT: 10 GUARDIAN: 20 HOGLIN: 10 HORSE: 10 HUSK: 10 IRON_GOLEM: 15 LLAMA: 10 MAGMA_CUBE: 10 MOOSHROOM: 10 MULE: 10 OCELOT: 3 PANDA: 5 PARROT: 10 PHANTOM: 10 PIG: 10 PIGLIN: 25 PIGLIN_BRUTE: 10 PILLAGER: 15 POLAR_BEAR: 5 PUFFERFISH: 3 RABBIT: 5 RAVAGER: 15 SALMON: 6 SHEEP: 10 SILVERFISH: 3 SKELETON: 10 SKELETON_HORSE: 10 SLIME: 10 SMALL_FIREBALL: 5 SNOWBALL: 5 SPIDER: 10 SQUID: 20 STRAY: 10 STRIDER: 3 TADPOLE: 20 TRADER_LLAMA: 10 TROPICAL_FISH: 6 TURTLE: 20 VEX: 15 VINDICATOR: 15 WANDERING_TRADER: 10 WITCH: 15 WITHER: 16 WITHER_SKELETON: 10 WITHER_SKULL: 10 WOLF: 10 ZOGLIN: 10 ZOMBIE: 10 ZOMBIE_HORSE: 10 ZOMBIE_VILLAGER: 25 ZOMBIFIED_PIGLIN: 20 vehicle-limit: # Limit the amount of vehicles to prevent some lag machines. # ex. dispenser that spawns a lot of boats into a single location # then hitting it, causing all boats to explode in every direction. enable: false log-removals: false max-vehicles-per-chunk: 25 # 200 ticks = 10 seconds. check-period-in-ticks: 400 falling-block-limit: # Prevent players from placing massive sand chunks, then collapsing # them to kill the server. enable: true log: false # Removes any falling block if there is more than x blocks actively # falling in a chunk. max-falling-gravity-blocks-per-chunk: 60 # Delay in ticks until the same chunk can be checked again. # Prevents overchecking, because physics events can be called many # times in a short time for the same chunk. chunk-check-delay-in-ticks: 20 block-limit: enable: false # Attempt to prevent ChunkBan / Client FPS Lag max-blocks-per-chunk: ACACIA_HANGING_SIGN: 8 ACACIA_SIGN: 8 ACACIA_WALL_HANGING_SIGN: 8 ACACIA_WALL_SIGN: 8 BAMBOO_HANGING_SIGN: 8 BAMBOO_SIGN: 8 BAMBOO_WALL_HANGING_SIGN: 8 BAMBOO_WALL_SIGN: 8 BEACON: 32 BIRCH_HANGING_SIGN: 8 BIRCH_SIGN: 8 BIRCH_WALL_HANGING_SIGN: 8 BIRCH_WALL_SIGN: 8 BLACK_BANNER: 12 BLACK_WALL_BANNER: 12 BLUE_BANNER: 12 BLUE_WALL_BANNER: 12 BROWN_BANNER: 12 BROWN_WALL_BANNER: 12 CHEST: 500 CREEPER_HEAD: 16 CREEPER_WALL_HEAD: 16 CRIMSON_HANGING_SIGN: 8 CRIMSON_SIGN: 8 CRIMSON_WALL_HANGING_SIGN: 8 CRIMSON_WALL_SIGN: 8 CYAN_BANNER: 12 CYAN_WALL_BANNER: 12 DARK_OAK_HANGING_SIGN: 8 DARK_OAK_SIGN: 8 DARK_OAK_WALL_HANGING_SIGN: 8 DARK_OAK_WALL_SIGN: 8 DISPENSER: 100 DRAGON_HEAD: 16 DRAGON_WALL_HEAD: 16 ENCHANTING_TABLE: 16 ENDER_CHEST: 64 GLOWSTONE: 5000 GRAY_BANNER: 12 GRAY_WALL_BANNER: 12 GREEN_BANNER: 12 GREEN_WALL_BANNER: 12 JUNGLE_HANGING_SIGN: 8 JUNGLE_SIGN: 8 JUNGLE_WALL_HANGING_SIGN: 8 JUNGLE_WALL_SIGN: 8 LIGHT_BLUE_BANNER: 12 LIGHT_BLUE_WALL_BANNER: 12 LIGHT_GRAY_BANNER: 12 LIGHT_GRAY_WALL_BANNER: 12 LIME_BANNER: 12 LIME_WALL_BANNER: 12 MAGENTA_BANNER: 12 MAGENTA_WALL_BANNER: 12 MANGROVE_HANGING_SIGN: 8 MANGROVE_SIGN: 8 MANGROVE_WALL_HANGING_SIGN: 8 MANGROVE_WALL_SIGN: 8 MOVING_PISTON: 32 OAK_HANGING_SIGN: 8 OAK_SIGN: 8 OAK_WALL_HANGING_SIGN: 8 OAK_WALL_SIGN: 8 ORANGE_BANNER: 12 ORANGE_WALL_BANNER: 12 PIGLIN_HEAD: 16 PIGLIN_WALL_HEAD: 16 PINK_BANNER: 12 PINK_WALL_BANNER: 12 PISTON: 32 PISTON_HEAD: 32 PLAYER_HEAD: 16 PLAYER_WALL_HEAD: 16 PURPLE_BANNER: 12 PURPLE_WALL_BANNER: 12 RED_BANNER: 12 RED_WALL_BANNER: 12 SLIME_BLOCK: 128 SPRUCE_HANGING_SIGN: 8 SPRUCE_SIGN: 8 SPRUCE_WALL_HANGING_SIGN: 8 SPRUCE_WALL_SIGN: 8 STICKY_PISTON: 32 TRAPPED_CHEST: 200 WARPED_HANGING_SIGN: 8 WARPED_SIGN: 8 WARPED_WALL_HANGING_SIGN: 8 WARPED_WALL_SIGN: 8 YELLOW_BANNER: 12 YELLOW_WALL_BANNER: 12 ZOMBIE_HEAD: 16 ZOMBIE_WALL_HEAD: 16 minecart-limit: # Limit the amount of minecarts to prevent lag caused by collisions. enable: false log-removals: false max-minecarts-per-chunk: 25 check-period-in-ticks: 400 exp-bottle-limit: # Prevent players from crashing the server or other players by # creating a ton of THROWN_EXP_BOTTLE entities, then loading # them at once. # Does not limit the EXP_ORBS, just the bottle entities. enable: true log: false max-exp-bottle-per-chunk: 25 # 20 ticks = 1 second check-period-in-ticks: 800 ##################### # Lag Preventions # ##################### lag-preventions: prevent-falling-block-stasis: # Patches a lag exploit where FALLING_BLOCK entities are being held in # a stasis using piston heads, allowing them to accumulate in large # numbers that are able to crash the server. enable: true log: false # (20 ticks = 1 second) falling-blocks-max-alive-time-in-ticks: 300 # How frequently we should check the alive time of all falling blocks. check-period-in-seconds: 12 disable-physics-during-low-tps: noteblocks: # Some lag machines use noteblocks to work around redstone limitations. enable: false disable-TPS: 16.0 log: false sculk-bloom: enable: false disable-TPS: 14.0 log: false leave-decay: enable: false disable-TPS: 14.0 log: false block-spread: enable: false disable-TPS: 14.0 log: false block-physics: # Stop block physics (like falling blocks) when the TPS gets below a certain value. enable: false disable-TPS: 16.0 log: false redstone: # Disable redstone during low TPS to prevent some lag machines. enable: false disable-TPS: 16.0 log: false fire-spread: enable: false disable-TPS: 14.0 log: false liquid-spread: enable: false disable-TPS: 16.0 log: false melting-blocks: enable: false disable-TPS: 16.0 log: false explosions: # Disable explosions during low tps to combat lag. enable: false disable-TPS: 14.0 log: false keep-stash-chunks-loaded: # Idea by 6g6s admin kumori: # Improves lag generated by large stash chunks constantly loading and # unloading by setting them force loaded. This might cause increased ram # usage, so keep an eye out for that. enable: false log: false # How many container blocks have to be in a chunk for it to be seen # as a stash chunk to keep force loaded. container-block-threshold: 50 # The minimum time in ticks a chunk has to have been inhabited to be checked. min-chunk-inhabited-time-ticks: 1000 # The time in minutes a stash chunks will be kept force loaded before # setting it back to normal. keep-loaded-minutes: 60 container-types: - CHISELED_BOOKSHELF - DECORATED_POT - CHEST - FURNACE - JUKEBOX - SHULKER_BOX - WHITE_SHULKER_BOX - ORANGE_SHULKER_BOX - MAGENTA_SHULKER_BOX - LIGHT_BLUE_SHULKER_BOX - YELLOW_SHULKER_BOX - LIME_SHULKER_BOX - PINK_SHULKER_BOX - GRAY_SHULKER_BOX - LIGHT_GRAY_SHULKER_BOX - CYAN_SHULKER_BOX - PURPLE_SHULKER_BOX - BLUE_SHULKER_BOX - BROWN_SHULKER_BOX - GREEN_SHULKER_BOX - RED_SHULKER_BOX - BLACK_SHULKER_BOX - HOPPER - DISPENSER - DROPPER - LECTERN - TRAPPED_CHEST - CRAFTER - BREWING_STAND - BARREL - SMOKER - BLAST_FURNACE target-distance-limits: enable: false log: false global-limit: enable: false # The max distance no target should exceed. # You want this to be higher than your highest max distance # for a specific mob. max-target-distance: 20.0 custom-limits: enable: true entities: SKELETON: 6.0 WITHER: 8.0 WITHER_SKELETON: 8.0 ZOMBIE: 6.0 ZOMBIE_VILLAGER: 10.0 ZOMBIFIED_PIGLIN: 8.0 disable-item-drops-during-large-stash-explosions: # Explodes containers without dropping items after a certain amount # of exploded containers per chunk. enable: false log: false # How many container blocks in a chunk can be blown up until items # no longer drop from them. min-explosions-before-drops-disable: 6 # The time in seconds to wait after an explosion for another one to happen. # If no explosion happens within x seconds after the first one, the count resets to 0. time-in-seconds: 3 container-types: - CHISELED_BOOKSHELF - DECORATED_POT - CHEST - FURNACE - JUKEBOX - HOPPER - DISPENSER - DROPPER - LECTERN - TRAPPED_CHEST - CRAFTER - BREWING_STAND - BARREL - SMOKER - BLAST_FURNACE prevent-lever-spam: # Rate Limit levers to prevent a lag exploit. enable: false show-actionbar: true kick-player: false max-lever-usages-per-time: 15 lever-time-in-ticks: 40 pathfinding-limits: enable: false # Only meant for debug. log: false global-limit: enable: false # The max distance no mob pathfinding should exceed. # You always want this to be higher than your highest max distance # for a specific mob. max-target-distance: 20.0 custom-limits: enable: true entities: SKELETON: 6.0 WITHER: 8.0 WITHER_SKELETON: 8.0 ZOMBIE: 6.0 ZOMBIE_VILLAGER: 10.0 ZOMBIFIED_PIGLIN: 8.0 entity-age-limits: custom-limits: # Kill certain entities after a custom amount of ticks lived. enable: false log-removals: false # Check all loaded chunks every x ticks. check-period-in-ticks: 1200 # When a chunk is loaded, entities inside of it are not necessarily # loaded as well. Force loading is worse for performance, but there # might be a scenario where this turns out to be useful. forceload-entities: false # Check the paper api for correct EntityType enums: # https://jd.papermc.io/paper/1.20/org/bukkit/entity/EntityType.html # Make sure your minecraft version is matching as well. limited-types: ARROW: 120 SNOWBALL: 100 SPECTRAL_ARROW: 120 WITHER_SKULL: 100 projectile-limit: # Patches any lag exploit that abuses spawning a ton of projectile entities # (ex. Snowball exploit).Skips over the following entities: ENDER_PEARL, FISHING_HOOK, WITHER_SKULL # and ENDER_SIGNAL. You can configure those separately in the custom entity age # limit section. enable: false # (20 ticks = 1 second) Will not touch Ender Pearls max-alive-time-ticks: 300 # How frequently we should check all projectiles for their alive time check-period-seconds: 20 prevent-flooding-machines: # Will prevent pistons from pushing waterlogged blocks. # Stops players from using waterlogged blocks and piston flying # machines to generate large walls of water that generate lag # due to the fluid physics. enable: false delete-waterlogged-blocks: true prevent-inventory-action-lag: # WARNING: VERY EXPERIMENTAL! # Prevent lag generated by players quickly moving big items back and # forth between inventories. Uses cached counters that auto-reset after # the configurable time in milliseconds. enable: false log: true # The amount of time in milliseconds an entry is kept after writing. cache-time-millis: 2000 # Use correct enums from: # https://jd.papermc.io/paper/1.20/org/bukkit/event/inventory/InventoryAction.html. # Format is: InventoryClickAction: AllowedClicksPerTime click-action-limits: COLLECT_TO_CURSOR: 15 HOTBAR_SWAP: 30 MOVE_TO_OTHER_INVENTORY: 8 anti-shulker-drops: # Disables shulkers dropping stored items when blown up. # This helps fix client- and serverside lag when done often and fast. enable: false prevent-liquid-update-lag: enable: false # WARNING: DEFAULTS ARE VERY ROUGH, DEFINITELY TWEAK THIS! # Number is the result of: # Amount of liquid source blocks # multiplied by sides it can spread to # multiplied by block spread length. max-liquid-events-in-same-chunk-per-time: 1200 # Record time after first liquid spread. # When this time runs out, the spread counter resets time-in-ticks: 100 # Very spammy, use for testing/debugging only log: false ############# # Patches # ############# patches: anti-book-ban: enable: false # If set to false, will use UTF-8. # Charset to use to encode the result of NBTCompound#toString into # a sequence of bytes. The length of that sequence is then used to # get the approximate Byte-size of an ItemStack. # Use the /aef bytesize command to get a better understanding. use-UTF-16: false max-book-size: 56000 # Kicks players when they try to create a book bigger than the limit. kick-on-too-large-book-edit: true max-author-chars: 32 max-title-chars: 32 max-pages: 100 max-item-size: 56000 max-inventory-size: 2050000 # How long in ticks a dropped item's size should be cached after # checking. dropped-items-size-cache-ticks: 120 # How long in ticks a player's inventory size should be cached after # checking. player-inventory-size-cache-ticks: 20 pearl-phase: # Attempts to patch a pearl phasing exploit by cancelling the teleport # if the pearl is thrown at or near a cobweb. enable: false # How many blocks around the teleport location should be searched # for cobwebs if the teleport location isn't one itself. cobweb-block-radius: 2 # We will have to schedule the check on folia, meaning theres a chance # the task might take longer than expected. To make sure that does not cause # more lag, we set a time limit here. # Only relevant on folia. check-timeout-millis: 1000 prevent-command-sign: # Patch signs that have run_command NBT tags attached, allowing the # to run a command with operator permissions on click. # Recommended to enable if you had a rogue admin or backdoor incident. enable: true map-cursor-lag-patch: # Patches the famous stacked map cursor lag that causes both # client and server crashes. enable: false prevent-fast-world-teleport-crash: # Prevents crash methods that involve very fast teleporting between # different worlds in a short time. enable: false # Time in milliseconds until an entity can teleport to another # world again. teleport-delay-millis: 1000 log: false prevent-teleport-coordinate-exploit: # Patches coordinate exploit for teleportation commands such as /tpa, # /home AS WELL as respawn exploits. # This is done by vanishing the player for x ticks before teleporting. enable: false min-distance-to-vanish-player: 100 teleport-vanish-time-in-ticks: 10 # Removes entities or players if they are invalid, dead or not located # within a ticking chunk. Not sure if this works. experimental-godmode-patch: false tab-complete-crash-patch: # Patches two lag exploits and an instant server shutdown exploit that # works by sending a malicious TabComplete packet that triggers a # StackOverflowError inside the TagParser class. enable: true log: false kick-player: false remove-beehive-coordinates: # Patches an exploit that allows players to obtain another player's # coordinates by trading them for Beehives or Beenests. # If the traded item contains any bees, the stored bee's NBT data can # then be read from the item. # This data includes, but is not limited to: # - XYZ coordinates of where the bee has its hive # - XYZ of the bee's last coordinates before entering it's hive # - XYZ coordinates of where the bee last visited a flower # - XYZ coordinates of where the bee was first spawned into existence # - UID of the world the bee was first spawned into existence enable: true # The NBT tags to filter from the item. These are the Keys that hold # the position data. You may add more tags you want removed here. tags: - Pos - HivePos - FlowerPos - Paper.Origin - Paper.OriginWorld - WorldUUIDMost - WorldUUIDLeast window-click-crash-patch: # Patches a variety of different lag and crash methods that work # by sending invalid Window Click packets, causing the server to # dump error logs until it runs out of memory. enable: true log: false kick-player: false sequence-crash-patch: # Patches a variety of lag/crash exploits that involves sending packets # with invalid sequences. enable: true log: false kick-player: false sign-lag: # Patches a lag exploit that involves sending specific oversized # sign edit packets. enable: true # Vanilla limit is 384 characters per line, which can be too much. line-character-limit: 80 # General char limit for all lines combined. total-char-limit: 384 log: false kick-player: false beehive-crash-patch: # Patches a server crash exploit exclusive to Purpur servers. # This exploit works due to PurpurClient having a feature that # lets clients request stored data of a clicked beehive from # the server. The server does not check how far the clicked # beehive is away from the client enabling a malicious sender # to load chunks very fast at far away locations by telling # the server it clicked a beehive there. enable: true max-distance: 24 log: false kick-player: false ############## # Illegals # ############## illegals: remove-placed-blocks: on-chunkload: # Remove illegally placed blocks on chunkload. enable: false # Enter PLAYER_HEAD here if you want to remove placed playerheads. blocks-to-remove: - PLAYER_HEAD - CHAIN_COMMAND_BLOCK - COMMAND_BLOCK - COMMAND_BLOCK_MINECART - REPEATING_COMMAND_BLOCK - BEDROCK - BARRIER exempted-worlds: - exampleworld1 - exampleworld2 pause-on-low-TPS: false pause-TPS: 14.0 periodically: enable: false # Enter PLAYER_HEAD here if you want to remove placed playerheads. blocks-to-remove: - PLAYER_HEAD - CHAIN_COMMAND_BLOCK - COMMAND_BLOCK - COMMAND_BLOCK_MINECART - REPEATING_COMMAND_BLOCK - BEDROCK - BARRIER exempted-worlds: - exampleworld1 - exampleworld2 check-period-in-seconds: 10 pause-on-low-TPS: false pause-TPS: 14.0 remove-unnatural-spawners-on-chunkload: enable: false pause-on-low-TPS: false pause-TPS: 14.0 # You can add or remove as much world names here as you want. natural-spawner-types-per-world: world: - SKELETON - ZOMBIE - SILVERFISH - SPIDER - !!org.bukkit.entity.EntityType 'CAVE_SPIDER' world_the_end: - SKELETON - SPIDER world_nether: - BLAZE - MAGMA_CUBE enchantments: higher-enchants: # Bypass permission: aef.bypass.illegal.enchants.higher # Reverts or prevents usage of ItemStacks with Enchantments higher # than the natural, in vanilla survival obtainable level (aka 32ks / 255s). enable: false # Available options: # STRICT - Deletes or reverts illegals even on chest open # ACTION_ON_USE - Deletes or reverts illegals when interacted with # PREVENT_USE_ONLY - Only prevents usage of illegals if possible handling: PREVENT_USE_ONLY # Prevents Hopper32k mechanic of placing a shulker containing illegals # on top of a hopper, then using the illegal out of the hoppers inventory. # WARNING: Hooks into InventoryMoveItemEvent, which can become VERY resource # intense as the event fires for every single item getting moved by the # hopper. Enable only if you need to. prevent-hopper32k-mechanic: false check-on-chunkload: # WARNING: CHECKING ON CHUNKLOAD IS NOT RECOMMENDED AS IT IS VERY RESOURCE INTENSE. # BE VERY SURE YOU ACTUALLY NEED THIS. # Iterates over all blocks in a chunk when it is loaded and checks any inventories # for illegals. If a container with illegals is found, it will be REMOVED. enable: false # If set to true, immediately replaces the container with air. Otherwise, will try # to handle items separately. remove-container: false check-stored-items: false only-specific-enchants: false specific-enchants: - DIG_SPEED item-whitelist-enabled: true use-as-blacklist-instead: false whitelisted-items: - GOLDEN_APPLE incompatible-enchants: # Bypass permission: aef.bypass.illegal.enchants.incompatible # Reverts or prevents usage of ItemStacks with Enchantments that # cannot coexist in vanilla survival minecraft. # Examples: A bow with mending and infinity or armor with every # protection enchantment. enable: false # Available options: # STRICT - Deletes or reverts illegals even on chest open # ACTION_ON_USE - Deletes or reverts illegals when interacted with # PREVENT_USE_ONLY - Only prevents usage of illegals if possible handling: PREVENT_USE_ONLY # Prevents Hopper32k mechanic of placing a shulker containing illegals # on top of a hopper, then using the illegal out of the hoppers inventory. # WARNING: Hooks into InventoryMoveItemEvent, which can become VERY resource # intense as the event fires for every single item getting moved by the # hopper. Enable only if you need to. prevent-hopper32k-mechanic: false check-on-chunkload: # WARNING: CHECKING ON CHUNKLOAD IS NOT RECOMMENDED AS IT IS VERY RESOURCE INTENSE. # BE VERY SURE YOU ACTUALLY NEED THIS. # Iterates over all blocks in a chunk when it is loaded and checks any inventories # for illegals. If a container with illegals is found, it will be REMOVED. enable: false # If set to true, immediately replaces the container with air. Otherwise, will try # to handle items separately. remove-container: false check-stored-items: false item-whitelist-enabled: true use-as-blacklist-instead: false whitelisted-items: - BOW inapplicable-enchants: # Bypass permission: aef.bypass.illegal.enchants.inapplicable # Reverts or prevents usage of ItemStacks with Enchantments that # cannot be applied to that ItemStack in vanilla survival minecraft. # Examples: A helmet with sharpness or a block of stone with fortune. enable: false # Available options: # STRICT - Deletes or reverts illegals even on chest open # ACTION_ON_USE - Deletes or reverts illegals when interacted with # PREVENT_USE_ONLY - Only prevents usage of illegals if possible handling: PREVENT_USE_ONLY # Prevents Hopper32k mechanic of placing a shulker containing illegals # on top of a hopper, then using the illegal out of the hoppers inventory. # WARNING: Hooks into InventoryMoveItemEvent, which can become VERY resource # intense as the event fires for every single item getting moved by the # hopper. Enable only if you need to. prevent-hopper32k-mechanic: false check-on-chunkload: # WARNING: CHECKING ON CHUNKLOAD IS NOT RECOMMENDED AS IT IS VERY RESOURCE INTENSE. # BE VERY SURE YOU ACTUALLY NEED THIS. # Iterates over all blocks in a chunk when it is loaded and checks any inventories # for illegals. If a container with illegals is found, it will be REMOVED. enable: false # If set to true, immediately replaces the container with air. Otherwise, will try # to handle items separately. remove-container: false check-stored-items: false item-whitelist-enabled: true use-as-blacklist-instead: false whitelisted-items: - GOLDEN_APPLE nbt: ban-custom-tags: # Bypass permission: aef.bypass.illegal.nbt.custom # Deletes items that have one or more of the configured tags. enable: false # Available options: # STRICT - Deletes or reverts illegals even on chest open # ACTION_ON_USE - Deletes or reverts illegals when interacted with # PREVENT_USE_ONLY - Only prevents usage of illegals if possible handling: PREVENT_USE_ONLY # Prevents Hopper32k mechanic of placing a shulker containing illegals # on top of a hopper, then using the illegal out of the hoppers inventory. # WARNING: Hooks into InventoryMoveItemEvent, which can become VERY resource # intense as the event fires for every single item getting moved by the # hopper. Enable only if you need to. prevent-hopper32k-mechanic: false check-on-chunkload: # WARNING: CHECKING ON CHUNKLOAD IS NOT RECOMMENDED AS IT IS VERY RESOURCE INTENSE. # BE VERY SURE YOU ACTUALLY NEED THIS. # Iterates over all blocks in a chunk when it is loaded and checks any inventories # for illegals. If a container with illegals is found, it will be REMOVED. enable: false # If set to true, immediately replaces the container with air. Otherwise, will try # to handle items separately. remove-container: false check-stored-items: false # The exact, case sensitive value of the nbt tag. tags: - dmg item-whitelist-enabled: false use-as-blacklist-instead: false whitelisted-items: - GOLDEN_APPLE impossibly-stored-items: # Bypass permission: aef.bypass.illegal.nbt.storeditems # Prevents usage of or deletes storage items that have been pre-filled # with items using NBT tags. These can only be created by players with # creative access. # Most commonly dispensers, droppers and chests containing kit shulkers # are created but there are more combinations possible. enable: false # Available options: # STRICT - Deletes or reverts illegals even on chest open # ACTION_ON_USE - Deletes or reverts illegals when interacted with # PREVENT_USE_ONLY - Only prevents usage of illegals if possible handling: PREVENT_USE_ONLY # Prevents Hopper32k mechanic of placing a shulker containing illegals # on top of a hopper, then using the illegal out of the hoppers inventory. # WARNING: Hooks into InventoryMoveItemEvent, which can become VERY resource # intense as the event fires for every single item getting moved by the # hopper. Enable only if you need to. prevent-hopper32k-mechanic: false check-on-chunkload: # WARNING: CHECKING ON CHUNKLOAD IS NOT RECOMMENDED AS IT IS VERY RESOURCE INTENSE. # BE VERY SURE YOU ACTUALLY NEED THIS. # Iterates over all blocks in a chunk when it is loaded and checks any inventories # for illegals. If a container with illegals is found, it will be REMOVED. enable: false # If set to true, immediately replaces the container with air. Otherwise, will try # to handle items separately. remove-container: false # The exact name of the nbt tag that signals items are stored inside. tag: BlockEntityTag check-stored-items: false storage-types: - BARREL - BLAST_FURNACE - BREWING_STAND - CHEST - CHISELED_BOOKSHELF - CRAFTER - DECORATED_POT - DISPENSER - DROPPER - FURNACE - HOPPER - JUKEBOX - LECTERN - SMOKER - TRAPPED_CHEST command-items: # Bypass permission: aef.bypass.illegal.nbt.commanditem # Deletes items with commands in their NBT data that run as operator. # These can only be created by players with creative access. # Most common items are books, since it allows storing multiple commands. enable: false # Available options: # STRICT - Deletes or reverts illegals even on chest open # ACTION_ON_USE - Deletes or reverts illegals when interacted with # PREVENT_USE_ONLY - Only prevents usage of illegals if possible handling: PREVENT_USE_ONLY # Prevents Hopper32k mechanic of placing a shulker containing illegals # on top of a hopper, then using the illegal out of the hoppers inventory. # WARNING: Hooks into InventoryMoveItemEvent, which can become VERY resource # intense as the event fires for every single item getting moved by the # hopper. Enable only if you need to. prevent-hopper32k-mechanic: false check-on-chunkload: # WARNING: CHECKING ON CHUNKLOAD IS NOT RECOMMENDED AS IT IS VERY RESOURCE INTENSE. # BE VERY SURE YOU ACTUALLY NEED THIS. # Iterates over all blocks in a chunk when it is loaded and checks any inventories # for illegals. If a container with illegals is found, it will be REMOVED. enable: false # If set to true, immediately replaces the container with air. Otherwise, will try # to handle items separately. remove-container: false check-stored-items: false banned-item-names: # Bypass permission: aef.bypass.illegal.bannedname # Resets an item's name (or deletes the item) if it matches one of # the configured regexes. # Regexes can be complex. Use a tool like https://regex101.com/ or # ChatGPT for good results. enable: false # Available options: # STRICT - Deletes or reverts illegals even on chest open # ACTION_ON_USE - Deletes or reverts illegals when interacted with # PREVENT_USE_ONLY - Only prevents usage of illegals if possible handling: PREVENT_USE_ONLY # Prevents Hopper32k mechanic of placing a shulker containing illegals # on top of a hopper, then using the illegal out of the hoppers inventory. # WARNING: Hooks into InventoryMoveItemEvent, which can become VERY resource # intense as the event fires for every single item getting moved by the # hopper. Enable only if you need to. prevent-hopper32k-mechanic: false check-on-chunkload: # WARNING: CHECKING ON CHUNKLOAD IS NOT RECOMMENDED AS IT IS VERY RESOURCE INTENSE. # BE VERY SURE YOU ACTUALLY NEED THIS. # Iterates over all blocks in a chunk when it is loaded and checks any inventories # for illegals. If a container with illegals is found, it will be REMOVED. enable: false # If set to true, immediately replaces the container with air. Otherwise, will try # to handle items separately. remove-container: false # Will delete the item instead of resetting the name. delete-item: false regex: - (?i)illegalstring whitelisted-items: - DIRT illegally-stacked-items: # Bypass permission: aef.bypass.illegal.overstacked # Prevents usage of or reverts items with a higher or lower # stack size than their vanilla limit. enable: false # Available options: # STRICT - Deletes or reverts illegals even on chest open # ACTION_ON_USE - Deletes or reverts illegals when interacted with # PREVENT_USE_ONLY - Only prevents usage of illegals if possible handling: PREVENT_USE_ONLY # Prevents Hopper32k mechanic of placing a shulker containing illegals # on top of a hopper, then using the illegal out of the hoppers inventory. # WARNING: Hooks into InventoryMoveItemEvent, which can become VERY resource # intense as the event fires for every single item getting moved by the # hopper. Enable only if you need to. prevent-hopper32k-mechanic: false check-on-chunkload: # WARNING: CHECKING ON CHUNKLOAD IS NOT RECOMMENDED AS IT IS VERY RESOURCE INTENSE. # BE VERY SURE YOU ACTUALLY NEED THIS. # Iterates over all blocks in a chunk when it is loaded and checks any inventories # for illegals. If a container with illegals is found, it will be REMOVED. enable: false # If set to true, immediately replaces the container with air. Otherwise, will try # to handle items separately. remove-container: false item-whitelist-enabled: false use-as-blacklist-instead: true check-stored-items: false whitelisted-items: - TOTEM_OF_UNDYING ban-player-heads: # Bypass permission: aef.bypass.illegal.playerhead # Deletes or prevents usage of player heads. enable: false # Available options: # STRICT - Deletes or reverts illegals even on chest open # ACTION_ON_USE - Deletes or reverts illegals when interacted with # PREVENT_USE_ONLY - Only prevents usage of illegals if possible handling: PREVENT_USE_ONLY # Prevents Hopper32k mechanic of placing a shulker containing illegals # on top of a hopper, then using the illegal out of the hoppers inventory. # WARNING: Hooks into InventoryMoveItemEvent, which can become VERY resource # intense as the event fires for every single item getting moved by the # hopper. Enable only if you need to. prevent-hopper32k-mechanic: false check-on-chunkload: # WARNING: CHECKING ON CHUNKLOAD IS NOT RECOMMENDED AS IT IS VERY RESOURCE INTENSE. # BE VERY SURE YOU ACTUALLY NEED THIS. # Iterates over all blocks in a chunk when it is loaded and checks any inventories # for illegals. If a container with illegals is found, it will be REMOVED. enable: false # If set to true, immediately replaces the container with air. Otherwise, will try # to handle items separately. remove-container: false # Will delete shulker/bundle if they contain any player heads. check-stored-items: false ban-specific-materials: # Bypass permission: aef.bypass.illegal.bannedmaterial # Prevents usage of or deletes items with material that you do not want # your players to be able to use. # Useful if your players have blocks that shouldn't be obtainable in survival. enable: false # Available options: # STRICT - Deletes or reverts illegals even on chest open # ACTION_ON_USE - Deletes or reverts illegals when interacted with # PREVENT_USE_ONLY - Only prevents usage of illegals if possible handling: PREVENT_USE_ONLY # Prevents Hopper32k mechanic of placing a shulker containing illegals # on top of a hopper, then using the illegal out of the hoppers inventory. # WARNING: Hooks into InventoryMoveItemEvent, which can become VERY resource # intense as the event fires for every single item getting moved by the # hopper. Enable only if you need to. prevent-hopper32k-mechanic: false check-on-chunkload: # WARNING: CHECKING ON CHUNKLOAD IS NOT RECOMMENDED AS IT IS VERY RESOURCE INTENSE. # BE VERY SURE YOU ACTUALLY NEED THIS. # Iterates over all blocks in a chunk when it is loaded and checks any inventories # for illegals. If a container with illegals is found, it will be REMOVED. enable: false # If set to true, immediately replaces the container with air. Otherwise, will try # to handle items separately. remove-container: false check-stored-items: false banned-materials: - CHAIN_COMMAND_BLOCK - COMMAND_BLOCK - COMMAND_BLOCK_MINECART - REPEATING_COMMAND_BLOCK - BEDROCK - BARRIER - STRUCTURE_BLOCK - STRUCTURE_VOID - END_PORTAL_FRAME - END_PORTAL - NETHER_PORTAL - LIGHT revert-unbreakables: # Bypass permission: aef.bypass.illegal.unbreakable # Deletes and prevents usage of unbreakable items. # This can be anything from items with illegal damage attributes to # Metadata/NBT tags. # Note: Due to the limitations of the API, we can only fully prevent # usage of these items by deleting them. enable: false # Available options: # STRICT - Deletes or reverts illegals even on chest open # ACTION_ON_USE - Deletes or reverts illegals when interacted with # PREVENT_USE_ONLY - Only prevents usage of illegals if possible handling: PREVENT_USE_ONLY # Prevents Hopper32k mechanic of placing a shulker containing illegals # on top of a hopper, then using the illegal out of the hoppers inventory. # WARNING: Hooks into InventoryMoveItemEvent, which can become VERY resource # intense as the event fires for every single item getting moved by the # hopper. Enable only if you need to. prevent-hopper32k-mechanic: false check-on-chunkload: # WARNING: CHECKING ON CHUNKLOAD IS NOT RECOMMENDED AS IT IS VERY RESOURCE INTENSE. # BE VERY SURE YOU ACTUALLY NEED THIS. # Iterates over all blocks in a chunk when it is loaded and checks any inventories # for illegals. If a container with illegals is found, it will be REMOVED. enable: false # If set to true, immediately replaces the container with air. Otherwise, will try # to handle items separately. remove-container: false item-whitelist-enabled: false use-as-blacklist-instead: false # Will delete shulkers and bundles if they contain unbreakables. check-stored-items: false whitelisted-items: - DIAMOND_CHESTPLATE ban-spawn-eggs: # Bypass permission: aef.bypass.illegal.spawnegg # Deletes or prevents usage of spawn eggs. enable: false # Available options: # STRICT - Deletes or reverts illegals even on chest open # ACTION_ON_USE - Deletes or reverts illegals when interacted with # PREVENT_USE_ONLY - Only prevents usage of illegals if possible handling: PREVENT_USE_ONLY # Prevents Hopper32k mechanic of placing a shulker containing illegals # on top of a hopper, then using the illegal out of the hoppers inventory. # WARNING: Hooks into InventoryMoveItemEvent, which can become VERY resource # intense as the event fires for every single item getting moved by the # hopper. Enable only if you need to. prevent-hopper32k-mechanic: false check-on-chunkload: # WARNING: CHECKING ON CHUNKLOAD IS NOT RECOMMENDED AS IT IS VERY RESOURCE INTENSE. # BE VERY SURE YOU ACTUALLY NEED THIS. # Iterates over all blocks in a chunk when it is loaded and checks any inventories # for illegals. If a container with illegals is found, it will be REMOVED. enable: false # If set to true, immediately replaces the container with air. Otherwise, will try # to handle items separately. remove-container: false # If remove-spawn-eggs is set to true Will delete shulker/bundle # should they contain any spawneggs. check-stored-items: false whitelisted-items: - VILLAGER_SPAWN_EGG ###################### # Dupe Preventions # ###################### dupe-preventions: # Prevent any possible dupes involving chested entities by making # it impossible to put a chest on them. # Only do this if you have reason to believe a dupe like that exists # on your server. prevent-chests-on-living-entities: false # Closes open inventories of all entities that are in a chunk # that will be unloaded. close-entity-inventories-on-chunk-unload: false # Prevents entities that can carry chests from using portals to # block some common dupe tactics. # CAUTION: Will remove chests and their contents from a chested # entity if it touches a portal on Folia! prevent-chested-living-entities-in-portals: false # Closes open inventories of entities that disappeared when the # player riding it disconnects. close-entity-inventories-on-player-disconnect: false ################# # Preventions # ################# preventions: withers: disable-wither-spawning-at-spawn: # Disables spawning withers near a configurable radius around # spawn. Helps if players are generating endless amounts of withers # to lag the server. enable: false inform-players: true worlds: world: 5000 world_the_end: 5000 world_nether: 5000 remove-flying-wither-skulls: # Removes wither skulls when the chunk gets unloaded. # Use if you have a ton of them at spawn and they are causing lag. on-chunk-unload: false # Removes wither skulls when the chunk gets loaded. # Use if you have a ton of them at spawn and they are causing lag. on-chunk-load: true periodically-remove-all-flying-skulls: # Enable if a lot of wither skulls at spawn are causing lag. enable: false check-period-in-ticks: 80 # Prevents wither skulls from being shot. disable-withers-from-shooting-skulls: false rate-limit-wither-skulls: # This can help combat lag caused by a ton of wither skulls # spawning but weakens withers. enable: false # Cooldown until another skull can be shot at a player. player-target-cooldown-in-ticks: 20 # Cooldown until another skull can be shot at anything # else other than a player. other-target-cooldown-in-ticks: 40 # Cooldown when wither has no target. no-target-cooldown-in-ticks: 100 portals: prevent-specific-types: # Configure entities here that you suspect might be used in a dupe # with portals. # CAUTION: Will kill the entity on folia due to broken portal event. # There is sadly no other efficient way. enable: true # Defaults prevent common lag methods. entities: - DROPPED_ITEM - FIREWORK - PRIMED_TNT - THROWN_EXP_BOTTLE - EXPERIENCE_ORB - ARMOR_STAND # Only enable if you must. Does not affect players. # CAUTION: Will kill the entity on folia due to broken portal event. prevent-all-entities-in-portals: false prevent-destroying-end-portals: enable: true show-logs: true end: bedrock-protection-radius-blocks: 8 # Add block locations that should be protected as well. # Format: ::: # If you don't want to use this, just configure an empty list: # pillar-blocks: [] pillar-blocks: - world_the_end:143:140:-50 - world_the_end:112:90:-90 prevent-portal-traps: # Teleports a player back to the original location if they have been # standing in a portal for too long. enable: false wait-time-until-tp-back-in-seconds: 10 # Prevents a lag exploit. Might disable some chunk loader designs. prevent-projectiles-in-portals: false permanent-block-breaking: by-placing-piston-on-retract: enable: true whitelisted-worlds: - example_world_name by-exploding-pistons: enable: true whitelisted-worlds: - example_world_name # If enabled, will only protect portals and end gateways only-for-portals-and-gateways: false by-growing-structures: # Prevents removal of permanent blocks by growing structures # like mushrooms into them. enable: true prevent-opped-players: # Useful if you suspect a backdoor has happened. enable: false log: false whitelisted-players: - Notch prevent-nether-roof: # Prevent players from going above the nether roof. enable: true safely-teleport-players: true anti-bed-trap: # Resets a players bed respawn they die too many times within # a certain timeframe. enable: false # Amount of times player can die until he is determined as bed-trapped. max-deaths-per-time: 7 # "Time until death counter will be reset again. time-in-seconds: 5 log: false prevent-non-survival-players: # Checks if player is in survival and if not, puts him back into survival. # Useful if you had a backdoor incident. enable: false log: false whitelisted-players: - Notch ############ # Combat # ############ combat: anchor-aura-delay: enable: false # Can help with desync but recommended to leave off unless needed. update-inventory-on-cancel: false place-delay-in-ticks: 8 break-delay-in-ticks: -1 crystal-aura: hotbar-switch-delay: enable: false # Delay between switching from an end crystal to other items in hotbar delay-in-ticks: 2 # Only delay when switched to specific materials only-delay-specific-materials: true delayed-specific-materials: - BOW - DIAMOND_SWORD - DIAMOND_AXE - TRIDENT - GOLDEN_SWORD - GOLDEN_AXE - IRON_SWORD - IRON_AXE - STONE_SWORD - STONE_AXE - WOODEN_SWORD - WOODEN_AXE - BLACK_BED - BLUE_BED - BROWN_BED - CYAN_BED - GRAY_BED - GREEN_BED - LIGHT_BLUE_BED - LIGHT_GRAY_BED - LIME_BED - MAGENTA_BED - ORANGE_BED - PINK_BED - PURPLE_BED - RED_BED - WHITE_BED - YELLOW_BED - CROSSBOW - NETHERITE_SWORD - NETHERITE_AXE regular-delay: enable: false # Can help with desync but recommended to leave off unless needed. update-inventory-on-cancel: false # Set to -1 to disable. break-delay-in-ticks: 4 place-delay-in-ticks: -1 piston-aura-delay: # Rate-limits pistons that extend into crystals. enable: false piston-extend-delay-in-ticks: 40 prevent-bow-bomb: enable: false # Fully pulled bow is ~9-10. 15 is default just to be safe. max-bow-squared-velocity: 15 prevent-burrow: enable: false # 1.0 = Half a heart of damage every time you move. damage-when-moving: 1.0 teleport-above-block: true # Prevent burrow even if there is a block above the block they # are burrowing in. # Please note this may allow creating an "elevator", players will # keep teleporting up until they hit air. prevent-if-block-above-burrow: false break-anvil-instead-of-teleport: true # Needs to be enabled to prevent a bug where players are teleported # above a slab when the slab is underwater. allow-slabs-in-burrow: true bed-aura-delay: enable: false # Set to -1 to disable. break-delay-in-ticks: 5 place-delay-in-ticks: -1 ############# # Bedrock # ############# bedrock: fill-in-bedrock: overworld-floor: periodically-check-and-fill: # Only checks loaded chunks. enable: false check-period-in-seconds: 10 # Uses the exact name of the world's folder in your server directory. exempted-worlds: - exampleworld - exampleworld2 # Pauses the task during low tps to avoid lag. pause-on-low-tps: true # The TPS at which bedrock filling will pause to avoid adding to the lag. pause-tps: 16.0 fill-on-chunkload: enable: false # Recommended to leave off. Only useful if world generation is broken. also-check-new-chunks: false # Uses the exact name of the world's folder in your server directory. exempted-worlds: - exampleworld - exampleworld2 pause-on-low-tps: true # The TPS at which bedrock filling will pause to avoid adding to the lag. pause-tps: 16.0 nether-ceiling: periodically-check-and-fill: # Only checks loaded chunks. enable: false check-period-in-seconds: 10 # Uses the exact name of the world's folder in your server directory. exempted-worlds: - exampleworld - exampleworld2 pause-on-low-tps: true # The TPS at which bedrock filling will pause to avoid adding to the lag. pause-tps: 16.0 fill-on-chunkload: enable: false # Recommended to leave off. Only useful if world generation is broken. also-check-new-chunks: false # Uses the exact name of the world's folder in your server directory. exempted-worlds: - exampleworld - exampleworld2 pause-on-low-tps: true # The TPS at which bedrock filling will pause to avoid adding to the lag. pause-tps: 16.0 nether-floor: periodically-check-and-fill: # Only checks loaded chunks. enable: false check-period-in-seconds: 10 # Uses the exact name of the world's folder in your server directory. exempted-worlds: - exampleworld - exampleworld2 pause-on-low-tps: true # The TPS at which bedrock filling will pause to avoid adding to the lag. pause-tps: 16.0 fill-on-chunkload: enable: false # Recommended to leave off. Only useful if world generation is broken. also-check-new-chunks: false # Uses the exact name of the world's folder in your server directory. exempted-worlds: - exampleworld - exampleworld2 pause-on-low-tps: true # The TPS at which bedrock filling will pause to avoid adding to the lag. pause-tps: 16.0 prevent-going-below-bedrock-floor: # Prevents players from going below the bedrock floor. enable: true # Whether to make player leave their vehicle. leave-vehicle: true # Whether to close the player's elytra if they were flying. stop-elytra: true # Whether the bedrock hole should be filled or not. fill-bedrock-hole: true exempted-worlds: - world_the_end - skyblock_world filler-material: BEDROCK ```

Optimization Guide

You can find an optimization guide at the file GUIDE.md

Stars over time

Stargazers over time