Also check the SS14 guide [here](https://docs.spacestation14.com/en/space-station-14/mapping/guides/general-guide.html)
Make sure you have the codebase downloaded and compiled. After downloading, run RUN_THIS.py, then compile the game in the tools mode by running the script in Scripts/win/buildall-Tools.bat. Then launch the game using RunAll.bat.
Here is a quick rundown of the steps you need to go through to make a new map, in case you need a refresher or you're already familiar with the mapping process. Otherwise, scroll down to the tutorial.
When you're ingame, spawn as an observer. Open the console using \ and type mapping 10 Maps/civ/template.yml. This will open the template map, which has some presets predefined.
Expand the map if you need to, first select a floor tile and hold CTRL and drag it to expand. Remember to enclose the new area in indestructible walls, normally WallRockIndestructible. If you do so, remember to run fixgridatmos in the console.
Map to your heart's content. Don't forget to add:
Save the map using savemap 10 mapname.yml. The file will be created in bin/Content.Server/Data. Move it to the map folder in Resources/ afterwards.
Create a new map metadata in Resources/Prototypes/Maps and edit it accordingly. Don't forget to define an ID, the preset and the jobs.
Edit the map file and add the ID you defined above to the station section.
Test it!!
Let’s create a simple WW2-themed King of the Hill (KotH) map called River, set in a European theater with two factions (Germans and Soviets) fighting to control a central river crossing.
Ensure the Civ14 codebase is compiled (see the note on the top of this page). Copy the template map file Resources/Maps/basic.yml.template and rename it river.yml. This template includes basic presets like weather and global lights.
Launch the game using RunAll.bat, spawn as an observer, and open the console (\). Type: mapping 10 Maps/civ/river.yml
This loads the river.yml map in the editor and spawns you as an observer, where you can edit the map.
The template map is a small grid, so let’s expand it for a KotH layout:
FloorPlanetGrass), hold CTRL, and drag to expand the map to a reasonable size (e.g., 100x100 tiles for a medium map). Ensure the terrain reflects a WW2 battlefield—use grass, dirt, and river tiles (FloorWaterEntity and FloorWaterDeepEntity).WallRockIndestructible, using the entity spawner) to prevent players from falling into space.Fix Atmosphere: Run fixgridatmos in the console to stabilize the map’s atmosphere, ensuring no air leaks or physics issues.
Make sure the map is fully enclosed, otherwise oxygen will escape and players will suffocate to death!
Mapping is trial and error! Save often, test frequently, and check the Civ14 GitHub for community feedback or new mapping tools.
Shape the River map to fit its WW2 KotH theme:
MarkerKOTHOpushka. This is from the Opushka map, but it will work just fine and is already preconfigured for the German and Soviet factions, and to have a radius of 5. You can have a look at it in `Resources/Prototypes/Civ14/Entities/Markers/capturable_areas.yml.FloorWaterDeep) splitting the map, with the bridge as the only crossing point. Use shallow water tiles (FloorWaterShallow) for fording. Note that water is an object, not a tile! You will need to make sure you do not accidentally double the ammount of water entities in a tile.TreeTemperate, for example), Rocks (WallRock) and bushes (found under decals) to give the map some cover and flavour.Include essential entities for gameplay:
SpawnPointGerman in the left side of the map near the wall.SpawnPointSoviet in the right side of the map.SpawnPointObserver in a neutral corner (e.g., map edge) or in the middle of the map for spectators.GraceWall entities around each faction’s base to prevent early rushes. Add GraceWallGerman around the Soviet base and GraceWallSoviet around the Soviet base. Also add GraceWall on the inside of the previous grace walls. Press Toggle BB on the sandbox menu to see its boundaries and make sure there are no holes.Save your work by typing in the console: savemap 10 river.yml
The file will save to bin/Content.Server/Data. Move it to Resources/Maps/civ/tdm/ afterward.
Create a new file in Resources/Prototypes/Maps/river.yml to define the map’s metadata, specifying its ID, name, path, jobs, factions, and gamemode. Based on Civ14’s structure (similar to the Camp map metadata), here’s the metadata for the River map:
- type: gameMap
id: River
mapName: "River (WW2)"
mapPath: /Maps/civ/tdm/river.yml
minPlayers: 0
maxPlayers: 50
maxRandomOffset: 0
randomRotation: false
fixedPreset: TDM
stations:
River:
stationProto: StandardStationTDM
components:
- type: StationNameSetup
mapNameTemplate: "River (WW2)"
- type: StationJobs
availableJobs:
# German
GermanCaptain: [1, 1]
GermanSergeant: [4, 4]
GermanSubmachineGunner: [10, 10]
GermanRifleman: [40, 40]
GermanMachinegunner: [5, 5]
GermanMedic: [3, 3]
# Soviet
SovietCaptain: [1, 1]
SovietSergeant: [4, 4]
SovietSubmachineGunner: [10, 10]
SovietRifleman: [40, 40]
SovietMachinegunner: [5, 5]
SovietMedic: [3, 3]
Metadata Notes:
/Maps/civ/tdm/river.yml, or wherever your map is.Resources/Prototypes/Civ14/Roles/Jobs/TDM/.Open river.yml in a text editor and add the map ID to the metadata and station sections, use CTRL-F to find them:
entities:
- proto: ""
entities:
- uid: 1
components:
- type: MetaData
name: River (WW2)
and
- uid: 2
components:
- type: MetaData
name: River (WW2)
and
- type: BecomesStation
id: River
Ensure the id matches the metadata’s id field (River) and the name aligns with mapNameTemplate.
Open Resources/ConfigPresets/Build/development.toml and change the value of map to River and the value of defaultpreset to tdm. This will make the game load the map automatically. Run the game.
Test the following: