Playlists and voting
Install a prebuilt playlist
The ElDewrito Server Hosting repository supplies playlists for 0.7, including Halo Online, Halo 3, modded rotations, and a minimal example. Install one selected playlist per server; copying every playlist on top of the others does not combine them.
- Stop the container or Windows watcher and server. Back up
autoexec.cfgand the entiredatadirectory, especially preferences,data/server, and custom variants. Keep existing mod packages needed to restore the previous rotation. - Clone the repository or download its ZIP, then extract it.
- First copy the contents of
0. Stock maps and gametypes/datainto the server'sdatadirectory, merging folders. This installs the stock map and gametype variants expected by the playlists. - Next copy the selected playlist's
datacontents into the same destination, allowing its files to overwrite the previous configuration. On Linux this destination is/opt/eldewrito/data; on Windows it isdatabesideeldorado.exe. Do not createdata/data, and do not copy onlyvoting.jsonwhile leaving required variants behind. - Inspect the resulting
data/server/voting.jsonand anymods.json; install/check the referenced content as described below. ReplaceVoting.SystemType 0inautoexec.cfgwith the following block, keeping the initial map and gametype commands for the opening match:
Voting.JsonPath "data/server/voting.json"
Voting.SystemType 1
Voting.ReloadJson
- Start the server, finish the opening match, and check the vote, winning map, required mod downloads, and a rejoin. Test the intended map/mode combinations before making the rotation public.
On Windows, the repository also provides the beta Get playlist #.ps1 helper. Save it beside eldorado.exe, replace # in its filename with the selected folder's numeric ID, and run it from a PowerShell session whose working directory is that game installation. For example, after saving it as Get playlist 6.ps1, run & '.\Get playlist 6.ps1' for the minimal example. Review the downloaded script before running it and follow PowerShell execution-policy guidance if your system blocks it; do not disable policy globally just to install a playlist.
The helper downloads the current repository, force-copies the stock variants first, then force-copies the chosen playlist. It writes to the current working directory, makes no backup, and does not enable voting for you. The manual procedure works on either host and makes the overwrite order easier to control.
Add a small voting rotation
For a small rotation you can edit yourself, start with base-game maps. The voting reference covers custom variants, compatible-map restrictions, templates, mods, and veto playlists. You can also refer to data\server\voting.json.example, but do not activate it unchanged: one of its examples contains a trailing comma, which is invalid JSON.
- Stop the container or Windows watcher and server, then save the following as
data/server/voting.jsonin the game directory. It offers Slayer on Guardian or Valhalla. Use internal map identifiers, such asriverworldfor Valhalla, rather than display names.
{
"maps": [
{ "displayName": "Guardian", "mapName": "guardian" },
{ "displayName": "Valhalla", "mapName": "riverworld" }
],
"types": [
{ "displayName": "Slayer", "typeName": "Slayer" }
]
}
- In
autoexec.cfg, replaceVoting.SystemType 0with the following block. Keep the initial map and gametype commands for the opening match. You can also select voting through Host Settings → Voting Mode → Vote.
Voting.JsonPath "data/server/voting.json"
Voting.SystemType 1
Voting.VoteOptionCount 2
Voting.DuplicationLevel 1
Voting.ReloadJson
- Start the server, join, and finish the opening match. Check that the vote offers only the intended map/mode pairs and that the winning match loads. Reconnect after the transition and repeat after a deliberate restart.
Voting.SystemType is 0 for no voting, 1 for voting, and 2 for veto. The example uses duplication level 1, the UI's Gametype or Map Can Repeat, so the same Slayer gametype can appear with two different maps. Veto is a different workflow using vetoPlaylist; merely switching this two-map voting example to veto does not supply an ordered veto playlist.
Rotate mods and custom variants safely
A playable rotation entry is a compatible combination of mod package, base map or Forge variant, and gametype. Install the variants on the server using Custom Content, and play each combination privately before adding it to a public vote.
displayNameis the voting label.mapNameandtypeNamemust identify content the server can load; changing a label does not rename a map.- A type's
specificMapslimits it to its compatible maps. This prevents a specialist mode from appearing on every map in the global list. - A type's
modPacknames a mod entry.data\server\mods.jsonmaps names undermodsto an object with apackage_url. Keep that name consistent with the voting entry and keep the URL tied to the intended package version. Server.ModsJsonFileselects the mod list for automatic package downloads at startup. Its default path isdata\server\mods.json, notdata\server\server.json.- Use a stable direct package-download URL that you have permission to share. Players need to be able to download it without signing in. Check that the link works outside your own account and avoid expiring attachment links.
commandsandendOfMatchCommandscan apply and undo per-mode settings. Avoid overrides in your first playlist; when you add one, restore what the next match should inherit rather than allowing state to leak across modes.
ED Resurgence Voting JSON Builder creates 0.7 voting.json and mods.json files. Point its variant-folder selection at the installation's data directory, which contains map_variants and game_variants. Save the generated files to your server's configured paths. Check the supplied mod URLs and try each package before adding it to your rotation; some URLs may be outdated or no longer work.