__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.
research - Techweb names for new point types. Can be used to define specific point values for specific types of research (science, security, engineering, etc.)
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.
Learn AI - In ye olde days, we designed mob AI, and we built it into simple animals as they were the "non player controlled" mobs. Made sense at the time. But by coding AI directly into the mob, there was so little ability to make unique or complicated AI, and even when it was pulled off the code was hacky and non-reusable. the datum AI system was made to rectify these problems, and expand AI beyond just mobs.
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.
material/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.
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.
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.
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?)
Progression Traitor Balance Guide - This guide will explain how the values for progression traitor works, how to balance progression traitors and what you should NOT do when balancing.
This guide will only explain progression values.
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.
area - A grouping of tiles into a logical space, mostly used by map editors
centcom/voidwalker_void - Voidwalker void where the people go
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.
virtual_domain - Custom subtypes
mine - Mine areas
misc
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.
syndicate_forgotten_ship - forgottenship areas
shuttle
abandoned - White Ship
hunter - Bounty Hunter Shuttles
pirate - Pirate Shuttle
ruin/caravan - Special shuttles made for the Caravan Ambush ruin.
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
flick_visual - Helper atom that copies an appearance and exists for a period
immerse_overlay - The not-quite-perfect movable used by the immerse element for its nefarious deeds.
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.
avatar_domain_info - Displays information about the current virtual domain.
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
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.
regurgitate - This ability will let you fire one random item from your pouch,
rustle - drops peels around the mob when activated
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.
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.
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_book_viewer - Weaps around a book's sql data, feeds it into a ui that allows us to at base view the contents of the book
admin_message - Represents a message stored in the db
admin_pda_panel - Panel
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.
create_command_report - Verb to open the create command report window and send command reports.
dog - Pursue the target, growl if we're close, and bite if we're adjacent
Dogs are actually not very aggressive and won't attack unless you approach them
Adds a floor to the melee damage of the dog, as most pet dogs don't actually have any melee strength
goliath - Go for the tentacles if they're available
interact_once/extinguish - behavior to extinguish mobs or turfs
magicarp - Interrupt your attack chain if: you have a spell, it's not on cooldown, and it has a target
opportunistic - Attack something which is already adjacent to us without moving
capricious_retaliate - Add or remove people to our retaliation shitlist just on an arbitrary whim
cover_minimum_distance - instead of taking a single step, we cover the entire distance
crawl_through_vents - We hop into the vents through a vent outlet, and then crawl around a bit. Jolly good times.
This also assumes that we are on the turf that the vent outlet is on. If it isn't, shit.
Warning: this was really snowflake code lifted from an obscure feature that likely has not been touched for over five years years.
Something that isn't implemented is the ability to actually crawl through vents ourselves because I think that's just a waste of time for the same effect (instead of psuedo-teleportation, do REAL forceMoving)
If you are seriously considering using this component, it would be a great idea to extend this proc to be more versatile/less overpowered - the mobs that currently implement this benefit the most
since they are weak as shit with only five health. Up to you though, don't take what's written here as gospel.
deliver_fetched_item - The second half of fetching, deliver the item to a target.
drag_target_to_rune - behavior to drag the target onto the rune
drop_item - Drops items in hands, very important for future behaviors that require the pawn to grab stuff
eat_fetched_snack - The alternate second half of fetching, attack the item if we can eat it.
Or make pleading eyes at someone who has picked it up.
fetch_seek - Traverse to a target with the intention of picking it up.
If we can't do that, add it to a list of ignored items.
move_to_cardinal - Try to line up with a cardinal direction of your target
move_to_target - Moves to target then finishes
perch_on_target - Parrot behavior that allows them to perch on a target.
pet_follow_friend - Just keep following the target until the command is interrupted
pet_use_ability - Pet owners can't see their pet's ability cooldowns so we keep attempting to use an ability until we succeed
pick_up_item - Simple behaviour for picking up an item we are already in range of.
The blackboard storage key isn't very safe because it doesn't make sense to register signals in here.
Use the AI held item component to manage this.
search_burning_turfs - behavior to find burning turfs
setup_shop - The ai will create a shop the moment they see a potential costumer
sleep_after_targetless_time - Disables AI after a certain amount of time spent with no target, you will have to enable the AI again somewhere else
spin_web - Move to an unwebbed nearby turf and web it up
step_away - Take one step away
Step towards turf - Moves a short distance towards a location repeatedly until you arrive at the destination.
You'd use this over travel_towards if you're travelling a long distance over a long time, because the AI controller has a maximum range.
Step towards turf in area - Moves a short distance towards a location in an area
Unlike step_towards_turf it will reacquire a new turf from the area if it loses its target
stop_and_stare - Makes a mob simply stop and stare at a movable... yea...
target_from_retaliate_list - Picks a target from a provided list of atoms who have been pissing you off
You will probably need /datum/element/ai_retaliate to take advantage of this unless you're populating the blackboard yourself
nearest - As above but targets have been filtered from the 'retaliate' blackboard list
Targeted Mob Ability - Attempts to use a mob's cooldown ability on a target
Try Mob Ability and clear target - Attempts to use a mob's cooldown ability on a target and releases the target when the action completes
vibebot_party - behavior we use to party with people
Try Mob Ability and plan execute - Attempts to use a mob's cooldown ability on a target and then move the target into a special target blackboard datum
Doesn't need another subtype to clear BB_BASIC_MOB_EXECUTION_TARGET because it will be the target key for the normal action
tipped_reaction - type of tipped reaction that is akin to puppy dog eyes
Travel Towards - Moves towards the atom in the passed blackboard key.
Planning continues during this action so it can be interrupted by higher priority actions.
Travel Towards Atom - Travel towards an atom you pass directly from the controller rather than a blackboard key.
You might need to do this to avoid repeating some checks in both a controller and an action.
use_in_hand - Use in hand the currently held item
use_mob_ability/shapeshift - Selects a random shapeshift ability before shifting
use_on_object - Use the currently held item, or unarmed, on a weakref to an object in the world
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.
crab - The basic ai controller for crabs
cybersun_ai_core - how the ai core thinks
dog/corgi - Same thing but with make tiny corgis and use access cards.
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.
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
leaper - so they dont attack the leaper or the wizard master
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_monkey - 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
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).
mouse - The mouse AI controller
guaranteed_to_bite - Dummy mouse's ai controller that is guaranteed to find and bite a cable beneath it
rat - AI controller for rats, slightly more complex than mice becuase they attack people
raw_prophet - Walk and attack people, blind them when we can
rust_walker - Converts unconverted terrain, sprays pocket sand around
simple_hostile - The most basic AI tree which just finds a guy and then runs at them to click them
simple_hostile_obstacles - Find a target, walk at target, attack intervening obstacles
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
wizard - Wizards run away from their targets while flinging spells at them and blinking constantly.
wumborian_fugu - Cowardly when small, aggressive when big. Tries to transform whenever possible.
young_spider - Used by all young spiders if they ever appear.
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_planning_subtree - A subtree is attached to a controller and is occasionally called by /ai_controller/SelectBehaviors(), this mainly exists to act as a way to subtype and modify SelectBehaviors() without needing to subtype the ai controller itself
extinguishing_people - subtree for extinguishing people
extinguishing_turfs - subtree for finding turfs to extinguish
find_and_hunt_target - Tells the AI to find a certain target nearby to hunt.
If a target has been found, we will start to move towards it, and eventually attack it.
baby_egg - find our child's egg and pull it!
break_boulders - break boulders so that we can find more food!
corpses - Find and attack corpses
human - Find and attack specifically human corpses
destroy_surveillance - destroy surveillance objects to boost our stealth
drill_ice - subtree to find diggable ice we can fish from!
drink_water - subtree to go around drinking water
food_trough - consume food!
graze - subtree to go around grazing
harvest_vents - break boulders so that we can find more food!
hunt_ores - consume food!
minebot - store ores in our body
mook - hunt ores that we will haul off back to the village
tribal_chief - find an ore, only pick it up when a mook brings it close to us
injured_mooks - find injured miner mooks after they come home from a long day of work
look_for_cables/guaranteed - Cable hunting subtree that's guarantee to hunt its target.
mark_territory - subtree to mark trees as territories
material_stand - deposit ores into the stand!
penguin_egg - subtree to find baby eggs!
find_dead_cultist - find targets that we can revive
find_food - similar to finding a target but looks for food types in the // the what?
find_nearest_magicarp_spell_target - Find a target for the magicarp's spell
This gets weird because different spells want different targeting
but I didn't want a new ai controller for every different spell
fish_from_turfs - less expensive fishing behavior!
fix_window - subtree to repair machines with welders
flee_target - Try to escape from your current target, without performing any other actions.
from_fisherman - A subtype that forces the mob to flee from targets with the scary fisherman trait anyway.
from_flee_key - Try to escape from your current target, without performing any other actions.
Reads from some fleeing-specific targeting keys rather than the current mob target.
legion - Don't run away from friendlies
mega_arachnid - spray slippery acid as we flee!
mouse - Don't look for anything to run away from if you are distracted by being adjacent to cheese
Pet Planning - Perform behaviour based on what pet commands you have received. This is delegated to the pet command datum.
When a command is set, we blackboard a key to our currently active command.
The blackboard also has a weak reference to every command datum available to us.
We use the key to figure out which datum to run, then ask it to figure out how to execute its action.
play_music_for_visitor - find an audience to follow and play music for!
play_with_friends - subtree to go around playing with other deers
prepare_travel_to_destination - Subtree that checks if we are on the target atom's tile, and sets it as a travel target if not
The target is taken from the blackboard. This one always requires a specific implementation.
simple_find_wounded_target - Selects the most wounded potential target that we can see
sleep_with_no_target - Disables AI after a certain amount of time spent with no target, you will have to enable the AI again somewhere else
meteor_heart - After enough time with no target, deaggro and change animation state
spin_web - Run the spin web behaviour if we have an ability to use for it
stare_at_thing - Locate a thing (practically any atom) to stop and stare at.
target_retaliate - Sets the BB target to a mob which you can see and who has recently attacked you
to_flee - Places a mob which you can see and who has recently attacked you into some 'run away from this' AI keys
Can use a different targeting strategy than you use to select attack targets
Not required if fleeing is the only target behaviour or uses the same target datum
use_mob_ability - Simple behaviours which simply try to use an ability whenever it is available.
For something which wants a target try targeted_mob_ability.
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.
soultrapped_heretic - a heretic that got soultrapped by cultists. does nothing, other than signify they suck
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.
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
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
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
body_zones - Spritesheet for body zones. Necessary if your tgui uses BodyZoneSelector
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)
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
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.
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!!
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
cat_ears - Bodypart overlay for the horrible cat ears
mushroom_cap - Bodypart overlay for the mushroom cap organ
pod_hair - Podperson bodypart overlay, with special coloring functionality to render the flowers in the inverse color
spines - Bodypart overlay for spines
tail - Tail parent type, with wagging functionality
cat - Cat tail bodypart overlay
lizard - Lizard tail bodypart overlay datum
monkey - Monkey tail bodypart overlay
tail_spines - Bodypart overlay for tail spines. Handled by the tail - has no actual organ associated.
wings - Bodypart overlay of default wings. Does not have any wing functionality
functional - Bodypart overlay of function wings, including open and close functionality!
moth - Moth wing bodypart overlay, including burn functionality!
simple - For simple overlays that really dont need to be complicated. Sometimes icon_state and icon is enough
Remember to set the layers or shit wont work
bags - bags drawn beneath the eyes
body_marking - For body markings applied on the species, which need some extra code
Callback Datums - A datum that holds a proc to be called on another object, used to track proccalls to other objects
verb_callback - like normal callbacks but they also record their creation time for measurement purposes
they also require the same usr/user that made the callback to both still exist and to still have a client in order to execute
callback_select - Helper datum for the select callbacks proc
centcom_announcer - Data holder for the announcers that can be used in a game, this can be used to have alternative announcements outside of the default e.g.the intern
custom - So this one's kind of a "failed" result, but also a "custom" result
Getting to this temperature and having no other soup reaction made means you're either messing something up
or you simply aren't following a recipe. So it'll just combine
metalgen - Random recipe for meme chem metalgen. Always requires wittel and resets every 3 days
slime - End example
surfactant - foam and foam precursor
virus_food - VIROLOGY
cinematic - Cinematic datum. Used to show an animation to everyone.
cult_arm - A blood cult summoned Nar'sie, and most of the station was harvested or converted!
cult_fail - A blood cult summoned Nar'sie, but some badass (or admin) managed to destroy Nar'sie themselves.
malf - A malfunctioning AI has activated the doomsday device and wiped the station!
nuke - Simple, base cinematic for all animations based around a nuke detonating.
clown - The clown operative nuclear bomb was activated and clowned the station!
cult - A blood cult summoned Nar'sie, but central command deployed a nuclear package to stop them.
fake - A fake version of the nuclear detonation, where it winds up, but doesn't explode.
far_explosion - The syndicate nuclear bomb was activated, but just missed the station by a whole z-level!
mutual_destruction - The syndicate nuclear bomb was activated, and the nuclear operatives failed to extract on their shuttle before it detonated on the station!
no_core - A fake version of the nuclear detonation, where it winds up, but doesn't explode as the nuke core within was missing.
ops_miss - The syndicate nuclear bomb was activated, but just barely missed the station!
ops_victory - The syndicate nuclear bomb was activated, and destroyed the station!
self_destruct - The self destruct, or another station-destroying entity like a blob, destroyed the station!
self_destruct_miss - The self destruct was activated, yet somehow avoided destroying the station!
circuit_composite_template - A template used to make composite datatypes for circuits.
Used so that we don't have to generate every single possible combination of types
circuit_datatype - A circuit datatype. Used to determine the datatype of a port and also handle any additional behaviour.
circuit_variable - A circuit variable that holds the name, the datatype and the colour of the variable (taken from the datatype).
client_colour - Client Colour Priority System By RemieRichards (then refactored by another contributor)
A System that gives finer control over which client.colour value to display on screen
so that the "highest priority" one is always displayed as opposed to the default of
"whichever was set last is displayed".
halloween_helmet - A client colour that makes the screen look a bit more grungy, halloweenesque even.
client_interface - This should match the interface of /client wherever necessary.
colorblind_tester - Used to test the game for issues with different types of color blindness
WARNING ASSHOLE: Because we can only apply matrixes, and can't preform gamma correction
https://web.archive.org/web/20220227030606/https://ixora.io/projects/colorblindness/color-blindness-simulation-research/
The results of this tool aren't perfect. It's way better then nothing, but IT IS NOT A PROPER SIMULATION
Please do not make us look like assholes by assuming it is. Thanks.
colored_assistant - Defines a style of jumpsuit/jumpskirt for assistants.
Jumpsuit and jumpskirt lists should match in colors, as they are used interchangably.
solid - Will pick one color, and stick with it
comm_log_entry - Simple log entry datum for the telecommunication server
command_report_menu - Datum for holding the TGUI window for command reports.
acid - Component representing acid applied to an object.
Must be attached to an atom.
Processes, repeatedly damaging whatever it is attached to.
If the parent atom is a turf it applies acid to the contents of the turf.
If not being applied to a mob or turf, the atom must use the integrity system.
action_item_overlay - Apply to an action to allow it to take an item
and apply it as an overlay of the action button
admin_popup - Applied to clients when they receive an admin popup, alerting them to
their ticket.
aggro_emote - A component for ai-controlled atoms which plays a sound if they switch to a living target which they can attack
ai_listen_to_weather - given to a mob to set a key on or off when a storm is coming or ending
ai_retaliate_advanced - Attached to a mob with an AI controller, passes things which have damaged it to a blackboard.
The AI controller is responsible for doing anything with that information.
Differs from the element as it passes new entries through a callback.
ai_target_timer - Increments a blackboard key while the attached mob is engaged with a particular target, does nothing else on its own
amputating_limbs - This component will intercept bare-handed attacks by the owner on sufficiently injured carbons and amputate random limbs instead
anti_magic - This provides different types of magic resistance on an object
appearance_on_aggro - Changes visuals of the attached mob while it has a target
aquarium_content - Allows movables to be inserted/displayed in aquariums.
area_based_godmode - Area-based godmode.
Gain and Lose message can only be set once, at initial component creation; adding a source will not update them.
area_sound_manager - Allows you to set a theme for a set of areas without tying them to looping sounds explicitly
areabound - Movables with this component will automatically return to their original turf if moved outside their initial area
atmos_reaction_recorder - Component for atmos-related atoms to be able to record and transmit their reaction_results data
Use this ONLY for atoms, gasmixtures will be accessed by calling return air on the object.
Add this component after gasmixes has been initialized.
aura_healing - Applies healing to those in the area.
Will provide them with an alert while they're in range, as well as
give them a healing particle.
Can be applied to those only with a trait conditionally.
basic_mob_attack_telegraph - Delays outgoing attacks which are directed at mobs to give players time to get out of the way
basic_ranged_ready_overlay - Fade in an overlay x seconds after a basic mob makes a ranged attack
Indicates that it will be ready to fire again
bayonet_attachable - Component which allows you to attach a bayonet to an item,
be it a piece of clothing or a tool.
bitrunning_points - Attaches to a turf so it spawns a crate when a certain amount of points are added to it.
blob_minion - Common behaviour shared by things which are minions to a blob
blood_walk - Blood walk, a component that causes you to make blood wherever you walk.
bloodysoles - Component for clothing items that can pick up blood from decals and spread it around everywhere when walking, such as shoes or suits with integrated shoes.
feet - Like its parent but can be applied to carbon mobs instead of clothing items
boomerang - If an ojvect is given the boomerang component, it should be thrown back to the thrower after either hitting its target, or landing on the thrown tile.
Thrown objects should be thrown back to the original thrower with this component, a number of tiles defined by boomerang_throw_range.
boss_music - Attaches to a hostile simplemob and plays that music while they have a target.
bubble_icon_override - A component that overrides the bubble_icon variable when equipped or implanted
while having a simple priority system, so accessories have higher priority than
organs, for example.
bullet_intercepting - Component which allows an equipped item to occasionally absorb a projectile.
burning - Component representing an atom being on fire.
Should not be used on mobs, they use the fire stacks status effects.
Can only be used on atoms that use the integrity system.
callouts - Component that allows its owner/owner's wearer to use callouts system - their pointing is replaced with a fancy radial which allows them to summon glowing markers
caltrop - Caltrop element; for hurting people when they walk over this.
can_flash_from_behind - This mob can flash others from behind and still get at least a partial
circuit_component_add_port - Helper component that handles users adding/removing ports from a circuit component.
cleaner - Component that can be used to clean things.
Takes care of duration, cleaning skill and special cleaning interactions.
A callback can be set by the datum holding the cleaner to add custom functionality.
Soap uses a callback to decrease the amount of uses it has left after cleaning for example.
clickbox - This component adds a near-invisible underlay to a movable target to expand the clickable surface of its icon without
resorting to MOUSE_OPACITY_OPAQUE.
The underlay ignores the parent's color and alpha and can be offset.
The name is a portmanteau of "click" and "hitbox", because technically this isn't an hitbox,
but it helps catch clicks, and I don't want to give it a loooong name like openspace_item_click_handler
clothing_dirt - This component applies tint to clothing when its exposed to pepperspray, used in /obj/item/clothing/mask/gas.
clothing_fov_visor - An element to add a FOV trait to the wearer, removing it when an item is unequipped, but only as long as the visor is up.
codeword_hearing - Component that allows for highlighting of words or phrases in chat based on regular expressions.
connect_containers - This component behaves similar to connect_loc_behalf, but it's nested and hooks a signal onto all MOVABLES containing this atom.
connect_loc_behalf - This component behaves similar to connect_loc, hooking into a signal on a tracked object's turf
It has the ability to react to that signal on behalf of a separate listener however
This has great use, primarily for components, but it carries with it some overhead
So we do it separately as it needs to hold state which is very likely to lead to bugs if it remains as an element.
connect_mob_behalf - This component behaves similar to connect_loc_behalf, but working off clients and mobs instead of loc
To be clear, we hook into a signal on a tracked client's mob
We retain the ability to react to that signal on a separate listener, which makes this quite powerful
connect_range - This component behaves similar to connect_loc_behalf but for all turfs in range, hooking into a signal on each of them.
Just like connect_loc_behalf, It can react to that signal on behalf of a separate listener.
Good for components, though it carries some overhead. Can't be an element as that may lead to bugs.
container_item - Container item, an item which can be stored by specialized containers.
tank_holder - Tank holder item - Added to an object which can be added to a tank holder.
convey - Manages the loop caused by being on a conveyor belt
Prevents movement while you're floating, etc
Takes the direction to move, delay between steps, and time before starting to move as arguments
cracked - Tracks damage to add or remove crack overlays, when none are needed this components is qdeleted
crate_carrier - Component for simplemobs and basicmobs that allow them to carry crates.
ctf_player - A component added to the mind of anyone who is playing in an ongoing CTF match. Any player specific CTF functionality should be implemented here. (someone should implement score tracking here)
Custom Atom Component - When added to an atom, item ingredients can be put into that.
The sprite is updated and reagents are transferred.
damage_aura - Applies a status effect and deals damage to people in the area.
Will deal more damage the more people are present.
damage_chain - Draws a line between you and another atom, hurt anyone stood in the line
dart_insert - Component for allowing items to be inserted into foam darts.
The parent can register signal handlers for COMSIG_DART_INSERT_ADDED,
COMSIG_DART_INSERT_REMOVED to define custom behavior for when the item
is added to/removed from a dart, and COMSIG_DART_INSERT_GET_VAR_MODIFIERS
to define the modifications the item makes to the vars of the fired projectile.
decomposition - Makes things decompose when exposed to germs. Requires /datum/component/germ_sensitive to detect exposure.
dejavu - A component to reset the parent to its previous state after some time passes
timeline - differently themed dejavu for modsuits.
deployable - Deployable - Bring your big guns with you, and smack em' down where you want.
direct_explosive_trap - Responds to certain signals and 'explodes' on the person using the item.
Differs from interaction_booby_trap in that this doesn't actually explode, it just directly calls ex_act on one person.
egg layer component! - Component that manages how many eggs to lay, what can be fed to the mob to make them lay more, and what is actually laid.
Since the only real interaction with the component is an attackby, the nice part is that we're able to make this an atom level proc.
egg_layer will loudly fail if you do not provide it the arguments, as to encourage explicicy(?)
electrified_buckle component: - attach it to any atom/movable that can be buckled to in order to have it shock mobs buckled to it. by default it shocks mobs buckled to parent every shock_loop_time.
the parent is supposed to define its behavior with arguments in AddComponent
engraved component! - component for walls that applies an engraved overlay and lets you examine it to read a story (+ art element yay)
new creations will get a high art value, cross round scrawlings will get a low one.
MUST be a component, though it doesn't look like it. SSPersistence demandeth
Experiment Handler - This is the component for interacting with experiments from a connected techweb. It is generic
and should be set-up to automatically work on any class it is attached to without outside code
(Excluding potential callbacks)
explodable - Component specifically for explosion sensetive things, currently only applies to heat based explosions but can later perhaps be used for things that are dangerous to handle carelessly like nitroglycerin.
focused_attacker - Increases our attack damage every time we attack the same target
Not compatible with any other component or status effect which modifies attack damage
food_storage - --Food storage component--
This component lets you slide one item into large foods, such as bread, cheese wheels, or cakes.
Consuming food storages with an item inside can cause unique interactions, such as eating glass shards.
force_move - Forced directional movement, but with a twist
Let's block pressure and client movements while doing it so we can't be interrupted
Supports spinning on each move, for lube related reasons
fov_handler - Component which handles Field of View masking for clients. FoV attributes are at /mob/living
gas_leaker - A component to leak gas over time from damaged objects with gas storage
geiger_sound - Atoms with this component will play sounds depending on nearby radiation
germ_sensitive - Makes items infective if left on floor, also sending corresponding signals to parent
ghost_direct_control - Component which lets ghosts click on a mob to take control of it
ghost_edible - Allows ghosts to eat this by orbiting it
They do this by consuming the reagents in the object, so if it doesn't have any then it won't work
hat_stabilizer - Allows players to place hats on the atom this is attached to
haunted_item - Makes our item SUPER spooky!
Adds the haunted element and some other bonuses
hazard_area - This is a relatively simple component that attempts to deter the parent of the component away
from a specific area or areas. By default it simply applies a penalty where all movement is
four times slower than usual and any action that would affect your 'next move' has a penalty
multiplier of 4 attached.
Healing Touch component - A mob with this component will be able to heal certain targets by attacking them.
This intercepts the attack and starts a do_after if the target is in its allowed type list.
heirloom - Heirloom component. For use with the family heirloom quirk, tracks that an item is someone's family heirloom.
hide_weather_planes - Component that manages a list of plane masters that are dependent on weather
Force hides/shows them depending on the weather activity of their z stack
Transparency is achieved by manipulating the alpha of the planes that are visible
Applied to the plane master group that owns them
itembound - When a movable has this component AND they are in the contents of a container, they will no longer be able to use their hands and be immobilized until they are removed from the container. So far, this is only useful for smites.
knockoff - Items with this component will have a chance to get knocked off
(unequipped and sent to the ground) when the wearer is disarmed or knocked down.
leanable - Things with this component can be leaned onto, optionally exclusive to RMB dragging
leash - Keeps the parent within the distance of its owner as naturally as possible,
but teleporting if necessary.
life_link - A mob with this component passes all damage (and healing) it takes to another mob, passed as a parameter
Essentially we use another mob's health bar as our health bar
light_eater - Makes anything it attaches to capable of removing something's ability to produce light until it is destroyed
ling_decoy_brain - Component applied to ling brains to make them into decoy brains, as ling brains are vestigial and don't do anything
listen_and_repeat - Simple element that will deterministically set a value based on stuff that the source has heard and will then compel the source to repeat it.
Requires a valid AI Blackboard.
Living Heart Component - Applied to a heart to turn it into a heretic's 'living heart'.
The living heart is what they use to track people they need to sacrifice.
lockable_storage - ##lockable_storage
Adds a UI to the object that triggers when you use it in hand (if item) or attack (everything else).
The UI is a lock that, when unlocked, allows you to access the contents inside of it.
When using this, make sure you have icons for on_update_icon_state.
Mind Linker - A component that handles linking multiple player's minds
into one network which allows them to talk directly to one another.
Like telepathy but for multiple people at once!
active_linking - Subtype of mind linker (I know) which is more active rather than passive,
which involves the master linking people manually rather than people being added automatically.
mob_chain - Component allowing you to create a linked list of mobs.
These mobs will follow each other and attack as one, as well as sharing damage taken.
mob_harvest - Harvesting component. Useful if you want to be able to harvest items from living mobs.
multiple_lives - A simple component that spawns a mob of the same type and transfers itself to it when parent dies.
For more complex behaviors, use the COMSIG_ON_MULTIPLE_LIVES_RESPAWN comsig.
npc_friendly - Makes a mob friendly with most NPC factions
Nuclear Bomb Operator - Component applied to handless non-carbon mobs to allow them to perform the function of a nuclear operative.
Effectively this means they need to be able to:
Obeys Commands Component - Manages a list of pet command datums, allowing you to boss it around
Creates a radial menu of pet commands when this creature is alt-clicked, if it has any
object_possession - Component that allows a user to control any object as if it were a mob. Does give the user incorporeal movement.
omen - omen.dm: For when you want someone to have a really bad day
bible - The bible omen.
While it lasts, parent gets a cursed aura filter.
quirk - The quirk omen. Permanent.
Has only a 50% chance of bad things happening, and takes only 25% of normal damage.
smite - The smite omen. Permanent.
onwear_mood - Add to clothing to give the wearer a mood buff and a unique examine text
overlay_lighting - Movable atom overlay-based lighting component.
palette - A component that stores colors for use by painting-related items like spraycans or palettes
which can be accessed through a radial menu by right clicking the item while it's held by the user mob.
Right-clicking a color will open a color input prompt to edit it. Left clicking will instead select it
and call set_painting_tool_color() on the parent for more specific object behavior.
parriable_projectile - Add to a projectile to allow it to be parried by mobs with a certain trait (TRAIT_MINING_PARRYING by default)
payment - Handles simple payment operations where the cost of the object in question doesn't change.
plane_hide_highest_offset - Component that takes a plane master, and will hide it if it's the highest offset of its kind
This allows us to not show PMs to clients if they're not actively doing anything
acidic_input - Special connect that we currently use for reaction chambers. Being used so we can keep certain inputs separate, like into a special internal acid container
alkaline_input - Special connect that we currently use for reaction chambers. Being used so we can keep certain inputs separate, like into a special internal base container
aquarium - Lazily demand from any direction. Overlays won't look good, and the aquarium sprite occupies about the entire 32x32 area anyway.
filter - The magical plumbing component used by the chemical filters. The different supply connects behave differently depending on the filters set on the chemical filter
hydroponics - Special demand connector that consumes as normal, but redirects water into the magical water space.
manifold - Connects different layer of ducts
simple_demand - has one pipe input that only takes, example is manual output pipe
simple_supply - has one pipe output that only supplies. example is liquid pump and manual input pipe
tank - input and output, like a holding tank
plundering_attacks - Component that makes basic mobs' melee attacks steal money from the target's ID card.
Plundered money is stored and dropped on death or removal of the component.
profound_fisher - component that allows player mobs to play the fishing minigame without a rod equipped, non-player mobs will "pretend" fish
puzzgrid - Attaches a puzzgrid to the atom.
You are expected to pass in the puzzgrid, likely from create_random_puzzgrid().
This is so you can handle when a puzzgrid can't be generated, either because the
config does not exist, or because the config is not set up properly.
radiation_countdown - Begins the countdown before a target can be irradiated.
Added by the radiation subsystem when a pulse information has a minimum exposure time.
Will clear itself out after a while.
Radioactive Emitter - Simple component that you can attach to something to make it emit radiation pulses over time.
radioactive_exposure - For directly applying to carbons to irradiate them, without pulses
ranged_attacks - Configurable ranged attack for basic mobs.
recharging_attacks - Reduces the cooldown of a given action upon landing attacks, critting, or killing mobs.
redirect_attack_hand_from_turf - Will redirect touching the turf it is on with your hand to the attack_hand of the parent object.
reflection - A simple-ish component that reflects the icons of movables on the parent like a mirror.
Sadly, there's no easy way to make the SOUTH dir reflection flip the visual so that you can see
the back NORTH dir of a target while it's facing SOUTH beside adding the VIS_INHERIT_DIR flag
to the target movable, which I'm not doing to spare eventual issues with other vis overlays in the future.
regenerative_shield - gives the mobs a regenerative shield, it will tank hits for them and then need to recharge for a bit
Regenerator component - A mob with this component will regenerate its health over time, as long as it has not received damage
in the last X seconds. Taking any damage will reset this cooldown.
religious_tool - Allows the parent to act similarly to the Altar of Gods with modularity. Invoke and Sect Selection is done via attacking with a bible. This means you cannot sacrifice Bibles (you shouldn't want to do this anyways although now that I mentioned it you probably will want to).
revenge_ability - Automatically triggers a linked ability at a target who attacks us.
The ability might not necessarily be on our mob.
Make sure that /datum/element/relay_attackers is also present or you'll never receive the triggering signal.
riding - This is the riding component, which is applied to a movable atom by the ridable element when a mob is successfully buckled to said movable.
shuttle_cling - Gets added to all movables that enter hyperspace and are supposed to suffer from "hyperspace drift"
This lets people fly around shuttles during transit using jetpacks, or cling to the side if they got a spacesuit
Dumping into deepspace is handled by the hyperspace turf, not the component.
Not giving something this component while on hyperspace is safe, it just means free movement like carps
shy - You can't use items on anyone other than yourself if there are other living mobs around you
shy_in_room - You can't use items on anyone other than yourself if you stand in a blacklisted room
sign_language - Reactive Sign Language Component for Carbons. Allows Carbons to speak with sign language if they have the relevant traits.
Implements sign language by incrementally overriding several critical functions, variables, and argument lists.
simple_access - This component allows us to give a mob access without giving them an ID card.
simple_bodycam - Simple component to integrate a bodycam into a mob
sisyphus_awarder - This component awards the sisyphus achievement if you cart a boulder from lavaland to centcom
It's not really reusable but its a component just to encapsulate and destroy the behaviour neatly
Slip behaviour component - Add this component to an object to make it a slippery object, slippery objects make mobs that cross them fall over.
Items with this component that get picked up may give their parent mob the slip behaviour.
smooth_tunes - Smooth tunes component! Applied to musicians to give the songs they play special effects, according to a rite!
Comes with BARTICLES!!!
subtype_picker - subtype picker component allows for an item to transform into its subtypes (this is not enforced and you can turn in whatever types, but
i used this name as it was incredibly accurate for current usage of the behavior)
temporary_description - Adds examine text to something which is removed when receiving specified signals, by default the revive signal.
The default settings are set up to be applied to a corpse to add some kind of immersive storytelling text which goes away upon revival.
tippable - Tippable component. For making mobs able to be tipped, like cows and medibots.
toggle_attached_clothing - Component which allows clothing to deploy a different kind of clothing onto you.
The simplest example is hooded suits deploying hoods onto your head.
torn_wall - Component applied to a wall to progressively destroy it.
If component is applied to something which already has it, stage increases.
Wall is destroyed on third application.
Can be fixed using a welder
Trader NPC Component - Manages the barks and the stocks of the traders
Also manages the interactive radial menu
traitor_objective_register - Helper component that registers signals on an object
This is not necessary to use and gives little control over the conditions
allow_admin_asaycolor - allows admins with relevant permissions to have a personalized asay color
allow_admin_ooccolor - allows admins with relevant permissions to have their own ooc colour
allow_respawn - Determines if a player can respawn after dying.
0 / RESPAWN_FLAG_DISABLED = Cannot respawn (default)
1 / RESPAWN_FLAG_FREE = Can respawn
2 / RESPAWN_FLAG_NEW_CHARACTER = Can respawn if choosing a different character
allow_rock_the_vote - allow players to vote to re-do the map vote
allow_tracy_queue - If admins with +DEBUG can queue byond-tracy to run the next round.
allow_tracy_start - If admins with +DEBUG can initialize byond-tracy midround.
allow_vote_map - allow votes to change map
allow_vote_restart - allow votes to restart
autoadmin - if autoadmin is enabled
default_no_vote - If disabled, non-voters will automatically have their votes added to certain vote options
(For example: restart votes will default to "no restart", map votes will default to their preferred map / default map, rocking the vote will default to "no")
disable_quirk_points - Disables Quirk point balancing for the server and clients.
drone_area_interaction_restrict - Will drones be restricted from interacting with the Supermatter and Atmospherics area?
enforce_human_authority - Outdated human authority settings
forbid_preferences_export - Allows players to export their own preferences as a JSON file. Left as a config toggle in case it needs to be turned off due to server-specific needs.
hub - if the game appears on the hub or not
log_access - log login/logout
log_admin - log admin actions
log_adminchat - log admin chat messages
log_as_human_readable - Log human readable versions of json log entries
log_asset - log assets
log_attack - log attack messages
log_econ - log economy actions
log_emote - log emotes
log_game - log game events
log_internet_request - Log Music Requests
log_job_debug - log roundstart divide occupations debug information to a file
gateway_delays_by_id - An override to gateway_delay for specific maps or start points
number
lobby_countdown - Countdown between lobby and the round starting.
map_vote_flat_bonus - The flat amount all maps get by default
map_vote_maximum_tallies - The maximum number of tallies a map vote entry can have.
map_vote_minimum_tallies - The minimum number of tallies a map vote entry can have.
map_vote_tally_carryover_percentage - The number of tallies that are carried over between rounds.
max_hub_pop - Pop requirement for the server to be removed from the hub
max_positive_quirks - The maximum amount of positive quirks one character can have at roundstart.
max_rocking_votes - the number of times we allow players to rock the vote
maximum_potential_objectives - Determines how many potential objectives a traitor can have.
outdated_movedelay - Outdated move delay
random_loot_weight_modifier - A config that skews with the random spawners weights
If the value is lower than 1, it'll tend to even out the odds
If higher than 1, it'll lean toward common spawns even more.
respawn_delay - Determines how long (in deciseconds) before a player is allowed to respawn.
round_end_countdown - Post round murder death kill countdown.
seconds_cooldown_for_preferences_export - The number of seconds a player must wait between preference export attempts.
traitor_ideal_player_count - Determines the ideal player count for maximum progression per minute.
traitor_scaling_multiplier - Determines how fast traitors scale in general.
vote_delay - minimum time between voting sessions (deciseconds, 10 minute default)
vote_period - length of voting period (deciseconds, default 1 minute)
str_list - List config entry, used for configuring a list of strings
corpse_assignment - Possible assignments corpses can have, both for flavor and to push them towards contributing to the round
corpse_character - Datum for controlling the base character, such as species, scarring, styles, augments etc
morgue - used by the morgue trays to spawn bodies (obeying three different configs???????????????????? yes please daddy give me more config for benign features)
mostly_roundstart - Not really all roundstart species, but plasmaman is a bit too flamboyant and felinids aren't interesting
corpse_damage - Main corpse damage type that's used to apply damages to a body
post_mortem - Some post mortem damages from space vultures
limb_loss - Damn space vultures man! At least they dont go for the chest or head, or they do but we don't get to see those bodies :O
organ_decay - We simulate decay on bodies. This is always used, but severity can differ (though tending to the more severe)
organ_loss - Damn space vultures man! At least they dont go for the brain
corpse_damage_class - The main style controller for new dead bodies! Determines the character, lore, possible causes of death, decay and every other modifier!
station - Default scenario, with normal species, assignments and damages etc
exotic_species - Non-roundstart species
morgue - Human morgue body
spaced - Less decay, spread burn and brute damage
corpse_flavor - Apply some flavor to the character to make it seem more 'alive'
quirk - Applies a quirk when selected
coupon_code - datum used by the Coupon Master PDA app to generate coupon items redeemed by a bank account.
bottled - Abstract types for all drink recipes that use bottles and result in another bottle, so that the message_in_a_bottle item is properly transferred.
holybottle - Non-alcoholic recipes
clown_scanner_upgrade - Recipe used for upgrading fake N-spect scanners to bananium HONK-spect scanners
ctf_controller - The CTF controller acts as a manager for an individual CTF game, each CTF game should have its own, the controller should handle all game-wide functionality.
ctf_team - A datum that holds details about individual CTF teams, any team specific CTF functionality should be implemented here.
discord_embed - Documentation for the embed object and all of its variables can be found at
https://discord.com/developers/docs/resources/channel#embed-object
It is recommended to read the documentation on the discord website, as the information below could become outdated in the future.
discord_link_record - Represents a record from the discord link table in a nicer format
dream - Contains all the behavior needed to play a kind of dream.
All dream types get randomly selected from based on weight when an appropriate mobs dreams.
hear_something - Dream plays a random sound at you, chosen from all sounds in the folder
random - The classic random dream of various words that might form a cohesive narrative, but usually wont
drift_handler - Component that handles drifting
Manages a movement loop that actually does the legwork of moving someone
Alongside dealing with the post movement input blocking required to make things look nice
ductnet - We handle the unity part of plumbing. We track who is connected to who.
trail_follow - ///// Attach a trail to any object, that spawns when it moves (like for the jetpack)
just pass in the object to attach it to in set_up
Then do start() to start it and stop() to stop it, obviously
and don't call start() in a loop that will be repeated otherwise it'll get spammed!
eigenstate_manager - A singleton used to teleport people to a linked web of itterative entries. If one entry is deleted, the 2 around it will forge a link instead.
element - A holder for simple behaviour that can be attached to many different types
ai_control_examine - ai control examine; which gives the pawn of the parent the noticable organs depending on AI status!
ai_flee_while_injured - Attached to a mob with an AI controller, simply sets a flag on whether or not to run away based on current health values.
AI Held Item Element - Manages holding an item for a mob which doesn't have hands but needs to for AI purposes.
ai_retaliate - Attached to a mob with an AI controller, passes things which have damaged it to a blackboard.
The AI controller is responsible for doing anything with that information.
ai_swap_combat_mode - Attached to a mob with an AI controller, updates combat mode when the affected mob acquires or loses targets
ai_target_damagesource - Attached to a mob with an AI controller, sets the blackboard current target to the most recent thing to attack this mob.
The AI controller is responsible for doing anything with that information.
Animal variety element! - Element that picks an suffix to append onto the icon state from a list given on creation,
among some pixel shifting stuff. Basically you will see VARIETY in a batch of animals.
attack_equip - Attached to an item, when the item is used to attack a human, and the attacker isn't in combat mode, attempts to equip the item to the target after the normal delay.
backblast - When attached to a gun and the gun is successfully fired, this element creates a "backblast", like you'd find in a rocket launcher or recoilless rifle
bane - Deals extra damage to mobs of a certain type, species, or biotype.
This doesn't directly modify the normal damage of the weapon, instead it applies its own damage separately ON TOP of normal damage
ie. a sword that does 10 damage with a bane element attached that has a 0.5 damage_multiplier will do:
10 damage from the swords normal attack + 5 damage (50%) from the bane element
basic_allergenic_attack - Attach to basic mobs, when they attack, they may trigger a food-based allergic reaction in the target.
basic_health_examine - A simple element for basic mobs that prints out a custom damaged state message
beauty - Beauty element. It makes the indoor area the parent is in prettier or uglier depending on the beauty var value.
Clean and well decorated areas lead to positive moodlets for passerbies;
Shabbier, dirtier ones lead to negative moodlets EXCLUSIVE to characters with the snob quirk.
bed_tuckable - Tucking element, for things that can be tucked into bed.
Befriend Petting - Element which makes a mob befriend you if you pet it enough.
blocks_explosives - Apply this element to a movable atom when you want it to block explosions
It will mirror the blocking down to that movable's turf, keeping explosion work cheap
body_temp_sensitive - When attached to a basic mob, it gives it the ability to be hurt by cold/hot body temperatures
bombable_turf - Apply this to a turf (usually a wall) and it will be destroyed instantly by any explosion.
Most walls can already be destroyed by explosions so this is largely for usually indestructible ones.
For applying it in a map editor, use /obj/effect/mapping_helpers/bombable_wall
bonus_damage - Attached to a mob that will then deal bonus damage to a victim with low, or potentially in the future, high health.
bugkiller_reagent - Simple element to be applied to reagents
When those reagents are exposed to mobs with the bug biotype, causes toxins damage
If this delivers the killing blow on a non-humanoid mob, it applies a special status effect that does a funny animation
can_shatter - When attached to something, will make that thing shatter into shards on throw impact or z level falling
Or even when used as a weapon if the 'shatters_as_weapon' arg is TRUE
caseless - An element that deletes the casing when fired and, if reusable is true, adds the projectile_drop element to the bullet.
Just make sure to not add components or elements that also use COMSIG_FIRE_CASING after this one.
Not compatible with pellets (how the eff would that work in a senible way tho?).
change_force_on_death - Element to change a mob's move forces on death and reset them on living
connect_loc - This element hooks a signal onto the loc the current object is on.
When the object moves, it will unhook the signal and rehook it to the new object.
content_barfer - Content Barfer; which expels the contents of a mob when it dies, or is transformed
contextual_screentip_bare_hands - Apply basic contextual screentips when the user hovers over this item with an empty hand.
A "Type B" interaction.
This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
contextual_screentip_item_typechecks - Apply basic contextual screentips when the user hovers over this item with a provided item.
A "Type B" interaction.
This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
contextual_screentip_mob_typechecks - Apply basic contextual screentips when a user of a specific typepath hovers over us.
A "Type B" interaction.
This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
contextual_screentip_sharpness - Apply basic contextual screentips when the user hovers over this item with an item of the given tool behavior.
A "Type B" interaction.
This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
contextual_screentip_tools - Apply basic contextual screentips when the user hovers over this item with an item of the given tool behavior.
A "Type B" interaction.
This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
corrupted_organ - Component applying shared behaviour by cursed organs granted when sacrificed by a heretic
Mostly just does something spooky when it is removed
crackable - Adds crack overlays to an object when integrity gets low
crusher_loot - Crusher Loot; which makes the attached mob drop a crusher trophy of some type if the majority damage was from a crusher!
cuffsnapping - cuffsnapping element replaces the item's secondary attack with an aimed attack at the kneecaps under certain circumstances.
curse announcement element! - Bespoke element that sends a harrowing message when you first pick up an item, applying a spooky color outline and renaming the item.
For most items, it will announce when picked up. If the item can be equipped, though, it will only announce when the item is worn.
Possible improvements for the future: add an option to allow the cursed affix to be a prefix. right now only coded for suffixes
cursed element! - Attaching this element to something will make it float, and get a special ai controller!
damage_threshold - Applied to living mobs.
Adds a force threshold for which attacks will be blocked entirely.
IE, if they are hit with an attack that deals less than X damage, the attack does nothing.
dextrous - Sets up the attachee to have hands and manages things like dropping items on death and displaying them on examine
Actual hand performance is managed by code on /living/ and not encapsulated here, we just enable it
diggable - Lets you make hitting a turf with a shovel pop something out, and scrape the turf
disarm_attack - An element that allows items to be used to shove people around just like right-clicking would.
door_pryer - Attached to a basic mob.
Causes attacks on doors to attempt to open them.
drag_pickup - drag_pickup element; for allowing things to be picked up by dragging.
elevation - Manages the elevation of the turf the source is on (can be the turf itself)
The atom with the highest pixel_shift gets to set the elevation of the turf to that value.
elevation_core - The core element attached to the turf itself. Do not use this directly!
haunted - Attaching this element to something will make it float, get a special ai controller, and gives it a spooky outline.
heretic_focus - Heretic focus element, simple element for making an item a heretic focus,
allowing heretics to cast advanced spells (examine message included).
High Fiver Element - Attach to an item to make it offer a "high five" when offered to people
honkspam - Attachable to items. Plays a bikehorn sound whenever attack_self is called (with a cooldown).
hostile_machine - AIs will attack this as a potential target if they see it
human_biter - Allows carbons with heads to attempt to bite mobs if attacking with cuffed hands / missing arms
immerse - A visual element that makes movables entering the attached turfs look immersed into that turf.
item_fov - An element to unconditonally add a FOV trait to the wearer, removing it when an item is unequipped
item_scaling - Element for scaling item appearances in the overworld or in inventory/storage.
kneecapping - Kneecapping element replaces the item's secondary attack with an aimed attack at the kneecaps under certain circumstances.
kneejerk - An element which enables certain items to tap people on their knees to measure brain health
knockback - Mobs and items with this element will knock movable targets they hit away from them.
Guns and turrets will instead fire projectiles with similar effects.
lazy_fishing_spot - Lazy fishing spot element so fisheable turfs do not have a component each since
they're usually pretty common on their respective maps (lava/water/etc)
leeching_walk - Buffs and heals the target while standing on rust.
lifesteal - Heals the user (if attached to an item) or the mob itself (if attached to a hostile simple mob)
by a flat amount whenever a successful attack is performed against another living mob.
light_blocking - Attached to movable atoms with opacity. Listens to them move and updates their old and new turf loc's opacity accordingly.
light_eaten - Makes anything that it attaches to incapable of producing light
light_eater - Makes anything it attaches to capable of permanently removing something's ability to produce light.
living_limb_initialiser - Spawns a living limb mob inside a limb upon attachment if it doesn't have one
loomable - Element that makes items turn into other items when you use them on a loom (or any other thing really if you change the var)
lube_walking - Makes a mob cause a turf to get wet as they walk, requires lying down.
Has configurable args for wet flags, time, and resting requirements.
microwavable - Atoms that can be microwaved from one type to another.
mirage_border - Creates a mirage effect allowing you to see around the world border, by adding the opposite side to its vis_contents.
mob_access - element given to mobs that have levels of access
mob_killed_tally - Mob Killed Tally; which ticks up a blackbox when the mob dies
movement_turf_changer - movement_turf_changer element; which makes the movement of a movable atom change the turf it moved to
movetype_handler - An element that enables and disables movetype bitflags whenever the relative traits are added or removed.
It also handles the +2/-2 pixel y anim loop typical of mobs possessing the FLYING or FLOATING movetypes.
This element is necessary for the TRAIT_MOVE_ traits to work correctly, so make sure to attach this element
before adding them to non-living movables.
nerfed_pulling - This living will be slower when pulling/moving anything in the given typecache
no_crit_hitting - Stops a mob from hitting someone in crit. doesn't account for projectiles or spells
noticable_organ - noticable organ element; which makes organs have a special description added to the person with the organ, if certain body zones aren't covered.
ai_control - Subtype of noticable organs for AI control, that will make a few more ai status checks before forking over the examine.
obj_regen - Object integrity regeneration element added by alien alloy.
only_pull_living - Element for only letting a living pull other livings
openspace_item_click_handler - allow players to easily use items such as iron rods, rcds on open space without
having to pixelhunt for portions not occupied by object or mob visuals.
organ_set_bonus - organ set bonus element; which makes organs in the same set, all in one person, provide a unique bonus!
perma_fire_overlay - When applied to a mob, they will always have a fire overlay regardless of if they are actually on fire.
Pet bonus element! - Bespoke element that plays a fun message, sends a heart out, and gives a stronger mood bonus when you pet this animal.
I may have been able to make this work for carbons, but it would have been interjecting on some help mode interactions anyways.
plant_backfire - -- Plant backfire element --
Certain high-danger plants, like death-nettles, will backfire and harm the holder if they're not properly protected.
If a user is protected with something like leather gloves, they can handle them normally.
If they're not protected properly, we invoke a callback on the user, harming or inconveniencing them.
point_of_interest - Designates the atom as a "point of interest", meaning it can be directly orbited
poster_tearer - Allows mobs with this element attached to just simply tear down any poster they desire to.
prevent_attacking_of_types - This hostile will not be able to attack a given typecache, and will receive
a balloon alert when it tries to.
proficient_miner - element given to mobs that can mine when moving
projectile_drop - A simple element that spawns an atom when the bullet hits an object or reaches the end of its range
If the projectile has embedding and it can embed into the target, then it won't spawn the drop,
since embedding the embed element already handles that.
quality_food_ingredient - An element that adds extra food quality to any edible that was made from an atom with this attached.
radiation_protected_clothing - Marks the item as being radiation protected.
Adds the TRAIT_RADIATION_PROTECTED_CLOTHING trait, as well as adding an
extra bit to the examine descrpition.
radioactive - This atom will regularly pulse radiation.
ranged_armour - Reduces or nullifies damage from ranged weaponry with force below a certain value
relay_attackers - This element registers to a shitload of signals which can signify "someone attacked me".
If anyone does it sends a single "someone attacked me" signal containing details about who done it.
This prevents other components and elements from having to register to the same list of a million signals, should be more maintainable in one place.
ridable - This element is used to indicate that a movable atom can be mounted by mobs in order to ride it. The movable is considered mounted when a mob is buckled to it,
at which point a riding component is created on the movable, and that component handles the actual riding behavior.
rust - Adding this element to an atom will have it automatically render an overlay.
The overlay can be specified in new as the first paramter; if not set it defaults to rust_overlay's rust_default
shiny_bait - A component that gives fishing rod TRAIT_ROD_ATTRACT_SHINY_LOVERS when the attached item is used as bait.
sideway_movement - A simple element that forces the mob to face a perpendicular direction when moving, like crabs.
simple flying element! - Non bespoke element (1 in existence) that makes animals fly while living and... not while dead!
Note: works for carbons and above, but please do something better. humans have wings got dangit!
skill_reward - An element that forbids mobs without a required skill level from equipping the item.
veteran - Welp, the code is pretty much the same, except for one tiny detail, I suppose it's ok to make a subtype of this element.
That tiny detail is that we don't check for skills, but if the player has played for thousands of hours.
undertile - Add to an object if you want to be able to be hidden under tiles
Unfriend Attacker - Element which makes a mob remove you from its friends list you if you hurt it.
Doesn't make a callout post because we don't have twitter integration.
update_icon_blocker - Prevents calling anything in update_icon() like update_icon_state() or update_overlays()
uplink_reimburse - Uplink Reimburse element.
When element is applied onto items, it allows them to be reimbursed if an user pokes an item with a uplink component with them.
venomous - Venomous element; which makes the attacks of the simplemob attached poison the enemy.
venue_price - This component can be used to give something value for venues
volatile_gas_storage - An element to make an /obj explode based on gas pressure when broken
wall_engraver - An element that lets you engrave walls when right click is used
Wall Smasher - An element you put on mobs to let their attacks break walls
If put in the hands of a player this can cause a lot of problems, be careful
wall_tearer - Allows attached mobs to destroy walls over time, a little less unreasonable than the instant wall deletion of wall_smasher
wall_walker - This element will allow the mob it's attached to to pass through a specified type of wall, and drag anything through it.
weapon_description - The purpose of this element is to widely provide the ability to examine an object and determine its stats, with the ability to add
additional notes or information based on type or other factors
wearable_client_colour - An element that adds a client colour to the wearer when equipped to the right slot, under the right conditions.
event_admin_setup - Datum that holds a proc for additional options when running an event.
Prototypes are declared here, non-prototypes on the event files.
listed_options - A very common pattern is picking from a tgui list input, so this does that.
Supply a list in get_list and prompt admins will have the admin pick from it or cancel.
departmental_revolt - which department is revolting?
disease_outbreak - Handles actually selecting whicch disease will spawn.
ordnance - A ordnance experiment datum. What gives the science in the first place.
One is instantiated by the techweb, another one is also kept on SSresearch for the briefing.
A disk should contain several of these in a list. Only one should get picked for the final paper.
Scanning Experiment - This is the base implementation of scanning experiments.
fish - A special scanning experiment that unlocks further settings for the fishing portal generator.
Mainly as an inventive solution to many a fish source being limited to maps that have it,
and to make the fishing portal generator a bit than just gubby and goldfish.
machinery_tiered_scan - This experiment type will turn up TRUE if at least one of the stock parts in the scanned machine is of the required_tier.
Pretend to upgrade security's techfab but in reality apply only one better matter bin!
Note that a stock part in a machine can either be an object, or a datum.
food - Original Food export file got eaten somewhere along the line and I have no idea when or where it got completely deleted.
Foods given a venue value are exportable to cargo as a backup to selling from venues, however at the expense of elasticity.
large/gas_canister - Gas canister exports.
I'm going to put a quick aside here as this has been a pain to balance for several years now, and I'd like to at least break how to keep gas exports tame.
So: Gasses are sold in canisters below, which have a variable amount of maximum pressure before they start to break. The largest of which is 9.2e13 kPa.
This means we can determine a theoretical maximum value for gas sale prices using the ideal gas laws, as we know we have a minimum gas temperature of 2.7 kelvin.
dummy/two - This is used by both fish_evolution and fish_growth unit tests.
fish_movement - Fish movements are simple datums, generated by the fishing minigame, that represent how the fish moves suring the minigame.
accelerando - fish movement datum that progressively gets faster until acceleration and velocity are double the starting ones.
choppy - Fish movement datum that updates the fish position twice per second.
plunger - Fish movement datum that weakly pushes the fish up and then down with greater force once it reaches the top of the minigame.
slow - Generic fish movement datum that only performs slow, uninterrupted long jumps
zippy - Generic fish movement datum with triple the short jump chance.
fish_source - Where the fish actually come from - every fishing spot has one assigned but multiple fishing holes
can share single source, ie single shared one for ocean/lavaland river
random - A special portal fish source which fish table is populated on init with the contents of all
portal fish sources, except for FISHING_DUD, and a couple more caveats.
syndicate - Unlocked by emagging the fishing portal generator with an emag.
anxiety - Anxiety means the fish will die if in a location with more than 3 fish (including itself)
This is just barely enough to crossbreed out of anxiety, but it severely limits the potential of
no_mating - Useful for those species with the parthenogenesis trait if you don't want them to mate with each other,
or for similar shenanigans, I don't know.
Otherwise you could just set the stable_population to 1.
recessive - Prevent offsprings of fish with this trait from being of the same type (unless self-mating or the partner also has the trait)
fluid_group - SMOKE SYSTEMS
A group of fluid objects.
font - A font datum, it exists to define a custom font to use in a span style later.
grand9k - For clean results on map, use only sizing pt, multiples of 6: 6pt 12pt 18pt 24pt etc. - Not for use with px sizing
Can be used in TGUI etc, px sizing is pt / 0.75. 6pt = 8px, 12pt = 16px etc.
Base font
size_6pt - For icon overlays
Grand9K 6pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
pixellari - For clean results on map, use only sizing pt, multiples of 12: 12pt 24pt 48pt etc. - Not for use with px sizing
Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc.
Base font
size_12pt - For icon overlays
Pixellari 12pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
spessfont - For clean results on map, use only sizing pt, multiples of 6: 6t 12pt 18pt etc. - Not for use with px sizing
Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc.
Base font
size_6pt - For icon overlays
Spess Font 6pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
tiny_unicode - For clean results on map, use only sizing pt, multiples of 12: 12pt 24pt 48pt etc. - Not for use with px sizing
Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc.
Base font
size_12pt - For icon overlays
TinyUnicode 12pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
soup/watery_soup - This style runs dual purpose -
Primarily it's just a bowl style for water,
but secondarily it lets chefs know if their soup had too much water in it
grand_finale - A big final event to run when you complete seven rituals
all_access - Open all of the doors
armageddon - Kill yourself and probably a bunch of other people
cheese - Gives the wizard a defensive/mood buff and a Wabbajack, a juiced up chaos staff that will surely break something.
Everyone but the wizard goes crazy, suffers major brain damage, and is given a vendetta against the wizard.
Already insane people are instead cured of their madness, ignoring any other effects as the station around them loses its marbles.
color_matrix - A layer to modify the previous layer's colors with a color matrix
icon_state - The most basic greyscale layer; a layer which is created from a single icon_state in the given icon file
reference - A layer created by using another greyscale icon's configuration
greyscale_modify_menu - The controller for the ui in charge of all runtime greyscale configuration/debug.
If Unlock() is not called the menu is safe for players to use.
spray_paint - Used for spray painting items in the gags_recolorable component
guardian_fluff - Defines a theme used by guardian mobs for visuals and some text output
The default is used for ones created by wizards
carp - Used by holocarp spawned by admins
miner - Used by powerminers found in necropolis chests
tech - Used by holoparasites in the Traitor uplink
Hallucination datum. - Handles effects of a hallucination on a living mob.
Created and triggered via the [cause hallucination proc][/mob/living/proc/cause_hallucination].
battle - Battle hallucination, makes it sound like a melee or gun battle is going on in the background.
bomb - A hallucination of a syndicate bomb ticking down.
e_sword - A hallucination of someone unsheathing an energy sword, going to town, and sheathing it again.
gun - Subtype of battle hallucination for gun based battles, where it sounds like someone is being shot.
disabler - Gun battle hallucination that sounds like disabler fire.
laser - Gun battle hallucination that sounds like laser fire.
harm_baton - A hallucination of someone being stun batonned, and subsequently harmbatonned.
stun_prod - A hallucination of someone being hit with a stun prod, followed by cable cuffing.
body - Makes a random body appear and disappear quickly in view of the hallucinator.
codex_cicatrix - Codex Cicatrixi is available at the start:
This allows heretics to choose if they want to rush all the influences and take them stealthily, or
Construct a codex and take what's left with more points.
Another downside to having the book is strip searches, which means that it's not just a free nab, at least until you get exposed - and when you do, you'll probably need the faster drawing speed.
Overall, it's a tradeoff between speed and stealth or power.
highlander_controller - The highlander controller handles the admin highlander mode, if enabled.
It is first created when "there can only be one" triggers it, and it can be referenced from GLOB.highlander_controller
id_trim - Simple datum that holds the basic information associated with an ID card trim.
admin - Trim for admins and debug cards. Has every single access in the game.
away - Generic away/offstation trim.
cat_surgeon - Trim for the cat surgeon ruin.
hilbert - Trim for Hilbert in Hilbert's Hotel.
hotel - Trim for the hotel ruin. Not Hilbert's Hotel.
security - Trim for the hotel ruin. Not Hilbert's Hotel.
old
eng - Trim for the oldstation ruin/Charlie station
equipment - Trim for the oldstation ruin/Charlie station to access APCs and other equipment
robo - Trim for the oldstation ruin/Charlie station to access robots, and downloading of paper publishing software for experiments
sci - Trim for the oldstation ruin/Charlie station
sec - Trim for the oldstation ruin/Charlie station
battlecruiser - Trim for Syndicate mobs, outfits and corpses.
captain - Trim for Syndicate mobs, outfits and corpses.
bit_avatar - Trim for player controlled avatars in the Virtual Domain.
bounty_hunter - Trim for Bounty Hunters NOT hired by centcom. (?)
centcom - Trim for basic Centcom cards.
admiral - Trim for Centcom (Soviet) Admirals. All Centcom and Station Access.
bartender - Trim for Centcom Bartenders.
bounty_hunter - Trim for Bounty Hunters hired by centcom.
commander - Trim for Centcom Commanders. All Centcom and Station Access.
corpse
assault - Trim for various Centcom corpses.
bridge_officer - Trim for various Centcom corpses.
commander - Trim for various Centcom corpses.
private_security - Trim for various Centcom corpses.
tradepost_officer - Trim for various Centcom corpses.
custodian - Trim for Centcom Custodians.
deathsquad - Trim for Deathsquad officers. All Centcom and Station Access.
ert - Trim for generic ERT interns. No universal ID card changing access.
chaplain - Trim for generic ERT chaplains. No universal ID card changing access.
clown - Trim for generic ERT clowns. No universal ID card changing access.
commander - Trim for ERT Commanders. All station and centcom access.
engineer - Trim for generic ERT engineers. No universal ID card changing access.
janitor - Trim for generic ERT janitors. No universal ID card changing access.
medical - Trim for generic ERT medics. No universal ID card changing access.
security - Trim for generic ERT seccies. No universal ID card changing access.
intern - Trim for Centcom Interns.
head - Trim for Centcom Head Interns. Different assignment, common station access added on.
medical_officer - Trim for Centcom Medical Officers.
official - Trim for Centcom Officials.
research_officer - Trim for Centcom Research Officers.
specops_officer - Trim for Centcom Specops Officers. All Centcom and Station Access.
thunderdome_overseer - Trim for Centcom Thunderdome Overseers.
vip - Trim for Centcom VIPs
chameleon - Trim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards.
operative - Trim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards.
clown - Trim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards.
clown_leader - Trim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards.
nuke_leader - Trim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards.
cyber_police - Trim for cyber police in the Virtual Domain.
engioutpost - Trim for various various ruins.
highlander - Trim for highlander cards, used during the highlander adminbus event.
job - This file contains all the trims associated with station jobs.
It also contains special prisoner trims and the miner's spare ID trim.
ID Trims for station jobs.
rust - Moves a lot if healthy and on rust (to find more tiles to rust) or unhealthy and not on rust (to find healing rust)
Still moving in random directions though we're not really seeking it out
instability_meltdown - A possible genetic meltdown that occurs when someone exceeds 100 genetic instability
alright - Does nothing
corgi - Turns you into a corgi
crab - Turns you into the ultimate lifeform
decloning - Makes you take cell damage and gibs you after some time
fatal
ceiling - Makes you look up and melts out your eyes
dismember - Either dismembers you, or if unable to, gibs you
dust - Dusts you
gib - Instantly gibs you
petrify - Turns you into a statue
psyker - Slowly turns you into a psyker
skeletonize - Turns you into a skeleton, with a high chance of killing you soon after
monkey - Turns you into a monkey
not_alright - Gives you the same text as above but now when you're hit you take 200 times more damage
organ_vomit - Makes you vomit up a random organ
paraplegic - Gives you brain trauma that makes your legs disfunctional and gifts you a wheelchair
slime - Turns you into a slime
snail - Turns you into a snail
yeet - Makes you phase through walls into a random direction
Instrument Datums - Instrument datums hold the data for any given instrument, as well as data on how to play it and what bounds there are to playing it.
instrument_key - Instrument key datums contain everything needed to know how to play a specific
note of an instrument.*
interview - Represents a new-player interview form
Interview Manager - Handles all interviews in the duration of a round, includes the primary functionality for
handling the interview queue.
unassigned - This type is used to indicate a lack of a job.
The mind variable assigned_role will point here by default.
As any other job datum, this is a singleton.
job_config_type - Lightweight datum simply used to store the applicable config type for each job such that the whole system is a tad bit more flexible.
default_positions - The number of positions a job can have at any given time.
human_authority - Whether if the job should whitelist humans, whitelist nonhumans, or neither
playtime_requirements - The amount of playtime required to join a job (minutes).
required_account_age - The amount of time required to have an account to join a job (days).
required_character_age - The required age a character must be to join a job (which is in years).
starting_positions - The number of positions a job can have at the start of the round.
job_department - Singleton representing a category of jobs forming a department.
assistant - A special assistant only department, primarily for use by the preferences menu
captain - A special captain only department, for use by the preferences menu
undefined - Catch-all department for undefined jobs.
jps_node - The JPS Node datum represents a turf that we find interesting enough to add to the open list and possibly search for new tiles from
json_database - Represents a json file being used as a database in the data/ folder.
Changes made here will save back to the associated file, with recovery.
Will defer writes until later if multiple happen in the same tick.
Do not add an extra cache on top of this. This IS your cache.
json_reader - Takes a json list and extracts a single value.
Subtypes represent different conversions of that value.
json_savefile - A savefile implementation that handles all data using json.
Also saves it using JSON too, fancy.
If you pass in a null path, it simply acts as a memory tree instead, and cannot be saved.
lazy_template - Datum used to designate certain areas that do not need to exist nor be loaded at world start
but do want to be loaded under certain circumstances. Use this for stuff like the nukie base or wizden, aka stuff that only matters when their antag is rolled.
map_generator - This type is responsible for any map generation behavior that is done in areas, override this to allow for
area-specific map generation. This generation is ran by areas in initialize.
evil - Evil Boxing; for sick, evil scoundrels. Has no honor, making it more lethal (therefore unable to be used by pacifists).
Grants Strength and Stimmed to speed up any experience gain.
hunter - Hunter Boxing: for the uncaring, completely deranged one-spacer ecological disaster.
The honor check accepts boxing ready targets, OR various biotypes as valid targets. Uses a special crit effect rather than the standard one (against monsters).
I guess technically, this allows for lethal boxing. If you want.
clown_world - Clown enjoyers who are effected by this become ecstatic, they have achieved their life's dream.
This moodlet is equivalent to the one for simply being a traitor.
madness_despair - Wizard cheesy grand finale - what everyone but the wizard gets
madness_elation - Wizard cheesy grand finale - what the wizard gets
move_loop - Template class of the movement datums, handles the timing portion of the loops
disposal_holder - Disposal holders need to move through a chain of pipes
Rather then through the world. This supports this
If this ever changes, get rid of this, add drift component like logic to the holder
And move them to move()
freeze - As close as you can get to a "do-nothing" move loop, the pure intention of this is to absolutely resist all and any automated movement until the move loop times out.
move_towards - Used as a alternative to walk_towards
move_towards_budget - The actual implementation of walk_towards()
move - Replacement for walk()
move_rand - This isn't actually the same as walk_rand
Because walk_rand is really more like walk_to_rand
It appears to pick a spot outside of range, and move towards it, then pick a new spot, etc.
I can't actually replicate this on our side, because of how bad our pathfinding is, and cause I'm not totally sure I know what it's doing.
I can just implement a random-walk though
black_hole - Black Hole - final (emag can spawn singulo, see death event)
black_hole_death - You died to a black hole, have some fluff text
electronic_part - Malfunction - spend one engine part or wait 3 days (emag effect randomizes some stats)
engine_part - Engine Breakdown - spend one engine part or wait 3 days (harmless emag effect)
hull_part - Collision - spend one engine part or wait 3 days (has a nasty emag effect)
space_port - You found a space port!
tau_ceti - You found the midway mark!
space_port_raid - You raided a space port!
Outfit datums - This is a clean system of applying outfits to mobs, if you need to equip someone in a uniform
this is the way to do it cleanly and properly.
backpack_user - And just in case we'll check backpacks
duffel_user - outfit_sanity needs to cover insertions into duffelbags
job
assistant/gimmick - Parent type of gimmick loadouts for assistants for the functional assistant station traits
scientist/consistent - A version of the scientist outfit that is guaranteed to be the same every time
wizard_captain - An outfit which replaces parts of a wizard's clothes with captain's clothes but keeps the robes
mafia/abductee - Map-specific custom outfits
stachel_user - Satchels too
stacks_in_hands - See #66313 and #60901. outfit_sanity used to runtime whenever you had two mergable sheets in either hand. Previously, this only had a 3% chance of occuring. Now 100%.
overlay_info - Stores the decal & overlays on the floor to preserve texture of the design
in short its just an wrapper for mutable appearance where we retrieve the nessassary information
to recreate an mutable appearance
pirate_gang - datum for a pirate team that is spawning to attack the station.
grey - Previous Nanotrasen Assitant workers fired for many reasons now looking for revenge and your bank account.
interdyne - Expirienced formed employes of Interdyne Pharmaceutics now in a path of thievery and reckoning
irs - Agents from the space I.R.S. heavily armed to stea- I mean, collect the station's tax dues
rogues - classic FTL-esque space pirates.
silverscales - aristocrat lizards looking to hunt the serfs
skeletons - undead skeleton crew looking for booty
plane_master_debug - Used for testing/debugger plane masters and their associated rendering plates
plane_master_group - Datum that represents one "group" of plane masters
So all the main window planes would be in one, all the spyglass planes in another
Etc
popup - Holds plane masters for popups, like camera windows
Note: We do not scale this plane, even though we could
This is because it's annoying to get turfs to position inside it correctly
If you wanna try someday feel free, but I can't manage it
plant_gene - Plant gene datums - things that build and modify a plant or seed.
reagent - Reagent genes store a reagent ID and reagent ratio.
preset - Preset plant reagent genes that are unremovable from a plant.
chem_cooling - This trait is the opposite of above - it cools down the plant's chemical contents on harvest.
This requires nutriment to fuel. 1u nutriment = -5 K.
chem_heating - This trait automatically heats up the plant's chemical contents when harvested.
This requires nutriment to fuel. 1u nutriment = 25 K.
eyes - A plant trait that causes the plant to gain aesthetic googly eyes.
fire_resistance - Makes the plant and its seeds fireproof. From lavaland plants.
gas_production - Corpseflower's miasma production.
Can be generalized in the future to spawn any gas, but I don't think that's necessarily a good idea.
juicing - Similar to auto-distilling, but instead of brewing the plant's contents it juices it.
maxchem - A plant trait that causes the plant's capacity to double.
mob_transformation - Traits for plants that can be activated to turn into a mob.
shroom - Walking Mushroom's transformation gene
tomato - Killer Tomato's transformation gene.
modified_volume - Traits for plants with a different base max_volume.
cherry_bomb - Cherry Bomb's increased max volume gene
omega_weed - Omegaweed's funny 420 max volume gene
never_mutate - Prevents species mutation, while still allowing wild mutation harvest and Floral Somatoray species mutation. Trait acts as a tag for hydroponics.dm to recognise.
one_bite - Traiit for plants eaten in 1 bite.
plant_laughter - Plays a laughter sound when someone slips on it.
Like the sitcom component but for plants.
Just like slippery skin, if we have a trash type this only functions on that. (Banana peels)
plant_type - Plant type traits. Incompatible with one another.
alien_properties - Currently unused and does nothing. Appears in strange seeds.
fungal_metabolism - Mushrooms need less light and have a minimum yield.
weed_hardy - Weeds don't get annoyed by weeds in their tray.
preserved - Traits for flowers, makes plants not decompose.
repeated_harvest - Allows a plant to be harvested multiple times.
smoke - Explodes into reagent-filled smoke when squashed.
squash - Allows the plant to be squashed when thrown or slipped on, leaving a colored mess and trash type item behind.
stable_stats - Prevents stat mutation caused by instability. Trait acts as a tag for hydroponics.dm to recognise.
sticky - Makes the plant embed on thrown impact.
player_details - Tracks information about a client between log in and log outs
pod_style - Datum holding information about pod type visuals, VFX, name and description
These are not created anywhere and thus should not be assigned procs, only being used as data storage
point - A precise point on the map in absolute pixel locations based on world.icon_size. Pixels are FROM THE EDGE OF THE MAP!
text - A string-based preference accepting arbitrary string values entered by the user, with a maximum length.
pda_ringtone - This is the preference for the player's SpaceMessenger ringtone.
Currently only applies to humans spawned in with a job, as it's hooked
into /datum/job/proc/after_spawn().
toggle - A preference whose value is always TRUE or FALSE
ambient_occlusion - Whether or not to toggle ambient occlusion, the shadows around people
broadcast_login_logout - Whether or not to announce when the player logs in or out.
darkened_flash - When toggled, being flashed will show a dark screen rather than a light one.
ghost_hud - Toggles the HUD for ghosts
ghost_roles - When enabled, prevents any and all ghost role pop-ups.
ghost_roles_as_admin - When enabled, prevents any and all ghost role pop-ups WHILE ADMINNED.
inquisitive_ghost - Whether or not ghosts can examine things by clicking on them.
multiz_parallax - Whether or not to toggle multiz parallax, the parallax effect for lower z-levels.
nuke_ops_species - When TRUE, will spawn you as a human when selected for an operative role
When FALSE, players will be placed into the game as their character's species
playtime_reward_cloak - This can be set to TRUE from the prefs menu only once the user has
gained over 5K playtime hours.
If true, it allows the user to get a cool looking roundstart cloak.
screen_shake_darken - When toggled, will darken the screen on screen shake
sound_ai_vox - Controls hearing AI VOX announcements
sound_combatmode - Controls hearing the combat mode toggle sound
sound_elevator - Controls hearing elevator music
sound_endofround - Controls hearing round end sounds
sound_instruments - Controls hearing instruments
sound_jukebox - Controls hearing dance machines
sound_midi - Controls hearing admin music
tgui_input_large - Large button preference. Error text is in tooltip.
tgui_input_swapped - Swapped button state - sets buttons to SS13 traditional SUBMIT/CANCEL
tgui_say_light_mode - Light mode for tgui say
typing_indicator - Whether or not to show a typing indicator when speaking. Defaults to on.
window_flashing - Enables flashing the window in your task tray for important events
preference_middleware - Preference middleware is code that helps to decentralize complicated preference features.
keybindings - Middleware to handle keybindings
legacy_toggles - In the before times, toggles were all stored in one bitfield.
In order to preserve this existing data (and code) without massive
migrations, this middleware attempts to handle this in a way
transparent to the preferences UI itself.
In the future, the existing toggles data should just be migrated to
individual /datum/preference/toggles.
promise - Byondapi hooks act as "set waitfor = 0" procs. This means that whenever
a proc directly called from an external library sleeps, the hook returns with whatever
the called proc had as its return value at the moment it slept. This may not
be desired behavior, so this datum exists to wrap these procs.
advanced - Movable and easily code-modified fields! Allows for custom AOE effects that affect movement
and anything inside of them, and can do custom turf effects!
Supports automatic recalculation/reset on movement.
soup - Abstract parent for soup reagents.
These are the majority result from soup recipes,
but bear in mind it will(should) have other reagents along side it.
penthrite - Can bring a corpse back to life temporarily (if heart is intact)
Makes wounds bleed more, if it brought someone back, they take additional brute and heart damage
They can't die during this, but if they're past crit then take increasing stamina damage
If they're past fullcrit, their movement is slowed by half
If they OD, their heart explodes (if they were brought back from the dead)
yuck - Improvised reagent that induces vomiting. Created by dipping a dead mouse in welder fluid.
reagents - ////////////////////////////Main reagents code/////////////////////////////////////////////
Holder for a bunch of /datum/reagent
plumbing - Specialized reagent container for plumbing. Uses the round robin approach of transferring reagents
so transfer 5 from 15 water, 15 sugar and 15 plasma becomes 10, 15, 15 instead of 13.3333, 13.3333 13.3333. Good if you hate floating point errors
deaconize - Makes the person holy, but they now also have to follow the honorbound code (CBT). Actually earns favor, convincing others to uphold the code (tm) is not easy
Religious Sects - Religious Sects are a way to convert the fun of having an active 'god' (admin) to code-mechanics so you aren't having to press adminwho.
earthquake - Earthquake random event.
Draws a curve of turfs between a high and low point. These turfs will shake and eventually "collapse", forming a cut in the station that drops to the z-level below.
Much of the actual structural damage is done through the explosions subsystem. Objects, machines, and especially people
that aren't moved out of the epicenter area (indicated by the wobbly tiles) will not just be thrown down a z-level, but also be destroyed/maimed in the process.
immovable_rod - Immovable rod random event.
The rod will spawn at some location outside the station, and travel in a straight line to the opposite side of the station
market_crash - An event which decreases the station target temporarily, causing the inflation var to increase heavily.
sandstorm - Sandstorm Event: Throws dust/sand at one side of the station. High-intensity and relatively short,
however the incoming direction is given along with time to prepare. Damages can be reduced or
mitigated with a few people actively working to fix things as the storm hits, but leaving the event to run on its own can lead to widespread breaches.
sandstorm_classic - The original sandstorm event. An admin-only disasterfest that sands down all sides of the station
Uses space dust, meaning walls/rwalls are quickly chewed up very quickly.
scan_condition - Scan condition, these require some specific setup for the dish to count for the scan power for the given site
scanner_controller - Helper datum to calculate and store scanning power and track in progress scans
scar - scars are cosmetic datums that are assigned to bodyparts once they recover from wounds. Each wound type and severity have their own descriptions for what the scars
look like, and then each body part has a list of "specific locations" like your elbow or wrist or wherever the scar can appear, to make it more interesting than "right arm"
scientific_paper - Scientific paper datum for retrieval and re-reading. A lot of the variables are there for fluff & flavor.
carp - CARPTIDE! CARPTIDE! CARPTIDE! A swarm of carp will pass by and through the shuttle, including consequences of carp going through the shuttle
friendly - Spawn a bunch of friendly carp to view from inside the shuttle! May occassionally pass through and nibble some windows, but are otherwise pretty harmless
friendly_but_no_personal_space - Same as /friendly, but we only go through the shuttle, MUHAHAHAHAHAHA!! They dont actually harm anyone, but itll be a clusterfuck of confusion
magic - CARPTIDE! CARPTIDE! CARPTIDE! Magical carp will attack the shuttle!
fake_ttv - We do a little bit of tomfoolery
italian - thats amoreeeeee
maintenance - Just spawn random maint garbage
meteor
dust - Very weak meteors, but may very rarely actually hit the shuttle!
safe - Okay this spawns a lot of really bad meteors, but they never hit the shuttle so it's perfectly safe (unless you go outside lol)
player_controlled - Mobs spawned with this one are automatically player controlled, if possible
alien_queen - BACK FOR REVENGE!!!
carp - Spawns three player controlled carp!! Deadchats final chance to wreak havoc, probably really not that dangerous if even one person has a laser gun
fire_shark - Spawns some player controlled fire sharks
human - Human spawning events, with the ability to give them outfits!
projectile - Spawn projectiles towards the shuttle
turbulence - Repeat the "buckle in or fall over" event a couple times
mail_strike - A special shuttle loan situation enabled by the 'mail blocked' station trait.
It sends back a lot of mail to the station, at the cost of wrecking the cargo shuttle a little.
Spatial Grid Cell - used by /datum/controller/subsystem/spatial_grid to cover every z level so that the coordinates of every turf in the world corresponds to one of these in
the subsystems list of grid cells by z level. each one of these contains content lists holding all atoms meeting a certain criteria that is in our borders.
these datums shouldnt have significant behavior, they should just hold data. the lists are filled and emptied by the subsystem.
species datum - Datum that handles different species in the game.
golem - Animated beings of stone. They have increased defenses, and do not need to breathe. They must eat minerals to live, which give additional buffs.
summon - Ritual, these cause station wide effects and are (pretty much) a blank slate to implement stuff in
specific_spell - A wizard ritual that allows the wizard to teach a specific spellbook enty to everyone on the station.
This includes item entries (which will be given to everyone) but disincludes other rituals like itself
station_request - A combined all in one datum that stores everything about the request, the requester's account, as well as the requestee's account
All of this is passed to the Request Console UI in order to present in organized way.
station_state - For counting up how much of the station exists at the start of the shift, and how much is left behind by the end of it.
station_trait - Base class of station traits. These are used to influence rounds in one way or the other by influencing the levers of the station.
assistant_gimmicks - Spawns assistants with some gear, either gimmicky or functional. Maybe, one day, it will inspire an assistant to do something productive or fun
background_checks - Crew don't ever spawn as enemies of the station. Obsesseds, blob infection, space changelings etc can still happen though
bananium_shipment - This station traits gives 5 bananium sheets to the clown (and every dead clown out there in deep space or lavaland).
skub - A trait that lets players choose whether they want pro-skub or anti-skub (or neither), and receive the appropriate equipment.
storm - Starts a storm on roundstart
foreverstorm - Calls down an eternal storm on planetary stations
vending_shortage - A negative trait that reduces the amount of products available from vending machines throughout the station.
status_effect - Status effects are used to apply temporary or permanent effects to mobs.
This file contains their code, plus code for applying and removing them.
muscled_veins - Muscled veins - Removes the need to have a heart
threaded_veins - Threaded veins - Bleed way less
blessing_of_insanity - Granted to wizards upon satisfying the cheese sacrifice during grand rituals.
Halves incoming damage and makes the owner stun immune, damage slow immune, levitating(even in space and hyperspace!) and glowing.
brimdust_concussion - Slowdown applied when you are detonated on the space station
bugkiller_death - If bugkiller delivers a lethal dosage, applies this effect which does a funny animation THEN kills 'em
Also makes it so simplemobs / basicmobs no longer delete when they die (if they do)
carp_invigoration - Makes you run faster for the duration
golem_lightbulb - Lights up the golem, NOT using the golem subtype because it is not exclusive with other status effects
golem_statued - Uh oh, you can't move, yell for help
grouped - Status effect from multiple sources, when all sources are removed, so is the effect
blindness - Blindness
cursed - Status effect that gives the target miscellanous debuffs while throwing a status alert and causing them to smoke from the damage they're incurring.
Purposebuilt for cursed slot machines.
hooked - Status effect applied when casting a fishing rod at someone, provided the attached fishing hook allows it.
jaws - Version used by the jawed fishing hook, which also applies slowdown
guardian_stealth - Status effect which makes us sneakier and do bonus damage
hallucination - Hallucination status effect. How most hallucinations end up happening.
Hallucinations are drawn from the global weighted list, random_hallucination_weighted_list
incapacitated - This status effect represents anything that leaves a character unable to perform basic tasks (interrupting do-afters, for example), but doesn't incapacitate them further than that (no stuns etc..)
stun/goliath_tentacled - Goliath tentacle stun with special removal conditions
inebriated - The drunk status effect.
Slowly decreases in drunk_value over time, causing effects based on that value.
drunk - Stage 2 of being drunk, applied at drunk values between 6 and onward.
Has all the main side effects of being drunk, scaling up as they get more drunk.
tipsy - Stage 1 of drunk, applied at drunk values between 0 and 6.
Basically is the "drunk but no side effects" stage.
inflated - Status effect from the Expand action, makes you big and round and strong.
lobster_rush - Status effect: Makes you run really fast and ignore speed penalties for a short duration.
If you run into a wall indoors you will fall over and lose the buff.
If you run into someone you both fall over.
extended - You get a longer buff if you take the time to implant it in yourself
no_item_received - This status effect is meant only for items that you don't actually receive
when offered, mostly useful for /obj/item/hand_item subtypes.
high_five - Subtype for high fives, so we can fake out people
needs_resting - This status effect is meant only to be used for offerings that require the target to
be resting (like when you're trying to give them a hand to help them up).
Also doesn't require them to have their hands free (since you're not giving them
anything).
overwatch - Status effect which tracks whether our overwatched mob moves or acts
overwatch_immune - Blocks further applications of the ability for a little while
protective_blades - Summons multiple foating knives around the owner.
Each knife will block an attack straight up.
recharging - A subtype that doesn't self-delete / disappear when all blades are gone
It instead regenerates over time back to the max after blades are consumed
protector_shield - Makes the guardian even more durable, but slower
psychic_projection - Status effect that adds a weird view to its owner and causes them to rapidly shoot a firearm in their general direction.
radiation_immunity - Makes the mob immune to radiation for a short bit to help with safely spawning in hazardous areas
revenant - Parent type for all unique revenant status effects
shadow_cloak - Shadow cloak effect. Conceals the owner in a cloud of purple smoke, making them unidentifiable.
Also comes with some other buffs and debuffs - faster movespeed, slower actionspeed, etc.
shadow_regeneration - Heal in darkness and potentially trigger other effects, persists for a short duration after leaving
brimdust_coating - If you take brute damage with this buff, hurt and push everyone next to you.
If you catch fire and or on the space station, detonate all remaining stacks in a way which hurts you.
Washes off if you get wet.
staggered - Staggered, Next Shove Stuns, No Side Kick
Status effects related to shoving effects and collisions due to shoving
Staggered can occur most often via shoving, but can also occur in other places too.
Stun absorption - A status effect effectively functions as TRAIT_STUNIMMUNE, but with additional effects tied to it,
such as showing a message on trigger / examine, or only blocking a limited amount of stuns.
surrender_timed - For when you need to make someone be prompted for surrender, but not forever
teleport_flux - Status effect applied to users of a Teleport Rod, damages them when they teleport
teleport_madness - Maddly teleports the victim around all of space for 10 seconds
temperature_over_time - Affects temperature over time.
I don't know how this wasn't a thing already.
temporary_blindness - This status effect handles applying a temporary blind to the mob.
temporary_transformation - Transforms a carbon mob into a new DNA for a set amount of time,
then turns them back to how they were before transformation.
stock_part - Represents the concept of a stock part.
One is created for every stock part type for every level.
Machines have these inside their component_parts.
For example, scanning modules use /datum/stock_part/scanning_module.
In machines, you can perform a loop through something like
for (var/datum/stock_part/scanning_module/part in component_parts)
ansible - Subspace stock parts
storage - Datumized Storage
Eliminates the need for custom signals specifically for the storage component, and attaches a storage variable (atom_storage) to every atom.
The parent and real_location variables are both weakrefs, so they must be resolved before they can be used.
If you're looking to create custom storage type behaviors, check ../subtypes
custom - Custom supply pack
The contents are given on New rather than being static
This is for adding custom orders to the Cargo console (like order consoles)
engine - Engine Construction
exploration - Exploration drone unlockables
imports - Imports category.
This is for crates not intended for goodies, but also not intended for departmental orders.
This allows us to have a few crates meant for deliberate purchase through cargo, and for cargo to have a few items
they explicitly control. It also holds all of the black market material and contraband material, including items
meant for purchase only through emagging the console.
blackmarket_telepad - The Long To Short Range Bluespace Teleporter, used to deliver (black) market purchases more effiiently
It can also be used to restock it, if you hit it with enough credits.
misc/syndicate - Special supply crate that generates random syndicate gear up to a determined TC value
custom_value - Syndicate supply crate that can have its contents value changed by admins, uses a seperate datum to avoid having admins touch the original one.
not_friends - Don't target an atom in our friends list (or turfs), anything else is fair game
allow_items - Subtype that allows us to target items while deftly avoiding attacking our allies. Be careful when it comes to targeting items as an AI could get trapped targeting something it can't destroy.
of_size - Subtype which searches for mobs of a size relative to ours
same_faction - Makes the mob only attack their own faction. Useful mostly if their attacks do something helpful (e.g. healing touch).
construct - Targeting strategy that will only allow mobs that constructs can heal.
fishing - A very simple targeting strategy that checks that the target is a valid fishing spot.
lightgeist - Attack only mobs who have damage that we can heal, I think this is specific enough not to be a generic type
admin - Admin techweb that has everything unlocked by default
autounlocking - Techweb node that automatically unlocks a given buildtype.
Saved in GLOB.autounlock_techwebs and used to prevent
creating new ones each time it's needed.
disk - Techweb made through tech disks
Contains nothing, subtype mostly meant to make it easy for admins to see.
science - Global Science techweb for RND consoles
Techweb Node - A datum representing a researchable node in the techweb.
tgs_chat_command - User definable chat command. This abstract version MUST be overridden to be used.
reload_admins - Reload admins tgs chat command. Intentionally not validated.
validated - subtype tgs chat command with validated admin ranks. Only supports discord.
tgs_chat_embed
field - See https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure for details.
footer - See https://discord.com/developers/docs/resources/message#embed-object-embed-footer-structure for details.
media - Common datum for similar Discord embed medias.
provider - See https://discord.com/developers/docs/resources/message#embed-object-embed-provider-structure for details.
author - See https://discord.com/developers/docs/resources/message#embed-object-embed-author-structure for details. Must have name set in New().
structure - User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/message#embed-object for details.
tgui_input_keycombo - Datum used for instantiating and using a TGUI-controlled key input that prompts the user with
a message and listens for key presses.
tgui_input_number - Datum used for instantiating and using a TGUI-controlled number input that prompts the user with
a message and has an input for number entry.
tgui_list_input - Datum used for instantiating and using a TGUI-controlled list input that prompts the user with
a message and shows a list of selectable options
tgui_panel - tgui_panel datum
Hosts tgchat and other nice features.
tgui_say - The tgui say modal. This initializes an input window which hides until
the user presses one of the speech hotkeys. Once something is entered, it will
delegate the speech to the proper channel.
trader_data - Used to contain the traders initial wares, and speech
traitor_category_handler - The traitor category handler. This is where the probability of all objectives are managed.
traitor_objective - A traitor objective. Traitor objectives should not be deleted after they have been created and established, only failed.
If a traitor objective needs to be removed from the failed/completed objective list of their handler, then you are doing something wrong
and you should reconsider. When an objective is failed/completed, that is final and the only way you can change that is by refactoring the code.
assistant - This is only for assistants, because the syndies are a lot less likely to give a shit about what an assistant does, so they're a lot less likely to appear
target_player - The point of this datum is to act as a means to group target player objectives
Not all 'target player' objectives have to be under this subtype, it's only used if you don't want duplicates among the current
children types under this type.
traitor_objective_category - The objective category.
Used to group up entire objectives into 1 weight objects to prevent having a
higher chance of getting an objective due to an increased number of different objective subtypes.
These are nothing but informational holders and will have no other purpose.
sabotage_machinery - Traitor objective to destroy a machine the crew cares about
transport_controller/linear - coordinate and control movement across linked transport_controllers. allows moving large single multitile platforms and many 1 tile platforms.
also is capable of linking platforms across linked z levels
tram - Tram specific variant of the generic linear transport controller.
triple_ai_controller - The triple ai controller handles the admin triple AI mode, if enabled.
It is first created when "Toggle AI Triumvirate" triggers it, and it can be referenced from GLOB.triple_ai_controller
After it handles roundstart business, it cleans itself up.
trophy_data - trophy data datum, for admin manipulation
trophy_manager - Trophy Admin Management Panel
tts_request - A struct containing information on an individual player or mob who has made a TTS request
bitrunner_vdom_settings - Ensures settings on vdoms are correct
blindness - Unit test to check that blindness adds the correct status effects, overlays, and client colors
blood_deficiency_mail - Ensures the blood deficiency quirk updates its mail goodies correctly
bloody_footprints - Tests to make sure bloody footprits work as expected
So no stacking, they actually apply, and shoe staining thrown in for free
book_of_babel - Tests that the book of babel, and by extension grant_all_languages, works as intended
breath - Tests to ensure humans, plasmamen, and ashwalkers can breath in normal situations.
Ensures algorithmic correctness of the "breathe()" and "toggle_internals()" procs.
Built to prevent regression on an issue surrounding QUANTIZE() and BREATH_VOLUME.
See the comment on BREATH_VOLUME for more details.
breath_sanity_ashwalker - Tests to make sure ashwalkers can breathe from the lavaland air.
breath_sanity_plasmamen - Tests to make sure plasmaman can breath from their internal tanks
burning - Tests that no runtimes are thrown when a mob is on fire
cable_powernets - Checking all powernets to see if they are properly connected and powered.
can_see_test - Unit test to make sure can_see is working properly
cardboard_cutouts - Validates that cardboard cutouts have the proper icons
cargo_selling - Makes sure exports work and things can be sold
chat_filter_sanity - Tests the sanity of the chat filter, ensuring it properly blocks words and gives the reason
circuit_component_category - Tests to make sure each circuit component that could potentially be available to a player has a category
client_colours - Checks that client colours have valid colour variables values at least when inited.
closets - Checks that the length of the initial contents of a closet doesn't exceed its storage capacity.
Also checks that nothing inside that isn't immediate is a steal objective.
clothing_drops_items - Tests that removing a piece of clothing drops items that hold said piece of clothing
clothing_under_armor_subtype_check - Test if all jumpsuits are using the proper armor subtype.
computer_disassembly - Test that the computer is disassembled correctly
connect_loc_basic - Test that the connect_loc element handles basic movement cases
connect_loc_change_turf - Test that the connect_loc element handles turf changes
connect_loc_multiple_on_turf - Tests that multiple objects can have connect_loc on the same turf without runtimes.
contents_barfer - Unit test for the contents barfer element
crayon_naming - Makes sure that crayons have their crayon_color in their initial name (to differentiate them in the crafting menu).
create_and_destroy - Delete one of every type, sleep a while, then check to see if anything has gone fucky
cult_conversion - Tests that cults can convert people with their rune
dcs_check_list_arguments - list arguments for bespoke elements are treated as a text ref in the ID, like any other datum.
Which means that, unless cached, using lists as arguments will lead to multiple instance of the same element
being created over and over.
dcs_get_id_from_arguments - Tests that DCS' GetIdFromArguments works as expected with standard and odd cases
defined_inhand_icon_states - Makes sure items with defined inhand_icon_states... actually have icons that exist!
door_access_check - Tests to make sure door access works correctly.
drink_icons - Unit tests glass subtypes have a valid icon setup
dummy_spawn_outfit - Equips and devests our dummy of one of every job outfit
dummy_spawn_species - This set of tests is focused on ensuring the stability of preference dummies
And by extension the hacks built to make them fast
Organ consistency, object pooling via the wardrobe ss, etc
dynamic_roundstart_ruleset_sanity - Verifies that roundstart dynamic rulesets are setup properly without external configuration.
dynamic_unique_antag_flags - Verifies that dynamic rulesets have unique antag_flag.
egg_glands - Verifies that all glands for an egg are valid
ensure_subtree_operational_datum - Unit Test that ensure that if we add a specific planning subtree to a basic mob's planning tree, that we also have the operational datum needed for it (component/element).
This can be extended to other "mandatory" operational datums for certain subtrees to work.
explosion_action - Tests the EX_ACT macro on several different types of atoms to ensure that it still works as expected.
eye_damage - Unit test to ensure eyes are properly blinded and nearsighted by eye damage
fish_aquarium_icons - Ensures that all fish have an aquarium icon state and that sprite_width and sprite_height have been set.
fish_breeding - Checks that fish breeding works correctly.
fish_evolution - Checks that fish evolutions work correctly.
fish_growth - Check that the fish growth component works.
fish_portal_gen_linking - A test that checks that fishing portals can be linked and function as expected
fish_randomize_size_weight - Check that nothing wrong happens when randomizing size and weight of a fish
fish_rescue_hook - Checks that we are able to fish people out of chasms with priority and that they end up in the right location
fish_size_weight - Checks that things associated with fish size and weight work correctly.
focus_only - These tests perform no behavior of their own, and have their tests offloaded onto other procs.
This is useful in cases like in build_appearance_list where we want to know if any fail,
but is not useful to right a test for.
This file exists so that you can change any of these to TEST_FOCUS and only check for that test.
For example, change /datum/unit_test/focus_only/invalid_overlays to TEST_FOCUS(/datum/unit_test/focus_only/invalid_overlays),
and you will only test the check for invalid overlays in appearance building.
atmos_and_temp_requirements - Checks that maploaded mobs with either the atmos_requirements or body_temp_sensitive
bad_cooking_crafting_icons - Checks for bad icon / icon state setups in cooking crafting menu
fish_sources_tables - Checks that the contents of the fish_counts list are also present in fish_table
humanstep_validity - Catches any invalid footstep types set for humans
invalid_emissives - Checks that every created emissive has a valid icon_state
invalid_overlays - Checks that every overlay passed into build_appearance_list exists in the icon
invalid_research_designs - Checks that every icon sent to the research_designs spritesheet is valid
invalid_vending_machine_icon_states - Checks that every icon sent to vending machines is valid
missing_job_datum_variables - Checks to ensure that variables expected to exist in a job datum (for config reasons) actually exist
multiple_space_initialization - Checks that space does not initialize multiple times
nightvision_color_cutoffs - Checks that nightvision eyes have a full set of color lists
openspace_clear - Ensures openspace never spawns on the bottom of a z stack
runtime_icon_states - Checks icon states generated at runtime are valid
sorted_smoothing_groups - Checks that smoothing_groups and canSmoothWith are properly sorted in /atom/Initialize
stacked_lights - Checks that no light shares a tile/pixel offsets with another
topdown_filtering - Ensures only whitelisted planes can have TOPDOWN_LAYERing, and vis versa
valid_turf_states - Checks that floor tiles are properly mapped to broken/burnt
font_awesome_icons - This unit test verifies that all Font Awesome icons are present in code, and that all quirk icons are valid.
food_edibility_check - Makes sure that spawned food has reagents and the edible component (or else it can't be eaten).
full_heal_damage_types - Tests the fully heal combination flag HEAL_DAMAGE.
full_heal_heals_organs - Tests the fully heal flag HEAL_ORGANS.
full_heal_regenerates_organs - Tests the fully heal flag HEAL_REFRESH_ORGANS.
get_message_mods - Test to verify message mods are parsed correctly
get_turf_pixel - ensures that get_turf_pixel() returns turfs within the bounds of the map,
even when called on a movable with its sprite out of bounds
geyser - Geysers listen to reagent signals to know when to start processing, which is very cool, smart, optimized and fragile
Tests:
Check for reagent datum
Check if our geyser starts with the right reagent
Check if our geyser refills (by clearing the reagents, setting refresh rate to max and manually firing the subsystem)
Check if our geyser refilled with the right reagent
glass_style_functionality - Unit tests glass style datums are applied to drinking glasses
glass_style_icons - Unit tests all glass style datums with icons / icon states that those are valid and not missing.
gloves_and_shoes_armor - Checks if any gloves or shoes that have non bio/fire/acid armor haven't been marked with ARMS or LEGS coverage respectively
golem_food - Unit test to ensure that golems can eat rocks successfully
greyscale_color_count - Makes sure objects using greyscale configs have, if any, the correct number of colors
greyscale_item_icon_states - Makes sure items using GAGS have all the icon states needed to work
gun_go_bang - Shoots a victim with a gun to ensure the gun properly loads and the victim take the correct amount of damage.
hallucination_icons - Unit tests various image related hallucinations
that their icon_states and icons still exist,
as often hallucinations are copy and pasted
implementations of existing image setups
that may be changed and not updated.
handcuff_bite - Tests handcuffed (HANDS_BLOCKED) monkeys can still bite despite being cuffed
human_through_recycler - Puts a consistent assistant into an emagged recycler, and verifies that all intended behavior of an emagged recycler occurs (chewing up all the clothing, applying a level of melee damage, etc.)
human_tox_damage - Tests that humans get the tox_vomit status effect when heavily poisoned
hunger_curse - Tests that the curse of hunger, from /datum/component/curse_of_hunger,
is properly added when equipped to the correct slot and removed when dropped / deleted
hydroponics_extractor_storage - Unit test to ensure seeds can properly be added to the plant seed extractor through multiple methods.
This only tests transferring seeds to the storage, it does NOT test creating seeds.
json_savefiles - The job of this unit test is to ensure that save files are correctly imported from BYOND to JSON.
It's a rather convoluted process and so this test ensures that something didn't fuck up somewhere.
knockdown - Tests knockdown and the canknockdown flag
knockoff_component - Test that the knockoff component will properly cause something
with it applied to be knocked off when it should be.
language_mind_swap - Tests that mind bound languages are not lost when swapping with another person (wiz mindswap)
language_mind_transfer - Tests that mind bound languages are not lost swapping into a new mob, but other languages are
language_species_change_other_known - Test that other random languages known are not lost on species change
language_species_swap_complex - Tests species changes which are more complex are functional (e.g. from a species which speaks common to one which does not)
language_species_swap_simple - Simply tests that swapping to a new species gives you the languages of that species and removes the languages of the old species
leash
limit_range - Validates that the leashed object cannot move outside of the max distance from owner
no_teleport - Validates the leash component will keep its parent within range without teleporting
when possible.
will_teleport - Validates that the leash component will forcibly teleport when necessary
lesserform - Unit test to ensure that changelings can consistently turn from monkeys to humans and back
ling_decap - Test lings don't die when decapitated.
load_map_security - Tests to ensure we can load a map from a whitelisted directory (_maps), but not a non-whitelisted directory (i.e "fartyShitPants")
log_mapping - Conveys all log_mapping messages as unit test failures, as they all indicate mapping problems.
lungs - Tests the standard, plasmaman, and lavaland lungs organ to ensure breathing and suffocation behave as expected.
Performs a check on each main (can be life-sustaining) gas, and ensures gas alerts are only thrown when expected.
lungs_sanity_ashwalker - Tests the lavaland/Ashwalker lungs organ.
Ensures they can breathe from the lavaland air mixture properly, and suffocate on inadequate mixture.
lungs_sanity_plasmaman - Tests the Plasmaman lungs organ to ensure Plasma breathing and suffocation behave as expected.
machine_disassembly - Ensures that when disassembling a machine, all the parts are given back
mafia - Checks if a Mafia game with a Modular Computer and a Ghost will run with 'basic_setup', which is the default
way the game is ran, without admin-intervention.
The game should immediately end in a Town Victory due to lack of evils, but we can verify that both the PDA and the ghost
successfully managed to get into the round.
mapload_space_verification - Verifies that there are no space turfs inside a station area, or on any planetary z-level. Sometimes, these are introduced during the load of the map and are not present in the DMM itself.
Let's just make sure that we have a stop-gap measure in place to catch these if they pop up so we don't put it onto production servers should something errant come up.
mapping_nearstation_test - Detects movables that may have been accidentally placed in space, as well as movables which do not have the proper nearspace area (meaning they aren't lit properly.)
market - Ensures market items have acceptable variable values and restocking works.
mecha_damage - Unit test to ensure that mechs take the correct amount of damage
based on armor, and that their equipment is properly damaged as well.
mind_swap_spell - Validates that the mind swap spell
properly transfers minds between a caster and a target.
missing_icons - Makes sure objects actually have icons that exist!
mob_chains - Checks if mobs who are linked together with the mob chain component react as expected
mob_damage - Tests to make sure mob damage procs are working correctly
basic - Tests that mob damage procs are working as intended for basic mobs
mob_faction - Checks if any mob's faction var initial value is not a list, which is not supported by the current code
mob_spawn - Verifies that all glands for an egg are valid
operating_table - Make a mob hop on an optable, rest, get up, rest again, and then move to another tile.
While the mob is still an active patient, move another mob in too.
This is so the replacement code can kick in when the original mob is no longer valid.
orderable_items - Makes sure that no orderable items have dynamic descriptions, if they
don't explicitly set a description.
Also makes sure 2 orderable items don't sell the same thing.
organ_bodypart_shuffle - Moves organs in and out of bodyparts, and moves the bodyparts around to see if someone didn't fuck up their movement
organ_damage - Tests organ damage cap.
Organ damage should never bypass the cap.
Every internal organ is tested.
organ_sanity - Check organ insertion and removal, for all organ subtypes usable in-game.
Ensures algorithmic correctness of the "Insert()" and "Remove()" procs.
This test is especially useful because developers frequently override those.
organ_set_bonus_id - Checks that all "organ_set_bonus" status effects have unique "id" vars.
Required to ensure that the status effects are treated as "unique".
organ_set_bonus_sanity - Checks that all implantable DNA Infuser organs are set up correctly and without error.
Tests the "organ set bonus" Elements and Status Effects, which are for the DNA Infuser.
This test ensures that the "organ_set_bonus" status effects activate and deactivate when expected.
orphaned_genturf - Ensures we do not leave genturfs sitting around post work
They serve as notice to the mapper and have no functionality, but it's good to make note of it here
oxyloss_suffocation - Test getting over a certain threshold of oxy damage results in KO
paintings - Checks that all kind of painting frames have a sprite for each canvas type in the game.
paralyze - Tests paralyze and stuns that have two flags checked (in this case, canstun and canknockdown)
plane_double_transform - Ensures plane masters that get shrunk by multiz NEVER render into each other
plane_dupe_detector - Checks if we don't have two planes on the same layer
plane_layer_sanity - Ensures we have no invalid plane/layer combos post init
preference_species - Checks that all enabled roundstart species
selectable within the preferences menu
have their info / page setup correctly.
preferences_implement_everything - Requires all preferences to implement required methods.
preferences_should_generate_icons_sanity - Validates that every choiced preference with should_generate_icons implements icon_for,
and that every one that doesn't, doesn't.
preferences_valid_main_feature_name - Requires all main features have a main_feature_name
preferences_valid_savefile_key - Requires all preferences to have a valid, unique savefile_identifier.
projectile_movetypes - Tests all projectiles that none of them are phasing.
quirk_icons - Ensure every quirk has a unique icon
range_return - This tests for an unspecified bit of behavior we rely on in energy_ball.dm code
Essentially, as of the current byond version, range and view will return turfs in what looks "roughly" like a circle
So we can be guarenteed that if we find a turf, it will be the closest turf of that sort, or at least one of them
This code tests for that. If this ever fails, remove the logic fron energy_ball.dm, and test if spiral_turfs would be faster
reagent_container_defaults - Checks if reagent container transfer amount defaults match with actual possible values
reagent_container_sanity - Test to ensure that all possible reagent containers have enough space to hold any reagents they spawn in with.
A drink can with only 30 units of space should not be able to hold 50 units of drink, as an example.
reagent_names - Test that all reagent names are different in order to prevent #65231 and tests that searching for that reagent by name gives the correct one
reagent_transfer - Tests transferring reagents between two reagents datums.
required_map_items - Tests that all expected items are mapped in roundstart.
revolution_conversion - Tests that headrevs can convert people by clicking on them with flashes
say_signal - Test to verify COMSIG_MOB_SAY is sent the exact same list as the message args, as they're operated on
screenshot_antag_icons - A screenshot test to make sure every antag icon in the preferences menu is consistent
screenshot_basic - This is an example for screenshot tests, and a meta-test to make sure they work in the success case.
It creates a picture that is red on the left side, green on the other.
screenshot_digi - Ensures digitigrade legs and clothing are displayed correctly in screenshots
screenshot_dynamic_human_icons - A screenshot test for specific dynamic human icons
shadow_jaunt - Tests Shadow Walk can be entered and exited
shapeshift_health - Validates that shapeshifting carries health or death between forms properly, if it is supposed to
shapeshift_holoparasites - Validates that shapeshifts function properly with holoparasites.
shapeshift_spell - Validates that shapeshift spells put the mob in another mob, as they should.
shapeshift_spell_validity - Validates that all shapeshift type spells have a valid possible_shapes setup.
simple_animal_freeze - Tests that no new simple_animal subtypes are added.
slime_mood - Unit test that tests all types of moods for slimes, to make sure they all have proper icons, excluding moods that intentionally don't have an icon.
slips - Unit test that forces various slips on a mob and checks return values and mob state to see if the slip has likely been successful.
space_dragon_expiration - Unit tests that the space dragon - when its rift expires and it gets qdel'd - doesn't delete all the mobs it has eaten
spawn_mobs - Unit test that spawns all mobs that can be spawned by golden slimes
species_change_clothing - Gives a Human lizard-incompatible shoes, then changes their species over to see if they drop the now incompatible shoes, testing if Digitigrade feet works.
Gives a Monkey a collar, then changes their species to Human to see if item's restrictions works on species change.
species_change_held_items - Gives a Human items in both hands, then swaps them to be another species. Held items should remain.
species_change_organs - Unit test to ensure that, when a mob changes species,
certain aspects are carried over between their old and new set of organs
(brain traumas, cybernetics, and organ damage)
species_unique_id - Every species should use a species ID unique to it and it alone. This test runs through every subtype of /datum/species, and checks for a species ID.
Every ID is written to a list, gathered_species_ids, and if a previously written ID is written again, this test will fail.
speech - This runs some simple speech tests on a speaker and listener and determines if a person can hear whispering or speaking as they are moved a distance away
speech_modifiers - Test to ensure native tongue languages properly impact speech
spell_invocations - Validates that all spells have a correct
invocation type and invocation setup.
spell_names - Validates that all spells have a different name.
spritesheets - Checks if spritesheet assets contain icon states with invalid names
spy_bounty - Tests spy bounty setup
stack_singular_name - Goes through every subtype of /obj/item/stack to check for a singular name, var/singular_name.
Everything within the blacklist does not need to be tested because it exists to be overridden.
This test will fail if a subtype of /obj/item/stack is missing a singular name.
stam_regen - Tests stamina regen after the set time
stamcrit - Tests 100 stamina damage = stamcrit
start_tend_wounds - Ensures that the tend wounds surgery can be started
station_traits - This test spawns various station traits and looks through them to see if there's any errors.
status_effect_ticks - Validates status effect tick interval setup
translate_language - This unit test translates a string from one language to another depending on if the person can understand the language
trauma_granting - Tests that brain traumas can be granted and removed properly.
turf_icons - Makes sure turf icons actually exist. :)
tutorial_sanity - Verifies that every tutorial has properly set variables
unconsciousness - Tests unconsciousness and the canunconscious flag
valid_dna_infusion - Check that input types that aren't living mobs have the TRAIT_VALID_DNA_INFUSION trait
verify_config_tags - Unit Test to ensure that all config tags that we associate to all jobs in SSjob.joinable_occupations are valid.
verify_emoji_names - Apparently, spritesheets (or maybe how the CSS backend works) do not respond well to icon_state names that are just pure numbers (which was a behavior in emoji.dmi).
In case we add more emoji, let's just make sure that we don't have any pure numbers in the emoji.dmi file if we ever add more.
wizard_loadout - Test loadouts for crashes, runtimes, stack traces and infinite loops. No ASSERTs necessary.
worn_icons - Makes sure suit slot items aren't using CS:S fallbacks.
mirroring - Tracks and updates another mob with our mob's visual data
tracking - Tracks but does not relay updates to someone's visual data
Accepts a second visual data datum to use as a source of truth for the mob's values
voice_of_god_command - Voice of god command datums that are used in [/proc/voice_of_god()]
attract - This command throws the listeners at the user.
bleed - This command makes carbon listeners bleed from a random body part.
brute - This command applies 15 points of brute damage to the listeners. There's subtle theological irony in this being more powerful than healing.
burn - This command sets the listeners ablaze.
cold - This command cools the listeners down like freezing water.
emote - Supertype of all those commands that make people emote and nothing else. Fuck copypasta.
getup - This command forces the listeners to get the fuck up, resetting all stuns.
hallucinate - This command makes the listeners see others as corgis, carps, skellies etcetera etcetera.
heal - This command heals the listeners for 10 points of total damage.
honk - This command plays a bikehorn sound after 2 seconds and a half have passed, and also slips listeners if the user is a clown.
hot - This command heats the listeners up like boiling water.
immobilize - This command stops the listeners from moving.
jump - This command forces the listener to do the jump emote 3/4 of the times or reply "HOW HIGH?!!".
knock_knock - This command forces the listeners to say "Who's there?".
knockdown - This command knocks the listeners down.
move - This command forces the listeners to take step in a direction chosen by the user, otherwise a random cardinal one.
multispin - This command spins the listeners 1800° degrees clockwise.
repulse - This command throws the listeners away from the user.
run - This command forces the listeners to switch to run intent.
say_my_name - This command forces the listeners to say the user's name
silence - This command silences the listeners. Thrice as effective is the user is a mime or curator.
sit - This command forces each listener to buckle to a chair found on the same tile.
speak - This command forces the listeners to say a brain damage line.
stand - This command forces each listener to unbuckle from whatever they are buckled to.
state_laws - This command forces silicon listeners to state all their laws.
throw_catch - This command turns the listeners' throw mode on.
vomit - This command makes carbon listeners throw up like Mr. Creosote.
wake_up - This command wakes up the listeners.
walk - This command forces the listeners to switch to walk intent.
who_are_you - This command forces the listeners to say their true name (so masks and hoods won't help).
Basic and simple mobs who are forced to state their name and don't have one already will... reveal their actual one!
Vote Singleton - A singleton datum that represents a type of vote for the voting subsystem.
worn_feature_offset - A datum for controlling how to position items on an unusually offset body part
For instance if you have an asymmetrical head, hats might need to be offset to one side
brand - special severe wound caused by sparring interference or other god related punishments.
cursed_brand - special severe wound caused by the cursed slot machine.
cranial_fissure - A wound applied when receiving significant enough damage to the head.
Will allow other players to take your eyes out of your head, and slipping
will cause your brain to fall out of your head.
wound_pregen_data - A singleton datum that holds pre-gen and static data about a wound. Each wound datum should have a corresponding wound_pregen_data.
z_pillar - Grouping datum that manages transparency for a block of space
Setup to ease debugging, and to make add/remove operations cheaper
basic - Simple animals 2.0, This time, let's really try to keep it simple. This basetype should purely be used as a base-level for implementing simplified behaviours for things such as damage and attacks. Everything else should be in components or AI behaviours.
Magicarp - Carp who can cast spells!
Mostly created via wizard event or transformation.
Come in 'does one thing' and 'does random things' varieties.
Chaos Magicarp - Fires a random spell (and changes colour) every time, also beefier.
Sometimes actually more durable than the much larger megacarp. That's magic for you.
They trade off for this with a tendency to fireball themselves.
xenobiology - Has a more limited spell pool but can appear from gold slime cores
pet - Pet carp, abstract carp which just holds some shared properties.
cayenne - Cayenne - Loyal member of the nuclear operatives.
Spawns in the nuke op shuttle, can be made sapient if they want to do that for some reason.
Is very talented and also capable of holding the nuclear disk.
lia - Lia - Sometimes the pet of the Head of Security.
Has a lot more health than a normal carp because she's meant to be a mildly more threatening pet to have to assassinate than an aging corgi.
classic - "Classic" drones, which are not shy and get a duffelbag of tools instead of built-in tools.
derelict - Derelict drones, a ghost role tasked with repairing KS13. Get gibbed if they leave.
polymorphed - A free drone that people can be turned into via wabbajack.
snowflake - A drone that spawns with a chameleon hat for fashion purposes.
bardrone - Bar staff, mobs with the TRAIT_GODMODE trait (as long as they stay in the shuttle)
that just want to make sure people have drinks and a good shuttle time.
syndrone - A Syndicate drone, tasked to cause chaos on the station.
Has a lot more health and its own uplink with 10 TC.
badass - A version of the syndrone that gets a nuclear uplink, a firearms implant, and 30 TC.
flesh_spider - Spider-esque mob summoned by changelings. Exclusively player-controlled.
An independent hit-and-run antagonist which can make webs and heals itself if left undamaged for a few seconds.
Not a spider subtype because it keeps getting hit by unrelated balance changes intended for the Giant Spiders gamemode.
swarm - Weaker variant of ghosts. Meant to be summoned in swarms via the ectoplasmic anomaly and associated ghost portal.
goat - The Greatest (animal) Of All Time. Cud chewing, shin-kicking, kitchen-dwelling nuisance.
gorilla - Like a bigger monkey
They make a lot of noise and punch limbs off unconscious folks
cargorilla - Cargo's wonderful mascot, the tranquil box-carrying ape
genetics - A version of the gorilla achieved by reaching enough genetic damage as a monkey
lesser - A smaller gorilla summoned via magic
guardian - A mob which acts as a guardian angel to another mob, sharing health but protecting them using special powers.
Usually either obtained in magical form by a wizard, or technological form by a traitor. Sometimes found by miners.
assassin - Can enter stealth mode to become invisible and deal bonus damage on their next attack, an ambush predator.
charger - Very fast, has a charging attack, and most importantly can be ridden like a horse.
dextrous - Dextrous guardians have some of the most powerful abilities of all: hands and pockets
explosive - A durable guardian which can convert objects into hidden explosives.
gaseous - Not particularly resistant, but versatile due to the selection of gases it can generate.
gravitokinetic - Somewhat durable guardian who can increase gravity in an area
lightning - A reasonably durable guardian linked to you by a chain of lightning, zapping people who get between you
protector - Very durable, and reverses the usual leash dynamic. Can slow down to become extremely durable.
ranged - A ranged guardian can fling shards of glass at people very very quickly. It can also enter a long-range scouting mode.
standard - Plain, but durable and strong. Can destroy walls.
support - Quick-moving mob which can teleport things to a beacon and heal its allies
beakless - Neutered version to prevent people from turning themselves into changelings with sentience potions or transformation
heretic_summon
armsy - The "Terror of the Night" / Armsy, a large worm made of multiple bodyparts that occupies multiple tiles
ash_spirit - Player-only mob which is fast, can jaunt a short distance, and is dangerous at close range
maid_in_the_mirror - Scout and assassin who can appear and disappear from glass surfaces. Damaged by being examined.
raw_prophet - A funny little rolling guy who is great at scouting.
It can see through walls, jaunt, and create a psychic network to report its findings.
It can blind people to make a getaway, but also get stronger if it attacks the same target consecutively.
ascended - Variant raw prophet used by eldritch transformation with more base attack power
ruins - NPC variant with a less bullshit ability
rust_walker - Pretty simple mob which creates areas of rust and has a rust-creating projectile spell
node_drone - Mining drones that are spawned when starting a ore vent's wave defense minigame.
They will latch onto the vent to defend it from lavaland mobs, and will flee if attacked by lavaland mobs.
If the drone survives, they will fly away to safety as the vent spawns ores.
If the drone dies, the wave defense will fail.
regal_rat - The cheesiest, most crowned rat of them all. Regent superior of all rats in maintenance... at least until someone else tries to encroach on their claim.
controlled - Regal rat subtype which can be possessed by ghosts
revenant - Revenants: "Ghosts" that are invisible and move like ghosts, cannot take damage while invisible
Can hear deadchat, but are NOT normal ghosts and do NOT have x-ray vision
Admin-spawn or random event
space_dragon - Advanced stage of the space carp life cycle, spawned as a midround antagonist
Can eat corpses to heal, blow people back with its wings, and obviously as a dragon it breathes fire. It can even tear through walls.
The midround even version also creates rifts which summon carp, and heals when near them.
spawn_with_antag - Subtype used by the midround/event
Giant Spider - A mob which can be created by dynamic event, botany, or xenobiology.
The basic type is the guard, which is slow but sturdy and outputs good damage.
All spiders can produce webbing.
growing - Spider which turns into another spider over time
Spiderlings - Baby spiders that are generated through a variety of means (like botany for instance).
Able to vent-crawl and eventually grow into a full fledged giant spider.
ambush - Will differentiate into the "ambush" young spider.
breacher - Will differentiate into the "breacher" young spider.
guard - This whole file is just a container for the spiderling subtypes that actually differentiate into different young spiders. None of them are particularly special as of now.
Will differentiate into the base young spider (known colloquially as the "guard" spider).
hunter - Will differentiate into the "hunter" young spider.
midwife - Will differentiate into the "midwife" young spider.
nurse - Will differentiate into the "nurse" young spider.
scout - Will differentiate into the "scout" young spider.
tangle - Will differentiate into the "tangle" young spider.
tank - Will differentiate into the "tank" young spider.
tarantula - Will differentiate into the "tarantula" young spider.
viper - Will differentiate into the "viper" young spider.
Young Spider - A mob which can be created by spiderlings/spider eggs.
The basic type is the guard, which is slow but sturdy and outputs good damage.
All spiders can produce webbing.
ambush - Will differentiate into the "ambush" giant spider.
breacher - Will differentiate into the "breacher" giant spider.
guard - Will differentiate into the base giant spider (known colloquially as the "guard" spider).
hunter - Will differentiate into the "hunter" giant spider.
midwife - Will differentiate into the "midwife" giant spider.
nurse - Will differentiate into the "nurse" giant spider.
scout - Will differentiate into the "scout" giant spider.
tangle - Will differentiate into the "tangle" giant spider.
tank - Will differentiate into the "tank" giant spider.
tarantula - Will differentiate into the "tarantula" giant spider.
viper - Will differentiate into the "viper" giant spider.
classic - Uses the colors and loadout of the original wizard simplemob
Wumborian Fugu - A strange alien creature capable of increasing its mass when threatened, when not inflated it is virtually defenceless.
Mostly only appears from xenobiology, or the occasional wizard.
On death, the "fugu gland" is dropped, which can be used on mobs to increase their size, health, strength, and lets them smash walls.
human - Any humanoid (non-Xeno) mob, such as humans, plasmamen, lizards.
consistent - Provides a dummy for unit_tests that functions like a normal human, but with a standardized appearance
Copies the stock dna setup from the dummy/consistent type
Goliath Broodmother - A stronger, faster variation of the goliath. Has the ability to spawn baby goliaths, which it can later detonate at will.
When its health is below half, tendrils will spawn randomly around it. When it is below a quarter of health, this effect is doubled.
Its attacks are as follows:
Herald - A slow-moving projectile user with a few tricks up its sleeve. Less unga-bunga than Colossus, with more cleverness in its fighting style.
As its health gets lower, the amount of projectiles fired per-attack increases.
Its attacks are as follows:
Legionnaire - A towering skeleton, embodying the power of Legion.
As its health gets lower, the head does more damage.
Its attacks are as follows:
Pandora - A box with a similar design to the Hierophant which trades large, single attacks for more frequent smaller ones.
As its health gets lower, the time between its attacks decrease.
Its attacks are as follows:
vatbeast - Vatbeasts are creatures from vatgrowing and are literaly a beast in a vat, yup. They are designed to be a powerful mount roughly equal to a gorilla in power.
proccall_handler - Used to handle proccalls called indirectly by an admin (e.g. tgs, circuits).
Has to be a mob because IsAdminAdvancedProcCall() checks usr, which is a mob variable.
So usr is set to this for any proccalls that don't have any usr mob/client to refer to.
durand_shield - Shield processing
*An object to take the hit for us when using the Durand's defense mode.
It is spawned in during the durand's initilization, and always stays on the same tile.
Normally invisible, until defense mode is actvated. When the durand detects an attack that should be blocked, the
attack is passed to the shield. The shield takes the damage, uses it to calculate charge cost, and then sets its
own integrity back to max. Shield is automatically dropped if we run out of power or the user gets out.
effect
abstract - The abstract effect ignores even more effects and is often typechecked for atoms that should truly not be fucked with.
chasm_storage - An abstract object which is basically just a bag that the chasm puts people inside
info - An info button that, when clicked, puts some text in the user's chat
local_food_rain - Makes food land near it until it expires
particle_holder - objects can only have one particle on them at a time, so we use these abstract effects to hold and display the effects. You know, so multiple particle effects can exist at once.
also because some objects do not display particles due to how their visuals are built
cached - A subtype of particle holder that reuses the same particles to reduce client lag
when rendering certain atoms, usually found in large quantities and close together.
Since it reuses the same instances, modifying an instance of particles will affect all atoms
that show it, therefore procs like set_particle_position() shouldn't be used here.
z_holder - Exists to be placed on the turf of walls and such to hold the vis_contents of the tile below
Otherwise the lower turf might get shifted around, which is dumb. do this instead.
permanent - A form of the cult forcefield that lasts permanently.
Used on the Shuttle 667.
mime - Mime forcefields (invisible walls)
psychic - Psyker forcefield
wizard - The wizard's forcefield, summoned by forcewall
goliath_tentacle - A tentacle which grabs you if you don't get away from it
grand_rune - Magic rune used in the grand ritual.
A wizard sits themselves on this thing and waves their hands for a while shouting silly words.
Then something (usually bad) happens.
cheesy - Spawned when 50 or more cheese was sacrificed during previous grand rituals.
Will spawn instead of the usual grand ritual rune, and its effect is already set and can't be changed.
Sorry, no narwal fighting on the open ocean this time.
heretic_rune - The heretic's rune, which they use to complete transmutation rituals.
big - A 3x3 heretic rune. The kind heretics actually draw in game.
hotspot - Hotspot objects interfaces with the temperature of turf gasmixtures while also providing visual effects.
One important thing to note about hotspots are that they can roughly be divided into two categories based on the bypassing variable.
goal_area - Marks an area as a goal for atmospheric connectivity; ignored if the map contains the mark all station areas landmark!
ignore_area - Marks an area as ignored for purposes of default station connectivity.
mark_all_station_areas_as_goal - Marks ALL station areas as a goal, ignoring any other goals.
start_area - Marks an area as a starting point for crawling atmospheric connectivity.
bitrunning
cache_goal_turf - Where the crates need to be taken
cache_spawn - Where you want the crate to spawn
crate_replacer - Swaps the locations of an encrypted crate in the area with another randomly selected crate.
Randomizes names, so you have to inspect crates manually.
curiosity_spawn - Where you want secondary objectives to spawn
hololadder_spawn - Where the exit hololadder spawns
loot_signal - In case you want to gate the crate behind a special condition.
nav_beacon/tram - transport_controller landmarks. used to map specific destinations on the map.
transport_id - transport_controller landmarks. used to map in specific_transport_id to trams and elevators. when the transport_controller encounters one on a tile
it sets its specific_transport_id to that landmark. allows you to have multiple trams and multiple objects linking to their specific tram
unit_test_bottom_left - Marks the bottom left of the testing zone.
In landmarks.dm and not unit_test.dm so it is always active in the mapping tools.
unit_test_top_right - Marks the top right of the testing zone.
In landmarks.dm and not unit_test.dm so it is always active in the mapping tools.
voidwalker_void - Lardmarks meant to designate where voidwalker kidnapees are sent
mapping_error - Used for marking mapping errors. These should only be created by cases explicitly caught by unit tests, and should NEVER actually appear in production.
mapping_helpers
atom_injector - Helpers used for injecting stuff into atoms on the map.
component_injector - This helper applies components to things on the map directly.
custom_icon - Fetches an external dmi and applies to the target object
custom_sound - Fetches an external sound and applies to the target object
element_injector - This helper applies elements to things on the map directly.
human_icon_injector - This helper applies dynamic human icons to things on the map
trait_injector - This helper applies traits to things on the map directly.
basic_mob_flags - Basic mob flag helpers for things like deleting on death.
bombable_wall - Apply to a wall (or floor, technically) to ensure it is instantly destroyed by any explosion, even if usually invulnerable
broken_machine - Applies BROKEN flag to the first found machine on a tile
dark_matteor - The dark matt-eor. Only attracted by emagging 10 satellites and maximizing meteor chances, and it drops a singulo. Otherwise, it's not that bad.
corpse - these mob spawn subtypes trigger immediately (New or Initialize) and are not player controlled... since they're dead, you know?
ai - dead ai, blue screen and everything.
facehugger - dead facehuggers, great for xeno ruins so you can have a cool ruin without spiraling the entire round into xenomorph hell. also, this is a terrible terrible artifact of time
goliath - dead goliath spawner
headcrab - Dead headcrab for changeling-themed ruins
aimodule/harmless - AI uploads have the ai_module/reset , ai_module/supplied/freeform , ai_module/reset/purge , and ai_module/core/full/asimov directly mapped in
big_anomaly - Spawns a big, amped up fat anomaly
environmentally_safe_anomaly - Spawns a stable anomally that doesnt drop cores and doesn't destroy or alter the environment
food_or_drink/cake_ingredients - Used for the employee birthday station trait
lavaland_mob - For map generation, has a chance to instantiate as a special subtype
goliath - Spawns random goliath variants during map generation
legion - Spawns random legion variants during map generation
watcher - Spawns random watcher variants during map generation
maintenance/no_decals - A subtype of maintenance loot spawner that does not spawn any decals, for when you want to place them on chasm turfs and such
decals such as ashes will cause NeverShouldHaveComeHere() to fail on such turfs, which creates annoying rng based CI failures
structure/twelve_percent_spirit_board - 12% chance to spawn a ouija board, or a potted plant. Btw, Wawastation has a guaranteed board.
channelled - indefinite version, but only if no immune atoms move.
trading_card_panel - A display panel that renders a set of icons (in this case mana crystals), this is generated by /obj/machinery/trading_card_button and can be manipulated by the button which generates it.
health - A variant of the display panel for life shards, this one is set up to display two columns.
round_default_fallback - When the default lawset spawner cannot find a module object to spawn, it will spawn this, and this sets itself to the round default.
This is so /datum/lawsets can be picked even if they have no module for themselves.
malf - Makes the AI Malf, as well as give it syndicate laws.
air_sensor - A portable version of the /obj/machinery/air_sensor
Wrenching it & turning it on will convert it back to /obj/machinery/air_sensor
Unwelding /obj/machinery/air_sensor will turn it back to /obj/item/air_sensor
The logic is same as meters
biopsy_tool - Tool capable of taking biological samples from mobs
bitrunning_disk - Bitrunning tech disks which let you load items or programs into the vdom on first avatar generation.
For the record: Balance shouldn't be a primary concern.
You can make the custom cheese spells you've always wanted.
Just make it fun and engaging, it's PvE content.
bloodcrawl - Bloodcrawl "hands", prevent the user from holding items in bloodcrawl
blueprints - Blueprints
Used to see the wires of machines on the station, the roundstart layout of pipes/cables/tubes,
as well as allowing you to rename existing areas and create new ones.
Used by the station, cyborgs, and golems.
cyborg - Cyborg blueprints - The same as regular but with a different fluff text.
golem - Golem blueprints - Used to make golem areas that won't give the hazardous area debuffs.
slime - Slime blueprints - Makes areas colored and compatible with xenobiology camera consoles, one time use.
bluespace_finger - Point at a target and teleport somewhere vaguely close to it
dullahan - Dullahan head preserves organs inside it
fly - FLY
jelly - JELLY
luminescent - LUMINESCENT
slime - SLIME
mushroom - MUSHROOM
pod - PODPEOPLE
robot/android - This is ultra stupid, but essentially androids use robotic limb subtypes that are NOT
immune to being replaced on species change.
Yes, that is the entire reason these exist.
shadow - SHADOW
skeleton - SKELETON
snail - SNAIL
zombie - ZOMBIE
leg - Parent Type for legs, should not appear in game.
sign_language - Sign language book adds the sign language component to the reading Human.
Grants reader the ability to toggle sign language using a HUD button.
manual - MANUALS (BOOKS)
ancient_parchment - Fluff book to hint at the cheesy grand ritual.
fish_catalog - Book detailing where to get the fish and their properties.
boulder - The objects that ore vents produce, which is refined into minerals.
artifact - Boulders with special artificats that can give higher mining points
gulag - Boulders usually spawned in lavaland labour camp area
gulag_expanded - Boulders usually spawned in lavaland labour camp area but with bluespace material
shabby - lowgrade boulder, most commonly spawned
boulder_beacon - Beacon to launch a new mining setup when activated. For testing and speed!
bounty_cube - Upon completion of a civilian bounty, one of these is created. It is sold to cargo to give the cargo budget bounty money, and the person who completed it cash.
cardboard - A fake ID card any silly-willy can craft with wirecutters, cardboard and a writing utensil
Beside the gimmick of changing the visible name when worn, they do nothing. They cannot have an account.
They don't fit in PDAs nor wallets, They have no access. They won't trick securitrons. They won't work with chameleon masks.
Etcetera etcetera. Furthermore, talking, or getting examined on will pretty much give it away.
black - A special variant of the classic chameleon ID card which accepts all access.
heretic - An ID card capable of shapeshifting to other IDs given by the Key Keepers Burden knowledge
plainclothes - An ID that you can flip with attack_self_secondary, overriding the appearance of the ID (useful for plainclothes detectives for example).
Index Table Component - Gets the row of a table as an associative list using the index inputted. Will return no value if the index is invalid or a proper table is not returned.
mod_program - Circuit components of modular programs are special.
They're added to the unremovable components of the shell when the prog is installed and deleted if uninstalled.
This means they don't work like normal unremovable comps that live and die along with their shell.
radar - Base circuit for the radar program.
The abstract radar doesn't have this, nor this one is associated to it, so
make sure to specify the associate_program and circuit_comp_type of subtypes,
NFC Receiver Component - Sends a data package through NFC directly to a shell
if we ever get more shells like BCI's that are nested, keep in mind this may not work correctly unless adjusted
NFC Transmitter Component - Sends a data package through NFC
Only the targeted shell will receive the message
Logic Component - General logic unit with AND OR capabilities
Bar Overlay Component - Basically an advanced verion of object overlay component that shows a horizontal/vertical bar.
Requires a BCI shell.
Pathfinding component - Calcualtes a path, returns a list of entities. Each entity is the next step in the path. Can be used with the direction component to move.
Proximity Pinpointer Component - Return the location of its input.
SDQL Component - A component that performs an sdql operation
Select Component - Selects a list from a list of lists by a specific column. Used only by USBs for communications to and from computers with lists of varying sizes.
hooded - Subtype with support for hoods
You no longer actually need to extend this and can just add the component yourself without a lot of this boilerplate code
rtd - An tool used to create, destroy, and copy & clear decals of floor tiles
Great for janitor but can be made only in engineering
Supports silo link upgrade and refill with glass, plasteel & iron
Compact Remote - A handheld device with several buttons.
In game, this translates to having different signals for normal usage, alt-clicking, and ctrl-clicking when in your hand.
cosmic_skull - Gives someone the stable voided trauma and then self destructs
remove_tech - Subtype of Bepis tech disk
Removes the tech disk that's held on it from the experimental node list, making them not show up in future disks.
cleric_mace - cleric's den items.
knight_gear - Wizard tower item
limbs - Design disks and designs - for adding limbs and organs to the limbgrower.
advanced_plastic_surgery - Disk containing info for doing advanced plastic surgery. Spawns in maint and available as a role-restricted item in traitor uplinks.
forgottenship - forgottenship items
irs - Surgery disk for the space IRS (I don't know where to dump them anywhere else)
auto_reel - A special line reel that let you skip the biting phase of the minigame, netting you a completion bonus,
and thrown hooked items at you, so you can rapidly catch them from afar.
It may also work on mobs if the right hook is attached.
doughball/synthetic - The abstract synthetic doughball type.
super - Found in the can of omni-baits, only available from the super fishing toolbox, from the fishing mystery box.
unconsumable - Bound to the tech fishing rod, from which cannot be removed,
Bait-related preferences and traits, both negative and positive,
should be ignored by this bait.
Otherwise it'd be hard/impossible to cath some fish with it,
making that rod a shoddy choice in the long run.
bread - Abstract parent object for bread items. Should not be made obtainable in game.
gibtonite_hand - Lets you hold a gibtonite ore in one hand and shoot it like a gun
gift - Gifts to give to players, will contain a nice toy or other fun item for them to play with.
anything - Gifts that typically only very OP stuff or admins or Santa Claus himself should be giving out, as they contain ANY valid subtype of /obj/item, including stuff like instagib rifles. Wow!
Spider Charge - A unique version of c4 possessed only by the space ninja. Has a stronger blast radius.
Can only be detonated by space ninjas with the bombing objective. Can only be set up where the objective says it can.
When it primes, the space ninja responsible will have their objective set to complete.
smokebomb - This is smoke bomb, mezum koman. It is a grenade subtype. All craftmanship is of the highest quality.
It menaces with spikes of iron. On it is a depiction of an assistant.
The assistant is bleeding. The assistant has a painful expression. The assistant is dead.
ballistic - Subtype for any kind of ballistic gun
This has a shitload of vars on it, and I'm sorry for that, but it does make making new subtypes really easy
automatic
mini_uzi/chimpgun - Weak uzi for syndicate chimps. It comes in a 4 TC kit.
Roughly 9 damage per bullet every 0.2 seconds, equaling out to downing an opponent in a bit over a second, if they have no armor.
pistol/m1911/chimpgun - Weak 1911 for syndicate chimps. It comes in a 4 TC kit.
15 damage every.. second? 7 shots to kill. Not fast.
chimpgun - Weak tommygun for syndicate chimps. It comes in a 4 TC kit.
Roughly 9 damage per bullet every 0.2 seconds, equaling out to downing an opponent in a bit over a second, if they have no armor.
true_wabbajack - Staff of chaos given to the wizard upon completing a cheesy grand ritual. Is completely evil and if something
breaks, it's completely intended. Fuck off.
Also can be used by everyone, because why not.
self_grasp - an abstract item representing you holding your own limb to staunch the bleeding, see /mob/living/carbon/proc/grabbedby will probably need to find somewhere else to put this.
exile/noteleport - Used to help the staff of the space hotel resist the urge to use the space hotel's incredibly alluring roundstart teleporter to ignore their flavor/greeting text and come to the station.
battle_royale - Implant used by the traitor Battle Royale objective, is not active immediately
deniability - Microbomb which prevents you from going into critical condition but also explodes after a timer when you reach critical condition in the first place.
macro - Macrobomb has the strength and delay of 10 microbombs
implantcase - Item used to store implants. Can be renamed with a pen. Implants are moved between those and implanters when a mob uses an implanter on a case.
sad_trombone - Implant case that spawns with a sad trombone implant, as well as an appropriate name and description
tracking - An implant case that spawns with a tracking implant, as well as an appropriate name and description.
weapons_auth - An implant case that spawns with a firearms authentication implant, as well as an appropriate name and description.
implanter - Players can use this item to put obj/item/implant's in living mobs. Can be renamed with a pen.
sad_trombone - Implanter that spawns with a sad trombone implant, as well as an appropriate name
clamp - Hydraulic Clamp - Lets you pick up and drop crates.
constructor - Constructor - Lets you build quicker and create RCD holograms.
criminalcapture - Criminal Capture - Generates hardlight bags you can put people in and sinch.
patienttransport - Patrient Transport - Generates hardlight bags you can put people in.
defibrillator - Defibrillator - Gives the suit an extendable pair of shock paddles.
dispenser - Dispenser - Dispenses an item after a time passes.
mirage - Mirage grenade dispenser - Dispenses grenades that copy the user's appearance.
dna_lock - DNA Lock - Prevents people without the set DNA from activating the suit.
drill - Drill - Lets you dig through rock and basalt.
emp_shield - EMP Shield - Protects the suit from EMPs.
energy_net - Energy Net - Ensnares enemies in a net that prevents movement.
energy_shield - Energy Shield - Gives you a rechargeable energy shield that nullifies attacks.
eradication_lock - Eradication lock - Prevents people who aren't the owner of the suit from existing on the timeline via eradicating the suit with the intruder inside
flamethrower - Flamethrower - Launches fire across the area.
flashlight - Flashlight - Gives the suit a customizable flashlight.
darkness - Like the flashlight module, except the light color is stuck to black and cannot be changed.
gps - Internal GPS - Extends a GPS you can use.
hacker - Hacker - This module hooks onto your right-clicks with empty hands and causes ninja actions.
hat_stabilizer - Hat Stabilizer - Allows displaying a hat over the MOD-helmet, à la plasmamen helmets.
headprotector - Safety-First Head Protection - Protects your brain matter from sudden impacts.
health_analyzer - Health Analyzer - Gives the user a ranged health analyzer and their health status in the panel.
holster - Holster - Instantly holsters any not huge gun.
injector - Injector - Gives the suit an extendable large-capacity piercing syringe.
insignia - Insignia - Gives you a skin specific stripe.
jetpack - Ion Jetpack - Lets the user fly freely through space using battery charge.
joint_torsion - A module that recharges the suit by an itsy tiny bit whenever the user takes a step. Originally called "magneto module" but the videogame reference sounds cooler.
jump_jet - Jump Jet - Briefly removes the effect of gravity and pushes you up one z-level if possible.
longfall - Longfall - Nullifies fall damage, removing charge instead.
magboot - Magnetic Stability - Gives the user a slowdown but makes them negate gravity and be immune to slips.
magnetic_harness - Magnetic Harness - Automatically puts guns in your suit storage when you drop them.
medbeam - Medbeam - Medbeam but built into a modsuit
quick_carry - Quick Carry - Lets the user carry bodies quicker.
rad_protection - Radiation Protection - Protects the user from radiation, gives them a geiger counter and rad info in the panel.
reagent_scanner - Reagent Scanner - Lets the user scan reagents.
recycler - Module that shoves garbage inside its material container when the user crosses it, and eject the recycled material with MMB.
donk - A black market variant of the above that dispenses riot foam dart boxes
rewinder - Rewinder - Activating saves a point in time, after 10 seconds you will jump back to that state.
shooting_assistant - A module that enhances the user's ability with firearms, with a couple drawbacks:
In 'Stormtrooper' mode, the user will be given faster firerate, but lower accuracy.
In 'Sharpshooter' mode, the user will have better accuracy and ricochet to his shots, but slower movement speed.
Both modes prevent the user from dual wielding guns.
signlang_radio - Sign Language Translator - allows people to sign over comms using the modsuit's gloves.
mutant_hand - Generic mutant hand type for use with the mutant hands component
(Technically speaking, the component doesn't require you use this type. But it's here for posterity)
shattered_risen - The "hand" "weapon" used by shattered risen
newspaper - Newspapers
A static version of the newscaster, that won't update as new stories are added.
Can be scribbed upon to add extra text for future readers.
bone - Bone liver
Gives the owner liverless metabolism, makes them vulnerable to bone hurting juice and
makes milk heal them through meme magic.
plasmaman - Plasmaman liver
Makes plasma and hot ice heal wounds, also makes gunpowder a hallucinogen.
corrupt - Randomly secretes alcohol or hallucinogens when you're drinking something
fish - Organ from fish with the toxic trait. Allows the user to use tetrodotoxin as a healing chem instead of a toxin.
golem - Golem liver
Basically only exists to remove the nutriment factor from consumables,
so golems can only consume minerals even when injecting reagents.
gondola - Loving arms: your hands become unable to hold much of anything but your hugs now infuse the subject with pax.
roach - Roach liver:
Purges toxins at a higher threshold, but takes more damage from them if not purged
carp - Carp lungs! You can breathe in space! Oh... you can't breathe on the station, you need low oxygen environments.
Inverts behavior of lungs. Bypasses suffocation due to space / lack of gas, but also allows Oxygen to suffocate.
corrupt - Sometimes cough out some kind of dangerous gas
fish - Lungs that replace the need of oxygen with water vapor or being wet
amphibious - Subtype of gills that allow the mob to optionally breathe water.
lavaland/goliath - goliath lungs! You can breathe lavaland air mix but can't breath pure O2 from a tank anymore.
monster_core - Useful organs which drop as loot from a mining creature.
Generalised behaviour is that they will decay and become useless unless provided with serum.
These should usually do something both when used in-hand, or when implanted into someone.
brimdust_sac - Gives you three stacks of Brimdust Coating, when you get hit by anything it will make a short ranged explosion.
If this happens on the station it does much less damage, and slows down the bearer.
If implanted, you can shake off a cloud of brimdust to give this buff to people around you.area
It will also automatically grant you one stack every 30 seconds if you are on lavaland.
regenerative_core - On use in hand, heals you over time and removes injury movement debuffs. Also makes you a bit sad.
On use when implanted, fully heals. Automatically fully heals if you would enter crit.
legion - Different graphics/desc for the lavaland legion
rush_gland - On use in hand, makes you run really fast for 5 seconds and ignore injury movement decrease.
On use when implanted, run for longer and ignore all negative movement. Automatically triggers if health is low (to escape).
mushroom_cap - A mushpersons mushroom cap organ
pod_hair - The leafy hair of a podperson
snout - Guess what part of the lizard this is?
spines - A lizards spines (those things on their back), but also including tail spines (gasp)
fish - Tail for fish DNA-infused spacemen. It provides a speed buff while in water. It's also needed for the crawl speed bonus once the threshold is reached.
piggy_bank - Piggy banks. They store your hard-earned money until you or someone destroys it.
If the persistence id is set, money will be carried between rounds until broken.
robot_model - Definition of /obj/item/robot_model, which defines behavior for each model.
Deals with the creation and deletion of modules (tools).
Assigns modules and traits to a borg with a specific model selected.
big_pointer - A skillchip that gives the user bigger arrows when pointing at things (like some id trims do).
As a bonus, they can costumize the color of the arrow/pointer too.
fish_case - Stasis fish case container for moving fish between aquariums safely.
Their w_class scales with that of the fish inside it.
Most subtypes of this also start with a fish already inside.
blackmarket - Subtype bought from the blackmarket at a gratuitously cheap price. The catch? The fish inside it is dead.
surgery_tray - Surgery Trays
A storage object that displays tools in its contents based on tier, better tools are more visible.
Can be folded up and carried. Click it to draw a random tool.
full/advanced - Surgery tray with advanced tools for debug
tcgcard_deck - A stack item that's not actually a stack because ORDER MATTERS with a deck of cards!
The "top" card of the deck will always be the bottom card in the stack for our purposes.
teleport_rod - Totally NOT a Rod of Discord
Teleports you to where you click!
udder item - Abstract item that is held in nullspace and manages reagents. Created by udder component.
While perhaps reagents created by udder component COULD be managed in the mob, it would be somewhat finnicky and I actually like the abstract udders.
gold - A reward item for obtaining 5K hardcore random points. Do not use for anything else
wirebrush - The wirebrush is a tool whose sole purpose is to remove rust from anything that is rusty.
Because of the inherent nature of hard countering rust heretics it does it very slowly.
airlock_pump - The pump looks up for the airlocks automatically based on airlock_pump_distance_limit and airlock_group_distance_limit values.
When placed, the dir value (direction where the pipes are coming from) is considered as a direction towards the station (internal). The opposite direction is external.
The airlock then tries to find airlocks or walls towards these directions until airlock_pump_distance_limit number of tiles reached.
When it finds a valid object, then it tries to find airlocks, in directions perpendicular to the found tiles.
And then adds them to the corresponding group (external/internal) until airlock_group_distance_limit number of tiles reached
hypertorus - This file contain the eight parts surrounding the main core, those are: fuel input, moderator input, waste output, interface and the corners
The file also contain the guicode of the machine
core - This section contain the hfr core with all the variables and the Initialize() and Destroy() procs
refinery - Your new favorite industrial waste magnet!
Accepts boulders and produces sheets of non-metalic materials.
When upgraded, it can hold more boulders and process more at once.
smelter - Your other new favorite industrial waste magnet!
Accepts boulders and produces sheets of metalic materials.
When upgraded, it can hold more boulders and process more at once.
all - All camera
Has all upgrades by default, can't be disabled roundstart.
autoname - Autonaming camera
Automatically names itself after the area it's in during post_machine_initialize,
good for mappers who don't want to manually name them all.
deconstructed - Deconstructed Camera
Used by wallmounted cameras, starts off deconstructed and requires building by a player.
emp_proof - EMP Proof
Starts off with the EMP protection upgrade, and can't start unactivated.
exosuit - The internal camera object for exosuits, applied by the camera upgrade
motion - Motion camera
Starts off with the motion detector and can't be disablede on roundstart.
preset/ordnance - Bomb preset
Can't be disabled, sees further, doesn't cost power, can be seen by ordnance
cameras, and is indestructible (so bomb-proof).
xray - X-Ray Cameras
Starts off with x-ray, and can't start deactivated.
ctf - Base CTF machines, if spawned in creates a CTF game with the provided game_id unless one already exists. If one exists associates itself with it.
control_point - Control point used for CTF for king of the hill or control point game modes. Teams need to maintain control of the point for a set time to win.
spawner - A spawn point for CTF, ghosts can interact with this to vote for CTF or spawn in if a game is running.
medisim - Variant of the CTF spawner used for the medieval simulation shuttle.
hell - Type of microwave that automatically turns it self on erratically. Probably don't use this outside of the holodeck program "Microwave Paradise".
You could also live your life with a microwave that will continously run in the background of everything while also not having any power draw. I think the former makes more sense.
nebula_shielding - Machinery that block nebulas. This type is for convenience, you can set nebula shielding on other objects as well using add_to_nebula_shielding()
emergency - Short-lived nebula shielding sent by centcom in-case there hasn't been shielding for a while
radiation - Emergency shielding so people aren't permanently in a radstorm if shit goes very wrong in engineering
radiation - We shield against the radioactive nebula and passively generate tritium
pdapainter - Basic machine used to paint PDAs and re-trim ID cards.
engineering - Engineering departmental variant. Limited to PDAs defined in the SSid_access.sub_department_managers_tgui data structure.
medbay - Medical departmental variant. Limited to PDAs defined in the SSid_access.sub_department_managers_tgui data structure.
research - Science departmental variant. Limited to PDAs defined in the SSid_access.sub_department_managers_tgui data structure.
security - Security departmental variant. Limited to PDAs defined in the SSid_access.sub_department_managers_tgui data structure.
supply - Supply departmental variant. Limited to PDAs defined in the SSid_access.sub_department_managers_tgui data structure.
photobooth - Photobooth
A machine used to change occupant's security record photos, working similarly to a
camera, but doesn't give any physical photo to the user.
Links to buttons for remote control.
security - Security photobooth
Adds a height chart in the background, used for people you want to evidently stick out as prisoners.
Good for people you plan on putting in the permabrig.
plumbing - Basic plumbing object.
It doesn't really hold anything special, YET.
Objects that are plumbing but not a subtype are as of writing liquid pumps and the reagent_dispenser tank
Also please note that the plumbing component is toggled on and off by the component using a signal from default_unfasten_wrench, so dont worry about it
acclimator - this the plumbing version of a heater/freezer.
splitter - it splits the reagents however you want. So you can "every 60 units, 45 goes left and 15 goes straight". The side direction is EAST, you can change this in the component
synthesizer - A single machine that produces a single chem. Can be placed in unison with others through plumbing to create chemical factories
master - Master R&D server. As long as this still exists and still holds the HDD for the theft objective, research points generate at normal speed. Destroy it or an antag steals the HDD? Half research speed.
roulette - Machine that lets you play roulette. Odds are pre-defined to be the same as European Roulette without the "En Prison" rule
teambuilder - Simple admin tool that enables players to be assigned to a VERY SHITTY, very visually distinct team, quickly and affordably.
telecomms - The basic telecomms machinery type, implementing all of the logic that's
shared between all of the telecomms machinery.
allinone - Basically just an empty shell for receiving and broadcasting radio messages. Not
very flexible, but it gets the job done.
broadcaster - The broadcaster sends processed messages to all radio devices in the game. They
do not have to be headsets; intercoms and station-bounced radios suffice.
bus - The bus mainframe idles and waits for hubs to relay them signals. They act
as junctions for the network.
hub - The HUB idles until it receives information. It then passes on that information
depending on where it came from.
message_server - The equivalent of the server, for PDA and request console messages.
Without it, PDA and request console messages cannot be transmitted.
PDAs require the rest of the telecomms setup, but request consoles only
require the message server.
processor - The processor is a very simple machine that decompresses subspace signals and
transfers them back to the original bus. It is essential in producing audible
data.
receiver - The receiver idles and receives messages from subspace-compatible radio equipment,
primarily headsets. Then they just relay this information to all linked devices,
which would usually be through the telecommunications hub.
relay - The relay idles until it receives information. It then passes on that information
depending on where it came from.
server - The server logs all traffic and signal data. Once it records the signal, it
sends it to the subspace broadcaster.
generic - Generic maps with several available biomes.
safehouse - Bitrunning safehouses. Typically 7x6 rooms with a single entrance.
mystery_box_item - This represents the item that comes out of the box and is constantly changing before the box finishes deciding. Can probably be just an /atom or /movable.
shotgun_buckshot/old - A slightly weaker version of the buckshot, available from the blackmarket.
The casings they're in have a very small chance to misfire and will gradually damage the firearm, making it weaker.
heap - PM9 HEAP rocket - the anti-anything missile you always craved.
pep - PEP-6 Missile - Used by the PEP-6 Exosuit missile rack.
Employed by Roboticists out of spite to put down enemy hereteks, mechanized nuclear operatives, the janitor's hot rod,
the clown's 'taxi service', uppity borgs, vengeful ais, doors they don't like, the escape shuttle's hull, and more!
srm - SRM-8 Missile - Used by the SRM-8 Exosuit missile rack.
Employed by Nuclear Operatives Maulers and Nanotrasen Marauders and Seraphs to kill everything and anyone.
geyser - A lavaland geyser that spawns chems and can be mining scanned for points. Made to work with the plumbing pump to extract that sweet rare nectar
gulag_vent - A boulder-spawning structure superficially similar to an ore vent which doesnt share any of its behaviour
Prisoners can haul boulders up out of it in case the actual mining area is totally spent
cordon - Turf type that appears to be a world border, completely impassable and non-interactable to all physical (alive) entities.
secret - This type of cordon will block ghosts from passing through it. Useful for stuff like Away Missions, where you feasibly want to block ghosts from entering to keep a certain map section a secret.
genturf - This turf doesn't actually do anything beyond provide contrast for mappers and be very visible when stuff breaks in game. The actual areas are what drive cave generation.
misc - Used as a parent type for types that want to allow construction, but do not want to be floors
I wish I could use components for turfs at scale
Please do not bloat this. Love you <3
basalt/lava_land_surface - Surface. The surface is warm, but survivable without a suit. Internals are required. The floors break to chasms, which drop you into the underground.
no_ruins - Used for the lavaland icemoon ruin.
snow/icemoon/do_not_chasm - Exact subtype as parent, just used in ruins to prevent other ruins/chasms from spawning on top of it.
hot_spring - A special subtype of water with steam particles and a status effect similar to showers, that's however only applied if
the living mob inside the turf is actually immersed in it (eg. not flying, not floating).
cursed - Turns whoever enters into a mob or random person
template_noop - See above explanation
World - Two possibilities exist: either we are alone in the Universe or we are not. Both are equally terrifying. ~ Arthur C. Clarke