RandomZLevels/Away Mission Creation Guidelines - So, you want to make an away mission! They're a lot of fun to play, but they're a challenge to create.
To ensure a consistent standard of quality across away missions, following the guidelines (split into recommended and required)
is beneficial to ensure your PR is merged.
__DEFINES - This folder is full of #define statements. They are similar to constants,
but must come before any code that references them, and they do not take up
memory the way constants do.
render_plate - Custom rendering solution to allow for advanced effects
We (ab)use plane masters and render source/target to cheaply render 2+ planes as 1
if you want to read more read the _render_readme.md
materials - How material datums work
Materials are now instanced datums, with an associative list of them being kept in SSmaterials. We only instance the materials once and then re-use these instances for everything.
edible - This component makes it possible to make things edible. What this means is that you can take a bite or force someone to take a bite (in the case of items).
These items take a specific time to eat, and can do most of the things our original food items could.
swabbing - This component is used in vat growing to swab for microbiological samples which can then be mixed with reagents in a petridish to create a culture plate.
Contextual screentips (and when to not use this folder) - Contextual screentips provide information in the form of text at the top of your screen to inform you of the possibilities of an item. The "contextual" here refers to this being handled entirely through code, what it displays and when is completely up to you.
material_container/material_container - This datum should be used for handling mineral contents of machines and whatever else is supposed to hold minerals and make use of them.
Core /atom Systems - This is a folder of basic systems that apply to all /atom types, split into relevant files. Keep the files named fittingly and don't put anything in _atom.dm if you can avoid it.
Objects - Datums, lists, typepaths, static appearances, and some other objects are represented in Luau as userdata. Certain operations can be performed on these types of objects.
wolves_among_sheep - Contains the spell "Wolves among Sheep"
Handles the creation of the "arena", in terms of visuals. Banishes windows/airlocks and puts down the floors
For the functionality of the spell itself see /obj/effect/abstract/heretic_arena which is created during [/proc/create_arena()]
void_chill - Contains the "Void Chill" status effect. Harmful debuff which freezes and slows down non-heretics
Cannot affect silicons (How are you gonna freeze a robot?)
Preferences (by Mothblocks) - This does not contain all the information on specific values--you can find those as doc-comments in relevant paths, such as /datum/preference. Rather, this gives you an overview for creating most preferences, and getting your foot in the door to create more advanced ones.
In-code keypress handling system - This whole system is heavily based off of forum_account's keyboard library.
Thanks to forum_account for saving the day, the library can be found
here!
_language_holder - Language holders will either exist in an atom/movable. Creation of language holders happens
automatically when they are needed, for example when something tries to speak.
Where a mind is available, the mind language holder will be the one "in charge". The mind holder
will update its languages based on the atom holder, and will get updated as part of
transformations and other events that cause new languages to become available.
Balistic gun icon states explained - For a unknown period of time, /obj/item/gun/ballistic used the wrong icon state for its bolt_type and so, if you tried to copy how it worked to make your own gun, you'd get a broken sprite. This documentation is intended to explain in detail what some of the variables and functions do, and how to make your own gun subtypes that work properly.
screenshots - This folder contains the results for screenshot tests. Screenshot tests make sure an icon looks the same as it did before a change to prevent regressions.
html/font-awesome - WOFF2 copies of tg's Font Awesome 6.7.2 (html/font-awesome), sent in place of its TrueType fonts by
modular_aphelion/master_files/code/modules/asset_cache/assets/fontawesome.dm. Solid goes from 426 KB to 128 KB, and
a bug report snapshot that shows an icon carries 170 thousand characters of it instead of 568.
admin_items - Admeme bags. Better than a trash bag, better than a pouch, cooler than your belt, and comes totally empty.
These will let you quickly spawn in, grab a pile of leftovers from something like a body respawn, and poof out, destroying all of it quickly.
Sprite redits to CEV-ERIS, y'all really fucked with this one, it has no reason to look this cool.
TODO:
admin_modsuit_modules - MODsuit modules made for use with modsuits from [admin_modsuits.dm]
Bulge template sheets - templates/ holds the shapes a bulge is drawn from up to each family's small_cap, the skirts' clearances and flaps,
and the large heart boxers: 5 sheets, 656 states, each with four directions (north is empty) and one frame. Open them
in Dream Maker's icon editor. A state is named for what it is, and the code finds it by that name; nothing maps one
name to another.
Cyborg customization - Cyborg customization adds a character-setup page, shared RoboTact and interaction controls, and a visual appearance layer for player cyborgs. Character slots remain the unit of identity. Each slot stores up to ten appearance presets plus defaults keyed by model type and skin label. A preview model is an editor choice; it does not select a playable model or grant equipment, access, laws, or anatomy.
Markings room assets - The textures and fonts of the Augments+ rooms, every theme's. They aren't in tgui's bundle, which every tgui window
loads. /datum/asset/simple/markings_room (code/markings_room.dm) sends them with the preferences window, together
with a stylesheet it writes when it registers. That stylesheet declares each texture as a custom property on the room,
--mr-<file name without extension>, and each font as a face. The rooms' styles (tgui/.../styles/meridianos/) read a
texture as var(--mr-<name>, none). The few pixel props of a kilobyte or so stay inline in the bundle
(styles/meridianos/assets/markings/).
MeridianOS theme art - Art a MeridianOS theme draws with that is too big for tgui's bundle, which every window loads and the lobby inlines.
/datum/asset/simple/art_stylesheet (code/art_stylesheet.dm) sends a theme's files to its players' windows and lobby
with a stylesheet it writes when it registers, naming each texture as a custom property on the theme
(--mt-<file name without extension>) and each font as a face. Foundry's textures and its title and label faces are the
forge markings room's own files (modular_aphelion/modules/markings_room/assets/); what is here is the theme's own.
modular_ert/code - https://github.com/Skyrat-SS13/Skyrat-tg/pull/2946 & https://github.com/Skyrat-SS13/Skyrat-tg/pull/10662 for NTrauma
https://github.com/Skyrat-SS13/Skyrat-tg/pull/4781 for ODST
https://github.com/Skyrat-SS13/Skyrat-tg/pull/6440 for Fumigator and Engineer
https://github.com/Skyrat-SS13/Skyrat-tg/pull/5630 for Pizza
symphony - Discord-role whitelist gate for the server, paired with the SSymphony bridge (separate repo). Players must link their Discord and hold a configured role to enter a round, and are returned to the lobby (after a grace period) if they lose it.
golem - A blank area subtype solely used by the golem area editor for the purpose of
allowing golems to create new areas without suffering from the hazard_area debuffs.
icemoon - Ice Moon Areas
surface/outdoors/nospawn - this is the area you use for stuff to not spawn, but if you still want weather.
lavaland - Lavaland Areas
surface/outdoors
unexplored/danger/no_ruins - Same thing as parent, but uses a different map generator for the icemoon ruin that needs it.
cordon - Area used in conjunction with the cordon turf to create a fully functioning world border.
survivalpod - Survival Pod
ruin/space/has_grav
atmosasteroid - The Atmos Asteroid Ruin, has a subtype for rapid identification since this has some unique atmospherics properties and we can easily detect it if something goes wonky.
cargodise_freighter/primaryhall - Cargodise Lost Freighter defines
nova/des_two - DS2 Syndie Areas
outdoors - Port Tarkon
powered/nova/smugglies - Generic Nova Sector Ruins
syndicate_forgotten_ship - forgottenship areas
shuttle
abandoned - White Ship
custom - Custom Shuttles
hunter - Bounty Hunter Shuttles
pirate - Pirate Shuttle
ruin/caravan - Special shuttles made for the Caravan Ambush ruin.
command/eva - Set the areas that will receive expanded access for the engineers on an orange alert
Maintenance, bridge, departmental lobbies and inner rooms. No access to security.
Sensitive areas like the vault, command quarters, heads' offices, etc. are not applicable.
template_noop - Template noop (no operation) is used to skip a turf or area when the template is loaded this allows for template transparency
ex. if a ship has gaps in its design, you would use template_noop to fill these in so that when the ship moves z-level, any
tiles these gaps land on will not be deleted and replaced with the ships (empty) tiles
virtual_domain - VDOM
protected_space - Areas that virtual entities should not be in
safehouse - Safehouse
atom - The base type for nearly all physical objects in SS13
plane_master_controller - Atom that manages and controls multiple planes. It's an atom so we can hook into add_filter etc. Multiple controllers can control one plane.
Of note: plane master controllers are currently not very extensively used, because render plates fill a semi similar niche
This could well change someday, and I'd like to keep this stuff around, so we use it for a few cases just out of convenience
colorblind - Exists for convienience when referencing all game render plates
game - Exists for convienience when referencing all game render plates
non_master - Exists for convienience when referencing all non-master render plates.
This is the whole game and the UI, but not the escape menu.
render_plane_relay - Render relay object assigned to a plane master to be able to relay its render onto other planes that are not its own
render_step - Internal atom that uses render relays to apply "appearance things" to a render source
Branch, subtypes have behavior
color - Render step that modfies an atom's color
Useful for creating coherent emissive blockers out of things like glass floors by lowering alpha statically using matrixes
Other stuff too I'm sure
emissive - Render step that makes the passed in render source GLOW
emissive_blocker - Render step that makes the passed in render source block emissives
default - Plane master that byond will by default draw to
Shouldn't be used, exists to prevent people using plane 0
NOTE: If we used SEE_BLACKNESS on a map format that wasn't SIDE_MAP, this is where its darkness would land
This would allow us to control it and do fun things. But we can't because side map doesn't support it, so this is just a stub
emissive - Handles emissive overlays and emissive blockers.
floor - Contains just the floor
o_light_visual - This will not work through multiz, because of a byond bug with BLEND_MULTIPLY
Bug report is up, waiting on a fix
achievement_report - A datum containing the info necessary for an achievement readout, reported and added to the global list in /datum/award/achievement/on_unlock(mob/user)
Action system - A simple base for an modular behavior attached to atom or datum.
consume - This action lets you consume the mob you're currently pulling. I'M GONNA CONSUUUUUME (this is considered one of the funny memes in the 2019-2020 era)
cooldown - Preset for an action that has a cooldown.
exquisite_bunch - spawns a plumb bunch of bananas imbued with mystical power.
fugu_expand - Action which inflates you, making you larger and stronger for the duration. Also invulnerable.
This is pretty much all just handled by a status effect.
Unfortunately the requirements here are specific enough that it kind of only works for the mob it is designed for.
gel_cocoon - This action lets you put a mob inside of a cacoon that will inject it with some chemicals.
globules - Ability that allows the owner to fire healing globules at mobs, targeting specific limbs.
golem_ore_sight - Send an ore detection pulse on a cooldown
grand_ritual - The Grand Ritual is the Wizard's alternate victory condition
and also a tool to make funny distractions and progress the round state.
manual_heart - Action to pump your heart. Cooldown will always be set to 1 second less than the pump delay.
metabolicboost - This ability lets the gelatinious ooze speed up for a little bit
mob_cooldown
abdomen_pound - Rise into the air and slam down, knocking people away. No real cooldown but has escalating endlag if used in quick succession.
assume_form - Allows a mob to assume the form of another item or mob.
Warning, this will likely shit the bricks if you add this action to anything more sophisticated than a basic mob- this isn't built for anything carbon-wise.
Magicarp Bolt - Holder ability simply for "firing a projectile with a cooldown".
Probably won't do anything if assigned via VV unless you also VV in a projectile for it.
watcher_overwatch - Automatically shoot at a target if they do anything while this is active on them.
Currently not given to any mob, but retained so admins can use it.
web_effigy - Makes a solid statue which you can use as cover
wing_buffet - Rise into the air and slam down, knocking people away. No real cooldown but has escalating endlag if used in quick succession.
The spell action - This is the base action for how many of the game's
spells (and spell adjacent) abilities function.
These spells function off of a cooldown-based system.
sanguine_strike - Enchants an item to deal either double damage, or +20 damage, whichever is less, and lifesteals for that amount + steals some blood.
multiplication can get a little instakill-y, so capping it at + 20 damage.
10 force weapon doesn't get the cap and gains 10 damage, 20 total
20 force weapon gets the cap of 20 damage added for a total of 40
35 force weapon still gets the cap of 20 for a total of 55 instead of a whopping 70 damage
Steals 50 blood if they have enough. Splattercasting has one second of cooldown worth 5 blood, so 50 seconds cooldown of blood added!
scream_for_me - Weaker smite, not outright gibbing your target, but a lot more bloody, and Sanguine school, so doesn't get affected by splattercasting.
alter_form - Alter Form is the ability of slimes to edit many of their character attributes at will
This covers most thing about their character, from body size or colour, to adding new wings, tails, ears, etc, to changing the presence of their genitalia
There are some balance concerns with some of these (looking at you, body size), but nobody has abused it Yet:tm:, and it would be exceedingly obvious if they did
nif - The NIF version of alter form. This lacks the ability to change body color.
flight - hud action for starting and stopping flight
holosynth_toggle_phase - Action button that flips /datum/component/glass_passer/holosynth.auto_phase.
When off, bumping a window acts like bumping a wall — useful to avoid accidentally triggering the do_after.
sign_language - Allows a Carbon to toggle sign language on/off. The button is invisible for mute Carbons.
Theory of Operation:
A. If TRAIT_SIGN_LANG is added/removed, and the button is visible, then update the button.
B. React to presence of trait TRAIT_MUTE for quality/convenience purposes:
C. If TRAIT_MUTE is added, then activate and hide the Action.
D. If TRAIT_MUTE is then removed, then show the Action.
fish_on_water - speed bonus given by the fish tail organ when inside water.
status_effect/midas_blight - Get slower the more gold is in your system.
active_bet - The active bet that our app will create & use, handles following who owns the bet,
who is betting, and also takes care of paying out at the end.
addiction - base class for addiction, handles when you become addicted and what the effects of that are. By default you become addicted when you hit a certain threshold, and stop being addicted once you go below another one.
alcohol - Alcohol
medicine - Makes you a hypochondriac - I'd like to call it hypochondria, but "I could use some hypochondria" doesn't work
nicotine - Nicotine
opioids - Opioids
stimulants - Stimulants
admin_ai_template - Used to set up a basic AI controller on a mob for admin ease of use
ability - Maintain distance from a guy and use an ability on cooldown
melee - Walks at a guy and uses an ability on that guy
retaliate - Uses their signature move on anyone who attacks them
clear - Like I'm doing nothing at all, nothing at all
admin_verb - This is the admin verb datum. It is used to store the verb's information and handle the verb's functionality.
All of this is setup for you, and you should not be defining this manually.
That means you reader.
admin_change_title_screen - Enables an admin to upload a new titlescreen image.
change_title_screen_notice - Sets a titlescreen notice, a big red text on the main screen.
create_command_report - Verb to open the create command report window and send command reports.
dynamic_tester - Verb to open the create command report window and send command reports.
fix_title_screen - Reloads the lobby menu if it is bugged for someone.
graffiti_manager - Opens a Graffiti Manager window of the admin's own.
intensity_credits_panel - Allows an admin to open the panel
mass_modify_traits - Allow admin to mass add or remove a trait across all mobs
prompt_nova_painting_import - Let an authorized administrator request fresh player consent through the shared cooldown and import gate.
reta_manual_trigger - Request Emergency Temporary Access - Admin Verbs
Admin command to manually trigger RETA access grant for admins
spawn_atom - ADMIN HELPER PROCS
symphony_status - Both halves of the bridge in one place, for when the whitelist "just stops working".
test_area_spawner - Show overlay over area of priorities. Wall priority over open priority.
toggle_delam_suppression - Lets admins disable/enable the delam suppression system
toggleblooper - Admin verb to globally toggle vocal barks
try_stop_delam - Lets an admin activate the delam suppression system
blob_spore - As blob zombie but will prioritise attacking corpses to zombify them
blob_zombie - Move to a point designated by the overmind, otherwise just slap people nearby
blobbernaut - Extremely simple AI, this isn't a very smart boy
Only notable quirk is that it uses JPS movement, simple avoidance would fail to realise it can path through blobs
mega - Megacarps. The only difference is that they don't flee from scary fishermen and prioritize them.
passive - Carp which bites back, but doesn't look for targets and doesnt do as much damage
Still migrate and stuff
pet - Carp which bites back, but doesn't look for targets.
'Not hunting targets' includes food (and can rings), because they have been well trained.
ranged - AI for carp with a spell.
Flow is basically the same as regular carp, except it will try and cast a spell at its target whenever possible and not fleeing.
banana_spider - Same as a regular cockroach, but wanders less often (old walk_chance=10 vs the default 25).
glockroach - AI controller for roach who can shoot at you
mobroach - roach who shoots at you slightly slower
crab - The basic ai controller for crabs
cybersun_ai_core - how the ai core thinks
dog
borgi - Dog controller but with emag attack support
corgi - Same thing but with make tiny corgis and use access cards.
chadian - AI controller that adds chad ian emotes
markus - Corgi controller but with markus' own dialogue instead of the generic corgi barks.
giant_spider - Attacks people it can see, spins webs if it can't see anything to attack.
pest - Retaliates, hunts other maintenance creatures, runs away from larger attackers, and spins webs.
retaliate - Used by Araneus, who only attacks those who attack first. He is house-trained and will not web up the HoS office.
weak - Giant spider which won't attack structures
goat - Goats are normally content to sorta hang around and crunch any plant in sight, but they will go ape on someone who attacks them.
goose - Geese like to eat random objects and kill themselves, and occasionally get pissed off for no reason
calm - Goose who doesn't randomly retaliate but does still try to die by eating random items
gorilla - Pretty basic, just click people to death. Also hunt and eat bananas.
headslug - This is a bit neutered since these aren't intended to exist outside of player control, but it's a bit weird to just have these guys be completely stationary.
No attacking or anything like that, though. Just something so they seem alive.
hivelord - Basically just keep away and shit out worms
illusion - Standard Illusion behavior is primarily dependent on their context, whether they exist as a decoy or someone meant to retaliate against a threat (of varied origin)
For the time being however, the AI is very simple and doesn't rely on any advanced tactics. Just go to thing it was assigned to attack and attack it (if assigned, else wander around)
However, the action we undergo is based on the subtype of illusion we are and that's done on the mob subtype level.
escape - Escape subtype of illusions are made to flee from threats rather than attack them. They do not undergo any retaliation behavior.
We also want to account for the possibility of new threats attacking us and fleeing from those too, more randomness is ideal.
retaliate - Retaliate subtypes of escape illusions can fight back against threats that attack them, making them more dangerous.
legion - Keep away and launch skulls at every opportunity, prioritising injured allies
legion_brood - Chase and attack whatever we are targeting, if it's friendly we will heal them
legion_lesser - Opportunistically hops in and out of vents, if it can find one and is not biting someone.
lobstrosity/juvenile - Ensure that juveline lobstrosities witll charge at things they can reach.
calm - A subtype of juvenile lobster AI that has the target_retaliate behaviour instead of simple_find_target
capricious - A subtype of juvenile lobster AI that has the capricious_retaliate behaviour instead of simple_find_target
meteor_heart - A spellcasting AI which does not move
mimic_copy/gun/animator - Special controller for living wands/staffs of animation which will focus on animating more things
mook
bard - bard mook plays nice music for the village
support - healer mooks guard the village from intruders and heal the miner mooks when they come home
tribal_chief - the chief would rather command his mooks to attack people than attack them himself
morph - No fleshed out AI implementation, just something that make these fellers seem lively if they're just dropped into a station.
Only real human-powered intelligence is capable of playing prop hunt in SS13 (until further notice).
raptor/aggressive - Angry raptors with no faction check on retaliation
raw_prophet - Walk and attack people, blind them when we can
rust_walker - Converts unconverted terrain, sprays pocket sand around
simple - Basetype with normal parameters
simple_ability - Use an ability on target on cooldown
simple_ability_melee - Use an ability on target on cooldown, then try to punch them
simple_ability_ranged - Use an ability on target on cooldown, then try to shoot them
simple_capricious - Get pissed at random people for no reason
simple_fearful - Runs away from anyone it sees
simple_goon - Does what it is told and protects da boss
TODO: port pet command system to BT so pet_planning functions correctly
simple_hostile_obstacles - Find a target, walk at target, attack intervening obstacles
simple_ranged - Find a target, maintain distance, shoot them
simple_retaliate - Fight back if attacked
simple_skirmisher - Find a target, walk towards it AND shoot it
simple_skittish - Runs away when attacked
skeleton - Skeletons mostly just beat people to death, but they'll also find and drink milk.
sloth - They're really passive in game, so they just wanna get away if you start smacking them. No trees in space from them to use for clawing your eyes out, but they will try if desperate.
snake - Snakes are primarily concerned with getting those tasty, tasty mice, but aren't afraid to strike back at those who attack them
space_bat - Controller for space bats, has nothing unique, just retaliation.
spiderling - Opportunistically hops in and out of vents, if it can find one. We aren't interested in attacking due to how weak we are, we gotta be quick and hidey.
stalker - Changes shape and lies in wait when it has no target, uses EMP and attacks once it does
talk - Literally does nothing except random speech
true_changeling - Idle AI (only relevant while nobody is actually piloting the changeling): finds a target and tears into it, doesn't wander.
wumborian_fugu - Cowardly when small, aggressive when big. Tries to transform whenever possible.
young_spider - Used by all young spiders if they ever appear.
blood_drunk_miner - AI for handling blood-drunk miner behavior
General consideration is as follows:
cursed item ai! - Haunted AI tries to not be interacted with, and will attack people who do.
Cursed AI instead tries to be interacted with, and will attempt to equip itself onto people.
Added by /datum/element/cursed, and as such will try to remove this element and go dormant when it finds a victim to curse
ai_module - The base module type, which holds info about each ability.
malf
destructive - Modules causing destruction
blackout - Blackout: Overloads a random number of lights across the station. Three uses.
destroy_rcd - Destroy RCDs: Detonates all non-cyborg RCDs on the station.
lockdown - Hostile Station Lockdown: Locks, bolts, and electrifies every airlock on the station. After 90 seconds, the doors reset.
megahonk - HIGH IMPACT HONKING
nuke_station - Doomsday Device: Starts the self-destruct timer. It can only be stopped by killing the AI completely.
overload_machine - Overload Machine: Allows the AI to overload a machine, detonating it after a delay. Two uses per purchase.
override_machine - Override Machine: Allows the AI to override a machine, animating it into an angry, living version of itself.
upgrade - Modules that are improving AI abilities and assets
eavesdrop - Enhanced Surveillance: Enables AI to hear conversations going on near its active vision.
mecha_domination - Unlock Mech Domination: Unlocks the ability to dominate mechs. Big shocker, right?
upgrade_cameras - Upgrade Camera Network: EMP-proofs all cameras, in addition to giving them X-ray vision.
upgrade_turrets - AI Turret Upgrade: Increases the health and damage of all turrets.
utility - Modules with stealthy and utility uses
break_air_alarms - Air Alarm Safety Override: Unlocks the ability to enable dangerous modes on all air alarms.
break_fire_alarms - Thermal Sensor Override: Unlocks the ability to disable all fire alarms from doing their job.
emergency_lights - Disable Emergency Lights
place_cyborg_transformer - Robotic Factory: Places a large machine that converts humans that go through it into cyborgs. Unlocking this ability removes shunting.
reactivate_cameras - Reactivate Camera Network: Reactivates up to 30 cameras across the station.
ai_movement - This datum is an abstract class that can be overridden for different types of movement
basic_avoidance - Uses Byond's basic obstacle avoidance movement
backstep - Move immediately and don't update our facing
complete_stop - Come to a complete stop for a set amount of time.
dumb - The most brain-dead type of movement, bee-line to the target with no concern of whats in front of us.
jps - This movement datum represents smart-pathing
ai_status_display_picker - AI Status Display Picker TGUI
Allows AIs to select status display options with search functionality
enemy_of_the_state - When the station wins, any remaining living headrevs become Enemies of the State, a small solo antagonist.
They either have the choice to fuck off and do their own thing, or try and regain their honor with a hijack.
shade_minion - This datum is for use by shades who have a master but are not cultists.
Cult shades don't get it because they get the cult datum instead.
They are bound to follow the orders of their creator, probably a chaplain or miner.
Technically they're not 'antagonists' but they have antagonist-like properties.
wizard_prank_vendetta - Antag datum to give to people who want to kill the wizard.
This doesn't preclude other people choosing to want to kill the wizard, just these people are rewarded for it.
area_spawn_over - Spawns an atom on any turf that contains specific over atoms.
armor - The armor datum holds information about different types of armor that an atom can have.
It also contains logic and helpers for calculating damage and effective damage
admin - This overrides the TG version to not have 100% damage
100% resistance. This is still worse than you'd expect.
badmin - This one DOES have 100% damage resistance.
It's not as good as you'd expect (allegedly).
clothing_under
admin - Jumpsuits are unit tested for using a /datum/armor/clothing_under subtype, so the two above can't be used on the
techsuits. Single inheritance means the values have to be repeated here rather than shared - keep them in step.
wetsuit - Suit armor
crate_syndicrate - if the crate takes damage it will explode 25% of the time
immune - A version of armor that cannot be modified and will always return itself when attempted to be modified
item_tank - Closes the tank if dropped while open.
none - A version of armor with no protections
wetsuit_helmet - Helmet armor
armour_dimensional_theme - Datum describing a 'theme' which transforms a 3x3 area's turfs when applied.
It also creates a number of themed barriers in that area.
dangerous - Dangerous themes can potentially impede the user as much as people pursuing them
cyborg_model_gallery - Public stock artwork is encoded once per catalog generation, independently of
private layouts. Keep file resources and small indexes, not duplicate JSON lists.
acquisition_wait_test - Force the native acquisition wait without network clients or private snapshots.
json - A subtype to generate a JSON file from a list
art_stylesheet - Art too big for tgui's bundle, which every window loads and the lobby inlines: textures and fonts sent as asset files,
with a stylesheet written when the asset registers that names them by the URLs the asset transport gives them. Each
texture becomes a custom property on scope, property_prefix and its file's name without the extension, and each
font a face. A page loads the stylesheet as soon as it hears of it (loadMappings).
meridian_foundry - Foundry's art, for every Foundry window and the lobby (--mt-<file name> on the theme): the forge markings room's
cave, steel, wear and hide, its torches, its title and label faces, and the theme's own smoke (a portrait's arrival)
and running text face.
body_zones - Spritesheet for body zones. Necessary if your tgui uses BodyZoneSelector
condo_previews - Holds the preview picture of each interior. Filled in at round start by prerender_previews().
markings_room - The rooms' textures and fonts, which the preferences window gets with its other assets: in tgui's bundle, which every
window loads, every room's would weigh on every window. The stylesheet the asset writes when it registers
(art_stylesheet.dm) declares each texture as a custom property on the room, --mr- and its file's name without the
extension, and each font as a face. The lists are in markings_room_assets.dm.
namespaced - Namespace'ed assets (for static css and html files)
When sent over a cdn transport, all assets in the same asset datum will exist in the same folder, as their plain names.
Used to ensure css files can reference files by url() without having to generate the css at runtime, both the css file and the files it depends on must exist in the same namespace asset datum. (Also works for html)
For example blah.css with asset blah.png will get loaded as namespaces/a3d..14f/f12..d3c.css and namespaces/a3d..14f/blah.png. allowing the css file to load blah.png by a relative url rather then compute the generated url with get_url_mappings().
The namespace folder's name will change if any of the assets change. (excluding parent assets)
lobby_menu_icons - Registers all PNG/APNG files from icons/hud/lobby/png/ as named assets.
To add a new lobby icon, just drop a .png file in that directory.
antagonists - Sprites generated for the antagonists panel
augment_brands - Every brand style's augment limbs for the finish picker's try-on, kept out of the preferences window's own load: the window
asks for it once, ahead of the Augments room (/datum/preference_middleware/augment_paint/proc/send_augment_brand_sprites()).
Made and cached as the other batched spritesheets are.
augment_paint - The recolourable finishes' sheets cut up for the colour editor's preview, which tints them on the client. Rebuilt only when a
sheet changes (the batched spritesheet's smart cache).
preferences - Assets generated from /datum/preference icons
species_full - Whole-body renders for the species page, facing each way: this sheet in uniform, and
/datum/asset/spritesheet_batched/species_full/body without.
body - Without uniform. Sent only once someone turns a specimen to its body.
asset_cache_item - An internal datum containing info on items in the asset cache. Mainly used to cache md5 info for speed.
achievement - Achievements are one-off awards for usually doing cool things.
mafia
assistant - ALL THE ACHIEVEMENTS FOR WINNING A ROUND AS A ROLE
universally_hated - ALL THE ACHIEVEMENTS FOR MISC MAFIA ODDITIES
misc
custom_graffiti_painted - The painter's award for their first finished custom graffiti piece, from a paint job or a freehand session.
custom_style_given - The artist's award for applying someone else's accepted custom hair or facial hair.
custom_style_received - The recipient's award for accepted custom hair or facial hair someone else applied.
custom_tattoo_given - The artist's award for applying someone else's accepted custom tattoo.
custom_tattoo_received - The recipient's award for an accepted custom tattoo someone else applied.
score - Scores are for leaderboarded things, such as killcount of a specific boss
achievements_score - Defining this here 'cause it's the first score a player should see in the Scores category.
hardcore_random - How many times did we survive being a cripple?
intento_score - How high of a score on the Intento did we get?
maintenance_pill - How many maintenance pills did you eat?
progress - A subtype of score linked to a schema table containing objects the player has caught, made, found or otherwise achieved.
The value of the score should equal to the length of objects that have been achieved.
It also has an unique tab in the UI that lets you review the progress.
style_score - What's the highest amount of style points we've gotten?
basketball_controller - The basketball controller handles the basketball minigame in progress.
It is first created when the first ghost signs up to play.
leash - The leash's line, blank while the ends are out of reach. It leaves the outer edge of the holding hand, with offsets
read off the human body sprite. West mirrors east.
biological_sample - This datum is a simple holder for the micro_organisms in a sample.
biome - This datum handles the transitioning from a turf to a specific biome, and handles spawning decorative structures and mobs.
bitfield - Specifies a bitfield for smarter debugging
bitrunning_gimmick - The datum used by the gimmick loadout disk to determine what a loadout actually spawns.
other - Markings of no family, on the other_markings sheet unless they name another. Those with a colour of their own start in it
(MARKING_COLOR_FIXED_DEFAULT); the rest follow the primary mutant colour.
splotches_swapped - The head splotch mirrored, on the other side of the face: a set of its own, so the Splotches preset keeps one.
synthliz
lights - Three lights at the collar (secondary) and eight down the chest's sides (tertiary): two sheets, two colours, no pixel in common.
plates - The plates frame the scutes, drawn over their edge (facing south); from behind only the plates draw.
body_marking_test_lock - Locks a marking while the unit test that allocates this lives, and gives it its own colour mode back when the test ends. No
marking ships locked: the mode stays for content that wants it, and its tests lock a tattoo, which has a colour of its own.
bodypart_overlay - Bodypart ovarlay datum. These can be added to any limb to give them a proper overlay, that'll even stay if the limb gets removed
This is the abstract parent, don't use it!!
custom_marking - A drawing painted on a bodypart, clipped to the limb's own geometry. Subtypes keep a limb's zone, hand and taur paint apart.
taur - Lower-body paint uses the actual taur organ, never its invisible leg slots.
zone - The taur zone's own paint on the chest.
zone - A limb zone's own paint.
hand - Hand paint belongs to the arm limb, alongside that arm's own zone drawing.
dirt_skin - A limb's skin mess: one container image at DIRT_SKIN_LAYER holding the limb's baked image, so a limb adds one overlay
to its person whatever the splats. It lies under the underclothes, the genitals and everything worn. The masks are
its carrier's, clipped to the pixels the limb shows, fading out beside what's worn over them.
dirt_underclothes - A person's mess on their underclothes: one container image on the chest at DIRT_UNDERCLOTHES_LAYER, over the
underclothes and under the uniform, holding the baked image of each piece worn and shown, already kept to the pixels
it shows.
mutant - Variant of bodypart_overlay meant to work synchronously with external organs. Gets imprinted upon Insert in on_species_gain
antennae - Moth antennae datum, with full burning functionality