Caravans puts moving, defended targets on your map. Every so often a horse-drawn merchant wagon sets out across the world with an armed escort walking beside it. It follows a real route, it fights back, and if you manage to bring it down it spills a chest of cargo whose value you will not know until you open it.
Built for Minecraft 1.20.1 (Forge) and aimed at medieval and roleplay servers, where a caravan raid gives players a reason to leave base and a reason to fight each other over the road.
Guards are not decoration. They are configured by entity id, so you can escort your caravans with whatever soldier entity your modpack already has.
Caravans works out of the box with the Recruits mod, and the default guard list uses
Recruits soldiers: recruit, recruit_shieldman, bowman and
crossbowman.
There is no hard dependency. Guard entities are looked up from registry ids at runtime,
so Caravans installs and runs on its own — it simply falls back to a configured vanilla entity when the
ids are not present. Want to escort caravans with something else entirely? Put its id in the config.
Not sure what the id is? Run /caravan probe <modid> in game and the mod prints every
entity that mod registered.
When a wagon dies, a chest is placed at the wreck with its loot table still unrolled — the contents are generated the moment a player opens it, so nobody can peek before the fight is over.
| Grade | Default chance | Roughly what is inside |
|---|---|---|
| Poor | 55% | Bread, wheat, coal, leather, iron nuggets, a handful of emeralds |
| Average | 35% | Iron and gold, emerald stacks, armour pieces, a saddle, trade goods, a chance at an enchanted book |
| Perfect | 10% | Diamonds, emerald and gold blocks, enchanted diamond gear, horse armour, netherite, treasure enchantments |
All three are ordinary datapack loot tables
(caravans:chests/wagon_poor, wagon_average, wagon_perfect).
Drop a file with the same path into your world's datapack folder and you have rewritten the entire cargo
economy without touching the mod. The odds themselves are weights in the config.
Left alone, the mod generates a curving route through open terrain near your players. But if you have built roads, you probably want caravans to use them.
The Caravan Wand lets you walk your road and lay the route down by hand:
| Action | Result |
|---|---|
| Right-click a block | Adds the next waypoint |
| Sneak + right-click a block | Removes the last waypoint |
| Right-click the air | Lists the current draft |
| Sneak + right-click the air | Clears the draft |
Then /caravan route save <name>. Saved routes live in the world save and survive
restarts. You can drop waypoints as far apart as you like — the mod re-samples the line and snaps it to
the ground before a wagon uses it, which is what keeps vanilla pathfinding from giving up on a waypoint
four hundred blocks away.
/caravan route show <name> draws the finished path in particles so you can walk it
and check your work.
All commands require permission level 2 (operator).
| Command | What it does |
|---|---|
/caravan wand | Gives you a Caravan Wand |
/caravan route save <name> | Saves the wand's draft as a named route |
/caravan route list | Lists saved routes |
/caravan route info <name> | Prints every waypoint of a route |
/caravan route show <name> | Draws the route in particles |
/caravan route delete <name> | Deletes a route |
/caravan spawn [route] | Sends a caravan out right now |
/caravan list | Shows caravans currently on the road |
/caravan stop | Removes every active caravan |
/caravan next | Time remaining until the next departure |
/caravan next now | Triggers the next departure immediately |
/caravan probe <modid> | Lists every entity id a mod registered |
Everything lives in config/caravans-common.toml, grouped and commented. Some of what you
can change:
English and Turkish are included. Every message, item and entity name goes through the language file, so additional translations only need a resource pack.
caravans-common.toml to regenerate it or check the changed keys by hand — newly added
keys are appended automatically.