Map Creation Guide (Updated) - Mantibro/SlashCo GitHub Wiki
Map Creation Guide
This guide will teach you the basic configuration for a map to work in the SlashCo gamemode, assuming that you know at least how to properly use Hammer and have prior experience on making a map.
Installing the entities
It's required to have slashco.fgd mounted in Hammer in order to make a functional SlashCo map, you can find it in the main Github page at gamemodes/slashco/. Once downloaded, put the file in GarrysMod/bin. Now in Hammer go to Tools -> Options -> Game Configurations, click Add and search for the slashco.fgd file. Apply the change and restart hammer.

Entities
You'll see a bunch of new entities, the ones you need to care about are:
info_sc_employee - Spawns for survivors.
info_sc_slasher - Spawns for slashers.
info_sc_item - Spawns for all items.
info_sc_gascan - Spawns for Gas Cans.
info_sc_gascanexposed - Spawns for Exposed Gas Cans (used by the Exposure Offering).
info_sc_generator - Spawns for Generators.
info_sc_battery - Spawns for batteries.
func_sc_limitedzone - Defines an area where either survivors or slashers can receive visual/physical effects (fog, slowness, damage).
info_sc_helicopter_intro - Position of round start helicopter*.
info_sc_helicopter_start - Position where the helicopter will appear and leave once called*.
info_sc_helicopter - Positions where the helicopter would stop and wait for survivors once arrived*.
info_sc_settings - Map Configuration.
*The position of the helicopter spawn in-game is adjusted to match the model in Hammer.
You can find all this entities already placed with various configurations in the sc_testmap.vmf (also in gamemodes/slashco/)

Placing entities and configuration
Configurations of all entities are explained in the object properties (double click on the entity in the 3D view). If you wanna mess around with any property, you can click it and check the help tab on the right.
-
To avoid any error and have an initial spawn for spectators, place an info_player_start anywhere in the map.
-
Team Spawns: Put info_sc_employee in places you want the survivors to start the round, and info_sc_slasher for slashers (at some point the lobby size of SlashCo could be increased, it's better to place at least 32 spawnpoints for both teams to have proper compatibility with further changes).

- Items and Gas Cans: info_sc_item, info_sc_gascan, and info_sc_gascanexposed. Those are the entities you'll place across all map to ensure the survivors can find useful things and progress with the round. There's no limit for how many you can place, so it's better to have a lot of these in your map so the spawns are different in every round. (if you want to spawn bricks, make a props_physics with the cinderblock01a model). info_sc_gascanexposed spawns should be in highly visible places as they are for the Exposed offering.

- Generators and Batteries: You can place as many generators and batteries as you want, but make sure you give proper names to all generators, since you will need to link their respective battery spots. Once you have a generator placed with a name (gen1 in this example) you can put batteries hidden around and link them to that gen by writing his given name on the "Generator" space. Make sure to give each generator different names so you can link a battery to the generator you want.
(naming generators and linking batteries is optional, the map can work fine without that step, but most maps work with that configuration and it's recommended having battery spawns nearby a generator to balance difficulty)
- Limited Zones: These zones are used to apply visual effects, make damage to a player or reduce their movement speed. If you want to use it place a brush with the toolstrigger texture, turn it into an entity, and search func_sc_limitedzone.

- Helicopters: First of all, make sure your skybox has a proper height for the helicopter to move, otherwise it will clip through the map limits.
Helicopter Intro (info_sc_helicopter_intro) - This entity will be used for the initial helicopter, usually placed nearby survivor spawn.
Helicopter Start (info_sc_helicopter_start) - Used to indicate where the helicopter will spawn when called and where he will move when leaving the map, usually placed in the map corner.
Helicopter (info_sc_helicopter) - Spots where the helicopter will stop to wait all survivors before leaving, doesn't need further configuration, if your map size/layout allows it place at least 4 of these to make it unpredictable in-game.

- SlashCo Settings: Last but 100% required entity for the map to work -info_sc_settings-, this lets you change how the gamemode will work on your map, you can leave all in default settings (-1) or change things the way you want (just make sure to read the explained details about each property on the help tab to avoid any issues).

- One last thing: The gamemode uses textured brushes to figure out the size of your map. Ensure your map has textured (not nodraw) brushes at least somewhere. Preferably, have textured brushes on either side of the map so the gamemode can determine the map size more accurately.
Ready to test
When your map is done and compiled, you can test it in-game with the SlashCo gamemode on singleplayer. Make sure everything works fine and don't forget to make a nav-mesh for your map (no, your map can't work without a nav file, SlashCo uses the navmesh for many things like male07 npcs or random spawn/teleport positions).
Lua file
Once everything is done you need to create a configuration file for the map so slashco can read it and add it to the map pool, create a .cfg file in lua/slashco/configs/maps/, the name should have the complete map file name (for example, sc_summercamp.cfg). Inside the file you must set a few things.
{
"Manifest": {
"Name": "Monday Night Raw",
"Author": "Leuonard",
"MinimumPlayers": 1
}
}
Name - The display name of your map.
Author - Name of the map's author.
MinimumPlayers - The minimum amount of Survivors required for the map to be randomly selected (Map Guarantee will bypass this).
That's it
if you're confused or have any doubt about something, contact a developer in the slashco discord throught the "technical" channel.