Roam
1.4.0Advanced asynchronous random teleport (RTP) plugin for Paper, Purpur and Folia. Features a modern GUI, biome targeting, favorites, history, stats, claim protection bypass, Vault economy integration, a
1.4.0latestRoam 1.4.0Aug 12, 2026 Roam 1.4.0 — one jar, 1.20.1 → 26.2
If you run anything newer than 1.21.4, update now. Roam crashed withIncompatibleClassChangeErroron those servers. This release fixes it, extends support down to 1.20.1, and adds a build gate that verifies the whole range instead of just claiming it. Supported:1.20.1→1.21.11→26.1.x→26.2— 19 releases, one jar, each one verified against its real API. ---
Paper turnedFixed — crash on every server above 1.21.4
BiomeandSoundfrom enums into interfaces in 1.21.5. Four Roam call sites were compiled against the enum form, so the JVM refused to link them and threwIncompatibleClassChangeError— anError, not anException, so the defensivecatchblocks around the search didn't contain it: commands broke outright instead of degrading. Affected: the biome label on every teleport, the smart-shoreline check, the/rtp biomeroster + tab-complete + GUI, and the biome-unlock sound. All four now resolve through the registries, which are interfaces on both sides of the split. No config, message or API change —biomes.ymlentries, placeholders and/rtp biomearguments keep working exactly as before.
- Bytecode now targets Java 17, so Roam never raises your Java floor (1.20.1–1.20.4 on 17, 1.20.5–1.21.11 on 21, 26.x on 25). - Fixed the same enum/interface trap onAdded —
InventoryView, which flipped in 1.21 and would have broken three GUI handlers. - Action bar moved to Adventure (sendActionBar), dropping the deprecated BungeeCord chat bridge. - Registry lookups survive an uninitialisedRegistryon 1.20.x; an unreachable registry degrades instead of aborting config loading. -api-versiondrops to1.20.Added — Paper 26.2 support, and proof
tools/ApiCompatCheck.javawalks every API reference the shipped jar makes and resolves it against a target server API, failing on removed members and on class/interface flips. It runs in CI on every push, and--allsweeps all 19 published releases in the range — which matters:InventoryViewbreaks in the middle while both endpoints look clean. - Unlock-sound warning spammed the console — an unresolvablebiome-finder.unlock.soundwarned on every unlock. Now once per bad value. It also accepts both spellings (ENTITY_PLAYER_LEVELUPandentity.player.levelup) and validates against the server's real sound registry, so resource-pack and datapack sounds resolve. - `/roamadmin edit` accepted worlds that don't exist — a typo'd world name was written intoconfig.ymlas a newworlds.<typo>block and reported as "Applied immediately" when nothing was applied. Now rejected unless the world is loaded or already configured (pre-configuring a world that loads later still works), with the configured world list echoed back. Disabled worlds get their own message. - Doubled `[Roam]` prefix in console — 33 of 64 logger calls hard-coded the prefix Bukkit already adds. Console output is consistent again.
-Dependencies & build
sqlite-jdbc3.46.1.0 → 3.53.2.1,mariadb-java-client3.4.1 → 3.5.10 — both now run under the Java 25 runtime Paper 26.x requires. Both backends were verified against live servers, schema built from scratch. - Shading mergesMETA-INF/servicesinstead of letting one jar win, so both JDBC drivers are properly declared. -maven-compiler-pluginuses<release>so building on a newer JDK can't silently link against methods your server doesn't have. - JUnit 5.10.2 → 6.1.3, surefire 3.2.5 → 3.5.6, shade 3.6.0 → 3.6.2, compiler 3.13.0 → 3.15.0. --- Upgrading: drop in the new jar and restart. No config migration, no breaking API change.1.3.0Roam 1.3.0Jun 10, 2026 Roam 1.3.0
## Added - Exploration-gated biome unlocks (opt-in,biome-finder.unlock.enabled):/rtp biome— new alias/rtp biomes— only accepts biomes the player has physically discovered. First contact grants an advancement toast, a chat notice and a sound. Staff bypass viaroam.biome.bypass-unlock. Existing discoveries are honoured on upgrade. - Biome collection GUI: undiscovered biomes render as sealed crystal cards that flip to each biome's own icon once explored — 54 curated textured heads bundled, plus a description and a "You'll find:" line for all ~110 shipped biomes, and aDiscovered: N/Mprogress counter. Custom heads viaicon: "head:<base64>"inbiomes.yml. - `/rtp location <name>`: teleport to admin-defined spawn-point presets, gated per-preset withroam.location.<name>. - Four new languages: Russian, Simplified Chinese, Romanian and German join EN/ES/PT_BR — seven bundled translations covering chat and GUI (gui_<lang>.yml), switched together bylanguage:. ## Performance - Chunk-free candidate screening on Iris worlds: water and biome checks now run against Iris' own noise streams instead of generating a chunk per rejected candidate — the single biggest cost of RTP on custom generators is gone. - Adaptive mode (on by default): an MSPT probe classifies the server as RELAXED / BUSY / STRESSED — background generation throttles down to zero under load, and search parallelism clamps so/rtpnever piles chunk loads onto a struggling tick loop. Each world also learns its own search difficulty and borrows extra parallel candidates only where they pay off. - Demand-gated location cache: idle worlds stop generating terrain in the background entirely (one bootstrap entry kept); active worlds refill as a slow trickle. Withwarm-chunks, a cache hit costs a disk read instead of fresh generation — effectively instant/rtp, even on Iris. - Two-phase chunk preload: teleports block only on the 9 chunks around the player; the outer ring loads in the background after arrival. - Per-candidate slot timeouts with replacement: one stuck chunk generation no longer freezes the whole search, and late-finishing winners are rescued instead of discarded. - Cached biome rosters and engine handles: tab-complete and the biome menu no longer walk registries/reflection on every keystroke. ## Fixed - GUI pagination dying after the first page navigation; border/footer clicks could resolve to a real biome; world menu broke with customised item names. - "Searching..." boss bar stuck on screen after teleporting — full lifecycle rework (kind-tagged bars, exception-safe teleport tail, quit cleanup) plus a self-healing watchdog. - Search slot timeouts discarding valid locations found moments later on slow hardware. - Citizens biome NPCs bypassed the biome-finder toggle and the unlock gate. ## Changed - Iris integration flagged experimental: works without server lag, but chunk loading on Iris teleports is still slow. Mitigations documented in the README. - Unified teleport pipeline (seven entry points over four shared gates) backed by a 21-test suite that gates every build. - Professional text pass: emojis removed from every player-facing surface (GUI, boss bars, titles, messages in all languages). ## Removed -/rtp structure— out of scope for Roam's design. No config migration needed — every new key ships with a sensible default.1.2.0Roam 1.2.0May 6, 2026 Initial release - Initial release of Roam - High-performance asynchronous RTP system - Modern GUI with favorites, history, and stats - Support for vanilla biomes, Iris and TerraformGenerator - Protection against claims from 12 popular plugins - Vault economy and Citizens NPC integration - Full support for Paper, Purpur and Folia - Multiple storage backends (YAML, SQLite, MariaDB)
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta