# Shiptest Mapping Resources {%hackmd theme-dark %} <style> div#doc { max-width: 100%; } </style> ###### tags: `Work-In-Progress` `Design` ## Confer with the Maptainers about prospective ship and ruin designs! Before beginning mapping, ping one of the maptainers about the idea to figure out what Shiptest needs, map-wise. - .apogee (185153332619247616) - blessed0184 (550700609100316672) - latency (172189066299834368) - spocky (215835148611092480) - prefabquasar (387622430308302858) [ToC] ## Useful Links Pending / Recommended Ship Reworks NB: This document is not entirely up to date. Ask the maptainers about which projects are still in need of work. https://docs.google.com/document/d/1Awj-BGSxDyXms1i3m2qg_dnV78jclZSQrpHpvXm5D5I/mobilebasic [Creating and Testing a Ruin for Shiptest, a Technical Guide](/DH21JHkuQQiviopbtBprFw) [Shiptest Ship Niches Doc](/91HiEg1zQDu0H3NToMp1iQ) [Outpost Mechanics For Mappers](/eePdOciRTw2zTgIhFJmcTg) > Include some basic amenities: vending machines, disposals bins, a bar, holopads, an ore refinery, and a bridge for admin events. Some other admin areas like a brig are also highly suggested. Also add a little bit of space for players or admins to set up stalls or offices. > Definitely leave out important progression stuff like weapons and research, mining, or medical tools. > - Maint junk is good. > - To stop people breaking in / teleporting into admin areas for their own curiosity: > - Use indestructible walls, and place blast doors over airlocks. > - Set the area to NoTeleport. Docking ports helper (for mapping mobile and stationary docking ports, further instructions below) https://wombat.platymuus.com/ss13/shuttles.html ## Vital Mapping Information - VITAL: USE TGM MAP FORMAT. If you are using StrongDMM this will be an option in your preferences. - Ships **must** be mapped facing east. - Terminals for APCs are automatically placed, they should not be manually mapped. - Max sizes for maps: - Ships must be 40 x 56 or smaller, but will rotate to fit when landing (ie: 56 x 40 is also valid). However, see note above: ships must be mapped facing east. - Ruins must be 110 x 60 (width by height) or smaller **but cannot be rotated.** (The theoretical max size of 121 x 75 causes clipping issues, don't map ruins this large) - Ship config files must end with a newline! ## Docking Ports This website provides a helpful tool for choosing the correct docking port vars for your ship: https://wombat.platymuus.com/ss13/shuttles.html ### Mobile Docking Ports Should be placed within the borders of the ship, and ideally, with object's dir facing inwards towards the ship. ==preferred_direction== should be 4 (East) to match the ship's original orientation. ==port_direction== is the direction of the mobile docking port *relative* to your ship's North. For example, if the ship is mapped facing east, and the docking port is placed on the actual south part of the map, its port_direction would be 4 (East) when rotated to be relative to the ship. ### Stationary Docking Port Use the following vars for stationary docking ports (or copy one with these vars from an exemplar map): height = 15 width = 30 dwidth = 15 This creates a 30x15 box, with the width centered on the docking port. If a subshuttle can't fit in this, it's too big. Don't overlap stationary docking ports with mobile docks. These should be placed outside of the ship, with the object's dir facing away from the ship. If you look at subshuttles, their docks point in, so those docks should line up with the subshuttle dock. Stationary docks next to airlocks, cargo bays, and just floating around work, but you need to be careful to avoid having them crush things. ### Docking Ports Example with an East-facing Ship In this example, a ship has: - Its mobile dock mapped to the south of the ship, facing north towards it. - Its stationary dock mapped to the north of the ship, facing north away from it. - The ship's preferred direction is east, matching its map facing. - The mobile dock's port direction is east, as the dock is placed to the south for an east-facing ship. stationary dir: 1 (NORTH) mobile dir: 1 (NORTH) forwards as mapped: 4 (EAST) port_direction: 4 (EAST) preferred_direction: 4 (EAST) Other arrangements of docking ports are valid, use the website to check what works! ![image](https://hackmd.io/_uploads/S1HAbjWUC.png) ![image](https://hackmd.io/_uploads/ByP1Mo-IA.png) ## Ship Necessities NECESSITY: SHIP WILL NOT WORK/BE ALMOST IMPOSSIBLE TO SURVIVE ON WITHOUT ### Per-Area Necessities The A in APC stands for area. Every Area on a ship needs: - An APC, use the auto-named and directional subtypes to match their orientation to the wall. (/obj/machinery/power/apc/auto_name/directional) - An Air Alarm - At least 1 scrubber + vent (just a scrubber if it's particularly small) - Lights - A Fire Alarm - Ideally, they should also have wall intercoms, extinguisher cabinets, and excess lighting. ### Essential Mapped Items - A cryo area ==/area/ship/crew/cryo== - A cryo console, which should be present in the same area as the cryo tubes, otherwise they will not link. - Power Generation systems - Ship helm console ==/obj/machinery/computer/helm== or subtype - At least one kind of thruster for travel. - Ion thrusters and chargers. Chargers function like SMES and must be similarly linked to the powernet. A terminal beside a charger takes power as input, and a cable placed underneath the charger itself is then wired to the ion thruster. - Expulsion thrusters with attcahed engine heaters. Engine heaters will take any kind of gas from the pipes they are connected to and an attached thruster expels it for thrust. - Plasma thrusters are a more efficient variant gas engine which work like Expulsion Thrusters, but will only make use of plasma. - Oxygen tanks - At least one exosuit capable of surviving in space - No R&D unless it's essential to the ship. If you have to ask it's probably not essential. - Wideband radio intercom(near the helm) - Autolathe - Ships will in fact work without this. It's encouraged to give them money to purchase things without one though (unless it's a survival challenge) - Communication holopad(also near the helm) - It's the mapper's choice on if they want an emergency holopad (which can be activated for a dubiously helpful ghostrole), or a standard one. - Thin Firelocks linked to an area Fire Alarm - A basic atmos feed: Air tank outputting into a vent network, scrubbers outputting into an external gas pump. Pretty much any vessel without true atmos will have a good example of this. ### Common QoL Items - Ore redemption Machine(or board) - Small amount of starter food (for all species, see [Food Preferences](/1gkEW2ZqT7O_iHgfALlZGw)) - Oxygen emergency closet - Supply of limited mining equipment - Supply of radios - Small supply of limited starter medical: This usually entails 1-2 first aid kits or a medical aid kit (has basic surgical tools) - Tools and engineering equipment - A bit of glass and metal: 10-20 glass and 10-20 metal is more than enough. - Local and wideband intercoms - At least one small weapon or firearm ### Common (But not Essential) Items - Stuffed animal - Ship's pet - Beds (best mapped in the cryo room or out-of-sight due to SSD crew snoring) - Microwave - At least one GPS - Secondary engines - Potted plants (/kirbyplant in game) are great at making areas seem filled while adding zero substance. - Welding tank ## Mapping Ghettochem Setups A list of helpful items for ghetto (improvised/makeshift) chemistry: - Micro laser - Micro manipulator - Capacitor - Scanning module - Sink - Nice starting stock of beakers - Chemistry bag - Hand labeller - Zippo lighter - Camera - Glass sheet - Battery - Uranium - Plasma - Paper - Spraycan - Lightbulb - Cans for aluminium (Bean tins work) - A source of sugar and milk ## Mapping Helper Object Documentation ### Airlocks (place these over airlocks!) - abandoned: chance that airlock will start with random wires activated / deactived, panel open, or welded - cyclelink: place between two airlocks parallel to each other, arrows facing inwards. makes airlocks cycle - cyclelink target: idk what this does. probably determines which airlock is cycled to by default. - locked: bolts airlock on map load - unres: place arrow facing the way you want the airlock to be unrestricted from. makes airlock open regardless of access restriction from that side - airlock_note_placer: places a note on the airlock. note_info determines the content of the note, note_name determines the name, and you can use - note_path if you already have a note subtyped that you want to add to the airlock ### Component Injectors - doordeath: place over a simplemob, upon its death a door with the same ID as this helpers door_id will open - infective injector: allows you to give mobs diseases. put something in the disease_type var. ### Miscellaneous Stuff - dead_body_placer: this var spawns a random dead human, with nothing on them. used in morgues. bodycount var sets the amount of bodies ## Mapping Documents (Paper formatting) \<br> for new lines \<hr> horizontal line \<b> bold </b> \<i> italics </i> \<center> center </center> \<h1> title </h1> \<h2> subtitle </h2> You can also change the icon state of paper to make it look written, since it doesn't do so automatically ## Best items for portraying scrap/crashed ships/old, ruined, or abandoned locations ------------ Environmental items: Girders near normal walls to show broken walls: /obj/structure/girder Displaced Girders for variety/easy movement: /obj/structure/girder/displaced Lattices of all kinds on empty floors or strewn about: /obj/structure/lattice Grilles where windows were once: /obj/structure/lattice Broken Grilles for variety/easy movement: /obj/structure/grille/broken ----------------- Floors: Plating replacing normal floor to show age/destruction- /turf/open/floor/plating Rusted plates to show age + exposure to air- /turf/open/floor/plating/rust -------------- Rubble items: Random strewn about cables, on tech or near broken wires- /obj/item/stack/cable_coil/cut/[color] Shards of glass near windows or just strewn about- /obj/item/shard Scrap metal to show destruction or broken equipment- /obj/item/stack/ore/salvage/scrapmetal Scrap titanium to show broken titanium walls- /obj/item/stack/ore/salvage/scraptitanium Machine frames to show broken equipment (goes well with scrap wires/metal being on it)- /obj/structure/frame/machine Computer frames to show broken computers (Same as before)- /obj/structure/frame/computer ------------- Decals- Tiny human skeletons to show corpses- /obj/effect/decal/remains/human Plastic shreds, effective for showing mess- /obj/effect/decal/cleanable/plastic Dirt- /obj/effect/decal/cleanable/dirt Dust- /obj/effect/decal/cleanable/dirt/dust Corner cobwebs- /obj/effect/decal/cleanable/cobweb Tiny shards of glass, works well near windows n broken computers- /obj/effect/decal/cleanable/glass Old dried blood- /obj/effect/decal/cleanable/blood/old ash pile- /obj/effect/decal/cleanable/ash large ash pile- /obj/effect/decal/cleanable/ash/large Robo debris (works for tech debris)- /obj/effect/decal/cleanable/robot_debris Space vine- /obj/structure/spacevine Dense space vine (opaque) /obj/structure/spacevine/dense ## Yellow's (lichenliaison)'s PR Guide Basically all you need to do is 1) start from a clean/sanitized master (a few ways to go about this that I have posted) (I may be forgetting the names) 2) in the changed files tab on the left bar, click on the three dots 3) go to branch -> create branch from -> name it -> create from master 4) make your changes 5) press that little arrow cloud button in the bottom left to click publish branch 6) publish it to your fork (not the upstream, your PR will merge your branch TO the upstream) This is personal preference in the order of these 7) click the + next to files that are similar/relevant changes to stage them 8) type in the name of your commit (unless it’s a huge PR, try to keep them relevant and clear) 9) press commit staged changes (don’t remember if that’s what it’s called, it’s a checkmark iirc) 10) in the bottom left it should show I little 1⬆️ 0⬇️ showing that you have your commit sending 11) click on this area to refresh and send it 12) rinse and repeat until you’ve sent all your code through commits 13) now once it’s all committed and sent, in the same tab should be a button that looks like a ⬆️↖️ 14) press this to make the PR 15) the rest should auto-handle but you make your PR from your branch, to the upstream master branch 16) create it as a draft for the purpose of checking your code and writing your PR, it’s significantly easier in browser @ me anytime if you have questions