Map building server
Set up a private Scaffold server for building, pasting and importing Duels arenas, and push finished arenas to every game server at once.
Why a separate server
Every arena tool comes with Scaffold, so you can build on any Duels server. A separate map building server keeps that work away from players:
- Staff can fly around, paste schematics and break blocks without a lobby hotbar, queues or match rules getting in the way.
- WorldEdit or FastAsyncWorldEdit can be installed there without putting it on your live servers.
- A crash or a bad paste only takes down the building server.
Arenas are stored in MongoDB, not on the server that built them. When you save an arena on the building server, every game server uses the new version for the next match that picks it. Nothing needs to be copied or restarted.
What it runs
| Products | Scaffold, plus Stash, Kernel and Bridge, which Scaffold requires. The loader adds them when your licence includes them. |
| Not needed | DuelsLobby and DuelsGame. The editor and the /map commands come from Scaffold. |
| Plugins | WorldEdit or FastAsyncWorldEdit, if you paste schematics. Nothing else is required. |
| Database | The same MongoDB and Redis as the rest of the network. The arenas you save must land where the game servers read them. |
| Players | Staff only. Keep it behind a whitelist or a permission-gated server on your proxy. |
Set it up
Create the server
Set it up like any other Duels server in Installation: the same Paper version, the same Bridge, Kernel and Stash settings, and the loader with these products:
products:
- Stash
- Kernel
- Bridge
- ScaffoldGive it its own Kernel server id and group, for example devtools-1 in group devtools. The group must not end in lobby.
Turn off game server mode
Scaffold treats every server as a game server unless told otherwise, and sends anyone who joins a game server with no match waiting back to a lobby. On a building server that kicks you as soon as you join.
Open plugins/Scaffold/scaffold. and set:
gameServer: falseSaving the file reloads it, so no restart is needed.
Add WorldEdit, if you paste schematics
Drop WorldEdit or FastAsyncWorldEdit into plugins and restart. Put your schematics in plugins/WorldEdit/schematics or plugins/FastAsyncWorldEdit/schematics.
Give your builders access
Builders need scaffold.admin for /scaffold and /map, and your WorldEdit permissions. Assign them to the group that may build.
Build an arena
The full editor walkthrough is in Build your own arenas. On a building server the usual flow is:
-
Create the map:
/scaffold map create castle. -
Open it:
/scaffold map editor castle. You are put in creative mode in an empty world, with the editor hotbar and an EDITOR sidebar. -
Build it by hand, or paste a schematic. Stand where the arena's centre should be and run:
//schem load castle //paste -
Place spawn
a, spawnband, if you want one,specwith the Marker Wand or with marker signs and/scaffold map scan. -
Right-click Save, then leave with Exit or
/scaffold map exit. -
Limit the map to its kits:
/map groups castle sword. Leave the list empty to allow every kit.
The editor saves the whole world, so you can build anywhere in it. Spectators without a spec spawn appear above the middle of the spawns, so keep the spawns inside the arena.
Import an existing world
If you already have arenas as world folders, you do not need to paste them:
- Upload the world folder into the building server's main folder, next to
world. - Create the map:
/scaffold map create castle. - Import it:
/scaffold map import castle castle_world. - Open the editor, place the spawns and save, as above.
The import copies 8 chunks out from chunk 0, 0 by default. Pass a third argument from 1 to 64 to copy more: /scaffold map import castle castle_world 16.
Arena packs
Many arena packs ship as one world with every arena placed far apart. An import only copies the chunks around chunk 0, 0, so importing the pack world gives you the centre arena at most. Give each arena its own map instead:
- Open the pack world and copy one arena with WorldEdit: select it, then
//copyand//schem save castle. - Create a map, open it in the editor and paste the schematic near 0, 0.
- Place the spawns, save, and repeat for the next arena.
Vanilla terrain maps
The building server can also make terrain arenas by hand, without waiting for a game server to generate them:
| Command | What it does |
|---|---|
/scaffold map generate <map> <biome> [dimension] [radius] | Generates vanilla terrain into the map. The dimension is normal by default. |
/scaffold map biome <map> <biome> | Rebuilds a terrain map in another biome with the same seed. |
/scaffold map dimension <map> <dimension> | Rebuilds a terrain map in another dimension. |
/scaffold map regenerate <map> [seed] | Rolls new terrain, with a random seed unless you give one. |
If the server says there is no fightable ground, run regenerate to try another seed. See Vanilla terrain arenas for the five maps Duels makes on its own.
Check your work
/map info castleshows the map's display name, icon, template, kits and how many markers it has./map listlists every map./duels mapson the lobby shows the same list with spawn counts.- Queue the kit on your network. Matches that start after you save use the new version.
Troubleshooting
| Problem | Fix |
|---|---|
| You are sent to the lobby as soon as you join | Set gameServer: false in plugins/Scaffold/scaffold.. |
| A removed marker comes back | Removing a marker is only written by the Save item. /scaffold map save and /scaffold map exit save the world, not marker removals. |
| Players are told there is no map for the kit | No map's kit list fits the kit. Check /map groups <map>, and see Which map a match uses. |
| Part of an imported arena is missing | It sits outside the import radius. Re-import with a larger radius, up to 64. |
| The game servers still use the old arena | Only matches that start after the save use it. A match already running keeps its copy. |