Trails | Dynamic paths & road builder
2.2.5Player-made trails and wide roads that grow naturally from movement.
TRAILS
Paths that grow where players actually travel.
Trails turns repeated movement into natural paths and gives staff a safe, visual road-building workflow for larger routes.
LATEST RELEASE • SOURCE • ISSUES & SUPPORT
THE WORLD REMEMBERS
Players create trails simply by travelling. Frequently walked terrain progresses through configurable stages—from grass and dirt to established paths—while optional gradual speed bonuses make mature routes feel genuinely useful.
- Structured trail chains with weighted materials, thresholds, chances, and speed multipliers.
- Chunk-local persistence with compact, checksum-protected progress storage and crash recovery.
- Per-world control, player toggles, decay rules, and carefully bounded processing.
- Tagged tools only: ordinary sticks and shovels remain ordinary items and never spam Trails actions.
- Safe configuration: versioned files, complete validation, atomic reloads, and automatic legacy backups.
ROAD BUILDER
Use /trails build to sketch a connected road by moving through the world. Trails follows reasonable movement gaps, finds nearby safe terrain, grades gentle slopes, and updates a private client-side preview before a single real block is changed.
- 29 bundled road profiles covering rustic, royal, forest, harbor, sandstone, Nether, frozen, prismarine, tuff, and other themes.
- Eight wide -big profiles with seven-block roadbeds and paired lantern or beacon details.
- Terrain-aware geometry with configurable widths, weighted palettes, smoothing, clearance, fills, cuts, stairs, and slabs.
- Direction-aware transitions: stairs follow the road's dominant heading, including diagonal routes captured while moving backwards.
- Reusable periodic forms for lantern posts, walls, fences, beacons, and other roadside structures.
- Exact lifecycle: preview, status, commit, cancel, and guarded undo.
The preview is visible only to its builder. Non-full collision blocks—paths, stairs, slabs, fences, and lanterns—are represented by full-height yellow concrete in preview, preventing fake-block collision glitches. The committed road still uses the real selected block data.
PROTECTION WITHOUT DEPENDENCY SPRAWL
Trails asks the server whether a change is allowed through standard cancellable Bukkit events. Claim plugins can veto trail and road changes without Trails carrying a growing collection of fragile, plugin-specific adapters.
- Optional CoreProtect logging and PlaceholderAPI support.
- Block entities, ores, liquids, waterlogged blocks, unbreakable blocks, and configured protected materials remain protected.
- Road commits re-check current chunks, surfaces, headroom, snapshots, and protection immediately before applying.
- A failed apply rolls back. Undo refuses to overwrite blocks changed after the original commit.
- Preview size, duration, segment distance, search depth, slope work, history, and runtime tasks are bounded.
COMMANDS
/trails status
/trails validate
/trails reload
/trails give inspect [player]
/trails give advance [player]
/trails build list [profile]
/trails build start <profile> [player]
/trails build status [player]
/trails build commit [player]
/trails build cancel [player]
/trails build undo [player]
Road access uses trails.roads.use. Staff management uses trails.roads.manage. Tool distribution uses trails.tools.give. Tagged tools additionally respect trails.info-tool and trails.trail-tool.
INSTALLATION
- Install Paper or Purpur 1.21.11 with Java 25.
- Place Trails-2.2.5.jar in the server's plugins directory and start the server.
- Review config.yml, trails.yml, and roads.yml.
- Run /trails validate, then /trails status.
- Road building is opt-in and disabled by default; enable it and grant only the permissions your builders need.
UPGRADING FROM 1.9
Back up the Trails directory first. The legacy configuration is validated and migrated into the new versioned files with a backup of the original. Existing player preferences are preserved. Legacy per-block counters intentionally start fresh in the new chunk store.
The old /trails road command tree has been replaced by the clearer /trails build command tree.
REQUIREMENTS & LINKS
- Server: Paper or Purpur 1.21.11
- Runtime: Java 25
- Optional integrations: CoreProtect and PlaceholderAPI
- Source and documentation: github.com/alexey-va/Trails
- Changelog: Trails 2.2.5 release
- Support: GitHub Issues
Build the roads your players already chose.
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta