Travel Bound

Server Mod so the further you go, the Harder Minecraft Gets

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 stats and 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 shop opens 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 with items.yml, blacksmith.yml, and decorations.yml. Drop in another .yml and /tb shop reload — it appears in the GUI instantly.
  • Sell-back/tb sell opens 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 remove to 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 scaling
    • tb-champions — disable the Champion elite roll
    • tb-trial-elite — disable Trial Chamber elite bonuses
    • tb-bosses — disable world-boss reward handling
    • tb-xp — disable Travelbound XP rewards

    Use /rg flag <region> tb-scaling deny to silence Travelbound inside safe zones, hubs, or arenas. WorldGuard's own mob-spawning flag 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

  1. Drop the latest Travelbound-*.jar into your plugins/ folder.
  2. Start the server once. The plugin generates plugins/Travelbound/config.yml, a shops/ folder, and starter shop files.
  3. Open config.yml, add your survival world to worlds.whitelist (the plugin is intentionally off by default until you opt a world in).
  4. /tb reload or restart.
  5. 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.

The Travel Bound Team

profile avatar
  • 2
    Projects
  • 58
    Downloads

Minecraft Youtuber / Modder

Donate

More from MCRUN_YT

  • TalkingCraft project image

    TalkingCraft

    • 39
    • Mods

    The Blocks Have Had Enough of You, "GET OFF MY LAWN!!!"

    • 39
    • June 30, 2026
    • Mods
    • +1
  • TalkingCraft project image

    TalkingCraft

    • 39
    • Mods

    The Blocks Have Had Enough of You, "GET OFF MY LAWN!!!"

    • 39
    • June 30, 2026
    • Mods
    • +1