Distress Signal Map Essentials

From CM-SS13 - Wiki

Distress Signal Map Essentials

This covers all the essential things you need to make a functional Distress Signal CM map. That is, just the things that are essential to run a functional game of Distress Signal. You can add as much additional random stuff as you want, but missing any of this is a no go.

Areas

  • All variables for areas should be set via the area typepath in the code. Areas should never be instanced.
  • LZ dropship areas
    • You need at least one LZ area of 11x21 tiles. Two are recommended for large maps.
    • area/shuttle/drop1/ for LZ1 and area/shuttle/drop2/ for LZ2
      • It’s recommended to make a subtype for the area such as area/shuttle/drop1/ice_colony but it is not necessary.
  • LZ console areas
    • The specific tile that each LZ console is located in should have it’s own unique area which is always powered. The name of this area is what will be shown when CiC selects their LZ, and should thus be an identifier for the LZ.
      • Set the following for the area to make it always be powered:

requires_power = FALSE

  • Areas around the LZs should have the following var to prevent xenos from weeding them early game.
    • can_build_special = FALSE
  • Areas that xenos should not be able to tunnel to (if it is out of bounds or surrounded by indestructible walls for example) should have the following flag set:
    • flags_atom = AREA_NOTUNNEL
  • Set your area ceilings appropriately for where you want CAS, medevac ect. to be allowed.
  • The parent for all areas on groundside maps should have the following variables set:
    • powernet_name = "ground"
    • can_build_special = TRUE
  • The map should be divided into number of different areas. Areas should encompass multiple rooms such as a department or it can be a sequence of hallways and tunnels identified by their surroundings or location. It should not be overdone so that every single room has its own area. Think about an SO at overwatch, they should easily be able to understand where someone is by the name of the area.
  • Inaccessible tiles such as indestructible turfs should all share the same area. Space turfs should all use the area/space area.

Structures, Machines and Turfs

  • Window Flooring
    • It is strongly recommended to have the same flooring underneath all windows to save on the number of unique tiles. The standard is to use plating for this.
  • Generators
    • You need some kind of powersource on the colony to power APCs. Make sure that the powersource can provide enough energy to power everything.
    • In CM you do not need to place cables, in fact you shouldn’t.
    • obj/structure/machinery/power/geothermal.
      • you can rename it to whatever you want if you don’t like the idea of geothermal energy.
  • Power Storage Units (PSUs)
    • A few Power Storage Units should be located in each area containing a generator.
    • obj/structure/machinery/power/smes/buildable
    • Located directly next to each PSU should be a terminal with the red bit facing towards the PSU
    • obj/structure/machinery/power/terminal
  • APCs
    • All indoor areas that can be accessed should have a single APC.
    • obj/structure/machinery/power/apc
  • Vents
    • There should be a vent in almost all interior rooms except for small ones and maintenance areas. All vents should be connected to the piping network. In CM you only need one type of vent, airvents and airscrubbers are the same and can be used interchangeably.
    • Make sure the vent has the correct direction to face the connected pipe.
    • obj/structure/pipes/vents/pump
  • Pipes
    • There needs to be a network of pipes covering the map for xenos to navigate. Make pipes go through hallways/streets and branching into rooms/buildings.
    • Pipes should never go through walls unless there’s no other path, which there always should be.
    • obj/structure/pipes/standard/simple/hidden
    • obj/structure/pipes/standard/simple/manifold/hidden
  • Lights
    • There needs to be a sufficient amount of lights placed around interior areas. Floodlights may be used for outdoor areas.
  • Indestructible walls and window shutters
    • It should not be possible for a player to reach the map borders or enter space from the play area.


Landmarks

  • Map tag landmark
    • This should just be located in some unreachable corner of the map.
    • This must have the exact same name as your map define (see further below)
    • obj/effect/landmark/map_tag
  • Various objective landmarks (some will not be needed after defcon removal)
    • There should be at least 30 of each type. Don’t worry about adding more as only a limited amount will be spawned.
    • obj/effect/landmark/objective_landmark
  • Survivor loot
  • obj/effect/landmark/item_pool_spawner/survivor_ammo
  • Corpse spawners
    • Add a variety of different corpse spawners that fits with the theme of the map.
    • Only 15 corpses can be spawned, so adding more than that just means more potential spawnpoints.
    • obj/effect/landmark/corpsespawner
  • Survivor spawns
    • There should be a fair amount of these, none of which should be behind any map blockers (such as fogs or lockdowns), near hive spawns nor too close to each other.
    • obj/effect/landmark/
      • Renamed to surv_spawn
  • LZ landmarks
    • These are used to save the coordinates of where a dropship will land relative to the bottom-left corner of the rectangle that surrounds the dropship.
    • obj/effect/landmark/shuttle_loc/marine_trg/landing
      • Renamed to 1 for LZ1, or 2 for LZ2
  • Yautja teleport locations
    • These should be in isolated locations so predators are unlikely to teleport into a bunch of marines or xenos.
    • obj/effect/landmark/
      • Renamed to yautja_teleport_loc
  • Xeno spawnpoints
    • These are where the round start xenos will spawn. There should be around 20 or more of these landmarks bundled closely together.
    • Locate these far away from any LZ, but with a fairly equal distance to all LZs.
    • obj/effect/landmark/
      • Renamed to xeno_spawn
  • Queen spawnpoints
    • These are not needed for Distress Signal, but mentioning them here because you might easily think so. These are spawnpoints for different hives in XvX gamemodes.
    • obj/effect/landmark/queen_spawn

Code

Yes, even when mapping you often need to code some things.

  • Your map’s filename must start with the Z.01. prefix.
  • Add your map to compression.cfg using the exact filename (case sensitive) excluding the Z.01. prefix and .dmm suffix.
  • Map define
    • A map definition to _game.dm similarly to the example below. This is the readable name of the map that will be shown to players.
#define MAP_LV_624 "LV-624"
  • Vote candidates
    • Add your map define to the list of map candidates in global_lists.dm where appropriate.
    • Map announcement
      • Add an announcement for your map using your map define in colonialmarines.dm
/datum/game_mode/colonialmarines/proc/map_announcement()
  • On the server’s end (not in your MR) the map must be added to the config file for Map Daemon, config.txt. You can do this for testing on your own.