Skip to content

Safety Configuration Reference (safety.yml)

This document provides a detailed reference for all configuration options available in plugins/RTP/safety.yml.


Updating Settings

You can update safety settings through: 1. In-game admin menu: Run /rtp admin or /rtp menu -> click Safety. 2. Command line: Use /rtp config safety <key>=<value> (e.g. /rtp config safety invulnerabilityTime=10). 3. Direct editing: Edit safety.yml on disk and run /rtp reload.

📎 See IN_GAME_CONFIG.md for full menu and command navigation details.


Landing Protection

Key Type Default Description
invulnerabilityTime Integer 5 Seconds of invulnerability granted after teleporting. Prevents fall, fire, or drowning damage on arrival.
safetyRadius Integer 0 Block radius around the landing point to check for hazards. 0 = check only the landing block.
staleChunkRetryLimit Integer 2 Bounded retry budget for the stale-chunk guard. Prevents race conditions where a chunk unloads before evaluation.
anvilPrefilterEnabled Boolean true Off-thread region prefilter: screens candidate destinations by reading region files (.mca Anvil format, plus any format an addon registers) from disk, dropping known-unsafe ones before they cost a chunk load. A chunk it cannot read (e.g. not yet generated, or stored in an unregistered format such as .linear) is not rejected - it passes through to the normal live-load safety check.

Landing Platforms

Used as a legacy fallback if no solid ground is found.

Key Type Default Description
platformRadius Integer -1 Radius of the emergency platform. Set to -1 to disable (recommended).
platformDepth Integer 1 Depth (downward) of the platform.
platformAirHeight Integer 2 Height of air to ensure above the platform.
platformMaterial String GLASS Block type used if no solid block exists.
platformRestoreSeconds Integer -1 Optional timeout after which a built platform's footprint is restored to its original blocks. -1 disables restoration (permanent platform). 0 restores as soon as the footprint chunk is loaded again; a positive value restores after that many seconds. The countdown only advances while the footprint chunk is loaded (it pauses while the area is unloaded), and pending restores survive a server restart.

Note on platformRestoreSeconds. Restoration writes the captured original blocks back; every restore (and any failure) is logged, never silently dropped. Available on the Bukkit/Spigot/Paper and Folia platforms; the Fabric platform does not build emergency platforms, so the timeout has no effect there. Because the platform is only ever built on land the safety pipeline already cleared of claims, the footprint starts in unclaimed terrain; if you expect players to build on top of the temporary platform before it expires, leave restoration disabled (-1).


PvP / Combat Checks

Configure whether players can teleport while in combat.

Key Type Default Description
pvpCheckEnabled Boolean false When true, checks if a player is in combat before teleporting.
pvpCombatTagSeconds Integer 15 Duration (seconds) a player remains in combat after a PvP hit (built-in tracker).
pvpOnCombat Enum "DENY" Action taken when a player in combat attempts /rtp. Options: ALLOW, DENY, DELAY, CANCEL.
pvpSource Enum "AUTO" Source for combat state. Options: AUTO (external plugin if present, else native), NATIVE (built-in tracker only), EXTERNAL (plugin hook only).
pvpTagVictim Boolean true Built-in tracker: tag the player taking damage.
pvpTagAggressor Boolean true Built-in tracker: tag the attacking player.

Block Filters (advanced/blocks.yml)

Block filter settings are configured in advanced/blocks.yml.

The airBlocks and unsafeBlocks lists use a specific grammar to match blocks and properties.

Editions. The full grammar below, including block tags and block-state predicates, works identically in the free and Pro builds. Tags resolve against the server's live block-tag registry when the config loads.

Grammar (Token Syntax)

  • MATERIAL — Plain material (e.g., LAVA).
  • MATERIAL[prop=val,prop2=val2] — Match only when block-state properties match (string equality).
  • MATERIAL[prop>=n] — Match only when a numeric block-state property satisfies a range comparison. Operators: >=, <=, >, <. The bound n must be a whole number (e.g., LAVA[level<=3] for near-source lava, FIRE[age>=10]).
  • #namespace:tag — Expands to every material in that block tag (e.g., #minecraft:logs).
  • #namespace:tag[prop=val] — Tag members only when properties match.
  • *[prop=val] — ANY material when properties match (wildcard, e.g., *[waterlogged=true]).

Predicate notes

  • Multiple predicates inside one [ ... ] combine with logical AND (e.g., WATER[falling=true,level>=5]).
  • Two range bounds on the same key form an interval, e.g., LAVA[level>=2,level<=5].
  • Equality (=) compares values as case-insensitive strings; the range operators parse both sides as integers. A live block whose property is absent or non-numeric is treated as a miss (fail-open) - it is never rejected by a predicate it cannot satisfy.
  • Malformed tokens (non-integer bound, empty value, duplicate key+operator, unbalanced brackets) are dropped at load with a single startup WARNING and never silently ignored.

airBlocks

Materials treated as walkable / non-blocking space above the landing. - Includes: AIR, VOID_AIR, #minecraft:flowers, #minecraft:saplings, #minecraft:crops, #minecraft:leaves (to allow landing beneath canopies), etc.

unsafeBlocks

Materials the plugin will reject as a landing target. - Includes: LAVA, WATER, *[waterlogged=true], MAGMA_BLOCK, CACTUS, #minecraft:logs (to prevent landing on top of trees), etc.


Biome Filters (advanced/biomes.yml)

Biome whitelist/blacklist settings are configured in advanced/biomes.yml.

Key Type Default Description
biomeWhitelist Boolean false If true, the biomes list is a whitelist. If false, it is a blacklist.
biomeWeighted Boolean false If true, enables weighted biome selection.
biomes List (Ocean, etc.) Biomes to skip or allow. Default blacklist excludes oceans, rivers, and void biomes.

Versioning

  • version: Internal config version (do not change).