Travelbound
Distance-based difficulty, elite Trial Chambers, Champions, levels, prestige, a clean HUD, a built-in Shard Market with clickable shopkeeper NPCs — without ever touching your world data.
What it does
Travelbound turns the open world itself into the progression curve. The further a player roams from spawn, the deeper the Precinct they enter — and the deadlier (and more rewarding) the mobs become. Players earn Travelbound XP, level up, gain bonus hearts, eventually Prestige for permanent power, and spend the Travelbound Shards they earn at an in-game market staffed by frozen shopkeeper NPCs you place anywhere on your server.
It never modifies world data, never writes NBT, and only scales mobs at spawn time with attribute modifiers. Safe to add to existing servers, safe to remove.
Core features
Progression
- Precincts — Concentric rings around spawn (configurable radius + step). 26 named tiers by default, from "Starter Valley" all the way to "The Travelbound." Mobs gain +HP, +damage, +speed, +armor, +knockback resistance per precinct.
- Champions — Rare elite variants on normal mob spawns (default 0.5%). Glow, custom name, multiplied stats, bonus shard/diamond drops.
- Elite Trial Chambers — Mobs spawned inside vanilla Trial Chambers get bonus stats, a glow, and Travelbound Shards.
- Player Levels (1–100) — Smooth early curve, steep late curve. Each level grants extra hearts.
- Prestige (1–10) — Resets level, keeps you stronger forever: +hearts, +melee %, +speed % per rank.
- Advancement XP — Earning vanilla advancements grants Travelbound XP, with a bonus for challenge advancements.
- Death penalty — Lose a configurable % of current XP on death (default 25%). Bypassable with a permission.
- Travelbound Shards — Currency dropped by tough kills (Amethyst Shard by default, fully reconfigurable). Tagged with a Persistent Data Container key so only TB-issued shards count as currency.
HUD
- Clean HUD — A top-of-screen boss bar showing level, XP bar, hearts, shield, current precinct, and your live shard count. Refreshes every few ticks.
- Optional action-bar HUD — Same data, in a different place if you prefer.
- Live shard counter — Both
/tb statsand the boss bar mirror the actual shards in your inventory, not a stale DB number.
Shard Market (built-in, no Vault, no external plugins)
/tb shopopens a categorised chest-GUI marketplace.- Each item has a shard price, optional stock cap, optional enchants, configurable rare-purchase broadcast, and a confirm popup for big-ticket items.
- Folder-based config — Each shop is its own file in
plugins/Travelbound/shops/. Default install ships withitems.yml,blacksmith.yml, anddecorations.yml. Drop in another.ymland/tb shop reload— it appears in the GUI instantly. - Sell-back —
/tb sellopens a drop-zone GUI; throw items in, hit "Sell All," and you get back a configurable fraction of the buy price (default 50%) in tagged shards. - Dynamic pricing (optional, off by default) — supply/demand price drift per item. Frequently-bought items get pricier; over-sold ones get cheaper. Configurable sensitivity, min/max multiplier, and decay-back-to-baseline rate.
- Shop only spends TB-tagged shards. Generic Amethyst Shards mined from geodes cannot be used as currency. Backwards-compatible with shards minted by older versions via plain-text fallback.
Shop NPCs (1.8.0)
- Spawnable static shopkeepers — no AI, invulnerable, silent, persistent — bound to a specific shop.
- Right-click an NPC to open that shop's category page directly. No commands required for your players.
- Each shop file can define an
npc:block (entity type, villager profession, custom name) that's used when admins place that shopkeeper. - Admin commands:
/tb npc create <shop>to place,/tb npc removeto remove the nearest,/tb npc list,/tb npc nearest. - NPCs are PDC-tagged with their shop id, so they survive restarts and chunk unloads cleanly.
Worlds
- World whitelist / blacklist — Defaults to whitelist mode with an empty list: the plugin is OFF until you opt a world in. Travelbound never touches a world you didn't explicitly enable.
Integrations (all optional)
MythicMobs — Map any MythicMob name to a custom XP + shard reward. Configurable per-boss.
EliteMobs — Soft-detected, plays nicely.
WorldGuard — Registers five custom region flags so you can disable Travelbound's behaviour per region:
tb-scaling— turn off the per-precinct stat scalingtb-champions— disable the Champion elite rolltb-trial-elite— disable Trial Chamber elite bonusestb-bosses— disable world-boss reward handlingtb-xp— disable Travelbound XP rewards
Use
/rg flag <region> tb-scaling denyto silence Travelbound inside safe zones, hubs, or arenas. WorldGuard's ownmob-spawningflag continues to control vanilla spawning — Travelbound has nothing to do with that.
Commands
/tb stats [player] View your own stats (shows live shard count if online)
/tb tier Show your current precinct
/tb level [player] Your current level / XP
/tb prestige Prestige (if eligible)
/tb top Server leaderboard
/tb shop [category] Open the Shard Market (jump straight to a category)
/tb sell Sell items back for shards
/tb npc create <shop> Spawn a shopkeeper bound to <shop> (admin)
/tb npc remove Remove the nearest TB NPC within 5 blocks (admin)
/tb npc list List every placed shopkeeper with world + coords (admin)
/tb npc nearest Identify the closest TB NPC within 32 blocks (admin)
/tb champion Spawn / toggle Champion mobs nearby (admin)
/tb give <player> ... Give XP / levels / shards (admin)
/tb purge <player> Wipe a player's progression (admin)
/tb reload Reload config (admin)
/tb shop reload Reload shops/ folder (admin)
/tb shop log <player> Recent purchases + lifetime spend (admin)
/tb help
Aliases: /travelbound, /travel
Permissions
travelbound.use— base commands (default: everyone)travelbound.admin— reload, give, purge (default: op)travelbound.bypass.death_loss— skip the on-death XP penalty (default: false)travelbound.shop.use— open the Shard Market and buy/sell (default: everyone)travelbound.shop.admin— reload shop config, inspect purchase logs (default: op)travelbound.npc.admin— spawn/remove/list shop NPCs (default: op)
Requirements
- Minecraft / Paper / Spigot / Purpur 1.21+ (built against API version 1.21)
- Java 17 or newer
- Optional: WorldGuard, MythicMobs, EliteMobs
Installation
- Drop the latest
Travelbound-*.jarinto yourplugins/folder. - Start the server once. The plugin generates
plugins/Travelbound/config.yml, ashops/folder, and starter shop files. - Open
config.yml, add your survival world toworlds.whitelist(the plugin is intentionally off by default until you opt a world in). /tb reloador restart.- Place shopkeepers wherever you want:
/tb npc create items,/tb npc create blacksmith,/tb npc create decorations.
Data & safety
- All player progression is stored locally in flat YAML (
plugins/Travelbound/data.yml). No SQLite, no native binaries, no JDBC driver. - All shop activity (purchases, lifetime spend) is stored in
plugins/Travelbound/purchases.json(capped to last 1000 entries). - Dynamic pricing state lives in
plugins/Travelbound/prices.json. - Placed NPC index is stored in
plugins/Travelbound/npcs.yml. - No network calls. No telemetry. No analytics. No phone-home.
- Never edits world files or mob NBT. Stat scaling is applied at spawn via Bukkit AttributeModifiers and is fully removed if you uninstall the plugin.
- Reflection is used in exactly one place: soft-detecting MythicMobs so the plugin still loads when MythicMobs isn't installed.
- Pure-Java jar, under 150 KB. Zero bundled native binaries.
Folder layout (after first run)
plugins/Travelbound/
├── config.yml # global settings, world whitelist, scaling, HUD
├── data.yml # per-player progression (xp, prestige, kills, lifetime shards)
├── purchases.json # shop purchase log + lifetime spend per player
├── prices.json # dynamic-pricing counters (only if enabled)
├── npcs.yml # index of placed shopkeeper NPCs
└── shops/
├── _settings.yml # GUI + sellback + dynamic_pricing settings (shared)
├── items.yml # general consumables shop (Villager Farmer NPC)
├── blacksmith.yml # weapons & armor shop (Villager Weaponsmith NPC)
└── decorations.yml # cosmetic blocks & banners (Villager Mason NPC)
Add cosmetics.yml, tools.yml, potions.yml, whatever you want — each new file becomes a new shop on /tb shop reload. Each can carry its own npc: block.
Config preview
worlds:
mode: "whitelist"
whitelist: [] # add your survival world(s) here
blacklist: []
precincts:
base_radius: 500.0
step: 1000.0
max_index: 25
scaling:
health_per_tier: 0.10
damage_per_tier: 0.08
speed_per_tier: 0.02
armor_per_tier: 0.5
knockback_resist_per_tier: 0.02
champions:
enabled: true
spawn_chance: 0.005
health_mult: 3.0
damage_mult: 0.75
levels:
max_level: 100
hearts_per_level: 0.5
prestige:
enabled: true
max_prestige: 10
shop:
enabled: true # master kill-switch for the shop, sell, and NPC system
Per-shop file (example: shops/blacksmith.yml):
id: "blacksmith"
display: "&dBlacksmith"
icon: "ANVIL"
slot: 13
npc:
name: "&d&lBlacksmith"
type: "VILLAGER"
profession: "WEAPONSMITH"
items:
- id: "tb_sword_sharp"
material: "DIAMOND_SWORD"
name: "&bShardcaller"
lore: ["&7Sharpness V, Unbreaking III"]
price: 80
enchants:
DAMAGE_ALL: 5
DURABILITY: 3
stock: -1 # -1 = unlimited
The full annotated config (precincts, rewards, advancements, HUD format, world bosses, etc.) is generated on first run.
FAQ
Will this affect worlds I don't want it in?
No. The default config has an empty whitelist, meaning Travelbound does nothing until you explicitly add a world to worlds.whitelist.
How do I stop normal mob spawning in a safe zone?
That's WorldGuard's built-in flag, not Travelbound: /rg flag <region> mob-spawning deny. Travelbound only scales mobs that already spawned; it never spawns mobs of its own (other than shopkeeper NPCs, which spawn via SpawnReason.COMMAND and bypass the standard mob-spawning flag).
How do I silence Travelbound inside a hub / spawn / arena? Inside that WorldGuard region, deny the relevant Travelbound flags:
/rg flag spawn tb-scaling deny
/rg flag spawn tb-champions deny
/rg flag spawn tb-xp deny
My /tb npc create says it spawned the NPC but I don't see it.
Almost always a region rule. Run /rg info where you're standing — if mob-spawning: deny is set there, that's the culprit. Either /rg flag <region> mob-spawning allow, or place the NPC outside the region. Travelbound 1.8.1+ logs a clear warning in chat when this happens.
Can players abuse the shop with non-TB shards (e.g. from geodes)? No. Shards are matched by a Persistent Data Container tag set on every shard the plugin awards, not just by material/name. Generic Amethyst Shards won't count.
Does it work with MythicMobs world bosses?
Yes. Map your MythicMob internal names to XP + shard rewards in world_bosses.entries, or tag any boss with the scoreboard tag tb_world_boss to use the fallback reward.
Can I uninstall it cleanly?
Yes. All progression lives in plugins/Travelbound/. Delete the folder and the plugin and your world is exactly as it was — no leftover NBT, no leftover modifiers. NPCs you placed are removed too (they're invulnerable but the plugin's data file is the source of truth; nothing else changes about the world).
License
[All Rights Reserved] — © [Z.B.]
If you enjoy Travelbound, leaving a rating on CurseForge genuinely helps the project. Thanks for playing.