Skip to content

Diagnostics

BetterSpawn Dev edited this page Oct 24, 2026 · 3 revisions

Diagnostics

Diagnostic logs

Diagnostic logs are off by default. Enable them in config/betterspawn-common.toml:

[debug]
    enableDiagnosticLogs = true

When enabled, selected messages are logged at INFO with a [diag] prefix:

  • respawn chain decisions (command/bed/anchor, personal spawn, world spawn, unsafe fallback)
  • personal world spawn writes
  • final respawn target
  • initial spawn-dimension teleport
  • gotodim result
  • verify result
  • recorded command/bed/anchor slots
  • create-world screen MoreTab injection

Restart after changing the setting.

/gotodim

/gotodim resolves a dimension's template without persisting the result.

/gotodim [simulate|teleport|verify] [--method <id>] [--params <json>]
         [--seed <n>] [--repeat <n>] [--timeout <ticks>] [--verbose] [--all]
         [<dimension>]

If the template sets allow_position_overwrite: true in parameters, the probe position comes from the dimension's current global spawn: level.dat for the Overworld, WorldSpawnData for other dimensions. After /betterspawn worldspawn global, the next gotodim run uses the new position immediately. Without the flag the template position is used. Either way, position keys in --params override it for a single test.

Modes:

  • simulate: print the result only; default and permission 0.
  • teleport: teleport the executing player; permission 2.
  • verify: teleport, wait about 3 seconds, then check:
    • a solid block below the expected position
    • whether the player is on the ground
    • liquid / void
    • distance from the expected bottom-center

Options:

  • --method: override the method id.
  • --params: merge a JSON object into the current parameters.
  • --seed: override the seed.
  • --repeat: run 1-100 times and print success/fallback/time stats.
  • --timeout: deadline in ticks.
  • --verbose: print ring candidates/accepted.
  • --all: run every loaded dimension in simulate mode.

Examples:

/betterspawn gotodim simulate
/betterspawn gotodim minecraft:the_nether simulate --verbose
/betterspawn gotodim simulate --method cave --params {"min_y":32,"max_y":120} minecraft:the_nether
/betterspawn gotodim minecraft:the_end verify
/betterspawn gotodim --all --verbose

Reading results

  • OK: the main method found a safe point.
  • FALLBACK: a fallback method found the point; usedMethod is the fallback.
  • TIMEOUT: the deadline was hit.
  • UNSAFE: a point was found but failed safety checks (or no safe point was found).
  • EMPTY: no result.

Warnings printed by gotodim include budget exhaustion, unsafe ground, platform creation, portal frame details, cave roof height, and similar search notes.

Chunk save errors on FUSE/NTFS

If logs show:

RegionFile.write
java.io.IOException: Value too large for defined data type

this is a filesystem/storage issue, not a spawn-search result. The game directory is likely on a FUSE/NTFS mount. See Building for the -PgameDir workaround.

Clone this wiki locally