Overview
What is tickforge-world-defaults.yml?
tickforge-world-defaults.yml contains the default world-level settings that apply to every world on your server. Individual worlds can override any of these values by editing the paper-world.yml file inside that world's folder.
ℹ️
Per-World Overrides
To override a setting for a single world, copy the key into
<world-folder>/paper-world.yml. Any key not present in a per-world file inherits the default from this file.
File Location
Where to find this file
The file lives inside the config/ directory that TickForge creates in your server root.
FILE PATH
<server-root>/config/tickforge-world-defaults.yml
✅
Migrating from Paper?
If you previously used
paper-world-defaults.yml, TickForge automatically migrates compatible keys on first launch. A backup of your original file is saved to
config/legacy-backup/.
Anticheat
anticheat
Anti-xray engine settings. Hides ore distribution from x-ray clients.
anti-xray
| Key | Type | Default | Description |
| enabled | boolean | false | Enable the anti-xray engine. |
| engine-mode | enum | HIDE | Anti-xray engine mode. HIDE replaces ores with stone client-side. OBFUSCATE replaces all hidden blocks with random ores. |
| max-block-height | int | 64 | Maximum Y level to apply anti-xray. Ores above this are sent normally. |
| update-radius | int | 2 | Radius of blocks to update when a block is broken, revealing hidden ores nearby. |
| lava-obscures | boolean | false | Treat lava as an opaque block for anti-xray purposes. |
| use-permission | boolean | false | Only apply anti-xray to players without the bypass permission. |
| hidden-blocks | list | ore blocks | Blocks to hide from x-ray clients. Defaults include all ores, chests, and spawners. |
| replacement-blocks | list | stone, planks, deepslate | Blocks used to replace hidden blocks in OBFUSCATE mode. |
YAML
anticheat:
anti-xray:
enabled: false
engine-mode: HIDE
max-block-height: 64
update-radius: 2
lava-obscures: false
use-permission: false
Chunks
chunks
Chunk saving, unloading, and entity save limits.
| Key | Type | Default | Description |
| auto-save-interval | duration | default | Interval between auto-saves. Uses the server default if unset. |
| max-auto-save-chunks-per-tick | int | 24 | Maximum chunks saved per tick during auto-save. Lower values spread I/O over more ticks. |
| fixed-chunk-inhabited-time | int | -1 | Override chunk inhabited time with a fixed value. -1 to use actual time. |
| prevent-moving-into-unloaded-chunks | boolean | false | Prevent players from entering unloaded chunks (teleports them back). |
| delay-chunk-unloads-by | duration | 10s | Keep chunks loaded for this duration after the last player leaves. Reduces reload churn. |
| flush-regions-on-save | boolean | false | Flush region files to disk on save. Safer but slower. |
YAML
chunks:
auto-save-interval: default
max-auto-save-chunks-per-tick: 24
fixed-chunk-inhabited-time: -1
prevent-moving-into-unloaded-chunks: false
delay-chunk-unloads-by: 10s
flush-regions-on-save: false
Collisions
collisions
Entity collision behavior and cramming rules.
| Key | Type | Default | Description |
| only-players-collide | boolean | false | Only process collisions involving at least one player. |
| allow-vehicle-collisions | boolean | true | Allow vehicles (boats, minecarts) to collide with entities. |
| fix-climbing-bypassing-cramming-rule | boolean | false | Fix entities bypassing the cramming limit while climbing. |
| max-entity-collisions | int | 8 | Maximum number of collisions processed per entity per tick. |
| allow-player-cramming-damage | boolean | false | Allow players to take damage from entity cramming. |
YAML
collisions:
only-players-collide: false
allow-vehicle-collisions: true
fix-climbing-bypassing-cramming-rule: false
max-entity-collisions: 8
allow-player-cramming-damage: false
Command Blocks
command-blocks
Permission and execution settings for command blocks.
| Key | Type | Default | Description |
| permissions-level | int | 2 | Op permission level command blocks execute with. |
| force-follow-perm-level | boolean | true | Force command blocks to respect the configured permission level. |
YAML
command-blocks:
permissions-level: 2
force-follow-perm-level: true
Entities
entities
The largest section, covering mob effects, armor stands, spawning, behavior, and tracking ranges.
mob-effects
| Key | Type | Default | Description |
| spiders-immune-to-poison-effect | boolean | true | Spiders are immune to the poison effect. |
| immune-to-wither-effect.wither | boolean | true | Wither boss is immune to the wither effect. |
| immune-to-wither-effect.wither-skeleton | boolean | true | Wither skeletons are immune to the wither effect. |
armor-stands
| Key | Type | Default | Description |
| do-collision-entity-lookups | boolean | true | Armor stands check for entity collisions. |
| tick | boolean | true | Armor stands are ticked each server tick. Disable to save CPU on servers with many armor stands. |
spawning
| Key | Type | Default | Description |
| per-player-mob-spawns | boolean | true | Use per-player mob spawn counts instead of global counts. |
| despawn-range-shape | enum | ELLIPSOID | Shape used for despawn range checks. ELLIPSOID or CYLINDER. |
| all-chunks-are-slime-chunks | boolean | false | Make every chunk a slime chunk. |
| iron-golems-can-spawn-in-air | boolean | false | Allow iron golems to spawn in air blocks. |
| count-all-mobs-for-spawning | boolean | false | Count all mobs toward the spawn cap, not just naturally spawned ones. |
| filter-bad-tile-entity-nbt-from-falling-blocks | boolean | true | Strip dangerous NBT from falling block entities to prevent exploits. |
| disable-mob-spawner-spawn-egg-transformation | boolean | false | Prevent spawn eggs from changing the mob type of spawners. |
| scan-for-legacy-ender-dragon | boolean | true | Scan for legacy ender dragon fight data on world load. |
spawning.duplicate-uuid
| Key | Type | Default | Description |
| mode | enum | SAFE_REGEN | How to handle duplicate entity UUIDs. SAFE_REGEN, DELETE, NOTHING, or WARN. |
| safe-regen-delete-range | int | 32 | Range in blocks to search for duplicate entities when using SAFE_REGEN. |
spawning.wandering-trader
| Key | Type | Default | Description |
| spawn-minute-length | int | 1200 | Length of a "minute" in ticks for wandering trader spawn logic. |
| spawn-chance-failure-increment | int | 25 | How much the spawn chance increases per failed attempt. |
| spawn-chance-min | int | 25 | Minimum spawn chance (percentage). |
| spawn-chance-max | int | 75 | Maximum spawn chance (percentage). |
behavior
| Key | Type | Default | Description |
| disable-chest-cat-detection | boolean | false | Disable the check for cats sitting on chests (allows opening blocked chests). |
| spawner-nerfed-mobs-should-jump | boolean | false | Allow nerfed spawner mobs to still jump. |
| experience-merge-max-value | int | -1 | Maximum XP value for merged orbs. -1 for unlimited. |
| should-remove-dragon | boolean | false | Remove the ender dragon on world load if true. |
| zombies-target-turtle-eggs | boolean | true | Zombies pathfind to and trample turtle eggs. |
| piglins-guard-chests | boolean | true | Piglins become hostile when players open containers. |
| baby-zombie-movement-modifier | double | 0.5 | Speed modifier for baby zombies (0.5 = 50% faster than adults). |
| disable-creeper-lingering-effect | boolean | false | Disable the lingering potion effect from charged creeper explosions. |
| ender-dragons-death-always-places-dragon-egg | boolean | false | Always place a dragon egg on ender dragon death (not just the first kill). |
| phantoms-do-not-spawn-on-creative-players | boolean | true | Prevent phantom spawns from counting creative players. |
| phantoms-only-attack-insomniacs | boolean | true | Phantoms only target players who haven't slept. |
| player-insomnia-start-ticks | int | 72000 | Ticks since last sleep before phantoms begin targeting a player. |
| phantoms-spawn-attempt-min-seconds | int | 60 | Minimum seconds between phantom spawn attempts. |
| phantoms-spawn-attempt-max-seconds | int | 119 | Maximum seconds between phantom spawn attempts. |
| parrots-are-unaffected-by-player-movement | boolean | false | Prevent parrots from dismounting when a player moves. |
| disable-player-crits | boolean | false | Disable critical hits for players. |
| nerf-pigmen-from-nether-portals | boolean | false | Nerf zombified piglins that spawn from nether portals. |
| only-merge-items-horizontally | boolean | false | Only merge items on the same Y level, preventing visual artifacts. |
behavior.pillager-patrols
| Key | Type | Default | Description |
| disable | boolean | false | Disable pillager patrols entirely. |
| spawn-chance | double | 0.2 | Chance of a patrol spawning each cycle. |
| spawn-delay.per-player | boolean | false | Use per-player patrol spawn delay. |
| spawn-delay.ticks | int | 12000 | Ticks between patrol spawn attempts. |
| start.per-player | boolean | false | Track patrol start day per player. |
| start.day | int | 5 | In-game day when patrols start spawning. |
tracking-range-y
| Key | Type | Default | Description |
| enabled | boolean | false | Enable vertical tracking range limits (reduces entity packets in tall builds). |
| player | int | default | Vertical tracking range for players. |
| animal | int | default | Vertical tracking range for animals. |
| monster | int | default | Vertical tracking range for monsters. |
| misc | int | default | Vertical tracking range for misc entities. |
| display | int | default | Vertical tracking range for display entities. |
| other | int | default | Vertical tracking range for all other entities. |
Environment
environment
Weather, explosions, portals, void damage, and world generation behavior.
| Key | Type | Default | Description |
| disable-thunder | boolean | false | Disable thunderstorms. |
| disable-ice-and-snow | boolean | false | Disable ice formation and snowfall. |
| optimize-explosions | boolean | false | Cache explosion block lookups. Faster but slightly changes blast patterns. |
| disable-explosion-knockback | boolean | false | Disable knockback from explosions. |
| generate-flat-bedrock | boolean | false | Generate a single flat layer of bedrock instead of the default jagged pattern. |
| void-damage-amount | double | 4.0 | Damage dealt per tick when an entity is in the void. Set to disabled to turn off. |
| void-damage-min-build-height-offset | double | -64.0 | Offset below min build height where void damage begins. |
| fire-tick-delay | int | 30 | Ticks between fire spread attempts. |
| water-over-lava-flow-speed | int | 5 | How quickly water flows over lava (lower = faster). |
| portal-search-radius | int | 128 | Radius to search for an existing portal when entering the nether. |
| portal-create-radius | int | 16 | Radius to search for valid portal placement location. |
| portal-search-vanilla-dimension-scaling | boolean | true | Apply vanilla 1:8 dimension scaling to portal search. |
| nether-ceiling-void-damage-height | int | disabled | Y level above which void damage is dealt in the nether. Prevents nether roof access. |
| max-fluid-ticks | int | 65536 | Maximum pending fluid tick updates per world. |
| max-block-ticks | int | 65536 | Maximum pending block tick updates per world. |
| locate-structures-outside-world-border | boolean | false | Allow /locate to find structures outside the world border. |
environment.treasure-maps
| Key | Type | Default | Description |
| enabled | boolean | true | Enable treasure map functionality. |
| find-already-discovered.villager-trade | boolean | false | Villager-traded maps can point to already-discovered structures. |
| find-already-discovered.loot-tables | boolean | default | Loot table maps can point to already-discovered structures. |
environment.frosted-ice
| Key | Type | Default | Description |
| enabled | boolean | true | Enable frosted ice from Frost Walker enchantment. |
| delay.min | int | 20 | Minimum ticks before frosted ice starts melting. |
| delay.max | int | 40 | Maximum ticks before frosted ice starts melting. |
Fishing
fishing-time-range
Controls how long players wait for a fish to bite.
| Key | Type | Default | Description |
| minimum | int | 100 | Minimum ticks before a fish bites. |
| maximum | int | 600 | Maximum ticks before a fish bites. |
YAML
fishing-time-range:
minimum: 100
maximum: 600
Fixes
fixes
Bug fixes and exploit patches that can be toggled.
| Key | Type | Default | Description |
| fix-items-merging-through-walls | boolean | false | Prevent items from merging through solid blocks. |
| disable-unloaded-chunk-enderpearl-exploit | boolean | false | Prevent ender pearls from traveling through unloaded chunks. |
| prevent-tnt-from-moving-in-water | boolean | false | Prevent primed TNT from being pushed by water. |
| split-overstacked-loot | boolean | true | Split loot table results that exceed max stack size into multiple stacks. |
| falling-block-height-nerf | int | disabled | Remove falling blocks above this Y level. Prevents lag machines. |
| tnt-entity-height-nerf | int | disabled | Remove TNT entities above this Y level. Prevents lag machines. |
YAML
fixes:
fix-items-merging-through-walls: false
disable-unloaded-chunk-enderpearl-exploit: false
prevent-tnt-from-moving-in-water: false
split-overstacked-loot: true
falling-block-height-nerf: disabled
tnt-entity-height-nerf: disabled
Hopper
hopper
Hopper performance and behavior tweaks.
| Key | Type | Default | Description |
| cooldown-when-full | boolean | true | Apply a transfer cooldown when a hopper is full. Significant performance improvement. |
| disable-move-event | boolean | false | Disable the InventoryMoveItemEvent for hoppers. Major performance gain but breaks some plugins. |
| ignore-occluding-blocks | boolean | false | Allow hoppers to pull items through solid blocks. |
YAML
hopper:
cooldown-when-full: true
disable-move-event: false
ignore-occluding-blocks: false
Lootables
lootables
Loot table replenishment for naturally generated containers.
| Key | Type | Default | Description |
| auto-replenish | boolean | false | Automatically refill loot containers after they've been looted. |
| restrict-player-reloot | boolean | true | Prevent the same player from re-looting a container before it refills. |
| reset-seed-on-fill | boolean | true | Randomize loot table seed when refilling so loot varies each time. |
| max-refills | int | -1 | Maximum times a container can be refilled. -1 for unlimited. |
| refresh-min | duration | 12h | Minimum time before a container can be refilled. |
| refresh-max | duration | 2d | Maximum time before a container is guaranteed to refill. |
YAML
lootables:
auto-replenish: false
restrict-player-reloot: true
reset-seed-on-fill: true
max-refills: -1
refresh-min: 12h
refresh-max: 2d
Maps
maps
Map rendering and item frame display settings.
| Key | Type | Default | Description |
| item-frame-cursor-limit | int | 128 | Maximum map cursors rendered per item frame. Lower values reduce bandwidth. |
| item-frame-cursor-update-interval | int | 10 | Ticks between map cursor updates in item frames. |
YAML
maps:
item-frame-cursor-limit: 128
item-frame-cursor-update-interval: 10
Growth
max-growth-height
Maximum growth heights for plants.
| Key | Type | Default | Description |
| cactus | int | 3 | Maximum height a cactus can grow. |
| reeds | int | 3 | Maximum height sugar cane can grow. |
| bamboo.max | int | 16 | Maximum bamboo growth height. |
| bamboo.min | int | 11 | Minimum bamboo growth height before it can stop growing. |
YAML
max-growth-height:
cactus: 3
reeds: 3
bamboo:
max: 16
min: 11
Miscellaneous
misc
Redstone implementation, pathfinding, and miscellaneous gameplay tweaks.
| Key | Type | Default | Description |
| redstone-implementation | enum | VANILLA | Redstone engine. VANILLA, EIGENCRAFT (optimized, same behavior), or ALTERNATE_CURRENT (fastest, minor differences). |
| update-pathfinding-on-block-update | boolean | true | Recalculate mob pathfinding when blocks change. Disable for performance at the cost of AI accuracy. |
| disable-end-credits | boolean | false | Skip the end credits sequence when entering the end portal. |
| disable-sprint-interruption-on-attack | boolean | false | Prevent sprinting from being cancelled when the player is attacked. |
| disable-relative-projectile-velocity | boolean | false | Projectiles ignore the shooter's velocity (always fire at base speed). |
| legacy-ender-pearl-behavior | boolean | false | Use pre-1.21.2 ender pearl behavior (pearls despawn on logout). |
| allow-remote-ender-dragon-respawning | boolean | false | Allow respawning the ender dragon from outside The End. |
| show-sign-click-command-failure-msgs-to-player | boolean | false | Show command failure messages when a player clicks a sign with a command. |
YAML
misc:
redstone-implementation: VANILLA
update-pathfinding-on-block-update: true
disable-end-credits: false
disable-sprint-interruption-on-attack: false
disable-relative-projectile-velocity: false
legacy-ender-pearl-behavior: false
allow-remote-ender-dragon-respawning: false
Scoreboards
scoreboards
Scoreboard entity tracking and display settings.
| Key | Type | Default | Description |
| allow-non-player-entities-on-scoreboards | boolean | true | Allow non-player entities to appear on scoreboards. |
| use-vanilla-world-scoreboard-name-coloring | boolean | false | Use vanilla team color for scoreboard display names. |
YAML
scoreboards:
allow-non-player-entities-on-scoreboards: true
use-vanilla-world-scoreboard-name-coloring: false
Spawn
spawn
World spawn protection behavior.
| Key | Type | Default | Description |
| allow-using-signs-inside-spawn-protection | boolean | false | Allow players to interact with signs inside the spawn protection area. |
YAML
spawn:
allow-using-signs-inside-spawn-protection: false
Tick Rates
tick-rates
Override how often specific game mechanics are processed.
| Key | Type | Default | Description |
| grass-spread | int | 1 | Ticks between grass spread attempts. Higher values slow grass growth. |
| container-update | int | 1 | Ticks between container inventory sync updates. |
| mob-spawner | int | 1 | Ticks between mob spawner activation checks. |
| wet-farmland | int | 1 | Ticks between wet farmland moisture checks. |
| dry-farmland | int | 1 | Ticks between dry farmland dehydration checks. |
✅
Sensor & Behavior Overrides
You can also override individual entity sensor and behavior tick rates using the
sensor and
behavior maps. For example, Villager
secondarypoisensor defaults to
40.
YAML
tick-rates:
grass-spread: 1
container-update: 1
mob-spawner: 1
wet-farmland: 1
dry-farmland: 1
sensor:
villager:
secondarypoisensor: 40
behavior:
villager:
validatenearbypoi: -1
Unsupported
unsupported-settings
Experimental or unsupported options. Use at your own risk.
⛔
No Support Provided
These settings are not officially supported. They may cause unexpected behavior, data loss, or instability. Do not use them unless you fully understand what they do.
| Key | Type | Default | Description |
| fix-invulnerable-end-crystal-exploit | boolean | true | Fix the invulnerable end crystal exploit. |
| disable-world-ticking-when-empty | boolean | false | Stop ticking worlds that have no players in them. May break time-dependent mechanics. |
YAML
unsupported-settings:
fix-invulnerable-end-crystal-exploit: true
disable-world-ticking-when-empty: false
Reference
Full Default File
Below is the complete tickforge-world-defaults.yml as generated on first launch with all defaults.
⚠️
Don't Copy-Paste Blindly
Only override keys you understand. Most defaults are tuned for vanilla-accurate behavior. Changing values without understanding their impact can cause gameplay issues or instability.
TICKFORGE-WORLD-DEFAULTS.YML
Click to copy
# TickForge World Defaults Configuration
# https://tickforge.dev/wiki/configuration/tickforge-world-defaults
anticheat:
anti-xray:
enabled: false
engine-mode: HIDE
max-block-height: 64
update-radius: 2
lava-obscures: false
use-permission: false
chunks:
auto-save-interval: default
max-auto-save-chunks-per-tick: 24
fixed-chunk-inhabited-time: -1
prevent-moving-into-unloaded-chunks: false
delay-chunk-unloads-by: 10s
flush-regions-on-save: false
collisions:
only-players-collide: false
allow-vehicle-collisions: true
fix-climbing-bypassing-cramming-rule: false
max-entity-collisions: 8
allow-player-cramming-damage: false
command-blocks:
permissions-level: 2
force-follow-perm-level: true
entities:
mob-effects:
spiders-immune-to-poison-effect: true
immune-to-wither-effect:
wither: true
wither-skeleton: true
armor-stands:
do-collision-entity-lookups: true
tick: true
markers:
tick: true
spawning:
per-player-mob-spawns: true
despawn-range-shape: ELLIPSOID
all-chunks-are-slime-chunks: false
iron-golems-can-spawn-in-air: false
count-all-mobs-for-spawning: false
filter-bad-tile-entity-nbt-from-falling-blocks: true
disable-mob-spawner-spawn-egg-transformation: false
scan-for-legacy-ender-dragon: true
duplicate-uuid:
mode: SAFE_REGEN
safe-regen-delete-range: 32
wandering-trader:
spawn-minute-length: 1200
spawn-chance-failure-increment: 25
spawn-chance-min: 25
spawn-chance-max: 75
alt-item-despawn-rate:
enabled: false
behavior:
disable-chest-cat-detection: false
spawner-nerfed-mobs-should-jump: false
experience-merge-max-value: -1
should-remove-dragon: false
zombies-target-turtle-eggs: true
piglins-guard-chests: true
baby-zombie-movement-modifier: 0.5
disable-creeper-lingering-effect: false
ender-dragons-death-always-places-dragon-egg: false
phantoms-do-not-spawn-on-creative-players: true
phantoms-only-attack-insomniacs: true
player-insomnia-start-ticks: 72000
phantoms-spawn-attempt-min-seconds: 60
phantoms-spawn-attempt-max-seconds: 119
parrots-are-unaffected-by-player-movement: false
disable-player-crits: false
nerf-pigmen-from-nether-portals: false
only-merge-items-horizontally: false
pillager-patrols:
disable: false
spawn-chance: 0.2
spawn-delay:
per-player: false
ticks: 12000
start:
per-player: false
day: 5
tracking-range-y:
enabled: false
environment:
disable-thunder: false
disable-ice-and-snow: false
optimize-explosions: false
disable-explosion-knockback: false
generate-flat-bedrock: false
void-damage-amount: 4.0
void-damage-min-build-height-offset: -64.0
fire-tick-delay: 30
water-over-lava-flow-speed: 5
portal-search-radius: 128
portal-create-radius: 16
portal-search-vanilla-dimension-scaling: true
nether-ceiling-void-damage-height: disabled
max-fluid-ticks: 65536
max-block-ticks: 65536
locate-structures-outside-world-border: false
treasure-maps:
enabled: true
find-already-discovered:
villager-trade: false
loot-tables: default
frosted-ice:
enabled: true
delay:
min: 20
max: 40
fishing-time-range:
minimum: 100
maximum: 600
fixes:
fix-items-merging-through-walls: false
disable-unloaded-chunk-enderpearl-exploit: false
prevent-tnt-from-moving-in-water: false
split-overstacked-loot: true
falling-block-height-nerf: disabled
tnt-entity-height-nerf: disabled
hopper:
cooldown-when-full: true
disable-move-event: false
ignore-occluding-blocks: false
lootables:
auto-replenish: false
restrict-player-reloot: true
reset-seed-on-fill: true
max-refills: -1
refresh-min: 12h
refresh-max: 2d
maps:
item-frame-cursor-limit: 128
item-frame-cursor-update-interval: 10
max-growth-height:
cactus: 3
reeds: 3
bamboo:
max: 16
min: 11
misc:
redstone-implementation: VANILLA
update-pathfinding-on-block-update: true
disable-end-credits: false
disable-sprint-interruption-on-attack: false
disable-relative-projectile-velocity: false
legacy-ender-pearl-behavior: false
allow-remote-ender-dragon-respawning: false
scoreboards:
allow-non-player-entities-on-scoreboards: true
use-vanilla-world-scoreboard-name-coloring: false
spawn:
allow-using-signs-inside-spawn-protection: false
tick-rates:
grass-spread: 1
container-update: 1
mob-spawner: 1
wet-farmland: 1
dry-farmland: 1
sensor:
villager:
secondarypoisensor: 40
behavior:
villager:
validatenearbypoi: -1
unsupported-settings:
fix-invulnerable-end-crystal-exploit: true
disable-world-ticking-when-empty: false
Download
Download Default Config
Grab the full default tickforge-world-defaults.yml file to use as a starting point or reference.