diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 0000000000000..e69de29bb2d1d
diff --git a/CNAME b/CNAME
new file mode 100644
index 0000000000000..d72cba32e2867
--- /dev/null
+++ b/CNAME
@@ -0,0 +1 @@
+codedocs.paradisestation.org
\ No newline at end of file
diff --git a/_maps/__MAP_DEFINES.html b/_maps/__MAP_DEFINES.html
new file mode 100644
index 0000000000000..6dc7793989dca
--- /dev/null
+++ b/_maps/__MAP_DEFINES.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ _maps/__MAP_DEFINES.dm - Space Station 13
+
+
+
+
+_maps/__MAP_DEFINES.dm
+
+
+
+Define Details
+REACHABLE_SPACE_ONLY
+
+
+
+ A level that can be navigated to through space, but for real this time.
SPAWN_RUINS
+
+
+
+ Ruins will spawn on this z-level
+
+
+
diff --git a/area.html b/area.html
new file mode 100644
index 0000000000000..786543db1ff47
--- /dev/null
+++ b/area.html
@@ -0,0 +1,271 @@
+
+
+
+
+
+
+ /area - Space Station 13
+
+
+
+
+area
+
+
+
+
+
+Vars
+ always_unpowered If TRUE, machines that require power in this area will never be powered
+ apc All APCs currently constructed in this area
+ apc_starts_off If TRUE, the local powernet in this area will have all its power channels switched off
+ can_get_auto_cryod Do we despawn the person in this area? Pretty much just used in security areas that aren't permabrig
+ fast_despawn Do we quickly despawn the person in this area? Pretty much just used in permabrig
+ global_uid Static var that is incremented when the UID of a area is being assigned.
+ hide_attacklogs For areas such as thunderdome which generate a lot of spammy attacklogs. Reduces log priority.
+ is_haunted "Haunted" areas such as the morgue and chapel are easier to boo. Because flavor.
+ lightswitch Is the lightswitch in this area on? Controls whether or not lights are on and off
+ map_name Set in New(); preserves the name set by the map maker, even if renamed by the Blueprints.
+ master_air_alarm The air alarm to use for atmos_alert consoles
+ max_ambience_cooldown Used to decide what the maximum time between ambience is
+ min_ambience_cooldown Used to decide what the minimum time between ambience is
+ moving Is a shuttle moving to our area?
+ parallax_move_direction Handles the direction parallax will be moved in. References
+ powernet The local powernet of this area, this is where all machine/apc/object power related operations are handled
+ requires_power If TRUE, this area's local powernet will require power to properly operate machines
+ scrubbers The list of scrubbers in our area.
+ sound_environment Used to decide what kind of reverb the area makes sound have
+ turret_controls Turrets use this list to see if individual power/lethal settings are allowed. Contains the /obj/machinery/turretid for this area
+ valid_territory used for cult summoning areas on station zlevel
+ vents The list of vents in our area.
+ window_tint Is the window tint control in this area on? Controls whether electrochromic windows and doors are tinted or not Procs
+ ModifyFiredoors Try to close all the firedoors in the area
+ atmosalert Generate an atmospheric alert for this area
+ burglaralert Raise a burglar alert for this area
+ close_and_lock_door Close and lock a door passed into this proc
+ firealert Generate a firealarm alert for this area
+ firereset Reset the firealarm alert for this area
+ poweralert Generate a power alert for this area
+ process If 100 ticks has elapsed, toggle all the firedoors closed again
+ set_fire_alarm_effect Trigger the fire alarm visual affects in an area
+ unset_fire_alarm_effects unset the fire alarm visual affects in an area
+ Var Details always_unpowered
+
+
+
+
+
+ If TRUE, machines that require power in this area will never be powered
apc
+
+
+
+
+
+ All APCs currently constructed in this area
apc_starts_off
+
+
+
+
+
+ If TRUE, the local powernet in this area will have all its power channels switched off
can_get_auto_cryod
+
+
+
+
+
+ Do we despawn the person in this area? Pretty much just used in security areas that aren't permabrig
fast_despawn
+
+
+
+
+
+ Do we quickly despawn the person in this area? Pretty much just used in permabrig
global_uid
+
+
+
+
+
+ Static var that is incremented when the UID of a area is being assigned.
hide_attacklogs
+
+
+
+
+
+ For areas such as thunderdome which generate a lot of spammy attacklogs. Reduces log priority.
is_haunted
+
+
+
+
+
+ "Haunted" areas such as the morgue and chapel are easier to boo. Because flavor.
lightswitch
+
+
+
+
+
+ Is the lightswitch in this area on? Controls whether or not lights are on and off
map_name
+
+
+
+
+
+ Set in New(); preserves the name set by the map maker, even if renamed by the Blueprints.
master_air_alarm
+
+
+
+
+
+ The air alarm to use for atmos_alert consoles
max_ambience_cooldown
+
+
+
+
+
+ Used to decide what the maximum time between ambience is
min_ambience_cooldown
+
+
+
+
+
+ Used to decide what the minimum time between ambience is
moving
+
+
+
+
+
+ Is a shuttle moving to our area?
parallax_move_direction
+
+
+
+
+
+ Handles the direction parallax will be moved in. References
+ The local powernet of this area, this is where all machine/apc/object power related operations are handled
requires_power
+
+
+
+
+
+ If TRUE, this area's local powernet will require power to properly operate machines
scrubbers
+ – /list/obj/machinery/atmospherics/unary/vent_scrubber
+
+
+
+
+ The list of scrubbers in our area.
sound_environment
+
+
+
+
+
+ Used to decide what kind of reverb the area makes sound have
turret_controls
+
+
+
+
+
+ Turrets use this list to see if individual power/lethal settings are allowed. Contains the /obj/machinery/turretid for this area
valid_territory
+
+
+
+
+
+ used for cult summoning areas on station zlevel
vents
+ – /list/obj/machinery/atmospherics/unary/vent_pump
+
+
+
+
+ The list of vents in our area.
window_tint
+
+
+
+
+
+ Is the window tint control in this area on? Controls whether electrochromic windows and doors are tinted or not
Proc Details ModifyFiredoors(opening)
+
+
+
+
+
+ Try to close all the firedoors in the area
atmosalert(danger_level, /obj /source)
+
+
+
+
+
+ Generate an atmospheric alert for this area
+Sends to all ai players, alert consoles, drones and alarm monitor programs in the world
burglaralert(/obj /trigger)
+
+
+
+
+
+ Raise a burglar alert for this area
+Close and locks all doors in the area and alerts silicon mobs of a break in
+Alarm auto resets after 600 ticks
close_and_lock_door
+
+ Close and lock a door passed into this proc
+Does this need to exist on area? probably not
firealert(/obj /source)
+
+
+
+
+
+ Generate a firealarm alert for this area
+Sends to all ai players, alert consoles, drones and alarm monitor programs in the world
+Also starts the area processing on SSobj
firereset(/obj /source)
+
+
+
+
+
+ Reset the firealarm alert for this area
+resets the alert sent to all ai players, alert consoles, drones and alarm monitor programs
+in the world
+Also cycles the icons of all firealarms and deregisters the area from processing on SSOBJ
poweralert(state, /obj /source)
+
+
+
+
+
+ Generate a power alert for this area
+Sends to all ai players, alert consoles, drones and alarm monitor programs in the world
process()
+
+
+
+
+
+ If 100 ticks has elapsed, toggle all the firedoors closed again
set_fire_alarm_effect()
+
+
+
+
+
+ Trigger the fire alarm visual affects in an area
+Updates the fire light on fire alarms in the area and sets all lights to emergency mode
unset_fire_alarm_effects()
+
+
+
+
+
+ unset the fire alarm visual affects in an area
+
+
+
diff --git a/area/syndicate_depot/core.html b/area/syndicate_depot/core.html
new file mode 100644
index 0000000000000..06f295d5578dd
--- /dev/null
+++ b/area/syndicate_depot/core.html
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+ /area/syndicate_depot/core - Space Station 13
+
+
+
+
+
+
+Procs
+ list_getmobs Returns a LIST of the MOBS in one of the depot area's lists.
+ list_show Returns a STRING, containing the NAMES of the mobs in the provided list, JOINED together with ", "
+ list_shownames Returns a LIST of the NAMES of the mobs in the provided list.
Proc Details list_getmobs(/list/L, show_ckeys)
+
+
+
+
+
+ Returns a LIST of the MOBS in one of the depot area's lists.
+E.g. list_getmobs(depotarea.guard_list) returns a list of the extra guard mobs in the depot.
+Arguments:
+
+list/L, the list of UIDs from which to draw members
+show_ckeys, bool, if true will display ckeys in addition to names
+ list_show(/list/L, show_ckeys)
+
+
+
+
+
+ Returns a STRING, containing the NAMES of the mobs in the provided list, JOINED together with ", "
+E.g. list_show(depotarea.guard_list) returns a string like:
+"Syndicate Backup (123), Syndicate Backup(456), Syndicate Backup(789)", etc.
+Arguments:
+
+list/L, the list of UIDs from which to draw members
+show_ckeys, bool, if true will display ckeys in addition to names
+ list_shownames(/list/L, show_ckeys)
+
+
+
+
+
+ Returns a LIST of the NAMES of the mobs in the provided list.
+E.g. list_shownames(depotarea.guard_list) returns a list of the names of extra guard mobs in depot.
+Arguments:
+
+list/L, the list of UIDs from which to draw members
+show_ckeys, bool, if true will display ckeys in addition to names
+
+
+
+
diff --git a/atom.html b/atom.html
new file mode 100644
index 0000000000000..cbd6f118a34b2
--- /dev/null
+++ b/atom.html
@@ -0,0 +1,617 @@
+
+
+
+
+
+
+ /atom - Space Station 13
+
+
+
+
+atom
+
+
+
+
+
+Vars
+ alternate_appearances The alternate appearances we own. Lazylist
+ base_icon_state Used for changing icon states for different base sprites.
+ bottom_left_corner Smoothing variable
+ bottom_right_corner Smoothing variable
+ bubble_icon What icon the mob uses for speechbubbles
+ canSmoothWith List of smoothing groups this atom can smooth with. If this is null and atom is smooth, it smooths only with itself.
+ chat_color Last color calculated for the the chatmessage overlays. Used for caching.
+ chat_color_name Last name used to calculate a color for the chatmessage overlays. Used for caching.
+ drag_start Contains the world.time of when we start dragging something with our mouse. Used to prevent weird situations where you fail to click on something
+ explosion_block Value used to increment ex_act() if reactionary_explosions is on
+ filter_data For handling persistent filters
+ flags_ricochet how the atom should handle ricochet behavior
+ germ_level The higher the germ level, the more germ on the atom.
+ hud_list This atom's HUD (med/sec, etc) images. Associative list.
+ hud_possible HUD images that this atom can provide.
+ light_power Intensity of the light. Can be negative to remove light
+ managed_overlays overlays managed by update_overlays to prevent removing overlays that weren't added by the same proc. Single items are stored on their own, not in a list.
+ map_json_data This var isn't actually used for anything, but is present so that DM's map reader doesn't forfeit on reading a JSON-serialized map. AKA DO NOT FUCK WITH
+ pass_flags_self pass_flags that we are. If any of this matches a pass_flag on a moving thing, by default, we let them through.
+ rad_insulation Radiation insulation types
+ receive_ricochet_chance_mod When a projectile tries to ricochet off this atom, the projectile ricochet chance is multiplied by this
+ receive_ricochet_damage_coeff When a projectile ricochets off this atom, it deals the normal damage * this modifier to this atom
+ simulated Filter for actions - used by lighting overlays
+ smoothing_flags Icon-smoothing behavior.
+ smoothing_groups What smoothing groups does this atom belongs to, to match canSmoothWith. If null, nobody can smooth with it.
+ smoothing_junction What directions this is currently smoothing with. IMPORTANT: This uses the smoothing direction flags as defined in icon_smoothing.dm, instead of the BYOND flags.
+ suit_fibers List of fibers that this atom has
+ top_left_corner Smoothing variable
+ top_right_corner Smoothing variable
+ viewing_alternate_appearances The alternate appearances we're viewing, stored here to reestablish them after Logout()s. Lazylist Procs
+ AltClickNoInteract Use this instead of [/mob/proc/AltClickOn] where you only want turf content listing without additional atom alt-click interaction
+ CanPathfindPass This proc is used for telling whether something can pass by this atom in a given direction, for use by the pathfinding system.
+ Topic Passes Stat Browser Panel clicks to the game and calls client click on an atom
+ acid_act Respond to acid being used on our atom
+ after_slip Base proc, intended to be overriden.
+ bitmask_smooth Basic smoothing proc. The atom checks for adjacent directions to smooth with and changes the icon_state based on that.
+ calculate_adjacencies Scans all adjacent turfs to find targets to smooth with.
+ clean_radiation Removes some radiation from an atom
+ contents_ui_distance public
+ defile Begin defile and malfunction on-atom definitions
+ emag_act This is when an atom is emagged. Should return false if it fails, or it has no emag_act defined.
+ emp_act Proc which will make the atom act accordingly to an EMP.
+This proc can sleep depending on the implementation. So assume it sleeps!
+ examine_more Extended description of an object. Allows you to double examine objects and have them give you a second description of an item. Useful for writing flavourful stuff.
+ find_type_in_direction Scans direction to find targets to smooth with.
+ get_orbiters Simple helper proc to get a list of everything directly orbiting the current atom, without checking contents, or null if nothing is.
+ get_orbiters_recursive Recursive getter method to return a list of all ghosts transitively orbiting this atom.
+This will find orbiters either directly orbiting the followed atom, or any orbiters orbiting them (and so on).
+ get_orbiters_up_hierarchy Check every object in the hierarchy above ourselves for orbiters, and return the full list of them.
+If an object is being held in a backpack, returns orbiters of the backpack, the person
+If recursive == TRUE, this will also check recursively through any ghosts seen to make sure we find everything upstream
+ get_runechat_color Proc to allow atoms to set their own runechat colour
+ hit_by_thrown_mob This proc applies special effects of a carbon mob hitting something, be it a wall, structure, or window. You can set mob_hurt to false to avoid double dipping through subtypes if returning ..()
+ is_drainable Is this atom drainable of reagents
+ is_drawable Can we draw from this atom with an injectable atom
+ is_injectable Is this atom injectable into other atoms
+ is_open_container Convenience proc to see if a container is open for chemistry handling
+ is_refillable Can this atoms reagents be refilled
+ mech_melee_attack Handle melee attack by a mech
+ persistent_load Atom Persistent Loader
+ persistent_save Atom Persistent Saver
+ rad_act Respond to a radioactive wave hitting this atom
+ ray_filter_helper Used to create rays on an item. Make sure to removefilter("rays") when done with it
+ remove_orbiter Remove an orbiter from the atom it's orbiting.
+ rename_interactive
+ return_analyzable_air Return the air if we can analyze it
+ set_smoothed_icon_state Changes the icon state based on the new junction bitmask. Returns the old junction value.
+ shuttleRotate Base proc
+ storage_depth Returns the storage depth of an atom up to the area level.
+ storage_depth_turf Like /atom/proc/storage_depth , but returns the depth to the nearest turf.
+ tool_act If it returns TRUE, attack chain stops
+ update_appearance Updates the appearence of the icon
+ update_desc Updates the description of the atom
+ update_icon Updates the icon of the atom
+ update_icon_state Updates the icon state of the atom
+ update_name Signal sent should the appearance be updated. This is more broad if listening to a more specific signal doesn't cut it
+Updates the name of the atom
+ update_overlays Updates the overlays of the atom. It has to return a list of overlays if it can't call the parent to create one. The list can contain anything that would be valid for the add_overlay proc: Images, mutable appearances, icon states...
+ zap_act Respond to an electric bolt action on our item
+ Var Details alternate_appearances
+
+
+
+
+
+ The alternate appearances we own. Lazylist
base_icon_state
+
+
+
+
+
+ Used for changing icon states for different base sprites.
bottom_left_corner
+
+
+
+
+
+ Smoothing variable
bottom_right_corner
+
+
+
+
+
+ Smoothing variable
bubble_icon
+
+
+
+
+
+ What icon the mob uses for speechbubbles
canSmoothWith
+
+
+
+
+
+ List of smoothing groups this atom can smooth with. If this is null and atom is smooth, it smooths only with itself.
chat_color
+
+
+
+
+
+ Last color calculated for the the chatmessage overlays. Used for caching.
chat_color_name
+
+
+
+
+
+ Last name used to calculate a color for the chatmessage overlays. Used for caching.
drag_start
+
+
+
+
+
+ Contains the world.time of when we start dragging something with our mouse. Used to prevent weird situations where you fail to click on something
explosion_block
+
+
+
+
+
+ Value used to increment ex_act() if reactionary_explosions is on
filter_data
+
+
+
+
+
+ For handling persistent filters
flags_ricochet
+
+
+
+
+
+ how the atom should handle ricochet behavior
germ_level
+
+
+
+
+
+ The higher the germ level, the more germ on the atom.
hud_list
+
+
+
+
+
+ This atom's HUD (med/sec, etc) images. Associative list.
hud_possible
+
+
+
+
+
+ HUD images that this atom can provide.
light_power
+
+
+
+
+
+ Intensity of the light. Can be negative to remove light
managed_overlays
+
+
+
+
+
+ overlays managed by update_overlays to prevent removing overlays that weren't added by the same proc. Single items are stored on their own, not in a list.
map_json_data
+
+
+
+
+
+ This var isn't actually used for anything, but is present so that DM's map reader doesn't forfeit on reading a JSON-serialized map. AKA DO NOT FUCK WITH
pass_flags_self
+
+
+
+
+
+ pass_flags that we are. If any of this matches a pass_flag on a moving thing, by default, we let them through.
rad_insulation
+
+
+
+
+
+ Radiation insulation types
receive_ricochet_chance_mod
+
+
+
+
+
+ When a projectile tries to ricochet off this atom, the projectile ricochet chance is multiplied by this
receive_ricochet_damage_coeff
+
+
+
+
+
+ When a projectile ricochets off this atom, it deals the normal damage * this modifier to this atom
simulated
+
+
+
+
+
+ Filter for actions - used by lighting overlays
smoothing_flags
+
+
+
+
+
+ Icon-smoothing behavior.
smoothing_groups
+
+
+
+
+
+ What smoothing groups does this atom belongs to, to match canSmoothWith. If null, nobody can smooth with it.
smoothing_junction
+
+
+
+
+
+ What directions this is currently smoothing with. IMPORTANT: This uses the smoothing direction flags as defined in icon_smoothing.dm, instead of the BYOND flags.
suit_fibers
+
+
+
+
+
+ List of fibers that this atom has
top_left_corner
+
+
+
+
+
+ Smoothing variable
top_right_corner
+
+
+
+
+
+ Smoothing variable
viewing_alternate_appearances
+
+
+
+
+
+ The alternate appearances we're viewing, stored here to reestablish them after Logout()s. Lazylist
Proc Details AltClickNoInteract
+
+ Use this instead of [/mob/proc/AltClickOn] where you only want turf content listing without additional atom alt-click interaction
CanPathfindPass
+
+ This proc is used for telling whether something can pass by this atom in a given direction, for use by the pathfinding system.
+Trying to generate one long path across the station will call this proc on every single object on every single tile that we're seeing if we can move through, likely
+multiple times per tile since we're likely checking if we can access said tile from multiple directions, so keep these as lightweight as possible.
+For turfs this will only be used if pathing_pass_method is TURF_PATHING_PASS_PROC
+Arguments:
+
+ID- An ID card representing what access we have (and thus if we can open things like airlocks or windows to pass through them). The ID card's physical location does not matter, just the reference
+to_dir- What direction we're trying to move in, relevant for things like directional windows that only block movement in certain directions
+caller- The movable we're checking pass flags for, if we're making any such checks
+no_id: When true, doors with public access will count as impassible
+ Topic(href, /list/href_list)
+
+
+
+
+
+ Passes Stat Browser Panel clicks to the game and calls client click on an atom
acid_act(acidpwr, acid_volume)
+
+
+
+
+
+ Respond to acid being used on our atom
+Default behaviour is to send COMSIG_ATOM_ACID_ACT and return
+ Base proc, intended to be overriden.
+This should only be called from one place: inside the slippery component.
+Called after a human mob slips on this atom.
+If you want the person who slipped to have something special done to them, put it here.
bitmask_smooth()
+
+
+
+
+
+ Basic smoothing proc. The atom checks for adjacent directions to smooth with and changes the icon_state based on that.
+Returns the previous smoothing_junction state so the previous state can be compared with the new one after the proc ends, and see the changes, if any.
+Objects override this to prevent unanchored objects from smoothing, see /obj/bitmask_smooth()
calculate_adjacencies()
+
+
+
+
+
+ Scans all adjacent turfs to find targets to smooth with.
clean_radiation(clean_factor)
+
+
+
+
+
+ Removes some radiation from an atom
+Removes a configurable amount of radiation from an atom
+and stops green glow if radiation gets low enough through it.
+Arguments:
+
+clean_factor - How much radiation to remove, as a multiple of RAD_BACKGROUND_RADIATION (currently 9)
+ contents_ui_distance
+
+ public
+Check the distance for a living mob.
+Really only used for checks outside the context of a mob.
+Otherwise, use shared_living_ui_distance().
+required src_object The object which owns the UI.
+required user mob The mob who opened/is using the UI.
+return UI_state The state of the UI.
defile()
+
+
+
+
+
+ Begin defile and malfunction on-atom definitions
emag_act
+
+ This is when an atom is emagged. Should return false if it fails, or it has no emag_act defined.
emp_act(severity)
+
+
+
+
+
+ Proc which will make the atom act accordingly to an EMP.
+This proc can sleep depending on the implementation. So assume it sleeps!
+severity - The severity of the EMP. Either EMP_HEAVY or EMP_LIGHT
examine_more
+
+ Extended description of an object. Allows you to double examine objects and have them give you a second description of an item. Useful for writing flavourful stuff.
find_type_in_direction(direction)
+
+
+
+
+
+ Scans direction to find targets to smooth with.
get_orbiters()
+
+
+
+
+
+ Simple helper proc to get a list of everything directly orbiting the current atom, without checking contents, or null if nothing is.
get_orbiters_recursive(/list/processed, source)
+
+
+
+
+
+ Recursive getter method to return a list of all ghosts transitively orbiting this atom.
+This will find orbiters either directly orbiting the followed atom, or any orbiters orbiting them (and so on).
+This shouldn't be passed arugments.
get_orbiters_up_hierarchy(/list/processed, source, recursive)
+
+
+
+
+
+ Check every object in the hierarchy above ourselves for orbiters, and return the full list of them.
+If an object is being held in a backpack, returns orbiters of the backpack, the person
+If recursive == TRUE, this will also check recursively through any ghosts seen to make sure we find everything upstream
get_runechat_color()
+
+
+
+
+
+ Proc to allow atoms to set their own runechat colour
+This is a proc designed to be overridden in places if you want a specific atom to use a specific runechat colour
+Exampls include consoles using a colour based on their screen colour, and mobs using a colour based off of a customisation property
hit_by_thrown_mob
+
+ This proc applies special effects of a carbon mob hitting something, be it a wall, structure, or window. You can set mob_hurt to false to avoid double dipping through subtypes if returning ..()
is_drainable()
+
+
+
+
+
+ Is this atom drainable of reagents
is_drawable(/mob /user, allowmobs)
+
+
+
+
+
+ Can we draw from this atom with an injectable atom
is_injectable(/mob /user, allowmobs)
+
+
+
+
+
+ Is this atom injectable into other atoms
is_open_container()
+
+
+
+
+
+ Convenience proc to see if a container is open for chemistry handling
is_refillable()
+
+
+
+
+
+ Can this atoms reagents be refilled
mech_melee_attack
+
+ Handle melee attack by a mech
persistent_load()
+
+
+
+
+
+ Atom Persistent Loader
+Overridden on every atom which needs to load persistent data
persistent_save()
+
+
+
+
+
+ Atom Persistent Saver
+Overridden on every atom which needs to save persistent data
rad_act(amount)
+
+
+
+
+
+ Respond to a radioactive wave hitting this atom
+Default behaviour is to send COMSIG_ATOM_RAD_ACT and return
ray_filter_helper(_priority, _size, _color, _factor, _density, _y)
+
+
+
+
+
+ Used to create rays on an item. Make sure to removefilter("rays") when done with it
remove_orbiter
+
+ Remove an orbiter from the atom it's orbiting.
rename_interactive(/mob /user, /obj /implement, use_prefix, actually_rename, prompt)
+
+
+
+
+
+
+
+Call this when you want to present a renaming prompt to the user.
+It's a simple proc, but handles annoying edge cases such as forgetting to add a "cancel" button,
+or being able to rename stuff remotely.
+Arguments:
+
+user - the renamer.
+implement - the tool doing the renaming (usually, a pen).
+use_prefix - whether the new name should follow the format of "thing - user-given label" or
+if we allow to change the name completely arbitrarily.
+actually_rename - whether we want to really change the src.name
, or if we want to do everything except that.
+prompt - a custom "what do you want rename this thing to be?" prompt shown in the inpit box.
+
+Returns: Either null if the renaming was aborted, or the user-provided sanitized string.
+
+ return_analyzable_air()
+
+
+
+
+
+ Return the air if we can analyze it
set_smoothed_icon_state(new_junction)
+
+
+
+
+
+ Changes the icon state based on the new junction bitmask. Returns the old junction value.
shuttleRotate(rotation, params)
+
+
+
+
+
+ Base proc
storage_depth(/atom /container)
+
+
+
+
+
+ Returns the storage depth of an atom up to the area level.
+The storage depth is the number of storage items the atom is contained in.
+Returns -1
if the atom was not found in a container.
storage_depth_turf()
+
+
+
+
+
+ Like /atom/proc/storage_depth , but returns the depth to the nearest turf.
+Returns -1
if there's no top level turf. (A loc was null somewhere, or a non-turf atom's loc was an area somehow.)
+ If it returns TRUE, attack chain stops
update_appearance(updates)
+
+
+
+
+
+ Updates the appearence of the icon
+Mostly delegates to update_name, update_desc, and update_icon
+Arguments:
+
+updates: A set of bitflags dictating what should be updated. Defaults to [ALL]
+ update_desc(updates)
+
+
+
+
+
+ Updates the description of the atom
update_icon(updates)
+
+
+
+
+
+ Updates the icon of the atom
update_icon_state()
+
+
+
+
+
+ Updates the icon state of the atom
update_name(updates)
+
+
+
+
+
+ Signal sent should the appearance be updated. This is more broad if listening to a more specific signal doesn't cut it
+Updates the name of the atom
update_overlays()
+
+
+
+
+
+ Updates the overlays of the atom. It has to return a list of overlays if it can't call the parent to create one. The list can contain anything that would be valid for the add_overlay proc: Images, mutable appearances, icon states...
zap_act(power, zap_flags)
+
+
+
+
+
+ Respond to an electric bolt action on our item
+Default behaviour is to return, we define here to allow for cleaner code later on
+
+
+
diff --git a/atom/movable.html b/atom/movable.html
new file mode 100644
index 0000000000000..593d1b4c84f74
--- /dev/null
+++ b/atom/movable.html
@@ -0,0 +1,305 @@
+
+
+
+
+
+
+ /atom/movable - Space Station 13
+
+
+
+
+
+
+Vars
+ blocks_emissive Either FALSE, [EMISSIVE_BLOCK_GENERIC], or EMISSIVE_BLOCK_UNIQUE
+ buckle_lying Bed-like behaviour, forces the mob to lie down if buckle_lying != -1
+ buckle_offset The Pixel_y to offset the buckled mob by
+ buckle_prevents_pull Can we pull the mob while they're buckled. Currently set to false on every movable
+ buckle_requires_restraints Require people to be handcuffed before being able to buckle. eg: pipes
+ buckled_mobs Lazylist of the mobs buckled to this object.
+ can_be_unanchored Used for icon smoothing. Won't smooth if it ain't anchored and can be unanchored. Only set to true on windows
+ em_block Internal holder for emissive blocker object, do not use directly use blocks_emissive
+ face_while_pulling Face towards the atom while pulling it
+ max_buckled_mobs The max amount of mobs that can be buckled to this object. Currently set to 1 on every movable
+ orbiting_uid UID for the atom which the current atom is orbiting
+ thought_bubble_image Icon state for thought bubbles. Normally set by mobs. Procs
+ abstract_move meant for movement with zero side effects. only use for objects that are supposed to move "invisibly" (like camera mobs or ghosts)
+if you want something to move onto a tile with a beartrap or recycler or tripmine or mouse without that object knowing about it at all, use this
+most of the time you want forceMove()
+ admin_Freeze Created here as a base proc. Override as needed for any type of object or mob you want able to be frozen.
+ can_reach A backwards depth-limited breadth-first-search to see if the target is
+logically "in" anything adjacent to us.
+ create_point_bubble Create a bubble pointing at a particular icon and icon state.
+See args for create_point_bubble_from_atom.
+ create_point_bubble_from_atom Create a point bubble towards a given item.
+ create_point_bubble_from_icons Create a point bubble towards a given item, from an icon/icon state.
+ create_point_bubble_from_path See above, this uses an uninstantiated path.
+ deadchat_plays Adds the deadchat_plays component to this atom with simple movement commands.
+ end_throw called after an items throw is ended.
+ fall_and_crush Tip over this atom onto a turf, crushing things in its path.
+ key_loop Key loop to check for movement keys held and move in the desired direction.
+ on_crush_thing useful callback for things that want special behavior on crush
+ orbit Set an atom to orbit around another one. This atom will follow the base atom's movement and rotate around it.
+ point_at Point at an atom
+ shove_impact called when a mob gets shoved into an items turf. false means the mob will be shoved backwards normally, true means the mob will not be moved by the disarm proc.
+ stop_deadchat_plays Easy way to remove the component when the fun has been played out
+ stop_orbit Stop this atom from orbiting whatever it's orbiting.
+ tilt_over Tip over an atom without too much fuss. This won't cause damage to anything, and just rotates the thing and (optionally) adds the component.
+ untilt Untilt a tilted object.
+ Var Details blocks_emissive
+
+
+
+
+
+ Either FALSE, [EMISSIVE_BLOCK_GENERIC], or EMISSIVE_BLOCK_UNIQUE
buckle_lying
+
+
+
+
+
+ Bed-like behaviour, forces the mob to lie down if buckle_lying != -1
buckle_offset
+
+
+
+
+
+ The Pixel_y to offset the buckled mob by
buckle_prevents_pull
+
+
+
+
+
+ Can we pull the mob while they're buckled. Currently set to false on every movable
buckle_requires_restraints
+
+
+
+
+
+ Require people to be handcuffed before being able to buckle. eg: pipes
buckled_mobs
+
+
+
+
+
+ Lazylist of the mobs buckled to this object.
can_be_unanchored
+
+
+
+
+
+ Used for icon smoothing. Won't smooth if it ain't anchored and can be unanchored. Only set to true on windows
+ Internal holder for emissive blocker object, do not use directly use blocks_emissive
face_while_pulling
+
+
+
+
+
+ Face towards the atom while pulling it
max_buckled_mobs
+
+
+
+
+
+ The max amount of mobs that can be buckled to this object. Currently set to 1 on every movable
orbiting_uid
+
+
+
+
+
+ UID for the atom which the current atom is orbiting
thought_bubble_image
+
+
+
+
+
+ Icon state for thought bubbles. Normally set by mobs.
Proc Details abstract_move
+
+ meant for movement with zero side effects. only use for objects that are supposed to move "invisibly" (like camera mobs or ghosts)
+if you want something to move onto a tile with a beartrap or recycler or tripmine or mouse without that object knowing about it at all, use this
+most of the time you want forceMove()
admin_Freeze
+
+ Created here as a base proc. Override as needed for any type of object or mob you want able to be frozen.
can_reach
+
+ A backwards depth-limited breadth-first-search to see if the target is
+logically "in" anything adjacent to us.
create_point_bubble(/mutable_appearance/pointed_atom_appearance, include_arrow)
+
+
+
+
+
+ Create a bubble pointing at a particular icon and icon state.
+See args for create_point_bubble_from_atom.
create_point_bubble_from_atom(/atom /pointed_atom, include_arrow)
+
+
+
+
+
+ Create a point bubble towards a given item.
+Arguments:
+
+pointed_atom - Atom to show in the bubble.
+include_arrow - If true, show an arrow pointing downwards.
+ create_point_bubble_from_icons(icon, icon_state, include_arrow)
+
+
+
+
+
+ Create a point bubble towards a given item, from an icon/icon state.
+Arguments:
+
+icon - Icon source for the bubble's icon.
+icon_state - Icon state for the bubble's icon.
+include_arrow - If true, show an arrow pointing downwards.
+ create_point_bubble_from_path(/atom /pointed_atom_path, include_arrow)
+
+
+
+
+
+ See above, this uses an uninstantiated path.
deadchat_plays(mode, cooldown)
+
+
+
+
+
+ Adds the deadchat_plays component to this atom with simple movement commands.
+Returns the component added.
+Arguments:
+end_throw()
+
+
+
+
+
+ called after an items throw is ended.
fall_and_crush(/turf /target_turf, crush_damage, should_crit, crit_damage_factor, /datum /tilt_crit /forced_crit, weaken_time, knockdown_time, ignore_gravity, should_rotate, angle, rightable, block_interactions_until_righted, crush_dir)
+
+
+
+
+
+ Tip over this atom onto a turf, crushing things in its path.
+Arguments:
+
+target_turf - The turf to fall onto.
+should_crit - If true, we'll try to crit things that we crush.
+crit_damage_factor - If a crit is rolled, crush_damage will be multiplied by this amount.
+forced_crit - If passed, this crit will be applied to everything it crushes.
+weaken_time - The amount of time that weaken will be applied to crushed mobs.
+knockdown_time - The amount of time that knockdown will be applied to crushed mobs.
+ignore_gravity - If false, we won't fall over in zero G.
+should_rotate - If false, we won't rotate when we fall.
+angle - The angle by which we'll rotate. If this is null/0, we'll randomly rotate 90 degrees clockwise or counterclockwise.
+rightable - If true, the tilted component will be applied, allowing people to alt-click to right it.
+block_interactions_until_righted - If true, interactions with the object will be blocked until it's righted.
+crush_dir - An override on the cardinal direction we're crushing.
+ key_loop
+
+ Key loop to check for movement keys held and move in the desired direction.
on_crush_thing
+
+ useful callback for things that want special behavior on crush
orbit(/atom /A, radius, clockwise, rotation_speed, rotation_segments, pre_rotation, lock_in_orbit, force_move, orbit_layer)
+
+
+
+
+
+ Set an atom to orbit around another one. This atom will follow the base atom's movement and rotate around it.
+orbiter: atom which will be doing the orbiting
+radius: range to orbit at, radius of the circle formed by orbiting
+clockwise: whether you orbit clockwise or anti clockwise
+rotation_speed: how fast to rotate
+rotation_segments: the resolution of the orbit circle, less = a more block circle, this can be used to produce hexagons (6 segments) triangles (3 segments), and so on, 36 is the best default.
+pre_rotation: Chooses to rotate src 90 degress towards the orbit dir (clockwise/anticlockwise), useful for things to go "head first" like ghosts
+lock_in_orbit: Forces src to always be on A's turf, otherwise the orbit cancels when src gets too far away (eg: ghosts)
+force_move: If true, ghosts will be ForceMoved instead of having their .loc updated directly.
+orbit_layer: layer that the orbiter should be on. The original layer will be restored on orbit end.
point_at(/atom /pointed_atom)
+
+
+
+
+
+ Point at an atom
+Intended to enable and standardise the pointing animation for all atoms
+Not intended as a replacement for the mob verb
shove_impact
+
+ called when a mob gets shoved into an items turf. false means the mob will be shoved backwards normally, true means the mob will not be moved by the disarm proc.
stop_deadchat_plays()
+
+
+
+
+
+ Easy way to remove the component when the fun has been played out
stop_orbit()
+
+
+
+
+
+ Stop this atom from orbiting whatever it's orbiting.
tilt_over(/turf /target, rotation_angle, should_rotate, rightable, block_interactions_until_righted)
+
+
+
+
+
+ Tip over an atom without too much fuss. This won't cause damage to anything, and just rotates the thing and (optionally) adds the component.
+Arguments:
+
+target - The turf to tilt over onto
+rotation_angle - The angle to rotate by. If not given, defaults to random rotating by 90 degrees clockwise or counterclockwise
+should_rotate - Whether or not we should rotate at all
+rightable - Whether or not this object should be rightable, attaching the tilted component to it
+block_interactions_until_righted - If true, this object will need to be righted before it can be interacted with
+ untilt
+
+ Untilt a tilted object.
+
+
+
diff --git a/atom/movable/emissive_blocker.html b/atom/movable/emissive_blocker.html
new file mode 100644
index 0000000000000..e38ceb5f4d951
--- /dev/null
+++ b/atom/movable/emissive_blocker.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ /atom/movable/emissive_blocker - Space Station 13
+
+
+
+
+
+
+Internal atom that copies an appearance on to the blocker plane
+This means that the atom in question will block any emissive sprites.
+This should only be used internally. If you are directly creating more of these,
+you're almost guaranteed to be doing something wrong.
+
+
+
diff --git a/atom/movable/plane_master_controller.html b/atom/movable/plane_master_controller.html
new file mode 100644
index 0000000000000..876f0062b611e
--- /dev/null
+++ b/atom/movable/plane_master_controller.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /atom/movable/plane_master_controller - Space Station 13
+
+
+
+
+
+
+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.
Vars
+ controlled_planes List of planes in this controllers control. Initially this is a normal list, but becomes an assoc list of plane numbers as strings | plane instance
+ owner_hud hud that owns this controller Procs
+ New Ensures that all the planes are correctly in the controlled_planes list.
+ add_atom_colour Full override so we can just use filterrific
+ add_filter Full override so we can just use filterrific
+ get_filters Gets all filters for this controllers plane masters
+ remove_atom_colour Removes an instance of colour_type from the atom's atom_colours list
+ remove_filter Full override so we can just use filterrific
+ transition_filter Transitions all filters owned by this plane master controller
+ update_atom_colour Resets the atom's color to null, and then sets it to the highest priority colour available
+ Var Details controlled_planes
+
+
+
+
+
+ List of planes in this controllers control. Initially this is a normal list, but becomes an assoc list of plane numbers as strings | plane instance
owner_hud
+
+
+
+
+
+ hud that owns this controller
Proc Details New(hud)
+
+
+
+
+
+ Ensures that all the planes are correctly in the controlled_planes list.
add_atom_colour(coloration, colour_priority)
+
+
+
+
+
+ Full override so we can just use filterrific
add_filter(name, priority, /list/params)
+
+
+
+
+
+ Full override so we can just use filterrific
get_filters(name)
+
+
+
+
+
+ Gets all filters for this controllers plane masters
remove_atom_colour(colour_priority, coloration)
+
+
+
+
+
+ Removes an instance of colour_type from the atom's atom_colours list
remove_filter(name_or_names)
+
+
+
+
+
+ Full override so we can just use filterrific
transition_filter(name, time, /list/new_params, easing, loop)
+
+
+
+
+
+ Transitions all filters owned by this plane master controller
update_atom_colour()
+
+
+
+
+
+ Resets the atom's color to null, and then sets it to the highest priority colour available
+
+
+
diff --git a/atom/movable/screen.html b/atom/movable/screen.html
new file mode 100644
index 0000000000000..f7f090b4d6bcc
--- /dev/null
+++ b/atom/movable/screen.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ /atom/movable/screen - Space Station 13
+
+
+
+
+
+
+Vars
+ assigned_map Map name assigned to this object.
+Automatically set by /client/proc/add_obj_to_map.
+ del_on_map_removal Mark this object as garbage-collectible after you clean the map
+it was registered on. Procs
+ fill_rect Sets screen_loc to fill a rectangular area of the map.
+ set_position Sets screen_loc of this screen object, in form of point coordinates,
+with optional pixel offset (px, py).
+ Var Details assigned_map
+
+
+
+
+
+ Map name assigned to this object.
+Automatically set by /client/proc/add_obj_to_map.
del_on_map_removal
+
+
+
+
+
+ Mark this object as garbage-collectible after you clean the map
+it was registered on.
+This could probably be changed to be a proc, for conditional removal.
+But for now, this works.
Proc Details fill_rect(x1, y1, x2, y2)
+
+
+
+
+
+ Sets screen_loc to fill a rectangular area of the map.
+If applicable, "assigned_map" has to be assigned before this proc call.
set_position(x, y, px, py)
+
+
+
+
+
+ Sets screen_loc of this screen object, in form of point coordinates,
+with optional pixel offset (px, py).
+If applicable, "assigned_map" has to be assigned before this proc call.
+
+
+
diff --git a/atom/movable/screen/action_landing.html b/atom/movable/screen/action_landing.html
new file mode 100644
index 0000000000000..5dff2e6af2d6a
--- /dev/null
+++ b/atom/movable/screen/action_landing.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /atom/movable/screen/action_landing - Space Station 13
+
+
+
+
+
+
+Exists so you have a place to put your buttons when you move them around
Procs
+ hit_by Reacts to having a button dropped on it
Proc Details
+ Reacts to having a button dropped on it
+
+
+
diff --git a/atom/movable/screen/alert.html b/atom/movable/screen/alert.html
new file mode 100644
index 0000000000000..acd481a544569
--- /dev/null
+++ b/atom/movable/screen/alert.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /atom/movable/screen/alert - Space Station 13
+
+
+
+
+
+
+Vars
+ alerttooltipstyle Tool-tip for the alert.
+ override_alerts If true, this should override any other alerts of the same type thrown.
+ owner The mob that this alert was originally thrown to.
+ severity Some alerts may have different icon states based on severity, this adjusts that.
+ timeout How long before this alert automatically clears itself (in deciseconds). If zero, remains until cleared.
+ Var Details
+ Tool-tip for the alert.
override_alerts
+
+
+
+
+
+ If true, this should override any other alerts of the same type thrown.
owner
+
+
+
+
+
+ The mob that this alert was originally thrown to.
severity
+
+
+
+
+
+ Some alerts may have different icon states based on severity, this adjusts that.
timeout
+
+
+
+
+
+ How long before this alert automatically clears itself (in deciseconds). If zero, remains until cleared.
+
+
+
diff --git a/atom/movable/screen/alert/augury.html b/atom/movable/screen/alert/augury.html
new file mode 100644
index 0000000000000..6ae6b40d8614b
--- /dev/null
+++ b/atom/movable/screen/alert/augury.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+ /atom/movable/screen/alert/augury - Space Station 13
+
+
+
+
+
+
+Vars
+ follow_target The atom being followed
+ followers The atoms following it
+ next_targets Queue of next atoms to follow
+ thing_followed Title for the thing that will be followed.
+ time_between_switches After a followed item is qdeleted, wait this long before switching to the next target, allowing you to see aftermath. Procs
+ Initialize Create a new augury alert.
+ change_targets Change the atom that everyone is currently following, moving everyone to the new object.
+ on_following_qdel Executed when the parent is deleted.
+Don't immediately kill ourselves, since it's possible that we might want to move somewhere else
+(for example, after a meteor strike)
+ remove_follower_on_stop_orbit Called when someone stops orbiting our followed object, so they can actually get out of the loop.
+ Var Details follow_target
+
+
+
+
+
+ The atom being followed
followers
+
+
+
+
+
+ The atoms following it
next_targets
+
+
+
+
+
+ Queue of next atoms to follow
thing_followed
+
+
+
+
+
+ Title for the thing that will be followed.
time_between_switches
+
+
+
+
+
+ After a followed item is qdeleted, wait this long before switching to the next target, allowing you to see aftermath.
Proc Details Initialize(mapload, /atom /movable /follow_target, /image/alert_overlay_override)
+
+
+
+
+
+ Create a new augury alert.
+Arguments:
+
+follow_target: The atom to start out following. Can be null, in which case change_targets() should be used at some point.
+alert_overlay_override: If follow_target is provided (or not), use this for the alert image.
+ change_targets
+
+ Change the atom that everyone is currently following, moving everyone to the new object.
+Arguments:
+
+next_to - The next atom to follow.
+ on_following_qdel
+
+ Executed when the parent is deleted.
+Don't immediately kill ourselves, since it's possible that we might want to move somewhere else
+(for example, after a meteor strike)
remove_follower_on_stop_orbit
+
+ Called when someone stops orbiting our followed object, so they can actually get out of the loop.
+
+
+
diff --git a/atom/movable/screen/alert/status_effect/offering_item.html b/atom/movable/screen/alert/status_effect/offering_item.html
new file mode 100644
index 0000000000000..d3810e409f024
--- /dev/null
+++ b/atom/movable/screen/alert/status_effect/offering_item.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /atom/movable/screen/alert/status_effect/offering_item - Space Station 13
+
+
+
+
+
+
+Vars
+ item_UID UID of the item being given.
+ receiver_UID UID of the mob who's being offered the item.
+ Var Details item_UID
+
+
+
+
+
+ UID of the item being given.
receiver_UID
+
+
+
+
+
+ UID of the mob who's being offered the item.
+
+
+
diff --git a/atom/movable/screen/alert/take_item.html b/atom/movable/screen/alert/take_item.html
new file mode 100644
index 0000000000000..a67b2d65ca945
--- /dev/null
+++ b/atom/movable/screen/alert/take_item.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+ /atom/movable/screen/alert/take_item - Space Station 13
+
+
+
+
+
+
+Alert which appears for a user when another player is attempting to offer them an item.
+The user can click the alert to accept, or simply do nothing to not take the item.
Vars
+ giver_UID UID of the mob offering the receiver an item.
+ item_UID UID of the item being given.
+ receiver_UID UID of the mob who has this alert.
+ Var Details giver_UID
+
+
+
+
+
+ UID of the mob offering the receiver an item.
item_UID
+
+
+
+
+
+ UID of the item being given.
receiver_UID
+
+
+
+
+
+ UID of the mob who has this alert.
+
+
+
diff --git a/atom/movable/screen/button_palette.html b/atom/movable/screen/button_palette.html
new file mode 100644
index 0000000000000..40325411acfdd
--- /dev/null
+++ b/atom/movable/screen/button_palette.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /atom/movable/screen/button_palette - Space Station 13
+
+
+
+
+
+
+Vars
+ color_timer_id Id of any currently running timers that set our color matrix
+ Var Details color_timer_id
+
+
+
+
+
+ Id of any currently running timers that set our color matrix
+
+
+
diff --git a/atom/movable/screen/fullscreen/stretch/cursor_catcher.html b/atom/movable/screen/fullscreen/stretch/cursor_catcher.html
new file mode 100644
index 0000000000000..c1e0374b89e01
--- /dev/null
+++ b/atom/movable/screen/fullscreen/stretch/cursor_catcher.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /atom/movable/screen/fullscreen/stretch/cursor_catcher - Space Station 13
+
+
+
+
+
+
+An effect which tracks the cursor's location on the screen
Vars
+ given_turf The turf we send to the scope component.
+ given_x Pixel x we send to the scope component.
+ given_y Pixel y we send to the scope component.
+ mouse_params Mouse parameters, for calculation.
+ owner The mob whose cursor we are tracking.
+ view_list Client view size of the scoping mob. Procs
+ assign_to_mob Links this up with a mob
+ on_move Update when the mob we're assigned to has moved
+ Var Details given_turf
+
+
+
+
+
+ The turf we send to the scope component.
given_x
+
+
+
+
+
+ Pixel x we send to the scope component.
given_y
+
+
+
+
+
+ Pixel y we send to the scope component.
mouse_params
+
+
+
+
+
+ Mouse parameters, for calculation.
owner
+
+
+
+
+
+ The mob whose cursor we are tracking.
view_list
+
+
+
+
+
+ Client view size of the scoping mob.
Proc Details assign_to_mob(/mob /owner)
+
+
+
+
+
+ Links this up with a mob
on_move(/atom /source, /atom /oldloc, dir, forced)
+
+
+
+
+
+ Update when the mob we're assigned to has moved
+
+
+
diff --git a/atom/movable/screen/fullscreen/stretch/cursor_catcher/scope.html b/atom/movable/screen/fullscreen/stretch/cursor_catcher/scope.html
new file mode 100644
index 0000000000000..f8de6302c7ad8
--- /dev/null
+++ b/atom/movable/screen/fullscreen/stretch/cursor_catcher/scope.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /atom/movable/screen/fullscreen/stretch/cursor_catcher/scope - Space Station 13
+
+
+
+
+
+
+
+ Var Details range_modifier
+
+
+
+
+
+ Multiplier for given_X an given_y.
+
+
+
diff --git a/atom/movable/screen/movable.html b/atom/movable/screen/movable.html
new file mode 100644
index 0000000000000..41c4d615e2007
--- /dev/null
+++ b/atom/movable/screen/movable.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /atom/movable/screen/movable - Space Station 13
+
+
+
+
+
+
+Procs
+ mouse_params_to_position Takes mouse parmas as input, returns a string representing the appropriate mouse position
Proc Details mouse_params_to_position(params)
+
+
+
+
+
+ Takes mouse parmas as input, returns a string representing the appropriate mouse position
+
+
+
diff --git a/atom/movable/screen/movable/action_button.html b/atom/movable/screen/movable/action_button.html
new file mode 100644
index 0000000000000..3b519c05e816c
--- /dev/null
+++ b/atom/movable/screen/movable/action_button.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /atom/movable/screen/movable/action_button - Space Station 13
+
+
+
+
+
+
+Vars
+ actiontooltipstyle The style of tool-tip.
+ id A unique bitflag, combined with the name of our linked action this lets us persistently remember any user changes to our position
+ last_hovered_ref UID of the last thing we hovered over. Used for managing action button dragging.
+ linked_action The action triggered by this button.
+ linked_keybind The keybind that will trigger this action button.
+ location Where we are currently placed on the hud. SCRN_OBJ_DEFAULT asks the linked action what it thinks
+ locked Whether or not this button is locked, preventing it from being dragged.
+ our_hud The HUD this action button belongs to
+ shown_to_observers Whether or not this should be shown to observers
+ Var Details
+ The style of tool-tip.
id
+
+
+
+
+
+ A unique bitflag, combined with the name of our linked action this lets us persistently remember any user changes to our position
last_hovered_ref
+
+
+
+
+
+ UID of the last thing we hovered over. Used for managing action button dragging.
linked_action
+
+
+
+
+
+ The action triggered by this button.
linked_keybind
+
+
+
+
+
+ The keybind that will trigger this action button.
location
+
+
+
+
+
+ Where we are currently placed on the hud. SCRN_OBJ_DEFAULT asks the linked action what it thinks
locked
+
+
+
+
+
+ Whether or not this button is locked, preventing it from being dragged.
our_hud
+
+
+
+
+
+ The HUD this action button belongs to
shown_to_observers
+
+
+
+
+
+ Whether or not this should be shown to observers
+
+
+
diff --git a/atom/movable/screen/palette_scroll.html b/atom/movable/screen/palette_scroll.html
new file mode 100644
index 0000000000000..785cf11cd7a55
--- /dev/null
+++ b/atom/movable/screen/palette_scroll.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ /atom/movable/screen/palette_scroll - Space Station 13
+
+
+
+
+
+
+Vars
+ scroll_direction How should we move the palette's actions?
+Positive scrolls down the list, negative scrolls back
+ Var Details
+ How should we move the palette's actions?
+Positive scrolls down the list, negative scrolls back
+
+
+
diff --git a/atom/movable/screen/plane_master/emissive.html b/atom/movable/screen/plane_master/emissive.html
new file mode 100644
index 0000000000000..77563995722a7
--- /dev/null
+++ b/atom/movable/screen/plane_master/emissive.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ /atom/movable/screen/plane_master/emissive - Space Station 13
+
+
+
+
+
+
+Things placed on this mask the lighting plane. Doesn't render directly.
+Gets masked by blocking plane. Use for things that you want blocked by
+mobs, items, etc.
+
+
+
diff --git a/atom/movable/screen/text/blurb.html b/atom/movable/screen/text/blurb.html
new file mode 100644
index 0000000000000..42b24b7317796
--- /dev/null
+++ b/atom/movable/screen/text/blurb.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /atom/movable/screen/text/blurb - Space Station 13
+
+
+
+
+
+
+
+ Var Details appear_animation_duration
+
+
+
+
+
+ Amount of time the blurbs appering (alpha changing from 0 to 255). 0 means blurb is fully opaque from the start
blurb_text
+
+
+
+
+
+ Text that will be shown in blurb
chars_per_interval
+
+
+
+
+
+ Number of chars from the text
that will be displayed per interval. Defaults to 1
fade_animation_duration
+
+
+
+
+
+ Amount of time the blurb takes to fade (alpha changing from 255 to 0). 0 means blurb is instantly removed from the screen after finished
font_family
+
+
+
+
+
+ Font family
font_size
+
+
+
+
+
+ Font size in pixels
hold_for
+
+
+
+
+
+ Amount of time the blurb will be present on the screen. 0 means that blurb will dissappear immediately
interval
+
+
+
+
+
+ The interval between chars rendering
text_alignment
+
+
+
+
+
+ Where text is aligned
text_color
+
+
+
+
+
+ Color of text in RGB
text_outline_color
+
+
+
+
+
+ Color of text outline
text_outline_width
+
+
+
+
+
+ Width of text outline in pixels
+
+
+
diff --git a/client.html b/client.html
new file mode 100644
index 0000000000000..5112dd5f4beec
--- /dev/null
+++ b/client.html
@@ -0,0 +1,750 @@
+
+
+
+
+
+
+ /client - Space Station 13
+
+
+
+
+client
+
+
+
+
+
+Vars
+ ViewMods Was used to handle view modifications. Now only used for a mecha module. Please just edit the string in the future
+ ViewModsActive Stores the viewmod we set using this system. Only used for a mecha module
+ ViewPreferedIconSize Stores the icon size we use for skins. As the server has control freak enabled, this is always static
+ active_keybindings The client's active keybindings, depending on their active mob.
+ admin_music_volume Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+Admin music volume, from 0 to 1.
+ byondacc_age Days since the client's BYOND account was created
+ byondacc_date Date the client registered their BYOND account on
+ click_intercept_time Time when the click was intercepted
+ completed_asset_jobs List of all completed blocking send jobs awaiting acknowledgement by send_asset
+ connection_time world.time they connected
+ cui_entries List of the clients CUIs
+ description_holders Persistent storage for the flavour text of examined atoms.
+ drag_details The params we passed at the start of the drag, in list form
+ drag_start When we started the currently active drag
+ fullscreen The current fullscreen state for /client/toggle_fullscreen()
+ input_data Input datum, what the client is pressing.
+ jbh The client's job ban holder
+ last_asset_job The ID of the last asset job
+ last_completed_asset_job The ID of the last asset job that was properly finished
+ last_discord_pm_time Last world.time that a PM was send to discord by a player
+ last_parallax_shift Stored world.tim of the last parallax update. Used to make sure parallax isn't updated too often
+ macro_sets Basically a local variable on a client datum. Used when setting macros and nowhere else
+ mouseParams Used in MouseDrag to preserve the original mouse click parameters
+ mouse_down_icon Used to make a special mouse cursor, this one for mouse up icon
+ mouse_location_UID Used in MouseDrag to preserve the last mouse-entered location.
+ mouse_object_UID Used in MouseDrag to preserve the last mouse-entered object.
+ mouse_override_icon Used to override the mouse cursor so it doesnt get reset
+ mouse_up_icon Used to make a special mouse cursor, this one for mouse up icon
+ moused_over The client's currently moused over datum, limited to movable and stored as UID
+ movement_kb_dirs The client's movement keybindings to directions, which work regardless of modifiers.
+ movingmob Used with parallax to update the parallax offsets when the subsystem fires. Compared to the clients Eye variable
+ next_mouse_macro_warning Used to throw an admin warning if someone used a mouse macro. Also stores the world time so we can send funny noises to them
+ obj_window Our object window datum. It stores info about and handles behavior for the object tab
+ pai_save Client's pAI save
+ panel_tabs list of all tabs
+ parallax_animate_timer Handles how parallax loops in situations like shuttles leaving. Stores the timer that handles that
+ parallax_layers List of parallax layers a client is viewing. Accessed when paralax is updated
+ parallax_layers_cached A cached list of available parallax layers. This may potentially be changeable to a static variable. Updated upon changing parallax prefs
+ parallax_layers_max The amount of parallax layers that will exist on your screen. Affected by the parallax preference
+ parallax_movedir The direction parallax will be moved it. References parallax_move_direction on areas
+ parallax_static_layers_tail Added to parallax layers when parallax settings are changed
+ parallax_throttle Deciseconds of added delay to parallax by client preferences
+ parent_type Client is casted to /datum so that we're able to use datum variables, search for clients through datums, and not need to duplicate code for GCing
+ previous_turf Used with parallax to grab the offset needed. Uses the X and Y coords of the turf stored here
+ received_discord_pm Last world/time that a PM was sent to the player by an admin
+ recent_examines A lazy list of atoms we've examined in the last RECENT_EXAMINE_MAX_WINDOW (default 2) seconds, so that we will call /atom/proc/examine_more instead of [/atom/proc/examine] on them when examining
+A lazy list of atoms we've examined in the last RECENT_EXAMINE_MAX_WINDOW (default 2) seconds, so that we will call /atom/proc/examine_more instead of [/atom/proc/examine] on them when examining
+ screen_maps Used with the camera console to clear out the screen objects it adds to the client when the console is deleted
+ seen_messages Messages currently seen by this client
+ selected_target Autoclick list of two elements, first being the clicked thing, second being the parameters.
+ sent_assets List of all asset filenames sent to this client by the asset cache, along with their assoicated md5s
+ show_verb_panel hides the byond verb panel as we use our own custom version
+ spell_tabs list of tabs containing spells and abilities
+ stat_panel Stat panel window declaration, we don't usually allow this but tgui windows/panels are exceptions
+ stat_tab our current tab
+ tgui_cache_reloaded global
+ tgui_panel Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ tgui_say Assigned say modal of the client
+ tgui_windows global
+ topiclimiter Used for limiting the rate of topic sends by the client to avoid abuse
+ tos_consent Has the client accepted the TOS about data collection and other stuff
+ version_blocked If true, client cannot ready up, late join, or observe. Used for players with EXTREMELY old byond versions.
+ watchlisted Is the client watchlisted Procs
+ Key_Down This list defines the keys in legacy mode that get passed on to the rebindable input system
+It cannot be bigger since, while typing, the keys would be passed to whatever they are set in the rebind input system
+ Process_Grab Process_Grab()
+Called by client/Move()
+Checks to see if you are being grabbed and if so attemps to break it
+ Process_Incorpmove Process_Incorpmove
+Called by client/Move()
+Allows mobs to run though walls
+ _Topic dumb workaround because byond doesnt seem to recognize the Topic() typepath for /datum/proc/Topic() from the client Topic,
+so we cant queue it without this
+ admin_observe Allow an admin to observe someone.
+mentors are allowed to use this verb while living, but with some stipulations:
+if they attempt to do anything that would stop their orbit, they will immediately be returned to their body.
+ admin_observe_target targeted form of admin_observe: this should only appear in the right-click menu.
+ asset_cache_confirm_arrival Process asset cache client topic calls for "asset_cache_confirm_arrival=[INT]"
+ asset_cache_preload_data Process asset cache client topic calls for "asset_cache_preload_data=[HTML+JSON_STRING]
+ asset_cache_update_json Updates the client side stored json file used to keep track of what assets the client has between restarts/reconnects.
+ browse_queue_flush Blocks until all currently sending browse and browse_rs assets have been sent.
+Due to byond limitations, this proc will sleep for 1 client round trip even if the client has no pending asset sends.
+This proc will return an untrue value if it had to return before confirming the send, such as timeout or the client going away.
+ clear_all_maps Clears all the maps of registered screen objects.
+ clear_map Clears the map of registered screen objects.
+ close_popup Closes a popup.
+ create_eventmob_for WARNING! **
+The jobban stuff looks mangled and disgusting
+But it looks beautiful in-game
+-Nodrak
+**WARNING!
+ create_popup Creates a popup window with a basic map element in it, without any
+further initialization.
+ display_job_bans Lists all active jobbans for src client
+ fix_tgui_panel tgui panel / chat troubleshooting verb
+ get_byond_account_date Sets the clients BYOND date up properly
+ handle_popup_close When the popup closes in any way (player or proc call) it calls this.
+ init_verbs Compiles a full list of verbs and sends it to the browser
+ maxview Returns the biggest number from client.view so we can do easier maths
+ on_stat_panel_message Handles incoming messages from the stat-panel TGUI.
+ register_map_obj Registers screen obj with the client, which makes it visible on the
+assigned map, and becomes a part of the assigned map's lifecycle.
+ retrieve_byondacc_data Retrieves the BYOND accounts data from the BYOND servers
+ set_macros This proc sets the built in BYOND macros for keypresses to pass inputs on to the rebindable input system or the legacy system
+If you plan on ripping out the legacy system, see the set_macros() proc at the following commit: https://github.com/S34NW/Paradise/commit/83a0a0b0c633807cc5a88a630f623cec24e16027
+ setup_popup Create the popup, and get it ready for generic use by giving
+it a background.
+ tgui_say_create_open_command Creates a JSON encoded message to open TGUI say modals properly.
+ timer_log Opens a log of timers
+ toggle_fullscreen Handles fullscreen on the client.
+ uiclose verb
+ uid_log Opens a log of UIDs
+ Var Details ViewMods
+
+
+
+
+
+ Was used to handle view modifications. Now only used for a mecha module. Please just edit the string in the future
ViewModsActive
+
+
+
+
+
+ Stores the viewmod we set using this system. Only used for a mecha module
ViewPreferedIconSize
+
+
+
+
+
+ Stores the icon size we use for skins. As the server has control freak enabled, this is always static
active_keybindings
+
+
+
+
+
+ The client's active keybindings, depending on their active mob.
admin_music_volume
+
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+Admin music volume, from 0 to 1.
byondacc_age
+
+
+
+
+
+ Days since the client's BYOND account was created
byondacc_date
+
+
+
+
+
+ Date the client registered their BYOND account on
click_intercept_time
+
+
+
+
+
+ Time when the click was intercepted
completed_asset_jobs
+
+
+
+
+
+ List of all completed blocking send jobs awaiting acknowledgement by send_asset
connection_time
+
+
+
+
+
+ world.time they connected
cui_entries
+ – /list/datum/custom_user_item
+
+
+
+
+ List of the clients CUIs
description_holders
+
+
+
+
+
+ Persistent storage for the flavour text of examined atoms.
drag_details
+
+
+
+
+
+ The params we passed at the start of the drag, in list form
drag_start
+
+
+
+
+
+ When we started the currently active drag
fullscreen
+
+
+
+
+
+ The current fullscreen state for /client/toggle_fullscreen()
+ Input datum, what the client is pressing.
+ The client's job ban holder
last_asset_job
+
+
+
+
+
+ The ID of the last asset job
last_completed_asset_job
+
+
+
+
+
+ The ID of the last asset job that was properly finished
last_discord_pm_time
+
+
+
+
+
+ Last world.time that a PM was send to discord by a player
last_parallax_shift
+
+
+
+
+
+ Stored world.tim of the last parallax update. Used to make sure parallax isn't updated too often
macro_sets
+
+
+
+
+
+ Basically a local variable on a client datum. Used when setting macros and nowhere else
mouseParams
+
+
+
+
+
+ Used in MouseDrag to preserve the original mouse click parameters
mouse_down_icon
+
+
+
+
+
+ Used to make a special mouse cursor, this one for mouse up icon
mouse_location_UID
+
+
+
+
+
+ Used in MouseDrag to preserve the last mouse-entered location.
mouse_object_UID
+
+
+
+
+
+ Used in MouseDrag to preserve the last mouse-entered object.
mouse_override_icon
+
+
+
+
+
+ Used to override the mouse cursor so it doesnt get reset
mouse_up_icon
+
+
+
+
+
+ Used to make a special mouse cursor, this one for mouse up icon
moused_over
+
+
+
+
+
+ The client's currently moused over datum, limited to movable and stored as UID
movement_kb_dirs
+
+
+
+
+
+ The client's movement keybindings to directions, which work regardless of modifiers.
movingmob
+
+
+
+
+
+ Used with parallax to update the parallax offsets when the subsystem fires. Compared to the clients Eye variable
next_mouse_macro_warning
+
+
+
+
+
+ Used to throw an admin warning if someone used a mouse macro. Also stores the world time so we can send funny noises to them
+ Our object window datum. It stores info about and handles behavior for the object tab
+ Client's pAI save
panel_tabs
+
+
+
+
+
+ list of all tabs
parallax_animate_timer
+
+
+
+
+
+ Handles how parallax loops in situations like shuttles leaving. Stores the timer that handles that
parallax_layers
+
+
+
+
+
+ List of parallax layers a client is viewing. Accessed when paralax is updated
parallax_layers_cached
+
+
+
+
+
+ A cached list of available parallax layers. This may potentially be changeable to a static variable. Updated upon changing parallax prefs
parallax_layers_max
+
+
+
+
+
+ The amount of parallax layers that will exist on your screen. Affected by the parallax preference
parallax_movedir
+
+
+
+
+
+ The direction parallax will be moved it. References parallax_move_direction on areas
parallax_static_layers_tail
+
+
+
+
+
+ Added to parallax layers when parallax settings are changed
parallax_throttle
+
+
+
+
+
+ Deciseconds of added delay to parallax by client preferences
parent_type
+
+
+
+
+
+ Client is casted to /datum so that we're able to use datum variables, search for clients through datums, and not need to duplicate code for GCing
previous_turf
+
+
+
+
+
+ Used with parallax to grab the offset needed. Uses the X and Y coords of the turf stored here
received_discord_pm
+
+
+
+
+
+ Last world/time that a PM was sent to the player by an admin
recent_examines
+
+
+
+
+
+ A lazy list of atoms we've examined in the last RECENT_EXAMINE_MAX_WINDOW (default 2) seconds, so that we will call /atom/proc/examine_more instead of [/atom/proc/examine] on them when examining
+A lazy list of atoms we've examined in the last RECENT_EXAMINE_MAX_WINDOW (default 2) seconds, so that we will call /atom/proc/examine_more instead of [/atom/proc/examine] on them when examining
screen_maps
+
+
+
+
+
+ Used with the camera console to clear out the screen objects it adds to the client when the console is deleted
seen_messages
+
+
+
+
+
+ Messages currently seen by this client
selected_target
+
+
+
+
+
+ Autoclick list of two elements, first being the clicked thing, second being the parameters.
sent_assets
+
+
+
+
+
+ List of all asset filenames sent to this client by the asset cache, along with their assoicated md5s
show_verb_panel
+
+
+
+
+
+ hides the byond verb panel as we use our own custom version
spell_tabs
+
+
+
+
+
+ list of tabs containing spells and abilities
+ Stat panel window declaration, we don't usually allow this but tgui windows/panels are exceptions
stat_tab
+
+
+
+
+
+ our current tab
tgui_cache_reloaded
+
+
+
+
+
+ global
+TRUE if cache was reloaded by tgui dev server at least once.
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ Assigned say modal of the client
tgui_windows
+
+
+
+
+
+ global
+Tracks open windows for a user.
topiclimiter
+
+
+
+
+
+ Used for limiting the rate of topic sends by the client to avoid abuse
tos_consent
+
+
+
+
+
+ Has the client accepted the TOS about data collection and other stuff
version_blocked
+
+
+
+
+
+ If true, client cannot ready up, late join, or observe. Used for players with EXTREMELY old byond versions.
watchlisted
+
+
+
+
+
+ Is the client watchlisted
Proc Details Key_Down(_key)
+
+
+
+
+
+ This list defines the keys in legacy mode that get passed on to the rebindable input system
+It cannot be bigger since, while typing, the keys would be passed to whatever they are set in the rebind input system
Process_Grab()
+
+
+
+
+
+ Process_Grab()
+Called by client/Move()
+Checks to see if you are being grabbed and if so attemps to break it
Process_Incorpmove(direct)
+
+
+
+
+
+ Process_Incorpmove
+Called by client/Move()
+Allows mobs to run though walls
_Topic(/datum /hsrc, href, /list/href_list)
+
+
+
+
+
+ dumb workaround because byond doesnt seem to recognize the Topic() typepath for /datum/proc/Topic() from the client Topic,
+so we cant queue it without this
admin_observe()
+
+
+
+
+
+ Allow an admin to observe someone.
+mentors are allowed to use this verb while living, but with some stipulations:
+if they attempt to do anything that would stop their orbit, they will immediately be returned to their body.
admin_observe_target(/mob /target)
+
+
+
+
+
+ targeted form of admin_observe: this should only appear in the right-click menu.
asset_cache_confirm_arrival(job_id)
+
+
+
+
+
+ Process asset cache client topic calls for "asset_cache_confirm_arrival=[INT]"
asset_cache_preload_data(data)
+
+
+
+
+
+ Process asset cache client topic calls for "asset_cache_preload_data=[HTML+JSON_STRING]
asset_cache_update_json()
+
+
+
+
+
+ Updates the client side stored json file used to keep track of what assets the client has between restarts/reconnects.
browse_queue_flush(timeout)
+
+
+
+
+
+ Blocks until all currently sending browse and browse_rs assets have been sent.
+Due to byond limitations, this proc will sleep for 1 client round trip even if the client has no pending asset sends.
+This proc will return an untrue value if it had to return before confirming the send, such as timeout or the client going away.
clear_all_maps()
+
+
+
+
+
+ Clears all the maps of registered screen objects.
clear_map(map_name)
+
+
+
+
+
+ Clears the map of registered screen objects.
+Not really needed most of the time, as the client's screen list gets reset
+on relog. any of the buttons are going to get caught by garbage collection
+anyway. they're effectively qdel'd.
+ Closes a popup.
create_eventmob_for
+
+ WARNING! **
+The jobban stuff looks mangled and disgusting
+But it looks beautiful in-game
+-Nodrak
+**WARNING!
+ Creates a popup window with a basic map element in it, without any
+further initialization.
+Ratio is how many pixels by how many pixels (keep it simple).
+Returns a map name.
display_job_bans(from_client_connection)
+
+
+
+
+
+ Lists all active jobbans for src client
+from_client_connection - If true, user will not receive any info in chat if they have no job bans, used when a player loads into to the lobby.
fix_tgui_panel()
+
+
+
+
+
+ tgui panel / chat troubleshooting verb
get_byond_account_date(notify)
+
+
+
+
+
+ Sets the clients BYOND date up properly
+If the client does not have a saved BYOND account creation date, retrieve it from the website
+If they do have a saved date, use that from the DB, because this value will never change
+Arguments:
+
+notify - Do we notify admins of this new accounts date
+ handle_popup_close(window_id)
+
+
+
+
+
+ When the popup closes in any way (player or proc call) it calls this.
init_verbs()
+
+
+
+
+
+ Compiles a full list of verbs and sends it to the browser
maxview()
+
+
+
+
+
+ Returns the biggest number from client.view so we can do easier maths
on_stat_panel_message(type, payload)
+
+
+
+
+
+ Handles incoming messages from the stat-panel TGUI.
register_map_obj
+
+ Registers screen obj with the client, which makes it visible on the
+assigned map, and becomes a part of the assigned map's lifecycle.
retrieve_byondacc_data()
+
+
+
+
+
+ Retrieves the BYOND accounts data from the BYOND servers
+Makes a web request to byond.com to retrieve the details for the BYOND account associated with the clients ckey.
+Returns the data in a parsed, associative list
set_macros()
+
+
+
+
+
+ This proc sets the built in BYOND macros for keypresses to pass inputs on to the rebindable input system or the legacy system
+If you plan on ripping out the legacy system, see the set_macros() proc at the following commit: https://github.com/S34NW/Paradise/commit/83a0a0b0c633807cc5a88a630f623cec24e16027
+ Create the popup, and get it ready for generic use by giving
+it a background.
+Width and height are multiplied by 64 by default.
tgui_say_create_open_command(channel)
+
+
+
+
+
+ Creates a JSON encoded message to open TGUI say modals properly.
+Arguments:
+channel - The channel to open the modal in.
+Returns:
+string - A JSON encoded message to open the modal.
timer_log()
+
+
+
+
+
+ Opens a log of timers
+In-round ability to view what has created a timer, and how many times a timer for that path has been created
toggle_fullscreen()
+
+
+
+
+
+ Handles fullscreen on the client.
uiclose(window_id)
+
+
+
+
+
+ verb
+Called by UIs when they are closed.
+Must be a verb so winset() can call it.
+required uiref ref The UI that was closed.
uid_log()
+
+
+
+
+
+ Opens a log of UIDs
+In-round ability to view what has created a UID, and how many times a UID for that path has been declared
+
+
+
diff --git a/code/__DEFINES/MC.html b/code/__DEFINES/MC.html
new file mode 100644
index 0000000000000..db21d37ce2a6a
--- /dev/null
+++ b/code/__DEFINES/MC.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ code/__DEFINES/MC.dm - Space Station 13
+
+
+
+
+code/__DEFINES/MC.dm
+
+
+
+
+ MC_AVG_OVER_TIME creates a running average of "things elapsed" per time period when you need to count via a smaller time period.
+eg you want an average number of things happening per second but you measure the event every tick (50 milliseconds).
+make sure both time intervals are in the same units. doesnt work if current_duration > total_duration or if total_duration == 0
+ SS_BACKGROUND Subsystem only runs on spare cpu (after all non-background subsystems have ran that tick)
+SS_BACKGROUND has its own priority bracket, this overrides SS_TICKER's priority bump
+ SS_TICKER (also forces it to run first in the tick (unless SS_BACKGROUND))
Define Details
+MC_AVG_OVER_TIME
+ (average, current, total_duration, current_duration)
+
+
+
+ creates a running average of "things elapsed" per time period when you need to count via a smaller time period.
+eg you want an average number of things happening per second but you measure the event every tick (50 milliseconds).
+make sure both time intervals are in the same units. doesnt work if current_duration > total_duration or if total_duration == 0
SS_BACKGROUND
+
+
+
+ Subsystem only runs on spare cpu (after all non-background subsystems have ran that tick)
+SS_BACKGROUND has its own priority bracket, this overrides SS_TICKER's priority bump
SS_TICKER
+
+
+
+ (also forces it to run first in the tick (unless SS_BACKGROUND))
+
+
+
diff --git a/code/__DEFINES/_click.html b/code/__DEFINES/_click.html
new file mode 100644
index 0000000000000..b138f416219a7
--- /dev/null
+++ b/code/__DEFINES/_click.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ code/__DEFINES/_click.dm - Space Station 13
+
+
+
+
+code/__DEFINES/_click.dm
+
+
+
+
+ BUTTON Mouse button that was just clicked/released
+if(modifiersBUTTON == LEFT_CLICK)
+ MOUSE_OPACITY_TRANSPARENT Objects will ignore being clicked on regardless of their transparency (used in parallax, lighting effects, holograms, lasers, etc.)
+ MOUSE_OPACITY_ICON Objects will be clicked on if it is the topmost object and the pixel isn't transparent at the position of the mouse (default behavior for 99.99% of game objects)
+ MOUSE_OPACITY_OPAQUE Objects will be always be clicked on regardless of pixel transparency or other objects at that location (used in space vines, storage containers)
Define Details
+
+ Mouse button that was just clicked/released
+if(modifiersBUTTON == LEFT_CLICK)
MOUSE_OPACITY_ICON
+
+
+
+ Objects will be clicked on if it is the topmost object and the pixel isn't transparent at the position of the mouse (default behavior for 99.99% of game objects)
MOUSE_OPACITY_OPAQUE
+
+
+
+ Objects will be always be clicked on regardless of pixel transparency or other objects at that location (used in space vines, storage containers)
MOUSE_OPACITY_TRANSPARENT
+
+
+
+ Objects will ignore being clicked on regardless of their transparency (used in parallax, lighting effects, holograms, lasers, etc.)
+
+
+
diff --git a/code/__DEFINES/_math.html b/code/__DEFINES/_math.html
new file mode 100644
index 0000000000000..023e20e592a44
--- /dev/null
+++ b/code/__DEFINES/_math.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ code/__DEFINES/_math.dm - Space Station 13
+
+
+
+
+code/__DEFINES/_math.dm
+
+
+
+
+ TOBITSHIFT Gets shift x that would be required the bitflag (1<<x)
+ IS_INT Checks if a number is an integer, or a float
Define Details
+IS_INT
+
+
+
+
+ Checks if a number is an integer, or a float
TOBITSHIFT
+
+
+
+
+ Gets shift x that would be required the bitflag (1<<x)
+
+
+
diff --git a/code/__DEFINES/_protection.html b/code/__DEFINES/_protection.html
new file mode 100644
index 0000000000000..3bb2bed351112
--- /dev/null
+++ b/code/__DEFINES/_protection.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/__DEFINES/_protection.dm - Space Station 13
+
+
+
+
+code/__DEFINES/_protection.dm
+
+
+
+Define Details
+GENERAL_PROTECT_DATUM
+
+
+
+
+ Protects a datum from being VV'd
+
+
+
diff --git a/code/__DEFINES/_tick.html b/code/__DEFINES/_tick.html
new file mode 100644
index 0000000000000..af2436a246459
--- /dev/null
+++ b/code/__DEFINES/_tick.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ code/__DEFINES/_tick.dm - Space Station 13
+
+
+
+
+code/__DEFINES/_tick.dm
+
+
+
+Define Details
+CHECK_TICK
+
+
+
+ runs stoplag if tick_usage is above the limit
CHECK_TICK_HIGH_PRIORITY
+
+
+
+ runs stoplag if tick_usage is above 95, for high priority usage
MAPTICK_MC_MIN_RESERVE
+
+
+
+ Percentage of tick to leave for master controller to run
RUNNING_BEFORE_MASTER
+
+
+
+ Checks if a sleeping proc is running before or after the master controller
TICK_BYOND_RESERVE
+
+
+
+ Tick limit while running normally
TICK_CHECK
+
+
+
+ Returns true if tick_usage is above the limit
TICK_CHECK_HIGH_PRIORITY
+
+
+
+ Returns true if tick usage is above 95, for high priority usage
TICK_LIMIT_MC
+
+
+
+ Tick limit for MC while running
TICK_LIMIT_TO_RUN
+
+
+
+ Tick limit used to resume things in stoplag
TICK_USAGE
+
+
+
+ for general usage of tick_usage
TICK_USAGE_REAL
+
+
+
+ to be used where the result isn't checked
VERB_SHOULD_YIELD
+
+
+
+ Returns true if a verb ought to yield to the MC (IE: queue up to be processed by a subsystem)
+
+
+
diff --git a/code/__DEFINES/_versions.html b/code/__DEFINES/_versions.html
new file mode 100644
index 0000000000000..02ba5ce5a50e6
--- /dev/null
+++ b/code/__DEFINES/_versions.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/_versions.dm - Space Station 13
+
+
+
+
+code/__DEFINES/_versions.dm
+
+
+
+Define Details
+RUST_G_VERSION
+
+
+
+ Version of RUST-G that this codebase wants
+
+
+
diff --git a/code/__DEFINES/action_button_defines.html b/code/__DEFINES/action_button_defines.html
new file mode 100644
index 0000000000000..565295f24d178
--- /dev/null
+++ b/code/__DEFINES/action_button_defines.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ code/__DEFINES/action_button_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/action_button_defines.dm
+
+
+
+Define Details
+SCRN_OBJ_DEFAULT
+
+
+
+ Whatever the base action datum thinks is best
SCRN_OBJ_FLOATING
+
+
+
+ Floating somewhere on the hud, not in any predefined place
SCRN_OBJ_IN_LIST
+
+
+
+ In the list of buttons stored at the top of the screen
SCRN_OBJ_IN_PALETTE
+
+
+
+ In the collapseable palette
+
+
+
diff --git a/code/__DEFINES/admin_defines.html b/code/__DEFINES/admin_defines.html
new file mode 100644
index 0000000000000..b44ccd73f37b5
--- /dev/null
+++ b/code/__DEFINES/admin_defines.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ code/__DEFINES/admin_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/admin_defines.dm
+
+
+
+Define Details
+ANTAGTRACKING_PSUEDO_CKEY
+
+
+
+ Note "ckey" for roundstart antag rolling tracking. Do not EVER update this.
CIDTRACKING_PSUEDO_CKEY
+
+
+
+ Note "ckey" for CID info tracking. Do not EVER update this.
CIDWARNING_SUPPRESSED_NOTETEXT
+
+
+
+ Note text for suppressed CID warning
CONNECTION_TYPE_DROPPED_BANNED
+
+
+
+ Client was disallowed due to being banned
CONNECTION_TYPE_DROPPED_INVALID
+
+
+
+ Client was disallowed due to invalid data
CONNECTION_TYPE_DROPPED_IPINTEL
+
+
+
+ Client was disallowed due to IPIntel
CONNECTION_TYPE_ESTABLISHED
+
+
+
+ Client was let into the server
+
+
+
diff --git a/code/__DEFINES/announce_defines.html b/code/__DEFINES/announce_defines.html
new file mode 100644
index 0000000000000..df26c0de7016d
--- /dev/null
+++ b/code/__DEFINES/announce_defines.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/announce_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/announce_defines.dm
+
+
+
+Define Details
+ANNOUNCE_KIND_DEFAULT
+
+
+
+ These values are used when logging user-initiated announcements.
+
+
+
diff --git a/code/__DEFINES/antag_defines.html b/code/__DEFINES/antag_defines.html
new file mode 100644
index 0000000000000..598939cf75ec9
--- /dev/null
+++ b/code/__DEFINES/antag_defines.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ code/__DEFINES/antag_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/antag_defines.dm
+
+
+
+Define Details
+ABDUCTOR_VEST_STEALTH
+
+
+
+ Abductors
CHANGELING_INNATE_POWER
+
+
+
+ Changelings
+Denotes that this power is free and should be given to all changelings by default.
CHANGELING_PURCHASABLE_POWER
+
+
+
+ Denotes that this power can only be obtained by purchasing it.
CHANGELING_UNOBTAINABLE_POWER
+
+
+
+ Denotes that this power can not be obtained normally. Primarily used for base types such as /datum/action/changeling/weapon .
CONTRACT_STATUS_ACTIVE
+
+
+
+ The contract is in progress.
CONTRACT_STATUS_COMPLETED
+
+
+
+ The contract has been completed successfully.
CONTRACT_STATUS_FAILED
+
+
+
+ The contract failed for some reason.
CONTRACT_STATUS_INACTIVE
+
+
+
+ The contract hasn't been started yet.
CONTRACT_STATUS_INVALID
+
+
+
+ Contractors
+The contract is invalid for some reason and cannot be taken. It may be made valid later.
CONTRACT_STRINGS_WANTED
+
+
+
+ The name of the strings file containing data to use for contract fluff texts.
+ Easy difficulty area to extract the kidnapee. Low rewards.
+ Hard difficulty area to extract the kidnapee. High rewards.
+ Medium difficulty area to extract the kidnapee. Moderate rewards.
PULSEDEMON_SOURCE_DRAIN_INVALID
+
+
+
+ Pulse Demon
UPLINK_SPECIAL_SPAWNING
+
+
+
+ Traitors
+
+
+
diff --git a/code/__DEFINES/apc_defines.html b/code/__DEFINES/apc_defines.html
new file mode 100644
index 0000000000000..beb6d5baf6e49
--- /dev/null
+++ b/code/__DEFINES/apc_defines.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/__DEFINES/apc_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/apc_defines.dm
+
+
+
+Define Details
+APC_CHANNEL_SETTING_AUTO_OFF
+
+
+
+ APC power channel Setting Off, if set while apc is "on" set apc to "off" otherwise set to "auto-off"
APC_CHANNEL_SETTING_OFF
+
+
+
+ Power channel is off, anything connected to it is not powered, cannot be set manually by players
APC_CHANNEL_SETTING_ON
+
+
+
+ APC power channel setting on,
+
+
+
diff --git a/code/__DEFINES/asset_defines.html b/code/__DEFINES/asset_defines.html
new file mode 100644
index 0000000000000..afa3ac32d3eb2
--- /dev/null
+++ b/code/__DEFINES/asset_defines.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ code/__DEFINES/asset_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/asset_defines.dm
+
+
+
+
+ URL2HTMLLOADER Get html to load a url.
+for use inside of browse() calls to html assets that might be loaded on a cdn.
+ GENERATE_ASSET_NAME Generate a filename for this asset
+The same asset will always lead to the same asset name
+Generated names do not include file extension.
Define Details
+GENERATE_ASSET_NAME
+
+
+
+
+ Generate a filename for this asset
+The same asset will always lead to the same asset name
+Generated names do not include file extension.
URL2HTMLLOADER
+
+
+
+
+ Get html to load a url.
+for use inside of browse() calls to html assets that might be loaded on a cdn.
+
+
+
diff --git a/code/__DEFINES/atmospherics_defines.html b/code/__DEFINES/atmospherics_defines.html
new file mode 100644
index 0000000000000..f52c127c9b162
--- /dev/null
+++ b/code/__DEFINES/atmospherics_defines.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ code/__DEFINES/atmospherics_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/atmospherics_defines.dm
+
+
+
+Define Details
+COLD_ROOM_TEMP
+
+
+
+ -14C - Temperature used for kitchen cold room, medical freezer, etc.
ENVIRONMENT_COLD
+
+
+
+ Cold environment: Normal atmosphere, -93 C.
ENVIRONMENT_LAVALAND
+
+
+
+ Lavaland environment: hot, low pressure.
ENVIRONMENT_TEMPERATE
+
+
+
+ Temperate environment: Normal atmosphere, 20 C.
SERVER_ROOM_TEMP
+
+
+
+ -193C - Temperature used for server rooms
+
+
+
diff --git a/code/__DEFINES/bio_chip_defines.html b/code/__DEFINES/bio_chip_defines.html
new file mode 100644
index 0000000000000..42fc51be36dba
--- /dev/null
+++ b/code/__DEFINES/bio_chip_defines.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ code/__DEFINES/bio_chip_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/bio_chip_defines.dm
+
+
+
+Define Details
+BIOCHIP_ACTIVATED_ACTIVE
+
+
+
+ The implant is activated manually by a trigger
BIOCHIP_ACTIVATED_PASSIVE
+
+
+
+ The implant is passively active (like a mindshield)
BIOCHIP_EMOTE_TRIGGER_ALWAYS
+
+
+
+ If used, an implant will always trigger when the user makes an emote.
BIOCHIP_EMOTE_TRIGGER_INTENTIONAL
+
+
+
+ If used, an implant will trigger when an emote is intentionally used.
BIOCHIP_EMOTE_TRIGGER_UNINTENTIONAL
+
+
+
+ If used, an implant will trigger when an emote is forced/unintentionally used.
BIOCHIP_TRIGGER_DEATH_ANY
+
+
+
+ If used, an implant will trigger any time a user dies.
BIOCHIP_TRIGGER_DEATH_ONCE
+
+
+
+ If used, an implant will trigger on the user's first death.
BIOCHIP_TRIGGER_NOT_WHEN_GIBBED
+
+
+
+ If used, an implant will NOT trigger on death when a user is gibbed.
+
+
+
diff --git a/code/__DEFINES/callbacks.html b/code/__DEFINES/callbacks.html
new file mode 100644
index 0000000000000..f9080125b2731
--- /dev/null
+++ b/code/__DEFINES/callbacks.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/callbacks.dm - Space Station 13
+
+
+
+
+code/__DEFINES/callbacks.dm
+
+
+
+Define Details
+VERB_CALLBACK
+
+
+
+ like CALLBACK but specifically for verb callbacks
+
+
+
diff --git a/code/__DEFINES/chat.html b/code/__DEFINES/chat.html
new file mode 100644
index 0000000000000..f78aeb0eba4b5
--- /dev/null
+++ b/code/__DEFINES/chat.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ code/__DEFINES/chat.dm - Space Station 13
+
+
+
+
+code/__DEFINES/chat.dm
+
+
+
+Define Details
+CHAT_RELIABILITY_HISTORY_SIZE
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+How many chat payloads to keep in history
CHAT_RELIABILITY_MAX_RESENDS
+
+
+
+ How many resends to allow before giving up
+
+
+
diff --git a/code/__DEFINES/clothing_defines.html b/code/__DEFINES/clothing_defines.html
new file mode 100644
index 0000000000000..8de3c6448847f
--- /dev/null
+++ b/code/__DEFINES/clothing_defines.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/clothing_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/clothing_defines.dm
+
+
+
+Define Details
+MAX_EQUIPABLE_ACCESSORIES
+
+
+
+ max number of accessories that can be equiped to one piece of clothing
+
+
+
diff --git a/code/__DEFINES/color_defines.html b/code/__DEFINES/color_defines.html
new file mode 100644
index 0000000000000..26b8f76a38c12
--- /dev/null
+++ b/code/__DEFINES/color_defines.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__DEFINES/color_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/color_defines.dm
+
+
+
+Define Details
+COLORTONE_DEAD_EXT_ORGAN
+
+
+
+ Color for dead external organs/zombies
COLOR_THEME_MIDNIGHT
+
+
+
+ Main colors for UI themes
+
+
+
diff --git a/code/__DEFINES/combat_defines.html b/code/__DEFINES/combat_defines.html
new file mode 100644
index 0000000000000..aa6569baad6bf
--- /dev/null
+++ b/code/__DEFINES/combat_defines.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ code/__DEFINES/combat_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/combat_defines.dm
+
+
+
+Define Details
+AUTOFIRE_STAT_ALERT
+
+
+
+ Gun is active and in the user hands. Wait until user does a valid click.
AUTOFIRE_STAT_FIRING
+
+
+
+ Gun is shooting.
AUTOFIRE_STAT_IDLE
+
+
+
+ Compatible firemode is in the gun. Wait until it's held in the user hands.
SECONDS_TO_JITTER
+
+
+
+ Jitter decays at a rate of 3 per life cycle, 15 if resting.
SHAME
+
+
+
+ Stam crits the effected mob, as well as ensures they dont die from suicide
+
+
+
diff --git a/code/__DEFINES/construction_defines.html b/code/__DEFINES/construction_defines.html
new file mode 100644
index 0000000000000..41ab011615d53
--- /dev/null
+++ b/code/__DEFINES/construction_defines.html
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+ code/__DEFINES/construction_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/construction_defines.dm
+
+
+
+Define Details
+AICONTROLDISABLED_OFF
+
+
+
+ used by airlocks and airlock wires.
AIRLOCK_ASSEMBLY_NEEDS_WIRES
+
+
+
+ airlock assembly construction states
EMPTY_CORE
+
+
+
+ ai core defines
FULLTILE_WINDOW_DIR
+
+
+
+ let's just pretend fulltile windows being children of border windows is fine
GIRDER_NORMAL
+
+
+
+ girder construction states
+ Material defines, for determining how much of a given material an item contains
MAXCOIL
+
+
+
+ maximum amount of cable in a coil
MAX_STACK_SIZE
+
+
+
+ The maximum size of a stack object.
MINERAL_MATERIAL_AMOUNT
+
+
+
+ The amount of materials you get from a sheet of mineral like iron/diamond/glass etc
MOUNTED_FRAME_SIMFLOOR
+
+
+
+ Mounted Frames BITMASK
NARSIE_WINDOW_COLOUR
+
+
+
+ other construction-related things
+windows affected by nar'sie turn this color.
PLASTIC_FLAPS_NORMAL
+
+
+
+ plastic flaps construction states
RWALL_INTACT
+
+
+
+ rwall construction states
TINT_CONTROL_GROUP_NONE
+
+
+
+ ID of a tint control button with no group specified, so it controls only windows also with no group specified ('null-like' id).
TINT_CONTROL_RANGE_AREA
+
+
+
+ Range of a tint control button, that works only in its area.
WINDOW_OUT_OF_FRAME
+
+
+
+ window construction states
+
+
+
diff --git a/code/__DEFINES/cult_defines.html b/code/__DEFINES/cult_defines.html
new file mode 100644
index 0000000000000..587b7d0583ef4
--- /dev/null
+++ b/code/__DEFINES/cult_defines.html
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+ code/__DEFINES/cult_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/cult_defines.dm
+
+
+
+Define Details
+CULT_ASCENDANT_HIGH
+
+
+
+ Percent before ascend (Highpop)
CULT_ASCENDANT_LOW
+
+
+
+ Percent before ascend (Lowpop)
CULT_POPULATION_THRESHOLD
+
+
+
+ At what population does it switch to highpop values
CULT_RISEN_HIGH
+
+
+
+ Percent before rise (Highpop)
CULT_RISEN_LOW
+
+
+
+ Percent before rise (Lowpop)
GET_CULT_DATA
+
+
+
+
+ Safely accesses SSticker.cult_data, returns the default if cult data is not set up yet. Allows for both variable and proc call access.
IS_CULTIST
+
+
+
+
+ Checks that the given element is living an has a cult antag datum
MAX_BLOODCHARGE
+
+
+
+ Maximum number of spells with an empowering rune
RUNELESS_MAX_BLOODCHARGE
+
+
+
+ Maximum number of spells without an empowering rune
+
+
+
diff --git a/code/__DEFINES/dcs/dcs_flags.html b/code/__DEFINES/dcs/dcs_flags.html
new file mode 100644
index 0000000000000..ccc3882affec6
--- /dev/null
+++ b/code/__DEFINES/dcs/dcs_flags.html
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/dcs_flags.dm - Space Station 13
+
+
+
+
+code/__DEFINES/dcs/dcs_flags.dm
+
+
+
+Define Details
+COMPONENT_DUPE_ALLOWED
+
+
+
+ duplicates allowed
COMPONENT_DUPE_HIGHLANDER
+
+
+
+ old component is deleted (default)
COMPONENT_DUPE_SELECTIVE
+
+
+
+ each component of the same type is consulted as to whether the duplicate should be allowed
COMPONENT_DUPE_UNIQUE
+
+
+
+ new component is deleted
COMPONENT_DUPE_UNIQUE_PASSARGS
+
+
+
+ old component is given the initialization args of the new
COMPONENT_INCOMPATIBLE
+
+
+
+ Return this from /datum/component/Initialize
or datum/component/OnTransfer
to have the component be deleted if it's applied to an incorrect type.
+parent
must not be modified if this is to be returned.
+This will be noted in the runtime logs
COMPONENT_NOTRANSFER
+
+
+
+ Returned in PostTransfer to prevent transfer, similar to COMPONENT_INCOMPATIBLE
ELEMENT_BESPOKE
+
+
+
+ Only elements created with the same arguments given after id_arg_index
share an element instance
+The arguments are the same when the text and number values are the same and all other values have the same ref
ELEMENT_DETACH_ON_HOST_DESTROY
+
+
+
+ Causes the detach proc to be called when the host object is being deleted
ELEMENT_INCOMPATIBLE
+
+
+
+ Return value to cancel attaching
+
+
+
diff --git a/code/__DEFINES/dcs/dcs_helpers.html b/code/__DEFINES/dcs/dcs_helpers.html
new file mode 100644
index 0000000000000..8f9f4f3ddbf76
--- /dev/null
+++ b/code/__DEFINES/dcs/dcs_helpers.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/dcs_helpers.dm - Space Station 13
+
+
+
+
+code/__DEFINES/dcs/dcs_helpers.dm
+
+
+
+
+ SEND_SIGNAL Used to trigger signals and call procs registered for that signal
+The datum hosting the signal is automaticaly added as the first argument
+Returns a bitfield gathered from all registered procs
+Arguments given here are packaged in a list and given to _SendSignal
+ SIGNAL_HANDLER Signifies that this proc is used to handle signals.
+Every proc you pass to RegisterSignal must have this.
+ AddElement A wrapper for _AddElement that allows us to pretend we're using normal named arguments
+ RemoveElement A wrapper for _RemoveElement that allows us to pretend we're using normal named arguments
+ AddComponent A wrapper for _AddComponent that allows us to pretend we're using normal named arguments
Define Details
+AddComponent
+
+
+
+
+ A wrapper for _AddComponent that allows us to pretend we're using normal named arguments
AddElement
+
+
+
+
+ A wrapper for _AddElement that allows us to pretend we're using normal named arguments
RemoveElement
+
+
+
+
+ A wrapper for _RemoveElement that allows us to pretend we're using normal named arguments
SEND_SIGNAL
+ (target, sigtype, arguments ...)
+
+
+
+ Used to trigger signals and call procs registered for that signal
+The datum hosting the signal is automaticaly added as the first argument
+Returns a bitfield gathered from all registered procs
+Arguments given here are packaged in a list and given to _SendSignal
SIGNAL_HANDLER
+
+
+
+ Signifies that this proc is used to handle signals.
+Every proc you pass to RegisterSignal must have this.
+
+
+
diff --git a/code/__DEFINES/dcs/signals.html b/code/__DEFINES/dcs/signals.html
new file mode 100644
index 0000000000000..b59f8ec01be35
--- /dev/null
+++ b/code/__DEFINES/dcs/signals.html
@@ -0,0 +1,1961 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals.dm - Space Station 13
+
+
+
+
+code/__DEFINES/dcs/signals.dm
+
+
+
+
+ COMSIG_GLOB_NEW_Z from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args)
+ COMSIG_GLOB_VAR_EDIT called after a successful var edit somewhere in the world: (list/args)
+ COMSIG_GLOB_EXPLOSION called after an explosion happened : (epicenter, devastation_range, heavy_impact_range, light_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range)
+ COMSIG_GLOB_MOB_CREATED mob was created somewhere : (mob)
+ COMSIG_GLOB_MOB_DEATH mob died somewhere : (mob , gibbed)
+ COMSIG_GLOB_LIVING_SAY_SPECIAL global living say plug - use sparingly: (mob/speaker , message)
+ COMSIG_GLOB_PLAY_CINEMATIC called by datum/cinematic/play() : (datum/cinematic/new_cinematic)
+ COMSIG_GLOB_BUTTON_PRESSED ingame button pressed (/obj/machinery/button/button)
+ COMSIG_GLOB_JOB_AFTER_SPAWN job subsystem has spawned and equipped a new mob
+ COMSIG_GLOB_CABLE_UPDATED cable was placed or joined somewhere : (turf)
+ COMSIG_SUN_MOVED signals from globally accessible objects
+from SSsun when the sun changes position : (azimuth)
+ COMSIG_SECURITY_LEVEL_CHANGE_PLANNED from SSsecurity_level on planning security level change : (previous_level_number, new_level_number)
+ COMSIG_SECURITY_LEVEL_CHANGED from SSsecurity_level when the security level changes : (previous_level_number, new_level_number)
+ COMSIG_COMPONENT_ADDED when a component is added to a datum: (/datum/component)
+ COMSIG_COMPONENT_REMOVING before a component is removed from a datum because of RemoveComponent: (/datum/component)
+ COMSIG_PARENT_PREQDELETED before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation
+ COMSIG_PARENT_QDELETING just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called
+ COMSIG_TOPIC generic topic handler (usr, href_list)
+ COMSIG_ELEMENT_ATTACH fires on the target datum when an element is attached to it (/datum/element)
+ COMSIG_ELEMENT_DETACH fires on the target datum when an element is attached to it (/datum/element)
+ COMSIG_ATOM_CREATED from base of atom/proc/Initialize(): sent any time a new atom is created
+ COMSIG_PARENT_ATTACKBY from base of atom/attackby(): (/obj/item, /mob/living, params)
+ COMPONENT_NO_AFTERATTACK Return this in response if you don't want afterattack to be called
+ COMSIG_ATOM_HULK_ATTACK from base of atom/attack_hulk(): (/mob/living/carbon/human)
+ COMSIG_ATOM_ATTACK_ANIMAL from base of atom/animal_attack(): (/mob/user)
+ COMSIG_PARENT_EXAMINE from base of atom/examine(): (/mob)
+ COMSIG_ATOM_GET_EXAMINE_NAME from base of atom/get_examine_name(): (/mob, list/overrides)
+ COMSIG_ATOM_UPDATE_APPEARANCE from base of /atom/proc/update_appearance : (updates)
+ COMSIG_ATOM_NO_UPDATE_NAME If returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its name.
+ COMSIG_ATOM_NO_UPDATE_DESC If returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its desc.
+ COMSIG_ATOM_NO_UPDATE_ICON If returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its icon.
+ COMSIG_ATOM_UPDATE_NAME from base of /atom/proc/update_name : (updates)
+ COMSIG_ATOM_UPDATE_DESC from base of /atom/proc/update_desc : (updates)
+ COMSIG_ATOM_UPDATE_ICON from base of /atom/update_icon : ()
+ COMSIG_ATOM_NO_UPDATE_ICON_STATE If returned from COMSIG_ATOM_UPDATE_ICON it prevents the atom from updating its icon state.
+ COMSIG_ATOM_NO_UPDATE_OVERLAYS If returned from COMSIG_ATOM_UPDATE_ICON it prevents the atom from updating its overlays.
+ COMSIG_ATOM_UPDATE_ICON_STATE Sent after atom/update_icon_state is called by /atom/update_icon : ()
+ COMSIG_ATOM_UPDATE_OVERLAYS Sent after atom/update_overlays is called by /atom/update_icon : (list/new_overlays)
+ COMSIG_ATOM_UPDATED_ICON from base of /atom/update_icon : (signalOut, did_anything)
+ COMSIG_ATOM_ENTERED from base of atom/Entered(): (atom/movable/entering, /atom)
+ COMSIG_ATOM_EXIT from base of atom/Exit(): (/atom/movable/exiting, /atom/newloc)
+ COMSIG_ATOM_EXITED from base of atom/Exited(): (atom/movable/exiting, atom/newloc)
+ COMSIG_ATOM_BUMPED from base of atom/Bumped(): (/atom/movable)
+ COMSIG_ATOM_EX_ACT from base of atom/ex_act(): (severity, target)
+ COMSIG_ATOM_EMP_ACT from base of atom/emp_act(): (severity)
+ COMSIG_ATOM_FIRE_ACT from base of atom/fire_act(): (exposed_temperature, exposed_volume)
+ COMSIG_ATOM_BULLET_ACT from base of atom/bullet_act(): (/obj/projectile, def_zone)
+ COMSIG_ATOM_BLOB_ACT from base of atom/blob_act(): (/obj/structure/blob)
+ COMSIG_ATOM_ACID_ACT from base of atom/acid_act(): (acidpwr, acid_volume)
+ COMSIG_ATOM_EMAG_ACT from base of atom/emag_act(): (/mob/user)
+ COMSIG_ATOM_RAD_ACT from base of atom/rad_act(intensity)
+ COMSIG_ATOM_NARSIE_ACT from base of atom/narsie_act(): ()
+ COMSIG_ATOM_RCD_ACT from base of atom/rcd_act(): (/mob, /obj/item/construction/rcd, passed_mode)
+ COMSIG_ATOM_SING_PULL from base of atom/singularity_pull(): (S, current_size)
+ COMSIG_ATOM_BSA_BEAM from obj/machinery/bsa/full/proc/fire(): ()
+ COMSIG_ATOM_SET_LIGHT from base of atom/set_light(): (l_range, l_power, l_color)
+ COMSIG_ATOM_DIR_CHANGE from base of atom/setDir(): (old_dir, new_dir)
+ COMSIG_ATOM_CONTENTS_DEL from base of atom/handle_atom_del(): (atom/deleted)
+ COMSIG_ATOM_HAS_GRAVITY from base of atom/has_gravity(): (turf/location, list/forced_gravities)
+ COMSIG_ATOM_RAD_PROBE from proc/get_rad_contents(): ()
+ COMSIG_ATOM_RAD_CONTAMINATING from base of datum/radiation_wave/radiate(): (strength)
+ COMSIG_ATOM_RAD_WAVE_PASSING from base of datum/radiation_wave/check_obstructions(): (datum/radiation_wave, width)
+ COMSIG_ATOM_SCREWDRIVER_ACT from base of atom/screwdriver_act(): (mob/living/user, obj/item/I)
+ COMSIG_ATOM_WRENCH_ACT from base of atom/wrench_act(): (mob/living/user, obj/item/I)
+ COMSIG_ATOM_MULTITOOL_ACT from base of atom/multitool_act(): (mob/living/user, obj/item/I)
+ COMSIG_ATOM_WELDER_ACT from base of atom/welder_act(): (mob/living/user, obj/item/I)
+ COMSIG_ATOM_WIRECUTTER_ACT from base of atom/wirecutter_act(): (mob/living/user, obj/item/I)
+ COMSIG_ATOM_CROWBAR_ACT from base of atom/crowbar_act(): (mob/living/user, obj/item/I)
+ COMSIG_ATOM_ANALYSER_ACT from base of atom/analyser_act(): (mob/living/user, obj/item/I)
+ COMSIG_ATOM_INTERCEPT_TELEPORT called when teleporting into a protected turf: (channel, turf/origin)
+ COMSIG_ATOM_HEARER_IN_VIEW called when an atom is added to the hearers on get_hearers_in_view(): (list/processing_list, list/hearers)
+ COMSIG_ATOM_ORBIT_BEGIN called when an atom starts orbiting another atom: (atom)
+ COMSIG_ATOM_ORBIT_STOP called when an atom stops orbiting another atom: (atom)
+ COMSIG_ATOM_ORBITER_STOP called on an atom who has stopped orbiting another atom (atom/orbiter, atom/formerly_orbited)
+ COMSIG_ATOM_HITBY from base of atom/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
+ COMSIG_ATOM_UPDATE_SHARPNESS Called when an atom is sharpened or dulled.
+ COMSIG_ATOM_PREHIT from base of atom/atom_prehit(obj/item/projectile/P):
+ COMPONENT_CANCEL_ATTACK_CHAIN This response cancels the attack chain entirely. If sent early, it might cause some later effects to be skipped.
+ COMSIG_ATOM_INITIALIZED_ON Called from atom/Initialize() of target: (atom/target)
+ COMSIG_ATOM_ATTACK_GHOST from base of atom/attack_ghost(): (mob/dead/observer/ghost)
+ COMSIG_ATOM_ATTACK_HAND from base of atom/attack_hand(): (mob/user)
+ COMSIG_ATOM_ATTACK_PAW from base of atom/attack_paw(): (mob/user)
+ COMSIG_ATOM_INTERCEPT_Z_FALL called for each movable in a turf contents on /turf/zImpact(): (atom/movable/A, levels)
+ COMSIG_ATOM_START_PULL called on a movable (NOT living) when someone starts pulling it (atom/movable/puller, state, force)
+ COMSIG_LIVING_START_PULL called on /living when someone starts pulling it (atom/movable/puller, state, force)
+ COMSIG_CLIENT_CLICK from base of client/Click(): (atom/target, atom/location, control, params, mob/user)
+ COMSIG_CLIENT_MOUSEDOWN from base of client/MouseDown(): (/client, object, location, control, params)
+ COMSIG_CLIENT_MOUSEUP from base of client/MouseUp(): (/client, object, location, control, params)
+ COMSIG_CLIENT_MOUSEDRAG from base of client/MouseUp(): (/client, object, location, control, params)
+ COMSIG_ENTER_AREA from base of area/Entered(): (/area)
+ COMSIG_EXIT_AREA from base of area/Exited(): (/area)
+ COMSIG_CLICK from base of atom/Click(): (location, control, params, mob/user)
+ COMSIG_CLICK_SHIFT from base of atom/ShiftClick(): (/mob)
+ COMSIG_CLICK_CTRL from base of atom/CtrlClickOn(): (/mob)
+ COMSIG_CLICK_ALT from base of atom/AltClick(): (/mob)
+ COMPONENT_CANCEL_ALTCLICK Cancel the alt-click, since this isn't properly part of the attack chain
+ COMSIG_CLICK_CTRL_SHIFT from base of atom/CtrlShiftClick(/mob)
+ COMSIG_MOUSEDROP_ONTO from base of atom/MouseDrop(): (/atom/over, /mob/user)
+ COMSIG_MOUSEDROPPED_ONTO from base of atom/MouseDrop_T: (/atom/from, /mob/user)
+ COMSIG_POWERNET_POWER_CHANGE from base of /datum/local_powernet/proc/power_change()
+ COMSIG_AREA_ENTERED from base of area/Entered(): (atom/movable/M)
+ COMSIG_AREA_EXITED from base of area/Exited(): (atom/movable/M)
+ COMSIG_TURF_CHANGE from base of turf/ChangeTurf(): (path, list/new_baseturfs, flags, list/transferring_comps)
+ COMSIG_TURF_HAS_GRAVITY from base of atom/has_gravity(): (atom/asker, list/forced_gravities)
+ COMSIG_TURF_MULTIZ_NEW from base of turf/New(): (turf/source, direction)
+ COMSIG_MOVABLE_PRE_MOVE from base of atom/movable/Moved(): (/atom)
+ COMSIG_MOVABLE_MOVED from base of atom/movable/Moved(): (/atom, dir)
+ COMSIG_MOVABLE_CROSS from base of atom/movable/Cross(): (/atom/movable)
+ COMSIG_MOVABLE_CROSSED from base of atom/movable/Crossed(): (/atom/movable)
+ COMSIG_CROSSED_MOVABLE when we cross over something (calling Crossed() on that atom)
+ COMSIG_MOVABLE_UNCROSS from base of atom/movable/Uncross(): (/atom/movable)
+ COMSIG_MOVABLE_UNCROSSED from base of atom/movable/Uncrossed(): (/atom/movable)
+ COMSIG_MOVABLE_BUMP from base of atom/movable/Bump(): (/atom)
+ COMSIG_MOVABLE_IMPACT from base of atom/movable/throw_impact(): (/atom/hit_atom, /datum/thrownthing/throwingdatum)
+ COMSIG_MOVABLE_IMPACT_ZONE from base of mob/living/hitby(): (mob/living/target, hit_zone)
+ COMSIG_MOVABLE_BUCKLE from base of atom/movable/buckle_mob(): (mob, force)
+ COMSIG_MOVABLE_UNBUCKLE from base of atom/movable/unbuckle_mob(): (mob, force)
+ COMSIG_MOVABLE_PRE_THROW from base of atom/movable/throw_at(): (list/args)
+ COMSIG_MOVABLE_POST_THROW from base of atom/movable/throw_at(): (datum/thrownthing, spin)
+ COMSIG_MOVABLE_THROW_LANDED from base of datum/thrownthing/finalize(): (obj/thrown_object, datum/thrownthing) used for when a throw is finished
+ COMSIG_MOVABLE_Z_CHANGED from base of atom/movable/onTransitZ(): (old_z, new_z)
+ COMSIG_MOVABLE_SECLUDED_LOCATION called when the movable is placed in an unaccessible area, used for stationloving: ()
+ COMSIG_MOVABLE_HEAR from base of atom/movable/Hear(): (proc args list(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode))
+ COMSIG_MOVABLE_TRY_UNTILT Called just before something gets untilted
+ COMPONENT_BLOCK_UNTILT Return this to block an untilt attempt
+ COMSIG_MOVABLE_UNTILTED Called when something gets untilted, from /datum/element/tilted/proc/do_untilt(atom/movable/source, mob/user)
+ COMSIG_MOVABLE_DISPOSING called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source)
+ COMSIG_MOVABLE_EXIT_DISPOSALS called when the movable is removed from a disposal holder object: /obj/structure/disposalpipe/proc/expel(): (obj/structure/disposalholder/H, turf/T, direction)
+ COMSIG_MIND_TRANSER_TO from base of /datum/mind/proc/transfer_to(mob/living/new_character)
+ COMSIG_BODY_TRANSFER_TO called on the mob instead of the mind
+ COMSIG_MIND_INITIALIZE called when the mind is initialized (called every time the mob logins)
+ COMSIG_MOB_LOGIN from base of /mob/Login(): ()
+ COMSIG_HUMAN_LOGIN called in human/login
+ COMSIG_MOB_LOGOUT from base of /mob/Logout(): ()
+ COMSIG_MOB_DEATH from base of mob/death(): (gibbed)
+ COMSIG_MOB_STATCHANGE from base of mob/set_stat(): (new_stat)
+ COMSIG_MOB_CLICKON from base of mob/clickon(): (atom/A, params)
+ COMSIG_MOB_MIDDLECLICKON from base of mob/MiddleClickOn(): (atom/A)
+ COMSIG_MOB_ALTCLICKON from base of mob/AltClickOn(): (atom/A)
+ COMSIG_MOB_ALLOWED from base of obj/allowed(mob/M): (/obj) returns bool, if TRUE the mob has id access to the obj
+ COMSIG_MOB_RECEIVE_MAGIC from base of mob/anti_magic_check(): (mob/user, magic, holy, tinfoil, chargecost, self, protection_sources)
+ COMSIG_MOB_HUD_CREATED from base of mob/create_mob_hud(): ()
+ COMSIG_MOB_ATTACK_HAND from base of atom/attack_hand(): (mob/user)
+ COMSIG_MOB_ITEM_ATTACK from base of /obj/item/attack(): (mob/M, mob/user)
+ COMSIG_MOB_APPLY_DAMAGE from base of /mob/living/proc/apply_damage(): (damage, damagetype, def_zone)
+ COMSIG_MOB_ITEM_AFTERATTACK from base of obj/item/afterattack(): (atom/target, mob/user, proximity_flag, click_parameters)
+ COMSIG_MOB_ITEM_ATTACK_QDELETED from base of obj/item/attack_qdeleted(): (atom/target, mob/user, proxiumity_flag, click_parameters)
+ COMSIG_MOB_ATTACK_RANGED from base of mob/RangedAttack(): (atom/A, params)
+ COMSIG_MOB_THROW from base of /mob/throw_item(): (atom/target)
+ COMSIG_MOB_WILLINGLY_DROP called when a user willingly drops something (i.e. keybind, or UI action)
+ COMSIG_MOB_WEAPON_APPEARS called when a user is getting new weapon and we want to remove previous weapon to clear hands
+ COMSIG_MOB_EXAMINATE from base of /mob/verb/examinate(): (atom/target)
+ COMSIG_MOB_UPDATE_SIGHT from base of /mob/update_sight(): ()
+ COMSIG_MOB_SAY from /mob/living/say(): ()
+ COMSIG_MOB_DEADSAY from /mob/say_dead(): (mob/speaker, message)
+ COMSIG_MOB_PREEMOTE Signal fired when an emote is used but before it's executed.
+from /datum/emote/proc/try_run_emote(): (key, intentional)
+ COMPONENT_BLOCK_EMOTE_UNUSABLE Return this to block an emote and let the user know the emote is unusable.
+ COMPONENT_BLOCK_EMOTE_SILENT Return this to block an emote silently.
+ COMSIG_MOB_EMOTE General signal fired when a mob does any old emote
+from /datum/emote/proc/run_emote(): (key, intentional)
+ COMSIG_MOB_EMOTED Specific signal used to track when a specific emote is used.
+From /datum/emote/run_emote(): (P, key, m_type, message, intentional)
+ COMSIG_MOB_EMOTE_AT From /datum/emote/select_param(): (target, key, intentional)
+ COMSIG_MOB_SWAPPING_HANDS from base of mob/swap_hand(): (obj/item)
+ COMPONENT_BLOCK_SWAP Prevent the mob from changing hands
+ COMSIG_MOB_SWAPPED_HANDS Performed after the hands are swapped.
+ COMSIG_LIVING_RESIST from base of mob/living/resist() (/mob/living)
+ COMSIG_LIVING_IGNITED from base of mob/living/IgniteMob() (/mob/living)
+ COMSIG_LIVING_EXTINGUISHED from base of mob/living/ExtinguishMob() (/mob/living)
+ COMSIG_LIVING_ELECTROCUTE_ACT from base of mob/living/electrocute_act(): (shock_damage, source, siemens_coeff, flags)
+ COMSIG_LIVING_SHOCK_PREVENTED sent when items with siemen coeff. of 0 block a shock: (power_source, source, siemens_coeff, dist_check)
+ COMSIG_LIVING_MINOR_SHOCK sent by stuff like stunbatons and tasers: ()
+ COMSIG_LIVING_PRE_DEFIB Sent from defibrillators when everything seems good and the user will be shocked: (defibber, defib_item, ghost)
+ COMPONENT_BLOCK_DEFIB If returned from LIVING_BEFORE_DEFIB or LIVING_DEFIBBED, the defibrillation will fail
+ COMPONENT_DEFIB_OVERRIDE If returned, don't even show the "failed" message, defer to the signal handler to do that.
+ COMPONENT_DEFIB_FAKEDEATH_ACCEPTED If returned, allow to revive through false death.
+ COMPONENT_DEFIB_FAKEDEATH_DENIED If returned, make the fake death look like a unresponsive ghost.
+ COMSIG_LIVING_DEFIBBED send from defibs on ressurection: (defibber, defib_item, ghost)
+ COMSIG_LIVING_REVIVE from base of mob/living/revive() (full_heal, admin_revive)
+ COMSIG_LIVING_REGENERATE_LIMBS from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs)
+ COMSIG_LIVING_ATTACH_LIMB from base of /obj/item/bodypart/proc/attach_limb(): (new_limb, special) allows you to fail limb attachment
+ COMSIG_PROCESS_BORGCHARGER_OCCUPANT sent from borg recharge stations: (amount, repairs)
+ COMSIG_MOB_CLIENT_LOGIN sent when a mob/login() finishes: (client)
+ COMSIG_BORG_SAFE_DECONSTRUCT sent from borg mobs to itself, for tools to catch an upcoming destroy() due to safe decon (rather than detonation)
+ COMSIG_LIVING_FIRE_TICK sent from living mobs every tick of fire
+ COMSIG_LIVING_STATUS_STUN from base of mob/living/Stun() (amount, ignore_canstun)
+ COMSIG_LIVING_STATUS_WEAKEN from base of mob/living/Stun() (amount, ignore_canstun)
+ COMSIG_LIVING_STATUS_PARALYSE from base of mob/living/Knockdown() (amount, ignore_canstun)
+#define COMSIG_LIVING_STATUS_KNOCKDOWN "living_knockdown" // one day
+from base of mob/living/Paralyse() (amount, ignore_canstun)
+ COMSIG_LIVING_STATUS_IMMOBILIZE from base of mob/living/Immobilize() (amount, ignore_canstun)
+ COMSIG_LIVING_STATUS_UNCONSCIOUS from base of mob/living/Unconscious() (amount, ignore_canstun)
+ COMSIG_LIVING_STATUS_SLEEP from base of mob/living/Sleeping() (amount, ignore_canstun)
+ COMSIG_LIVING_CAN_TRACK from base of /mob/living/can_track(): (mob/user)
+ COMSIG_LIVING_WRITE_MEMORY from base of mob/living/Write_Memory()
+ COMSIG_CARBON_SOUNDBANG from base of mob/living/carbon/soundbang_act(): (list(intensity))
+ COMSIG_CARBON_GAIN_ORGAN from /item/organ/proc/Insert() (/obj/item/organ/)
+ COMSIG_CARBON_LOSE_ORGAN from /item/organ/proc/Remove() (/obj/item/organ/)
+ COMSIG_CARBON_EQUIP_HAT from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent)
+ COMSIG_CARBON_UNEQUIP_HAT from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent)
+ COMSIG_CARBON_EMBED_RIP defined twice, in carbon and human's topics, fired when interacting with a valid embedded_object to pull it out (mob/living/carbon/target, /obj/item, /obj/item/bodypart/L)
+ COMSIG_CARBON_EMBED_REMOVAL called when removing a given item from a mob, from mob/living/carbon/remove_embedded_object(mob/living/carbon/target, /obj/item)
+ COMSIG_CARBON_SWAP_HANDS From /mob/living/carbon/swap_hand(): Called when the user swaps their active hand
+ COMSIG_CARBON_TOGGLE_THROW From /mob/living/carbon/toggle_throw_mode()
+ COMSIG_CARBON_THROWN_ITEM_CAUGHT From /mob/living/carbon/human/hitby()
+ COMSIG_CARBON_FLASH_EYES From /mob/living/carbon/flash_eyes()
+ COMSIG_CARBON_UPDATE_HANDCUFFED From /mob/living/carbon/update_handcuffed()
+ COMSIG_CARBON_REGENERATE_ICONS From /mob/living/carbon/regenerate_icons()
+ COMSIG_CARBON_ENTER_STAMINACRIT From /mob/living/carbon/enter_stamcrit()
+ COMSIG_CARBON_EXIT_STAMINACRIT From /mob/living/carbon/update_stamina()
+ COMSIG_CARBON_STAMINA_REGENERATED From /mob/living/carbon/handle_status_effects()
+ COMSIG_OBJ_DECONSTRUCT from base of obj/deconstruct(): (disassembled)
+ COMSIG_OBJ_SETANCHORED called in /obj/structure/setAnchored(): (value)
+ COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH from base of code/game/machinery
+ COMSIG_OBJ_HIDE from base of /turf/proc/levelupdate(). (intact) true to hide and false to unhide
+ COMSIG_OBJ_UPDATE_ICON called in /obj/update_icon()
+ COMSIG_MACHINERY_BROKEN from /obj/machinery/obj_break(damage_flag): (damage_flag)
+ COMSIG_MACHINERY_POWER_LOST from base power_change() when power is lost
+ COMSIG_MACHINERY_POWER_RESTORED from base power_change() when power is restored
+ COMSIG_ITEM_ATTACK from base of obj/item/attack(): (/mob/living/target, /mob/living/user)
+ COMSIG_ITEM_ATTACK_SELF from base of obj/item/attack_self(): (/mob)
+ COMSIG_ITEM_ATTACK_OBJ from base of obj/item/attack_obj(): (/obj, /mob)
+ COMSIG_ITEM_PRE_ATTACK from base of obj/item/pre_attack(): (atom/target, mob/user, params)
+ COMSIG_ITEM_BEING_ATTACKED from base of obj/item/pre_attack(): (atom/target, mob/user, params)
+ COMSIG_ITEM_AFTERATTACK from base of obj/item/afterattack(): (atom/target, mob/user, params)
+ COMSIG_ITEM_ATTACK_QDELETED from base of obj/item/attack_qdeleted(): (atom/target, mob/user, params)
+ COMSIG_ITEM_PRE_UNEQUIP from base of obj/item/equipped(): (/mob/equipper, slot)
+called on /obj/item before unequip from base of [mob/proc/doUnEquip]: (force, atom/newloc, no_move, invdrop, silent)
+ COMPONENT_ITEM_BLOCK_UNEQUIP only the pre unequip can be cancelled
+ COMSIG_ITEM_DROPPED from base of obj/item/dropped(): (mob/user)
+ COMSIG_ITEM_PICKUP from base of obj/item/pickup(): (/mob/taker)
+ COMSIG_ITEM_ATTACK_ZONE from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone)
+ COMSIG_ITEM_IMBUE_SOUL return a truthy value to prevent ensouling, checked in /datum/spell/lichdom/cast(): (mob/user)
+ COMSIG_ITEM_MARK_RETRIEVAL called before marking an object for retrieval, checked in /datum/spell/summonitem/cast() : (mob/user)
+ COMSIG_ITEM_HIT_REACT from base of obj/item/hit_reaction(): (list/args)
+ COMSIG_ITEM_WEARERCROSSED called on item when crossed by something (): (/atom/movable, mob/living/crossed)
+ COMSIG_ITEM_MICROWAVE_ACT called on item when microwaved (): (obj/machinery/microwave/M)
+ COMSIG_ITEM_SHARPEN_ACT from base of item/sharpener/attackby(): (amount, max)
+ COMSIG_TOOL_IN_USE from base of [/obj/item/proc/tool_check_callback]: (mob/living/user)
+ COMSIG_TOOL_START_USE from base of [/obj/item/proc/tool_start_check]: (mob/living/user)
+ COMSIG_TOOL_ATTACK from base of [/obj/item/proc/tool_attack_chain]: (atom/tool, mob/user)
+ COMSIG_ITEM_DISABLE_EMBED from [/obj/item/proc/disableEmbedding]:
+ COMSIG_MINE_TRIGGERED from [/obj/effect/mine/proc/triggermine]:
+ COMSIG_ITEM_GET_WORN_OVERLAYS Called by /obj/item/proc/worn_overlays(list/overlays, mutable_appearance/standing, isinhands, icon_file)
+ COMSIG_ASSEMBLY_PULSED Called by /obj/item/assembly/signaler(called_from_radio)
+ COMSIG_DEFIB_PADDLES_APPLIED Defib-specific signals
+Called when a defibrillator is first applied to someone. (mob/living/user, mob/living/target, harmful)
+ COMPONENT_BLOCK_DEFIB_DEAD Defib is out of power.
+ COMPONENT_BLOCK_DEFIB_MISC Something else: we won't have a custom message for this and should let the defib handle it.
+ COMSIG_DEFIB_SHOCK_APPLIED Called when a defib has been successfully used, and a shock has been applied. (mob/living/user, mob/living/target, harmful, successful)
+ COMSIG_DEFIB_READY Called when a defib's cooldown has run its course and it is once again ready. ()
+ COMSIG_ITEM_SOLD called when an item is sold by the exports subsystem
+ COMSIG_STRUCTURE_UNWRAPPED called when a wrapped up structure is opened by hand
+ COMSIG_ITEM_SPLIT_VALUE called when a wrapped up item is opened by hand
+ COMSIG_ITEM_SPLIT_PROFIT called when getting the item's exact ratio for cargo's profit.
+ COMSIG_ITEM_SPLIT_PROFIT_DRY called when getting the item's exact ratio for cargo's profit, without selling the item.
+ COMSIG_SHOES_STEP_ACTION from [/mob/living/carbon/human/Move]: ()
+ COMSIG_SUIT_SPACE_TOGGLE from base of /obj/item/clothing/suit/space/proc/toggle_spacesuit(): (obj/item/clothing/suit/space/suit)
+ COMSIG_IMPLANT_ACTIVATED from base of /obj/item/bio_chip/proc/activate(): ()
+ COMSIG_IMPLANT_IMPLANTING from base of /obj/item/bio_chip/proc/implant(): (list/args)
+ COMSIG_IMPLANT_OTHER called on already installed implants when a new one is being added in /obj/item/bio_chip/proc/implant(): (list/args, obj/item/bio_chip/new_implant)
+ COMSIG_IMPLANT_EXISTING_UPLINK called on implants being implanted into someone with an uplink implant: (datum/component/uplink)
+ COMSIG_IMPLANT_IMPLANTED called on implants, after a successful implantation: (mob/living/target, mob/user, silent, force)
+ COMSIG_IMPLANT_REMOVED called on implants, after an implant has been removed: (mob/living/source, silent, special)
+ COMSIG_PDA_CHANGE_RINGTONE called on pda when the user changes the ringtone: (mob/living/user, new_ringtone)
+ COMSIG_RADIO_NEW_FREQUENCY called from base of /obj/item/radio/proc/set_frequency(): (list/args)
+ COMSIG_PEN_ROTATED called after rotation in /obj/item/pen/attack_self(): (rotation, mob/living/carbon/user)
+ COMSIG_GUN_TRY_FIRE called in /obj/item/gun/fire_gun (user, target, flag, params)
+ COMSIG_MOB_TRY_FIRE called in /obj/item/gun/afterattack (user, target, flag, params)
+ COMSIG_GUN_FIRED called in /obj/item/gun/process_fire (user, target)
+ COMSIG_AUTOFIRE_ONMOUSEDOWN called in /datum/component/automatic_fire/proc/on_mouse_down: (client/clicker, atom/target, turf/location, control, params)
+ COMSIG_AUTOFIRE_SHOT called in /datum/component/automatic_fire/proc/process_shot(): (atom/target, mob/living/shooter, allow_akimbo, params)
+ COMSIG_GRENADE_PRIME called in /obj/item/gun/process_fire (user, target, params, zone_override)
+ COMSIG_GRENADE_ARMED called in /obj/item/gun/process_fire (user, target, params, zone_override)
+ COMSIG_PROJECTILE_SELF_ON_HIT from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle)
+ COMSIG_PROJECTILE_ON_HIT from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle)
+ COMSIG_PROJECTILE_BEFORE_FIRE from base of /obj/projectile/proc/fire(): (obj/projectile, atom/original_target)
+ COMSIG_PROJECTILE_FIRE from the base of /obj/projectile/proc/fire(): ()
+ COMSIG_PROJECTILE_PREHIT sent to targets during the process_hit proc of projectiles
+ COMSIG_PROJECTILE_RANGE_OUT sent to targets during the process_hit proc of projectiles
+ COMSIG_EMBED_TRY_FORCE sent when trying to force an embed (mainly for projectiles, only used in the embed element)
+ COMSIG_PELLET_CLOUD_INIT sent to targets during the process_hit proc of projectiles
+ COMSIG_MECHA_ACTION_ACTIVATE sent from mecha action buttons to the mecha they're linked to
+ COMSIG_HUMAN_EARLY_UNARMED_ATTACK from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity)
+ COMSIG_HUMAN_MELEE_UNARMED_ATTACK from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity)
+ COMSIG_HUMAN_MELEE_UNARMED_ATTACKBY from mob/living/carbon/human/UnarmedAttack(): (mob/living/carbon/human/attacker)
+ COMSIG_HUMAN_DISARM_HIT Hit by successful disarm attack (mob/living/carbon/human/attacker,zone_targeted)
+ COMSIG_JOB_RECEIVED Whenever EquipRanked is called, called after job is set
+ COMSIG_HUMAN_CHANGE_BODY_ACCESSORY From mob/living/carbon/human/change_body_accessory(): (mob/living/carbon/human/H, body_accessory_style)
+ COMSIG_HUMAN_CHANGE_HEAD_ACCESSORY From mob/living/carbon/human/change_head_accessory(): (mob/living/carbon/human/H, head_accessory_style)
+ COMSIG_LIVING_MOB_BUMP From base of mob/living/MobBump() (mob/living)
+ COMSIG_HUMAN_SUICIDE_ACT From mob/living/carbon/human/do_suicide()
+ COMSIG_HUMAN_RECEIVE_CPR Sent from mob/living/carbon/human/do_cpr(): (mob/living/carbon/human/H, new_seconds_of_life)
+ COMSIG_HUMAN_ATTACKED From mob/living/carbon/human/attackedby(): (mob/living/carbon/human/attacker). Also found on species/disarm and species/harm
+ COMSIG_HUMAN_CHECK_SHIELDS from /mob/living/carbon/human/proc/check_shields(): (atom/hit_by, damage, attack_text, attack_type, armour_penetration, damage_type)
+ COMSIG_HUMAN_CREATE_MOB_HUD from /mob/living/carbon/human/create_mob_hud()
+ COMSIG_SPECIES_GAIN from datum/species/on_species_gain(): (datum/species/new_species, datum/species/old_species)
+ COMSIG_SPECIES_LOSS from datum/species/on_species_loss(): (datum/species/lost_species)
+ COMSIG_SONG_START sent to the instrument when a song starts playing
+ COMSIG_SONG_END sent to the instrument when a song stops playing
+ COMSIG_TURF_IS_WET Component Specific Signals
+(): Returns bitflags of wet values.
+ COMSIG_TURF_MAKE_DRY (max_strength, immediate, duration_decrease = INFINITY): Returns bool.
+ COMSIG_COMPONENT_CLEAN_ACT called on an object to clean it of cleanables. Usualy with soap: (num/strength)
+ COMSIG_COMPONENT_CLEAN_FACE_ACT called when you wash your face at a sink: (num/strength)
+ COMSIG_FOOD_EATEN from base of obj/item/food/snacks/attack(): (mob/living/eater, mob/feeder)
+ COMSIG_ATOM_EXPOSE_REAGENTS from base of atom/expose_reagents(): (/list, /datum/reagents, chemholder, volume_modifier)
+ COMSIG_GIBS_STREAK from base of /obj/effect/decal/cleanable/blood/gibs/streak(): (list/directions, list/diseases)
+ COMSIG_ADD_MOOD_EVENT called when you send a mood event from anywhere in the code.
+ COMSIG_ADD_MOOD_EVENT_RND Mood event that only RnD members listen for
+ COMSIG_CLEAR_MOOD_EVENT called when you clear a mood event from anywhere in the code.
+ COMSIG_COMPONENT_NTNET_RECEIVE called on an object by its NTNET connection component on receive. (sending_id(number), sending_netname(text), data(datum/netdata))
+ COMSIG_HAS_NANITES () returns TRUE if nanites are found
+ COMSIG_NANITE_IS_STEALTHY () returns TRUE if nanites have stealth
+ COMSIG_NANITE_DELETE () deletes the nanite component
+ COMSIG_NANITE_GET_PROGRAMS (list/nanite_programs) - makes the input list a copy the nanites' program list
+ COMSIG_NANITE_GET_VOLUME (amount) Returns nanite amount
+ COMSIG_NANITE_SET_VOLUME (amount) Sets current nanite volume to the given amount
+ COMSIG_NANITE_ADJUST_VOLUME (amount) Adjusts nanite volume by the given amount
+ COMSIG_NANITE_SET_MAX_VOLUME (amount) Sets maximum nanite volume to the given amount
+ COMSIG_NANITE_SET_CLOUD (amount(0-100)) Sets cloud ID to the given amount
+ COMSIG_NANITE_SET_CLOUD_SYNC (method) Modify cloud sync status. Method can be toggle, enable or disable
+ COMSIG_NANITE_SET_SAFETY (amount) Sets safety threshold to the given amount
+ COMSIG_NANITE_SET_REGEN (amount) Sets regeneration rate to the given amount
+ COMSIG_NANITE_SIGNAL (code(1-9999)) Called when sending a nanite signal to a mob.
+ COMSIG_NANITE_COMM_SIGNAL (comm_code(1-9999), comm_message) Called when sending a nanite comm signal to a mob.
+ COMSIG_NANITE_SCAN (mob/user, full_scan) - sends to chat a scan of the nanites to the user, returns TRUE if nanites are detected
+ COMSIG_NANITE_UI_DATA (list/data, scan_level) - adds nanite data to the given data list - made for ui_data procs
+ COMSIG_NANITE_ADD_PROGRAM (datum/nanite_program/new_program, datum/nanite_program/source_program) Called when adding a program to a nanite component
+ COMPONENT_PROGRAM_INSTALLED Installation successful
+ COMPONENT_PROGRAM_NOT_INSTALLED Installation failed, but there are still nanites
+ COMSIG_NANITE_SYNC (datum/component/nanites, full_overwrite, copy_activation) Called to sync the target's nanites to a given nanite component
+ COMSIG_CONTAINS_STORAGE () - returns bool.
+ COMSIG_TRY_STORAGE_INSERT (obj/item/inserting, mob/user, silent, force) - returns bool
+ COMSIG_TRY_STORAGE_SHOW (mob/show_to, force) - returns bool.
+ COMSIG_TRY_STORAGE_HIDE_FROM (mob/hide_from) - returns bool
+ COMSIG_TRY_STORAGE_HIDE_ALL returns bool
+ COMSIG_TRY_STORAGE_SET_LOCKSTATE (newstate)
+ COMSIG_IS_STORAGE_LOCKED () - returns bool. MUST CHECK IF STORAGE IS THERE FIRST!
+ COMSIG_TRY_STORAGE_TAKE_TYPE (type, atom/destination, amount = INFINITY, check_adjacent, force, mob/user, list/inserted) - returns bool - type can be a list of types.
+ COMSIG_TRY_STORAGE_FILL_TYPE (type, amount = INFINITY, force = FALSE). Force will ignore max_items, and amount is normally clamped to max_items.
+ COMSIG_TRY_STORAGE_TAKE (obj, new_loc, force = FALSE) - returns bool
+ COMSIG_TRY_STORAGE_QUICK_EMPTY (loc) - returns bool - if loc is null it will dump at parent location.
+ COMSIG_TRY_STORAGE_RETURN_INVENTORY (list/list_to_inject_results_into, recursively_search_inside_storages = TRUE)
+ COMSIG_TRY_STORAGE_CAN_INSERT (obj/item/insertion_candidate, mob/user, silent) - returns bool
+ COMSIG_TWOHANDED_WIELD from base of datum/component/two_handed/proc/wield(mob/living/carbon/user): (/mob/user)
+ COMSIG_TWOHANDED_UNWIELD from base of datum/component/two_handed/proc/unwield(mob/living/carbon/user): (/mob/user)
+ COMSIG_ACTION_TRIGGER from base of datum/action/proc/Trigger(): (datum/action)
+ COMSIG_ACTION_GRANTED From /datum/action/Grant(): (mob/grant_to)
+ COMSIG_MOB_GRANTED_ACTION From /datum/action/Grant(): (datum/action)
+ COMSIG_ACTION_REMOVED From /datum/action/Remove(): (mob/removed_from)
+ COMSIG_MOB_REMOVED_ACTION From /datum/action/Remove(): (datum/action)
+ COMSIG_ACTION_SCROLLED From base of /atom/movable/screen/movable/action_button/MouseWheel(src, delta_x, delta_y, location, control, params)
+ COMSIG_GHOST_START_OBSERVING from observer_base/do_observe(): (mob/now_followed)
+ COMSIG_GHOST_STOP_OBSERVING from observer_base/do_observe(): (mob/no_longer_following)
+ COMSIG_XENO_SLIME_CLICK_CTRL from slime CtrlClickOn(): (/mob)
+ COMSIG_XENO_SLIME_CLICK_ALT from slime AltClickOn(): (/mob)
+ COMSIG_XENO_SLIME_CLICK_SHIFT from slime ShiftClickOn(): (/mob)
+ COMSIG_XENO_TURF_CLICK_SHIFT from turf ShiftClickOn(): (/mob)
+ COMSIG_XENO_TURF_CLICK_CTRL from turf AltClickOn(): (/mob)
+ COMSIG_XENO_MONKEY_CLICK_CTRL from monkey CtrlClickOn(): (/mob)
+ COMSIG_TRIGGERED_ALARM Alarm manager signals
+ COMSIG_OBJECTIVE_TARGET_FOUND from datum/objective/proc/find_target(list/target_blacklist)
+ COMSIG_OBJECTIVE_CHECK_VALID_TARGET from datum/objective/is_invalid_target()
+ COMSIG_MOD_MODULE_SELECTED Called when a module is selected to be the active one from on_select(obj/item/mod/module/module)
+ COMSIG_MOD_DEPLOYED Called when a MOD deploys one or more of its parts.
+ COMSIG_MOD_RETRACTED Called when a MOD retracts one or more of its parts.
+ COMSIG_MOD_TOGGLED Called when a MOD is finished toggling itself.
+ COMSIG_MOD_ACTIVATE Called when a MOD activation is called from toggle_activate(mob/user)
+ MOD_CANCEL_ACTIVATE Cancels the suit's activation
+ COMSIG_MOD_MODULE_REMOVED Called when a MOD finishes having a module removed from it.
+ COMSIG_MOD_MODULE_ADDED Called when a MOD finishes having a module added to it.
+ COMSIG_MOD_MODULE_REMOVAL Called when a MOD is having modules removed from crowbar_act(mob/user, obj/crowbar)
+ MOD_CANCEL_REMOVAL Cancels the removal of modules
+ COMSIG_MODULE_TRIGGERED Called when a module attempts to activate, however it does. At the end of checks so you can add some yourself, or work on trigger behavior (mob/user)
+ MOD_ABORT_USE Cancels activation, with no message. Include feedback on your cancel.
+ COMSIG_MODULE_ACTIVATED Called when a module activates, after all checks have passed and cooldown started.
+ COMSIG_MODULE_DEACTIVATED Called when a module deactivates, after all checks have passed.
+ COMSIG_MODULE_USED Called when a module is used, after all checks have passed and cooldown started.
+ COMSIG_MOD_WEARER_SET Called when the MODsuit wearer is set.
+ COMSIG_MOD_WEARER_UNSET Called when the MODsuit wearer is unset.
+ COMSIG_TICKER_ROUND_STARTING Called when the round has started, but before GAME_STATE_PLAYING.
+ COMSIG_CURSED_SLOT_MACHINE_USE from /obj/structure/cursed_slot_machine/handle_status_effect() when someone pulls the handle on the slot machine
+ SLOT_MACHINE_USE_CANCEL we've used up the number of times we may use this slot machine. womp womp.
+ SLOT_MACHINE_USE_POSTPONE we haven't used up all our attempts to gamble away our life but we should chill for a few seconds
+ COMSIG_CURSED_SLOT_MACHINE_LOST from /obj/structure/cursed_slot_machine/determine_victor() when someone loses.
+ COMSIG_GLOB_CURSED_SLOT_MACHINE_WON from /obj/structure/cursed_slot_machine/determine_victor() when someone finally wins.
+ COMSIG_DO_MOB_STRIP from of mob/MouseDrop(): (/atom/over, /mob/user)
+ COMSIG_ADMIN_DECONTAMINATE Used by admin-tooling to remove radiation
+ COMSIG_SHADE_TO_CONSTRUCT_TRANSFER Sent when bodies transfer between shades/shards and constructs
Define Details
+COMPONENT_BLOCK_DEFIB
+
+
+
+ If returned from LIVING_BEFORE_DEFIB or LIVING_DEFIBBED, the defibrillation will fail
COMPONENT_BLOCK_DEFIB_DEAD
+
+
+
+ Defib is out of power.
COMPONENT_BLOCK_DEFIB_MISC
+
+
+
+ Something else: we won't have a custom message for this and should let the defib handle it.
COMPONENT_BLOCK_EMOTE_SILENT
+
+
+
+ Return this to block an emote silently.
COMPONENT_BLOCK_EMOTE_UNUSABLE
+
+
+
+ Return this to block an emote and let the user know the emote is unusable.
COMPONENT_BLOCK_SWAP
+
+
+
+ Prevent the mob from changing hands
COMPONENT_BLOCK_UNTILT
+
+
+
+ Return this to block an untilt attempt
COMPONENT_CANCEL_ALTCLICK
+
+
+
+ Cancel the alt-click, since this isn't properly part of the attack chain
COMPONENT_CANCEL_ATTACK_CHAIN
+
+
+
+ This response cancels the attack chain entirely. If sent early, it might cause some later effects to be skipped.
COMPONENT_DEFIB_FAKEDEATH_ACCEPTED
+
+
+
+ If returned, allow to revive through false death.
COMPONENT_DEFIB_FAKEDEATH_DENIED
+
+
+
+ If returned, make the fake death look like a unresponsive ghost.
COMPONENT_DEFIB_OVERRIDE
+
+
+
+ If returned, don't even show the "failed" message, defer to the signal handler to do that.
COMPONENT_ITEM_BLOCK_UNEQUIP
+
+
+
+ only the pre unequip can be cancelled
COMPONENT_NO_AFTERATTACK
+
+
+
+ Return this in response if you don't want afterattack to be called
COMPONENT_PROGRAM_INSTALLED
+
+
+
+ Installation successful
COMPONENT_PROGRAM_NOT_INSTALLED
+
+
+
+ Installation failed, but there are still nanites
COMSIG_ACTION_GRANTED
+
+
+
+ From /datum/action/Grant(): (mob/grant_to)
COMSIG_ACTION_REMOVED
+
+
+
+ From /datum/action/Remove(): (mob/removed_from)
+ From base of /atom/movable/screen/movable/action_button/MouseWheel(src, delta_x, delta_y, location, control, params)
COMSIG_ACTION_TRIGGER
+
+
+
+ from base of datum/action/proc/Trigger(): (datum/action)
COMSIG_ADD_MOOD_EVENT
+
+
+
+ called when you send a mood event from anywhere in the code.
COMSIG_ADD_MOOD_EVENT_RND
+
+
+
+ Mood event that only RnD members listen for
COMSIG_ADMIN_DECONTAMINATE
+
+
+
+ Used by admin-tooling to remove radiation
COMSIG_AREA_ENTERED
+
+
+
+ from base of area/Entered(): (atom/movable/M)
COMSIG_AREA_EXITED
+
+
+
+ from base of area/Exited(): (atom/movable/M)
COMSIG_ASSEMBLY_PULSED
+
+
+
+ Called by /obj/item/assembly/signaler(called_from_radio)
COMSIG_ATOM_ACID_ACT
+
+
+
+ from base of atom/acid_act(): (acidpwr, acid_volume)
COMSIG_ATOM_ANALYSER_ACT
+
+
+
+ from base of atom/analyser_act(): (mob/living/user, obj/item/I)
COMSIG_ATOM_ATTACK_ANIMAL
+
+
+
+ from base of atom/animal_attack(): (/mob/user)
COMSIG_ATOM_ATTACK_GHOST
+
+
+
+ from base of atom/attack_ghost(): (mob/dead/observer/ghost)
COMSIG_ATOM_ATTACK_HAND
+
+
+
+ from base of atom/attack_hand(): (mob/user)
COMSIG_ATOM_ATTACK_PAW
+
+
+
+ from base of atom/attack_paw(): (mob/user)
COMSIG_ATOM_BLOB_ACT
+
+
+
+ from base of atom/blob_act(): (/obj/structure/blob)
COMSIG_ATOM_BSA_BEAM
+
+
+
+ from obj/machinery/bsa/full/proc/fire(): ()
COMSIG_ATOM_BULLET_ACT
+
+
+
+ from base of atom/bullet_act(): (/obj/projectile, def_zone)
COMSIG_ATOM_BUMPED
+
+
+
+ from base of atom/Bumped(): (/atom/movable)
COMSIG_ATOM_CONTENTS_DEL
+
+
+
+ from base of atom/handle_atom_del(): (atom/deleted)
COMSIG_ATOM_CREATED
+
+
+
+ from base of atom/proc/Initialize(): sent any time a new atom is created
COMSIG_ATOM_CROWBAR_ACT
+
+
+
+ from base of atom/crowbar_act(): (mob/living/user, obj/item/I)
COMSIG_ATOM_DIR_CHANGE
+
+
+
+ from base of atom/setDir(): (old_dir, new_dir)
COMSIG_ATOM_EMAG_ACT
+
+
+
+ from base of atom/emag_act(): (/mob/user)
COMSIG_ATOM_EMP_ACT
+
+
+
+ from base of atom/emp_act(): (severity)
COMSIG_ATOM_ENTERED
+
+
+
+ from base of atom/Entered(): (atom/movable/entering, /atom)
COMSIG_ATOM_EXIT
+
+
+
+ from base of atom/Exit(): (/atom/movable/exiting, /atom/newloc)
COMSIG_ATOM_EXITED
+
+
+
+ from base of atom/Exited(): (atom/movable/exiting, atom/newloc)
COMSIG_ATOM_EXPOSE_REAGENTS
+
+
+
+ from base of atom/expose_reagents(): (/list, /datum/reagents, chemholder, volume_modifier)
COMSIG_ATOM_EX_ACT
+
+
+
+ from base of atom/ex_act(): (severity, target)
COMSIG_ATOM_FIRE_ACT
+
+
+
+ from base of atom/fire_act(): (exposed_temperature, exposed_volume)
COMSIG_ATOM_GET_EXAMINE_NAME
+
+
+
+ from base of atom/get_examine_name(): (/mob, list/overrides)
COMSIG_ATOM_HAS_GRAVITY
+
+
+
+ from base of atom/has_gravity(): (turf/location, list/forced_gravities)
COMSIG_ATOM_HEARER_IN_VIEW
+
+
+
+ called when an atom is added to the hearers on get_hearers_in_view(): (list/processing_list, list/hearers)
COMSIG_ATOM_HITBY
+
+
+
+ from base of atom/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
COMSIG_ATOM_HULK_ATTACK
+
+
+
+ from base of atom/attack_hulk(): (/mob/living/carbon/human)
COMSIG_ATOM_INITIALIZED_ON
+
+
+
+ Called from atom/Initialize() of target: (atom/target)
COMSIG_ATOM_INTERCEPT_TELEPORT
+
+
+
+ called when teleporting into a protected turf: (channel, turf/origin)
COMSIG_ATOM_INTERCEPT_Z_FALL
+
+
+
+ called for each movable in a turf contents on /turf/zImpact(): (atom/movable/A, levels)
+ from base of atom/multitool_act(): (mob/living/user, obj/item/I)
COMSIG_ATOM_NARSIE_ACT
+
+
+
+ from base of atom/narsie_act(): ()
COMSIG_ATOM_NO_UPDATE_DESC
+
+
+
+ If returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its desc.
COMSIG_ATOM_NO_UPDATE_ICON
+
+
+
+ If returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its icon.
COMSIG_ATOM_NO_UPDATE_ICON_STATE
+
+
+
+ If returned from COMSIG_ATOM_UPDATE_ICON it prevents the atom from updating its icon state.
COMSIG_ATOM_NO_UPDATE_NAME
+
+
+
+ If returned from COMSIG_ATOM_UPDATE_APPEARANCE it prevents the atom from updating its name.
COMSIG_ATOM_NO_UPDATE_OVERLAYS
+
+
+
+ If returned from COMSIG_ATOM_UPDATE_ICON it prevents the atom from updating its overlays.
COMSIG_ATOM_ORBITER_STOP
+
+
+
+ called on an atom who has stopped orbiting another atom (atom/orbiter, atom/formerly_orbited)
COMSIG_ATOM_ORBIT_BEGIN
+
+
+
+ called when an atom starts orbiting another atom: (atom)
COMSIG_ATOM_ORBIT_STOP
+
+
+
+ called when an atom stops orbiting another atom: (atom)
COMSIG_ATOM_PREHIT
+
+
+
+ from base of atom/atom_prehit(obj/item/projectile/P):
COMSIG_ATOM_RAD_ACT
+
+
+
+ from base of atom/rad_act(intensity)
COMSIG_ATOM_RAD_CONTAMINATING
+
+
+
+ from base of datum/radiation_wave/radiate(): (strength)
COMSIG_ATOM_RAD_PROBE
+
+
+
+ from proc/get_rad_contents(): ()
COMSIG_ATOM_RAD_WAVE_PASSING
+
+
+
+ from base of datum/radiation_wave/check_obstructions(): (datum/radiation_wave, width)
COMSIG_ATOM_RCD_ACT
+
+
+
+ from base of atom/rcd_act(): (/mob, /obj/item/construction/rcd, passed_mode)
COMSIG_ATOM_SCREWDRIVER_ACT
+
+
+
+ from base of atom/screwdriver_act(): (mob/living/user, obj/item/I)
COMSIG_ATOM_SET_LIGHT
+
+
+
+ from base of atom/set_light(): (l_range, l_power, l_color)
COMSIG_ATOM_SING_PULL
+
+
+
+ from base of atom/singularity_pull(): (S, current_size)
COMSIG_ATOM_START_PULL
+
+
+
+ called on a movable (NOT living) when someone starts pulling it (atom/movable/puller, state, force)
COMSIG_ATOM_UPDATED_ICON
+
+
+
+ from base of /atom/update_icon : (signalOut, did_anything)
COMSIG_ATOM_UPDATE_APPEARANCE
+
+
+
+ from base of /atom/proc/update_appearance : (updates)
COMSIG_ATOM_UPDATE_DESC
+
+
+
+ from base of /atom/proc/update_desc : (updates)
COMSIG_ATOM_UPDATE_ICON
+
+
+
+ from base of /atom/update_icon : ()
COMSIG_ATOM_UPDATE_ICON_STATE
+
+
+
+ Sent after atom/update_icon_state is called by /atom/update_icon : ()
COMSIG_ATOM_UPDATE_NAME
+
+
+
+ from base of /atom/proc/update_name : (updates)
COMSIG_ATOM_UPDATE_OVERLAYS
+
+
+
+ Sent after atom/update_overlays is called by /atom/update_icon : (list/new_overlays)
COMSIG_ATOM_UPDATE_SHARPNESS
+
+
+
+ Called when an atom is sharpened or dulled.
COMSIG_ATOM_WELDER_ACT
+
+
+
+ from base of atom/welder_act(): (mob/living/user, obj/item/I)
COMSIG_ATOM_WIRECUTTER_ACT
+
+
+
+ from base of atom/wirecutter_act(): (mob/living/user, obj/item/I)
COMSIG_ATOM_WRENCH_ACT
+
+
+
+ from base of atom/wrench_act(): (mob/living/user, obj/item/I)
COMSIG_AUTOFIRE_ONMOUSEDOWN
+
+
+
+ called in /datum/component/automatic_fire/proc/on_mouse_down: (client/clicker, atom/target, turf/location, control, params)
COMSIG_AUTOFIRE_SHOT
+
+
+
+ called in /datum/component/automatic_fire/proc/process_shot(): (atom/target, mob/living/shooter, allow_akimbo, params)
COMSIG_BODY_TRANSFER_TO
+
+
+
+ called on the mob instead of the mind
COMSIG_BORG_SAFE_DECONSTRUCT
+
+
+
+ sent from borg mobs to itself, for tools to catch an upcoming destroy() due to safe decon (rather than detonation)
COMSIG_CARBON_EMBED_REMOVAL
+
+
+
+ called when removing a given item from a mob, from mob/living/carbon/remove_embedded_object(mob/living/carbon/target, /obj/item)
COMSIG_CARBON_EMBED_RIP
+
+
+
+ defined twice, in carbon and human's topics, fired when interacting with a valid embedded_object to pull it out (mob/living/carbon/target, /obj/item, /obj/item/bodypart/L)
COMSIG_CARBON_ENTER_STAMINACRIT
+
+
+
+ From /mob/living/carbon/enter_stamcrit()
COMSIG_CARBON_EQUIP_HAT
+
+
+
+ from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent)
COMSIG_CARBON_EXIT_STAMINACRIT
+
+
+
+ From /mob/living/carbon/update_stamina()
COMSIG_CARBON_FLASH_EYES
+
+
+
+ From /mob/living/carbon/flash_eyes()
COMSIG_CARBON_GAIN_ORGAN
+
+
+
+ from /item/organ/proc/Insert() (/obj/item/organ/)
COMSIG_CARBON_LOSE_ORGAN
+
+
+
+ from /item/organ/proc/Remove() (/obj/item/organ/)
COMSIG_CARBON_REGENERATE_ICONS
+
+
+
+ From /mob/living/carbon/regenerate_icons()
COMSIG_CARBON_SOUNDBANG
+
+
+
+ from base of mob/living/carbon/soundbang_act(): (list(intensity))
COMSIG_CARBON_STAMINA_REGENERATED
+
+
+
+ From /mob/living/carbon/handle_status_effects()
COMSIG_CARBON_SWAP_HANDS
+
+
+
+ From /mob/living/carbon/swap_hand(): Called when the user swaps their active hand
COMSIG_CARBON_THROWN_ITEM_CAUGHT
+
+
+
+ From /mob/living/carbon/human/hitby()
COMSIG_CARBON_TOGGLE_THROW
+
+
+
+ From /mob/living/carbon/toggle_throw_mode()
COMSIG_CARBON_UNEQUIP_HAT
+
+
+
+ from /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop, silent)
COMSIG_CARBON_UPDATE_HANDCUFFED
+
+
+
+ From /mob/living/carbon/update_handcuffed()
COMSIG_CLEAR_MOOD_EVENT
+
+
+
+ called when you clear a mood event from anywhere in the code.
COMSIG_CLICK
+
+
+
+ from base of atom/Click(): (location, control, params, mob/user)
COMSIG_CLICK_ALT
+
+
+
+ from base of atom/AltClick(): (/mob)
COMSIG_CLICK_CTRL
+
+
+
+ from base of atom/CtrlClickOn(): (/mob)
COMSIG_CLICK_CTRL_SHIFT
+
+
+
+ from base of atom/CtrlShiftClick(/mob)
COMSIG_CLICK_SHIFT
+
+
+
+ from base of atom/ShiftClick(): (/mob)
COMSIG_CLIENT_CLICK
+
+
+
+ from base of client/Click(): (atom/target, atom/location, control, params, mob/user)
COMSIG_CLIENT_MOUSEDOWN
+
+
+
+ from base of client/MouseDown(): (/client, object, location, control, params)
COMSIG_CLIENT_MOUSEDRAG
+
+
+
+ from base of client/MouseUp(): (/client, object, location, control, params)
COMSIG_CLIENT_MOUSEUP
+
+
+
+ from base of client/MouseUp(): (/client, object, location, control, params)
COMSIG_COMPONENT_ADDED
+
+
+
+ when a component is added to a datum: (/datum/component)
COMSIG_COMPONENT_CLEAN_ACT
+
+
+
+ called on an object to clean it of cleanables. Usualy with soap: (num/strength)
COMSIG_COMPONENT_CLEAN_FACE_ACT
+
+
+
+ called when you wash your face at a sink: (num/strength)
COMSIG_COMPONENT_NTNET_RECEIVE
+
+
+
+ called on an object by its NTNET connection component on receive. (sending_id(number), sending_netname(text), data(datum/netdata))
COMSIG_COMPONENT_REMOVING
+
+
+
+ before a component is removed from a datum because of RemoveComponent: (/datum/component)
COMSIG_CONTAINS_STORAGE
+
+
+
+ () - returns bool.
COMSIG_CROSSED_MOVABLE
+
+
+
+ when we cross over something (calling Crossed() on that atom)
COMSIG_CURSED_SLOT_MACHINE_LOST
+
+
+
+ from /obj/structure/cursed_slot_machine/determine_victor() when someone loses.
COMSIG_CURSED_SLOT_MACHINE_USE
+
+
+
+ from /obj/structure/cursed_slot_machine/handle_status_effect() when someone pulls the handle on the slot machine
COMSIG_DEFIB_PADDLES_APPLIED
+
+
+
+ Defib-specific signals
+Called when a defibrillator is first applied to someone. (mob/living/user, mob/living/target, harmful)
COMSIG_DEFIB_READY
+
+
+
+ Called when a defib's cooldown has run its course and it is once again ready. ()
COMSIG_DEFIB_SHOCK_APPLIED
+
+
+
+ Called when a defib has been successfully used, and a shock has been applied. (mob/living/user, mob/living/target, harmful, successful)
COMSIG_DO_MOB_STRIP
+
+
+
+ from of mob/MouseDrop(): (/atom/over, /mob/user)
COMSIG_ELEMENT_ATTACH
+
+
+
+ fires on the target datum when an element is attached to it (/datum/element)
COMSIG_ELEMENT_DETACH
+
+
+
+ fires on the target datum when an element is attached to it (/datum/element)
COMSIG_EMBED_TRY_FORCE
+
+
+
+ sent when trying to force an embed (mainly for projectiles, only used in the embed element)
COMSIG_ENTER_AREA
+
+
+
+ from base of area/Entered(): (/area)
COMSIG_EXIT_AREA
+
+
+
+ from base of area/Exited(): (/area)
COMSIG_FOOD_EATEN
+
+
+
+ from base of obj/item/food/snacks/attack(): (mob/living/eater, mob/feeder)
COMSIG_GHOST_START_OBSERVING
+
+
+
+ from observer_base/do_observe(): (mob/now_followed)
COMSIG_GHOST_STOP_OBSERVING
+
+
+
+ from observer_base/do_observe(): (mob/no_longer_following)
COMSIG_GIBS_STREAK
+
+
+
+ from base of /obj/effect/decal/cleanable/blood/gibs/streak(): (list/directions, list/diseases)
+ ingame button pressed (/obj/machinery/button/button)
COMSIG_GLOB_CABLE_UPDATED
+
+
+
+ cable was placed or joined somewhere : (turf)
COMSIG_GLOB_CURSED_SLOT_MACHINE_WON
+
+
+
+ from /obj/structure/cursed_slot_machine/determine_victor() when someone finally wins.
COMSIG_GLOB_EXPLOSION
+
+
+
+ called after an explosion happened : (epicenter, devastation_range, heavy_impact_range, light_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range)
COMSIG_GLOB_JOB_AFTER_SPAWN
+
+
+
+ job subsystem has spawned and equipped a new mob
COMSIG_GLOB_LIVING_SAY_SPECIAL
+
+
+
+ global living say plug - use sparingly: (mob/speaker , message)
COMSIG_GLOB_MOB_CREATED
+
+
+
+ mob was created somewhere : (mob)
COMSIG_GLOB_MOB_DEATH
+
+
+
+ mob died somewhere : (mob , gibbed)
COMSIG_GLOB_NEW_Z
+
+
+
+ from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args)
COMSIG_GLOB_PLAY_CINEMATIC
+
+
+
+ called by datum/cinematic/play() : (datum/cinematic/new_cinematic)
COMSIG_GLOB_VAR_EDIT
+
+
+
+ called after a successful var edit somewhere in the world: (list/args)
COMSIG_GRENADE_ARMED
+
+
+
+ called in /obj/item/gun/process_fire (user, target, params, zone_override)
COMSIG_GRENADE_PRIME
+
+
+
+ called in /obj/item/gun/process_fire (user, target, params, zone_override)
COMSIG_GUN_FIRED
+
+
+
+ called in /obj/item/gun/process_fire (user, target)
COMSIG_GUN_TRY_FIRE
+
+
+
+ called in /obj/item/gun/fire_gun (user, target, flag, params)
COMSIG_HAS_NANITES
+
+
+
+ () returns TRUE if nanites are found
COMSIG_HUMAN_ATTACKED
+
+
+
+ From mob/living/carbon/human/attackedby(): (mob/living/carbon/human/attacker). Also found on species/disarm and species/harm
COMSIG_HUMAN_CHANGE_BODY_ACCESSORY
+
+
+
+ From mob/living/carbon/human/change_body_accessory(): (mob/living/carbon/human/H, body_accessory_style)
COMSIG_HUMAN_CHANGE_HEAD_ACCESSORY
+
+
+
+ From mob/living/carbon/human/change_head_accessory(): (mob/living/carbon/human/H, head_accessory_style)
COMSIG_HUMAN_CHECK_SHIELDS
+
+
+
+ from /mob/living/carbon/human/proc/check_shields(): (atom/hit_by, damage, attack_text, attack_type, armour_penetration, damage_type)
COMSIG_HUMAN_CREATE_MOB_HUD
+
+
+
+ from /mob/living/carbon/human/create_mob_hud()
COMSIG_HUMAN_DISARM_HIT
+
+
+
+ Hit by successful disarm attack (mob/living/carbon/human/attacker,zone_targeted)
COMSIG_HUMAN_EARLY_UNARMED_ATTACK
+
+
+
+ from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity)
COMSIG_HUMAN_LOGIN
+
+
+
+ called in human/login
COMSIG_HUMAN_MELEE_UNARMED_ATTACK
+
+
+
+ from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity)
COMSIG_HUMAN_MELEE_UNARMED_ATTACKBY
+
+
+
+ from mob/living/carbon/human/UnarmedAttack(): (mob/living/carbon/human/attacker)
COMSIG_HUMAN_RECEIVE_CPR
+
+
+
+ Sent from mob/living/carbon/human/do_cpr(): (mob/living/carbon/human/H, new_seconds_of_life)
COMSIG_HUMAN_SUICIDE_ACT
+
+
+
+ From mob/living/carbon/human/do_suicide()
COMSIG_IMPLANT_ACTIVATED
+
+
+
+ from base of /obj/item/bio_chip/proc/activate(): ()
COMSIG_IMPLANT_EXISTING_UPLINK
+
+
+
+ called on implants being implanted into someone with an uplink implant: (datum/component/uplink)
COMSIG_IMPLANT_IMPLANTED
+
+
+
+ called on implants, after a successful implantation: (mob/living/target, mob/user, silent, force)
COMSIG_IMPLANT_IMPLANTING
+
+
+
+ from base of /obj/item/bio_chip/proc/implant(): (list/args)
COMSIG_IMPLANT_OTHER
+
+
+
+ called on already installed implants when a new one is being added in /obj/item/bio_chip/proc/implant(): (list/args, obj/item/bio_chip/new_implant)
COMSIG_IMPLANT_REMOVED
+
+
+
+ called on implants, after an implant has been removed: (mob/living/source, silent, special)
COMSIG_IS_STORAGE_LOCKED
+
+
+
+ () - returns bool. MUST CHECK IF STORAGE IS THERE FIRST!
COMSIG_ITEM_AFTERATTACK
+
+
+
+ from base of obj/item/afterattack(): (atom/target, mob/user, params)
COMSIG_ITEM_ATTACK
+
+
+
+ from base of obj/item/attack(): (/mob/living/target, /mob/living/user)
COMSIG_ITEM_ATTACK_OBJ
+
+
+
+ from base of obj/item/attack_obj(): (/obj, /mob)
COMSIG_ITEM_ATTACK_QDELETED
+
+
+
+ from base of obj/item/attack_qdeleted(): (atom/target, mob/user, params)
COMSIG_ITEM_ATTACK_SELF
+
+
+
+ from base of obj/item/attack_self(): (/mob)
COMSIG_ITEM_ATTACK_ZONE
+
+
+
+ from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone)
COMSIG_ITEM_BEING_ATTACKED
+
+
+
+ from base of obj/item/pre_attack(): (atom/target, mob/user, params)
COMSIG_ITEM_DISABLE_EMBED
+
+
+
+ from [/obj/item/proc/disableEmbedding]:
COMSIG_ITEM_DROPPED
+
+
+
+ from base of obj/item/dropped(): (mob/user)
COMSIG_ITEM_GET_WORN_OVERLAYS
+
+
+
+ Called by /obj/item/proc/worn_overlays(list/overlays, mutable_appearance/standing, isinhands, icon_file)
COMSIG_ITEM_HIT_REACT
+
+
+
+ from base of obj/item/hit_reaction(): (list/args)
COMSIG_ITEM_IMBUE_SOUL
+
+
+
+ return a truthy value to prevent ensouling, checked in /datum/spell/lichdom/cast(): (mob/user)
COMSIG_ITEM_MARK_RETRIEVAL
+
+
+
+ called before marking an object for retrieval, checked in /datum/spell/summonitem/cast() : (mob/user)
COMSIG_ITEM_MICROWAVE_ACT
+
+
+
+ called on item when microwaved (): (obj/machinery/microwave/M)
COMSIG_ITEM_PICKUP
+
+
+
+ from base of obj/item/pickup(): (/mob/taker)
COMSIG_ITEM_PRE_ATTACK
+
+
+
+ from base of obj/item/pre_attack(): (atom/target, mob/user, params)
COMSIG_ITEM_PRE_UNEQUIP
+
+
+
+ from base of obj/item/equipped(): (/mob/equipper, slot)
+called on /obj/item before unequip from base of [mob/proc/doUnEquip]: (force, atom/newloc, no_move, invdrop, silent)
COMSIG_ITEM_SHARPEN_ACT
+
+
+
+ from base of item/sharpener/attackby(): (amount, max)
COMSIG_ITEM_SOLD
+
+
+
+ called when an item is sold by the exports subsystem
COMSIG_ITEM_SPLIT_PROFIT
+
+
+
+ called when getting the item's exact ratio for cargo's profit.
COMSIG_ITEM_SPLIT_PROFIT_DRY
+
+
+
+ called when getting the item's exact ratio for cargo's profit, without selling the item.
COMSIG_ITEM_SPLIT_VALUE
+
+
+
+ called when a wrapped up item is opened by hand
COMSIG_ITEM_WEARERCROSSED
+
+
+
+ called on item when crossed by something (): (/atom/movable, mob/living/crossed)
COMSIG_JOB_RECEIVED
+
+
+
+ Whenever EquipRanked is called, called after job is set
COMSIG_LIVING_ATTACH_LIMB
+
+
+
+ from base of /obj/item/bodypart/proc/attach_limb(): (new_limb, special) allows you to fail limb attachment
COMSIG_LIVING_CAN_TRACK
+
+
+
+ from base of /mob/living/can_track(): (mob/user)
COMSIG_LIVING_DEFIBBED
+
+
+
+ send from defibs on ressurection: (defibber, defib_item, ghost)
COMSIG_LIVING_ELECTROCUTE_ACT
+
+
+
+ from base of mob/living/electrocute_act(): (shock_damage, source, siemens_coeff, flags)
COMSIG_LIVING_EXTINGUISHED
+
+
+
+ from base of mob/living/ExtinguishMob() (/mob/living)
COMSIG_LIVING_FIRE_TICK
+
+
+
+ sent from living mobs every tick of fire
COMSIG_LIVING_IGNITED
+
+
+
+ from base of mob/living/IgniteMob() (/mob/living)
COMSIG_LIVING_MINOR_SHOCK
+
+
+
+ sent by stuff like stunbatons and tasers: ()
COMSIG_LIVING_MOB_BUMP
+
+
+
+ From base of mob/living/MobBump() (mob/living)
COMSIG_LIVING_PRE_DEFIB
+
+
+
+ Sent from defibrillators when everything seems good and the user will be shocked: (defibber, defib_item, ghost)
COMSIG_LIVING_REGENERATE_LIMBS
+
+
+
+ from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs)
COMSIG_LIVING_RESIST
+
+
+
+ from base of mob/living/resist() (/mob/living)
COMSIG_LIVING_REVIVE
+
+
+
+ from base of mob/living/revive() (full_heal, admin_revive)
COMSIG_LIVING_SHOCK_PREVENTED
+
+
+
+ sent when items with siemen coeff. of 0 block a shock: (power_source, source, siemens_coeff, dist_check)
COMSIG_LIVING_START_PULL
+
+
+
+ called on /living when someone starts pulling it (atom/movable/puller, state, force)
COMSIG_LIVING_STATUS_IMMOBILIZE
+
+
+
+ from base of mob/living/Immobilize() (amount, ignore_canstun)
COMSIG_LIVING_STATUS_PARALYSE
+
+
+
+ from base of mob/living/Knockdown() (amount, ignore_canstun)
+#define COMSIG_LIVING_STATUS_KNOCKDOWN "living_knockdown" // one day
+from base of mob/living/Paralyse() (amount, ignore_canstun)
COMSIG_LIVING_STATUS_SLEEP
+
+
+
+ from base of mob/living/Sleeping() (amount, ignore_canstun)
COMSIG_LIVING_STATUS_STUN
+
+
+
+ from base of mob/living/Stun() (amount, ignore_canstun)
COMSIG_LIVING_STATUS_UNCONSCIOUS
+
+
+
+ from base of mob/living/Unconscious() (amount, ignore_canstun)
COMSIG_LIVING_STATUS_WEAKEN
+
+
+
+ from base of mob/living/Stun() (amount, ignore_canstun)
COMSIG_LIVING_WRITE_MEMORY
+
+
+
+ from base of mob/living/Write_Memory()
COMSIG_MACHINERY_BROKEN
+
+
+
+ from /obj/machinery/obj_break(damage_flag): (damage_flag)
COMSIG_MACHINERY_POWER_LOST
+
+
+
+ from base power_change() when power is lost
COMSIG_MACHINERY_POWER_RESTORED
+
+
+
+ from base power_change() when power is restored
COMSIG_MECHA_ACTION_ACTIVATE
+
+
+
+ sent from mecha action buttons to the mecha they're linked to
COMSIG_MIND_INITIALIZE
+
+
+
+ called when the mind is initialized (called every time the mob logins)
COMSIG_MIND_TRANSER_TO
+
+
+
+ from base of /datum/mind/proc/transfer_to(mob/living/new_character)
COMSIG_MINE_TRIGGERED
+
+
+
+ from [/obj/effect/mine/proc/triggermine]:
COMSIG_MOB_ALLOWED
+
+
+
+ from base of obj/allowed(mob/M): (/obj) returns bool, if TRUE the mob has id access to the obj
COMSIG_MOB_ALTCLICKON
+
+
+
+ from base of mob/AltClickOn(): (atom/A)
COMSIG_MOB_APPLY_DAMAGE
+
+
+
+ from base of /mob/living/proc/apply_damage(): (damage, damagetype, def_zone)
COMSIG_MOB_ATTACK_HAND
+
+
+
+ from base of atom/attack_hand(): (mob/user)
COMSIG_MOB_ATTACK_RANGED
+
+
+
+ from base of mob/RangedAttack(): (atom/A, params)
COMSIG_MOB_CLICKON
+
+
+
+ from base of mob/clickon(): (atom/A, params)
COMSIG_MOB_CLIENT_LOGIN
+
+
+
+ sent when a mob/login() finishes: (client)
COMSIG_MOB_DEADSAY
+
+
+
+ from /mob/say_dead(): (mob/speaker, message)
COMSIG_MOB_DEATH
+
+
+
+ from base of mob/death(): (gibbed)
COMSIG_MOB_EMOTE
+
+
+
+ General signal fired when a mob does any old emote
+from /datum/emote/proc/run_emote(): (key, intentional)
COMSIG_MOB_EMOTED
+
+
+
+
+ Specific signal used to track when a specific emote is used.
+From /datum/emote/run_emote(): (P, key, m_type, message, intentional)
COMSIG_MOB_EMOTE_AT
+
+
+
+ From /datum/emote/select_param(): (target, key, intentional)
COMSIG_MOB_EXAMINATE
+
+
+
+ from base of /mob/verb/examinate(): (atom/target)
COMSIG_MOB_GRANTED_ACTION
+
+
+
+ From /datum/action/Grant(): (datum/action)
COMSIG_MOB_HUD_CREATED
+
+
+
+ from base of mob/create_mob_hud(): ()
COMSIG_MOB_ITEM_AFTERATTACK
+
+
+
+ from base of obj/item/afterattack(): (atom/target, mob/user, proximity_flag, click_parameters)
COMSIG_MOB_ITEM_ATTACK
+
+
+
+ from base of /obj/item/attack(): (mob/M, mob/user)
COMSIG_MOB_ITEM_ATTACK_QDELETED
+
+
+
+ from base of obj/item/attack_qdeleted(): (atom/target, mob/user, proxiumity_flag, click_parameters)
COMSIG_MOB_LOGIN
+
+
+
+ from base of /mob/Login(): ()
COMSIG_MOB_LOGOUT
+
+
+
+ from base of /mob/Logout(): ()
COMSIG_MOB_MIDDLECLICKON
+
+
+
+ from base of mob/MiddleClickOn(): (atom/A)
COMSIG_MOB_PREEMOTE
+
+
+
+ Signal fired when an emote is used but before it's executed.
+from /datum/emote/proc/try_run_emote(): (key, intentional)
COMSIG_MOB_RECEIVE_MAGIC
+
+
+
+ from base of mob/anti_magic_check(): (mob/user, magic, holy, tinfoil, chargecost, self, protection_sources)
COMSIG_MOB_REMOVED_ACTION
+
+
+
+ From /datum/action/Remove(): (datum/action)
COMSIG_MOB_SAY
+
+
+
+ from /mob/living/say(): ()
COMSIG_MOB_STATCHANGE
+
+
+
+ from base of mob/set_stat(): (new_stat)
COMSIG_MOB_SWAPPED_HANDS
+
+
+
+ Performed after the hands are swapped.
COMSIG_MOB_SWAPPING_HANDS
+
+
+
+ from base of mob/swap_hand(): (obj/item)
COMSIG_MOB_THROW
+
+
+
+ from base of /mob/throw_item(): (atom/target)
COMSIG_MOB_TRY_FIRE
+
+
+
+ called in /obj/item/gun/afterattack (user, target, flag, params)
COMSIG_MOB_UPDATE_SIGHT
+
+
+
+ from base of /mob/update_sight(): ()
COMSIG_MOB_WEAPON_APPEARS
+
+
+
+ called when a user is getting new weapon and we want to remove previous weapon to clear hands
COMSIG_MOB_WILLINGLY_DROP
+
+
+
+ called when a user willingly drops something (i.e. keybind, or UI action)
COMSIG_MODULE_ACTIVATED
+
+
+
+ Called when a module activates, after all checks have passed and cooldown started.
COMSIG_MODULE_DEACTIVATED
+
+
+
+ Called when a module deactivates, after all checks have passed.
COMSIG_MODULE_TRIGGERED
+
+
+
+ Called when a module attempts to activate, however it does. At the end of checks so you can add some yourself, or work on trigger behavior (mob/user)
COMSIG_MODULE_USED
+
+
+
+ Called when a module is used, after all checks have passed and cooldown started.
COMSIG_MOD_ACTIVATE
+
+
+
+ Called when a MOD activation is called from toggle_activate(mob/user)
COMSIG_MOD_DEPLOYED
+
+
+
+ Called when a MOD deploys one or more of its parts.
COMSIG_MOD_MODULE_ADDED
+
+
+
+ Called when a MOD finishes having a module added to it.
COMSIG_MOD_MODULE_REMOVAL
+
+
+
+ Called when a MOD is having modules removed from crowbar_act(mob/user, obj/crowbar)
COMSIG_MOD_MODULE_REMOVED
+
+
+
+ Called when a MOD finishes having a module removed from it.
COMSIG_MOD_MODULE_SELECTED
+
+
+
+ Called when a module is selected to be the active one from on_select(obj/item/mod/module/module)
COMSIG_MOD_RETRACTED
+
+
+
+ Called when a MOD retracts one or more of its parts.
COMSIG_MOD_TOGGLED
+
+
+
+ Called when a MOD is finished toggling itself.
COMSIG_MOD_WEARER_SET
+
+
+
+ Called when the MODsuit wearer is set.
COMSIG_MOD_WEARER_UNSET
+
+
+
+ Called when the MODsuit wearer is unset.
COMSIG_MOUSEDROPPED_ONTO
+
+
+
+ from base of atom/MouseDrop_T: (/atom/from, /mob/user)
COMSIG_MOUSEDROP_ONTO
+
+
+
+ from base of atom/MouseDrop(): (/atom/over, /mob/user)
COMSIG_MOVABLE_BUCKLE
+
+
+
+ from base of atom/movable/buckle_mob(): (mob, force)
COMSIG_MOVABLE_BUMP
+
+
+
+ from base of atom/movable/Bump(): (/atom)
COMSIG_MOVABLE_CROSS
+
+
+
+ from base of atom/movable/Cross(): (/atom/movable)
COMSIG_MOVABLE_CROSSED
+
+
+
+ from base of atom/movable/Crossed(): (/atom/movable)
COMSIG_MOVABLE_DISPOSING
+
+
+
+ called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source)
COMSIG_MOVABLE_EXIT_DISPOSALS
+
+
+
+ called when the movable is removed from a disposal holder object: /obj/structure/disposalpipe/proc/expel(): (obj/structure/disposalholder/H, turf/T, direction)
COMSIG_MOVABLE_HEAR
+
+
+
+ from base of atom/movable/Hear(): (proc args list(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode))
COMSIG_MOVABLE_IMPACT
+
+
+
+ from base of atom/movable/throw_impact(): (/atom/hit_atom, /datum/thrownthing/throwingdatum)
COMSIG_MOVABLE_IMPACT_ZONE
+
+
+
+ from base of mob/living/hitby(): (mob/living/target, hit_zone)
COMSIG_MOVABLE_MOVED
+
+
+
+ from base of atom/movable/Moved(): (/atom, dir)
COMSIG_MOVABLE_POST_THROW
+
+
+
+ from base of atom/movable/throw_at(): (datum/thrownthing, spin)
COMSIG_MOVABLE_PRE_MOVE
+
+
+
+ from base of atom/movable/Moved(): (/atom)
COMSIG_MOVABLE_PRE_THROW
+
+
+
+ from base of atom/movable/throw_at(): (list/args)
COMSIG_MOVABLE_SECLUDED_LOCATION
+
+
+
+ called when the movable is placed in an unaccessible area, used for stationloving: ()
COMSIG_MOVABLE_THROW_LANDED
+
+
+
+ from base of datum/thrownthing/finalize(): (obj/thrown_object, datum/thrownthing) used for when a throw is finished
COMSIG_MOVABLE_TRY_UNTILT
+
+
+
+ Called just before something gets untilted
COMSIG_MOVABLE_UNBUCKLE
+
+
+
+ from base of atom/movable/unbuckle_mob(): (mob, force)
COMSIG_MOVABLE_UNCROSS
+
+
+
+ from base of atom/movable/Uncross(): (/atom/movable)
COMSIG_MOVABLE_UNCROSSED
+
+
+
+ from base of atom/movable/Uncrossed(): (/atom/movable)
COMSIG_MOVABLE_UNTILTED
+
+
+
+ Called when something gets untilted, from /datum/element/tilted/proc/do_untilt(atom/movable/source, mob/user)
COMSIG_MOVABLE_Z_CHANGED
+
+
+
+ from base of atom/movable/onTransitZ(): (old_z, new_z)
COMSIG_NANITE_ADD_PROGRAM
+
+
+
+ (datum/nanite_program/new_program, datum/nanite_program/source_program) Called when adding a program to a nanite component
COMSIG_NANITE_ADJUST_VOLUME
+
+
+
+ (amount) Adjusts nanite volume by the given amount
COMSIG_NANITE_COMM_SIGNAL
+
+
+
+ (comm_code(1-9999), comm_message) Called when sending a nanite comm signal to a mob.
COMSIG_NANITE_DELETE
+
+
+
+ () deletes the nanite component
COMSIG_NANITE_GET_PROGRAMS
+
+
+
+ (list/nanite_programs) - makes the input list a copy the nanites' program list
COMSIG_NANITE_GET_VOLUME
+
+
+
+ (amount) Returns nanite amount
COMSIG_NANITE_IS_STEALTHY
+
+
+
+ () returns TRUE if nanites have stealth
COMSIG_NANITE_SCAN
+
+
+
+ (mob/user, full_scan) - sends to chat a scan of the nanites to the user, returns TRUE if nanites are detected
COMSIG_NANITE_SET_CLOUD
+
+
+
+ (amount(0-100)) Sets cloud ID to the given amount
COMSIG_NANITE_SET_CLOUD_SYNC
+
+
+
+ (method) Modify cloud sync status. Method can be toggle, enable or disable
COMSIG_NANITE_SET_MAX_VOLUME
+
+
+
+ (amount) Sets maximum nanite volume to the given amount
COMSIG_NANITE_SET_REGEN
+
+
+
+ (amount) Sets regeneration rate to the given amount
COMSIG_NANITE_SET_SAFETY
+
+
+
+ (amount) Sets safety threshold to the given amount
COMSIG_NANITE_SET_VOLUME
+
+
+
+ (amount) Sets current nanite volume to the given amount
COMSIG_NANITE_SIGNAL
+
+
+
+ (code(1-9999)) Called when sending a nanite signal to a mob.
COMSIG_NANITE_SYNC
+
+
+
+ (datum/component/nanites, full_overwrite, copy_activation) Called to sync the target's nanites to a given nanite component
COMSIG_NANITE_UI_DATA
+
+
+
+ (list/data, scan_level) - adds nanite data to the given data list - made for ui_data procs
COMSIG_OBJECTIVE_CHECK_VALID_TARGET
+
+
+
+ from datum/objective/is_invalid_target()
COMSIG_OBJECTIVE_TARGET_FOUND
+
+
+
+ from datum/objective/proc/find_target(list/target_blacklist)
COMSIG_OBJ_DECONSTRUCT
+
+
+
+ from base of obj/deconstruct(): (disassembled)
COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH
+
+
+
+ from base of code/game/machinery
COMSIG_OBJ_HIDE
+
+
+
+ from base of /turf/proc/levelupdate(). (intact) true to hide and false to unhide
COMSIG_OBJ_SETANCHORED
+
+
+
+ called in /obj/structure/setAnchored(): (value)
COMSIG_OBJ_UPDATE_ICON
+
+
+
+ called in /obj/update_icon()
COMSIG_PARENT_ATTACKBY
+
+
+
+ from base of atom/attackby(): (/obj/item, /mob/living, params)
COMSIG_PARENT_EXAMINE
+
+
+
+ from base of atom/examine(): (/mob)
COMSIG_PARENT_PREQDELETED
+
+
+
+ before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation
COMSIG_PARENT_QDELETING
+
+
+
+ just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called
COMSIG_PDA_CHANGE_RINGTONE
+
+
+
+ called on pda when the user changes the ringtone: (mob/living/user, new_ringtone)
COMSIG_PELLET_CLOUD_INIT
+
+
+
+ sent to targets during the process_hit proc of projectiles
COMSIG_PEN_ROTATED
+
+
+
+ called after rotation in /obj/item/pen/attack_self(): (rotation, mob/living/carbon/user)
COMSIG_POWERNET_POWER_CHANGE
+
+
+
+ from base of /datum/local_powernet/proc/power_change()
COMSIG_PROCESS_BORGCHARGER_OCCUPANT
+
+
+
+ sent from borg recharge stations: (amount, repairs)
COMSIG_PROJECTILE_BEFORE_FIRE
+
+
+
+ from base of /obj/projectile/proc/fire(): (obj/projectile, atom/original_target)
COMSIG_PROJECTILE_FIRE
+
+
+
+ from the base of /obj/projectile/proc/fire(): ()
COMSIG_PROJECTILE_ON_HIT
+
+
+
+ from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle)
COMSIG_PROJECTILE_PREHIT
+
+
+
+ sent to targets during the process_hit proc of projectiles
COMSIG_PROJECTILE_RANGE_OUT
+
+
+
+ sent to targets during the process_hit proc of projectiles
COMSIG_PROJECTILE_SELF_ON_HIT
+
+
+
+ from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle)
COMSIG_RADIO_NEW_FREQUENCY
+
+
+
+ called from base of /obj/item/radio/proc/set_frequency(): (list/args)
COMSIG_SECURITY_LEVEL_CHANGED
+
+
+
+ from SSsecurity_level when the security level changes : (previous_level_number, new_level_number)
COMSIG_SECURITY_LEVEL_CHANGE_PLANNED
+
+
+
+ from SSsecurity_level on planning security level change : (previous_level_number, new_level_number)
COMSIG_SHADE_TO_CONSTRUCT_TRANSFER
+
+
+
+ Sent when bodies transfer between shades/shards and constructs
COMSIG_SHOES_STEP_ACTION
+
+
+
+ from [/mob/living/carbon/human/Move]: ()
COMSIG_SONG_END
+
+
+
+ sent to the instrument when a song stops playing
COMSIG_SONG_START
+
+
+
+ sent to the instrument when a song starts playing
COMSIG_SPECIES_GAIN
+
+
+
+ from datum/species/on_species_gain(): (datum/species/new_species, datum/species/old_species)
COMSIG_SPECIES_LOSS
+
+
+
+ from datum/species/on_species_loss(): (datum/species/lost_species)
COMSIG_STRUCTURE_UNWRAPPED
+
+
+
+ called when a wrapped up structure is opened by hand
COMSIG_SUIT_SPACE_TOGGLE
+
+
+
+ from base of /obj/item/clothing/suit/space/proc/toggle_spacesuit(): (obj/item/clothing/suit/space/suit)
COMSIG_SUN_MOVED
+
+
+
+ signals from globally accessible objects
+from SSsun when the sun changes position : (azimuth)
COMSIG_TICKER_ROUND_STARTING
+
+
+
+ Called when the round has started, but before GAME_STATE_PLAYING.
+ from base of [/obj/item/proc/tool_attack_chain]: (atom/tool, mob/user)
+ from base of [/obj/item/proc/tool_check_callback]: (mob/living/user)
+ from base of [/obj/item/proc/tool_start_check]: (mob/living/user)
COMSIG_TOPIC
+
+
+
+ generic topic handler (usr, href_list)
COMSIG_TRIGGERED_ALARM
+
+
+
+ Alarm manager signals
COMSIG_TRY_STORAGE_CAN_INSERT
+
+
+
+ (obj/item/insertion_candidate, mob/user, silent) - returns bool
COMSIG_TRY_STORAGE_FILL_TYPE
+
+
+
+ (type, amount = INFINITY, force = FALSE). Force will ignore max_items, and amount is normally clamped to max_items.
COMSIG_TRY_STORAGE_HIDE_ALL
+
+
+
+ returns bool
COMSIG_TRY_STORAGE_HIDE_FROM
+
+
+
+ (mob/hide_from) - returns bool
COMSIG_TRY_STORAGE_INSERT
+
+
+
+ (obj/item/inserting, mob/user, silent, force) - returns bool
COMSIG_TRY_STORAGE_QUICK_EMPTY
+
+
+
+ (loc) - returns bool - if loc is null it will dump at parent location.
COMSIG_TRY_STORAGE_RETURN_INVENTORY
+
+
+
+ (list/list_to_inject_results_into, recursively_search_inside_storages = TRUE)
COMSIG_TRY_STORAGE_SET_LOCKSTATE
+
+
+
+ (newstate)
COMSIG_TRY_STORAGE_SHOW
+
+
+
+ (mob/show_to, force) - returns bool.
COMSIG_TRY_STORAGE_TAKE
+
+
+
+ (obj, new_loc, force = FALSE) - returns bool
COMSIG_TRY_STORAGE_TAKE_TYPE
+
+
+
+ (type, atom/destination, amount = INFINITY, check_adjacent, force, mob/user, list/inserted) - returns bool - type can be a list of types.
COMSIG_TURF_CHANGE
+
+
+
+ from base of turf/ChangeTurf(): (path, list/new_baseturfs, flags, list/transferring_comps)
COMSIG_TURF_HAS_GRAVITY
+
+
+
+ from base of atom/has_gravity(): (atom/asker, list/forced_gravities)
COMSIG_TURF_IS_WET
+
+
+
+ Component Specific Signals
+(): Returns bitflags of wet values.
COMSIG_TURF_MAKE_DRY
+
+
+
+ (max_strength, immediate, duration_decrease = INFINITY): Returns bool.
COMSIG_TURF_MULTIZ_NEW
+
+
+
+ from base of turf/New(): (turf/source, direction)
COMSIG_TWOHANDED_UNWIELD
+
+
+
+ from base of datum/component/two_handed/proc/unwield(mob/living/carbon/user): (/mob/user)
COMSIG_TWOHANDED_WIELD
+
+
+
+ from base of datum/component/two_handed/proc/wield(mob/living/carbon/user): (/mob/user)
COMSIG_XENO_MONKEY_CLICK_CTRL
+
+
+
+ from monkey CtrlClickOn(): (/mob)
COMSIG_XENO_SLIME_CLICK_ALT
+
+
+
+ from slime AltClickOn(): (/mob)
COMSIG_XENO_SLIME_CLICK_CTRL
+
+
+
+ from slime CtrlClickOn(): (/mob)
COMSIG_XENO_SLIME_CLICK_SHIFT
+
+
+
+ from slime ShiftClickOn(): (/mob)
COMSIG_XENO_TURF_CLICK_CTRL
+
+
+
+ from turf AltClickOn(): (/mob)
COMSIG_XENO_TURF_CLICK_SHIFT
+
+
+
+ from turf ShiftClickOn(): (/mob)
MOD_ABORT_USE
+
+
+
+ Cancels activation, with no message. Include feedback on your cancel.
MOD_CANCEL_ACTIVATE
+
+
+
+ Cancels the suit's activation
MOD_CANCEL_REMOVAL
+
+
+
+ Cancels the removal of modules
SLOT_MACHINE_USE_CANCEL
+
+
+
+ we've used up the number of times we may use this slot machine. womp womp.
SLOT_MACHINE_USE_POSTPONE
+
+
+
+ we haven't used up all our attempts to gamble away our life but we should chill for a few seconds
+
+
+
diff --git a/code/__DEFINES/directions.html b/code/__DEFINES/directions.html
new file mode 100644
index 0000000000000..5bedc0d9454b5
--- /dev/null
+++ b/code/__DEFINES/directions.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+ code/__DEFINES/directions.dm - Space Station 13
+
+
+
+
+code/__DEFINES/directions.dm
+
+
+
+
+ NO_DIRECTION define purely for readability, cables especially need to use this as NO_DIRECTION
represents a "node"
+ FLIP_DIR_HORIZONTALLY Using the ^ operator or XOR, we can compared TRUE East and West bits against our direction,
+since XOR will only return TRUE if one bit is False and the other is True, if East is 0, that bit will return TRUE
+and if West is 1, then that bit will return 0
+hence EAST (0010) XOR EAST|WEST (0011) --> WEST (0001)
+Flips a direction along the horizontal axis, will convert E -> W, W -> E, NE -> NW, SE -> SW, etc
+ FLIP_DIR_VERTICALLY Flips a direction along the vertical axis, will convert N -> S, S -> N, NE -> SE, SW -> NW, etc
+ IS_DIR_DIAGONAL for directions, each cardinal direction only has 1 TRUE bit, so 1000
or 0100
for example, so when you subtract 1
+from a cardinal direction it results in that directions initial TRUE bit always switching to FALSE, so if you & check it
+against its initial self, it will return false, indicating that the direction is straight and not diagonal
+returns TRUE if direction is diagonal and false if not
+ IS_DIR_CARDINAL returns TRUE if direction is cardinal and false if not
+ REVERSE_DIR Inverse direction, taking into account UP|DOWN if necessary.
Define Details
+FLIP_DIR_HORIZONTALLY
+
+
+
+
+ Using the ^ operator or XOR, we can compared TRUE East and West bits against our direction,
+since XOR will only return TRUE if one bit is False and the other is True, if East is 0, that bit will return TRUE
+and if West is 1, then that bit will return 0
+hence EAST (0010) XOR EAST|WEST (0011) --> WEST (0001)
+Flips a direction along the horizontal axis, will convert E -> W, W -> E, NE -> NW, SE -> SW, etc
FLIP_DIR_VERTICALLY
+
+
+
+
+ Flips a direction along the vertical axis, will convert N -> S, S -> N, NE -> SE, SW -> NW, etc
IS_DIR_CARDINAL
+
+
+
+
+ returns TRUE if direction is cardinal and false if not
IS_DIR_DIAGONAL
+
+
+
+
+ for directions, each cardinal direction only has 1 TRUE bit, so 1000
or 0100
for example, so when you subtract 1
+from a cardinal direction it results in that directions initial TRUE bit always switching to FALSE, so if you & check it
+against its initial self, it will return false, indicating that the direction is straight and not diagonal
+returns TRUE if direction is diagonal and false if not
NO_DIRECTION
+
+
+
+ define purely for readability, cables especially need to use this as NO_DIRECTION
represents a "node"
REVERSE_DIR
+
+
+
+
+ Inverse direction, taking into account UP|DOWN if necessary.
+
+
+
diff --git a/code/__DEFINES/economy_defines.html b/code/__DEFINES/economy_defines.html
new file mode 100644
index 0000000000000..3669f348dde00
--- /dev/null
+++ b/code/__DEFINES/economy_defines.html
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+ code/__DEFINES/economy_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/economy_defines.dm
+
+
+
+Define Details
+ACCOUNT_SECURITY_CC
+
+
+
+ This acount can only be accessed by admins/CC characters
ACCOUNT_SECURITY_ID
+
+
+
+ //ACOUNT SECURITY LEVELS////
+There is no security on this account, it can be accessed through someone's ID card/account number
ACCOUNT_SECURITY_PIN
+
+
+
+ Before accessing this account, the pin number must be provided
ACCOUNT_SECURITY_RESTRICTED
+
+
+
+ This account can only be accessed through restricted terminals
ACCOUNT_SECURITY_VENDOR
+
+
+
+ This account is only accessible to NPCs and Vendors (aka, only through code)
CREW_BASE_PAY_LOW
+
+
+
+ BASE PAY AMOUNTS
CREW_MEMBER_STARTING_BALANCE
+
+
+
+ STARTING CASH AMOUNTS
DATABASE_LOG_THRESHHOLD
+
+
+
+ Transactions on money accounts will automatically be logged if they involve over 2500 space credits
MAIL_DELIVERY_BONUS
+
+
+
+ mail deliveries
MAX_STACKABLE_CASH
+
+
+
+ //CASH LIMITS/CAPS/////
+The total amount of space cash that can be stacked
MERCH_CAT_APPAREL
+
+
+
+ merch computer categories
SUPPLY_EMERGENCY
+
+
+
+ supply packs
+
+
+
diff --git a/code/__DEFINES/economy_event_defines.html b/code/__DEFINES/economy_event_defines.html
new file mode 100644
index 0000000000000..6386fabc3e1b1
--- /dev/null
+++ b/code/__DEFINES/economy_event_defines.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__DEFINES/economy_event_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/economy_event_defines.dm
+
+
+
+Define Details
+RANDOM_STORY_RIOTS
+
+
+
+ Random stories for newscasters
TRADE_GOOD_DEFAULT
+
+
+
+ Trade goods for trade destinations
+
+
+
diff --git a/code/__DEFINES/emotes_defines.html b/code/__DEFINES/emotes_defines.html
new file mode 100644
index 0000000000000..3faac3ca1089c
--- /dev/null
+++ b/code/__DEFINES/emotes_defines.html
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+ code/__DEFINES/emotes_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/emotes_defines.dm
+
+
+
+
+ EMOTE_VISIBLE General defines used for emotes
+Emote is visible. These emotes will be runechatted.
+ EMOTE_AUDIBLE Emote is audible (in character).
+ EMOTE_FORCE_NO_RUNECHAT Regardless of its existing flags, an emote with this flag will not be sent to runechat.
+ EMOTE_MOUTH This emote uses the mouth, and so should be blocked if the user is muzzled or can't breathe (for humans).
+ EMOTE_READY The user is not on emote cooldown, and is ready to emote whenever.
+ EMOTE_INFINITE The user can spam emotes to their heart's content.
+ EMOTE_ADMIN_BLOCKED The user cannot emote as they have been blocked by an admin.
+ EMOTE_ON_COOLDOWN The user cannot emote until their cooldown expires.
+ EMOTE_PARAM_SEPARATOR Marker to separate an emote key from its parameters in user input.
+ DEFAULT_EMOTE_COOLDOWN Default cooldown for normal (non-audio) emotes.
+ AUDIO_EMOTE_COOLDOWN Default cooldown for emote-emitted audio.
+ AUDIO_EMOTE_UNINTENTIONAL_COOLDOWN Cooldown for emotes that are emitted unintentionally, to prevent them from getting audibly spammy.
+ EMOTE_TARGET_BHVR_MUST_MATCH If this is set and a valid target is not found, the emote will not execute.
+ EMOTE_TARGET_BHVR_DEFAULT_TO_BASE If this is set and a valid target is not found, the emote will just ignore the parameter entirely.
+ EMOTE_TARGET_BHVR_USE_PARAMS_ANYWAY If this is set and a valid target is not found, the emote will work with the params that it has.
+ EMOTE_TARGET_BHVR_RAW No matching/processing will be performed, and the target will be purely what's passed in.
+ EMOTE_TARGET_BHVR_NUM The emote target should be just a number. Anything else will be rejected.
+ EMOTE_TARGET_BHVR_IGNORE The emote target is used elsewhere, and processing should be skipped.
+ EMOTE_TARGET_MOB The target will check all nearby living mobs.
+ EMOTE_TARGET_OBJ The target will check all objects nearby.
+ EMOTE_TARGET_ANY The target will check nearby mobs and objects.
+ EMOTE_PARAM_USE_POSTFIX If passed as message_param, will default to using the message's postfix.
+ EMOTE_ACT_STOP_EXECUTION If returned from act_on_target(), emote execution will stop.
+ USABLE_DEAD_EMOTES List of emotes useable by ghosties
Define Details
+AUDIO_EMOTE_COOLDOWN
+
+
+
+ Default cooldown for emote-emitted audio.
AUDIO_EMOTE_UNINTENTIONAL_COOLDOWN
+
+
+
+ Cooldown for emotes that are emitted unintentionally, to prevent them from getting audibly spammy.
DEFAULT_EMOTE_COOLDOWN
+
+
+
+ Default cooldown for normal (non-audio) emotes.
EMOTE_ACT_STOP_EXECUTION
+
+
+
+ If returned from act_on_target(), emote execution will stop.
EMOTE_ADMIN_BLOCKED
+
+
+
+ The user cannot emote as they have been blocked by an admin.
EMOTE_AUDIBLE
+
+
+
+ Emote is audible (in character).
EMOTE_FORCE_NO_RUNECHAT
+
+
+
+ Regardless of its existing flags, an emote with this flag will not be sent to runechat.
EMOTE_INFINITE
+
+
+
+ The user can spam emotes to their heart's content.
EMOTE_MOUTH
+
+
+
+ This emote uses the mouth, and so should be blocked if the user is muzzled or can't breathe (for humans).
EMOTE_ON_COOLDOWN
+
+
+
+ The user cannot emote until their cooldown expires.
EMOTE_PARAM_SEPARATOR
+
+
+
+ Marker to separate an emote key from its parameters in user input.
EMOTE_PARAM_USE_POSTFIX
+
+
+
+ If passed as message_param, will default to using the message's postfix.
EMOTE_READY
+
+
+
+ The user is not on emote cooldown, and is ready to emote whenever.
EMOTE_TARGET_ANY
+
+
+
+ The target will check nearby mobs and objects.
EMOTE_TARGET_BHVR_DEFAULT_TO_BASE
+
+
+
+ If this is set and a valid target is not found, the emote will just ignore the parameter entirely.
EMOTE_TARGET_BHVR_IGNORE
+
+
+
+ The emote target is used elsewhere, and processing should be skipped.
EMOTE_TARGET_BHVR_MUST_MATCH
+
+
+
+ If this is set and a valid target is not found, the emote will not execute.
EMOTE_TARGET_BHVR_NUM
+
+
+
+ The emote target should be just a number. Anything else will be rejected.
EMOTE_TARGET_BHVR_RAW
+
+
+
+ No matching/processing will be performed, and the target will be purely what's passed in.
EMOTE_TARGET_BHVR_USE_PARAMS_ANYWAY
+
+
+
+ If this is set and a valid target is not found, the emote will work with the params that it has.
EMOTE_TARGET_MOB
+
+
+
+ The target will check all nearby living mobs.
EMOTE_TARGET_OBJ
+
+
+
+ The target will check all objects nearby.
EMOTE_VISIBLE
+
+
+
+ General defines used for emotes
+Emote is visible. These emotes will be runechatted.
USABLE_DEAD_EMOTES
+
+
+
+ List of emotes useable by ghosties
+
+
+
diff --git a/code/__DEFINES/flags.html b/code/__DEFINES/flags.html
new file mode 100644
index 0000000000000..502d474815e02
--- /dev/null
+++ b/code/__DEFINES/flags.html
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+ code/__DEFINES/flags.dm - Space Station 13
+
+
+
+
+code/__DEFINES/flags.dm
+
+
+
+Define Details
+ALLOW_BELT_NO_JUMPSUIT_2
+
+
+
+ This flag allows for wearing of a belt item, even if you're not wearing a jumpsuit
CRITICAL_ATOM_2
+
+
+
+ Use when this shouldn't be obscured by large icons.
IMMUNE_TO_SHUTTLECRUSH_2
+
+
+
+ Prevents shuttles from deleting the item
MOBILITY_MOVE
+
+
+
+ can move
MOBILITY_PICKUP
+
+
+
+ can pickup items
MOBILITY_PULL
+
+
+
+ can pull things
MOBILITY_STAND
+
+
+
+ can, and is, standing up
MOBILITY_USE
+
+
+
+ can hold and use items
NO_MALF_EFFECT_2
+
+
+
+ Prevents malf AI animate + overload ability
NO_SCREENTIPS
+
+
+
+ Whether or not this atom shows screentips when hovered over
RAD_NO_CONTAMINATE_2
+
+
+
+ should this object be allowed to be contaminated
RAD_PROTECT_CONTENTS_2
+
+
+
+ should the contents of this atom be acted upon
RANDOM_BLOCKER_2
+
+
+
+ Use this flag for items that can block randomly
RICOCHET_HARD
+
+
+
+ If the thing can reflect matter (bullets/bomb shrapnel)
RICOCHET_SHINY
+
+
+
+ If the thing can reflect light (lasers/energy)
SHOCKED_2
+
+
+
+ Prevents mobs from getting chainshocked by teslas and the supermatter
UPDATE_DESC
+
+
+
+ Update the atom's desc
UPDATE_ICON
+
+
+
+ Update the atom's icon
UPDATE_ICON_STATE
+
+
+
+ Update the atom's icon state
UPDATE_NAME
+
+
+
+ Update the atom's name
UPDATE_OVERLAYS
+
+
+
+ Update the atom's overlays
+
+
+
diff --git a/code/__DEFINES/food_defines.html b/code/__DEFINES/food_defines.html
new file mode 100644
index 0000000000000..97e6807a90bb4
--- /dev/null
+++ b/code/__DEFINES/food_defines.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ code/__DEFINES/food_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/food_defines.dm
+
+
+
+
+ FOOD_GOAL_SKIP Used for secondary goals.
+TOO easy, not accepted for variety goals.
+ FOOD_GOAL_EASY Easy food, ask for a lot for single goals.
+ FOOD_GOAL_NORMAL Normal food, ask for a middling amount for single goals.
+ FOOD_GOAL_HARD Hard reagent, ask for a little for single goals.
+ FOOD_GOAL_EXCESSIVE TOO hard, accepted for variety goals, but never used for single goals.
+ FOOD_GOAL_DUPLICATE Same as FOOD_GOAL_EXCESSIVE, just different name to indicate that there's another version of this food that's used in variety goals.
Define Details
+FOOD_GOAL_DUPLICATE
+
+
+
+ Same as FOOD_GOAL_EXCESSIVE, just different name to indicate that there's another version of this food that's used in variety goals.
FOOD_GOAL_EASY
+
+
+
+ Easy food, ask for a lot for single goals.
FOOD_GOAL_EXCESSIVE
+
+
+
+ TOO hard, accepted for variety goals, but never used for single goals.
FOOD_GOAL_HARD
+
+
+
+ Hard reagent, ask for a little for single goals.
FOOD_GOAL_NORMAL
+
+
+
+ Normal food, ask for a middling amount for single goals.
FOOD_GOAL_SKIP
+
+
+
+ Used for secondary goals.
+TOO easy, not accepted for variety goals.
+
+
+
diff --git a/code/__DEFINES/gamemode.html b/code/__DEFINES/gamemode.html
new file mode 100644
index 0000000000000..71c9f76fbf967
--- /dev/null
+++ b/code/__DEFINES/gamemode.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ code/__DEFINES/gamemode.dm - Space Station 13
+
+
+
+
+code/__DEFINES/gamemode.dm
+
+
+
+Define Details
+NUKE_SITE_INVALID
+
+
+
+ The bomb's location cannot be found.
NUKE_SITE_OFF_STATION_ZLEVEL
+
+
+
+ The bomb is off station z-level.
NUKE_SITE_ON_STATION
+
+
+
+ The bomb is on-station.
NUKE_SITE_ON_STATION_ZLEVEL
+
+
+
+ The bomb is on station z-level, but not a station tile.
+
+
+
diff --git a/code/__DEFINES/hud.html b/code/__DEFINES/hud.html
new file mode 100644
index 0000000000000..7ba87da392284
--- /dev/null
+++ b/code/__DEFINES/hud.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__DEFINES/hud.dm - Space Station 13
+
+
+
+
+code/__DEFINES/hud.dm
+
+
+
+
+ /proc/view_to_pixels
+ Takes a string or num view, and converts it to pixel width/height in a list(pixel_width, pixel_height)
+
+
+
diff --git a/code/__DEFINES/icon_smoothing_defines.html b/code/__DEFINES/icon_smoothing_defines.html
new file mode 100644
index 0000000000000..be48ba7e64645
--- /dev/null
+++ b/code/__DEFINES/icon_smoothing_defines.html
@@ -0,0 +1,391 @@
+
+
+
+
+
+
+ code/__DEFINES/icon_smoothing_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/icon_smoothing_defines.dm
+
+
+
+
+ SMOOTH_CORNERS Smoothing system in where adjacencies are calculated and used to build an image by mounting each corner at runtime.
+ SMOOTH_BITMASK Smoothing system in where adjacencies are calculated and used to select a pre-baked icon_state, encoded by bitmasking.
+ SMOOTH_DIAGONAL_CORNERS Atom has diagonal corners, with underlays under them.
+ SMOOTH_BORDER Atom will smooth with the borders of the map.
+ SMOOTH_QUEUED Atom is currently queued to smooth.
+ SMOOTH_OBJ Smooths with objects, and will thus need to scan turfs for contents.
+ S_TURF *SMOOTHING GROUPS
+ SMOOTH_GROUP_TURF turf/simulated
+ SMOOTH_GROUP_TURF_CHASM turf/simulated/chasm, /turf/simulated/floor/fakepit
+ SMOOTH_GROUP_FLOOR_LAVA turf/simulated/floor/lava
+ SMOOTH_GROUP_FLOOR_TRANSPARENT_GLASS turf/simulated/transparent/glass
+ SMOOTH_GROUP_FLOOR turf/simulated/floor
+ SMOOTH_GROUP_FLOOR_GRASS turf/simulated/floor/plating/grass
+ SMOOTH_GROUP_FLOOR_ICE turf/simulated/floor/plating/ice
+ SMOOTH_GROUP_BEACH_WATER turf/simulated/floor/beach/away/water
+ SMOOTH_GROUP_GLASS_FLOOR turf/simulated/floor/transparent/glass and subtypes
+ SMOOTH_GROUP_GLASS_FLOOR_TITANIUM turf/simulated/floor/transparent/glass/titanium and subtypes
+ SMOOTH_GROUP_CARPET turf/simulated/floor/carpet
+ SMOOTH_GROUP_BAMBOO turf/simulated/floor/bamboo
+ SMOOTH_GROUP_SIMULATED_TURFS turf/simulated
+ SMOOTH_GROUP_MATERIAL_WALLS turf/simulated/wall/material
+ SMOOTH_GROUP_SYNDICATE_WALLS turf/simulated/wall/r_wall/syndicate, /turf/simulated/indestructible/syndicate
+ SMOOTH_GROUP_HOTEL_WALLS turf/simulated/indestructible/hotelwall
+ SMOOTH_GROUP_MINERAL_WALLS turf/simulated/mineral, /obj/structure/falsewall/rock_ancient
+ SMOOTH_GROUP_BOSS_WALLS turf/simulated/indestructible/riveted/boss
+ SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS turf/simulated/wall/mineral/titanium/survival
+ SMOOTH_GROUP_GRASS turf/simulated/floor/grass
+ SMOOTH_GROUP_JUNGLE_GRASS turf/simulated/floor/grass/jungle
+ SMOOTH_GROUP_WALLS turf/simulated/wall, /obj/structure/falsewall
+ SMOOTH_GROUP_URANIUM_WALLS turf/simulated/wall/mineral/uranium, /obj/structure/falsewall/uranium
+ SMOOTH_GROUP_GOLD_WALLS turf/simulated/wall/mineral/gold, /obj/structure/falsewall/gold
+ SMOOTH_GROUP_SILVER_WALLS turf/simulated/wall/mineral/silver, /obj/structure/falsewall/silver
+ SMOOTH_GROUP_DIAMOND_WALLS turf/simulated/wall/mineral/diamond, /obj/structure/falsewall/diamond
+ SMOOTH_GROUP_PLASMA_WALLS turf/simulated/wall/mineral/plasma, /obj/structure/falsewall/plasma
+ SMOOTH_GROUP_BANANIUM_WALLS turf/simulated/wall/mineral/bananium, /obj/structure/falsewall/bananium
+ SMOOTH_GROUP_SANDSTONE_WALLS turf/simulated/wall/mineral/sandstone, /obj/structure/falsewall/sandstone
+ SMOOTH_GROUP_WOOD_WALLS turf/simulated/wall/mineral/wood, /obj/structure/falsewall/wood
+ SMOOTH_GROUP_IRON_WALLS turf/simulated/wall/mineral/iron, /obj/structure/falsewall/iron
+ SMOOTH_GROUP_ABDUCTOR_WALLS turf/simulated/wall/mineral/abductor, /obj/structure/falsewall/abductor
+ SMOOTH_GROUP_TITANIUM_WALLS turf/simulated/wall/mineral/titanium, /obj/structure/falsewall/titanium
+ SMOOTH_GROUP_ASTEROID_WALLS turf/simulated/mineral, /obj/structure/falsewall/rock_ancient
+ SMOOTH_GROUP_PLASTITANIUM_WALLS turf/simulated/wall/mineral/plastitanium, /obj/structure/falsewall/plastitanium
+ SMOOTH_GROUP_SURVIVAL_TIANIUM_POD turf/simulated/wall/mineral/titanium/survival/pod, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/shuttle/survival_pod
+ SMOOTH_GROUP_HIERO_WALL obj/effect/temp_visual/elite_tumor_wall, /obj/effect/temp_visual/hierophant/wall
+ SMOOTH_GROUP_BRASS_WALL turf/simulated/wall/mineral/brass, /obj/structure/falsewall/brass
+ SMOOTH_GROUP_REGULAR_WALLS turf/simulated/wall, /obj/structure/falsewall
+ SMOOTH_GROUP_REINFORCED_WALLS turf/simulated/wall/r_wall, /obj/structure/falsewall/reinforced
+ SMOOTH_GROUP_CULT_WALLS turf/simulated/wall/cult
+ SMOOTH_GROUP_WINDOW_FULLTILE turf/simulated/indestructible/fakeglass, /obj/structure/window/full/basic, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced, /obj/structure/window/full/reinforced
+ SMOOTH_GROUP_WINDOW_FULLTILE_BRASS obj/structure/window/brass/fulltile
+ SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM turf/simulated/indestructible/opsglass, /obj/structure/window/plasma/reinforced/plastitanium
+ SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE obj/structure/window/shuttle
+ SMOOTH_GROUP_LATTICE obj/structure/lattice
+ SMOOTH_GROUP_AIRLOCK obj/machinery/door/airlock
+ SMOOTH_GROUP_TABLES obj/structure/table
+ SMOOTH_GROUP_WOOD_TABLES obj/structure/table/wood
+ SMOOTH_GROUP_FANCY_WOOD_TABLES obj/structure/table/wood/fancy
+ SMOOTH_GROUP_BRASS_TABLES obj/structure/table/brass
+ SMOOTH_GROUP_ABDUCTOR_TABLES obj/structure/table/abductor
+ SMOOTH_GROUP_GLASS_TABLES obj/structure/table/glass
+ SMOOTH_GROUP_REINFORCED_TABLES obj/structure/table/reinforced, /obj/structure/table/glass/reinforced
+ SMOOTH_GROUP_ALIEN_RESIN obj/structure/alien/resin
+ SMOOTH_GROUP_ALIEN_WALLS obj/structure/alien/resin/wall,
+ SMOOTH_GROUP_ALIEN_WEEDS obj/structure/alien/weeds
+ SMOOTH_GROUP_SECURITY_BARRICADE obj/structure/barricade/security
+ SMOOTH_GROUP_SANDBAGS obj/structure/barricade/sandbags
+ SMOOTH_GROUP_SHUTTLE_PARTS obj/structure/window/shuttle, /obj/structure/window/plasma/reinforced/plastitanium, /turf/simulated/indestructible/opsglass, /obj/structure/shuttle
+ SMOOTH_GROUP_CLEANABLE_DIRT obj/effect/decal/cleanable/dirt
+ SMOOTH_GROUP_RIPPLE obj/effect/temp_visual/ripple
+ SMOOTH_GROUP_CATWALK obj/structure/lattice/catwalk
Define Details
+SMOOTH_BITMASK
+
+
+
+ Smoothing system in where adjacencies are calculated and used to select a pre-baked icon_state, encoded by bitmasking.
SMOOTH_BORDER
+
+
+
+ Atom will smooth with the borders of the map.
SMOOTH_CORNERS
+
+
+
+ Smoothing system in where adjacencies are calculated and used to build an image by mounting each corner at runtime.
SMOOTH_DIAGONAL_CORNERS
+
+
+
+ Atom has diagonal corners, with underlays under them.
SMOOTH_GROUP_ABDUCTOR_TABLES
+
+
+
+ obj/structure/table/abductor
SMOOTH_GROUP_ABDUCTOR_WALLS
+
+
+
+ turf/simulated/wall/mineral/abductor, /obj/structure/falsewall/abductor
SMOOTH_GROUP_AIRLOCK
+
+
+
+ obj/machinery/door/airlock
SMOOTH_GROUP_ALIEN_RESIN
+
+
+
+ obj/structure/alien/resin
SMOOTH_GROUP_ALIEN_WALLS
+
+
+
+ obj/structure/alien/resin/wall,
SMOOTH_GROUP_ALIEN_WEEDS
+
+
+
+ obj/structure/alien/weeds
SMOOTH_GROUP_ASTEROID_WALLS
+
+
+
+ turf/simulated/mineral, /obj/structure/falsewall/rock_ancient
SMOOTH_GROUP_BAMBOO
+
+
+
+ turf/simulated/floor/bamboo
SMOOTH_GROUP_BANANIUM_WALLS
+
+
+
+ turf/simulated/wall/mineral/bananium, /obj/structure/falsewall/bananium
SMOOTH_GROUP_BEACH_WATER
+
+
+
+ turf/simulated/floor/beach/away/water
SMOOTH_GROUP_BOSS_WALLS
+
+
+
+ turf/simulated/indestructible/riveted/boss
SMOOTH_GROUP_BRASS_TABLES
+
+
+
+ obj/structure/table/brass
SMOOTH_GROUP_BRASS_WALL
+
+
+
+ turf/simulated/wall/mineral/brass, /obj/structure/falsewall/brass
SMOOTH_GROUP_CARPET
+
+
+
+ turf/simulated/floor/carpet
SMOOTH_GROUP_CATWALK
+
+
+
+ obj/structure/lattice/catwalk
SMOOTH_GROUP_CLEANABLE_DIRT
+
+
+
+ obj/effect/decal/cleanable/dirt
SMOOTH_GROUP_CULT_WALLS
+
+
+
+ turf/simulated/wall/cult
SMOOTH_GROUP_DIAMOND_WALLS
+
+
+
+ turf/simulated/wall/mineral/diamond, /obj/structure/falsewall/diamond
SMOOTH_GROUP_FANCY_WOOD_TABLES
+
+
+
+ obj/structure/table/wood/fancy
SMOOTH_GROUP_FLOOR
+
+
+
+ turf/simulated/floor
SMOOTH_GROUP_FLOOR_GRASS
+
+
+
+ turf/simulated/floor/plating/grass
SMOOTH_GROUP_FLOOR_ICE
+
+
+
+ turf/simulated/floor/plating/ice
SMOOTH_GROUP_FLOOR_LAVA
+
+
+
+ turf/simulated/floor/lava
SMOOTH_GROUP_FLOOR_TRANSPARENT_GLASS
+
+
+
+ turf/simulated/transparent/glass
SMOOTH_GROUP_GLASS_FLOOR
+
+
+
+ turf/simulated/floor/transparent/glass and subtypes
SMOOTH_GROUP_GLASS_FLOOR_TITANIUM
+
+
+
+ turf/simulated/floor/transparent/glass/titanium and subtypes
SMOOTH_GROUP_GLASS_TABLES
+
+
+
+ obj/structure/table/glass
SMOOTH_GROUP_GOLD_WALLS
+
+
+
+ turf/simulated/wall/mineral/gold, /obj/structure/falsewall/gold
SMOOTH_GROUP_GRASS
+
+
+
+ turf/simulated/floor/grass
SMOOTH_GROUP_HIERO_WALL
+
+
+
+ obj/effect/temp_visual/elite_tumor_wall, /obj/effect/temp_visual/hierophant/wall
SMOOTH_GROUP_HOTEL_WALLS
+
+
+
+ turf/simulated/indestructible/hotelwall
SMOOTH_GROUP_IRON_WALLS
+
+
+
+ turf/simulated/wall/mineral/iron, /obj/structure/falsewall/iron
SMOOTH_GROUP_JUNGLE_GRASS
+
+
+
+ turf/simulated/floor/grass/jungle
SMOOTH_GROUP_LATTICE
+
+
+
+ obj/structure/lattice
SMOOTH_GROUP_MATERIAL_WALLS
+
+
+
+ turf/simulated/wall/material
SMOOTH_GROUP_MINERAL_WALLS
+
+
+
+ turf/simulated/mineral, /obj/structure/falsewall/rock_ancient
SMOOTH_GROUP_PLASMA_WALLS
+
+
+
+ turf/simulated/wall/mineral/plasma, /obj/structure/falsewall/plasma
SMOOTH_GROUP_PLASTITANIUM_WALLS
+
+
+
+ turf/simulated/wall/mineral/plastitanium, /obj/structure/falsewall/plastitanium
SMOOTH_GROUP_REGULAR_WALLS
+
+
+
+ turf/simulated/wall, /obj/structure/falsewall
SMOOTH_GROUP_REINFORCED_TABLES
+
+
+
+ obj/structure/table/reinforced, /obj/structure/table/glass/reinforced
SMOOTH_GROUP_REINFORCED_WALLS
+
+
+
+ turf/simulated/wall/r_wall, /obj/structure/falsewall/reinforced
SMOOTH_GROUP_RIPPLE
+
+
+
+ obj/effect/temp_visual/ripple
SMOOTH_GROUP_SANDBAGS
+
+
+
+ obj/structure/barricade/sandbags
SMOOTH_GROUP_SANDSTONE_WALLS
+
+
+
+ turf/simulated/wall/mineral/sandstone, /obj/structure/falsewall/sandstone
SMOOTH_GROUP_SECURITY_BARRICADE
+
+
+
+ obj/structure/barricade/security
SMOOTH_GROUP_SHUTTLE_PARTS
+
+
+
+ obj/structure/window/shuttle, /obj/structure/window/plasma/reinforced/plastitanium, /turf/simulated/indestructible/opsglass, /obj/structure/shuttle
SMOOTH_GROUP_SILVER_WALLS
+
+
+
+ turf/simulated/wall/mineral/silver, /obj/structure/falsewall/silver
SMOOTH_GROUP_SIMULATED_TURFS
+
+
+
+ turf/simulated
SMOOTH_GROUP_SURVIVAL_TIANIUM_POD
+
+
+
+ turf/simulated/wall/mineral/titanium/survival/pod, /obj/machinery/door/airlock/survival_pod, /obj/structure/window/shuttle/survival_pod
SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS
+
+
+
+ turf/simulated/wall/mineral/titanium/survival
SMOOTH_GROUP_SYNDICATE_WALLS
+
+
+
+ turf/simulated/wall/r_wall/syndicate, /turf/simulated/indestructible/syndicate
SMOOTH_GROUP_TABLES
+
+
+
+ obj/structure/table
SMOOTH_GROUP_TITANIUM_WALLS
+
+
+
+ turf/simulated/wall/mineral/titanium, /obj/structure/falsewall/titanium
SMOOTH_GROUP_TURF
+
+
+
+ turf/simulated
SMOOTH_GROUP_TURF_CHASM
+
+
+
+ turf/simulated/chasm, /turf/simulated/floor/fakepit
SMOOTH_GROUP_URANIUM_WALLS
+
+
+
+ turf/simulated/wall/mineral/uranium, /obj/structure/falsewall/uranium
SMOOTH_GROUP_WALLS
+
+
+
+ turf/simulated/wall, /obj/structure/falsewall
SMOOTH_GROUP_WINDOW_FULLTILE
+
+
+
+ turf/simulated/indestructible/fakeglass, /obj/structure/window/full/basic, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced, /obj/structure/window/full/reinforced
SMOOTH_GROUP_WINDOW_FULLTILE_BRASS
+
+
+
+ obj/structure/window/brass/fulltile
SMOOTH_GROUP_WINDOW_FULLTILE_PLASTITANIUM
+
+
+
+ turf/simulated/indestructible/opsglass, /obj/structure/window/plasma/reinforced/plastitanium
SMOOTH_GROUP_WINDOW_FULLTILE_SHUTTLE
+
+
+
+ obj/structure/window/shuttle
SMOOTH_GROUP_WOOD_TABLES
+
+
+
+ obj/structure/table/wood
SMOOTH_GROUP_WOOD_WALLS
+
+
+
+ turf/simulated/wall/mineral/wood, /obj/structure/falsewall/wood
SMOOTH_OBJ
+
+
+
+ Smooths with objects, and will thus need to scan turfs for contents.
SMOOTH_QUEUED
+
+
+
+ Atom is currently queued to smooth.
S_TURF
+
+
+
+
+ *SMOOTHING GROUPS
+
+Groups of things to smooth with.
+
+
+Contained in the list/smoothing_groups
variable.
+
+
+
+
+Matched with the list/canSmoothWith
variable to check whether smoothing is possible or not.
+
+
+
+
+
+
diff --git a/code/__DEFINES/instrument_defines.html b/code/__DEFINES/instrument_defines.html
new file mode 100644
index 0000000000000..1b6d5261f4886
--- /dev/null
+++ b/code/__DEFINES/instrument_defines.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ code/__DEFINES/instrument_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/instrument_defines.dm
+
+
+
+Define Details
+CHANNELS_PER_INSTRUMENT
+
+
+
+ Max number of playing notes per instrument.
INSTRUMENT_EXP_FALLOFF_MIN
+
+
+
+ These are per decisecond.
INSTRUMENT_MAX_TOTAL_SUSTAIN
+
+
+
+ Maximum length a note should ever go for
INSTRUMENT_MIN_SUSTAIN_DROPOFF
+
+
+
+ Minimum volume for when the sound is considered dead.
+
+
+
diff --git a/code/__DEFINES/keybindings_defines.html b/code/__DEFINES/keybindings_defines.html
new file mode 100644
index 0000000000000..a2c08caa96814
--- /dev/null
+++ b/code/__DEFINES/keybindings_defines.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ code/__DEFINES/keybindings_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/keybindings_defines.dm
+
+
+
+Define Details
+HELD_KEY_BUFFER_LENGTH
+
+
+
+ Length of held key rolling buffer
MAX_COMMANDS_PER_KEY
+
+
+
+ Maximum keys that can be bound to one button
MAX_KEYPRESS_AUTOKICK
+
+
+
+ Max amount of keypress messages per second over two seconds before client is autokicked
MAX_KEYPRESS_COMMANDLENGTH
+
+
+
+ Max length of a keypress command before it's considered to be a forged packet/bogus command
+
+
+
diff --git a/code/__DEFINES/layers.html b/code/__DEFINES/layers.html
new file mode 100644
index 0000000000000..9cd198499f378
--- /dev/null
+++ b/code/__DEFINES/layers.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ code/__DEFINES/layers.dm - Space Station 13
+
+
+
+
+code/__DEFINES/layers.dm
+
+
+
+Define Details
+EMISSIVE_PLANE
+
+
+
+ This plane masks out lighting to create an "emissive" effect, ie for glowing lights in otherwise dark areas.
EMISSIVE_RENDER_TARGET
+
+
+
+ The render target used by the emissive.
MAP_EDITOR_TURF_LAYER
+
+
+
+ Which layer turfs appear on by default in the map editor. Should be unique!
PLANE_MASTERS_GAME
+
+
+
+ Plane master controller keys
+
+
+
diff --git a/code/__DEFINES/lighting_defines.html b/code/__DEFINES/lighting_defines.html
new file mode 100644
index 0000000000000..f2aa379a1d55e
--- /dev/null
+++ b/code/__DEFINES/lighting_defines.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+ code/__DEFINES/lighting_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/lighting_defines.dm
+
+
+
+
+ EMISSIVE_BLOCK_UNIQUE Uses a dedicated render_target object to copy the entire appearance in real time to the blocking layer. For things that can change in appearance a lot from the base state, like humans.
+ EMISSIVE_COLOR The color applied to all emissive overlays.
+ EM_BLOCK_COLOR The color applied to all emissive blockers. Is meant to be the exact opposite of the EMMISIVE_COLOR
+ EMISSIVE_APPEARANCE_FLAGS A set of appearance flags applied to all emissive and emissive blocker overlays.
+ EM_MASK_MATRIX The color matrix used to mask out emissive blockers on the emissive plane. Alpha should default to zero, be solely dependent on the RGB value of EMISSIVE_COLOR , and be independant of the RGB value of EM_BLOCK_COLOR .
+ GETREDPART Returns the red part of a #RRGGBB hex sequence as number
+ GETGREENPART Returns the green part of a #RRGGBB hex sequence as number
+ GETBLUEPART Returns the blue part of a #RRGGBB hex sequence as number
+ PARSE_LIGHT_COLOR Parse the hexadecimal color into lumcounts of each perspective.
Define Details
+EMISSIVE_APPEARANCE_FLAGS
+
+
+
+ A set of appearance flags applied to all emissive and emissive blocker overlays.
EMISSIVE_BLOCK_UNIQUE
+
+
+
+ Uses a dedicated render_target object to copy the entire appearance in real time to the blocking layer. For things that can change in appearance a lot from the base state, like humans.
EMISSIVE_COLOR
+
+
+
+ The color applied to all emissive overlays.
EM_BLOCK_COLOR
+
+
+
+ The color applied to all emissive blockers. Is meant to be the exact opposite of the EMMISIVE_COLOR
EM_MASK_MATRIX
+
+
+
+ The color matrix used to mask out emissive blockers on the emissive plane. Alpha should default to zero, be solely dependent on the RGB value of EMISSIVE_COLOR , and be independant of the RGB value of EM_BLOCK_COLOR .
GETBLUEPART
+
+
+
+
+ Returns the blue part of a #RRGGBB hex sequence as number
GETGREENPART
+
+
+
+
+ Returns the green part of a #RRGGBB hex sequence as number
GETREDPART
+
+
+
+
+ Returns the red part of a #RRGGBB hex sequence as number
PARSE_LIGHT_COLOR
+
+
+
+
+ Parse the hexadecimal color into lumcounts of each perspective.
+
+
+
diff --git a/code/__DEFINES/machines.html b/code/__DEFINES/machines.html
new file mode 100644
index 0000000000000..709132a7afe2c
--- /dev/null
+++ b/code/__DEFINES/machines.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/__DEFINES/machines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/machines.dm
+
+
+
+Define Details
+AALARM_MODE_SCRUBBING
+
+
+
+ Air alarm modes
GAMMALATHE
+
+
+
+ Used for gamma armoury lathe designs
SUPERMATTER_HEAT_PENALTY_THRESHOLD
+
+
+
+ Higher == Crystal safe operational temperature is higher.
+
+
+
diff --git a/code/__DEFINES/mappers.html b/code/__DEFINES/mappers.html
new file mode 100644
index 0000000000000..de150082a4901
--- /dev/null
+++ b/code/__DEFINES/mappers.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/__DEFINES/mappers.dm - Space Station 13
+
+
+
+
+code/__DEFINES/mappers.dm
+
+
+
+Define Details
+MAPPING_DIRECTIONAL_HELPERS
+ (path, offset_y, offset_x)
+
+
+
+ Create directional subtypes for a path to simplify mapping.
+
+
+
diff --git a/code/__DEFINES/milla.html b/code/__DEFINES/milla.html
new file mode 100644
index 0000000000000..392a472f196ad
--- /dev/null
+++ b/code/__DEFINES/milla.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ code/__DEFINES/milla.dm - Space Station 13
+
+
+
+
+code/__DEFINES/milla.dm
+
+
+
+Define Details
+MILLA_INTERESTING_REASON_DISPLAY
+
+
+
+ Interesting because it needs a display update.
MILLA_INTERESTING_REASON_HOT
+
+
+
+ Interesting because it's hot enough to start a fire. Excludes normal-temperature Lavaland tiles without an active fire.
MILLA_INTERESTING_REASON_WIND
+
+
+
+ Interesting because it has wind that can push stuff around.
MILLA_INTERESTING_TILE_SIZE
+
+
+
+ The number of values per interesting tile.
MILLA_TILE_SIZE
+
+
+
+ The number of values per tile.
+
+
+
diff --git a/code/__DEFINES/misc_defines.html b/code/__DEFINES/misc_defines.html
new file mode 100644
index 0000000000000..ac9f9a9a74f67
--- /dev/null
+++ b/code/__DEFINES/misc_defines.html
@@ -0,0 +1,200 @@
+
+
+
+
+
+
+ code/__DEFINES/misc_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/misc_defines.dm
+
+
+
+
+ GERM_LEVEL_AMBIENT GERMS AND INFECTIONS
+ EMOJI_SET Emoji icon set
+ RANGE_EDGE_TURFS Returns the turfs on the edge of a square with CENTER in the middle and with the given RADIUS. If used near the edge of the map, will still work fine.
+ get_area Grabs the area of a supplied object. Passing an area in to this will result in an error
+ REGION_ALL Access Region Codes
+ GREYSCALE_COLOR_REPLACE Pure Black and white colorblindness. Every species except Vulpkanins and Tajarans will have this.
+ PROTANOPIA_COLOR_REPLACE Red colorblindness. Vulpkanins/Wolpins have this.
+ TRITANOPIA_COLOR_REPLACE Yellow-Blue colorblindness. Tajarans/Farwas have this.
+ CLIENT_FROM_VAR Return a Client
+ BASE_DEFIB_TIME_LIMIT Past this much time the patient is unrecoverable (in deciseconds).
+ DEFIB_TIME_LOSS Brain damage starts setting in on the patient after some time left rotting.
+ MAPTEXT Prepares a text to be used for maptext. Use this so it doesn't look hideous.
+ PARALLAX_DELAY_DEFAULT About 0.05 Seconds of delay
+ DISCORD_WEBHOOK_PRIMARY Send to the primary Discord webhook
+ DISCORD_WEBHOOK_ADMIN Send to the admin Discord webhook
+ DISCORD_WEBHOOK_MENTOR Send to the mentor Discord webhook
+ UNTIL Waits at a line of code until X is true
+ REFLECTABILITY_NEVER Projectile reflectability defines
+ DEADCHAT_DEMOCRACY_MODE Will execute a single command after the cooldown based on player votes.
+ DEADCHAT_ANARCHY_MODE Allows each player to do a single command every cooldown.
+ MUTE_DEADCHAT_DEMOCRACY_MESSAGES Mutes the democracy mode messages send to orbiters at the end of each cycle. Useful for when the cooldown is so low it'd get spammy.
+ SLEEP_CHECK_QDEL Sleep check QDEL. Like sleep check death, but checks deleting. Good for non mobs.
+ BRAIN_DAMAGE_BOOK_TIME Reading books can help with brain damage!
+These are seperate times so that a user gains more benefits by reading more books,
+but also cant infinitely switch between 1000 books.
+The amount of time needed to pass to let a single book be read again for brain benefits
+ BRAIN_DAMAGE_MOB_TIME The amount of time a mob needs to wait between any book reading
+ text_ref Takes a datum as input, returns its ref string, or a cached version of it
+This allows us to cache \ref creation, which ensures it'll only ever happen once per datum, saving string tree time
+It is slightly less optimal then a []'d datum, but the cost is massively outweighed by the potential savings
+It will only work for datums mind, for datum reasons
+: because of the embedded typecheck
+ LOG_MAZE_PROGRESS I dont recommend touching these map generator defines unless you know what you're doing with maze generators.
+ PINPOINTER_MODE_DET Detective's mode on pinpointers
+ DISPOSAL_SOUND_COOLDOWN How frequently disposals can make sounds, to prevent huge sound stacking
+ VOTE_RESULT_TYPE_MAJORITY The different kinds of voting
+ RESTRICT_TYPE A helper used by restrict_file_types.py
to identify types to restrict in a file. Not used by byond at all.
Define Details
+BASE_DEFIB_TIME_LIMIT
+
+
+
+ Past this much time the patient is unrecoverable (in deciseconds).
BRAIN_DAMAGE_BOOK_TIME
+
+
+
+ Reading books can help with brain damage!
+These are seperate times so that a user gains more benefits by reading more books,
+but also cant infinitely switch between 1000 books.
+The amount of time needed to pass to let a single book be read again for brain benefits
BRAIN_DAMAGE_MOB_TIME
+
+
+
+ The amount of time a mob needs to wait between any book reading
CLIENT_FROM_VAR
+
+
+
+
+ Return a Client
DEADCHAT_ANARCHY_MODE
+
+
+
+ Allows each player to do a single command every cooldown.
DEADCHAT_DEMOCRACY_MODE
+
+
+
+ Will execute a single command after the cooldown based on player votes.
DEFIB_TIME_LOSS
+
+
+
+ Brain damage starts setting in on the patient after some time left rotting.
DISCORD_WEBHOOK_ADMIN
+
+
+
+ Send to the admin Discord webhook
DISCORD_WEBHOOK_MENTOR
+
+
+
+ Send to the mentor Discord webhook
DISCORD_WEBHOOK_PRIMARY
+
+
+
+ Send to the primary Discord webhook
DISPOSAL_SOUND_COOLDOWN
+
+
+
+ How frequently disposals can make sounds, to prevent huge sound stacking
EMOJI_SET
+
+
+
+ Emoji icon set
GERM_LEVEL_AMBIENT
+
+
+
+ GERMS AND INFECTIONS
GREYSCALE_COLOR_REPLACE
+
+
+
+ Pure Black and white colorblindness. Every species except Vulpkanins and Tajarans will have this.
LOG_MAZE_PROGRESS
+
+
+
+
+ I dont recommend touching these map generator defines unless you know what you're doing with maze generators.
MAPTEXT
+
+
+
+
+ Prepares a text to be used for maptext. Use this so it doesn't look hideous.
MUTE_DEADCHAT_DEMOCRACY_MESSAGES
+
+
+
+ Mutes the democracy mode messages send to orbiters at the end of each cycle. Useful for when the cooldown is so low it'd get spammy.
PARALLAX_DELAY_DEFAULT
+
+
+
+ About 0.05 Seconds of delay
PINPOINTER_MODE_DET
+
+
+
+ Detective's mode on pinpointers
PROTANOPIA_COLOR_REPLACE
+
+
+
+ Red colorblindness. Vulpkanins/Wolpins have this.
RANGE_EDGE_TURFS
+
+
+
+
+ Returns the turfs on the edge of a square with CENTER in the middle and with the given RADIUS. If used near the edge of the map, will still work fine.
REFLECTABILITY_NEVER
+
+
+
+ Projectile reflectability defines
REGION_ALL
+
+
+
+ Access Region Codes
RESTRICT_TYPE
+
+
+
+
+ A helper used by restrict_file_types.py
to identify types to restrict in a file. Not used by byond at all.
SLEEP_CHECK_QDEL
+
+
+
+
+ Sleep check QDEL. Like sleep check death, but checks deleting. Good for non mobs.
TRITANOPIA_COLOR_REPLACE
+
+
+
+ Yellow-Blue colorblindness. Tajarans/Farwas have this.
UNTIL
+
+
+
+
+ Waits at a line of code until X is true
VOTE_RESULT_TYPE_MAJORITY
+
+
+
+ The different kinds of voting
get_area
+
+
+
+
+ Grabs the area of a supplied object. Passing an area in to this will result in an error
text_ref
+
+
+
+
+ Takes a datum as input, returns its ref string, or a cached version of it
+This allows us to cache \ref creation, which ensures it'll only ever happen once per datum, saving string tree time
+It is slightly less optimal then a []'d datum, but the cost is massively outweighed by the potential savings
+It will only work for datums mind, for datum reasons
+: because of the embedded typecheck
+
+
+
diff --git a/code/__DEFINES/mob_defines.html b/code/__DEFINES/mob_defines.html
new file mode 100644
index 0000000000000..5624d6fc78b89
--- /dev/null
+++ b/code/__DEFINES/mob_defines.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+ code/__DEFINES/mob_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/mob_defines.dm
+
+
+
+
+ ORGAN_BROKEN ORGAN DEFINES
+ STANDING_UP Mob is standing up, usually associated with lying_angle value of 0.
+ LYING_DOWN Mob is lying down, usually associated with lying_angle values of 90 or 270.
+ PIXEL_Y_OFFSET_LYING How much a mob's sprite should be moved when they're lying down
+ REAGENTS_METABOLISM REAGENT STUFF
+ SHOCK_NOGLOVES Flags used by the flags parameter of electrocute act.
+Makes it so that the shock doesn't take gloves into account.
+ SHOCK_TESLA Used when the shock is from a tesla bolt.
+ SHOCK_ILLUSION Used when an illusion shocks something. Makes the shock deal stamina damage and not trigger certain secondary effects.
+ SHOCK_NOSTUN The shock doesn't stun.
+ MAX_GOLD_CORE_MOBS Max amount of living Xenobio mobs allowed at any given time (excluding slimes).
+ EXAMINE_MORE_WINDOW If you examine the same atom twice in this timeframe, we call examine_more() instead of examine()
Define Details
+EXAMINE_MORE_WINDOW
+
+
+
+ If you examine the same atom twice in this timeframe, we call examine_more() instead of examine()
LYING_DOWN
+
+
+
+ Mob is lying down, usually associated with lying_angle values of 90 or 270.
MAX_GOLD_CORE_MOBS
+
+
+
+ Max amount of living Xenobio mobs allowed at any given time (excluding slimes).
ORGAN_BROKEN
+
+
+
+ ORGAN DEFINES
PIXEL_Y_OFFSET_LYING
+
+
+
+ How much a mob's sprite should be moved when they're lying down
+ REAGENT STUFF
SHOCK_ILLUSION
+
+
+
+ Used when an illusion shocks something. Makes the shock deal stamina damage and not trigger certain secondary effects.
SHOCK_NOGLOVES
+
+
+
+ Flags used by the flags parameter of electrocute act.
+Makes it so that the shock doesn't take gloves into account.
SHOCK_NOSTUN
+
+
+
+ The shock doesn't stun.
SHOCK_TESLA
+
+
+
+ Used when the shock is from a tesla bolt.
STANDING_UP
+
+
+
+ Mob is standing up, usually associated with lying_angle value of 0.
+
+
+
diff --git a/code/__DEFINES/mod.html b/code/__DEFINES/mod.html
new file mode 100644
index 0000000000000..4f9adbd0e559f
--- /dev/null
+++ b/code/__DEFINES/mod.html
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+ code/__DEFINES/mod.dm - Space Station 13
+
+
+
+
+code/__DEFINES/mod.dm
+
+
+
+Define Details
+DEFAULT_CHARGE_DRAIN
+
+
+
+ Default cell drain per process on MODsuits
DEFAULT_MAX_COMPLEXITY
+
+
+
+ Default value for the max_complexity var on MODsuits
MODULE_ACTIVE
+
+
+
+ Actively usable module, you may only have one selected at a time.
MODULE_ALLOW_INACTIVE
+
+
+
+ This module can be used while the suit is off
MODULE_ALLOW_INCAPACITATED
+
+
+
+ This module can be used while incapacitated
MODULE_PASSIVE
+
+
+
+ Passive module, just acts when put in naturally.
MODULE_TOGGLE
+
+
+
+ Toggle module, you turn it on/off and it does stuff.
MODULE_USABLE
+
+
+
+ Usable module, does something when you press a button.
MOD_ACTIVATION_STEP_TIME
+
+
+
+ Default time for a part to seal
+
+
+
diff --git a/code/__DEFINES/newscaster_defines.html b/code/__DEFINES/newscaster_defines.html
new file mode 100644
index 0000000000000..d7cb7e3d2aa8a
--- /dev/null
+++ b/code/__DEFINES/newscaster_defines.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ code/__DEFINES/newscaster_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/newscaster_defines.dm
+
+
+
+Define Details
+NEWSCASTER_CENSOR_AUTHOR
+
+
+
+ Censor author name.
NEWSCASTER_CENSOR_STORY
+
+
+
+ Censor story title, body and image.
NEWSCASTER_CHANNEL
+
+
+
+ View Channel screen index.
NEWSCASTER_HEADLINES
+
+
+
+ Headlines screen index.
NEWSCASTER_JOBS
+
+
+
+ Available Jobs screen index.
+
+
+
diff --git a/code/__DEFINES/power_defines.html b/code/__DEFINES/power_defines.html
new file mode 100644
index 0000000000000..02ec83fa921dd
--- /dev/null
+++ b/code/__DEFINES/power_defines.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ code/__DEFINES/power_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/power_defines.dm
+
+
+
+Define Details
+ACTIVE_POWER_USE
+
+
+
+ This machine is consuming its active power amount passively
APC_FULLY_CHARGED
+
+
+
+ APC battery is at 100%
APC_IS_CHARGING
+
+
+
+ APC is currently recieving power and storing it
APC_NOT_CHARGING
+
+
+
+ APC is not recieving power
BROKEN
+
+
+
+ Machine is broken
EMPED
+
+
+
+ Machine is currently affected by EMP pulse
IDLE_POWER_USE
+
+
+
+ This machine is consuming its idle power amount passively
MACHINE_FLICKER_CHANCE
+
+
+
+ roughly 1/2000 chance of a machine flickering on any given tick. That means in a two hour round each machine will flicker on average a little less than two times.
MAINT
+
+
+
+ machine is currently under maintenance
NOPOWER
+
+
+
+ Machine is not recieving any power from the local powernet
NO_POWER_USE
+
+
+
+ This machine is not currently consuming any power passively
PW_ALWAYS_POWERED
+
+
+
+ Local powernet in this area will always have power even if its not recieving power
PW_ALWAYS_UNPOWERED
+
+
+
+ Local powernet in this area will never be powered, even if its recieving power
PW_CHANNEL_ENVIRONMENT
+
+
+
+ Power channel for environmental power users
PW_CHANNEL_EQUIPMENT
+
+
+
+ Power Channel for equipment power users
PW_CHANNEL_LIGHTING
+
+
+
+ Power chanel for lighting power users
+
+
+
diff --git a/code/__DEFINES/preferences_defines.html b/code/__DEFINES/preferences_defines.html
new file mode 100644
index 0000000000000..6ea8cc2e65888
--- /dev/null
+++ b/code/__DEFINES/preferences_defines.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ code/__DEFINES/preferences_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/preferences_defines.dm
+
+
+
+Define Details
+PREFTOGGLE_SOUND
+
+
+
+ Interacts with the sound bitflag
PREFTOGGLE_SPECIAL
+
+
+
+ Special toggles, stuff that just overrides set_toggles entirely
PREFTOGGLE_TOGGLE1
+
+
+
+ Interacts with the toggles bitflag
PREFTOGGLE_TOGGLE2
+
+
+
+ Interacts with the toggles2 bitflag
_2FA_DISABLED
+
+
+
+ Client has 2FA disabled
_2FA_ENABLED_ALWAYS
+
+
+
+ Client will be prompted for 2FA always
_2FA_ENABLED_IP
+
+
+
+ Client will be prompted for 2FA on IP changes
+
+
+
diff --git a/code/__DEFINES/procpath.html b/code/__DEFINES/procpath.html
new file mode 100644
index 0000000000000..a40f14674c462
--- /dev/null
+++ b/code/__DEFINES/procpath.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/__DEFINES/procpath.dm - Space Station 13
+
+
+
+
+code/__DEFINES/procpath.dm
+
+
+
+
+
+
+
diff --git a/code/__DEFINES/qdel_defines.html b/code/__DEFINES/qdel_defines.html
new file mode 100644
index 0000000000000..3025f0e8ff060
--- /dev/null
+++ b/code/__DEFINES/qdel_defines.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ code/__DEFINES/qdel_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/qdel_defines.dm
+
+
+
+
+ GC_QUEUE_FILTER short queue to filter out quick gc successes so they don't hang around in the main queue for 5 minutes
+ GC_QUEUE_CHECK main queue that waits 5 minutes because thats the longest byond can hold a reference to our shit.
+ GC_QUEUE_HARDDELETE short queue for things that hard delete instead of going thru the gc subsystem, this is purely so if they can softdelete, they will soft delete rather then wasting time with a hard delete.
+ GC_QUEUE_COUNT Number of queues, used for allocating the nested lists. Don't forget to increase this if you add a new queue stage
+ GC_QUEUE_ITEM_QUEUE_TIME Time this item entered the queue
+ GC_QUEUE_ITEM_REF Ref to the item
+ GC_QUEUE_ITEM_GCD_DESTROYED Item's gc_destroyed var value. Used to detect ref reuse.
+ GC_QUEUE_ITEM_INDEX_COUNT Number of item indexes, used for allocating the nested lists. Don't forget to increase this if you add a new queue item index
Define Details
+GC_QUEUE_CHECK
+
+
+
+ main queue that waits 5 minutes because thats the longest byond can hold a reference to our shit.
GC_QUEUE_COUNT
+
+
+
+ Number of queues, used for allocating the nested lists. Don't forget to increase this if you add a new queue stage
GC_QUEUE_FILTER
+
+
+
+ short queue to filter out quick gc successes so they don't hang around in the main queue for 5 minutes
GC_QUEUE_HARDDELETE
+
+
+
+ short queue for things that hard delete instead of going thru the gc subsystem, this is purely so if they can softdelete, they will soft delete rather then wasting time with a hard delete.
GC_QUEUE_ITEM_GCD_DESTROYED
+
+
+
+ Item's gc_destroyed var value. Used to detect ref reuse.
GC_QUEUE_ITEM_INDEX_COUNT
+
+
+
+ Number of item indexes, used for allocating the nested lists. Don't forget to increase this if you add a new queue item index
GC_QUEUE_ITEM_QUEUE_TIME
+
+
+
+ Time this item entered the queue
GC_QUEUE_ITEM_REF
+
+
+
+ Ref to the item
+
+
+
diff --git a/code/__DEFINES/reagents_defines.html b/code/__DEFINES/reagents_defines.html
new file mode 100644
index 0000000000000..9d6b2f8c97c9f
--- /dev/null
+++ b/code/__DEFINES/reagents_defines.html
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+ code/__DEFINES/reagents_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/reagents_defines.dm
+
+
+
+Define Details
+BLOOD_TYPE_FAKE_BLOOD
+
+
+
+ Like O- blood but doesn't contribute to blood_volume or vampire nutrition
REAGENT_GOAL_EASY
+
+
+
+ Easy reagent, ask for a lot for single goals.
REAGENT_GOAL_EXCESSIVE
+
+
+
+ TOO hard, accepted for variety goals, but never used for single goals.
REAGENT_GOAL_HARD
+
+
+
+ Hard reagent, ask for a little for single goals.
REAGENT_GOAL_NORMAL
+
+
+
+ Normal reagent, ask for a middling amount for single goals.
REAGENT_GOAL_SKIP
+
+
+
+ Used for secondary goals.
+TOO easy, not accepted for variety goals.
SYNTHFLESH_UNHUSK_AMOUNT
+
+
+
+ Amount of synthflesh required to unhusk someone
SYRINGE_DRAW
+
+
+
+ Syringe mob interaction modes
UNHUSK_DAMAGE_THRESHOLD
+
+
+
+ Health threshold for synthflesh and rezadone to unhusk someone
+
+
+
diff --git a/code/__DEFINES/rust_g.html b/code/__DEFINES/rust_g.html
new file mode 100644
index 0000000000000..c7b04acc98c92
--- /dev/null
+++ b/code/__DEFINES/rust_g.html
@@ -0,0 +1,236 @@
+
+
+
+
+
+
+ code/__DEFINES/rust_g.dm - Space Station 13
+
+
+
+
+code/__DEFINES/rust_g.dm
+
+
+
+
+ /proc/rustg_get_version
+ Gets the version of rust_g
+ rustg_setup_acreplace Sets up the Aho-Corasick automaton with its default options.
+ rustg_setup_acreplace_with_options Sets up the Aho-Corasick automaton using supplied options.
+ rustg_acreplace Run the specified replacement engine with the provided haystack text to replace, returning replaced text.
+ rustg_acreplace_with_replacements Run the specified replacement engine with the provided haystack text to replace, returning replaced text.
+ rustg_cnoise_generate This proc generates a cellular automata noise grid which can be used in procedural generation methods.
+ rustg_dbp_generate This proc generates a grid of perlin-like noise
+ rustg_dmi_icon_states input: must be a path, not an /icon; you have to do your own handling if it is one, as icon objects can't be directly passed to rustg.
+ rustg_register_nodes_astar Register a list of nodes into a rust library. This list of nodes must have been serialized in a json.
+Node {// Index of this node in the list of nodes
+unique_id: usize,
+// Position of the node in byond
+x: usize,
+y: usize,
+z: usize,
+// Indexes of nodes connected to this one
+connected_nodes_id: Vec}
+It is important that the node with the unique_id 0 is the first in the json, unique_id 1 right after that, etc.
+It is also important that all unique ids follow. {0, 1, 2, 4} is not a correct list and the registering will fail
+Nodes should not link across z levels.
+A node cannot link twice to the same node and shouldn't link itself either
+ rustg_add_node_astar Add a new node to the static list of nodes. Same rule as registering_nodes applies.
+This node unique_id must be equal to the current length of the static list of nodes
+ rustg_remove_node_astart *²
+ rustg_generate_path_astar Compute the shortest path between start_node and goal_node using A*. Heuristic used is simple geometric distance
+ rustg_redis_connect_rq Connects to a given redis server.
+ /proc/rustg_redis_disconnect_rq
+ Disconnects from a previously connected redis server
+ rustg_redis_lpush https://redis.io/commands/lpush/
+ rustg_redis_lrange https://redis.io/commands/lrange/
+ rustg_redis_lpop https://redis.io/commands/lpop/
+ /proc/rustg_unix_timestamp
+ Returns the timestamp as a string
+ rustg_worley_generate This proc generates a noise grid using worley noise algorithm
Define Details
+rustg_acreplace
+
+
+
+
+ Run the specified replacement engine with the provided haystack text to replace, returning replaced text.
+Arguments:
+
+key - The key for the automaton
+text - Text to run replacements on
+ rustg_acreplace_with_replacements
+ (key, text, replacements)
+
+
+
+ Run the specified replacement engine with the provided haystack text to replace, returning replaced text.
+Arguments:
+
+key - The key for the automaton
+text - Text to run replacements on
+replacements - Replacements for this call. Must be the same length as the set-up patterns
+ rustg_add_node_astar
+
+
+
+
+ Add a new node to the static list of nodes. Same rule as registering_nodes applies.
+This node unique_id must be equal to the current length of the static list of nodes
rustg_cnoise_generate
+ (percentage, smoothing_iterations, birth_limit, death_limit, width, height)
+
+
+
+ This proc generates a cellular automata noise grid which can be used in procedural generation methods.
+Returns a single string that goes row by row, with values of 1 representing an alive cell, and a value of 0 representing a dead cell.
+Arguments:
+
+percentage: The chance of a turf starting closed
+smoothing_iterations: The amount of iterations the cellular automata simulates before returning the results
+birth_limit: If the number of neighboring cells is higher than this amount, a cell is born
+death_limit: If the number of neighboring cells is lower than this amount, a cell dies
+width: The width of the grid.
+height: The height of the grid.
+ rustg_dbp_generate
+ (seed, accuracy, stamp_size, world_size, lower_range, upper_range)
+
+
+
+ This proc generates a grid of perlin-like noise
+Returns a single string that goes row by row, with values of 1 representing an turned on cell, and a value of 0 representing a turned off cell.
+Arguments:
+
+seed: seed for the function
+accuracy: how close this is to the original perlin noise, as accuracy approaches infinity, the noise becomes more and more perlin-like
+stamp_size: Size of a singular stamp used by the algorithm, think of this as the same stuff as frequency in perlin noise
+world_size: size of the returned grid.
+lower_range: lower bound of values selected for. (inclusive)
+upper_range: upper bound of values selected for. (exclusive)
+ rustg_dmi_icon_states
+
+
+
+
+ input: must be a path, not an /icon; you have to do your own handling if it is one, as icon objects can't be directly passed to rustg.
+output: json_encode'd list. json_decode to get a flat list with icon states in the order they're in inside the .dmi
rustg_generate_path_astar
+ (start_node_id, goal_node_id)
+
+
+
+ Compute the shortest path between start_node and goal_node using A*. Heuristic used is simple geometric distance
rustg_redis_connect_rq
+
+
+
+
+ Connects to a given redis server.
+Arguments:
+
+addr - The address of the server, for example "redis://127.0.0.1/"
+ rustg_redis_lpop
+
+
+
+
+ https://redis.io/commands/lpop/
+Arguments
+
+key (string) - The key to use
+count (string|null) - The amount to pop off the list, pass null to omit (thus just 1)
+
+Note: count
was added in Redis version 6.2.0
rustg_redis_lpush
+
+
+
+
+ https://redis.io/commands/lpush/
+Arguments
+
+key (string) - The key to use
+elements (list) - The elements to push, use a list even if there's only one element.
+ rustg_redis_lrange
+
+
+
+
+ https://redis.io/commands/lrange/
+Arguments
+
+key (string) - The key to use
+start (string) - The zero-based index to start retrieving at
+stop (string) - The zero-based index to stop retrieving at (inclusive)
+ rustg_register_nodes_astar
+
+
+
+
+ Register a list of nodes into a rust library. This list of nodes must have been serialized in a json.
+Node {// Index of this node in the list of nodes
+unique_id: usize,
+// Position of the node in byond
+x: usize,
+y: usize,
+z: usize,
+// Indexes of nodes connected to this one
+connected_nodes_id: Vec}
+It is important that the node with the unique_id 0 is the first in the json, unique_id 1 right after that, etc.
+It is also important that all unique ids follow. {0, 1, 2, 4} is not a correct list and the registering will fail
+Nodes should not link across z levels.
+A node cannot link twice to the same node and shouldn't link itself either
rustg_remove_node_astart
+
+
+
+
+ *²
+
+Remove every link to the node with unique_id. Replace that node by null
+ rustg_setup_acreplace
+ (key, patterns, replacements)
+
+
+
+ Sets up the Aho-Corasick automaton with its default options.
+The search patterns list and the replacements must be of the same length when replace is run, but an empty replacements list is allowed if replacements are supplied with the replace call
+Arguments:
+
+key - The key for the automaton, to be used with subsequent rustg_acreplace/rustg_acreplace_with_replacements calls
+patterns - A non-associative list of strings to search for
+replacements - Default replacements for this automaton, used with rustg_acreplace
+ rustg_setup_acreplace_with_options
+ (key, options, patterns, replacements)
+
+
+
+ Sets up the Aho-Corasick automaton using supplied options.
+The search patterns list and the replacements must be of the same length when replace is run, but an empty replacements list is allowed if replacements are supplied with the replace call
+Arguments:
+
+key - The key for the automaton, to be used with subsequent rustg_acreplace/rustg_acreplace_with_replacements calls
+options - An associative list like list("anchored" = 0, "ascii_case_insensitive" = 0, "match_kind" = "Standard"). The values shown on the example are the defaults, and default values may be omitted. See the identically named methods at https://docs.rs/aho-corasick/latest/aho_corasick/struct.AhoCorasickBuilder.html to see what the options do.
+patterns - A non-associative list of strings to search for
+replacements - Default replacements for this automaton, used with rustg_acreplace
+ rustg_worley_generate
+ (region_size, threshold, node_per_region_chance, size, node_min, node_max)
+
+
+
+ This proc generates a noise grid using worley noise algorithm
+Returns a single string that goes row by row, with values of 1 representing an alive cell, and a value of 0 representing a dead cell.
+Arguments:
+
+region_size: The size of regions
+threshold: the value that determines wether a cell is dead or alive
+node_per_region_chance: chance of a node existiing in a region
+size: size of the returned grid
+node_min: minimum amount of nodes in a region (after the node_per_region_chance is applied)
+node_max: maximum amount of nodes in a region
+
+
+
+
diff --git a/code/__DEFINES/sound_defines.html b/code/__DEFINES/sound_defines.html
new file mode 100644
index 0000000000000..9648f533ac480
--- /dev/null
+++ b/code/__DEFINES/sound_defines.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+ code/__DEFINES/sound_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/sound_defines.dm
+
+
+
+Define Details
+
+ default extra range for sounds considered to be quieter
+ The range deducted from sound range for things that are considered silent / sneaky
SOUND_DEFAULT_FALLOFF_DISTANCE
+
+
+
+ Percentage of sound's range where no falloff is applied
SOUND_FALLOFF_EXPONENT
+
+
+
+ The default exponent of sound falloff
SOUND_RANGE
+
+
+
+ Default range of a sound.
SOUND_RANGE_SET
+
+
+
+
+ Easy-to-math sound range for simpler coding with specific variables. Insert the exact range you wish the sound to be heard from.
+
+
+
diff --git a/code/__DEFINES/station_defines.html b/code/__DEFINES/station_defines.html
new file mode 100644
index 0000000000000..cdc5673983687
--- /dev/null
+++ b/code/__DEFINES/station_defines.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ code/__DEFINES/station_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/station_defines.dm
+
+
+
+Define Details
+FUTURE_STATION_TRAITS_FILE
+
+
+
+ The data file that future station traits forced by an admin are stored in
STATION_TRAIT_ABSTRACT
+
+
+
+ For traits that shouldn't be selected, like abstract types (wow)
STATION_TRAIT_MAP_UNRESTRICTED
+
+
+
+ Not restricted by space or planet, can always just happen
STATION_TRAIT_PLANETARY
+
+
+
+ Only run on planet stations
STATION_TRAIT_SPACE_BOUND
+
+
+
+ Only run on space stations
+
+
+
diff --git a/code/__DEFINES/station_goals.html b/code/__DEFINES/station_goals.html
new file mode 100644
index 0000000000000..348115397e1a9
--- /dev/null
+++ b/code/__DEFINES/station_goals.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ code/__DEFINES/station_goals.dm - Space Station 13
+
+
+
+
+code/__DEFINES/station_goals.dm
+
+
+
+
+ REAGENT_GOAL_FORGIVENESS How many units can be missing from a reagent and still count to the goal.
+Prevents floationg point rounding from making you fail even though you
+seemed to have sent enough.
Define Details
+REAGENT_GOAL_FORGIVENESS
+
+
+
+ How many units can be missing from a reagent and still count to the goal.
+Prevents floationg point rounding from making you fail even though you
+seemed to have sent enough.
+
+
+
diff --git a/code/__DEFINES/status_effects.html b/code/__DEFINES/status_effects.html
new file mode 100644
index 0000000000000..6e6c99d42a37c
--- /dev/null
+++ b/code/__DEFINES/status_effects.html
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+ code/__DEFINES/status_effects.dm - Space Station 13
+
+
+
+
+code/__DEFINES/status_effects.dm
+
+
+
+Define Details
+STATUS_EFFECT_BURNT_WINGS
+
+
+
+ Whether a moth's wings are burnt
STATUS_EFFECT_COCOONED
+
+
+
+ If a moth is in a cocoon
STATUS_EFFECT_FAKE_VIRUS
+
+
+
+ gives you fluff messages for cough, sneeze, headache, etc but without an actual virus
STATUS_EFFECT_FLESHMEND
+
+
+
+ Rapid burn/brute/oxy/blood healing from the cling ability
STATUS_EFFECT_LWAPSCOPE
+
+
+
+ This status effect lets the user see the lwap dots.
STATUS_EFFECT_OFFERING_ITEM
+
+
+
+ Status effect given when someone uses the Give Item command to offer an item to another player.
STATUS_EFFECT_REMOVE_CUFFS
+
+
+
+ Status effects for different actions
STATUS_EFFECT_REVIVABLE
+
+
+
+ This status effect allows a mob to be revived with a defibrillator.
STATUS_EFFECT_TELEPORT_ROULETTE
+
+
+
+ Causes a random safe teleport every 2 seconds for a limited time
+
+
+
diff --git a/code/__DEFINES/strippable_defines.html b/code/__DEFINES/strippable_defines.html
new file mode 100644
index 0000000000000..be3d029118ddb
--- /dev/null
+++ b/code/__DEFINES/strippable_defines.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/__DEFINES/strippable_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/strippable_defines.dm
+
+
+
+Define Details
+STRIPPABLE_OBSCURING_COMPLETELY
+
+
+
+ This slot is completely obscured, and cannot be accessed.
STRIPPABLE_OBSCURING_HIDDEN
+
+
+
+ This slot can't be seen, but can be accessed.
STRIPPABLE_OBSCURING_NONE
+
+
+
+ This slot is not obscured.
+
+
+
diff --git a/code/__DEFINES/subsystems.html b/code/__DEFINES/subsystems.html
new file mode 100644
index 0000000000000..3d313e57b510f
--- /dev/null
+++ b/code/__DEFINES/subsystems.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/subsystems.dm - Space Station 13
+
+
+
+
+code/__DEFINES/subsystems.dm
+
+
+
+
+ TIMER_DELETE_ME Delete the timer on parent datum Destroy() and when deltimer'd
Define Details
+TIMER_DELETE_ME
+
+
+
+ Delete the timer on parent datum Destroy() and when deltimer'd
+
+
+
diff --git a/code/__DEFINES/surgery_defines.html b/code/__DEFINES/surgery_defines.html
new file mode 100644
index 0000000000000..705d0364420de
--- /dev/null
+++ b/code/__DEFINES/surgery_defines.html
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+ code/__DEFINES/surgery_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/surgery_defines.dm
+
+
+
+
+ SURGERY_BLOODSPREAD_NONE Defines for surgery and other stuff.
+Don't splash any blood.
+ SURGERY_BLOODSPREAD_HANDS Cover the surgeon's hands in blood.
+ SURGERY_BLOODSPREAD_FULLBODY Cover the surgeon's body in blood.
+ SURGERY_INITIATOR_ORGANIC An initiator with this can start surgeries on organic organs. Make sure that anything that can be sharp gets this as well.
+ SURGERY_INITIATOR_ROBOTIC An initiator with this can start surgeries on robotic organs.
+ ORGAN_CLOSED Closed up.
+ ORGAN_ORGANIC_OPEN An organic limb that's been opened, at least once.
+ ORGAN_ORGANIC_ENCASED_OPEN An organ that's encased, probably with bone, where that casing has been cut through.
+ ORGAN_ORGANIC_VIOLENT_OPEN An organ that has been violently opened, likely via damage.
+ ORGAN_SYNTHETIC_LOOSENED Synthetic organ that's been unscrewed.
+ ORGAN_SYNTHETIC_OPEN Synthetic organ that's had its panel opened.
+ SURGERY_BEGINSTEP_ABORT Return this from begin_step() to abort the step and not try the surgery.
+ SURGERY_BEGINSTEP_SKIP Return this from begin_step() to skip the current step entirely and proceed to the next one.
+Use this if you would end up leaving someone in an invalid state.
+ SURGERY_STEP_INCOMPLETE The surgery step was not completed for some reason, and the next action will again be on this step.
+ SURGERY_STEP_CONTINUE The surgery step was completed, and the surgery should continue to the next step.
+ SURGERY_STEP_RETRY_ALWAYS This step will automatically be retried without question as long as this is returned.
+Be very cautious with this one! Make sure that any flow where this is used has an exit condition where something else will be returned.
+Otherwise, the user will be stuck in a loop!
+ SURGERY_STEP_RETRY This surgery step will be conditionally retried, so long as the surgery step's can_repeat() proc returns TRUE.
+Otherwise, it'll behave just like SURGERY_STEP_INCOMPLETE.
+ SURGERY_INITIATE_CONTINUE_CHAIN The surgery initiation isn't even going to be started. If you're working with the attack chain, this is probably what you'll be using.
+ SURGERY_INITIATE_SUCCESS The surgery initiaition was a success. We're advancing the current surgery.
+ SURGERY_INITIATE_FAILURE The surgery initiation was interrupted, or for some reason never completed. We don't want to return FALSE to the attack chain, though.
+ SURGERY_INITIATE_INTERRUPTED The surgery never reached (or finished) the do_after. Go back to the state we were in before this even happened.
Define Details
+ORGAN_CLOSED
+
+
+
+ Closed up.
ORGAN_ORGANIC_ENCASED_OPEN
+
+
+
+ An organ that's encased, probably with bone, where that casing has been cut through.
ORGAN_ORGANIC_OPEN
+
+
+
+ An organic limb that's been opened, at least once.
ORGAN_ORGANIC_VIOLENT_OPEN
+
+
+
+ An organ that has been violently opened, likely via damage.
ORGAN_SYNTHETIC_LOOSENED
+
+
+
+ Synthetic organ that's been unscrewed.
ORGAN_SYNTHETIC_OPEN
+
+
+
+ Synthetic organ that's had its panel opened.
SURGERY_BEGINSTEP_ABORT
+
+
+
+ Return this from begin_step() to abort the step and not try the surgery.
SURGERY_BEGINSTEP_SKIP
+
+
+
+ Return this from begin_step() to skip the current step entirely and proceed to the next one.
+Use this if you would end up leaving someone in an invalid state.
SURGERY_BLOODSPREAD_FULLBODY
+
+
+
+ Cover the surgeon's body in blood.
SURGERY_BLOODSPREAD_HANDS
+
+
+
+ Cover the surgeon's hands in blood.
SURGERY_BLOODSPREAD_NONE
+
+
+
+ Defines for surgery and other stuff.
+Don't splash any blood.
SURGERY_INITIATE_CONTINUE_CHAIN
+
+
+
+ The surgery initiation isn't even going to be started. If you're working with the attack chain, this is probably what you'll be using.
SURGERY_INITIATE_FAILURE
+
+
+
+ The surgery initiation was interrupted, or for some reason never completed. We don't want to return FALSE to the attack chain, though.
SURGERY_INITIATE_INTERRUPTED
+
+
+
+ The surgery never reached (or finished) the do_after. Go back to the state we were in before this even happened.
SURGERY_INITIATE_SUCCESS
+
+
+
+ The surgery initiaition was a success. We're advancing the current surgery.
SURGERY_INITIATOR_ORGANIC
+
+
+
+ An initiator with this can start surgeries on organic organs. Make sure that anything that can be sharp gets this as well.
SURGERY_INITIATOR_ROBOTIC
+
+
+
+ An initiator with this can start surgeries on robotic organs.
SURGERY_STEP_CONTINUE
+
+
+
+ The surgery step was completed, and the surgery should continue to the next step.
SURGERY_STEP_INCOMPLETE
+
+
+
+ The surgery step was not completed for some reason, and the next action will again be on this step.
SURGERY_STEP_RETRY
+
+
+
+ This surgery step will be conditionally retried, so long as the surgery step's can_repeat() proc returns TRUE.
+Otherwise, it'll behave just like SURGERY_STEP_INCOMPLETE.
SURGERY_STEP_RETRY_ALWAYS
+
+
+
+ This step will automatically be retried without question as long as this is returned.
+Be very cautious with this one! Make sure that any flow where this is used has an exit condition where something else will be returned.
+Otherwise, the user will be stuck in a loop!
+
+
+
diff --git a/code/__DEFINES/text_defines.html b/code/__DEFINES/text_defines.html
new file mode 100644
index 0000000000000..f4baecdbfa98f
--- /dev/null
+++ b/code/__DEFINES/text_defines.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ code/__DEFINES/text_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/text_defines.dm
+
+
+
+
+ MAX_CHARACTERS_PER_BOOKPAGE Max Characters that can be on a single book page, this will give players an average of 5000 words worth of writing space (1000 per page)
+ SANITIZE_FILENAME Removes characters incompatible with file names.
Define Details
+MAX_CHARACTERS_PER_BOOKPAGE
+
+
+
+ Max Characters that can be on a single book page, this will give players an average of 5000 words worth of writing space (1000 per page)
SANITIZE_FILENAME
+
+
+
+
+ Removes characters incompatible with file names.
+
+
+
diff --git a/code/__DEFINES/tg_cooldowns.html b/code/__DEFINES/tg_cooldowns.html
new file mode 100644
index 0000000000000..796df0b4e9536
--- /dev/null
+++ b/code/__DEFINES/tg_cooldowns.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/tg_cooldowns.dm - Space Station 13
+
+
+
+
+code/__DEFINES/tg_cooldowns.dm
+
+
+
+Define Details
+MOB_SHARED_COOLDOWN_1
+
+
+
+ COOLDOWN SYSTEMS
+
+
+
diff --git a/code/__DEFINES/tgs.html b/code/__DEFINES/tgs.html
new file mode 100644
index 0000000000000..73362a02e20a8
--- /dev/null
+++ b/code/__DEFINES/tgs.html
@@ -0,0 +1,232 @@
+
+
+
+
+
+
+ code/__DEFINES/tgs.dm - Space Station 13
+
+
+
+
+code/__DEFINES/tgs.dm
+
+
+
+
+ TGS_EVENT_REBOOT_MODE_CHANGE Create this define if you want to do TGS configuration outside of this file.
+Before a reboot mode change, extras parameters are the current and new reboot mode enums.
+ TGS_EVENT_PORT_SWAP Before a port change is about to happen, extra parameters is new port.
+ TGS_EVENT_INSTANCE_RENAMED Before the instance is renamed, extra parameter is the new name.
+ TGS_EVENT_WATCHDOG_REATTACH After the watchdog reattaches to DD, extra parameter is the new /datum/tgs_version of the server.
+ TGS_EVENT_HEALTH_CHECK When the watchdog sends a health check to DD. No parameters.
+ TGS_EVENT_REPO_RESET_ORIGIN When the repository is reset to its origin reference. Parameters: Reference name, Commit SHA.
+ TGS_EVENT_REPO_CHECKOUT When the repository performs a checkout. Parameters: Checkout git object.
+ TGS_EVENT_REPO_FETCH When the repository performs a fetch operation. No parameters.
+ TGS_EVENT_REPO_MERGE_PULL_REQUEST When the repository test merges. Parameters: PR Number, PR Sha, (Nullable) Comment made by TGS user.
+ TGS_EVENT_REPO_PRE_SYNCHRONIZE Before the repository makes a sychronize operation. Parameters: Absolute repostiory path.
+ TGS_EVENT_ENGINE_INSTALL_START Before a engine install operation begins. Parameters: Version string of the installing engine.
+ TGS_EVENT_ENGINE_INSTALL_FAIL When a engine install operation fails. Parameters: Error message
+ TGS_EVENT_ENGINE_ACTIVE_VERSION_CHANGE When the active engine version changes. Parameters: (Nullable) Version string of the current engine, version string of the new engine.
+ TGS_EVENT_COMPILE_START When the compiler starts running. Parameters: Game directory path, origin commit SHA.
+ TGS_EVENT_COMPILE_CANCELLED When a compile is cancelled. No parameters.
+ TGS_EVENT_COMPILE_FAILURE When a compile fails. Parameters: Game directory path, [TRUE]/[FALSE] based on if the cause for failure was DMAPI validation.
+ TGS_EVENT_COMPILE_COMPLETE When a compile operation completes. Note, this event fires before the new .dmb is loaded into the watchdog. Consider using the TGS_EVENT_DEPLOYMENT_COMPLETE instead. Parameters: Game directory path.
+ TGS_EVENT_INSTANCE_AUTO_UPDATE_START When an automatic update for the current instance begins. No parameters.
+ TGS_EVENT_REPO_MERGE_CONFLICT When the repository encounters a merge conflict: Parameters: Base SHA, target SHA, base reference, target reference.
+ TGS_EVENT_DEPLOYMENT_COMPLETE When a deployment completes. No Parameters.
+ TGS_EVENT_WATCHDOG_SHUTDOWN Before the watchdog shuts down. Not sent for graceful shutdowns. No parameters.
+ TGS_EVENT_WATCHDOG_DETACH Before the watchdog detaches for a TGS update/restart. No parameters.
+ TGS_EVENT_WORLD_PRIME Watchdog event when TgsInitializationComplete() is called. No parameters.
+ TGS_EVENT_REPO_SUBMODULE_UPDATE After a single submodule update is performed. Parameters: Updated submodule name.
+ TGS_EVENT_PRE_DREAM_MAKER After CodeModifications are applied, before DreamMaker is run. Parameters: Game directory path, origin commit sha, version string of the used engine.
+ TGS_EVENT_DEPLOYMENT_CLEANUP Whenever a deployment folder is deleted from disk. Parameters: Game directory path.
+ TGS_REBOOT_MODE_NORMAL The server will reboot normally.
+ TGS_REBOOT_MODE_SHUTDOWN The server will stop running on reboot.
+ TGS_REBOOT_MODE_RESTART The watchdog will restart on reboot.
+ TGS_SECURITY_TRUSTED DreamDaemon Trusted security level.
+ TGS_SECURITY_SAFE DreamDaemon Safe security level.
+ TGS_SECURITY_ULTRASAFE DreamDaemon Ultrasafe security level.
+ TGS_VISIBILITY_PUBLIC DreamDaemon public visibility level.
+ TGS_VISIBILITY_PRIVATE DreamDaemon private visibility level.
+ TGS_VISIBILITY_INVISIBLE DreamDaemon invisible visibility level.
+ TGS_ENGINE_TYPE_BYOND The Build Your Own Net Dream engine.
+ TGS_ENGINE_TYPE_OPENDREAM The OpenDream engine.
+ TGS_TOPIC Put this at the start of [/world/proc/Topic].
+ /datum/tgs_revision_information Represents git revision information.
+ /datum/tgs_version Represents a version.
+ /datum/tgs_revision_information/test_merge Represents a merge of a GitHub pull request.
+ /datum/tgs_chat_channel Represents a connected chat channel.
+ /datum/tgs_event_handler User definable handler for TGS events.
+ /datum/tgs_chat_command User definable chat command.
+ /datum/tgs_message_content User definable chat message.
+ /datum/tgs_chat_embed/structure User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/channel#embed-object-embed-structure for details.
+ /datum/tgs_chat_embed/media Common datum for similar discord embed medias.
+ /datum/tgs_chat_embed/footer See https://discord.com/developers/docs/resources/channel#embed-object-embed-footer-structure for details.
+ /datum /tgs_chat_embed/provider See https://discord.com/developers/docs/resources/channel#embed-object-embed-provider-structure for details.
+ /datum /tgs_chat_embed/provider/author See https://discord.com/developers/docs/resources/channel#embed-object-embed-author-structure for details. Must have name set in New().
+ /datum /tgs_chat_embed/field See https://discord.com/developers/docs/resources/channel#embed-object-embed-field-structure for details. Must have name and value set in New().
Define Details
+TGS_ENGINE_TYPE_BYOND
+
+
+
+ The Build Your Own Net Dream engine.
TGS_ENGINE_TYPE_OPENDREAM
+
+
+
+ The OpenDream engine.
TGS_EVENT_COMPILE_CANCELLED
+
+
+
+ When a compile is cancelled. No parameters.
TGS_EVENT_COMPILE_COMPLETE
+
+
+
+ When a compile operation completes. Note, this event fires before the new .dmb is loaded into the watchdog. Consider using the TGS_EVENT_DEPLOYMENT_COMPLETE instead. Parameters: Game directory path.
TGS_EVENT_COMPILE_FAILURE
+
+
+
+ When a compile fails. Parameters: Game directory path, [TRUE]/[FALSE] based on if the cause for failure was DMAPI validation.
TGS_EVENT_COMPILE_START
+
+
+
+ When the compiler starts running. Parameters: Game directory path, origin commit SHA.
TGS_EVENT_DEPLOYMENT_CLEANUP
+
+
+
+ Whenever a deployment folder is deleted from disk. Parameters: Game directory path.
TGS_EVENT_DEPLOYMENT_COMPLETE
+
+
+
+ When a deployment completes. No Parameters.
TGS_EVENT_ENGINE_ACTIVE_VERSION_CHANGE
+
+
+
+ When the active engine version changes. Parameters: (Nullable) Version string of the current engine, version string of the new engine.
TGS_EVENT_ENGINE_INSTALL_FAIL
+
+
+
+ When a engine install operation fails. Parameters: Error message
TGS_EVENT_ENGINE_INSTALL_START
+
+
+
+ Before a engine install operation begins. Parameters: Version string of the installing engine.
TGS_EVENT_HEALTH_CHECK
+
+
+
+ When the watchdog sends a health check to DD. No parameters.
TGS_EVENT_INSTANCE_AUTO_UPDATE_START
+
+
+
+ When an automatic update for the current instance begins. No parameters.
TGS_EVENT_INSTANCE_RENAMED
+
+
+
+ Before the instance is renamed, extra parameter is the new name.
TGS_EVENT_PORT_SWAP
+
+
+
+ Before a port change is about to happen, extra parameters is new port.
TGS_EVENT_PRE_DREAM_MAKER
+
+
+
+ After CodeModifications are applied, before DreamMaker is run. Parameters: Game directory path, origin commit sha, version string of the used engine.
TGS_EVENT_REBOOT_MODE_CHANGE
+
+
+
+ Create this define if you want to do TGS configuration outside of this file.
+Before a reboot mode change, extras parameters are the current and new reboot mode enums.
TGS_EVENT_REPO_CHECKOUT
+
+
+
+ When the repository performs a checkout. Parameters: Checkout git object.
TGS_EVENT_REPO_FETCH
+
+
+
+ When the repository performs a fetch operation. No parameters.
TGS_EVENT_REPO_MERGE_CONFLICT
+
+
+
+ When the repository encounters a merge conflict: Parameters: Base SHA, target SHA, base reference, target reference.
TGS_EVENT_REPO_MERGE_PULL_REQUEST
+
+
+
+ When the repository test merges. Parameters: PR Number, PR Sha, (Nullable) Comment made by TGS user.
TGS_EVENT_REPO_PRE_SYNCHRONIZE
+
+
+
+ Before the repository makes a sychronize operation. Parameters: Absolute repostiory path.
TGS_EVENT_REPO_RESET_ORIGIN
+
+
+
+ When the repository is reset to its origin reference. Parameters: Reference name, Commit SHA.
TGS_EVENT_REPO_SUBMODULE_UPDATE
+
+
+
+ After a single submodule update is performed. Parameters: Updated submodule name.
TGS_EVENT_WATCHDOG_DETACH
+
+
+
+ Before the watchdog detaches for a TGS update/restart. No parameters.
TGS_EVENT_WATCHDOG_REATTACH
+
+
+
+ After the watchdog reattaches to DD, extra parameter is the new /datum/tgs_version of the server.
TGS_EVENT_WATCHDOG_SHUTDOWN
+
+
+
+ Before the watchdog shuts down. Not sent for graceful shutdowns. No parameters.
TGS_EVENT_WORLD_PRIME
+
+
+
+ Watchdog event when TgsInitializationComplete() is called. No parameters.
TGS_REBOOT_MODE_NORMAL
+
+
+
+ The server will reboot normally.
TGS_REBOOT_MODE_RESTART
+
+
+
+ The watchdog will restart on reboot.
TGS_REBOOT_MODE_SHUTDOWN
+
+
+
+ The server will stop running on reboot.
TGS_SECURITY_SAFE
+
+
+
+ DreamDaemon Safe security level.
TGS_SECURITY_TRUSTED
+
+
+
+ DreamDaemon Trusted security level.
TGS_SECURITY_ULTRASAFE
+
+
+
+ DreamDaemon Ultrasafe security level.
TGS_TOPIC
+
+
+
+ Put this at the start of [/world/proc/Topic].
TGS_VISIBILITY_INVISIBLE
+
+
+
+ DreamDaemon invisible visibility level.
TGS_VISIBILITY_PRIVATE
+
+
+
+ DreamDaemon private visibility level.
TGS_VISIBILITY_PUBLIC
+
+
+
+ DreamDaemon public visibility level.
+
+
+
diff --git a/code/__DEFINES/tgui_defines.html b/code/__DEFINES/tgui_defines.html
new file mode 100644
index 0000000000000..cc5b467297a39
--- /dev/null
+++ b/code/__DEFINES/tgui_defines.html
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+ code/__DEFINES/tgui_defines.dm - Space Station 13
+
+
+
+
+code/__DEFINES/tgui_defines.dm
+
+
+
+Define Details
+TGUI_CREATE_MESSAGE
+
+
+
+
+ Creates a message packet for sending via output()
TGUI_PING_TIMEOUT
+
+
+
+ Maximum ping timeout allowed to detect zombie windows
TGUI_REFRESH_FULL_UPDATE_COOLDOWN
+
+
+
+ Used for rate-limiting to prevent DoS by excessively refreshing a TGUI window
TGUI_WINDOW_CLOSED
+
+
+
+ Window does not exist
TGUI_WINDOW_HARD_LIMIT
+
+
+
+ Maximum number of open windows
TGUI_WINDOW_ID
+
+
+
+
+ Get a window id based on the provided pool index
TGUI_WINDOW_INDEX
+
+
+
+
+ Get a pool index of the provided window id
TGUI_WINDOW_LOADING
+
+
+
+ Window was just opened, but is still not ready to be sent data
TGUI_WINDOW_READY
+
+
+
+ Window is free and ready to receive data
TGUI_WINDOW_SOFT_LIMIT
+
+
+
+ Maximum number of windows that can be suspended/reused
UI_CLOSE
+
+
+
+ UI Should close
UI_DISABLED
+
+
+
+ Red eye; disabled, does not update
UI_INTERACTIVE
+
+
+
+ Green eye; fully interactive
UI_UPDATE
+
+
+
+ Orange eye; updates but is not interactive
+
+
+
diff --git a/code/__DEFINES/turfs.html b/code/__DEFINES/turfs.html
new file mode 100644
index 0000000000000..777e80dbcc900
--- /dev/null
+++ b/code/__DEFINES/turfs.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/__DEFINES/turfs.dm - Space Station 13
+
+
+
+
+code/__DEFINES/turfs.dm
+
+
+
+Define Details
+TURF_PATHING_PASS_DENSITY
+
+
+
+ Turf will be passable if density is 0
TURF_PATHING_PASS_NO
+
+
+
+ Turf is never passable
TURF_PATHING_PASS_PROC
+
+
+
+ Turf will be passable depending on [CanPathfindPass] return value
+
+
+
diff --git a/code/__DEFINES/verb_manager.html b/code/__DEFINES/verb_manager.html
new file mode 100644
index 0000000000000..adb1a5e2ddb9c
--- /dev/null
+++ b/code/__DEFINES/verb_manager.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+ code/__DEFINES/verb_manager.dm - Space Station 13
+
+
+
+
+code/__DEFINES/verb_manager.dm
+
+
+
+
+ VERB_OVERTIME_QUEUE_THRESHOLD verb queuing thresholds. remember that since verbs execute after SendMaps the player wont see the effects of the verbs on the game world
+until SendMaps executes next tick, and then when that later update reaches them. thus most player input has a minimum latency of world.tick_lag + player ping.
+however thats only for the visual effect of player input, when a verb processes the actual latency of game state changes or semantic latency is effectively 1/2 player ping,
+unless that verb is queued for the next tick in which case its some number probably smaller than world.tick_lag.
+so some verbs that represent player input are important enough that we only introduce semantic latency if we absolutely need to.
+its for this reason why player clicks are handled in SSinput before even movement - semantic latency could cause someone to move out of range
+when the verb finally processes but it was in range if the verb had processed immediately and overtimed.
+queuing tick_usage threshold for verbs that are high enough priority that they only queue if the server is overtiming.
+ONLY use for critical verbs
+ VERB_HIGH_PRIORITY_QUEUE_THRESHOLD queuing tick_usage threshold for verbs that need lower latency more than most verbs.
+ VERB_DEFAULT_QUEUE_THRESHOLD default queuing tick_usage threshold for most verbs which can allow a small amount of latency to be processed in the next tick
+ TRY_QUEUE_VERB attempt to queue this verb process if the server is overloaded. evaluates to FALSE if queuing isnt necessary or if it failed.
+_verification_args... are only necessary if the verb_manager subsystem youre using checks them in can_queue_verb()
+if you put anything in _verification_args that ISNT explicitely put in the can_queue_verb() override of the subsystem youre using,
+it will runtime.
+ QUEUE_OR_CALL_VERB queue wrapper for TRY_QUEUE_VERB() when you want to call the proc if the server isnt overloaded enough to queue
Define Details
+QUEUE_OR_CALL_VERB
+ (_verb_callback, _tick_check, _subsystem_to_use, _verification_args ...)
+
+
+
+ queue wrapper for TRY_QUEUE_VERB() when you want to call the proc if the server isnt overloaded enough to queue
TRY_QUEUE_VERB
+ (_verb_callback, _tick_check, _subsystem_to_use, _verification_args ...)
+
+
+
+ attempt to queue this verb process if the server is overloaded. evaluates to FALSE if queuing isnt necessary or if it failed.
+_verification_args... are only necessary if the verb_manager subsystem youre using checks them in can_queue_verb()
+if you put anything in _verification_args that ISNT explicitely put in the can_queue_verb() override of the subsystem youre using,
+it will runtime.
VERB_DEFAULT_QUEUE_THRESHOLD
+
+
+
+ default queuing tick_usage threshold for most verbs which can allow a small amount of latency to be processed in the next tick
VERB_HIGH_PRIORITY_QUEUE_THRESHOLD
+
+
+
+ queuing tick_usage threshold for verbs that need lower latency more than most verbs.
VERB_OVERTIME_QUEUE_THRESHOLD
+
+
+
+ verb queuing thresholds. remember that since verbs execute after SendMaps the player wont see the effects of the verbs on the game world
+until SendMaps executes next tick, and then when that later update reaches them. thus most player input has a minimum latency of world.tick_lag + player ping.
+however thats only for the visual effect of player input, when a verb processes the actual latency of game state changes or semantic latency is effectively 1/2 player ping,
+unless that verb is queued for the next tick in which case its some number probably smaller than world.tick_lag.
+so some verbs that represent player input are important enough that we only introduce semantic latency if we absolutely need to.
+its for this reason why player clicks are handled in SSinput before even movement - semantic latency could cause someone to move out of range
+when the verb finally processes but it was in range if the verb had processed immediately and overtimed.
+queuing tick_usage threshold for verbs that are high enough priority that they only queue if the server is overtiming.
+ONLY use for critical verbs
+
+
+
diff --git a/code/__DEFINES/zoom.html b/code/__DEFINES/zoom.html
new file mode 100644
index 0000000000000..f25f1de5df640
--- /dev/null
+++ b/code/__DEFINES/zoom.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ code/__DEFINES/zoom.dm - Space Station 13
+
+
+
+
+code/__DEFINES/zoom.dm
+
+
+
+
+ ZOOM_METHOD_WIELD How the scope component is toggled.
+Wielding the object with both hands toggles the zoom. Requires the two-handed component to work.
+ ZOOM_METHOD_ITEM_ACTION Activated by clicking an item action button specified by the item_action_type
var.
Define Details
+ZOOM_METHOD_ITEM_ACTION
+
+
+
+ Activated by clicking an item action button specified by the item_action_type
var.
ZOOM_METHOD_WIELD
+
+
+
+ How the scope component is toggled.
+Wielding the object with both hands toggles the zoom. Requires the two-handed component to work.
+
+
+
diff --git a/code/__HELPERS/api.html b/code/__HELPERS/api.html
new file mode 100644
index 0000000000000..aadf12a6bce07
--- /dev/null
+++ b/code/__HELPERS/api.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/api.dm - Space Station 13
+
+
+
+
+code/__HELPERS/api.dm
+
+
+
+
+
+
+
diff --git a/code/__HELPERS/bitflag_lists.html b/code/__HELPERS/bitflag_lists.html
new file mode 100644
index 0000000000000..4a8b3a008d2d7
--- /dev/null
+++ b/code/__HELPERS/bitflag_lists.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ code/__HELPERS/bitflag_lists.dm - Space Station 13
+
+
+
+
+code/__HELPERS/bitflag_lists.dm
+
+
+
+
+ SET_BITFLAG_LIST System for storing bitflags past the 24 limit, making use of an associative list.
Define Details
+SET_BITFLAG_LIST
+
+
+
+
+ System for storing bitflags past the 24 limit, making use of an associative list.
+Macro converts a list of integers into an associative list of bitflag entries for quicker comparison.
+Example: list(0, 4, 26, 32)) => list( "0" = ( (1<<0) | (1<<4) ), "1" = ( (1<<2) | (1<<8) ) )
+Lists are cached into a global list of lists to avoid identical duplicates.
+This system makes value comparisons faster than pairing every element of one list with every element of the other for evaluation.
+Arguments:
+
+target - List of integers.
+
+
+
+
diff --git a/code/__HELPERS/files.html b/code/__HELPERS/files.html
new file mode 100644
index 0000000000000..d54180a8ec07c
--- /dev/null
+++ b/code/__HELPERS/files.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/__HELPERS/files.dm - Space Station 13
+
+
+
+
+code/__HELPERS/files.dm
+
+
+
+
+ /proc/md5filepath
+ Returns the md5 of a file at a given path.
+ /proc/md5asfile
+ Save file as an external file then md5 it.
+Used because md5ing files stored in the rsc sometimes gives incorrect md5 results.
+
+
+
diff --git a/code/__HELPERS/game.html b/code/__HELPERS/game.html
new file mode 100644
index 0000000000000..bd310d3e2c727
--- /dev/null
+++ b/code/__HELPERS/game.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/__HELPERS/game.dm - Space Station 13
+
+
+
+
+code/__HELPERS/game.dm
+
+
+
+
+ /proc/get_valid_vent_spawns
+ Returns a list of vents that can be used as a potential spawn if they meet the criteria set by the arguments
+ /proc/get_bbox_of_atoms
+ Get a bounding box of a list of atoms.
+
+
+
diff --git a/code/__HELPERS/global_lists.html b/code/__HELPERS/global_lists.html
new file mode 100644
index 0000000000000..22aa053e395f2
--- /dev/null
+++ b/code/__HELPERS/global_lists.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/global_lists.dm - Space Station 13
+
+
+
+
+code/__HELPERS/global_lists.dm
+
+
+
+
+
+
+
diff --git a/code/__HELPERS/icon_helpers.html b/code/__HELPERS/icon_helpers.html
new file mode 100644
index 0000000000000..6f81e103e2d23
--- /dev/null
+++ b/code/__HELPERS/icon_helpers.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/icon_helpers.dm - Space Station 13
+
+
+
+
+code/__HELPERS/icon_helpers.dm
+
+
+
+
+ /proc/icon_exists
+ Checks if the given iconstate exists in the given file, caching the result. Setting no_sprite to TRUE will print a stack trace ONCE.
+
+
+
diff --git a/code/__HELPERS/iconprocs.html b/code/__HELPERS/iconprocs.html
new file mode 100644
index 0000000000000..4bba5ebf87f6f
--- /dev/null
+++ b/code/__HELPERS/iconprocs.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ code/__HELPERS/iconprocs.dm - Space Station 13
+
+
+
+
+code/__HELPERS/iconprocs.dm
+
+
+
+
+ /proc/generate_and_hash_rsc_file
+ Generates a filename for a given asset.
+Like generate_asset_name(), except returns the rsc reference and the rsc file hash as well as the asset name (sans extension)
+Used so that certain asset files dont have to be hashed twice
+ /proc/get_dummy_savefile
+ Gets a dummy savefile for usage in icon generation.
+Savefiles generated from this proc will be empty.
+ /proc/icon2base64
+ Converts an icon to base64. Operates by putting the icon in the iconCache savefile,
+exporting it as text, and then parsing the base64 from that.
+(This relies on byond automatically storing icons in savefiles as base64)
+ /proc/is_valid_dmi_file
+ given a text string, returns whether it is a valid dmi icons folder path
+ /proc/get_icon_dmi_path
+ Given an icon object, dmi file path, or atom/image/mutable_appearance, attempts to find and return an associated dmi file path.
+A weird quirk about dm is that /icon objects represent both compile-time or dynamic icons in the rsc,
+But stringifying rsc references returns a dmi file path
+ONLY if that icon represents a completely unchanged dmi file from when the game was compiled.
+So if the given object is associated with an icon that was in the rsc when the game was compiled, this returns a path. otherwise it returns ""
+ /proc/icon2asset
+ The dmi file path we attempt to return if the given object argument is associated with a stringifiable icon
+If successful, this looks like "icons/path/to/dmi_file.dmi"
+generate an asset for the given icon or the icon of the given appearance for [thing], and send it to any clients in target.
+Arguments:
+ /proc/costly_icon2asset
+ Costlier version of icon2asset() that uses getFlatIcon() to account for overlays, underlays, etc. Use with extreme moderation, ESPECIALLY on mobs.
+
+
+
diff --git a/code/__HELPERS/lighting_helpers.html b/code/__HELPERS/lighting_helpers.html
new file mode 100644
index 0000000000000..0d1be24924535
--- /dev/null
+++ b/code/__HELPERS/lighting_helpers.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/__HELPERS/lighting_helpers.dm - Space Station 13
+
+
+
+
+code/__HELPERS/lighting_helpers.dm
+
+
+
+
+ /proc/emissive_appearance
+ Produces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EMISSIVE_COLOR . Order of application matters: Default generated blockers are overlays, and will block its own emissive underlays. If you want an object to be both a blocker, and have their own emissive, it has to be an overlay instead. Grayscale lightmasks are visible in the BYOND right-click and Examine pane, unless they're covered up by another overlay.
+ /proc/emissive_blocker
+ Produces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EM_BLOCK_COLOR .
+
+
+
diff --git a/code/__HELPERS/lists.html b/code/__HELPERS/lists.html
new file mode 100644
index 0000000000000..ec0fa71501204
--- /dev/null
+++ b/code/__HELPERS/lists.html
@@ -0,0 +1,206 @@
+
+
+
+
+
+
+ code/__HELPERS/lists.dm - Space Station 13
+
+
+
+
+code/__HELPERS/lists.dm
+
+
+
+
+ COMPARE_KEY Passed into BINARY_INSERT to compare keys
+ COMPARE_VALUE Passed into BINARY_INSERT to compare values
+ BINARY_INSERT_TG Binary search sorted insert from TG
+INPUT: Object to be inserted
+LIST: List to insert object into
+TYPECONT: The typepath of the contents of the list
+COMPARE: The object to compare against, usualy the same as INPUT
+COMPARISON: The variable on the objects to compare
+COMPTYPE: How should the values be compared? Either COMPARE_KEY or COMPARE_VALUE.
+ /proc/pickweight
+ Picks an element based on its weight.
+L - The input list
+ /proc/pick_multiple_unique
+ Picks multiple unique elements from the suplied list.
+If the given list has a length less than the amount given then it will return a list with an equal amount
+ LAZYINITLIST Initialize the lazylist
+ UNSETEMPTY If the provided list is empty, set it to null
+ ASSOC_UNSETEMPTY If the provided key -> list is empty, remove it from the list
+ LAZYLISTDUPLICATE Like LAZYCOPY - copies an input list if the list has entries, If it doesn't the assigned list is nulled
+ LAZYREMOVE Remove an item from the list, set the list to null if empty
+ LAZYADD Add an item to the list, if the list is null it will initialize it
+ LAZYOR Add an item to the list if not already present, if the list is null it will initialize it
+ LAZYDISTINCTADD Adds I to L, initializing L if necessary, if I is not already in L
+ LAZYACCESS returns L[I] if L exists and I is a valid index of L, runtimes if L is not a list
+ LAZYLEN Returns the length of L
+ LAZYNULL Sets a list to null
+ LAZYCLEARLIST Removes all elements from the list
+ LAZYCOPY Use LAZYLISTDUPLICATE instead if you want it to null with no entries
+ LAZYSET Sets the item K to the value V, if the list is null it will initialize it
+ LAZYSETLEN Sets the length of a lazylist
+ LAZYADDASSOC Adds to the item K the value V, if the list is null it will initialize it
+ LAZYADDASSOCLIST This is used to add onto lazy assoc list when the value you're adding is a /list/. This one has extra safety over lazyaddassoc because the value could be null (and thus cant be used to += objects)
+ LAZYREMOVEASSOC Removes the value V from the item K, if the item K is empty will remove it from the list, if the list is empty will set the list to null
+ LAZYACCESSASSOC Accesses an associative list, returns null if nothing is found
+ QDEL_LAZYLIST Qdel every item in the list before setting the list to null
+ LAZYIN If the lazy list is currently initialized find item I in list L
+ ISINDEXSAFE Returns whether a numerical index is within a given list's bounds. Faster than isnull(LAZYACCESS(L, I)).
+ LAZYORASSOCLIST Performs an insertion on the given lazy list with the given key and value. If the value already exists, a new one will not be made.
+ /proc/make_associative
+ A proc for turning a list into an associative list.
+ /proc/compare_list
+ compare two lists, returns TRUE if they are the same
+ /proc/avoid_assoc_duplicate_keys
+ takes an input_key, as text, and the list of keys already used, outputting a replacement key in the format of "[input_key] ([number_of_duplicates])" if it finds a duplicate
+use this for lists of things that might have the same name, like mobs or objects, that you plan on giving to a player as input
Define Details
+ASSOC_UNSETEMPTY
+
+
+
+
+ If the provided key -> list is empty, remove it from the list
BINARY_INSERT_TG
+ (INPUT, LIST, TYPECONT, COMPARE, COMPARISON, COMPTYPE)
+
+
+
+ Binary search sorted insert from TG
+INPUT: Object to be inserted
+LIST: List to insert object into
+TYPECONT: The typepath of the contents of the list
+COMPARE: The object to compare against, usualy the same as INPUT
+COMPARISON: The variable on the objects to compare
+COMPTYPE: How should the values be compared? Either COMPARE_KEY or COMPARE_VALUE.
COMPARE_KEY
+
+
+
+ Passed into BINARY_INSERT to compare keys
COMPARE_VALUE
+
+
+
+ Passed into BINARY_INSERT to compare values
ISINDEXSAFE
+
+
+
+
+ Returns whether a numerical index is within a given list's bounds. Faster than isnull(LAZYACCESS(L, I)).
LAZYACCESS
+
+
+
+
+ returns L[I] if L exists and I is a valid index of L, runtimes if L is not a list
LAZYACCESSASSOC
+
+
+
+
+ Accesses an associative list, returns null if nothing is found
LAZYADD
+
+
+
+
+ Add an item to the list, if the list is null it will initialize it
LAZYADDASSOC
+
+
+
+
+ Adds to the item K the value V, if the list is null it will initialize it
LAZYADDASSOCLIST
+
+
+
+
+ This is used to add onto lazy assoc list when the value you're adding is a /list/. This one has extra safety over lazyaddassoc because the value could be null (and thus cant be used to += objects)
LAZYCLEARLIST
+
+
+
+
+ Removes all elements from the list
LAZYCOPY
+
+
+
+
+ Use LAZYLISTDUPLICATE instead if you want it to null with no entries
LAZYDISTINCTADD
+
+
+
+
+ Adds I to L, initializing L if necessary, if I is not already in L
LAZYIN
+
+
+
+
+ If the lazy list is currently initialized find item I in list L
LAZYINITLIST
+
+
+
+
+ Initialize the lazylist
LAZYLEN
+
+
+
+
+ Returns the length of L
LAZYLISTDUPLICATE
+
+
+
+
+ Like LAZYCOPY - copies an input list if the list has entries, If it doesn't the assigned list is nulled
LAZYNULL
+
+
+
+
+ Sets a list to null
LAZYOR
+
+
+
+
+ Add an item to the list if not already present, if the list is null it will initialize it
LAZYORASSOCLIST
+
+
+
+
+ Performs an insertion on the given lazy list with the given key and value. If the value already exists, a new one will not be made.
LAZYREMOVE
+
+
+
+
+ Remove an item from the list, set the list to null if empty
LAZYREMOVEASSOC
+
+
+
+
+ Removes the value V from the item K, if the item K is empty will remove it from the list, if the list is empty will set the list to null
LAZYSET
+
+
+
+
+ Sets the item K to the value V, if the list is null it will initialize it
LAZYSETLEN
+
+
+
+
+ Sets the length of a lazylist
QDEL_LAZYLIST
+
+
+
+
+ Qdel every item in the list before setting the list to null
UNSETEMPTY
+
+
+
+
+ If the provided list is empty, set it to null
+
+
+
diff --git a/code/__HELPERS/mob_helpers.html b/code/__HELPERS/mob_helpers.html
new file mode 100644
index 0000000000000..2be7858a7a20d
--- /dev/null
+++ b/code/__HELPERS/mob_helpers.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__HELPERS/mob_helpers.dm - Space Station 13
+
+
+
+
+code/__HELPERS/mob_helpers.dm
+
+
+
+
+ /proc/random_body_accessory
+ Returns a random body accessory for a given species name. Can be null based on is_optional argument.
+ /proc/add_attack_logs
+ Creates attack (old and new) logs for the user and defense logs for the target.
+Will message admins depending on the custom_level, user and target.
+ /proc/check_active_security_force
+
+ /proc/safe_get_ckey
+ Safe ckey getter
+ /proc/round_health
+ rounds value to limited symbols after the period for organ damage and other values
+
+
+
diff --git a/code/__HELPERS/path.html b/code/__HELPERS/path.html
new file mode 100644
index 0000000000000..88804c2122cae
--- /dev/null
+++ b/code/__HELPERS/path.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ code/__HELPERS/path.dm - Space Station 13
+
+
+
+
+code/__HELPERS/path.dm
+
+
+
+
+ /proc/get_path_to
+ This file contains the stuff you need for using JPS (Jump Point Search) pathing, an alternative to A* that skips
+over large numbers of uninteresting tiles resulting in much quicker pathfinding solutions.
+ CAN_STEP A helper macro to see if it's possible to step from the first turf into the second one, minding things like door access and directional windows.
+Note that this can only be used inside the [datum/pathfind][pathfind datum] since it uses variables from said datum.
+If you really want to optimize things, optimize this, cuz this gets called a lot.
+We do early next.density check despite it being already checked in LinkBlockedWithAccess for short-circuit performance
+ STEP_NOT_HERE_BUT_THERE Another helper macro for JPS, for telling when a node has forced neighbors that need expanding
+ /datum/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
+ /proc/HeapPathWeightCompare
+ TODO: Macro this to reduce proc overhead
+ /datum/pathfind The datum used to handle the JPS pathfinding, completely self-contained
Define Details
+CAN_STEP
+
+
+
+
+ A helper macro to see if it's possible to step from the first turf into the second one, minding things like door access and directional windows.
+Note that this can only be used inside the [datum/pathfind][pathfind datum] since it uses variables from said datum.
+If you really want to optimize things, optimize this, cuz this gets called a lot.
+We do early next.density check despite it being already checked in LinkBlockedWithAccess for short-circuit performance
STEP_NOT_HERE_BUT_THERE
+
+
+
+
+ Another helper macro for JPS, for telling when a node has forced neighbors that need expanding
+
+
+
diff --git a/code/__HELPERS/radiation_helpers.html b/code/__HELPERS/radiation_helpers.html
new file mode 100644
index 0000000000000..236bbd79d2e6b
--- /dev/null
+++ b/code/__HELPERS/radiation_helpers.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/__HELPERS/radiation_helpers.dm - Space Station 13
+
+
+
+
+code/__HELPERS/radiation_helpers.dm
+
+
+
+
+ /proc/get_rad_contents
+ A special GetAllContents that doesn't search past things with rad insulation
+Components which return COMPONENT_BLOCK_RADIATION prevent further searching into that object's contents. The object itself will get returned still.
+The ignore list makes those objects never return at all
+
+
+
diff --git a/code/__HELPERS/screen_objs.html b/code/__HELPERS/screen_objs.html
new file mode 100644
index 0000000000000..98a6f915ededb
--- /dev/null
+++ b/code/__HELPERS/screen_objs.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ code/__HELPERS/screen_objs.dm - Space Station 13
+
+
+
+
+code/__HELPERS/screen_objs.dm
+
+
+
+
+ /proc/screen_loc_to_offset
+ Takes a screen loc string in the format
+"+-left-offset:+-pixel,+-bottom-offset:+-pixel"
+Where the :pixel is optional, and returns
+A list in the format (x_offset, y_offset)
+We require context to get info out of screen locs that contain relative info, so NORTH, SOUTH, etc
+ /proc/offset_to_screen_loc
+ Takes a list in the form (x_offset, y_offset)
+And converts it to a screen loc string
+Accepts an optional view string/size to force the screen_loc around, so it can't go out of scope
+ /proc/get_valid_screen_location
+ Returns a valid location to place a screen object without overflowing the viewport
+ /proc/cut_relative_direction
+ Takes a screen_loc string and cut out any directions like NORTH or SOUTH
+
+
+
diff --git a/code/__HELPERS/text.html b/code/__HELPERS/text.html
new file mode 100644
index 0000000000000..f8cc72efaef4d
--- /dev/null
+++ b/code/__HELPERS/text.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ code/__HELPERS/text.dm - Space Station 13
+
+
+
+
+code/__HELPERS/text.dm
+
+
+
+
+ /proc/sanitize_for_ic
+ sanitize() with a pre-set list of characters to remove from IC speech.
+ /proc/trim_length
+ Returns a string that does not exceed max_length characters in size
+ /proc/strip_html_tags
+ Strips HTML tags (and only tags) from the input.
+The result may still include HTML entities, like ' for '
+ /proc/client2rankcolour
+ Proc to generate a "rank colour" from a client
+ /proc/format_si_suffix
+ Formats num with an SI prefix.
+ /proc/wiki_link
+ Creates a hyperlink for a specified wiki article.
+
+
+
diff --git a/code/__HELPERS/time.html b/code/__HELPERS/time.html
new file mode 100644
index 0000000000000..bc6aa607b1731
--- /dev/null
+++ b/code/__HELPERS/time.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ code/__HELPERS/time.dm - Space Station 13
+
+
+
+
+code/__HELPERS/time.dm
+
+
+
+
+ /proc/start_watch
+ Returns "watch handle" (really just a timestamp :V)
+ /proc/stop_watch
+ Returns number of seconds elapsed.
+@param wh number The "Watch Handle" from start_watch(). (timestamp)
+ /proc/seconds_to_clock
+ Take a value in seconds and makes it display like a clock. Hours are stripped. (mm:ss)
+ /proc/seconds_to_full_clock
+ Take a value in seconds and makes it display like a clock (h:mm:ss)
+
+
+
diff --git a/code/__HELPERS/trait_helpers.html b/code/__HELPERS/trait_helpers.html
new file mode 100644
index 0000000000000..7440ffcda0d05
--- /dev/null
+++ b/code/__HELPERS/trait_helpers.html
@@ -0,0 +1,225 @@
+
+
+
+
+
+
+ code/__HELPERS/trait_helpers.dm - Space Station 13
+
+
+
+
+code/__HELPERS/trait_helpers.dm
+
+
+
+
+ ADD_TRAIT Adds a status trait to the target datum.
+ REMOVE_TRAIT Removes a status trait from a target datum.
+ REMOVE_TRAITS_NOT_IN Removes all status traits from a target datum which were NOT added by sources
.
+ REMOVE_TRAITS_IN Removes all status traits from a target datum which were added by sources
.
+ HAS_MIND_TRAIT A simple helper for checking traits in a mob's mind
+ UNIQUE_TRAIT_SOURCE Gives a unique trait source for any given datum
+ TRAIT_DODGE_ALL_OBJECTS Allows a mob to dodge all thrown objects
+ TRAIT_MENTOR_OBSERVING used for dead mobs that are observing, but should not be afforded all the same platitudes as full ghosts.
+This is a mind trait because ghosts can be frequently deleted and we want to be sure this sticks.
+ TRAIT_SHOW_WIRE_INFO Show what machine/door wires do when held.
+ TRAIT_SUPERMATTER_IMMUNE Immune to the SM / makes you immune to it when worn
+ TRAIT_WIELDED An item that is being wielded.
+ TRAIT_OBSCURED_WIRES Wires on this will have their titles randomized for those with SHOW_WIRES
+ TRAIT_FORCES_OPEN_DOORS_ITEM Forces open doors after a delay specific to the item
+ TRAIT_NO_THROWN_MESSAGE Makes the item no longer spit out a visible message when thrown
+ TRAIT_SILENT_INSERTION Makes the item not display a message on storage insertion
+ TRAIT_SURGICAL A surgical tool; when in hand in help intent (and with a surgery in progress) won't attack the user
+ TRAIT_ADVANCED_SURGICAL An advanced surgical tool. If a surgical tool has this flag, it will be able to automatically repeat steps until they succeed.
+ TRAIT_TURF_COVERED Prevent mobs on the turf from being affected by anything below that turf, such as a pulse demon going under it. Added by a /obj/structure with creates_cover set to TRUE
+ TRAIT_OIL_SLICKED An item that is oiled. If sprayed with water, it's slowdown reverts to normal.
+ TRAIT_CAN_POINT_WITH An item that can be pointed at mobs, while on non-help intent.
+ TRAIT_ORGAN_INSERTED_WHILE_DEAD An organ that was inserted into a dead mob, that has not been revived yet
+ TRAIT_ADJACENCY_TRANSPARENT An /obj that should not increase the "depth" of the search for adjacency,
+e.g. a storage container or a modsuit.
+ TRAIT_CURRENTLY_Z_MOVING A trait for determining if a atom/movable is currently crossing into another z-level by using of /turf/space z-level "destination-xyz" transfers
+ MENTOR_OBSERVING Mentor observing
+ TRAIT_KNOCKEDOUT Forces the user to stay unconscious.
+ TRAIT_IMMOBILIZED Prevents voluntary movement.
+ TRAIT_FLOORED Prevents voluntary standing or staying up on its own.
+ TRAIT_HANDS_BLOCKED Prevents usage of manipulation appendages (picking, holding or using items, manipulating storage).
+ TRAIT_UI_BLOCKED Inability to access UI hud elements.
+ TRAIT_CANNOT_PULL Inability to pull things.
+ TRAIT_RESTRAINED Abstract condition that prevents movement if being pulled and might be resisted against. Handcuffs and straight jackets, basically.
+ STATION_TRAIT_BANANIUM_SHIPMENTS Traits given by station traits
+ TRAIT_BLUESPACE_SPEED Removes slowdown while walking on these tiles.
Define Details
+ADD_TRAIT
+
+
+
+
+ Adds a status trait to the target datum.
+Arguments: (All Required)
+
+target - The datum to add the trait to.
+trait - The trait which is being added.
+source - The source of the trait which is being added.
+ HAS_MIND_TRAIT
+
+
+
+
+ A simple helper for checking traits in a mob's mind
MENTOR_OBSERVING
+
+
+
+ Mentor observing
REMOVE_TRAIT
+
+
+
+
+ Removes a status trait from a target datum.
+ROUNDSTART_TRAIT
traits can't be removed without being specified in sources
.
+Arguments:
+
+target - The datum to remove the trait from.
+trait - The trait which is being removed.
+sources - If specified, only remove the trait if it is from this source. (Lists Supported)
+ REMOVE_TRAITS_IN
+
+
+
+
+ Removes all status traits from a target datum which were added by sources
.
+Arguments:
+
+target - The datum to remove the traits from.
+sources - The trait source which is being searched for.
+ REMOVE_TRAITS_NOT_IN
+
+
+
+
+ Removes all status traits from a target datum which were NOT added by sources
.
+Arguments:
+
+target - The datum to remove the traits from.
+sources - The trait source which is being searched for.
+ STATION_TRAIT_BANANIUM_SHIPMENTS
+
+
+
+ Traits given by station traits
TRAIT_ADJACENCY_TRANSPARENT
+
+
+
+ An /obj that should not increase the "depth" of the search for adjacency,
+e.g. a storage container or a modsuit.
TRAIT_ADVANCED_SURGICAL
+
+
+
+ An advanced surgical tool. If a surgical tool has this flag, it will be able to automatically repeat steps until they succeed.
TRAIT_BLUESPACE_SPEED
+
+
+
+ Removes slowdown while walking on these tiles.
TRAIT_CANNOT_PULL
+
+
+
+ Inability to pull things.
TRAIT_CAN_POINT_WITH
+
+
+
+ An item that can be pointed at mobs, while on non-help intent.
TRAIT_CURRENTLY_Z_MOVING
+
+
+
+ A trait for determining if a atom/movable is currently crossing into another z-level by using of /turf/space z-level "destination-xyz" transfers
TRAIT_DODGE_ALL_OBJECTS
+
+
+
+ Allows a mob to dodge all thrown objects
TRAIT_FLOORED
+
+
+
+ Prevents voluntary standing or staying up on its own.
TRAIT_FORCES_OPEN_DOORS_ITEM
+
+
+
+ Forces open doors after a delay specific to the item
TRAIT_HANDS_BLOCKED
+
+
+
+ Prevents usage of manipulation appendages (picking, holding or using items, manipulating storage).
TRAIT_IMMOBILIZED
+
+
+
+ Prevents voluntary movement.
TRAIT_KNOCKEDOUT
+
+
+
+ Forces the user to stay unconscious.
TRAIT_MENTOR_OBSERVING
+
+
+
+ used for dead mobs that are observing, but should not be afforded all the same platitudes as full ghosts.
+This is a mind trait because ghosts can be frequently deleted and we want to be sure this sticks.
TRAIT_NO_THROWN_MESSAGE
+
+
+
+ Makes the item no longer spit out a visible message when thrown
TRAIT_OBSCURED_WIRES
+
+
+
+ Wires on this will have their titles randomized for those with SHOW_WIRES
TRAIT_OIL_SLICKED
+
+
+
+ An item that is oiled. If sprayed with water, it's slowdown reverts to normal.
TRAIT_ORGAN_INSERTED_WHILE_DEAD
+
+
+
+ An organ that was inserted into a dead mob, that has not been revived yet
TRAIT_RESTRAINED
+
+
+
+ Abstract condition that prevents movement if being pulled and might be resisted against. Handcuffs and straight jackets, basically.
TRAIT_SHOW_WIRE_INFO
+
+
+
+ Show what machine/door wires do when held.
TRAIT_SILENT_INSERTION
+
+
+
+ Makes the item not display a message on storage insertion
TRAIT_SUPERMATTER_IMMUNE
+
+
+
+ Immune to the SM / makes you immune to it when worn
TRAIT_SURGICAL
+
+
+
+ A surgical tool; when in hand in help intent (and with a surgery in progress) won't attack the user
TRAIT_TURF_COVERED
+
+
+
+ Prevent mobs on the turf from being affected by anything below that turf, such as a pulse demon going under it. Added by a /obj/structure with creates_cover set to TRUE
TRAIT_UI_BLOCKED
+
+
+
+ Inability to access UI hud elements.
TRAIT_WIELDED
+
+
+
+ An item that is being wielded.
UNIQUE_TRAIT_SOURCE
+
+
+
+
+ Gives a unique trait source for any given datum
+
+
+
diff --git a/code/__HELPERS/unique_ids.html b/code/__HELPERS/unique_ids.html
new file mode 100644
index 0000000000000..aa296fd9357fe
--- /dev/null
+++ b/code/__HELPERS/unique_ids.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/__HELPERS/unique_ids.dm - Space Station 13
+
+
+
+
+code/__HELPERS/unique_ids.dm
+
+
+
+
+ /proc/locateUID
+ Locates a datum based off of the UID
+ /proc/is_type_in_UID_list
+ If the list L
contains a datum UID who's type matches D
's type, returns the UID of that datum in the list. Otherwise returns null.
+
+
+
diff --git a/code/__HELPERS/unsorted.html b/code/__HELPERS/unsorted.html
new file mode 100644
index 0000000000000..9cad22c4ca2a3
--- /dev/null
+++ b/code/__HELPERS/unsorted.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+ code/__HELPERS/unsorted.dm - Space Station 13
+
+
+
+
+code/__HELPERS/unsorted.dm
+
+
+
+
+ /proc/get_line
+ Get a list of turfs in a line from starting_atom
to ending_atom
.
+ /proc/get_edge_target_turf
+ Returns the turf located at the map edge in the specified direction relative to target_atom used for mass driver
+ /proc/get_ranged_target_turf
+
+ /proc/get_ranged_target_turf_direct
+ Get ranged target turf, but with direct targets as opposed to directions
+ /datum /coords Simple datum for storing coordinates.
+ /proc/get_living_players
+ This proc returns every player with a client who is not a ghost or a new_player
+ /proc/get_atoms_of_type
+ Returns a list of atoms in a location of a given type. Can be refined to look for pixel-shift.
+ /proc/parse_caught_click_modifiers
+ Returns a turf based on text inputs, original turf and viewing client
+ /proc/get_channel_name
+ Returns the clean name of an audio channel.
+ /proc/HTTPGet
+ HTTP Get (Powered by RUSTG)
+ /proc/is_color_dark
+ Given a color in the format of "#RRGGBB", will return if the color is dark.
+ /proc/type_list_to_counted_assoc_list
+ This proc takes a list of types, and returns them in the format below.
+[type] = amount of type in list.
+Useful for recipes.
+
+
+
diff --git a/code/__HELPERS/verb_helpers.html b/code/__HELPERS/verb_helpers.html
new file mode 100644
index 0000000000000..528b54f1bbe3c
--- /dev/null
+++ b/code/__HELPERS/verb_helpers.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/__HELPERS/verb_helpers.dm - Space Station 13
+
+
+
+
+code/__HELPERS/verb_helpers.dm
+
+
+
+
+ /proc/add_verb
+ handles adding verbs and updating the stat panel browser
+ /proc/remove_verb
+ handles removing verb and sending it to browser to update, use this for removing verbs
+
+
+
diff --git a/code/__byond_version_compat.html b/code/__byond_version_compat.html
new file mode 100644
index 0000000000000..da3fa1c01beba
--- /dev/null
+++ b/code/__byond_version_compat.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ code/__byond_version_compat.dm - Space Station 13
+
+
+
+
+code/__byond_version_compat.dm
+
+
+
+
+ PROC_REF Validates the proc exists on this type (or global unfortunately)
+ REGEX_REPLACE_HANDLER Use this for every proc passed in as second argument in regex.Replace. regex.Replace does not allow calling procs by name but as of 515 using proc refs will always call the top level proc instead of overrides
Define Details
+PROC_REF
+
+
+
+
+ Validates the proc exists on this type (or global unfortunately)
REGEX_REPLACE_HANDLER
+
+
+
+ Use this for every proc passed in as second argument in regex.Replace. regex.Replace does not allow calling procs by name but as of 515 using proc refs will always call the top level proc instead of overrides
+
+
+
diff --git a/code/_compile_options.html b/code/_compile_options.html
new file mode 100644
index 0000000000000..50fc124b2efc9
--- /dev/null
+++ b/code/_compile_options.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/_compile_options.dm - Space Station 13
+
+
+
+
+code/_compile_options.dm
+
+
+
+Define Details
+IS_MODE_COMPILED
+
+
+
+
+ All toggles for the GC ref finder
+End toggles for the GC ref finder
+
+
+
diff --git a/code/_globalvars/bitfields.html b/code/_globalvars/bitfields.html
new file mode 100644
index 0000000000000..3f86af86d282c
--- /dev/null
+++ b/code/_globalvars/bitfields.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/_globalvars/bitfields.dm - Space Station 13
+
+
+
+
+code/_globalvars/bitfields.dm
+
+
+
+
+
+
+
diff --git a/code/_onclick/click_override.html b/code/_onclick/click_override.html
new file mode 100644
index 0000000000000..07a404fed0893
--- /dev/null
+++ b/code/_onclick/click_override.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/_onclick/click_override.dm - Space Station 13
+
+
+
+
+code/_onclick/click_override.dm
+
+
+
+
+ /datum /middleClickOverride/callback_invoker Middle click override which accepts a callback as an arugment in the New()
proc.
+When the living mob that has this datum middle-clicks or alt-clicks on something, the callback will be invoked.
+
+
+
diff --git a/code/_onclick/hud/action_button.html b/code/_onclick/hud/action_button.html
new file mode 100644
index 0000000000000..9b79d7dd28c9e
--- /dev/null
+++ b/code/_onclick/hud/action_button.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/_onclick/hud/action_button.dm - Space Station 13
+
+
+
+
+code/_onclick/hud/action_button.dm
+
+
+
+
+
+
+
diff --git a/code/_onclick/hud/alert.html b/code/_onclick/hud/alert.html
new file mode 100644
index 0000000000000..cde45cdbc69f3
--- /dev/null
+++ b/code/_onclick/hud/alert.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/_onclick/hud/alert.dm - Space Station 13
+
+
+
+
+code/_onclick/hud/alert.dm
+
+
+
+
+
+
+
diff --git a/code/_onclick/hud/follow_alert.html b/code/_onclick/hud/follow_alert.html
new file mode 100644
index 0000000000000..50c0f2fcb1cf4
--- /dev/null
+++ b/code/_onclick/hud/follow_alert.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/_onclick/hud/follow_alert.dm - Space Station 13
+
+
+
+
+code/_onclick/hud/follow_alert.dm
+
+
+
+
+
+
+
diff --git a/code/_onclick/hud/fullscreen.html b/code/_onclick/hud/fullscreen.html
new file mode 100644
index 0000000000000..fef94d99e9923
--- /dev/null
+++ b/code/_onclick/hud/fullscreen.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/_onclick/hud/fullscreen.dm - Space Station 13
+
+
+
+
+code/_onclick/hud/fullscreen.dm
+
+
+
+
+ /atom /movable /screen /fullscreen/stretch Stretch version is suitable for images that stick to screen edges, as they scale with user screen size
+For centrally located screen objects, use /atom/movable/screen/fullscreen/center
+ /atom/movable/screen/fullscreen/stretch/cursor_catcher An effect which tracks the cursor's location on the screen
+ /atom /movable /screen /fullscreen/center Centered fullscreen atoms
+These are used to center a widescreen image so it scales properly across screen sizes, not suitable for screen images that eminate from the edge of the screen
+
+
+
diff --git a/code/_onclick/hud/map_popups.html b/code/_onclick/hud/map_popups.html
new file mode 100644
index 0000000000000..48177519202a3
--- /dev/null
+++ b/code/_onclick/hud/map_popups.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/_onclick/hud/map_popups.dm - Space Station 13
+
+
+
+
+code/_onclick/hud/map_popups.dm
+
+
+
+
+ /atom /movable /screen /map_view A screen object, which acts as a container for turfs and other things
+you want to show on the map, which you usually attach to "vis_contents".
+ /atom /movable /screen /background A generic background object.
+It is also implicitly used to allocate a rectangle on the map, which will
+be used for auto-scaling the map.
+
+
+
diff --git a/code/_onclick/hud/plane_master.html b/code/_onclick/hud/plane_master.html
new file mode 100644
index 0000000000000..8a2a252817de7
--- /dev/null
+++ b/code/_onclick/hud/plane_master.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/_onclick/hud/plane_master.dm - Space Station 13
+
+
+
+
+code/_onclick/hud/plane_master.dm
+
+
+
+
+
+
+
diff --git a/code/_onclick/hud/plane_master_controller.html b/code/_onclick/hud/plane_master_controller.html
new file mode 100644
index 0000000000000..68ed7b74b9d98
--- /dev/null
+++ b/code/_onclick/hud/plane_master_controller.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/_onclick/hud/plane_master_controller.dm - Space Station 13
+
+
+
+
+code/_onclick/hud/plane_master_controller.dm
+
+
+
+
+
+
+
diff --git a/code/_onclick/hud/radial.html b/code/_onclick/hud/radial.html
new file mode 100644
index 0000000000000..0cd3063bfe028
--- /dev/null
+++ b/code/_onclick/hud/radial.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/_onclick/hud/radial.dm - Space Station 13
+
+
+
+
+code/_onclick/hud/radial.dm
+
+
+
+
+ /proc/radial_menu_helper
+ Similar to show_radial_menu, but choices is a list of atoms, for which icons will be automatically generated.
+Supports multiple items of the same name, 2 soaps will become soap (1) and soap (2) to the user.
+Otherwise, has the exact same arguments as show_radial_menu
+
+
+
diff --git a/code/controllers/configuration/__config_defines.html b/code/controllers/configuration/__config_defines.html
new file mode 100644
index 0000000000000..abaf83ebbffff
--- /dev/null
+++ b/code/controllers/configuration/__config_defines.html
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+ code/controllers/configuration/__config_defines.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/__config_defines.dm
+
+
+
+
+ CONFIG_LOAD_BOOL Wrapper to not overwrite a variable if a list key doesnt exist. Auto casts to bools.
+ CONFIG_LOAD_NUM Wrapper to not overwrite a variable if a list key doesnt exist. Auto casts to number.
+ CONFIG_LOAD_NUM_MULT Wrapper to not overwrite a variable if a list key doesnt exist. Auto casts to number, and accepts a macro argument for number maths (ds to min for example)
+ CONFIG_LOAD_STR Wrapper to not overwrite a variable if a list key doesnt exist. Auto casts to string.
+ CONFIG_LOAD_RAW Wrapper to not overwrite a variable if a list key doesnt exist. No casting done.
+ CONFIG_LOAD_LIST Wrapper to not overwrite a variable if a list key doesnt exist. Ensures target is a list.
Define Details
+CONFIG_LOAD_BOOL
+
+
+
+
+ Wrapper to not overwrite a variable if a list key doesnt exist. Auto casts to bools.
CONFIG_LOAD_LIST
+
+
+
+
+ Wrapper to not overwrite a variable if a list key doesnt exist. Ensures target is a list.
CONFIG_LOAD_NUM
+
+
+
+
+ Wrapper to not overwrite a variable if a list key doesnt exist. Auto casts to number.
CONFIG_LOAD_NUM_MULT
+ (target, input, multiplier)
+
+
+
+ Wrapper to not overwrite a variable if a list key doesnt exist. Auto casts to number, and accepts a macro argument for number maths (ds to min for example)
CONFIG_LOAD_RAW
+
+
+
+
+ Wrapper to not overwrite a variable if a list key doesnt exist. No casting done.
CONFIG_LOAD_STR
+
+
+
+
+ Wrapper to not overwrite a variable if a list key doesnt exist. Auto casts to string.
+
+
+
diff --git a/code/controllers/configuration/configuration_core.html b/code/controllers/configuration/configuration_core.html
new file mode 100644
index 0000000000000..d2a4a5bb3aa24
--- /dev/null
+++ b/code/controllers/configuration/configuration_core.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/configuration_core.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/configuration_core.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/admin_configuration.html b/code/controllers/configuration/sections/admin_configuration.html
new file mode 100644
index 0000000000000..7fffa22087bdc
--- /dev/null
+++ b/code/controllers/configuration/sections/admin_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/admin_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/admin_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/afk_configuration.html b/code/controllers/configuration/sections/afk_configuration.html
new file mode 100644
index 0000000000000..131763638733e
--- /dev/null
+++ b/code/controllers/configuration/sections/afk_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/afk_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/afk_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/custom_sprites_configuration.html b/code/controllers/configuration/sections/custom_sprites_configuration.html
new file mode 100644
index 0000000000000..a7d946826b234
--- /dev/null
+++ b/code/controllers/configuration/sections/custom_sprites_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/custom_sprites_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/custom_sprites_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/database_configuration.html b/code/controllers/configuration/sections/database_configuration.html
new file mode 100644
index 0000000000000..2cd0fcef76c2e
--- /dev/null
+++ b/code/controllers/configuration/sections/database_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/database_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/database_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/discord_configuration.html b/code/controllers/configuration/sections/discord_configuration.html
new file mode 100644
index 0000000000000..31ee55aea15b8
--- /dev/null
+++ b/code/controllers/configuration/sections/discord_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/discord_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/discord_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/event_configuration.html b/code/controllers/configuration/sections/event_configuration.html
new file mode 100644
index 0000000000000..2b7753a73b54d
--- /dev/null
+++ b/code/controllers/configuration/sections/event_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/event_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/event_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/gamemode_configuration.html b/code/controllers/configuration/sections/gamemode_configuration.html
new file mode 100644
index 0000000000000..8dc411b8a1090
--- /dev/null
+++ b/code/controllers/configuration/sections/gamemode_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/gamemode_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/gamemode_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/general_configuration.html b/code/controllers/configuration/sections/general_configuration.html
new file mode 100644
index 0000000000000..dc1f1ef14f6c9
--- /dev/null
+++ b/code/controllers/configuration/sections/general_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/general_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/general_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/ipintel_configuration.html b/code/controllers/configuration/sections/ipintel_configuration.html
new file mode 100644
index 0000000000000..13e85585adfcb
--- /dev/null
+++ b/code/controllers/configuration/sections/ipintel_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/ipintel_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/ipintel_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/job_configuration.html b/code/controllers/configuration/sections/job_configuration.html
new file mode 100644
index 0000000000000..d95e138e907b7
--- /dev/null
+++ b/code/controllers/configuration/sections/job_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/job_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/job_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/logging_configuration.html b/code/controllers/configuration/sections/logging_configuration.html
new file mode 100644
index 0000000000000..9f141087193aa
--- /dev/null
+++ b/code/controllers/configuration/sections/logging_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/logging_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/logging_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/mc_configuration.html b/code/controllers/configuration/sections/mc_configuration.html
new file mode 100644
index 0000000000000..a4ebf45c95a60
--- /dev/null
+++ b/code/controllers/configuration/sections/mc_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/mc_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/mc_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/metrics_configuration.html b/code/controllers/configuration/sections/metrics_configuration.html
new file mode 100644
index 0000000000000..4282d3831f08e
--- /dev/null
+++ b/code/controllers/configuration/sections/metrics_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/metrics_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/metrics_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/movement_configuration.html b/code/controllers/configuration/sections/movement_configuration.html
new file mode 100644
index 0000000000000..e187f0c3b6b33
--- /dev/null
+++ b/code/controllers/configuration/sections/movement_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/movement_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/movement_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/overflow_configuration.html b/code/controllers/configuration/sections/overflow_configuration.html
new file mode 100644
index 0000000000000..49c67ddf84ee2
--- /dev/null
+++ b/code/controllers/configuration/sections/overflow_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/overflow_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/overflow_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/redis_configuration.html b/code/controllers/configuration/sections/redis_configuration.html
new file mode 100644
index 0000000000000..84e9a2ad1a581
--- /dev/null
+++ b/code/controllers/configuration/sections/redis_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/redis_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/redis_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/ruin_configuration.html b/code/controllers/configuration/sections/ruin_configuration.html
new file mode 100644
index 0000000000000..44e147b096580
--- /dev/null
+++ b/code/controllers/configuration/sections/ruin_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/ruin_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/ruin_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/system_configuration.html b/code/controllers/configuration/sections/system_configuration.html
new file mode 100644
index 0000000000000..97d3c42a693bc
--- /dev/null
+++ b/code/controllers/configuration/sections/system_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/system_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/system_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/url_configuration.html b/code/controllers/configuration/sections/url_configuration.html
new file mode 100644
index 0000000000000..08f9ef4b7f929
--- /dev/null
+++ b/code/controllers/configuration/sections/url_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/url_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/url_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/sections/vote_configuration.html b/code/controllers/configuration/sections/vote_configuration.html
new file mode 100644
index 0000000000000..9b195e95e9574
--- /dev/null
+++ b/code/controllers/configuration/sections/vote_configuration.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/sections/vote_configuration.dm - Space Station 13
+
+
+
+
+code/controllers/configuration/sections/vote_configuration.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/failsafe.html b/code/controllers/failsafe.html
new file mode 100644
index 0000000000000..bc34cdaeecfea
--- /dev/null
+++ b/code/controllers/failsafe.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/controllers/failsafe.dm - Space Station 13
+
+
+
+
+code/controllers/failsafe.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/master.html b/code/controllers/master.html
new file mode 100644
index 0000000000000..8b7a887201e6c
--- /dev/null
+++ b/code/controllers/master.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/master.dm - Space Station 13
+
+
+
+
+code/controllers/master.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/subsystem.html b/code/controllers/subsystem.html
new file mode 100644
index 0000000000000..824b800f9d26a
--- /dev/null
+++ b/code/controllers/subsystem.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/subsystem.dm - Space Station 13
+
+
+
+
+code/controllers/subsystem.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/subsystem/SSair.html b/code/controllers/subsystem/SSair.html
new file mode 100644
index 0000000000000..68c34432d5fc2
--- /dev/null
+++ b/code/controllers/subsystem/SSair.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/SSair.dm - Space Station 13
+
+
+
+
+code/controllers/subsystem/SSair.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/subsystem/SSambience.html b/code/controllers/subsystem/SSambience.html
new file mode 100644
index 0000000000000..5a9958d4dbb81
--- /dev/null
+++ b/code/controllers/subsystem/SSambience.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/SSambience.dm - Space Station 13
+
+
+
+
+code/controllers/subsystem/SSambience.dm
+
+
+
+
+ /var/SSambience
+ The subsystem used to play ambience to users every now and then, makes them real excited.
+
+
+
diff --git a/code/controllers/subsystem/SSblackbox.html b/code/controllers/subsystem/SSblackbox.html
new file mode 100644
index 0000000000000..7c62c12128572
--- /dev/null
+++ b/code/controllers/subsystem/SSblackbox.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/subsystem/SSblackbox.dm - Space Station 13
+
+
+
+
+code/controllers/subsystem/SSblackbox.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/subsystem/SSchat.html b/code/controllers/subsystem/SSchat.html
new file mode 100644
index 0000000000000..095a5dc72f5e6
--- /dev/null
+++ b/code/controllers/subsystem/SSchat.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/controllers/subsystem/SSchat.dm - Space Station 13
+
+
+
+
+code/controllers/subsystem/SSchat.dm
+
+
+
+
+ /var/SSchat
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/controllers/subsystem/SScleanup.html b/code/controllers/subsystem/SScleanup.html
new file mode 100644
index 0000000000000..aa99e15f91651
--- /dev/null
+++ b/code/controllers/subsystem/SScleanup.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/SScleanup.dm - Space Station 13
+
+
+
+
+code/controllers/subsystem/SScleanup.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/subsystem/SSdbcore.html b/code/controllers/subsystem/SSdbcore.html
new file mode 100644
index 0000000000000..cea8c01805d9f
--- /dev/null
+++ b/code/controllers/subsystem/SSdbcore.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/subsystem/SSdbcore.dm - Space Station 13
+
+
+
+
+code/controllers/subsystem/SSdbcore.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/subsystem/SSinput.html b/code/controllers/subsystem/SSinput.html
new file mode 100644
index 0000000000000..4c57d8fa9a8d4
--- /dev/null
+++ b/code/controllers/subsystem/SSinput.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/controllers/subsystem/SSinput.dm - Space Station 13
+
+
+
+
+code/controllers/subsystem/SSinput.dm
+
+
+
+
+ AUTO_CULL_TIME Culling occurs when a client has not pressed a key in over 60 seconds. We stop processing their inputs until they press another key down.
Define Details
+AUTO_CULL_TIME
+
+
+
+ Culling occurs when a client has not pressed a key in over 60 seconds. We stop processing their inputs until they press another key down.
+
+
+
diff --git a/code/controllers/subsystem/SSping.html b/code/controllers/subsystem/SSping.html
new file mode 100644
index 0000000000000..1cf552f4a4d07
--- /dev/null
+++ b/code/controllers/subsystem/SSping.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/SSping.dm - Space Station 13
+
+
+
+
+code/controllers/subsystem/SSping.dm
+
+
+
+
+ Copyright (c) 2022 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/controllers/subsystem/SSstatpanel.html b/code/controllers/subsystem/SSstatpanel.html
new file mode 100644
index 0000000000000..f1b8b13de51f6
--- /dev/null
+++ b/code/controllers/subsystem/SSstatpanel.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/controllers/subsystem/SSstatpanel.dm - Space Station 13
+
+
+
+
+code/controllers/subsystem/SSstatpanel.dm
+
+
+
+
+ /datum/object_window_info Datum that holds and tracks info about a client's object window
+Really only exists because I want to be able to do logic with signals
+And need a safe place to do the registration
+
+
+
diff --git a/code/controllers/subsystem/SStgui.html b/code/controllers/subsystem/SStgui.html
new file mode 100644
index 0000000000000..db4347f643ec9
--- /dev/null
+++ b/code/controllers/subsystem/SStgui.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/SStgui.dm - Space Station 13
+
+
+
+
+code/controllers/subsystem/SStgui.dm
+
+
+
+
+ /var/SStgui
+ tgui subsystem
+
+
+
diff --git a/code/controllers/subsystem/SStimer.html b/code/controllers/subsystem/SStimer.html
new file mode 100644
index 0000000000000..7bb9b79d44eb2
--- /dev/null
+++ b/code/controllers/subsystem/SStimer.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ code/controllers/subsystem/SStimer.dm - Space Station 13
+
+
+
+
+code/controllers/subsystem/SStimer.dm
+
+
+
+
+ BUCKET_LEN Controls how many buckets should be kept, each representing a tick. (1 minutes worth)
+ BUCKET_POS Helper for getting the correct bucket for a given timer
+ TIMER_MAX Gets the maximum time at which timers will be invoked from buckets, used for deferring to secondary queue
+ TIMER_ID_MAX Max float with integer precision
+ /var/SStimer
+
+ /datum/timedevent This is the actual timer, it contains the callback and necessary data to maintain
+the timer.
+ /proc/addtimer
+ Create a new timer and insert it in the queue.
+You should not call this directly, and should instead use the addtimer macro, which includes source information.
+ /proc/deltimer
+ Delete a timer
Define Details
+BUCKET_LEN
+
+
+
+ Controls how many buckets should be kept, each representing a tick. (1 minutes worth)
BUCKET_POS
+
+
+
+
+ Helper for getting the correct bucket for a given timer
TIMER_ID_MAX
+
+
+
+ Max float with integer precision
TIMER_MAX
+
+
+
+ Gets the maximum time at which timers will be invoked from buckets, used for deferring to secondary queue
+
+
+
diff --git a/code/controllers/subsystem/SSverb_manager.html b/code/controllers/subsystem/SSverb_manager.html
new file mode 100644
index 0000000000000..0bbd2832f4e8c
--- /dev/null
+++ b/code/controllers/subsystem/SSverb_manager.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/controllers/subsystem/SSverb_manager.dm - Space Station 13
+
+
+
+
+code/controllers/subsystem/SSverb_manager.dm
+
+
+
+
+ /var/SSverb_manager
+ SSverb_manager, a subsystem that runs every tick and runs through its entire queue without yielding like SSinput.
+this exists because of how the byond tick works and where user inputted verbs are put within it.
+ /proc/_queue_verb
+ queue a callback for the given verb/verblike proc and any given arguments to the specified verb subsystem, so that they process in the next tick.
+intended to only work with verbs or verblike procs called directly from client input, use as part of TRY_QUEUE_VERB() and co.
+
+
+
diff --git a/code/controllers/subsystem/non_firing/SSpersistent_data.html b/code/controllers/subsystem/non_firing/SSpersistent_data.html
new file mode 100644
index 0000000000000..34a3caf28ffba
--- /dev/null
+++ b/code/controllers/subsystem/non_firing/SSpersistent_data.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/non_firing/SSpersistent_data.dm - Space Station 13
+
+
+
+
+code/controllers/subsystem/non_firing/SSpersistent_data.dm
+
+
+
+
+
+
+
diff --git a/code/datums/action.html b/code/datums/action.html
new file mode 100644
index 0000000000000..eb0ea111e6ecc
--- /dev/null
+++ b/code/datums/action.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/action.dm - Space Station 13
+
+
+
+
+code/datums/action.dm
+
+
+
+
+ /datum /action /item_action/organ_action prset for organ actions
+
+
+
diff --git a/code/datums/ai_law_sets.html b/code/datums/ai_law_sets.html
new file mode 100644
index 0000000000000..8cababf4d0ff3
--- /dev/null
+++ b/code/datums/ai_law_sets.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ code/datums/ai_law_sets.dm - Space Station 13
+
+
+
+
+code/datums/ai_law_sets.dm
+
+
+
+
+
+
+
diff --git a/code/datums/chat_payload.html b/code/datums/chat_payload.html
new file mode 100644
index 0000000000000..3f8b1c58fc638
--- /dev/null
+++ b/code/datums/chat_payload.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/chat_payload.dm - Space Station 13
+
+
+
+
+code/datums/chat_payload.dm
+
+
+
+
+
+
+
diff --git a/code/datums/chatmessage.html b/code/datums/chatmessage.html
new file mode 100644
index 0000000000000..b9d792967c780
--- /dev/null
+++ b/code/datums/chatmessage.html
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+ code/datums/chatmessage.dm - Space Station 13
+
+
+
+
+code/datums/chatmessage.dm
+
+
+
+Define Details
+CHAT_LAYER_MAX_Z
+
+
+
+ The number of z-layer 'slices' usable by the chat message layering
CHAT_LAYER_Z_STEP
+
+
+
+ Maximum precision of float before rounding errors occur (in this context)
CHAT_MESSAGE_APPROX_LHEIGHT
+
+
+
+ Approximate height in pixels of an 'average' line, used for height decay
CHAT_MESSAGE_EOL_FADE
+
+
+
+ How long the chat message's end of life fading animation will occur for
CHAT_MESSAGE_EXP_DECAY
+
+
+
+ Factor of how much the message index (number of messages) will account to exponential decay
CHAT_MESSAGE_GRACE_PERIOD
+
+
+
+ Grace period for fade before we actually delete the chat message
CHAT_MESSAGE_HEIGHT_DECAY
+
+
+
+ Factor of how much height will account to exponential decay
CHAT_MESSAGE_LIFESPAN
+
+
+
+ How long the chat message will exist prior to any exponential decay
CHAT_MESSAGE_MAX_LENGTH
+
+
+
+ Max length of chat message in characters
CHAT_MESSAGE_SPAWN_TIME
+
+
+
+ How long the chat message's spawn-in animation will occur for
CHAT_MESSAGE_WIDTH
+
+
+
+ Max width of chat message in pixels
WXH_TO_HEIGHT
+ (measurement, return_var)
+
+
+
+ Macro from Lummox used to get height from a MeasureText proc.
+resolves the MeasureText() return value once, then resolves the height, then sets return_var to that.
+
+
+
diff --git a/code/datums/click_intercept.html b/code/datums/click_intercept.html
new file mode 100644
index 0000000000000..28068b9d9c7b3
--- /dev/null
+++ b/code/datums/click_intercept.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/click_intercept.dm - Space Station 13
+
+
+
+
+code/datums/click_intercept.dm
+
+
+
+
+ /datum/click_intercept Datum which is intended to be stored by a client's click_intercept
variable.
+Used to override normal clicking behavior when clicking on an object.
+While active, a mob's ClickOn
proc will redirect to the InterceptClickOn()
proc instead.
+
+
+
diff --git a/code/datums/components.html b/code/datums/components.html
new file mode 100644
index 0000000000000..ee1e9a43d7a8f
--- /dev/null
+++ b/code/datums/components.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/datums/components/README.md - Space Station 13
+
+
+
+
+Datum Component System (DCS) code/datums/components/README.md
+
+
+
+
+ Concept
+Loosely adapted from /vg/. This is an entity component system for adding behaviours to datums when inheritance doesn't quite cut it. By using signals and events instead of direct inheritance, you can inject behaviours without hacky overloads. It requires a different method of thinking, but is not hard to use correctly. If a behaviour can have application across more than one thing. Make it generic, make it a component. Atom/mob/obj event? Give it a signal, and forward it's arguments with a SendSignal()
call. Now every component that want's to can also know about this happening.
+See this thread for an introduction to the system as a whole.
+See/Define signals and their arguments in __DEFINES\dcs\signals.dm
+
+
+
diff --git a/code/datums/components/_component.html b/code/datums/components/_component.html
new file mode 100644
index 0000000000000..5f060af82a3b3
--- /dev/null
+++ b/code/datums/components/_component.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/_component.dm - Space Station 13
+
+
+
+
+code/datums/components/_component.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/boomerang.html b/code/datums/components/boomerang.html
new file mode 100644
index 0000000000000..983aa97f2e239
--- /dev/null
+++ b/code/datums/components/boomerang.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/datums/components/boomerang.dm - Space Station 13
+
+
+
+
+code/datums/components/boomerang.dm
+
+
+
+
+ BOOMERANG_REBOUND_INTERVAL The cooldown period between last_boomerang_throw and it's methods of implementing a rebound proc.
+ /datum/component/boomerang If an object is given the boomerang component, it should be thrown back to the thrower after either hitting it's 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.
Define Details
+BOOMERANG_REBOUND_INTERVAL
+
+
+
+ The cooldown period between last_boomerang_throw and it's methods of implementing a rebound proc.
+
+
+
diff --git a/code/datums/components/boss_music.html b/code/datums/components/boss_music.html
new file mode 100644
index 0000000000000..b633ae95af487
--- /dev/null
+++ b/code/datums/components/boss_music.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/boss_music.dm - Space Station 13
+
+
+
+
+code/datums/components/boss_music.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/codeword_hearing.html b/code/datums/components/codeword_hearing.html
new file mode 100644
index 0000000000000..4843008edd774
--- /dev/null
+++ b/code/datums/components/codeword_hearing.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/codeword_hearing.dm - Space Station 13
+
+
+
+
+code/datums/components/codeword_hearing.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/connect_mob_behalf.html b/code/datums/components/connect_mob_behalf.html
new file mode 100644
index 0000000000000..beeced1e352cc
--- /dev/null
+++ b/code/datums/components/connect_mob_behalf.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/components/connect_mob_behalf.dm - Space Station 13
+
+
+
+
+code/datums/components/connect_mob_behalf.dm
+
+
+
+
+ /datum/component/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 seperate listener, which makes this quite powerful
+
+
+
diff --git a/code/datums/components/corpse_description.html b/code/datums/components/corpse_description.html
new file mode 100644
index 0000000000000..6a1e2d4286409
--- /dev/null
+++ b/code/datums/components/corpse_description.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/components/corpse_description.dm - Space Station 13
+
+
+
+
+code/datums/components/corpse_description.dm
+
+
+
+
+ /datum/component/corpse_description Mapping component which adds examine text to a corpse that is removed on revival (in case for some reason someone revives your space ruin mob)
+For immersive environmental story telling
+
+
+
diff --git a/code/datums/components/cult_held_body.html b/code/datums/components/cult_held_body.html
new file mode 100644
index 0000000000000..0d6b24f239118
--- /dev/null
+++ b/code/datums/components/cult_held_body.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/components/cult_held_body.dm - Space Station 13
+
+
+
+
+code/datums/components/cult_held_body.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/deadchat_control.html b/code/datums/components/deadchat_control.html
new file mode 100644
index 0000000000000..a3693e76367e4
--- /dev/null
+++ b/code/datums/components/deadchat_control.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/deadchat_control.dm - Space Station 13
+
+
+
+
+code/datums/components/deadchat_control.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/defibrillator.html b/code/datums/components/defibrillator.html
new file mode 100644
index 0000000000000..b6a9b3447ce06
--- /dev/null
+++ b/code/datums/components/defibrillator.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/defibrillator.dm - Space Station 13
+
+
+
+
+code/datums/components/defibrillator.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/footstep.html b/code/datums/components/footstep.html
new file mode 100644
index 0000000000000..63239acb96ccb
--- /dev/null
+++ b/code/datums/components/footstep.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/footstep.dm - Space Station 13
+
+
+
+
+code/datums/components/footstep.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/label.html b/code/datums/components/label.html
new file mode 100644
index 0000000000000..f468ef84ea343
--- /dev/null
+++ b/code/datums/components/label.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/components/label.dm - Space Station 13
+
+
+
+
+code/datums/components/label.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/largeobjecttransparency.html b/code/datums/components/largeobjecttransparency.html
new file mode 100644
index 0000000000000..11f0ee9145c4b
--- /dev/null
+++ b/code/datums/components/largeobjecttransparency.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/largeobjecttransparency.dm - Space Station 13
+
+
+
+
+code/datums/components/largeobjecttransparency.dm
+
+
+
+
+ /datum /component /largetransparency Makes large icons partially see through if high priority atoms are behind them.
+
+
+
diff --git a/code/datums/components/orbiter.html b/code/datums/components/orbiter.html
new file mode 100644
index 0000000000000..2c0b08a4c2889
--- /dev/null
+++ b/code/datums/components/orbiter.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ code/datums/components/orbiter.dm - Space Station 13
+
+
+
+
+code/datums/components/orbiter.dm
+
+
+
+
+ ORBIT_LOCK_IN Code to handle atoms orbiting other atoms, following them as they move.
+The basic logic is simple. We register a signal, COMSIG_MOVABLE_MOVED onto orbited atoms.
+When the orbited atom moves, any ghosts orbiting them are moved to their turf.
+We also register a MOVED signal onto the ghosts to cancel their orbit if they move themselves.
+Complexities come in for items within other items (such as the NAD in a box in a backpack on an assistant pretending to be the captain),
+as items in containers do not fire COMSIG_MOVABLE_MOVED when their container moves.
Define Details
+ORBIT_LOCK_IN
+
+
+
+ Code to handle atoms orbiting other atoms, following them as they move.
+The basic logic is simple. We register a signal, COMSIG_MOVABLE_MOVED onto orbited atoms.
+When the orbited atom moves, any ghosts orbiting them are moved to their turf.
+We also register a MOVED signal onto the ghosts to cancel their orbit if they move themselves.
+Complexities come in for items within other items (such as the NAD in a box in a backpack on an assistant pretending to be the captain),
+as items in containers do not fire COMSIG_MOVABLE_MOVED when their container moves.
+The signal logic for items in containers is as follows:
+Assume 1 is some item (for example, the NAD) and 2 is a box.
+When 1 is added to 2, we register the typical orbit COMSIG_MOVABLE_MOVED onto 2.
+This in essence makes 2 the "leader", the atom that ghosts follow in movement.
+As 2 is moved around (say, dragged on the floor) ghosts will follow it.
+We also register a new intermediate COMSIG_MOVABLE_MOVED signal onto 1 that tracks if 1 is moved.
+Remember, this will only fire if 1 is moved around containers, since it's impossible for it to actually move on its own.
+If 1 is moved out of 2, this signal makes 1 the new leader.
+Lastly, we add a COMSIG_ATOM_EXITED to 2, which tracks if 1 is removed from 2.
+This EXITED signal cleans up any orbiting signals on and above 2.
+If 2 is added to another item, (say a backpack, 3)
+3 becomes the new leader
+2 becomes an intermediate
+1 is unchanged (but still carries the orbiter datum)
+You may be asking yourself: is this overengineered?
+In part, yes. However, MOVED signals don't get fired for items in containers, so this is
+really the next best way.
+Also, is this really optimal?
+As much as it can be, I believe. This signal-shuffling will not happen for any item that is just moving from turf to turf,
+which should apply to 95% of cases (read: ghosts orbiting mobs).
+
+
+
diff --git a/code/datums/components/proximity_monitor.html b/code/datums/components/proximity_monitor.html
new file mode 100644
index 0000000000000..dea4e5ae6e7c2
--- /dev/null
+++ b/code/datums/components/proximity_monitor.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/components/proximity_monitor.dm - Space Station 13
+
+
+
+
+code/datums/components/proximity_monitor.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/scope.html b/code/datums/components/scope.html
new file mode 100644
index 0000000000000..0cbe35465513c
--- /dev/null
+++ b/code/datums/components/scope.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/scope.dm - Space Station 13
+
+
+
+
+code/datums/components/scope.dm
+
+
+
+
+ /datum/component/scope A component that allows players to use the item to zoom out. Mainly intended for firearms, but now works with other items too.
+
+
+
diff --git a/code/datums/components/shielded.html b/code/datums/components/shielded.html
new file mode 100644
index 0000000000000..95220ab010725
--- /dev/null
+++ b/code/datums/components/shielded.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/shielded.dm - Space Station 13
+
+
+
+
+code/datums/components/shielded.dm
+
+
+
+
+ /datum/component/shielded The shielded component causes the parent item to nullify a certain number of attacks against the wearer, see: shielded vests.
+
+
+
diff --git a/code/datums/components/slippery.html b/code/datums/components/slippery.html
new file mode 100644
index 0000000000000..f0d195262e210
--- /dev/null
+++ b/code/datums/components/slippery.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/slippery.dm - Space Station 13
+
+
+
+
+code/datums/components/slippery.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/squish.html b/code/datums/components/squish.html
new file mode 100644
index 0000000000000..eede598278635
--- /dev/null
+++ b/code/datums/components/squish.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/squish.dm - Space Station 13
+
+
+
+
+code/datums/components/squish.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/surgery_initiator.html b/code/datums/components/surgery_initiator.html
new file mode 100644
index 0000000000000..8e99a76f7d810
--- /dev/null
+++ b/code/datums/components/surgery_initiator.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/surgery_initiator.dm - Space Station 13
+
+
+
+
+code/datums/components/surgery_initiator.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/tilted.html b/code/datums/components/tilted.html
new file mode 100644
index 0000000000000..98092a43d617e
--- /dev/null
+++ b/code/datums/components/tilted.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/components/tilted.dm - Space Station 13
+
+
+
+
+code/datums/components/tilted.dm
+
+
+
+
+ /datum/component/tilted A component that should be attached to things that have been tilted over, and can be righted.
+This can optionally block normal attack_hand interactions
+
+
+
diff --git a/code/datums/components/two_handed.html b/code/datums/components/two_handed.html
new file mode 100644
index 0000000000000..7d72a20e1fee5
--- /dev/null
+++ b/code/datums/components/two_handed.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/components/two_handed.dm - Space Station 13
+
+
+
+
+code/datums/components/two_handed.dm
+
+
+
+
+
+
+
diff --git a/code/datums/custom_user_item.html b/code/datums/custom_user_item.html
new file mode 100644
index 0000000000000..8c8b97abe3dd8
--- /dev/null
+++ b/code/datums/custom_user_item.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/custom_user_item.dm - Space Station 13
+
+
+
+
+code/datums/custom_user_item.dm
+
+
+
+
+
+
+
diff --git a/code/datums/discord/discord_webhook.html b/code/datums/discord/discord_webhook.html
new file mode 100644
index 0000000000000..50d912d9eacf6
--- /dev/null
+++ b/code/datums/discord/discord_webhook.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/discord/discord_webhook.dm - Space Station 13
+
+
+
+
+code/datums/discord/discord_webhook.dm
+
+
+
+
+
+
+
diff --git a/code/datums/diseases/advance/symptoms/dizzy.html b/code/datums/diseases/advance/symptoms/dizzy.html
new file mode 100644
index 0000000000000..8037c21bb92e1
--- /dev/null
+++ b/code/datums/diseases/advance/symptoms/dizzy.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/diseases/advance/symptoms/dizzy.dm - Space Station 13
+
+
+
+
+code/datums/diseases/advance/symptoms/dizzy.dm
+
+
+
+
+ /datum /symptom/dizzy Not the egg
+
+
+
diff --git a/code/datums/elements/_element.html b/code/datums/elements/_element.html
new file mode 100644
index 0000000000000..a7d9f84d867bb
--- /dev/null
+++ b/code/datums/elements/_element.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/elements/_element.dm - Space Station 13
+
+
+
+
+code/datums/elements/_element.dm
+
+
+
+
+ /datum/element A holder for simple behaviour that can be attached to many different types
+
+
+
diff --git a/code/datums/elements/bombable_turf.html b/code/datums/elements/bombable_turf.html
new file mode 100644
index 0000000000000..d08f0bf0820e7
--- /dev/null
+++ b/code/datums/elements/bombable_turf.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/elements/bombable_turf.dm - Space Station 13
+
+
+
+
+code/datums/elements/bombable_turf.dm
+
+
+
+
+ /datum/element/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
+
+
+
diff --git a/code/datums/elements/shatters_when_thrown.html b/code/datums/elements/shatters_when_thrown.html
new file mode 100644
index 0000000000000..0e8ccc9704472
--- /dev/null
+++ b/code/datums/elements/shatters_when_thrown.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/elements/shatters_when_thrown.dm - Space Station 13
+
+
+
+
+code/datums/elements/shatters_when_thrown.dm
+
+
+
+
+
+
+
diff --git a/code/datums/elements/strippable.html b/code/datums/elements/strippable.html
new file mode 100644
index 0000000000000..2797f36ab596e
--- /dev/null
+++ b/code/datums/elements/strippable.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ code/datums/elements/strippable.dm - Space Station 13
+
+
+
+
+code/datums/elements/strippable.dm
+
+
+
+
+
+
+
diff --git a/code/datums/emote.html b/code/datums/emote.html
new file mode 100644
index 0000000000000..0c6942d59fc03
--- /dev/null
+++ b/code/datums/emote.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ code/datums/emote.dm - Space Station 13
+
+
+
+
+code/datums/emote.dm
+
+
+
+
+ DEFAULT_MAX_STAT_ALLOWED Sentinel for emote stats.
+If this is set for max stat, then its value will be ignored.
+ /datum/emote Most of the text that's not someone talking is based off of this.
Define Details
+DEFAULT_MAX_STAT_ALLOWED
+
+
+
+ Sentinel for emote stats.
+If this is set for max stat, then its value will be ignored.
+
+
+
diff --git a/code/datums/helper_datums/async_input.html b/code/datums/helper_datums/async_input.html
new file mode 100644
index 0000000000000..88343ea042e60
--- /dev/null
+++ b/code/datums/helper_datums/async_input.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/helper_datums/async_input.dm - Space Station 13
+
+
+
+
+code/datums/helper_datums/async_input.dm
+
+
+
+
+ /datum /async_input THIS WILL BE REMOVED IN THE FUTURE, I STRONGLY SUGGEST AGAINST USING THIS - GDN
+
+
+
diff --git a/code/datums/helper_datums/teleport.html b/code/datums/helper_datums/teleport.html
new file mode 100644
index 0000000000000..ad2cd60f05e8f
--- /dev/null
+++ b/code/datums/helper_datums/teleport.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/helper_datums/teleport.dm - Space Station 13
+
+
+
+
+code/datums/helper_datums/teleport.dm
+
+
+
+
+ /proc/do_teleport
+ Will teleport the given atom to the given destination using the other parameters
+
+
+
diff --git a/code/datums/http.html b/code/datums/http.html
new file mode 100644
index 0000000000000..5db03d8f1cfe0
--- /dev/null
+++ b/code/datums/http.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/http.dm - Space Station 13
+
+
+
+
+code/datums/http.dm
+
+
+
+
+
+
+
diff --git a/code/datums/keybindings/mob_keybinds.html b/code/datums/keybindings/mob_keybinds.html
new file mode 100644
index 0000000000000..95cf31759476b
--- /dev/null
+++ b/code/datums/keybindings/mob_keybinds.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/keybindings/mob_keybinds.dm - Space Station 13
+
+
+
+
+code/datums/keybindings/mob_keybinds.dm
+
+
+
+
+ /datum /keybinding /mob/trigger_action_button Don't add a name to this, shouldn't show up in the prefs menu
+
+
+
diff --git a/code/datums/looping_sounds/looping_sound.html b/code/datums/looping_sounds/looping_sound.html
new file mode 100644
index 0000000000000..3b1aa67a856a3
--- /dev/null
+++ b/code/datums/looping_sounds/looping_sound.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/looping_sounds/looping_sound.dm - Space Station 13
+
+
+
+
+code/datums/looping_sounds/looping_sound.dm
+
+
+
+
+
+
+
diff --git a/code/datums/looping_sounds/machinery_sounds.html b/code/datums/looping_sounds/machinery_sounds.html
new file mode 100644
index 0000000000000..06afd4df44c76
--- /dev/null
+++ b/code/datums/looping_sounds/machinery_sounds.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/looping_sounds/machinery_sounds.dm - Space Station 13
+
+
+
+
+code/datums/looping_sounds/machinery_sounds.dm
+
+
+
+
+
+
+
diff --git a/code/datums/movement_detector.html b/code/datums/movement_detector.html
new file mode 100644
index 0000000000000..86713b61ae0b6
--- /dev/null
+++ b/code/datums/movement_detector.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/movement_detector.dm - Space Station 13
+
+
+
+
+code/datums/movement_detector.dm
+
+
+
+
+ /datum/movement_detector A datum to handle the busywork of registering signals to handle in depth tracking of a movable
+
+
+
diff --git a/code/datums/outfits/outfit_admin.html b/code/datums/outfits/outfit_admin.html
new file mode 100644
index 0000000000000..928d471978be9
--- /dev/null
+++ b/code/datums/outfits/outfit_admin.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/outfits/outfit_admin.dm - Space Station 13
+
+
+
+
+code/datums/outfits/outfit_admin.dm
+
+
+
+
+ /datum /outfit /admin/modsuit/wizard Technically not a MODsuit, we'll bundle it up in here for the future when it does become one
+ /datum /outfit /admin/tournament/tournament_gangster gangster are supposed to fight each other. --rastaf0
+ /datum /outfit /admin/tournament/tournament_chef Steven Seagal FTW
+
+
+
diff --git a/code/datums/outfits/outfit_debug.html b/code/datums/outfits/outfit_debug.html
new file mode 100644
index 0000000000000..b5b9d45e35c2c
--- /dev/null
+++ b/code/datums/outfits/outfit_debug.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/outfits/outfit_debug.dm - Space Station 13
+
+
+
+
+code/datums/outfits/outfit_debug.dm
+
+
+
+
+ /obj /item /encryptionkey/syndicate/all_channels has to be a subtype and stuff
+
+
+
diff --git a/code/datums/pathfinding_mover.html b/code/datums/pathfinding_mover.html
new file mode 100644
index 0000000000000..f2e3ade4da1d0
--- /dev/null
+++ b/code/datums/pathfinding_mover.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/pathfinding_mover.dm - Space Station 13
+
+
+
+
+code/datums/pathfinding_mover.dm
+
+
+
+
+
+
+
diff --git a/code/datums/pipe_datums.html b/code/datums/pipe_datums.html
new file mode 100644
index 0000000000000..6ef484bc8848c
--- /dev/null
+++ b/code/datums/pipe_datums.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/pipe_datums.dm - Space Station 13
+
+
+
+
+code/datums/pipe_datums.dm
+
+
+
+
+ /datum /pipes/atmospheric/bent Why is this not atmospheric/simple/bent you ask? Because otherwise the ordering of the pipes in the UI menu gets weird
+ /datum/pipes/transit Pipe types for transit tubes.
+
+
+
diff --git a/code/datums/position_point_vector.html b/code/datums/position_point_vector.html
new file mode 100644
index 0000000000000..0fcb78f2e1f7c
--- /dev/null
+++ b/code/datums/position_point_vector.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/position_point_vector.dm - Space Station 13
+
+
+
+
+code/datums/position_point_vector.dm
+
+
+
+
+ /datum /position For positions with map x/y/z and pixel x/y so you don't have to return lists. Could use addition/subtraction in the future I guess.
+ /datum/point_precise A precise point on the map in absolute pixel locations based on world.icon_size. Pixels are FROM THE EDGE OF THE MAP!
+ /datum /point_precise /vector /processed pixel_speed is per decisecond.
+
+
+
diff --git a/code/datums/revision.html b/code/datums/revision.html
new file mode 100644
index 0000000000000..d83e628e82c71
--- /dev/null
+++ b/code/datums/revision.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/revision.dm - Space Station 13
+
+
+
+
+code/datums/revision.dm
+
+
+
+
+
+
+
diff --git a/code/datums/spell_handler/spell_handler.html b/code/datums/spell_handler/spell_handler.html
new file mode 100644
index 0000000000000..73a968b8b4e07
--- /dev/null
+++ b/code/datums/spell_handler/spell_handler.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/spell_handler/spell_handler.dm - Space Station 13
+
+
+
+
+code/datums/spell_handler/spell_handler.dm
+
+
+
+
+ /datum /spell_handler The base class for the handler systems spells use.
+Subtypes of this class can be added to spells to modify their behaviour and change their can_cast.
+Thus allowing for a more modular behaviour system. For example a vampire spell that jaunts can just add the vampire spell_handler to the jaunt spell
+
+
+
diff --git a/code/datums/spell_targeting/alive_mobs.html b/code/datums/spell_targeting/alive_mobs.html
new file mode 100644
index 0000000000000..7bd70c55b2b4f
--- /dev/null
+++ b/code/datums/spell_targeting/alive_mobs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/spell_targeting/alive_mobs.dm - Space Station 13
+
+
+
+
+code/datums/spell_targeting/alive_mobs.dm
+
+
+
+
+ /datum /spell_targeting /alive_mob_list Will find targets in the GLOB.alive_mob_list. The result will be in a random order
+
+
+
diff --git a/code/datums/spell_targeting/aoe.html b/code/datums/spell_targeting/aoe.html
new file mode 100644
index 0000000000000..cd4220a103ba0
--- /dev/null
+++ b/code/datums/spell_targeting/aoe.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/spell_targeting/aoe.dm - Space Station 13
+
+
+
+
+code/datums/spell_targeting/aoe.dm
+
+
+
+
+
+
+
diff --git a/code/datums/spell_targeting/click_spell_targeting.html b/code/datums/spell_targeting/click_spell_targeting.html
new file mode 100644
index 0000000000000..76d1b49ea8967
--- /dev/null
+++ b/code/datums/spell_targeting/click_spell_targeting.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/spell_targeting/click_spell_targeting.dm - Space Station 13
+
+
+
+
+code/datums/spell_targeting/click_spell_targeting.dm
+
+
+
+
+
+
+
diff --git a/code/datums/spell_targeting/clicked_atom.html b/code/datums/spell_targeting/clicked_atom.html
new file mode 100644
index 0000000000000..37dfe858329d3
--- /dev/null
+++ b/code/datums/spell_targeting/clicked_atom.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/spell_targeting/clicked_atom.dm - Space Station 13
+
+
+
+
+code/datums/spell_targeting/clicked_atom.dm
+
+
+
+
+
+
+
diff --git a/code/datums/spell_targeting/matter_eater_targeting.html b/code/datums/spell_targeting/matter_eater_targeting.html
new file mode 100644
index 0000000000000..2fdc9a02d815e
--- /dev/null
+++ b/code/datums/spell_targeting/matter_eater_targeting.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/spell_targeting/matter_eater_targeting.dm - Space Station 13
+
+
+
+
+code/datums/spell_targeting/matter_eater_targeting.dm
+
+
+
+
+ /datum /spell_targeting /matter_eater A spell targeting system especially made for the matter eater gene
+
+
+
diff --git a/code/datums/spell_targeting/reachable_turfs.html b/code/datums/spell_targeting/reachable_turfs.html
new file mode 100644
index 0000000000000..5d392bd9b6c09
--- /dev/null
+++ b/code/datums/spell_targeting/reachable_turfs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/spell_targeting/reachable_turfs.dm - Space Station 13
+
+
+
+
+code/datums/spell_targeting/reachable_turfs.dm
+
+
+
+
+ /datum /spell_targeting /reachable_turfs A spell targeting system which will return nearby turfs which are reachable from the users location. Will pad the targets with the user's location if needed
+
+
+
diff --git a/code/datums/spell_targeting/remoteview_targeting.html b/code/datums/spell_targeting/remoteview_targeting.html
new file mode 100644
index 0000000000000..88a979d5e1c00
--- /dev/null
+++ b/code/datums/spell_targeting/remoteview_targeting.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/spell_targeting/remoteview_targeting.dm - Space Station 13
+
+
+
+
+code/datums/spell_targeting/remoteview_targeting.dm
+
+
+
+
+ /datum /spell_targeting /remoteview A spell targeting system which will return one user picked target from all alive mobs who have the remoteview block but do not have the psyresist block active.
+
+
+
diff --git a/code/datums/spell_targeting/self_targeting.html b/code/datums/spell_targeting/self_targeting.html
new file mode 100644
index 0000000000000..62227f966aaa2
--- /dev/null
+++ b/code/datums/spell_targeting/self_targeting.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/spell_targeting/self_targeting.dm - Space Station 13
+
+
+
+
+code/datums/spell_targeting/self_targeting.dm
+
+
+
+
+
+
+
diff --git a/code/datums/spell_targeting/spell_targeting.html b/code/datums/spell_targeting/spell_targeting.html
new file mode 100644
index 0000000000000..160cb823d9272
--- /dev/null
+++ b/code/datums/spell_targeting/spell_targeting.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/spell_targeting/spell_targeting.dm - Space Station 13
+
+
+
+
+code/datums/spell_targeting/spell_targeting.dm
+
+
+
+
+
+
+
diff --git a/code/datums/spell_targeting/spiral_targeting.html b/code/datums/spell_targeting/spiral_targeting.html
new file mode 100644
index 0000000000000..9900c8f93df1d
--- /dev/null
+++ b/code/datums/spell_targeting/spiral_targeting.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/spell_targeting/spiral_targeting.dm - Space Station 13
+
+
+
+
+code/datums/spell_targeting/spiral_targeting.dm
+
+
+
+
+
+
+
diff --git a/code/datums/spell_targeting/targeted.html b/code/datums/spell_targeting/targeted.html
new file mode 100644
index 0000000000000..50b20d1fea6bb
--- /dev/null
+++ b/code/datums/spell_targeting/targeted.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/spell_targeting/targeted.dm - Space Station 13
+
+
+
+
+code/datums/spell_targeting/targeted.dm
+
+
+
+
+ /datum/spell_targeting/targeted A spell targeting system which is able to select 1 to many targets in range/view of the caster. Has a random mode, distance from user based mode or a user input mode.
+
+
+
diff --git a/code/datums/spell_targeting/telepathic.html b/code/datums/spell_targeting/telepathic.html
new file mode 100644
index 0000000000000..76142f367c64b
--- /dev/null
+++ b/code/datums/spell_targeting/telepathic.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/spell_targeting/telepathic.dm - Space Station 13
+
+
+
+
+code/datums/spell_targeting/telepathic.dm
+
+
+
+
+ /datum /spell_targeting /telepathic A spell targeting system which will allow the user to select a target from nearby living mobs. The name will be "Unknown entity" if the user can not see them
+
+
+
diff --git a/code/datums/spells/alien_spells/regurgitate.html b/code/datums/spells/alien_spells/regurgitate.html
new file mode 100644
index 0000000000000..4b45cde6f1c9a
--- /dev/null
+++ b/code/datums/spells/alien_spells/regurgitate.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/spells/alien_spells/regurgitate.dm - Space Station 13
+
+
+
+
+code/datums/spells/alien_spells/regurgitate.dm
+
+
+
+
+
+
+
diff --git a/code/datums/spells/bloodcrawl.html b/code/datums/spells/bloodcrawl.html
new file mode 100644
index 0000000000000..04f85c3be60d6
--- /dev/null
+++ b/code/datums/spells/bloodcrawl.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/spells/bloodcrawl.dm - Space Station 13
+
+
+
+
+code/datums/spells/bloodcrawl.dm
+
+
+
+
+ /obj /effect/dummy/slaughter Can't use the wizard one, blocked by jaunt/slow
+
+
+
diff --git a/code/datums/spells/charge_up.html b/code/datums/spells/charge_up.html
new file mode 100644
index 0000000000000..b826a1fa65472
--- /dev/null
+++ b/code/datums/spells/charge_up.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/spells/charge_up.dm - Space Station 13
+
+
+
+
+code/datums/spells/charge_up.dm
+
+
+
+
+ /datum/spell/charge_up A click-based spell template which starts charging up once you click the action button/verb. Click again on something to activate the actual spell
+
+
+
diff --git a/code/datums/spells/charge_up_bounce.html b/code/datums/spells/charge_up_bounce.html
new file mode 100644
index 0000000000000..1eac25aa3b279
--- /dev/null
+++ b/code/datums/spells/charge_up_bounce.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/spells/charge_up_bounce.dm - Space Station 13
+
+
+
+
+code/datums/spells/charge_up_bounce.dm
+
+
+
+
+ /datum/spell/charge_up/bounce A spell template that adds bounces to the charge_up spell template. The spell will bounce between targets once released.
+Don't override cast and instead override apply_bounce_effect and the other procs
+
+
+
diff --git a/code/datums/spells/construct_spells.html b/code/datums/spells/construct_spells.html
new file mode 100644
index 0000000000000..d125fac013835
--- /dev/null
+++ b/code/datums/spells/construct_spells.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/spells/construct_spells.dm - Space Station 13
+
+
+
+
+code/datums/spells/construct_spells.dm
+
+
+
+
+
+
+
diff --git a/code/datums/station_traits/_station_trait.html b/code/datums/station_traits/_station_trait.html
new file mode 100644
index 0000000000000..537e0be073797
--- /dev/null
+++ b/code/datums/station_traits/_station_trait.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/station_traits/_station_trait.dm - Space Station 13
+
+
+
+
+code/datums/station_traits/_station_trait.dm
+
+
+
+
+ /datum/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.
+
+
+
diff --git a/code/datums/station_traits/positive_traits.html b/code/datums/station_traits/positive_traits.html
new file mode 100644
index 0000000000000..cb3c8c11d95b0
--- /dev/null
+++ b/code/datums/station_traits/positive_traits.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/station_traits/positive_traits.dm - Space Station 13
+
+
+
+
+code/datums/station_traits/positive_traits.dm
+
+
+
+
+
+
+
diff --git a/code/datums/status_effects/debuffs.html b/code/datums/status_effects/debuffs.html
new file mode 100644
index 0000000000000..a017ec66a238b
--- /dev/null
+++ b/code/datums/status_effects/debuffs.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ code/datums/status_effects/debuffs.dm - Space Station 13
+
+
+
+
+code/datums/status_effects/debuffs.dm
+
+
+
+
+ /datum /status_effect /his_wrath does minor damage over time unless holding His Grace
+ /datum /status_effect /cultghost is a cult ghost and can't use manifest runes, can see ghosts and dies if too far from summoner
+ /datum /status_effect /transient /confusion Prevents moving straight, sometimes changing movement direction at random.
+Decays at a rate of 1 per second.
+ /datum /status_effect /transient /dizziness Slightly offsets the client's screen randomly every tick.
+Decays at a rate of 1 per second, or 5 when resting.
+ /datum /status_effect /transient /drowsiness Slows down and causes eye blur, with a 5% chance of falling asleep for a short time.
+Decays at a rate of 1 per second, or 5 when resting.
+ /datum /status_effect /transient /drunkenness Causes a myriad of status effects and other afflictions the stronger it is.
+Decays at a rate of 1 per second if no alcohol remains inside.
+ /datum /status_effect /transient /silence/absolute this one will mute all emote sounds including gasps
+ HALLUCINATE_COOLDOWN_FACTOR This is multiplied with [/mob/var/hallucination] to determine the final cooldown. A higher hallucination value means shorter cooldown.
+ HALLUCINATE_CHANCE Percentage defining the chance at which an hallucination may spawn past the cooldown.
+ /datum/status_effect/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.
Define Details
+HALLUCINATE_CHANCE
+
+
+
+ Percentage defining the chance at which an hallucination may spawn past the cooldown.
HALLUCINATE_COOLDOWN_FACTOR
+
+
+
+ This is multiplied with [/mob/var/hallucination] to determine the final cooldown. A higher hallucination value means shorter cooldown.
+
+
+
diff --git a/code/datums/status_effects/neutral.html b/code/datums/status_effects/neutral.html
new file mode 100644
index 0000000000000..1fcf008797be8
--- /dev/null
+++ b/code/datums/status_effects/neutral.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/status_effects/neutral.dm - Space Station 13
+
+
+
+
+code/datums/status_effects/neutral.dm
+
+
+
+
+ /datum /status_effect /crusher_damage tracks the damage dealt to this mob by kinetic crushers
+ /datum/status_effect/limited_bonus A status effect that can have a certain amount of "bonus" duration added, which extends the duration every tick,
+although there is a maximum amount of bonus time that can be active at any given time.
+
+
+
diff --git a/code/datums/status_effects/status_effect.html b/code/datums/status_effects/status_effect.html
new file mode 100644
index 0000000000000..2ece00ca23f8b
--- /dev/null
+++ b/code/datums/status_effects/status_effect.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/datums/status_effects/status_effect.dm - Space Station 13
+
+
+
+
+code/datums/status_effects/status_effect.dm
+
+
+
+
+ /datum /status_effect /grouped Status effect from multiple sources, when all sources are removed, so is the effect
+Adds itself to sources and destroys itself if one exists already, there are never multiple
+ /datum/status_effect/transient A status effect that works off a (possibly decimal) counter before expiring, rather than a specified world.time.
+This allows for a more precise tweaking of status durations at runtime (e.g. paralysis).
+
+
+
diff --git a/code/datums/uplink_items/uplink_special.html b/code/datums/uplink_items/uplink_special.html
new file mode 100644
index 0000000000000..6f5c2006cc165
--- /dev/null
+++ b/code/datums/uplink_items/uplink_special.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/uplink_items/uplink_special.dm - Space Station 13
+
+
+
+
+code/datums/uplink_items/uplink_special.dm
+
+
+
+
+ /datum /uplink_item /special This uplink catagory is for uplink items avalible by special circumstances. Think station traits, or if some event rolling in a round gave traitors special items, or an objective.
+
+
+
diff --git a/code/datums/uplink_items/uplink_traitor.html b/code/datums/uplink_items/uplink_traitor.html
new file mode 100644
index 0000000000000..c00d3850fdacb
--- /dev/null
+++ b/code/datums/uplink_items/uplink_traitor.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/uplink_items/uplink_traitor.dm - Space Station 13
+
+
+
+
+code/datums/uplink_items/uplink_traitor.dm
+
+
+
+
+ /datum /uplink_item /stealthy_weapons/combat_minus Nukies get combat gloves plus instead
+ /datum /uplink_item /device_tools/thermal_drill Nukies get Diamond Tipped Thermal Safe Drill instead
+ /datum /uplink_item /bio_chips/uplink Nukies get Nuclear Uplink Bio-chip instead
+
+
+
diff --git a/code/datums/verb_callbacks.html b/code/datums/verb_callbacks.html
new file mode 100644
index 0000000000000..5b20fb328dfe3
--- /dev/null
+++ b/code/datums/verb_callbacks.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/verb_callbacks.dm - Space Station 13
+
+
+
+
+code/datums/verb_callbacks.dm
+
+
+
+
+
+
+
diff --git a/code/game/area/areas/mining_areas.html b/code/game/area/areas/mining_areas.html
new file mode 100644
index 0000000000000..b6a4a22b1101a
--- /dev/null
+++ b/code/game/area/areas/mining_areas.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/game/area/areas/mining_areas.dm - Space Station 13
+
+
+
+
+code/game/area/areas/mining_areas.dm
+
+
+
+
+ /area /mine Mine areas
+ /area /mine/outpost Outpost areas
+ /area /lavaland/surface/outdoors/outpost/catwalk subtype of /surface so storms hit there
+ /area /mine/outpost/engineering basically engi and atmos combined. I'm keeping it as "engineering" code wise, but "Life Support" sounds cooler in-game
+ /area /lavaland Lavaland Areas
+ /area /lavaland/surface/outdoors/unexplored monsters and ruins spawn here
+ /area /lavaland/surface/outdoors/unexplored/danger megafauna will also spawn here
+
+
+
diff --git a/code/game/area/away_content_areas.html b/code/game/area/away_content_areas.html
new file mode 100644
index 0000000000000..647d24be26c39
--- /dev/null
+++ b/code/game/area/away_content_areas.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/area/away_content_areas.dm - Space Station 13
+
+
+
+
+code/game/area/away_content_areas.dm
+
+
+
+
+ /area /awaycontent AWAY AREAS
+
+
+
diff --git a/code/game/area/misc_areas.html b/code/game/area/misc_areas.html
new file mode 100644
index 0000000000000..90539338e2acc
--- /dev/null
+++ b/code/game/area/misc_areas.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/area/misc_areas.dm - Space Station 13
+
+
+
+
+code/game/area/misc_areas.dm
+
+
+
+
+ /area /start will be unused once kurper gets his login interface patch done
+
+
+
diff --git a/code/game/area/ss13_areas/maintenance_areas.html b/code/game/area/ss13_areas/maintenance_areas.html
new file mode 100644
index 0000000000000..bf75078cce4c9
--- /dev/null
+++ b/code/game/area/ss13_areas/maintenance_areas.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/area/ss13_areas/maintenance_areas.dm - Space Station 13
+
+
+
+
+code/game/area/ss13_areas/maintenance_areas.dm
+
+
+
+
+ /area /station/maintenance/assembly_line Derelict Assembly Line
+
+
+
diff --git a/code/game/data_huds.html b/code/game/data_huds.html
new file mode 100644
index 0000000000000..1d6b8b237c419
--- /dev/null
+++ b/code/game/data_huds.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/data_huds.dm - Space Station 13
+
+
+
+
+code/game/data_huds.dm
+
+
+
+
+
+
+
diff --git a/code/game/dna/dna_modifier.html b/code/game/dna/dna_modifier.html
new file mode 100644
index 0000000000000..4a5313a0cfd31
--- /dev/null
+++ b/code/game/dna/dna_modifier.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/dna/dna_modifier.dm - Space Station 13
+
+
+
+
+code/game/dna/dna_modifier.dm
+
+
+
+
+
+
+
diff --git a/code/game/dna/mutations/mutation_powers.html b/code/game/dna/mutations/mutation_powers.html
new file mode 100644
index 0000000000000..89fe0a0fd1c32
--- /dev/null
+++ b/code/game/dna/mutations/mutation_powers.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/dna/mutations/mutation_powers.dm - Space Station 13
+
+
+
+
+code/game/dna/mutations/mutation_powers.dm
+
+
+
+
+
+
+
diff --git a/code/game/gamemodes/cult/blood_magic.html b/code/game/gamemodes/cult/blood_magic.html
new file mode 100644
index 0000000000000..00358601cea5f
--- /dev/null
+++ b/code/game/gamemodes/cult/blood_magic.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/gamemodes/cult/blood_magic.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/cult/blood_magic.dm
+
+
+
+
+
+
+
diff --git a/code/game/gamemodes/cult/cult_objectives.html b/code/game/gamemodes/cult/cult_objectives.html
new file mode 100644
index 0000000000000..a639a534389ba
--- /dev/null
+++ b/code/game/gamemodes/cult/cult_objectives.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/gamemodes/cult/cult_objectives.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/cult/cult_objectives.dm
+
+
+
+
+ /datum /objective /servecult Given to cultists on conversion/roundstart
+
+
+
diff --git a/code/game/gamemodes/cult/cult_structures.html b/code/game/gamemodes/cult/cult_structures.html
new file mode 100644
index 0000000000000..7bb64b6f5ea0c
--- /dev/null
+++ b/code/game/gamemodes/cult/cult_structures.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/game/gamemodes/cult/cult_structures.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/cult/cult_structures.dm
+
+
+
+
+ CULT_STRUCTURE_COOLDOWN The amount of time necessary for a structure to be able to produce items after being built
Define Details
+CULT_STRUCTURE_COOLDOWN
+
+
+
+ The amount of time necessary for a structure to be able to produce items after being built
+
+
+
diff --git a/code/game/gamemodes/cult/runes.html b/code/game/gamemodes/cult/runes.html
new file mode 100644
index 0000000000000..63f18362080c3
--- /dev/null
+++ b/code/game/gamemodes/cult/runes.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/gamemodes/cult/runes.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/cult/runes.dm
+
+
+
+
+
+
+
diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.html b/code/game/gamemodes/miniantags/abduction/abduction_gear.html
new file mode 100644
index 0000000000000..1b862b1373aaa
--- /dev/null
+++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/game/gamemodes/miniantags/abduction/abduction_gear.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/miniantags/abduction/abduction_gear.dm
+
+
+
+
+
+
+
diff --git a/code/game/gamemodes/miniantags/abduction/gland.html b/code/game/gamemodes/miniantags/abduction/gland.html
new file mode 100644
index 0000000000000..020be81d8ad92
--- /dev/null
+++ b/code/game/gamemodes/miniantags/abduction/gland.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/gamemodes/miniantags/abduction/gland.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/miniantags/abduction/gland.dm
+
+
+
+
+
+
+
diff --git a/code/game/gamemodes/miniantags/demons/slaughter_demon/slaughter.html b/code/game/gamemodes/miniantags/demons/slaughter_demon/slaughter.html
new file mode 100644
index 0000000000000..a8821a61d3b65
--- /dev/null
+++ b/code/game/gamemodes/miniantags/demons/slaughter_demon/slaughter.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/game/gamemodes/miniantags/demons/slaughter_demon/slaughter.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/miniantags/demons/slaughter_demon/slaughter.dm
+
+
+
+
+
+
+
diff --git a/code/game/gamemodes/miniantags/guardian/guardian.html b/code/game/gamemodes/miniantags/guardian/guardian.html
new file mode 100644
index 0000000000000..b77ba3b30fa6e
--- /dev/null
+++ b/code/game/gamemodes/miniantags/guardian/guardian.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/gamemodes/miniantags/guardian/guardian.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/miniantags/guardian/guardian.dm
+
+
+
+
+
+
+
diff --git a/code/game/gamemodes/miniantags/guardian/host_actions.html b/code/game/gamemodes/miniantags/guardian/host_actions.html
new file mode 100644
index 0000000000000..3f7979d8685ba
--- /dev/null
+++ b/code/game/gamemodes/miniantags/guardian/host_actions.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/game/gamemodes/miniantags/guardian/host_actions.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/miniantags/guardian/host_actions.dm
+
+
+
+
+ /datum /action /guardian These are used by guardian hosts to interact with their guardians. These are not buttons that guardians themselves use.
+ /datum /action /guardian/communicate Allows the guardian host to communicate with their guardian.
+ /datum /action /guardian/recall Allows the guardian host to recall their guardian.
+ /datum/action/guardian/reset_guardian Allows the guardian host to exchange their guardian's player for another.
+
+
+
diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.html b/code/game/gamemodes/miniantags/revenant/revenant_abilities.html
new file mode 100644
index 0000000000000..4847ce538177d
--- /dev/null
+++ b/code/game/gamemodes/miniantags/revenant/revenant_abilities.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/gamemodes/miniantags/revenant/revenant_abilities.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
+
+
+
+
+
+
+
diff --git a/code/game/gamemodes/nuclear/nuclearbomb.html b/code/game/gamemodes/nuclear/nuclearbomb.html
new file mode 100644
index 0000000000000..7177860632d9d
--- /dev/null
+++ b/code/game/gamemodes/nuclear/nuclearbomb.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/gamemodes/nuclear/nuclearbomb.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/nuclear/nuclearbomb.dm
+
+
+
+
+
+
+
diff --git a/code/game/gamemodes/objective.html b/code/game/gamemodes/objective.html
new file mode 100644
index 0000000000000..7c3c6cfdd83fa
--- /dev/null
+++ b/code/game/gamemodes/objective.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/gamemodes/objective.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/objective.dm
+
+
+
+
+
+
+
diff --git a/code/game/gamemodes/objective_holder.html b/code/game/gamemodes/objective_holder.html
new file mode 100644
index 0000000000000..4da1f594bcc76
--- /dev/null
+++ b/code/game/gamemodes/objective_holder.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/gamemodes/objective_holder.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/objective_holder.dm
+
+
+
+
+
+
+
diff --git a/code/game/gamemodes/steal_items.html b/code/game/gamemodes/steal_items.html
new file mode 100644
index 0000000000000..adb9499e04b81
--- /dev/null
+++ b/code/game/gamemodes/steal_items.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/gamemodes/steal_items.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/steal_items.dm
+
+
+
+
+
+
+
diff --git a/code/game/gamemodes/wizard/artefact.html b/code/game/gamemodes/wizard/artefact.html
new file mode 100644
index 0000000000000..43f868666d649
--- /dev/null
+++ b/code/game/gamemodes/wizard/artefact.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/game/gamemodes/wizard/artefact.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/wizard/artefact.dm
+
+
+
+
+ /obj /item /contract Apprentice Contract
+ /obj /item /veilrender Veil Render
+ /obj /item /scrying Scrying
+ /obj /item /multisword/pike If We are to be used and spent, let it be for a noble purpose.
+ /obj /item /necromantic_stone Necromantic Stone
+
+
+
diff --git a/code/game/gamemodes/wizard/magic_tarot.html b/code/game/gamemodes/wizard/magic_tarot.html
new file mode 100644
index 0000000000000..904f43254f4f2
--- /dev/null
+++ b/code/game/gamemodes/wizard/magic_tarot.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/gamemodes/wizard/magic_tarot.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/wizard/magic_tarot.dm
+
+
+
+
+ /datum /tarot /the_stars I'm sorry matt, this is very funny.
+ /datum /tarot /reversed/the_fool REVERSED ARCANA
+
+
+
diff --git a/code/game/gamemodes/wizard/soulstone.html b/code/game/gamemodes/wizard/soulstone.html
new file mode 100644
index 0000000000000..5d912ee40f7f5
--- /dev/null
+++ b/code/game/gamemodes/wizard/soulstone.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/gamemodes/wizard/soulstone.dm - Space Station 13
+
+
+
+
+code/game/gamemodes/wizard/soulstone.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/Beacon.html b/code/game/machinery/Beacon.html
new file mode 100644
index 0000000000000..63d405f2609c6
--- /dev/null
+++ b/code/game/machinery/Beacon.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/Beacon.dm - Space Station 13
+
+
+
+
+code/game/machinery/Beacon.dm
+
+
+
+
+ /obj /machinery /bluespace_beacon/syndicate/infiltrator beacon guaranteed offline at roundstart for infiltrator base
+
+
+
diff --git a/code/game/machinery/camera/camera.html b/code/game/machinery/camera/camera.html
new file mode 100644
index 0000000000000..80c1202dc1e8f
--- /dev/null
+++ b/code/game/machinery/camera/camera.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/camera/camera.dm - Space Station 13
+
+
+
+
+code/game/machinery/camera/camera.dm
+
+
+
+
+ /obj /machinery /camera /portable Cameras which are placed inside of things, such as helmets.
+
+
+
diff --git a/code/game/machinery/clonepod.html b/code/game/machinery/clonepod.html
new file mode 100644
index 0000000000000..1b33683b5f8ea
--- /dev/null
+++ b/code/game/machinery/clonepod.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ code/game/machinery/clonepod.dm - Space Station 13
+
+
+
+
+code/game/machinery/clonepod.dm
+
+
+
+Define Details
+ALLOWED_ROBOT_PARTS
+
+
+
+ A list of robot parts for use later, so that you can put them straight into the cloner from the exosuit fabricator.
FORBIDDEN_INTERNAL_ORGANS
+
+
+
+ Internal organs the cloner will never accept for insertion.
FORBIDDEN_LIMBS
+
+
+
+ Limbs that the cloner won't accept.
UPGRADE_LOCKED_ORGANS
+
+
+
+ Internal organs the cloner will only accept when fully upgraded.
VALID_BIOMASSABLES
+
+
+
+ Meats that can be used as biomass for the cloner.
VALID_REAGENTS
+
+
+
+ Reagents that can be inserted into the cloning pod (and not deleted by it).
+
+
+
diff --git a/code/game/machinery/clonescanner.html b/code/game/machinery/clonescanner.html
new file mode 100644
index 0000000000000..9bb41224c0524
--- /dev/null
+++ b/code/game/machinery/clonescanner.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/clonescanner.dm - Space Station 13
+
+
+
+
+code/game/machinery/clonescanner.dm
+
+
+
+
+ /datum/cloning_data A datum to store the information gained by scanning a patient OR the fixes to be made to their body.
+
+
+
diff --git a/code/game/machinery/computer/medical_records.html b/code/game/machinery/computer/medical_records.html
new file mode 100644
index 0000000000000..656635e40e994
--- /dev/null
+++ b/code/game/machinery/computer/medical_records.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/computer/medical_records.dm - Space Station 13
+
+
+
+
+code/game/machinery/computer/medical_records.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/computer/power_monitor_console.html b/code/game/machinery/computer/power_monitor_console.html
new file mode 100644
index 0000000000000..a5e474aa0aa92
--- /dev/null
+++ b/code/game/machinery/computer/power_monitor_console.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/computer/power_monitor_console.dm - Space Station 13
+
+
+
+
+code/game/machinery/computer/power_monitor_console.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/constructable_frame.html b/code/game/machinery/constructable_frame.html
new file mode 100644
index 0000000000000..234026a1df24a
--- /dev/null
+++ b/code/game/machinery/constructable_frame.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/constructable_frame.dm - Space Station 13
+
+
+
+
+code/game/machinery/constructable_frame.dm
+
+
+
+
+ /obj /machinery /constructable_frame Made into a seperate type to make future revisions easier.
+
+
+
diff --git a/code/game/machinery/deployable.html b/code/game/machinery/deployable.html
new file mode 100644
index 0000000000000..9ec330989979d
--- /dev/null
+++ b/code/game/machinery/deployable.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/deployable.dm - Space Station 13
+
+
+
+
+code/game/machinery/deployable.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/flasher.html b/code/game/machinery/flasher.html
new file mode 100644
index 0000000000000..30e0e36dd2250
--- /dev/null
+++ b/code/game/machinery/flasher.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/flasher.dm - Space Station 13
+
+
+
+
+code/game/machinery/flasher.dm
+
+
+
+
+ /obj /machinery /flasher/portable Portable version of the flasher. Only flashes when anchored
+
+
+
diff --git a/code/game/machinery/hologram.html b/code/game/machinery/hologram.html
new file mode 100644
index 0000000000000..4a761d39eff16
--- /dev/null
+++ b/code/game/machinery/hologram.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/hologram.dm - Space Station 13
+
+
+
+
+code/game/machinery/hologram.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/mass_driver.html b/code/game/machinery/mass_driver.html
new file mode 100644
index 0000000000000..a646c1af7b5d6
--- /dev/null
+++ b/code/game/machinery/mass_driver.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/mass_driver.dm - Space Station 13
+
+
+
+
+code/game/machinery/mass_driver.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/requests_console.html b/code/game/machinery/requests_console.html
new file mode 100644
index 0000000000000..c94e564872914
--- /dev/null
+++ b/code/game/machinery/requests_console.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/game/machinery/requests_console.dm - Space Station 13
+
+
+
+
+code/game/machinery/requests_console.dm
+
+
+
+Define Details
+RC_ASSIST
+
+
+
+ Requests Console
+Originally written by errorage, updated by: Carn, needs more work though. I just added some security fixes
+
+
+
diff --git a/code/game/machinery/shieldgen.html b/code/game/machinery/shieldgen.html
new file mode 100644
index 0000000000000..55ca81a023e92
--- /dev/null
+++ b/code/game/machinery/shieldgen.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/game/machinery/shieldgen.dm - Space Station 13
+
+
+
+
+code/game/machinery/shieldgen.dm
+
+
+
+
+ MAX_STORED_POWER FIELD GEN START //shameless copypasta from fieldgen, powersink, and grille
+ /obj /machinery /shieldwall Containment Field START
Define Details
+MAX_STORED_POWER
+
+
+
+ FIELD GEN START //shameless copypasta from fieldgen, powersink, and grille
+
+
+
diff --git a/code/game/machinery/syndicatebomb.html b/code/game/machinery/syndicatebomb.html
new file mode 100644
index 0000000000000..034c2ed0bc3d4
--- /dev/null
+++ b/code/game/machinery/syndicatebomb.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/game/machinery/syndicatebomb.dm - Space Station 13
+
+
+
+
+code/game/machinery/syndicatebomb.dm
+
+
+
+
+ /obj /machinery /syndicatebomb/training Bomb Subtypes
+ /obj /item /bombcore Bomb Cores
+ /obj /item /bombcore/training Bomb Core Subtypes
+ /obj /item /syndicatedetonator Syndicate Detonator (aka the big red button)
+
+
+
diff --git a/code/game/machinery/tcomms/relay.html b/code/game/machinery/tcomms/relay.html
new file mode 100644
index 0000000000000..7b3c9fe36c1bf
--- /dev/null
+++ b/code/game/machinery/tcomms/relay.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/tcomms/relay.dm - Space Station 13
+
+
+
+
+code/game/machinery/tcomms/relay.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/tcomms/tcomms_base.html b/code/game/machinery/tcomms/tcomms_base.html
new file mode 100644
index 0000000000000..0d3c70befab5d
--- /dev/null
+++ b/code/game/machinery/tcomms/tcomms_base.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/game/machinery/tcomms/tcomms_base.dm - Space Station 13
+
+
+
+
+code/game/machinery/tcomms/tcomms_base.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/tcomms/tcomms_core.html b/code/game/machinery/tcomms/tcomms_core.html
new file mode 100644
index 0000000000000..8986c293cbafc
--- /dev/null
+++ b/code/game/machinery/tcomms/tcomms_core.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/tcomms/tcomms_core.dm - Space Station 13
+
+
+
+
+code/game/machinery/tcomms/tcomms_core.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/vendors/contraband_vendors.html b/code/game/machinery/vendors/contraband_vendors.html
new file mode 100644
index 0000000000000..36a6c1a3183ae
--- /dev/null
+++ b/code/game/machinery/vendors/contraband_vendors.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/vendors/contraband_vendors.dm - Space Station 13
+
+
+
+
+code/game/machinery/vendors/contraband_vendors.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/vendors/generic_vendors.html b/code/game/machinery/vendors/generic_vendors.html
new file mode 100644
index 0000000000000..c14effd91a493
--- /dev/null
+++ b/code/game/machinery/vendors/generic_vendors.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/machinery/vendors/generic_vendors.dm - Space Station 13
+
+
+
+
+code/game/machinery/vendors/generic_vendors.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/vendors/tilt_crits.html b/code/game/machinery/vendors/tilt_crits.html
new file mode 100644
index 0000000000000..7453142771651
--- /dev/null
+++ b/code/game/machinery/vendors/tilt_crits.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/vendors/tilt_crits.dm - Space Station 13
+
+
+
+
+code/game/machinery/vendors/tilt_crits.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/vendors/vending.html b/code/game/machinery/vendors/vending.html
new file mode 100644
index 0000000000000..7821fbf6a20da
--- /dev/null
+++ b/code/game/machinery/vendors/vending.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/vendors/vending.dm - Space Station 13
+
+
+
+
+code/game/machinery/vendors/vending.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/wall_holosign.html b/code/game/machinery/wall_holosign.html
new file mode 100644
index 0000000000000..5780e11c318cc
--- /dev/null
+++ b/code/game/machinery/wall_holosign.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/machinery/wall_holosign.dm - Space Station 13
+
+
+
+
+code/game/machinery/wall_holosign.dm
+
+
+
+
+
+
+
diff --git a/code/game/mecha/equipment/tools/other_tools.html b/code/game/mecha/equipment/tools/other_tools.html
new file mode 100644
index 0000000000000..94b7da961bb22
--- /dev/null
+++ b/code/game/mecha/equipment/tools/other_tools.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/game/mecha/equipment/tools/other_tools.dm - Space Station 13
+
+
+
+
+code/game/mecha/equipment/tools/other_tools.dm
+
+
+
+
+ /obj /item /mecha_parts/mecha_equipment/teleporter TELEPORTER
+ /obj /item /mecha_parts/mecha_equipment/gravcatapult GRAVITATIONAL CATAPULT
+ /obj /item /mecha_parts/mecha_equipment/anticcw_armor_booster ///////////////////////// ARMOR BOOSTER MODULES //////////////////////////////////////////////////////////
+what is that noise? A BAWWW from TK mutants.
+ /obj /item /mecha_parts/mecha_equipment/repair_droid REPAIR DROID
+ /obj /item /mecha_parts/mecha_equipment/tesla_energy_relay TESLA ENERGY RELAY
+ /obj /item /mecha_parts/mecha_equipment/generator GENERATOR
+
+
+
diff --git a/code/game/mecha/equipment/weapons/weapons.html b/code/game/mecha/equipment/weapons/weapons.html
new file mode 100644
index 0000000000000..68d7699254d66
--- /dev/null
+++ b/code/game/mecha/equipment/weapons/weapons.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/mecha/equipment/weapons/weapons.dm - Space Station 13
+
+
+
+
+code/game/mecha/equipment/weapons/weapons.dm
+
+
+
+
+ /obj /item /mecha_parts/mecha_equipment/weapon/ballistic else the mousetraps are useless
+
+
+
diff --git a/code/game/mecha/mech_fabricator.html b/code/game/mecha/mech_fabricator.html
new file mode 100644
index 0000000000000..facd2fe89b7af
--- /dev/null
+++ b/code/game/mecha/mech_fabricator.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/mecha/mech_fabricator.dm - Space Station 13
+
+
+
+
+code/game/mecha/mech_fabricator.dm
+
+
+
+
+
+
+
diff --git a/code/game/mecha/mecha_parts.html b/code/game/mecha/mecha_parts.html
new file mode 100644
index 0000000000000..7c036cdcc5075
--- /dev/null
+++ b/code/game/mecha/mecha_parts.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ code/game/mecha/mecha_parts.dm - Space Station 13
+
+
+
+
+code/game/mecha/mecha_parts.dm
+
+
+
+
+ /obj /item /mecha_parts Mecha Parts
+ /obj /item /mecha_parts/chassis/ripley Ripley
+ /obj /item /mecha_parts/chassis/gygax Gygax
+ /obj /item /mecha_parts/chassis/durand Durand
+ /obj /item /mecha_parts/chassis/firefighter Firefighter
+ /obj /item /mecha_parts/chassis/honker HONK
+ /obj /item /mecha_parts/chassis/reticence Reticence
+ /obj /item /mecha_parts/chassis/phazon Phazon
+ /obj /item /mecha_parts/chassis/odysseus Odysseus
+ /obj /item /circuitboard /mecha Circuitboards
+
+
+
diff --git a/code/game/mecha/mecha_wreckage.html b/code/game/mecha/mecha_wreckage.html
new file mode 100644
index 0000000000000..56c9d60af8f48
--- /dev/null
+++ b/code/game/mecha/mecha_wreckage.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/mecha/mecha_wreckage.dm - Space Station 13
+
+
+
+
+code/game/mecha/mecha_wreckage.dm
+
+
+
+
+
+
+
diff --git a/code/game/mecha/paintkits.html b/code/game/mecha/paintkits.html
new file mode 100644
index 0000000000000..bbe2f84dc0abc
--- /dev/null
+++ b/code/game/mecha/paintkits.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/mecha/paintkits.dm - Space Station 13
+
+
+
+
+code/game/mecha/paintkits.dm
+
+
+
+
+ /obj /item /paintkit Please don't use this for anything, it's a base type for custom mech paintjobs.
+
+
+
diff --git a/code/game/objects/effects/anomalies.html b/code/game/objects/effects/anomalies.html
new file mode 100644
index 0000000000000..be9697bed12ed
--- /dev/null
+++ b/code/game/objects/effects/anomalies.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/game/objects/effects/anomalies.dm - Space Station 13
+
+
+
+
+code/game/objects/effects/anomalies.dm
+
+
+
+Define Details
+ANOMALY_MOVECHANCE
+
+
+
+ Chance of taking a step per second
+
+
+
diff --git a/code/game/objects/effects/decals/Cleanable/alien_blood.html b/code/game/objects/effects/decals/Cleanable/alien_blood.html
new file mode 100644
index 0000000000000..f591e5f90bdab
--- /dev/null
+++ b/code/game/objects/effects/decals/Cleanable/alien_blood.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/decals/Cleanable/alien_blood.dm - Space Station 13
+
+
+
+
+code/game/objects/effects/decals/Cleanable/alien_blood.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/decals/Cleanable/humans.html b/code/game/objects/effects/decals/Cleanable/humans.html
new file mode 100644
index 0000000000000..904a86db061b9
--- /dev/null
+++ b/code/game/objects/effects/decals/Cleanable/humans.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/effects/decals/Cleanable/humans.dm - Space Station 13
+
+
+
+
+code/game/objects/effects/decals/Cleanable/humans.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/decals/Cleanable/misc_cleanables.html b/code/game/objects/effects/decals/Cleanable/misc_cleanables.html
new file mode 100644
index 0000000000000..b8e6e90dcb169
--- /dev/null
+++ b/code/game/objects/effects/decals/Cleanable/misc_cleanables.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/effects/decals/Cleanable/misc_cleanables.dm - Space Station 13
+
+
+
+
+code/game/objects/effects/decals/Cleanable/misc_cleanables.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/decals/contraband_posters.html b/code/game/objects/effects/decals/contraband_posters.html
new file mode 100644
index 0000000000000..a3cb5ff91a6c9
--- /dev/null
+++ b/code/game/objects/effects/decals/contraband_posters.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/decals/contraband_posters.dm - Space Station 13
+
+
+
+
+code/game/objects/effects/decals/contraband_posters.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/effect_system/effects_other.html b/code/game/objects/effects/effect_system/effects_other.html
new file mode 100644
index 0000000000000..1444efdd60d84
--- /dev/null
+++ b/code/game/objects/effects/effect_system/effects_other.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/effect_system/effects_other.dm - Space Station 13
+
+
+
+
+code/game/objects/effects/effect_system/effects_other.dm
+
+
+
+
+ /obj /effect/particle_effect/ion_trails Ion trails for jetpacks, ion thrusters and other space-flying things
+
+
+
diff --git a/code/game/objects/effects/effect_system/effects_smoke.html b/code/game/objects/effects/effect_system/effects_smoke.html
new file mode 100644
index 0000000000000..e946f4cb8df12
--- /dev/null
+++ b/code/game/objects/effects/effect_system/effects_smoke.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/effect_system/effects_smoke.dm - Space Station 13
+
+
+
+
+code/game/objects/effects/effect_system/effects_smoke.dm
+
+
+
+
+ /obj /effect/particle_effect/smoke SMOKE SYSTEMS
+
+
+
diff --git a/code/game/objects/effects/effect_system/effects_sparks.html b/code/game/objects/effects/effect_system/effects_sparks.html
new file mode 100644
index 0000000000000..84b8f4f160f24
--- /dev/null
+++ b/code/game/objects/effects/effect_system/effects_sparks.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/effect_system/effects_sparks.dm - Space Station 13
+
+
+
+
+code/game/objects/effects/effect_system/effects_sparks.dm
+
+
+
+
+ /obj /effect/particle_effect/sparks/sparkles SPARKLE FIREWORKS
+
+
+
diff --git a/code/game/objects/effects/effects.html b/code/game/objects/effects/effects.html
new file mode 100644
index 0000000000000..4cabff06a2d9c
--- /dev/null
+++ b/code/game/objects/effects/effects.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/objects/effects/effects.dm - Space Station 13
+
+
+
+
+code/game/objects/effects/effects.dm
+
+
+
+
+ /obj /effect/abstract This is an object that is intended to able to be placed, but that is completely invisible.
+The object should be immune to all forms of damage, or things that can delete it, such as the singularity, or explosions.
+ /obj/effect/abstract/particle_holder These effects can be added to anything to hold particles, which is useful because Byond only allows a single particle per atom
+
+
+
diff --git a/code/game/objects/effects/forcefields.html b/code/game/objects/effects/forcefields.html
new file mode 100644
index 0000000000000..a91f4a82ad817
--- /dev/null
+++ b/code/game/objects/effects/forcefields.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/forcefields.dm - Space Station 13
+
+
+
+
+code/game/objects/effects/forcefields.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/landmarks.html b/code/game/objects/effects/landmarks.html
new file mode 100644
index 0000000000000..09af599577a7e
--- /dev/null
+++ b/code/game/objects/effects/landmarks.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/objects/effects/landmarks.dm - Space Station 13
+
+
+
+
+code/game/objects/effects/landmarks.dm
+
+
+
+
+ /obj /effect/landmark/newplayer_start There should only be one of these, in the lobby art area
+ /obj/effect/landmark/mob_spawner Mob spawners, spawns a mob and deletes the landmark
+ /obj /effect/landmark/mob_spawner /goldgrub 75% chance to get a magmawing watcher, and 25% chance to get a icewing watcher (1/133, 1/400 respectively)
+
+
+
diff --git a/code/game/objects/effects/spawners/airlock_spawner.html b/code/game/objects/effects/spawners/airlock_spawner.html
new file mode 100644
index 0000000000000..7fb8bfe96a822
--- /dev/null
+++ b/code/game/objects/effects/spawners/airlock_spawner.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/effects/spawners/airlock_spawner.dm - Space Station 13
+
+
+
+
+code/game/objects/effects/spawners/airlock_spawner.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/spawners/grouped_spawner.html b/code/game/objects/effects/spawners/grouped_spawner.html
new file mode 100644
index 0000000000000..723c0c9fdd2dc
--- /dev/null
+++ b/code/game/objects/effects/spawners/grouped_spawner.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/spawners/grouped_spawner.dm - Space Station 13
+
+
+
+
+code/game/objects/effects/spawners/grouped_spawner.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/spawners/lootdrop.html b/code/game/objects/effects/spawners/lootdrop.html
new file mode 100644
index 0000000000000..bb24719753c74
--- /dev/null
+++ b/code/game/objects/effects/spawners/lootdrop.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/spawners/lootdrop.dm - Space Station 13
+
+
+
+
+code/game/objects/effects/spawners/lootdrop.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/spawners/random_barrier.html b/code/game/objects/effects/spawners/random_barrier.html
new file mode 100644
index 0000000000000..a9f9caa563952
--- /dev/null
+++ b/code/game/objects/effects/spawners/random_barrier.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/spawners/random_barrier.dm - Space Station 13
+
+
+
+
+code/game/objects/effects/spawners/random_barrier.dm
+
+
+
+
+ /obj /effect/spawner /random_barrier/possibly_welded_airlock these have no access restrictions, so for internal maintenance only
+
+
+
diff --git a/code/game/objects/effects/temporary_visuals/misc_visuals.html b/code/game/objects/effects/temporary_visuals/misc_visuals.html
new file mode 100644
index 0000000000000..d0d1aa205275e
--- /dev/null
+++ b/code/game/objects/effects/temporary_visuals/misc_visuals.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/effects/temporary_visuals/misc_visuals.dm - Space Station 13
+
+
+
+
+code/game/objects/effects/temporary_visuals/misc_visuals.dm
+
+
+
+
+ /obj /effect/temp_visual/heal color is white by default, set to whatever is needed
+ /obj/effect/temp_visual/single_user A visual effect that will be shown only to a particular user for a period of time.
+
+
+
diff --git a/code/game/objects/empulse.html b/code/game/objects/empulse.html
new file mode 100644
index 0000000000000..fb24cca5a8512
--- /dev/null
+++ b/code/game/objects/empulse.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/objects/empulse.dm - Space Station 13
+
+
+
+
+code/game/objects/empulse.dm
+
+
+
+
+ /proc/empulse
+ Will cause an EMP on the given epicenter.
+This proc can sleep depending on the affected objects. So assume it sleeps!
+
+
+
diff --git a/code/game/objects/explosion.html b/code/game/objects/explosion.html
new file mode 100644
index 0000000000000..94f0b5b21476b
--- /dev/null
+++ b/code/game/objects/explosion.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/explosion.dm - Space Station 13
+
+
+
+
+code/game/objects/explosion.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/cardboard_cutouts.html b/code/game/objects/items/cardboard_cutouts.html
new file mode 100644
index 0000000000000..cd9c55a2adb31
--- /dev/null
+++ b/code/game/objects/items/cardboard_cutouts.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/cardboard_cutouts.dm - Space Station 13
+
+
+
+
+code/game/objects/items/cardboard_cutouts.dm
+
+
+
+
+ /obj /item /cardboard_cutout/adaptive Purchased by Syndicate agents, these cutouts are indistinguishable from normal cutouts but aren't discolored when their appearance is changed
+
+
+
diff --git a/code/game/objects/items/control_wand.html b/code/game/objects/items/control_wand.html
new file mode 100644
index 0000000000000..1e8575089397a
--- /dev/null
+++ b/code/game/objects/items/control_wand.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/game/objects/items/control_wand.dm - Space Station 13
+
+
+
+
+code/game/objects/items/control_wand.dm
+
+
+
+
+ JANGLE_COOLDOWN How long before you can "jangle" your keyring again (to prevent spam)
Define Details
+JANGLE_COOLDOWN
+
+
+
+ How long before you can "jangle" your keyring again (to prevent spam)
+
+
+
diff --git a/code/game/objects/items/devices/flash.html b/code/game/objects/items/devices/flash.html
new file mode 100644
index 0000000000000..8dd907dcd7e26
--- /dev/null
+++ b/code/game/objects/items/devices/flash.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/devices/flash.dm - Space Station 13
+
+
+
+
+code/game/objects/items/devices/flash.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/devices/flashlight.html b/code/game/objects/items/devices/flashlight.html
new file mode 100644
index 0000000000000..a1df21f2da06e
--- /dev/null
+++ b/code/game/objects/items/devices/flashlight.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/devices/flashlight.dm - Space Station 13
+
+
+
+
+code/game/objects/items/devices/flashlight.dm
+
+
+
+
+ /obj /item /flashlight/spotlight invisible lighting source
+
+
+
diff --git a/code/game/objects/items/devices/geiger_counter.html b/code/game/objects/items/devices/geiger_counter.html
new file mode 100644
index 0000000000000..42e2f63abaf68
--- /dev/null
+++ b/code/game/objects/items/devices/geiger_counter.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/devices/geiger_counter.dm - Space Station 13
+
+
+
+
+code/game/objects/items/devices/geiger_counter.dm
+
+
+
+
+ /obj /item /geiger_counter DISCLAIMER: I know nothing about how real-life Geiger counters work. This will not be realistic. ~Xhuis
+
+
+
diff --git a/code/game/objects/items/devices/painter/painter.html b/code/game/objects/items/devices/painter/painter.html
new file mode 100644
index 0000000000000..d178e8fe9c9c0
--- /dev/null
+++ b/code/game/objects/items/devices/painter/painter.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/devices/painter/painter.dm - Space Station 13
+
+
+
+
+code/game/objects/items/devices/painter/painter.dm
+
+
+
+
+ /datum/painter Contains variables for updating holder
, as well as procs for choosing a colour and painting an atom.
+
+
+
diff --git a/code/game/objects/items/devices/painter/window_painter.html b/code/game/objects/items/devices/painter/window_painter.html
new file mode 100644
index 0000000000000..5e3ebb45810ca
--- /dev/null
+++ b/code/game/objects/items/devices/painter/window_painter.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/devices/painter/window_painter.dm - Space Station 13
+
+
+
+
+code/game/objects/items/devices/painter/window_painter.dm
+
+
+
+
+ /datum /painter /pipe/window Yes, this is a pipe painter subtype.
+
+
+
diff --git a/code/game/objects/items/devices/radio/beacon.html b/code/game/objects/items/devices/radio/beacon.html
new file mode 100644
index 0000000000000..913db380daa37
--- /dev/null
+++ b/code/game/objects/items/devices/radio/beacon.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/devices/radio/beacon.dm - Space Station 13
+
+
+
+
+code/game/objects/items/devices/radio/beacon.dm
+
+
+
+
+ /obj /item /beacon/bacon Probably a better way of doing this, I'm lazy.
+
+
+
diff --git a/code/game/objects/items/devices/radio/encryptionkey.html b/code/game/objects/items/devices/radio/encryptionkey.html
new file mode 100644
index 0000000000000..5049ea3701f5a
--- /dev/null
+++ b/code/game/objects/items/devices/radio/encryptionkey.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/devices/radio/encryptionkey.dm - Space Station 13
+
+
+
+
+code/game/objects/items/devices/radio/encryptionkey.dm
+
+
+
+
+ /obj /item /encryptionkey/heads/ai_integrated ported from bay, this goes 'inside' the AI.
+
+
+
diff --git a/code/game/objects/items/devices/radio/headset.html b/code/game/objects/items/devices/radio/headset.html
new file mode 100644
index 0000000000000..8d935f4303ef8
--- /dev/null
+++ b/code/game/objects/items/devices/radio/headset.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/devices/radio/headset.dm - Space Station 13
+
+
+
+
+code/game/objects/items/devices/radio/headset.dm
+
+
+
+
+ /obj /item /radio /headset/syndicate/alt undisguised bowman with flash protection
+ /obj /item /radio /headset/heads/ai_integrated No need to care about icons, it should be hidden inside the AI anyway.
+
+
+
diff --git a/code/game/objects/items/devices/radio/radio_objects.html b/code/game/objects/items/devices/radio/radio_objects.html
new file mode 100644
index 0000000000000..7b68c48ca85b1
--- /dev/null
+++ b/code/game/objects/items/devices/radio/radio_objects.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/devices/radio/radio_objects.dm - Space Station 13
+
+
+
+
+code/game/objects/items/devices/radio/radio_objects.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/devices/scanners.html b/code/game/objects/items/devices/scanners.html
new file mode 100644
index 0000000000000..27a9cbc918fb2
--- /dev/null
+++ b/code/game/objects/items/devices/scanners.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/game/objects/items/devices/scanners.dm - Space Station 13
+
+
+
+
+code/game/objects/items/devices/scanners.dm
+
+
+
+
+ /obj /item /t_scanner T-RAY SCANNER
+ /proc/get_chemscan_results
+ HEALTH ANALYZER
+ /obj /item /robotanalyzer MACHINE ANALYZER
+ /obj /item /analyzer GAS ANALYZER
+ /proc/atmos_scan
+ Outputs a message to the user describing the target's gasmixes.
+Used in chat-based gas scans.
+ /obj /item /reagent_scanner REAGENT SCANNERS
+ /obj /item /slime_scanner SLIME SCANNER
+ /obj /item /bodyanalyzer BODY ANALYZERS
+
+
+
diff --git a/code/game/objects/items/granters/_granters.html b/code/game/objects/items/granters/_granters.html
new file mode 100644
index 0000000000000..81d6b827cb9dd
--- /dev/null
+++ b/code/game/objects/items/granters/_granters.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/granters/_granters.dm - Space Station 13
+
+
+
+
+code/game/objects/items/granters/_granters.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/mountable_frames/air_alarm_frame.html b/code/game/objects/items/mountable_frames/air_alarm_frame.html
new file mode 100644
index 0000000000000..dfcbd30f83d9a
--- /dev/null
+++ b/code/game/objects/items/mountable_frames/air_alarm_frame.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/mountable_frames/air_alarm_frame.dm - Space Station 13
+
+
+
+
+code/game/objects/items/mountable_frames/air_alarm_frame.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/robot/ai_upgrades.html b/code/game/objects/items/robot/ai_upgrades.html
new file mode 100644
index 0000000000000..86a192006009f
--- /dev/null
+++ b/code/game/objects/items/robot/ai_upgrades.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/robot/ai_upgrades.dm - Space Station 13
+
+
+
+
+code/game/objects/items/robot/ai_upgrades.dm
+
+
+
+
+ /obj /item /malf_upgrade AI Upgrades
+
+
+
diff --git a/code/game/objects/items/robot/cyborg_gripper.html b/code/game/objects/items/robot/cyborg_gripper.html
new file mode 100644
index 0000000000000..3457c2a644fde
--- /dev/null
+++ b/code/game/objects/items/robot/cyborg_gripper.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/robot/cyborg_gripper.dm - Space Station 13
+
+
+
+
+code/game/objects/items/robot/cyborg_gripper.dm
+
+
+
+
+ /obj /item /gripper /universal Universal gripper. Not supplied to any cyborg by default. Could be varedited onto a borg for event stuff. Functions almost like a real hand!
+
+
+
diff --git a/code/game/objects/items/robot/robot_items.html b/code/game/objects/items/robot/robot_items.html
new file mode 100644
index 0000000000000..7f4e9cd8404fb
--- /dev/null
+++ b/code/game/objects/items/robot/robot_items.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/robot/robot_items.dm - Space Station 13
+
+
+
+
+code/game/objects/items/robot/robot_items.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/salvage.html b/code/game/objects/items/salvage.html
new file mode 100644
index 0000000000000..39fd56f6f5ae6
--- /dev/null
+++ b/code/game/objects/items/salvage.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/salvage.dm - Space Station 13
+
+
+
+
+code/game/objects/items/salvage.dm
+
+
+
+
+ /obj /item /salvage/ruin Ruin Salvage, misc loot gained from looking around ruins.
+ /obj /item /salvage/loot Loot salvage, gained from fighting space simplemobs.
+
+
+
diff --git a/code/game/objects/items/stacks/sheets/leather.html b/code/game/objects/items/stacks/sheets/leather.html
new file mode 100644
index 0000000000000..7c810c60747e6
--- /dev/null
+++ b/code/game/objects/items/stacks/sheets/leather.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/stacks/sheets/leather.dm - Space Station 13
+
+
+
+
+code/game/objects/items/stacks/sheets/leather.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.html b/code/game/objects/items/stacks/sheets/sheet_types.html
new file mode 100644
index 0000000000000..3753d19a4cf6a
--- /dev/null
+++ b/code/game/objects/items/stacks/sheets/sheet_types.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/stacks/sheets/sheet_types.dm - Space Station 13
+
+
+
+
+code/game/objects/items/stacks/sheets/sheet_types.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/theft_items.html b/code/game/objects/items/theft_items.html
new file mode 100644
index 0000000000000..4f619e96ebe21
--- /dev/null
+++ b/code/game/objects/items/theft_items.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/theft_items.dm - Space Station 13
+
+
+
+
+code/game/objects/items/theft_items.dm
+
+
+
+
+ /obj /item /nuke_core/plutonium The steal objective, so it doesnt mess with the SM sliver on pinpointers and objectives
+
+
+
diff --git a/code/game/objects/items/tools/multitool.html b/code/game/objects/items/tools/multitool.html
new file mode 100644
index 0000000000000..885ca180f7fad
--- /dev/null
+++ b/code/game/objects/items/tools/multitool.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/tools/multitool.dm - Space Station 13
+
+
+
+
+code/game/objects/items/tools/multitool.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/weapons/AI_modules.html b/code/game/objects/items/weapons/AI_modules.html
new file mode 100644
index 0000000000000..64ddd64c24268
--- /dev/null
+++ b/code/game/objects/items/weapons/AI_modules.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/AI_modules.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/AI_modules.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/weapons/RCD.html b/code/game/objects/items/weapons/RCD.html
new file mode 100644
index 0000000000000..53e0b954d1747
--- /dev/null
+++ b/code/game/objects/items/weapons/RCD.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/RCD.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/RCD.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/weapons/batons.html b/code/game/objects/items/weapons/batons.html
new file mode 100644
index 0000000000000..c3efa9aa8c82a
--- /dev/null
+++ b/code/game/objects/items/weapons/batons.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/batons.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/batons.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/weapons/bio_chips/bio_chip.html b/code/game/objects/items/weapons/bio_chips/bio_chip.html
new file mode 100644
index 0000000000000..e97df81f97d39
--- /dev/null
+++ b/code/game/objects/items/weapons/bio_chips/bio_chip.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/bio_chips/bio_chip.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/bio_chips/bio_chip.dm
+
+
+
+
+ /obj/item/bio_chip Code for implants that can be inserted into a person and have some sort of passive or triggered action.
+
+
+
diff --git a/code/game/objects/items/weapons/bio_chips/bio_chip_fluff.html b/code/game/objects/items/weapons/bio_chips/bio_chip_fluff.html
new file mode 100644
index 0000000000000..8e8cb79461070
--- /dev/null
+++ b/code/game/objects/items/weapons/bio_chips/bio_chip_fluff.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/bio_chips/bio_chip_fluff.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/bio_chips/bio_chip_fluff.dm
+
+
+
+
+ /datum /implant_fluff Bio-chip fluff is just lore about the bio-chip that is accessed through the implantpad, you must attach
+one of these datums to the implant_data var on a bio-chip for it to show it up.
+
+
+
diff --git a/code/game/objects/items/weapons/bio_chips/bio_chip_gorilla_rampage.html b/code/game/objects/items/weapons/bio_chips/bio_chip_gorilla_rampage.html
new file mode 100644
index 0000000000000..97e7e4880ce0c
--- /dev/null
+++ b/code/game/objects/items/weapons/bio_chips/bio_chip_gorilla_rampage.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/bio_chips/bio_chip_gorilla_rampage.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/bio_chips/bio_chip_gorilla_rampage.dm
+
+
+
+
+ /obj /item /bio_chip /gorilla_rampage Dumb path but easier to search for admins
+
+
+
diff --git a/code/game/objects/items/weapons/bio_chips/bio_chip_stealth.html b/code/game/objects/items/weapons/bio_chips/bio_chip_stealth.html
new file mode 100644
index 0000000000000..c22b82a559ecc
--- /dev/null
+++ b/code/game/objects/items/weapons/bio_chips/bio_chip_stealth.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/bio_chips/bio_chip_stealth.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/bio_chips/bio_chip_stealth.dm
+
+
+
+
+ /obj /item /bio_chip /stealth Implant which allows you to summon an MGS-style cardboard box that turns you invisble after a short delay.
+
+
+
diff --git a/code/game/objects/items/weapons/dice.html b/code/game/objects/items/weapons/dice.html
new file mode 100644
index 0000000000000..33d0568f74c30
--- /dev/null
+++ b/code/game/objects/items/weapons/dice.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/dice.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/dice.dm
+
+
+
+
+ /obj /item /storage /bag/dice Thankfully no longer a pill bottle.
+ /obj /item /dice depreciated d6, use /obj/item/dice/d6 if you actually want a d6
+
+
+
diff --git a/code/game/objects/items/weapons/explosives.html b/code/game/objects/items/weapons/explosives.html
new file mode 100644
index 0000000000000..6ebdc163caaab
--- /dev/null
+++ b/code/game/objects/items/weapons/explosives.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/explosives.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/explosives.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/weapons/garrote.html b/code/game/objects/items/weapons/garrote.html
new file mode 100644
index 0000000000000..4cbfe639dc3fe
--- /dev/null
+++ b/code/game/objects/items/weapons/garrote.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/garrote.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/garrote.dm
+
+
+
+
+ /obj /item /garrote 12TC traitor item
+ /obj /item /garrote/improvised Made via tablecrafting
+
+
+
diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.html b/code/game/objects/items/weapons/grenades/chem_grenade.html
new file mode 100644
index 0000000000000..6af3c981fa018
--- /dev/null
+++ b/code/game/objects/items/weapons/grenades/chem_grenade.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/grenades/chem_grenade.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/grenades/chem_grenade.dm
+
+
+
+
+ /obj /item /grenade /chem_grenade/cryo Intended for rare cryogenic mixes. Cools the area moderately upon detonation.
+ /obj /item /grenade /chem_grenade/pyro Intended for pyrotechnical mixes. Produces a small fire upon detonation, igniting potentially flammable mixtures.
+ /obj /item /grenade /chem_grenade/adv_release Intended for weaker, but longer lasting effects. Could have some interesting uses.
+
+
+
diff --git a/code/game/objects/items/weapons/grenades/clusterbuster.html b/code/game/objects/items/weapons/grenades/clusterbuster.html
new file mode 100644
index 0000000000000..2c05374ed7950
--- /dev/null
+++ b/code/game/objects/items/weapons/grenades/clusterbuster.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/grenades/clusterbuster.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/grenades/clusterbuster.dm
+
+
+
+
+ /obj /item /grenade /clusterbuster/mega_bang Clusterbuster of Clusterbusters
+
+
+
diff --git a/code/game/objects/items/weapons/grenades/flashbang.html b/code/game/objects/items/weapons/grenades/flashbang.html
new file mode 100644
index 0000000000000..45b1eed3160d0
--- /dev/null
+++ b/code/game/objects/items/weapons/grenades/flashbang.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/grenades/flashbang.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/grenades/flashbang.dm
+
+
+
+
+ /proc/bang
+ Creates a flashing effect that blinds and deafens mobs within range
+
+
+
diff --git a/code/game/objects/items/weapons/grenades/frag.html b/code/game/objects/items/weapons/grenades/frag.html
new file mode 100644
index 0000000000000..12b247492794e
--- /dev/null
+++ b/code/game/objects/items/weapons/grenades/frag.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/grenades/frag.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/grenades/frag.dm
+
+
+
+
+ /obj /item /projectile /bullet/shrapnel Shrapnel that flies through the air and hits you
+ /obj /item /shrapnel Shrapnel projectiles turn into this after trying to embed
+
+
+
diff --git a/code/game/objects/items/weapons/grenades/smokebomb.html b/code/game/objects/items/weapons/grenades/smokebomb.html
new file mode 100644
index 0000000000000..4fa15bc51d610
--- /dev/null
+++ b/code/game/objects/items/weapons/grenades/smokebomb.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/grenades/smokebomb.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/grenades/smokebomb.dm
+
+
+
+
+ /obj /item /grenade /smokebomb We need to clear the walk_to on destroy to allow a grenade which uses walk_to or related to properly GC
+
+
+
diff --git a/code/game/objects/items/weapons/holy_weapons.html b/code/game/objects/items/weapons/holy_weapons.html
new file mode 100644
index 0000000000000..2e2862cf6bd91
--- /dev/null
+++ b/code/game/objects/items/weapons/holy_weapons.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/holy_weapons.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/holy_weapons.dm
+
+
+
+
+ /obj /item /nullrod /fluff fluff subtype to be used for all donator nullrods
+ /obj /item /nullrod /ert ERT subtype, applies sanctified property to any derived rod
+ /obj /item /nullrod /claymore/bostaff May as well make it a "claymore" and inherit the blocking
+
+
+
diff --git a/code/game/objects/items/weapons/kitchen.html b/code/game/objects/items/weapons/kitchen.html
new file mode 100644
index 0000000000000..4aa4988d715d6
--- /dev/null
+++ b/code/game/objects/items/weapons/kitchen.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/kitchen.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/kitchen.dm
+
+
+
+
+ /obj /item /kitchen/cutter circular cutter by Ume
+
+
+
diff --git a/code/game/objects/items/weapons/legcuffs.html b/code/game/objects/items/weapons/legcuffs.html
new file mode 100644
index 0000000000000..dfc5332ee9fa8
--- /dev/null
+++ b/code/game/objects/items/weapons/legcuffs.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/legcuffs.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/legcuffs.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/weapons/manuals.html b/code/game/objects/items/weapons/manuals.html
new file mode 100644
index 0000000000000..9778eb2f3d030
--- /dev/null
+++ b/code/game/objects/items/weapons/manuals.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/manuals.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/manuals.dm
+
+
+
+
+ /obj/item/book/manual These are "programmatic books," that is books that are hard-coded into the game. Just for the sake of maintainability, keep
+information subject to change (as in likely to change SOON) out of the non-wiki manuals as they require PRs to change
+and it is not an author's responsbility to update manuals if they change a mechanic/recipe/feature referenced in one of them
+Don't worry about adding them to the library, as long as they're one of these types it is automatically added.
+ /obj/item/book/manual/wiki These are programmatic books that source its pages / "content" straight from the wiki
+That means that this content can ONLY be changed by editing the wiki
+Space Law and SOP Manuals can only be edited by Wiki Admins
+
+
+
diff --git a/code/game/objects/items/weapons/melee/energy_melee_weapons.html b/code/game/objects/items/weapons/melee/energy_melee_weapons.html
new file mode 100644
index 0000000000000..c2fee0fc596b5
--- /dev/null
+++ b/code/game/objects/items/weapons/melee/energy_melee_weapons.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/melee/energy_melee_weapons.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/melee/energy_melee_weapons.dm
+
+
+
+
+ /obj /item /melee/energy/sword/cyborg/saw Used by medical Syndicate cyborgs
+
+
+
diff --git a/code/game/objects/items/weapons/pneumaticCannon.html b/code/game/objects/items/weapons/pneumaticCannon.html
new file mode 100644
index 0000000000000..7d678964d74d5
--- /dev/null
+++ b/code/game/objects/items/weapons/pneumaticCannon.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/pneumaticCannon.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/pneumaticCannon.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/weapons/stock_parts.html b/code/game/objects/items/weapons/stock_parts.html
new file mode 100644
index 0000000000000..cd78d105acb10
--- /dev/null
+++ b/code/game/objects/items/weapons/stock_parts.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/stock_parts.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/stock_parts.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/weapons/storage/backpack.html b/code/game/objects/items/weapons/storage/backpack.html
new file mode 100644
index 0000000000000..41d74b1ff8f7d
--- /dev/null
+++ b/code/game/objects/items/weapons/storage/backpack.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/storage/backpack.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/storage/backpack.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/weapons/storage/bags.html b/code/game/objects/items/weapons/storage/bags.html
new file mode 100644
index 0000000000000..ba9115c9eea9c
--- /dev/null
+++ b/code/game/objects/items/weapons/storage/bags.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/storage/bags.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/storage/bags.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/weapons/storage/belt.html b/code/game/objects/items/weapons/storage/belt.html
new file mode 100644
index 0000000000000..e344395383d90
--- /dev/null
+++ b/code/game/objects/items/weapons/storage/belt.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/storage/belt.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/storage/belt.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/weapons/storage/boxes.html b/code/game/objects/items/weapons/storage/boxes.html
new file mode 100644
index 0000000000000..2a753bac19247
--- /dev/null
+++ b/code/game/objects/items/weapons/storage/boxes.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/storage/boxes.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/storage/boxes.dm
+
+
+
+
+ /obj /item /storage /box/stockparts/basic for ruins where it's a bad idea to give access to an autolathe/protolathe, but still want to make stock parts accessible
+
+
+
diff --git a/code/game/objects/items/weapons/storage/fancy.html b/code/game/objects/items/weapons/storage/fancy.html
new file mode 100644
index 0000000000000..14c1fb6724ccc
--- /dev/null
+++ b/code/game/objects/items/weapons/storage/fancy.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/storage/fancy.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/storage/fancy.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/weapons/storage/uplink_kits.html b/code/game/objects/items/weapons/storage/uplink_kits.html
new file mode 100644
index 0000000000000..fb33dfbac0880
--- /dev/null
+++ b/code/game/objects/items/weapons/storage/uplink_kits.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/storage/uplink_kits.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/storage/uplink_kits.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/weapons/stunbaton.html b/code/game/objects/items/weapons/stunbaton.html
new file mode 100644
index 0000000000000..5e5dfb9a2bd0b
--- /dev/null
+++ b/code/game/objects/items/weapons/stunbaton.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/stunbaton.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/stunbaton.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/weapons/twohanded.html b/code/game/objects/items/weapons/twohanded.html
new file mode 100644
index 0000000000000..79c4b92cea813
--- /dev/null
+++ b/code/game/objects/items/weapons/twohanded.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/twohanded.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/twohanded.dm
+
+
+
+
+ /obj /item /fireaxe DEM AXES MAN, marker -Agouri
+ /obj /item /fireaxe/boneaxe Blatant imitation of the fireaxe, but made out of bone.
+ /obj /item /spear/bonespear Blatant imitation of spear, but made out of bone. Not valid for explosive modification.
+ /obj /item /butcher_chainsaw CHAINSAW
+ BROOM_PUSH_LIMIT Max number of atoms a broom can sweep at once
+ /obj/item/supermatter_halberd Supermatter Halberd, used by Oblivion Enforcers
Define Details
+BROOM_PUSH_LIMIT
+
+
+
+ Max number of atoms a broom can sweep at once
+
+
+
diff --git a/code/game/objects/items/weapons/weaponry.html b/code/game/objects/items/weapons/weaponry.html
new file mode 100644
index 0000000000000..e56bd9ff28009
--- /dev/null
+++ b/code/game/objects/items/weapons/weaponry.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/weaponry.dm - Space Station 13
+
+
+
+
+code/game/objects/items/weapons/weaponry.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/aliens.html b/code/game/objects/structures/aliens.html
new file mode 100644
index 0000000000000..cde5c561d56c7
--- /dev/null
+++ b/code/game/objects/structures/aliens.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/game/objects/structures/aliens.dm - Space Station 13
+
+
+
+
+code/game/objects/structures/aliens.dm
+
+
+
+Define Details
+BURST
+
+
+
+ Used in the /status var
MIN_GROWTH_TIME
+
+
+
+ time it takes to grow a hugger
+
+
+
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo_lockers.html b/code/game/objects/structures/crates_lockers/closets/secure/cargo_lockers.html
new file mode 100644
index 0000000000000..647a728e9603b
--- /dev/null
+++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo_lockers.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/crates_lockers/closets/secure/cargo_lockers.dm - Space Station 13
+
+
+
+
+code/game/objects/structures/crates_lockers/closets/secure/cargo_lockers.dm
+
+
+
+
+ /obj /structure /closet/secure_closet/quartermaster/lavaland used in mining outpost
+
+
+
diff --git a/code/game/objects/structures/crates_lockers/closets/statue.html b/code/game/objects/structures/crates_lockers/closets/statue.html
new file mode 100644
index 0000000000000..79acd0b93a68e
--- /dev/null
+++ b/code/game/objects/structures/crates_lockers/closets/statue.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/crates_lockers/closets/statue.dm - Space Station 13
+
+
+
+
+code/game/objects/structures/crates_lockers/closets/statue.dm
+
+
+
+
+ /obj /structure /closet/statue this type path is a crime, ponies what the fuck
+
+
+
diff --git a/code/game/objects/structures/disaster_counter.html b/code/game/objects/structures/disaster_counter.html
new file mode 100644
index 0000000000000..6e24e3698c9d4
--- /dev/null
+++ b/code/game/objects/structures/disaster_counter.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/disaster_counter.dm - Space Station 13
+
+
+
+
+code/game/objects/structures/disaster_counter.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/fluff.html b/code/game/objects/structures/fluff.html
new file mode 100644
index 0000000000000..9a4e59316fb8b
--- /dev/null
+++ b/code/game/objects/structures/fluff.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/game/objects/structures/fluff.dm - Space Station 13
+
+
+
+
+code/game/objects/structures/fluff.dm
+
+
+
+
+ /obj /structure /fluff/empty_terrarium Empty terrariums are created when a preserved terrarium in a lavaland seed vault is activated.
+ /obj /structure /fluff/empty_sleeper Empty sleepers are created by a good few ghost roles in lavaland.
+ /obj /structure /fluff/empty_cryostasis_sleeper Empty cryostasis sleepers are created when a malfunctioning cryostasis sleeper in a lavaland shelter is activated
+ /obj /structure /fluff/drake_statue Ash drake status spawn on either side of the necropolis gate in lavaland.
+ /obj /structure /fluff/drake_statue/falling A variety of statue in disrepair; parts are broken off and a gemstone is missing
+
+
+
diff --git a/code/game/objects/structures/grille.html b/code/game/objects/structures/grille.html
new file mode 100644
index 0000000000000..4d3df89f36c76
--- /dev/null
+++ b/code/game/objects/structures/grille.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/grille.dm - Space Station 13
+
+
+
+
+code/game/objects/structures/grille.dm
+
+
+
+
+ /obj /structure /grille/broken Pre-broken grilles for map placement
+
+
+
diff --git a/code/game/objects/structures/inflatable.html b/code/game/objects/structures/inflatable.html
new file mode 100644
index 0000000000000..a9567422e41a6
--- /dev/null
+++ b/code/game/objects/structures/inflatable.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/inflatable.dm - Space Station 13
+
+
+
+
+code/game/objects/structures/inflatable.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/kitchen_spike.html b/code/game/objects/structures/kitchen_spike.html
new file mode 100644
index 0000000000000..e04331d511211
--- /dev/null
+++ b/code/game/objects/structures/kitchen_spike.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/kitchen_spike.dm - Space Station 13
+
+
+
+
+code/game/objects/structures/kitchen_spike.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/loom.html b/code/game/objects/structures/loom.html
new file mode 100644
index 0000000000000..16fcfec8b95c7
--- /dev/null
+++ b/code/game/objects/structures/loom.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/loom.dm - Space Station 13
+
+
+
+
+code/game/objects/structures/loom.dm
+
+
+
+
+ /obj/structure/loom This is a loom. It's usually made out of wood and used to weave fabric like durathread or cotton into their respective cloth types.
+
+
+
diff --git a/code/game/objects/structures/plasticflaps.html b/code/game/objects/structures/plasticflaps.html
new file mode 100644
index 0000000000000..aea4ea461c32a
--- /dev/null
+++ b/code/game/objects/structures/plasticflaps.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/plasticflaps.dm - Space Station 13
+
+
+
+
+code/game/objects/structures/plasticflaps.dm
+
+
+
+
+ /obj /structure /plasticflaps/mining A specific type for mining that doesn't allow airflow because of them damn crates
+
+
+
diff --git a/code/game/objects/structures/railings.html b/code/game/objects/structures/railings.html
new file mode 100644
index 0000000000000..99113c157d8b1
--- /dev/null
+++ b/code/game/objects/structures/railings.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/structures/railings.dm - Space Station 13
+
+
+
+
+code/game/objects/structures/railings.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/safe.html b/code/game/objects/structures/safe.html
new file mode 100644
index 0000000000000..d5ee7f0d0a3bf
--- /dev/null
+++ b/code/game/objects/structures/safe.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/game/objects/structures/safe.dm - Space Station 13
+
+
+
+
+code/game/objects/structures/safe.dm
+
+
+
+
+ /obj/structure/safe A locked container that can only be opened by entering a combination through a dial.
+ /obj /structure /safe /floor Like a safe, but without density. Can be hidden with flooring.
+ /obj /item /safe_internals Can be used to replace a safe's broken mechanism.
+ /obj /item /paper /safe_code Contains the (generated on map load) codes for all publicly known safes.
+
+
+
diff --git a/code/game/objects/structures/statues.html b/code/game/objects/structures/statues.html
new file mode 100644
index 0000000000000..4f0f7e2eecb8c
--- /dev/null
+++ b/code/game/objects/structures/statues.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/statues.dm - Space Station 13
+
+
+
+
+code/game/objects/structures/statues.dm
+
+
+
+
+ /obj /structure /statue/sandstone/venus call me when we add marble i guess
+
+
+
diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.html b/code/game/objects/structures/stool_bed_chair_nest/chairs.html
new file mode 100644
index 0000000000000..5039dc8516636
--- /dev/null
+++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/stool_bed_chair_nest/chairs.dm - Space Station 13
+
+
+
+
+code/game/objects/structures/stool_bed_chair_nest/chairs.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/tables_racks.html b/code/game/objects/structures/tables_racks.html
new file mode 100644
index 0000000000000..941afe16e4c13
--- /dev/null
+++ b/code/game/objects/structures/tables_racks.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/tables_racks.dm - Space Station 13
+
+
+
+
+code/game/objects/structures/tables_racks.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/structures/watercloset.html b/code/game/objects/structures/watercloset.html
new file mode 100644
index 0000000000000..e186cfe9b030d
--- /dev/null
+++ b/code/game/objects/structures/watercloset.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/watercloset.dm - Space Station 13
+
+
+
+
+code/game/objects/structures/watercloset.dm
+
+
+
+
+
+
+
diff --git a/code/game/sound.html b/code/game/sound.html
new file mode 100644
index 0000000000000..e1feae697964e
--- /dev/null
+++ b/code/game/sound.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ code/game/sound.dm - Space Station 13
+
+
+
+
+code/game/sound.dm
+
+
+
+
+ /sound Default override for echo
+ playsound
+playsound is a proc used to play a 3D sound in a specific range. This uses SOUND_RANGE + extra_range to determine that.
+source - Origin of sound
+soundin - Either a file, or a string that can be used to get an SFX
+vol - The volume of the sound, excluding falloff and pressure affection.
+vary - bool that determines if the sound changes pitch every time it plays
+extrarange - modifier for sound range. This gets added on top of SOUND_RANGE
+falloff_exponent - Rate of falloff for the audio. Higher means quicker drop to low volume. Should generally be over 1 to indicate a quick dive to 0 rather than a slow dive.
+frequency - playback speed of audio
+channel - The channel the sound is played at
+pressure_affected - Whether or not difference in pressure affects the sound (E.g. if you can hear in space)
+ignore_walls - Whether or not the sound can pass through walls.
+falloff_distance - Distance at which falloff begins. Sound is at peak volume (in regards to falloff) aslong as it is in this range.
+
+
+
diff --git a/code/game/turfs/simulated.html b/code/game/turfs/simulated.html
new file mode 100644
index 0000000000000..6748fb47e2b2f
--- /dev/null
+++ b/code/game/turfs/simulated.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/game/turfs/simulated.dm - Space Station 13
+
+
+
+
+code/game/turfs/simulated.dm
+
+
+
+Define Details
+WATER_WEAKEN_TIME
+
+
+
+ Knockdown time for slipping on water
+
+
+
diff --git a/code/game/turfs/simulated/floor/asteroid_floors.html b/code/game/turfs/simulated/floor/asteroid_floors.html
new file mode 100644
index 0000000000000..4c7d3c3353f55
--- /dev/null
+++ b/code/game/turfs/simulated/floor/asteroid_floors.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ code/game/turfs/simulated/floor/asteroid_floors.dm - Space Station 13
+
+
+
+
+code/game/turfs/simulated/floor/asteroid_floors.dm
+
+
+
+Define Details
+RECURSION_MAX
+
+
+
+ Asteroid
+
+
+
diff --git a/code/game/turfs/simulated/floor/chasm.html b/code/game/turfs/simulated/floor/chasm.html
new file mode 100644
index 0000000000000..3fd3aa04e0b99
--- /dev/null
+++ b/code/game/turfs/simulated/floor/chasm.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/turfs/simulated/floor/chasm.dm - Space Station 13
+
+
+
+
+code/game/turfs/simulated/floor/chasm.dm
+
+
+
+
+
+
+
diff --git a/code/game/turfs/simulated/floor/fancy_floor.html b/code/game/turfs/simulated/floor/fancy_floor.html
new file mode 100644
index 0000000000000..1ec486a98e432
--- /dev/null
+++ b/code/game/turfs/simulated/floor/fancy_floor.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/turfs/simulated/floor/fancy_floor.dm - Space Station 13
+
+
+
+
+code/game/turfs/simulated/floor/fancy_floor.dm
+
+
+
+
+ /turf /simulated /floor/grass/no_creep This vairant shows up under normal turfs so fits in the regular 32x32 sprite
+ /turf /simulated /floor/grass/jungle/no_creep This vairant shows up under normal turfs so fits in the regular 32x32 sprite
+
+
+
diff --git a/code/game/turfs/simulated/floor/indestructible.html b/code/game/turfs/simulated/floor/indestructible.html
new file mode 100644
index 0000000000000..024bdff146dc0
--- /dev/null
+++ b/code/game/turfs/simulated/floor/indestructible.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/turfs/simulated/floor/indestructible.dm - Space Station 13
+
+
+
+
+code/game/turfs/simulated/floor/indestructible.dm
+
+
+
+
+ /turf /simulated /floor/indestructible/boss you put stone tiles on this and use it as a base
+
+
+
diff --git a/code/game/turfs/simulated/floor/lava.html b/code/game/turfs/simulated/floor/lava.html
new file mode 100644
index 0000000000000..568d6911d2eda
--- /dev/null
+++ b/code/game/turfs/simulated/floor/lava.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/turfs/simulated/floor/lava.dm - Space Station 13
+
+
+
+
+code/game/turfs/simulated/floor/lava.dm
+
+
+
+
+ /turf /simulated /floor/lava Lava turf, burns things that are on it.
+Currently a subtype of floor so that footsteps work on it.
+Perhaps we could move it down to /turf/simulated/lava someday, as I dont think footsteps over lava are very important.
+
+
+
diff --git a/code/game/turfs/simulated/floor/misc_floor.html b/code/game/turfs/simulated/floor/misc_floor.html
new file mode 100644
index 0000000000000..0e46488a9d4df
--- /dev/null
+++ b/code/game/turfs/simulated/floor/misc_floor.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/turfs/simulated/floor/misc_floor.dm - Space Station 13
+
+
+
+
+code/game/turfs/simulated/floor/misc_floor.dm
+
+
+
+
+ /turf /simulated /floor/beach/water TODO - Refactor water so they share the same parent type - Or alternatively component something like that
+
+
+
diff --git a/code/game/turfs/simulated/floor/plasteel_floor.html b/code/game/turfs/simulated/floor/plasteel_floor.html
new file mode 100644
index 0000000000000..9fdb7a1d4dd24
--- /dev/null
+++ b/code/game/turfs/simulated/floor/plasteel_floor.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/turfs/simulated/floor/plasteel_floor.dm - Space Station 13
+
+
+
+
+code/game/turfs/simulated/floor/plasteel_floor.dm
+
+
+
+
+ /turf /simulated /floor/plasteel/airless/indestructible For bomb testing range
+
+
+
diff --git a/code/game/turfs/simulated/minerals.html b/code/game/turfs/simulated/minerals.html
new file mode 100644
index 0000000000000..63ce089dfd534
--- /dev/null
+++ b/code/game/turfs/simulated/minerals.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/turfs/simulated/minerals.dm - Space Station 13
+
+
+
+
+code/game/turfs/simulated/minerals.dm
+
+
+
+
+
+
+
diff --git a/code/game/turfs/simulated/river.html b/code/game/turfs/simulated/river.html
new file mode 100644
index 0000000000000..8ad97604b23be
--- /dev/null
+++ b/code/game/turfs/simulated/river.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/turfs/simulated/river.dm - Space Station 13
+
+
+
+
+code/game/turfs/simulated/river.dm
+
+
+
+
+ /datum/river_spawner A straightforward system for making "rivers", paths made up of a specific
+turf type that are generated in a random path on a z-level.
+
+
+
diff --git a/code/game/turfs/simulated/walls_mineral.html b/code/game/turfs/simulated/walls_mineral.html
new file mode 100644
index 0000000000000..4324420eab56c
--- /dev/null
+++ b/code/game/turfs/simulated/walls_mineral.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/turfs/simulated/walls_mineral.dm - Space Station 13
+
+
+
+
+code/game/turfs/simulated/walls_mineral.dm
+
+
+
+
+ /turf /simulated /wall /mineral/titanium //////////////////Titanium walls/////////////////////
+has to use this path due to how building walls works
+ /turf /simulated /wall /mineral/plastitanium Plastitanium walls
+
+
+
diff --git a/code/game/turfs/space/transit.html b/code/game/turfs/space/transit.html
new file mode 100644
index 0000000000000..f0650fae4272d
--- /dev/null
+++ b/code/game/turfs/space/transit.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/turfs/space/transit.dm - Space Station 13
+
+
+
+
+code/game/turfs/space/transit.dm
+
+
+
+
+ /turf /space/transit/north moving to the north
+ /turf /space/transit/east moving to the east
+
+
+
diff --git a/code/modules/admin/holder2.html b/code/modules/admin/holder2.html
new file mode 100644
index 0000000000000..bf3d187db82ca
--- /dev/null
+++ b/code/modules/admin/holder2.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/admin/holder2.dm - Space Station 13
+
+
+
+
+code/modules/admin/holder2.dm
+
+
+
+
+
+
+
diff --git a/code/modules/admin/misc_admin_procs.html b/code/modules/admin/misc_admin_procs.html
new file mode 100644
index 0000000000000..ffaa900285d35
--- /dev/null
+++ b/code/modules/admin/misc_admin_procs.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ code/modules/admin/misc_admin_procs.dm - Space Station 13
+
+
+
+
+code/modules/admin/misc_admin_procs.dm
+
+
+
+
+ /proc/message_adminTicket
+ Sends a message to the staff able to see admin tickets
+Arguments:
+msg - The message being send
+important - If the message is important. If TRUE it will ignore the CHAT_NO_TICKETLOGS preferences,
+send a sound and flash the window. Defaults to FALSE
+ /proc/message_mentorTicket
+ Sends a message to the staff able to see mentor tickets
+Arguments:
+msg - The message being send
+important - If the message is important. If TRUE it will ignore the CHAT_NO_TICKETLOGS preferences,
+send a sound and flash the window. Defaults to FALSE
+ /proc/is_special_character
+ ADMIN HELPER PROCS
+A proc that return whether the mob is a "Special Character" aka Antagonist
+ /proc/get_antag_type_strings_list
+ A proc that return an array of capitalized strings containing name of the antag types they are
+ /proc/get_antag_type_truncated_plaintext_string
+ A proc that return a string containing all the singled out antags . Empty string if not antag
+ /proc/get_admin_objective_targets
+ Allows admins to safely pick from SSticker.minds for objectives
+
+
+
diff --git a/code/modules/antagonists/_common/antag_hud.html b/code/modules/antagonists/_common/antag_hud.html
new file mode 100644
index 0000000000000..16353d7624193
--- /dev/null
+++ b/code/modules/antagonists/_common/antag_hud.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/_common/antag_hud.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/_common/antag_hud.dm
+
+
+
+
+ /datum /mindslaves Master Servent Datum Sytems,Based on TG Gang system
+
+
+
diff --git a/code/modules/antagonists/_common/antag_spawner.html b/code/modules/antagonists/_common/antag_spawner.html
new file mode 100644
index 0000000000000..872ee99fccbb5
--- /dev/null
+++ b/code/modules/antagonists/_common/antag_spawner.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/antagonists/_common/antag_spawner.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/_common/antag_spawner.dm
+
+
+
+
+ /obj /item /antag_spawner/nuke_ops BORGS AND OPERATIVES
+ /obj /item /antag_spawner/nuke_ops/borg_tele SYNDICATE BORG
+ /obj /item /antag_spawner/slaughter_demon ////////SLAUGHTER DEMON
+Warning edgiest item in the game
+ /obj /item /antag_spawner/morph MORPH
+ /obj /item /antag_spawner/revenant Revenant
+ /obj /item /antag_spawner/pulse_demon Pulse Demon
+
+
+
diff --git a/code/modules/antagonists/_common/antag_team.html b/code/modules/antagonists/_common/antag_team.html
new file mode 100644
index 0000000000000..12b12381b0498
--- /dev/null
+++ b/code/modules/antagonists/_common/antag_team.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/_common/antag_team.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/_common/antag_team.dm
+
+
+
+
+ /datum/team Datum used by team antagonists to track it's members and objectives the team needs to complete.
+
+
+
diff --git a/code/modules/antagonists/changeling/evolution_menu.html b/code/modules/antagonists/changeling/evolution_menu.html
new file mode 100644
index 0000000000000..cead0844c8bfa
--- /dev/null
+++ b/code/modules/antagonists/changeling/evolution_menu.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/modules/antagonists/changeling/evolution_menu.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/changeling/evolution_menu.dm
+
+
+
+
+ COMPACT_MODE The evolution menu will be shown in the compact mode, with only powers and costs being displayed.
+ EXPANDED_MODE The evolution menu will be shown in the expanded mode, with powers, costs, and power descriptions being displayed.
Define Details
+COMPACT_MODE
+
+
+
+ The evolution menu will be shown in the compact mode, with only powers and costs being displayed.
EXPANDED_MODE
+
+
+
+ The evolution menu will be shown in the expanded mode, with powers, costs, and power descriptions being displayed.
+
+
+
diff --git a/code/modules/antagonists/changeling/powers/mutations.html b/code/modules/antagonists/changeling/powers/mutations.html
new file mode 100644
index 0000000000000..3abd4add3b01a
--- /dev/null
+++ b/code/modules/antagonists/changeling/powers/mutations.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ code/modules/antagonists/changeling/powers/mutations.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/changeling/powers/mutations.dm
+
+
+
+
+
+
+
diff --git a/code/modules/antagonists/changeling/powers/shriek.html b/code/modules/antagonists/changeling/powers/shriek.html
new file mode 100644
index 0000000000000..6dae323524da5
--- /dev/null
+++ b/code/modules/antagonists/changeling/powers/shriek.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/changeling/powers/shriek.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/changeling/powers/shriek.dm
+
+
+
+
+ /datum /action /changeling /dissonant_shriek/cyberrev A more expensive version, used during rounds with cyber rev station trait for balance reasons.
+
+
+
diff --git a/code/modules/antagonists/changeling/powers/summon_spiders.html b/code/modules/antagonists/changeling/powers/summon_spiders.html
new file mode 100644
index 0000000000000..2acc26b0657de
--- /dev/null
+++ b/code/modules/antagonists/changeling/powers/summon_spiders.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/changeling/powers/summon_spiders.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/changeling/powers/summon_spiders.dm
+
+
+
+
+
+
+
diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.html b/code/modules/antagonists/changeling/powers/tiny_prick.html
new file mode 100644
index 0000000000000..4141dbd7cf609
--- /dev/null
+++ b/code/modules/antagonists/changeling/powers/tiny_prick.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/changeling/powers/tiny_prick.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/changeling/powers/tiny_prick.dm
+
+
+
+
+ /datum /action /changeling /sting /cryo Enable when mob cooling is fixed so that frostoil actually makes you cold, instead of mostly just hungry.
+
+
+
diff --git a/code/modules/antagonists/traitor/contractor/datums/contractor_hub.html b/code/modules/antagonists/traitor/contractor/datums/contractor_hub.html
new file mode 100644
index 0000000000000..b95af29ae6eaa
--- /dev/null
+++ b/code/modules/antagonists/traitor/contractor/datums/contractor_hub.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/traitor/contractor/datums/contractor_hub.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/traitor/contractor/datums/contractor_hub.dm
+
+
+
+
+
+
+
diff --git a/code/modules/antagonists/traitor/contractor/datums/objective_contract.html b/code/modules/antagonists/traitor/contractor/datums/objective_contract.html
new file mode 100644
index 0000000000000..90c596a8a8ea0
--- /dev/null
+++ b/code/modules/antagonists/traitor/contractor/datums/objective_contract.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/traitor/contractor/datums/objective_contract.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/traitor/contractor/datums/objective_contract.dm
+
+
+
+
+
+
+
diff --git a/code/modules/antagonists/traitor/contractor/datums/rep_purchases/balloon.html b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/balloon.html
new file mode 100644
index 0000000000000..56655ec480383
--- /dev/null
+++ b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/balloon.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/traitor/contractor/datums/rep_purchases/balloon.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/traitor/contractor/datums/rep_purchases/balloon.dm
+
+
+
+
+
+
+
diff --git a/code/modules/antagonists/traitor/contractor/datums/rep_purchases/baton.html b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/baton.html
new file mode 100644
index 0000000000000..3fe7421225a03
--- /dev/null
+++ b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/baton.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/traitor/contractor/datums/rep_purchases/baton.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/traitor/contractor/datums/rep_purchases/baton.dm
+
+
+
+
+
+
+
diff --git a/code/modules/antagonists/traitor/contractor/datums/rep_purchases/blackout.html b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/blackout.html
new file mode 100644
index 0000000000000..07d873b288ec3
--- /dev/null
+++ b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/blackout.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/traitor/contractor/datums/rep_purchases/blackout.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/traitor/contractor/datums/rep_purchases/blackout.dm
+
+
+
+
+
+
+
diff --git a/code/modules/antagonists/traitor/contractor/datums/rep_purchases/contractor_fulton.html b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/contractor_fulton.html
new file mode 100644
index 0000000000000..50487865fc717
--- /dev/null
+++ b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/contractor_fulton.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/traitor/contractor/datums/rep_purchases/contractor_fulton.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/traitor/contractor/datums/rep_purchases/contractor_fulton.dm
+
+
+
+
+
+
+
diff --git a/code/modules/antagonists/traitor/contractor/datums/rep_purchases/flare.html b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/flare.html
new file mode 100644
index 0000000000000..52762d417d37b
--- /dev/null
+++ b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/flare.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/traitor/contractor/datums/rep_purchases/flare.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/traitor/contractor/datums/rep_purchases/flare.dm
+
+
+
+
+
+
+
diff --git a/code/modules/antagonists/traitor/contractor/datums/rep_purchases/rep_pinpointer.html b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/rep_pinpointer.html
new file mode 100644
index 0000000000000..846b50e1a0c05
--- /dev/null
+++ b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/rep_pinpointer.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/traitor/contractor/datums/rep_purchases/rep_pinpointer.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/traitor/contractor/datums/rep_purchases/rep_pinpointer.dm
+
+
+
+
+
+
+
diff --git a/code/modules/antagonists/traitor/contractor/datums/rep_purchases/rep_purchase_base.html b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/rep_purchase_base.html
new file mode 100644
index 0000000000000..2213bf9448a26
--- /dev/null
+++ b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/rep_purchase_base.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/antagonists/traitor/contractor/datums/rep_purchases/rep_purchase_base.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/traitor/contractor/datums/rep_purchases/rep_purchase_base.dm
+
+
+
+
+
+
+
diff --git a/code/modules/antagonists/traitor/contractor/datums/rep_purchases/reroll.html b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/reroll.html
new file mode 100644
index 0000000000000..ba9cda511cca0
--- /dev/null
+++ b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/reroll.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/traitor/contractor/datums/rep_purchases/reroll.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/traitor/contractor/datums/rep_purchases/reroll.dm
+
+
+
+
+
+
+
diff --git a/code/modules/antagonists/traitor/contractor/datums/rep_purchases/zippo.html b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/zippo.html
new file mode 100644
index 0000000000000..ce684b86d36df
--- /dev/null
+++ b/code/modules/antagonists/traitor/contractor/datums/rep_purchases/zippo.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/traitor/contractor/datums/rep_purchases/zippo.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/traitor/contractor/datums/rep_purchases/zippo.dm
+
+
+
+
+
+
+
diff --git a/code/modules/antagonists/traitor/contractor/datums/syndicate_contract.html b/code/modules/antagonists/traitor/contractor/datums/syndicate_contract.html
new file mode 100644
index 0000000000000..2f2fc9bec44a4
--- /dev/null
+++ b/code/modules/antagonists/traitor/contractor/datums/syndicate_contract.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/traitor/contractor/datums/syndicate_contract.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/traitor/contractor/datums/syndicate_contract.dm
+
+
+
+
+
+
+
diff --git a/code/modules/antagonists/traitor/contractor/items/contractor_uplink.html b/code/modules/antagonists/traitor/contractor/items/contractor_uplink.html
new file mode 100644
index 0000000000000..da4258599f0e2
--- /dev/null
+++ b/code/modules/antagonists/traitor/contractor/items/contractor_uplink.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/antagonists/traitor/contractor/items/contractor_uplink.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/traitor/contractor/items/contractor_uplink.dm
+
+
+
+
+
+
+
diff --git a/code/modules/antagonists/traitor/contractor/items/extraction_items.html b/code/modules/antagonists/traitor/contractor/items/extraction_items.html
new file mode 100644
index 0000000000000..756b4defe5755
--- /dev/null
+++ b/code/modules/antagonists/traitor/contractor/items/extraction_items.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/antagonists/traitor/contractor/items/extraction_items.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/traitor/contractor/items/extraction_items.dm
+
+
+
+
+
+
+
diff --git a/code/modules/antagonists/vampire/vampire_powers/vampire_powers.html b/code/modules/antagonists/vampire/vampire_powers/vampire_powers.html
new file mode 100644
index 0000000000000..de5d593857230
--- /dev/null
+++ b/code/modules/antagonists/vampire/vampire_powers/vampire_powers.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/modules/antagonists/vampire/vampire_powers/vampire_powers.dm - Space Station 13
+
+
+
+
+code/modules/antagonists/vampire/vampire_powers/vampire_powers.dm
+
+
+
+
+ DEVIATION_NONE No deviation at all. Flashed from the front or front-left/front-right. Alternatively, flashed in direct view.
+ DEVIATION_PARTIAL Partial deviation. Flashed from the side. Alternatively, flashed out the corner of your eyes.
+ DEVIATION_FULL Full deviation. Flashed from directly behind or behind-left/behind-rack. Not flashed at all.
Define Details
+DEVIATION_FULL
+
+
+
+ Full deviation. Flashed from directly behind or behind-left/behind-rack. Not flashed at all.
DEVIATION_NONE
+
+
+
+ No deviation at all. Flashed from the front or front-left/front-right. Alternatively, flashed in direct view.
DEVIATION_PARTIAL
+
+
+
+ Partial deviation. Flashed from the side. Alternatively, flashed out the corner of your eyes.
+
+
+
diff --git a/code/modules/assembly/infrared.html b/code/modules/assembly/infrared.html
new file mode 100644
index 0000000000000..93d0e8841b7fe
--- /dev/null
+++ b/code/modules/assembly/infrared.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/assembly/infrared.dm - Space Station 13
+
+
+
+
+code/modules/assembly/infrared.dm
+
+
+
+
+ /obj /effect/beam/i_beam IBeam
+
+
+
diff --git a/code/modules/asset_cache.html b/code/modules/asset_cache.html
new file mode 100644
index 0000000000000..73c6ad777e444
--- /dev/null
+++ b/code/modules/asset_cache.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ code/modules/asset_cache/readme.md - Space Station 13
+
+
+
+
+Asset cache system code/modules/asset_cache/readme.md
+
+
+
+
+ Framework for managing browser assets (javascript,css,images,etc)
+This manages getting the asset to the client without doing unneeded re-sends, as well as utilizing any configured cdns.
+There are two frameworks for using this system:
+Asset datum:
+Make a datum in asset_list_items.dm with your browser assets for your thing.
+Checkout asset_list.dm for the helper subclasses
+The simple
subclass will most likely be of use for most cases.
+Call get_asset_datum() with the type of the datum you created to get your asset cache datum
+Call .send(client|usr) on that datum to send the asset to the client. Depending on the asset transport this may or may not block.
+Call .get_url_mappings() to get an associated list with the urls your assets can be found at.
+Manual backend:
+See the documentation for /datum/asset_transport
for the backend api the asset datums utilize.
+The global variable SSassets.transport
contains the currently configured transport.
+Notes:
+Because byond browse() calls use non-blocking queues, if your code uses output() (which bypasses all of these queues) to invoke javascript functions you will need to first have the javascript announce to the server it has loaded before trying to invoke js functions.
+To make your code work with any CDNs configured by the server, you must make sure assets are referenced from the url returned by get_url_mappings()
or by asset_transport's get_asset_url()
. (TGUI also has helpers for this.) If this can not be easily done, you can bypass the cdn using legacy assets, see the simple asset datum for details.
+CSS files that use url() can be made to use the CDN without needing to rewrite all url() calls in code by using the namespaced helper datum. See the documentation for /datum/asset/simple/namespaced
for details.
+
+
+
diff --git a/code/modules/asset_cache/asset_cache_item.html b/code/modules/asset_cache/asset_cache_item.html
new file mode 100644
index 0000000000000..aa5e8d6e8996f
--- /dev/null
+++ b/code/modules/asset_cache/asset_cache_item.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/asset_cache/asset_cache_item.dm - Space Station 13
+
+
+
+
+code/modules/asset_cache/asset_cache_item.dm
+
+
+
+
+ /datum/asset_cache_item An internal datum containing info on items in the asset cache. Mainly used to cache md5 info for speed.
+
+
+
diff --git a/code/modules/asset_cache/asset_list.html b/code/modules/asset_cache/asset_list.html
new file mode 100644
index 0000000000000..ed431dbf6236a
--- /dev/null
+++ b/code/modules/asset_cache/asset_list.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/modules/asset_cache/asset_list.dm - Space Station 13
+
+
+
+
+code/modules/asset_cache/asset_list.dm
+
+
+
+
+ /datum/asset/simple If you don't need anything complicated.
+ /datum /asset /group For registering or sending multiple others at once
+ /datum/asset/simple/icon_states Generates assets based on iconstates of a single icon
+ /datum/asset/simple/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)
+
+
+
diff --git a/code/modules/asset_cache/assets/asset_chem_master.html b/code/modules/asset_cache/assets/asset_chem_master.html
new file mode 100644
index 0000000000000..42b42d5a24ea5
--- /dev/null
+++ b/code/modules/asset_cache/assets/asset_chem_master.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/asset_cache/assets/asset_chem_master.dm - Space Station 13
+
+
+
+
+code/modules/asset_cache/assets/asset_chem_master.dm
+
+
+
+
+
+
+
diff --git a/code/modules/asset_cache/assets/asset_orbit_icons.html b/code/modules/asset_cache/assets/asset_orbit_icons.html
new file mode 100644
index 0000000000000..7378902284661
--- /dev/null
+++ b/code/modules/asset_cache/assets/asset_orbit_icons.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/asset_cache/assets/asset_orbit_icons.dm - Space Station 13
+
+
+
+
+code/modules/asset_cache/assets/asset_orbit_icons.dm
+
+
+
+
+
+
+
diff --git a/code/modules/asset_cache/transports/asset_transport.html b/code/modules/asset_cache/transports/asset_transport.html
new file mode 100644
index 0000000000000..e5943931f7bf6
--- /dev/null
+++ b/code/modules/asset_cache/transports/asset_transport.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/asset_cache/transports/asset_transport.dm - Space Station 13
+
+
+
+
+code/modules/asset_cache/transports/asset_transport.dm
+
+
+
+Define Details
+ASSET_CACHE_TELL_CLIENT_AMOUNT
+
+
+
+ When sending mutiple assets, how many before we give the client a quaint little sending resources message
+
+
+
diff --git a/code/modules/asset_cache/transports/webroot_transport.html b/code/modules/asset_cache/transports/webroot_transport.html
new file mode 100644
index 0000000000000..4d6926118b4d2
--- /dev/null
+++ b/code/modules/asset_cache/transports/webroot_transport.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/asset_cache/transports/webroot_transport.dm - Space Station 13
+
+
+
+
+code/modules/asset_cache/transports/webroot_transport.dm
+
+
+
+
+
+
+
diff --git a/code/modules/atmospherics/environmental/LINDA_fire.html b/code/modules/atmospherics/environmental/LINDA_fire.html
new file mode 100644
index 0000000000000..16d1fdc4a9a3a
--- /dev/null
+++ b/code/modules/atmospherics/environmental/LINDA_fire.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/atmospherics/environmental/LINDA_fire.dm - Space Station 13
+
+
+
+
+code/modules/atmospherics/environmental/LINDA_fire.dm
+
+
+
+
+ /obj /effect/hotspot/fake Largely for the fireflash procs below
+
+
+
diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.html b/code/modules/atmospherics/gasmixtures/gas_mixture.html
new file mode 100644
index 0000000000000..2b70786d52ee7
--- /dev/null
+++ b/code/modules/atmospherics/gasmixtures/gas_mixture.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/atmospherics/gasmixtures/gas_mixture.dm - Space Station 13
+
+
+
+
+code/modules/atmospherics/gasmixtures/gas_mixture.dm
+
+
+
+
+ /datum/gas_mixture/bound_to_turf Mathematical proofs:
+get_breath_partial_pressure(gas_pp) --> gas_pp/total_moles()breath_pp = pp
+get_true_breath_pressure(pp) --> gas_pp = pp/breath_pp total_moles()
+ /datum /gas_mixture /readonly A gas mixture that should not be modified after creation.
+
+
+
diff --git a/code/modules/atmospherics/machinery/airalarm.html b/code/modules/atmospherics/machinery/airalarm.html
new file mode 100644
index 0000000000000..842d203da9b7e
--- /dev/null
+++ b/code/modules/atmospherics/machinery/airalarm.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/atmospherics/machinery/airalarm.dm - Space Station 13
+
+
+
+
+code/modules/atmospherics/machinery/airalarm.dm
+
+
+
+
+
+
+
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/valve.html b/code/modules/atmospherics/machinery/components/binary_devices/valve.html
new file mode 100644
index 0000000000000..04f1f58147a8f
--- /dev/null
+++ b/code/modules/atmospherics/machinery/components/binary_devices/valve.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/atmospherics/machinery/components/binary_devices/valve.dm - Space Station 13
+
+
+
+
+code/modules/atmospherics/machinery/components/binary_devices/valve.dm
+
+
+
+
+
+
+
diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.html b/code/modules/atmospherics/machinery/components/trinary_devices/filter.html
new file mode 100644
index 0000000000000..b7bdaa8074134
--- /dev/null
+++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ code/modules/atmospherics/machinery/components/trinary_devices/filter.dm - Space Station 13
+
+
+
+
+code/modules/atmospherics/machinery/components/trinary_devices/filter.dm
+
+
+
+Define Details
+FILTER_CO2
+
+
+
+ Carbon dioxide only.
FILTER_N2O
+
+
+
+ Nitrous oxide only.
FILTER_NITROGEN
+
+
+
+ Nitrogen only.
FILTER_NOTHING
+
+
+
+ Nothing will be filtered.
FILTER_OXYGEN
+
+
+
+ Oxygen only.
FILTER_TOXINS
+
+
+
+ Plasma, and Oxygen Agent B.
+
+
+
diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/tvalve.html b/code/modules/atmospherics/machinery/components/trinary_devices/tvalve.html
new file mode 100644
index 0000000000000..6b5d70b9474cd
--- /dev/null
+++ b/code/modules/atmospherics/machinery/components/trinary_devices/tvalve.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/atmospherics/machinery/components/trinary_devices/tvalve.dm - Space Station 13
+
+
+
+
+code/modules/atmospherics/machinery/components/trinary_devices/tvalve.dm
+
+
+
+
+
+
+
diff --git a/code/modules/atmospherics/machinery/portable/portable_pump.html b/code/modules/atmospherics/machinery/portable/portable_pump.html
new file mode 100644
index 0000000000000..38e4eeafdcc91
--- /dev/null
+++ b/code/modules/atmospherics/machinery/portable/portable_pump.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/modules/atmospherics/machinery/portable/portable_pump.dm - Space Station 13
+
+
+
+
+code/modules/atmospherics/machinery/portable/portable_pump.dm
+
+
+
+Define Details
+DIRECTION_IN
+
+
+
+ The pump will be siphoning gas.
DIRECTION_OUT
+
+
+
+ The pump will be pumping gas out.
MAX_TARGET_PRESSURE
+
+
+
+ The maximum target_pressure
you can set on the pump. Equates to about 1013.25 kPa.
+
+
+
diff --git a/code/modules/awaymissions/mission_code/beach.html b/code/modules/awaymissions/mission_code/beach.html
new file mode 100644
index 0000000000000..0f52d063e1f7a
--- /dev/null
+++ b/code/modules/awaymissions/mission_code/beach.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/awaymissions/mission_code/beach.dm - Space Station 13
+
+
+
+
+code/modules/awaymissions/mission_code/beach.dm
+
+
+
+
+ /turf /simulated /floor/beach/away/sand/dense for boundary "walls"
+ /turf /simulated /floor/beach/away/coastline/dense for boundary "walls"
+ /turf /simulated /floor/beach/away/water/dense for boundary "walls"
+
+
+
diff --git a/code/modules/awaymissions/mission_code/ruins/oldstation.html b/code/modules/awaymissions/mission_code/ruins/oldstation.html
new file mode 100644
index 0000000000000..4a4b79a33ca3c
--- /dev/null
+++ b/code/modules/awaymissions/mission_code/ruins/oldstation.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/awaymissions/mission_code/ruins/oldstation.dm - Space Station 13
+
+
+
+
+code/modules/awaymissions/mission_code/ruins/oldstation.dm
+
+
+
+
+
+
+
diff --git a/code/modules/awaymissions/mission_code/ruins/watcher_grave.html b/code/modules/awaymissions/mission_code/ruins/watcher_grave.html
new file mode 100644
index 0000000000000..d76e2c8b3bac3
--- /dev/null
+++ b/code/modules/awaymissions/mission_code/ruins/watcher_grave.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ code/modules/awaymissions/mission_code/ruins/watcher_grave.dm - Space Station 13
+
+
+
+
+code/modules/awaymissions/mission_code/ruins/watcher_grave.dm
+
+
+
+Define Details
+WATCHER_EGG_ACTIVE_MOD
+
+
+
+ If greater than active mod, egg is active and jiggles
WATCHER_EGG_LIVELY_MOD
+
+
+
+ if greater than lively mod, jiggles faster
+
+
+
diff --git a/code/modules/awaymissions/mob_spawn.html b/code/modules/awaymissions/mob_spawn.html
new file mode 100644
index 0000000000000..8fc4375590003
--- /dev/null
+++ b/code/modules/awaymissions/mob_spawn.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ code/modules/awaymissions/mob_spawn.dm - Space Station 13
+
+
+
+
+code/modules/awaymissions/mob_spawn.dm
+
+
+
+Define Details
+CORPSE_INSTANT
+
+
+
+ this mob spawn creates the corpse instantly
CORPSE_ROUNDSTART
+
+
+
+ this mob spawn creates the corpse during GAME_STATE_PLAYING
+
+
+
diff --git a/code/modules/buildmode.html b/code/modules/buildmode.html
new file mode 100644
index 0000000000000..02aa4a99f7959
--- /dev/null
+++ b/code/modules/buildmode.html
@@ -0,0 +1,310 @@
+
+
+
+
+
+
+ code/modules/buildmode/README.md - Space Station 13
+
+
+
+
+Buildmode code/modules/buildmode/README.md
+
+
+
+
+ Code layout Buildmode
+Manager for buildmode modes. Contains logic to manage switching between each mode, and presenting a suitable user interface.
+Effects
+Special graphics used by buildmode modes for user interface purposes.
+Buildmode Mode
+Implementer of buildmode behaviors.
+Existing varieties:
+
+
+Basic
+Description :
+Allows creation of simple structures consisting of floors, walls, windows, and airlocks.
+Controls :
+
+
+Left click a turf :
+"Upgrades" the turf based on the following rules below:
+
+Space -> Tiled floor
+Simulated floor -> Regular wall
+Wall -> Reinforced wall
+
+
+
+Right click a turf :
+"Downgrades" the turf based on the following rules below:
+
+Reinforced wall -> Regular wall
+Wall -> Tiled floor
+Simulated floor -> Space
+
+
+
+Right click an object :
+Deletes the clicked object.
+
+
+Alt+Left click a location :
+Places an airlock at the clicked location.
+
+
+Ctrl+Left click a location :
+Places a window at the clicked location.
+
+
+
+
+Advanced
+Description :
+Creates an instance of a configurable atom path where you click.
+Controls :
+
+
+Right click on the mode selector :
+Choose a path to spawn.
+
+
+Alt+Left click a turf, object, or mob :
+Select the type of the object clicked.
+
+
+Left click a location (requires chosen path):
+Place an instance of the chosen path at the location.
+
+
+Right click an object :
+Delete the object.
+
+
+
+
+Fill
+Description :
+Creates an instance of an atom path on every tile in a chosen region.
+With a special control input, instead deletes everything within the region.
+Controls :
+
+
+Right click on the mode selector :
+Choose a path to spawn.
+
+
+Left click on a region (requires chosen path):
+Fill the region with the chosen path.
+
+
+Alt+Left click on a region :
+Deletes everything within the region.
+
+
+Right click during region selection :
+Cancel region selection.
+
+
+
+
+Atmos
+Description :
+Fills a region with configurable atmos. By default, ignores unsimulated turfs, but is able to "overwrite" the atmos of unsimulated turfs with a special control input.
+By default, fills a region with a breathable, standard atmosphere.
+Controls :
+
+
+Right click on the mode selector icon :
+Set the following traits:
+
+Total Pressure
+Temperature
+Partial Pressure Ratio (PPR) Oxygen
+PPR Nitrogen
+PPR Plasma
+PPR CO2
+PPR N2O
+
+
+
+Left click a region :
+Fill the region with the configured atmos.
+
+
+Control+Left click a region :
+As with the regular left click, but also "overwrites" the base atmos of any unsimulated turfs in the region - such as space turfs.
+
+
+Right click during region selection :
+Cancel region selection.
+
+
+
+
+Copy
+Description :
+Take an existing object in the world, and place duplicates with identical attributes where you click.
+May not always work nicely - "deep" variables such as lists or datums may malfunction.
+Controls :
+
+
+Right click an existing object :
+Select the clicked object as a template.
+
+
+Left click a location (Requires a selected object as template):
+Place a duplicate of the template at the clicked location.
+
+
+
+
+Link
+Description :
+Form links between door control buttons and either airlocks or pod bay doors.
+The selected button will be highlighted, and visible lines will be drawn between the doors it is linked to and itself.
+Controls :
+
+
+Left click a door control button :
+Makes the button active, and show what doors it is linked to.
+
+
+Right click an airlock (requires active button):
+Links the airlock to the active button. Will remove all links from the button first, if the button is linked to pod bay doors.
+
+
+Right click a pod bay door (requires active button):
+Links the pod bay door to the active button. Will remove all links from the button first, if the button is linked to regular airlocks.
+
+
+
+
+Area Edit
+Description :
+Modifies and creates areas.
+The active area will be highlighted in yellow.
+Controls :
+
+
+Right click the mode selector :
+Create a new area, and make it active.
+
+
+Right click an existing area :
+Make the clicked area active.
+
+
+Left click a turf :
+When an area is active, adds the turf to the active area.
+
+
+
+
+Var Edit
+Description :
+Allows for setting and resetting variables of objects with a click.
+If the object does not have the var, will do nothing and print a warning message.
+Controls :
+
+
+Right click the mode selector :
+Choose which variable to set, and what to set it to.
+
+
+Left click an atom :
+Change the clicked atom's variables as configured.
+
+
+Right click an atom :
+Reset the targeted variable to its original value in the code.
+
+
+
+
+Map Generator
+Description :
+Fills rectangular regions with algorithmically generated content. Right click during region selection to cancel.
+See the procedural_mapping
module for the generators themselves.
+Controls :
+
+
+Right-click on the mode selector :
+Select a map generator from all the generators present in the codebase.
+
+
+Left click two corners of an area :
+Use the generator to populate the region.
+
+
+Right click during region selection :
+Cancel region selection.
+
+
+
+
+Save
+Description :
+Captures a rectangular region in a .dmm
format, which can be loaded back later using the "Place Map Template" debug verb.
+Keep in mind this feature is somewhat experimental, and may not always work.
+Controls :
+
+
+Right click on the mode selector :
+Configure whether to save in either JSON mode or not.
+
+
+Left click two corners of an area :
+Save the region to a .dmm
file. You will be prompted for where to save this - a copy will be saved in the _maps/quicksave
folder.
+
+
+Right click during region selection :
+Cancel region selection.
+
+
+
+
+Throwing
+Description :
+Select an object with left click, and right click to throw it towards where you clicked.
+Controls :
+
+
+Left click on a movable atom :
+Select the atom for throwing.
+
+
+Right click on a location :
+Throw the selected atom towards that location.
+
+
+
+
+Boom
+Description :
+Make explosions where you click.
+Controls :
+
+
+Right click the mode selector :
+Configure the explosion size.
+
+
+Left click a location :
+Cause an explosion where you clicked.
+
+
+
+
+
+
+
diff --git a/code/modules/client/jobban_holder.html b/code/modules/client/jobban_holder.html
new file mode 100644
index 0000000000000..3059bb572f171
--- /dev/null
+++ b/code/modules/client/jobban_holder.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/client/jobban_holder.dm - Space Station 13
+
+
+
+
+code/modules/client/jobban_holder.dm
+
+
+
+
+
+
+
diff --git a/code/modules/client/login_processing/__client_login_processor.html b/code/modules/client/login_processing/__client_login_processor.html
new file mode 100644
index 0000000000000..8d8d82ca5a2bf
--- /dev/null
+++ b/code/modules/client/login_processing/__client_login_processor.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/client/login_processing/__client_login_processor.dm - Space Station 13
+
+
+
+
+code/modules/client/login_processing/__client_login_processor.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/glasses/engine_goggles.html b/code/modules/clothing/glasses/engine_goggles.html
new file mode 100644
index 0000000000000..bcd4ff39f283f
--- /dev/null
+++ b/code/modules/clothing/glasses/engine_goggles.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/clothing/glasses/engine_goggles.dm - Space Station 13
+
+
+
+
+code/modules/clothing/glasses/engine_goggles.dm
+
+
+
+
+ /obj /item /clothing /glasses /meson/engine/tray atmos techs have lived far too long without tray goggles while those damned engineers get their dual-purpose gogles all to themselves
+
+
+
diff --git a/code/modules/clothing/gloves/colored_gloves.html b/code/modules/clothing/gloves/colored_gloves.html
new file mode 100644
index 0000000000000..cefae1b75eabc
--- /dev/null
+++ b/code/modules/clothing/gloves/colored_gloves.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/clothing/gloves/colored_gloves.dm - Space Station 13
+
+
+
+
+code/modules/clothing/gloves/colored_gloves.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/gloves/rings.html b/code/modules/clothing/gloves/rings.html
new file mode 100644
index 0000000000000..ee533a76750b6
--- /dev/null
+++ b/code/modules/clothing/gloves/rings.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/clothing/gloves/rings.dm - Space Station 13
+
+
+
+
+code/modules/clothing/gloves/rings.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/head/beanie.html b/code/modules/clothing/head/beanie.html
new file mode 100644
index 0000000000000..7e0622b04913a
--- /dev/null
+++ b/code/modules/clothing/head/beanie.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/clothing/head/beanie.dm - Space Station 13
+
+
+
+
+code/modules/clothing/head/beanie.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/head/misc_hats.html b/code/modules/clothing/head/misc_hats.html
new file mode 100644
index 0000000000000..d8c15d6a4f11d
--- /dev/null
+++ b/code/modules/clothing/head/misc_hats.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/clothing/head/misc_hats.dm - Space Station 13
+
+
+
+
+code/modules/clothing/head/misc_hats.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/shoes/magboots.html b/code/modules/clothing/shoes/magboots.html
new file mode 100644
index 0000000000000..367c10bb24ece
--- /dev/null
+++ b/code/modules/clothing/shoes/magboots.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/clothing/shoes/magboots.dm - Space Station 13
+
+
+
+
+code/modules/clothing/shoes/magboots.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/shoes/misc_shoes.html b/code/modules/clothing/shoes/misc_shoes.html
new file mode 100644
index 0000000000000..db139bbcc22a7
--- /dev/null
+++ b/code/modules/clothing/shoes/misc_shoes.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/clothing/shoes/misc_shoes.dm - Space Station 13
+
+
+
+
+code/modules/clothing/shoes/misc_shoes.dm
+
+
+
+
+ /obj /item /clothing /shoes/combat basic syndicate combat boots for nuke ops and mob corpses
+ /obj /item /clothing /shoes/combat/swat overpowered gimmick boots
+ /obj /item /clothing /shoes/galoshes/dry/lightweight for red janitor ert.
+
+
+
diff --git a/code/modules/clothing/suits/armor_suits.html b/code/modules/clothing/suits/armor_suits.html
new file mode 100644
index 0000000000000..65644c6a19c84
--- /dev/null
+++ b/code/modules/clothing/suits/armor_suits.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/clothing/suits/armor_suits.dm - Space Station 13
+
+
+
+
+code/modules/clothing/suits/armor_suits.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/suits/misc_suits.html b/code/modules/clothing/suits/misc_suits.html
new file mode 100644
index 0000000000000..c0bd55b350647
--- /dev/null
+++ b/code/modules/clothing/suits/misc_suits.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/clothing/suits/misc_suits.dm - Space Station 13
+
+
+
+
+code/modules/clothing/suits/misc_suits.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/under/accessories/accessory.html b/code/modules/clothing/under/accessories/accessory.html
new file mode 100644
index 0000000000000..0b3ec202f9d4e
--- /dev/null
+++ b/code/modules/clothing/under/accessories/accessory.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/clothing/under/accessories/accessory.dm - Space Station 13
+
+
+
+
+code/modules/clothing/under/accessories/accessory.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/under/color.html b/code/modules/clothing/under/color.html
new file mode 100644
index 0000000000000..97b77171157ce
--- /dev/null
+++ b/code/modules/clothing/under/color.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/clothing/under/color.dm - Space Station 13
+
+
+
+
+code/modules/clothing/under/color.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/under/costumes.html b/code/modules/clothing/under/costumes.html
new file mode 100644
index 0000000000000..7828ab954ece3
--- /dev/null
+++ b/code/modules/clothing/under/costumes.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/clothing/under/costumes.dm - Space Station 13
+
+
+
+
+code/modules/clothing/under/costumes.dm
+
+
+
+
+
+
+
diff --git a/code/modules/clothing/under/jobs/medical_jumpsuits.html b/code/modules/clothing/under/jobs/medical_jumpsuits.html
new file mode 100644
index 0000000000000..f14ff6746f6b9
--- /dev/null
+++ b/code/modules/clothing/under/jobs/medical_jumpsuits.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/clothing/under/jobs/medical_jumpsuits.dm - Space Station 13
+
+
+
+
+code/modules/clothing/under/jobs/medical_jumpsuits.dm
+
+
+
+
+ /obj /item /clothing /under /rank/medical/gown Seems like it should be here for organisational purposes
+
+
+
diff --git a/code/modules/crafting/guncrafting.html b/code/modules/crafting/guncrafting.html
new file mode 100644
index 0000000000000..636451b162533
--- /dev/null
+++ b/code/modules/crafting/guncrafting.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/crafting/guncrafting.dm - Space Station 13
+
+
+
+
+code/modules/crafting/guncrafting.dm
+
+
+
+
+
+
+
diff --git a/code/modules/crafting/recipes.html b/code/modules/crafting/recipes.html
new file mode 100644
index 0000000000000..2097c16b50521
--- /dev/null
+++ b/code/modules/crafting/recipes.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/crafting/recipes.dm - Space Station 13
+
+
+
+
+code/modules/crafting/recipes.dm
+
+
+
+
+
+
+
diff --git a/code/modules/customitems/item_defines.html b/code/modules/customitems/item_defines.html
new file mode 100644
index 0000000000000..977d0c5bf6c94
--- /dev/null
+++ b/code/modules/customitems/item_defines.html
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+ code/modules/customitems/item_defines.dm - Space Station 13
+
+
+
+
+code/modules/customitems/item_defines.dm
+
+
+
+Define Details
+USED_MOD_HELM
+
+
+
+ ///////////PARADISE STATION CUSTOM ITEMS///////////
+Usable Items
+
+
+
diff --git a/code/modules/economy.html b/code/modules/economy.html
new file mode 100644
index 0000000000000..547a643040d61
--- /dev/null
+++ b/code/modules/economy.html
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+ code/modules/economy/README.md - Space Station 13
+
+
+
+
+Paradise Economy code/modules/economy/README.md
+
+
+
+
+ Introduction
+This README was last updated on October 2nd, 2022
+Economy SubSystem
+The Economy SubSystem performs a few important tasks that turns the gears of the economy
+
+
+payday()
- This is called every 30 minutes. the payday proc goes through every single money account and credits it the amount it has its paycheck set to. In addition, it will add/subtract credits based on what bonuses/deductions the money account has on it. In addition, SSeconomy tracks global deductions and bonuses which will be applied to EVERY paycheck and then zero'd out after the payday is over. If a money account is open on a NanoBank app, they will be alerted to the paycheck through the app.
+
+
+process_job_tasks()
- This is called every 30 seconds to check if players who have job objectives have completed the requirements of those job objectives, if so, it will add a "bonus" to the players next check and notify the player of the payroll modification. This proc handles calling procs and changing variables that will check completion on the job task and disable it from being checked in the future once payout is given.
+
+
+The Space Credit Financial System
+The Space Credit system is split up into two important datums: money accounts (/datum/money_account
) and money account databases (datum/money_account_database
). Money accounts represent individual accounts and money account databases represent a collection of money accounts.
+Money Accounts
+A /datum/money_acount
or "money account" is where most economy data is stored. In money accounts information is contained about the owner as well as all relevant credentials and setting for the account. Money accounts are rather barebones and only contain helper functions to simplify direct interaction.
+Credit Balance
+Accounts are primarily a store of space credits for crew
+/datum/money_account/proc/try_withdraw_credits
- used to subtract credits from account balance with some safety checks
+/datum/money_account/proc/deposit_credits
- used to deposit credits into the account balance
+/datum/money_account/proc/set_credits
- used to set credit balance to a specified value
+Account Security
+Accounts are not perfectly secure and safe, in fact, they're built to be broken into when crew members are not careful with their credentials, or an antagonist chooses to try and access another's account
+/datum/money_account/proc/authenticate_login
+This authenticate_login() proc is used to check the provided credentials against the accounts security level, it returns fails (FALSE) or success (TRUE) if the provided values pass the threshold/security reqs for the specificed security level
+There are a few important accounts level
+
+ACCOUNT_SECURITY_ID
- Account can be accessed with only the account number
+ACCOUNT_SECURITY_PIN
- Account can be accessed only with the account number AND correct pin
+ACCOUNT_SECURITY_RESTRICTED
- Account has same pin/acc-number restrictions but can only be accessed through special machines
+ACCOUNT_SECURITY_CC
- Account requires user to be an admin, this is for CC character safety
+ACCOUNT_SECURITY_VENDOR
- Account requires forced programmatic access, players in-game cannot access this account
+
+make_transaction_log
- Creates a /datum/transaction
object to be tracked on money account
+Transactions are just logs of money going in and out of the account so that players can see where there money comes from and how it is being spent, it provides a paper trail as well for security and legal affairs
+Money Transfers
+Money transfers are the transfer of space credits between money accounts, while the movement of space credits out of one account into another is handled by an account database, the actual requests that have not been resolved are stored and handled on money accounts
+/datum/money_account/proc/create_transfer_request
+Simple helper proc that handles creating a transfer request on the money account, needed to interact with LAZYLISTs
+/datum/money_account/proc/resolve_transfer_request
+another helper proc that clears the transfer request
+Neither of these procs actually transfer money account and rather just deal with how the information is being stored and processed on the money account, the actual money transfer is done through the account database.
+Why You Shouldn't use these Procs
+You shouldn't be using these procs unless you intend to change how the account database interacts with money accounts. Like mentioned previously, money accounts are only for storing data and don't actual perform the functions and power the moving parts of the economy. This is because there can be upwards of 100 money accounts in one round, in order to make this memory performative, money accounts are focused on being as efficient as possible by utilizing LAZY LISTS and facilitating good Garbage Collection practices
+Instead, if you want to perform calculations, purchases, transfers, etc with multiple money accounts, ALL of that should be done through a account database or some form of financial machinery but not the money account.
+Account Databases
+If Money accounts are just records of data, account databases are a store of multiple money data records. A datum/money_account_database
holds lists of money accounts and serves as the primary means in which interactions are carried out
+most instances of any financial/economy machinery/programs should have a reference to the main station
+database. You'll see a lot of machinery already use a var ref to the main station db, through this, most all economy actions can be performed. (Please see each procs documentation for usage). This is how you will interact with money account, through the account database.
+Referencing Money Databases
+A good way to make sure your machine can access the station money database
+var/datum/money_account_database/account_db = GLOB.station_money_database
+Additionally, if you need to access a different money database you can go through SSeconomy
+SSeconomy.money_account_databases
+Using a Money DB to find an account
+The only way to find personal money accounts in a money DB is with the account associated account number
+you can use find_user_account()
for this.
+/datum/money_account_database/proc/find_user_account(account_number, include_departments = FALSE)
+for this proc specifically, you can specify to include departments in the search
+For the main station type account db, you can also find departments, you can either get all the departments in one list an iterate through it yourself, or just provide the name of the department
+/datum/money_account_database/main_station/proc/get_all_department_accounts()
+/datum/money_account_database/main_station/proc/get_account_by_department(department)
+Moving Money In and Out of Money Accounts
+You can charge a money account, when doing this through the account_db, you need to provide information about the purchase so that if the charge goes through, proper transaction logs can be created
+/datum/money_account_database/proc/charge_account
+You can add credits to a money account with the credit account proc, works similairly to charge account
+/datum/money_account_database/proc/credit_account
+Create a money transfer request datum on specified money account, notifies the money account to start storing this data
+/datum/money_account_database/proc/create_transfer_request
+Resolves a money transfer request, deletes transfer request and charges/credits involved accounts
+/datum/money_account_database/proc/resolve_transfer_request
+Money Account Security through the DB
+Check user permission to access a money account based on given parameters
+/datum/money_account_database/proc/try_authenticate_login
+Create a transaction log on a money account (and DB in some cases), basically a constructor
+/datum/money_account_database/proc/log_account_action
+for example, in order to interact with money account A you will need to go through your account database
+account_db.credit_account(A, 50, "Account Credit", ...)
+as opposed to doing it the wrong way which doesn't create a transaction log or check to see if the DB is online
+A.deposit_credits(50)
+As with the previousl example, you may notice that a lot of these procs exist on the money account level. Those are internal procs that exist for the account database to use. The reason for this is to ensure proper logging for players and admins, handle interactions where two money accounts are involved, and to prevent runtimes that may occur from value mismatches. Many procs such as a charge_account()
and resolve_transfer_request()
also ensure perfect transfer of credits, this is important (And explained in the next section)
+Perfect Credit Transfer
+The power of an in-game economy exists because of how much control we have over it. Every credit spent needs to go somewhere, and every credit given needs to come from somewhere. One should avoid just crediting accounts on a whim or removing money for no reason. Since we don't have current implementations of supply/demand or rolling prices (increasing or decreasing), prices of items in-game are fixed. That means that the money supply is the only thing controlling how much or little of items that the crew can buy.
+Space Credits Taps (In-Flow of Space Credits into the economy)
+
+SSeconomy Payday every 30 minutes
+Job Objectives Completion
+Cargo selling crates, plasma, seeds, and research
+Round-start Money Account Balances
+Slot Machine Winnings (although this really is a space credit drain in disguise)
+Contract Completions (contractors)
+
+Space Credit Drains/Exchanges (Out-Flow of space credits out of the economy)
+
+Vending Machine Purchases
+Cargo Supply Console Purchases
+Physical Destruction of Space cash or credits stored in economy machinery
+RARE: Sol Traders
+
+Other Important Economy Machinery/Programs
+
+
+
diff --git a/code/modules/economy/economy_helpers.html b/code/modules/economy/economy_helpers.html
new file mode 100644
index 0000000000000..e40ea57ba9937
--- /dev/null
+++ b/code/modules/economy/economy_helpers.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/economy/economy_helpers.dm - Space Station 13
+
+
+
+
+code/modules/economy/economy_helpers.dm
+
+
+
+
+
+
+
diff --git a/code/modules/economy/economy_machinery/economy_machinery.html b/code/modules/economy/economy_machinery/economy_machinery.html
new file mode 100644
index 0000000000000..61f20075f93a9
--- /dev/null
+++ b/code/modules/economy/economy_machinery/economy_machinery.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/economy/economy_machinery/economy_machinery.dm - Space Station 13
+
+
+
+
+code/modules/economy/economy_machinery/economy_machinery.dm
+
+
+
+
+ /obj/machinery/economy Base machine type for machinery that needs to interact with users spending Space Cash or credit from Money Accounts
+has helper procs to automate account authentification and handling transactions.
+
+
+
diff --git a/code/modules/emoji/emoji_parse.html b/code/modules/emoji/emoji_parse.html
new file mode 100644
index 0000000000000..8b609337c6717
--- /dev/null
+++ b/code/modules/emoji/emoji_parse.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/emoji/emoji_parse.dm - Space Station 13
+
+
+
+
+code/modules/emoji/emoji_parse.dm
+
+
+
+
+ /proc/emoji_parse
+ Turns :ai: into an emoji in text.
+
+
+
diff --git a/code/modules/events/blob/blob_mobs.html b/code/modules/events/blob/blob_mobs.html
new file mode 100644
index 0000000000000..b916780438147
--- /dev/null
+++ b/code/modules/events/blob/blob_mobs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/events/blob/blob_mobs.dm - Space Station 13
+
+
+
+
+code/modules/events/blob/blob_mobs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/events/blob/blob_structures/captured_nuke.html b/code/modules/events/blob/blob_structures/captured_nuke.html
new file mode 100644
index 0000000000000..6eee28a6a138e
--- /dev/null
+++ b/code/modules/events/blob/blob_structures/captured_nuke.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/events/blob/blob_structures/captured_nuke.dm - Space Station 13
+
+
+
+
+code/modules/events/blob/blob_structures/captured_nuke.dm
+
+
+
+
+ /obj /structure /blob /captured_nuke alternative to blob just straight up destroying nukes
+
+
+
diff --git a/code/modules/events/event.html b/code/modules/events/event.html
new file mode 100644
index 0000000000000..14d870b0207fc
--- /dev/null
+++ b/code/modules/events/event.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/events/event.dm - Space Station 13
+
+
+
+
+code/modules/events/event.dm
+
+
+
+
+ /datum/event NOTE: Times are measured in master controller ticks!
+
+
+
diff --git a/code/modules/events/spacevine.html b/code/modules/events/spacevine.html
new file mode 100644
index 0000000000000..85ce808c8fb69
--- /dev/null
+++ b/code/modules/events/spacevine.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/events/spacevine.dm - Space Station 13
+
+
+
+
+code/modules/events/spacevine.dm
+
+
+
+
+ /datum /spacevine_mutation/explosive OH SHIT IT CAN CHAINREACT RUN!!!
+ /datum /spacevine_mutation/aggressive_spread very OP, but im out of other ideas currently
+
+
+
diff --git a/code/modules/events/tear.html b/code/modules/events/tear.html
new file mode 100644
index 0000000000000..0eb6b01642933
--- /dev/null
+++ b/code/modules/events/tear.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/events/tear.dm - Space Station 13
+
+
+
+
+code/modules/events/tear.dm
+
+
+
+
+
+
+
diff --git a/code/modules/events/wizard/ghost_wizard_spells.html b/code/modules/events/wizard/ghost_wizard_spells.html
new file mode 100644
index 0000000000000..7bb585361b15e
--- /dev/null
+++ b/code/modules/events/wizard/ghost_wizard_spells.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/events/wizard/ghost_wizard_spells.dm - Space Station 13
+
+
+
+
+code/modules/events/wizard/ghost_wizard_spells.dm
+
+
+
+
+
+
+
diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.html b/code/modules/food_and_drinks/drinks/drinks/bottle.html
new file mode 100644
index 0000000000000..dbde911322be4
--- /dev/null
+++ b/code/modules/food_and_drinks/drinks/drinks/bottle.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/food_and_drinks/drinks/drinks/bottle.dm - Space Station 13
+
+
+
+
+code/modules/food_and_drinks/drinks/drinks/bottle.dm
+
+
+
+
+ /obj /item /reagent_containers/drinks/bottle Alchohol bottles! -Agouri
+ /obj /item /reagent_containers/drinks/bottle/orangejuice JUICES AND STUFF
+ /obj /item /reagent_containers/drinks/bottle/molotov MOLOTOV
+
+
+
diff --git a/code/modules/food_and_drinks/drinks/drinks_base.html b/code/modules/food_and_drinks/drinks/drinks_base.html
new file mode 100644
index 0000000000000..7da4a611eb205
--- /dev/null
+++ b/code/modules/food_and_drinks/drinks/drinks_base.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/food_and_drinks/drinks/drinks_base.dm - Space Station 13
+
+
+
+
+code/modules/food_and_drinks/drinks/drinks_base.dm
+
+
+
+
+ /obj /item /reagent_containers/drinks Drinks.
+ /obj /item /reagent_containers/drinks/trophy Drinks. END
+ /obj /item /reagent_containers/drinks/trophy/bronze_cup/toolbox_win 2023 toolbox tournament 3rd place went to paradise station.
+ /obj /item /reagent_containers/drinks/coffee Drinks
+ /obj /item /reagent_containers/drinks/shaker drinkingglass and shaker
+
+
+
diff --git a/code/modules/food_and_drinks/food/condiment.html b/code/modules/food_and_drinks/food/condiment.html
new file mode 100644
index 0000000000000..afbc04f26d520
--- /dev/null
+++ b/code/modules/food_and_drinks/food/condiment.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/food_and_drinks/food/condiment.dm - Space Station 13
+
+
+
+
+code/modules/food_and_drinks/food/condiment.dm
+
+
+
+
+ /obj /item /reagent_containers/condiment Condiments
+ /obj /item /reagent_containers/condiment/saltshaker Seperate from above since it's a small shaker rather then
+
+
+
diff --git a/code/modules/food_and_drinks/food/customizables.html b/code/modules/food_and_drinks/food/customizables.html
new file mode 100644
index 0000000000000..9d1bc72a37b60
--- /dev/null
+++ b/code/modules/food_and_drinks/food/customizables.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/food_and_drinks/food/customizables.dm - Space Station 13
+
+
+
+
+code/modules/food_and_drinks/food/customizables.dm
+
+
+
+
+
+
+
diff --git a/code/modules/food_and_drinks/food/foods/ingredients.html b/code/modules/food_and_drinks/food/foods/ingredients.html
new file mode 100644
index 0000000000000..0d8319b3956b8
--- /dev/null
+++ b/code/modules/food_and_drinks/food/foods/ingredients.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/food_and_drinks/food/foods/ingredients.dm - Space Station 13
+
+
+
+
+code/modules/food_and_drinks/food/foods/ingredients.dm
+
+
+
+
+ /obj /item /food /snacks/cookiedough cookies by Ume
+ /obj /item /food /snacks/choc_pile for reagent chocolate being spilled on turfs
+
+
+
diff --git a/code/modules/food_and_drinks/food/foods/side_dishes.html b/code/modules/food_and_drinks/food/foods/side_dishes.html
new file mode 100644
index 0000000000000..b0feae4438882
--- /dev/null
+++ b/code/modules/food_and_drinks/food/foods/side_dishes.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/food_and_drinks/food/foods/side_dishes.dm - Space Station 13
+
+
+
+
+code/modules/food_and_drinks/food/foods/side_dishes.dm
+
+
+
+
+
+
+
diff --git a/code/modules/food_and_drinks/food/snacks.html b/code/modules/food_and_drinks/food/snacks.html
new file mode 100644
index 0000000000000..58b27be9474b2
--- /dev/null
+++ b/code/modules/food_and_drinks/food/snacks.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/food_and_drinks/food/snacks.dm - Space Station 13
+
+
+
+
+code/modules/food_and_drinks/food/snacks.dm
+
+
+
+
+
+
+
diff --git a/code/modules/food_and_drinks/food_base.html b/code/modules/food_and_drinks/food_base.html
new file mode 100644
index 0000000000000..d8b600c52d5fe
--- /dev/null
+++ b/code/modules/food_and_drinks/food_base.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/food_and_drinks/food_base.dm - Space Station 13
+
+
+
+
+code/modules/food_and_drinks/food_base.dm
+
+
+
+
+
+
+
diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.html b/code/modules/food_and_drinks/kitchen_machinery/processor.html
new file mode 100644
index 0000000000000..277a204e8b5d1
--- /dev/null
+++ b/code/modules/food_and_drinks/kitchen_machinery/processor.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/food_and_drinks/kitchen_machinery/processor.dm - Space Station 13
+
+
+
+
+code/modules/food_and_drinks/kitchen_machinery/processor.dm
+
+
+
+
+
+
+
diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.html b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.html
new file mode 100644
index 0000000000000..20015dbd83e1d
--- /dev/null
+++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm - Space Station 13
+
+
+
+
+code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
+
+
+
+
+
+
+
diff --git a/code/modules/food_and_drinks/recipes/recipes_microwave.html b/code/modules/food_and_drinks/recipes/recipes_microwave.html
new file mode 100644
index 0000000000000..e4409b3460fc6
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/recipes_microwave.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/food_and_drinks/recipes/recipes_microwave.dm - Space Station 13
+
+
+
+
+code/modules/food_and_drinks/recipes/recipes_microwave.dm
+
+
+
+
+
+
+
diff --git a/code/modules/food_and_drinks/recipes/recipes_oven.html b/code/modules/food_and_drinks/recipes/recipes_oven.html
new file mode 100644
index 0000000000000..39bd7f9950ec6
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/recipes_oven.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/food_and_drinks/recipes/recipes_oven.dm - Space Station 13
+
+
+
+
+code/modules/food_and_drinks/recipes/recipes_oven.dm
+
+
+
+
+
+
+
diff --git a/code/modules/games/unum.html b/code/modules/games/unum.html
new file mode 100644
index 0000000000000..e35498d671d55
--- /dev/null
+++ b/code/modules/games/unum.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/games/unum.dm - Space Station 13
+
+
+
+
+code/modules/games/unum.dm
+
+
+
+
+
+
+
diff --git a/code/modules/hallucinations/effects/common.html b/code/modules/hallucinations/effects/common.html
new file mode 100644
index 0000000000000..063ea79620107
--- /dev/null
+++ b/code/modules/hallucinations/effects/common.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/hallucinations/effects/common.dm - Space Station 13
+
+
+
+
+code/modules/hallucinations/effects/common.dm
+
+
+
+
+
+
+
diff --git a/code/modules/hallucinations/effects/major.html b/code/modules/hallucinations/effects/major.html
new file mode 100644
index 0000000000000..1f128ea3484b1
--- /dev/null
+++ b/code/modules/hallucinations/effects/major.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/hallucinations/effects/major.dm - Space Station 13
+
+
+
+
+code/modules/hallucinations/effects/major.dm
+
+
+
+
+
+
+
diff --git a/code/modules/hallucinations/effects/minor.html b/code/modules/hallucinations/effects/minor.html
new file mode 100644
index 0000000000000..c35b931e5c5ea
--- /dev/null
+++ b/code/modules/hallucinations/effects/minor.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/hallucinations/effects/minor.dm - Space Station 13
+
+
+
+
+code/modules/hallucinations/effects/minor.dm
+
+
+
+
+
+
+
diff --git a/code/modules/hallucinations/effects/moderate.html b/code/modules/hallucinations/effects/moderate.html
new file mode 100644
index 0000000000000..dd6eab0e2bd2d
--- /dev/null
+++ b/code/modules/hallucinations/effects/moderate.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ code/modules/hallucinations/effects/moderate.dm - Space Station 13
+
+
+
+
+code/modules/hallucinations/effects/moderate.dm
+
+
+
+
+
+
+
diff --git a/code/modules/hallucinations/hallucinations.html b/code/modules/hallucinations/hallucinations.html
new file mode 100644
index 0000000000000..d7d18a0390d04
--- /dev/null
+++ b/code/modules/hallucinations/hallucinations.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/hallucinations/hallucinations.dm - Space Station 13
+
+
+
+
+code/modules/hallucinations/hallucinations.dm
+
+
+
+
+
+
+
diff --git a/code/modules/hydroponics/biogenerator.html b/code/modules/hydroponics/biogenerator.html
new file mode 100644
index 0000000000000..8a8c25cb7ae07
--- /dev/null
+++ b/code/modules/hydroponics/biogenerator.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/hydroponics/biogenerator.dm - Space Station 13
+
+
+
+
+code/modules/hydroponics/biogenerator.dm
+
+
+
+Define Details
+BASE_MAX_STORABLE_PLANTS
+
+
+
+ The base amount of plants that can be stored before taking our matter bin into account.
+
+
+
diff --git a/code/modules/hydroponics/compost_bin.html b/code/modules/hydroponics/compost_bin.html
new file mode 100644
index 0000000000000..463aa68bad7b0
--- /dev/null
+++ b/code/modules/hydroponics/compost_bin.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/hydroponics/compost_bin.dm - Space Station 13
+
+
+
+
+code/modules/hydroponics/compost_bin.dm
+
+
+
+
+
+
+
diff --git a/code/modules/hydroponics/grown/banana.html b/code/modules/hydroponics/grown/banana.html
new file mode 100644
index 0000000000000..585a88c621123
--- /dev/null
+++ b/code/modules/hydroponics/grown/banana.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/hydroponics/grown/banana.dm - Space Station 13
+
+
+
+
+code/modules/hydroponics/grown/banana.dm
+
+
+
+
+ /obj /item /grown /bananapeel/specialpeel used by /obj/item/clothing/shoes/clown_shoes/banana_shoes
+
+
+
diff --git a/code/modules/hydroponics/grown/citrus.html b/code/modules/hydroponics/grown/citrus.html
new file mode 100644
index 0000000000000..343ab16705aff
--- /dev/null
+++ b/code/modules/hydroponics/grown/citrus.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/hydroponics/grown/citrus.dm - Space Station 13
+
+
+
+
+code/modules/hydroponics/grown/citrus.dm
+
+
+
+
+ /obj /item /seeds /firelemon combustible lemon is too long so firelemon
+
+
+
diff --git a/code/modules/hydroponics/grown/flowers.html b/code/modules/hydroponics/grown/flowers.html
new file mode 100644
index 0000000000000..4c59ed374cf61
--- /dev/null
+++ b/code/modules/hydroponics/grown/flowers.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/hydroponics/grown/flowers.dm - Space Station 13
+
+
+
+
+code/modules/hydroponics/grown/flowers.dm
+
+
+
+
+
+
+
diff --git a/code/modules/hydroponics/grown/nettle.html b/code/modules/hydroponics/grown/nettle.html
new file mode 100644
index 0000000000000..249407cd9b692
--- /dev/null
+++ b/code/modules/hydroponics/grown/nettle.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/hydroponics/grown/nettle.dm - Space Station 13
+
+
+
+
+code/modules/hydroponics/grown/nettle.dm
+
+
+
+
+
+
+
diff --git a/code/modules/hydroponics/grown/towercap.html b/code/modules/hydroponics/grown/towercap.html
new file mode 100644
index 0000000000000..fd00bb1ab5507
--- /dev/null
+++ b/code/modules/hydroponics/grown/towercap.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/hydroponics/grown/towercap.dm - Space Station 13
+
+
+
+
+code/modules/hydroponics/grown/towercap.dm
+
+
+
+
+
+
+
diff --git a/code/modules/hydroponics/growninedible.html b/code/modules/hydroponics/growninedible.html
new file mode 100644
index 0000000000000..bd860e906a496
--- /dev/null
+++ b/code/modules/hydroponics/growninedible.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/hydroponics/growninedible.dm - Space Station 13
+
+
+
+
+code/modules/hydroponics/growninedible.dm
+
+
+
+
+
+
+
diff --git a/code/modules/hydroponics/hydroitemdefines.html b/code/modules/hydroponics/hydroitemdefines.html
new file mode 100644
index 0000000000000..2b3239ff6e217
--- /dev/null
+++ b/code/modules/hydroponics/hydroitemdefines.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/hydroponics/hydroitemdefines.dm - Space Station 13
+
+
+
+
+code/modules/hydroponics/hydroitemdefines.dm
+
+
+
+
+ /obj /item /reagent_containers/spray/weedspray -- Skie
+ /obj /item /reagent_containers/spray/pestspray -- Skie
+
+
+
diff --git a/code/modules/hydroponics/hydroponics_tray.html b/code/modules/hydroponics/hydroponics_tray.html
new file mode 100644
index 0000000000000..381c4f147cb40
--- /dev/null
+++ b/code/modules/hydroponics/hydroponics_tray.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/hydroponics/hydroponics_tray.dm - Space Station 13
+
+
+
+
+code/modules/hydroponics/hydroponics_tray.dm
+
+
+
+
+
+
+
diff --git a/code/modules/hydroponics/plant_genes.html b/code/modules/hydroponics/plant_genes.html
new file mode 100644
index 0000000000000..45d4d5389ca32
--- /dev/null
+++ b/code/modules/hydroponics/plant_genes.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/hydroponics/plant_genes.dm - Space Station 13
+
+
+
+
+code/modules/hydroponics/plant_genes.dm
+
+
+
+
+
+
+
diff --git a/code/modules/hydroponics/seed_extractor.html b/code/modules/hydroponics/seed_extractor.html
new file mode 100644
index 0000000000000..f2c339d5e06a2
--- /dev/null
+++ b/code/modules/hydroponics/seed_extractor.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ code/modules/hydroponics/seed_extractor.dm - Space Station 13
+
+
+
+
+code/modules/hydroponics/seed_extractor.dm
+
+
+
+
+ BASE_MAX_SEEDS Base Cap of the max amount of seeds you can store in a seed extractor
+ MAX_DISPENSE_SEEDS Max Cap of the amount of seed we let players dispense at once
+ /proc/seedify
+ Convert a grown object into seeds.
Define Details
+BASE_MAX_SEEDS
+
+
+
+ Base Cap of the max amount of seeds you can store in a seed extractor
MAX_DISPENSE_SEEDS
+
+
+
+ Max Cap of the amount of seed we let players dispense at once
+
+
+
diff --git a/code/modules/instruments/_instrument_data.html b/code/modules/instruments/_instrument_data.html
new file mode 100644
index 0000000000000..2a3657468a0d1
--- /dev/null
+++ b/code/modules/instruments/_instrument_data.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/instruments/_instrument_data.dm - Space Station 13
+
+
+
+
+code/modules/instruments/_instrument_data.dm
+
+
+
+
+ /proc/get_allowed_instrument_ids
+ Get all non admin_only instruments as a list of text ids.
+ /datum/instrument 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.
+
+
+
diff --git a/code/modules/instruments/_instrument_key.html b/code/modules/instruments/_instrument_key.html
new file mode 100644
index 0000000000000..71d7fef7c3594
--- /dev/null
+++ b/code/modules/instruments/_instrument_key.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/instruments/_instrument_key.dm - Space Station 13
+
+
+
+
+code/modules/instruments/_instrument_key.dm
+
+
+
+
+ /datum/instrument_key Instrument key datums contain everything needed to know how to play a specific
+note of an instrument.*
+
+
+
diff --git a/code/modules/instruments/objs/items/instrument_items.html b/code/modules/instruments/objs/items/instrument_items.html
new file mode 100644
index 0000000000000..3f2c247d10885
--- /dev/null
+++ b/code/modules/instruments/objs/items/instrument_items.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/instruments/objs/items/instrument_items.dm - Space Station 13
+
+
+
+
+code/modules/instruments/objs/items/instrument_items.dm
+
+
+
+
+ /obj /item /instrument /guitar/cyborg This is a special guitar for the emagged service borg that hits pretty hard and can still play music. Clonk.
+
+
+
diff --git a/code/modules/instruments/songs/_song.html b/code/modules/instruments/songs/_song.html
new file mode 100644
index 0000000000000..455dcbc82d50e
--- /dev/null
+++ b/code/modules/instruments/songs/_song.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/instruments/songs/_song.dm - Space Station 13
+
+
+
+
+code/modules/instruments/songs/_song.dm
+
+
+
+
+ /datum/song These are the actual backend behind instruments.
+They attach to an atom and provide the editor + playback functionality.
+
+
+
diff --git a/code/modules/lavaland/lavaland_theme.html b/code/modules/lavaland/lavaland_theme.html
new file mode 100644
index 0000000000000..17bb697e02073
--- /dev/null
+++ b/code/modules/lavaland/lavaland_theme.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/modules/lavaland/lavaland_theme.dm - Space Station 13
+
+
+
+
+code/modules/lavaland/lavaland_theme.dm
+
+
+
+
+ LAVALAND_MIN_CAVE_Y Approximate lower bound of the walkable land area on Lavaland, north of the southern lava border.
+ LAVALAND_MAX_CAVE_Y Approximate upper bound of the walkable land area on Lavaland, south of the Legion entrance.
Define Details
+LAVALAND_MAX_CAVE_Y
+
+
+
+ Approximate upper bound of the walkable land area on Lavaland, south of the Legion entrance.
LAVALAND_MIN_CAVE_Y
+
+
+
+ Approximate lower bound of the walkable land area on Lavaland, north of the southern lava border.
+
+
+
diff --git a/code/modules/library/book.html b/code/modules/library/book.html
new file mode 100644
index 0000000000000..51559499949f6
--- /dev/null
+++ b/code/modules/library/book.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ code/modules/library/book.dm - Space Station 13
+
+
+
+
+code/modules/library/book.dm
+
+
+
+
+ MAX_PAGES Max Writeable Content Pages per book, players really don't need more than this
+ /obj/item/book Game Object which stores pages of text usually written by players, has other editable information such as the book's
+title, author, summary, and categories. Has other values that are generated when books are acquired through the library
+computer.
Define Details
+MAX_PAGES
+
+
+
+ Max Writeable Content Pages per book, players really don't need more than this
+
+
+
diff --git a/code/modules/library/library_catalog.html b/code/modules/library/library_catalog.html
new file mode 100644
index 0000000000000..2f32a755d5e3f
--- /dev/null
+++ b/code/modules/library/library_catalog.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ code/modules/library/library_catalog.dm - Space Station 13
+
+
+
+
+code/modules/library/library_catalog.dm
+
+
+
+
+ DEFINE_CATEGORY library category datum constructor helper, used to make easier the process of defining new report/book categories
+ MAX_PLAYER_UPLOADS Maximum number of books that can be uploaded by a single ckey
Define Details
+DEFINE_CATEGORY
+
+
+
+
+ library category datum constructor helper, used to make easier the process of defining new report/book categories
MAX_PLAYER_UPLOADS
+
+
+
+ Maximum number of books that can be uploaded by a single ckey
+
+
+
diff --git a/code/modules/library/library_computer.html b/code/modules/library/library_computer.html
new file mode 100644
index 0000000000000..065e21f5fcd6a
--- /dev/null
+++ b/code/modules/library/library_computer.html
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+ code/modules/library/library_computer.dm - Space Station 13
+
+
+
+
+code/modules/library/library_computer.dm
+
+
+
+Define Details
+LIBRARY_BOOKS_PER_PAGE
+
+
+
+ Defines how many player books appear on the player book archive TGUI tab
LOGIN_FULL
+
+
+
+ Login state for our computer, this state grants full access to functions
LOGIN_PUBLIC
+
+
+
+ Login state for our computer, this state grants basic access to functions
PRINTING_COOLDOWN
+
+
+
+ Wait time before printing another book, used to prevent spam
+
+
+
diff --git a/code/modules/library/library_datums.html b/code/modules/library/library_datums.html
new file mode 100644
index 0000000000000..3960a4fbeba63
--- /dev/null
+++ b/code/modules/library/library_datums.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/library/library_datums.dm - Space Station 13
+
+
+
+
+code/modules/library/library_datums.dm
+
+
+
+
+ /datum /borrowbook Datum used to keep track of who has borrowed what when and for how long.
+ /datum/cachedbook Datum used to cache the SQL DB books locally in order to achieve a performance gain.
+
+
+
diff --git a/code/modules/lighting/lighting_emissive_blocker.html b/code/modules/lighting/lighting_emissive_blocker.html
new file mode 100644
index 0000000000000..584d897f0ff93
--- /dev/null
+++ b/code/modules/lighting/lighting_emissive_blocker.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/lighting/lighting_emissive_blocker.dm - Space Station 13
+
+
+
+
+code/modules/lighting/lighting_emissive_blocker.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mapping/base_map_datum.html b/code/modules/mapping/base_map_datum.html
new file mode 100644
index 0000000000000..7f838de4cf8f3
--- /dev/null
+++ b/code/modules/mapping/base_map_datum.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mapping/base_map_datum.dm - Space Station 13
+
+
+
+
+code/modules/mapping/base_map_datum.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mapping/mapping_helpers.html b/code/modules/mapping/mapping_helpers.html
new file mode 100644
index 0000000000000..6af14ec24d065
--- /dev/null
+++ b/code/modules/mapping/mapping_helpers.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mapping/mapping_helpers.dm - Space Station 13
+
+
+
+
+code/modules/mapping/mapping_helpers.dm
+
+
+
+
+ /obj /effect/baseturf_helper Set the baseturfs of every turf in the /area/ it is placed.
+ /obj /effect/mapping_helpers/bombable_wall Apply to a wall (or floor, technically) to ensure it is instantly destroyed by any explosion, even if usually invulnerable
+
+
+
diff --git a/code/modules/mapping/merge_conflicts.html b/code/modules/mapping/merge_conflicts.html
new file mode 100644
index 0000000000000..acef153e21dd6
--- /dev/null
+++ b/code/modules/mapping/merge_conflicts.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/mapping/merge_conflicts.dm - Space Station 13
+
+
+
+
+code/modules/mapping/merge_conflicts.dm
+
+
+
+
+ /proc/announce_merge_conflict_marker
+ We REALLY do not want un-addressed merge conflicts in maps for an
+inexhaustible list of reasons. This should help ensure that this will not be
+missed in case linters fail to catch it for any reason what-so-ever.
+
+
+
diff --git a/code/modules/maptext_alerts/text_blurbs.html b/code/modules/maptext_alerts/text_blurbs.html
new file mode 100644
index 0000000000000..2738afe375ae7
--- /dev/null
+++ b/code/modules/maptext_alerts/text_blurbs.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/maptext_alerts/text_blurbs.dm - Space Station 13
+
+
+
+
+code/modules/maptext_alerts/text_blurbs.dm
+
+
+
+
+ /proc/show_blurb
+ Shows a ticker reading out the given text on a client's screen.
+
+
+
diff --git a/code/modules/martial_arts/krav_maga.html b/code/modules/martial_arts/krav_maga.html
new file mode 100644
index 0000000000000..b6146df1e1f67
--- /dev/null
+++ b/code/modules/martial_arts/krav_maga.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/martial_arts/krav_maga.dm - Space Station 13
+
+
+
+
+code/modules/martial_arts/krav_maga.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mining/equipment/explorer_gear.html b/code/modules/mining/equipment/explorer_gear.html
new file mode 100644
index 0000000000000..09f17648b3a1d
--- /dev/null
+++ b/code/modules/mining/equipment/explorer_gear.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mining/equipment/explorer_gear.dm - Space Station 13
+
+
+
+
+code/modules/mining/equipment/explorer_gear.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mining/equipment/kinetic_crusher.html b/code/modules/mining/equipment/kinetic_crusher.html
new file mode 100644
index 0000000000000..f34e339b91195
--- /dev/null
+++ b/code/modules/mining/equipment/kinetic_crusher.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mining/equipment/kinetic_crusher.dm - Space Station 13
+
+
+
+
+code/modules/mining/equipment/kinetic_crusher.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mining/equipment/lazarus_injector.html b/code/modules/mining/equipment/lazarus_injector.html
new file mode 100644
index 0000000000000..c30fd1d91ba8c
--- /dev/null
+++ b/code/modules/mining/equipment/lazarus_injector.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mining/equipment/lazarus_injector.dm - Space Station 13
+
+
+
+
+code/modules/mining/equipment/lazarus_injector.dm
+
+
+
+
+ /obj /item /lazarus_injector Lazarus Injector
+ /obj /item /mobcapsule Mob Capsule
+
+
+
diff --git a/code/modules/mining/equipment/marker_beacons.html b/code/modules/mining/equipment/marker_beacons.html
new file mode 100644
index 0000000000000..ecfa51c0ba2a9
--- /dev/null
+++ b/code/modules/mining/equipment/marker_beacons.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mining/equipment/marker_beacons.dm - Space Station 13
+
+
+
+
+code/modules/mining/equipment/marker_beacons.dm
+
+
+
+
+ /obj /item /stack /marker_beacon/ten miners start with 10 of these
+ /obj /item /stack /marker_beacon/thirty and they're bought in stacks of 1, 10, or 30
+
+
+
diff --git a/code/modules/mining/equipment/mineral_scanner.html b/code/modules/mining/equipment/mineral_scanner.html
new file mode 100644
index 0000000000000..c952b71cac3ba
--- /dev/null
+++ b/code/modules/mining/equipment/mineral_scanner.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mining/equipment/mineral_scanner.dm - Space Station 13
+
+
+
+
+code/modules/mining/equipment/mineral_scanner.dm
+
+
+
+
+ /obj /item /mining_scanner Mining Scanner
+
+
+
diff --git a/code/modules/mining/equipment/mining_tools.html b/code/modules/mining/equipment/mining_tools.html
new file mode 100644
index 0000000000000..7146709089014
--- /dev/null
+++ b/code/modules/mining/equipment/mining_tools.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mining/equipment/mining_tools.dm - Space Station 13
+
+
+
+
+code/modules/mining/equipment/mining_tools.dm
+
+
+
+
+ /obj /item /pickaxe Pickaxes & Drills & Shovels
+ /obj /item /pickaxe/drill/cyborg/diamond This is the BORG version!
+
+
+
diff --git a/code/modules/mining/equipment/regenerative_core.html b/code/modules/mining/equipment/regenerative_core.html
new file mode 100644
index 0000000000000..8563746a9d5d4
--- /dev/null
+++ b/code/modules/mining/equipment/regenerative_core.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/mining/equipment/regenerative_core.dm - Space Station 13
+
+
+
+
+code/modules/mining/equipment/regenerative_core.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mining/equipment/resonator.html b/code/modules/mining/equipment/resonator.html
new file mode 100644
index 0000000000000..e5adcffb82cdc
--- /dev/null
+++ b/code/modules/mining/equipment/resonator.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mining/equipment/resonator.dm - Space Station 13
+
+
+
+
+code/modules/mining/equipment/resonator.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mining/equipment/vendor_items.html b/code/modules/mining/equipment/vendor_items.html
new file mode 100644
index 0000000000000..543e1801c9483
--- /dev/null
+++ b/code/modules/mining/equipment/vendor_items.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mining/equipment/vendor_items.dm - Space Station 13
+
+
+
+
+code/modules/mining/equipment/vendor_items.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mining/equipment/wormhole_jaunter.html b/code/modules/mining/equipment/wormhole_jaunter.html
new file mode 100644
index 0000000000000..b2b74a3bbf173
--- /dev/null
+++ b/code/modules/mining/equipment/wormhole_jaunter.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mining/equipment/wormhole_jaunter.dm - Space Station 13
+
+
+
+
+code/modules/mining/equipment/wormhole_jaunter.dm
+
+
+
+
+ /obj /item /wormhole_jaunter Jaunter
+ /obj /effect/temp_visual/getaway_flare Because the original contractor flare is not a temp visual, for some reason.
+
+
+
diff --git a/code/modules/mining/laborcamp/laborshuttle.html b/code/modules/mining/laborcamp/laborshuttle.html
new file mode 100644
index 0000000000000..1008515d0359a
--- /dev/null
+++ b/code/modules/mining/laborcamp/laborshuttle.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mining/laborcamp/laborshuttle.dm - Space Station 13
+
+
+
+
+code/modules/mining/laborcamp/laborshuttle.dm
+
+
+
+
+ /obj /machinery /mineral/labor_prisoner_shuttle_console Prisoners' Console
+ /obj /machinery /mineral/labor_points_checker Point Lookup Console
+
+
+
diff --git a/code/modules/mining/lavaland/ash_flora.html b/code/modules/mining/lavaland/ash_flora.html
new file mode 100644
index 0000000000000..7b1c71d19d71c
--- /dev/null
+++ b/code/modules/mining/lavaland/ash_flora.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/mining/lavaland/ash_flora.dm - Space Station 13
+
+
+
+
+code/modules/mining/lavaland/ash_flora.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mining/lavaland/loot/colossus_loot.html b/code/modules/mining/lavaland/loot/colossus_loot.html
new file mode 100644
index 0000000000000..a6a6f4ad0c923
--- /dev/null
+++ b/code/modules/mining/lavaland/loot/colossus_loot.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/mining/lavaland/loot/colossus_loot.dm - Space Station 13
+
+
+
+
+code/modules/mining/lavaland/loot/colossus_loot.dm
+
+
+
+
+ /obj /machinery /anomalous_crystal Anomolous Crystal
+ /obj /machinery /anomalous_crystal/theme_warp Warps the area you're in to look like a new one
+ /obj /machinery /anomalous_crystal/emitter Generates a projectile when interacted with
+ /obj /machinery /anomalous_crystal/dark_reprise Revives anyone nearby, but turns them into shadowpeople and renders them uncloneable, so the crystal is your only hope of getting up again if you go down.
+ /obj /machinery /anomalous_crystal/helpers Lets ghost spawn as helpful creatures that can only heal people slightly. Incredibly fragile and they can't converse with humans
+ /obj /machinery /anomalous_crystal/possessor Allows you to bodyjack small animals, then exit them at your leisure, but you can only do this once per activation. Because they blow up. Also, if the bodyjacked animal dies, SO DO YOU.
+
+
+
diff --git a/code/modules/mining/machine_processing.html b/code/modules/mining/machine_processing.html
new file mode 100644
index 0000000000000..bacbafde8dfc0
--- /dev/null
+++ b/code/modules/mining/machine_processing.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mining/machine_processing.dm - Space Station 13
+
+
+
+
+code/modules/mining/machine_processing.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mining/machine_redemption.html b/code/modules/mining/machine_redemption.html
new file mode 100644
index 0000000000000..67209ff42581f
--- /dev/null
+++ b/code/modules/mining/machine_redemption.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/mining/machine_redemption.dm - Space Station 13
+
+
+
+
+code/modules/mining/machine_redemption.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mining/machine_stacking.html b/code/modules/mining/machine_stacking.html
new file mode 100644
index 0000000000000..86fb8d223d6d2
--- /dev/null
+++ b/code/modules/mining/machine_stacking.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mining/machine_stacking.dm - Space Station 13
+
+
+
+
+code/modules/mining/machine_stacking.dm
+
+
+
+
+ /obj /machinery /mineral/stacking_unit_console Mineral stacking unit console
+ /obj /machinery /mineral/stacking_machine Mineral stacking unit
+
+
+
diff --git a/code/modules/mining/machine_unloading.html b/code/modules/mining/machine_unloading.html
new file mode 100644
index 0000000000000..3e348ed2da2cb
--- /dev/null
+++ b/code/modules/mining/machine_unloading.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mining/machine_unloading.dm - Space Station 13
+
+
+
+
+code/modules/mining/machine_unloading.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mining/machine_vending.html b/code/modules/mining/machine_vending.html
new file mode 100644
index 0000000000000..4542d4f83384e
--- /dev/null
+++ b/code/modules/mining/machine_vending.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/mining/machine_vending.dm - Space Station 13
+
+
+
+
+code/modules/mining/machine_vending.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mining/mine_items.html b/code/modules/mining/mine_items.html
new file mode 100644
index 0000000000000..292e531b8b7d6
--- /dev/null
+++ b/code/modules/mining/mine_items.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/mining/mine_items.dm - Space Station 13
+
+
+
+
+code/modules/mining/mine_items.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mining/minebot.html b/code/modules/mining/minebot.html
new file mode 100644
index 0000000000000..33df9462bf367
--- /dev/null
+++ b/code/modules/mining/minebot.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/modules/mining/minebot.dm - Space Station 13
+
+
+
+
+code/modules/mining/minebot.dm
+
+
+
+Define Details
+MINEDRONE_COLLECT
+
+
+
+ Mining drone
+
+
+
diff --git a/code/modules/mining/satchel_ore_boxdm.html b/code/modules/mining/satchel_ore_boxdm.html
new file mode 100644
index 0000000000000..d33fa4b9cabf0
--- /dev/null
+++ b/code/modules/mining/satchel_ore_boxdm.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mining/satchel_ore_boxdm.dm - Space Station 13
+
+
+
+
+code/modules/mining/satchel_ore_boxdm.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/brain/brain_emote.html b/code/modules/mob/living/brain/brain_emote.html
new file mode 100644
index 0000000000000..54c4060e24559
--- /dev/null
+++ b/code/modules/mob/living/brain/brain_emote.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/brain/brain_emote.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/brain/brain_emote.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid_emote.html b/code/modules/mob/living/carbon/alien/humanoid/humanoid_emote.html
new file mode 100644
index 0000000000000..6b63235eb045f
--- /dev/null
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid_emote.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/alien/humanoid/humanoid_emote.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/carbon/alien/humanoid/humanoid_emote.dm
+
+
+
+
+ /datum /emote /living/carbon/alien/humanoid Emotes usable by humanoid xenomorphs.
+
+
+
diff --git a/code/modules/mob/living/carbon/carbon_stripping.html b/code/modules/mob/living/carbon/carbon_stripping.html
new file mode 100644
index 0000000000000..296479704f73f
--- /dev/null
+++ b/code/modules/mob/living/carbon/carbon_stripping.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/carbon_stripping.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/carbon/carbon_stripping.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/carbon/give.html b/code/modules/mob/living/carbon/give.html
new file mode 100644
index 0000000000000..aa33d2bedf403
--- /dev/null
+++ b/code/modules/mob/living/carbon/give.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/give.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/carbon/give.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/carbon/human/body_accessories.html b/code/modules/mob/living/carbon/human/body_accessories.html
new file mode 100644
index 0000000000000..8de18fa99a5e7
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/body_accessories.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/human/body_accessories.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/carbon/human/body_accessories.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/carbon/human/human_emote.html b/code/modules/mob/living/carbon/human/human_emote.html
new file mode 100644
index 0000000000000..c13908667acf2
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/human_emote.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/human/human_emote.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/carbon/human/human_emote.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/carbon/human/physiology.html b/code/modules/mob/living/carbon/human/physiology.html
new file mode 100644
index 0000000000000..a01879b4f8b1d
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/physiology.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/human/physiology.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/carbon/human/physiology.dm
+
+
+
+
+ /datum/physiology Datum that stores several modifiers in a way that isn't cleared by changing species
+
+
+
diff --git a/code/modules/mob/living/carbon/human/species/_species.html b/code/modules/mob/living/carbon/human/species/_species.html
new file mode 100644
index 0000000000000..d9beca9de26e7
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/species/_species.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/human/species/_species.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/carbon/human/species/_species.dm
+
+
+
+
+ /proc/get_safe_species
+ Returns a list of names of non-blacklisted or hazardous species.
+
+
+
diff --git a/code/modules/mob/living/carbon/human/species/diona_species.html b/code/modules/mob/living/carbon/human/species/diona_species.html
new file mode 100644
index 0000000000000..93fae7e5884c2
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/species/diona_species.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/human/species/diona_species.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/carbon/human/species/diona_species.dm
+
+
+
+
+ /datum /species /diona/pod Same name and everything; we want the same limitations on them; we just want their regeneration to kick in at all times and them to have special factions
+
+
+
diff --git a/code/modules/mob/living/carbon/human/species/skeleton_species.html b/code/modules/mob/living/carbon/human/species/skeleton_species.html
new file mode 100644
index 0000000000000..45b0b2b59c259
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/species/skeleton_species.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/human/species/skeleton_species.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/carbon/human/species/skeleton_species.dm
+
+
+
+
+ /datum/species/skeleton The OG skellybones, quite OP. As of this comment, only available through ash-drake loot (2023-03-07)
+ /datum /species /skeleton /lich Wizard subtype, subtype to allow balancing separately from other skellies
+ /datum /species /skeleton /brittle The most common (and weakest) type, legion corpses and skeleton map spawners are these
+
+
+
diff --git a/code/modules/mob/living/carbon/superheroes.html b/code/modules/mob/living/carbon/superheroes.html
new file mode 100644
index 0000000000000..64a6fe0262e4b
--- /dev/null
+++ b/code/modules/mob/living/carbon/superheroes.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/superheroes.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/carbon/superheroes.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/silicon/ai/freelook.html b/code/modules/mob/living/silicon/ai/freelook.html
new file mode 100644
index 0000000000000..3bcb7bff30635
--- /dev/null
+++ b/code/modules/mob/living/silicon/ai/freelook.html
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+ code/modules/mob/living/silicon/ai/freelook/README.md - Space Station 13
+
+
+
+
+AI Freelook code/modules/mob/living/silicon/ai/freelook/README.md
+
+
+
+
+ Credits
+Initial code credit for this goes to Uristqwerty.
+Debugging, functionality, all comments and porting by Giacom.
+What is this?
+This is a replacement for the current camera movement system, of the AI. Before
+this, the AI had to move between cameras and could only see what the cameras
+could see. Not only this but the cameras could see through walls, which created
+problems. With this, the AI controls an "AI Eye" mob, which moves just like a
+ghost; such as moving through walls and being invisible to players. The AI's eye
+is set to this mob and then we use a system (explained below) to determine what
+the cameras around the AI Eye can and cannot see. If the camera cannot see a
+turf, it will black it out, otherwise it won't and the AI will be able to see
+it. This creates several features, such as.. no more see-through-wall cameras,
+easier to control camera movement, easier tracking, the AI only being able to
+track mobs which are visible to a camera, only trackable mobs appearing on the
+mob list and many more.
+How it Works
+It works by first creating a camera network datum. Inside of this camera network
+are "chunks" (which will be explained later) and "cameras". The cameras list is
+kept up to date by obj/machinery/camera/New() and Destroy().
+Next the camera network has chunks. These chunks are a 16x16 tile block of turfs
+and cameras contained inside the chunk. These turfs are then sorted out based on
+what the cameras can and cannot see. If none of the cameras can see the turf,
+inside the 16x16 block, it is listed as an "obscured" turf. Meaning the AI won't
+be able to see it.
+How it Updates
+The camera network uses a streaming method in order to effeciently update
+chunks. Since the server will have doors opening, doors closing, turf being
+destroyed and other lag inducing stuff, we want to update it under certain
+conditions and not every tick.
+The chunks are not created straight away, only when an AI eye moves into it's
+area is when it gets created. One a chunk is created, when a non glass door
+opens/closes or an opacity turf is destroyed, we check to see if an AI Eye is
+looking in the area. We do this with the "seenby" list, which updates everytime
+an AI is near a chunk. If there is an AI eye inside the area, we update the
+chunk that the changed atom is inside and all surrounding chunks, since a
+camera's vision could leak onto another chunk. If there is no AI Eye, we instead
+flag the chunk to update whenever it is loaded by an AI Eye. This is basically
+how the chunks update and keep it in sync. We then add some lag reducing
+measures, such as an UPDATE_BUFFER which stops a chunk from updating too many
+times in a certain time-frame, only updating if the changed atom was blocking
+sight; for example, we don't update glass airlocks or floors.
+Where is Everything?
+
+cameranet.dm
: Everything about the cameranet datum.
+chunk.dm
: Everything about the chunk datum.
+eye.dm
: Everything about the AI and the AIEye.
+updating.dm
: Everything about triggers that will update chunks.
+
+
+
+
diff --git a/code/modules/mob/living/silicon/pai/software/pai_software_base.html b/code/modules/mob/living/silicon/pai/software/pai_software_base.html
new file mode 100644
index 0000000000000..f877c7dcba8cf
--- /dev/null
+++ b/code/modules/mob/living/silicon/pai/software/pai_software_base.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/silicon/pai/software/pai_software_base.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/silicon/pai/software/pai_software_base.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.html b/code/modules/mob/living/silicon/robot/robot_modules.html
new file mode 100644
index 0000000000000..7a3d13fc8ba63
--- /dev/null
+++ b/code/modules/mob/living/silicon/robot/robot_modules.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/mob/living/silicon/robot/robot_modules.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/silicon/robot/robot_modules.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/silicon/silicon_laws.html b/code/modules/mob/living/silicon/silicon_laws.html
new file mode 100644
index 0000000000000..eb10129d9e8f4
--- /dev/null
+++ b/code/modules/mob/living/silicon/silicon_laws.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mob/living/silicon/silicon_laws.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/silicon/silicon_laws.dm
+
+
+
+
+ /proc/pick_unique_lawset
+ returns a random non starting / kill crew lawset if the station has a unique ai lawset
+
+
+
diff --git a/code/modules/mob/living/simple_animal/bot/griefsky.html b/code/modules/mob/living/simple_animal/bot/griefsky.html
new file mode 100644
index 0000000000000..b6175b8b0d18f
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/bot/griefsky.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mob/living/simple_animal/bot/griefsky.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/simple_animal/bot/griefsky.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/simple_animal/constructs.html b/code/modules/mob/living/simple_animal/constructs.html
new file mode 100644
index 0000000000000..864583b3da3d1
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/constructs.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/modules/mob/living/simple_animal/constructs.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/simple_animal/constructs.dm
+
+
+
+
+ /mob/living/simple_animal/hostile/construct/armoured Juggernaut
+ /mob /living /simple_animal /hostile /construct /armoured /hostile actually hostile, will move around, hit things
+ /mob /living /simple_animal /hostile /construct /wraith Wraith
+ /mob /living /simple_animal /hostile /construct /wraith/hostile actually hostile, will move around, hit things
+ /mob /living /simple_animal /hostile /construct /wraith/hostile/bubblegum Used in bubblegum summoning. Needs MOB_SIZE_LARGE so crushers don't suffer
+ /mob /living /simple_animal /hostile /construct /builder Artificer
+ /mob /living /simple_animal /hostile /construct /builder/hostile actually hostile, will move around, hit things, heal other constructs
+ /mob /living /simple_animal /hostile /construct /behemoth Behemoth
+ /mob /living /simple_animal /hostile /construct /behemoth/hostile actually hostile, will move around, hit things
+ /mob /living /simple_animal /hostile /construct /harvester Harvester
+ /mob /living /simple_animal /hostile /construct /harvester/hostile actually hostile, will move around, hit things
+
+
+
diff --git a/code/modules/mob/living/simple_animal/friendly/dog.html b/code/modules/mob/living/simple_animal/friendly/dog.html
new file mode 100644
index 0000000000000..c422d446f9179
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/friendly/dog.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mob/living/simple_animal/friendly/dog.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/simple_animal/friendly/dog.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/simple_animal/hostile/illusion.html b/code/modules/mob/living/simple_animal/hostile/illusion.html
new file mode 100644
index 0000000000000..c0ed71e548de6
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/illusion.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mob/living/simple_animal/hostile/illusion.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/simple_animal/hostile/illusion.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.html b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.html
new file mode 100644
index 0000000000000..428723388f0f7
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm
+
+
+
+
+ /obj /item /projectile /energy/tesla_bolt Leaving here for adminbus / so vetus still uses it.
+ /obj /effect/temp_visual/dragon_swoop/bubblegum/ancient_robot this is the worst path I have ever made
+
+
+
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.html b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.html
new file mode 100644
index 0000000000000..d2a4ecaa01204
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm
+
+
+
+
+ /obj /item /melee/energy/cleaving_saw/miner nerfed saw because it is very murdery
+
+
+
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.html b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.html
new file mode 100644
index 0000000000000..e0d66952efc0c
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
+
+
+
+
+ /obj /effect/temp_visual/hierophant/wall smoothing and pooling were not friends, but pooling is dead.
+ /obj /effect/temp_visual/hierophant/chaser a hierophant's chaser. follows target around, moving and producing a blast every speed deciseconds.
+
+
+
diff --git a/code/modules/mob/living/simple_animal/hostile/mining/elites/goliath_broodmother.html b/code/modules/mob/living/simple_animal/hostile/mining/elites/goliath_broodmother.html
new file mode 100644
index 0000000000000..8692fae06b298
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/mining/elites/goliath_broodmother.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/mob/living/simple_animal/hostile/mining/elites/goliath_broodmother.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/simple_animal/hostile/mining/elites/goliath_broodmother.dm
+
+
+
+
+ /mob/living/simple_animal/hostile/asteroid/elite/broodmother A stronger, faster variation of the goliath. Has the ability to spawn baby goliaths, which it can later detonate at will.
+When it's health is below half, tendrils will spawn randomly around it. When it is below a quarter of health, this effect is doubled.
+It's attacks are as follows:
+
+
+
diff --git a/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.html b/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.html
new file mode 100644
index 0000000000000..88935be56f253
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm
+
+
+
+
+ /mob/living/simple_animal/hostile/asteroid/elite/herald A slow-moving projectile user with a few tricks up it's sleeve. Less unga-bunga than Colossus, with more cleverness in it's fighting style.
+As it's health gets lower, the amount of projectiles fired per-attack increases.
+It's attacks are as follows:
+
+
+
diff --git a/code/modules/mob/living/simple_animal/hostile/mining/elites/legionnaire.html b/code/modules/mob/living/simple_animal/hostile/mining/elites/legionnaire.html
new file mode 100644
index 0000000000000..c678f91b6cf6a
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/mining/elites/legionnaire.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/mob/living/simple_animal/hostile/mining/elites/legionnaire.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/simple_animal/hostile/mining/elites/legionnaire.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/simple_animal/hostile/mining/elites/pandora.html b/code/modules/mob/living/simple_animal/hostile/mining/elites/pandora.html
new file mode 100644
index 0000000000000..5f0be07894236
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/mining/elites/pandora.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/mob/living/simple_animal/hostile/mining/elites/pandora.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/simple_animal/hostile/mining/elites/pandora.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate_mobs.html b/code/modules/mob/living/simple_animal/hostile/syndicate_mobs.html
new file mode 100644
index 0000000000000..26a7e6cb752ce
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/syndicate_mobs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/simple_animal/hostile/syndicate_mobs.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/simple_animal/hostile/syndicate_mobs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.html b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.html
new file mode 100644
index 0000000000000..beabe6ee0ab22
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm
+
+
+
+
+ /obj /structure /alien/resin/flower_bud_enemy inheriting basic attack/damage stuff from alien structures
+
+
+
diff --git a/code/modules/mob/living/simple_animal/hostile/winter_mobs.html b/code/modules/mob/living/simple_animal/hostile/winter_mobs.html
new file mode 100644
index 0000000000000..03c7a9f17027a
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/winter_mobs.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/mob/living/simple_animal/hostile/winter_mobs.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/simple_animal/hostile/winter_mobs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/simple_animal/slime/slime_emote.html b/code/modules/mob/living/simple_animal/slime/slime_emote.html
new file mode 100644
index 0000000000000..b8207d5d35b7b
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/slime/slime_emote.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/mob/living/simple_animal/slime/slime_emote.dm - Space Station 13
+
+
+
+
+code/modules/mob/living/simple_animal/slime/slime_emote.dm
+
+
+
+
+ MOOD_RESET Sentinel value; passing this as mood sets mood to null.
Define Details
+MOOD_RESET
+
+
+
+ Sentinel value; passing this as mood sets mood to null.
+
+
+
diff --git a/code/modules/mob/mob_misc_procs.html b/code/modules/mob/mob_misc_procs.html
new file mode 100644
index 0000000000000..46a8b4131a889
--- /dev/null
+++ b/code/modules/mob/mob_misc_procs.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mob/mob_misc_procs.dm - Space Station 13
+
+
+
+
+code/modules/mob/mob_misc_procs.dm
+
+
+
+
+ /proc/shake_camera
+ Shake the camera of the person viewing the mob SO REAL!
+
+
+
diff --git a/code/modules/mob/new_player/sprite_accessories/human/human_body_markings.html b/code/modules/mob/new_player/sprite_accessories/human/human_body_markings.html
new file mode 100644
index 0000000000000..e2176a2932309
--- /dev/null
+++ b/code/modules/mob/new_player/sprite_accessories/human/human_body_markings.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mob/new_player/sprite_accessories/human/human_body_markings.dm - Space Station 13
+
+
+
+
+code/modules/mob/new_player/sprite_accessories/human/human_body_markings.dm
+
+
+
+
+ /datum /sprite_accessory/body_markings/tattoo Tattoos applied post-round startup with tattoo guns in item_defines.dm
+ /datum /sprite_accessory/body_markings/tattoo/tiger_body Yep, this is repeated. To be fixed later
+
+
+
diff --git a/code/modules/mob/new_player/sprite_accessories/human/human_facial_hair.html b/code/modules/mob/new_player/sprite_accessories/human/human_facial_hair.html
new file mode 100644
index 0000000000000..b50792368b83d
--- /dev/null
+++ b/code/modules/mob/new_player/sprite_accessories/human/human_facial_hair.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/new_player/sprite_accessories/human/human_facial_hair.dm - Space Station 13
+
+
+
+
+code/modules/mob/new_player/sprite_accessories/human/human_facial_hair.dm
+
+
+
+
+ /datum /sprite_accessory/facial_hair/britstache START VG HAIRSTYLES
+
+
+
diff --git a/code/modules/mob/new_player/sprite_accessories/human/human_hair.html b/code/modules/mob/new_player/sprite_accessories/human/human_hair.html
new file mode 100644
index 0000000000000..f710e780810a8
--- /dev/null
+++ b/code/modules/mob/new_player/sprite_accessories/human/human_hair.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/modules/mob/new_player/sprite_accessories/human/human_hair.dm - Space Station 13
+
+
+
+
+code/modules/mob/new_player/sprite_accessories/human/human_hair.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/new_player/sprite_accessories/shared/shared_tail_markings.html b/code/modules/mob/new_player/sprite_accessories/shared/shared_tail_markings.html
new file mode 100644
index 0000000000000..30e22d2a38cd8
--- /dev/null
+++ b/code/modules/mob/new_player/sprite_accessories/shared/shared_tail_markings.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/new_player/sprite_accessories/shared/shared_tail_markings.dm - Space Station 13
+
+
+
+
+code/modules/mob/new_player/sprite_accessories/shared/shared_tail_markings.dm
+
+
+
+
+ /datum /sprite_accessory/body_markings/tail/shared/short_tip Species-ambiguous, generic short tail.
+
+
+
diff --git a/code/modules/mob/new_player/sprite_accessories/skrell/skrell_face.html b/code/modules/mob/new_player/sprite_accessories/skrell/skrell_face.html
new file mode 100644
index 0000000000000..779a97deec32b
--- /dev/null
+++ b/code/modules/mob/new_player/sprite_accessories/skrell/skrell_face.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/new_player/sprite_accessories/skrell/skrell_face.dm - Space Station 13
+
+
+
+
+code/modules/mob/new_player/sprite_accessories/skrell/skrell_face.dm
+
+
+
+
+ /datum /sprite_accessory/hair/fluff/zeke_fluff_tentacle Zeke Fluff hair
+
+
+
diff --git a/code/modules/mob/new_player/sprite_accessories/tajaran/tajaran_head_markings.html b/code/modules/mob/new_player/sprite_accessories/tajaran/tajaran_head_markings.html
new file mode 100644
index 0000000000000..2ef2f9211c922
--- /dev/null
+++ b/code/modules/mob/new_player/sprite_accessories/tajaran/tajaran_head_markings.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/mob/new_player/sprite_accessories/tajaran/tajaran_head_markings.dm - Space Station 13
+
+
+
+
+code/modules/mob/new_player/sprite_accessories/tajaran/tajaran_head_markings.dm
+
+
+
+
+ /datum /sprite_accessory/body_markings/head/tajara/muzzle_alt_taj Companion marking for Tajaran Belly 2.
+ /datum /sprite_accessory/body_markings/head/tajara/points_taj Companion marking for Tajaran Points.
+ /datum /sprite_accessory/body_markings/head/tajara/patchy_taj Companion marking for Tajaran Patches.
+
+
+
diff --git a/code/modules/mob/new_player/sprite_accessories/tajaran/tajaran_tail_markings.html b/code/modules/mob/new_player/sprite_accessories/tajaran/tajaran_tail_markings.html
new file mode 100644
index 0000000000000..17e3c81dc4836
--- /dev/null
+++ b/code/modules/mob/new_player/sprite_accessories/tajaran/tajaran_tail_markings.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/new_player/sprite_accessories/tajaran/tajaran_tail_markings.dm - Space Station 13
+
+
+
+
+code/modules/mob/new_player/sprite_accessories/tajaran/tajaran_tail_markings.dm
+
+
+
+
+ /datum /sprite_accessory/body_markings/tail/tajara/taj_wingler_stripes Tiger stripes.
+
+
+
diff --git a/code/modules/mob/new_player/sprite_accessories/unathi/unathi_head_markings.html b/code/modules/mob/new_player/sprite_accessories/unathi/unathi_head_markings.html
new file mode 100644
index 0000000000000..55adfc1ba4683
--- /dev/null
+++ b/code/modules/mob/new_player/sprite_accessories/unathi/unathi_head_markings.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/mob/new_player/sprite_accessories/unathi/unathi_head_markings.dm - Space Station 13
+
+
+
+
+code/modules/mob/new_player/sprite_accessories/unathi/unathi_head_markings.dm
+
+
+
+
+ /datum /sprite_accessory/body_markings/head/unathi/banded_una Companion marking for Unathi Banded.
+ /datum /sprite_accessory/body_markings/head/unathi/snout_narrow_una Companion marking for Unathi Narrow Belly.
+ /datum /sprite_accessory/body_markings/head/unathi/points_una Companion marking for Unathi Points.
+ /datum /sprite_accessory/body_markings/head/unathi/sharp/snout_narrow_una_sharp Companion marking for Unathi Narrow Belly.
+
+
+
diff --git a/code/modules/mob/new_player/sprite_accessories/vulpkanin/vulpkanin_head_markings.html b/code/modules/mob/new_player/sprite_accessories/vulpkanin/vulpkanin_head_markings.html
new file mode 100644
index 0000000000000..e193c1c73cdfd
--- /dev/null
+++ b/code/modules/mob/new_player/sprite_accessories/vulpkanin/vulpkanin_head_markings.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/mob/new_player/sprite_accessories/vulpkanin/vulpkanin_head_markings.dm - Space Station 13
+
+
+
+
+code/modules/mob/new_player/sprite_accessories/vulpkanin/vulpkanin_head_markings.dm
+
+
+
+
+ /datum /sprite_accessory/body_markings/head/vulpkanin/muzzle_vulp Companion marking for Vulpkanin Belly Alt..
+ /datum /sprite_accessory/body_markings/head/vulpkanin/muzzle_ears_vulp Companion marking for Vulpkanin Belly Alt..
+ /datum /sprite_accessory/body_markings/head/vulpkanin/points_fade_vulp Companion marking for Vulpkanin Points Fade.
+ /datum /sprite_accessory/body_markings/head/vulpkanin/points_sharp_vulp Companion marking for Vulpkanin Points Sharp.
+
+
+
diff --git a/code/modules/mod/adding_new_mod.html b/code/modules/mod/adding_new_mod.html
new file mode 100644
index 0000000000000..6a31912ef9013
--- /dev/null
+++ b/code/modules/mod/adding_new_mod.html
@@ -0,0 +1,299 @@
+
+
+
+
+
+
+ code/modules/mod/adding_new_mod.md - Space Station 13
+
+
+
+
+code/modules/mod/adding_new_mod.md
+
+
+
+
+ Introduction
+This is a step by step guide for creating a MODsuit theme, skin and module.
+Theme
+This is pretty simple, we go here and add a new definition, let's go with a Psychologist theme as an example.
+Their names should be like model names or use similar adjectives, like "magnate" or simply "engineering", so we'll go with "psychological".
+After that, it's good to decide what company is manufacturing the suit, and a basic description of what it offers, we'll write that down in the desc.
+So, let's our suit should be a low-power usage with lowered module capacity. We'd go with something like this.
+/datum/mod_theme/psychological
+ name = "psychological"
+ desc = "A DeForest Medical Corporation power-saving psychological suit, limiting its' module capacity."
+
+For people that want to see additional stuff, we add an extended description with some more insight into what the suit does. We also set the default skin to usually the theme name, like so.
+/datum/mod_theme/psychological
+ name = "psychological"
+ desc = "A DeForest Medical Corporation power-saving psychological suit, limiting its' module capacity."
+ extended_desc = "DeForest Medical Corporation's prototype suit, based off the work of \
+ Nakamura Engineering. The suit has been modified to save power compared to regular suits, \
+ for operating at lower power levels, keeping people sane. As consequence, the capacity \
+ of the suit has decreased, not being able to fit many modules at all."
+ default_skin = "psychological"
+
+Next we want to set the statistics, you can view them all in the theme file, so let's just grab our relevant ones, armor, charge and capacity and set them to what we establilished.
+Currently crew MODsuits should be lightly armored in combat relevant stats.
+/datum/mod_theme/psychological
+ name = "psychological"
+ desc = "A DeForest Medical Corporation power-saving psychological suit, limiting its' module capacity."
+ extended_desc = "DeForest Medical Corporation's prototype suit, based off the work of \
+ Nakamura Engineering. The suit has been modified to save power compared to regular suits, \
+ for operating at lower power levels, keeping people sane. As consequence, the capacity \
+ of the suit has decreased, not being able to fit many modules at all."
+ default_skin = "psychological"
+ armor_type = /datum/armor/modtheme_psychological
+ complexity_max = DEFAULT_MAX_COMPLEXITY - 7
+ charge_drain = DEFAULT_CHARGE_DRAIN * 0.5
+
+Now we have a basic theme, it lacks a skin which will be covered in the next section, and an item, which we will add right now.
+Let's go into here . It's as simple as adding a new suit type with the appropriate modules you want.
+/obj/item/mod/control/pre_equipped/psychological
+ theme = /datum/mod_theme/psychological
+ initial_modules = list(
+ /obj/item/mod/module/storage,
+ /obj/item/mod/module/flashlight,
+ )
+
+This will create our psychological suit, equipped with a storage and flashlight modules by default. We might also want to make it craftable, in which case we go here and set this.
+/obj/item/mod/construction/armor/psychological
+ theme = /datum/mod_theme/psychological
+
+After that we put it in the techweb or whatever other source we want. Now our suit is almost ready, it just needs a skin.
+Skin
+So, now that we have our theme, we want to add a skin to it (or another theme of our choosing). Let's start with a basis.
+/datum/mod_theme/psychological
+ name = "psychological"
+ desc = "A DeForest Medical Corporation power-saving psychological suit, limiting its' module capacity."
+ extended_desc = "DeForest Medical Corporation's prototype suit, based off the work of \
+ Nakamura Engineering. The suit has been modified to save power compared to regular suits, \
+ for operating at lower power levels, keeping people sane. As consequence, the capacity \
+ of the suit has decreased, not being able to fit many modules at all."
+ default_skin = "psychological"
+ armor_type = /datum/armor/modtheme_psychological
+ complexity_max = DEFAULT_MAX_COMPLEXITY - 7
+ charge_drain = DEFAULT_CHARGE_DRAIN * 0.5
+ skins = list(
+ "psychological" = list(
+ HELMET_LAYER = null,
+ HELMET_FLAGS = list(
+ ),
+ CHESTPLATE_FLAGS = list(
+ ),
+ GAUNTLETS_FLAGS = list(
+ ),
+ BOOTS_FLAGS = list(
+ ),
+ ),
+ )
+
+We now have a psychological skin, this will apply the psychological icons to every part of the suit. Next we'll be looking at the flags. Boots, gauntlets and the chestplate are usually very standard, we set their thickmaterial and pressureproofness while hiding the jumpsuit on the chestplate. On the helmet however, we'll actually look at its' icon.
+For example, if our helmet's icon covers the full head (like the research skin), we want to do something like this.
+ HELMET_LAYER = null,
+ HELMET_FLAGS = list(
+ UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE|BLOCK_GAS_SMOKE_EFFECT,
+ UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
+ UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF,
+ ),
+
+Otherwise, with an open helmet that becomes closed (like the engineering skin), we'd do this.
+ HELMET_LAYER = NECK_LAYER,
+ HELMET_FLAGS = list(
+ UNSEALED_CLOTHING = SNUG_FIT,
+ SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+ UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
+ SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
+ SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF,
+ ),
+
+There are specific cases of helmets that semi-cover the head, like the cosmohonk, apocryphal and whatnot. You can look at these for more specific suits. So let's say our suit is an open helmet design, and also add an alternate skin with a closed helmet called psychotherapeutic. It'd look something like this.
+/datum/mod_theme/psychological
+ name = "psychological"
+ desc = "A DeForest Medical Corporation power-saving psychological suit, limiting its' module capacity."
+ extended_desc = "DeForest Medical Corporation's prototype suit, based off the work of \
+ Nakamura Engineering. The suit has been modified to save power compared to regular suits, \
+ for operating at lower power levels, keeping people sane. As consequence, the capacity \
+ of the suit has decreased, not being able to fit many modules at all."
+ default_skin = "psychological"
+ armor_type = /datum/armor/modtheme_psychological
+ complexity_max = DEFAULT_MAX_COMPLEXITY - 7
+ charge_drain = DEFAULT_CHARGE_DRAIN * 0.5
+ skins = list(
+ "psychological" = list(
+ HELMET_LAYER = NECK_LAYER,
+ HELMET_FLAGS = list(
+ UNSEALED_CLOTHING = SNUG_FIT,
+ SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+ UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
+ SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
+ SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF,
+ ),
+ CHESTPLATE_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_INVISIBILITY = HIDEJUMPSUIT,
+ ),
+ GAUNTLETS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ ),
+ BOOTS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ ),
+ "psychotherapeutic" = list(
+ HELMET_LAYER = null,
+ HELMET_FLAGS = list(
+ UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
+ UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF,
+ ),
+ CHESTPLATE_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_INVISIBILITY = HIDEJUMPSUIT,
+ ),
+ GAUNTLETS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ ),
+ BOOTS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ ),
+ ),
+ )
+
+Thus we finished our codeside. Now we go to the icon files for the suits and simply add our new skin's icons.
+Now our suit is finished. But let's say we want to give it an unique module.
+Module
+So, for our psychological suit, let's say we want a module that heals the brain damage of everyone in range.
+As it's a medical module, we'll put it here . Let's start with the object definition.
+/obj/item/mod/module/neuron_healer
+ name = "MOD neuron healer module"
+ desc = "A module made experimentally by DeForest Medical Corporation. On demand it releases waves \
+ that heal neuron damage of everyone nearby, getting their brains to a better state."
+ icon_state = "neuron_healer"
+
+As we want this effect to be on demand, we probably want this to be an usable module. There are four types of modules:
+
+Passive: These have a passive effect.
+Togglable: You can turn these on and off.
+Usable: You can use these for a one time effect.
+Active: You can only have one selected at a time. It gives you a special click effect.
+
+As we have an usable module, we want to set a cooldown time. All modules are also incompatible with themselves, have a specific power cost and complexity varying on how powerful they are, so let's update our definition, and also add a new variable for how much brain damage we'll heal.
+/obj/item/mod/module/neuron_healer
+ name = "MOD neuron healer module"
+ desc = "A module made experimentally by DeForest Medical Corporation. On demand it releases waves \
+ that heal neuron damage of everyone nearby, getting their brains to a better state."
+ icon_state = "neuron_healer"
+ module_type = MODULE_USABLE
+ complexity = 3
+ use_power_cost = DEFAULT_CHARGE_DRAIN
+ incompatible_modules = list(/obj/item/mod/module/neuron_healer)
+ cooldown_time = 15 SECONDS
+ var/brain_damage_healed = 25
+
+Now, we want to override the on_use proc for our new effect. We want to make sure the use checks passed from parent. You can read about most procs and variables by reading this
+/obj/item/mod/module/neuron_healer/on_use()
+ . = ..()
+ if(!.)
+ return
+
+After this, we want to put our special code, a basic effect of healing all mobs nearby for their brain damage and creating a beam to them.
+/obj/item/mod/module/neuron_healer/on_use()
+ . = ..()
+ if(!.)
+ return
+ for(var/mob/living/carbon/carbon_mob in range(5, src))
+ if(carbon_mob == mod.wearer)
+ continue
+ carbon_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -brain_damage_healed)
+ mod.wearer.Beam(carbon_mob, icon_state = "plasmabeam", time = 1.5 SECONDS)
+ playsound(src, 'sound/effects/magic.ogg', 100, TRUE)
+ drain_power(use_power_cost)
+
+We now have a basic module, we can add it to the techwebs to make it printable ingame, and we can add an inbuilt, advanced version of it for our psychological suit. We'll give it more healing power, no complexity and make it unremovable.
+/obj/item/mod/module/neuron_healer/advanced
+ name = "MOD advanced neuron healer module"
+ complexity = 0
+ brain_damage_healed = 50
+
+Now we want to add it to the psychological theme, which is very simple, finishing with this:
+/datum/mod_theme/psychological
+ name = "psychological"
+ desc = "A DeForest Medical Corporation power-saving psychological suit, limiting its' module capacity."
+ extended_desc = "DeForest Medical Corporation's prototype suit, based off the work of \
+ Nakamura Engineering. The suit has been modified to save power compared to regular suits, \
+ for operating at lower power levels, keeping people sane. As consequence, the capacity \
+ of the suit has decreased, not being able to fit many modules at all."
+ default_skin = "psychological"
+ armor_type = /datum/armor/modtheme_psychological
+ complexity_max = DEFAULT_MAX_COMPLEXITY - 7
+ charge_drain = DEFAULT_CHARGE_DRAIN * 0.5
+ inbuilt_modules = list(/obj/item/mod/module/neuron_healer/advanced)
+ skins = list(
+ "psychological" = list(
+ HELMET_LAYER = NECK_LAYER,
+ HELMET_FLAGS = list(
+ UNSEALED_CLOTHING = SNUG_FIT,
+ SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+ UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
+ SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
+ SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF,
+ ),
+ CHESTPLATE_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_INVISIBILITY = HIDEJUMPSUIT,
+ ),
+ GAUNTLETS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ ),
+ BOOTS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ ),
+ "psychotherapeutic" = list(
+ HELMET_LAYER = null,
+ HELMET_FLAGS = list(
+ UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
+ UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF,
+ ),
+ CHESTPLATE_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_INVISIBILITY = HIDEJUMPSUIT,
+ ),
+ GAUNTLETS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ ),
+ BOOTS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ ),
+ ),
+ )
+
+Ending
+This finishes this hopefully easy to follow along tutorial. You should now know how to make a basic theme, a skin for it, and a module.
+
+
+
diff --git a/code/modules/mod/mod_construction.html b/code/modules/mod/mod_construction.html
new file mode 100644
index 0000000000000..15bd798d31f5f
--- /dev/null
+++ b/code/modules/mod/mod_construction.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/mod/mod_construction.dm - Space Station 13
+
+
+
+
+code/modules/mod/mod_construction.dm
+
+
+
+
+ /obj /item /mod/construction/plating/rescue I want to add a way to get the rarer modsuit types, that is limited. A low chance for traders to have plating for it seems interesting
+ /obj /item /mod/construction/plating/safeguard Continued from above, none of these are steal objectives, and only the CE or RD one comes pre-installed with modules. You are getting the protection / speed / looks of these hardsuits, but no special modules.
+ /obj /item /mod/construction/plating/advanced This may be a bad idea. I think this is an interesting idea. And you still need robotics to build it, and traders can charge as much for it as they want. Also with ones like the CE modsuit, it is the flagship mod. That means it is sold a lot.
+ /obj /item /mod/construction/plating/research Don't think people will want the RD one though, it is as slow as shit. Anyway, here it is. Surely this will not end poorly.
+
+
+
diff --git a/code/modules/mod/mod_control.html b/code/modules/mod/mod_control.html
new file mode 100644
index 0000000000000..86647855fbe20
--- /dev/null
+++ b/code/modules/mod/mod_control.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mod/mod_control.dm - Space Station 13
+
+
+
+
+code/modules/mod/mod_control.dm
+
+
+
+
+ /obj /item /mod MODsuits, trade-off between armor and utility
+
+
+
diff --git a/code/modules/mod/mod_core.html b/code/modules/mod/mod_core.html
new file mode 100644
index 0000000000000..9d354a94e7369
--- /dev/null
+++ b/code/modules/mod/mod_core.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mod/mod_core.dm - Space Station 13
+
+
+
+
+code/modules/mod/mod_core.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mod/mod_theme.html b/code/modules/mod/mod_theme.html
new file mode 100644
index 0000000000000..72c31083af1bb
--- /dev/null
+++ b/code/modules/mod/mod_theme.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/mod/mod_theme.dm - Space Station 13
+
+
+
+
+code/modules/mod/mod_theme.dm
+
+
+
+
+ /proc/setup_mod_themes
+ Global proc that sets up all MOD themes as singletons in a list and returns it.
+ /datum/mod_theme MODsuit theme, instanced once and then used by MODsuits to grab various statistics.
+ /datum /mod_theme /standard We don't want the civilian skin to apply to all modsuits, that causes issues.
+ /obj /item /mod/armor/mod_theme_responsory This has no slowdown active, and no variation between levels. I am ASSUMING this will be gamma only.
+ /obj /item /mod/armor/mod_theme_administrative considering this should not be used, it's getting just DS armor, not infinity in everything.
+
+
+
diff --git a/code/modules/mod/mod_types.html b/code/modules/mod/mod_types.html
new file mode 100644
index 0000000000000..011ab14345970
--- /dev/null
+++ b/code/modules/mod/mod_types.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/mod/mod_types.dm - Space Station 13
+
+
+
+
+code/modules/mod/mod_types.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mod/modules/_modules.html b/code/modules/mod/modules/_modules.html
new file mode 100644
index 0000000000000..12a9bf53d8524
--- /dev/null
+++ b/code/modules/mod/modules/_modules.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mod/modules/_modules.dm - Space Station 13
+
+
+
+
+code/modules/mod/modules/_modules.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mod/modules/module_kinesis.html b/code/modules/mod/modules/module_kinesis.html
new file mode 100644
index 0000000000000..a9262a3cf10c4
--- /dev/null
+++ b/code/modules/mod/modules/module_kinesis.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mod/modules/module_kinesis.dm - Space Station 13
+
+
+
+
+code/modules/mod/modules/module_kinesis.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mod/modules/module_pathfinder.html b/code/modules/mod/modules/module_pathfinder.html
new file mode 100644
index 0000000000000..ffb2a4fcbe3d3
--- /dev/null
+++ b/code/modules/mod/modules/module_pathfinder.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mod/modules/module_pathfinder.dm - Space Station 13
+
+
+
+
+code/modules/mod/modules/module_pathfinder.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mod/modules/modules_antag.html b/code/modules/mod/modules/modules_antag.html
new file mode 100644
index 0000000000000..305b7141e7432
--- /dev/null
+++ b/code/modules/mod/modules/modules_antag.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ code/modules/mod/modules/modules_antag.dm - Space Station 13
+
+
+
+
+code/modules/mod/modules/modules_antag.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mod/modules/modules_engineering.html b/code/modules/mod/modules/modules_engineering.html
new file mode 100644
index 0000000000000..1126600cf3078
--- /dev/null
+++ b/code/modules/mod/modules/modules_engineering.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/mod/modules/modules_engineering.dm - Space Station 13
+
+
+
+
+code/modules/mod/modules/modules_engineering.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mod/modules/modules_general.html b/code/modules/mod/modules/modules_general.html
new file mode 100644
index 0000000000000..ab3396d5a75ea
--- /dev/null
+++ b/code/modules/mod/modules/modules_general.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/mod/modules/modules_general.dm - Space Station 13
+
+
+
+
+code/modules/mod/modules/modules_general.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mod/modules/modules_maint.html b/code/modules/mod/modules/modules_maint.html
new file mode 100644
index 0000000000000..bcbf09cc90690
--- /dev/null
+++ b/code/modules/mod/modules/modules_maint.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/mod/modules/modules_maint.dm - Space Station 13
+
+
+
+
+code/modules/mod/modules/modules_maint.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mod/modules/modules_medical.html b/code/modules/mod/modules/modules_medical.html
new file mode 100644
index 0000000000000..cb97b8068dc09
--- /dev/null
+++ b/code/modules/mod/modules/modules_medical.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/mod/modules/modules_medical.dm - Space Station 13
+
+
+
+
+code/modules/mod/modules/modules_medical.dm
+
+
+
+
+ /obj /item /mod/module /injector Injector - Gives the suit an extendable large-capacity piercing syringe.
+ /obj /item /mod/module /defibrillator Defibrillator - Gives the suit an extendable pair of shock paddles.
+ /obj /item /mod/module /monitor Crew Monitor - Deploys or retracts a built-in handheld crew monitor
+
+
+
diff --git a/code/modules/mod/modules/modules_science.html b/code/modules/mod/modules/modules_science.html
new file mode 100644
index 0000000000000..4075af4d93c07
--- /dev/null
+++ b/code/modules/mod/modules/modules_science.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mod/modules/modules_science.dm - Space Station 13
+
+
+
+
+code/modules/mod/modules/modules_science.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mod/modules/modules_security.html b/code/modules/mod/modules/modules_security.html
new file mode 100644
index 0000000000000..86872c82b2752
--- /dev/null
+++ b/code/modules/mod/modules/modules_security.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/modules/mod/modules/modules_security.dm - Space Station 13
+
+
+
+
+code/modules/mod/modules/modules_security.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mod/modules/modules_service.html b/code/modules/mod/modules/modules_service.html
new file mode 100644
index 0000000000000..4a052517ab2a8
--- /dev/null
+++ b/code/modules/mod/modules/modules_service.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mod/modules/modules_service.dm - Space Station 13
+
+
+
+
+code/modules/mod/modules/modules_service.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mod/modules/modules_supply.html b/code/modules/mod/modules/modules_supply.html
new file mode 100644
index 0000000000000..f4b44eddf8f15
--- /dev/null
+++ b/code/modules/mod/modules/modules_supply.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/mod/modules/modules_supply.dm - Space Station 13
+
+
+
+
+code/modules/mod/modules/modules_supply.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mod/modules/modules_visor.html b/code/modules/mod/modules/modules_visor.html
new file mode 100644
index 0000000000000..4f6db69b907d7
--- /dev/null
+++ b/code/modules/mod/modules/modules_visor.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mod/modules/modules_visor.dm - Space Station 13
+
+
+
+
+code/modules/mod/modules/modules_visor.dm
+
+
+
+
+
+
+
diff --git a/code/modules/newscaster/datums.html b/code/modules/newscaster/datums.html
new file mode 100644
index 0000000000000..f5ebba8f81dac
--- /dev/null
+++ b/code/modules/newscaster/datums.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/newscaster/datums.dm - Space Station 13
+
+
+
+
+code/modules/newscaster/datums.dm
+
+
+
+
+
+
+
diff --git a/code/modules/newscaster/obj/newscaster.html b/code/modules/newscaster/obj/newscaster.html
new file mode 100644
index 0000000000000..05197503ec078
--- /dev/null
+++ b/code/modules/newscaster/obj/newscaster.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/newscaster/obj/newscaster.dm - Space Station 13
+
+
+
+
+code/modules/newscaster/obj/newscaster.dm
+
+
+
+
+
+
+
diff --git a/code/modules/newscaster/obj/newspaper.html b/code/modules/newscaster/obj/newspaper.html
new file mode 100644
index 0000000000000..aef61f51a82db
--- /dev/null
+++ b/code/modules/newscaster/obj/newspaper.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/newscaster/obj/newspaper.dm - Space Station 13
+
+
+
+
+code/modules/newscaster/obj/newspaper.dm
+
+
+
+
+
+
+
diff --git a/code/modules/paperwork/filingcabinet.html b/code/modules/paperwork/filingcabinet.html
new file mode 100644
index 0000000000000..8621daa24bd14
--- /dev/null
+++ b/code/modules/paperwork/filingcabinet.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/paperwork/filingcabinet.dm - Space Station 13
+
+
+
+
+code/modules/paperwork/filingcabinet.dm
+
+
+
+
+ /obj /structure /filingcabinet/filingcabinet not changing the path to avoid unecessary map issues, but please don't name stuff like this in the future -Pete
+
+
+
diff --git a/code/modules/paperwork/photocopier.html b/code/modules/paperwork/photocopier.html
new file mode 100644
index 0000000000000..6e4c8d4e2e6fe
--- /dev/null
+++ b/code/modules/paperwork/photocopier.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/paperwork/photocopier.dm - Space Station 13
+
+
+
+
+code/modules/paperwork/photocopier.dm
+
+
+
+
+ MAX_COPIES_PRINTABLE Global limit on copied papers and photos, bundles are counted as a sum of their parts
Define Details
+MAX_COPIES_PRINTABLE
+
+
+
+ Global limit on copied papers and photos, bundles are counted as a sum of their parts
+
+
+
diff --git a/code/modules/paperwork/photography.html b/code/modules/paperwork/photography.html
new file mode 100644
index 0000000000000..26b9cb80f40d6
--- /dev/null
+++ b/code/modules/paperwork/photography.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/modules/paperwork/photography.dm - Space Station 13
+
+
+
+
+code/modules/paperwork/photography.dm
+
+
+
+Define Details
+CAMERA_STATE_COOLDOWN
+
+
+
+ video camera
+
+
+
diff --git a/code/modules/paperwork/silicon_photography.html b/code/modules/paperwork/silicon_photography.html
new file mode 100644
index 0000000000000..31a6e60272f69
--- /dev/null
+++ b/code/modules/paperwork/silicon_photography.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/paperwork/silicon_photography.dm - Space Station 13
+
+
+
+
+code/modules/paperwork/silicon_photography.dm
+
+
+
+
+ /datum /picture AI-specific
+ /obj /item /camera /siliconcam/ai_camera camera AI can take pictures with
+ /obj /item /camera /siliconcam/robot_camera camera cyborgs can take pictures with
+ /obj /item /camera /siliconcam/drone_camera currently doesn't offer the verbs, thus cannot be used
+
+
+
diff --git a/code/modules/pda/cart.html b/code/modules/pda/cart.html
new file mode 100644
index 0000000000000..e3af9dca00951
--- /dev/null
+++ b/code/modules/pda/cart.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/pda/cart.dm - Space Station 13
+
+
+
+
+code/modules/pda/cart.dm
+
+
+
+
+ /obj /item /cartridge /syndicate/nuclear needed subtype so regular traitors can't open and close nuclear shuttle doors
+
+
+
diff --git a/code/modules/power/apc/apc.html b/code/modules/power/apc/apc.html
new file mode 100644
index 0000000000000..52d0b4a3251f4
--- /dev/null
+++ b/code/modules/power/apc/apc.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/power/apc/apc.dm - Space Station 13
+
+
+
+
+code/modules/power/apc/apc.dm
+
+
+
+
+
+
+
diff --git a/code/modules/power/cell.html b/code/modules/power/cell.html
new file mode 100644
index 0000000000000..87f572ba1265e
--- /dev/null
+++ b/code/modules/power/cell.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/power/cell.dm - Space Station 13
+
+
+
+
+code/modules/power/cell.dm
+
+
+
+
+ /obj /item /stock_parts/cell/pulse 200 pulse shots
+ /obj /item /stock_parts/cell/pulse/carbine 25 pulse shots
+ /obj /item /stock_parts/cell/pulse/pistol 10 pulse shots
+ /obj /item /stock_parts/cell/emproof/reactive EMP proof so emp_act does not double dip.
+
+
+
diff --git a/code/modules/power/engines/singularity/narsie.html b/code/modules/power/engines/singularity/narsie.html
new file mode 100644
index 0000000000000..b04332cc87bbb
--- /dev/null
+++ b/code/modules/power/engines/singularity/narsie.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/power/engines/singularity/narsie.dm - Space Station 13
+
+
+
+
+code/modules/power/engines/singularity/narsie.dm
+
+
+
+
+ /obj /singularity /narsie Moving narsie to a child object of the singularity so it can be made to function differently. --NEO
+
+
+
diff --git a/code/modules/power/engines/singularity/singulogen.html b/code/modules/power/engines/singularity/singulogen.html
new file mode 100644
index 0000000000000..273154cb2b1cb
--- /dev/null
+++ b/code/modules/power/engines/singularity/singulogen.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/power/engines/singularity/singulogen.dm - Space Station 13
+
+
+
+
+code/modules/power/engines/singularity/singulogen.dm
+
+
+
+
+
+
+
diff --git a/code/modules/power/engines/supermatter/supermatter.html b/code/modules/power/engines/supermatter/supermatter.html
new file mode 100644
index 0000000000000..02e5dcb03c86f
--- /dev/null
+++ b/code/modules/power/engines/supermatter/supermatter.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ code/modules/power/engines/supermatter/supermatter.dm - Space Station 13
+
+
+
+
+code/modules/power/engines/supermatter/supermatter.dm
+
+
+
+Define Details
+EVENT_POWER_PENALTY_THRESHOLD
+
+
+
+ The cutoff for the minimum amount of power required to trigger the crystal invasion delamination event.
SUPERMATTER_ACCENT_SOUND_MIN_COOLDOWN
+
+
+
+ to prevent accent sounds from layering
SUPERMATTER_COLOUR
+
+
+
+ Colours used for effects.
+
+
+
diff --git a/code/modules/power/engines/tesla/energy_ball.html b/code/modules/power/engines/tesla/energy_ball.html
new file mode 100644
index 0000000000000..c79de4d1203ae
--- /dev/null
+++ b/code/modules/power/engines/tesla/energy_ball.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/power/engines/tesla/energy_ball.dm - Space Station 13
+
+
+
+
+code/modules/power/engines/tesla/energy_ball.dm
+
+
+
+
+
+
+
diff --git a/code/modules/power/lights.html b/code/modules/power/lights.html
new file mode 100644
index 0000000000000..a4b70c6733f94
--- /dev/null
+++ b/code/modules/power/lights.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/power/lights.dm - Space Station 13
+
+
+
+
+code/modules/power/lights.dm
+
+
+
+
+
+
+
diff --git a/code/modules/power/powernets.html b/code/modules/power/powernets.html
new file mode 100644
index 0000000000000..bbb0772947630
--- /dev/null
+++ b/code/modules/power/powernets.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ code/modules/power/powernets/README.md - Space Station 13
+
+
+
+
+Understanding Powernets code/modules/power/powernets/README.md
+
+
+
+
+ Much like any other massive numbers system in SS13, the power (or powernet) system is complex and confusing to work with, only being trumped in complexity by atmospherics/LINDA. This README serves as a powernets 101 guide and breaks down how the system works.
+Two Types of Powernets
+There are two types of powernets in our code
+
+Regional Powernets
+Local Powernets
+
+They are two completely different datum types from eachother and serve different completely different purposes. In a nutshell, regional powernets are dynamically sized and deal with physical machinery, cables, and generators whereas local powernets are statically locked into a single area each and work directly with APCs to handle individual machines interactions with the larger regional powernet.
+Regional Powernet
+An inter-area datum which handles 1 continuous set of cables (var/list/cables
) and all the connected machinery/nodes on that set of cable (var/list/nodes
).
+On this datum you'll notice a lot of different vars handling power input, output, consumption, demand, etc
+Regional Powernet Process Call Stack
+Starting in SSmachines,
+/datum/controller/subsystem/machines/fire(resumed = 0)
+the fire()
proc will call process process_powernets()
+/datum/controller/subsystem/machines/proc/process_powernets(resumed = 0)
+This proc will then call process_power()
on every single registered regional powernet
+The Power Variables
+var/available_power
- the currently available power in the powernet in watts THIS PROCESS CYCLE
+var/power_demand
- the power being consumed from available power in watts THIS PROCESS CYCLE
+var/queued_power_production
- the power in watts that will be available to be consumed in the NEXT PROCESS CYCLE
+--> All power producing generators dump their production into this variable
+var/queued_power_demand
- the power in watts that will be guaranteed to be consumed in the NEXT PROCESS CYCLE
+--> Anything machine/item that needs to have priority consumption draws from the queue'd cycle first in order to ensure it gets priority power (electrocution, powersinks, etc)
+
+
+
diff --git a/code/modules/power/powernets/local_powernet.html b/code/modules/power/powernets/local_powernet.html
new file mode 100644
index 0000000000000..4cbe6f00ca443
--- /dev/null
+++ b/code/modules/power/powernets/local_powernet.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/power/powernets/local_powernet.dm - Space Station 13
+
+
+
+
+code/modules/power/powernets/local_powernet.dm
+
+
+
+
+ /datum/local_powernet Manages all power related mechanics for a single /area
+Machines in areas will directly register to this datum in order to receive power
+
+
+
diff --git a/code/modules/power/powernets/powernet_helpers.html b/code/modules/power/powernets/powernet_helpers.html
new file mode 100644
index 0000000000000..7518109bb4b2a
--- /dev/null
+++ b/code/modules/power/powernets/powernet_helpers.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/power/powernets/powernet_helpers.dm - Space Station 13
+
+
+
+
+code/modules/power/powernets/powernet_helpers.dm
+
+
+
+
+ /proc/propagate_network
+ remove the old powernet and replace it with a new one throughout the network.
+
+
+
diff --git a/code/modules/procedural_mapping/mapGenerators/syndicate_mapgen.html b/code/modules/procedural_mapping/mapGenerators/syndicate_mapgen.html
new file mode 100644
index 0000000000000..6cad3709cee40
--- /dev/null
+++ b/code/modules/procedural_mapping/mapGenerators/syndicate_mapgen.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/procedural_mapping/mapGenerators/syndicate_mapgen.dm - Space Station 13
+
+
+
+
+code/modules/procedural_mapping/mapGenerators/syndicate_mapgen.dm
+
+
+
+
+ /datum /mapGenerator/syndicate/empty walls and floor only
+
+
+
diff --git a/code/modules/projectiles/ammunition/energy_lens.html b/code/modules/projectiles/ammunition/energy_lens.html
new file mode 100644
index 0000000000000..87c105c730566
--- /dev/null
+++ b/code/modules/projectiles/ammunition/energy_lens.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/projectiles/ammunition/energy_lens.dm - Space Station 13
+
+
+
+
+code/modules/projectiles/ammunition/energy_lens.dm
+
+
+
+
+ /obj /item /ammo_casing /energy/laser/cyborg to balance cyborg energy cost seperately
+ /obj /item /ammo_casing /energy/disabler/cyborg seperate balancing for cyborg, again
+ /obj /item /ammo_casing /energy/emitter/cyborg/proto needed a slightly weaker ranged option to give to Safety Overriden borgs. The fire rate is about the same as an emitter if you put it on the ground.
+
+
+
diff --git a/code/modules/projectiles/ammunition/magazines.html b/code/modules/projectiles/ammunition/magazines.html
new file mode 100644
index 0000000000000..398f71969c4ea
--- /dev/null
+++ b/code/modules/projectiles/ammunition/magazines.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/projectiles/ammunition/magazines.dm - Space Station 13
+
+
+
+
+code/modules/projectiles/ammunition/magazines.dm
+
+
+
+
+ /obj /item /ammo_box/magazine/internal INTERNAL MAGAZINES
+ /obj /item /ammo_box/magazine/m10mm EXTERNAL MAGAZINES
+ /obj /item /ammo_box/magazine/laser/ert Used by red ERT. Keeps the size for them
+
+
+
diff --git a/code/modules/projectiles/guns/projectile/revolver.html b/code/modules/projectiles/guns/projectile/revolver.html
new file mode 100644
index 0000000000000..9e3278922220b
--- /dev/null
+++ b/code/modules/projectiles/guns/projectile/revolver.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/projectiles/guns/projectile/revolver.dm - Space Station 13
+
+
+
+
+code/modules/projectiles/guns/projectile/revolver.dm
+
+
+
+
+ /obj /item /gun /projectile /revolver/fingergun Summoned by the Finger Gun spell, from advanced mimery traitor item
+
+
+
diff --git a/code/modules/projectiles/guns/projectile/shotgun.html b/code/modules/projectiles/guns/projectile/shotgun.html
new file mode 100644
index 0000000000000..ea2a201a06573
--- /dev/null
+++ b/code/modules/projectiles/guns/projectile/shotgun.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/projectiles/guns/projectile/shotgun.dm - Space Station 13
+
+
+
+
+code/modules/projectiles/guns/projectile/shotgun.dm
+
+
+
+
+
+
+
diff --git a/code/modules/projectiles/guns/syringe_gun.html b/code/modules/projectiles/guns/syringe_gun.html
new file mode 100644
index 0000000000000..7ce34ccbfa144
--- /dev/null
+++ b/code/modules/projectiles/guns/syringe_gun.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/projectiles/guns/syringe_gun.dm - Space Station 13
+
+
+
+
+code/modules/projectiles/guns/syringe_gun.dm
+
+
+
+
+
+
+
diff --git a/code/modules/projectiles/projectile/bullets.html b/code/modules/projectiles/projectile/bullets.html
new file mode 100644
index 0000000000000..839cb42c2c87f
--- /dev/null
+++ b/code/modules/projectiles/projectile/bullets.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/projectiles/projectile/bullets.dm - Space Station 13
+
+
+
+
+code/modules/projectiles/projectile/bullets.dm
+
+
+
+
+ /obj /item /projectile /bullet/weakbullet beanbag, heavy stamina damage
+ /obj /item /projectile /bullet/stunshot taser slugs for shotguns, nothing special
+ /obj /item /projectile /bullet/mime/fake ...Rather a large amount of stamina damage. Used in the mime mecha
+
+
+
diff --git a/code/modules/projectiles/projectile_base.html b/code/modules/projectiles/projectile_base.html
new file mode 100644
index 0000000000000..afb39ba09016d
--- /dev/null
+++ b/code/modules/projectiles/projectile_base.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/modules/projectiles/projectile_base.dm - Space Station 13
+
+
+
+
+code/modules/projectiles/projectile_base.dm
+
+
+
+
+ MOVES_HITSCAN Is this a hitscan projectile or not, if so move like one
+ MUZZLE_EFFECT_PIXEL_INCREMENT How many pixels to move the muzzle flash up so your character doesn't look like they're shitting out lasers.
Define Details
+MOVES_HITSCAN
+
+
+
+ Is this a hitscan projectile or not, if so move like one
MUZZLE_EFFECT_PIXEL_INCREMENT
+
+
+
+ How many pixels to move the muzzle flash up so your character doesn't look like they're shitting out lasers.
+
+
+
diff --git a/code/modules/reagents/chemistry/chemical_reaction.html b/code/modules/reagents/chemistry/chemical_reaction.html
new file mode 100644
index 0000000000000..56e2e0fb4375f
--- /dev/null
+++ b/code/modules/reagents/chemistry/chemical_reaction.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/chemical_reaction.dm - Space Station 13
+
+
+
+
+code/modules/reagents/chemistry/chemical_reaction.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/chemistry/reagents/admin_reagents.html b/code/modules/reagents/chemistry/reagents/admin_reagents.html
new file mode 100644
index 0000000000000..87bd2d3a7a3db
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/admin_reagents.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/reagents/admin_reagents.dm - Space Station 13
+
+
+
+
+code/modules/reagents/chemistry/reagents/admin_reagents.dm
+
+
+
+
+ /datum /reagent /medicine/adminordrazine An OP chemical for admins
+
+
+
diff --git a/code/modules/reagents/chemistry/reagents/alcohol.html b/code/modules/reagents/chemistry/reagents/alcohol.html
new file mode 100644
index 0000000000000..c23e95f1e97f5
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/alcohol.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/reagents/alcohol.dm - Space Station 13
+
+
+
+
+code/modules/reagents/chemistry/reagents/alcohol.dm
+
+
+
+
+ /datum /reagent /consumable/ethanol/suicider otherwise known as "I want to get so smashed my liver gives out and I die from alcohol poisoning".
+ /datum /reagent /consumable/ethanol/bilk cocktail entities
+ /datum /reagent /consumable/ethanol/dragons_breath inaccessible to players, but here for admin shennanigans
+ /datum /reagent /consumable/ethanol/bacchus_blessing An EXTREMELY powerful drink. Smashed in seconds, dead in minutes.
+
+
+
diff --git a/code/modules/reagents/chemistry/reagents/blob_reagents.html b/code/modules/reagents/chemistry/reagents/blob_reagents.html
new file mode 100644
index 0000000000000..492d2e30e8883
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/blob_reagents.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/reagents/blob_reagents.dm - Space Station 13
+
+
+
+
+code/modules/reagents/chemistry/reagents/blob_reagents.dm
+
+
+
+
+ /datum /reagent /blob/ripping_tendrils does brute and a little stamina damage
+ /datum /reagent /blob/boiling_oil sets you on fire, does burn damage
+ /datum /reagent /blob/envenomed_filaments toxin, hallucination, and some bonus spore toxin
+ /datum /reagent /blob/lexorin_jelly does tons of oxygen damage and a little brute
+ /datum /reagent /blob/kinetic does semi-random brute damage
+ /datum /reagent /blob/cryogenic_liquid does low burn damage and stamina damage and cools targets down
+
+
+
diff --git a/code/modules/reagents/chemistry/reagents/drugs.html b/code/modules/reagents/chemistry/reagents/drugs.html
new file mode 100644
index 0000000000000..29ad0a14355c5
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/drugs.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/reagents/drugs.dm - Space Station 13
+
+
+
+
+code/modules/reagents/chemistry/reagents/drugs.dm
+
+
+
+
+ /datum /reagent /rotatium Rotatium. Fucks up your rotation and is hilarious
+ /proc/phase_filter
+ This filter proc makes a visual effect where the object is split into fragments, with vertical lines cut out of them. It will appear as 2 seperate things are made of the one object that was cut out
+
+
+
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.html b/code/modules/reagents/chemistry/reagents/food_reagents.html
new file mode 100644
index 0000000000000..1326e83bc8902
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/reagents/food_reagents.dm - Space Station 13
+
+
+
+
+code/modules/reagents/chemistry/reagents/food_reagents.dm
+
+
+
+
+ /datum /reagent /consumable Food Reagents
+ /datum /reagent /consumable/nutriment Pure nutriment, universally digestable and thus slightly less effective
+ /datum /reagent /consumable/nutriment/protein Meat-based protein, digestable by carnivores and omnivores, worthless to herbivores
+ /datum /reagent /consumable/nutriment/plantmatter Plant-based biomatter, digestable by herbivores and omnivores, worthless to carnivores
+ /datum /reagent /questionmark Food Related, but non-nutritious
+food poisoning
+ /datum /reagent /vomit Vomit
+ /datum /reagent /consumable/entpoly Lavaland Flora Reagents
+
+
+
diff --git a/code/modules/reagents/chemistry/reagents/medicine.html b/code/modules/reagents/chemistry/reagents/medicine.html
new file mode 100644
index 0000000000000..d453374cfeccf
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/medicine.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/reagents/medicine.dm - Space Station 13
+
+
+
+
+code/modules/reagents/chemistry/reagents/medicine.dm
+
+
+
+
+ /datum /reagent /medicine/syndicate_nanites Used exclusively by Syndicate medical cyborgs
+ /datum /reagent /medicine/earthsblood Created by ambrosia gaia plants
+
+
+
diff --git a/code/modules/reagents/chemistry/reagents/misc_reagents.html b/code/modules/reagents/chemistry/reagents/misc_reagents.html
new file mode 100644
index 0000000000000..86897bd92cdd2
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/misc_reagents.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/reagents/misc_reagents.dm - Space Station 13
+
+
+
+
+code/modules/reagents/chemistry/reagents/misc_reagents.dm
+
+
+
+
+ /datum /reagent /jestosterone Formerly known as Nitrogen tungstide hypochlorite before NT fired the chemists for trying to be funny
+ /datum /reagent /plantnutrient Hydroponics stuff
+ /datum /reagent /eyenewt Alchemical Reagents
+
+
+
diff --git a/code/modules/reagents/chemistry/reagents/toxins.html b/code/modules/reagents/chemistry/reagents/toxins.html
new file mode 100644
index 0000000000000..4c1856c24a1c9
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/toxins.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/reagents/toxins.dm - Space Station 13
+
+
+
+
+code/modules/reagents/chemistry/reagents/toxins.dm
+
+
+
+
+ /datum /reagent /beer2 disguised as normal beer for use by emagged service borgs
+ /datum /reagent /pestkiller To-Do; make this more realistic.
+ /datum /reagent /teslium Teslium. Causes periodic shocks, and makes shocks against the target much more effective.
+ /datum /reagent /teslium/blob This version has it's shocks much less frequently, while retaining the shock multiplier
+
+
+
diff --git a/code/modules/reagents/chemistry/reagents/water.html b/code/modules/reagents/chemistry/reagents/water.html
new file mode 100644
index 0000000000000..77053f0ec5e81
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/water.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/reagents/water.dm - Space Station 13
+
+
+
+
+code/modules/reagents/chemistry/reagents/water.dm
+
+
+
+
+ /datum /reagent /fuel/unholywater if you somehow managed to extract this from someone, dont splash it on yourself and have a smoke
+
+
+
diff --git a/code/modules/reagents/chemistry/reagents_datum.html b/code/modules/reagents/chemistry/reagents_datum.html
new file mode 100644
index 0000000000000..cd18d90b0d681
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents_datum.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/reagents_datum.dm - Space Station 13
+
+
+
+
+code/modules/reagents/chemistry/reagents_datum.dm
+
+
+
+
+ /proc/fire_flash_log
+ Flashfire is a proc used to log fire causing chemical reactions.
+
+
+
diff --git a/code/modules/reagents/chemistry/reagents_holder.html b/code/modules/reagents/chemistry/reagents_holder.html
new file mode 100644
index 0000000000000..0541a9fcbc449
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents_holder.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/reagents_holder.dm - Space Station 13
+
+
+
+
+code/modules/reagents/chemistry/reagents_holder.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/chemistry/recipes/drinks_reactions.html b/code/modules/reagents/chemistry/recipes/drinks_reactions.html
new file mode 100644
index 0000000000000..2877521bd481c
--- /dev/null
+++ b/code/modules/reagents/chemistry/recipes/drinks_reactions.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/recipes/drinks_reactions.dm - Space Station 13
+
+
+
+
+code/modules/reagents/chemistry/recipes/drinks_reactions.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/chemistry/recipes/food_reactions.html b/code/modules/reagents/chemistry/recipes/food_reactions.html
new file mode 100644
index 0000000000000..0d5c022704f7c
--- /dev/null
+++ b/code/modules/reagents/chemistry/recipes/food_reactions.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/recipes/food_reactions.dm - Space Station 13
+
+
+
+
+code/modules/reagents/chemistry/recipes/food_reactions.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.html b/code/modules/reagents/chemistry/recipes/pyrotechnics.html
new file mode 100644
index 0000000000000..34321e56ca5c5
--- /dev/null
+++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/recipes/pyrotechnics.dm - Space Station 13
+
+
+
+
+code/modules/reagents/chemistry/recipes/pyrotechnics.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/chemistry/recipes/toxins_reactions.html b/code/modules/reagents/chemistry/recipes/toxins_reactions.html
new file mode 100644
index 0000000000000..f84ca6435d970
--- /dev/null
+++ b/code/modules/reagents/chemistry/recipes/toxins_reactions.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry/recipes/toxins_reactions.dm - Space Station 13
+
+
+
+
+code/modules/reagents/chemistry/recipes/toxins_reactions.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/reagent_containers/applicator.html b/code/modules/reagents/reagent_containers/applicator.html
new file mode 100644
index 0000000000000..c7030bb9e3814
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/applicator.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/applicator.dm - Space Station 13
+
+
+
+
+code/modules/reagents/reagent_containers/applicator.dm
+
+
+
+
+ /obj /item /reagent_containers/applicator/dual/syndi It magically goes through hardsuits. Don't ask how.
+
+
+
diff --git a/code/modules/reagents/reagent_containers/chemical_bottle.html b/code/modules/reagents/reagent_containers/chemical_bottle.html
new file mode 100644
index 0000000000000..e597f5886569b
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/chemical_bottle.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/chemical_bottle.dm - Space Station 13
+
+
+
+
+code/modules/reagents/reagent_containers/chemical_bottle.dm
+
+
+
+
+ /obj /item /reagent_containers/glass/bottle/traitor Traitor Poison Bottle
+
+
+
diff --git a/code/modules/reagents/reagent_containers/dropper.html b/code/modules/reagents/reagent_containers/dropper.html
new file mode 100644
index 0000000000000..c69905d8a34ab
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/dropper.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/dropper.dm - Space Station 13
+
+
+
+
+code/modules/reagents/reagent_containers/dropper.dm
+
+
+
+
+ /obj /item /reagent_containers/dropper Droppers.
+
+
+
diff --git a/code/modules/reagents/reagent_containers/glass_containers.html b/code/modules/reagents/reagent_containers/glass_containers.html
new file mode 100644
index 0000000000000..8339f1be7eb46
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/glass_containers.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/glass_containers.dm - Space Station 13
+
+
+
+
+code/modules/reagents/reagent_containers/glass_containers.dm
+
+
+
+
+ /obj /item /reagent_containers/glass (Mixing)Glass.
+
+
+
diff --git a/code/modules/reagents/reagent_containers/hypospray.html b/code/modules/reagents/reagent_containers/hypospray.html
new file mode 100644
index 0000000000000..9fa514b3e738b
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/hypospray.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/hypospray.dm - Space Station 13
+
+
+
+
+code/modules/reagents/reagent_containers/hypospray.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/reagent_containers/iv_bag.html b/code/modules/reagents/reagent_containers/iv_bag.html
new file mode 100644
index 0000000000000..f3637c545a4ad
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/iv_bag.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/iv_bag.dm - Space Station 13
+
+
+
+
+code/modules/reagents/reagent_containers/iv_bag.dm
+
+
+
+
+ /obj /item /reagent_containers/iv_bag/blood Don't use this - just an abstract type to allow blood bags to have a common blood_type var for ease of creation.
+
+
+
diff --git a/code/modules/reagents/reagent_containers/pill.html b/code/modules/reagents/reagent_containers/pill.html
new file mode 100644
index 0000000000000..a058b1a859baa
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/pill.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/pill.dm - Space Station 13
+
+
+
+
+code/modules/reagents/reagent_containers/pill.dm
+
+
+
+
+ /obj /item /reagent_containers/pill A swallowable pill. Can be dissolved in reagent containers.
+
+
+
diff --git a/code/modules/reagents/reagent_containers/spray.html b/code/modules/reagents/reagent_containers/spray.html
new file mode 100644
index 0000000000000..db14c8620d1f1
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/spray.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/reagents/reagent_containers/spray.dm - Space Station 13
+
+
+
+
+code/modules/reagents/reagent_containers/spray.dm
+
+
+
+
+ /obj /item /reagent_containers/spray/plantbgone Plant-B-Gone
+-- Skie
+ /obj /item /reagent_containers/spray/sticky_tar Sticky tar spray
+
+
+
diff --git a/code/modules/recycling/belt-placer.html b/code/modules/recycling/belt-placer.html
new file mode 100644
index 0000000000000..04d79c248da87
--- /dev/null
+++ b/code/modules/recycling/belt-placer.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/recycling/belt-placer.dm - Space Station 13
+
+
+
+
+code/modules/recycling/belt-placer.dm
+
+
+
+
+ /obj /item /storage /conveyor Stores conveyor belts, click floor to make belt, use a conveyor switch on this to link all belts to that lever.
+
+
+
diff --git a/code/modules/redis/redis_callback.html b/code/modules/redis/redis_callback.html
new file mode 100644
index 0000000000000..2108f224b0541
--- /dev/null
+++ b/code/modules/redis/redis_callback.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/redis/redis_callback.dm - Space Station 13
+
+
+
+
+code/modules/redis/redis_callback.dm
+
+
+
+
+
+
+
diff --git a/code/modules/redis/redis_message.html b/code/modules/redis/redis_message.html
new file mode 100644
index 0000000000000..ebf04fbccd487
--- /dev/null
+++ b/code/modules/redis/redis_message.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/redis/redis_message.dm - Space Station 13
+
+
+
+
+code/modules/redis/redis_message.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs.html b/code/modules/research/designs.html
new file mode 100644
index 0000000000000..5f14166c80131
--- /dev/null
+++ b/code/modules/research/designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/AI_module_designs.html b/code/modules/research/designs/AI_module_designs.html
new file mode 100644
index 0000000000000..08432c08364fd
--- /dev/null
+++ b/code/modules/research/designs/AI_module_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/AI_module_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/AI_module_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/autolathe_designs.html b/code/modules/research/designs/autolathe_designs.html
new file mode 100644
index 0000000000000..df6ac8817e81f
--- /dev/null
+++ b/code/modules/research/designs/autolathe_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/autolathe_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/autolathe_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/biogenerator_designs.html b/code/modules/research/designs/biogenerator_designs.html
new file mode 100644
index 0000000000000..110d646b6d977
--- /dev/null
+++ b/code/modules/research/designs/biogenerator_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/biogenerator_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/biogenerator_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/bluespace_designs.html b/code/modules/research/designs/bluespace_designs.html
new file mode 100644
index 0000000000000..8b6c1ed53b85b
--- /dev/null
+++ b/code/modules/research/designs/bluespace_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/bluespace_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/bluespace_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/comp_board_designs.html b/code/modules/research/designs/comp_board_designs.html
new file mode 100644
index 0000000000000..78dbaba09f757
--- /dev/null
+++ b/code/modules/research/designs/comp_board_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/comp_board_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/comp_board_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/equipment_designs.html b/code/modules/research/designs/equipment_designs.html
new file mode 100644
index 0000000000000..b277d0aa03c03
--- /dev/null
+++ b/code/modules/research/designs/equipment_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/equipment_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/equipment_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/janitorial_designs.html b/code/modules/research/designs/janitorial_designs.html
new file mode 100644
index 0000000000000..56669b04eb882
--- /dev/null
+++ b/code/modules/research/designs/janitorial_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/janitorial_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/janitorial_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/machine_designs.html b/code/modules/research/designs/machine_designs.html
new file mode 100644
index 0000000000000..a110142a12249
--- /dev/null
+++ b/code/modules/research/designs/machine_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/machine_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/machine_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/mecha_designs.html b/code/modules/research/designs/mecha_designs.html
new file mode 100644
index 0000000000000..88d99cfdb7cf2
--- /dev/null
+++ b/code/modules/research/designs/mecha_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/mecha_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/mecha_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/mechfabricator_designs.html b/code/modules/research/designs/mechfabricator_designs.html
new file mode 100644
index 0000000000000..f21be2236ae9e
--- /dev/null
+++ b/code/modules/research/designs/mechfabricator_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/mechfabricator_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/mechfabricator_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/medical_designs.html b/code/modules/research/designs/medical_designs.html
new file mode 100644
index 0000000000000..bb5bf61fc702b
--- /dev/null
+++ b/code/modules/research/designs/medical_designs.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/research/designs/medical_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/medical_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/mining_designs.html b/code/modules/research/designs/mining_designs.html
new file mode 100644
index 0000000000000..eed4f2481665d
--- /dev/null
+++ b/code/modules/research/designs/mining_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/mining_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/mining_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/misc_designs.html b/code/modules/research/designs/misc_designs.html
new file mode 100644
index 0000000000000..9515157b4c0d5
--- /dev/null
+++ b/code/modules/research/designs/misc_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/misc_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/misc_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/modsuit_designs.html b/code/modules/research/designs/modsuit_designs.html
new file mode 100644
index 0000000000000..e856a2e43f7e3
--- /dev/null
+++ b/code/modules/research/designs/modsuit_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/modsuit_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/modsuit_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/power_designs.html b/code/modules/research/designs/power_designs.html
new file mode 100644
index 0000000000000..9cf5bff7762b3
--- /dev/null
+++ b/code/modules/research/designs/power_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/power_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/power_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/smelting_designs.html b/code/modules/research/designs/smelting_designs.html
new file mode 100644
index 0000000000000..7805e83dacee9
--- /dev/null
+++ b/code/modules/research/designs/smelting_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/smelting_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/smelting_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/stock_parts_designs.html b/code/modules/research/designs/stock_parts_designs.html
new file mode 100644
index 0000000000000..3c2074c1a79d9
--- /dev/null
+++ b/code/modules/research/designs/stock_parts_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/stock_parts_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/stock_parts_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/telecomms_designs.html b/code/modules/research/designs/telecomms_designs.html
new file mode 100644
index 0000000000000..8767d15f5defa
--- /dev/null
+++ b/code/modules/research/designs/telecomms_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/telecomms_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/telecomms_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/designs/weapon_designs.html b/code/modules/research/designs/weapon_designs.html
new file mode 100644
index 0000000000000..972d7246ac425
--- /dev/null
+++ b/code/modules/research/designs/weapon_designs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/research/designs/weapon_designs.dm - Space Station 13
+
+
+
+
+code/modules/research/designs/weapon_designs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/research.html b/code/modules/research/research.html
new file mode 100644
index 0000000000000..6e5fa4ac3e057
--- /dev/null
+++ b/code/modules/research/research.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/research/research.dm - Space Station 13
+
+
+
+
+code/modules/research/research.dm
+
+
+
+
+
+
+
diff --git a/code/modules/research/xenobiology/xenobiology.html b/code/modules/research/xenobiology/xenobiology.html
new file mode 100644
index 0000000000000..f6710c17e6e29
--- /dev/null
+++ b/code/modules/research/xenobiology/xenobiology.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/research/xenobiology/xenobiology.dm - Space Station 13
+
+
+
+
+code/modules/research/xenobiology/xenobiology.dm
+
+
+
+
+
+
+
diff --git a/code/modules/response_team/ert_outfits.html b/code/modules/response_team/ert_outfits.html
new file mode 100644
index 0000000000000..045d5dc1496d4
--- /dev/null
+++ b/code/modules/response_team/ert_outfits.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/response_team/ert_outfits.dm - Space Station 13
+
+
+
+
+code/modules/response_team/ert_outfits.dm
+
+
+
+
+ /datum /outfit /job/centcom/response_team/commander COMMANDER
+ /datum /outfit /job/centcom/response_team/security SECURITY
+ /datum /outfit /job/centcom/response_team/engineer ENGINEER
+ /datum /outfit /job/centcom/response_team/medic MEDIC
+ /datum /outfit /job/centcom/response_team/paranormal PARANORMAL
+ /datum /outfit /job/centcom/response_team/janitorial JANITORIAL
+
+
+
diff --git a/code/modules/ruins/lavalandruin_code/dead_ratvar.html b/code/modules/ruins/lavalandruin_code/dead_ratvar.html
new file mode 100644
index 0000000000000..d73b9613c905f
--- /dev/null
+++ b/code/modules/ruins/lavalandruin_code/dead_ratvar.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/ruins/lavalandruin_code/dead_ratvar.dm - Space Station 13
+
+
+
+
+code/modules/ruins/lavalandruin_code/dead_ratvar.dm
+
+
+
+
+ /obj /effect/clockwork/overlay/floor/bloodcult this is used by BLOOD CULT, it shouldn't use such a path...
+ /obj /item /clockwork/alloy_shards/medium/gear_bit/large gives more power
+
+
+
diff --git a/code/modules/ruins/lavalandruin_code/sin_ruins.html b/code/modules/ruins/lavalandruin_code/sin_ruins.html
new file mode 100644
index 0000000000000..e41644d308e66
--- /dev/null
+++ b/code/modules/ruins/lavalandruin_code/sin_ruins.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/ruins/lavalandruin_code/sin_ruins.dm - Space Station 13
+
+
+
+
+code/modules/ruins/lavalandruin_code/sin_ruins.dm
+
+
+
+
+ /obj/structure/cursed_slot_machine Greed's slot machine: Used in the Greed ruin. Deals damage on each use, with a successful use giving a d20 of fate.
+ /obj /effect/gluttony Gluttony's wall: Used in the Gluttony ruin. Only lets the overweight through.
+ /obj /structure /mirror/magic/pride Pride's mirror: Used in the Pride ruin.
+ /obj /item /kitchen/knife/envy Envy's knife: Found in the Envy ruin. Attackers take on the appearance of whoever they strike.
+
+
+
diff --git a/code/modules/security_levels/security_level_datums.html b/code/modules/security_levels/security_level_datums.html
new file mode 100644
index 0000000000000..a254add30b857
--- /dev/null
+++ b/code/modules/security_levels/security_level_datums.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/security_levels/security_level_datums.dm - Space Station 13
+
+
+
+
+code/modules/security_levels/security_level_datums.dm
+
+
+
+
+
+
+
diff --git a/code/modules/server_commands/servermsg.html b/code/modules/server_commands/servermsg.html
new file mode 100644
index 0000000000000..29d37b19edccc
--- /dev/null
+++ b/code/modules/server_commands/servermsg.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/server_commands/servermsg.dm - Space Station 13
+
+
+
+
+code/modules/server_commands/servermsg.dm
+
+
+
+
+
+
+
diff --git a/code/modules/shuttle.html b/code/modules/shuttle.html
new file mode 100644
index 0000000000000..59eb3380ec463
--- /dev/null
+++ b/code/modules/shuttle.html
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+ code/modules/shuttle/README.md - Space Station 13
+
+
+
+
+code/modules/shuttle/README.md
+
+
+
+
+
+
+
+Important note:
+The following readme was last updated during Late 2015. The changes between Paradise & TG's shuttle system has diverged greatly since then. Do not take the documentation here's description of differences between tg & paradise seriously without double checking.
+Shuttle system Introduction
+This folder belongs to the "shuttle" system. The shuttle system is used to control the
+"Shuttles" on the map, which are, at their core, a rectangular area of turfs that "move".
+The shuttle system is comprised of two primary files.
+shuttle.dm
,
+which contains the primary code, and
+shuttles.dm
+which contains the back-end controller system.
+There are a few other files, but it isn't worth noting on.
+Shuttles are used for many purposes, including the end of rounds, so it's important to
+understand them.
+Docking ports obj docking_port
+The /obj/docking_port
type is the primary component of the shuttle system. Almost all of
+the shuttle system is controlled by the docking ports, the only thing that isn't, really,
+is the shuttle manager, which manages, you guessed it, the docking ports.
+Docking ports are split into two main types: /obj/docking_port/stationary
, and
+/obj/docking_port/mobile
, but they share a few variables and procs defined at the
+/obj/docking_port
level.
+Variables
+id
: This variable is used for any plain-text references to the docking port. It should
+always be lowercase.
+width
, height
: The width and height variables are absolute value variables which
+define the bounding box of the docking port. It is very important to note that these are
+different from the dwidth
and dheight
in terms of how they are counted. As they are
+absolute representations of the size of the bounding box, they need to be equal to the
+amount of turfs on the side of the bounding box. An easy way to think of it is, if you
+start at the very corner piece, you would start the count at 1
from that corner piece,
+IE, you move 1 turf in any direction, it would be 2
.
+A crude ASCII example:
+||D|||
+
+Would be classed by the values width
= 6, height
= 1.
+It is important to note that bounding boxes are always rectangular. However, shuttles
+are allowed to be any shape they so wish, as anything that matches the turf_type
of
+stationary docking ports will not be moved with the shuttle- by default, this is equal to
+/turf/space
.
+Another quick example of this:
+ |||
+ |||
+ |||
+ |||||
+||||||D
+|||||||
+||| |||
+
+This, even though it is not exactly a rectangle, would be classified by the values
+width
= 7
, height
= 7
.
+dwidth
, dheight
: The relative offset of the docking port to the bounding box. These
+values are calculated relative to the bounding box. The values are counted from the
+bottom left corner of the bounding box, relative to the direction of the docking port.
+The "bottom left corner" changes depending on the direction of the docking port object.
+so a docking port facing north that looks something like this:
+|||
+|||
+|||D|
+|||||
+
+Would have a dwidth
value of 3
, and a dheight
value of 1
.
+A docking port facing south that looks like this:
+||||||
+|||D||
+ ||||
+
+Would have a dwidth
value of 2
, and a dheight
value of 1
+/obj/docking_port/mobile
+/obj/docking_port/mobile
, or, "Mobile" docking ports are used to define and control the
+movement of the shuttle chunks. The "Mobile" docking port moves with the shuttle, and is
+essentially attached to it. A "Mobile" docking port only moves to predefined positions
+on the map, referred to as "Stationary" docking ports.
+/obj/docking_port/mobile
+/obj/docking_port/stationary
, or "Stationary" docking ports are used as predefined
+references for where "Mobile" docking ports may move. "Stationary" docking ports do not
+move unless something has gone horribly wrong. They are essentially static points in
+space. Going into details, whenever a "Mobile" docking port "moves", it registers with the
+stationary docking port that it was requested to move to, and moves itself to it. It is
+important to note that docking ports will switch direction on the fly, and a "Stationary"
+docking port not matching the initial direction of the "Mobile" docking port will cause
+the entire shuttle to be rotated in order for the "Mobile" docking port to face the same
+direction as the "Stationary" docking port.
+Modifications
+There are three main differences between -tg-station13's shuttle system and the one in
+use on Paradise, and none are very complex.
+Airlocks
+The biggest modification comes in the form of how docking ports interact with airlocks.
+With -tg-station13's base code, any door on the shuttle will be closed, and any door
+directly next to the mobile docking port will be closed off of the shuttle.
+In Paradise, however, when a mobile docking port undocks from the stationary docking port,
+it will look for any door in the machine list who's id_tag
variable matches the
+stationary docking port's id
variable. When it finds these doors, it will close and
+bolt the doors shut. Any airlocks on the shuttle will be closed as per usual, but any
+airlocks within the shuttle with the id_tag
of s_docking_airlock
will also be bolted,
+and will stay bolted until the shuttle has exited transit space.
+Initialization
+In -tg-station13's shuttle system, all docking ports register with the shuttle controller
+on New()
. However, as Paradise uses a different system for the shuttle controller, it is
+not yet created when New()
is called.
+To fix this issue, all docking ports will not initialize automatically on New()
.
+Instead, they are manually initialized by the shuttle controller when it is created, via
+a proc called initialize()
.
+
+
+
diff --git a/code/modules/shuttle/shuttle_manipulator.html b/code/modules/shuttle/shuttle_manipulator.html
new file mode 100644
index 0000000000000..c0c6ef4e1ef05
--- /dev/null
+++ b/code/modules/shuttle/shuttle_manipulator.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/shuttle/shuttle_manipulator.dm - Space Station 13
+
+
+
+
+code/modules/shuttle/shuttle_manipulator.dm
+
+
+
+
+ PREVIEW_OR_SHUTTLE_SPAWN_COOLDOWN We really would rather not have admins altering this, this is the cooldown for the preview/shuttle spawning on the shuttle manipulator
Define Details
+PREVIEW_OR_SHUTTLE_SPAWN_COOLDOWN
+
+
+
+ We really would rather not have admins altering this, this is the cooldown for the preview/shuttle spawning on the shuttle manipulator
+
+
+
diff --git a/code/modules/space_management/level_traits.html b/code/modules/space_management/level_traits.html
new file mode 100644
index 0000000000000..02f8eeb4f4346
--- /dev/null
+++ b/code/modules/space_management/level_traits.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/space_management/level_traits.dm - Space Station 13
+
+
+
+
+code/modules/space_management/level_traits.dm
+
+
+
+
+
+
+
diff --git a/code/modules/space_management/space_transition.html b/code/modules/space_management/space_transition.html
new file mode 100644
index 0000000000000..e0f64982dd6ff
--- /dev/null
+++ b/code/modules/space_management/space_transition.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/space_management/space_transition.dm - Space Station 13
+
+
+
+
+code/modules/space_management/space_transition.dm
+
+
+
+
+ /datum /point this is explicitly utilitarian datum type made specially for the space map generation and are absolutely unusable for anything else
+
+
+
diff --git a/code/modules/station_goals/bluespace_tap.html b/code/modules/station_goals/bluespace_tap.html
new file mode 100644
index 0000000000000..4b305e617153d
--- /dev/null
+++ b/code/modules/station_goals/bluespace_tap.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/station_goals/bluespace_tap.dm - Space Station 13
+
+
+
+
+code/modules/station_goals/bluespace_tap.dm
+
+
+
+
+
+
+
diff --git a/code/modules/supply/supply_README.html b/code/modules/supply/supply_README.html
new file mode 100644
index 0000000000000..eaa5438dd7210
--- /dev/null
+++ b/code/modules/supply/supply_README.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ code/modules/supply/supply_README.md - Space Station 13
+
+
+
+
+code/modules/supply/supply_README.md
+
+
+
+
+ IMPORTANT SUPPLY PACKS NOTES Pack Parameters
+
+only secure crate types use the access var (and are lockable)
+hidden packs only show up when the computer has been hacked.
+Contraband is obtainable through modified supplycomp circuitboards.
+
+Bug Prevention
+
+Don't add living things to crates, that's bad, it will break the shuttle.
+Do NOT set the price of any crates below 7 points. Doing so allows infinite points.
+
+Pack Organization
+
+Anytime a supply pack is ordered, it needs to be put in the dm file that matches its type
+Anytime a supply pack category becomes overloaded (think 20+ packs) you should consider splitting it into multiple categories
+Avoid throwing things in the miscellanious category unless it really doesn't have a place elsewhere
+
+
+
+
diff --git a/code/modules/supply/supply_packs/pack_abstract.html b/code/modules/supply/supply_packs/pack_abstract.html
new file mode 100644
index 0000000000000..1ef3cb743fe45
--- /dev/null
+++ b/code/modules/supply/supply_packs/pack_abstract.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/supply/supply_packs/pack_abstract.dm - Space Station 13
+
+
+
+
+code/modules/supply/supply_packs/pack_abstract.dm
+
+
+
+
+ /datum /supply_packs /abstract Abstract supply packs that don't contain any goods, but instead represent purchases that cargo can make.
+A supply pack that does not contain physical objects, but instead fires some sort of callback when ordered.
+ /datum /supply_packs /abstract/admin_notify A sample supply pack that notifies admins when it is purchased, but provides no items.
+
+
+
diff --git a/code/modules/supply/supply_packs/pack_emergency.html b/code/modules/supply/supply_packs/pack_emergency.html
new file mode 100644
index 0000000000000..af0c78bece07c
--- /dev/null
+++ b/code/modules/supply/supply_packs/pack_emergency.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/supply/supply_packs/pack_emergency.dm - Space Station 13
+
+
+
+
+code/modules/supply/supply_packs/pack_emergency.dm
+
+
+
+
+ /datum /supply_packs /emergency Section header - use these to set default supply group and crate type for sections
+
+
+
diff --git a/code/modules/supply/supply_packs/pack_engineering.html b/code/modules/supply/supply_packs/pack_engineering.html
new file mode 100644
index 0000000000000..8ba52f4fa0457
--- /dev/null
+++ b/code/modules/supply/supply_packs/pack_engineering.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/supply/supply_packs/pack_engineering.dm - Space Station 13
+
+
+
+
+code/modules/supply/supply_packs/pack_engineering.dm
+
+
+
+
+
+
+
diff --git a/code/modules/supply/supply_packs/pack_miscellaneous.html b/code/modules/supply/supply_packs/pack_miscellaneous.html
new file mode 100644
index 0000000000000..1c3a56a5d034f
--- /dev/null
+++ b/code/modules/supply/supply_packs/pack_miscellaneous.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/modules/supply/supply_packs/pack_miscellaneous.dm - Space Station 13
+
+
+
+
+code/modules/supply/supply_packs/pack_miscellaneous.dm
+
+
+
+
+
+
+
diff --git a/code/modules/supply/supply_packs/pack_organic.html b/code/modules/supply/supply_packs/pack_organic.html
new file mode 100644
index 0000000000000..29c8a7699bcd6
--- /dev/null
+++ b/code/modules/supply/supply_packs/pack_organic.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/supply/supply_packs/pack_organic.dm - Space Station 13
+
+
+
+
+code/modules/supply/supply_packs/pack_organic.dm
+
+
+
+
+
+
+
diff --git a/code/modules/supply/supply_packs/pack_security.html b/code/modules/supply/supply_packs/pack_security.html
new file mode 100644
index 0000000000000..cba25560824f9
--- /dev/null
+++ b/code/modules/supply/supply_packs/pack_security.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/modules/supply/supply_packs/pack_security.dm - Space Station 13
+
+
+
+
+code/modules/supply/supply_packs/pack_security.dm
+
+
+
+
+ /datum /supply_packs /security/helmets Armor: Basic
+ /datum /supply_packs /security/baton Weapons: Basic
+ /datum /supply_packs /security/armory Armory stuff
+ /datum /supply_packs /security/armory/riothelmets Armor: Specialist
+ /datum /supply_packs /security/armory/ballistic Weapons: Specialist
+ /datum /supply_packs /security/armory/epistol costs 3/5ths of the normal e-guns for 3/4ths the total ammo, making it cheaper to arm more people, but less convient for any one person
+ /datum /supply_packs /security/armory/mindshield Implants & etc
+ /datum /supply_packs /security/officerpack Starter pack for an officer. Contains everything in a locker but backpack (officer already start with one). Convenient way to equip new officer on highpop.
+
+
+
diff --git a/code/modules/supply/supply_packs/pack_shuttle.html b/code/modules/supply/supply_packs/pack_shuttle.html
new file mode 100644
index 0000000000000..9fafc2d44a2cb
--- /dev/null
+++ b/code/modules/supply/supply_packs/pack_shuttle.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/supply/supply_packs/pack_shuttle.dm - Space Station 13
+
+
+
+
+code/modules/supply/supply_packs/pack_shuttle.dm
+
+
+
+
+
+
+
diff --git a/code/modules/surgery/abstract_steps.html b/code/modules/surgery/abstract_steps.html
new file mode 100644
index 0000000000000..229aea2d0b7ed
--- /dev/null
+++ b/code/modules/surgery/abstract_steps.html
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+ code/modules/surgery/abstract_steps.dm - Space Station 13
+
+
+
+
+code/modules/surgery/abstract_steps.dm
+
+
+
+
+ SURGERY_TOOL_HAND This file consists of how we manage somewhat non-linear surgeries.
+Essentially what goes on here is that we have some "proxy" surgery steps that get inserted into existing surgeries at key points.
+Depending on the tool used after that point, the proxy step chooses the next step(s) that should be executed.
+ /datum /surgery /intermediate A partial surgery that consists of a few steps that may be found in the middle of another operation.
+An existing surgery can yield to an intermediate surgery for a few steps by way of a proxy surgery_step.
+ /datum/surgery_step/proxy Here's the special sauce: a surgery step that can pretend to be a few different surgery steps.
+These proxy steps will, depending on the tool that's used, either continue to the next surgery step, or temporarily spin off a new surgery
+by adding new steps to the current surgery.
+ /datum /surgery_step /proxy /open_organ Proxy surgery step to allow healing bleeding, bones, and burns.
+Should be added into surgeries just after the first three standard steps.
+ /datum /surgery_step /proxy /ib Mend IB without healing bones
+ /datum /surgery_step /proxy /robotics/repair_limb The robotic equivalent
Define Details
+
+ This file consists of how we manage somewhat non-linear surgeries.
+Essentially what goes on here is that we have some "proxy" surgery steps that get inserted into existing surgeries at key points.
+Depending on the tool used after that point, the proxy step chooses the next step(s) that should be executed.
+These proxy steps use a list of surgeries, so a full procedure can be inserted into an existing surgery. Just make sure that the user's state
+after an intermediate surgery is (in the context of the surgery) identical to before the intermediate surgery. Don't heal things that will
+need to be healed during the surgery, for example.
+Adding a new intermediate surgery:
+
+Define a new intermediate surgery datum with the list of steps that you want to inject. This forms one surgery "branch".
+Define a new proxy surgery step with branches containing the typepath of your new surgery datum.
+Insert that surgery step into an existing surgery.
+
+
+
+
diff --git a/code/modules/surgery/bones.html b/code/modules/surgery/bones.html
new file mode 100644
index 0000000000000..b3a7caf0f18d2
--- /dev/null
+++ b/code/modules/surgery/bones.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/surgery/bones.dm - Space Station 13
+
+
+
+
+code/modules/surgery/bones.dm
+
+
+
+
+
+
+
diff --git a/code/modules/surgery/organs/augments_arms.html b/code/modules/surgery/organs/augments_arms.html
new file mode 100644
index 0000000000000..169c7dd2f2c9a
--- /dev/null
+++ b/code/modules/surgery/organs/augments_arms.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/surgery/organs/augments_arms.dm - Space Station 13
+
+
+
+
+code/modules/surgery/organs/augments_arms.dm
+
+
+
+
+ /obj /item /organ /internal /cyberimp/arm/janitorial/advanced ERT implant, i dont overly expect this to get into the hands of crew
+ /obj /item /organ /internal /cyberimp/arm/janitorial/advanced/l its for ERT, but still probably a good idea.
+
+
+
diff --git a/code/modules/surgery/organs/blood.html b/code/modules/surgery/organs/blood.html
new file mode 100644
index 0000000000000..24c37f1b58bb6
--- /dev/null
+++ b/code/modules/surgery/organs/blood.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/surgery/organs/blood.dm - Space Station 13
+
+
+
+
+code/modules/surgery/organs/blood.dm
+
+
+
+Define Details
+EXOTIC_BLEED_MULTIPLIER
+
+
+
+ BLOOD SYSTEM
+
+
+
diff --git a/code/modules/surgery/organs/organ_datums/heart_datum.html b/code/modules/surgery/organs/organ_datums/heart_datum.html
new file mode 100644
index 0000000000000..87263a8709e2b
--- /dev/null
+++ b/code/modules/surgery/organs/organ_datums/heart_datum.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/surgery/organs/organ_datums/heart_datum.dm - Space Station 13
+
+
+
+
+code/modules/surgery/organs/organ_datums/heart_datum.dm
+
+
+
+
+ /datum /organ /heart/always_beating A subtype that is always beating. Abductor glands and demon hearts use this.
+
+
+
diff --git a/code/modules/surgery/organs/organ_external.html b/code/modules/surgery/organs/organ_external.html
new file mode 100644
index 0000000000000..5ca6c38eeb35b
--- /dev/null
+++ b/code/modules/surgery/organs/organ_external.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/surgery/organs/organ_external.dm - Space Station 13
+
+
+
+
+code/modules/surgery/organs/organ_external.dm
+
+
+
+
+
+
+
diff --git a/code/modules/surgery/organs/organ_extractor.html b/code/modules/surgery/organs/organ_extractor.html
new file mode 100644
index 0000000000000..ddc7827be4d7e
--- /dev/null
+++ b/code/modules/surgery/organs/organ_extractor.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/surgery/organs/organ_extractor.dm - Space Station 13
+
+
+
+
+code/modules/surgery/organs/organ_extractor.dm
+
+
+
+
+ /obj /item /organ_extractor/abductor Advanced abductor version. Is a lot faster with implanting into others
+
+
+
diff --git a/code/modules/surgery/organs/subtypes/diona_organs.html b/code/modules/surgery/organs/subtypes/diona_organs.html
new file mode 100644
index 0000000000000..5dbf547defe9b
--- /dev/null
+++ b/code/modules/surgery/organs/subtypes/diona_organs.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/surgery/organs/subtypes/diona_organs.dm - Space Station 13
+
+
+
+
+code/modules/surgery/organs/subtypes/diona_organs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/surgery/organs/subtypes/standard_organs.html b/code/modules/surgery/organs/subtypes/standard_organs.html
new file mode 100644
index 0000000000000..238a1a3ec7ef3
--- /dev/null
+++ b/code/modules/surgery/organs/subtypes/standard_organs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/surgery/organs/subtypes/standard_organs.dm - Space Station 13
+
+
+
+
+code/modules/surgery/organs/subtypes/standard_organs.dm
+
+
+
+
+
+
+
diff --git a/code/modules/surgery/organs/subtypes/tajaran_organs.html b/code/modules/surgery/organs/subtypes/tajaran_organs.html
new file mode 100644
index 0000000000000..dc4b380d1fbd9
--- /dev/null
+++ b/code/modules/surgery/organs/subtypes/tajaran_organs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/surgery/organs/subtypes/tajaran_organs.dm - Space Station 13
+
+
+
+
+code/modules/surgery/organs/subtypes/tajaran_organs.dm
+
+
+
+
+ /obj /item /organ /internal /eyes/tajaran/farwa Being the lesser form of Tajara, Farwas have an utterly incurable version of their colourblindness.
+
+
+
diff --git a/code/modules/surgery/organs/subtypes/vulpkanin_organs.html b/code/modules/surgery/organs/subtypes/vulpkanin_organs.html
new file mode 100644
index 0000000000000..1889df785bca9
--- /dev/null
+++ b/code/modules/surgery/organs/subtypes/vulpkanin_organs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/surgery/organs/subtypes/vulpkanin_organs.dm - Space Station 13
+
+
+
+
+code/modules/surgery/organs/subtypes/vulpkanin_organs.dm
+
+
+
+
+ /obj /item /organ /internal /eyes/vulpkanin/wolpin Being the lesser form of Vulpkanin, Wolpins have an utterly incurable version of their colourblindness.
+
+
+
diff --git a/code/modules/surgery/organs/vocal_cords.html b/code/modules/surgery/organs/vocal_cords.html
new file mode 100644
index 0000000000000..cb0cf22d682e6
--- /dev/null
+++ b/code/modules/surgery/organs/vocal_cords.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/surgery/organs/vocal_cords.dm - Space Station 13
+
+
+
+
+code/modules/surgery/organs/vocal_cords.dm
+
+
+
+
+
+
+
diff --git a/code/modules/surgery/organs_internal.html b/code/modules/surgery/organs_internal.html
new file mode 100644
index 0000000000000..1cf4994648d16
--- /dev/null
+++ b/code/modules/surgery/organs_internal.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ code/modules/surgery/organs_internal.dm - Space Station 13
+
+
+
+
+code/modules/surgery/organs_internal.dm
+
+
+
+Define Details
+GHETTO_DISINFECT_AMOUNT
+
+
+
+ Amount of units to transfer from the container to the organs during disinfection step.
MITO_REVIVAL_COST
+
+
+
+ Amount of mito necessary to revive an organ
+
+
+
diff --git a/code/modules/surgery/other.html b/code/modules/surgery/other.html
new file mode 100644
index 0000000000000..dde6d7a19fae8
--- /dev/null
+++ b/code/modules/surgery/other.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/surgery/other.dm - Space Station 13
+
+
+
+
+code/modules/surgery/other.dm
+
+
+
+
+
+
+
diff --git a/code/modules/surgery/surgery.html b/code/modules/surgery/surgery.html
new file mode 100644
index 0000000000000..410f72b0177dd
--- /dev/null
+++ b/code/modules/surgery/surgery.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/surgery/surgery.dm - Space Station 13
+
+
+
+
+code/modules/surgery/surgery.dm
+
+
+
+
+
+
+
diff --git a/code/modules/surgery/tools.html b/code/modules/surgery/tools.html
new file mode 100644
index 0000000000000..8b6f71c888155
--- /dev/null
+++ b/code/modules/surgery/tools.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/surgery/tools.dm - Space Station 13
+
+
+
+
+code/modules/surgery/tools.dm
+
+
+
+
+ /obj /item /scalpel/laser parent type
+ /obj /item /scalpel/laser/laser1 lasers also count as catuarys
+ /obj /item /scalpel/laser/manager super tool! Retractor/hemostat
+
+
+
diff --git a/code/modules/telesci/gps.html b/code/modules/telesci/gps.html
new file mode 100644
index 0000000000000..f7e589202a49b
--- /dev/null
+++ b/code/modules/telesci/gps.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/telesci/gps.dm - Space Station 13
+
+
+
+
+code/modules/telesci/gps.dm
+
+
+
+
+ /obj/item/gps A small item that reports its current location. Has a tag to help distinguish between them.
+
+
+
diff --git a/code/modules/telesci/rcs.html b/code/modules/telesci/rcs.html
new file mode 100644
index 0000000000000..bd0a25105c437
--- /dev/null
+++ b/code/modules/telesci/rcs.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/telesci/rcs.dm - Space Station 13
+
+
+
+
+code/modules/telesci/rcs.dm
+
+
+
+
+ /obj/item/rcs Used to teleport crates and closets to cargo telepads.
+
+
+
diff --git a/code/modules/telesci/telepad.html b/code/modules/telesci/telepad.html
new file mode 100644
index 0000000000000..bc409d2bedbf3
--- /dev/null
+++ b/code/modules/telesci/telepad.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/telesci/telepad.dm - Space Station 13
+
+
+
+
+code/modules/telesci/telepad.dm
+
+
+
+
+
+
+
diff --git a/code/modules/tgs.html b/code/modules/tgs.html
new file mode 100644
index 0000000000000..ae04622b84f8b
--- /dev/null
+++ b/code/modules/tgs.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ code/modules/tgs/README.md - Space Station 13
+
+
+
+
+DMAPI Internals code/modules/tgs/README.md
+
+
+
+
+ This folder should be placed on it's own inside a codebase that wishes to use the TGS DMAPI. Warranty void if modified.
+
+includes.dm is the file that should be included by DM code, it handles including the rest.
+The core folder includes all code not directly part of any API version.
+The other versioned folders contain code for the different DMAPI versions.
+
+v3210 contains the final TGS3 API.
+v4 is the legacy DMAPI 4 (Used in TGS 4.0.X versions).
+v5 is the current DMAPI version used by TGS >=4.1.
+
+
+LICENSE is the MIT license for the DMAPI.
+
+APIs communicate with TGS in two ways. All versions implement TGS -> DM communication using /world/Topic. DM -> TGS communication, called the bridge method, is different for each version.
+
+
+
diff --git a/code/modules/tgs/core.html b/code/modules/tgs/core.html
new file mode 100644
index 0000000000000..0ca0658fb4319
--- /dev/null
+++ b/code/modules/tgs/core.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/tgs/core/README.md - Space Station 13
+
+
+
+
+Core DMAPI functions code/modules/tgs/core/README.md
+
+
+
+
+ This folder contains all DMAPI code not directly involved in an API.
+
+_definitions.dm contains defines needed across DMAPI internals.
+tgs_core.dm contains the implementations of the /world/proc/TgsXXX()
procs. Many map directly to the /datum/tgs_api
functions. It also contains the /datum selection and setup code.
+tgs_datum.dm contains the /datum/tgs_api
declarations that all APIs must implement.
+tgs_version.dm contains the /datum/tgs_version
definition
+
+
+
+
diff --git a/code/modules/tgs/v3210.html b/code/modules/tgs/v3210.html
new file mode 100644
index 0000000000000..cea0fd8896d7c
--- /dev/null
+++ b/code/modules/tgs/v3210.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/tgs/v3210/README.md - Space Station 13
+
+
+
+
+DMAPI V3 code/modules/tgs/v3210/README.md
+
+
+
+
+ This DMAPI implements bridge using file output which TGS monitors for.
+
+v3_api.dm contains the bulk of the API code.
+v3_commands.dm contains functions relating to /datum/tgs_chat_command
s.
+
+
+
+
diff --git a/code/modules/tgs/v4.html b/code/modules/tgs/v4.html
new file mode 100644
index 0000000000000..28aab75a1ae06
--- /dev/null
+++ b/code/modules/tgs/v4.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/tgs/v4/README.md - Space Station 13
+
+
+
+
+DMAPI V4 code/modules/tgs/v4/README.md
+
+
+
+
+ This DMAPI implements bridge requests using file output which TGS monitors for. It has a safe mode restriction.
+
+v4_api.dm contains the bulk of the API code.
+v4_commands.dm contains functions relating to /datum/tgs_chat_command
s.
+
+
+
+
diff --git a/code/modules/tgs/v5.html b/code/modules/tgs/v5.html
new file mode 100644
index 0000000000000..c19e21bd2f607
--- /dev/null
+++ b/code/modules/tgs/v5.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ code/modules/tgs/v5/README.md - Space Station 13
+
+
+
+
+DMAPI V5 code/modules/tgs/v5/README.md
+
+
+
+
+ This DMAPI implements bridge requests using HTTP GET requests to TGS. It has no security restrictions.
+
+v5_interop_version.dm contains the version of the API used between the DMAPI and TGS.
+_v5_defines.dm contains constant definitions.
+v5_api.dm contains the bulk of the API code.
+v5_bridge.dm contains functions related to making bridge requests.
+v5_chunking.dm contains common function for splitting large raw data sets into chunks BYOND can natively process.
+v5_commands.dm contains functions relating to /datum/tgs_chat_command
s.
+v5_serializers.dm contains function to help convert interop /datum
s into a JSON encodable list()
format.
+v5_topic.dm contains functions related to processing topic requests.
+v5_undefs.dm Undoes the work of _defines.dm
.
+
+
+
+
diff --git a/code/modules/tgui/external.html b/code/modules/tgui/external.html
new file mode 100644
index 0000000000000..445cfe78edc0e
--- /dev/null
+++ b/code/modules/tgui/external.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/external.dm - Space Station 13
+
+
+
+
+code/modules/tgui/external.dm
+
+
+
+
+ /proc/tgui_Topic
+ Middleware for /client/Topic.
+
+
+
diff --git a/code/modules/tgui/modules/ghost_hud_panel.html b/code/modules/tgui/modules/ghost_hud_panel.html
new file mode 100644
index 0000000000000..515bc26926ae0
--- /dev/null
+++ b/code/modules/tgui/modules/ghost_hud_panel.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/tgui/modules/ghost_hud_panel.dm - Space Station 13
+
+
+
+
+code/modules/tgui/modules/ghost_hud_panel.dm
+
+
+
+
+
+
+
diff --git a/code/modules/tgui/plugins/modal.html b/code/modules/tgui/plugins/modal.html
new file mode 100644
index 0000000000000..aea0b05e192f9
--- /dev/null
+++ b/code/modules/tgui/plugins/modal.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/tgui/plugins/modal.dm - Space Station 13
+
+
+
+
+code/modules/tgui/plugins/modal.dm
+
+
+
+
+ /datum/ui_modal Modal datum (contains base information for a modal)
+ /datum /ui_modal /input Input modal - has a text entry that can be used to enter an answer
+ /datum /ui_modal /input/choice Choice modal - has a dropdown menu that can be used to select an answer
+ /datum/ui_modal/input/bento Bento modal - Similar to choice, it displays the choices in a grid of images
+ /datum /ui_modal /boolean Boolean modal - has yes/no buttons that do different actions depending on which is pressed
+
+
+
diff --git a/code/modules/tgui/plugins/tgui_login.html b/code/modules/tgui/plugins/tgui_login.html
new file mode 100644
index 0000000000000..d657f706a4706
--- /dev/null
+++ b/code/modules/tgui/plugins/tgui_login.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/tgui/plugins/tgui_login.dm - Space Station 13
+
+
+
+
+code/modules/tgui/plugins/tgui_login.dm
+
+
+
+
+ /datum /ui_login Login state (there should be only one for one datum)
+
+
+
diff --git a/code/modules/tgui/states/always.html b/code/modules/tgui/states/always.html
new file mode 100644
index 0000000000000..df975ccdafb6c
--- /dev/null
+++ b/code/modules/tgui/states/always.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/always.dm - Space Station 13
+
+
+
+
+code/modules/tgui/states/always.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/conscious.html b/code/modules/tgui/states/conscious.html
new file mode 100644
index 0000000000000..8bd0f85d9d8eb
--- /dev/null
+++ b/code/modules/tgui/states/conscious.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/conscious.dm - Space Station 13
+
+
+
+
+code/modules/tgui/states/conscious.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/contained.html b/code/modules/tgui/states/contained.html
new file mode 100644
index 0000000000000..feef3f4c12bd4
--- /dev/null
+++ b/code/modules/tgui/states/contained.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/contained.dm - Space Station 13
+
+
+
+
+code/modules/tgui/states/contained.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/deep_inventory.html b/code/modules/tgui/states/deep_inventory.html
new file mode 100644
index 0000000000000..5244b4f7c18ce
--- /dev/null
+++ b/code/modules/tgui/states/deep_inventory.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/deep_inventory.dm - Space Station 13
+
+
+
+
+code/modules/tgui/states/deep_inventory.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/hands.html b/code/modules/tgui/states/hands.html
new file mode 100644
index 0000000000000..e27bae9a2ab74
--- /dev/null
+++ b/code/modules/tgui/states/hands.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/hands.dm - Space Station 13
+
+
+
+
+code/modules/tgui/states/hands.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/human_adjacent.html b/code/modules/tgui/states/human_adjacent.html
new file mode 100644
index 0000000000000..e6c16380e72a0
--- /dev/null
+++ b/code/modules/tgui/states/human_adjacent.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/human_adjacent.dm - Space Station 13
+
+
+
+
+code/modules/tgui/states/human_adjacent.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/not_incapacitated.html b/code/modules/tgui/states/not_incapacitated.html
new file mode 100644
index 0000000000000..b5eca4ae58b6d
--- /dev/null
+++ b/code/modules/tgui/states/not_incapacitated.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/not_incapacitated.dm - Space Station 13
+
+
+
+
+code/modules/tgui/states/not_incapacitated.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/notcontained.html b/code/modules/tgui/states/notcontained.html
new file mode 100644
index 0000000000000..feec236eacd27
--- /dev/null
+++ b/code/modules/tgui/states/notcontained.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/notcontained.dm - Space Station 13
+
+
+
+
+code/modules/tgui/states/notcontained.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/physical.html b/code/modules/tgui/states/physical.html
new file mode 100644
index 0000000000000..869885618428c
--- /dev/null
+++ b/code/modules/tgui/states/physical.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/physical.dm - Space Station 13
+
+
+
+
+code/modules/tgui/states/physical.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/self.html b/code/modules/tgui/states/self.html
new file mode 100644
index 0000000000000..fb53e32114ab8
--- /dev/null
+++ b/code/modules/tgui/states/self.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/self.dm - Space Station 13
+
+
+
+
+code/modules/tgui/states/self.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/tgui_datum.html b/code/modules/tgui/tgui_datum.html
new file mode 100644
index 0000000000000..ea961ed460c4e
--- /dev/null
+++ b/code/modules/tgui/tgui_datum.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui_datum.dm - Space Station 13
+
+
+
+
+code/modules/tgui/tgui_datum.dm
+
+
+
+
+ /datum/tgui Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/tgui_input/alert_input.html b/code/modules/tgui/tgui_input/alert_input.html
new file mode 100644
index 0000000000000..c5e4c14466256
--- /dev/null
+++ b/code/modules/tgui/tgui_input/alert_input.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui_input/alert_input.dm - Space Station 13
+
+
+
+
+code/modules/tgui/tgui_input/alert_input.dm
+
+
+
+
+ /proc/tgui_alert
+ Creates a TGUI alert window and returns the user's response.
+ /datum/tgui_alert Datum used for instantiating and using a TGUI-controlled modal that prompts the user with
+a message and has buttons for responses.
+
+
+
diff --git a/code/modules/tgui/tgui_input/list_input.html b/code/modules/tgui/tgui_input/list_input.html
new file mode 100644
index 0000000000000..e8a251367136a
--- /dev/null
+++ b/code/modules/tgui/tgui_input/list_input.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui_input/list_input.dm - Space Station 13
+
+
+
+
+code/modules/tgui/tgui_input/list_input.dm
+
+
+
+
+
+
+
diff --git a/code/modules/tgui/tgui_input/number_input.html b/code/modules/tgui/tgui_input/number_input.html
new file mode 100644
index 0000000000000..e60497b8811af
--- /dev/null
+++ b/code/modules/tgui/tgui_input/number_input.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui_input/number_input.dm - Space Station 13
+
+
+
+
+code/modules/tgui/tgui_input/number_input.dm
+
+
+
+
+ /proc/tgui_input_number
+ Creates a TGUI window with a number input. Returns the user's response as num | null.
+ /datum/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.
+
+
+
diff --git a/code/modules/tgui/tgui_input/text_input.html b/code/modules/tgui/tgui_input/text_input.html
new file mode 100644
index 0000000000000..529a6e24744b3
--- /dev/null
+++ b/code/modules/tgui/tgui_input/text_input.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui_input/text_input.dm - Space Station 13
+
+
+
+
+code/modules/tgui/tgui_input/text_input.dm
+
+
+
+
+
+
+
diff --git a/code/modules/tgui/tgui_panel.html b/code/modules/tgui/tgui_panel.html
new file mode 100644
index 0000000000000..9a1ba68eebbbf
--- /dev/null
+++ b/code/modules/tgui/tgui_panel.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui_panel/README.md - Space Station 13
+
+
+
+
+code/modules/tgui/tgui_panel/README.md
+
+
+
+
+ /TG/ Chat
+/TG/ Chat, which will be referred to as TgChat from this point onwards, is a system in which we can send messages to clients in a controlled and semi-reliable manner. The standard way of sending messages to BYOND clients simply dumps whatever you output to them directly into their chat window, however BYOND allows us to load our own code on the client to change this behaviour in a way that allows us to do some pretty neat things.
+Message Format
+TgChat handles sending messages from the server to the client through the use of JSON payloads, of which the format will change depending on the type of message and the intended client endpoint. An example of the payload for chat messages is as follows:
+{
+ "sequence": 0,
+ "content": {
+ "type": ". . .", // ?optional
+ "text": ". . .", // ?optional !atleast-one
+ "html": ". . .", // ?optional !atleast-one
+ "avoidHighlighting": 0 // ?optional
+ },
+}
+
+Reliability
+In the past there have been issues where BYOND will silently and without reason lose a message we sent to the client, to detect this and recover from it seamlessly TgChat also has a baked in reliability layer. This reliability layer is very primitive, and simply keeps track of received sequence numbers. Should the client receive an unexpected sequence number TgChat asks the server to resend any missing packets.
+Ping System
+TgChat supports a round trip time ping measurement, which is displayed to the client so they can know how long it takes for their commands and inputs to reach the server. This is done by sending the client a ping request, ping/soft
, which tells the client to send a ping to the server. When the server receives said ping it sends a reply, ping/reply
, to the client with a payload containing the current DateTime which the client can reference against the initial ping request.
+Chat Tabs, Local Storage, and Highlighting
+To make organizing and managing chat easier and more functional for both players and admins, TgChat has the ability to filter out messages based on their primary tag, such as individual departmental radios, to a dedicated chat tab for easier reading and comprehension. These tabs can also be configured to highlist messages based on a simple keyword search. You can set a multitude of different keywords to search for and they will be highlighting for instant alerting of the client. Said tabs, highlighting rules, and your chat history will persist thanks to use of local storage on the client. Using local storage TgChat can ensure that your preferences are saved and maintained between client restarts and switching between other /TG/ servers. Local Storage is also used to keep your chat history aswell, should you need to scroll through your chat logs.
+
+
+
diff --git a/code/modules/tgui/tgui_panel/telemetry.html b/code/modules/tgui/tgui_panel/telemetry.html
new file mode 100644
index 0000000000000..d85440a873e04
--- /dev/null
+++ b/code/modules/tgui/tgui_panel/telemetry.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui_panel/telemetry.dm - Space Station 13
+
+
+
+
+code/modules/tgui/tgui_panel/telemetry.dm
+
+
+
+Define Details
+TGUI_TELEMETRY_MAX_CONNECTIONS
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+Maximum number of connection records allowed to analyze.
+Should match the value set in the browser.
TGUI_TELEMETRY_RESPONSE_WINDOW
+
+
+
+ Maximum time allocated for sending a telemetry packet.
+
+
+
diff --git a/code/modules/tgui/tgui_panel/tgui_panel.html b/code/modules/tgui/tgui_panel/tgui_panel.html
new file mode 100644
index 0000000000000..a228730083d9a
--- /dev/null
+++ b/code/modules/tgui/tgui_panel/tgui_panel.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui_panel/tgui_panel.dm - Space Station 13
+
+
+
+
+code/modules/tgui/tgui_panel/tgui_panel.dm
+
+
+
+
+
+
+
diff --git a/code/modules/tgui/tgui_panel/tgui_panel_message.html b/code/modules/tgui/tgui_panel/tgui_panel_message.html
new file mode 100644
index 0000000000000..4a3ede1d21666
--- /dev/null
+++ b/code/modules/tgui/tgui_panel/tgui_panel_message.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui_panel/tgui_panel_message.dm - Space Station 13
+
+
+
+
+code/modules/tgui/tgui_panel/tgui_panel_message.dm
+
+
+
+
+
+
+
diff --git a/code/modules/tgui/tgui_panel/to_chat.html b/code/modules/tgui/tgui_panel/to_chat.html
new file mode 100644
index 0000000000000..f829a0bc020bd
--- /dev/null
+++ b/code/modules/tgui/tgui_panel/to_chat.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui_panel/to_chat.dm - Space Station 13
+
+
+
+
+code/modules/tgui/tgui_panel/to_chat.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ /proc/to_chat_immediate
+ Circumvents the message queue and sends the message to the recipient (target) as soon as possible.
+trailing_newline, confidential, and handle_whitespace currently have no effect, please fix this in the future or remove the arguments to lower cache!
+ /proc/to_chat
+ Sends the message to the recipient (target).
+
+
+
diff --git a/code/modules/tgui/tgui_window.html b/code/modules/tgui/tgui_window.html
new file mode 100644
index 0000000000000..4cc836745ae18
--- /dev/null
+++ b/code/modules/tgui/tgui_window.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui_window.dm - Space Station 13
+
+
+
+
+code/modules/tgui/tgui_window.dm
+
+
+
+
+
+
+
diff --git a/code/modules/tgui_input/say_modal/tgui_say_modal.html b/code/modules/tgui_input/say_modal/tgui_say_modal.html
new file mode 100644
index 0000000000000..6125573c29c5b
--- /dev/null
+++ b/code/modules/tgui_input/say_modal/tgui_say_modal.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/tgui_input/say_modal/tgui_say_modal.dm - Space Station 13
+
+
+
+
+code/modules/tgui_input/say_modal/tgui_say_modal.dm
+
+
+
+
+ /datum/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.
+
+
+
diff --git a/datum.html b/datum.html
new file mode 100644
index 0000000000000..de1b246c992d5
--- /dev/null
+++ b/datum.html
@@ -0,0 +1,543 @@
+
+
+
+
+
+
+ /datum - Space Station 13
+
+
+
+
+datum
+
+
+
+
+
+Vars
+ cached_ref A cached version of our \ref
+The brunt of \ref costs are in creating entries in the string tree (a tree of immutable strings)
+This avoids doing that more then once per datum by ensuring ref strings always have a reference to them after they're first pulled
+ isprocessing Used by SSprocessing
+ status_traits Status traits attached to this datum
+ tgui_shared_states global Procs
+ CanProcCall Proc to check if a datum allows proc calls on it
+ GetComponent Return any component assigned to this datum of the given type
+ GetComponents Get all components of a given type that are attached to this datum
+ GetExactComponent Return any component assigned to this datum of the exact given type
+ LoadComponent Get existing component of type, or create it and return a reference to it
+ RegisterSignal Register to listen for a signal from the passed in target
+ RegisterSignals Registers multiple signals to the same proc.
+ TakeComponent Transfer this component to another parent
+ TransferComponent Transfer a single component from the source datum, to the target.
+ TransferComponents Transfer all components to target
+ UID Gets or creates the UID of a datum
+ UnregisterSignal Stop listening to a given signal from target
+ _AddComponent Creates an instance of new_type
in the datum and attaches to it as parent
+ _AddElement Finds the singleton for the element type given and attaches it to src
+ _RemoveElement Finds the singleton for the element type given and detaches it from src
+You only need additional arguments beyond the type if you're using ELEMENT_BESPOKE
+ _SendSignal Internal proc to handle most all of the signaling procedure
+ p_they These are generally cheaper than looping contents so they go first
+ signal_qdel
+ string_assoc_list Caches associative lists with non-numeric stringify-able index keys and stringify-able values (text/typepath -> text/path/number).
+ ui_act public
+ ui_assets public
+ ui_close public
+ ui_data public
+ ui_host private
+ ui_interact External tgui definitions, such as src_object APIs.
+ ui_modal_act Call this from a proc that is called in ui_act() to process modal actions
+ ui_modal_answer Calls the source's currently assigned modal's (if there is one) on_answer() proc. Private.
+ ui_modal_bento Opens a bento input UI modal
+ ui_modal_boolean Opens a yes/no UI modal
+ ui_modal_choice Opens a dropdown input UI modal
+ ui_modal_clear Clears the current modal for a given datum
+ ui_modal_data Call this from ui_data() to return modal information if needed
+ ui_modal_input Opens a text input UI modal
+ ui_modal_message Opens a message UI modal
+ ui_modal_new Registers a given modal to a source. Private.
+ ui_modal_preprocess_answer Passes an answer from JS through the modal's proc.
+ ui_state private
+ ui_static_data public
+ ui_status Base state and helpers for states. Just does some sanity checks,
+implement a proper state for in-depth checks.
+ update_static_data public
+ Var Details cached_ref
+
+
+
+
+
+ A cached version of our \ref
+The brunt of \ref costs are in creating entries in the string tree (a tree of immutable strings)
+This avoids doing that more then once per datum by ensuring ref strings always have a reference to them after they're first pulled
isprocessing
+
+
+
+
+
+ Used by SSprocessing
status_traits
+
+
+
+
+
+ Status traits attached to this datum
tgui_shared_states
+
+
+
+
+
+ global
+Associative list of JSON-encoded shared states that were set by
+tgui clients.
Proc Details CanProcCall(procname)
+
+
+
+
+
+ Proc to check if a datum allows proc calls on it
+Returns TRUE if you can call a proc on the datum, FALSE if you cant
GetComponent
+
+ Return any component assigned to this datum of the given type
+This will throw an error if it's possible to have more than one component of that type on the parent
+Arguments:
+
+datum/component/c_type The typepath of the component you want to get a reference to
+ GetComponents(c_type)
+
+
+
+
+
+ Get all components of a given type that are attached to this datum
+Arguments:
+
+c_type The component type path
+ GetExactComponent
+
+ Return any component assigned to this datum of the exact given type
+This will throw an error if it's possible to have more than one component of that type on the parent
+Arguments:
+
+datum/component/c_type The typepath of the component you want to get a reference to
+ LoadComponent(component_type, ...)
+
+
+
+
+
+ Get existing component of type, or create it and return a reference to it
+Use this if the item needs to exist at the time of this call, but may not have been created before now
+Arguments:
+
+component_type The typepath of the component to create or return
+... additional arguments to be passed when creating the component if it does not exist
+ RegisterSignal(/datum /target, sig_type_or_types, proctype, override)
+
+
+
+
+
+ Register to listen for a signal from the passed in target
+This sets up a listening relationship such that when the target object emits a signal
+the source datum this proc is called upon, will receive a callback to the given proctype
+Return values from procs registered must be a bitfield
+Arguments:
+
+datum/target The target to listen for signals from
+sig_type_or_types Either a string signal name, or a list of signal names (strings)
+proctype The proc to call back when the signal is emitted
+override If a previous registration exists you must explicitly set this
+ RegisterSignals(/datum /target, /list/signal_types, proctype, override)
+
+
+
+
+
+ Registers multiple signals to the same proc.
TakeComponent
+
+ Transfer this component to another parent
+Component is taken from source datum
+Arguments:
+
+datum/component/target Target datum to transfer to
+ TransferComponent(/datum /target, component_instance_or_typepath)
+
+
+
+
+
+ Transfer a single component from the source datum, to the target.
+Arguments:
+
+datum/target - the target to move the component to
+component_instance_or_typepath - either an already created component, or a component typepath
+ TransferComponents
+
+ Transfer all components to target
+All components from source datum are taken
+Arguments:
+
+/datum/target the target to move the components to
+ UID()
+
+
+
+
+
+ Gets or creates the UID of a datum
+BYOND refs are recycled, so this system prevents that. If a datum does not have a UID when this proc is ran, one will be created
+Returns the UID of the datum
UnregisterSignal(/datum /target, sig_type_or_types)
+
+
+
+
+
+ Stop listening to a given signal from target
+Breaks the relationship between target and source datum, removing the callback when the signal fires
+Doesn't care if a registration exists or not
+Arguments:
+
+datum/target Datum to stop listening to signals from
+sig_typeor_types Signal string key or list of signal keys to stop listening to specifically
+ _AddComponent(/list/raw_args)
+
+
+
+
+
+ Creates an instance of new_type
in the datum and attaches to it as parent
+Sends the COMSIG_COMPONENT_ADDED signal to the datum
+Returns the component that was created. Or the old component in a dupe situation where COMPONENT_DUPE_UNIQUE was set
+If this tries to add a component to an incompatible type, the component will be deleted and the result will be null
. This is very unperformant, try not to do it
+Properly handles duplicate situations based on the dupe_mode
var
_AddElement(/list/arguments)
+
+
+
+
+
+ Finds the singleton for the element type given and attaches it to src
_RemoveElement(/list/arguments)
+
+
+
+
+
+ Finds the singleton for the element type given and detaches it from src
+You only need additional arguments beyond the type if you're using ELEMENT_BESPOKE
_SendSignal(sigtype, /list/arguments)
+
+
+
+
+
+ Internal proc to handle most all of the signaling procedure
+Will runtime if used on datums with an empty component list
+Use the SEND_SIGNAL define instead
p_they(capitalized, temp_gender)
+
+
+
+
+
+ These are generally cheaper than looping contents so they go first
signal_qdel()
+
+
+
+
+
+ Signal qdel
+Proc intended to be used when someone wants the src datum to be qdeled when a certain signal is sent to them.
+Example usage:
+RegisterSignal(item, COMSIG_PARENT_QDELETING, TYPE_PROC_REF(/datum, signal_qdel))
string_assoc_list(/list/values)
+
+
+
+
+
+ Caches associative lists with non-numeric stringify-able index keys and stringify-able values (text/typepath -> text/path/number).
ui_act
+
+ public
+Called on a UI when the UI receieves a href.
+Think of this as Topic().
+required action string The action/button that has been invoked by the user.
+required params list A list of parameters attached to the button.
+return bool If the UI should be updated or not.
ui_assets
+
+ public
+Called on an object when a tgui object is being created, allowing you to
+push various assets to tgui, for examples spritesheets.
+return list List of asset datums or file paths.
ui_close
+
+ public
+Called on a UI's object when the UI is closed, not to be confused with
+client/verb/uiclose(), which closes the ui window
ui_data
+
+ public
+Data to be sent to the UI.
+This must be implemented for a UI to work.
+required user mob The mob interacting with the UI.
+return list Data to be sent to the UI.
ui_host
+
+ private
+The UI's host object (usually src_object).
+This allows modules/datums to have the UI attached to them,
+and be a part of another object.
ui_interact
+
+ External tgui definitions, such as src_object APIs.
+Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+public
+Used to open and update UIs.
+If this proc is not implemented properly, the UI will not update correctly.
+required user mob The mob who opened/is using the UI.
+optional ui datum/tgui The UI to be updated, if it exists.
ui_modal_act(/datum /source, action, params)
+
+
+
+
+
+ Call this from a proc that is called in ui_act() to process modal actions
+Example: /obj/machinery/chem_master/proc/ui_act_modal
+You can then switch based on the return value and show different
+modals depending on the answer.
+Arguments:
+
+source - The source datum
+action - The called action
+params - The params to the action
+ ui_modal_answer(/datum /source, id, answer)
+
+
+
+
+
+ Calls the source's currently assigned modal's (if there is one) on_answer() proc. Private.
+Arguments:
+
+source - The source datum
+id - The ID of the modal
+answer - The provided answer
+ ui_modal_bento(/datum /source, id, text, delegate, arguments, value, choices)
+
+
+
+
+
+ Opens a bento input UI modal
+Internally checks if the answer is in the list of choices.
+Arguments:
+
+source - The source datum
+id - The ID of the modal
+text - The text to display above the answers
+delegate - The proc to call when submitted
+arguments - List of arguments passed to and from JS (mostly useful for chaining modals)
+value - The default value of the bento
+choices - The list of available choices in the bento
+ ui_modal_boolean(/datum /source, id, text, delegate, delegate_no, arguments, yes_text, no_text)
+
+
+
+
+
+ Opens a yes/no UI modal
+Arguments:
+
+source - The source datum
+id - The ID of the modal
+text - The text to display above the answers
+delegate - The proc to call when "Yes" is pressed
+delegate_no - The proc to call when "No" is pressed
+arguments - List of arguments passed to and from JS (mostly useful for chaining modals)
+yes_text - The text to show in the "Yes" button
+no_text - The text to show in the "No" button
+ ui_modal_choice(/datum /source, id, text, delegate, arguments, value, choices)
+
+
+
+
+
+ Opens a dropdown input UI modal
+Internally checks if the answer is in the list of choices.
+Arguments:
+
+source - The source datum
+id - The ID of the modal
+text - The text to display above the answers
+delegate - The proc to call when submitted
+arguments - List of arguments passed to and from JS (mostly useful for chaining modals)
+value - The default value of the dropdown
+choices - The list of available choices in the dropdown
+ ui_modal_clear
+
+ Clears the current modal for a given datum
+Arguments:
+
+source - The source datum
+ ui_modal_data
+
+ Call this from ui_data() to return modal information if needed
+Arguments:
+
+source - The source datum
+
+ Opens a text input UI modal
+Arguments:
+
+source - The source datum
+id - The ID of the modal
+text - The text to display above the answers
+delegate - The proc to call when submitted
+arguments - List of arguments passed to and from JS (mostly useful for chaining modals)
+value - The default value of the input
+max_length - The maximum char length of the input
+ ui_modal_message(/datum /source, id, text, delegate, arguments)
+
+
+
+
+
+ Opens a message UI modal
+Arguments:
+
+source - The source datum
+id - The ID of the modal
+text - The text to display above the answers
+delegate - The proc to call when closed
+arguments - List of arguments passed to and from JS (mostly useful for chaining modals)
+ ui_modal_new
+
+ Registers a given modal to a source. Private.
+Arguments:
+
+source - The source datum
+modal - The datum/ui_modal to register
+replace_previous - Whether any modal currently assigned to source should be replaced
+instant_update - Whether the changes should reflect immediately
+ ui_modal_preprocess_answer(/datum /source, answer)
+
+
+
+
+
+ Passes an answer from JS through the modal's proc.
+Used namely for cutting the text short if it's longer
+than an input modal's max_length.
+Arguments:
+
+source - The source datum
+answer - The provided answer
+ ui_state
+
+ private
+The UI's state controller to be used for created uis
+This is a proc over a var for memory reasons
ui_static_data
+
+ public
+Static Data to be sent to the UI.
+Static data differs from normal data in that it's large data that should be
+sent infrequently. This is implemented optionally for heavy uis that would
+be sending a lot of redundant data frequently. Gets squished into one
+object on the frontend side, but the static part is cached.
+required user mob The mob interacting with the UI.
+return list Statuic Data to be sent to the UI.
ui_status
+
+ Base state and helpers for states. Just does some sanity checks,
+implement a proper state for in-depth checks.
+Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+public
+Checks the UI state for a mob.
+required user mob The mob who opened/is using the UI.
+required state datum/ui_state The state to check.
+return UI_state The state of the UI.
update_static_data
+
+ public
+Forces an update on static data. Should be done manually whenever something
+happens to change static data.
+required user the mob currently interacting with the ui
+optional ui ui to be updated
+
+
+
diff --git a/datum/action.html b/datum/action.html
new file mode 100644
index 0000000000000..04f8e0dc0a2ac
--- /dev/null
+++ b/datum/action.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/action - Space Station 13
+
+
+
+
+
+
+Vars
+ default_button_position Where any buttons we create should be by default. Accepts screen_loc and location defines
+ show_to_observers Whether or not this will be shown to observers
+ viewers Map of huds viewing a button with our action -> their button
+ Var Details
+ Where any buttons we create should be by default. Accepts screen_loc and location defines
show_to_observers
+
+
+
+
+
+ Whether or not this will be shown to observers
viewers
+
+
+
+
+
+ Map of huds viewing a button with our action -> their button
+
+
+
diff --git a/datum/action/changeling.html b/datum/action/changeling.html
new file mode 100644
index 0000000000000..d5d955d06f3f7
--- /dev/null
+++ b/datum/action/changeling.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /datum/action/changeling - Space Station 13
+
+
+
+
+
+
+Vars
+ active If this power is active or not. Used for toggleable abilities.
+ bypass_fake_death If this power can be used while the changeling has the TRAIT_FAKEDEATH
trait.
+ category Datum path used to determine the location and name of the power in changeling evolution menu UI
+ chemical_cost Chemical cost to use this power.
+ cling A reference to the changeling's changeling antag datum.
+ dna_cost The cost of purchasing the power.
+ helptext A description of what the power does.
+ power_type Determines whether the power is always given to the changeling or if it must be purchased.
+ req_dna The amount of victims the changeling needs to absorb before they can use this power. Changelings always start with a value of 1.
+ req_human If you need to be in human form to activate this power.
+ req_stat What stat
value the changeling needs to have to use this power. Will be CONSCIOUS, UNCONSCIOUS or DEAD.
+ Var Details active
+
+
+
+
+
+ If this power is active or not. Used for toggleable abilities.
bypass_fake_death
+
+
+
+
+
+ If this power can be used while the changeling has the TRAIT_FAKEDEATH
trait.
+ Datum path used to determine the location and name of the power in changeling evolution menu UI
chemical_cost
+
+
+
+
+
+ Chemical cost to use this power.
+ A reference to the changeling's changeling antag datum.
dna_cost
+
+
+
+
+
+ The cost of purchasing the power.
helptext
+
+
+
+
+
+ A description of what the power does.
power_type
+
+
+
+
+
+ Determines whether the power is always given to the changeling or if it must be purchased.
req_dna
+
+
+
+
+
+ The amount of victims the changeling needs to absorb before they can use this power. Changelings always start with a value of 1.
req_human
+
+
+
+
+
+ If you need to be in human form to activate this power.
req_stat
+
+
+
+
+
+ What stat
value the changeling needs to have to use this power. Will be CONSCIOUS, UNCONSCIOUS or DEAD.
+
+
+
diff --git a/datum/action/changeling/biodegrade.html b/datum/action/changeling/biodegrade.html
new file mode 100644
index 0000000000000..d4f0cd602a005
--- /dev/null
+++ b/datum/action/changeling/biodegrade.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/changeling/biodegrade - Space Station 13
+
+
+
+
+
+
+Vars
+ current_hand Current hand given to human, null is we did not give hand, object if hand is given
+ hand Type of acid hand we give to person
+ Var Details current_hand
+ – /obj /item /melee/changeling_corrosive_acid
+
+
+
+
+ Current hand given to human, null is we did not give hand, object if hand is given
hand
+
+
+
+
+
+ Type of acid hand we give to person
+
+
+
diff --git a/datum/action/changeling/environmental_adaptation.html b/datum/action/changeling/environmental_adaptation.html
new file mode 100644
index 0000000000000..97871b89a1790
--- /dev/null
+++ b/datum/action/changeling/environmental_adaptation.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/changeling/environmental_adaptation - Space Station 13
+
+
+
+
+
+
+Vars
+ is_active is ability active (we are invisible)?
+ recharge_slowdown How much we slow chemical regeneration while active, in chems per second
+ Var Details is_active
+
+
+
+
+
+ is ability active (we are invisible)?
recharge_slowdown
+
+
+
+
+
+ How much we slow chemical regeneration while active, in chems per second
+
+
+
diff --git a/datum/action/changeling/evolution_menu.html b/datum/action/changeling/evolution_menu.html
new file mode 100644
index 0000000000000..e38e356104eb1
--- /dev/null
+++ b/datum/action/changeling/evolution_menu.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/action/changeling/evolution_menu - Space Station 13
+
+
+
+
+
+
+Vars
+ ability_tabs A list containing lists of category and abilities, related to this category. For each ability includes its name, description, helptext and cost. For use with the UI.
+ purchased_abilities A list containing the typepaths of bought changeling abilities. For use with the UI.
+ view_mode Which UI view will be displayed. Compact mode will show only power names, and will leave out their descriptions and helptext.
+ Var Details ability_tabs
+
+
+
+
+
+ A list containing lists of category and abilities, related to this category. For each ability includes its name, description, helptext and cost. For use with the UI.
purchased_abilities
+
+
+
+
+
+ A list containing the typepaths of bought changeling abilities. For use with the UI.
view_mode
+
+
+
+
+
+ Which UI view will be displayed. Compact mode will show only power names, and will leave out their descriptions and helptext.
+
+
+
diff --git a/datum/action/changeling/spiders.html b/datum/action/changeling/spiders.html
new file mode 100644
index 0000000000000..0c47e9cc86118
--- /dev/null
+++ b/datum/action/changeling/spiders.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/action/changeling/spiders - Space Station 13
+
+
+
+
+
+
+Vars
+ is_operating Checks if changeling is already spawning a spider
+ spider_counter This var keeps track of the changeling's spider count Procs
+ sting_action Makes a spider. Good for setting traps and combat.
+ Var Details is_operating
+
+
+
+
+
+ Checks if changeling is already spawning a spider
spider_counter
+
+
+
+
+
+ This var keeps track of the changeling's spider count
Proc Details sting_action
+
+ Makes a spider. Good for setting traps and combat.
+
+
+
diff --git a/datum/action/changeling/sting.html b/datum/action/changeling/sting.html
new file mode 100644
index 0000000000000..834452eae9475
--- /dev/null
+++ b/datum/action/changeling/sting.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/changeling/sting - Space Station 13
+
+
+
+
+
+
+Vars
+ click_override A middle click override used to intercept changeling stings performed on a target.
+ Var Details click_override
+ – /datum /middleClickOverride/callback_invoker
+
+
+
+
+ A middle click override used to intercept changeling stings performed on a target.
+
+
+
diff --git a/datum/action/changeling/weapon.html b/datum/action/changeling/weapon.html
new file mode 100644
index 0000000000000..bd36e9e8a9634
--- /dev/null
+++ b/datum/action/changeling/weapon.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/changeling/weapon - Space Station 13
+
+
+
+
+
+
+Vars
+ recharge_slowdown How much does the chemical recharge rate get reduced by having this weapon out?
+ Var Details recharge_slowdown
+
+
+
+
+
+ How much does the chemical recharge rate get reduced by having this weapon out?
+
+
+
diff --git a/datum/action/guardian/reset_guardian.html b/datum/action/guardian/reset_guardian.html
new file mode 100644
index 0000000000000..ad7b75e69720d
--- /dev/null
+++ b/datum/action/guardian/reset_guardian.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/guardian/reset_guardian - Space Station 13
+
+
+
+
+
+
+Allows the guardian host to exchange their guardian's player for another.
Procs
+ reset_cooldown Takes the action button off cooldown and makes it available again.
Proc Details reset_cooldown()
+
+
+
+
+
+ Takes the action button off cooldown and makes it available again.
+
+
+
diff --git a/datum/action/innate/cocoon.html b/datum/action/innate/cocoon.html
new file mode 100644
index 0000000000000..d6e8781611e6e
--- /dev/null
+++ b/datum/action/innate/cocoon.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/innate/cocoon - Space Station 13
+
+
+
+
+
+
+Procs
+ emerge Removes moth from cocoon, restores burnt wings
Proc Details emerge
+
+ Removes moth from cocoon, restores burnt wings
+
+
+
diff --git a/datum/action/innate/cult/blood_spell.html b/datum/action/innate/cult/blood_spell.html
new file mode 100644
index 0000000000000..75abcca301adb
--- /dev/null
+++ b/datum/action/innate/cult/blood_spell.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/innate/cult/blood_spell - Space Station 13
+
+
+
+
+
+
+The next generation of talismans, handles storage/creation of blood magic
Vars
+ positioned Have we already been positioned into our starting location?
+ Var Details positioned
+
+
+
+
+
+ Have we already been positioned into our starting location?
+
+
+
diff --git a/datum/action/innate/elite_attack.html b/datum/action/innate/elite_attack.html
new file mode 100644
index 0000000000000..abdc231ebda16
--- /dev/null
+++ b/datum/action/innate/elite_attack.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/innate/elite_attack - Space Station 13
+
+
+
+
+
+
+Vars
+ chosen_attack_num The internal attack ID for the elite's OpenFire() proc to use
+ chosen_message The displayed message into chat when this attack is selected
+ Var Details chosen_attack_num
+
+
+
+
+
+ The internal attack ID for the elite's OpenFire() proc to use
chosen_message
+
+
+
+
+
+ The displayed message into chat when this attack is selected
+
+
+
diff --git a/datum/action/item_action/agent_box.html b/datum/action/item_action/agent_box.html
new file mode 100644
index 0000000000000..12752fdfdbe47
--- /dev/null
+++ b/datum/action/item_action/agent_box.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/item_action/agent_box - Space Station 13
+
+
+
+
+
+
+
+ Var Details on_cooldown
+
+
+
+
+
+ If TRUE, the box can't be deployed
+
+
+
diff --git a/datum/action/item_action/mod/activate.html b/datum/action/item_action/mod/activate.html
new file mode 100644
index 0000000000000..e7a4b927811df
--- /dev/null
+++ b/datum/action/item_action/mod/activate.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/item_action/mod/activate - Space Station 13
+
+
+
+
+
+
+Vars
+ ready First time clicking this will set it to TRUE, second time will activate it. Procs
+ reset_ready Resets the state requiring to be doubleclicked again.
+ Var Details ready
+
+
+
+
+
+ First time clicking this will set it to TRUE, second time will activate it.
Proc Details reset_ready()
+
+
+
+
+
+ Resets the state requiring to be doubleclicked again.
+
+
+
diff --git a/datum/action/item_action/mod/pinned_module.html b/datum/action/item_action/mod/pinned_module.html
new file mode 100644
index 0000000000000..17665c71b8316
--- /dev/null
+++ b/datum/action/item_action/mod/pinned_module.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/item_action/mod/pinned_module - Space Station 13
+
+
+
+
+
+
+Vars
+ module Module we are linked to.
+ pinner_uid A ref to the mob we are pinned to.
+ Var Details
+ Module we are linked to.
pinner_uid
+
+
+
+
+
+ A ref to the mob we are pinned to.
+
+
+
diff --git a/datum/action/item_action/mod_recall.html b/datum/action/item_action/mod_recall.html
new file mode 100644
index 0000000000000..54edc1273259a
--- /dev/null
+++ b/datum/action/item_action/mod_recall.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/item_action/mod_recall - Space Station 13
+
+
+
+
+
+
+
+ Var Details recall_cooldown
+
+
+
+
+
+ The cooldown for the recall.
+
+
+
diff --git a/datum/action/item_action/organ_action/toggle/sensory_enhancer.html b/datum/action/item_action/organ_action/toggle/sensory_enhancer.html
new file mode 100644
index 0000000000000..caeaaffc58bc5
--- /dev/null
+++ b/datum/action/item_action/organ_action/toggle/sensory_enhancer.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/item_action/organ_action/toggle/sensory_enhancer - Space Station 13
+
+
+
+
+
+
+Vars
+ injection_amount Keeps track of how much mephedrone we inject into people on activation
+ Var Details injection_amount
+
+
+
+
+
+ Keeps track of how much mephedrone we inject into people on activation
+
+
+
diff --git a/datum/action_group.html b/datum/action_group.html
new file mode 100644
index 0000000000000..949b642a939eb
--- /dev/null
+++ b/datum/action_group.html
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+ /datum/action_group - Space Station 13
+
+
+
+
+
+
+Vars
+ actions The action buttons we're managing
+ column_max Max amount of buttons we can have per row
+Indexes at 1
+ landing Our landing screen object
+ location The screen location we go by
+ max_rows How many rows of actions we can have at max before we just stop hiding
+Indexes at 1
+ north_offset The initial vertical offset of our action buttons
+ owner The hud we're owned by
+ pixel_horiz_offset The pixel horizontal offset of our action buttons
+ pixel_north_offset The pixel vertical offset of our action buttons
+ row_offset How far "ahead" of the first row we start. Lets us "scroll" our rows
+Indexes at 1 Procs
+ ButtonNumberToScreenCoords Accepts a number represeting our position in the group, indexes at 0 to make the math nicer
+ clear_landing Clears any landing objects we may currently have
+ generate_landing Generates a landing object that can be dropped on to join this group
+ size Returns the amount of objects we're storing at the moment
+ Var Details actions
+ – /list/atom/movable/screen/movable/action_button
+
+
+
+
+ The action buttons we're managing
column_max
+
+
+
+
+
+ Max amount of buttons we can have per row
+Indexes at 1
+ Our landing screen object
location
+
+
+
+
+
+ The screen location we go by
max_rows
+
+
+
+
+
+ How many rows of actions we can have at max before we just stop hiding
+Indexes at 1
north_offset
+
+
+
+
+
+ The initial vertical offset of our action buttons
owner
+
+
+
+
+
+ The hud we're owned by
pixel_horiz_offset
+
+
+
+
+
+ The pixel horizontal offset of our action buttons
pixel_north_offset
+
+
+
+
+
+ The pixel vertical offset of our action buttons
row_offset
+
+
+
+
+
+ How far "ahead" of the first row we start. Lets us "scroll" our rows
+Indexes at 1
Proc Details
+ Accepts a number represeting our position in the group, indexes at 0 to make the math nicer
clear_landing()
+
+
+
+
+
+ Clears any landing objects we may currently have
generate_landing()
+
+
+
+
+
+ Generates a landing object that can be dropped on to join this group
size()
+
+
+
+
+
+ Returns the amount of objects we're storing at the moment
+
+
+
diff --git a/datum/admins.html b/datum/admins.html
new file mode 100644
index 0000000000000..26bbd210dca47
--- /dev/null
+++ b/datum/admins.html
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+ /datum/admins - Space Station 13
+
+
+
+
+
+
+
+ Var Details href_token
+
+
+
+
+
+ Unique-to-session randomly generated token given to each admin to help add detail to logs on admin interactions with hrefs
marked_datum
+
+
+
+
+
+ Our currently linked marked datum
rights
+
+
+
+
+
+ Bitflag containing the current rights this admin holder is assigned to
team_switch_tab_index
+
+
+
+
+
+ Our index into GLOB.antagonist_teams, so that admins can have pretty tabs in the Check Teams menu.
Proc Details ccbdb_lookup_callback
+
+ CCBDB Lookup Callback
+Callback assigned in /datum/admins/proc/create_ccbdb_lookup for async operations without a sleep()
+Arguments:
+
+user - Mob calling the lookup so the UI can be opened
+ckey - Ckey being looked up
+response - /datum/http_response passed through from [SShttp]
+ check_teams()
+
+
+
+
+
+ Opens a window which lists the teams for the round.
create_ccbdb_lookup(ckey)
+
+
+
+
+
+ CCBDB Lookup Initiator
+Checks the configuration before invoking the request to the CCBDB server.
+Arguments:
+
+ckey - ckey to be looked up
+ list_teams()
+
+
+
+
+
+ Returns HTML content for the "check teams" window.
modify_traits
+
+ Allow admin to add or remove traits of datum
restart()
+
+
+
+
+
+ admins2.dm merge
show_player_panel
+
+ Panels
station_traits_panel()
+
+
+
+
+
+ Opens the station traits admin panel
+
+
+
diff --git a/datum/ai_laws.html b/datum/ai_laws.html
new file mode 100644
index 0000000000000..f67d0b80605d0
--- /dev/null
+++ b/datum/ai_laws.html
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+ /datum/ai_laws - Space Station 13
+
+
+
+
+
+
+
+ Var Details unique_ai
+
+
+
+
+
+ Is this lawset used by the unique ai trait?
Proc Details clear_zeroth_laws()
+
+
+
+
+
+ Clear Laws
delete_law
+
+ Remove Laws
get_state_law
+
+ Stating Laws
+Get
set_state_law(/datum /ai_law/law, state)
+
+
+
+
+
+ Set
set_zeroth_law(law, law_borg)
+
+
+
+
+
+ Add Laws
+
+
+
diff --git a/datum/announcement_configuration.html b/datum/announcement_configuration.html
new file mode 100644
index 0000000000000..4dbeebe295fd6
--- /dev/null
+++ b/datum/announcement_configuration.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ /datum/announcement_configuration - Space Station 13
+
+
+
+
+
+
+Vars
+ add_log Whether or not to log the announcement when made.
+ global_announcement Global announcements are received regardless of being in range of a
+radio, unless you're in the lobby, to prevent metagaming.
+ log_name The name used when describing the announcement type in logs.
+ sound What sound to play when the announcement is made.
+ style A CSS class name.
+ Var Details add_log
+
+
+
+
+
+ Whether or not to log the announcement when made.
global_announcement
+
+
+
+
+
+ Global announcements are received regardless of being in range of a
+radio, unless you're in the lobby, to prevent metagaming.
log_name
+
+
+
+
+
+ The name used when describing the announcement type in logs.
sound
+
+
+
+
+
+ What sound to play when the announcement is made.
style
+
+
+
+
+
+ A CSS class name.
+
+
+
diff --git a/datum/announcer.html b/datum/announcer.html
new file mode 100644
index 0000000000000..f0fdd7e277df7
--- /dev/null
+++ b/datum/announcer.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/announcer - Space Station 13
+
+
+
+
+
+
+Vars
+ author The name used to sign off on announcements.
+ Var Details author
+
+
+
+
+
+ The name used to sign off on announcements.
+
+
+
diff --git a/datum/antagonist.html b/datum/antagonist.html
new file mode 100644
index 0000000000000..d1365ae5c6814
--- /dev/null
+++ b/datum/antagonist.html
@@ -0,0 +1,404 @@
+
+
+
+
+
+
+ /datum/antagonist - Space Station 13
+
+
+
+
+
+
+Vars
+ antag_datum_blacklist List of other antag datum types that this type can't coexist with.
+ antag_hud_name Holds the name of the hud's icon in the .dmi files, i.e "hudtraitor", "hudvampire", etc.
+ antag_hud_type Holds the type of antagonist hud this datum will get, i.e. ANTAG_HUD_TRAITOR
, ANTAG_HUD_VAMPIRE
, etc.
+ antag_memory Antagonist datum specific information that appears in the player's notes. Information stored here will be removed when the datum is removed from the player.
+ blurb_font Intro Blurb Font
+ blurb_text_color Intro Blurbs text colour
+ blurb_text_outline_width Intro Blurbs outline width
+ clown_gain_text If the owner is a clown, this text will be displayed to them when they gain this datum.
+ clown_removal_text If the owner is a clown, this text will be displayed to them when they lose this datum.
+ clown_text_span_class The spawn class to use for gain/removal clown text
+ give_objectives Should we automatically give this antagonist objectives upon them gaining the datum?
+ job_rank Used to determine if the player jobbanned from this role. Things like SPECIAL_ROLE_TRAITOR
should go here to determine the role.
+ name The name of the antagonist.
+ objective_holder List of objectives connected to this datum.
+ owner Mind that owns this datum.
+ replace_banned Should we replace the role-banned player with a ghost?
+ roundend_category Section of roundend report, datums with same category will be displayed together, also default header for the section.
+ show_in_roundend Set to false to hide the antagonists from roundend report.
+ silent Should the owner mob get a greeting text? Determines whether or not the greet()
proc is called.
+ special_role The special role that will be applied to the owner's special_role
var. i.e. SPECIAL_ROLE_TRAITOR
, SPECIAL_ROLE_VAMPIRE
.
+ wiki_page_name The url page name for this antagonist, appended to the end of the wiki url in the form of: [GLOB.configuration.url.wiki_url]/index.php/[wiki_page_name] Procs
+ add_antag_hud Adds this datum's antag hud to antag_mob
.
+ add_antag_objective Create and add an objective of the given type.
+ add_owner_to_gamemode Adds the owner to their respective gamemode's list. For example SSticker.mode.traitors |= owner
.
+ apply_innate_effects This handles the application of antag huds/special abilities.
+ can_be_owned Loops through the owner's antag_datums
list and determines if this one is blacklisted by any others.
+ create_team Creates a new antagonist team.
+ custom_blurb This is the custom blurb message used on login for an antagonist.
+ detach_from_owner Removes owner's dependencies on this antag datum.
+For example: removal of antag datum from owner's antag_datums
, antag datum related teams etc.
+If your /datum/antagonist
subtype adds more dependencies on owner
- they should be cleared there.
+ farewell Displays a message to the antag mob while the datum is being deleted, i.e. "Your powers are gone and you're no longer a vampire!"
+ finalize_antag Give the antag any final information or items.
+ get_antag_objectives Get all of this antagonist's objectives, including from the team.
+ get_team Returns the team the antagonist belongs to, if any.
+ give_objectives Give the antagonist their objectives. Base proc, override as needed.
+ greet Displays a message and their objectives to the antag mob after the datum is added to them, i.e. "Greetings you are a traitor! etc.
+ handle_clown_mutation Handles adding and removing the clumsy mutation from clown antags.
+ has_antag_objectives Do we have any objectives at all, including from a team.
+Faster than get_antag_objectives()
+ is_banned Checks if the person trying to receive this datum is role banned from it.
+ on_body_transfer Removes antagonist datum effects from the old body and applies it to the new one.
+ on_gain Proc called when the datum is given to a mind.
+ remove_antag_hud Removes this datum's antag hud from antag_mob
.
+ remove_antag_objective Complement to add_antag_objective that removes the objective.
+Currently unused.
+ remove_innate_effects This handles the removal of antag huds/special abilities.
+ remove_owner_from_gamemode Removes the owner from their respective gamemode's list. For example SSticker.mode.traitors -= owner
.
+ replace_banned_player Attempts to replace the role banned antag with a ghost player.
+ restore_last_hud_and_role Re-sets the antag hud and special_role
of the owner to that of the previous antag datum they had before this one was added.
+ Var Details antag_datum_blacklist
+
+
+
+
+
+ List of other antag datum types that this type can't coexist with.
antag_hud_name
+
+
+
+
+
+ Holds the name of the hud's icon in the .dmi files, i.e "hudtraitor", "hudvampire", etc.
antag_hud_type
+
+
+
+
+
+ Holds the type of antagonist hud this datum will get, i.e. ANTAG_HUD_TRAITOR
, ANTAG_HUD_VAMPIRE
, etc.
antag_memory
+
+
+
+
+
+ Antagonist datum specific information that appears in the player's notes. Information stored here will be removed when the datum is removed from the player.
blurb_font
+
+
+
+
+
+ Intro Blurb Font
blurb_text_color
+
+
+
+
+
+ Intro Blurbs text colour
blurb_text_outline_width
+
+
+
+
+
+ Intro Blurbs outline width
clown_gain_text
+
+
+
+
+
+ If the owner is a clown, this text will be displayed to them when they gain this datum.
clown_removal_text
+
+
+
+
+
+ If the owner is a clown, this text will be displayed to them when they lose this datum.
clown_text_span_class
+
+
+
+
+
+ The spawn class to use for gain/removal clown text
give_objectives
+
+
+
+
+
+ Should we automatically give this antagonist objectives upon them gaining the datum?
job_rank
+
+
+
+
+
+ Used to determine if the player jobbanned from this role. Things like SPECIAL_ROLE_TRAITOR
should go here to determine the role.
name
+
+
+
+
+
+ The name of the antagonist.
+ List of objectives connected to this datum.
owner
+
+
+
+
+
+ Mind that owns this datum.
replace_banned
+
+
+
+
+
+ Should we replace the role-banned player with a ghost?
roundend_category
+
+
+
+
+
+ Section of roundend report, datums with same category will be displayed together, also default header for the section.
show_in_roundend
+
+
+
+
+
+ Set to false to hide the antagonists from roundend report.
silent
+
+
+
+
+
+ Should the owner mob get a greeting text? Determines whether or not the greet()
proc is called.
special_role
+
+
+
+
+
+ The special role that will be applied to the owner's special_role
var. i.e. SPECIAL_ROLE_TRAITOR
, SPECIAL_ROLE_VAMPIRE
.
wiki_page_name
+
+
+
+
+
+ The url page name for this antagonist, appended to the end of the wiki url in the form of: [GLOB.configuration.url.wiki_url]/index.php/[wiki_page_name]
Proc Details add_antag_hud
+
+ Adds this datum's antag hud to antag_mob
.
+Arguments:
+
+antag_mob - the mob to add the antag hud to.
+ add_antag_objective
+
+ Create and add an objective of the given type.
+If the given objective type needs a target, it will try to find a target which isn't already the target of different objective for this antag.
+If one cannot be found, it tries one more time. If one still cannot be found, it will be added as a "Free Objective" without a target.
+Arguments:
+
+objective_type - A type path of an objective, for example: /datum/objective/steal
+explanation_text - the explanation text that will be passed into the objective's New()
proc
+mob/target_override - a target for the objective
+ add_owner_to_gamemode()
+
+
+
+
+
+ Adds the owner to their respective gamemode's list. For example SSticker.mode.traitors |= owner
.
apply_innate_effects
+
+ This handles the application of antag huds/special abilities.
+Gives the antag mob their assigned hud.
+If they're a clown, removes their clumsy mutataion.
+Arguments:
+
+mob/living/mob_override - a mob to apply effects to. Can be null.
+ can_be_owned
+
+ Loops through the owner's antag_datums
list and determines if this one is blacklisted by any others.
+If it's in one of their blacklists, return FALSE. It cannot coexist with the datum we're trying to add here.
create_team
+
+ Creates a new antagonist team.
custom_blurb()
+
+
+
+
+
+ This is the custom blurb message used on login for an antagonist.
detach_from_owner()
+
+
+
+
+
+ Removes owner's dependencies on this antag datum.
+For example: removal of antag datum from owner's antag_datums
, antag datum related teams etc.
+If your /datum/antagonist
subtype adds more dependencies on owner
- they should be cleared there.
farewell()
+
+
+
+
+
+ Displays a message to the antag mob while the datum is being deleted, i.e. "Your powers are gone and you're no longer a vampire!"
+Called in on_removal()
if silent is set to FALSE.
finalize_antag()
+
+
+
+
+
+ Give the antag any final information or items.
get_antag_objectives(include_team)
+
+
+
+
+
+ Get all of this antagonist's objectives, including from the team.
get_team()
+
+
+
+
+
+ Returns the team the antagonist belongs to, if any.
give_objectives()
+
+
+
+
+
+ Give the antagonist their objectives. Base proc, override as needed.
greet()
+
+
+
+
+
+ Displays a message and their objectives to the antag mob after the datum is added to them, i.e. "Greetings you are a traitor! etc.
+Called in on_gain()
if silent it set to FALSE.
handle_clown_mutation
+
+ Handles adding and removing the clumsy mutation from clown antags.
+Arguments:
+
+clown - the mob in which to add or remove clumsy from.
+message - the chat message to display to them the clown mob
+granting_datum - TRUE if the datum is being applied to the clown mob.
+ has_antag_objectives(include_team)
+
+
+
+
+
+ Do we have any objectives at all, including from a team.
+Faster than get_antag_objectives()
is_banned
+
+ Checks if the person trying to receive this datum is role banned from it.
on_body_transfer
+
+ Removes antagonist datum effects from the old body and applies it to the new one.
+Called in the/datum/mind/proc/transfer_to()
.
+Arguments:
+
+new_body - the new body the antag mob is transferring into.
+old_body - the old body the antag mob is leaving.
+ on_gain()
+
+
+
+
+
+ Proc called when the datum is given to a mind.
remove_antag_hud
+
+ Removes this datum's antag hud from antag_mob
.
+Arguments:
+
+antag_mob - the mob to remove the antag hud from.
+ remove_antag_objective
+
+ Complement to add_antag_objective that removes the objective.
+Currently unused.
remove_innate_effects
+
+ This handles the removal of antag huds/special abilities.
+Removes the antag's assigned hud.
+If they're a clown, gives them back their clumsy mutataion.
+Arguments:
+
+mob/living/mob_override - a mob to remove effects from. Can be null.
+ remove_owner_from_gamemode()
+
+
+
+
+
+ Removes the owner from their respective gamemode's list. For example SSticker.mode.traitors -= owner
.
replace_banned_player()
+
+
+
+
+
+ Attempts to replace the role banned antag with a ghost player.
restore_last_hud_and_role()
+
+
+
+
+
+ Re-sets the antag hud and special_role
of the owner to that of the previous antag datum they had before this one was added.
+For example, if the owner has a traitor datum and a vampire datum, both at index 1 and 2 respectively,
+After the vampire datum gets removed, it sets the owner's antag hud/role to whatever is set for traitor datum.
+
+
+
diff --git a/datum/antagonist/changeling.html b/datum/antagonist/changeling.html
new file mode 100644
index 0000000000000..12afa6f945b63
--- /dev/null
+++ b/datum/antagonist/changeling.html
@@ -0,0 +1,331 @@
+
+
+
+
+
+
+ /datum/antagonist/changeling - Space Station 13
+
+
+
+
+
+
+Vars
+ absorbed_count Number of victims the changeling has absorbed.
+ absorbed_dna List of /datum/dna which have been absorbed through the DNA sting or absorb power.
+ absorbed_languages List of /datum/language UIDs, learned from absorbed victims.
+ acquired_powers A list of instanced /datum/action/changeling the changeling has aquired.
+ can_respec If the changeling can respec their purchased abilities.
+ changelingID The changeling's identifier when speaking in the hivemind, i.e. "Mr. Delta 123".
+ chem_charges The current amount of chemicals the changeling has stored.
+ chem_recharge_rate The amount of chemicals that recharges per Life()
call.
+ chem_recharge_slowdown Amount of chemical recharge slowdown, calculated as chem_recharge_rate - chem_recharge_slowdown
+ chem_storage The total amount of chemicals able to be stored.
+ chosen_sting The current sting power the changeling has active.
+ dna_max How many total DNA strands the changeling can store for transformation.
+ genetic_points The amount of points available to purchase changeling abilities.
+ innate_powers A list of /datum/action/changeling typepaths with a power_type
of CHANGELING_INNATE_POWER
.
+ is_absorbing If the changeling is in the process of absorbing someone.
+ mimicing A name that will display in place of the changeling's real name when speaking.
+ protected_dna List of /datum/dna which are not lost when the changeling has no more room for DNA.
+ purchaseable_powers A list of /datum/action/changeling typepaths with a power_type
of CHANGELING_PURCHASABLE_POWER
.
+ regenerating If the changeling is in the process of regenerating from their fake death.
+ sting_range The range of changeling stings. Procs
+ absorb_dna Absorb the the target's DNA and their languages.
+ add_new_languages Store the languages from the new_languages
list into the absorbed_languages
list. Teaches the changeling the new languages.
+ can_absorb_dna Returns TRUE if the changeling can absorb the target mob's DNA.
+ get_dna Gets a /datum/dna that matches the passed in tDNA
. Also used as a check to see if the changeling has this DNA already stored.
+ get_powers_of_type Gets a list of changeling action typepaths based on the passed in power_type
.
+ give_power Gives the changeling the passed in power
. Subtracts the cost of the power from our genetic points.
+ remove_changeling_powers Removes a changeling's abilities.
+ remove_specific_power Removes all power_type
abilities that the changeling has. Refunds the cost of the power from our genetic points.
+ remove_unnatural_languages Removes all the languages the mob L
has absorbed throughout their life as a changeling and should no longer have.
+ respec Resets a changeling to the point they were when they first became a changeling, i.e no genetic points to spend, no non-innate powers, etc.
+ select_dna Prompt the changeling with a list of names associated with their stored DNA. Return a /datum/dna based on the name chosen.
+ store_dna Store the target DNA. If the DNA belongs to one of the changeling's "escape with identity" objectives, make the DNA protected.
+ trim_dna Clears the most "stale" DNA from the absorbed_dna
list.
+ try_respec Respec the changeling's powers after first checking if they're able to respec.
+ update_languages Teach the changeling every language in the absorbed_language
list. Already known languages will be ignored.
+ using_stale_dna Determines if the changeling's current DNA is stale.
+ Var Details absorbed_count
+
+
+
+
+
+ Number of victims the changeling has absorbed.
absorbed_dna
+
+
+
+
+
+ List of /datum/dna which have been absorbed through the DNA sting or absorb power.
absorbed_languages
+
+
+
+
+
+ List of /datum/language UIDs, learned from absorbed victims.
acquired_powers
+
+
+
+
+
+ A list of instanced /datum/action/changeling the changeling has aquired.
can_respec
+
+
+
+
+
+ If the changeling can respec their purchased abilities.
changelingID
+
+
+
+
+
+ The changeling's identifier when speaking in the hivemind, i.e. "Mr. Delta 123".
chem_charges
+
+
+
+
+
+ The current amount of chemicals the changeling has stored.
chem_recharge_rate
+
+
+
+
+
+ The amount of chemicals that recharges per Life()
call.
chem_recharge_slowdown
+
+
+
+
+
+ Amount of chemical recharge slowdown, calculated as chem_recharge_rate - chem_recharge_slowdown
chem_storage
+
+
+
+
+
+ The total amount of chemicals able to be stored.
+ The current sting power the changeling has active.
dna_max
+
+
+
+
+
+ How many total DNA strands the changeling can store for transformation.
genetic_points
+
+
+
+
+
+ The amount of points available to purchase changeling abilities.
innate_powers
+
+
+
+
+
+ A list of /datum/action/changeling typepaths with a power_type
of CHANGELING_INNATE_POWER
.
is_absorbing
+
+
+
+
+
+ If the changeling is in the process of absorbing someone.
mimicing
+
+
+
+
+
+ A name that will display in place of the changeling's real name when speaking.
protected_dna
+
+
+
+
+
+ List of /datum/dna which are not lost when the changeling has no more room for DNA.
purchaseable_powers
+
+
+
+
+
+ A list of /datum/action/changeling typepaths with a power_type
of CHANGELING_PURCHASABLE_POWER
.
regenerating
+
+
+
+
+
+ If the changeling is in the process of regenerating from their fake death.
sting_range
+
+
+
+
+
+ The range of changeling stings.
Proc Details
+ Absorb the the target's DNA and their languages.
+Arguments:
+
+mob/living/carbon/C - the mob to absorb DNA from
+ add_new_languages(/list/new_languages)
+
+
+
+
+
+ Store the languages from the new_languages
list into the absorbed_languages
list. Teaches the changeling the new languages.
+Arguments:
+can_absorb_dna
+
+ Returns TRUE if the changeling can absorb the target mob's DNA.
+Arguments:
+
+mob/living/carbon/target - the mob's DNA we're trying to absorb
+ get_dna
+
+ Gets a /datum/dna that matches the passed in tDNA
. Also used as a check to see if the changeling has this DNA already stored.
+Arguments:
+
+datum/dna/tDNA - a reference to a DNA datum that we want to find
+ get_powers_of_type(power_type)
+
+
+
+
+
+ Gets a list of changeling action typepaths based on the passed in power_type
.
+Arguments:
+
+ Gives the changeling the passed in power
. Subtracts the cost of the power from our genetic points.
+Arugments:
+
+datum/action/changeling/power - the power to give to the changeling.
+mob/living/changeling - the changeling who owns this datum. Optional argument.
+take_cost - if we should spend genetic points when giving the power
+ remove_changeling_powers(keep_innate_powers)
+
+
+
+
+
+ Removes a changeling's abilities.
+Arguments:
+
+keep_innate_powers - set to TRUE if changeling actions with a power_type
of CHANGELING_INNATE_POWER
should be kept.
+ remove_specific_power
+
+ Removes all power_type
abilities that the changeling has. Refunds the cost of the power from our genetic points.
+Arugments:
+
+datum/action/changeling/power - the typepath power to remove from the changeling.
+refund_cost - if we should refund genetic points when giving the power
+ remove_unnatural_languages
+
+ Removes all the languages the mob L
has absorbed throughout their life as a changeling and should no longer have.
+Ignores languages the player has chosen from character creation, and species languages from the changeling mob's current species.
+Arguments:
+
+mob/living/L - the changeling mob to remove languages from
+ respec(keep_innate_powers, reset_genetic_points)
+
+
+
+
+
+ Resets a changeling to the point they were when they first became a changeling, i.e no genetic points to spend, no non-innate powers, etc.
select_dna(message, title, not_in_bank)
+
+
+
+
+
+ Prompt the changeling with a list of names associated with their stored DNA. Return a /datum/dna based on the name chosen.
+Arguments:
+
+message - the message of the input()
window
+title - the title of the input()
window
+not_in_bank - if we should filter out DNA that's already in the hivemind bank
+ store_dna
+
+ Store the target DNA. If the DNA belongs to one of the changeling's "escape with identity" objectives, make the DNA protected.
+Arguments:
+
+datum/dna/new_dna - the DNA to store
+ trim_dna()
+
+
+
+
+
+ Clears the most "stale" DNA from the absorbed_dna
list.
try_respec()
+
+
+
+
+
+ Respec the changeling's powers after first checking if they're able to respec.
update_languages()
+
+
+
+
+
+ Teach the changeling every language in the absorbed_language
list. Already known languages will be ignored.
using_stale_dna()
+
+
+
+
+
+ Determines if the changeling's current DNA is stale.
+
+
+
diff --git a/datum/antagonist/mindslave.html b/datum/antagonist/mindslave.html
new file mode 100644
index 0000000000000..20bc3a165e2d6
--- /dev/null
+++ b/datum/antagonist/mindslave.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/antagonist/mindslave - Space Station 13
+
+
+
+
+
+
+Vars
+ greet_text Custom greeting text if you don't want to use the basic greeting. Specify this when making a new mindslave datum with New()
.
+ master A reference to the mind who minslaved us.
+ Var Details greet_text
+
+
+
+
+
+ Custom greeting text if you don't want to use the basic greeting. Specify this when making a new mindslave datum with New()
.
master
+
+
+
+
+
+ A reference to the mind who minslaved us.
+
+
+
diff --git a/datum/antagonist/traitor.html b/datum/antagonist/traitor.html
new file mode 100644
index 0000000000000..691c2c9dda46f
--- /dev/null
+++ b/datum/antagonist/traitor.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /datum/antagonist/traitor - Space Station 13
+
+
+
+
+
+
+Vars
+ give_codewords Should the traitor get codewords?
+ give_uplink Should we give the traitor their uplink? Procs
+ add_law_zero Gives traitor AIs, and their connected cyborgs, a law 0. Additionally gives the AI their choose modules action button.
+ finalize_antag Give human traitors their uplink, and AI traitors their law 0. Play the traitor an alert sound.
+ forge_ai_objectives Create and assign a full set of AI traitor objectives.
+ forge_human_objectives Create and assign a full set of randomized human traitor objectives.
+ forge_single_human_objective Create and assign a single randomized human traitor objective.
+ give_codewords Notify the traitor of their codewords and write them to antag_memory
(notes).
+ give_uplink Gives a traitor human their uplink, and uplink code.
+ Var Details give_codewords
+
+
+
+
+
+ Should the traitor get codewords?
give_uplink
+
+
+
+
+
+ Should we give the traitor their uplink?
Proc Details add_law_zero()
+
+
+
+
+
+ Gives traitor AIs, and their connected cyborgs, a law 0. Additionally gives the AI their choose modules action button.
finalize_antag()
+
+
+
+
+
+ Give human traitors their uplink, and AI traitors their law 0. Play the traitor an alert sound.
forge_ai_objectives()
+
+
+
+
+
+ Create and assign a full set of AI traitor objectives.
forge_human_objectives()
+
+
+
+
+
+ Create and assign a full set of randomized human traitor objectives.
forge_single_human_objective()
+
+
+
+
+
+ Create and assign a single randomized human traitor objective.
give_codewords()
+
+
+
+
+
+ Notify the traitor of their codewords and write them to antag_memory
(notes).
give_uplink()
+
+
+
+
+
+ Gives a traitor human their uplink, and uplink code.
+
+
+
diff --git a/datum/antagonist/vampire.html b/datum/antagonist/vampire.html
new file mode 100644
index 0000000000000..9de1297fe529a
--- /dev/null
+++ b/datum/antagonist/vampire.html
@@ -0,0 +1,130 @@
+
+
+
+
+
+
+ /datum/antagonist/vampire - Space Station 13
+
+
+
+
+
+
+Vars
+ drained_humans list of the peoples UIDs that we have drained, and how much blood from each one
+ draining who the vampire is draining of blood
+ iscloaking handles the vampire cloak toggle
+ nullified Nullrods and holywater make their abilities cost more
+ powers list of available powers and passives
+ subclass what vampire subclass the vampire is.
+ upgrade_tiers a list of powers that all vampires unlock and at what blood level they unlock them, the rest of their powers are found in the vampire_subclass datum Procs
+ adjust_blood Handles unique drain ID checks and increases vampire's total and usable blood by blood_amount. Checks for ability upgrades.
+ change_subclass Remove the vampire's current subclass and add the specified one.
+ clear_subclass Remove and delete the vampire's current subclass and all associated abilities.
+ remove_all_powers Removes all of the vampire's current powers.
+ subtract_usable_blood Safely subtract vampire's bloodusable. Clamped between 0 and bloodtotal.
+ Var Details drained_humans
+
+
+
+
+
+ list of the peoples UIDs that we have drained, and how much blood from each one
+ who the vampire is draining of blood
iscloaking
+
+
+
+
+
+ handles the vampire cloak toggle
nullified
+
+
+
+
+
+ Nullrods and holywater make their abilities cost more
powers
+
+
+
+
+
+ list of available powers and passives
+ what vampire subclass the vampire is.
upgrade_tiers
+
+
+
+
+
+ a list of powers that all vampires unlock and at what blood level they unlock them, the rest of their powers are found in the vampire_subclass datum
Proc Details adjust_blood
+
+ Handles unique drain ID checks and increases vampire's total and usable blood by blood_amount. Checks for ability upgrades.
+Arguments:
+
+C: victim /mob/living/carbon that is being drained form.
+blood_amount: amount of blood to add to vampire's usable and total pools.
+ change_subclass(new_subclass_type)
+
+
+
+
+
+ Remove the vampire's current subclass and add the specified one.
+Arguments:
+clear_subclass(give_specialize_power)
+
+
+
+
+
+ Remove and delete the vampire's current subclass and all associated abilities.
+Arguments:
+
+give_specialize_power - if the specialize power should be given back or not
+ remove_all_powers()
+
+
+
+
+
+ Removes all of the vampire's current powers.
subtract_usable_blood(blood_amount)
+
+
+
+
+
+ Safely subtract vampire's bloodusable. Clamped between 0 and bloodtotal.
+Arguments:
+
+blood_amount: amount of blood to subtract.
+
+
+
+
diff --git a/datum/antagonist/wizard/apprentice.html b/datum/antagonist/wizard/apprentice.html
new file mode 100644
index 0000000000000..be2d84982e4ac
--- /dev/null
+++ b/datum/antagonist/wizard/apprentice.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/antagonist/wizard/apprentice - Space Station 13
+
+
+
+
+
+
+Vars
+ class_type The class type of this apprentice,
+ my_teacher Temporary reference to a mob for purposes of objectives, and general text for the apprentice.
+ Var Details class_type
+
+
+
+
+
+ The class type of this apprentice,
my_teacher
+
+
+
+
+
+ Temporary reference to a mob for purposes of objectives, and general text for the apprentice.
+
+
+
diff --git a/datum/antagonist/wizard/construct.html b/datum/antagonist/wizard/construct.html
new file mode 100644
index 0000000000000..4d174fb0bb569
--- /dev/null
+++ b/datum/antagonist/wizard/construct.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/antagonist/wizard/construct - Space Station 13
+
+
+
+
+
+
+Vars
+ my_creator Temporary reference to a mob for purposes of objectives, and general text for the apprentice.
+ Var Details my_creator
+
+
+
+
+
+ Temporary reference to a mob for purposes of objectives, and general text for the apprentice.
+
+
+
diff --git a/datum/asset.html b/datum/asset.html
new file mode 100644
index 0000000000000..84d64a3ed18c4
--- /dev/null
+++ b/datum/asset.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/asset - Space Station 13
+
+
+
+
+
+
+Proc Details get_serialized_url_mappings()
+
+
+
+
+
+ Returns a cached tgui message of URL mappings
+
+
+
diff --git a/datum/asset/simple.html b/datum/asset/simple.html
new file mode 100644
index 0000000000000..0fd9d3fafab81
--- /dev/null
+++ b/datum/asset/simple.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/asset/simple - Space Station 13
+
+
+
+
+
+
+If you don't need anything complicated.
Vars
+ assets List of assets for this datum in the form of asset_filename = asset_file. At runtime the asset_file will be converted into a asset_cache datum
+ keep_local_name TRUE for keeping local asset names when browse_rsc backend is used
+ legacy Set to true to have this asset also be sent via browse_rsc when cdn asset transports are enabled
+ Var Details assets
+
+
+
+
+
+ List of assets for this datum in the form of asset_filename = asset_file. At runtime the asset_file will be converted into a asset_cache datum
keep_local_name
+
+
+
+
+
+ TRUE for keeping local asset names when browse_rsc backend is used
legacy
+
+
+
+
+
+ Set to true to have this asset also be sent via browse_rsc when cdn asset transports are enabled
+
+
+
diff --git a/datum/asset/simple/icon_states.html b/datum/asset/simple/icon_states.html
new file mode 100644
index 0000000000000..cde12ebb2cabc
--- /dev/null
+++ b/datum/asset/simple/icon_states.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/asset/simple/icon_states - Space Station 13
+
+
+
+
+
+
+Generates assets based on iconstates of a single icon
Vars
+ generic_icon_names Generate icon filenames using GENERATE_ASSET_NAME instead the "[prefix].[icon_state_name].png" format
+ prefix Used in asset name generation, (asset_name = "[prefix].[icon_state_name].png")
+ Var Details generic_icon_names
+
+
+
+
+
+ Generate icon filenames using GENERATE_ASSET_NAME instead the "[prefix].[icon_state_name].png" format
prefix
+
+
+
+
+
+ Used in asset name generation, (asset_name = "[prefix].[icon_state_name].png")
+
+
+
diff --git a/datum/asset/simple/namespaced.html b/datum/asset/simple/namespaced.html
new file mode 100644
index 0000000000000..789cf5dd6d0de
--- /dev/null
+++ b/datum/asset/simple/namespaced.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/asset/simple/namespaced - Space Station 13
+
+
+
+
+
+
+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)
Vars
+ parents parents - list of the parent asset or assets (in name = file assoicated format) for this namespace.
+parent assets must be referenced by their generated url, but if an update changes a parent asset, it won't change the namespace's identity.
+ Var Details parents
+
+
+
+
+
+ parents - list of the parent asset or assets (in name = file assoicated format) for this namespace.
+parent assets must be referenced by their generated url, but if an update changes a parent asset, it won't change the namespace's identity.
+
+
+
diff --git a/datum/asset/spritesheet.html b/datum/asset/spritesheet.html
new file mode 100644
index 0000000000000..a24a5f851ae58
--- /dev/null
+++ b/datum/asset/spritesheet.html
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+ /datum/asset/spritesheet - Space Station 13
+
+
+
+
+
+
+Vars
+ sizes "32x32" -> list(10, icon/normal, icon/stripped)
+ sprites "foo_bar" -> list("32x32", 5) Procs
+ ModifyInserted A simple proc handing the Icon for you to modify before it gets turned into an asset.
+ icon_size_id Returns the size class (ex design32x32) for a given sprite's icon
+ Var Details sizes
+
+
+
+
+
+ "32x32" -> list(10, icon/normal, icon/stripped)
sprites
+
+
+
+
+
+ "foo_bar" -> list("32x32", 5)
Proc Details ModifyInserted(/icon/pre_asset)
+
+
+
+
+
+ A simple proc handing the Icon for you to modify before it gets turned into an asset.
+Arguments:
+
+I: icon being turned into an asset
+ icon_size_id(sprite_name)
+
+
+
+
+
+ Returns the size class (ex design32x32) for a given sprite's icon
+Arguments:
+
+sprite_name - The sprite to get the size of
+
+
+
+
diff --git a/datum/asset_cache_item.html b/datum/asset_cache_item.html
new file mode 100644
index 0000000000000..37b868efde300
--- /dev/null
+++ b/datum/asset_cache_item.html
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+ /datum/asset_cache_item - Space Station 13
+
+
+
+
+
+
+An internal datum containing info on items in the asset cache. Mainly used to cache md5 info for speed.
Vars
+ ext our file extension e.g. .png, .gif, etc
+ hash md5() of the file this asset item represents.
+ keep_local_name TRUE for keeping local asset names when browse_rsc backend is used
+ legacy Should this file also be sent via the legacy browse_rsc system
+when cdn transports are enabled?
+ name the name of this asset item, becomes the key in SSassets.cache list
+ namespace Used by the cdn system to keep legacy css assets with their parent
+css file. (css files resolve urls relative to the css file, so the
+legacy system can't be used if the css file itself could go out over
+the cdn)
+ namespace_parent True if this is the parent css or html file for an asset's namespace
+ resource the file this asset represents Procs
+ New Pass in a valid file_hash if you have one to save it from needing to do it again.
+Pass in a valid dmi file path string e.g. "icons/path/to/dmi_file.dmi" to make generating the hash less expensive
+ Var Details ext
+
+
+
+
+
+ our file extension e.g. .png, .gif, etc
hash
+
+
+
+
+
+ md5() of the file this asset item represents.
keep_local_name
+
+
+
+
+
+ TRUE for keeping local asset names when browse_rsc backend is used
legacy
+
+
+
+
+
+ Should this file also be sent via the legacy browse_rsc system
+when cdn transports are enabled?
name
+
+
+
+
+
+ the name of this asset item, becomes the key in SSassets.cache list
namespace
+
+
+
+
+
+ Used by the cdn system to keep legacy css assets with their parent
+css file. (css files resolve urls relative to the css file, so the
+legacy system can't be used if the css file itself could go out over
+the cdn)
namespace_parent
+
+
+
+
+
+ True if this is the parent css or html file for an asset's namespace
resource
+
+
+
+
+
+ the file this asset represents
Proc Details New(name, file, file_hash, dmi_file_path)
+
+
+
+
+
+ Pass in a valid file_hash if you have one to save it from needing to do it again.
+Pass in a valid dmi file path string e.g. "icons/path/to/dmi_file.dmi" to make generating the hash less expensive
+
+
+
diff --git a/datum/asset_transport.html b/datum/asset_transport.html
new file mode 100644
index 0000000000000..300c9507f0296
--- /dev/null
+++ b/datum/asset_transport.html
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+ /datum/asset_transport - Space Station 13
+
+
+
+
+
+
+Base browse_rsc asset transport
Vars
+ dont_mutate_filenames Don't mutate the filename of assets when sending via browse_rsc.
+This is to make it easier to debug issues with assets, and allow server operators to bypass issues that make it to production.
+If turning this on fixes asset issues, something isn't using SSassets.transport.get_asset_url and the asset isn't marked legacy, fix one of those. Procs
+ Initialize Initialize - Called when SSassets initializes.
+ Load Called when the transport is loaded by the config controller, not called on the default transport unless it gets loaded by a config change.
+ get_asset_url Returns a url for a given asset.
+asset_name - Name of the asset.
+asset_cache_item - asset cache item datum for the asset, optional, overrides asset_name
+ register_asset Register a browser asset with the asset cache system.
+returns a /datum/asset_cache_item.
+mutiple calls to register the same asset under the same asset_name return the same datum.
+ send_assets Sends a list of browser assets to a client
+client - a client or mob
+asset_list - A list of asset filenames to be sent to the client. Can optionally be assoicated with the asset's asset_cache_item datum.
+Returns TRUE if any assets were sent.
+ send_assets_slow Precache files without clogging up the browse() queue, used for passively sending files on connection start.
+ validate_config Check the config is valid to load this transport
+Returns TRUE or FALSE
+ Var Details dont_mutate_filenames
+
+
+
+
+
+ Don't mutate the filename of assets when sending via browse_rsc.
+This is to make it easier to debug issues with assets, and allow server operators to bypass issues that make it to production.
+If turning this on fixes asset issues, something isn't using SSassets.transport.get_asset_url and the asset isn't marked legacy, fix one of those.
Proc Details Initialize(/list/assets)
+
+
+
+
+
+ Initialize - Called when SSassets initializes.
Load()
+
+
+
+
+
+ Called when the transport is loaded by the config controller, not called on the default transport unless it gets loaded by a config change.
get_asset_url
+
+ Returns a url for a given asset.
+asset_name - Name of the asset.
+asset_cache_item - asset cache item datum for the asset, optional, overrides asset_name
register_asset(asset_name, asset, file_hash, dmi_file_path)
+
+
+
+
+
+ Register a browser asset with the asset cache system.
+returns a /datum/asset_cache_item.
+mutiple calls to register the same asset under the same asset_name return the same datum.
+Arguments:
+
+asset_name - the identifier of the asset.
+asset - the actual asset file (or an asset_cache_item datum).
+file_hash - optional, a hash of the contents of the asset files contents. used so asset_cache_item doesnt have to hash it again
+dmi_file_path - optional, means that the given asset is from the rsc and thus we dont need to do some expensive operations
+ send_assets(/client /client, /list/asset_list)
+
+
+
+
+
+ Sends a list of browser assets to a client
+client - a client or mob
+asset_list - A list of asset filenames to be sent to the client. Can optionally be assoicated with the asset's asset_cache_item datum.
+Returns TRUE if any assets were sent.
send_assets_slow(/client /client, /list/files, filerate)
+
+
+
+
+
+ Precache files without clogging up the browse() queue, used for passively sending files on connection start.
validate_config(log)
+
+
+
+
+
+ Check the config is valid to load this transport
+Returns TRUE or FALSE
+
+
+
diff --git a/datum/asset_transport/webroot.html b/datum/asset_transport/webroot.html
new file mode 100644
index 0000000000000..70c3ee36793b9
--- /dev/null
+++ b/datum/asset_transport/webroot.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+ /datum/asset_transport/webroot - Space Station 13
+
+
+
+
+
+
+CDN Webroot asset transport.
Procs
+ get_asset_url Returns a url for a given asset.
+asset_name - Name of the asset.
+asset_cache_item - asset cache item datum for the asset, optional, overrides asset_name
+ load_existing_assets Processes thru any assets that were registered before we were loaded as a transport.
+ register_asset Register a browser asset with the asset cache system
+We also save it to the CDN webroot at this step instead of waiting for send_assets()
+asset_name - the identifier of the asset
+asset - the actual asset file or an asset_cache_item datum.
+ save_asset_to_webroot Saves the asset to the webroot taking into account namespaces and hashes.
+ send_assets webroot asset sending - does nothing unless passed legacy assets
+ send_assets_slow webroot slow asset sending - does nothing.
Proc Details get_asset_url
+
+ Returns a url for a given asset.
+asset_name - Name of the asset.
+asset_cache_item - asset cache item datum for the asset, optional, overrides asset_name
load_existing_assets()
+
+
+
+
+
+ Processes thru any assets that were registered before we were loaded as a transport.
register_asset(asset_name, asset)
+
+
+
+
+
+ Register a browser asset with the asset cache system
+We also save it to the CDN webroot at this step instead of waiting for send_assets()
+asset_name - the identifier of the asset
+asset - the actual asset file or an asset_cache_item datum.
+ Saves the asset to the webroot taking into account namespaces and hashes.
send_assets(/client /client, /list/asset_list)
+
+
+
+
+
+ webroot asset sending - does nothing unless passed legacy assets
send_assets_slow(/client /client, /list/files, filerate)
+
+
+
+
+
+ webroot slow asset sending - does nothing.
+
+
+
diff --git a/datum/barsign.html b/datum/barsign.html
new file mode 100644
index 0000000000000..dc776d2beb2f1
--- /dev/null
+++ b/datum/barsign.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/barsign - Space Station 13
+
+
+
+
+
+
+Vars
+ hidden Signs that should never be accessed by players via the selection menu.
+ syndicate Signs that have a syndicate theme. Normally accessed by emagging the sign.
+ Var Details hidden
+
+
+
+
+
+ Signs that should never be accessed by players via the selection menu.
syndicate
+
+
+
+
+
+ Signs that have a syndicate theme. Normally accessed by emagging the sign.
+
+
+
diff --git a/datum/bitfield.html b/datum/bitfield.html
new file mode 100644
index 0000000000000..18d21d2bf1b8e
--- /dev/null
+++ b/datum/bitfield.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/bitfield - Space Station 13
+
+
+
+
+
+
+Specifies a bitfield for smarter debugging
Vars
+ flags An associative list of the readable flag and its true value
+ variable The variable name that contains the bitfield
+ Var Details flags
+
+
+
+
+
+ An associative list of the readable flag and its true value
variable
+
+
+
+
+
+ The variable name that contains the bitfield
+
+
+
diff --git a/datum/body_accessory.html b/datum/body_accessory.html
new file mode 100644
index 0000000000000..bb6cad911bcf5
--- /dev/null
+++ b/datum/body_accessory.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/body_accessory - Space Station 13
+
+
+
+
+
+
+Vars
+ has_behind If true, adds an underlay (in addition to the regular overlay!) to the character sprite, with the state "[icon_state]_BEHIND".
+ Var Details has_behind
+
+
+
+
+
+ If true, adds an underlay (in addition to the regular overlay!) to the character sprite, with the state "[icon_state]_BEHIND".
+
+
+
diff --git a/datum/browser.html b/datum/browser.html
new file mode 100644
index 0000000000000..b93999a37376f
--- /dev/null
+++ b/datum/browser.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/browser - Space Station 13
+
+
+
+
+
+
+Vars
+ atom_uid UID of the host atom
+ content HTML content of the browser datum
+ head_content Header HTML content of the browser datum
+ include_default_stylesheet Should default stylesheets be loaded
+ scripts Assoc list of script files for use by the datum
+ stylesheets Assoc list of stylesheets for use by the datum
+ window_id window_id is used as the window name for browse and onclose calls
+ window_options Various options to control elements such as titlebar buttons for the window
+ Var Details atom_uid
+
+
+
+
+
+ UID of the host atom
content
+
+
+
+
+
+ HTML content of the browser datum
head_content
+
+
+
+
+
+ Header HTML content of the browser datum
include_default_stylesheet
+
+
+
+
+
+ Should default stylesheets be loaded
scripts
+
+
+
+
+
+ Assoc list of script files for use by the datum
stylesheets
+
+
+
+
+
+ Assoc list of stylesheets for use by the datum
window_id
+
+
+
+
+
+ window_id is used as the window name for browse and onclose calls
window_options
+
+
+
+
+
+ Various options to control elements such as titlebar buttons for the window
+
+
+
diff --git a/datum/buildmode_mode/tilting.html b/datum/buildmode_mode/tilting.html
new file mode 100644
index 0000000000000..c2115cfcc91b3
--- /dev/null
+++ b/datum/buildmode_mode/tilting.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/buildmode_mode/tilting - Space Station 13
+
+
+
+
+
+
+Vars
+ tilter The thing we're tilting over
+ Var Details
+ The thing we're tilting over
+
+
+
diff --git a/datum/cachedbook.html b/datum/cachedbook.html
new file mode 100644
index 0000000000000..42e446d7d34e2
--- /dev/null
+++ b/datum/cachedbook.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/cachedbook - Space Station 13
+
+
+
+
+
+
+Datum used to cache the SQL DB books locally in order to achieve a performance gain.
Procs
+ LoadFromRow helper proc to turn our returned query rows into a cachedbook datum
Proc Details LoadFromRow(/list/row)
+
+
+
+
+
+ helper proc to turn our returned query rows into a cachedbook datum
+
+
+
diff --git a/datum/callback/verb_callback.html b/datum/callback/verb_callback.html
new file mode 100644
index 0000000000000..cf7fbae633f6e
--- /dev/null
+++ b/datum/callback/verb_callback.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/callback/verb_callback - Space Station 13
+
+
+
+
+
+
+like normal callbacks but they also record their creation time for measurement purposes
Vars
+ creation_time the tick this callback datum was created in. used for testing latency
+ Var Details creation_time
+
+
+
+
+
+ the tick this callback datum was created in. used for testing latency
+
+
+
diff --git a/datum/candidate_poll.html b/datum/candidate_poll.html
new file mode 100644
index 0000000000000..274abb014a7e3
--- /dev/null
+++ b/datum/candidate_poll.html
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+ /datum/candidate_poll - Space Station 13
+
+
+
+
+
+
+Procs
+ remove_candidate Attempts to remove a signed-up mob from a poll.
+ sign_up Attempts to sign a (controlled) mob up
+ time_left Returns the time left for a poll
+ trim_candidates Deletes any candidates who may have disconnected from the list
Proc Details remove_candidate(/mob /M, silent)
+
+
+
+
+
+ Attempts to remove a signed-up mob from a poll.
+Arguments:
+
+M - The mob to remove from the poll, if present.
+silent - If TRUE, no messages will be sent to M about their removal.
+ sign_up(/mob /M, silent)
+
+
+
+
+
+ Attempts to sign a (controlled) mob up
+Will fail if the mob is already signed up or the poll's timer ran out.
+Does not check for eligibility
+Arguments:
+
+M - The (controlled) mob to sign up
+silent - Whether no messages should appear or not. If not TRUE, signing up to this poll will also sign the mob up for identical polls
+ time_left()
+
+
+
+
+
+ Returns the time left for a poll
trim_candidates()
+
+
+
+
+
+ Deletes any candidates who may have disconnected from the list
+
+
+
diff --git a/datum/changeling_power_category.html b/datum/changeling_power_category.html
new file mode 100644
index 0000000000000..d3e3b5a3a0f09
--- /dev/null
+++ b/datum/changeling_power_category.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/changeling_power_category - Space Station 13
+
+
+
+
+
+
+Vars
+ name The name of the category
+ priority The number used to determine category position in changeling evolution menu UI
+ Var Details name
+
+
+
+
+
+ The name of the category
priority
+
+
+
+
+
+ The number used to determine category position in changeling evolution menu UI
+
+
+
diff --git a/datum/character_save.html b/datum/character_save.html
new file mode 100644
index 0000000000000..2e5c4672fe0a7
--- /dev/null
+++ b/datum/character_save.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+ /datum/character_save - Space Station 13
+
+
+
+
+
+
+Vars
+ body_accessory The body accessory name of the mob (e.g. wings, tail).
+ custom_emotes Custom emote text ("name" = "emote text")
+ cyborg_brain_type If a spawned cyborg should have an MMI, a positronic, or a robobrain. MMI by default
+ from_db Is this character from the DB?
+ slot_number Character slot number, used for saves and stuff.
+ valid_save Is this character valid to be picked? This is necessary to avoid someone getting a bald human called "Character 30" Procs
+ load Load in and process the database's information on the player's character save.
+The order of indices here is the relative order from get_query() in 20-load-characters.dm.
+ Var Details body_accessory
+
+
+
+
+
+ The body accessory name of the mob (e.g. wings, tail).
custom_emotes
+
+
+
+
+
+ Custom emote text ("name" = "emote text")
cyborg_brain_type
+
+
+
+
+
+ If a spawned cyborg should have an MMI, a positronic, or a robobrain. MMI by default
from_db
+
+
+
+
+
+ Is this character from the DB?
slot_number
+
+
+
+
+
+ Character slot number, used for saves and stuff.
valid_save
+
+
+
+
+
+ Is this character valid to be picked? This is necessary to avoid someone getting a bald human called "Character 30"
Proc Details
+ Load in and process the database's information on the player's character save.
+The order of indices here is the relative order from get_query() in 20-load-characters.dm.
+
+
+
diff --git a/datum/chat_payload.html b/datum/chat_payload.html
new file mode 100644
index 0000000000000..31a9836f1eff2
--- /dev/null
+++ b/datum/chat_payload.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/chat_payload - Space Station 13
+
+
+
+
+
+
+Stores information about a chat payload
+ Var Details content
+
+
+
+
+
+ Message we are sending
resends
+
+
+
+
+
+ Resend count
sequence
+
+
+
+
+
+ Sequence number of this payload
Proc Details get_content_as_html()
+
+
+
+
+
+ Returns an HTML-encoded message from our contents.
into_message()
+
+
+
+
+
+ Converts the chat payload into a JSON string
+
+
+
diff --git a/datum/chatmessage.html b/datum/chatmessage.html
new file mode 100644
index 0000000000000..9746be7cb1182
--- /dev/null
+++ b/datum/chatmessage.html
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+ /datum/chatmessage - Space Station 13
+
+
+
+
+
+
+Datum for generating a message overlay on the map
Vars
+ animate_lifespan Our animation lifespan, how long this message will last
+ animate_start When we started animating the message
+ approx_lines Contains the approximate amount of lines for height decay
+ current_z_idx The current index used for adjusting the layer of each sequential chat message such that recent messages will overlay older ones
+ message The visual element of the chat messsage
+ message_loc The location in which the message is appearing
+ owned_by The client who heard this message Procs
+ New Constructs a chat message overlay
+ colorize_string Gets a color for a name, will return the same color for a given string consistently within a round.atom
+ finish_image_generation finishes the image generation after the MeasureText() call in generate_image().
+necessary because after that call the proc can resume at the end of the tick and cause overtime.
+ generate_image Generates a chat message image representation
+ get_current_alpha Returns the current alpha of the message based on the time spent
+ on_parent_qdel Calls qdel on the chatmessage when its parent is deleted, used to register qdel signal
+ sanitize_color Ensures a colour is bright enough for the system
+ Var Details animate_lifespan
+
+
+
+
+
+ Our animation lifespan, how long this message will last
animate_start
+
+
+
+
+
+ When we started animating the message
approx_lines
+
+
+
+
+
+ Contains the approximate amount of lines for height decay
current_z_idx
+
+
+
+
+
+ The current index used for adjusting the layer of each sequential chat message such that recent messages will overlay older ones
message
+
+
+
+
+
+ The visual element of the chat messsage
message_loc
+
+
+
+
+
+ The location in which the message is appearing
owned_by
+
+
+
+
+
+ The client who heard this message
Proc Details New(text, /atom /target, /mob /owner, italics, size, lifespan, symbol)
+
+
+
+
+
+ Constructs a chat message overlay
+Arguments:
+
+text - The text content of the overlay
+target - The target atom to display the overlay at
+owner - The mob that owns this overlay, only this mob will be able to view it
+italics - Should we use italics or not
+lifespan - The lifespan of the message in deciseconds
+symbol - The symbol type of the message
+ colorize_string(name, sat_shift, lum_shift)
+
+
+
+
+
+ Gets a color for a name, will return the same color for a given string consistently within a round.atom
+Note that this proc aims to produce pastel-ish colors using the HSL colorspace. These seem to be favorable for displaying on the map.
+Arguments:
+
+name - The name to generate a color for
+sat_shift - A value between 0 and 1 that will be multiplied against the saturation
+lum_shift - A value between 0 and 1 that will be multiplied against the luminescence
+ finish_image_generation(mheight, /atom /target, /mob /owner, complete_text, lifespan)
+
+
+
+
+
+ finishes the image generation after the MeasureText() call in generate_image().
+necessary because after that call the proc can resume at the end of the tick and cause overtime.
generate_image(text, /atom /target, /mob /owner, lifespan, italics, size, symbol)
+
+
+
+
+
+ Generates a chat message image representation
+Arguments:
+
+text - The text content of the overlay
+target - The target atom to display the overlay at
+owner - The mob that owns this overlay, only this mob will be able to view it
+radio_speech - Fancy shmancy radio icon represents that we use radio
+lifespan - The lifespan of the message in deciseconds
+italics - Just copy and paste, sir
+size - Size of the message
+symbol - The symbol type of the message
+ get_current_alpha(time_alive)
+
+
+
+
+
+ Returns the current alpha of the message based on the time spent
on_parent_qdel()
+
+
+
+
+
+ Calls qdel on the chatmessage when its parent is deleted, used to register qdel signal
sanitize_color(color)
+
+
+
+
+
+ Ensures a colour is bright enough for the system
+This proc is used to brighten parts of a colour up if its too dark, and looks bad
+Arguments:
+
+hex - Hex colour to be brightened up
+
+
+
+
diff --git a/datum/chemical_production_mode.html b/datum/chemical_production_mode.html
new file mode 100644
index 0000000000000..5b66efbe09974
--- /dev/null
+++ b/datum/chemical_production_mode.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ /datum/chemical_production_mode - Space Station 13
+
+
+
+
+
+
+
+ Var Details production_icon
+
+
+
+
+
+ FontAwesome icon name
Proc Details
+ public
+Configures the icon of the specified container P.
+required data Data persistent through invocations in the same loop.
+required R The reagents used to make the item P.
+required P The container to configure.
+
+
+
diff --git a/datum/chemical_reaction.html b/datum/chemical_reaction.html
new file mode 100644
index 0000000000000..056db5cd5280d
--- /dev/null
+++ b/datum/chemical_reaction.html
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+ /datum/chemical_reaction - Space Station 13
+
+
+
+
+
+
+Vars
+ required_container The container required for the reaction to happen.
+Leave this null if you want the reaction to happen anywhere.
+ required_other Extra requirements for the reaction to happen.
+ required_reagents A list of IDs of the required reagents.
+ result_amount This is the amount of the resulting reagent this recipe will produce.
+It's recommended you set this to the total volume of all required reagents.
+ Var Details required_container
+
+
+
+
+
+ The container required for the reaction to happen.
+Leave this null if you want the reaction to happen anywhere.
required_other
+
+
+
+
+
+ Extra requirements for the reaction to happen.
required_reagents
+
+
+
+
+
+ A list of IDs of the required reagents.
+Each ID also needs an associated value that gives us the minimum
+required amount / of that reagent. The handle_reaction proc can detect
+mutiples of the same recipes / so for most cases you want to set the
+required amount to 1.
result_amount
+
+
+
+
+
+ This is the amount of the resulting reagent this recipe will produce.
+It's recommended you set this to the total volume of all required reagents.
+
+
+
diff --git a/datum/chemical_reaction/zombie.html b/datum/chemical_reaction/zombie.html
new file mode 100644
index 0000000000000..62c7996d2425c
--- /dev/null
+++ b/datum/chemical_reaction/zombie.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/chemical_reaction/zombie - Space Station 13
+
+
+
+
+
+
+Vars
+ amt_req_cures The amount of reagents to pick from get_possible_cures()
+ cure_level The cure level of the reagent, level 4 cure requires level 3 cure, which requires level 2 cure, etc
+ required_symptom A virus symptom required to complete this chemical reaction
+ Var Details amt_req_cures
+
+
+
+
+
+ The amount of reagents to pick from get_possible_cures()
cure_level
+
+
+
+
+
+ The cure level of the reagent, level 4 cure requires level 3 cure, which requires level 2 cure, etc
required_symptom
+
+
+
+
+
+ A virus symptom required to complete this chemical reaction
+
+
+
diff --git a/datum/click_intercept.html b/datum/click_intercept.html
new file mode 100644
index 0000000000000..e4328ce69cc58
--- /dev/null
+++ b/datum/click_intercept.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /datum/click_intercept - Space Station 13
+
+
+
+
+
+
+Datum which is intended to be stored by a client's click_intercept
variable.
+Used to override normal clicking behavior when clicking on an object.
+While active, a mob's ClickOn
proc will redirect to the InterceptClickOn()
proc instead.
Vars
+ buttons Any atom/movable/screen/buttons
the client is meant to receive when assigned this click intercept datum.
+ holder A reference to the client which is assigned this click intercept datum. Procs
+ InterceptClickOn Called in various mob's ClickOn
procs, which happens when they click on an object in the world.
+ create_buttons Base proc, intended to be overriden. Code that adds datum specific buttons to the list of buttons
, should go here.
+ quit Called when you want to cancel a client's click intercept and return to normal clicking.
+ Var Details
+ Any atom/movable/screen/buttons
the client is meant to receive when assigned this click intercept datum.
holder
+
+
+
+
+
+ A reference to the client which is assigned this click intercept datum.
Proc Details InterceptClickOn(/mob /user, params, /atom /object)
+
+
+
+
+
+ Called in various mob's ClickOn
procs, which happens when they click on an object in the world.
+If the mob's client.click_intercept
variable is set to something other than null, calls the InterceptClickOn
proc for that click intercept datum. Aka, this proc.
+Arguments:
+
+user - the mob which just clicked on something.
+params - the params
arguemnt passed from the ClickOn
proc.
+object - the atom that was just clicked.
+
+ Base proc, intended to be overriden. Code that adds datum specific buttons to the list of buttons
, should go here.
quit()
+
+
+
+
+
+ Called when you want to cancel a client's click intercept and return to normal clicking.
+
+
+
diff --git a/datum/click_intercept/give.html b/datum/click_intercept/give.html
new file mode 100644
index 0000000000000..e0c45dddc4349
--- /dev/null
+++ b/datum/click_intercept/give.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/click_intercept/give - Space Station 13
+
+
+
+
+
+
+While a mob has this intercept, left clicking on a carbon mob will attempt to offer their currently held item to that mob.
Vars
+ item_offered If the intercept user has succesfully offered the item to another player.
+ Var Details item_offered
+
+
+
+
+
+ If the intercept user has succesfully offered the item to another player.
+
+
+
diff --git a/datum/client_login_processor.html b/datum/client_login_processor.html
new file mode 100644
index 0000000000000..00a2c2f6d29ec
--- /dev/null
+++ b/datum/client_login_processor.html
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+ /datum/client_login_processor - Space Station 13
+
+
+
+
+
+
+The holder class for all client data processing
+This framework is designed for loading in client data from the database.
+Login processors have their own queries, which will be put into one async batch and
+executed at the same time, to reduce the time it takes for a client to login.
+Login processors can also be given priorities to have things fire in specific orders
+EG: Load their preferences before their job bans, etc etc
+When creating these, please name the files with the priority at the start, and the typepath after
+EG: 10-load_preferences.dm
+This makes it easier to track stuff down -AA07
+Also if you have used other languages before with "interface" types (Java, C# (Microsoft Java), etc),
+treat this class as one of those. [get_query(client/C)] and [process_result(datum/db_query/Q, client/C)] MUST be overriden
+ Var Details priority
+
+
+
+
+
+ The login priority. A lower priority will fire first
Proc Details get_query
+
+ Query Getter
+Gets the DB query for this login processor
+Takes the client as an arg instead of just the ckey incase we need more data (IP, CID, etc).
+Returns a DB query datum.
+Arguments:
+
+C - The client to use to generate the query
+
+ Result Processor
+Takes the (now executed) query and the client and parses the required data out
+Note: This can be a no-op if you want to just update the DB, just return on the override
+Arguments:
+
+Q - The DB query to process data from
+C - The client to store stuff on
+
+
+
+
diff --git a/datum/cloning_data.html b/datum/cloning_data.html
new file mode 100644
index 0000000000000..9feab43617397
--- /dev/null
+++ b/datum/cloning_data.html
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+ /datum/cloning_data - Space Station 13
+
+
+
+
+
+
+A datum to store the information gained by scanning a patient OR the fixes to be made to their body.
Vars
+ genetic_info The patient's DNA
+ limbs The patient's external organs (limbs) and their data, stored as an associated list of lists.
+List format: limb = list(brute, burn, status, missing, name, max damage)
+ mindUID A reference to the patient's mind.
+ name The patient's name.
+ organs The patient's internal organs and their data, stored as an associated list of lists.
+List format: organ = list(damage, status, missing, name, max damage, organ tag)
+ Var Details genetic_info
+
+
+
+
+
+ The patient's DNA
limbs
+
+
+
+
+
+ The patient's external organs (limbs) and their data, stored as an associated list of lists.
+List format: limb = list(brute, burn, status, missing, name, max damage)
mindUID
+
+
+
+
+
+ A reference to the patient's mind.
name
+
+
+
+
+
+ The patient's name.
organs
+
+
+
+
+
+ The patient's internal organs and their data, stored as an associated list of lists.
+List format: organ = list(damage, status, missing, name, max damage, organ tag)
+
+
+
diff --git a/datum/code_revision.html b/datum/code_revision.html
new file mode 100644
index 0000000000000..bc60d042b2e67
--- /dev/null
+++ b/datum/code_revision.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/code_revision - Space Station 13
+
+
+
+
+
+
+Code Revision Datum
+Allows the server code to be aware of the Git environment it is running in, and lets commit hash be viewed
+ Var Details commit_date
+
+
+
+
+
+ Date that this commit was made
commit_hash
+
+
+
+
+
+ Current commit hash the server is running
origin_commit
+
+
+
+
+
+ Origin commit (Only set if running TGS, and will only be different if the server is running testmerges)
testmerges
+
+
+
+
+
+ List of testmerges (If applicable)
Proc Details get_testmerge_chatmessage(header)
+
+
+
+
+
+ Testmerge Chat Message Helper
+Formats testmerged PRs into a nice message
+Arguments:
+
+header - Should a header be sent too
+ log_info()
+
+
+
+
+
+ Code Revision Logging Helper
+Small proc to simplify logging all this stuff
+
+
+
diff --git a/datum/component.html b/datum/component.html
new file mode 100644
index 0000000000000..b6fa7e6c60498
--- /dev/null
+++ b/datum/component.html
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+ /datum/component - Space Station 13
+
+
+
+
+
+
+The component datum
+A component should be a single standalone unit
+of functionality, that works by receiving signals from it's parent
+object to provide some single functionality (i.e a slippery component)
+that makes the object it's attached to cause people to slip over.
+Useful when you want shared behaviour independent of type inheritance
Vars
+ can_transfer Only set to true if you are able to properly transfer this component
+ dupe_mode Defines how duplicate existing components are handled when added to a datum
+ dupe_type The type to check for duplication
+ parent The datum this components belongs to Procs
+ Destroy Properly removes the component from parent
and cleans up references
+ InheritComponent Called on a component when a component of the same type was added to the same parent
+ Initialize Called during component creation with the same arguments as in new excluding parent.
+ New Create a new component.
+ PostTransfer Callback Just after a component is transferred
+ PreTransfer Callback Just before this component is transferred
+ RegisterWithParent Register the component with the parent object
+ RemoveComponent Removes the component from parent, ends up with a null parent
+ UnregisterFromParent Unregister from our parent object
+ _GetInverseTypeList Internal proc to create a list of our type and all parent types
+ _JoinParent Internal proc to handle behaviour of components when joining a parent
+ _RemoveFromParent Internal proc to handle behaviour when being removed from a parent
+ ui_host Return the object that is the host of any UI's that this component has
+ Var Details can_transfer
+
+
+
+
+
+ Only set to true if you are able to properly transfer this component
+At a minimum RegisterWithParent and UnregisterFromParent should be used
+Make sure you also implement PostTransfer for any post transfer handling
dupe_mode
+
+
+
+
+
+ Defines how duplicate existing components are handled when added to a datum
+See COMPONENT_DUPE_* definitions for available options
dupe_type
+
+
+
+
+
+ The type to check for duplication
+null
means exact match on type
(default)
+Any other type means that and all subtypes
parent
+
+
+
+
+
+ The datum this components belongs to
Proc Details Destroy(force, silent)
+
+
+
+
+
+ Properly removes the component from parent
and cleans up references
+Arguments:
+
+force - makes it not check for and remove the component from the parent
+silent - deletes the component without sending a COMSIG_COMPONENT_REMOVING signal
+ InheritComponent
+
+ Called on a component when a component of the same type was added to the same parent
+See /datum/component/var/dupe_mode
+C
's type will always be the same of the called component
Initialize(...)
+
+
+
+
+
+ Called during component creation with the same arguments as in new excluding parent.
+Do not call qdel(src)
from this function, return COMPONENT_INCOMPATIBLE
instead
New(/list/raw_args)
+
+
+
+
+
+ Create a new component.
+Additional arguments are passed to Initialize()
+Arguments:
+
+datum/P the parent datum this component reacts to signals from
+ PostTransfer()
+
+
+
+
+
+ Callback Just after a component is transferred
+Use this to do any special setup you need to do after being moved to a new object
+Do not call qdel(src)
from this function, return COMPONENT_INCOMPATIBLE
instead
PreTransfer()
+
+
+
+
+
+ Callback Just before this component is transferred
+Use this to do any special cleanup you might need to do before being deregged from an object
RegisterWithParent()
+
+
+
+
+
+ Register the component with the parent object
+Use this proc to register with your parent object
+Overridable proc that's called when added to a new parent
RemoveComponent()
+
+
+
+
+
+ Removes the component from parent, ends up with a null parent
UnregisterFromParent()
+
+
+
+
+
+ Unregister from our parent object
+Use this proc to unregister from your parent object
+Overridable proc that's called when removed from a parent
_GetInverseTypeList(our_type)
+
+
+
+
+
+ Internal proc to create a list of our type and all parent types
_JoinParent()
+
+
+
+
+
+ Internal proc to handle behaviour of components when joining a parent
_RemoveFromParent()
+
+
+
+
+
+ Internal proc to handle behaviour when being removed from a parent
ui_host
+
+ Return the object that is the host of any UI's that this component has
+
+
+
diff --git a/datum/component/automatic_fire.html b/datum/component/automatic_fire.html
new file mode 100644
index 0000000000000..70b166fd388f0
--- /dev/null
+++ b/datum/component/automatic_fire.html
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ /datum/component/automatic_fire - Space Station 13
+
+
+
+
+
+
+Vars
+ allow_akimbo Should dual wielding be allowed?
+ autofire_shot_delay Time between individual shots.
+ current_windup_reduction the reduction to shot delay for windup
+ mouse_status This seems hacky but there can be two MouseDown() without a MouseUp() in between if the user holds click and uses alt+tab, printscreen or similar.
+ timerid Timer for tracking the spindown reset timings
+ windup_autofire windup autofire vars
+Whether the delay between shots increases over time, simulating a spooling weapon
+ windup_autofire_cap How high of a reduction that current_windup_reduction can reach
+ windup_autofire_reduction_multiplier the percentage of autfire_shot_delay that is added to current_windup_reduction
+ windup_spindown How long it takes for weapons that have spooled-up to reset back to the original firing speed Procs
+ windup_reset Reset for our windup, resetting everything back to initial values after a variable set amount of time (determined by var/windup_spindown).
+ Var Details allow_akimbo
+
+
+
+
+
+ Should dual wielding be allowed?
autofire_shot_delay
+
+
+
+
+
+ Time between individual shots.
current_windup_reduction
+
+
+
+
+
+ the reduction to shot delay for windup
mouse_status
+
+
+
+
+
+ This seems hacky but there can be two MouseDown() without a MouseUp() in between if the user holds click and uses alt+tab, printscreen or similar.
timerid
+
+
+
+
+
+ Timer for tracking the spindown reset timings
windup_autofire
+
+
+
+
+
+ windup autofire vars
+Whether the delay between shots increases over time, simulating a spooling weapon
windup_autofire_cap
+
+
+
+
+
+ How high of a reduction that current_windup_reduction can reach
windup_autofire_reduction_multiplier
+
+
+
+
+
+ the percentage of autfire_shot_delay that is added to current_windup_reduction
windup_spindown
+
+
+
+
+
+ How long it takes for weapons that have spooled-up to reset back to the original firing speed
Proc Details windup_reset(deltimer)
+
+
+
+
+
+ Reset for our windup, resetting everything back to initial values after a variable set amount of time (determined by var/windup_spindown).
+
+
+
diff --git a/datum/component/boomerang.html b/datum/component/boomerang.html
new file mode 100644
index 0000000000000..e1c432c20acd1
--- /dev/null
+++ b/datum/component/boomerang.html
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+ /datum/component/boomerang - Space Station 13
+
+
+
+
+
+
+If an object is given the boomerang component, it should be thrown back to the thrower after either hitting it's 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.
Vars
+ boomerang_throw_range How far should the boomerang try to travel to return to the thrower?
+ last_boomerang_throw This cooldown prevents our 2 throwing signals from firing too often based on how we implement those signals within thrown impacts.
+ thrower_easy_catch_enabled If this boomerang is thrown, does it re-enable the throwers throw mode? Procs
+ aerodynamic_swing Proc that triggers when the thrown boomerang has been fully thrown, rethrowing the boomerang back to the thrower, and producing visible feedback.
+ prepare_throw Proc'd before the first thrown is performed in order to gather information regarding each throw as well as handle throw_mode as necessary.
+ return_hit_throw Proc that triggers when the thrown boomerang hits an object.
+ return_missed_throw Proc that triggers when the thrown boomerang does not hit a target.
+ Var Details boomerang_throw_range
+
+
+
+
+
+ How far should the boomerang try to travel to return to the thrower?
last_boomerang_throw
+
+
+
+
+
+ This cooldown prevents our 2 throwing signals from firing too often based on how we implement those signals within thrown impacts.
thrower_easy_catch_enabled
+
+
+
+
+
+ If this boomerang is thrown, does it re-enable the throwers throw mode?
Proc Details aerodynamic_swing
+
+ Proc that triggers when the thrown boomerang has been fully thrown, rethrowing the boomerang back to the thrower, and producing visible feedback.
+
+throwing_datum: The thrownthing datum that originally impacted the object, that we use to build the new throwing datum for the rebound.
+hit_atom: The atom that has been hit by the boomerang'd object.
+ prepare_throw
+
+ Proc'd before the first thrown is performed in order to gather information regarding each throw as well as handle throw_mode as necessary.
+
+source: Datum src from original signal call.
+thrown_thing: The thrownthing datum from the parent object's latest throw. Updates thrown_boomerang.
+spin: Carry over from POST_THROW, the speed of rotation on the boomerang when thrown.
+ return_hit_throw
+
+ Proc that triggers when the thrown boomerang hits an object.
+
+source: Datum src from original signal call.
+hit_atom: The atom that has been hit by the boomerang component.
+init_throwing_datum: The thrownthing datum that originally impacted the object, that we use to build the new throwing datum for the rebound.
+ return_missed_throw
+
+ Proc that triggers when the thrown boomerang does not hit a target.
+
+source: Datum src from original signal call.
+throwing_datum: The thrownthing datum that originally impacted the object, that we use to build the new throwing datum for the rebound.
+
+
+
+
diff --git a/datum/component/boss_music.html b/datum/component/boss_music.html
new file mode 100644
index 0000000000000..8e0e206e639b5
--- /dev/null
+++ b/datum/component/boss_music.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ /datum/component/boss_music - Space Station 13
+
+
+
+
+
+
+Attaches to a hostile simplemob and plays that music while they have a target.
Vars
+ boss_track The music track we will play to players.
+ music_callbacks List of callback timers, used to clear out mobs listening to boss music after track_duration
.
+ players_listening_uids List of all mobs listening to the boss music currently. Cleared on Destroy or after track_duration
.
+ track_duration How long the track is, used to clear players out when the music is supposed to end. Procs
+ clear_target Removes old_target
from the list of players listening, and stops their music if it is still playing.
+This allows them to have music played again if they re-enter combat with this fauna.
+ on_mob_death Called when a mob listening to boss music dies- ends their music early.
+ on_target_found Handles giving the boss music to a new target the fauna has received.
+Keeps track of them to not repeatedly overwrite its own track.
+ Var Details boss_track
+
+
+
+
+
+ The music track we will play to players.
music_callbacks
+
+
+
+
+
+ List of callback timers, used to clear out mobs listening to boss music after track_duration
.
players_listening_uids
+
+
+
+
+
+ List of all mobs listening to the boss music currently. Cleared on Destroy or after track_duration
.
track_duration
+
+
+
+
+
+ How long the track is, used to clear players out when the music is supposed to end.
Proc Details clear_target(incoming_uid)
+
+
+
+
+
+ Removes old_target
from the list of players listening, and stops their music if it is still playing.
+This allows them to have music played again if they re-enter combat with this fauna.
on_mob_death
+
+ Called when a mob listening to boss music dies- ends their music early.
on_target_found
+
+ Handles giving the boss music to a new target the fauna has received.
+Keeps track of them to not repeatedly overwrite its own track.
+
+
+
diff --git a/datum/component/caltrop.html b/datum/component/caltrop.html
new file mode 100644
index 0000000000000..e8ca82250b942
--- /dev/null
+++ b/datum/component/caltrop.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/component/caltrop - Space Station 13
+
+
+
+
+
+
+
+ Var Details flags
+
+
+
+
+
+ Shoebypassing, walking interaction, silence
max_damage
+
+
+
+
+
+ Maximum damage when crossed
min_damage
+
+
+
+
+
+ Minimum damage when crossed
probability
+
+
+
+
+
+ Probability of stunning and doing daamge
weaken_duration
+
+
+
+
+
+ Duration of weaken when crossed
+
+
+
diff --git a/datum/component/codeword_hearing.html b/datum/component/codeword_hearing.html
new file mode 100644
index 0000000000000..42745176da521
--- /dev/null
+++ b/datum/component/codeword_hearing.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ /datum/component/codeword_hearing - Space Station 13
+
+
+
+
+
+
+Component that allows for highlighting of words or phrases in chat based on regular expressions.
+Hooks into /mob/proc/combine_message to wrap every regex match in the message
+between tags with the provided span class. This modifies the output that
+is sent to the parent's chat window.
+Removal of this component should be done by calling [GetComponents(/datum/component/codeword_hearing)]
+on the parent and then iterating through all components calling [delete_if_from_source(source)].
Vars
+ replace_regex Regex for matching words or phrases you want highlighted.
+ source The source of this component. Used to identify the source in delete_if_from_source since this component is COMPONENT_DUPE_ALLOWED.
+ span_class The to use for highlighting matches. Procs
+ delete_if_from_source Since a parent can have multiple of these components on them simultaneously, this allows a datum to delete components from a specific source.
+ Var Details replace_regex
+
+
+
+
+
+ Regex for matching words or phrases you want highlighted.
source
+
+
+
+
+
+ The source of this component. Used to identify the source in delete_if_from_source since this component is COMPONENT_DUPE_ALLOWED.
span_class
+
+
+
+
+
+ The to use for highlighting matches.
Proc Details delete_if_from_source(component_source)
+
+
+
+
+
+ Since a parent can have multiple of these components on them simultaneously, this allows a datum to delete components from a specific source.
+
+
+
diff --git a/datum/component/connect_mob_behalf.html b/datum/component/connect_mob_behalf.html
new file mode 100644
index 0000000000000..fd7182e4bff59
--- /dev/null
+++ b/datum/component/connect_mob_behalf.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ /datum/component/connect_mob_behalf - Space Station 13
+
+
+
+
+
+
+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 seperate listener, which makes this quite powerful
Vars
+ connections An assoc list of signal -> procpath to register to the mob our client "owns"
+ tracked The master client we're working with
+ tracked_mob The mob we're currently tracking
+ Var Details connections
+
+
+
+
+
+ An assoc list of signal -> procpath to register to the mob our client "owns"
tracked
+
+
+
+
+
+ The master client we're working with
tracked_mob
+
+
+
+
+
+ The mob we're currently tracking
+
+
+
diff --git a/datum/component/construct_held_body.html b/datum/component/construct_held_body.html
new file mode 100644
index 0000000000000..74243c386e8f0
--- /dev/null
+++ b/datum/component/construct_held_body.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /datum/component/construct_held_body - Space Station 13
+
+
+
+
+
+
+A component for tracking and manipulating bodies held inside constructs/shades
+Will drop the body/brain when the parent dies or is deleted.
Vars
+ held_body A reference to either a mob, or a brain organ that is held inside our parent. Will drop when parent dies/is deleted
+ Var Details held_body
+
+
+
+
+
+ A reference to either a mob, or a brain organ that is held inside our parent. Will drop when parent dies/is deleted
+
+
+
diff --git a/datum/component/corpse_description.html b/datum/component/corpse_description.html
new file mode 100644
index 0000000000000..13138a7300bbc
--- /dev/null
+++ b/datum/component/corpse_description.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ /datum/component/corpse_description - Space Station 13
+
+
+
+
+
+
+Mapping component which adds examine text to a corpse that is removed on revival (in case for some reason someone revives your space ruin mob)
+For immersive environmental story telling
+ Var Details description_text
+
+
+
+
+
+ What do we display on examine?
naive_description
+
+
+
+
+
+ What do we display if examined by a clown?
+
+
+
diff --git a/datum/component/deadchat_control.html b/datum/component/deadchat_control.html
new file mode 100644
index 0000000000000..1592d0edc52cb
--- /dev/null
+++ b/datum/component/deadchat_control.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ /datum/component/deadchat_control - Space Station 13
+
+
+
+
+
+
+Deadchat Plays Things - The Componenting
+Allows deadchat to control stuff and things by typing commands into chat.
+These commands will then trigger callbacks to execute procs!
Vars
+ ckey_to_cooldown Assoc list of ckey:value pairings. In DEADCHAT_DEMOCRACY_MODE, value is the player's vote. In DEADCHAT_ANARCHY_MODE, value is world.time when their cooldown expires.
+ deadchat_mode A bitfield containing the mode which this component uses (DEADCHAT_DEMOCRACY_MODE or DEADCHAT_ANARCHY_MODE) and other settings)
+ generated_point_of_interest Set to true if a point of interest was created for an object, and needs to be removed if deadchat control is removed. Needed for preventing objects from having two points of interest.
+ input_cooldown In DEADCHAT_DEMOCRACY_MODE, this is how long players have to vote on an input. In DEADCHAT_ANARCHY_MODE, this is how long between inputs for each unique player.
+ inputs Assoc list of key-chat command string, value-callback pairs. list("right" = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step), src, EAST))
+ on_removal Callback invoked when this component is Destroy()ed to allow the parent to return to a non-deadchat controlled state.
+ orbiters List of everything orbitting this component's parent.
+ timerid The id for the DEADCHAT_DEMOCRACY_MODE looping vote timer. Procs
+ _step Dummy to call since we can't proc reference builtins
+ end_cooldown Removes the ghost from the ckey_to_cooldown list and lets them know they are free to submit a command for the parent again.
+ on_examine Informs any examiners to the inputs available as part of deadchat control, as well as the current operating mode and cooldowns.
+ waive_automute Prevents messages used to control the parent from counting towards the automute threshold for repeated identical messages.
+ Var Details ckey_to_cooldown
+
+
+
+
+
+ Assoc list of ckey:value pairings. In DEADCHAT_DEMOCRACY_MODE, value is the player's vote. In DEADCHAT_ANARCHY_MODE, value is world.time when their cooldown expires.
deadchat_mode
+
+
+
+
+
+ A bitfield containing the mode which this component uses (DEADCHAT_DEMOCRACY_MODE or DEADCHAT_ANARCHY_MODE) and other settings)
generated_point_of_interest
+
+
+
+
+
+ Set to true if a point of interest was created for an object, and needs to be removed if deadchat control is removed. Needed for preventing objects from having two points of interest.
+ In DEADCHAT_DEMOCRACY_MODE, this is how long players have to vote on an input. In DEADCHAT_ANARCHY_MODE, this is how long between inputs for each unique player.
+ Assoc list of key-chat command string, value-callback pairs. list("right" = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_step), src, EAST))
on_removal
+
+
+
+
+
+ Callback invoked when this component is Destroy()ed to allow the parent to return to a non-deadchat controlled state.
orbiters
+
+
+
+
+
+ List of everything orbitting this component's parent.
timerid
+
+
+
+
+
+ The id for the DEADCHAT_DEMOCRACY_MODE looping vote timer.
Proc Details _step(ref, dir)
+
+
+
+
+
+ Dummy to call since we can't proc reference builtins
end_cooldown(ghost_ckey)
+
+
+
+
+
+ Removes the ghost from the ckey_to_cooldown list and lets them know they are free to submit a command for the parent again.
on_examine(/atom /A, /mob /user, /list/examine_list)
+
+
+
+
+
+ Informs any examiners to the inputs available as part of deadchat control, as well as the current operating mode and cooldowns.
waive_automute(/mob /speaker, /client /client, message, mute_type)
+
+
+
+
+
+ Prevents messages used to control the parent from counting towards the automute threshold for repeated identical messages.
+Arguments:
+
+speaker : The mob that is trying to speak.
+client : The client that is trying to speak.
+message: The message that the speaker is trying to say.
+mute_type: Which type of mute the message counts towards.
+
+
+
+
diff --git a/datum/component/deadchat_control/cardinal_movement.html b/datum/component/deadchat_control/cardinal_movement.html
new file mode 100644
index 0000000000000..db7922e5499dc
--- /dev/null
+++ b/datum/component/deadchat_control/cardinal_movement.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /datum/component/deadchat_control/cardinal_movement - Space Station 13
+
+
+
+
+
+
+Proc Details Initialize(_deadchat_mode, _inputs, _input_cooldown, _on_removal)
+
+
+
+
+
+ Deadchat Moves Things
+A special variant of the deadchat_control component that comes pre-baked with all the hottest inputs for a spicy
+singularity or vomit goose.
+
+
+
diff --git a/datum/component/deadchat_control/human.html b/datum/component/deadchat_control/human.html
new file mode 100644
index 0000000000000..f1a3e45468953
--- /dev/null
+++ b/datum/component/deadchat_control/human.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /datum/component/deadchat_control/human - Space Station 13
+
+
+
+
+
+
+Proc Details Initialize(_deadchat_mode, _inputs, _input_cooldown, _on_removal)
+
+
+
+
+
+ Deadchat Moves Things
+A special variant of the deadchat_control component that comes pre-baked with basic inputs for moving humans around,
+with special behavior that has them resist while moving.
+
+
+
diff --git a/datum/component/deadchat_control/immovable_rod.html b/datum/component/deadchat_control/immovable_rod.html
new file mode 100644
index 0000000000000..d99842f071135
--- /dev/null
+++ b/datum/component/deadchat_control/immovable_rod.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /datum/component/deadchat_control/immovable_rod - Space Station 13
+
+
+
+
+
+
+Proc Details Initialize(_deadchat_mode, _inputs, _input_cooldown, _on_removal)
+
+
+
+
+
+ Deadchat Moves Things
+A special variant of the deadchat_control component that comes pre-baked with all the hottest inputs for spicy
+immovable rod.
+
+
+
diff --git a/datum/component/debris.html b/datum/component/debris.html
new file mode 100644
index 0000000000000..9bf5111f3b477
--- /dev/null
+++ b/datum/component/debris.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/component/debris - Space Station 13
+
+
+
+
+
+
+
+ Var Details debris
+
+
+
+
+
+ Icon state of debris when impacted by a projectile
debris_amount
+
+
+
+
+
+ Amount of debris particles
debris_scale
+
+
+
+
+
+ Scale of particle debris
debris_velocity
+
+
+
+
+
+ Velocity of debris particles
+
+
+
diff --git a/datum/component/defib.html b/datum/component/defib.html
new file mode 100644
index 0000000000000..454e2fa0140e3
--- /dev/null
+++ b/datum/component/defib.html
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+ /datum/component/defib - Space Station 13
+
+
+
+
+
+
+A component for an item that attempts to defibrillate a mob when activated.
Vars
+ actual_unit_uid uid to an item that should be making noise and handling things that our direct parent shouldn't be concerned with.
+ busy If the defib is actively performing a defib cycle
+ combat If it should penetrate space suits
+ cooldown Cooldown length for this defib in deciseconds
+ emag_proof If true, this cannot be emagged.
+ emp_proof If true, EMPs will have no effect.
+ heart_attack_chance If combat is true, this determines whether or not it should always cause a heart attack.
+ on_cooldown Whether or not we're currently on cooldown
+ robotic If this is being used by a borg or not, with necessary safeties applied if so.
+ safety Whether the safeties are enabled or not
+ speed_multiplier How fast the defib should work. Procs
+ Initialize Create a new defibrillation component.
+ defibrillate Perform a defibrillation.
+ fibrillate Inflict stamina loss (and possibly inflict cardiac arrest) on someone.
+ get_effect_target Get the "parent" that effects (emags, EMPs) should be applied onto.
+ trigger_defib Start the defibrillation process when triggered by a signal.
+ Var Details actual_unit_uid
+
+
+
+
+
+ uid to an item that should be making noise and handling things that our direct parent shouldn't be concerned with.
busy
+
+
+
+
+
+ If the defib is actively performing a defib cycle
combat
+
+
+
+
+
+ If it should penetrate space suits
cooldown
+
+
+
+
+
+ Cooldown length for this defib in deciseconds
emag_proof
+
+
+
+
+
+ If true, this cannot be emagged.
emp_proof
+
+
+
+
+
+ If true, EMPs will have no effect.
heart_attack_chance
+
+
+
+
+
+ If combat is true, this determines whether or not it should always cause a heart attack.
on_cooldown
+
+
+
+
+
+ Whether or not we're currently on cooldown
robotic
+
+
+
+
+
+ If this is being used by a borg or not, with necessary safeties applied if so.
safety
+
+
+
+
+
+ Whether the safeties are enabled or not
speed_multiplier
+
+
+
+
+
+ How fast the defib should work.
Proc Details Initialize(robotic, cooldown, speed_multiplier, combat, heart_attack_chance, safe_by_default, emp_proof, emag_proof, /obj /item /actual_unit)
+
+
+
+
+
+ Create a new defibrillation component.
+Arguments:
+
+robotic - whether this should be treated like a borg module.
+cooldown - Minimum time possible between shocks.
+speed_multiplier - Speed multiplier for defib do-afters.
+combat - If true, the defib can zap through hardsuits.
+heart_attack_chance - If combat and safeties are off, the % chance for this to cause a heart attack on harm intent.
+safe_by_default - If true, safety will be enabled by default.
+emp_proof - If true, safety won't be switched by emp. Note that the device itself can still have behavior from it, it's just that the component will not.
+emag_proof - If true, safety won't be switched by emag. Note that the device itself can still have behavior from it, it's just that the component will not.
+actual_unit - Unit which the component's parent is based from, such as a large defib unit or a borg. The actual_unit will make the sounds and be the "origin" of visible messages, among other things.
+
+ Perform a defibrillation.
+ Inflict stamina loss (and possibly inflict cardiac arrest) on someone.
+Arguments:
+
+user - wielder of the defib
+target - person getting shocked
+ get_effect_target()
+
+
+
+
+
+ Get the "parent" that effects (emags, EMPs) should be applied onto.
+ Start the defibrillation process when triggered by a signal.
+
+
+
diff --git a/datum/component/emissive_blocker.html b/datum/component/emissive_blocker.html
new file mode 100644
index 0000000000000..0e5219a3ce269
--- /dev/null
+++ b/datum/component/emissive_blocker.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/component/emissive_blocker - Space Station 13
+
+
+
+
+
+
+
+ Var Details stored_blocker
+
+
+
+
+
+ Stores either the mutable_appearance or a list of them
Proc Details update_generic_block
+
+ Updates the generic blocker when the icon_state is changed
+
+
+
diff --git a/datum/component/footstep.html b/datum/component/footstep.html
new file mode 100644
index 0000000000000..b1ab063dede5c
--- /dev/null
+++ b/datum/component/footstep.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/component/footstep - Space Station 13
+
+
+
+
+
+
+Footstep component. Plays footsteps at parents location when it is appropriate.
Vars
+ e_range e_range stands for extra range - aka how far the sound can be heard. This is added to the base value and ignored if there isn't a base value.
+ footstep_sounds This can be a list OR a soundfile OR null. Determines whatever sound gets played.
+ footstep_type footstep_type is a define which determines what kind of sounds should get chosen.
+ sound_vary Whether or not to add variation to the sounds played
+ steps How many steps the parent has taken since the last time a footstep was played.
+ volume volume determines the extra volume of the footstep. This is multiplied by the base volume, should there be one. Procs
+ play_simplestep_machine Prepares a footstep for machine walking
+ prepare_step Prepares a footstep. Determines if it should get played. Returns the turf it should get played on. Note that it is always a /turf/simulated/floor (eventually /turf/open)
+ Var Details e_range
+
+
+
+
+
+ e_range stands for extra range - aka how far the sound can be heard. This is added to the base value and ignored if there isn't a base value.
+ This can be a list OR a soundfile OR null. Determines whatever sound gets played.
+ footstep_type is a define which determines what kind of sounds should get chosen.
sound_vary
+
+
+
+
+
+ Whether or not to add variation to the sounds played
steps
+
+
+
+
+
+ How many steps the parent has taken since the last time a footstep was played.
volume
+
+
+
+
+
+ volume determines the extra volume of the footstep. This is multiplied by the base volume, should there be one.
Proc Details play_simplestep_machine()
+
+
+
+
+
+ Prepares a footstep for machine walking
prepare_step()
+
+
+
+
+
+ Prepares a footstep. Determines if it should get played. Returns the turf it should get played on. Note that it is always a /turf/simulated/floor (eventually /turf/open)
+
+
+
diff --git a/datum/component/label.html b/datum/component/label.html
new file mode 100644
index 0000000000000..1f0241342374e
--- /dev/null
+++ b/datum/component/label.html
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+ /datum/component/label - Space Station 13
+
+
+
+
+
+
+The label component.
+This component is used to manage labels applied by the hand labeler.
+Atoms can only have one instance of this component, and therefore only one label at a time.
+This is to avoid having names like "Backpack (label1) (label2) (label3)". This is annoying and abnoxious to read.
+When a player clicks the atom with a hand labeler to apply a label, this component gets applied to it.
+If the labeler is off, the component will be removed from it, and the label will be removed from its name.
Vars
+ label_name The name of the label the player is applying to the parent. Procs
+ Examine This proc will trigger when someone examines the parent.
+It will attach the text found in the body of the proc to the examine_list
and display it to the player examining the parent.
+ InheritComponent This proc will fire after the parent is hit by a hand labeler which is trying to apply another label.
+Since the parent already has a label, it will remove the old one from the parent's name, and apply the new one.
+ OnAttackby This proc will trigger when any object is used to attack the parent.
+ apply_label Applies a label to the name of the parent in the format of: "parent_name (label)"
+ remove_label Removes the label from the parent's name
+ Var Details label_name
+
+
+
+
+
+ The name of the label the player is applying to the parent.
Proc Details Examine(/datum /source, /mob /user, /list/examine_list)
+
+
+
+
+
+ This proc will trigger when someone examines the parent.
+It will attach the text found in the body of the proc to the examine_list
and display it to the player examining the parent.
+Arguments:
+
+source: The parent.
+user: The mob exmaining the parent.
+examine_list: The current list of text getting passed from the parent's normal examine() proc.
+ InheritComponent
+
+ This proc will fire after the parent is hit by a hand labeler which is trying to apply another label.
+Since the parent already has a label, it will remove the old one from the parent's name, and apply the new one.
OnAttackby
+
+ This proc will trigger when any object is used to attack the parent.
+If the attacking object is not a hand labeler, it will return.
+If the attacking object is a hand labeler it will restore the name of the parent to what it was before this component was added to it, and the component will be deleted.
+Arguments:
+
+source: The parent.
+attacker: The object that is hitting the parent.
+user: The mob who is wielding the attacking object.
+ apply_label()
+
+
+
+
+
+ Applies a label to the name of the parent in the format of: "parent_name (label)"
remove_label()
+
+
+
+
+
+ Removes the label from the parent's name
+
+
+
diff --git a/datum/component/label/goal.html b/datum/component/label/goal.html
new file mode 100644
index 0000000000000..7203a7f17471a
--- /dev/null
+++ b/datum/component/label/goal.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+ /datum/component/label/goal - Space Station 13
+
+
+
+
+
+
+A verson of the label component specific to labelling goal items.
Procs
+ Examine Adds detailed information to the examine text.
+ apply_label Applies a static label to the parent's name.
+We do this instead of using label_name so it's easier to identify goal objects at a glance.
+ remove_label Removes the label from the parent's name
Proc Details Examine(/datum /source, /mob /user, /list/examine_list)
+
+
+
+
+
+ Adds detailed information to the examine text.
apply_label()
+
+
+
+
+
+ Applies a static label to the parent's name.
+We do this instead of using label_name so it's easier to identify goal objects at a glance.
remove_label()
+
+
+
+
+
+ Removes the label from the parent's name
+
+
+
diff --git a/datum/component/orbiter.html b/datum/component/orbiter.html
new file mode 100644
index 0000000000000..52617436562b2
--- /dev/null
+++ b/datum/component/orbiter.html
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+ /datum/component/orbiter - Space Station 13
+
+
+
+
+
+
+Vars
+ orbit_data Cached transforms from before the orbiter started orbiting, to be restored on stopping their orbit
+ orbiter_list List of observers orbiting the parent Procs
+ InheritComponent See atom/movable/proc/orbit for parameter definitions
+ Initialize See atom/movable/proc/orbit for parameter definitions
+ begin_orbit See atom/movable/proc/orbit for parameter definitions
+ end_orbit End the orbit and clean up our transformation.
+If this removes the last atom orbiting us, then qdel ourselves.
+Howver, if refreshing == TRUE, src will not be qdeleted if this leaves us with 0 orbiters.
+ get_cached_transform Get cached transform of the given orbiter.
+ get_orbit_params Get the given orbiter's orbit parameters bitfield
+ get_orbiter_layer Get the layer the given orbiter was on before they started orbiting
+ handle_parent_move The actual implementation function of the move react.
+if you're trying to call this from a signal, call parent_move_react instead.
+This implementation is separate so the orbited atom's old location and new location can be passed in separately.
+ is_in_hierarchy Returns TRUE if atom_to_find is transitively a parent of src.
+ on_intermediate_move Called when an intermediate (somewhere between the topmost and the orbited) atom moves.
+This atom will now become the leader.
+ on_remove_child Callback fired when an item is removed from a tracked atom.
+Removes all orbit-related signals up its hierarchy and moves orbiters to the current child.
+As this will never be called by a turf, this should not conflict with parent_move_react.
+ orbiter_move_react Called when the orbiter themselves moves.
+ parent_move_react Signal handler for COMSIG_MOVABLE_MOVED. Special wrapper to handle the arguments that come from the signal.
+If you want to call this directly, just call handle_parent_move.
+ register_signals Register signals up the hierarchy, adding them to each parent (and their parent, and so on) up to the turf they're on.
+The last atom in the hierarchy (the one whose .loc is the turf) becomes the leader, the atom ghosts will follow.
+Registers on_intermediate_move for every non-leader atom so that if they move (removing them from the hierarchy), they will be set as the new leader.
+Also registers on_remove_child to remove signals up the hierarchy when a child gets removed.
+start: the first atom to register signals on. If start isn't inside of anything (or if its .loc is a turf), then it will become the leader.
+Returns the new "leader", the atom that ghosts will follow.
+ remove_signals Remove all orbit-related signals in the object hierarchy above start.
+ store_orbit_data orbit data helper functions
+Store a collection of data for an orbiter.
+orbiter: orbiter atom itself. The orbiter's transform and layer at this point will be captured and cached.
+orbit_flags: bitfield consisting of flags describing the orbit.
+ Var Details orbit_data
+
+
+
+
+
+ Cached transforms from before the orbiter started orbiting, to be restored on stopping their orbit
orbiter_list
+
+
+
+
+
+ List of observers orbiting the parent
Proc Details InheritComponent(/datum /component /orbiter /new_comp, original, /atom /movable /orbiter, radius, clockwise, rotation_speed, rotation_segments, pre_rotation, lock_in_orbit, force_move, orbit_layer)
+
+
+
+
+
+ See atom/movable/proc/orbit for parameter definitions
Initialize(/atom /movable /orbiter, radius, clockwise, rotation_speed, rotation_segments, pre_rotation, lock_in_orbit, force_move, orbit_layer)
+
+
+
+
+
+ See atom/movable/proc/orbit for parameter definitions
begin_orbit(/atom /movable /orbiter, radius, clockwise, rotation_speed, rotation_segments, pre_rotation, lock_in_orbit, force_move, orbit_layer)
+
+
+
+
+
+ See atom/movable/proc/orbit for parameter definitions
end_orbit
+
+ End the orbit and clean up our transformation.
+If this removes the last atom orbiting us, then qdel ourselves.
+Howver, if refreshing == TRUE, src will not be qdeleted if this leaves us with 0 orbiters.
+ Get cached transform of the given orbiter.
get_orbit_params
+
+ Get the given orbiter's orbit parameters bitfield
get_orbiter_layer
+
+ Get the layer the given orbiter was on before they started orbiting
handle_parent_move
+
+ The actual implementation function of the move react.
+if you're trying to call this from a signal, call parent_move_react instead.
+This implementation is separate so the orbited atom's old location and new location can be passed in separately.
is_in_hierarchy
+
+ Returns TRUE if atom_to_find is transitively a parent of src.
+ Called when an intermediate (somewhere between the topmost and the orbited) atom moves.
+This atom will now become the leader.
on_remove_child
+
+ Callback fired when an item is removed from a tracked atom.
+Removes all orbit-related signals up its hierarchy and moves orbiters to the current child.
+As this will never be called by a turf, this should not conflict with parent_move_react.
orbiter_move_react
+
+ Called when the orbiter themselves moves.
parent_move_react
+
+ Signal handler for COMSIG_MOVABLE_MOVED. Special wrapper to handle the arguments that come from the signal.
+If you want to call this directly, just call handle_parent_move.
register_signals
+
+ Register signals up the hierarchy, adding them to each parent (and their parent, and so on) up to the turf they're on.
+The last atom in the hierarchy (the one whose .loc is the turf) becomes the leader, the atom ghosts will follow.
+Registers on_intermediate_move for every non-leader atom so that if they move (removing them from the hierarchy), they will be set as the new leader.
+Also registers on_remove_child to remove signals up the hierarchy when a child gets removed.
+start: the first atom to register signals on. If start isn't inside of anything (or if its .loc is a turf), then it will become the leader.
+Returns the new "leader", the atom that ghosts will follow.
remove_signals
+
+ Remove all orbit-related signals in the object hierarchy above start.
store_orbit_data
+
+ orbit data helper functions
+Store a collection of data for an orbiter.
+orbiter: orbiter atom itself. The orbiter's transform and layer at this point will be captured and cached.
+orbit_flags: bitfield consisting of flags describing the orbit.
+
+
+
diff --git a/datum/component/parry.html b/datum/component/parry.html
new file mode 100644
index 0000000000000..b30ab9e4868bf
--- /dev/null
+++ b/datum/component/parry.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/component/parry - Space Station 13
+
+
+
+
+
+
+Vars
+ examine_text Text to be shown to users who examine the parent. Will list which type of attacks it can parry.
+ no_parry_sound Do we wish to mute the parry sound?
+ parry_cooldown the time between parry attempts
+ parry_time_out_time the max time since time_parried
that the shield is still considered "active"
+ parryable_attack_types the attack types that are considered for parrying
+ stamina_coefficient stamina_coefficient * damage * time_since_time_parried = stamina damage taken per non perfect parry
+ stamina_constant the flat amount of damage the shield user takes per non-perfect parry
+ time_parried the world.time we last parried at
+ Var Details examine_text
+
+
+
+
+
+ Text to be shown to users who examine the parent. Will list which type of attacks it can parry.
no_parry_sound
+
+
+
+
+
+ Do we wish to mute the parry sound?
parry_cooldown
+
+
+
+
+
+ the time between parry attempts
parry_time_out_time
+
+
+
+
+
+ the max time since time_parried
that the shield is still considered "active"
parryable_attack_types
+
+
+
+
+
+ the attack types that are considered for parrying
stamina_coefficient
+
+
+
+
+
+ stamina_coefficient * damage * time_since_time_parried = stamina damage taken per non perfect parry
stamina_constant
+
+
+
+
+
+ the flat amount of damage the shield user takes per non-perfect parry
time_parried
+
+
+
+
+
+ the world.time we last parried at
+
+
+
diff --git a/datum/component/proximity_monitor.html b/datum/component/proximity_monitor.html
new file mode 100644
index 0000000000000..38994c05f1d3d
--- /dev/null
+++ b/datum/component/proximity_monitor.html
@@ -0,0 +1,191 @@
+
+
+
+
+
+
+ /datum/component/proximity_monitor - Space Station 13
+
+
+
+
+
+
+Attaching this component to an atom means that the atom will be able to detect mobs or objects moving within a specified radius of it.
+The component creates several /obj/effect/abstract/proximity_checker objects, which follow the parent
AKA hasprox_receiver
around, always making sure it's at the center.
+When something crosses one of these proximiy checkers, the hasprox_receiver
will have the HasProximity()
proc called on it, with the crossing mob/obj as the argument.
Vars
+ always_active Should the parent always detect proximity and update the field on movement, even if it's not on a turf?
+ field_checker_type The type of checker object that should be used for the main field.
+ hasprox_receiver The primary atom the component is attached to and that will be receiving HasProximity()
calls. Same as the parent
.
+ nested_receiver_locs A list which contains references to movable atoms which the hasprox_receiver
has moved into.
+Used to handle complex situations where the receiver is nested several layers deep into an object.
+For example: inside of a box, that's inside of a bag, which is worn on a human. In this situation there are 3 locations we need to listen to for movement.
+ proximity_checkers A list of currently created /obj/effect/abstract/proximity_checker in use with this component.
+ radius The radius of the field, in tiles. Procs
+ clear_nested_locs Removes and unregisters signals from all objects currently in the nested_receiver_locs
list.
+ create_prox_checkers Called in Initialize(). Generates a set of proximity checker objects around the parent.
+ create_single_prox_checker Creates a single proximity checker object, at the given location and of the given type. Adds it to the proximity checkers list.
+ map_nested_locs Registers signals to any nested locations the hasprox_receiver
is in, excluding turfs, so they can be monitored for movement.
+ move_prox_checkers Relays basic directional movement from the hasprox_receiver
or host
, to all objects in the proximity_checkers
list.
+ on_disposal_enter Called when the receiver or an atom in the nested_receiver_locs
list moves into a disposals holder object.
+ on_disposal_exit Called when the receiver or an atom in the nested_receiver_locs
list moves out of a disposals holder object.
+ on_nested_loc_move Called when an atom in nested_receiver_locs
list moves, if one exists.
+ on_receiver_move Called when the hasprox_receiver
moves.
+ recenter_prox_checkers Re-centers all of the proximity_checker
s around the parent's current location.
+ set_radius Specifies a new radius for the field. Creates or deletes proximity_checkers accordingly.
+ toggle_checkers Update all of the component's proximity checker's to either become active or not active.
+ Var Details always_active
+
+
+
+
+
+ Should the parent always detect proximity and update the field on movement, even if it's not on a turf?
field_checker_type
+
+
+
+
+
+ The type of checker object that should be used for the main field.
hasprox_receiver
+
+
+
+
+
+ The primary atom the component is attached to and that will be receiving HasProximity()
calls. Same as the parent
.
nested_receiver_locs
+
+
+
+
+
+ A list which contains references to movable atoms which the hasprox_receiver
has moved into.
+Used to handle complex situations where the receiver is nested several layers deep into an object.
+For example: inside of a box, that's inside of a bag, which is worn on a human. In this situation there are 3 locations we need to listen to for movement.
proximity_checkers
+
+
+
+
+
+ A list of currently created /obj/effect/abstract/proximity_checker in use with this component.
radius
+
+
+
+
+
+ The radius of the field, in tiles.
Proc Details clear_nested_locs()
+
+
+
+
+
+ Removes and unregisters signals from all objects currently in the nested_receiver_locs
list.
create_prox_checkers()
+
+
+
+
+
+ Called in Initialize(). Generates a set of proximity checker objects around the parent.
create_single_prox_checker(/turf /T, checker_type)
+
+
+
+
+
+ Creates a single proximity checker object, at the given location and of the given type. Adds it to the proximity checkers list.
+Arguments:
+map_nested_locs()
+
+
+
+
+
+ Registers signals to any nested locations the hasprox_receiver
is in, excluding turfs, so they can be monitored for movement.
move_prox_checkers(move_dir)
+
+
+
+
+
+ Relays basic directional movement from the hasprox_receiver
or host
, to all objects in the proximity_checkers
list.
+Arguments:
+
+move_dir - the direction the checkers should move in
+ on_disposal_enter
+
+ Called when the receiver or an atom in the nested_receiver_locs
list moves into a disposals holder object.
+This proc receives arguments, but they aren't needed.
on_disposal_exit
+
+ Called when the receiver or an atom in the nested_receiver_locs
list moves out of a disposals holder object.
+This proc receives arguments, but they aren't needed.
on_nested_loc_move(/atom /moved_atom, /atom /old_loc, dir)
+
+
+
+
+
+ Called when an atom in nested_receiver_locs
list moves, if one exists.
+Arguments:
+
+atom/moved_atom - one of the atoms in nested_receiver_locs
+atom/old_loc - the location moved_atom
just moved from
+dir - the direction moved_atom
just moved in
+ on_receiver_move
+
+ Called when the hasprox_receiver
moves.
+Arguments:
+
+datum/source - this will be the hasprox_receiver
+atom/old_loc - the location the receiver just moved from
+dir - the direction the receiver just moved in
+ recenter_prox_checkers()
+
+
+
+
+
+ Re-centers all of the proximity_checker
s around the parent's current location.
set_radius(new_radius)
+
+
+
+
+
+ Specifies a new radius for the field. Creates or deletes proximity_checkers accordingly.
+This proc can have a high cost due to the new
s and qdel
s of the proximity checkers, depending on the number of calls you need to make to it.
+Arguments:
+new_radius - the new value that proximity_radius
should be set to.
toggle_checkers(new_active)
+
+
+
+
+
+ Update all of the component's proximity checker's to either become active or not active.
+Arguments:
+
+new_active - the value to be assigned to the proximity checker's active
variable
+
+
+
+
diff --git a/datum/component/radioactive.html b/datum/component/radioactive.html
new file mode 100644
index 0000000000000..58322f6ab1887
--- /dev/null
+++ b/datum/component/radioactive.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/component/radioactive - Space Station 13
+
+
+
+
+
+
+
+ Var Details hl3_release_date
+
+
+
+
+
+ the half-life measured in ticks
+
+
+
diff --git a/datum/component/scope.html b/datum/component/scope.html
new file mode 100644
index 0000000000000..93239d0304eba
--- /dev/null
+++ b/datum/component/scope.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+ /datum/component/scope - Space Station 13
+
+
+
+
+
+
+A component that allows players to use the item to zoom out. Mainly intended for firearms, but now works with other items too.
Vars
+ allow_middle_click Do we let the user scope and click on the middle of their screen?
+ item_action_type if not null, an item action will be added. Redundant if the mode is ZOOM_METHOD_RIGHT_CLICK or ZOOM_METHOD_WIELD.
+ movement_cancels_scope Do we have the scope cancel on move?
+ range_modifier How far the view can be moved from the player. At 1, it can be moved by the player's view distance; other values scale linearly.
+ time_to_scope Time to scope up, if you want the scope to take time to boot up. Used by the LWAP
+ tracker Fullscreen object we use for tracking.
+ tracker_owner_ckey The owner of the tracker's ckey. For comparing with the current owner mob, in case the client has left it (e.g. ghosted).
+ zoom_method The method which we zoom in and out Procs
+ get_target We find and return the best target to hit on a given turf.
+ stop_zooming We stop zooming, canceling processing, resetting stuff back to normal and deleting our tracker.
+ zoom We start zooming by adding our tracker overlay and starting our processing.
+ Var Details allow_middle_click
+
+
+
+
+
+ Do we let the user scope and click on the middle of their screen?
item_action_type
+
+
+
+
+
+ if not null, an item action will be added. Redundant if the mode is ZOOM_METHOD_RIGHT_CLICK or ZOOM_METHOD_WIELD.
movement_cancels_scope
+
+
+
+
+
+ Do we have the scope cancel on move?
range_modifier
+
+
+
+
+
+ How far the view can be moved from the player. At 1, it can be moved by the player's view distance; other values scale linearly.
time_to_scope
+
+
+
+
+
+ Time to scope up, if you want the scope to take time to boot up. Used by the LWAP
+ Fullscreen object we use for tracking.
tracker_owner_ckey
+
+
+
+
+
+ The owner of the tracker's ckey. For comparing with the current owner mob, in case the client has left it (e.g. ghosted).
zoom_method
+
+
+
+
+
+ The method which we zoom in and out
Proc Details get_target(/turf /target_turf)
+
+
+
+
+
+ We find and return the best target to hit on a given turf.
+Arguments:
+
+target_turf: The turf we are looking for targets on.
+ stop_zooming
+
+ We stop zooming, canceling processing, resetting stuff back to normal and deleting our tracker.
+Arguments:
+
+user: The mob we are canceling zooming on.
+ zoom
+
+ We start zooming by adding our tracker overlay and starting our processing.
+Arguments:
+
+user: The mob we are starting zooming on.
+
+
+
+
diff --git a/datum/component/shielded.html b/datum/component/shielded.html
new file mode 100644
index 0000000000000..1d50ae80c30a3
--- /dev/null
+++ b/datum/component/shielded.html
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+ /datum/component/shielded - Space Station 13
+
+
+
+
+
+
+The shielded component causes the parent item to nullify a certain number of attacks against the wearer, see: shielded vests.
Vars
+ charge_add_cd The cooldown tracking when we last replenished a charge
+ charge_increment_delay Once we go unhit long enough to recharge, we replenish charges this often. The floor is effectively 1 second, AKA how often SSdcs processes
+ charge_recovery How many charges we recover on each charge increment
+ current_charges How many charges we currently have
+ lose_multiple_charges Should the shield lose charges equal to the damage dealt by a hit?
+ max_charges How many charges we can have max, and how many we start with
+ on_hit_effects A callback for the sparks/message that play when a charge is used, see /datum/component/shielded/proc/default_run_hit_callback
+ recently_hit_cd The cooldown tracking when we were last hit
+ recharge_path The item we use for recharging
+ recharge_start_delay How long we have to avoid being hit to replenish charges. If set to 0, we never recharge lost charges
+ shield The visual effect
+ shield_icon What icon is used when someone has a functional shield up
+ shield_icon_file What .dmi we're pulling the shield icon from
+ shield_inhand Do we still shield if we're being held in-hand? If FALSE, it needs to be equipped to a slot to work
+ show_charge_as_alpha Should the shield's alpha change to show its remaining charge
+ wearer The person currently wearing us Procs
+ actually_run_hit_callback The wrapper to invoke the on_hit callback, so we don't have to worry about blocking in the signal handler
+ default_run_hit_callback Default on_hit proc, since cult robes are stupid and have different descriptions/sparks
+ lost_wearer Either we've been dropped or our wearer has been QDEL'd. Either way, they're no longer our problem
+ on_equipped Check if we've been equipped to a valid slot to shield
+ on_hit_react This proc fires when we're hit, and is responsible for checking if we're charged, then deducting one + returning that we're blocking if so.
+It then runs the callback in /datum/component/shielded/var/on_hit_effects which handles the messages/sparks (so the visuals)
+ on_update_overlays Used to draw the shield overlay on the wearer
+ Var Details charge_add_cd
+
+
+
+
+
+ The cooldown tracking when we last replenished a charge
charge_increment_delay
+
+
+
+
+
+ Once we go unhit long enough to recharge, we replenish charges this often. The floor is effectively 1 second, AKA how often SSdcs processes
charge_recovery
+
+
+
+
+
+ How many charges we recover on each charge increment
current_charges
+
+
+
+
+
+ How many charges we currently have
lose_multiple_charges
+
+
+
+
+
+ Should the shield lose charges equal to the damage dealt by a hit?
max_charges
+
+
+
+
+
+ How many charges we can have max, and how many we start with
on_hit_effects
+
+
+
+
+
+ A callback for the sparks/message that play when a charge is used, see /datum/component/shielded/proc/default_run_hit_callback
recently_hit_cd
+
+
+
+
+
+ The cooldown tracking when we were last hit
recharge_path
+
+
+
+
+
+ The item we use for recharging
recharge_start_delay
+
+
+
+
+
+ How long we have to avoid being hit to replenish charges. If set to 0, we never recharge lost charges
shield
+
+
+
+
+
+ The visual effect
shield_icon
+
+
+
+
+
+ What icon is used when someone has a functional shield up
shield_icon_file
+
+
+
+
+
+ What .dmi we're pulling the shield icon from
shield_inhand
+
+
+
+
+
+ Do we still shield if we're being held in-hand? If FALSE, it needs to be equipped to a slot to work
show_charge_as_alpha
+
+
+
+
+
+ Should the shield's alpha change to show its remaining charge
wearer
+
+
+
+
+
+ The person currently wearing us
Proc Details actually_run_hit_callback(/mob /living /owner, attack_text, current_charges)
+
+
+
+
+
+ The wrapper to invoke the on_hit callback, so we don't have to worry about blocking in the signal handler
default_run_hit_callback(/mob /living /owner, attack_text, current_charges)
+
+
+
+
+
+ Default on_hit proc, since cult robes are stupid and have different descriptions/sparks
lost_wearer
+
+ Either we've been dropped or our wearer has been QDEL'd. Either way, they're no longer our problem
on_equipped
+
+ Check if we've been equipped to a valid slot to shield
on_hit_react
+
+ This proc fires when we're hit, and is responsible for checking if we're charged, then deducting one + returning that we're blocking if so.
+It then runs the callback in /datum/component/shielded/var/on_hit_effects which handles the messages/sparks (so the visuals)
on_update_overlays(/atom /parent_atom)
+
+
+
+
+
+ Used to draw the shield overlay on the wearer
+
+
+
diff --git a/datum/component/slippery.html b/datum/component/slippery.html
new file mode 100644
index 0000000000000..5f19ee68672a4
--- /dev/null
+++ b/datum/component/slippery.html
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+ /datum/component/slippery - Space Station 13
+
+
+
+
+
+
+This is a component that can be applied to any movable atom (mob or obj).
+While the atom has this component, any human mob that walks over it will have a chance to slip.
+Duration, tiles moved, and so on, depend on what variables are passed in when the component is added.
Vars
+ description Text that gets displayed in the slip proc, i.e. "user slips on [description]"
+ horizontal_required TRUE the player will only slip if the mob this datum is attached to is horizontal
+ knockdown The amount of knockdown to apply after slip.
+ slip_always FALSE if you want no slip shoes to make you immune to the slip
+ slip_chance The chance that walking over the parent will slip you.
+ slip_tiles The amount of tiles someone will be moved after slip.
+ slip_verb The verb that players will see when someone slips on the parent. In the form of "You [slip_verb]ped on".
+ walking_is_safe TRUE If this slip can be avoided by walking. Procs
+ Slip Called whenever the parent receives either the MOVABLE_CROSSED
signal or the ATOM_ENTERED
signal.
+ Var Details description
+
+
+
+
+
+ Text that gets displayed in the slip proc, i.e. "user slips on [description]"
horizontal_required
+
+
+
+
+
+ TRUE the player will only slip if the mob this datum is attached to is horizontal
knockdown
+
+
+
+
+
+ The amount of knockdown to apply after slip.
slip_always
+
+
+
+
+
+ FALSE if you want no slip shoes to make you immune to the slip
slip_chance
+
+
+
+
+
+ The chance that walking over the parent will slip you.
slip_tiles
+
+
+
+
+
+ The amount of tiles someone will be moved after slip.
slip_verb
+
+
+
+
+
+ The verb that players will see when someone slips on the parent. In the form of "You [slip_verb]ped on".
walking_is_safe
+
+
+
+
+
+ TRUE If this slip can be avoided by walking.
Proc Details
+ Called whenever the parent receives either the MOVABLE_CROSSED
signal or the ATOM_ENTERED
signal.
+Calls the victim
's slip()
proc with the component's variables as arguments.
+Additionally calls the parent's after_slip()
proc on the victim
.
+
+
+
diff --git a/datum/component/squeak.html b/datum/component/squeak.html
new file mode 100644
index 0000000000000..bf97965bb16c5
--- /dev/null
+++ b/datum/component/squeak.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/component/squeak - Space Station 13
+
+
+
+
+
+
+
+ Var Details
+ extra-range for this component's sound
sound_falloff_distance
+
+
+
+
+
+ when sounds start falling off for the squeak
sound_falloff_exponent
+
+
+
+
+
+ sound exponent for squeak. Defaults to 10 as squeaking is loud and annoying enough.
+
+
+
diff --git a/datum/component/sticky.html b/datum/component/sticky.html
new file mode 100644
index 0000000000000..fc801f5d88aca
--- /dev/null
+++ b/datum/component/sticky.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/component/sticky - Space Station 13
+
+
+
+
+
+
+
+ Var Details attached_to
+
+
+
+
+
+ The atom we are stickied to
drop_on_attached_destroy
+
+
+
+
+
+ Do we drop on attached_to's destroy? If not, we qdel
overlay
+
+
+
+
+
+ Our priority overlay put on top of attached_to
+
+
+
diff --git a/datum/component/surgery_initiator.html b/datum/component/surgery_initiator.html
new file mode 100644
index 0000000000000..76cff8fe714b2
--- /dev/null
+++ b/datum/component/surgery_initiator.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+ /datum/component/surgery_initiator - Space Station 13
+
+
+
+
+
+
+Allows an item to start (or prematurely stop) a surgical operation.
Vars
+ can_cancel If true, can be used with a cautery in the off-hand to cancel a surgery.
+ can_cancel_before_first If true, the initial step will be cancellable by just using the tool again. Should be FALSE for any tool that actually has a first surgery step.
+ can_start_on_stander If true, can start surgery on someone while they're standing up.
+Seeing as how we really don't support this (yet), it's much nicer to selectively enable this if we want it.
+ forced_surgery If present, this surgery TYPE will be attempted when the item is used.
+Useful for things like limb reattachments that don't need a scalpel.
+ valid_starting_types Bitfield for the types of surgeries that this can start.
+Note that in cases where organs are missing, this will be ignored.
+Also, note that for anything sharp, SURGERY_INITIATOR_ORGANIC should be set as well. Procs
+ Initialize Create a new surgery initiating component.
+ attempt_cancel_surgery Does the surgery de-initiation.
+ can_start_surgery We haven't even started yet. Any surgery can be cancelled at this point.
+ do_initiate_surgery_moment Meat and potatoes of starting surgery.
+ initiate_surgery_moment Does the surgery initiation.
+ on_parent_sharpness_change Keep tabs on the attached item's sharpness.
+This component gets added in atoms when they're made sharp as well.
+ show_starting_message Handle to allow for easily overriding the message shown
+ Var Details can_cancel
+
+
+
+
+
+ If true, can be used with a cautery in the off-hand to cancel a surgery.
can_cancel_before_first
+
+
+
+
+
+ If true, the initial step will be cancellable by just using the tool again. Should be FALSE for any tool that actually has a first surgery step.
can_start_on_stander
+
+
+
+
+
+ If true, can start surgery on someone while they're standing up.
+Seeing as how we really don't support this (yet), it's much nicer to selectively enable this if we want it.
forced_surgery
+
+
+
+
+
+ If present, this surgery TYPE will be attempted when the item is used.
+Useful for things like limb reattachments that don't need a scalpel.
valid_starting_types
+
+
+
+
+
+ Bitfield for the types of surgeries that this can start.
+Note that in cases where organs are missing, this will be ignored.
+Also, note that for anything sharp, SURGERY_INITIATOR_ORGANIC should be set as well.
Proc Details Initialize
+
+ Create a new surgery initiating component.
+Arguments:
+
+forced_surgery - (optional) the surgery that will be started when the parent is used on a mob.
+ attempt_cancel_surgery
+
+ Does the surgery de-initiation.
can_start_surgery
+
+ We haven't even started yet. Any surgery can be cancelled at this point.
do_initiate_surgery_moment
+
+ Meat and potatoes of starting surgery.
initiate_surgery_moment
+
+ Does the surgery initiation.
on_parent_sharpness_change()
+
+
+
+
+
+ Keep tabs on the attached item's sharpness.
+This component gets added in atoms when they're made sharp as well.
show_starting_message
+
+ Handle to allow for easily overriding the message shown
+
+
+
diff --git a/datum/component/tilted.html b/datum/component/tilted.html
new file mode 100644
index 0000000000000..20bcfe9b16be6
--- /dev/null
+++ b/datum/component/tilted.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+ /datum/component/tilted - Space Station 13
+
+
+
+
+
+
+A component that should be attached to things that have been tilted over, and can be righted.
+This can optionally block normal attack_hand interactions
Vars
+ block_interactions Whether we should block any interactions with it
+ rotated_angle The angle by which we rotated as a result of tilting. Should help us avoid cases where something gets tilted until it's upright.
+ untilt_duration How long it should take to untilt Procs
+ untilt Untilt a tilted object.
+ Var Details block_interactions
+
+
+
+
+
+ Whether we should block any interactions with it
rotated_angle
+
+
+
+
+
+ The angle by which we rotated as a result of tilting. Should help us avoid cases where something gets tilted until it's upright.
untilt_duration
+
+
+
+
+
+ How long it should take to untilt
Proc Details untilt
+
+ Untilt a tilted object.
+
+
+
diff --git a/datum/component/two_handed.html b/datum/component/two_handed.html
new file mode 100644
index 0000000000000..48e8c7cbed32f
--- /dev/null
+++ b/datum/component/two_handed.html
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+ /datum/component/two_handed - Space Station 13
+
+
+
+
+
+
+Two Handed Component
+When applied to an item it will make it two handed
Vars
+ attacksound Play sound on attack when wielded
+ force_multiplier The multiplier applied to force when wielded, does not work with force_wielded, and force_unwielded
+ force_unwielded The force of the item when unweilded
+ force_wielded The force of the item when weilded
+ icon_wielded The icon that will be used when wielded
+ offhand_item Reference to the offhand created for the item
+ only_sharp_when_wielded Whether or not the object is only sharp when wielded. If it's never sharp, ignore this.
+ require_twohands Does it have to be held in both hands
+ sharpened_increase The amount of increase recived from sharpening the item
+ unwield_callback A callback on the parent to be called when the item is unwielded
+ unwieldsound Play sound when unwielded
+ wield_callback A callback on the parent to be called when the item is wielded
+ wielded Are we holding the two handed item properly
+ wieldsound Play sound when wielded Procs
+ Initialize Two Handed component
+ on_attack on_attack triggers on attack with the parent item
+ on_attack_self Triggered on attack self of the item containing the component
+ on_destroy Triggered on destroy of the component's offhand
+ on_drop Triggered on drop of item containing the component
+ on_equip Triggered on equip of the item containing the component
+ on_moved on_moved Triggers on item moved
+ on_sharpen on_sharpen Triggers on usage of a sharpening stone on the item
+ on_swapping_hands on_swap_hands Triggers on swapping hands, blocks swap if the other hand is busy
+ on_update_icon on_update_icon triggers on call to update parent items icon
+ unwield Unwield the two handed item
+ wield Wield the two handed item in both hands
+ Var Details attacksound
+
+
+
+
+
+ Play sound on attack when wielded
force_multiplier
+
+
+
+
+
+ The multiplier applied to force when wielded, does not work with force_wielded, and force_unwielded
force_unwielded
+
+
+
+
+
+ The force of the item when unweilded
force_wielded
+
+
+
+
+
+ The force of the item when weilded
icon_wielded
+
+
+
+
+
+ The icon that will be used when wielded
offhand_item
+
+
+
+
+
+ Reference to the offhand created for the item
only_sharp_when_wielded
+
+
+
+
+
+ Whether or not the object is only sharp when wielded. If it's never sharp, ignore this.
require_twohands
+
+
+
+
+
+ Does it have to be held in both hands
sharpened_increase
+
+
+
+
+
+ The amount of increase recived from sharpening the item
unwield_callback
+
+
+
+
+
+ A callback on the parent to be called when the item is unwielded
unwieldsound
+
+
+
+
+
+ Play sound when unwielded
wield_callback
+
+
+
+
+
+ A callback on the parent to be called when the item is wielded
wielded
+
+
+
+
+
+ Are we holding the two handed item properly
wieldsound
+
+
+
+
+
+ Play sound when wielded
Proc Details Initialize(require_twohands, wieldsound, unwieldsound, attacksound, force_multiplier, force_wielded, force_unwielded, icon_wielded, only_sharp_when_wielded, /datum /callback/wield_callback, /datum /callback/unwield_callback)
+
+
+
+
+
+ Two Handed component
+vars:
+
+require_twohands (optional) Does the item need both hands to be carried
+wieldsound (optional) The sound to play when wielded
+unwieldsound (optional) The sound to play when unwielded
+attacksound (optional) The sound to play when wielded and attacking
+force_multiplier (optional) The force multiplier when wielded, do not use with force_wielded, and force_unwielded
+force_wielded (optional) The force setting when the item is wielded, do not use with force_multiplier
+force_unwielded (optional) The force setting when the item is unwielded, do not use with force_multiplier
+icon_wielded (optional) The icon to be used when wielded
+only_sharp_when_wielded (optional) Is the item only sharp when held in both hands?
+ on_attack
+
+ on_attack triggers on attack with the parent item
on_attack_self
+
+ Triggered on attack self of the item containing the component
on_destroy
+
+ Triggered on destroy of the component's offhand
on_drop
+
+ Triggered on drop of item containing the component
on_equip
+
+ Triggered on equip of the item containing the component
on_moved
+
+ on_moved Triggers on item moved
on_sharpen(/obj /item /item, amount, max_amount)
+
+
+
+
+
+ on_sharpen Triggers on usage of a sharpening stone on the item
on_swapping_hands
+
+ on_swap_hands Triggers on swapping hands, blocks swap if the other hand is busy
on_update_icon
+
+ on_update_icon triggers on call to update parent items icon
+Updates the icon using icon_wielded if set
unwield
+
+ Unwield the two handed item
+vars:
+
+user The mob/living/carbon that is unwielding the item
+show_message (option) show a message to chat on unwield
+can_drop (option) whether 'dropItemToGround' can be called or not.
+
+ Wield the two handed item in both hands
+vars:
+
+user The mob/living/carbon that is wielding the item
+
+
+
+
diff --git a/datum/configuration_section.html b/datum/configuration_section.html
new file mode 100644
index 0000000000000..9f466d2861e66
--- /dev/null
+++ b/datum/configuration_section.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/configuration_section - Space Station 13
+
+
+
+
+
+
+
+ Var Details protection_state
+
+
+
+
+
+ See __config_defines.dm
+
+
+
diff --git a/datum/configuration_section/admin_configuration.html b/datum/configuration_section/admin_configuration.html
new file mode 100644
index 0000000000000..10dcaa99a2682
--- /dev/null
+++ b/datum/configuration_section/admin_configuration.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/configuration_section/admin_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for all admin related things
+ Var Details allow_admin_ooc_colour
+
+
+
+
+
+ Do we want to allow admins to set their own OOC colour?
ckey_rank_map
+
+
+
+
+
+ Assoc list of admin ckeys and their ranks. key: ckey | value: rank name
common_cid_map
+
+
+
+
+
+ Assoc list of CIDs which shouldnt be banned due to mass collisions
enable_localhost_autoadmin
+
+
+
+
+
+ Do we want to auto enable admin rights if you connect from localhost?
rank_colour_map
+
+
+
+
+
+ Assoc list of admin ranks and their colours. key: rank | value: rank colour
rank_rights_map
+
+
+
+
+
+ Assoc list of admin ranks and their stuff. key: rank name string | value: list of rights
use_database_admins
+
+
+
+
+
+ Do we want to load admins from the database?
+
+
+
diff --git a/datum/configuration_section/afk_configuration.html b/datum/configuration_section/afk_configuration.html
new file mode 100644
index 0000000000000..3a9602ab411dc
--- /dev/null
+++ b/datum/configuration_section/afk_configuration.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/configuration_section/afk_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for all AFK related things
+ Var Details auto_cryo_minutes
+
+
+
+
+
+ Minutes before someone is auto moved to cryo
auto_despawn_minutes
+
+
+
+
+
+ Minutes before someone is auto despawned
ssd_auto_cryo_minutes
+
+
+
+
+
+ Time before SSD people are auto cryo'd
warning_minutes
+
+
+
+
+
+ Minutes before someone gets an AFK warning
+
+
+
diff --git a/datum/configuration_section/asset_cache_configuration.html b/datum/configuration_section/asset_cache_configuration.html
new file mode 100644
index 0000000000000..6a5e4c4f7d9a7
--- /dev/null
+++ b/datum/configuration_section/asset_cache_configuration.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /datum/configuration_section/asset_cache_configuration - Space Station 13
+
+
+
+
+
+
+Vars
+ asset_cdn_url URL the asset_cdn_webroot
can be accessed from.
+For best results the webserver powering this should return a long cache validity time,
+as all assets sent via this transport use hash based urls
+if you want to test this locally, you simpily run the localhost-asset-webroot-server.py
python3 script
+to host assets stored in data/asset-store/
via http://localhost:58715/
+ asset_cdn_webroot Local folder to save assets to.
+Assets will be saved in the format of asset.MD5HASH.EXT or in namespaces/hash/
+as ASSET_FILE_NAME or asset.MD5HASH.EXT
+ asset_simple_preload Whether to make server passively send all browser assets to each client in the background
+(instead of waiting for them to be needed)
+ asset_transport Type of asset transport that will be used for asset delivery.
+Available options are "simple" or "webroot".
+ Var Details asset_cdn_url
+
+
+
+
+
+ URL the asset_cdn_webroot
can be accessed from.
+For best results the webserver powering this should return a long cache validity time,
+as all assets sent via this transport use hash based urls
+if you want to test this locally, you simpily run the localhost-asset-webroot-server.py
python3 script
+to host assets stored in data/asset-store/
via http://localhost:58715/
asset_cdn_webroot
+
+
+
+
+
+ Local folder to save assets to.
+Assets will be saved in the format of asset.MD5HASH.EXT or in namespaces/hash/
+as ASSET_FILE_NAME or asset.MD5HASH.EXT
asset_simple_preload
+
+
+
+
+
+ Whether to make server passively send all browser assets to each client in the background
+(instead of waiting for them to be needed)
asset_transport
+
+
+
+
+
+ Type of asset transport that will be used for asset delivery.
+Available options are "simple" or "webroot".
+
+
+
diff --git a/datum/configuration_section/custom_sprites_configuration.html b/datum/configuration_section/custom_sprites_configuration.html
new file mode 100644
index 0000000000000..932e74d502fd4
--- /dev/null
+++ b/datum/configuration_section/custom_sprites_configuration.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/configuration_section/custom_sprites_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for all things regarding custom sprites
+ Var Details ai_core_ckeys
+
+
+
+
+
+ List of ckeys that have custom AI core skins
ai_hologram_ckeys
+
+
+
+
+
+ List of ckeys that have custom AI hologram skins
cyborg_ckeys
+
+
+
+
+
+ List of ckeys that have custom cyborg skins
ipc_screen_map
+
+
+
+
+
+ Assoc of ckeys that have custom pAI screens. Key: ckey | value: list of icon states
+ List of ckeys that have custom pAI holoforms
+
+
+
diff --git a/datum/configuration_section/database_configuration.html b/datum/configuration_section/database_configuration.html
new file mode 100644
index 0000000000000..2e8f755f72c91
--- /dev/null
+++ b/datum/configuration_section/database_configuration.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /datum/configuration_section/database_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for all database related things
+ Var Details address
+
+
+
+
+
+ Address of the SQL server
async_query_timeout
+
+
+
+
+
+ Time in seconds for async queries to time out
async_thread_limit
+
+
+
+
+
+ Thread limit for async queries
db
+
+
+
+
+
+ Database name
enabled
+
+
+
+
+
+ SQL enabled or not
password
+
+
+
+
+
+ SQL password
port
+
+
+
+
+
+ Port of the SQL server
username
+
+
+
+
+
+ SQL usename
version
+
+
+
+
+
+ What SQL version are we on
+
+
+
diff --git a/datum/configuration_section/discord_configuration.html b/datum/configuration_section/discord_configuration.html
new file mode 100644
index 0000000000000..0b7f23e851ee5
--- /dev/null
+++ b/datum/configuration_section/discord_configuration.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/configuration_section/discord_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for all things relating to discord webhooks
+ Var Details admin_role_id
+
+
+
+
+
+ Admin role to ping if no admins are online. Disables if empty string
admin_webhook_urls
+
+
+
+
+
+ List of all URLs for the mentor webhooks
forward_all_ahelps
+
+
+
+
+
+ Do we want to forward all ahelps or just ones sent with no active admins
main_webhook_urls
+
+
+
+
+
+ List of all URLs for the main webhooks
mentor_role_id
+
+
+
+
+
+ Mentor role to ping if no mentors are online. Disables if empty string
mentor_webhook_urls
+
+
+
+
+
+ List of all URLs for the admin webhooks
webhooks_enabled
+
+
+
+
+
+ Are webhooks enabled at all
+
+
+
diff --git a/datum/configuration_section/event_configuration.html b/datum/configuration_section/event_configuration.html
new file mode 100644
index 0000000000000..eff20e2199b93
--- /dev/null
+++ b/datum/configuration_section/event_configuration.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/configuration_section/event_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for all stuff relating to ingame random events
Vars
+ delay_lower_bound Assoc list of lower bounds of event delays. key: severity | value: delay (deciseconds)
+ delay_upper_bound Assoc list of lower bounds of event delays. key: severity | value: delay (deciseconds)
+ enable_random_events Do we want to enable random events at all
+ expected_round_length Expected time of a round in deciseconds
+ first_run_times Assoc list of when the first event in a group can run. key: severity | value: assoc list with upper and low bounds (key: "upper"/"lower" | value: time in deciseconds)
+ Var Details delay_lower_bound
+
+
+
+
+
+ Assoc list of lower bounds of event delays. key: severity | value: delay (deciseconds)
delay_upper_bound
+
+
+
+
+
+ Assoc list of lower bounds of event delays. key: severity | value: delay (deciseconds)
enable_random_events
+
+
+
+
+
+ Do we want to enable random events at all
expected_round_length
+
+
+
+
+
+ Expected time of a round in deciseconds
first_run_times
+
+
+
+
+
+ Assoc list of when the first event in a group can run. key: severity | value: assoc list with upper and low bounds (key: "upper"/"lower" | value: time in deciseconds)
+
+
+
diff --git a/datum/configuration_section/gamemode_configuration.html b/datum/configuration_section/gamemode_configuration.html
new file mode 100644
index 0000000000000..66e85b109d40d
--- /dev/null
+++ b/datum/configuration_section/gamemode_configuration.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /datum/configuration_section/gamemode_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for everything regarding gamemodes
+ Var Details add_random_station_traits
+
+
+
+
+
+ Should we generate random station traits at game start?
antag_account_age_restriction
+
+
+
+
+
+ Should antags be restricted based on account age?
disable_certain_round_early_end
+
+
+
+
+
+ Rounds such as rev, wizard and malf end instantly when the antag has won. Enable the setting below to not do that.
enable_gamemode_player_limit
+
+
+
+
+
+ Enable player limits on gamemodes? Disabling can be useful for testing
gamemode_names
+
+
+
+
+
+ Assoc list of gamemode names (key: config-tag | value: mode name)
gamemodes
+
+
+
+
+
+ List of all gamemodes (value: config-tag)
+ Prevent mindshield roles getting antagonist status
probabilities
+
+
+
+
+
+ Assoc list of gamemode probabilities (key: config-tag | value: probability)
traitor_objectives_amount
+
+
+
+
+
+ Amount of objectives traitors should get. Does not include escape or hijack.
traitor_scaling
+
+
+
+
+
+ Scale amount of traitors with population
votable_modes
+
+
+
+
+
+ List of all gamemodes that can be voted for, (value: config-tag)
+
+
+
diff --git a/datum/configuration_section/general_configuration.html b/datum/configuration_section/general_configuration.html
new file mode 100644
index 0000000000000..0596ea7fecd5b
--- /dev/null
+++ b/datum/configuration_section/general_configuration.html
@@ -0,0 +1,323 @@
+
+
+
+
+
+
+ /datum/configuration_section/general_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for all general/misc things
+ Var Details allow_antag_hud
+
+
+
+
+
+ Allow players to use AntagHUD?
+ Allow character OOC notes
allow_holidays
+
+
+
+
+
+ Announce holidays (christmas, halloween, etc etc)
auto_disable_ooc
+
+
+
+
+
+ Auto disable OOC on roundstart?
base_loadout_points
+
+
+
+
+
+ Amount of loadout points non-donors should get
bomb_cap
+
+
+
+
+
+ Bomb cap (Devastation) Other values will be calculated around this
breakable_bones
+
+
+
+
+
+ Do we want to allow bones to break?
byond_account_age_threshold
+
+
+
+
+
+ BYOND account age threshold for first join alerts
cryo_penalty_period
+
+
+
+
+
+ Respawnability loss penalty for eary cryoing (minutes)
developer_express_start
+
+
+
+
+
+ Auto start the game if on a local test server
disable_ambient_noise
+
+
+
+
+
+ Disable ambient sound and white noise
+ Disable a popup if 2 users are on the same CID?
disable_lobby_music
+
+
+
+
+
+ Disable lobby music?
enable_auto_mute
+
+
+
+
+
+ Enable auto muting in all chat channels
enable_auto_profiler
+
+
+
+
+
+ Enable automatic profiling to profile.json
enable_cloning
+
+
+
+
+
+ Enable/disable cloning
enable_night_shifts
+
+
+
+
+
+ Enable night-shift lighting?
enable_ooc_emoji
+
+
+
+
+
+ Enable OOC emojis?
enable_revival_pod_plants
+
+
+
+
+
+ Enable/disable revival pod plants
enabled_cid_randomiser_buster
+
+
+
+
+
+ Enable CID randomiser buster?
forbid_singulo_possession
+
+
+
+
+
+ Forbid admins from posessing and flying the singulo round
ghost_interaction
+
+
+
+
+
+ Allow ghosts to spin chairs round
guest_ban
+
+
+
+
+
+ Ban all Guest BYOND accounts
lobby_time
+
+
+
+
+
+ Time in seconds for the pregame lobby. Measured in seconds
max_client_cid_history
+
+
+
+
+
+ Max CIDs a client can have history of before a warning is thrown
minimum_client_build
+
+
+
+
+
+ Minimum client build. Keep above 1421 due to exploits
monkey_cube_cap
+
+
+
+
+
+ Cap for monkey cube monkey spawns
+ Force open a PM window when replied to? This is very annoying
random_ai_lawset
+
+
+
+
+
+ Enable random AI lawsets from the default=TRUE pool
randomise_shift_time
+
+
+
+
+
+ Randomise shift time instead of it always being 12:00?
reactionary_explosions
+
+
+
+
+
+ Enable to make explosions react to obstacles instead of ignoring them
respawn_enabled
+
+
+
+
+
+ Enable respawns by default?
restart_timeout
+
+
+
+
+
+ Default timeout for world reboot. Measured in seconds
restrict_antag_hud_rejoin
+
+
+
+
+
+ Forbid players from rejoining if they use AntagHUD?
revival_brain_life
+
+
+
+
+
+ Time for a brain to keep its spark of life (deciseconds)
roundstart_observer_period
+
+
+
+
+
+ Observers count as roundstart if they join from the main menu before this time (in minutes). Set to 0 to allow only-pregame start observers.
server_features
+
+
+
+
+
+ Server features in a newline
server_name
+
+
+
+
+
+ Server name for the BYOND hub
server_tag_line
+
+
+
+
+
+ Tagline for the hub entry
ssd_warning
+
+
+
+
+
+ Show a warning to players to make them accept touching an SSD
starlight
+
+
+
+
+
+ Enable/disable starlight to light up space
start_now_confirmation
+
+
+
+
+
+ Give a confirm button for the "Start Now" verb
+
+
+
diff --git a/datum/configuration_section/ipintel_configuration.html b/datum/configuration_section/ipintel_configuration.html
new file mode 100644
index 0000000000000..b6b821df4869e
--- /dev/null
+++ b/datum/configuration_section/ipintel_configuration.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /datum/configuration_section/ipintel_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for all things relating to IPIntel
Vars
+ bad_rating 0-1 float for percentage threshold to kick people out
+ contact_email IPIntel contact email. Required.
+ details_url Details URL for more info on an IP, including ASN. IP is tacked straight on the end.
+ enabled Is IPIntel enabled
+ hours_save_bad How many hours to save bad matches for. Cached due to rate limits
+ hours_save_good How many hours to save good matches for. Cached due to rate limits
+ ipintel_domain IPIntel Domain. Do not prefix with a protocol
+ playtime_ignore_threshold Do not proxy-check players with more hours than the below threshold
+ whitelist_mode Are we in whitelist mode (Auto-kick people who are on proxies/VPNs)
+ Var Details bad_rating
+
+
+
+
+
+ 0-1 float for percentage threshold to kick people out
+ IPIntel contact email. Required.
details_url
+
+
+
+
+
+ Details URL for more info on an IP, including ASN. IP is tacked straight on the end.
enabled
+
+
+
+
+
+ Is IPIntel enabled
hours_save_bad
+
+
+
+
+
+ How many hours to save bad matches for. Cached due to rate limits
hours_save_good
+
+
+
+
+
+ How many hours to save good matches for. Cached due to rate limits
ipintel_domain
+
+
+
+
+
+ IPIntel Domain. Do not prefix with a protocol
playtime_ignore_threshold
+
+
+
+
+
+ Do not proxy-check players with more hours than the below threshold
whitelist_mode
+
+
+
+
+
+ Are we in whitelist mode (Auto-kick people who are on proxies/VPNs)
+
+
+
diff --git a/datum/configuration_section/job_configuration.html b/datum/configuration_section/job_configuration.html
new file mode 100644
index 0000000000000..cc30daf7c7936
--- /dev/null
+++ b/datum/configuration_section/job_configuration.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /datum/configuration_section/job_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for all job related things
+ Var Details allow_ai
+
+
+
+
+
+ Allow non-admins to play as AI
assistant_limit
+
+
+
+
+
+ Limit amount of assistants?
assistant_maint_access
+
+
+
+
+
+ Grant assistants maint access
assistant_security_ratio
+
+
+
+
+
+ If yes to above, ratio of assistants per security officer (IE: 4:1)
enable_exp_admin_bypass
+
+
+
+
+
+ Allow admins to bypass EXP restrictions
enable_exp_restrictions
+
+
+
+
+
+ Lockout jobs based on EXP
enable_exp_tracking
+
+
+
+
+
+ Enable EXP logging and tracking
enable_job_amount_overrides
+
+
+
+
+
+ Enable loading of job overrides from the config
guest_job_ban
+
+
+
+
+
+ Prevent guests from playing high profile roles
highpop_job_map
+
+
+
+
+
+ Map of job:amount for highpop. key: Job | value: amount
lowpop_job_map
+
+
+
+
+
+ Map of job:amount for lowpop. key: Job | value: amount
restrict_jobs_on_account_age
+
+
+
+
+
+ Do we want to restrict jobs based on account age
restrict_jobs_on_account_age_admin_bypass
+
+
+
+
+
+ Allow admins to bypass age-based job restrictions
+
+
+
diff --git a/datum/configuration_section/logging_configuration.html b/datum/configuration_section/logging_configuration.html
new file mode 100644
index 0000000000000..09eec3b4cd5f4
--- /dev/null
+++ b/datum/configuration_section/logging_configuration.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ /datum/configuration_section/logging_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for all things regarding logging
+ Var Details access_logging
+
+
+
+
+
+ Log client access (login/logout)
admin_logging
+
+
+
+
+
+ Log admin actions
admin_warning_logging
+
+
+
+
+
+ Log admin warning messages
adminchat_logging
+
+
+
+
+
+ Log asay messages
attack_logging
+
+
+
+
+
+ Enable logging of attacks between players
debug_logging
+
+
+
+
+
+ Log debug messages
emote_logging
+
+
+
+
+
+ Enable logging of emotes
game_logging
+
+
+
+
+
+ Log game events (roundstart, results, a lot of other things)
href_logging
+
+
+
+
+
+ Log hrefs
ooc_logging
+
+
+
+
+
+ Log OOC messages
pda_logging
+
+
+
+
+
+ Enable logging of PDA messages
runtime_logging
+
+
+
+
+
+ Enable runtime logging
say_logging
+
+
+
+
+
+ Log ingame say messages
vote_logging
+
+
+
+
+
+ Enable logging of votes and their results
whisper_logging
+
+
+
+
+
+ Enable logging of whipers
world_logging
+
+
+
+
+
+ Enable world.log output logging
+
+
+
diff --git a/datum/configuration_section/mc_configuration.html b/datum/configuration_section/mc_configuration.html
new file mode 100644
index 0000000000000..735935409321e
--- /dev/null
+++ b/datum/configuration_section/mc_configuration.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/configuration_section/mc_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for all things regarding the MC
+ Var Details base_tickrate
+
+
+
+
+
+ Base MC tick rate
highpop_disable_threshold
+
+
+
+
+
+ MC Highpop disable threshold
highpop_enable_threshold
+
+
+
+
+
+ MC Highpop enable threshold
highpop_tickrate
+
+
+
+
+
+ Highpop MC tickrate
ticklag
+
+
+
+
+
+ Server ticklag
world_init_tick_limit
+
+
+
+
+
+ Tick limit % during world Init
+
+
+
diff --git a/datum/configuration_section/metrics_configuration.html b/datum/configuration_section/metrics_configuration.html
new file mode 100644
index 0000000000000..a809e350808c3
--- /dev/null
+++ b/datum/configuration_section/metrics_configuration.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/configuration_section/metrics_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for stuff relating to metrics management
+ Var Details enable_metrics
+
+
+
+
+
+ Are metrics enabled or disabled
metrics_api_token
+
+
+
+
+
+ Endpoint authorisation API key
metrics_endpoint
+
+
+
+
+
+ Endpoint to send metrics to, including protocol
+
+
+
diff --git a/datum/configuration_section/movement_configuration.html b/datum/configuration_section/movement_configuration.html
new file mode 100644
index 0000000000000..cbad2f867aacc
--- /dev/null
+++ b/datum/configuration_section/movement_configuration.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/configuration_section/movement_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for values relating to mob movement speeds
+ Var Details alien_delay
+
+
+
+
+
+ Move delay for xenomorphs
animal_delay
+
+
+
+
+
+ Move delay for other simple animals
base_run_speed
+
+
+
+
+
+ Base run speed before modifiers
base_walk_speed
+
+
+
+
+
+ Base walk speed before modifiers
crawling_speed_reduction
+
+
+
+
+
+ crawling speed modifier
human_delay
+
+
+
+
+
+ Move delay for humanoids
robot_delay
+
+
+
+
+
+ Move delay for cyborgs
slime_delay
+
+
+
+
+
+ Move delay for slimes (xenobio, not slimepeople)
+
+
+
diff --git a/datum/configuration_section/overflow_configuration.html b/datum/configuration_section/overflow_configuration.html
new file mode 100644
index 0000000000000..23e4de1c60cc2
--- /dev/null
+++ b/datum/configuration_section/overflow_configuration.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/configuration_section/overflow_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for all overflow-server related things
+ Var Details overflow_server_location
+
+
+
+
+
+ Location of the overflow server
overflow_whitelist
+
+
+
+
+
+ List of ckeys who will never be routed to the overflow server
reroute_cap
+
+
+
+
+
+ Amount of players before reroute server is used. 0 to disable.
+
+
+
diff --git a/datum/configuration_section/redis_configuration.html b/datum/configuration_section/redis_configuration.html
new file mode 100644
index 0000000000000..a90adc94ddcc0
--- /dev/null
+++ b/datum/configuration_section/redis_configuration.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/configuration_section/redis_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for all redis related things
Vars
+ connstring Redis connection string. Includes passphrase if needed.
+ enabled Redis enabled or not
+ Var Details connstring
+
+
+
+
+
+ Redis connection string. Includes passphrase if needed.
enabled
+
+
+
+
+
+ Redis enabled or not
+
+
+
diff --git a/datum/configuration_section/ruin_configuration.html b/datum/configuration_section/ruin_configuration.html
new file mode 100644
index 0000000000000..2c0e3b0205416
--- /dev/null
+++ b/datum/configuration_section/ruin_configuration.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/configuration_section/ruin_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for all things regarding space ruins and lavaland ruins
+ Var Details active_lava_ruins
+
+
+
+
+
+ List of all active lavaland ruins
active_space_ruins
+
+
+
+
+
+ List of all active space ruins
enable_lavaland
+
+
+
+
+
+ Whether to load the lavaland Z-level
enable_space_ruins
+
+
+
+
+
+ Enable or disable all ruins, including lavaland ruins and lavaland tendrils.
+ Maximum number of extra zlevels to fill with ruins
+ Minimum number of extra zlevels to fill with ruins
lavaland_ruin_budget
+
+
+
+
+
+ Budget for lavaland ruins
+
+
+
diff --git a/datum/configuration_section/system_configuration.html b/datum/configuration_section/system_configuration.html
new file mode 100644
index 0000000000000..d7057113ffc02
--- /dev/null
+++ b/datum/configuration_section/system_configuration.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+ /datum/configuration_section/system_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for stuff relating to server backend management and secrets
+ Var Details api_host
+
+
+
+
+
+ Internal API host
api_key
+
+
+
+
+
+ Internal API key
enable_multi_instance_support
+
+
+
+
+
+ Do we want to enable instancing stuff at all?
external_tos_handler
+
+
+
+
+
+ Are we using an external handler for TOS
instance_id
+
+
+
+
+
+ Server instance ID
internal_ip
+
+
+
+
+
+ Server internal IP
is_production
+
+
+
+
+
+ Is this server a production server (Has higher security and requires 2FA)
override_map
+
+
+
+
+
+ Map datum of the map to use, overriding the defaults, and data/next_map.txt
region_map
+
+
+
+
+
+ Assoc list of region names and their server IPs. Used for geo-routing.
shutdown_on_reboot
+
+
+
+
+
+ Do we want the server to kill on reboot instead of keeping the same DD session
shutdown_shell_command
+
+
+
+
+
+ If above is true, you can run a shell command
toast_on_init_complete
+
+
+
+
+
+ Send a system toast on init completion?
topic_ip_ratelimit_bypass
+
+
+
+
+
+ List of IP addresses which bypass world topic rate limiting
topic_key
+
+
+
+
+
+ Password for authorising world/Topic requests
+
+
+
diff --git a/datum/configuration_section/url_configuration.html b/datum/configuration_section/url_configuration.html
new file mode 100644
index 0000000000000..c9a3187e240d7
--- /dev/null
+++ b/datum/configuration_section/url_configuration.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/configuration_section/url_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for all the server URLs
+ Var Details banappeals_url
+
+
+
+
+
+ URL for the server ban appeals forum
centcom_ban_db_url
+
+
+
+
+
+ URL for the CentCom Ban DB API
discord_forum_url
+
+
+
+
+
+ URL for a discord invite going via the forums
discord_url
+
+
+
+
+
+ URL for a direct discord invite
donations_url
+
+
+
+
+
+ URL for server donations
exploit_url
+
+
+
+
+
+ URL for the server exploit report locaion
forum_link_url
+
+
+
+
+
+ URL for linking ingame accounts and forum accounts. Token is appended to end
forum_playerinfo_url
+
+
+
+
+
+ URL for pulling player info on webtools
forum_url
+
+
+
+
+
+ URL for the server forums
github_url
+
+
+
+
+
+ URL for the server github repository
round_stats_url
+
+
+
+
+
+ URL for the stats page
rsc_urls
+
+
+
+
+
+ List of URLs for the server RSC data
rules_url
+
+
+
+
+
+ URL for the server rules
server_url
+
+
+
+
+
+ Server URL for auto-reconnecting people at end round
wiki_url
+
+
+
+
+
+ URL for the server wiki
+
+
+
diff --git a/datum/configuration_section/vote_configuration.html b/datum/configuration_section/vote_configuration.html
new file mode 100644
index 0000000000000..ef588e7e0d3c5
--- /dev/null
+++ b/datum/configuration_section/vote_configuration.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/configuration_section/vote_configuration - Space Station 13
+
+
+
+
+
+
+Config holder for stuff relating to the ingame vote system
+ Var Details autotransfer_initial_time
+
+
+
+
+
+ Time before the first shuttle vote (deciseconds)
autotransfer_interval_time
+
+
+
+
+
+ Time between subsequent shuttle votes if the first one is not successful (deciseconds)
disable_default_vote
+
+
+
+
+
+ Default to players not voting
enable_map_voting
+
+
+
+
+
+ Enable map voting?
map_vote_day_types
+
+
+
+
+
+ Dictionary of day number (string) to vote string
non_repeating_maps
+
+
+
+
+
+ If TRUE, you will not be able to vote for the current map
prevent_dead_voting
+
+
+
+
+
+ Prevent dead players from voting
vote_time
+
+
+
+
+
+ How long will a vote last for in deciseconds
+
+
+
diff --git a/datum/construction.html b/datum/construction.html
new file mode 100644
index 0000000000000..cfd24cfd2197e
--- /dev/null
+++ b/datum/construction.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/construction - Space Station 13
+
+
+
+
+
+
+Vars
+ taskpath Path of job objective completed.
+ Var Details taskpath
+
+
+
+
+
+ Path of job objective completed.
+
+
+
diff --git a/datum/construction/mecha.html b/datum/construction/mecha.html
new file mode 100644
index 0000000000000..b6e8ec1a03d14
--- /dev/null
+++ b/datum/construction/mecha.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/construction/mecha - Space Station 13
+
+
+
+
+
+
+Proc Details custom_action(step, /atom /used_atom, /mob /user)
+
+
+
+
+
+ Construction datums
+
+
+
diff --git a/datum/contractor_hub.html b/datum/contractor_hub.html
new file mode 100644
index 0000000000000..e6341669af4b8
--- /dev/null
+++ b/datum/contractor_hub.html
@@ -0,0 +1,209 @@
+
+
+
+
+
+
+ /datum/contractor_hub - Space Station 13
+
+
+
+
+
+
+Describes and manages the contracts and rewards for a single contractor.
Vars
+ completed_contracts The number of completed contracts.
+ contractor_uplink The contractor uplink associated to this hub.
+ contracts The contracts offered by the hub.
+ current_contract The current contract in progress.
+ dead_penalty TC reward multiplier if the target was extracted DEAD. Should be a penalty so between 0 and 1.
+The final amount is rounded up.
+ difficulty_tc_thresholds Completing every contract at a given difficulty will always result in a sum of TC greater or equal than the difficulty's threshold.
+Structure: EXTRACTION_DIFFICULTY_(EASY|MEDIUM|HARD) => number
+ num_contracts The number of contracts to generate initially.
+ owner The contractor associated to this hub.
+ page Current UI page index.
+ purchases List of purchases that can be done for Rep.
+ rep Amount of Contractor Rep available for spending.
+ rep_per_completion How much Contractor Rep to earn per contract completion.
+ reward_tc_available Amount of telecrystals available for redeeming.
+ reward_tc_paid_out Total amount of paid out telecrystals since the start.
+ targets List of targets from each contract in /datum/contractor_hub/var/contracts .
+Used to make sure two contracts from the same hub don't have the same target.
+ tc_variation Maximum variation a single contract's TC reward can have upon generation.
+In other words: final_reward = CEILING((tc_threshold / num_contracts) * (1 - (rand(0, 100) / 100) * tc_variation), 1) Procs
+ calculate_tc_reward Generates an amount of TC to be used as a contract reward for the given difficulty.
+ claim_tc Gives any unclaimed TC to the given mob.
+ first_login Called when the loading animation completes for the first time.
+ generate_contracts Regenerates a list of contracts for the contractor to take up.
+ is_user_authorized Returns whether the given mob is allowed to connect to the uplink.
+ on_completion Called when a /datum/syndicate_contract has been completed.
+ Var Details completed_contracts
+
+
+
+
+
+ The number of completed contracts.
+ The contractor uplink associated to this hub.
contracts
+ – /list/datum/syndicate_contract
+
+
+
+
+ The contracts offered by the hub.
+ The current contract in progress.
dead_penalty
+
+
+
+
+
+ TC reward multiplier if the target was extracted DEAD. Should be a penalty so between 0 and 1.
+The final amount is rounded up.
difficulty_tc_thresholds
+
+
+
+
+
+ Completing every contract at a given difficulty will always result in a sum of TC greater or equal than the difficulty's threshold.
+Structure: EXTRACTION_DIFFICULTY_(EASY|MEDIUM|HARD) => number
num_contracts
+
+
+
+
+
+ The number of contracts to generate initially.
owner
+
+
+
+
+
+ The contractor associated to this hub.
page
+
+
+
+
+
+ Current UI page index.
purchases
+ – /list/datum/rep_purchase
+
+
+
+
+ List of purchases that can be done for Rep.
rep
+
+
+
+
+
+ Amount of Contractor Rep available for spending.
rep_per_completion
+
+
+
+
+
+ How much Contractor Rep to earn per contract completion.
reward_tc_available
+
+
+
+
+
+ Amount of telecrystals available for redeeming.
reward_tc_paid_out
+
+
+
+
+
+ Total amount of paid out telecrystals since the start.
targets
+
+
+
+
+
+ List of targets from each contract in /datum/contractor_hub/var/contracts .
+Used to make sure two contracts from the same hub don't have the same target.
tc_variation
+
+
+
+
+
+ Maximum variation a single contract's TC reward can have upon generation.
+In other words: final_reward = CEILING((tc_threshold / num_contracts) * (1 - (rand(0, 100) / 100) * tc_variation), 1)
Proc Details calculate_tc_reward(total_contracts, difficulty)
+
+
+
+
+
+ Generates an amount of TC to be used as a contract reward for the given difficulty.
+Arguments:
+
+total_contracts - The number of contracts being generated.
+difficulty - The difficulty to base the threshold from.
+ claim_tc
+
+ Gives any unclaimed TC to the given mob.
+Arguments:
+
+M - The mob to give the TC to.
+ first_login
+
+ Called when the loading animation completes for the first time.
generate_contracts()
+
+
+
+
+
+ Regenerates a list of contracts for the contractor to take up.
is_user_authorized
+
+ Returns whether the given mob is allowed to connect to the uplink.
+Arguments:
+on_completion(tc, creds)
+
+
+
+
+
+ Called when a /datum/syndicate_contract has been completed.
+Arguments:
+
+tc - The final amount of TC to award.
+creds - The final amount of credits to award.
+
+
+
+
diff --git a/datum/controller.html b/datum/controller.html
new file mode 100644
index 0000000000000..9c1c04ab5752e
--- /dev/null
+++ b/datum/controller.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/controller - Space Station 13
+
+
+
+
+
+
+Proc Details log_startup_progress(message)
+
+
+
+
+
+ Standardized method for tracking startup times.
+
+
+
diff --git a/datum/controller/global_vars.html b/datum/controller/global_vars.html
new file mode 100644
index 0000000000000..20844a324eaaa
--- /dev/null
+++ b/datum/controller/global_vars.html
@@ -0,0 +1,582 @@
+
+
+
+
+
+
+ /datum/controller/global_vars - Space Station 13
+
+
+
+
+
+
+
+ Var Details AdminProcCallCount
+
+
+
+
+
+ How many procs have been called
AdminProcCallSpamPrevention
+
+
+
+
+
+ List to handle proc call spam prevention
AdminProcCaller
+
+
+
+
+
+ Who is currently calling procs
LastAdminCalledProc
+
+
+
+
+
+ Last proc called
LastAdminCalledTarget
+
+
+
+
+
+ Last target to have a proc called on it
LastAdminCalledTargetUID
+
+
+
+
+
+ UID of the admin who last called
PDAs
+
+
+
+
+
+ Global list of all PDAs in the world
acid_overlay
+ – /static/mutable_appearance
+
+
+
+
+ ACID
active_security_positions
+
+
+
+
+
+ Active security roles
admin_mutes_assoc
+
+
+
+
+
+ Associative list of people who are muted via admin mutes
admin_objective_list
+
+
+
+
+
+ Stores objective names as list keys, and their corresponding typepaths as list values.
admin_state
+
+
+
+
+
+ tgui state: admin_state
+Checks that the user is an admin, end-of-story.
allNewscasters
+
+
+
+
+
+ Global list that contains all existing newscasters in the world.
all_objectives
+
+
+
+
+
+ Stores a reference to every objective which currently exists.
always_state
+
+
+
+
+
+ tgui state: always_state
+Always grants the user UI_INTERACTIVE. Period.
blurb_witnesses
+
+
+
+
+
+ List of ckeys that have seen a blurb of a given key.
character_physiques
+
+
+
+
+
+ Global list for descriptors
command_head_positions
+
+
+
+
+
+ Only roles that are command of departments, for revolution and similar stuff
command_positions
+
+
+
+
+
+ All roles that are within the command category
+ Global configuration datum holder for all the config sections
conscious_state
+
+
+
+
+
+ tgui state: conscious_state
+Only checks if the user is conscious.
deep_inventory_state
+
+
+
+
+
+ tgui state: contained_state
+Checks that the user is inside the src_object.
+tgui state: deep_inventory_state
+Checks that the src_object is in the user's deep
+(backpack, box, toolbox, etc) inventory.
default_state
+
+
+
+
+
+ tgui state: default_state
+Checks a number of things -- mostly physical distance for humans
+and view for robots.
+Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
dna_activity_bounds
+
+
+
+
+
+ DNA 2: The Spaghetti Strikes Back
+@author N3X15 nexisentertainment@gmail.com
dna_mutations
+
+
+
+
+
+ Assoc list. Key = type of the mutation, value = the mutation
dooc_enabled
+
+
+
+
+
+ Is OOC currently enabled for dead people?
dsay_enabled
+
+
+
+
+
+ Is deadchat currently enabled?
em_mask_matrix
+
+
+
+
+
+ A globaly cached version of EM_MASK_MATRIX for quick access.
enter_allowed
+
+
+
+
+
+ Allow new players to enter the game?
frozen_atom_list
+
+
+
+
+
+ Freeze Mob/Mech Verb -- Ported from NSS Pheonix (Unbound Travels)//////
+Allows admin's to right click on any mob/mech and freeze them in place.
game_year
+
+
+
+
+
+ The current game year
+ Stores an instance of /datum/ui_module/ghost_hud_panel so that ghosts can use this to open their HUD panel.
gravity_generators
+
+
+
+
+
+ Global list of all active gravity generators. Keyed by the Z level
hands_state
+
+
+
+
+
+ tgui state: hands_state
+Checks that the src_object is in the user's hands.
huds
+
+
+
+
+
+ GLOBAL HUD LIST
human_adjacent_state
+
+
+
+
+
+ tgui state: human_adjacent_state
+In addition to default checks, only allows interaction for a
+human adjacent user.
inventory_state
+
+
+
+
+
+ tgui state: inventory_state
+Checks that the src_object is in the user's top-level (hand, ear, pocket, belt, etc) inventory.
join_motd
+
+
+
+
+
+ Join MOTD for the server
join_tos
+
+
+
+
+
+ Join TOS for the server
+ Library Catalog global is for storing a library catalog datum that will track book, category, and report lists for the library
looc_enabled
+
+
+
+
+
+ Is LOOC currently enabled?
looping_sounds
+
+
+
+
+
+ List of looping sounds
marker_beacon_colors
+
+
+
+
+
+ Marker Beacons
mod_themes
+
+
+
+
+
+ Global list of all /datum/mod_theme
mouse_respawn_time
+
+
+
+
+
+ Amount of time (in minutes) that must pass between a player dying as a mouse and repawning as a mouse
multiverse
+
+
+
+
+
+ Multiverse Blade
news_network
+
+
+
+
+
+ The feed network singleton. Contains all channels (which contain all stories).
next_unique_datum_id
+
+
+
+
+
+ The next UID to be used (Increments by 1 for each UID)
not_incapacitated_state
+
+
+
+
+
+ tgui state: not_incapacitated_state
+Checks that the user isn't incapacitated
not_incapacitated_turf_state
+
+
+
+
+
+ tgui state: not_incapacitated_turf_state
+Checks that the user isn't incapacitated and that their loc is a turf
notcontained_state
+
+
+
+
+
+ tgui state: notcontained_state
+Checks that the user is not inside src_object, and then makes the
+default checks.
observer_state
+
+
+
+
+
+ tgui state: observer_state
+Checks that the user is an observer/ghost.
ooc_enabled
+
+
+
+
+
+ Is OOC currently enabled?
physical_obscured_state
+
+
+
+
+
+ tgui state: physical_obscured_state
+Short-circuits the default state to only check physical distance, being in view doesn't matter
physical_state
+
+
+
+
+
+ tgui state: physical_state
+Short-circuits the default state to only check physical distance.
security_positions
+
+
+
+
+
+ Roles that include any semblence of security, mostly for jobbans
seeds_cached_base64_icons
+
+
+
+
+
+ Stores a list of the cached seed icons. Used in the seed extractor and the gene modder
self_state
+
+
+
+
+
+ tgui state: self_state
+Only checks that the user and src_object are the same.
slower_restart
+
+
+
+
+
+ Will our restart be slower?
smokes_active
+
+
+
+
+
+ Counter for the current amount of smoke
sparks_active
+
+
+
+
+
+ Counter for the current amount of sparks
strippable_state
+
+
+
+
+
+ tgui state: strippable_state
+Checks if user can strip the mob src_object
tcomms_machines
+
+
+
+
+
+ Global list for all telecomms machines in the world
tgs_log
+
+
+
+
+
+ Log of TGS stuff that can be viewed ingame
tilt_crits
+
+
+
+
+
+ List of possible crits from things tipping over
trait_name_map
+
+
+
+
+
+ value -> trait name, generated on use from trait_by_type global
ui_logins
+
+
+
+
+
+ tgui login
+Allows the handling of logins using IDs within tgui.
+Two key procs:
+
+How to use (DM side):
+
+Call /obj/proc/ui_login_act at the start of your ui_act() proc
+Call /obj/proc/ui_login_data in your ui_data() proc while passing the data list
+In your object, call /obj/proc/ui_login_get to get the current login state.
+Optional: call /obj/proc/ui_login_attackby in your attackby() to make the login process easier.
+
+How to use (JS side): Use the and interfaces.
ui_modals
+
+
+
+
+
+ ui modals
+Allows creation of modals within tgui.
uid_log
+
+
+
+
+
+ Log of all UIDs created in the round. Assoc list with type as key and amount as value
viewer_state
+
+
+
+
+
+ tgui state: viewer_state
+State for only viewing, regardless of distance. Different from observer_state, which grants interactivity exclusively if an observer/admin.
wire_color_directory
+
+
+
+
+
+ List of wire colors for each object type of that round. One for airlocks, one for vendors, etc.
world_topic_handlers
+
+
+
+
+
+ List of all world topic handler datums. Populated inside makeDatumRefLists()
world_topic_spam_prevention_handlers
+
+
+
+
+
+ List of all world topic spam prevention handlers. See code/modules/world_topic/_spam_prevention_handler.dm
+
+
+
diff --git a/datum/controller/master.html b/datum/controller/master.html
new file mode 100644
index 0000000000000..ad8d425a6ab6e
--- /dev/null
+++ b/datum/controller/master.html
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+ /datum/controller/master - Space Station 13
+
+
+
+
+
+
+Vars
+ current_runlevel For scheduling different subsystems for different stages of the round
+ current_ticklimit Current tick limit, assigned before running a subsystem. Used by CHECK_TICK as well so that the procs subsystems call can obey that SS's tick limits
+ initializations_finished_with_no_players_logged_in Did inits finish with no one logged in
+ iteration How many times have we ran
+ last_init_info Last reported init info
+ last_run world.time of last fire, for tracking lag outside of the mc
+ last_type_processed The type of the last subsystem to be fire()'d.
+ make_runtime Set this to 1 to debug the MC with a detailed stack trace. Do not set on a production server.
+ map_loading Are we loading in a new map?
+ processing Are we processing (higher values increase the processing delay by n ticks)
+ queue_head Start of queue linked list
+ queue_priority_count Running total so that we don't have to loop thru the queue each run to split up the tick
+ queue_priority_count_bg Same, but for background subsystems
+ queue_tail End of queue linked list (used for appending to the list)
+ random_seed Random seed generated for randomness if entropy is required
+ skip_ticks Only run ticker subsystems for the next n ticks.
+ sleep_delta How long is the MC sleeping between runs, read only (set by Loop() based off of anti-tick-contention heuristics)
+ sleep_offline_after_initializations Do we want to sleep until players log in?
+ ss_in_init_order Cache for the loading screen - cleared after
+ subsystems List of subsystems to fire(). Procs
+ RunQueue RunQueue - Run thru the queue of subsystems to run, running them while balancing out their allocated tick precentage
+Returns 0 if runtimed, a negitive number for logic errors, and a positive number if the operation completed without errors
+ Var Details current_runlevel
+
+
+
+
+
+ For scheduling different subsystems for different stages of the round
current_ticklimit
+
+
+
+
+
+ Current tick limit, assigned before running a subsystem. Used by CHECK_TICK as well so that the procs subsystems call can obey that SS's tick limits
initializations_finished_with_no_players_logged_in
+
+
+
+
+
+ Did inits finish with no one logged in
iteration
+
+
+
+
+
+ How many times have we ran
last_init_info
+
+
+
+
+
+ Last reported init info
last_run
+
+
+
+
+
+ world.time of last fire, for tracking lag outside of the mc
last_type_processed
+
+
+
+
+
+ The type of the last subsystem to be fire()'d.
make_runtime
+
+
+
+
+
+ Set this to 1 to debug the MC with a detailed stack trace. Do not set on a production server.
map_loading
+
+
+
+
+
+ Are we loading in a new map?
processing
+
+
+
+
+
+ Are we processing (higher values increase the processing delay by n ticks)
+ Start of queue linked list
queue_priority_count
+
+
+
+
+
+ Running total so that we don't have to loop thru the queue each run to split up the tick
queue_priority_count_bg
+
+
+
+
+
+ Same, but for background subsystems
+ End of queue linked list (used for appending to the list)
random_seed
+
+
+
+
+
+ Random seed generated for randomness if entropy is required
skip_ticks
+
+
+
+
+
+ Only run ticker subsystems for the next n ticks.
sleep_delta
+
+
+
+
+
+ How long is the MC sleeping between runs, read only (set by Loop() based off of anti-tick-contention heuristics)
sleep_offline_after_initializations
+
+
+
+
+
+ Do we want to sleep until players log in?
ss_in_init_order
+
+
+
+
+
+ Cache for the loading screen - cleared after
subsystems
+
+
+
+
+
+ List of subsystems to fire().
Proc Details RunQueue()
+
+
+
+
+
+ RunQueue - Run thru the queue of subsystems to run, running them while balancing out their allocated tick precentage
+Returns 0 if runtimed, a negitive number for logic errors, and a positive number if the operation completed without errors
+
+
+
diff --git a/datum/controller/subsystem.html b/datum/controller/subsystem.html
new file mode 100644
index 0000000000000..9ea4dabf1ea91
--- /dev/null
+++ b/datum/controller/subsystem.html
@@ -0,0 +1,312 @@
+
+
+
+
+
+
+ /datum/controller/subsystem - Space Station 13
+
+
+
+
+
+
+Defines a subsystem to be managed by the Master Controller
+Simply define a child of this subsystem, using the [SUBSYSTEM_DEF] macro, and the MC will handle registration.
+Changing the name is required
Vars
+ can_fire Set to 0 to prevent fire() calls, mostly for admin use or subsystems that may be resumed later
+use the [SS_NO_FIRE] flag instead for systems that never fire to keep it from even being added to list that is checked every tick
+ cost Running average of the amount of milliseconds it takes the subsystem to complete a run (including all resumes but not the time spent paused)
+ cpu_display Tab to display in under the MC subtabs
+ failure_strikes How many times we suspect a subsystem type has crashed the MC, 3 strikes and you're out!
+ fire_sleep_count Amount of times the subsystem has slept during fire()
+ flags [Subsystem Flags][SS_NO_INIT] to control binary behavior. Flags must be set at compile time or before preinit finishes to take full effect. (You can also restart the mc to force them to process again)
+ init_order Order of initialization. Higher numbers are initialized first, lower numbers later. Use or create defines such as [INIT_ORDER_DEFAULT] so we can see the order in one file.
+ initialized This var is set to TRUE after the subsystem has been initialized.
+ last_fire Last world.time the subsystem completed a run (as in wasn't paused by [MC_TICK_CHECK])
+ name Name of the subsystem - you must change this
+ next_fire Scheduled world.time for next fire()
+ offline_implications What are the implications of this SS being offlined?
+ paused_tick_usage Tracks how much of a tick the subsystem has consumed in the current run
+ paused_ticks Tracks how many fires the subsystem has consecutively paused on in the current run
+ postponed_fires How many fires have we been requested to postpone
+ priority Priority Weight: When mutiple subsystems need to run in the same tick, higher priority subsystems will be given a higher share of the tick before MC_TICK_CHECK triggers a sleep, higher priority subsystems also run before lower priority subsystems
+ queue_next Next subsystem in the queue of subsystems to run this tick
+ queue_prev Previous subsystem in the queue of subsystems to run this tick
+ queued_priority Priority at the time the subsystem entered the queue. Needed to avoid changes in priority (by admins and the like) from breaking things.
+ queued_time Time the subsystem entered the queue, (for timing and priority reasons)
+ runlevels Bitmap of what game states can this subsystem fire at. See [RUNLEVELS_DEFAULT] for more details.
+ ss_id SS ID - Again, change this but keep it snake_case
+ state Tracks the current execution state of the subsystem. Used to handle subsystems that sleep in fire so the mc doesn't run them again while they are sleeping
+ tick_allocation_avg How much of a tick (in percents of a tick) do we get allocated by the mc on avg.
+ tick_allocation_last How much of a tick (in percents of a tick) were we allocated last fire.
+ tick_overrun Running average of the amount of tick usage (in percents of a game tick) the subsystem has spent past its allocated time without pausing
+ tick_usage Running average of the amount of tick usage in percents of a tick it takes the subsystem to complete a run
+ ticks Tracks how many fires the subsystem takes to complete a run on average.
+ times_fired Tracks the amount of completed runs for the subsystem
+ wait Time to wait (in deciseconds) between each call to fire(). Must be a positive integer. Procs
+ PreInit datum/controller/subsystem/New()
+ enqueue Queue it to run.
+(we loop thru a linked list until we get to the end or find the right point)
+(this lets us sort our run order correctly without having to re-sort the entire already sorted list)
+ fire previously, this would have been named 'process()' but that name is used everywhere for different things!
+fire() seems more suitable. This is the procedure that gets called every 'wait' deciseconds.
+Sleeping in here prevents future fires until returned.
+ get_cost Returns what to display as the ms cost for this subsystem.
+ get_metrics Returns the metrics for the subsystem.
+ ignite This is used so the mc knows when the subsystem sleeps. do not override.
+ postpone Causes the next "cycle" fires to be missed. Effect is accumulative but can reset by calling update_nextfire(reset_time = TRUE)
+ update_nextfire
+ Var Details can_fire
+
+
+
+
+
+ Set to 0 to prevent fire() calls, mostly for admin use or subsystems that may be resumed later
+use the [SS_NO_FIRE] flag instead for systems that never fire to keep it from even being added to list that is checked every tick
cost
+
+
+
+
+
+ Running average of the amount of milliseconds it takes the subsystem to complete a run (including all resumes but not the time spent paused)
cpu_display
+
+
+
+
+
+ Tab to display in under the MC subtabs
failure_strikes
+
+
+
+
+
+ How many times we suspect a subsystem type has crashed the MC, 3 strikes and you're out!
fire_sleep_count
+
+
+
+
+
+ Amount of times the subsystem has slept during fire()
flags
+
+
+
+
+
+ [Subsystem Flags][SS_NO_INIT] to control binary behavior. Flags must be set at compile time or before preinit finishes to take full effect. (You can also restart the mc to force them to process again)
init_order
+
+
+
+
+
+ Order of initialization. Higher numbers are initialized first, lower numbers later. Use or create defines such as [INIT_ORDER_DEFAULT] so we can see the order in one file.
initialized
+
+
+
+
+
+ This var is set to TRUE after the subsystem has been initialized.
last_fire
+
+
+
+
+
+ Last world.time the subsystem completed a run (as in wasn't paused by [MC_TICK_CHECK])
name
+
+
+
+
+
+ Name of the subsystem - you must change this
next_fire
+
+
+
+
+
+ Scheduled world.time for next fire()
offline_implications
+
+
+
+
+
+ What are the implications of this SS being offlined?
paused_tick_usage
+
+
+
+
+
+ Tracks how much of a tick the subsystem has consumed in the current run
paused_ticks
+
+
+
+
+
+ Tracks how many fires the subsystem has consecutively paused on in the current run
postponed_fires
+
+
+
+
+
+ How many fires have we been requested to postpone
priority
+
+
+
+
+
+ Priority Weight: When mutiple subsystems need to run in the same tick, higher priority subsystems will be given a higher share of the tick before MC_TICK_CHECK triggers a sleep, higher priority subsystems also run before lower priority subsystems
+ Next subsystem in the queue of subsystems to run this tick
+ Previous subsystem in the queue of subsystems to run this tick
queued_priority
+
+
+
+
+
+ Priority at the time the subsystem entered the queue. Needed to avoid changes in priority (by admins and the like) from breaking things.
queued_time
+
+
+
+
+
+ Time the subsystem entered the queue, (for timing and priority reasons)
runlevels
+
+
+
+
+
+ Bitmap of what game states can this subsystem fire at. See [RUNLEVELS_DEFAULT] for more details.
ss_id
+
+
+
+
+
+ SS ID - Again, change this but keep it snake_case
state
+
+
+
+
+
+ Tracks the current execution state of the subsystem. Used to handle subsystems that sleep in fire so the mc doesn't run them again while they are sleeping
tick_allocation_avg
+
+
+
+
+
+ How much of a tick (in percents of a tick) do we get allocated by the mc on avg.
tick_allocation_last
+
+
+
+
+
+ How much of a tick (in percents of a tick) were we allocated last fire.
tick_overrun
+
+
+
+
+
+ Running average of the amount of tick usage (in percents of a game tick) the subsystem has spent past its allocated time without pausing
tick_usage
+
+
+
+
+
+ Running average of the amount of tick usage in percents of a tick it takes the subsystem to complete a run
ticks
+
+
+
+
+
+ Tracks how many fires the subsystem takes to complete a run on average.
times_fired
+
+
+
+
+
+ Tracks the amount of completed runs for the subsystem
wait
+
+
+
+
+
+ Time to wait (in deciseconds) between each call to fire(). Must be a positive integer.
Proc Details PreInit()
+
+
+
+
+
+ datum/controller/subsystem/New()
enqueue()
+
+
+
+
+
+ Queue it to run.
+(we loop thru a linked list until we get to the end or find the right point)
+(this lets us sort our run order correctly without having to re-sort the entire already sorted list)
fire(resumed)
+
+
+
+
+
+ previously, this would have been named 'process()' but that name is used everywhere for different things!
+fire() seems more suitable. This is the procedure that gets called every 'wait' deciseconds.
+Sleeping in here prevents future fires until returned.
get_cost()
+
+
+
+
+
+ Returns what to display as the ms cost for this subsystem.
get_metrics()
+
+
+
+
+
+ Returns the metrics for the subsystem.
+This can be overriden on subtypes for variables that could affect tick usage
+Example: ATs on SSair
ignite(resumed)
+
+
+
+
+
+ This is used so the mc knows when the subsystem sleeps. do not override.
postpone(cycles)
+
+
+
+
+
+ Causes the next "cycle" fires to be missed. Effect is accumulative but can reset by calling update_nextfire(reset_time = TRUE)
update_nextfire(reset_time)
+
+
+
+
+
+
+Update next_fire for the next run.
+reset_time (bool) - Ignore things that would normally alter the next fire, like tick_overrun, and last_fire. (also resets postpone)
+
+
+
+
diff --git a/datum/controller/subsystem/air.html b/datum/controller/subsystem/air.html
new file mode 100644
index 0000000000000..3a8cf927d2056
--- /dev/null
+++ b/datum/controller/subsystem/air.html
@@ -0,0 +1,232 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/air - Space Station 13
+
+
+
+
+
+
+Vars
+ added_bound_mixtures The number of bound mixtures that were added during this processing cycle.
+ atmos_machinery The set of active atmos machinery. Length shown in SS Info as AM.
+ bound_mixtures The set of current bound mixtures. Shown in SS Info as BM:x+y, where x is the length at the start of the most recent processing, and y is the number of mixtures that have been added during processing.
+ cost_atmos_machinery The cost of a pass through atmos machinery, shown in SS Info's C block as AM.
+ cost_bound_mixtures The cost of a pass through bound gas mixtures, shown in SS Info's C block as BM.
+ cost_full How long we took for a full pass through the subsystem. Custom-tracked version of cost
.
+ cost_hotspots The cost of a pass through hotspots, shown in SS Info's C block as HS.
+ cost_interesting_tiles The cost of a pass through interesting tiles, shown in SS Info's C block as IT.
+ cost_milla_tick The cost of a MILLA tick in ms, shown in SS Info's C block as MT.
+ cost_pipenets The cost of a pass through pipenets, shown in SS Info's C block as PN.
+ cost_pipenets_to_build The cost of a pass through building pipenets, shown in SS Info's C block as DPN.
+ currentpart Which step we're currently on, used to let us resume if our time budget elapses.
+ currentrun An arbitrary list of stuff currently being processed.
+ healthy Is MILLA (and hence SSair) reliably healthy?
+ hotspots The set of current active hotspots. Length shown in SS Info as HS.
+ icon_manager Pipe overlay/underlay icon manager
+ in_milla_safe_code Are we currently running in a MILLA-safe context, i.e. is is_synchronous guaranteed to be TRUE. Nothing outside of this file should change this.
+ interesting_tile_count The length of the most recent interesting tiles list, shown in SS Info as IT.
+ is_synchronous Is MILLA currently in synchronous mode? TRUE if data is fresh and changes can be made, FALSE if data is from last tick and changes cannot be made (because this tick is still processing).
+ last_bound_mixtures The number of bound mixtures we saw when we last stopped processing them.
+ last_unhealthy When was MILLA last seen unhealthy?
+ machinery_to_construct A list of atmos machinery to set up in Initialize.
+ milla_tick_start When did we start the last MILLA tick?
+ original_bound_mixtures The original length of bound_mixtures.
+ pipenets The set of active pipenets. Length shown in SS Info as PN.
+ pipenets_to_build The set of pipenets that need to be built. Length shown in SS Info as PTB.
+ time_slept How long we spent sleeping while waiting for MILLA to finish the last tick, shown in SS Info's C block as ZZZ.
+ waiting_for_sync A list of callbacks waiting for MILLA to finish its tick and enter synchronous mode. Procs
+ synchronize Similar to addtimer, but triggers once MILLA enters synchronous mode.
+ Var Details added_bound_mixtures
+
+
+
+
+
+ The number of bound mixtures that were added during this processing cycle.
atmos_machinery
+
+
+
+
+
+ The set of active atmos machinery. Length shown in SS Info as AM.
bound_mixtures
+
+
+
+
+
+ The set of current bound mixtures. Shown in SS Info as BM:x+y, where x is the length at the start of the most recent processing, and y is the number of mixtures that have been added during processing.
+ The cost of a pass through atmos machinery, shown in SS Info's C block as AM.
+ The cost of a pass through bound gas mixtures, shown in SS Info's C block as BM.
+ How long we took for a full pass through the subsystem. Custom-tracked version of cost
.
+ The cost of a pass through hotspots, shown in SS Info's C block as HS.
+ The cost of a pass through interesting tiles, shown in SS Info's C block as IT.
cost_milla_tick
+
+
+
+
+
+ The cost of a MILLA tick in ms, shown in SS Info's C block as MT.
+ The cost of a pass through pipenets, shown in SS Info's C block as PN.
+ The cost of a pass through building pipenets, shown in SS Info's C block as DPN.
currentpart
+
+
+
+
+
+ Which step we're currently on, used to let us resume if our time budget elapses.
currentrun
+
+
+
+
+
+ An arbitrary list of stuff currently being processed.
healthy
+
+
+
+
+
+ Is MILLA (and hence SSair) reliably healthy?
hotspots
+
+
+
+
+
+ The set of current active hotspots. Length shown in SS Info as HS.
icon_manager
+ – /datum /pipe_icon_manager
+
+
+
+
+ Pipe overlay/underlay icon manager
in_milla_safe_code
+
+
+
+
+
+ Are we currently running in a MILLA-safe context, i.e. is is_synchronous guaranteed to be TRUE. Nothing outside of this file should change this.
interesting_tile_count
+
+
+
+
+
+ The length of the most recent interesting tiles list, shown in SS Info as IT.
is_synchronous
+
+
+
+
+
+ Is MILLA currently in synchronous mode? TRUE if data is fresh and changes can be made, FALSE if data is from last tick and changes cannot be made (because this tick is still processing).
last_bound_mixtures
+
+
+
+
+
+ The number of bound mixtures we saw when we last stopped processing them.
last_unhealthy
+
+
+
+
+
+ When was MILLA last seen unhealthy?
machinery_to_construct
+
+
+
+
+
+ A list of atmos machinery to set up in Initialize.
milla_tick_start
+
+
+
+
+
+ When did we start the last MILLA tick?
original_bound_mixtures
+
+
+
+
+
+ The original length of bound_mixtures.
pipenets
+
+
+
+
+
+ The set of active pipenets. Length shown in SS Info as PN.
pipenets_to_build
+
+
+
+
+
+ The set of pipenets that need to be built. Length shown in SS Info as PTB.
+ How long we spent sleeping while waiting for MILLA to finish the last tick, shown in SS Info's C block as ZZZ.
waiting_for_sync
+
+
+
+
+
+ A list of callbacks waiting for MILLA to finish its tick and enter synchronous mode.
Proc Details
+ Similar to addtimer, but triggers once MILLA enters synchronous mode.
+
+
+
diff --git a/datum/controller/subsystem/ambience.html b/datum/controller/subsystem/ambience.html
new file mode 100644
index 0000000000000..0a2dc5f45d06c
--- /dev/null
+++ b/datum/controller/subsystem/ambience.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/ambience - Space Station 13
+
+
+
+
+
+
+
+ Var Details ambience_listening_clients
+
+
+
+
+
+ Assoc list of listening client - next ambience time
+
+
+
diff --git a/datum/controller/subsystem/assets.html b/datum/controller/subsystem/assets.html
new file mode 100644
index 0000000000000..6db40fe639f2a
--- /dev/null
+++ b/datum/controller/subsystem/assets.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/assets - Space Station 13
+
+
+
+
+
+
+Vars
+ cache Contains /datum/asset_cache_item
+ Var Details cache
+
+
+
+
+
+ Contains /datum/asset_cache_item
+
+
+
diff --git a/datum/controller/subsystem/blackbox.html b/datum/controller/subsystem/blackbox.html
new file mode 100644
index 0000000000000..52dba59e5d565
--- /dev/null
+++ b/datum/controller/subsystem/blackbox.html
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/blackbox - Space Station 13
+
+
+
+
+
+
+
+ Var Details feedback
+ – /list/datum/feedback_variable
+
+
+
+
+ List of all recorded feedback
research_levels
+
+
+
+
+
+ List of highest tech levels attained that isn't lost lost by destruction of RD computers
sealed
+
+
+
+
+
+ Is it time to stop tracking stats?
versions
+
+
+
+
+
+ Associative list of any feedback variables that have had their format changed since creation and their current version, remember to update this
Proc Details LogBroadcast(freq)
+
+
+
+
+
+ Radio broadcast logging helper
+Called during [/proc/broadcast_message()] to log a message to the blackbox.
+Translates the specific frequency to a name
+Arguments:
+
+freq - Frequency of the transmission
+ ReportDeath
+
+ Death reporting proc
+Called when humans and cyborgs die, and logs death info to the death
table
+Arguments:
+
+L - The human or cyborg to be logged
+ Seal()
+
+
+
+
+
+ Blackbox Sealer
+Seals the blackbox, preventing new data from being stored. This is to avoid data being bloated during end round grief
Shutdown()
+
+
+
+
+
+ Shutdown Helper
+Dumps all feedback stats to the DB. Doesnt get much simpler than that.
find_feedback_datum(key, key_type)
+
+
+
+
+
+ Helper to find and return a feeedback datum
+Pass in a feedback datum key and key_type to do a lookup.
+It will create the feedback datum if it doesnt exist
+Arguments:
+
+key - Key of the variable to lookup
+key_type - Type of feedback to be recorded if the feedback datum cant be found
+ log_research(tech, level)
+
+
+
+
+
+ Research level broadcast logging helper
+This is called on R&D updates for a safe way of logging tech levels if an R&D console is destroyed
+Arguments:
+
+tech - Research technology name
+level - Research technology level
+ record_feedback(key_type, key, increment, data, overwrite, ignore_seal)
+
+
+
+
+
+ Main feedback recording proc
+This is the bulk of this subsystem and is in charge of creating and using the variables.
+See .github/USING_FEEDBACK_DATA.md for instructions
+Note that feedback is not recorded to the DB during this function. That happens at round end.
+Arguments:
+
+key_type - Type of key. Either "text", "amount", "tally", "nested tally", "associative"
+key - Key of the data to be used (EG: "admin_verb")
+increment - If using "amount", how much to increment why
+data - The actual data to logged
+overwrite - Do we want to overwrite the existing key
+ignore_seal - Does the feedback go in regardless of blackbox sealed status? (EG: map vote results)
+ record_feedback_recurse_list(/list/L, /list/key_list, increment, depth)
+
+
+
+
+
+ Recursive list recorder
+Used by the above proc for nested tallies
+Arguments:
+
+L - List to use
+key_list - List of keys to add
+increment - How much to increase by
+depth - Depth to use
+
+
+
+
diff --git a/datum/controller/subsystem/chat.html b/datum/controller/subsystem/chat.html
new file mode 100644
index 0000000000000..6c3511f6c3279
--- /dev/null
+++ b/datum/controller/subsystem/chat.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/chat - Space Station 13
+
+
+
+
+
+
+
+ Var Details client_to_payloads
+ – /list/list/datum/chat_payload
+
+
+
+
+ Associates a ckey with a list of messages to send to them.
client_to_reliability_history
+ – /list/list/datum/chat_payload
+
+
+
+
+ Associates a ckey with an associative list of their last CHAT_RELIABILITY_HISTORY_SIZE messages.
client_to_sequence_number
+
+
+
+
+
+ Associates a ckey with their next sequence number.
+
+
+
diff --git a/datum/controller/subsystem/cleanup.html b/datum/controller/subsystem/cleanup.html
new file mode 100644
index 0000000000000..cb0965a679dca
--- /dev/null
+++ b/datum/controller/subsystem/cleanup.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/cleanup - Space Station 13
+
+
+
+
+
+
+Vars
+ lists_to_clean A list of global lists we want the subsystem to clean.
+ Var Details lists_to_clean
+
+
+
+
+
+ A list of global lists we want the subsystem to clean.
+
+
+
diff --git a/datum/controller/subsystem/dbcore.html b/datum/controller/subsystem/dbcore.html
new file mode 100644
index 0000000000000..1519ff9e5fe35
--- /dev/null
+++ b/datum/controller/subsystem/dbcore.html
@@ -0,0 +1,200 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/dbcore - Space Station 13
+
+
+
+
+
+
+
+ Var Details active_queries
+
+
+
+
+
+ List of currenty processing queries
connection
+
+
+
+
+
+ Connection handle. This is an arbitrary handle returned from rust_g.
failed_connection_timeout
+
+
+
+
+
+ Timeout of failed connections
failed_connections
+
+
+
+
+
+ Amount of failed connections
last_error
+
+
+
+
+
+ Last error to occur
schema_valid
+
+
+
+
+
+ Is the DB schema valid
total_errors
+
+
+
+
+
+ SQL errors that have occured mid round
Proc Details CheckSchemaVersion()
+
+
+
+
+
+ Schema Version Checker
+Basically verifies that the DB schema in the config is the same as the version the game is expecting.
+If it is a valid version, the DB will then connect.
Connect()
+
+
+
+
+
+ Connection Creator
+This proc basically does a few sanity checks before connecting, then attempts to make a connection
+When connecting, RUST_G will initialize a thread pool for queries to use to run asynchronously
Disconnect()
+
+
+
+
+
+ Disconnection Handler
+Tells the DLL to clean up any open connections.
+This will also reset the failed connection counter
ErrorMsg()
+
+
+
+
+
+ Error Message Helper
+Returns the last error that the subsystem encountered.
+Will always report "Database disabled by configuration" if the DB is disabled.
IsConnected()
+
+
+
+
+
+ IsConnected Helper
+Short helper to check if the DB is connected or not.
+Does a few sanity checks, then asks the DLL if we are properly connected
MassExecute(/list/querys, warn, qdel, assoc, log)
+
+
+
+
+
+ Handler to allow many queries to be executed en masse
+Feed this proc a list of queries and it will execute them all at once, by the power of async magic!
+Arguments:
+
+querys - List of queries to execute
+warn - Boolean to warn on query failure
+qdel - Boolean to enable auto qdel of queries
+assoc - Boolean to enable support for an associative list of queries
+log - Do we want to generate logs for these queries
+ NewQuery(sql_query, arguments)
+
+
+
+
+
+ New Query Invoker
+Checks to make sure this query isnt being invoked by admin fuckery, then returns a new /datum/db_query
+Arguments:
+
+sql_query - SQL query to be ran, with :parameter placeholders
+arguments - Associative list of parameters to be inserted into the query
+ ReportError(error)
+
+
+
+
+
+ Error Reporting Helper
+Pretty much just sets last_error
to the error argument
+Arguments:
+
+error - Error text to set last_error
to
+ SetRoundEnd()
+
+
+
+
+
+ Round End Time Setter
+Called during SSticker.declare_completion()
+Sets the time that the round ended in the DB, as well as some other params
SetRoundID()
+
+
+
+
+
+ Round ID Setter
+Called during world/New() at the earliest point
+Declares a round ID in the database and assigns it to a global. Also ensures that server address and ports are set
SetRoundStart()
+
+
+
+
+
+ Round End Time Setter
+Called during SSticker.setup()
+Sets the time that the round started in the DB
Shutdown()
+
+
+
+
+
+ Shutdown Handler
+Called during world/Reboot() as part of the MC shutdown
+Finalises a round in the DB before disconnecting.
+
+
+
diff --git a/datum/controller/subsystem/debugview.html b/datum/controller/subsystem/debugview.html
new file mode 100644
index 0000000000000..adb37954464b3
--- /dev/null
+++ b/datum/controller/subsystem/debugview.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/debugview - Space Station 13
+
+
+
+
+
+
+Vars
+ processing List of clients currently processing
+ Var Details processing
+
+
+
+
+
+ List of clients currently processing
+
+
+
diff --git a/datum/controller/subsystem/economy.html b/datum/controller/subsystem/economy.html
new file mode 100644
index 0000000000000..0a5bfe023dbc8
--- /dev/null
+++ b/datum/controller/subsystem/economy.html
@@ -0,0 +1,296 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/economy - Space Station 13
+
+
+
+
+
+
+Vars
+ account_counter Total amount of account created during the round, neccesary for generating unique account ids
+ cargo_account ///CARGO VARIABLES/////
+the department account tethered to this supply console, we keep a ref here for shuttle operations
+ centcom_message Remarks from Centcom on how well you checked the last order.
+ credits_per_design credits gained per research design sold
+ credits_per_easy_reagent_goal credits gained for each secondary goal completed
+These get split in 3, one part for Cargo, one for the department,
+and one part for the person who requested the goal.
+ credits_per_intel credits gained per intel sold
+ credits_per_manifest credits gained per slip returned
+ credits_per_mech credits gained per working mech sold
+ credits_per_plasma credits gained per plasma sold
+ credits_per_salvage points gained per salvage sold
+ credits_per_virology_goal points gained per virology goal
+ current_10_minute_spending amount of money spent in this 15 minute slot during the round
+ delivery_list Crates that will be on next shuttle
+ discovered_plants Typepaths for unusual plants we've already sent CentComm, associated with their potencies
+ economy_data list of vars that will be tracked throughout the round (a new entry for each key list will be added every 15 minutes)
+ fine_for_loose_cargo credits lost for sending unsecured cargo
+ fine_for_messy_shuttle credits lost for sending a messy shuttle
+ fine_for_selling_trash credits lost for sending unwanted items
+ money_account_databases List of all money account databases existing in the round
+ next_data_check time to next stats check
+ next_mail_delay Time until the next mail shipment
+ next_paycheck_delay ///Paycheck Variables/////
+time to next payday
+ ordernum Current Order number
+ pack_price_modifier The modifier on crate prices to multiple the price by.
+ payday_count total paydays this round
+ request_list Requested crates, waiting for approval by department heads
+ shopping_list Approved Crates, waiting to be delivered
+ space_credits_created The amount of space credits that have been created out of thin air, does not include credits created at round-start
+ space_credits_destroyed The amount of space credits that have been irreversibly deleted/removed from the round
+ supply_packs Full list of all available supply packs to purchase
+ total_credit_transfers The amount of transfers (that are worth more than a few credits) that have been accepted during the round
+ total_space_cash The absolute total amount of space cash (not to be confused with credits) in the round, does not count space credits in money accounts
+ total_space_credits The absolute total amount of space credits in various economy systems, does not count space cash
+ total_vendor_transactions the amount of venor purchases during the round Procs
+ fire create main station accounts
+ generate_supply_order Supply Stuff
+ payday Paycheck Stuff
+ Var Details account_counter
+
+
+
+
+
+ Total amount of account created during the round, neccesary for generating unique account ids
+ ///CARGO VARIABLES/////
+the department account tethered to this supply console, we keep a ref here for shuttle operations
centcom_message
+
+
+
+
+
+ Remarks from Centcom on how well you checked the last order.
credits_per_design
+
+
+
+
+
+ credits gained per research design sold
credits_per_easy_reagent_goal
+
+
+
+
+
+ credits gained for each secondary goal completed
+These get split in 3, one part for Cargo, one for the department,
+and one part for the person who requested the goal.
credits_per_intel
+
+
+
+
+
+ credits gained per intel sold
credits_per_manifest
+
+
+
+
+
+ credits gained per slip returned
credits_per_mech
+
+
+
+
+
+ credits gained per working mech sold
credits_per_plasma
+
+
+
+
+
+ credits gained per plasma sold
credits_per_salvage
+
+
+
+
+
+ points gained per salvage sold
credits_per_virology_goal
+
+
+
+
+
+ points gained per virology goal
current_10_minute_spending
+
+
+
+
+
+ amount of money spent in this 15 minute slot during the round
delivery_list
+
+
+
+
+
+ Crates that will be on next shuttle
discovered_plants
+
+
+
+
+
+ Typepaths for unusual plants we've already sent CentComm, associated with their potencies
economy_data
+
+
+
+
+
+ list of vars that will be tracked throughout the round (a new entry for each key list will be added every 15 minutes)
fine_for_loose_cargo
+
+
+
+
+
+ credits lost for sending unsecured cargo
fine_for_messy_shuttle
+
+
+
+
+
+ credits lost for sending a messy shuttle
fine_for_selling_trash
+
+
+
+
+
+ credits lost for sending unwanted items
money_account_databases
+
+
+
+
+
+ List of all money account databases existing in the round
next_data_check
+
+
+
+
+
+ time to next stats check
next_mail_delay
+
+
+
+
+
+ Time until the next mail shipment
next_paycheck_delay
+
+
+
+
+
+ ///Paycheck Variables/////
+time to next payday
ordernum
+
+
+
+
+
+ Current Order number
pack_price_modifier
+
+
+
+
+
+ The modifier on crate prices to multiple the price by.
payday_count
+
+
+
+
+
+ total paydays this round
request_list
+
+
+
+
+
+ Requested crates, waiting for approval by department heads
+ Approved Crates, waiting to be delivered
space_credits_created
+
+
+
+
+
+ The amount of space credits that have been created out of thin air, does not include credits created at round-start
space_credits_destroyed
+
+
+
+
+
+ The amount of space credits that have been irreversibly deleted/removed from the round
supply_packs
+
+
+
+
+
+ Full list of all available supply packs to purchase
total_credit_transfers
+
+
+
+
+
+ The amount of transfers (that are worth more than a few credits) that have been accepted during the round
total_space_cash
+
+
+
+
+
+ The absolute total amount of space cash (not to be confused with credits) in the round, does not count space credits in money accounts
total_space_credits
+
+
+
+
+
+ The absolute total amount of space credits in various economy systems, does not count space cash
total_vendor_transactions
+
+
+
+
+
+ the amount of venor purchases during the round
Proc Details fire()
+
+
+
+
+
+ create main station accounts
generate_supply_order(packID, orderedby, occupation, comment)
+
+
+
+
+
+ Supply Stuff
payday()
+
+
+
+
+
+ Paycheck Stuff
+
+
+
diff --git a/datum/controller/subsystem/ghost_spawns.html b/datum/controller/subsystem/ghost_spawns.html
new file mode 100644
index 0000000000000..d8c15ea0ed80c
--- /dev/null
+++ b/datum/controller/subsystem/ghost_spawns.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/ghost_spawns - Space Station 13
+
+
+
+
+
+
+
+ Var Details currently_polling
+ – /list/datum/candidate_poll
+
+
+
+
+ List of polls currently ongoing, to be checked on next fire()
+ The poll that's closest to finishing
polls_active
+
+
+
+
+
+ Whether there are active polls or not
total_polls
+
+
+
+
+
+ Number of polls performed since the start
Proc Details is_eligible(/mob /M, role, antag_age_check, role_text, min_hours, check_antaghud, ignore_respawnability)
+
+
+
+
+
+ Returns whether an observer is eligible to be an event mob
+Arguments:
+
+M - The mob to check eligibility
+role - The role to check eligibility for. Checks 1. the client has enabled the role 2. the account's age for this role if antag_age_check is TRUE
+antag_age_check - Whether to check the account's age or not for the given role.
+role_text - The role's clean text. Used for checking job bans to determine eligibility
+min_hours - The amount of minimum hours the client needs before being eligible
+check_antaghud - Whether to consider a client who enabled AntagHUD ineligible or not
+ poll_candidates(question, role, antag_age_check, poll_time, ignore_respawnability, min_hours, flash_window, check_antaghud, source, role_cleanname, reason)
+
+
+
+
+
+ Polls for candidates with a question and a preview of the role
+This proc replaces /proc/pollCandidates.
+Should NEVER be used in a proc that has waitfor set to FALSE/0 (due to #define UNTIL)
+Arguments:
+
+question - The question to ask to potential candidates
+role - The role to poll for. Should be a ROLE_x enum. If set, potential candidates who aren't eligible will be ignored
+antag_age_check - Whether to filter out potential candidates who don't have an old enough account
+poll_time - How long to poll for in deciseconds
+ignore_respawnability - Whether to ignore the player's respawnability
+min_hours - The amount of hours needed for a potential candidate to be eligible
+flash_window - Whether the poll should flash a potential candidate's game window
+check_antaghud - Whether to filter out potential candidates who enabled AntagHUD
+source - The atom, atom prototype, icon or mutable appearance to display as an icon in the alert
+role_cleanname - The name override to display to clients
+
+ Called by the subsystem when a poll's timer runs out
+Can be called manually to finish a poll prematurely
+Arguments:
+
+P - The poll to finish
+
+
+
+
diff --git a/datum/controller/subsystem/heartbeat.html b/datum/controller/subsystem/heartbeat.html
new file mode 100644
index 0000000000000..20ff98c2796c2
--- /dev/null
+++ b/datum/controller/subsystem/heartbeat.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/heartbeat - Space Station 13
+
+
+
+
+
+
+
+ Var Details last_heartbeat
+
+
+
+
+
+ Last time we got a heartbeat from TGS
warning_tripped
+
+
+
+
+
+ Has a warning been sent this round?
+
+
+
diff --git a/datum/controller/subsystem/http.html b/datum/controller/subsystem/http.html
new file mode 100644
index 0000000000000..8996f2e514682
--- /dev/null
+++ b/datum/controller/subsystem/http.html
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/http - Space Station 13
+
+
+
+
+
+
+
+ Var Details active_async_requests
+ – /list/datum/http_request
+
+
+
+
+ List of all async HTTP requests in the processing chain
logging_enabled
+
+
+
+
+
+ Variable to define if logging is enabled or not. Disabled by default since we know the requests the server is making. Enable with VV if you need to debug requests
total_requests
+
+
+
+
+
+ Total requests the SS has processed in a round
Proc Details create_async_request(method, url, body, /list/headers, /datum /callback/proc_callback)
+
+
+
+
+
+ Async request creator
+Generates an async request, and adds it to the subsystem's processing list
+These should be used as they do not lock the entire DD process up as they execute inside their own thread pool inside RUSTG
make_blocking_request(method, url, body, /list/headers)
+
+
+
+
+
+ Blocking request creator
+Generates a blocking request, executes it, logs the info then cleanly returns the response
+Exists as a proof of concept, and should never be used
+
+
+
diff --git a/datum/controller/subsystem/input.html b/datum/controller/subsystem/input.html
new file mode 100644
index 0000000000000..df8097540d191
--- /dev/null
+++ b/datum/controller/subsystem/input.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/input - Space Station 13
+
+
+
+
+
+
+Vars
+ processing List of clients whose input to process in loop.
+ Var Details processing
+
+
+
+
+
+ List of clients whose input to process in loop.
+
+
+
diff --git a/datum/controller/subsystem/jobs.html b/datum/controller/subsystem/jobs.html
new file mode 100644
index 0000000000000..b09eb2dbb9dcc
--- /dev/null
+++ b/datum/controller/subsystem/jobs.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/jobs - Space Station 13
+
+
+
+
+
+
+Vars
+ drunken_spawning Do we spawn people drunkenly due to the party last night?
+ failed_head_antag_roll A list of minds that have failed to roll antagonist. Cleared when job selection finishes.
+ late_arrivals_spawning Do we spawn everyone at shuttle due to late arivals?
+ station_departments list of station departments and their associated roles and economy payments Procs
+ CheckHeadPositions This proc is called at the start of the level loop of DivideOccupations() and will cause head jobs to be checked before any other jobs of the same level
+ DivideOccupations Proc DivideOccupations
+fills var "assigned_role" for all ready players.
+This proc must not have any side effect besides of modifying "assigned_role".
+ FillHeadPosition This proc is called before the level loop of DivideOccupations() and will try to select a head, ignoring ALL non-head preferences for every level until it locates a head or runs out of levels to check
+ Var Details drunken_spawning
+
+
+
+
+
+ Do we spawn people drunkenly due to the party last night?
failed_head_antag_roll
+
+
+
+
+
+ A list of minds that have failed to roll antagonist. Cleared when job selection finishes.
late_arrivals_spawning
+
+
+
+
+
+ Do we spawn everyone at shuttle due to late arivals?
station_departments
+
+
+
+
+
+ list of station departments and their associated roles and economy payments
Proc Details CheckHeadPositions(level)
+
+
+
+
+
+ This proc is called at the start of the level loop of DivideOccupations() and will cause head jobs to be checked before any other jobs of the same level
DivideOccupations()
+
+
+
+
+
+ Proc DivideOccupations
+fills var "assigned_role" for all ready players.
+This proc must not have any side effect besides of modifying "assigned_role".
FillHeadPosition()
+
+
+
+
+
+ This proc is called before the level loop of DivideOccupations() and will try to select a head, ignoring ALL non-head preferences for every level until it locates a head or runs out of levels to check
+
+
+
diff --git a/datum/controller/subsystem/late_mapping.html b/datum/controller/subsystem/late_mapping.html
new file mode 100644
index 0000000000000..860ae14b0a46c
--- /dev/null
+++ b/datum/controller/subsystem/late_mapping.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/late_mapping - Space Station 13
+
+
+
+
+
+
+
+ Var Details bridge_spawners
+ – /list/obj/effect/spawner/bridge
+
+
+
+
+ List of all bridge spawners to process
maze_generators
+ – /list/obj/effect/mazegen/generator
+
+
+
+
+ List of all maze generators to process
+
+
+
diff --git a/datum/controller/subsystem/machines.html b/datum/controller/subsystem/machines.html
new file mode 100644
index 0000000000000..8dbc798f04c96
--- /dev/null
+++ b/datum/controller/subsystem/machines.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/machines - Space Station 13
+
+
+
+
+
+
+Vars
+ powernets All regional powernets (/datum/regional_powernet) in the world
+ Var Details powernets
+
+
+
+
+
+ All regional powernets (/datum/regional_powernet) in the world
+
+
+
diff --git a/datum/controller/subsystem/mapping.html b/datum/controller/subsystem/mapping.html
new file mode 100644
index 0000000000000..84baa6cad8789
--- /dev/null
+++ b/datum/controller/subsystem/mapping.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/mapping - Space Station 13
+
+
+
+
+
+
+
+ Var Details cave_theme
+
+
+
+
+
+ What primary cave theme we have picked for cave generation today.
environments
+
+
+
+
+
+ A mapping of environment names to MILLA environment IDs.
existing_station_areas
+
+
+
+
+
+ List of areas that exist on the station this shift
ghostteleportlocs
+
+
+
+
+
+ List of all areas that can be accessed via IC and OOC means
+ What do we have as the lavaland theme today?
map_datum
+
+
+
+
+
+ What map datum are we using
next_map
+
+
+
+
+
+ What map will be used next round
teleportlocs
+
+
+
+
+
+ List of all areas that can be accessed via IC means
+
+
+
diff --git a/datum/controller/subsystem/metrics.html b/datum/controller/subsystem/metrics.html
new file mode 100644
index 0000000000000..2ebb556f12533
--- /dev/null
+++ b/datum/controller/subsystem/metrics.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/metrics - Space Station 13
+
+
+
+
+
+
+Vars
+ world_init_time The real time of day the server started. Used to calculate time drift
+ Var Details world_init_time
+
+
+
+
+
+ The real time of day the server started. Used to calculate time drift
+
+
+
diff --git a/datum/controller/subsystem/mobs.html b/datum/controller/subsystem/mobs.html
new file mode 100644
index 0000000000000..685267bb1da09
--- /dev/null
+++ b/datum/controller/subsystem/mobs.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/mobs - Space Station 13
+
+
+
+
+
+
+Vars
+ xenobiology_mobs The amount of Xenobiology mobs (and their offspring) that exist in the world. Used for mob capping. Excludes Slimes
+ Var Details xenobiology_mobs
+
+
+
+
+
+ The amount of Xenobiology mobs (and their offspring) that exist in the world. Used for mob capping. Excludes Slimes
+
+
+
diff --git a/datum/controller/subsystem/persistent_data.html b/datum/controller/subsystem/persistent_data.html
new file mode 100644
index 0000000000000..04a39e700ce07
--- /dev/null
+++ b/datum/controller/subsystem/persistent_data.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/persistent_data - Space Station 13
+
+
+
+
+
+
+Vars
+ data_saved Set to true after a the end of the round to prevent griefing being saved
+ registered_atoms List of atoms registered into the subsystem for persistent data storage. Can be anything at all Procs
+ register Proc to register an atom with SSpersistent_data
+ Var Details data_saved
+
+
+
+
+
+ Set to true after a the end of the round to prevent griefing being saved
registered_atoms
+
+
+
+
+
+ List of atoms registered into the subsystem for persistent data storage. Can be anything at all
Proc Details register
+
+ Proc to register an atom with SSpersistent_data
+This will add any provided atom to the list of registered atoms, and add it to the Initialization queue
+If the system has already initialized, it calls persistent_load() at that moment
+Arguments:
+
+
+
+
diff --git a/datum/controller/subsystem/ping.html b/datum/controller/subsystem/ping.html
new file mode 100644
index 0000000000000..e848a32741431
--- /dev/null
+++ b/datum/controller/subsystem/ping.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/ping - Space Station 13
+
+
+
+
+
+
+Vars
+ current_run List used each time SS fires to track which clients have been processed so far
+ Var Details current_run
+
+
+
+
+
+ List used each time SS fires to track which clients have been processed so far
+
+
+
diff --git a/datum/controller/subsystem/processing/dcs.html b/datum/controller/subsystem/processing/dcs.html
new file mode 100644
index 0000000000000..11d9bf932f8ab
--- /dev/null
+++ b/datum/controller/subsystem/processing/dcs.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/processing/dcs - Space Station 13
+
+
+
+
+
+
+Procs
+ GetIdFromArguments Generates an id for bespoke elements when given the argument list
+Generating the id here is a bit complex because we need to support named arguments
+Named arguments can appear in any order and we need them to appear after ordered arguments
+We assume that no one will pass in a named argument with a value of null
Proc Details GetIdFromArguments(/list/arguments)
+
+
+
+
+
+ Generates an id for bespoke elements when given the argument list
+Generating the id here is a bit complex because we need to support named arguments
+Named arguments can appear in any order and we need them to appear after ordered arguments
+We assume that no one will pass in a named argument with a value of null
+
+
+
diff --git a/datum/controller/subsystem/processing/instruments.html b/datum/controller/subsystem/processing/instruments.html
new file mode 100644
index 0000000000000..16d5c2c31d586
--- /dev/null
+++ b/datum/controller/subsystem/processing/instruments.html
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/processing/instruments - Space Station 13
+
+
+
+
+
+
+
+ Var Details current_instrument_channels
+
+
+
+
+
+ Current number of channels allocated for instruments
instrument_data
+
+
+
+
+
+ List of all instrument data, associative id = datum
max_instrument_channels
+
+
+
+
+
+ Maximum instrument channels total instruments are allowed to use. This is so you don't have instruments deadlocking all sound channels.
musician_hearcheck_mindelay
+
+
+
+
+
+ Deciseconds between hearchecks. Too high and instruments seem to lag when people are moving around in terms of who can hear it. Too low and the server lags from this.
musician_maxlinechars
+
+
+
+
+
+ Max characters per line in songs
musician_maxlines
+
+
+
+
+
+ Max lines in songs
songs
+
+
+
+
+
+ List of all song datums.
synthesizer_instrument_ids
+
+
+
+
+
+ Single cached list for synthesizer instrument ids, so you don't have to have a new list with every synthesizer.
Proc Details get_instrument(id_or_path)
+
+
+
+
+
+ Returns the instrument datum at the given ID or path
+Arguments:
+
+id_or_path - The ID or path of the instrument
+ initialize_instrument_data()
+
+
+
+
+
+ Initializes all instrument datums
on_song_del
+
+ Called when a datum/song is deleted
+Arguments:
+
+S - The deleted datum/song
+ on_song_new
+
+ Called when a datum/song is created
+Arguments:
+
+S - The created datum/song
+ reserve_instrument_channel
+
+ Reserves a sound channel for a given instrument datum
+Arguments:
+
+I - The instrument datum
+
+
+
+
diff --git a/datum/controller/subsystem/processing/projectiles.html b/datum/controller/subsystem/processing/projectiles.html
new file mode 100644
index 0000000000000..9c875423c32ab
--- /dev/null
+++ b/datum/controller/subsystem/processing/projectiles.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/processing/projectiles - Space Station 13
+
+
+
+
+
+
+
+ Var Details global_iterations_per_move
+
+
+
+
+
+ Maximum iterations a move can perform.
global_max_tick_moves
+
+
+
+
+
+ Maximum moves a projectile can make per tick.
global_pixel_speed
+
+
+
+
+
+ How many pixels one iteration can move a projectile.
+
+
+
diff --git a/datum/controller/subsystem/processing/radiation.html b/datum/controller/subsystem/processing/radiation.html
new file mode 100644
index 0000000000000..81af8a4b0597c
--- /dev/null
+++ b/datum/controller/subsystem/processing/radiation.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/processing/radiation - Space Station 13
+
+
+
+
+
+
+
+ Var Details all_radiations
+
+
+
+
+
+ Lazy list of all radioactive components
+
+
+
diff --git a/datum/controller/subsystem/processing/station.html b/datum/controller/subsystem/processing/station.html
new file mode 100644
index 0000000000000..f7ab0b90c67c4
--- /dev/null
+++ b/datum/controller/subsystem/processing/station.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/processing/station - Space Station 13
+
+
+
+
+
+
+Vars
+ selectable_traits_by_types Assoc list of trait type || assoc list of traits with weighted value. Used for picking traits from a specific category.
+ station_traits A list of currently active station traits Procs
+ SetupTraits Rolls for the amount of traits and adds them to the traits list
+ pick_traits Picks traits of a specific category (e.g. bad or good) and a specified amount, then initializes them and adds them to the list of traits.
+ setup_trait Creates a given trait of a specific type, while also removing any blacklisted ones from the future pool.
+ Var Details selectable_traits_by_types
+
+
+
+
+
+ Assoc list of trait type || assoc list of traits with weighted value. Used for picking traits from a specific category.
station_traits
+
+
+
+
+
+ A list of currently active station traits
Proc Details SetupTraits()
+
+
+
+
+
+ Rolls for the amount of traits and adds them to the traits list
pick_traits(trait_sign, amount)
+
+
+
+
+
+ Picks traits of a specific category (e.g. bad or good) and a specified amount, then initializes them and adds them to the list of traits.
setup_trait
+
+ Creates a given trait of a specific type, while also removing any blacklisted ones from the future pool.
+
+
+
diff --git a/datum/controller/subsystem/profiler.html b/datum/controller/subsystem/profiler.html
new file mode 100644
index 0000000000000..78c7c40da45df
--- /dev/null
+++ b/datum/controller/subsystem/profiler.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/profiler - Space Station 13
+
+
+
+
+
+
+Vars
+ mfetch_cost Time it took to fetch map profile data (ms)
+ mwrite_cost Time it took to write the map file (ms)
+ nfetch_cost Time it took to fetch normal profile data (ms)
+ nwrite_cost Time it took to write the normal file (ms)
+ send_encode_cost Time it took to encode the data for redis (ms)
+ send_ffi_cost Time it took to send the stuff down FFI for redis (ms)
+ Var Details mfetch_cost
+
+
+
+
+
+ Time it took to fetch map profile data (ms)
mwrite_cost
+
+
+
+
+
+ Time it took to write the map file (ms)
nfetch_cost
+
+
+
+
+
+ Time it took to fetch normal profile data (ms)
nwrite_cost
+
+
+
+
+
+ Time it took to write the normal file (ms)
send_encode_cost
+
+
+
+
+
+ Time it took to encode the data for redis (ms)
send_ffi_cost
+
+
+
+
+
+ Time it took to send the stuff down FFI for redis (ms)
+
+
+
diff --git a/datum/controller/subsystem/queue.html b/datum/controller/subsystem/queue.html
new file mode 100644
index 0000000000000..c2873996a70ef
--- /dev/null
+++ b/datum/controller/subsystem/queue.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/queue - Space Station 13
+
+
+
+
+
+
+
+ Var Details last_letin_time
+
+
+
+
+
+ Last world.time we let a ckey in. 3 second delay between each letin to avoid a mass bubble
persist_queue
+
+
+
+
+
+ Whether to persist these settings over multiple rounds
queue_bypass_list
+
+
+
+
+
+ List of ckeys allowed to bypass queue this round
queue_enabled
+
+
+
+
+
+ Whether the queue is enabled or not
queue_threshold
+
+
+
+
+
+ Threshold of players to queue new people
+
+
+
diff --git a/datum/controller/subsystem/redis.html b/datum/controller/subsystem/redis.html
new file mode 100644
index 0000000000000..678030d886847
--- /dev/null
+++ b/datum/controller/subsystem/redis.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/redis - Space Station 13
+
+
+
+
+
+
+Vars
+ connected Are we connected
+ queue Message queue (If messages are sent before the SS has init'd)
+ subbed_channels Amount of subscribed channels on the redis server
+ Var Details connected
+
+
+
+
+
+ Are we connected
queue
+ – /list/datum/redis_message
+
+
+
+
+ Message queue (If messages are sent before the SS has init'd)
subbed_channels
+
+
+
+
+
+ Amount of subscribed channels on the redis server
+
+
+
diff --git a/datum/controller/subsystem/security_level.html b/datum/controller/subsystem/security_level.html
new file mode 100644
index 0000000000000..97c3824ebe358
--- /dev/null
+++ b/datum/controller/subsystem/security_level.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/security_level - Space Station 13
+
+
+
+
+
+
+
+ Var Details available_levels
+
+
+
+
+
+ A list of initialised security level datums
+ Currently set security level
security_level_set_timer_id
+
+
+
+
+
+ Option reference of a timer id of the latest set security level. Only set when security level is changed to one with set_delay
> 0
Proc Details announce_security_level
+
+ Handles announcements of the newly set security level
+Arguments:
+
+selected_level - The new security level that has been set
+ do_set_level
+
+ Actually sets the security level after the announcement
+Sends COMSIG_SECURITY_LEVEL_CHANGED
in the end
+Arguments:
+
+selected_level - The datum of security level selected to be changed to
+ get_colored_current_security_level_name()
+
+
+
+
+
+ Returns security level name formatted with it's color
get_current_level_as_number()
+
+
+
+
+
+ Returns the current security level as a number
+In case the subsystem hasn't finished initializing yet, returns default security level
get_current_level_as_text()
+
+
+
+
+
+ Returns the current security level as text
number_level_to_text(number_level)
+
+
+
+
+
+ Converts a number security level to a text
+Arguments:
+
+level - The number security level to convert
+ pre_set_level
+
+ Do things before the actual security level set, like executing security level specific pre change behavior
+Arguments:
+
+selected_level - The datum of security level selected to be changed to
+ set_level(new_level)
+
+
+
+
+
+ Sets a new security level as our current level
+This is how everything should change the security level
+Arguments:
+
+new_level - The new security level that will become our current level, could be number or name of security level
+ text_level_to_number(text_level)
+
+
+
+
+
+ Converts a text security level to a number
+Arguments:
+
+level - The text security level to convert
+
+
+
+
diff --git a/datum/controller/subsystem/shuttle.html b/datum/controller/subsystem/shuttle.html
new file mode 100644
index 0000000000000..7f7bcacd2d8a3
--- /dev/null
+++ b/datum/controller/subsystem/shuttle.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/shuttle - Space Station 13
+
+
+
+
+
+
+
+ Var Details custom_escape_shuttle_loading
+
+
+
+
+
+ Whether or not a custom shuttle is currently loading at centcomm.
custom_shuttle_ordered
+
+
+
+
+
+ Whether or not a custom shuttle has been ordered.
emergency_locked_in
+
+
+
+
+
+ Have we locked in the emergency shuttle, to prevent people from breaking things / wasting player money?
hostile_environments
+
+
+
+
+
+ Things blocking escape shuttle from leaving.
loading_shuttle_at_preview_template
+
+
+
+
+
+ Whether or not a shuttle is currently being loaded at the template landmark, if it exists.
refuel_delay
+
+
+
+
+
+ Default refuel delay
supply_shuttle_turfs
+
+
+
+
+
+ Supply shuttle turfs to make mail be put down faster
Proc Details replace_shuttle
+
+ Create a new shuttle and replace the emergency shuttle with it.
+if loaded shuttle is passed in, a new one will not be loaded.
+
+
+
diff --git a/datum/controller/subsystem/sounds.html b/datum/controller/subsystem/sounds.html
new file mode 100644
index 0000000000000..a0521a4d221c9
--- /dev/null
+++ b/datum/controller/subsystem/sounds.html
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/sounds - Space Station 13
+
+
+
+
+
+
+
+ Var Details channel_list
+
+
+
+
+
+ List of all channels as numbers
channel_random_low
+
+
+
+
+
+ lower iteration position - Incremented and looped to get "random" sound channels for normal sounds. The channel at this index is returned when asking for a random channel.
channel_reserve_high
+
+
+
+
+
+ higher reserve position - decremented and incremented to reserve sound channels, anything above this is reserved. The channel at this index is the highest unreserved channel.
random_channels_min
+
+
+
+
+
+ Amount of channels to reserve for random usage rather than reservations being allowed to reserve all channels. Also a nice safeguard for when someone screws up.
reserved_channels
+
+
+
+
+
+ Associative list of all reserved channels associated to their position. "[channel_number]" = index as number
using_channels
+
+
+
+
+
+ Assoc list, "[channel]" = either the datum using it or TRUE for an unsafe-reserved (datumless reservation) channel
using_channels_by_datum
+
+
+
+
+
+ Assoc list datum = list(channel1, channel2, ...) for what channels something reserved.
Proc Details available_channels_left()
+
+
+
+
+
+ How many channels we have left
free_channel(number)
+
+
+
+
+
+ Frees a channel and updates the datastructure. Private proc.
free_datum_channels
+
+ Frees all the channels a datum is using
+Arguments:
+free_datumless_channels()
+
+
+
+
+
+ Frees all datumless channels
free_sound_channel(channel)
+
+
+
+
+
+ Removes a channel from using list
+Arguments:
+
+channel - The channel number
+ random_available_channel()
+
+
+
+
+
+ Random available channel, returns number
random_available_channel_text()
+
+
+
+
+
+ Random available channel, returns text
reserve_channel()
+
+
+
+
+
+ Reserves a channel and updates the datastructure. Private proc.
reserve_sound_channel
+
+ Reserves a channel for a datum. Automatic cleanup only when the datum is deleted.
+Returns an integer for channel
+Arguments:
+reserve_sound_channel_datumless()
+
+
+
+
+
+ NO AUTOMATIC CLEANUP - If you use this, you better manually free it later!
+Returns an integer for channel
setup_available_channels()
+
+
+
+
+
+ Sets up all available sound channels
+
+
+
diff --git a/datum/controller/subsystem/statpanels.html b/datum/controller/subsystem/statpanels.html
new file mode 100644
index 0000000000000..ad1986f0a7e4e
--- /dev/null
+++ b/datum/controller/subsystem/statpanels.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/statpanels - Space Station 13
+
+
+
+
+
+
+Vars
+ default_wait How many subsystem fires between most tab updates
+ mc_wait How many subsystem fires between updates of the MC tab
+ num_fires How many full runs this subsystem has completed. used for variable rate refreshes.
+ status_wait How many subsystem fires between updates of the status tab Procs
+ immediate_send_stat_data immediately update the active statpanel tab of the target client
+ refresh_client_obj_view Set the atoms we're meant to display
+ return_object_images Returns all our ready object tab images
+Returns a list in the form list(list(object_name, object_ref, loaded_image), ...)
+ Var Details default_wait
+
+
+
+
+
+ How many subsystem fires between most tab updates
mc_wait
+
+
+
+
+
+ How many subsystem fires between updates of the MC tab
num_fires
+
+
+
+
+
+ How many full runs this subsystem has completed. used for variable rate refreshes.
status_wait
+
+
+
+
+
+ How many subsystem fires between updates of the status tab
Proc Details
+ immediately update the active statpanel tab of the target client
refresh_client_obj_view(/client /refresh, min_index, max_index)
+
+
+
+
+
+ Set the atoms we're meant to display
return_object_images(/client /load_from, min_index, max_index)
+
+
+
+
+
+ Returns all our ready object tab images
+Returns a list in the form list(list(object_name, object_ref, loaded_image), ...)
+
+
+
diff --git a/datum/controller/subsystem/tgui.html b/datum/controller/subsystem/tgui.html
new file mode 100644
index 0000000000000..9935d4b8ead52
--- /dev/null
+++ b/datum/controller/subsystem/tgui.html
@@ -0,0 +1,202 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/tgui - Space Station 13
+
+
+
+
+
+
+
+ Var Details basehtml
+
+
+
+
+
+ The HTML base used for all UIs.
current_run
+
+
+
+
+
+ A list of UIs scheduled to process
open_uis
+
+
+
+
+
+ A list of open UIs
open_uis_by_src
+
+
+
+
+
+ A list of open UIs, grouped by src_object.
Proc Details close_all_uis()
+
+
+
+
+
+ public
+Close all UIs regardless of their attachment to src_object.
+return int The number of UIs closed.
close_uis
+
+ public
+Close all UIs attached to src_object.
+required src_object datum The object/datum which owns the UIs.
+return int The number of UIs closed.
close_user_uis
+
+ public
+Close all UIs belonging to a user.
+required user mob The mob who opened/is using the UI.
+optional src_object datum If provided, only close UIs belonging this src_object.
+return int The number of UIs closed.
force_close_all_windows
+
+ public
+Force closes all tgui windows.
+required user mob
force_close_window(/mob /user, window_id)
+
+
+
+
+
+ public
+Force closes the tgui window by window_id.
+required user mob
+required window_id string
get_open_ui
+
+ public
+Get a open UI given a user and src_object.
+required user mob The mob who opened/is using the UI.
+required src_object datum The object/datum which owns the UI.
+return datum/tgui The found UI.
on_close
+
+ private
+Remove a UI from the list of open UIs.
+required ui datum/tgui The UI to be removed.
+return bool If the UI was removed or not.
on_logout
+
+ private
+Handle client logout, by closing all their UIs.
+required user mob The mob which logged out.
+return int The number of UIs closed.
on_open
+
+ private
+Add a UI to the list of open UIs.
+required ui datum/tgui The UI to be added.
on_transfer
+
+ private
+Handle clients switching mobs, by transferring their UIs.
+required user source The client's original mob.
+required user target The client's new mob.
+return bool If the UIs were transferred.
request_pooled_window
+
+ public
+Requests a usable tgui window from the pool.
+Returns null if pool was exhausted.
+required user mob
+return datum/tgui
try_update_ui
+
+ public
+Try to find an instance of a UI, and push an update to it.
+required user mob The mob who opened/is using the UI.
+required src_object datum The object/datum which owns the UI.
+optional ui datum/tgui The UI to be updated, if it exists.
+optional force_open bool If the UI should be re-opened instead of updated.
+return datum/tgui The found UI.
update_uis(/datum /src_object, full_update)
+
+
+
+
+
+ public
+Update all UIs attached to src_object.
+required src_object datum The object/datum which owns the UIs.
+return int The number of UIs updated.
update_user_uis
+
+ public
+Update all UIs belonging to a user.
+required user mob The mob who opened/is using the UI.
+optional src_object datum If provided, only update UIs belonging this src_object.
+return int The number of UIs updated.
+
+
+
diff --git a/datum/controller/subsystem/throwing.html b/datum/controller/subsystem/throwing.html
new file mode 100644
index 0000000000000..cb5ae46f1df77
--- /dev/null
+++ b/datum/controller/subsystem/throwing.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/throwing - Space Station 13
+
+
+
+
+
+
+
+ Var Details impact_sounds
+
+
+
+
+
+ How many throw impact sounds have happened this tick.
impact_sounds_cap
+
+
+
+
+
+ How many throw impact sounds we allow per tick.
last_impact_sounds
+
+
+
+
+
+ How many sounds there were last tick.
skipped_sounds
+
+
+
+
+
+ How many sounds we've skipped due to hitting the per-tick cap.
+
+
+
diff --git a/datum/controller/subsystem/ticker.html b/datum/controller/subsystem/ticker.html
new file mode 100644
index 0000000000000..dacbec40ca3c9
--- /dev/null
+++ b/datum/controller/subsystem/ticker.html
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/ticker - Space Station 13
+
+
+
+
+
+
+Vars
+ Bible_deity_name Name of the bible deity
+ Bible_icon_state icon_state the chaplain has chosen for his bible
+ Bible_item_state item_state the chaplain has chosen for his bible
+ Bible_name Name of the bible
+ cinematic Used for station explosion cinematic
+ cult_data Cult static info, used for things like sprites. Someone should refactor the sprites out of it someday and just use SEPERATE ICONS DEPNDING ON THE TYPE OF CULT... like a sane person
+ current_state Current status of the game. See code__DEFINES\game.dm
+ delay_end If set to TRUE, the round will not restart on it's own
+ end_state Server end state (Did we end properly or reboot or nuke or what)
+ flagged_antag_rollers List of ckeys who had antag rolling issues flagged
+ force_ending Do we want to force-end as soon as we can
+ force_start Do we want to force-start as soon as we can
+ hide_mode Leave here at FALSE ! setup() will take care of it when needed for Secret mode -walter0o
+ login_music The current pick of lobby music played in the lobby
+ minds List of all minds in the game. Used for objective tracking
+ mode Our current game mode
+ mode_result Gamemode result (For things like cult or nukies which can end multiple ways)
+ next_autotransfer Holder for inital autotransfer vote timer
+ pregame_timeleft This is used for calculations for the statpanel
+ random_players If set to nonzero, ALL players who latejoin or declare-ready join will have random appearances/genders
+ real_reboot_time Time the real reboot kicks in
+ round_end_announced Spam Prevention. Announce round end only once.
+ round_start_time Time the game should start, relative to world.time
+ score Datum used to generate the end of round scoreboard.
+ selected_tip What will be the tip of the round?
+ ticker_going Is the ticker currently processing? If FALSE, roundstart is delayed
+ time_game_started Time that the round started
+ tipped Did we broadcast the tip of the round yet?
+ triai Global holder for triple AI mode Procs
+ event_blackbox This proc is for recording biohazard events, and blackboxing if they lived, died, or ended the round. This currently applies to: Terror spiders, Xenomorphs, and Blob.
+ Var Details Bible_deity_name
+
+
+
+
+
+ Name of the bible deity
Bible_icon_state
+
+
+
+
+
+ icon_state the chaplain has chosen for his bible
Bible_item_state
+
+
+
+
+
+ item_state the chaplain has chosen for his bible
Bible_name
+
+
+
+
+
+ Name of the bible
+ Used for station explosion cinematic
cult_data
+
+
+
+
+
+ Cult static info, used for things like sprites. Someone should refactor the sprites out of it someday and just use SEPERATE ICONS DEPNDING ON THE TYPE OF CULT... like a sane person
current_state
+
+
+
+
+
+ Current status of the game. See code__DEFINES\game.dm
delay_end
+
+
+
+
+
+ If set to TRUE, the round will not restart on it's own
end_state
+
+
+
+
+
+ Server end state (Did we end properly or reboot or nuke or what)
flagged_antag_rollers
+
+
+
+
+
+ List of ckeys who had antag rolling issues flagged
force_ending
+
+
+
+
+
+ Do we want to force-end as soon as we can
force_start
+
+
+
+
+
+ Do we want to force-start as soon as we can
hide_mode
+
+
+
+
+
+ Leave here at FALSE ! setup() will take care of it when needed for Secret mode -walter0o
login_music
+
+
+
+
+
+ The current pick of lobby music played in the lobby
minds
+
+
+
+
+
+ List of all minds in the game. Used for objective tracking
+ Our current game mode
mode_result
+
+
+
+
+
+ Gamemode result (For things like cult or nukies which can end multiple ways)
next_autotransfer
+
+
+
+
+
+ Holder for inital autotransfer vote timer
pregame_timeleft
+
+
+
+
+
+ This is used for calculations for the statpanel
random_players
+
+
+
+
+
+ If set to nonzero, ALL players who latejoin or declare-ready join will have random appearances/genders
real_reboot_time
+
+
+
+
+
+ Time the real reboot kicks in
round_end_announced
+
+
+
+
+
+ Spam Prevention. Announce round end only once.
round_start_time
+
+
+
+
+
+ Time the game should start, relative to world.time
+ Datum used to generate the end of round scoreboard.
selected_tip
+
+
+
+
+
+ What will be the tip of the round?
ticker_going
+
+
+
+
+
+ Is the ticker currently processing? If FALSE, roundstart is delayed
time_game_started
+
+
+
+
+
+ Time that the round started
tipped
+
+
+
+
+
+ Did we broadcast the tip of the round yet?
triai
+
+
+
+
+
+ Global holder for triple AI mode
Proc Details event_blackbox(outcome)
+
+
+
+
+
+ This proc is for recording biohazard events, and blackboxing if they lived, died, or ended the round. This currently applies to: Terror spiders, Xenomorphs, and Blob.
+
+
+
diff --git a/datum/controller/subsystem/tickets.html b/datum/controller/subsystem/tickets.html
new file mode 100644
index 0000000000000..138acc8f6dc7d
--- /dev/null
+++ b/datum/controller/subsystem/tickets.html
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/tickets - Space Station 13
+
+
+
+
+
+
+Vars
+ anchor_link_extra Text that will be added to the anchor link
+ db_save_id DB ID for these tickets to be logged with
+ open_detail_uis Who has what tickets open? Maps client -> open ticket number.
+ other_ticket_name The name of the other ticket type to convert to
+ other_ticket_permission Which permission to look for when seeing if there is staff available for the other ticket type Procs
+ makeUrlMessage Will add the URLs usable by staff to the message and return it
+Arguments:
+C - The client who send the message
+msg - The raw message
+ticketNum - Which ticket number the ticket has
+ message_staff Sends a message to the designated staff
+Arguments:
+msg - The message being send
+alt - If an alternative prefix should be used or not. Defaults to TICKET_STAFF_MESSAGE_PREFIX
+important - If the message is important. If TRUE it will ignore the CHAT_NO_TICKETLOGS preferences,
+send a sound and flash the window. Defaults to FALSE
+ newHelpRequest Will either make a new ticket using the given text or will add the text to an existing ticket.
+Staff will get a message
+Arguments:
+C - The client who requests help
+text - The text the client send
+ Var Details
+ Text that will be added to the anchor link
db_save_id
+
+
+
+
+
+ DB ID for these tickets to be logged with
open_detail_uis
+
+
+
+
+
+ Who has what tickets open? Maps client -> open ticket number.
other_ticket_name
+
+
+
+
+
+ The name of the other ticket type to convert to
other_ticket_permission
+
+
+
+
+
+ Which permission to look for when seeing if there is staff available for the other ticket type
Proc Details makeUrlMessage(target, msg, ticketNum, one_line)
+
+
+
+
+
+ Will add the URLs usable by staff to the message and return it
+Arguments:
+C - The client who send the message
+msg - The raw message
+ticketNum - Which ticket number the ticket has
message_staff(msg, prefix_type, important)
+
+
+
+
+
+ Sends a message to the designated staff
+Arguments:
+msg - The message being send
+alt - If an alternative prefix should be used or not. Defaults to TICKET_STAFF_MESSAGE_PREFIX
+important - If the message is important. If TRUE it will ignore the CHAT_NO_TICKETLOGS preferences,
+send a sound and flash the window. Defaults to FALSE
newHelpRequest
+
+ Will either make a new ticket using the given text or will add the text to an existing ticket.
+Staff will get a message
+Arguments:
+C - The client who requests help
+text - The text the client send
+
+
+
diff --git a/datum/controller/subsystem/timer.html b/datum/controller/subsystem/timer.html
new file mode 100644
index 0000000000000..cbfd57f9f03c0
--- /dev/null
+++ b/datum/controller/subsystem/timer.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/timer - Space Station 13
+
+
+
+
+
+
+Vars
+ bucket_auto_reset Boolean operator controlling if the timer SS will automatically reset buckets if it fails to invoke callbacks for an extended period of time
+ bucket_count How many timers are in the buckets
+ bucket_list List of buckets, each bucket holds every timer that has to run that byond tick
+ bucket_reset_count How many times bucket was reset
+ bucket_resolution world.tick_lag the bucket was designed for
+ clienttime_timers Special timers that run in real-time, not BYOND time; these are more expensive to run and maintain
+ hashes A hashlist dictionary used for storing unique timers
+ head_offset world.time of the first entry in the bucket list, effectively the 'start time' of the current buckets
+ last_invoke_tick Contains the last time that a timer's callback was invoked, or the last tick the SS fired if no timers are being processed
+ last_invoke_warning Contains the last time that a warning was issued for not invoking callbacks
+ next_clienttime_timer_index Keeps track of the next index to work on for client timers
+ practical_offset Index of the wrap around pivot for buckets. buckets before this are later running buckets wrapped around from the end of the bucket list.
+ second_queue Queue used for storing timers that do not fit into the current buckets
+ timer_id_dict List of all active timers associated to their timer ID (for easy lookup) Procs
+ get_timer_debug_string Generates a string with details about the timed event for debugging purposes
+ reset_buckets Destroys the existing buckets and creates new buckets from the existing timed events
+ Var Details bucket_auto_reset
+
+
+
+
+
+ Boolean operator controlling if the timer SS will automatically reset buckets if it fails to invoke callbacks for an extended period of time
bucket_count
+
+
+
+
+
+ How many timers are in the buckets
bucket_list
+
+
+
+
+
+ List of buckets, each bucket holds every timer that has to run that byond tick
bucket_reset_count
+
+
+
+
+
+ How many times bucket was reset
bucket_resolution
+
+
+
+
+
+ world.tick_lag the bucket was designed for
clienttime_timers
+
+
+
+
+
+ Special timers that run in real-time, not BYOND time; these are more expensive to run and maintain
hashes
+
+
+
+
+
+ A hashlist dictionary used for storing unique timers
head_offset
+
+
+
+
+
+ world.time of the first entry in the bucket list, effectively the 'start time' of the current buckets
last_invoke_tick
+
+
+
+
+
+ Contains the last time that a timer's callback was invoked, or the last tick the SS fired if no timers are being processed
last_invoke_warning
+
+
+
+
+
+ Contains the last time that a warning was issued for not invoking callbacks
next_clienttime_timer_index
+
+
+
+
+
+ Keeps track of the next index to work on for client timers
practical_offset
+
+
+
+
+
+ Index of the wrap around pivot for buckets. buckets before this are later running buckets wrapped around from the end of the bucket list.
second_queue
+
+
+
+
+
+ Queue used for storing timers that do not fit into the current buckets
timer_id_dict
+
+
+
+
+
+ List of all active timers associated to their timer ID (for easy lookup)
Proc Details get_timer_debug_string
+
+ Generates a string with details about the timed event for debugging purposes
reset_buckets()
+
+
+
+
+
+ Destroys the existing buckets and creates new buckets from the existing timed events
+
+
+
diff --git a/datum/controller/subsystem/verb_manager.html b/datum/controller/subsystem/verb_manager.html
new file mode 100644
index 0000000000000..edb59fa2d82b0
--- /dev/null
+++ b/datum/controller/subsystem/verb_manager.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/verb_manager - Space Station 13
+
+
+
+
+
+
+Vars
+ FOR_ADMINS_IF_VERBS_FUCKED_immediately_execute_all_verbs if this is true all verbs immediately execute and dont queue. in case the mc is fucked or something
+ always_queue always queue if possible. overides can_queue_admin_verbs but not FOR_ADMINS_IF_VERBS_FUCKED_immediately_execute_all_verbs
+ can_queue_admin_verbs if TRUE we treat usr's with holders just like usr's without holders. otherwise they always execute immediately
+ message_admins_on_queue if TRUE this will... message admins every time a verb is queued to this subsystem for the next tick with stats.
+for obvious reasons dont make this be TRUE on the code level this is for admins to turn on
+ verb_queue list of callbacks to procs called from verbs or verblike procs that were executed when the server was overloaded and had to delay to the next tick.
+this list is ran through every tick, and the subsystem does not yield until this queue is finished.
+ verbs_executed_per_second running average of how many verb callbacks are executed every second. used for the stat entry Procs
+ can_queue_verb subsystem-specific check for whether a callback can be queued.
+intended so that subsystem subtypes can verify whether
+ queue_verb queue a callback for the given proc, so that it is invoked in the next tick.
+intended to only work with verbs or verblike procs called directly from client input, use as part of TRY_QUEUE_VERB()
+ run_verb_queue runs through all of this subsystems queue of verb callbacks.
+goes through the entire verb queue without yielding.
+used so you can flush the queue outside of fire() without interfering with anything else subtype subsystems might do in fire().
+ Var Details
+ if this is true all verbs immediately execute and dont queue. in case the mc is fucked or something
always_queue
+
+
+
+
+
+ always queue if possible. overides can_queue_admin_verbs but not FOR_ADMINS_IF_VERBS_FUCKED_immediately_execute_all_verbs
can_queue_admin_verbs
+
+
+
+
+
+ if TRUE we treat usr's with holders just like usr's without holders. otherwise they always execute immediately
message_admins_on_queue
+
+
+
+
+
+ if TRUE this will... message admins every time a verb is queued to this subsystem for the next tick with stats.
+for obvious reasons dont make this be TRUE on the code level this is for admins to turn on
verb_queue
+ – /list/datum/callback/verb_callback
+
+
+
+
+ list of callbacks to procs called from verbs or verblike procs that were executed when the server was overloaded and had to delay to the next tick.
+this list is ran through every tick, and the subsystem does not yield until this queue is finished.
verbs_executed_per_second
+
+
+
+
+
+ running average of how many verb callbacks are executed every second. used for the stat entry
Proc Details
+ subsystem-specific check for whether a callback can be queued.
+intended so that subsystem subtypes can verify whether
+subtypes may include additional arguments here if they need them! you just need to include them properly
+in TRY_QUEUE_VERB() and co.
+ queue a callback for the given proc, so that it is invoked in the next tick.
+intended to only work with verbs or verblike procs called directly from client input, use as part of TRY_QUEUE_VERB()
+returns TRUE if the queuing was successful, FALSE otherwise.
run_verb_queue()
+
+
+
+
+
+ runs through all of this subsystems queue of verb callbacks.
+goes through the entire verb queue without yielding.
+used so you can flush the queue outside of fire() without interfering with anything else subtype subsystems might do in fire().
+
+
+
diff --git a/datum/controller/subsystem/vote.html b/datum/controller/subsystem/vote.html
new file mode 100644
index 0000000000000..cc272d661ebce
--- /dev/null
+++ b/datum/controller/subsystem/vote.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/vote - Space Station 13
+
+
+
+
+
+
+
+ Var Details active_vote
+
+
+
+
+
+ Active vote, if any
+
+
+
diff --git a/datum/crafting_recipe.html b/datum/crafting_recipe.html
new file mode 100644
index 0000000000000..175b1ce9ce555
--- /dev/null
+++ b/datum/crafting_recipe.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /datum/crafting_recipe - Space Station 13
+
+
+
+
+
+
+Vars
+ alert_admins_on_craft Will this recipe send an admin message when it's completed.
+ always_available Is this recipe always available, or does it need to be learned first.
+ blacklist Type paths of items explicitly not allowed as an ingredient.
+ category What category it's shown under in the crafting UI.
+ name In-game display name.
+ parts Type paths of items that will be placed inside the result.
+ pathtools Type paths of items needed but not consumed.
+ reqs Type paths of items consumed associated with how many are needed.
+ result Type paths of item(s) resulting from this craft.
+ subcategory What subcategory it's shown under in the crafting UI. (e.g 'Ammo' under 'Weapons')
+ time Crafting time in deciseconds.
+ tools Tool behaviours of items needed but not consumed.
+ Var Details alert_admins_on_craft
+
+
+
+
+
+ Will this recipe send an admin message when it's completed.
always_available
+
+
+
+
+
+ Is this recipe always available, or does it need to be learned first.
blacklist
+
+
+
+
+
+ Type paths of items explicitly not allowed as an ingredient.
category
+
+
+
+
+
+ What category it's shown under in the crafting UI.
name
+
+
+
+
+
+ In-game display name.
parts
+
+
+
+
+
+ Type paths of items that will be placed inside the result.
+ Type paths of items needed but not consumed.
reqs
+
+
+
+
+
+ Type paths of items consumed associated with how many are needed.
result
+
+
+
+
+
+ Type paths of item(s) resulting from this craft.
subcategory
+
+
+
+
+
+ What subcategory it's shown under in the crafting UI. (e.g 'Ammo' under 'Weapons')
time
+
+
+
+
+
+ Crafting time in deciseconds.
+ Tool behaviours of items needed but not consumed.
+
+
+
diff --git a/datum/custom_user_item.html b/datum/custom_user_item.html
new file mode 100644
index 0000000000000..b2badc833218c
--- /dev/null
+++ b/datum/custom_user_item.html
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ /datum/custom_user_item - Space Station 13
+
+
+
+
+
+
+Holder for CUIs
+This datum is a holder that is essentially a "model" of the customuseritems
+database table, and is used for giving people their CUIs on spawn.
+It is instanced as part of the client data loading framework on the client.
+ Var Details all_characters_allowed
+
+
+
+
+
+ Can this be used on all characters?
all_jobs_allowed
+
+
+
+
+
+ Are all jobs allowed?
allowed_jobs
+
+
+
+
+
+ List of allowed jobs
characer_name
+
+
+
+
+
+ Name of the character that can have this item.
item_desc_override
+
+
+
+
+
+ Custom item description override
item_name_override
+
+
+
+
+
+ Custom item name override
object_typepath
+
+
+
+
+
+ Custom item typepath
raw_job_mask
+
+
+
+
+
+ Raw job mask
Proc Details parse_info(owning_ckey)
+
+
+
+
+
+ CUI Info Parser
+Parses all the raw info into usable stuff, and also does validity checks
+Returns TRUE if its a valid item, and FALSE if not
+Arguments:
+
+owning_ckey - Player who owns this item. Used for logging purposes.
+
+
+
+
diff --git a/datum/data/pda/app/nanobank.html b/datum/data/pda/app/nanobank.html
new file mode 100644
index 0000000000000..da5af8167dc27
--- /dev/null
+++ b/datum/data/pda/app/nanobank.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/data/pda/app/nanobank - Space Station 13
+
+
+
+
+
+
+Vars
+ account_database money account database this PDA is connected to
+ last_transaction world time of last transaction, used for cooldowns (to protect against transfer spams or accidental double clicks)
+ user_account the money account tethered to this program Procs
+ input_account_pin attempted new security level is NOT an available option, likely user spoofing values
+ Var Details
+ money account database this PDA is connected to
last_transaction
+
+
+
+
+
+ world time of last transaction, used for cooldowns (to protect against transfer spams or accidental double clicks)
+ the money account tethered to this program
Proc Details
+ attempted new security level is NOT an available option, likely user spoofing values
+
+
+
diff --git a/datum/data/vending_product.html b/datum/data/vending_product.html
new file mode 100644
index 0000000000000..80f74314345fa
--- /dev/null
+++ b/datum/data/vending_product.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/data/vending_product - Space Station 13
+
+
+
+
+
+
+Datum used to hold information about a product in a vending machine
Vars
+ amount How many of this product we currently have
+ max_amount How many we can store at maximum
+ price Price to buy one
+ product_path Typepath of the product that is created when this record "sells"
+ Var Details amount
+
+
+
+
+
+ How many of this product we currently have
max_amount
+
+
+
+
+
+ How many we can store at maximum
price
+
+
+
+
+
+ Price to buy one
product_path
+
+
+
+
+
+ Typepath of the product that is created when this record "sells"
+
+
+
diff --git a/datum/db_query.html b/datum/db_query.html
new file mode 100644
index 0000000000000..fbe99c3914432
--- /dev/null
+++ b/datum/db_query.html
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+ /datum/db_query - Space Station 13
+
+
+
+
+
+
+Datum based handler for all database queries
+Holds information regarding inputs, status, and outputs
+ Var Details affected
+
+
+
+
+
+ How many rows were affected by the query
arguments
+
+
+
+
+
+ An associative list of parameters to be substituted into the statement
connection
+
+
+
+
+
+ The connection being used with this query
in_progress
+
+
+
+
+
+ Is the query currently in progress
item
+
+
+
+
+
+ List of data values populated by NextRow()
last_activity
+
+
+
+
+
+ What was our last activity
last_activity_time
+
+
+
+
+
+ When was our last activity
last_error
+
+
+
+
+
+ What was our last error, if any
last_insert_id
+
+
+
+
+
+ ID of the last inserted row
next_row_to_take
+
+
+
+
+
+ Counter of the next row to take
rows
+
+
+
+
+
+ List of all rows returned
sql
+
+
+
+
+
+ The SQL statement being executed with :parameter placeholders
Proc Details Activity(activity)
+
+
+
+
+
+ Activity Update Handler
+Sets the last activity text to the argument input, as well as updating the activity time
+Arguments:
+
+activity - Last activity text
+ Execute(async, log_error)
+
+
+
+
+
+ Main Execution Handler
+Invoked by [warn_execute()]
+This handles query error logging, as well as invoking the actual runner
+Arguments:
+
+async - Are we running this query asynchronously
+log_error - Do we want to log errors this creates? Disable this if you are running sensitive queries where you dont want errors logged in plain text (EG: Auth token stuff)
+ NextRow()
+
+
+
+
+
+ Proc to get the next row in a DB query
+Cycles item
to the next row in the DB query, if multiple were fetched
run_query(async)
+
+
+
+
+
+ Actual Query Runner
+This does the main query with the database and the rust calls themselves
+Arguments:
+
+async - Are we running this query asynchronously
+ warn_execute(async, log_error)
+
+
+
+
+
+ Wrapped for warning on execution
+You should use this proc when running the SQL statement. It will auto inform the user and the online admins if a query fails
+Arguments:
+
+async - Are we running this query asynchronously
+log_error - Do we want to log errors this creates? Disable this if you are running sensitive queries where you dont want errors logged in plain text (EG: Auth token stuff)
+
+
+
+
diff --git a/datum/department_member.html b/datum/department_member.html
new file mode 100644
index 0000000000000..c5f1aadff34e6
--- /dev/null
+++ b/datum/department_member.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/department_member - Space Station 13
+
+
+
+
+
+
+Vars
+ can_approve_crates Can this department member approve crates for the department?
+ member_account This department members money account
+ name Name of the department member
+ role Occupation of the department member
+ Var Details can_approve_crates
+
+
+
+
+
+ Can this department member approve crates for the department?
+ This department members money account
name
+
+
+
+
+
+ Name of the department member
role
+
+
+
+
+
+ Occupation of the department member
+
+
+
diff --git a/datum/design.html b/datum/design.html
new file mode 100644
index 0000000000000..a27e9243f2a2f
--- /dev/null
+++ b/datum/design.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ /datum/design - Space Station 13
+
+
+
+
+
+
+ Design Datums
+
+All the data for building stuff.
+Datum for object designs, used in construction
Vars
+ requires_whitelist Determines whether or not we get to get a design blueprint from a disk
+ Var Details requires_whitelist
+
+
+
+
+
+ Determines whether or not we get to get a design blueprint from a disk
+
+
+
diff --git a/datum/discord_embed.html b/datum/discord_embed.html
new file mode 100644
index 0000000000000..77e78e557c16e
--- /dev/null
+++ b/datum/discord_embed.html
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+ /datum/discord_embed - Space Station 13
+
+
+
+
+
+
+Holder datum for discord embeds
+Used in /datum/discord_webhook_payload and serves as a code-first means to add an embed.
+See https://discord.com/developers/docs/resources/channel#embed-object
+ Var Details embed_colour
+
+
+
+
+
+ Colour of the strip on the side of the embed. Must be in hexadecimal WITHOUT leading hash
embed_content
+
+
+
+
+
+ Content of the embed
embed_timestamp
+
+
+
+
+
+ Timestamp the embed was sent at. Must be in 8601 format. Will be autoset on /New()
embed_title
+
+
+
+
+
+ Title of the embed
fields
+ – /list/datum/discord_embed_field
+
+
+
+
+ List of all fields in the embed
Proc Details serialize2list()
+
+
+
+
+
+ Embed Serializer
+Converts the DM embed object into JSON for a POST request.
+Not called serialize() because thats a proc at the /datum level already
+
+
+
diff --git a/datum/discord_embed_field.html b/datum/discord_embed_field.html
new file mode 100644
index 0000000000000..daa6beb996c02
--- /dev/null
+++ b/datum/discord_embed_field.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ /datum/discord_embed_field - Space Station 13
+
+
+
+
+
+
+Holder datum for discord embed fields
+Used in /datum/discord_embed and serves as a code-first means to add fields to an embed
+See https://discord.com/developers/docs/resources/channel#embed-object-embed-field-structure
+ Var Details field_content
+
+
+
+
+
+ Content of the field
field_name
+
+
+
+
+
+ Name of the field
inline
+
+
+
+
+
+ Inline flag
+
+
+
diff --git a/datum/discord_manager.html b/datum/discord_manager.html
new file mode 100644
index 0000000000000..e3bfef2ddc51a
--- /dev/null
+++ b/datum/discord_manager.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/discord_manager - Space Station 13
+
+
+
+
+
+
+Vars
+ last_administration_ping Last time the administrator ping was dropped. This ensures administrators cannot be mass pinged if a large chunk of ahelps go off at once (IE: tesloose)
+ last_mentor_ping Last time the mentor ping was dropped. This ensures mentors cannot be mass pinged if a large chunk of mhelps go off at once.
+ Var Details last_administration_ping
+
+
+
+
+
+ Last time the administrator ping was dropped. This ensures administrators cannot be mass pinged if a large chunk of ahelps go off at once (IE: tesloose)
last_mentor_ping
+
+
+
+
+
+ Last time the mentor ping was dropped. This ensures mentors cannot be mass pinged if a large chunk of mhelps go off at once.
+
+
+
diff --git a/datum/discord_webhook_payload.html b/datum/discord_webhook_payload.html
new file mode 100644
index 0000000000000..e232eff1e4637
--- /dev/null
+++ b/datum/discord_webhook_payload.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ /datum/discord_webhook_payload - Space Station 13
+
+
+
+
+
+
+Holder datum for discord webhook POST send data
+Holds all information that a webhook would need,
+as well as a method to serialize the entire thing into JSON.
+See https://discord.com/developers/docs/resources/webhook#execute-webhook-jsonform-params
+ Var Details embeds
+ – /list/datum/discord_embed
+
+
+
+
+ List of all embed objects in the message
webhook_content
+
+
+
+
+
+ Content of the webhook message
webhook_name
+
+
+
+
+
+ Name the webhook user should post as
Proc Details serialize2json()
+
+
+
+
+
+ Webhook Serializer
+Converts the DM webhook object into JSON for a POST request.
+Not called serialize() because thats a proc at the /datum level already
+
+
+
diff --git a/datum/disease.html b/datum/disease.html
new file mode 100644
index 0000000000000..a2eb437a4c5a6
--- /dev/null
+++ b/datum/disease.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/disease - Space Station 13
+
+
+
+
+
+
+Vars
+ allow_dead Allow the virus to infect and process while the affected_mob is dead
+ discovered If TRUE, this virus will show up on medical HUDs. Automatically set when it reaches mid-stage.
+ discovery_threshold The fraction of stages the virus must at least be at to show up on medical HUDs. Rounded up.
+ medical_name Used for identification of viruses in the Medical Records Virus Database
+ Var Details allow_dead
+
+
+
+
+
+ Allow the virus to infect and process while the affected_mob is dead
discovered
+
+
+
+
+
+ If TRUE, this virus will show up on medical HUDs. Automatically set when it reaches mid-stage.
discovery_threshold
+
+
+
+
+
+ The fraction of stages the virus must at least be at to show up on medical HUDs. Rounded up.
medical_name
+
+
+
+
+
+ Used for identification of viruses in the Medical Records Virus Database
+
+
+
diff --git a/datum/disease/wizarditis.html b/datum/disease/wizarditis.html
new file mode 100644
index 0000000000000..feb8a9432b69d
--- /dev/null
+++ b/datum/disease/wizarditis.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/disease/wizarditis - Space Station 13
+
+
+
+
+
+
+Vars
+ magic_fashion A mapping of num2text(SLOT_HUD_XYZ)
-> item path
+ Var Details magic_fashion
+
+
+
+
+
+ A mapping of num2text(SLOT_HUD_XYZ)
-> item path
+
+
+
diff --git a/datum/disease/zombie.html b/datum/disease/zombie.html
new file mode 100644
index 0000000000000..385cee1a4b924
--- /dev/null
+++ b/datum/disease/zombie.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/disease/zombie - Space Station 13
+
+
+
+
+
+
+Vars
+ cure_stage How far this particular virus is in being cured (0-4)
+ stage_timer Cooldown until the virus can advance to the next stage
+ Var Details cure_stage
+
+
+
+
+
+ How far this particular virus is in being cured (0-4)
stage_timer
+
+
+
+
+
+ Cooldown until the virus can advance to the next stage
+
+
+
diff --git a/datum/dmm_suite.html b/datum/dmm_suite.html
new file mode 100644
index 0000000000000..917261a03511a
--- /dev/null
+++ b/datum/dmm_suite.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ /datum/dmm_suite - Space Station 13
+
+
+
+
+
+
+Procs
+ load_map Construct the model map and control the loading process
+ parse_grid Fill a given tile with its area/turf/objects/mobs
+Variable model is one full map line (e.g /turf/simulated/wall{icon_state = "rock"},/area/mine/dangerous/explored)
+ parse_value Tries to parse the given value_text. Will fallback on the value_text as a string if it fails
Proc Details load_map(dmm_file, x_offset, y_offset, z_offset, shouldCropMap, measureOnly)
+
+
+
+
+
+ Construct the model map and control the loading process
+WORKING :
+
+Makes an associative mapping of model_keys with model
+e.g aa = /turf/simulated/wall{icon_state = "rock"}
+Read the map line by line, parsing the result (using parse_grid)
+
+If measureOnly
is set, then no atoms will be created, and all this will do
+is return the bounds after parsing the file
+If you need to freeze init while you're working, you can use the spacial allocator's
+"add_dirt" and "remove_dirt" which will put initializations on hold until you say
+the word. This is important for loading large maps such as the cyberiad, where
+atmos will attempt to start before it's ready, causing runtimes galore if init is
+allowed to romp unchecked.
parse_grid
+
+ Fill a given tile with its area/turf/objects/mobs
+Variable model is one full map line (e.g /turf/simulated/wall{icon_state = "rock"},/area/mine/dangerous/explored)
+WORKING :
+
+
+Read the model string, member by member (delimiter is ',')
+
+
+Get the path of the atom and store it into a list
+
+
+a) Check if the member has variables (text within '{' and '}')
+
+
+b) Construct an associative list with found variables, if any (the atom index in members is the same as its variables in members_attributes)
+
+
+Instanciates the atom with its variables
+
+ parse_value(value_text)
+
+
+
+
+
+ Tries to parse the given value_text. Will fallback on the value_text as a string if it fails
+
+
+
diff --git a/datum/effect_system.html b/datum/effect_system.html
new file mode 100644
index 0000000000000..f37c6652e81c1
--- /dev/null
+++ b/datum/effect_system.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/effect_system - Space Station 13
+
+
+
+
+
+
+Vars
+ number The number of objects the effect system will spawn
+ Var Details number
+
+
+
+
+
+ The number of objects the effect system will spawn
+
+
+
diff --git a/datum/element.html b/datum/element.html
new file mode 100644
index 0000000000000..9a8d6b892720c
--- /dev/null
+++ b/datum/element.html
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+ /datum/element - Space Station 13
+
+
+
+
+
+
+A holder for simple behaviour that can be attached to many different types
+Only one element of each type is instanced during game init.
+Otherwise acts basically like a lightweight component.
Vars
+ element_flags Option flags for element behaviour
+ id_arg_index The index of the first attach argument to consider for duplicate elements Procs
+ Attach Activates the functionality defined by the element on the given target datum
+ Detach Deactivates the functionality defines by the element on the given datum
+ Var Details element_flags
+
+
+
+
+
+ Option flags for element behaviour
id_arg_index
+
+
+
+
+
+ The index of the first attach argument to consider for duplicate elements
+Is only used when flags contains ELEMENT_BESPOKE
+This is infinity so you must explicitly set this
Proc Details Attach
+
+ Activates the functionality defined by the element on the given target datum
Detach(/datum /source, force)
+
+
+
+
+
+ Deactivates the functionality defines by the element on the given datum
+
+
+
diff --git a/datum/element/bombable_turf.html b/datum/element/bombable_turf.html
new file mode 100644
index 0000000000000..a3ab1d5e69353
--- /dev/null
+++ b/datum/element/bombable_turf.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+ /datum/element/bombable_turf - Space Station 13
+
+
+
+
+
+
+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
Procs
+ detonate If we get blowed up, move to the next turf
+ on_examined Show a little extra on examine
+ turf_changed If this turf becomes something else we either just went off or regardless don't want this any more
Proc Details detonate
+
+ If we get blowed up, move to the next turf
on_examined(/turf /source, /mob /user, /list/examine_list)
+
+
+
+
+
+ Show a little extra on examine
turf_changed
+
+ If this turf becomes something else we either just went off or regardless don't want this any more
+
+
+
diff --git a/datum/element/shatters_when_thrown.html b/datum/element/shatters_when_thrown.html
new file mode 100644
index 0000000000000..235f7d4174bd4
--- /dev/null
+++ b/datum/element/shatters_when_thrown.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/element/shatters_when_thrown - Space Station 13
+
+
+
+
+
+
+When attached to something, will make that thing shatter into shards on throw impact or z level falling
Vars
+ number_of_shards How many shards total are made when the thing we're attached to shatters
+ shard_type What type of item is spawned as a 'shard' once the shattering happens
+ shattering_sound What sound plays when the thing we're attached to shatters Procs
+ on_throw_impact Tells the parent to shatter if we are thrown and impact something
+ shatter Handles the actual shattering part, throwing shards of whatever is defined on the component everywhere
+ Var Details number_of_shards
+
+
+
+
+
+ How many shards total are made when the thing we're attached to shatters
shard_type
+
+
+
+
+
+ What type of item is spawned as a 'shard' once the shattering happens
shattering_sound
+
+
+
+
+
+ What sound plays when the thing we're attached to shatters
Proc Details on_throw_impact
+
+ Tells the parent to shatter if we are thrown and impact something
shatter
+
+ Handles the actual shattering part, throwing shards of whatever is defined on the component everywhere
+
+
+
diff --git a/datum/element/squish.html b/datum/element/squish.html
new file mode 100644
index 0000000000000..1ad6078bcf414
--- /dev/null
+++ b/datum/element/squish.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ /datum/element/squish - Space Station 13
+
+
+
+
+
+
+squish.dm
+It's an element that squishes things. After the duration passes, it reverses the transformation it squished with, taking into account if they are a different orientation than they started (read: rotationally-fluid)
+Normal squishes apply vertically, as if the target is being squished from above, but you can set reverse to TRUE if you want to squish them from the sides, like if they pancake into a wall from the East or West
+
+
+
diff --git a/datum/element/strippable.html b/datum/element/strippable.html
new file mode 100644
index 0000000000000..0ae3cfd421fc4
--- /dev/null
+++ b/datum/element/strippable.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/element/strippable - Space Station 13
+
+
+
+
+
+
+An element for atoms that, when dragged and dropped onto a mob, opens a strip panel.
Vars
+ items An assoc list of keys to /datum/strippable_item
+ strip_menus An existing strip menus
+ Var Details items
+
+
+
+
+
+ An assoc list of keys to /datum/strippable_item
+ An existing strip menus
+
+
+
diff --git a/datum/emote.html b/datum/emote.html
new file mode 100644
index 0000000000000..9d5b503ad8ff4
--- /dev/null
+++ b/datum/emote.html
@@ -0,0 +1,540 @@
+
+
+
+
+
+
+ /datum/emote - Space Station 13
+
+
+
+
+
+
+Most of the text that's not someone talking is based off of this.
Vars
+ age_based Whether or not to adjust the frequency of the emote sound based on age.
+ audio_cooldown How long is the cooldown on the audio of the emote, if it has one?
+ bypass_unintentional_cooldown If true, an emote will completely bypass any cooldown when called unintentionally. Necessary for things like deathgasp.
+ cooldown The cooldown between the uses of the emote.
+ emote_target_type If our target behavior isn't to ignore, what should we look for with targets?
+ emote_type Whether the emote is visible or audible.
+ hands_use_check Checks if the mob can use its hands before performing the emote.
+ key What calls the emote.
+ key_third_person This will also call the emote.
+ max_stat_allowed How unconscious/dead can you be while still being able to use this emote intentionally?
+If this is set to DEFAULT_STAT_ALLOWED, it'll behave as if it isn't set.
+ max_unintentional_stat_allowed Same as above, how unconscious/dead do you need to be to have this emote forced out of you?
+If this is set to DEFAULT_STAT_ALLOWED, it'll behave as if it isn't set.
+ message Message displayed when emote is used.
+ message_AI Message displayed if the user is an AI.
+ message_alien Message displayed if the user is a grown alien.
+ message_larva Message displayed if the user is an alien larva.
+ message_mime Message displayed if the user is a mime.
+ message_monkey Message displayed if the user is a monkey.
+ message_observer Message to display if the user is a spooky observer ghost.
+ message_param Message with %t at the end to allow adding params to the message, like for mobs doing an emote relatively to something else.
+Set this to EMOTE_PARAM_USE_POSTFIX to just use the postfix.
+ message_postfix Message postfix with %t used when we don't want to use message_param for our targeting. Used for things like message_monkey or message_mime.
+Punctuation from the message will be stripped when this is applied, so make sure it's punctuated as well.
+ message_robot Message displayed if the user is a robot.
+ message_simple Message to display if the user is a simple_animal.
+ mob_type_allowed_typecache Types that are allowed to use that emote.
+ mob_type_blacklist_typecache Types that are NOT allowed to use that emote.
+ mob_type_ignore_stat_typecache Types that can use this emote regardless of their state.
+ muzzle_ignore If the emote type is EMOTE_MOUTH but should still bypass a muzzle.
+ muzzled_noises Sounds emitted when the user is muzzled. Generally used like "[user] makes a pick(muzzled_noises) noise!"
+ only_forced_audio If true, this emote will only make a sound effect when called unintentionally.
+ only_unintentional Whether or not the emote can even be called at all if it's not intentional
+ param_desc Description appended to the emote name describing what the target should be, like for help commands.
+ sound Sound to play when emote is called. If you want to adjust this dynamically, see get_sound().
+ species_type_blacklist_typecache Species types which the emote will be exclusively not available to. Should be subclasses of /datum/species
+ species_type_whitelist_typecache Species types which the emote will be exclusively available to. Should be subclasses of /datum/species
+ stat_allowed How conscious do you need to be to use this emote intentionally?
+ target_behavior If we get a target, how do we want to treat it?
+ unintentional_audio_cooldown If the emote is triggered unintentionally, how long would that cooldown be?
+ unintentional_stat_allowed How conscious do you need to be to have this emote forced out of you?
+ vary Whether or not to vary the sound of the emote.
+ volume How loud is the audio emote? Procs
+ act_on_target Perform an action on the target of an emote, if one was found.
+ can_run_emote Check to see if the user is allowed to run the emote.
+ can_vocalize_emotes Return whether a user should be able to vocalize emotes or not, due to a mask or inability to speak.
+If this returns false, any mouth emotes will be replaced with muzzled noises.
+ check_cooldown Check whether or not an emote can be used due to a cooldown.
+This applies to per-emote cooldowns, preventing individual emotes from being used (intentionally) too frequently.
+This also checks audio cooldowns, so that intentional uses of audio emotes across the mob are time-constrained.
+ find_target Find a target for the emote based on the message parameter fragment passed in.
+ get_sound To get the sound that the emote plays, for special sound interactions depending on the mob.
+ get_volume Get the volume of the audio emote to play.
+ play_sound_effect Play the sound effect in an emote.
+If you want to change the way the playsound call works, override this.
+Note! If you want age_based to work, you need to force vary to TRUE.
+ replace_pronoun Replace pronouns in the inputed string with the user's proper pronouns.
+ reset_emote Reset the emote back to its original state.
+Necessary if you've made modifications to the emote itself over the course of its
+execution, as emotes are singletons, and changes would be reflected on every usage of the emote.
+ run_emote Handles the modifications and execution of emotes.
+ runechat_emote Send an emote to runechat for all (listening) users in the vicinity.
+ select_message_type Selects the message type to override the message with.
+ select_param Replaces the %t in the message in message_param by params.
+ should_play_sound Check to see if the user should play a sound when performing the emote.
+ try_run_emote Try to run an emote, checking can_run_emote once before executing the emote itself.
+ Var Details age_based
+
+
+
+
+
+ Whether or not to adjust the frequency of the emote sound based on age.
audio_cooldown
+
+
+
+
+
+ How long is the cooldown on the audio of the emote, if it has one?
bypass_unintentional_cooldown
+
+
+
+
+
+ If true, an emote will completely bypass any cooldown when called unintentionally. Necessary for things like deathgasp.
cooldown
+
+
+
+
+
+ The cooldown between the uses of the emote.
emote_target_type
+
+
+
+
+
+ If our target behavior isn't to ignore, what should we look for with targets?
emote_type
+
+
+
+
+
+ Whether the emote is visible or audible.
hands_use_check
+
+
+
+
+
+ Checks if the mob can use its hands before performing the emote.
key
+
+
+
+
+
+ What calls the emote.
key_third_person
+
+
+
+
+
+ This will also call the emote.
max_stat_allowed
+
+
+
+
+
+ How unconscious/dead can you be while still being able to use this emote intentionally?
+If this is set to DEFAULT_STAT_ALLOWED, it'll behave as if it isn't set.
max_unintentional_stat_allowed
+
+
+
+
+
+ Same as above, how unconscious/dead do you need to be to have this emote forced out of you?
+If this is set to DEFAULT_STAT_ALLOWED, it'll behave as if it isn't set.
message
+
+
+
+
+
+ Message displayed when emote is used.
message_AI
+
+
+
+
+
+ Message displayed if the user is an AI.
message_alien
+
+
+
+
+
+ Message displayed if the user is a grown alien.
message_larva
+
+
+
+
+
+ Message displayed if the user is an alien larva.
message_mime
+
+
+
+
+
+ Message displayed if the user is a mime.
message_monkey
+
+
+
+
+
+ Message displayed if the user is a monkey.
message_observer
+
+
+
+
+
+ Message to display if the user is a spooky observer ghost.
message_param
+
+
+
+
+
+ Message with %t at the end to allow adding params to the message, like for mobs doing an emote relatively to something else.
+Set this to EMOTE_PARAM_USE_POSTFIX to just use the postfix.
message_postfix
+
+
+
+
+
+ Message postfix with %t used when we don't want to use message_param for our targeting. Used for things like message_monkey or message_mime.
+Punctuation from the message will be stripped when this is applied, so make sure it's punctuated as well.
message_robot
+
+
+
+
+
+ Message displayed if the user is a robot.
message_simple
+
+
+
+
+
+ Message to display if the user is a simple_animal.
mob_type_allowed_typecache
+
+
+
+
+
+ Types that are allowed to use that emote.
mob_type_blacklist_typecache
+
+
+
+
+
+ Types that are NOT allowed to use that emote.
mob_type_ignore_stat_typecache
+
+
+
+
+
+ Types that can use this emote regardless of their state.
muzzle_ignore
+
+
+
+
+
+ If the emote type is EMOTE_MOUTH but should still bypass a muzzle.
muzzled_noises
+
+
+
+
+
+ Sounds emitted when the user is muzzled. Generally used like "[user] makes a pick(muzzled_noises) noise!"
only_forced_audio
+
+
+
+
+
+ If true, this emote will only make a sound effect when called unintentionally.
only_unintentional
+
+
+
+
+
+ Whether or not the emote can even be called at all if it's not intentional
param_desc
+
+
+
+
+
+ Description appended to the emote name describing what the target should be, like for help commands.
sound
+
+
+
+
+
+ Sound to play when emote is called. If you want to adjust this dynamically, see get_sound().
species_type_blacklist_typecache
+
+
+
+
+
+ Species types which the emote will be exclusively not available to. Should be subclasses of /datum/species
species_type_whitelist_typecache
+
+
+
+
+
+ Species types which the emote will be exclusively available to. Should be subclasses of /datum/species
stat_allowed
+
+
+
+
+
+ How conscious do you need to be to use this emote intentionally?
target_behavior
+
+
+
+
+
+ If we get a target, how do we want to treat it?
unintentional_audio_cooldown
+
+
+
+
+
+ If the emote is triggered unintentionally, how long would that cooldown be?
unintentional_stat_allowed
+
+
+
+
+
+ How conscious do you need to be to have this emote forced out of you?
vary
+
+
+
+
+
+ Whether or not to vary the sound of the emote.
volume
+
+
+
+
+
+ How loud is the audio emote?
Proc Details act_on_target(/mob /user, target)
+
+
+
+
+
+ Perform an action on the target of an emote, if one was found.
+This gets called in select_param if a valid object target was found, and should let you interact with the
+object being targeted while it's still in scope.
+
+user - Person who is triggering the emote.
+Target - The target of the emote itself.
+ can_run_emote(/mob /user, status_check, intentional)
+
+
+
+
+
+ Check to see if the user is allowed to run the emote.
+Arguments:
+
+user - Person that is trying to send the emote.
+status_check - Bool that says whether we should check their stat or not.
+intentional - Bool that says whether the emote was forced (FALSE) or not (TRUE).
+
+Returns a bool about whether or not the user can run the emote.
can_vocalize_emotes
+
+ Return whether a user should be able to vocalize emotes or not, due to a mask or inability to speak.
+If this returns false, any mouth emotes will be replaced with muzzled noises.
check_cooldown(/mob /user, intentional)
+
+
+
+
+
+ Check whether or not an emote can be used due to a cooldown.
+This applies to per-emote cooldowns, preventing individual emotes from being used (intentionally) too frequently.
+This also checks audio cooldowns, so that intentional uses of audio emotes across the mob are time-constrained.
+Arguments:
+
+user - Person that is trying to send the emote.
+intentional - Bool that says whether the emote was forced (FALSE) or not (TRUE).
+
+Returns FALSE if the cooldown is not over, TRUE if the cooldown is over.
find_target(/mob /user, fragment, emote_target_type)
+
+
+
+
+
+ Find a target for the emote based on the message parameter fragment passed in.
+
+user - The user looking for a target.
+fragment - The mesage parameter or fragment of text they're using to try to find a target.
+emote_target_type - Define denoting the type of target to use when searching.
+
+Returns a matched target, or null if a specific match couldn't be made.
get_sound
+
+ To get the sound that the emote plays, for special sound interactions depending on the mob.
+Arguments:
+
+user - Person that is trying to send the emote.
+
+Returns the sound that will be made while sending the emote.
get_volume
+
+ Get the volume of the audio emote to play.
+Override this if you want to dynamically change the volume of an emote.
+Arguments:
+
+user - Person that is trying to send the emote.
+
+Returns the volume level for an emote's audio component.
play_sound_effect(/mob /user, intentional, sound_path, sound_volume)
+
+
+
+
+
+ Play the sound effect in an emote.
+If you want to change the way the playsound call works, override this.
+Note! If you want age_based to work, you need to force vary to TRUE.
+
+user - The user of the emote.
+intentional - Whether or not the emote was triggered intentionally.
+sound_path - Filesystem path to the audio clip to play.
+sound_volume - Volume at which to play the audio clip.
+ replace_pronoun(/mob /user, msg)
+
+
+
+
+
+ Replace pronouns in the inputed string with the user's proper pronouns.
+Specifically replaces they/them/their pronouns with the user's pronouns, as well as %s (like theirs)
+Arguments:
+
+user - Person that is trying to send the emote.
+msg - The string to modify.
+
+Returns the modified msg string.
reset_emote()
+
+
+
+
+
+ Reset the emote back to its original state.
+Necessary if you've made modifications to the emote itself over the course of its
+execution, as emotes are singletons, and changes would be reflected on every usage of the emote.
run_emote(/mob /user, emote_arg, type_override, intentional)
+
+
+
+
+
+ Handles the modifications and execution of emotes.
+In general, what this does:
+
+Checks if the user can run the emote at all
+Checks and applies the message parameter, if it exists
+Replaces pronouns with a mob's specific pronouns
+Checks for and plays sound if the emote supports it
+Sends the emote to users
+Runechats the emote
+
+You most likely want to use try_run_emote() anywhere you would otherwise call this directly,
+as that will incorporate can_run_emote() checking as well.
+Arguments:
+
+user - Person that is trying to send the emote.
+emote_arg - String parameter added after the emote.
+type_override - Override to the current emote_type.
+intentional - Bool that says whether the emote was forced (FALSE) or not (TRUE).
+
+Returns TRUE if it was able to run the emote, FALSE otherwise.
runechat_emote(/mob /user, text)
+
+
+
+
+
+ Send an emote to runechat for all (listening) users in the vicinity.
+
+user - The user of the emote.
+text - The text of the emote.
+ select_message_type(/mob /user, msg, intentional)
+
+
+
+
+
+ Selects the message type to override the message with.
+Arguments:
+
+user - Person that is trying to send the emote.
+msg - The string to modify.
+intentional - Bool that says whether the emote was forced (FALSE) or not (TRUE).
+
+Returns the new message, or msg directly, if no change was needed.
select_param(/mob /user, params, substitution, base_message)
+
+
+
+
+
+ Replaces the %t in the message in message_param by params.
+The behavior of this proc is particularly dependent on target_behavior
and emote_target_type
.
+If target_behavior is EMOTE_TARGET_BHVR_RAW, we ignore any sort of target searching.
+Otherwise, we try to find a target in view to call this emote on based on emote_target_type.
+If you want to call something on the target object itself while it's still in scope, override act_on_target().
+Arguments:
+
+user - Person that is trying to send the emote.
+params - Parameters added after the emote.
+substitution_str - String to substitute the target into.
+base_message - If passed, the original message before any sort of modification occurred. Useful when dealing with non-standard message types.
+
+Returns the modified string, or null if the given parameter is invalid. May also return EMOTE_ACT_STOP_EXECUTION if acting on the target should stop emote execution.
should_play_sound(/mob /user, intentional)
+
+
+
+
+
+ Check to see if the user should play a sound when performing the emote.
+Arguments:
+
+user - Person that is doing the emote.
+intentional - Bool that says whether the emote was forced (FALSE) or not (TRUE).
+
+Returns a bool about whether or not the user should play a sound when performing the emote.
try_run_emote(/mob /user, emote_arg, type_override, intentional)
+
+
+
+
+
+ Try to run an emote, checking can_run_emote once before executing the emote itself.
+
+user - User of the emote
+params - An optional extra argument included after the emote key.
+type_override - emote type to override the existing one with, if given.
+intentional - Whether or not the emote was triggered intentionally (if false, the emote was forced by code).
+
+Returns TRUE if the emote was able to be run (or failed successfully), or FALSE if the emote is unusable.
+
+
+
diff --git a/datum/emote/living/brain.html b/datum/emote/living/brain.html
new file mode 100644
index 0000000000000..232eb72ef2657
--- /dev/null
+++ b/datum/emote/living/brain.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/emote/living/brain - Space Station 13
+
+
+
+
+
+
+Emotes usable by brains, but only while they're in MMIs.
Vars
+ self_message The message that will be displayed to themselves, since brains can't really see their own emotes
+ Var Details self_message
+
+
+
+
+
+ The message that will be displayed to themselves, since brains can't really see their own emotes
+
+
+
diff --git a/datum/emote/living/carbon/human.html b/datum/emote/living/carbon/human.html
new file mode 100644
index 0000000000000..1080a87840474
--- /dev/null
+++ b/datum/emote/living/carbon/human.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /datum/emote/living/carbon/human - Space Station 13
+
+
+
+
+
+
+
+ Var Details species_custom_messages
+
+
+
+
+
+ Custom messages that should be applied based on species
+Should be an associative list of species name: message
species_custom_mime_messages
+
+
+
+
+
+ Custom messages applied to mimes of a particular species
+
+
+
diff --git a/datum/emote/living/carbon/human/highfive.html b/datum/emote/living/carbon/human/highfive.html
new file mode 100644
index 0000000000000..787923df59d88
--- /dev/null
+++ b/datum/emote/living/carbon/human/highfive.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/emote/living/carbon/human/highfive - Space Station 13
+
+
+
+
+
+
+Vars
+ action_name title override, used for the re-use message.
+ status Status effect to apply when this emote is used. Should be a subtype
+ Var Details action_name
+
+
+
+
+
+ title override, used for the re-use message.
status
+
+
+
+
+
+ Status effect to apply when this emote is used. Should be a subtype
+
+
+
diff --git a/datum/emote/living/carbon/human/highfive/rps.html b/datum/emote/living/carbon/human/highfive/rps.html
new file mode 100644
index 0000000000000..0c20278be07e4
--- /dev/null
+++ b/datum/emote/living/carbon/human/highfive/rps.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/emote/living/carbon/human/highfive/rps - Space Station 13
+
+
+
+
+
+
+Vars
+ move If the user used parameters, the move that will be made.
+ Var Details move
+
+
+
+
+
+ If the user used parameters, the move that will be made.
+
+
+
diff --git a/datum/emote/living/simple_animal/slime.html b/datum/emote/living/simple_animal/slime.html
new file mode 100644
index 0000000000000..554c79945d1d9
--- /dev/null
+++ b/datum/emote/living/simple_animal/slime.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/emote/living/simple_animal/slime - Space Station 13
+
+
+
+
+
+
+Vars
+ mood Apply mood of the emote. Set this to MOOD_RESET to cause the emote to reset the mood back to default.
+ Var Details mood
+
+
+
+
+
+ Apply mood of the emote. Set this to MOOD_RESET to cause the emote to reset the mood back to default.
+
+
+
diff --git a/datum/enchantment.html b/datum/enchantment.html
new file mode 100644
index 0000000000000..65a93915ef1a8
--- /dev/null
+++ b/datum/enchantment.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/enchantment - Space Station 13
+
+
+
+
+
+
+Vars
+ applied_traits If the spellblade has traits, has it applied them?
+ cooldown stores the world.time after which it can be used again, the initial(cooldown)
is the cooldown between activations.
+ desc used for wizards/cultists examining the runes on the blade
+ name used for blackbox logging
+ power used for damage values
+ ranged whether the enchant procs despite not being in proximity
+ Var Details applied_traits
+
+
+
+
+
+ If the spellblade has traits, has it applied them?
cooldown
+
+
+
+
+
+ stores the world.time after which it can be used again, the initial(cooldown)
is the cooldown between activations.
desc
+
+
+
+
+
+ used for wizards/cultists examining the runes on the blade
name
+
+
+
+
+
+ used for blackbox logging
power
+
+
+
+
+
+ used for damage values
ranged
+
+
+
+
+
+ whether the enchant procs despite not being in proximity
+
+
+
diff --git a/datum/event.html b/datum/event.html
new file mode 100644
index 0000000000000..512c0508e8394
--- /dev/null
+++ b/datum/event.html
@@ -0,0 +1,194 @@
+
+
+
+
+
+
+ /datum/event - Space Station 13
+
+
+
+
+
+
+NOTE: Times are measured in master controller ticks!
Vars
+ activeFor How long the event has existed. You don't need to change this.
+ announceWhen When in the lifetime to call announce().
+ endWhen When in the lifetime the event should end.
+ endedAt When this event ended.
+ impact_area The area the event will hit
+ isRunning If this event is currently running. You should not change this.
+ name The human-readable name of the event
+ noAutoEnd Does the event end automatically after endWhen passes?
+ severity Severity. Lower means less severe, higher means more severe. Does not have to be supported. Is set on New().
+ startWhen When in the lifetime to call start().
+ startedAt When this event started. Procs
+ announce Called when the tick is equal to the announceWhen variable.
+ end Called on or after the tick is equal or more than endWhen
+ fake_announce Override this to make a custom fake announcement that differs from the normal announcement.
+Used for false alarms.
+If this proc returns TRUE, the regular Announce() won't be called.
+ kill Called when start(), announce() and end() has all been called.
+ lastProcessAt Returns the latest point of event processing.
+ process Do not override this proc, instead use the appropiate procs.
+ setup Called first before processing.
+ start Called when the tick is equal to the startWhen variable.
+ tick Called on or after the tick counter is equal to startWhen.
+ Var Details activeFor
+
+
+
+
+
+ How long the event has existed. You don't need to change this.
announceWhen
+
+
+
+
+
+ When in the lifetime to call announce().
endWhen
+
+
+
+
+
+ When in the lifetime the event should end.
endedAt
+
+
+
+
+
+ When this event ended.
impact_area
+
+
+
+
+
+ The area the event will hit
isRunning
+
+
+
+
+
+ If this event is currently running. You should not change this.
name
+
+
+
+
+
+ The human-readable name of the event
noAutoEnd
+
+
+
+
+
+ Does the event end automatically after endWhen passes?
severity
+
+
+
+
+
+ Severity. Lower means less severe, higher means more severe. Does not have to be supported. Is set on New().
startWhen
+
+
+
+
+
+ When in the lifetime to call start().
startedAt
+
+
+
+
+
+ When this event started.
Proc Details announce(false_alarm)
+
+
+
+
+
+ Called when the tick is equal to the announceWhen variable.
+Allows you to announce before starting or vice versa.
+Only called once.
+Ensure no sleep is called. Use INVOKE_ASYNC to call procs which do.
end()
+
+
+
+
+
+ Called on or after the tick is equal or more than endWhen
+You can include code related to the event ending.
+Do not place spawn() in here, instead use tick() to check for
+the activeFor variable.
+For example: if(activeFor == myOwnVariable + 30) doStuff()
+Only called once.
+Ensure no sleep is called. Use INVOKE_ASYNC to call procs which do.
fake_announce()
+
+
+
+
+
+ Override this to make a custom fake announcement that differs from the normal announcement.
+Used for false alarms.
+If this proc returns TRUE, the regular Announce() won't be called.
kill()
+
+
+
+
+
+ Called when start(), announce() and end() has all been called.
lastProcessAt()
+
+
+
+
+
+ Returns the latest point of event processing.
process()
+
+
+
+
+
+ Do not override this proc, instead use the appropiate procs.
+This proc will handle the calls to the appropiate procs.
+Ensure none of the code paths have a sleep in them. Use INVOKE_ASYNC to call procs which do.
setup()
+
+
+
+
+
+ Called first before processing.
+Allows you to setup your event, such as randomly
+setting the startWhen and or announceWhen variables.
+Only called once.
start()
+
+
+
+
+
+ Called when the tick is equal to the startWhen variable.
+Allows you to start before announcing or vice versa.
+Only called once.
+Ensure no sleep is called. Use INVOKE_ASYNC to call procs which do.
tick()
+
+
+
+
+
+ Called on or after the tick counter is equal to startWhen.
+You can include code related to your event or add your own
+time stamped events.
+Called more than once.
+Ensure no sleep is called. Use INVOKE_ASYNC to call procs which do.
+
+
+
diff --git a/datum/event/anomaly.html b/datum/event/anomaly.html
new file mode 100644
index 0000000000000..0006d27077dc7
--- /dev/null
+++ b/datum/event/anomaly.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/event/anomaly - Space Station 13
+
+
+
+
+
+
+
+ Var Details announce_sound
+
+
+
+
+
+ Sound effect used
prefix_message
+
+
+
+
+
+ The prefix message for the anomaly annoucement.
+
+
+
diff --git a/datum/event/bureaucratic_error.html b/datum/event/bureaucratic_error.html
new file mode 100644
index 0000000000000..aa01f3091894d
--- /dev/null
+++ b/datum/event/bureaucratic_error.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/event/bureaucratic_error - Space Station 13
+
+
+
+
+
+
+Vars
+ blacklisted_jobs Jobs that are not allowed to be picked for the bureaucratic error
+ uncommon_jobs Jobs that pass an additional 40% chance per roll to be picked for the bureaucratic error
+ Var Details blacklisted_jobs
+
+
+
+
+
+ Jobs that are not allowed to be picked for the bureaucratic error
uncommon_jobs
+
+
+
+
+
+ Jobs that pass an additional 40% chance per roll to be picked for the bureaucratic error
+
+
+
diff --git a/datum/event/disease_outbreak.html b/datum/event/disease_outbreak.html
new file mode 100644
index 0000000000000..c9391f8c79649
--- /dev/null
+++ b/datum/event/disease_outbreak.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/event/disease_outbreak - Space Station 13
+
+
+
+
+
+
+Vars
+ chosen_disease The type of disease that patient zero will be infected with.
+ Var Details chosen_disease
+
+
+
+
+
+ The type of disease that patient zero will be infected with.
+
+
+
diff --git a/datum/event/infestation.html b/datum/event/infestation.html
new file mode 100644
index 0000000000000..b8424110fadfb
--- /dev/null
+++ b/datum/event/infestation.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/event/infestation - Space Station 13
+
+
+
+
+
+
+Vars
+ spawn_area_type The area we'll be spawning things in
+ spawn_areas All possible areas for spawning, matched with their pretty names
+ vermin Which kind of vermin we'll be spawning (one of the three defines)
+ vermstring Pretty name for the vermin we're spawning
+ Var Details spawn_area_type
+
+
+
+
+
+ The area we'll be spawning things in
spawn_areas
+
+
+
+
+
+ All possible areas for spawning, matched with their pretty names
vermin
+
+
+
+
+
+ Which kind of vermin we'll be spawning (one of the three defines)
vermstring
+
+
+
+
+
+ Pretty name for the vermin we're spawning
+
+
+
diff --git a/datum/event/tear.html b/datum/event/tear.html
new file mode 100644
index 0000000000000..a9ff57099d883
--- /dev/null
+++ b/datum/event/tear.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ /datum/event/tear - Space Station 13
+
+
+
+
+
+
+Dimensional tear event.
+On triggering, nearby machines and lights flicker. After a few seconds,
+nearby machines and lights break. A /obj/effect/tear appears, spawning up
+to 10 random hell mobs including a guaranteed tear hellhound, then disappears.
+
+
+
diff --git a/datum/event_meta.html b/datum/event_meta.html
new file mode 100644
index 0000000000000..d073dff6ea8a1
--- /dev/null
+++ b/datum/event_meta.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/event_meta - Space Station 13
+
+
+
+
+
+
+Vars
+ enabled Whether or not the event is available for random selection at all.
+ max_weight The maximum weight that this event will have.
+ min_weight The minimum weight that this event will have. Only used if non-zero.
+ one_shot If true, then the event will not be re-added to the list of available events
+ role_weights A list of roles that add weight to the event
+ severity the current severity of this event
+ weight The base weight of this event. A zero means it may never fire, but see get_weight()
+ weight_mod A modifier applied to all event weights (role and base), respects min and max
+ Var Details enabled
+
+
+
+
+
+ Whether or not the event is available for random selection at all.
max_weight
+
+
+
+
+
+ The maximum weight that this event will have.
min_weight
+
+
+
+
+
+ The minimum weight that this event will have. Only used if non-zero.
one_shot
+
+
+
+
+
+ If true, then the event will not be re-added to the list of available events
role_weights
+
+
+
+
+
+ A list of roles that add weight to the event
severity
+
+
+
+
+
+ the current severity of this event
weight
+
+
+
+
+
+ The base weight of this event. A zero means it may never fire, but see get_weight()
weight_mod
+
+
+
+
+
+ A modifier applied to all event weights (role and base), respects min and max
+
+
+
diff --git a/datum/feed_channel.html b/datum/feed_channel.html
new file mode 100644
index 0000000000000..30778ad0c4961
--- /dev/null
+++ b/datum/feed_channel.html
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+ /datum/feed_channel - Space Station 13
+
+
+
+
+
+
+Describes a single feed channel. Owns a list of /datum/feed_message .
Vars
+ admin_locked Whether the channel is admin-locked.
+ author The author of the channel.
+ author_ckey The author's ckey
+ backup_author The fallback author name to display if the channel is censored.
+ censored Whether the channel is censored or not.
+ channel_name The name of the channel.
+ description The description of the channel.
+ frozen Whether the channel is frozen or not.
+ icon The channel's icon.
+ is_public Whether the channel is public or not.
+ messages Lazy list. Contains all /datum/feed_message pertaining to the channel. Procs
+ add_message Adds a new story to the channel and network singleton.
+ can_modify Returns whether the given user can edit or delete this channel.
+ can_publish Returns whether the given user can publish new stories to this channel.
+ clear Clears the channel's information.
+ get_announce_text Returns the text to be said by newscasters when announcing new news from a channel.
+ Var Details admin_locked
+
+
+
+
+
+ Whether the channel is admin-locked.
author
+
+
+
+
+
+ The author of the channel.
author_ckey
+
+
+
+
+
+ The author's ckey
backup_author
+
+
+
+
+
+ The fallback author name to display if the channel is censored.
censored
+
+
+
+
+
+ Whether the channel is censored or not.
channel_name
+
+
+
+
+
+ The name of the channel.
description
+
+
+
+
+
+ The description of the channel.
frozen
+
+
+
+
+
+ Whether the channel is frozen or not.
icon
+
+
+
+
+
+ The channel's icon.
is_public
+
+
+
+
+
+ Whether the channel is public or not.
messages
+ – /list/datum/feed_message
+
+
+
+
+ Lazy list. Contains all /datum/feed_message pertaining to the channel.
Proc Details
+ Adds a new story to the channel and network singleton.
+Arguments:
+can_modify(/mob /user, scanned_user)
+
+
+
+
+
+ Returns whether the given user can edit or delete this channel.
+Arguments:
+
+user - The user
+scanned_user - The user's identifying information on the newscaster
+ can_publish(/mob /user, scanned_user)
+
+
+
+
+
+ Returns whether the given user can publish new stories to this channel.
+Arguments:
+
+user - The user
+scanned_user - The user's identifying information on the newscaster
+ clear()
+
+
+
+
+
+ Clears the channel's information.
+Discards all owned stories.
get_announce_text(title)
+
+
+
+
+
+ Returns the text to be said by newscasters when announcing new news from a channel.
+Arguments:
+
+title - Optional. The headline to announce along with the channel's name. Typically the newest story's title.
+
+
+
+
diff --git a/datum/feed_message.html b/datum/feed_message.html
new file mode 100644
index 0000000000000..51056c0462662
--- /dev/null
+++ b/datum/feed_message.html
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+ /datum/feed_message - Space Station 13
+
+
+
+
+
+
+Describes a single feed story. Always owned by a /datum/feed_channel .
Vars
+ admin_locked Whether the story is admin-locked.
+ author The author of the story.
+ author_ckey The author's ckey (admins are watching you post WGW in the newscaster)
+ body The textual contents of the story.
+ censor_flags Flags that dictate the story should be censored.
+ img The story's icon.
+ publish_time The world.time at which the story was published.
+ title The title of the story.
+ view_count The number of views the story has. Procs
+ clear Clears the story's information.
+ Var Details admin_locked
+
+
+
+
+
+ Whether the story is admin-locked.
author
+
+
+
+
+
+ The author of the story.
author_ckey
+
+
+
+
+
+ The author's ckey (admins are watching you post WGW in the newscaster)
body
+
+
+
+
+
+ The textual contents of the story.
censor_flags
+
+
+
+
+
+ Flags that dictate the story should be censored.
img
+
+
+
+
+
+ The story's icon.
publish_time
+
+
+
+
+
+ The world.time at which the story was published.
title
+
+
+
+
+
+ The title of the story.
view_count
+
+
+
+
+
+ The number of views the story has.
Proc Details clear()
+
+
+
+
+
+ Clears the story's information.
+Does not delete it from the owning channel.
+
+
+
diff --git a/datum/feed_network.html b/datum/feed_network.html
new file mode 100644
index 0000000000000..3bb62661b497d
--- /dev/null
+++ b/datum/feed_network.html
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+ /datum/feed_network - Space Station 13
+
+
+
+
+
+
+Singleton that contains all informations related to newscasters (channels, stories).
+ Var Details channels
+ – /list/datum/feed_channel
+
+
+
+
+ Contains all of the feed channels created during the round.
stories
+ – /list/datum/feed_message
+
+
+
+
+ Contains all of the feed stories created during the round.
+ The current wanted issue.
Proc Details get_channel_by_author(author)
+
+
+
+
+
+ Returns the /datum/feed_channel with the given author, or null if not found.
+Arguments:
+get_channel_by_idx(idx)
+
+
+
+
+
+ Returns the /datum/feed_channel at the given index, or null if not found.
+Arguments:
+get_channel_by_name(name)
+
+
+
+
+
+ Returns the /datum/feed_channel with the given name, or null if not found.
+Arguments:
+
+
+
+
diff --git a/datum/feedback_variable.html b/datum/feedback_variable.html
new file mode 100644
index 0000000000000..d3b72a93d09d7
--- /dev/null
+++ b/datum/feedback_variable.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /datum/feedback_variable - Space Station 13
+
+
+
+
+
+
+Datum to hold feedback data, which gets logged at round end
+Holds all the information being logged
+
+
+
diff --git a/datum/flagged_book.html b/datum/flagged_book.html
new file mode 100644
index 0000000000000..ec264c2714290
--- /dev/null
+++ b/datum/flagged_book.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/flagged_book - Space Station 13
+
+
+
+
+
+
+Vars
+ bookid book id of the book this flag is attached to
+ category_id the id of the report category
+ reporter The ckey of the player who reported it
+ Var Details bookid
+
+
+
+
+
+ book id of the book this flag is attached to
category_id
+
+
+
+
+
+ the id of the report category
reporter
+
+
+
+
+
+ The ckey of the player who reported it
+
+
+
diff --git a/datum/food_processor_process.html b/datum/food_processor_process.html
new file mode 100644
index 0000000000000..15c914f84b823
--- /dev/null
+++ b/datum/food_processor_process.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/food_processor_process - Space Station 13
+
+
+
+
+
+
+Procs
+ process_food WHO NAME A PARAMETER FOR A PROC "what" holy hell
Proc Details process_food
+
+ WHO NAME A PARAMETER FOR A PROC "what" holy hell
+
+
+
diff --git a/datum/food_processor_process/mob.html b/datum/food_processor_process/mob.html
new file mode 100644
index 0000000000000..d9e7b349ce1fc
--- /dev/null
+++ b/datum/food_processor_process/mob.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/food_processor_process/mob - Space Station 13
+
+
+
+
+
+
+Proc Details process_food(loc, what, processor)
+
+
+
+
+
+ END OBJECT RECIPIES
+
+
+
diff --git a/datum/game_mode.html b/datum/game_mode.html
new file mode 100644
index 0000000000000..4d9443f9253c9
--- /dev/null
+++ b/datum/game_mode.html
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+ /datum/game_mode - Space Station 13
+
+
+
+
+
+
+Vars
+ abductees A list which contains the minds of all abductees
+ abductor_teams How many abductor teams do we have
+ abductors A list which contains the minds of all abductors
+ apprentices A list of all minds that are wizard apprentices
+ changelings A list of all minds which have the changeling antag datum
+ cult_team The cult team datum
+ ert A list of all the minds that have the ERT special role
+ greyshirts A list of all the greyshirt minds
+ head_revolutionaries A list of all the minds of head revolutionaries
+ implanted An associative list with mindslave minds as keys and their master's minds as values.
+ rev_team The revololution team datum
+ revolutionaries A list of all the minds of revolutionaries
+ single_antag_positions Each item in this list can only be rolled once on average.
+ superheroes A list of all the minds with the superhero special role
+ supervillains A list of all the minds with the supervillain special role
+ syndicates A list of all the nuclear operatives' minds
+ tdm_gamemode This var is solely to track gamemodes to track suicides/cryoing/etc and doesnt declare this a "free for all" gamemode. This is for data tracking purposes only.
+ traitors A list of all minds which have the traitor antag datum.
+ vampire_enthralled A list of all minds which are thralled by a vampire
+ vampires A list of all minds which have the vampire antag datum
+ wizards A list of all minds which have the wizard special role
+ zombie_infected A list of all minds that are infected with the zombie virus, but aren't zombies yet
+ zombies A list of all minds that are zombies Procs
+ can_start can_start()
+Checks to see if the game can be setup and ran with the current number of players or whatnot.
+ get_end_of_round_antagonist_statistics Gets the value of all end of round stats through auto_declare and returns them
+ post_setup post_setup()
+Everyone should now be on the station and have their normal gear. This is the place to give the special roles extra things
+ pre_setup pre_setup()
+Attempts to select players for special roles the mode might have.
+ process process()
+Called by the gameticker
+ Var Details abductees
+
+
+
+
+
+ A list which contains the minds of all abductees
abductor_teams
+
+
+
+
+
+ How many abductor teams do we have
abductors
+
+
+
+
+
+ A list which contains the minds of all abductors
apprentices
+
+
+
+
+
+ A list of all minds that are wizard apprentices
changelings
+
+
+
+
+
+ A list of all minds which have the changeling antag datum
+ The cult team datum
ert
+
+
+
+
+
+ A list of all the minds that have the ERT special role
greyshirts
+
+
+
+
+
+ A list of all the greyshirt minds
head_revolutionaries
+
+
+
+
+
+ A list of all the minds of head revolutionaries
implanted
+
+
+
+
+
+ An associative list with mindslave minds as keys and their master's minds as values.
+ The revololution team datum
revolutionaries
+
+
+
+
+
+ A list of all the minds of revolutionaries
single_antag_positions
+
+
+
+
+
+ Each item in this list can only be rolled once on average.
superheroes
+
+
+
+
+
+ A list of all the minds with the superhero special role
supervillains
+
+
+
+
+
+ A list of all the minds with the supervillain special role
syndicates
+
+
+
+
+
+ A list of all the nuclear operatives' minds
tdm_gamemode
+
+
+
+
+
+ This var is solely to track gamemodes to track suicides/cryoing/etc and doesnt declare this a "free for all" gamemode. This is for data tracking purposes only.
traitors
+
+
+
+
+
+ A list of all minds which have the traitor antag datum.
vampire_enthralled
+
+
+
+
+
+ A list of all minds which are thralled by a vampire
vampires
+
+
+
+
+
+ A list of all minds which have the vampire antag datum
wizards
+
+
+
+
+
+ A list of all minds which have the wizard special role
zombie_infected
+
+
+
+
+
+ A list of all minds that are infected with the zombie virus, but aren't zombies yet
zombies
+
+
+
+
+
+ A list of all minds that are zombies
Proc Details can_start()
+
+
+
+
+
+ can_start()
+Checks to see if the game can be setup and ran with the current number of players or whatnot.
get_end_of_round_antagonist_statistics()
+
+
+
+
+
+ Gets the value of all end of round stats through auto_declare and returns them
post_setup()
+
+
+
+
+
+ post_setup()
+Everyone should now be on the station and have their normal gear. This is the place to give the special roles extra things
pre_setup()
+
+
+
+
+
+ pre_setup()
+Attempts to select players for special roles the mode might have.
process()
+
+
+
+
+
+ process()
+Called by the gameticker
+
+
+
diff --git a/datum/game_mode/changeling.html b/datum/game_mode/changeling.html
new file mode 100644
index 0000000000000..12b07014e2b47
--- /dev/null
+++ b/datum/game_mode/changeling.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/game_mode/changeling - Space Station 13
+
+
+
+
+
+
+Vars
+ changeling_amount The total number of changelings allowed to be picked.
+ pre_changelings A list containing references to the minds of soon-to-be changelings. This is seperate to avoid duplicate entries in the changelings
list.
+ Var Details changeling_amount
+
+
+
+
+
+ The total number of changelings allowed to be picked.
pre_changelings
+
+
+
+
+
+ A list containing references to the minds of soon-to-be changelings. This is seperate to avoid duplicate entries in the changelings
list.
+
+
+
diff --git a/datum/game_mode/traitor.html b/datum/game_mode/traitor.html
new file mode 100644
index 0000000000000..f9fe83c8429b2
--- /dev/null
+++ b/datum/game_mode/traitor.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/game_mode/traitor - Space Station 13
+
+
+
+
+
+
+Vars
+ pre_traitors A list containing references to the minds of soon-to-be traitors. This is seperate to avoid duplicate entries in the traitors
list.
+ traitor_scaling_coeff How much the amount of players get divided by to determine the number of traitors.
+ traitors_possible Hard limit on traitors if scaling is turned off.
+ Var Details pre_traitors
+
+
+
+
+
+ A list containing references to the minds of soon-to-be traitors. This is seperate to avoid duplicate entries in the traitors
list.
traitor_scaling_coeff
+
+
+
+
+
+ How much the amount of players get divided by to determine the number of traitors.
traitors_possible
+
+
+
+
+
+ Hard limit on traitors if scaling is turned off.
+
+
+
diff --git a/datum/game_mode/traitor/changeling.html b/datum/game_mode/traitor/changeling.html
new file mode 100644
index 0000000000000..3f3f0ce6d6e2f
--- /dev/null
+++ b/datum/game_mode/traitor/changeling.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/game_mode/traitor/changeling - Space Station 13
+
+
+
+
+
+
+Vars
+ pre_changelings A list containing references to the minds of soon-to-be changelings. This is seperate to avoid duplicate entries in the changelings
list.
+ Var Details pre_changelings
+
+
+
+
+
+ A list containing references to the minds of soon-to-be changelings. This is seperate to avoid duplicate entries in the changelings
list.
+
+
+
diff --git a/datum/game_mode/vampire.html b/datum/game_mode/vampire.html
new file mode 100644
index 0000000000000..0715377b2d186
--- /dev/null
+++ b/datum/game_mode/vampire.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/game_mode/vampire - Space Station 13
+
+
+
+
+
+
+
+ Var Details pre_vampires
+
+
+
+
+
+ list of minds of soon to be vampires
+
+
+
diff --git a/datum/game_mode/wizard/raginmages.html b/datum/game_mode/wizard/raginmages.html
new file mode 100644
index 0000000000000..4cc26ed898310
--- /dev/null
+++ b/datum/game_mode/wizard/raginmages.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/game_mode/wizard/raginmages - Space Station 13
+
+
+
+
+
+
+
+ Var Details have_we_populated_magivends
+
+
+
+
+
+ Tracks a one-time restock of all magivends once we get a second wizard
+
+
+
diff --git a/datum/gas_mixture.html b/datum/gas_mixture.html
new file mode 100644
index 0000000000000..b70483b07dbaa
--- /dev/null
+++ b/datum/gas_mixture.html
@@ -0,0 +1,210 @@
+
+
+
+
+
+
+ /datum/gas_mixture - Space Station 13
+
+
+
+
+
+
+Vars
+ fuel_burnt How much fuel this gas mixture burnt last reaction.
+ innate_heat_capacity Heat capacity intrinsic to the container of this gas mixture.
+ synchronized Is this mixture currently synchronized with MILLA? Always true for non-bound mixtures.
+ volume The volume this gas mixture fills.
+ waiting_for_sync Tracks the callbacks from synchronize() that haven't run yet. Procs
+ archive Update archived versions of variables. Returns: TRUE in all cases
+ boolean_remove Only removes the gas if we have more than the amount
+ copy_from_turf Copies all gas info from the turf into the gas list along with temperature
+Returns: TRUE if we are mutable, FALSE otherwise
+ get_breath_partial_pressure Takes the amount of the gas you want to PP as an argument
+So I don't have to do some hacky switches/defines/magic strings
+eg:
+Tox_PP = get_partial_pressure(gas_mixture.toxins)
+O2_PP = get_partial_pressure(gas_mixture.oxygen)
+ get_true_breath_pressure inverse
+ heat_capacity joules per kelvin
+ merge Merges all air from giver into self. Deletes giver. Returns: TRUE if we are mutable, FALSE otherwise
+ mimic Don't make calculations if there is no difference.
+ react Performs various reactions such as combustion or fusion (LOL)
+Returns: TRUE if any reaction took place; FALSE otherwise
+ remove Proportionally removes amount of gas from the gas_mixture.
+Returns: gas_mixture with the gases removed
+ remove_ratio Proportionally removes amount of gas from the gas_mixture.
+Returns: gas_mixture with the gases removed
+ return_pressure Calculate pressure in kilopascals
+ return_volume Calculate volume in liters
+ set_dirty Marks this gas mixture as changed from MILLA. Does nothing on non-bound mixtures.
+ share Performs air sharing calculations between two gas_mixtures assuming only 1 boundary length
+Returns: amount of gas exchanged (+ if sharer received)
+ temperature_share Performs temperature sharing calculations (via conduction) between two gas_mixtures assuming only 1 boundary length
+Returns: new temperature of the sharer
+ thermal_energy Calculate thermal energy in joules
+ total_moles Calculate moles
+ Var Details fuel_burnt
+
+
+
+
+
+ How much fuel this gas mixture burnt last reaction.
innate_heat_capacity
+
+
+
+
+
+ Heat capacity intrinsic to the container of this gas mixture.
synchronized
+
+
+
+
+
+ Is this mixture currently synchronized with MILLA? Always true for non-bound mixtures.
volume
+
+
+
+
+
+ The volume this gas mixture fills.
waiting_for_sync
+
+
+
+
+
+ Tracks the callbacks from synchronize() that haven't run yet.
Proc Details archive()
+
+
+
+
+
+ Update archived versions of variables. Returns: TRUE in all cases
boolean_remove(amount)
+
+
+
+
+
+ Only removes the gas if we have more than the amount
copy_from_turf
+
+ Copies all gas info from the turf into the gas list along with temperature
+Returns: TRUE if we are mutable, FALSE otherwise
get_breath_partial_pressure(gas_pressure)
+
+
+
+
+
+ Takes the amount of the gas you want to PP as an argument
+So I don't have to do some hacky switches/defines/magic strings
+eg:
+Tox_PP = get_partial_pressure(gas_mixture.toxins)
+O2_PP = get_partial_pressure(gas_mixture.oxygen)
get_true_breath_pressure(partial_pressure)
+
+
+
+
+
+ inverse
heat_capacity()
+
+
+
+
+
+ joules per kelvin
+ Merges all air from giver into self. Deletes giver. Returns: TRUE if we are mutable, FALSE otherwise
mimic(/turf /model, atmos_adjacent_turfs)
+
+
+
+
+
+ Don't make calculations if there is no difference.
react(/atom /dump_location)
+
+
+
+
+
+ Performs various reactions such as combustion or fusion (LOL)
+Returns: TRUE if any reaction took place; FALSE otherwise
remove(amount)
+
+
+
+
+
+ Proportionally removes amount of gas from the gas_mixture.
+Returns: gas_mixture with the gases removed
remove_ratio(ratio)
+
+
+
+
+
+ Proportionally removes amount of gas from the gas_mixture.
+Returns: gas_mixture with the gases removed
return_pressure()
+
+
+
+
+
+ Calculate pressure in kilopascals
return_volume()
+
+
+
+
+
+ Calculate volume in liters
set_dirty()
+
+
+
+
+
+ Marks this gas mixture as changed from MILLA. Does nothing on non-bound mixtures.
share
+
+ Performs air sharing calculations between two gas_mixtures assuming only 1 boundary length
+Returns: amount of gas exchanged (+ if sharer received)
temperature_share
+
+ Performs temperature sharing calculations (via conduction) between two gas_mixtures assuming only 1 boundary length
+Returns: new temperature of the sharer
thermal_energy()
+
+
+
+
+
+ Calculate thermal energy in joules
total_moles()
+
+
+
+
+
+ Calculate moles
+
+
+
diff --git a/datum/gas_mixture/bound_to_turf.html b/datum/gas_mixture/bound_to_turf.html
new file mode 100644
index 0000000000000..608328a68a288
--- /dev/null
+++ b/datum/gas_mixture/bound_to_turf.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ /datum/gas_mixture/bound_to_turf - Space Station 13
+
+
+
+
+
+
+Mathematical proofs:
+get_breath_partial_pressure(gas_pp) --> gas_pp/total_moles()breath_pp = pp
+get_true_breath_pressure(pp) --> gas_pp = pp/breath_pp total_moles()
+10/205 = 2.5
+10 = 2.5/5 20
+
+
+
diff --git a/datum/gear.html b/datum/gear.html
new file mode 100644
index 0000000000000..5732d3c6e13df
--- /dev/null
+++ b/datum/gear.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /datum/gear - Space Station 13
+
+
+
+
+
+
+Vars
+ allowed_roles List of job roles which can spawn with the item.
+ cost Loadout points cost to select the item listing.
+ description Description of the item listing. If left blank will default to the description of the pathed item.
+ display_name Displayed name of the item listing.
+ donator_tier Patreon donator tier needed to select this item listing.
+ gear_tweaks List of datums which will alter the item after it has been spawned. (NYI)
+ main_typepath Set on empty category datums to skip them being added to the list. (/datum/gear/accessory, /datum/gear/suit/coat/job, etc.)
+ path Typepath of the item.
+ slot Slot to equip the item to.
+ sort_category Loadout category of the item listing.
+ subtype_selection_cost Does selecting a second item with the same main_typepath
cost loadout points.
+ Var Details allowed_roles
+
+
+
+
+
+ List of job roles which can spawn with the item.
cost
+
+
+
+
+
+ Loadout points cost to select the item listing.
description
+
+
+
+
+
+ Description of the item listing. If left blank will default to the description of the pathed item.
display_name
+
+
+
+
+
+ Displayed name of the item listing.
donator_tier
+
+
+
+
+
+ Patreon donator tier needed to select this item listing.
gear_tweaks
+
+
+
+
+
+ List of datums which will alter the item after it has been spawned. (NYI)
main_typepath
+
+
+
+
+
+ Set on empty category datums to skip them being added to the list. (/datum/gear/accessory, /datum/gear/suit/coat/job, etc.)
path
+
+
+
+
+
+ Typepath of the item.
slot
+
+
+
+
+
+ Slot to equip the item to.
sort_category
+
+
+
+
+
+ Loadout category of the item listing.
subtype_selection_cost
+
+
+
+
+
+ Does selecting a second item with the same main_typepath
cost loadout points.
+
+
+
diff --git a/datum/http_request.html b/datum/http_request.html
new file mode 100644
index 0000000000000..9d02ad9170ffb
--- /dev/null
+++ b/datum/http_request.html
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+ /datum/http_request - Space Station 13
+
+
+
+
+
+
+Holder datum for ingame HTTP requests
+Holds information regarding to methods used, URL, and response,
+as well as job IDs and progress tracking for async requests
+ Var Details _raw_response
+
+
+
+
+
+ The raw response, which will be decoeded into a /datum/http_response
body
+
+
+
+
+
+ Body of the request being sent
cb
+
+
+
+
+
+ Callback for executing after async requests. Will be called with an argument of /datum/http_response as first argument
+ Request headers being sent
id
+
+
+
+
+
+ The ID of the request (Only set if it is an async request)
in_progress
+
+
+
+
+
+ Is the request in progress? (Only set if it is an async request)
method
+
+
+
+
+
+ HTTP method used
output_file
+
+
+
+
+
+ If present, response body will be saved to this file.
url
+
+
+
+
+
+ URL that the request is being sent to
Proc Details begin_async()
+
+
+
+
+
+ Async execution starter
+Tells the request to start executing inside its own thread inside RUSTG
+Preferred over blocking, but also requires SShttp to be active
+As such, you cannot use this for events which may happen at roundstart (EG: IPIntel, BYOND account tracking, etc)
build_options()
+
+
+
+
+
+ Options builder
+Builds options for if we want to download files with SShttp
execute_blocking()
+
+
+
+
+
+ Blocking executor
+Remains as a proof of concept to show it works, but should NEVER be used to do FFI halting the entire DD process up
+Async rqeuests are much preferred, but also require the subsystem to be firing for them to be answered
into_response()
+
+
+
+
+
+ Response deserializer
+Takes a HTTP request object, and converts it into a /datum/http_response
+The entire thing is wrapped in try/catch to ensure it doesnt break on invalid requests
+Can be called on async and blocking requests
is_complete()
+
+
+
+
+
+ Async completion checker
+Checks if an async request has been complete
+Has safety checks built in to compensate if you call this on blocking requests,
+or async requests which have already finished
prepare(_method, _url, _body, /list/_headers, _output_file)
+
+
+
+
+
+ Preparation handler
+Call this with relevant parameters to form the request you want to make
+Arguments:
+
+_method - HTTP Method to use, see code/__DEFINES/rust_g.dm for a full list
+_url - The URL to send the request to
+_body - The body of the request, if applicable
+_headers - Associative list of HTTP headers to send, if applicab;e
+
+
+
+
diff --git a/datum/http_response.html b/datum/http_response.html
new file mode 100644
index 0000000000000..6d047afe75c71
--- /dev/null
+++ b/datum/http_response.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ /datum/http_response - Space Station 13
+
+
+
+
+
+
+Holder datum for HTTP responses
+Created from calling [/datum/http_request/proc/into_response()]
+Contains vars about the result of the response
Vars
+ body The body of the response from the server
+ error Raw response if we errored
+ errored Has the request errored
+ headers Associative list of headers sent from the server
+ status_code The HTTP status code of the response
+ Var Details body
+
+
+
+
+
+ The body of the response from the server
error
+
+
+
+
+
+ Raw response if we errored
errored
+
+
+
+
+
+ Has the request errored
+ Associative list of headers sent from the server
status_code
+
+
+
+
+
+ The HTTP status code of the response
+
+
+
diff --git a/datum/hud.html b/datum/hud.html
new file mode 100644
index 0000000000000..f4d4ebea9f523
--- /dev/null
+++ b/datum/hud.html
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+ /datum/hud - Space Station 13
+
+
+
+
+
+
+Vars
+ floating_actions A list of action buttons which aren't owned by any action group, and are just floating somewhere on the hud.
+ hotkey_ui_hidden This is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons)
+ hotkeybuttons the buttons that can be used via hotkeys
+ hud_shown Used for the HUD toggle (F12)
+ hud_version Current displayed version of the HUD
+ inv_slots atom/movable/screen/inventory objects, ordered by their slot ID.
+ inventory_shown Whether or not their toggleable inventory (generally their contents on the left) is expanded
+ listed_actions action group for expanded actions, the normal action set
+ palette_actions the groups of actions, such as palette (previously normal) actions
+ plane_master_controllers Assoc list of controller groups, associated with key string group name with value of the plane master controller ref
+ screentip_text UI for screentips that appear when you mouse over things
+ toggleable_inventory the screen objects which can be hidden (your human items on the left) Procs
+ build_action_groups Generates and fills new action groups with our mob's current actions
+ generate_landings Generates visual landings for all groups that the button is not a memeber of
+ get_action_buttons_icons This is a silly proc used in hud code code to determine what icon and icon state we should be using
+for hud elements (such as action buttons) that don't have their own icon and icon state set.
+ hide_action Removes the passed in action from its current position on the screen
+ hide_landings Clears all currently visible landings
+ show_hud Shows this hud's hud to some mob
+ view_audit_buttons Ensures all of our buttons are properly within the bounds of our client's view, moves them if they're not
+ Var Details floating_actions
+
+
+
+
+
+ A list of action buttons which aren't owned by any action group, and are just floating somewhere on the hud.
hotkey_ui_hidden
+
+
+
+
+
+ This is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons)
+ the buttons that can be used via hotkeys
hud_shown
+
+
+
+
+
+ Used for the HUD toggle (F12)
hud_version
+
+
+
+
+
+ Current displayed version of the HUD
inv_slots
+
+
+
+
+
+ atom/movable/screen/inventory objects, ordered by their slot ID.
inventory_shown
+
+
+
+
+
+ Whether or not their toggleable inventory (generally their contents on the left) is expanded
listed_actions
+
+
+
+
+
+ action group for expanded actions, the normal action set
palette_actions
+
+
+
+
+
+ the groups of actions, such as palette (previously normal) actions
plane_master_controllers
+ – /list/atom/movable/plane_master_controller
+
+
+
+
+ Assoc list of controller groups, associated with key string group name with value of the plane master controller ref
screentip_text
+
+
+
+
+
+ UI for screentips that appear when you mouse over things
toggleable_inventory
+
+
+
+
+
+ the screen objects which can be hidden (your human items on the left)
Proc Details build_action_groups()
+
+
+
+
+
+ Generates and fills new action groups with our mob's current actions
+ Generates visual landings for all groups that the button is not a memeber of
+ This is a silly proc used in hud code code to determine what icon and icon state we should be using
+for hud elements (such as action buttons) that don't have their own icon and icon state set.
+It returns a list, which is pretty much just a struct of info
+ Removes the passed in action from its current position on the screen
hide_landings()
+
+
+
+
+
+ Clears all currently visible landings
show_hud(version, /mob /viewmob)
+
+
+
+
+
+ Shows this hud's hud to some mob
+Arguments
+
+version - denotes which style should be displayed. blank or 0 means "next version"
+viewmob - what mob to show the hud to. Can be this hud's mob, can be another mob, can be null (will use this hud's mob if so)
+
+ Ensures all of our buttons are properly within the bounds of our client's view, moves them if they're not
+
+
+
diff --git a/datum/input_data.html b/datum/input_data.html
new file mode 100644
index 0000000000000..4bf77162187ed
--- /dev/null
+++ b/datum/input_data.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/input_data - Space Station 13
+
+
+
+
+
+
+Vars
+ desired_move_dir Bitflags of the direction the client wishes to move. Updated instantaneously.
+ desired_move_dir_add Bitflags of the buffered direction the client wishes to move. Reset on client/Move().
+ desired_move_dir_sub Bitflags of the buffered direction the client wishes not to move. Reset on client/Move().
+ key_combos_held Associative list of currently held key combos.
+ keys_held Associative list of currently held keys. Format: keys_held[key], associated value is world.time where key was pressed.
+ move_lock Whether the movement should be locked in place.
+ Var Details desired_move_dir
+
+
+
+
+
+ Bitflags of the direction the client wishes to move. Updated instantaneously.
desired_move_dir_add
+
+
+
+
+
+ Bitflags of the buffered direction the client wishes to move. Reset on client/Move().
desired_move_dir_sub
+
+
+
+
+
+ Bitflags of the buffered direction the client wishes not to move. Reset on client/Move().
key_combos_held
+
+
+
+
+
+ Associative list of currently held key combos.
keys_held
+
+
+
+
+
+ Associative list of currently held keys. Format: keys_held[key], associated value is world.time where key was pressed.
move_lock
+
+
+
+
+
+ Whether the movement should be locked in place.
+
+
+
diff --git a/datum/instrument.html b/datum/instrument.html
new file mode 100644
index 0000000000000..099f95da22952
--- /dev/null
+++ b/datum/instrument.html
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+ /datum/instrument - Space Station 13
+
+
+
+
+
+
+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.
+The datums themselves are kept in SSinstruments in a list by their unique ID. The reason it uses ID instead of typepath is to support the runtime creation of instruments.
+Since songs cache them while playing, there isn't realistic issues regarding performance from accessing.
Vars
+ HIGHEST_KEY Don't touch this
+ LOWEST_KEY Don't touch this x2
+ abstract_type Used for categorization subtypes
+ admin_only Oh no - For truly troll instruments.
+ category Category
+ id Uniquely identifies this instrument so runtime changes are possible as opposed to paths. If this is unset, things will use path instead.
+ instrument_flags See __DEFINES/flags/instruments.dm
+ legacy_instrument_ext For legacy instruments, our file extension
+ legacy_instrument_path For legacy instruments, the path to our notes
+ name Name of the instrument
+ real_samples Write here however many samples, follow this syntax: "%note num%"='%sample file%' eg. "27"='synthesizer/e2.ogg'. Key must never be lower than 0 and higher than 127
+ samples assoc list key = /datum/instrument_key. do not fill this yourself!
+ songs_using What songs are using us
+ volume_multiplier Volume multiplier. Synthesized instruments are quite loud and I don't like to cut off potential detail via editing. (someone correct me if this isn't a thing) Procs
+ Initialize Initializes the instrument, calculating its samples if necessary.
+ calculate_samples For synthesized instruments, this is how the instrument generates the "keys" that a /datum/song uses to play notes.
+Calculating them on the fly would be unperformant, so we do it during init and keep it all cached in a list.
+ is_ready Checks if this instrument is ready to play.
+ Var Details HIGHEST_KEY
+
+
+
+
+
+ Don't touch this
LOWEST_KEY
+
+
+
+
+
+ Don't touch this x2
abstract_type
+
+
+
+
+
+ Used for categorization subtypes
admin_only
+
+
+
+
+
+ Oh no - For truly troll instruments.
category
+
+
+
+
+
+ Category
id
+
+
+
+
+
+ Uniquely identifies this instrument so runtime changes are possible as opposed to paths. If this is unset, things will use path instead.
instrument_flags
+
+
+
+
+
+ See __DEFINES/flags/instruments.dm
legacy_instrument_ext
+
+
+
+
+
+ For legacy instruments, our file extension
legacy_instrument_path
+
+
+
+
+
+ For legacy instruments, the path to our notes
name
+
+
+
+
+
+ Name of the instrument
real_samples
+
+
+
+
+
+ Write here however many samples, follow this syntax: "%note num%"='%sample file%' eg. "27"='synthesizer/e2.ogg'. Key must never be lower than 0 and higher than 127
samples
+
+
+
+
+
+ assoc list key = /datum/instrument_key. do not fill this yourself!
songs_using
+
+
+
+
+
+ What songs are using us
volume_multiplier
+
+
+
+
+
+ Volume multiplier. Synthesized instruments are quite loud and I don't like to cut off potential detail via editing. (someone correct me if this isn't a thing)
Proc Details Initialize()
+
+
+
+
+
+ Initializes the instrument, calculating its samples if necessary.
calculate_samples()
+
+
+
+
+
+ For synthesized instruments, this is how the instrument generates the "keys" that a /datum/song uses to play notes.
+Calculating them on the fly would be unperformant, so we do it during init and keep it all cached in a list.
is_ready()
+
+
+
+
+
+ Checks if this instrument is ready to play.
+
+
+
diff --git a/datum/instrument_key.html b/datum/instrument_key.html
new file mode 100644
index 0000000000000..43d2924eac7a2
--- /dev/null
+++ b/datum/instrument_key.html
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+ /datum/instrument_key - Space Station 13
+
+
+
+
+
+
+Instrument key datums contain everything needed to know how to play a specific
+note of an instrument.*
Vars
+ deviation Deviation up/down from the pivot point that uses its sample. Used to calculate frequency.
+ frequency The frequency to play the sample to get our desired note.
+ key The numerical key of what this is, from 1 to 127 on a standard piano keyboard.
+ sample The actual sample file that will be loaded when playing. Procs
+ calculate Calculates and stores our deviation.
+ Var Details deviation
+
+
+
+
+
+ Deviation up/down from the pivot point that uses its sample. Used to calculate frequency.
frequency
+
+
+
+
+
+ The frequency to play the sample to get our desired note.
key
+
+
+
+
+
+ The numerical key of what this is, from 1 to 127 on a standard piano keyboard.
sample
+
+
+
+
+
+ The actual sample file that will be loaded when playing.
Proc Details calculate()
+
+
+
+
+
+ Calculates and stores our deviation.
+
+
+
diff --git a/datum/ipintel.html b/datum/ipintel.html
new file mode 100644
index 0000000000000..39f4aab038ae8
--- /dev/null
+++ b/datum/ipintel.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/ipintel - Space Station 13
+
+
+
+
+
+
+Vars
+ cache Whether this was loaded from the cache or not
+ cachedate The date it was cached
+ cacheminutesago How many minutes ago it was cached
+ cacherealtime The real time it was cached
+ intel The current rating, 0-1 float.
+ ip The IP being checked
+ Var Details cache
+
+
+
+
+
+ Whether this was loaded from the cache or not
cachedate
+
+
+
+
+
+ The date it was cached
cacheminutesago
+
+
+
+
+
+ How many minutes ago it was cached
cacherealtime
+
+
+
+
+
+ The real time it was cached
intel
+
+
+
+
+
+ The current rating, 0-1 float.
ip
+
+
+
+
+
+ The IP being checked
+
+
+
diff --git a/datum/ipintel_manager.html b/datum/ipintel_manager.html
new file mode 100644
index 0000000000000..f7f51b3baf375
--- /dev/null
+++ b/datum/ipintel_manager.html
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+ /datum/ipintel_manager - Space Station 13
+
+
+
+
+
+
+Proc Details get_ip_intel(ip, bypasscache, updatecache)
+
+
+
+
+
+ Get IP intel
+Performs a lookup of the rating for an IP provided
+Arguments:
+
+ip - The IP to lookup
+bypasscache - Do we want to bypass the DB cache?
+updatecache - Do we want to update the DB cache?
+ ip_intel_query(ip, retried)
+
+
+
+
+
+ Performs the remote IPintel lookup
+Arguments:
+
+ip - The IP to lookup
+retried - Was this attempt retried?
+ ipintel_badip_check(target_ip)
+
+
+
+
+
+ IP Rating Checker
+Checks if a provided IP passes the config threshold for denial
+Arguments:
+
+target_ip - The IP to check
+ ipintel_handle_error(error, ip, retried)
+
+
+
+
+
+ Error handler
+Handles an IP intel error, also throttling the susbystem if required
+Arguments:
+
+error - The error description
+ip - The IP that was tried
+retried - Was this on a retried attempt
+ ipintel_is_banned(t_ckey, t_ip)
+
+
+
+
+
+ IPIntel Ban Checker
+Checks if a user is banned due to IPintel. It will check configuration, DB, whitelist checks, and more
+Arguments:
+
+t_ckey - The ckey to check
+t_ip - The IP to check
+ log_ipintel(text)
+
+
+
+
+
+ Logs an IPintel error
+Pretty self explanatory. Logs errors regarding ipintel.
+Arguments:
+vpn_whitelist_add(target_ckey)
+
+
+
+
+
+ VPN whitelist adder
+Adds a ckey to the VPN whitelist. Asks the admin to also provide a link to their request.
+Arguments:
+
+target_ckey - The ckey to whitelist
+ vpn_whitelist_check(target_ckey)
+
+
+
+
+
+ VPN whitelist checker
+Checks if a ckey is whitelisted to be using a VPN against the DB
+Arguments:
+
+target_ckey - The ckey to check
+ vpn_whitelist_panel(target_ckey)
+
+
+
+
+
+ VPN whitelist panel
+Doesnt actually open a panel, this is just a verb to handle the rest of the whitelist operations
+Arguments:
+
+target_ckey - The ckey to add/remove
+ vpn_whitelist_remove(target_ckey)
+
+
+
+
+
+ VPN whitelist remover
+Removes a ckey from the VPN whitelist. Pretty simple.
+Arguments:
+
+target_ckey - The ckey to remove
+
+
+
+
diff --git a/datum/job.html b/datum/job.html
new file mode 100644
index 0000000000000..5691da635414d
--- /dev/null
+++ b/datum/job.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/job - Space Station 13
+
+
+
+
+
+
+Vars
+ access Job access. A list of constants from access_defines.dm.
+ blacklisted_disabilities Cannot pick this job if the character has these disabilities
+ department_account_access Can this role access its department money account?
+ department_flag Department(s) Bitflag, used for Databse entries - DO NOT JUST EDIT THESE
+ department_head list of the names of departments heads (as strings)
+ flag Job Bitflag, used for Database entries - DO NOT JUST EDIT THESE
+ has_bank_account Does this job get a bank account?
+ important_information Text which is shown to someone in BIG BOLG RED when they spawn. Use for critically important stuff that could make/break a round
+ job_banned_gamemode Boolean detailing if this job has been banned because of a gamemode restriction i.e. The revolution has won, no more command
+ job_department_flags Flags for identifying by department, because we need other shit that isnt for the database
+ job_departments List of the department(s) this job is a part of
+ missing_limbs_allowed If this job could have any amputated limbs
+ required_objectives Job Objectives that crew with this job will have a roundstart Procs
+ barred_by_disability Returns true if the character has a disability the selected job doesn't allow
+ barred_by_missing_limbs Returns true if the character has amputated limbs when their selected job doesn't allow it
+ Var Details access
+
+
+
+
+
+ Job access. A list of constants from access_defines.dm.
blacklisted_disabilities
+
+
+
+
+
+ Cannot pick this job if the character has these disabilities
department_account_access
+
+
+
+
+
+ Can this role access its department money account?
department_flag
+
+
+
+
+
+ Department(s) Bitflag, used for Databse entries - DO NOT JUST EDIT THESE
department_head
+
+
+
+
+
+ list of the names of departments heads (as strings)
flag
+
+
+
+
+
+ Job Bitflag, used for Database entries - DO NOT JUST EDIT THESE
has_bank_account
+
+
+
+
+
+ Does this job get a bank account?
+ Text which is shown to someone in BIG BOLG RED when they spawn. Use for critically important stuff that could make/break a round
job_banned_gamemode
+
+
+
+
+
+ Boolean detailing if this job has been banned because of a gamemode restriction i.e. The revolution has won, no more command
job_department_flags
+
+
+
+
+
+ Flags for identifying by department, because we need other shit that isnt for the database
job_departments
+
+
+
+
+
+ List of the department(s) this job is a part of
missing_limbs_allowed
+
+
+
+
+
+ If this job could have any amputated limbs
required_objectives
+
+
+
+
+
+ Job Objectives that crew with this job will have a roundstart
Proc Details barred_by_disability
+
+ Returns true if the character has a disability the selected job doesn't allow
barred_by_missing_limbs
+
+ Returns true if the character has amputated limbs when their selected job doesn't allow it
+
+
+
diff --git a/datum/job_ban.html b/datum/job_ban.html
new file mode 100644
index 0000000000000..0bc8a5c91c4cd
--- /dev/null
+++ b/datum/job_ban.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/job_ban - Space Station 13
+
+
+
+
+
+
+
+ Var Details a_ckey
+
+
+
+
+
+ Admin who did it
bantime
+
+
+
+
+
+ Time of ban
bantype
+
+
+
+
+
+ Type of ban
duration
+
+
+
+
+
+ Duration (if temp)
expiration_time
+
+
+
+
+
+ Expiry time (if temp)
job
+
+
+
+
+
+ Job banned itself
reason
+
+
+
+
+
+ Reason for ban
+
+
+
diff --git a/datum/job_ban_holder.html b/datum/job_ban_holder.html
new file mode 100644
index 0000000000000..e36cec86d3ca7
--- /dev/null
+++ b/datum/job_ban_holder.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/job_ban_holder - Space Station 13
+
+
+
+
+
+
+Holder for job bans
Vars
+ job_bans Assoc list of job banned:ban holder
+ Var Details job_bans
+
+
+
+
+
+ Assoc list of job banned:ban holder
+
+
+
diff --git a/datum/job_objective.html b/datum/job_objective.html
new file mode 100644
index 0000000000000..4549a27ea6c27
--- /dev/null
+++ b/datum/job_objective.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/job_objective - Space Station 13
+
+
+
+
+
+
+Vars
+ completed Has this objective been completed?
+ completion_payment how many credits are awarded upon completion of job objective
+ description short description of what the objective entails, should include how to complete the objective if not immediately clear
+ gives_payout does this objective give out monetary rewards upon completion?
+ objective_name Fluff name of the objective
+ owner Who owns the objective
+ owner_account Which money account this objective is tied to, makes life easier during payout (signficantly)
+ payout_given Has the owner been rewarded yet?
+ Var Details completed
+
+
+
+
+
+ Has this objective been completed?
completion_payment
+
+
+
+
+
+ how many credits are awarded upon completion of job objective
description
+
+
+
+
+
+ short description of what the objective entails, should include how to complete the objective if not immediately clear
gives_payout
+
+
+
+
+
+ does this objective give out monetary rewards upon completion?
objective_name
+
+
+
+
+
+ Fluff name of the objective
owner
+
+
+
+
+
+ Who owns the objective
+ Which money account this objective is tied to, makes life easier during payout (signficantly)
payout_given
+
+
+
+
+
+ Has the owner been rewarded yet?
+
+
+
diff --git a/datum/jps_node.html b/datum/jps_node.html
new file mode 100644
index 0000000000000..fca3c12bfac55
--- /dev/null
+++ b/datum/jps_node.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/jps_node - Space Station 13
+
+
+
+
+
+
+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
Vars
+ diagonal_move_mult Multiplier for making diagonals more expensive
+ f_value The A* node weight (f_value = number_of_tiles + heuristic)
+ heuristic The A* node heuristic (a rough estimate of how far we are from the goal.)
+ jumps How many steps it took to get here from the last node
+ node_goal Nodes store the endgoal so they can process their heuristic without a reference to the pathfind datum
+ number_tiles How many steps it's taken to get here from the start
+ previous_node The node we just came from
+ tile The turf associated with this node
+ Var Details diagonal_move_mult
+
+
+
+
+
+ Multiplier for making diagonals more expensive
f_value
+
+
+
+
+
+ The A* node weight (f_value = number_of_tiles + heuristic)
heuristic
+
+
+
+
+
+ The A* node heuristic (a rough estimate of how far we are from the goal.)
jumps
+
+
+
+
+
+ How many steps it took to get here from the last node
node_goal
+
+
+
+
+
+ Nodes store the endgoal so they can process their heuristic without a reference to the pathfind datum
number_tiles
+
+
+
+
+
+ How many steps it's taken to get here from the start
previous_node
+
+
+
+
+
+ The node we just came from
tile
+
+
+
+
+
+ The turf associated with this node
+
+
+
diff --git a/datum/keybinding.html b/datum/keybinding.html
new file mode 100644
index 0000000000000..854bf88dacbbe
--- /dev/null
+++ b/datum/keybinding.html
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+ /datum/keybinding - Space Station 13
+
+
+
+
+
+
+Vars
+ category The UI category to belong to.
+ keys The default key(s) assigned to the keybind.
+ name The user-facing name. Procs
+ can_use Returns whether the keybinding can be pressed by the client's current mob.
+ down Called when the client presses the keybind.
+ should_start_looping Called on keybind press to determine looping behaviour.
+If TRUE is returned, the client will be added to SSinput's processing loop. Use VERY sparingly.
+ should_stop_looping Called on keybind release to determine looping behaviour.
+If TRUE is returned, the client will be removed from SSinput's processing loop.
+ up Called when the client releases the keybind.
+ Var Details category
+
+
+
+
+
+ The UI category to belong to.
keys
+
+
+
+
+
+ The default key(s) assigned to the keybind.
name
+
+
+
+
+
+ The user-facing name.
Proc Details can_use
+
+ Returns whether the keybinding can be pressed by the client's current mob.
+Arguments:
+
+C - The client.
+M - The client's mob.
+ down
+
+ Called when the client presses the keybind.
+Arguments:
+should_start_looping
+
+ Called on keybind press to determine looping behaviour.
+If TRUE is returned, the client will be added to SSinput's processing loop. Use VERY sparingly.
+Arguments:
+should_stop_looping
+
+ Called on keybind release to determine looping behaviour.
+If TRUE is returned, the client will be removed from SSinput's processing loop.
+Arguments:
+up
+
+ Called when the client releases the keybind.
+Arguments:
+
+
+
+
diff --git a/datum/keybinding/admin.html b/datum/keybinding/admin.html
new file mode 100644
index 0000000000000..9fa5952b8cbfa
--- /dev/null
+++ b/datum/keybinding/admin.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/keybinding/admin - Space Station 13
+
+
+
+
+
+
+Vars
+ rights The rights to use with [/proc/check_rights] if any
+ Var Details rights
+
+
+
+
+
+ The rights to use with [/proc/check_rights] if any
+
+
+
diff --git a/datum/keybinding/carbon/intent.html b/datum/keybinding/carbon/intent.html
new file mode 100644
index 0000000000000..1fabb795fb843
--- /dev/null
+++ b/datum/keybinding/carbon/intent.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/keybinding/carbon/intent - Space Station 13
+
+
+
+
+
+
+Vars
+ intent The intent to switch to.
+ Var Details intent
+
+
+
+
+
+ The intent to switch to.
+
+
+
diff --git a/datum/keybinding/carbon/intent/hold.html b/datum/keybinding/carbon/intent/hold.html
new file mode 100644
index 0000000000000..ed3d39f35cafb
--- /dev/null
+++ b/datum/keybinding/carbon/intent/hold.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/keybinding/carbon/intent/hold - Space Station 13
+
+
+
+
+
+
+
+ Var Details prev_intent
+
+
+
+
+
+ The previous intent before holding.
+
+
+
diff --git a/datum/keybinding/client/communication.html b/datum/keybinding/client/communication.html
new file mode 100644
index 0000000000000..e1b5b4bf00cf3
--- /dev/null
+++ b/datum/keybinding/client/communication.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/keybinding/client/communication - Space Station 13
+
+
+
+
+
+
+Vars
+ mute_category Used to map muted categories to channels
+ required_rights Used to store special rights if required by a keybind, such as R_ADMIN
+ Var Details mute_category
+
+
+
+
+
+ Used to map muted categories to channels
required_rights
+
+
+
+
+
+ Used to store special rights if required by a keybind, such as R_ADMIN
+
+
+
diff --git a/datum/keybinding/mob/face_dir.html b/datum/keybinding/mob/face_dir.html
new file mode 100644
index 0000000000000..34ffc97162ac5
--- /dev/null
+++ b/datum/keybinding/mob/face_dir.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/keybinding/mob/face_dir - Space Station 13
+
+
+
+
+
+
+Vars
+ dir The direction to face towards.
+ Var Details dir
+
+
+
+
+
+ The direction to face towards.
+
+
+
diff --git a/datum/keybinding/movement.html b/datum/keybinding/movement.html
new file mode 100644
index 0000000000000..9cf1212502fb9
--- /dev/null
+++ b/datum/keybinding/movement.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/keybinding/movement - Space Station 13
+
+
+
+
+
+
+Vars
+ move_dir The direction to move to when held.
+ Var Details move_dir
+
+
+
+
+
+ The direction to move to when held.
+
+
+
diff --git a/datum/keybinding/robot/module.html b/datum/keybinding/robot/module.html
new file mode 100644
index 0000000000000..ef8992f6c9288
--- /dev/null
+++ b/datum/keybinding/robot/module.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/keybinding/robot/module - Space Station 13
+
+
+
+
+
+
+
+ Var Details module_number
+
+
+
+
+
+ The module number.
+
+
+
diff --git a/datum/language.html b/datum/language.html
new file mode 100644
index 0000000000000..09eae8daeb7c8
--- /dev/null
+++ b/datum/language.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/language - Space Station 13
+
+
+
+
+
+
+Vars
+ join_override Do we want to override the word-join character for scrambled text? If null, defaults to " " or ". "
+ Var Details join_override
+
+
+
+
+
+ Do we want to override the word-join character for scrambled text? If null, defaults to " " or ". "
+
+
+
diff --git a/datum/lavaland_theme.html b/datum/lavaland_theme.html
new file mode 100644
index 0000000000000..fc4e140481203
--- /dev/null
+++ b/datum/lavaland_theme.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ /datum/lavaland_theme - Space Station 13
+
+
+
+
+
+
+Vars
+ name Name of lavaland theme
+ planet_icon_state Icon state of planet present on background of station Z-level
+ primary_turf_type Typepath of turf the /turf/simulated/floor/lava/mapping_lava
will be changed to on Late Initialization Procs
+ setup This proc should do all theme specific thing.
+Now it only generates rivers, but it can do all stuff you desire.
+ Var Details name
+
+
+
+
+
+ Name of lavaland theme
planet_icon_state
+
+
+
+
+
+ Icon state of planet present on background of station Z-level
primary_turf_type
+
+
+
+
+
+ Typepath of turf the /turf/simulated/floor/lava/mapping_lava
will be changed to on Late Initialization
Proc Details setup()
+
+
+
+
+
+ This proc should do all theme specific thing.
+Now it only generates rivers, but it can do all stuff you desire.
+
+
+
diff --git a/datum/library_catalog.html b/datum/library_catalog.html
new file mode 100644
index 0000000000000..f519135202521
--- /dev/null
+++ b/datum/library_catalog.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/library_catalog - Space Station 13
+
+
+
+
+
+
+Vars
+ books List of all programmatic books, automatically generated upon New()
+ categories List of all book categories, automatically generated upon New()
+ flagged_books Lists of all reported books in the current round
+ report_types List of all report categories, automatically generated upon New() Procs
+ get_book_category_by_id External proc that Returns a book library_category datum that matches the provided cat_id
+ get_programmatic_book_by_id External proc that Returns a report programmaticbook datum that matches the provided bookid
+ get_report_category_by_id External proc that Returns a report library_category datum that matches the provided cat_id
+ Var Details books
+
+
+
+
+
+ List of all programmatic books, automatically generated upon New()
categories
+
+
+
+
+
+ List of all book categories, automatically generated upon New()
flagged_books
+
+
+
+
+
+ Lists of all reported books in the current round
report_types
+
+
+
+
+
+ List of all report categories, automatically generated upon New()
Proc Details get_book_category_by_id(category_id)
+
+
+
+
+
+ External proc that Returns a book library_category datum that matches the provided cat_id
get_programmatic_book_by_id(id)
+
+
+
+
+
+ External proc that Returns a report programmaticbook datum that matches the provided bookid
get_report_category_by_id(category_id)
+
+
+
+
+
+ External proc that Returns a report library_category datum that matches the provided cat_id
+
+
+
diff --git a/datum/local_powernet.html b/datum/local_powernet.html
new file mode 100644
index 0000000000000..5c2a1fd91a471
--- /dev/null
+++ b/datum/local_powernet.html
@@ -0,0 +1,202 @@
+
+
+
+
+
+
+ /datum/local_powernet - Space Station 13
+
+
+
+
+
+
+Manages all power related mechanics for a single /area
+Machines in areas will directly register to this datum in order to receive power
+Machine/Turf/Item -> Local Powernet -> APC -> Terminal -> Wirenet
+Non-machines cannot register to the local powernet and should instead listen for power change signals
Vars
+ active_consumption The amount of total power consumed consumed in only this cycle
+ environment_consumption The amount of power consumed by environment in this power cycle
+ environment_powered Is the environment power channel on?
+ equipment_consumption The amount of power consumed by equipment in this power cycle
+ equipment_powered Is the equipment power channel on?
+ lighting_consumption The amount of power consumed by lighting in this power cycle
+ lighting_powered Is the lighting power channel on?
+ passive_consumption The amount of the total power consumed passively in power cycles (i.e, each cycle), does not include power channels that are off
+ passive_environment_consumption The amount of power consumed by environment in every power cycle
+ passive_equipment_consumption The amount of power consumed by equipment in every power cycle
+ passive_lighting_consumption The amount of power consumed by lighting in every power cycle
+ power_flags Bit Flags indicating special behaviour on this powernet, always powered, never powered, etc
+ powernet_apc The APC associated with this powernet
+ powernet_area The area this local powernet is attached to
+ registered_machines All machines registered to this local powernet, strictly typed to machines, everything else needs to register power change signals Procs
+ adjust_static_power Adjust static power for a specified channel, does not check to see if channel has power flowing into it
+ get_channel_usage returns active + passive power of a channel, if the channel is not powered it returns 0 watts
+ handle_flicker Handles flicker operations for apc processing, will flicker machines and lights in the powernet's area by random chance
+ has_power checks to see if the given channel in this local powernet has power
+ power_change
+ register_machine tethers a machine to this local powernet
+ set_power_channel sets a power channel on or off and adjusts total power usage accordingly
+ unregister_machine untethers a machine to this local powernet
+ use_active_power Add active power usage to the given channel, returns FALSE is channel cannot be found or the channel does not have power to give
+ Var Details active_consumption
+
+
+
+
+
+ The amount of total power consumed consumed in only this cycle
environment_consumption
+
+
+
+
+
+ The amount of power consumed by environment in this power cycle
environment_powered
+
+
+
+
+
+ Is the environment power channel on?
equipment_consumption
+
+
+
+
+
+ The amount of power consumed by equipment in this power cycle
equipment_powered
+
+
+
+
+
+ Is the equipment power channel on?
lighting_consumption
+
+
+
+
+
+ The amount of power consumed by lighting in this power cycle
lighting_powered
+
+
+
+
+
+ Is the lighting power channel on?
passive_consumption
+
+
+
+
+
+ The amount of the total power consumed passively in power cycles (i.e, each cycle), does not include power channels that are off
passive_environment_consumption
+
+
+
+
+
+ The amount of power consumed by environment in every power cycle
passive_equipment_consumption
+
+
+
+
+
+ The amount of power consumed by equipment in every power cycle
passive_lighting_consumption
+
+
+
+
+
+ The amount of power consumed by lighting in every power cycle
power_flags
+
+
+
+
+
+ Bit Flags indicating special behaviour on this powernet, always powered, never powered, etc
+ The APC associated with this powernet
powernet_area
+
+
+
+
+
+ The area this local powernet is attached to
registered_machines
+
+
+
+
+
+ All machines registered to this local powernet, strictly typed to machines, everything else needs to register power change signals
Proc Details adjust_static_power(channel, amount)
+
+
+
+
+
+ Adjust static power for a specified channel, does not check to see if channel has power flowing into it
get_channel_usage(channel)
+
+
+
+
+
+ returns active + passive power of a channel, if the channel is not powered it returns 0 watts
handle_flicker()
+
+
+
+
+
+ Handles flicker operations for apc processing, will flicker machines and lights in the powernet's area by random chance
has_power(channel)
+
+
+
+
+
+ checks to see if the given channel in this local powernet has power
power_change()
+
+
+
+
+
+ power_change
+Called when the area power status changes
+calls power change on all machines in the area, and sends the COMSIG_POWERNET_POWER_CHANGE
signal.
register_machine
+
+ tethers a machine to this local powernet
set_power_channel(channel, new_state)
+
+
+
+
+
+ sets a power channel on or off and adjusts total power usage accordingly
unregister_machine
+
+ untethers a machine to this local powernet
use_active_power(channel, amount)
+
+
+
+
+
+ Add active power usage to the given channel, returns FALSE is channel cannot be found or the channel does not have power to give
+
+
+
diff --git a/datum/log_viewer.html b/datum/log_viewer.html
new file mode 100644
index 0000000000000..479baecac7239
--- /dev/null
+++ b/datum/log_viewer.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/log_viewer - Space Station 13
+
+
+
+
+
+
+Proc Details get_earliest_log_index(/list/logs)
+
+
+
+
+
+
+Binary search like implementation to find the earliest log
+Returns the index of the earliest log using the time_from value for the given list of logs.
+It will return 0 if no log after time_from is found
+ get_latest_log_index(/list/logs)
+
+
+
+
+
+
+Binary search like implementation to find the latest log
+Returns the index of the latest log using the time_to value (1 second is added to prevent rounding weirdness) for the given list of logs.
+It will return 0 if no log before time_to + 10 is found
+
+
+
+
diff --git a/datum/looping_sound.html b/datum/looping_sound.html
new file mode 100644
index 0000000000000..d95ce01e65aa7
--- /dev/null
+++ b/datum/looping_sound.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/looping_sound - Space Station 13
+
+
+
+
+
+
+Vars
+ area_sound If this sound is based off of an area
+ channel Channel of the audio, random otherwise
+ Var Details area_sound
+
+
+
+
+
+ If this sound is based off of an area
channel
+
+
+
+
+
+ Channel of the audio, random otherwise
+
+
+
diff --git a/datum/looping_sound/decreasing.html b/datum/looping_sound/decreasing.html
new file mode 100644
index 0000000000000..2b2307023d575
--- /dev/null
+++ b/datum/looping_sound/decreasing.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/looping_sound/decreasing - Space Station 13
+
+
+
+
+
+
+Looping sounds that decrease volume by a specified % each loop until it reaches a specified total % volume.
+ Var Details decrease_by_amount
+
+
+
+
+
+ How much, as a % of original, to decrease the volume by each loop
decrease_to_amount
+
+
+
+
+
+ What volume level, as a % of original, to eventually decrease to
+
+
+
diff --git a/datum/map.html b/datum/map.html
new file mode 100644
index 0000000000000..413aefe9a37a2
--- /dev/null
+++ b/datum/map.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /datum/map - Space Station 13
+
+
+
+
+
+
+Map Datum
+Datum which holds all of the information for maps ingame
+This is used for showing map information, as well as map loading
Vars
+ fluff_name Name of the map to be shown in the statpanel
+ map_path Path to the map file
+ min_players_random Minimum amount of players required for this map to be eligible in random map picks.
+ technical_name Name to be used when using the map from a technical standpoint. Used in TGUI Nanomaps among other things.
+ voteable Is this map voteable?
+ webmap_url URL to the maps webmap
+ Var Details fluff_name
+
+
+
+
+
+ Name of the map to be shown in the statpanel
map_path
+
+
+
+
+
+ Path to the map file
min_players_random
+
+
+
+
+
+ Minimum amount of players required for this map to be eligible in random map picks.
technical_name
+
+
+
+
+
+ Name to be used when using the map from a technical standpoint. Used in TGUI Nanomaps among other things.
voteable
+
+
+
+
+
+ Is this map voteable?
webmap_url
+
+
+
+
+
+ URL to the maps webmap
+
+
+
diff --git a/datum/map_template.html b/datum/map_template.html
new file mode 100644
index 0000000000000..17046c4081eb1
--- /dev/null
+++ b/datum/map_template.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/map_template - Space Station 13
+
+
+
+
+
+
+Vars
+ ci_exclude Do we exclude this from CI checks? If so, set this to the templates pathtype itself to avoid it getting passed down
+ Var Details ci_exclude
+
+
+
+
+
+ Do we exclude this from CI checks? If so, set this to the templates pathtype itself to avoid it getting passed down
+
+
+
diff --git a/datum/martial_art.html b/datum/martial_art.html
new file mode 100644
index 0000000000000..ed3c4ae70ddfd
--- /dev/null
+++ b/datum/martial_art.html
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ /datum/martial_art - Space Station 13
+
+
+
+
+
+
+Vars
+ base The permanent style.
+ block_chance Chance to block melee attacks using items while on throw mode.
+ can_horizontally_grab Whether or not you can grab someone while horizontal with this Martial Art
+ can_parry If the martial art allows parrying.
+ combo_timer Stores the timer_id for the combo timeout timer
+ combos What combos can the user do? List of combo types.
+ current_combos What combos are currently (possibly) being performed.
+ deflection_chance Chance to deflect projectiles while on throw mode.
+ has_explaination_verb If the martial art has it's own explaination verb.
+ in_stance If the user is preparing a martial arts stance.
+ no_baton Set to TRUE to prevent users of this style from using stun batons (and stunprods)
+ no_baton_reason Message displayed when someone uses a baton when its forbidden by a martial art
+ no_guns Set to TRUE to prevent users of this style from using guns (sleeping carp, highlander). They can still pick them up, but not fire them.
+ no_guns_message Message to tell the style user if they try and use a gun while no_guns = TRUE (DISHONORABRU!)
+ reroute_deflection Can it reflect projectiles in a random direction?
+ weight The priority of which martial art is picked from all the ones someone knows, the higher the number, the higher the priority. Procs
+ get_highest_weight Returns the martial art with the highest weight from all the ones someone knows.
+ Var Details
+ The permanent style.
block_chance
+
+
+
+
+
+ Chance to block melee attacks using items while on throw mode.
can_horizontally_grab
+
+
+
+
+
+ Whether or not you can grab someone while horizontal with this Martial Art
can_parry
+
+
+
+
+
+ If the martial art allows parrying.
combo_timer
+
+
+
+
+
+ Stores the timer_id for the combo timeout timer
combos
+
+
+
+
+
+ What combos can the user do? List of combo types.
current_combos
+ – /list/datum/martial_art
+
+
+
+
+ What combos are currently (possibly) being performed.
deflection_chance
+
+
+
+
+
+ Chance to deflect projectiles while on throw mode.
has_explaination_verb
+
+
+
+
+
+ If the martial art has it's own explaination verb.
in_stance
+
+
+
+
+
+ If the user is preparing a martial arts stance.
no_baton
+
+
+
+
+
+ Set to TRUE to prevent users of this style from using stun batons (and stunprods)
no_baton_reason
+
+
+
+
+
+ Message displayed when someone uses a baton when its forbidden by a martial art
no_guns
+
+
+
+
+
+ Set to TRUE to prevent users of this style from using guns (sleeping carp, highlander). They can still pick them up, but not fire them.
no_guns_message
+
+
+
+
+
+ Message to tell the style user if they try and use a gun while no_guns = TRUE (DISHONORABRU!)
reroute_deflection
+
+
+
+
+
+ Can it reflect projectiles in a random direction?
weight
+
+
+
+
+
+ The priority of which martial art is picked from all the ones someone knows, the higher the number, the higher the priority.
Proc Details
+ Returns the martial art with the highest weight from all the ones someone knows.
+
+
+
diff --git a/datum/martial_art/muscle_implant.html b/datum/martial_art/muscle_implant.html
new file mode 100644
index 0000000000000..cd67408c3c668
--- /dev/null
+++ b/datum/martial_art/muscle_implant.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/martial_art/muscle_implant - Space Station 13
+
+
+
+
+
+
+
+ Var Details is_emped
+
+
+
+
+
+ Are we EMP'ed?
punch_damage
+
+
+
+
+
+ How much damage should our punches deal
+
+
+
diff --git a/datum/martial_combo.html b/datum/martial_combo.html
new file mode 100644
index 0000000000000..dc1ad2272255c
--- /dev/null
+++ b/datum/martial_combo.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/martial_combo - Space Station 13
+
+
+
+
+
+
+
+ Var Details combo_text_override
+
+
+
+
+
+ How to do the combo. If null it'll auto generate it from the steps
combos_require_same_target
+
+
+
+
+
+ If you require to do the combo's on the same target
current_combo_target
+
+
+
+
+
+ Who is the target the combo is being executed on
current_step_index
+
+
+
+
+
+ What index to check
explaination_text
+
+
+
+
+
+ What does it do
name
+
+
+
+
+
+ Name used to explain the combo
steps
+
+
+
+
+
+ Which steps need to be performed
+
+
+
diff --git a/datum/milla_safe.html b/datum/milla_safe.html
new file mode 100644
index 0000000000000..cda5f74be6687
--- /dev/null
+++ b/datum/milla_safe.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ /datum/milla_safe - Space Station 13
+
+
+
+
+
+
+Create a subclass of this and implement on_run
to manipulate tile air safely.
Procs
+ add_turf_air Add air to a turf. Only use from on_run
.
+ get_turf_air Fetch the air for a turf. Only use from on_run
.
+ invoke_async Call this to make the subclass run when it's safe to do so. Args will be passed to on_run.
+ on_run All subclasses should implement this.
+ private_unsafe_invoke Do not call this yourself. This is what is called to run your code from a safe context.
+ set_turf_air Completely replace the air for a turf. Only use from on_run
.
+ soft_assert_safe Used internally to check that we're running safely, but without breaking things worse if we aren't.
Proc Details
+ Add air to a turf. Only use from on_run
.
get_turf_air
+
+ Fetch the air for a turf. Only use from on_run
.
invoke_async(...)
+
+
+
+
+
+ Call this to make the subclass run when it's safe to do so. Args will be passed to on_run.
on_run(...)
+
+
+
+
+
+ All subclasses should implement this.
private_unsafe_invoke()
+
+
+
+
+
+ Do not call this yourself. This is what is called to run your code from a safe context.
+ Completely replace the air for a turf. Only use from on_run
.
soft_assert_safe()
+
+
+
+
+
+ Used internally to check that we're running safely, but without breaking things worse if we aren't.
+
+
+
diff --git a/datum/milla_safe/hotspot_burn_plasma.html b/datum/milla_safe/hotspot_burn_plasma.html
new file mode 100644
index 0000000000000..3a3a706111950
--- /dev/null
+++ b/datum/milla_safe/hotspot_burn_plasma.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/milla_safe/hotspot_burn_plasma - Space Station 13
+
+
+
+
+
+
+Procs
+ on_run Burns the air affected by this hotspot. A hotspot is effectively a gas fire that might not cover the entire tile yet. This proc makes that "partial fire" burn, altering the tile as a whole, and potentially setting the entire tile on fire.
Proc Details on_run(/obj /effect/hotspot/hotspot)
+
+
+
+
+
+ Burns the air affected by this hotspot. A hotspot is effectively a gas fire that might not cover the entire tile yet. This proc makes that "partial fire" burn, altering the tile as a whole, and potentially setting the entire tile on fire.
+
+
+
diff --git a/datum/mimic_form.html b/datum/mimic_form.html
new file mode 100644
index 0000000000000..dad7daabfc5b5
--- /dev/null
+++ b/datum/mimic_form.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/mimic_form - Space Station 13
+
+
+
+
+
+
+Vars
+ appearance How does the form look like?
+ examine_text What is the examine text paired with this form
+ name What the name of the form is
+ Var Details appearance
+
+
+
+
+
+ How does the form look like?
examine_text
+
+
+
+
+
+ What is the examine text paired with this form
name
+
+
+
+
+
+ What the name of the form is
+
+
+
diff --git a/datum/mind.html b/datum/mind.html
new file mode 100644
index 0000000000000..7cc19bf6c2268
--- /dev/null
+++ b/datum/mind.html
@@ -0,0 +1,180 @@
+
+
+
+
+
+
+ /datum/mind - Space Station 13
+
+
+
+
+
+
+Vars
+ antag_datums A list of all the antagonist datums that the player is (does not include undatumized antags)
+ has_been_rev Tracks if this mind has been a rev or not
+ job_objectives a list of objectives that a player with this job could complete for space credit rewards
+ kudos_received_from List of people who we've received kudos from.
+ original_mob_UID The original mob's UID. Used for example to see if a silicon with antag status is actually malf. Or just an antag put in a borg
+ original_mob_name The original mob's name. Used in Dchat messages
+ teams A lazy list of all teams the player is part of but doesnt have an antag role for, (i.e. a custom admin team) Procs
+ Topic Impanted
+ add_antag_datum Create and/or add the datum_type_or_instance
antag datum to the src mind.
+ add_mind_objective Add an objective to the mind
+ get_all_objectives Gets every objective this mind owns, including all of those from any antag datums they have, and returns them as a list.
+ get_hijack_speed This proc sets the hijack speed for a mob. If greater than zero, they can hijack. Outputs in seconds.
+ has_antag_datum Returns an antag datum instance if the src mind has the specified datum_type
. Returns null
otherwise.
+ has_objectives A quicker version of get_all_objectives() but only for seeing if they have any objectives at all
+ memory_edit_nuclear Enthralled
+ remove_all_antag_datums Removes all antag datums from the src mind.
+ remove_antag_datum Remove the specified datum_type
antag datum from the src mind.
+ remove_mind_objective Completely remove the given objective from the mind, and include antagdatums/teams if remove_from_everything is true
+ Var Details antag_datums
+
+
+
+
+
+ A list of all the antagonist datums that the player is (does not include undatumized antags)
has_been_rev
+
+
+
+
+
+ Tracks if this mind has been a rev or not
job_objectives
+
+
+
+
+
+ a list of objectives that a player with this job could complete for space credit rewards
kudos_received_from
+
+
+
+
+
+ List of people who we've received kudos from.
original_mob_UID
+
+
+
+
+
+ The original mob's UID. Used for example to see if a silicon with antag status is actually malf. Or just an antag put in a borg
original_mob_name
+
+
+
+
+
+ The original mob's name. Used in Dchat messages
teams
+
+
+
+
+
+ A lazy list of all teams the player is part of but doesnt have an antag role for, (i.e. a custom admin team)
Proc Details Topic(href, href_list)
+
+
+
+
+
+ Impanted
+REVOLUTION
+WIZARD
+CHANGELING
+VAMPIRE
+NUCLEAR
+Abductors
+Zombies
+TRAITOR
+CULT
+SILICON
add_antag_datum(datum_type_or_instance, /datum /team /team)
+
+
+
+
+
+ Create and/or add the datum_type_or_instance
antag datum to the src mind.
+Arguments:
+
+datum_type - an antag datum typepath or instance
+datum/team/team - the antag team that the src mind should join, if any
+ add_mind_objective
+
+ Add an objective to the mind
get_all_objectives(include_team)
+
+
+
+
+
+ Gets every objective this mind owns, including all of those from any antag datums they have, and returns them as a list.
get_hijack_speed()
+
+
+
+
+
+ This proc sets the hijack speed for a mob. If greater than zero, they can hijack. Outputs in seconds.
has_antag_datum(datum_type, check_subtypes)
+
+
+
+
+
+ Returns an antag datum instance if the src mind has the specified datum_type
. Returns null
otherwise.
+Arguments:
+
+datum_type - an antag datum typepath
+check_subtypes - TRUE if this proc will consider subtypes of datum_type
as valid. FALSE if only the exact same type should be considered.
+ has_objectives(include_team)
+
+
+
+
+
+ A quicker version of get_all_objectives() but only for seeing if they have any objectives at all
+ Enthralled
remove_all_antag_datums(handle_target_cryo)
+
+
+
+
+
+ Removes all antag datums from the src mind.
+Use this over doing QDEL_LIST_CONTENTS(antag_datums)
.
remove_antag_datum(datum_type, check_subtypes, silent_removal)
+
+
+
+
+
+ Remove the specified datum_type
antag datum from the src mind.
+Arguments:
+
+datum_type - an antag datum typepath
+ remove_mind_objective
+
+ Completely remove the given objective from the mind, and include antagdatums/teams if remove_from_everything is true
+
+
+
diff --git a/datum/mod_theme.html b/datum/mod_theme.html
new file mode 100644
index 0000000000000..2c8ac040d54ab
--- /dev/null
+++ b/datum/mod_theme.html
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+ /datum/mod_theme - Space Station 13
+
+
+
+
+
+
+MODsuit theme, instanced once and then used by MODsuits to grab various statistics.
+ Var Details allowed_suit_storage
+
+
+
+
+
+ Allowed items in the chestplate's suit storage.
armor_type_1
+
+
+
+
+
+ Armor shared across the MOD parts.
armor_type_2
+
+
+
+
+
+ the actual armor object placed in a datum as I am tired and I just want this to work
atom_flags
+
+
+
+
+
+ Atom flags shared across the MOD parts.
charge_drain
+
+
+
+
+
+ How much battery power the MOD uses by just being on
complexity_max
+
+
+
+
+
+ How much modules can the MOD carry without malfunctioning.
default_skin
+
+
+
+
+
+ Default skin of the MOD.
desc
+
+
+
+
+
+ Description added to the MOD.
extended_desc
+
+
+
+
+
+ Extended description on examine_more
inbuilt_modules
+
+
+
+
+
+ List of inbuilt modules. These are different from the pre-equipped suits, you should mainly use these for unremovable modules with 0 complexity.
max_heat_protection_temperature
+
+
+
+
+
+ Max heat protection shared across the MOD parts.
min_cold_protection_temperature
+
+
+
+
+
+ Max cold protection shared across the MOD parts.
name
+
+
+
+
+
+ Theme name for the MOD.
resistance_flags
+
+
+
+
+
+ Resistance flags shared across the MOD parts.
siemens_coefficient
+
+
+
+
+
+ Siemens shared across the MOD parts.
skins
+
+
+
+
+
+ List of skins with their appropriate clothing flags.
slot_flags
+
+
+
+
+
+ The slot this mod theme fits on
slowdown_active
+
+
+
+
+
+ Slowdown of the MOD when active.
slowdown_inactive
+
+
+
+
+
+ Slowdown of the MOD when not active.
ui_theme
+
+
+
+
+
+ Theme used by the MOD TGUI.
+
+
+
diff --git a/datum/money_account.html b/datum/money_account.html
new file mode 100644
index 0000000000000..302c298a4dc52
--- /dev/null
+++ b/datum/money_account.html
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ /datum/money_account - Space Station 13
+
+
+
+
+
+
+Vars
+ account_log Tracking log of all actions on the account, for IC usage & can have entries deleted
+ account_name Full name of the account, set at creation of the account
+ account_number Unique Account Number Identifier for the account -Username
+ account_pin 4 digit pin password for accessing the money account -Password
+ account_type Type of account this is
+ associated_nanobank_programs The nanobank programs associated with this account, used for notifying crew members through PDA, this is a lazy list
+ credit_balance How many space credits are in the account
+ database_holder reference to parent account database, only used for GC
+ hidden_account_log Tracking log of all actions on the account, used for admin logging and debugging
+ pay_check_bonuses pay bonuses for the next pay period for this account, this is a lazy list
+ pay_check_deductions pay deductions for the next pay period for this account, this is a lazy list
+ payday_amount the amount this account receives every payday
+ security_level Level of security on the money account
+ suspended Bool - Is this account locked out from being used completely?
+ transfer_requests The requests made to this money_account used for ATM and NanoBank credit transfers, this is a lazy list Procs
+ deposit_credits set proc for depositing money, changing credit_balance should always be done through procs
+ set_credits sets the credit balance to specified value, changing credit_balance should always be done through procs
+ Var Details account_log
+
+
+
+
+
+ Tracking log of all actions on the account, for IC usage & can have entries deleted
account_name
+
+
+
+
+
+ Full name of the account, set at creation of the account
account_number
+
+
+
+
+
+ Unique Account Number Identifier for the account -Username
account_pin
+
+
+
+
+
+ 4 digit pin password for accessing the money account -Password
account_type
+
+
+
+
+
+ Type of account this is
associated_nanobank_programs
+
+
+
+
+
+ The nanobank programs associated with this account, used for notifying crew members through PDA, this is a lazy list
credit_balance
+
+
+
+
+
+ How many space credits are in the account
+ reference to parent account database, only used for GC
hidden_account_log
+
+
+
+
+
+ Tracking log of all actions on the account, used for admin logging and debugging
pay_check_bonuses
+
+
+
+
+
+ pay bonuses for the next pay period for this account, this is a lazy list
pay_check_deductions
+
+
+
+
+
+ pay deductions for the next pay period for this account, this is a lazy list
payday_amount
+
+
+
+
+
+ the amount this account receives every payday
security_level
+
+
+
+
+
+ Level of security on the money account
suspended
+
+
+
+
+
+ Bool - Is this account locked out from being used completely?
transfer_requests
+
+
+
+
+
+ The requests made to this money_account used for ATM and NanoBank credit transfers, this is a lazy list
Proc Details deposit_credits(amount)
+
+
+
+
+
+ set proc for depositing money, changing credit_balance should always be done through procs
set_credits(amount)
+
+
+
+
+
+ sets the credit balance to specified value, changing credit_balance should always be done through procs
+
+
+
diff --git a/datum/money_account_database.html b/datum/money_account_database.html
new file mode 100644
index 0000000000000..b069c8c8761b9
--- /dev/null
+++ b/datum/money_account_database.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/money_account_database - Space Station 13
+
+
+
+
+
+
+Vars
+ database_logs list of actions taken on the money account database, such as creating/deleting accounts
+ hidden_database_logs Tracking log of all actions on the account databse, used for admin logging and debugging
+ online Will the database permit actions on it? Useful for random events
+ user_accounts list of money account datums for individual users Procs
+ find_user_account takes in an account_numb and returns either an account if it locates one or null if it finds none
+ Var Details database_logs
+
+
+
+
+
+ list of actions taken on the money account database, such as creating/deleting accounts
hidden_database_logs
+
+
+
+
+
+ Tracking log of all actions on the account databse, used for admin logging and debugging
online
+
+
+
+
+
+ Will the database permit actions on it? Useful for random events
user_accounts
+
+
+
+
+
+ list of money account datums for individual users
Proc Details find_user_account(account_number, include_departments)
+
+
+
+
+
+ takes in an account_numb and returns either an account if it locates one or null if it finds none
+
+
+
diff --git a/datum/money_account_database/main_station.html b/datum/money_account_database/main_station.html
new file mode 100644
index 0000000000000..1585c1b3ae349
--- /dev/null
+++ b/datum/money_account_database/main_station.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/money_account_database/main_station - Space Station 13
+
+
+
+
+
+
+
+ Var Details department_accounts
+
+
+
+
+
+ list of money accounts for each department on station
+
+
+
diff --git a/datum/movement_detector.html b/datum/movement_detector.html
new file mode 100644
index 0000000000000..596588cbf084e
--- /dev/null
+++ b/datum/movement_detector.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ /datum/movement_detector - Space Station 13
+
+
+
+
+
+
+A datum to handle the busywork of registering signals to handle in depth tracking of a movable
Vars
+ listener Listener is whatever callback that will increase the tracking of the movable, usually on stepped. Procs
+ move_react Reacts to any movement that would cause a change in coordinates of the tracked movable atom
+This works by detecting movement of either the tracked object, or anything it is inside, recursively
+ track Sets up tracking of the given movable atom
+ untrack Stops tracking
+ Var Details listener
+
+
+
+
+
+ Listener is whatever callback that will increase the tracking of the movable, usually on stepped.
Proc Details move_react
+
+ Reacts to any movement that would cause a change in coordinates of the tracked movable atom
+This works by detecting movement of either the tracked object, or anything it is inside, recursively
track
+
+ Sets up tracking of the given movable atom
untrack()
+
+
+
+
+
+ Stops tracking
+
+
+
diff --git a/datum/mutation.html b/datum/mutation.html
new file mode 100644
index 0000000000000..184ebb530cdd5
--- /dev/null
+++ b/datum/mutation.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/mutation - Space Station 13
+
+
+
+
+
+
+
+ Var Details activation_messages
+
+
+
+
+
+ Possible activation messages
block
+
+
+
+
+
+ What gene activates this? Set in initialize()!
deactivation_messages
+
+
+
+
+
+ Possible deactivation messages
desc
+
+
+
+
+
+ Description of the gene
instability
+
+
+
+
+
+ Chance of the gene to cause adverse effects when active
name
+
+
+
+
+
+ Display name
traits_to_add
+
+
+
+
+
+ Trait to give, if any
+
+
+
diff --git a/datum/nttc_configuration.html b/datum/nttc_configuration.html
new file mode 100644
index 0000000000000..36b1c2af2cb64
--- /dev/null
+++ b/datum/nttc_configuration.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/nttc_configuration - Space Station 13
+
+
+
+
+
+
+Vars
+ all_jobs Associative list of all jobs and their department color classes
+ cc_jobs List of CentComm jobs
+ ert_jobs List of ERT jobs
+ heads List of Command jobs
+ tsf_jobs List of SolGov Marine jobs
+ Var Details all_jobs
+
+
+
+
+
+ Associative list of all jobs and their department color classes
cc_jobs
+
+
+
+
+
+ List of CentComm jobs
ert_jobs
+
+
+
+
+
+ List of ERT jobs
heads
+
+
+
+
+
+ List of Command jobs
tsf_jobs
+
+
+
+
+
+ List of SolGov Marine jobs
+
+
+
diff --git a/datum/object_window_info.html b/datum/object_window_info.html
new file mode 100644
index 0000000000000..5bec1c5c4654a
--- /dev/null
+++ b/datum/object_window_info.html
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+ /datum/object_window_info - Space Station 13
+
+
+
+
+
+
+Datum that holds and tracks info about a client's object window
+Really only exists because I want to be able to do logic with signals
+And need a safe place to do the registration
Vars
+ actively_tracking Are we currently tracking a turf?
+ atoms_to_images list of atom -> image string for objects we have had in the right click tab
+this is our caching
+ atoms_to_imagify list of atoms to turn into images for the object tab
+ atoms_to_show list of atoms to show to our client via the object tab, at least currently
+ max_index The maximum index currently sent to the client.
+ min_index The minimum index currently sent to the client.
+ parent Our owner client Procs
+ process Takes a client, attempts to generate object images for it
+We will update the client with any improvements we make when we're done
+ viewing_atom_deleted Clears any cached object window stuff
+We use hard refs cause we'd need a signal for this anyway. Cleaner this way
+ Var Details actively_tracking
+
+
+
+
+
+ Are we currently tracking a turf?
atoms_to_images
+
+
+
+
+
+ list of atom -> image string for objects we have had in the right click tab
+this is our caching
atoms_to_imagify
+
+
+
+
+
+ list of atoms to turn into images for the object tab
atoms_to_show
+
+
+
+
+
+ list of atoms to show to our client via the object tab, at least currently
max_index
+
+
+
+
+
+ The maximum index currently sent to the client.
min_index
+
+
+
+
+
+ The minimum index currently sent to the client.
parent
+
+
+
+
+
+ Our owner client
Proc Details process(delta_time)
+
+
+
+
+
+ Takes a client, attempts to generate object images for it
+We will update the client with any improvements we make when we're done
viewing_atom_deleted
+
+ Clears any cached object window stuff
+We use hard refs cause we'd need a signal for this anyway. Cleaner this way
+
+
+
diff --git a/datum/objective.html b/datum/objective.html
new file mode 100644
index 0000000000000..8cd68674711e3
--- /dev/null
+++ b/datum/objective.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/objective - Space Station 13
+
+
+
+
+
+
+Vars
+ completed If the objective has been completed.
+ explanation_text What the owner is supposed to do to complete the objective.
+ martyr_compatible If the objective is compatible with martyr objective, i.e. if you can still do it while dead.
+ name Proper name of the objective. Not player facing, only shown to admins when adding objectives.
+Leave as null (or override to null) if you don't want admins to see that objective as a viable one to add (such as the mindslave objective).
+ needs_target If the objective should have find_target()
called for it.
+ owner Owner of the objective.
+Note that it's fine to set this directly, but when needing to check completion of the objective or otherwise check conditions on the owner of the objective,
+always use get_owners()
, and check against ALL the owners. get_owners()
accounts for objectives that may be team based and therefore have multiple owners.
+ target The target of the objective.
+ target_amount If they are focused on a particular number. Steal objectives have their own counter.
+ team The team the objective belongs to, if any. Procs
+ establish_signals This is for objectives that need to register signals, so place them in here.
+ get_owners Get all owners of the objective, including ones from the objective's team, if it has one.
+ on_target_cryo Called when the objective's target goes to cryo.
+ post_target_cryo Called a tick after when the objective's target goes to cryo.
+ update_explanation_text This is for objectives that have reason to update their text, such as target changes.
+ Var Details completed
+
+
+
+
+
+ If the objective has been completed.
explanation_text
+
+
+
+
+
+ What the owner is supposed to do to complete the objective.
martyr_compatible
+
+
+
+
+
+ If the objective is compatible with martyr objective, i.e. if you can still do it while dead.
name
+
+
+
+
+
+ Proper name of the objective. Not player facing, only shown to admins when adding objectives.
+Leave as null (or override to null) if you don't want admins to see that objective as a viable one to add (such as the mindslave objective).
needs_target
+
+
+
+
+
+ If the objective should have find_target()
called for it.
owner
+
+
+
+
+
+ Owner of the objective.
+Note that it's fine to set this directly, but when needing to check completion of the objective or otherwise check conditions on the owner of the objective,
+always use get_owners()
, and check against ALL the owners. get_owners()
accounts for objectives that may be team based and therefore have multiple owners.
target
+
+
+
+
+
+ The target of the objective.
target_amount
+
+
+
+
+
+ If they are focused on a particular number. Steal objectives have their own counter.
team
+
+
+
+
+
+ The team the objective belongs to, if any.
Proc Details establish_signals()
+
+
+
+
+
+ This is for objectives that need to register signals, so place them in here.
get_owners()
+
+
+
+
+
+ Get all owners of the objective, including ones from the objective's team, if it has one.
+Use this over directly referencing owner
in most cases.
on_target_cryo()
+
+
+
+
+
+ Called when the objective's target goes to cryo.
post_target_cryo(/list/owners)
+
+
+
+
+
+ Called a tick after when the objective's target goes to cryo.
update_explanation_text()
+
+
+
+
+
+ This is for objectives that have reason to update their text, such as target changes.
+
+
+
diff --git a/datum/objective/contract.html b/datum/objective/contract.html
new file mode 100644
index 0000000000000..7d8aa34af7b73
--- /dev/null
+++ b/datum/objective/contract.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/objective/contract - Space Station 13
+
+
+
+
+
+
+Describes the target to kidnap and the extraction area of a /datum/syndicate_contract .
Vars
+ candidate_zones Associated lazy list of areas the contractor can pick from and extract the kidnapee there.
+Structure: EXTRACTION_DIFFICULTY_(EASY|MEDIUM|HARD) => /area
+ chosen_difficulty The contract's difficulty. Determines the reward on completion.
+ extraction_zone The designated area where the kidnapee must be extracted to complete the objective.
+ forbidden_jobs Jobs that cannot be the kidnapping target.
+ name_fixer Name fixer regex because area names have rogue characters sometimes.
+ owning_contract The owning /datum/syndicatce_contract .
+ possible_zone_names Static whitelist of area names that can be used as an extraction zone, structured by difficulty.
+An area's difficulty should be measured in how crowded it generally is, how out of the way it is and so on.
+Outdoor or invalid areas are filtered out.
+Structure: EXTRACTION_DIFFICULTY_(EASY|MEDIUM|HARD) => list( )
+ possible_zones Static list that is basically /datum/objective/contract/var/possible_zone_names but with area names replaced by /area objects if available.
+ target_blacklist List of people who cannot be selected as contract target. Procs
+ can_start_extraction_process Returns whether the extraction process can be started.
+ choose_difficulty Updates the objective's information with the given difficulty.
+ pick_candidate_zone Assigns a randomly selected zone to the contract's selectable zone at the given difficulty.
+ Var Details candidate_zones
+
+
+
+
+
+ Associated lazy list of areas the contractor can pick from and extract the kidnapee there.
+Structure: EXTRACTION_DIFFICULTY_(EASY|MEDIUM|HARD) => /area
chosen_difficulty
+
+
+
+
+
+ The contract's difficulty. Determines the reward on completion.
+ The designated area where the kidnapee must be extracted to complete the objective.
forbidden_jobs
+
+
+
+
+
+ Jobs that cannot be the kidnapping target.
name_fixer
+
+
+
+
+
+ Name fixer regex because area names have rogue characters sometimes.
+ The owning /datum/syndicatce_contract .
possible_zone_names
+
+
+
+
+
+ Static whitelist of area names that can be used as an extraction zone, structured by difficulty.
+An area's difficulty should be measured in how crowded it generally is, how out of the way it is and so on.
+Outdoor or invalid areas are filtered out.
+Structure: EXTRACTION_DIFFICULTY_(EASY|MEDIUM|HARD) => list( )
possible_zones
+
+
+
+
+
+ Static list that is basically /datum/objective/contract/var/possible_zone_names but with area names replaced by /area objects if available.
target_blacklist
+
+
+
+
+
+ List of people who cannot be selected as contract target.
Proc Details
+ Returns whether the extraction process can be started.
+Arguments:
+
+caller - The person trying to call the extraction.
+ choose_difficulty
+
+ Updates the objective's information with the given difficulty.
+Arguments:
+pick_candidate_zone(difficulty)
+
+
+
+
+
+ Assigns a randomly selected zone to the contract's selectable zone at the given difficulty.
+Arguments:
+
+difficulty - The difficulty to assign.
+
+
+
+
diff --git a/datum/objective/escape/escape_with_identity.html b/datum/objective/escape/escape_with_identity.html
new file mode 100644
index 0000000000000..cf9c2260bd8a0
--- /dev/null
+++ b/datum/objective/escape/escape_with_identity.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/objective/escape/escape_with_identity - Space Station 13
+
+
+
+
+
+
+
+ Var Details has_assassinate_objective
+
+
+
+
+
+ If the objective has an assassinate objective tied to it.
target_real_name
+
+
+
+
+
+ Stored because the target's [mob/var/real_name]
can change over the course of the round.
+
+
+
diff --git a/datum/objective/experiment.html b/datum/objective/experiment.html
new file mode 100644
index 0000000000000..dc5e9bc118fd3
--- /dev/null
+++ b/datum/objective/experiment.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/objective/experiment - Space Station 13
+
+
+
+
+
+
+
+ Var Details abductor_team_number
+
+
+
+
+
+ Which abductor team number does this belong to.
+
+
+
diff --git a/datum/objective/pulse_demon/drain.html b/datum/objective/pulse_demon/drain.html
new file mode 100644
index 0000000000000..62f887c347162
--- /dev/null
+++ b/datum/objective/pulse_demon/drain.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/objective/pulse_demon/drain - Space Station 13
+
+
+
+
+
+
+Vars
+ amount Amount of power we need to drain, ranges from 500 KW to 5 MW
+ Var Details amount
+
+
+
+
+
+ Amount of power we need to drain, ranges from 500 KW to 5 MW
+
+
+
diff --git a/datum/objective/pulse_demon/infest.html b/datum/objective/pulse_demon/infest.html
new file mode 100644
index 0000000000000..b6521037fc168
--- /dev/null
+++ b/datum/objective/pulse_demon/infest.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/objective/pulse_demon/infest - Space Station 13
+
+
+
+
+
+
+Vars
+ amount Amount of APCs we need to hijack, can be 15, 20, or 25
+ Var Details amount
+
+
+
+
+
+ Amount of APCs we need to hijack, can be 15, 20, or 25
+
+
+
diff --git a/datum/objective_holder.html b/datum/objective_holder.html
new file mode 100644
index 0000000000000..f202055568a88
--- /dev/null
+++ b/datum/objective_holder.html
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+ /datum/objective_holder - Space Station 13
+
+
+
+
+
+
+An objective holder for minds, antag datums, and teams.
Vars
+ assigned_targets A list of strings which contain targets of the antagonist's objectives. Used to prevent duplicate objectives.
+ objective_owner Who do we belong to [mind, antagonist, team]
+ objectives Our list of current objectives
+ on_add_callback A callback invoked when a new objective is added. This is required because sometimes objectives are added directly without going through objective_owner. Not currently used.
+ on_remove_callback A callback invoked when a new objective is added. This is required because sometimes objectives are removed directly without going through objective_owner (EX: replace_objective(), clear()). Not currently used. Procs
+ add_objective Add an objective.
+ clear Clear all objectives of a certain type
+ get_objectives Get all of the objectives we own
+ handle_objective Handles the searching of targets for objectives that need it.
+ has_objectives Do we have any objectives
+ remove_objective Remove an objective and deletes it. You should never need to transfer an objective.
+ replace_objective Replace old_objective with new_objective
+ set_callbacks Sets the callbacks, not on new because that can be irreliable for subtypes.
+ Var Details assigned_targets
+
+
+
+
+
+ A list of strings which contain targets of the antagonist's objectives. Used to prevent duplicate objectives.
objective_owner
+
+
+
+
+
+ Who do we belong to [mind, antagonist, team]
objectives
+
+
+
+
+
+ Our list of current objectives
on_add_callback
+
+
+
+
+
+ A callback invoked when a new objective is added. This is required because sometimes objectives are added directly without going through objective_owner. Not currently used.
on_remove_callback
+
+
+
+
+
+ A callback invoked when a new objective is added. This is required because sometimes objectives are removed directly without going through objective_owner (EX: replace_objective(), clear()). Not currently used.
Proc Details add_objective(/datum /objective /Objective, _explanation_text, /mob /target_override, add_to_list)
+
+
+
+
+
+ Add an objective.
+
+Objective - The objective to add /datum/objective, path
+_explanation_text - Optional, will assign this text to the objective
+target_override - A target override, will prevent finding a target
+add_to_list - Do we add the new objective to our list? Or will it be handled elsewhere (like replace_objective). Should not be set to false outside of this file.
+ clear(check_type)
+
+
+
+
+
+ Clear all objectives of a certain type
+
+checktype - The type to check, if null, remoe all objectives.
+ get_objectives()
+
+
+
+
+
+ Get all of the objectives we own
handle_objective
+
+ Handles the searching of targets for objectives that need it.
has_objectives()
+
+
+
+
+
+ Do we have any objectives
remove_objective
+
+ Remove an objective and deletes it. You should never need to transfer an objective.
replace_objective
+
+ Replace old_objective with new_objective
set_callbacks(_on_add_callback, _on_remove_callback)
+
+
+
+
+
+ Sets the callbacks, not on new because that can be irreliable for subtypes.
+
+
+
diff --git a/datum/organ.html b/datum/organ.html
new file mode 100644
index 0000000000000..fc4471d2acb97
--- /dev/null
+++ b/datum/organ.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ /datum/organ - Space Station 13
+
+
+
+
+
+
+Procs
+ on_insert Called when the linked organ is inserted.
+ on_remove Called when the linked organ is removed.
+ on_replace Called when another organ is removed, and this organ datum takes its place in the organ_owner.
+ on_successful_emp Only called when the organ is robotic AND is not emp proof. Return true to override default functions
Proc Details
+ Called when the linked organ is inserted.
on_remove
+
+ Called when the linked organ is removed.
+ Called when another organ is removed, and this organ datum takes its place in the organ_owner.
on_successful_emp()
+
+
+
+
+
+ Only called when the organ is robotic AND is not emp proof. Return true to override default functions
+
+
+
diff --git a/datum/organ/lungs.html b/datum/organ/lungs.html
new file mode 100644
index 0000000000000..642b40027e5f0
--- /dev/null
+++ b/datum/organ/lungs.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/organ/lungs - Space Station 13
+
+
+
+
+
+
+Proc Details
+ LUNG ATMOS CODE, VENTURE FURTHER IF YOU DARE!!!
on_successful_emp()
+
+
+
+
+
+ Lung atmos code ends here. Thank god...
+
+
+
diff --git a/datum/outfit.html b/datum/outfit.html
new file mode 100644
index 0000000000000..5b7118c26841c
--- /dev/null
+++ b/datum/outfit.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/outfit - Space Station 13
+
+
+
+
+
+
+Vars
+ toggle_helmet Should the toggle helmet proc be called on the helmet during equip
+ Var Details toggle_helmet
+
+
+
+
+
+ Should the toggle helmet proc be called on the helmet during equip
+
+
+
diff --git a/datum/pai_save.html b/datum/pai_save.html
new file mode 100644
index 0000000000000..062824312b042
--- /dev/null
+++ b/datum/pai_save.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/pai_save - Space Station 13
+
+
+
+
+
+
+
+ Var Details description
+
+
+
+
+
+ pAI's description
+ pAI's OOC comments
owner
+
+
+
+
+
+ Client that owns the pAI
pai_name
+
+
+
+
+
+ pAI's name
role
+
+
+
+
+
+ pAI's role
+
+
+
diff --git a/datum/pai_software.html b/datum/pai_software.html
new file mode 100644
index 0000000000000..3428ebf92c24a
--- /dev/null
+++ b/datum/pai_software.html
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+ /datum/pai_software - Space Station 13
+
+
+
+
+
+
+Datum module for pAI software
+Very similar to the PDA app datum, this determines what UI sub-template to use,
+as well as the RAM cost, and if it is toggle software (not a UI app)
Vars
+ default Do we have this software installed by default
+ id ID for the software. This must be unique
+ name Name for the software. This is used as the button text when buying or opening/toggling the software
+ pai_holder pAI which holds this software
+ ram_cost RAM cost; pAIs start with 100 RAM, spending it on programs
+ template_file Template for the TGUI file
+ toggle_software Whether this software is a toggle or not
+ ui_icon Icon for inside the UI Procs
+ New New handler
+ get_app_data Handler for the app's UI data
+ get_holding_mob Helper proc so that pAIs can get the mob holding them
+ is_active Helper for checking if a toggle is enabled or not
+ toggle Handler for toggling toggle apps on and off
+ ui_act ui_act sanity check helper
+ Var Details default
+
+
+
+
+
+ Do we have this software installed by default
id
+
+
+
+
+
+ ID for the software. This must be unique
name
+
+
+
+
+
+ Name for the software. This is used as the button text when buying or opening/toggling the software
+ pAI which holds this software
ram_cost
+
+
+
+
+
+ RAM cost; pAIs start with 100 RAM, spending it on programs
template_file
+
+
+
+
+
+ Template for the TGUI file
toggle_software
+
+
+
+
+
+ Whether this software is a toggle or not
ui_icon
+
+
+
+
+
+ Icon for inside the UI
Proc Details
+ New handler
+Ensures that the pai_holder var is set to the pAI itself
+Arguments:
+
+user - The pAI that this softawre is held by
+
+ Handler for the app's UI data
+This returns the list of the current app's data for the UI
+This will then be injected as a variable on the TGUI data called "app_data"
+Arguments:
+
+user - The pAI that is using this app
+ get_holding_mob(inform)
+
+
+
+
+
+ Helper proc so that pAIs can get the mob holding them
+This needs to exist because pAIs have many different locs
+(Held card, mob itself, in pocket, etc)
+Arguments:
+
+inform - Boolean, should we inform the pAI if they fail to find a carrier
+
+ Helper for checking if a toggle is enabled or not
+Returns TRUE if the toggle software is active, FALSE if not
+Its like this instead of a simple is_toggled
var because some toggles override eachother and this is easier
+Arguments:
+
+user - The pAI that is using this app
+
+ Handler for toggling toggle apps on and off
+This is invoked whenever you toggle a toggleable function
+Put your toggleable work in here
+Arguments:
+
+user - The pAI that is using this toggle
+ ui_act
+
+ ui_act sanity check helper
+Basically checks the existing href exploit stuff, as well as making sure the user using the UI is the pAI itself
+
+
+
diff --git a/datum/pai_software/atmosphere_sensor.html b/datum/pai_software/atmosphere_sensor.html
new file mode 100644
index 0000000000000..2eea119053b45
--- /dev/null
+++ b/datum/pai_software/atmosphere_sensor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/pai_software/atmosphere_sensor - Space Station 13
+
+
+
+
+
+
+Vars
+ scanner Integrated PDA atmos scan module to reduce duplicated code
+ Var Details scanner
+ – /datum /data/pda/app/atmos_scanner
+
+
+
+
+ Integrated PDA atmos scan module to reduce duplicated code
+
+
+
diff --git a/datum/pai_software/door_jack.html b/datum/pai_software/door_jack.html
new file mode 100644
index 0000000000000..47169e1a521b3
--- /dev/null
+++ b/datum/pai_software/door_jack.html
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+ /datum/pai_software/door_jack - Space Station 13
+
+
+
+
+
+
+
+ Var Details cable
+
+
+
+
+
+ The cable being plugged into a door
+ The door being hacked
hacking
+
+
+
+
+
+ Are we hacking?
progress
+
+
+
+
+
+ Progress on hacking the door
Proc Details cleanup_hack()
+
+
+
+
+
+ Door jack cleanup proc
+Self-contained proc for cleaning up failed hack attempts
hackloop()
+
+
+
+
+
+ Door jack hack loop
+Self-contained proc for handling the hacking of a door.
+Invoked asyncly, but will only allow one instance at a time
+
+
+
diff --git a/datum/pai_software/med_records.html b/datum/pai_software/med_records.html
new file mode 100644
index 0000000000000..292e82e7917f1
--- /dev/null
+++ b/datum/pai_software/med_records.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/pai_software/med_records - Space Station 13
+
+
+
+
+
+
+
+ Var Details integrated_records
+ – /datum /data/pda/app/crew_records/medical
+
+
+
+
+ Integrated medical records module to reduce duplicated code
+
+
+
diff --git a/datum/pai_software/sec_records.html b/datum/pai_software/sec_records.html
new file mode 100644
index 0000000000000..00e36207cc00a
--- /dev/null
+++ b/datum/pai_software/sec_records.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/pai_software/sec_records - Space Station 13
+
+
+
+
+
+
+
+ Var Details integrated_records
+ – /datum /data/pda/app/crew_records/security
+
+
+
+
+ Integrated security records module to reduce duplicated code
+
+
+
diff --git a/datum/painter.html b/datum/painter.html
new file mode 100644
index 0000000000000..6e1d417aa6370
--- /dev/null
+++ b/datum/painter.html
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+ /datum/painter - Space Station 13
+
+
+
+
+
+
+Contains variables for updating holder
, as well as procs for choosing a colour and painting an atom.
+The parent_painter
argument is REQUIRED when spawning this in order to link the datum to an /obj/item/painter .
Vars
+ holder The parent /obj/item/painter which this datum is linked to.
+ module_desc Desc of the holder
when using this module.
+ module_name Name of the holder
when using this module.
+ module_state Icon and Item state of the holder
when using this module.
+ paint_setting The current colour or icon state setting. Procs
+ paint_atom Contains code to apply the paint_setting
variable onto the target atom.
+ pick_color Contains code to choose a new colour or icon state for the paint_setting
variable.
+ Var Details
+ The parent /obj/item/painter which this datum is linked to.
module_desc
+
+
+
+
+
+ Desc of the holder
when using this module.
module_name
+
+
+
+
+
+ Name of the holder
when using this module.
module_state
+
+
+
+
+
+ Icon and Item state of the holder
when using this module.
paint_setting
+
+
+
+
+
+ The current colour or icon state setting.
Proc Details paint_atom
+
+ Contains code to apply the paint_setting
variable onto the target atom.
+Called by afterattack()
on the holder
object.
pick_color
+
+ Contains code to choose a new colour or icon state for the paint_setting
variable.
+Called by attack_self()
on the holder
object.
+
+
+
diff --git a/datum/pathfind.html b/datum/pathfind.html
new file mode 100644
index 0000000000000..dc8ced246cd58
--- /dev/null
+++ b/datum/pathfind.html
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+ /datum/pathfind - Space Station 13
+
+
+
+
+
+
+The datum used to handle the JPS pathfinding, completely self-contained
Vars
+ avoid A specific turf we're avoiding, like if a mulebot is being blocked by someone t-posing in a doorway we're trying to get through
+ caller The thing that we're actually trying to path for
+ diagonal_safety Ensures diagonal moves won't use invalid midstep turfs by splitting them into two orthogonal moves if necessary
+ end The turf we're trying to path to (note that this won't track a moving target)
+ id An ID card representing what access we have and what doors we can open. Its location relative to the pathing atom is irrelevant
+ max_distance I don't know what this does vs , but they limit how far we can search before giving up on a path
+ mintargetdist How far away we have to get to the end target before we can call it quits
+ open The open list/stack we pop nodes out from (TODO: make this a normal list and macro-ize the heap operations to reduce proc overhead)
+ path The list we compile at the end if successful to pass back
+ simulated_only Space is big and empty, if this is TRUE then we ignore pathing through unsimulated tiles
+ sources An assoc list that serves as the closed list & tracks what turfs came from where. Key is the turf, and the value is what turf it came from
+ start The turf where we started at Procs
+ diag_scan_spec For performing diagonal scans from a given starting turf.
+ lateral_scan_spec For performing lateral scans from a given starting turf.
+ search search() is the proc you call to kick off and handle the actual pathfinding, and kills the pathfind datum instance when it's done.
+ unwind_path Called when we've hit the goal with the node that represents the last tile, then sets the path var to that path so it can be returned by datum/pathfind/proc/search
+ Var Details avoid
+
+
+
+
+
+ A specific turf we're avoiding, like if a mulebot is being blocked by someone t-posing in a doorway we're trying to get through
+ The thing that we're actually trying to path for
diagonal_safety
+
+
+
+
+
+ Ensures diagonal moves won't use invalid midstep turfs by splitting them into two orthogonal moves if necessary
end
+
+
+
+
+
+ The turf we're trying to path to (note that this won't track a moving target)
+ An ID card representing what access we have and what doors we can open. Its location relative to the pathing atom is irrelevant
max_distance
+
+
+
+
+
+ I don't know what this does vs , but they limit how far we can search before giving up on a path
mintargetdist
+
+
+
+
+
+ How far away we have to get to the end target before we can call it quits
open
+
+
+
+
+
+ The open list/stack we pop nodes out from (TODO: make this a normal list and macro-ize the heap operations to reduce proc overhead)
path
+
+
+
+
+
+ The list we compile at the end if successful to pass back
simulated_only
+
+
+
+
+
+ Space is big and empty, if this is TRUE then we ignore pathing through unsimulated tiles
sources
+
+
+
+
+
+ An assoc list that serves as the closed list & tracks what turfs came from where. Key is the turf, and the value is what turf it came from
start
+
+
+
+
+
+ The turf where we started at
Proc Details diag_scan_spec
+
+ For performing diagonal scans from a given starting turf.
+Unlike lateral scans, these only are called from the main search loop, so we don't need to worry about returning anything,
+though we do need to handle the return values of our lateral subscans of course.
+Arguments:
+
+original_turf: What turf did we start this scan at?
+heading: What direction are we going in? Obviously, should be diagonal
+parent_node: We should always have a parent node for diagonals
+ lateral_scan_spec
+
+ For performing lateral scans from a given starting turf.
+These scans are called from both the main search loop, as well as subscans for diagonal scans, and they treat finding interesting turfs slightly differently.
+If we're doing a normal lateral scan, we already have a parent node supplied, so we just create the new node and immediately insert it into the heap, ezpz.
+If we're part of a subscan, we still need for the diagonal scan to generate a parent node, so we return a node datum with just the turf and let the diag scan
+proc handle transferring the values and inserting them into the heap.
+Arguments:
+
+original_turf: What turf did we start this scan at?
+heading: What direction are we going in? Obviously, should be cardinal
+parent_node: Only given for normal lateral scans, if we don't have one, we're a diagonal subscan.
+ search()
+
+
+
+
+
+ search() is the proc you call to kick off and handle the actual pathfinding, and kills the pathfind datum instance when it's done.
+If a valid path was found, it's returned as a list. If invalid or cross-z-level params are entered, or if there's no valid path found, we
+return null, which /proc/get_path_to translates to an empty list (notable for simple bots, who need empty lists)
unwind_path
+
+ Called when we've hit the goal with the node that represents the last tile, then sets the path var to that path so it can be returned by datum/pathfind/proc/search
+
+
+
diff --git a/datum/pathfinding_mover.html b/datum/pathfinding_mover.html
new file mode 100644
index 0000000000000..16baf4c46c74a
--- /dev/null
+++ b/datum/pathfinding_mover.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/pathfinding_mover - Space Station 13
+
+
+
+
+
+
+A generalized datum for pathfinding, and moving to a target.
Vars
+ consider_movement_delay Do we consider movement delay? Disable for non-mobs
+ last_movement_delay Requires consider_movement_delay = TRUE
, saves the last movement delay to prevent diagonal weirdness
+ max_tries max amount of tries before resetting path to null
+ move_speed How many 2-tick delays per move (5 = 1 second)
+ move_ticks A counter for move_speed via modulo
+ on_set_path_null Callback invoked on failure
+ on_success Callback invoked on success
+ owner Can be a simplemob bot, a drone, or even a pathfinding modsuit module (currently only implemented for drones)
+ owner_move_delay The delay called as part of Move()
+ path List of turfs through which a mod 'steps' to reach the waypoint
+ target The target turf we are after
+ tries How many times have we tried to move? Procs
+ generalized_step Take our next step in our pathfinding algorithm
+ process Using fast process, see if we should take the next step yet
+ start Start moving towards our target, returns false if the path does not lead to the target
+ Var Details consider_movement_delay
+
+
+
+
+
+ Do we consider movement delay? Disable for non-mobs
last_movement_delay
+
+
+
+
+
+ Requires consider_movement_delay = TRUE
, saves the last movement delay to prevent diagonal weirdness
max_tries
+
+
+
+
+
+ max amount of tries before resetting path to null
move_speed
+
+
+
+
+
+ How many 2-tick delays per move (5 = 1 second)
move_ticks
+
+
+
+
+
+ A counter for move_speed via modulo
on_set_path_null
+
+
+
+
+
+ Callback invoked on failure
on_success
+
+
+
+
+
+ Callback invoked on success
+ Can be a simplemob bot, a drone, or even a pathfinding modsuit module (currently only implemented for drones)
owner_move_delay
+
+
+
+
+
+ The delay called as part of Move()
path
+
+
+
+
+
+ List of turfs through which a mod 'steps' to reach the waypoint
target
+
+
+
+
+
+ The target turf we are after
tries
+
+
+
+
+
+ How many times have we tried to move?
Proc Details generalized_step()
+
+
+
+
+
+ Take our next step in our pathfinding algorithm
process(wait)
+
+
+
+
+
+ Using fast process, see if we should take the next step yet
start()
+
+
+
+
+
+ Start moving towards our target, returns false if the path does not lead to the target
+
+
+
diff --git a/datum/physiology.html b/datum/physiology.html
new file mode 100644
index 0000000000000..85c5572c543a2
--- /dev/null
+++ b/datum/physiology.html
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ /datum/physiology - Space Station 13
+
+
+
+
+
+
+Datum that stores several modifiers in a way that isn't cleared by changing species
Vars
+ armor internal armor datum
+ bleed_mod % bleeding modifier
+ brain_mod % of brain damage taken from all sources
+ brute_mod % of brute damage taken from all sources
+ burn_mod % of burn damage taken from all sources
+ clone_mod % of clone damage taken from all sources
+ cold_mod % of burn damage taken from cold (stacks with burn_mod)
+ damage_resistance %damage reduction from all sources
+ heat_mod % of burn damage taken from heat (stacks with burn_mod)
+ hunger_mod % of hunger rate taken per tick.
+ melee_bonus Bonus damage added to melee attacks. NOTE: this is additive rather than multiplicative, trying to multiply this will break things.
+ oxy_mod % of oxygen damage taken from all sources
+ pressure_mod % of brute damage taken from low or high pressure (stacks with brute_mod)
+ siemens_coeff resistance to shocks
+ stamina_mod % of stamina damage taken from all sources
+ stun_mod % stun modifier
+ tox_mod % of toxin damage taken from all sources
+ Var Details armor
+
+
+
+
+
+ internal armor datum
bleed_mod
+
+
+
+
+
+ % bleeding modifier
brain_mod
+
+
+
+
+
+ % of brain damage taken from all sources
brute_mod
+
+
+
+
+
+ % of brute damage taken from all sources
burn_mod
+
+
+
+
+
+ % of burn damage taken from all sources
clone_mod
+
+
+
+
+
+ % of clone damage taken from all sources
cold_mod
+
+
+
+
+
+ % of burn damage taken from cold (stacks with burn_mod)
damage_resistance
+
+
+
+
+
+ %damage reduction from all sources
heat_mod
+
+
+
+
+
+ % of burn damage taken from heat (stacks with burn_mod)
hunger_mod
+
+
+
+
+
+ % of hunger rate taken per tick.
melee_bonus
+
+
+
+
+
+ Bonus damage added to melee attacks. NOTE: this is additive rather than multiplicative, trying to multiply this will break things.
oxy_mod
+
+
+
+
+
+ % of oxygen damage taken from all sources
pressure_mod
+
+
+
+
+
+ % of brute damage taken from low or high pressure (stacks with brute_mod)
siemens_coeff
+
+
+
+
+
+ resistance to shocks
stamina_mod
+
+
+
+
+
+ % of stamina damage taken from all sources
stun_mod
+
+
+
+
+
+ % stun modifier
tox_mod
+
+
+
+
+
+ % of toxin damage taken from all sources
+
+
+
diff --git a/datum/pipes/transit.html b/datum/pipes/transit.html
new file mode 100644
index 0000000000000..6ac8f8d170877
--- /dev/null
+++ b/datum/pipes/transit.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/pipes/transit - Space Station 13
+
+
+
+
+
+
+Pipe types for transit tubes.
Vars
+ construction_type The type of the object that results from dispensing this datum from the RPD.
+ Var Details construction_type
+
+
+
+
+
+ The type of the object that results from dispensing this datum from the RPD.
+
+
+
diff --git a/datum/plant_gene.html b/datum/plant_gene.html
new file mode 100644
index 0000000000000..67b1bb80a4565
--- /dev/null
+++ b/datum/plant_gene.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/plant_gene - Space Station 13
+
+
+
+
+
+
+Vars
+ dangerous Used to determine if the trait should be logged when the holder is used
+ Var Details dangerous
+
+
+
+
+
+ Used to determine if the trait should be logged when the holder is used
+
+
+
diff --git a/datum/point_precise.html b/datum/point_precise.html
new file mode 100644
index 0000000000000..498507ad8ef3e
--- /dev/null
+++ b/datum/point_precise.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/point_precise - Space Station 13
+
+
+
+
+
+
+A precise point on the map in absolute pixel locations based on world.icon_size. Pixels are FROM THE EDGE OF THE MAP!
Procs
+ New First argument can also be a /datum/position or /atom.
Proc Details New(_x, _y, _z, _pixel_x, _pixel_y)
+
+
+
+
+
+ First argument can also be a /datum/position or /atom.
+
+
+
diff --git a/datum/point_precise/vector.html b/datum/point_precise/vector.html
new file mode 100644
index 0000000000000..bcaf5ae674fe5
--- /dev/null
+++ b/datum/point_precise/vector.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/point_precise/vector - Space Station 13
+
+
+
+
+
+
+Vars
+ mpx Calculated x movement amounts to prevent having to do trig every step.
+ mpy Calculated y movement amounts to prevent having to do trig every step.
+ speed Pixels per iteration Procs
+ set_angle Calculations use "byond angle" where north is 0 instead of 90, and south is 180 instead of 270.
+ set_location Same effect as initiliaze_location, but without setting the starting_x/y/z
+ Var Details mpx
+
+
+
+
+
+ Calculated x movement amounts to prevent having to do trig every step.
mpy
+
+
+
+
+
+ Calculated y movement amounts to prevent having to do trig every step.
speed
+
+
+
+
+
+ Pixels per iteration
Proc Details set_angle(new_angle)
+
+
+
+
+
+ Calculations use "byond angle" where north is 0 instead of 90, and south is 180 instead of 270.
set_location(tile_x, tile_y, tile_z, p_x, p_y)
+
+
+
+
+
+ Same effect as initiliaze_location, but without setting the starting_x/y/z
+
+
+
diff --git a/datum/preference_toggle.html b/datum/preference_toggle.html
new file mode 100644
index 0000000000000..197a0c0a87b54
--- /dev/null
+++ b/datum/preference_toggle.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /datum/preference_toggle - Space Station 13
+
+
+
+
+
+
+
+ Var Details blackbox_message
+
+
+
+
+
+ Message for the blackbox, legacy verbs so we can't just use the name
description
+
+
+
+
+
+ Description of what the pref setting does
disable_message
+
+
+
+
+
+ Message to display when this toggle is disabled
enable_message
+
+
+
+
+
+ Message to display when this toggle is enabled
name
+
+
+
+
+
+ Name of the preference toggle. Don't set this if you don't want it to appear in game
preftoggle_bitflag
+
+
+
+
+
+ Bitflag this datum will set to
preftoggle_category
+
+
+
+
+
+ Category of the toggle
preftoggle_toggle
+
+
+
+
+
+ What toggles to set this to?
rights_required
+
+
+
+
+
+ Rights required to be able to use this pref option
+
+
+
diff --git a/datum/preferences.html b/datum/preferences.html
new file mode 100644
index 0000000000000..887ebf36a1538
--- /dev/null
+++ b/datum/preferences.html
@@ -0,0 +1,209 @@
+
+
+
+
+
+
+ /datum/preferences - Space Station 13
+
+
+
+
+
+
+
+ Var Details _2fa_status
+
+
+
+
+
+ 2FA status
+ The current active character
admin_sound_ckey_ignore
+
+
+
+
+
+ List of admin ckeys this player wont hear sounds from
character_saves
+ – /list/datum/character_save
+
+
+
+
+ List of all character saves we have. This is indexed based on the slot number
characters_loaded
+
+
+
+
+
+ Have we loaded characters already?
colourblind_mode
+
+
+
+
+
+ Colourblind mode
ghost_darkness_level
+
+
+
+
+
+ How dark things are if client is a ghost, 0-255
keybindings
+
+
+
+
+
+ Active keybinds (currently useable by the mob/client)
keybindings_overrides
+
+
+
+
+
+ Keybinding overrides ("name" => ["key"...])
screentip_color
+
+
+
+
+
+ Color of screentips at top of screen
screentip_mode
+
+
+
+
+
+ Screentip Mode, in pixels. 8 is small, 15 is mega big, 0 is off.
server_region
+
+
+
+
+
+ Player's region override for routing optimisation
successful_load
+
+
+
+
+
+ Did we load successfully?
viewrange
+
+
+
+
+
+ View range preference for this client
volume_mixer
+
+
+
+
+
+ Volume mixer, indexed by channel as TEXT (numerical indexes will not work). Volume goes from 0 to 100.
volume_mixer_saving
+
+
+
+
+
+ The volume mixer save timer handle. Used to debounce the DB call to save, to avoid spamming.
Proc Details build_loadout
+
+ Rebuilds the loadout_gear
list of the [active_character], and returns the total end cost.
+Caches and cuts the existing [/datum/character_save/var/loadout_gear] list and remakes it, checking the subtype_selection_cost
and overall cost validity of each item.
+If the item's /datum/gear/var/subtype_selection_cost is FALSE
, any future items with the same /datum/gear/var/main_typepath will have their cost skipped.
+If adding the item will take the total cost over the maximum, it won't be added to the list.
+Arguments:
+
+new_item - A new /datum/gear item to be added to the loadout_gear
list.
+ deserialize_volume_mixer(vmt)
+
+
+
+
+
+ Returns a volume mixer list from text, usually from the DB.
+Failure to deserialize will return the current value.
+Arguments
+
+vmt - The volume mixer list to deserialize.
+ get_channel_volume(channel)
+
+
+
+
+
+ Returns a volume multiplier for the given channel, from 0 to 1 (default).
+Arguments:
+
+channel - The channel whose volume to get.
+ save_volume_mixer()
+
+
+
+
+
+ Saves [/datum/preferences/proc/volume_mixer] for the current client.
serialize_volume_mixer(/list/vm)
+
+
+
+
+
+ Returns a DB-friendly version of a volume mixer list.
+Arguments
+
+vm - The volume mixer list to serialize.
+ set_channel_volume(channel, volume, debounce_save)
+
+
+
+
+
+ Changes a channel's volume then queues it for DB save.
+Arguments:
+
+channel - The channel whose volume to change.
+volume - The new volume, clamped between 0 and 100.
+debounce_save - Whether to debounce the save call to prevent spamming of DB calls.
+
+
+
+
diff --git a/datum/qdel_item.html b/datum/qdel_item.html
new file mode 100644
index 0000000000000..0d4afe47b845c
--- /dev/null
+++ b/datum/qdel_item.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/qdel_item - Space Station 13
+
+
+
+
+
+
+Vars
+ reference_average Average amount of references that the hard deleted item holds when hard deleted
+ Var Details reference_average
+
+
+
+
+
+ Average amount of references that the hard deleted item holds when hard deleted
+
+
+
diff --git a/datum/radiation_wave.html b/datum/radiation_wave.html
new file mode 100644
index 0000000000000..0b632140bd5c2
--- /dev/null
+++ b/datum/radiation_wave.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /datum/radiation_wave - Space Station 13
+
+
+
+
+
+
+Vars
+ __dirs The directions to the side of the wave, stored for easy looping
+ can_contaminate Whether or not this radiation wave can create contaminated objects
+ intensity How strong it was originaly
+ master_turf The center of the wave
+ move_dir The direction of movement
+ range_modifier Higher than 1 makes it drop off faster, 0.5 makes it drop off half etc
+ remaining_contam How much contaminated material it still has
+ source The thing that spawned this radiation wave
+ steps How far we've moved
+ Var Details __dirs
+
+
+
+
+
+ The directions to the side of the wave, stored for easy looping
can_contaminate
+
+
+
+
+
+ Whether or not this radiation wave can create contaminated objects
intensity
+
+
+
+
+
+ How strong it was originaly
master_turf
+
+
+
+
+
+ The center of the wave
move_dir
+
+
+
+
+
+ The direction of movement
range_modifier
+
+
+
+
+
+ Higher than 1 makes it drop off faster, 0.5 makes it drop off half etc
remaining_contam
+
+
+
+
+
+ How much contaminated material it still has
source
+
+
+
+
+
+ The thing that spawned this radiation wave
steps
+
+
+
+
+
+ How far we've moved
+
+
+
diff --git a/datum/rcd_act.html b/datum/rcd_act.html
new file mode 100644
index 0000000000000..d5c3dbe45305e
--- /dev/null
+++ b/datum/rcd_act.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /datum/rcd_act - Space Station 13
+
+
+
+
+
+
+A generic action for an RCD.
Vars
+ cost How much compressed matter this action costs.
+ delay How long this action takes.
+ end_effect_type The effect (if any) to create when the action completes.
+ mode The mode the RCD must be in.
+ start_effect_type The effect (if any) to create when the action starts.
+ start_message The message (if any) to send the user when the action starts. Procs
+ act Perform the act. You should usually override this.
+ can_act Test to see if the act is possible. You should usually override this.
+ try_act Attempt the action. This should not need to be overridden.
+ Var Details cost
+
+
+
+
+
+ How much compressed matter this action costs.
delay
+
+
+
+
+
+ How long this action takes.
end_effect_type
+
+
+
+
+
+ The effect (if any) to create when the action completes.
mode
+
+
+
+
+
+ The mode the RCD must be in.
start_effect_type
+
+
+
+
+
+ The effect (if any) to create when the action starts.
start_message
+
+
+
+
+
+ The message (if any) to send the user when the action starts.
Proc Details act
+
+ Perform the act. You should usually override this.
can_act
+
+ Test to see if the act is possible. You should usually override this.
try_act
+
+ Attempt the action. This should not need to be overridden.
+
+
+
diff --git a/datum/reagent.html b/datum/reagent.html
new file mode 100644
index 0000000000000..c2dc477472ca0
--- /dev/null
+++ b/datum/reagent.html
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+ /datum/reagent - Space Station 13
+
+
+
+
+
+
+
+ Var Details addiction_decay_rate
+
+
+
+
+
+ how quickly the addiction threshold var decays
allowed_overdose_process
+
+
+
+
+
+ If this variable is true, chemicals will continue to process in mobs when overdosed.
color
+
+
+
+
+
+ The color of the agent outside of containers.
+ A reference to the holder the chemical is 'in'.
Proc Details reaction_mob(/mob /living /M, method, volume, show_message)
+
+
+
+
+
+ React with a mob.
+The method var can be either REAGENT_TOUCH
or REAGENT_INGEST
. Some
+reagents transfer on touch, others don't; dependent on if they penetrate the
+skin or not. You'll want to put stuff like acid-facemelting in here. Should
+only ever be called, directly, on living mobs.
reaction_obj(/obj /O, volume)
+
+
+
+
+
+ React with an object.
reaction_turf(/turf /T, volume, color)
+
+
+
+
+
+ React with a turf.
+You'll want to put stuff like extra slippery floors for lube or something in here.
+
+
+
diff --git a/datum/reagent/aranesp.html b/datum/reagent/aranesp.html
new file mode 100644
index 0000000000000..12667ad8d377c
--- /dev/null
+++ b/datum/reagent/aranesp.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/reagent/aranesp - Space Station 13
+
+
+
+
+
+
+Vars
+ tenacity how much do we edit the stun and stamina mods? lower is more resistance
+ Var Details tenacity
+
+
+
+
+
+ how much do we edit the stun and stamina mods? lower is more resistance
+
+
+
diff --git a/datum/reagent/mephedrone.html b/datum/reagent/mephedrone.html
new file mode 100644
index 0000000000000..8cfc1d3e925fa
--- /dev/null
+++ b/datum/reagent/mephedrone.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/reagent/mephedrone - Space Station 13
+
+
+
+
+
+
+Vars
+ changeling_chemical_tracker Keeps track of how many chemicals we are delaying the changeling by. Procs
+ dodge_bullets Tries to dodge incoming bullets if we aren't disabled for any reasons
+ no_hud_cheese So. If a person changes up their hud settings (Changing their ui theme), the visual effects for this reagent will break, and they will be able to see easily. This 3 part proc waits for the plane controlers to be setup, and over 2 other procs, rengages the visuals
+ no_hud_cheese_2 This part of the anticheese sets up the basic visual effects normally setup when the reagent gets into your system.
+ no_hud_cheese_3 This part sets up the OD visual effects.
+ on_movement Leaves an afterimage behind the mob when they move
+ Var Details changeling_chemical_tracker
+
+
+
+
+
+ Keeps track of how many chemicals we are delaying the changeling by.
Proc Details
+ Tries to dodge incoming bullets if we aren't disabled for any reasons
no_hud_cheese
+
+ So. If a person changes up their hud settings (Changing their ui theme), the visual effects for this reagent will break, and they will be able to see easily. This 3 part proc waits for the plane controlers to be setup, and over 2 other procs, rengages the visuals
no_hud_cheese_2
+
+ This part of the anticheese sets up the basic visual effects normally setup when the reagent gets into your system.
no_hud_cheese_3
+
+ This part sets up the OD visual effects.
on_movement
+
+ Leaves an afterimage behind the mob when they move
+
+
+
diff --git a/datum/reagent/methamphetamine.html b/datum/reagent/methamphetamine.html
new file mode 100644
index 0000000000000..18de225c83288
--- /dev/null
+++ b/datum/reagent/methamphetamine.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/reagent/methamphetamine - Space Station 13
+
+
+
+
+
+
+Vars
+ tenacity modifier to the stun time of the mob taking the drug
+ Var Details tenacity
+
+
+
+
+
+ modifier to the stun time of the mob taking the drug
+
+
+
diff --git a/datum/reagent/oil.html b/datum/reagent/oil.html
new file mode 100644
index 0000000000000..f8575956d6fed
--- /dev/null
+++ b/datum/reagent/oil.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/reagent/oil - Space Station 13
+
+
+
+
+
+
+
+ Var Details reagent_after_burning
+
+
+
+
+
+ What this becomes after burning.
+
+
+
diff --git a/datum/reagents.html b/datum/reagents.html
new file mode 100644
index 0000000000000..18987d61196b5
--- /dev/null
+++ b/datum/reagents.html
@@ -0,0 +1,210 @@
+
+
+
+
+
+
+ /datum/reagents - Space Station 13
+
+
+
+
+
+
+The holder is the datum that holds a list of all reagents
+currently in the object.
+By default, all atom have an empty reagents var. If you want to use
+an object for the chemistry system you'll need to add something like this in
+its new proc:
+// Create a new datum, 100 is the maximum_volume of the new holder datum.
+var/datum/reagents/R = new/datum/reagents(100)
+reagents = R // Assign the new datum to the objects reagents var
+R.my_atom = src // set the holders my_atom to src so that we know where we are.
+
+This can also be done by calling a convenience proc e.g.
+/atom/proc/create_reagents(max_volume)
Vars
+ maximum_volume This is the maximum volume of the holder.
+ my_atom This is the atom the holder is 'in'. Useful if you need to find the location. (i.e. for explosions)
+ reagent_list All contained reagents. More specifically, references to the reagent datums.
+ total_volume The total volume of all reagents in this holder. Procs
+ add_reagent Attempts to add X of the matching reagent to the holder.
+ clear_reagents Remove all reagents from the holder.
+ del_reagent Completely remove the reagent with the matching ID.
+ get_master_reagent_id Get the id of the reagent there is the most of in this holder
+ get_reagent_amount Returns the amount of the matching reagent inside the holder.
+ handle_reactions Check all recipes and, on a match, uses them.
+ has_reagent Return whether the holder contains the reagent.
+ isolate_reagent Remove all reagents but the specified one.
+ metabolize Called by /mob/living/proc/Life
. You shouldn't have to use this one directly.
+ overdose_list Returns a list of all the chemical IDs in the reagent holder that are overdosing.
+ reaction Calls the appropriate reaction procs of the reagents.
+ remove_any Removes reagents from the holder until the passed amount is matched.
+ remove_reagent The exact opposite of the add_reagent proc.
+ trans_id_to Same as /datum/reagents/proc/trans_to but only for a specific reagent in
+the reagent list. If the specified amount is greater than what is available,
+it will use the amount of the reagent that is available. If no reagent
+exists, returns null.
+ trans_to Equally transfer the contents of the holder to another objects holder.
+ update_total Update the total volume of the holder (the volume of all reagents added together).
+ Var Details maximum_volume
+
+
+
+
+
+ This is the maximum volume of the holder.
my_atom
+
+
+
+
+
+ This is the atom the holder is 'in'. Useful if you need to find the location. (i.e. for explosions)
reagent_list
+
+
+
+
+
+ All contained reagents. More specifically, references to the reagent datums.
total_volume
+
+
+
+
+
+ The total volume of all reagents in this holder.
Proc Details add_reagent(reagent, amount, /list/data, reagtemp, no_react)
+
+
+
+
+
+ Attempts to add X of the matching reagent to the holder.
+You won't use this much. Mostly in new procs for pre-filled objects.
clear_reagents()
+
+
+
+
+
+ Remove all reagents from the holder.
del_reagent(reagent)
+
+
+
+
+
+ Completely remove the reagent with the matching ID.
get_master_reagent_id()
+
+
+
+
+
+ Get the id of the reagent there is the most of in this holder
get_reagent_amount(reagent)
+
+
+
+
+
+ Returns the amount of the matching reagent inside the holder.
+Returns FALSE if the reagent is missing.
handle_reactions()
+
+
+
+
+
+ Check all recipes and, on a match, uses them.
+It will also call the recipe's on_reaction proc (for explosions or w/e).
+Currently, this proc is automatically called by /datum/reagents/proc/trans_to .
+Modified from the original to preserve reagent data across reactions
+(originally for xenoarchaeology).
has_reagent(reagent, amount)
+
+
+
+
+
+ Return whether the holder contains the reagent.
+If you pass it an amount it will additionally check if the amount is matched.
isolate_reagent(reagent)
+
+
+
+
+
+ Remove all reagents but the specified one.
+ Called by /mob/living/proc/Life
. You shouldn't have to use this one directly.
overdose_list()
+
+
+
+
+
+ Returns a list of all the chemical IDs in the reagent holder that are overdosing.
reaction(/atom /A, method, volume_modifier, show_message)
+
+
+
+
+
+ Calls the appropriate reaction procs of the reagents.
+I.e. if A is an object, it will call the reagent's reaction_obj
+proc. The method var is used for reaction on mobs. It simply tells
+us if the mob TOUCHed the reagent or if it INGESTed the reagent.
+Since the volume can be checked in a reagents proc, you might want to
+use the volume_modifier var to modifiy the passed value without actually
+changing the volume of the reagents.
+If you're not sure if you need to use this the answer is very most likely 'No'.
+You'll want to use this proc whenever an atom first comes in contact
+with the reagents of a holder. (in the 'splash' part of a beaker i.e.)
remove_any(amount)
+
+
+
+
+
+ Removes reagents from the holder until the passed amount is matched.
+It'll try to remove some of ALL reagents contained.
remove_reagent(reagent, amount, safety)
+
+
+
+
+
+ The exact opposite of the add_reagent proc.
+Modified from original to return the reagent's data, in order to preserve
+reagent data across reactions (originally for xenoarchaeology).
trans_id_to(/obj /target, reagent, amount, preserve_data)
+
+
+
+
+
+ Same as /datum/reagents/proc/trans_to but only for a specific reagent in
+the reagent list. If the specified amount is greater than what is available,
+it will use the amount of the reagent that is available. If no reagent
+exists, returns null.
trans_to(target, amount, multiplier, preserve_data, no_react)
+
+
+
+
+
+ Equally transfer the contents of the holder to another objects holder.
+You need to pass it the object (not the holder) you want to transfer to and
+the amount you want to transfer. Its return value is the actual amount
+transfered (if one of the objects is full/empty).
+If preserve_data = FALSE
, the reagents data will be lost. Useful if you use
+data for some strange stuff and don't want it to be transferred.
update_total()
+
+
+
+
+
+ Update the total volume of the holder (the volume of all reagents added together).
+
+
+
diff --git a/datum/reagents_editor.html b/datum/reagents_editor.html
new file mode 100644
index 0000000000000..fa6cd4bc9293b
--- /dev/null
+++ b/datum/reagents_editor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/reagents_editor - Space Station 13
+
+
+
+
+
+
+Vars
+ editors Indexed by target.UID
+ Var Details editors
+ – /static/list/datum/reagents_editor
+
+
+
+
+ Indexed by target.UID
+
+
+
diff --git a/datum/recipe.html b/datum/recipe.html
new file mode 100644
index 0000000000000..3b91cd5b1cd16
--- /dev/null
+++ b/datum/recipe.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ /datum/recipe - Space Station 13
+
+
+
+
+
+
+Vars
+ duplicate Whether or not an upgraded kitchen machine will create more products using the same amount of ingredients Procs
+ check_items_assoc_list Similarly to the function above, this checks for items, except instead of being passed a reagent holder, we're passed
+[type_path] = amount as num.
+Returns INGREDIENT_CHECK_EXACT if we have the precise amount thats requested.
+Returns INGREDIENT_CHECK_FAILURE if we do not have enough.
+Returns INGREDIENT_CHECK_SURPLUS if we have MORE than requested.
+ check_reagents_assoc_list Similarly to the function above, this checks for reagents, except instead of being passed a reagent holder, we're passed
+[reagent_id] = amount as num.
+Returns INGREDIENT_CHECK_EXACT if we have the precise amount thats requested.
+Returns INGREDIENT_CHECK_FAILURE if we do not have enough.
+Returns INGREDIENT_CHECK_SURPLUS if we have MORE than requested.
+ Var Details duplicate
+
+
+
+
+
+ Whether or not an upgraded kitchen machine will create more products using the same amount of ingredients
Proc Details check_items_assoc_list(/list/given_objects)
+
+
+
+
+
+ Similarly to the function above, this checks for items, except instead of being passed a reagent holder, we're passed
+[type_path] = amount as num.
+Returns INGREDIENT_CHECK_EXACT if we have the precise amount thats requested.
+Returns INGREDIENT_CHECK_FAILURE if we do not have enough.
+Returns INGREDIENT_CHECK_SURPLUS if we have MORE than requested.
check_reagents_assoc_list(/list/avail_reagents)
+
+
+
+
+
+ Similarly to the function above, this checks for reagents, except instead of being passed a reagent holder, we're passed
+[reagent_id] = amount as num.
+Returns INGREDIENT_CHECK_EXACT if we have the precise amount thats requested.
+Returns INGREDIENT_CHECK_FAILURE if we do not have enough.
+Returns INGREDIENT_CHECK_SURPLUS if we have MORE than requested.
+
+
+
diff --git a/datum/redis_callback.html b/datum/redis_callback.html
new file mode 100644
index 0000000000000..be4e3bdefa8c5
--- /dev/null
+++ b/datum/redis_callback.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ /datum/redis_callback - Space Station 13
+
+
+
+
+
+
+Callback datum for subscribed redis channel handling
+This datum is used for easily assigning callbacks for SSredis to use
+when a message is receievd on a channel. Define a channel on the channel
+var and SSredis will automatically register subtypes of /datum/redis_callback
Vars
+ channel Channel for this callback to listen on Procs
+ on_message Message handler callback
+ Var Details channel
+
+
+
+
+
+ Channel for this callback to listen on
Proc Details on_message(message)
+
+
+
+
+
+ Message handler callback
+This callback is ran when a message is received on the assigned channel.
+Make sure you override it on subtypes or it wont work.
+Arguments:
+
+message - The message received on the redis channel
+
+
+
+
diff --git a/datum/redis_message.html b/datum/redis_message.html
new file mode 100644
index 0000000000000..bc55b976280ad
--- /dev/null
+++ b/datum/redis_message.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ /datum/redis_message - Space Station 13
+
+
+
+
+
+
+Holder datum for redis messages
+This datum is used for caching messages that SSredis tries to
+publish before it has connected. It is not used for any subscribed
+channel handling.
Vars
+ channel Destination channel for this message
+ message Message for that channel
+ Var Details channel
+
+
+
+
+
+ Destination channel for this message
message
+
+
+
+
+
+ Message for that channel
+
+
+
diff --git a/datum/regional_powernet.html b/datum/regional_powernet.html
new file mode 100644
index 0000000000000..a2f492c0b00ce
--- /dev/null
+++ b/datum/regional_powernet.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ /datum/regional_powernet - Space Station 13
+
+
+
+
+
+
+Vars
+ available_power the current available power in the powernet
+ cables A list of All cables & junctions in this powernet
+ excess_power excess power on the powernet (typically avail-load)
+ nodes All Power Machines that are connected to this powernet
+ number The Powernet Unique ID Number
+ power_demand the current load on the powernet, increased by each machine at processing
+ queued_power_demand load applied to powernet between power ticks.
+ queued_power_production what available power was gathered last tick, then becomes...
+ smoothed_available_power the available power as it appears on the power console (gradually updated)
+ smoothed_demand the load as it appears on the power console (gradually updated) Procs
+ add_cable add a cable to the current powernet
+ add_machine add a power machine to the current powernet
+ calculate_power_balance Returns the non-clamped difference between available power on the net and the demanded power, i.g. consumption vs. supply
+ calculate_surplus Returns the clamped difference between available power on the net and the demanded power, i.g. the surplus power available
+ remove_cable remove a cable from the current powernet, if the powernet is empty after, delete it
+ remove_machine remove a power machine from the current powernet, if the powernet is then empty, delete it
+ Var Details available_power
+
+
+
+
+
+ the current available power in the powernet
cables
+
+
+
+
+
+ A list of All cables & junctions in this powernet
excess_power
+
+
+
+
+
+ excess power on the powernet (typically avail-load)
nodes
+
+
+
+
+
+ All Power Machines that are connected to this powernet
number
+
+
+
+
+
+ The Powernet Unique ID Number
power_demand
+
+
+
+
+
+ the current load on the powernet, increased by each machine at processing
queued_power_demand
+
+
+
+
+
+ load applied to powernet between power ticks.
queued_power_production
+
+
+
+
+
+ what available power was gathered last tick, then becomes...
smoothed_available_power
+
+
+
+
+
+ the available power as it appears on the power console (gradually updated)
smoothed_demand
+
+
+
+
+
+ the load as it appears on the power console (gradually updated)
Proc Details
+ add a cable to the current powernet
+ add a power machine to the current powernet
calculate_power_balance()
+
+
+
+
+
+ Returns the non-clamped difference between available power on the net and the demanded power, i.g. consumption vs. supply
calculate_surplus()
+
+
+
+
+
+ Returns the clamped difference between available power on the net and the demanded power, i.g. the surplus power available
+ remove a cable from the current powernet, if the powernet is empty after, delete it
+ remove a power machine from the current powernet, if the powernet is then empty, delete it
+
+
+
diff --git a/datum/rep_purchase.html b/datum/rep_purchase.html
new file mode 100644
index 0000000000000..cb4720cd83a37
--- /dev/null
+++ b/datum/rep_purchase.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+ /datum/rep_purchase - Space Station 13
+
+
+
+
+
+
+Describes something that can be purchased with Contractor Rep.
Vars
+ cost The price in Contractor Rep of the purchase.
+ description The description of the purchase.
+ name The display name of the purchase.
+ stock How many times the purchase can be made.
+-1 means infinite stock. Procs
+ buy Attempts to perform the purchase.
+ on_buy Called when the purchase was made successfully.
+ Var Details cost
+
+
+
+
+
+ The price in Contractor Rep of the purchase.
description
+
+
+
+
+
+ The description of the purchase.
name
+
+
+
+
+
+ The display name of the purchase.
stock
+
+
+
+
+
+ How many times the purchase can be made.
+-1 means infinite stock.
Proc Details
+ Attempts to perform the purchase.
+Returns TRUE or FALSE depending on whether the purchase succeeded.
+Arguments:
+
+hub - The contractor hub.
+user - The user who is making the purchase.
+
+ Called when the purchase was made successfully.
+Arguments:
+
+hub - The contractor hub.
+user - The user who made the purchase.
+
+
+
+
diff --git a/datum/rep_purchase/blackout.html b/datum/rep_purchase/blackout.html
new file mode 100644
index 0000000000000..47d38a3028b53
--- /dev/null
+++ b/datum/rep_purchase/blackout.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/rep_purchase/blackout - Space Station 13
+
+
+
+
+
+
+Vars
+ cooldown How long a contractor must wait before calling another blackout, in deciseconds.
+ next_blackout Static cooldown variable for blackouts.
+ Var Details cooldown
+
+
+
+
+
+ How long a contractor must wait before calling another blackout, in deciseconds.
next_blackout
+
+
+
+
+
+ Static cooldown variable for blackouts.
+
+
+
diff --git a/datum/rep_purchase/item.html b/datum/rep_purchase/item.html
new file mode 100644
index 0000000000000..4f5a460d8b449
--- /dev/null
+++ b/datum/rep_purchase/item.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/rep_purchase/item - Space Station 13
+
+
+
+
+
+
+Describes an item that can be purchased with Contractor Rep.
Vars
+ item_type The typepath of the item to instantiate and give to the buyer on purchase.
+ Var Details item_type
+
+
+
+
+
+ The typepath of the item to instantiate and give to the buyer on purchase.
+
+
+
diff --git a/datum/research.html b/datum/research.html
new file mode 100644
index 0000000000000..ac004729194a7
--- /dev/null
+++ b/datum/research.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ /datum/research - Space Station 13
+
+
+
+
+
+
+ Master Types
+
+Includes all the helper procs and basic tech processing.
+Holder for all the existing, archived, and known tech. Individual to console.
Vars
+ blacklisted_designs List of designs that have been blacklisted by the server controller
+ unblacklisted_designs Used during the rnd sync system, to ensure that blacklists are reverted, then cleared.
+ Var Details blacklisted_designs
+
+
+
+
+
+ List of designs that have been blacklisted by the server controller
unblacklisted_designs
+
+
+
+
+
+ Used during the rnd sync system, to ensure that blacklists are reverted, then cleared.
+
+
+
diff --git a/datum/response_team.html b/datum/response_team.html
new file mode 100644
index 0000000000000..4fa0638e25a24
--- /dev/null
+++ b/datum/response_team.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/response_team - Space Station 13
+
+
+
+
+
+
+Vars
+ silent Whether the ERT announcement should be hidden from the station
+ Var Details silent
+
+
+
+
+
+ Whether the ERT announcement should be hidden from the station
+
+
+
diff --git a/datum/resumable_cost_counter.html b/datum/resumable_cost_counter.html
new file mode 100644
index 0000000000000..12d1cdf8fbfd8
--- /dev/null
+++ b/datum/resumable_cost_counter.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/resumable_cost_counter - Space Station 13
+
+
+
+
+
+
+A cost counter for resumable, repeating processes.
Procs
+ record_progress Updates the counter based on the time spent making progress and whether we finished the task.
+ to_string Gets a display string for this cost counter.
Proc Details record_progress(cost_ms, finished)
+
+
+
+
+
+ Updates the counter based on the time spent making progress and whether we finished the task.
to_string()
+
+
+
+
+
+ Gets a display string for this cost counter.
+
+
+
diff --git a/datum/river_spawner.html b/datum/river_spawner.html
new file mode 100644
index 0000000000000..78ca00d4342e7
--- /dev/null
+++ b/datum/river_spawner.html
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+ /datum/river_spawner - Space Station 13
+
+
+
+
+
+
+A straightforward system for making "rivers", paths made up of a specific
+turf type that are generated in a random path on a z-level.
Vars
+ river_turf_type The base type that makes up the river.
+ shoreline_turf_type The turf used when a spread of the tile stops.
+ spread_prob The initial probability that a river tile will spread to adjacent tiles.
+ spread_prob_loss The amount reduced from spread_prob on every spread iteration to cause falloff.
+ target_z The z-level to generate the river on. There is theoretically nothing stopping
+this from being used across z-levels, but we're keeping things simple.
+ whitelist_area_type The area that the spawner is allowed to spread or detour to.
+ whitelist_turf_type The type that the spawner is allowed to spread or detour to. Procs
+ generate Generate a river between the bounds specified by (min_x
, min_y
) and
+(max_x
, max_y
).
+ Var Details river_turf_type
+
+
+
+
+
+ The base type that makes up the river.
shoreline_turf_type
+
+
+
+
+
+ The turf used when a spread of the tile stops.
spread_prob
+
+
+
+
+
+ The initial probability that a river tile will spread to adjacent tiles.
spread_prob_loss
+
+
+
+
+
+ The amount reduced from spread_prob on every spread iteration to cause falloff.
target_z
+
+
+
+
+
+ The z-level to generate the river on. There is theoretically nothing stopping
+this from being used across z-levels, but we're keeping things simple.
whitelist_area_type
+
+
+
+
+
+ The area that the spawner is allowed to spread or detour to.
whitelist_turf_type
+
+
+
+
+
+ The type that the spawner is allowed to spread or detour to.
Proc Details generate(nodes, min_x, min_y, max_x, max_y)
+
+
+
+
+
+ Generate a river between the bounds specified by (min_x
, min_y
) and
+(max_x
, max_y
).
+nodes
is the number of unique points in those bounds the river will
+connect to. Note that nodes
says little about the resultant size of the
+river due to its ability to detour far away from the direct path between them.
+
+
+
diff --git a/datum/robot_storage.html b/datum/robot_storage.html
new file mode 100644
index 0000000000000..625cfa4d50e40
--- /dev/null
+++ b/datum/robot_storage.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ /datum/robot_storage - Space Station 13
+
+
+
+
+
+
+# The robot_energy_storage datum
+
+Used to handle robot stack items, such as metal, wood, nanopaste, etc.
+To make things simple, the default `cost` of using 1 item from a borg stack, is 1.
+So then for example, when we have a `max_energy` of 50, the borg can use 50 of that item before it runs out.
+
+The `recharge_rate` will be affected by the charge rate of a borg recharger, depending on the level of parts. By default it is 1.
+This amount will be given every 2 seconds. So at round start, rechargers will give 1 energy back every 2 seconds, to each stack the borg has.
+
Vars
+ amount Current amount of materials.
+ max_amount The max amount of materials the stack can hold at once.
+ name The name of the storage.
+ statpanel_name The name that will be displayed in the status panel. Procs
+ add_charge Called whenever the cyborg is recharging and gains charge on its stack, or when clicking on other same-type stacks in the world.
+ use_charge Called whenever the cyborg uses one of its stacks. Subtract the amount used from this datum's amount
variable.
+ Var Details amount
+
+
+
+
+
+ Current amount of materials.
max_amount
+
+
+
+
+
+ The max amount of materials the stack can hold at once.
name
+
+
+
+
+
+ The name of the storage.
statpanel_name
+
+
+
+
+
+ The name that will be displayed in the status panel.
Proc Details add_charge(addition)
+
+
+
+
+
+ Called whenever the cyborg is recharging and gains charge on its stack, or when clicking on other same-type stacks in the world.
+Arguments:
+
+addition - the number to add to the energy
var.
+ use_charge(reduction)
+
+
+
+
+
+ Called whenever the cyborg uses one of its stacks. Subtract the amount used from this datum's amount
variable.
+Arguments:
+
+reduction - the number to subtract from the amount
var.
+
+
+
+
diff --git a/datum/robot_storage/energy.html b/datum/robot_storage/energy.html
new file mode 100644
index 0000000000000..3cd12840fac51
--- /dev/null
+++ b/datum/robot_storage/energy.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/robot_storage/energy - Space Station 13
+
+
+
+
+
+
+Vars
+ recharge_rate The amount of energy the stack will regain while charging.
+ Var Details recharge_rate
+
+
+
+
+
+ The amount of energy the stack will regain while charging.
+
+
+
diff --git a/datum/robot_storage/material.html b/datum/robot_storage/material.html
new file mode 100644
index 0000000000000..6596c5a3c7598
--- /dev/null
+++ b/datum/robot_storage/material.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/robot_storage/material - Space Station 13
+
+
+
+
+
+
+This datum is an alternative to the energy storages, instead being recharged in different ways
Vars
+ add_to_storage Does this get added to the autorefill from the ORM
+ stack What stacktype do we originally have
+ Var Details add_to_storage
+
+
+
+
+
+ Does this get added to the autorefill from the ORM
stack
+
+
+
+
+
+ What stacktype do we originally have
+
+
+
diff --git a/datum/scoreboard.html b/datum/scoreboard.html
new file mode 100644
index 0000000000000..5326cc5090be1
--- /dev/null
+++ b/datum/scoreboard.html
@@ -0,0 +1,274 @@
+
+
+
+
+
+
+ /datum/scoreboard - Space Station 13
+
+
+
+
+
+
+
+ Var Details all_arrested
+
+
+
+
+
+ Did the crew catch all of the antags alive?
crewscore
+
+
+
+
+
+ Overall combined score for the whole round.
damaged_health
+
+
+
+
+
+ How damaged was the most injured person on the shuttle?
damaged_job
+
+
+
+
+
+ What was the job of the most injured person on the shuttle?
damaged_key
+
+
+
+
+
+ What was the ckey of the most injured person on the shuttle?
damaged_name
+
+
+
+
+
+ What was the name of the most injured person on the shuttle?
dead_ai
+
+
+
+
+
+ If the AI is dead, big points penalty.
disc_secure
+
+
+
+
+
+ Is the NAD safe and secure?
mess_bonus
+
+
+
+
+
+ If there are no messes on the station anywhere, huge bonus.
nuked
+
+
+
+
+
+ Was the station blown into little bits?
nuked_penalty
+
+
+
+
+
+ Points penalty for being blown to little bits.
power_bonus
+
+
+
+
+
+ If all APCs on the station are running optimally, big bonus.
richest_cash
+
+
+
+
+
+ How much money did the richest person on the shuttle have?
richest_job
+
+
+
+
+
+ What was the job of the richest person on the shuttle?
richest_key
+
+
+
+
+
+ What was the ckey of the richest person on the shuttle?
richest_name
+
+
+
+
+
+ What was the name of the richest person on the shuttle?
score_arrested
+
+
+
+
+
+ How many antagonists are alive in the brig? (Nuke ops & Revolution)
score_clown_abuse
+
+
+
+
+
+ How many times was the clown punched, struck, or otherwise maligned?
score_dead_command
+
+
+
+
+
+ How many command members died? (Revolution)
score_dead_crew
+
+
+
+
+
+ How many people /didn't/ get out alive?
score_disease
+
+
+
+
+
+ How many rampant, uncured diseases are on board the station?
score_escapees
+
+
+
+
+
+ How many people got out alive?
score_events_endured
+
+
+
+
+
+ How many random events did the station survive?
score_food_eaten
+
+
+
+
+
+ How much noms were had by the crew?
score_greentext
+
+
+
+
+
+ Were the antagonists successful?
score_meals
+
+
+
+
+
+ How many meals were made?
score_mess
+
+
+
+
+
+ How much blood, puke, stains etc went uncleaned?
score_ops_killed
+
+
+
+
+
+ How many operatives were killed? (Nuke ops & Revolution)
score_ore_mined
+
+
+
+
+
+ How much ore has been mined on the mining z level?
score_power_loss
+
+
+
+
+
+ How many APCs have poor charge?
score_research_done
+
+
+
+
+
+ How much research was done by science?
score_things_harvested
+
+
+
+
+
+ How many harvests have hydroponics done?
score_things_shipped
+
+
+
+
+
+ How many useful items have cargo shipped out?
Proc Details get_score_container_worth
+
+ A recursive function to properly determine the cash on the wealthiest escapee
get_score_person_worth
+
+ A function to determine the cash plus the account balance of the wealthiest escapee
+
+
+
diff --git a/datum/security_level.html b/datum/security_level.html
new file mode 100644
index 0000000000000..72c9721d1231f
--- /dev/null
+++ b/datum/security_level.html
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+ /datum/security_level - Space Station 13
+
+
+
+
+
+
+Security levels
+These are used by the security level subsystem. Each one of these represents a security level that a player can set.
+Base type is abstract
+ Var Details ai_announcement_sound
+
+
+
+
+
+ The AI announcement sound about code change, that will be played after main sound
color
+
+
+
+
+
+ Color of security level
elevating_to_announcement_text
+
+
+
+
+
+ Our announcement when elevating to this level
elevating_to_announcement_title
+
+
+
+
+
+ Our announcement title when elevating to this level
elevating_to_sound
+
+
+
+
+
+ The sound that we will play when elevated to this security level
lowering_to_announcement_text
+
+
+
+
+
+ Our announcement when lowering to this level
lowering_to_announcement_title
+
+
+
+
+
+ Our announcement title when lowering to this level
lowering_to_sound
+
+
+
+
+
+ The sound that we will play when lowered to this security level
name
+
+
+
+
+
+ The name of this security level.
number_level
+
+
+
+
+
+ The numerical level of this security level, see defines for more information.
set_delay
+
+
+
+
+
+ The delay, after which the security level will be set
status_display_data
+
+
+
+
+
+ The status display data that will be posted to all status displays on security level set
status_display_mode
+
+
+
+
+
+ The status display that will be posted to all status displays on security level set
Proc Details pre_change()
+
+
+
+
+
+ Should contain actions that must be completed before actual security level set
+
+
+
diff --git a/datum/security_level/blue.html b/datum/security_level/blue.html
new file mode 100644
index 0000000000000..7edd57a3d71e4
--- /dev/null
+++ b/datum/security_level/blue.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /datum/security_level/blue - Space Station 13
+
+
+
+
+
+
+BLUE
+Caution advised
+
+
+
diff --git a/datum/security_level/delta.html b/datum/security_level/delta.html
new file mode 100644
index 0000000000000..f639bace524d4
--- /dev/null
+++ b/datum/security_level/delta.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /datum/security_level/delta - Space Station 13
+
+
+
+
+
+
+DELTA
+Station self-destruiction mechanism has been engaged
+
+
+
diff --git a/datum/security_level/epsilon.html b/datum/security_level/epsilon.html
new file mode 100644
index 0000000000000..7687db312d2e1
--- /dev/null
+++ b/datum/security_level/epsilon.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /datum/security_level/epsilon - Space Station 13
+
+
+
+
+
+
+Epsilon
+Station is not longer under the Central Command and to be destroyed by Death Squad (Or maybe not)
+
+
+
diff --git a/datum/security_level/gamma.html b/datum/security_level/gamma.html
new file mode 100644
index 0000000000000..427b59bd9e272
--- /dev/null
+++ b/datum/security_level/gamma.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /datum/security_level/gamma - Space Station 13
+
+
+
+
+
+
+Gamma
+Station major hostile threats
+
+
+
diff --git a/datum/security_level/green.html b/datum/security_level/green.html
new file mode 100644
index 0000000000000..5ec56abb2952c
--- /dev/null
+++ b/datum/security_level/green.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /datum/security_level/green - Space Station 13
+
+
+
+
+
+
+GREEN
+No threats
+
+
+
diff --git a/datum/security_level/red.html b/datum/security_level/red.html
new file mode 100644
index 0000000000000..e788a81c6dad5
--- /dev/null
+++ b/datum/security_level/red.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /datum/security_level/red - Space Station 13
+
+
+
+
+
+
+RED
+Hostile threats
+
+
+
diff --git a/datum/server_command.html b/datum/server_command.html
new file mode 100644
index 0000000000000..f041c58cff95d
--- /dev/null
+++ b/datum/server_command.html
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ /datum/server_command - Space Station 13
+
+
+
+
+
+
+Datum to handle both sending and receiving of server commands
+This datum is an extension of the redis callback and is designed for tighter integration with the BYOND servers.
+This list is registered and managed by SSintancing, not SSredis.
+NOTE: These commands are "fire and forget". If you need specific data from each server, use world/Topic still
Vars
+ command_args Associative list of command args
+ command_name The command name (must be unique)
+ ignoreself Does the sending server want to ignore this command? This is almost always yes unless you are doing testing stuff
+ source The source BYOND server for this message
+ Var Details command_args
+
+
+
+
+
+ Associative list of command args
command_name
+
+
+
+
+
+ The command name (must be unique)
ignoreself
+
+
+
+
+
+ Does the sending server want to ignore this command? This is almost always yes unless you are doing testing stuff
source
+
+
+
+
+
+ The source BYOND server for this message
+
+
+
diff --git a/datum/server_configuration.html b/datum/server_configuration.html
new file mode 100644
index 0000000000000..4ea4067439b8f
--- /dev/null
+++ b/datum/server_configuration.html
@@ -0,0 +1,183 @@
+
+
+
+
+
+
+ /datum/server_configuration - Space Station 13
+
+
+
+
+
+
+Represents a base configuration datum. Has everything else bundled into it
Vars
+ admin Holder for the admin configuration datum
+ afk Holder for the AFK configuration datum
+ asset_cache Holder for the asset cache configuration datum
+ custom_sprites Holder for the custom sprites configuration datum
+ database Holder for the DB configuration datum
+ discord Holder for the Discord configuration datum
+ event Holder for the Event configuration datum
+ gamemode Holder for the gamemode configuration datum
+ general Holder for the general configuration datum
+ ipintel Holder for the IPIntel configuration datum
+ jobs Holder for the job configuration datum
+ logging Holder for the logging configuration datum
+ mc Holder for the MC configuration datum
+ metrics Holder for the metrics configuration datum
+ movement Holder for the movement configuration datum
+ overflow Holder for the overflow configuration datum
+ raw_data Raw data. Stored here to avoid passing data between procs constantly
+ redis Holder for the redis configuration datum
+ ruins Holder for the ruins configuration datum
+ system Holder for the system configuration datum
+ url Holder for the URL configuration datum
+ vote Holder for the voting configuration datum
+ Var Details
+ Holder for the admin configuration datum
+ Holder for the AFK configuration datum
+ Holder for the asset cache configuration datum
+ Holder for the custom sprites configuration datum
+ Holder for the DB configuration datum
+ Holder for the Discord configuration datum
+ Holder for the Event configuration datum
+ Holder for the gamemode configuration datum
+ Holder for the general configuration datum
+ Holder for the IPIntel configuration datum
+ Holder for the job configuration datum
+ Holder for the logging configuration datum
+ Holder for the MC configuration datum
+ Holder for the metrics configuration datum
+ Holder for the movement configuration datum
+ Holder for the overflow configuration datum
raw_data
+
+
+
+
+
+ Raw data. Stored here to avoid passing data between procs constantly
+ Holder for the redis configuration datum
+ Holder for the ruins configuration datum
+ Holder for the system configuration datum
+ Holder for the URL configuration datum
+ Holder for the voting configuration datum
+
+
+
diff --git a/datum/song.html b/datum/song.html
new file mode 100644
index 0000000000000..39372e94495b2
--- /dev/null
+++ b/datum/song.html
@@ -0,0 +1,525 @@
+
+
+
+
+
+
+ /datum/song - Space Station 13
+
+
+
+
+
+
+These are the actual backend behind instruments.
+They attach to an atom and provide the editor + playback functionality.
Vars
+ allowed_instrument_ids What instruments our built in picker can use. The picker won't show unless this is longer than one.
+ cached_exponential_dropoff Do not directly set, use update_sustain()
+ cached_legacy_dir Cached legacy dir for legacy instruments
+ cached_legacy_ext Cached legacy ext for legacy instruments
+ cached_linear_dropoff /////// DO NOT DIRECTLY SET THESE!
+Do not directly set, use update_sustain()
+ cached_samples Cached list of samples, referenced directly from the instrument for synthesized instruments
+ channels_idle List of channels that aren't being used, as text. This is to prevent unnecessary freeing and reallocations from SSsounds/SSinstruments.
+ channels_playing Channel as text = current volume percentage but it's 0 to 100 instead of 0 to 1.
+ compiled_chords Playing variables
+Build by compile_chords()
+Must be rebuilt on instrument switch.
+Compilation happens when we start playing and is cleared after we finish playing.
+Format: list of chord lists, with chordlists having (key1, key2, key3, tempodiv)
+ current_chord Current chord we're on.
+ debug_mode If this is enabled, some things won't be strictly cleared when they usually are (liked compiled_chords on play stop)
+ delay_by Amount of delay to wait before playing the next chord
+ editing Are we currently editing?
+ elapsed_delay Current section of a long chord we're on, so we don't need to make a billion chords, one for every unit ticklag.
+ full_sustain_held_note Should we not decay our last played note?
+ hearing_mobs The list of mobs that can hear us
+ help Is the help screen open?
+ instrument_range How far we can be heard
+ last_channel_played Last channel to play. text.
+ last_hearcheck Last world.time we checked for who can hear us
+ legacy Are we operating in legacy mode (so if the instrument is a legacy instrument)
+ lines Our song lines
+ max_repeats Maximum times we can repeat
+ max_sound_channels Max sound channels to occupy
+ max_volume Max volume
+ min_volume Min volume - This is so someone doesn't decide it's funny to set it to 0 and play invisible songs.
+ name Name of the song
+ note_shift ////////// !!FUN!! - Only works in synthesized mode! /////////////////
+Note numbers to shift.
+ octave_min DO NOT TOUCH THESE
+ parent The atom we're attached to/playing from
+ playing Are we currently playing?
+ repeat Repeats left
+ sustain_dropoff_volume When a note is considered dead if it is below this in volume
+ sustain_exponential_dropoff Exponential sustain dropoff rate per decisecond
+ sustain_linear_duration Total duration of linear sustain for 100 volume note to get to SUSTAIN_DROPOFF
+ sustain_mode The kind of sustain we're using
+ tempo delay between notes in deciseconds
+ user_playing Person playing us
+ using_instrument ///////// Cached instrument variables /////////////
+Instrument we are currently using
+ using_sound_channels Current channels, so we can save a length() call.
+ volume Our volume Procs
+ compile_chords Compiles chords.
+ compile_legacy Compiles our lines into "chords" with filenames for legacy playback. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag.
+ compile_synthesized Compiles our lines into "chords" with numbers. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag.
+ do_hearcheck Checks and stores which mobs can hear us. Terminates sounds for mobs that leave our range.
+ get_bpm Gets our beats per minute based on our tempo.
+ parse_song Parses a song the user has input into lines and stores them.
+ play_chord Plays a chord.
+ playkey_legacy Proc to play a legacy note. Just plays the sound to hearing mobs (and does hearcheck if necessary), no fancy channel/sustain/management.
+ playkey_synth Plays a specific numerical key from our instrument to anyone who can hear us.
+Does a hearing check if enough time has passed.
+ pop_channel Pops a channel we have reserved so we don't have to release and re-request them from SSsounds every time we play a note. This is faster.
+ process_decay Decays our channels and updates their volumes to mobs who can hear us.
+ process_song Processes our song.
+ sanitize_tempo Sanitizes tempo to a value that makes sense and fits the current world.tick_lag.
+ set_bpm Sets our tempo from a beats-per-minute, sanitizing it to a valid number first.
+ set_dropoff_volume Setter for setting how low the volume has to get before a note is considered "dead" and dropped
+ set_exponential_drop_rate Setter for setting exponential falloff factor.
+ set_instrument Sets our instrument, caching anything necessary for faster accessing. Accepts an ID, typepath, or instantiated instrument datum.
+ set_linear_falloff_duration Setter for setting linear falloff duration.
+ set_volume Setter for setting output volume.
+ should_stop_playing Checks if we should halt playback.
+ start_playing Attempts to start playing our song.
+ stop_playing Stops playing, terminating all sounds if in synthesized mode. Clears hearing_mobs.
+ tempodiv_to_delay Converts a tempodiv to ticks to elapse before playing the next chord, taking into account our tempo.
+ terminate_all_sounds Stops all sounds we are "responsible" for. Only works in synthesized mode.
+ terminate_sound_mob Stops all sounds we are responsible for in a given person. Only works in synthesized mode.
+ update_sustain Updates our cached linear/exponential falloff stuff, saving calculations down the line.
+ Var Details allowed_instrument_ids
+
+
+
+
+
+ What instruments our built in picker can use. The picker won't show unless this is longer than one.
cached_exponential_dropoff
+
+
+
+
+
+ Do not directly set, use update_sustain()
cached_legacy_dir
+
+
+
+
+
+ Cached legacy dir for legacy instruments
cached_legacy_ext
+
+
+
+
+
+ Cached legacy ext for legacy instruments
cached_linear_dropoff
+
+
+
+
+
+ /////// DO NOT DIRECTLY SET THESE!
+Do not directly set, use update_sustain()
cached_samples
+
+
+
+
+
+ Cached list of samples, referenced directly from the instrument for synthesized instruments
channels_idle
+
+
+
+
+
+ List of channels that aren't being used, as text. This is to prevent unnecessary freeing and reallocations from SSsounds/SSinstruments.
channels_playing
+
+
+
+
+
+ Channel as text = current volume percentage but it's 0 to 100 instead of 0 to 1.
compiled_chords
+
+
+
+
+
+ Playing variables
+Build by compile_chords()
+Must be rebuilt on instrument switch.
+Compilation happens when we start playing and is cleared after we finish playing.
+Format: list of chord lists, with chordlists having (key1, key2, key3, tempodiv)
current_chord
+
+
+
+
+
+ Current chord we're on.
debug_mode
+
+
+
+
+
+ If this is enabled, some things won't be strictly cleared when they usually are (liked compiled_chords on play stop)
delay_by
+
+
+
+
+
+ Amount of delay to wait before playing the next chord
editing
+
+
+
+
+
+ Are we currently editing?
elapsed_delay
+
+
+
+
+
+ Current section of a long chord we're on, so we don't need to make a billion chords, one for every unit ticklag.
full_sustain_held_note
+
+
+
+
+
+ Should we not decay our last played note?
hearing_mobs
+
+
+
+
+
+ The list of mobs that can hear us
help
+
+
+
+
+
+ Is the help screen open?
instrument_range
+
+
+
+
+
+ How far we can be heard
last_channel_played
+
+
+
+
+
+ Last channel to play. text.
last_hearcheck
+
+
+
+
+
+ Last world.time we checked for who can hear us
legacy
+
+
+
+
+
+ Are we operating in legacy mode (so if the instrument is a legacy instrument)
lines
+
+
+
+
+
+ Our song lines
max_repeats
+
+
+
+
+
+ Maximum times we can repeat
max_sound_channels
+
+
+
+
+
+ Max sound channels to occupy
max_volume
+
+
+
+
+
+ Max volume
min_volume
+
+
+
+
+
+ Min volume - This is so someone doesn't decide it's funny to set it to 0 and play invisible songs.
name
+
+
+
+
+
+ Name of the song
note_shift
+
+
+
+
+
+ ////////// !!FUN!! - Only works in synthesized mode! /////////////////
+Note numbers to shift.
octave_min
+
+
+
+
+
+ DO NOT TOUCH THESE
parent
+
+
+
+
+
+ The atom we're attached to/playing from
playing
+
+
+
+
+
+ Are we currently playing?
repeat
+
+
+
+
+
+ Repeats left
sustain_dropoff_volume
+
+
+
+
+
+ When a note is considered dead if it is below this in volume
sustain_exponential_dropoff
+
+
+
+
+
+ Exponential sustain dropoff rate per decisecond
sustain_linear_duration
+
+
+
+
+
+ Total duration of linear sustain for 100 volume note to get to SUSTAIN_DROPOFF
sustain_mode
+
+
+
+
+
+ The kind of sustain we're using
tempo
+
+
+
+
+
+ delay between notes in deciseconds
user_playing
+
+
+
+
+
+ Person playing us
using_instrument
+
+
+
+
+
+ ///////// Cached instrument variables /////////////
+Instrument we are currently using
using_sound_channels
+
+
+
+
+
+ Current channels, so we can save a length() call.
volume
+
+
+
+
+
+ Our volume
Proc Details compile_chords()
+
+
+
+
+
+ Compiles chords.
compile_legacy()
+
+
+
+
+
+ Compiles our lines into "chords" with filenames for legacy playback. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag.
compile_synthesized()
+
+
+
+
+
+ Compiles our lines into "chords" with numbers. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag.
do_hearcheck()
+
+
+
+
+
+ Checks and stores which mobs can hear us. Terminates sounds for mobs that leave our range.
get_bpm()
+
+
+
+
+
+ Gets our beats per minute based on our tempo.
parse_song(text)
+
+
+
+
+
+ Parses a song the user has input into lines and stores them.
play_chord(/list/chord)
+
+
+
+
+
+ Plays a chord.
playkey_legacy(note, acc, oct, /mob /user)
+
+
+
+
+
+ Proc to play a legacy note. Just plays the sound to hearing mobs (and does hearcheck if necessary), no fancy channel/sustain/management.
+Arguments:
+
+note - number from 1-7 for A-G
+acc - either "b", "n", or "#"
+oct - 1-8 (or 9 for C)
+ playkey_synth(key, /mob /user)
+
+
+
+
+
+ Plays a specific numerical key from our instrument to anyone who can hear us.
+Does a hearing check if enough time has passed.
pop_channel()
+
+
+
+
+
+ Pops a channel we have reserved so we don't have to release and re-request them from SSsounds every time we play a note. This is faster.
process_decay(wait_ds)
+
+
+
+
+
+ Decays our channels and updates their volumes to mobs who can hear us.
+Arguments:
+
+wait_ds - the deciseconds we should decay by. This is to compensate for any lag, as otherwise songs would get pretty nasty during high time dilation.
+ process_song(wait)
+
+
+
+
+
+ Processes our song.
sanitize_tempo(new_tempo)
+
+
+
+
+
+ Sanitizes tempo to a value that makes sense and fits the current world.tick_lag.
set_bpm(bpm)
+
+
+
+
+
+ Sets our tempo from a beats-per-minute, sanitizing it to a valid number first.
set_dropoff_volume(volume, no_refresh)
+
+
+
+
+
+ Setter for setting how low the volume has to get before a note is considered "dead" and dropped
set_exponential_drop_rate(drop, no_refresh)
+
+
+
+
+
+ Setter for setting exponential falloff factor.
set_instrument
+
+ Sets our instrument, caching anything necessary for faster accessing. Accepts an ID, typepath, or instantiated instrument datum.
set_linear_falloff_duration(duration, no_refresh)
+
+
+
+
+
+ Setter for setting linear falloff duration.
set_volume(volume)
+
+
+
+
+
+ Setter for setting output volume.
should_stop_playing
+
+ Checks if we should halt playback.
start_playing
+
+ Attempts to start playing our song.
stop_playing()
+
+
+
+
+
+ Stops playing, terminating all sounds if in synthesized mode. Clears hearing_mobs.
tempodiv_to_delay(tempodiv)
+
+
+
+
+
+ Converts a tempodiv to ticks to elapse before playing the next chord, taking into account our tempo.
terminate_all_sounds(clear_channels)
+
+
+
+
+
+ Stops all sounds we are "responsible" for. Only works in synthesized mode.
terminate_sound_mob
+
+ Stops all sounds we are responsible for in a given person. Only works in synthesized mode.
update_sustain()
+
+
+
+
+
+ Updates our cached linear/exponential falloff stuff, saving calculations down the line.
+
+
+
diff --git a/datum/sortInstance.html b/datum/sortInstance.html
new file mode 100644
index 0000000000000..b3d9be1803122
--- /dev/null
+++ b/datum/sortInstance.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /datum/sortInstance - Space Station 13
+
+
+
+
+
+
+Procs
+ gallopRight Like gallopLeft, except that if the range contains an element equal to
+key, gallopRight returns the index after the rightmost equal element.
Proc Details gallopRight(key, base, len, hint)
+
+
+
+
+
+ Like gallopLeft, except that if the range contains an element equal to
+key, gallopRight returns the index after the rightmost equal element.
+@param key the key whose insertion point to search for
+@param a the array in which to search
+@param base the index of the first element in the range
+@param len the length of the range; must be > 0
+@param hint the index at which to begin the search, 0 <= hint < n.
+The closer hint is to the result, the faster this method will run.
+@param c the comparator used to order the range, and to search
+@return the int k, 0 <= k <= n such that a[b + k - 1] <= key < a[b + k]
+
+
+
diff --git a/datum/species.html b/datum/species.html
new file mode 100644
index 0000000000000..2418e45ad978a
--- /dev/null
+++ b/datum/species.html
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+ /datum/species - Space Station 13
+
+
+
+
+
+
+
+ Var Details armor
+
+
+
+
+
+ Additional armour value for the species.
article_override
+
+
+
+
+
+ Article to use when referring to an individual of the species, if pronunciation is different from expected.
+Because it's unathi's turn to be special snowflakes.
default_bodyacc
+
+
+
+
+
+ Name of default body accessory if any.
inherent_biotypes
+
+
+
+
+
+ bitfield of biotypes the mob belongs to.
inherent_traits
+
+
+
+
+
+ Generic traits tied to having the species.
max_age
+
+
+
+
+
+ Maximum age this species can have
min_age
+
+
+
+
+
+ Minimum age this species can have
name
+
+
+
+
+
+ Species name
name_plural
+
+
+
+
+
+ Pluralized name (since "[name]s" is not always valid)
optional_body_accessory
+
+
+
+
+
+ Whether the presence of a body accessory on this species is optional or not.
special_step_sounds
+
+
+
+
+
+ Sounds to override barefeet walking
sprite_sheet_name
+
+
+
+
+
+ The corresponding key for spritesheets
tail
+
+
+
+
+
+ Name of tail image in species effects icon file.
wing
+
+
+
+
+
+ like tail but wings
Proc Details create_organs
+
+ Handles creation of mob organs.
+Arguments:
+
+H: The human to create organs inside of
+bodyparts_to_omit: Any bodyparts in this list (and organs within them) should not be added.
+ get_species_runechat_color
+
+ Species-specific runechat colour handler
+Checks the species datum flags and returns the appropriate colour
+Can be overridden on subtypes to short-circuit these checks (Example: Grey colour is eye colour)
+Arguments:
+
+H - The human who this DNA belongs to
+
+
+
+
diff --git a/datum/species/skeleton.html b/datum/species/skeleton.html
new file mode 100644
index 0000000000000..273ab8ba54dad
--- /dev/null
+++ b/datum/species/skeleton.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/species/skeleton - Space Station 13
+
+
+
+
+
+
+The OG skellybones, quite OP. As of this comment, only available through ash-drake loot (2023-03-07)
+ Var Details milk_fracture_repair_probability
+
+
+
+
+
+ How likely (in %) are we to heal a fracture?
milk_heal_amount
+
+
+
+
+
+ How much brute and burn does milk heal per handle_reagents()
+
+
+
diff --git a/datum/spell.html b/datum/spell.html
new file mode 100644
index 0000000000000..4d72de0a2e25e
--- /dev/null
+++ b/datum/spell.html
@@ -0,0 +1,248 @@
+
+
+
+
+
+
+ /datum/spell - Space Station 13
+
+
+
+
+
+
+Vars
+ base_cooldown recharge time in deciseconds
+ cooldown_handler handles a given spells cooldowns. tracks the time until its off cooldown,
+ create_attack_logs does this spell generate attack logs?
+ create_custom_logs If this spell creates custom logs using the write_custom_logs() proc. Will ignore create_attack_logs
+ custom_handler Which spell_handler is used in addition to the normal spells behaviour, can be null. Set this in create_new_handler if needed
+ holy_area_cancast Whether or not the spell functions in a holy place
+ selection_activated_message The message displayed when a click based spell gets activated
+ selection_deactivated_message The message displayed when a click based spell gets deactivated
+ smoke_type Determines if the spell has smoke, and if so what effect the smoke has. See spell defines.
+ spell_handlers List with the handler datums per spell type. Key = src.type, value = the handler datum created by create_new_handler()
+ targeting Which targeting system is used. Set this in create_new_targeting
+ targeting_datums List with the targeting datums per spell type. Key = src.type, value = the targeting datum created by create_new_targeting() Procs
+ cast The proc where the actual spell gets cast.
+ choose_targets Will try to choose targets using the targeting variable and perform the spell if it can
+Do not override this! Override create_new_targeting instead
+ create_new_cooldown Creates and returns the spells cooldown handler, defaults to the standard recharge handler.
+Override this if you wish to use a different method of cooldown
+ create_new_handler Creates and returns the handler datum for this spell type.
+Override this if you want a custom spell handler.
+Should return a value of type /datum/spell_handler or NONE
+ create_new_targeting Creates and returns the targeting datum for this spell type. Override this!
+Should return a value of type /datum/spell_targeting
+ on_mind_transfer This proc is ran when a mind is transfered to a new mob. Tells it if the action should be transfered on return true, and tells it not to remove it on false
+ on_purchase_upgrade Lets the spell have a special effect applied to it when upgraded. By default, does nothing.
+ perform Handles all the code for performing a spell once the targets are known
+ should_remove_click_intercept Called in try_perform
before removing the click interceptor. useful to override if you have a spell that requires more than 1 click
+ spend_spell_cost Will spend the cost of using this spell once. Will update the action button's icon if there is any
+ try_perform Will try and perform the spell using the given targets and user. Will spend one charge of the spell
+ valid_target Allows for spell specific target validation. Will be used by the spell_targeting datums
+ write_custom_logs Will write additional logs if create_custom_logs is TRUE and the caster has a ckey. Override this
+ Var Details base_cooldown
+
+
+
+
+
+ recharge time in deciseconds
+ handles a given spells cooldowns. tracks the time until its off cooldown,
create_attack_logs
+
+
+
+
+
+ does this spell generate attack logs?
create_custom_logs
+
+
+
+
+
+ If this spell creates custom logs using the write_custom_logs() proc. Will ignore create_attack_logs
custom_handler
+
+
+
+
+
+ Which spell_handler is used in addition to the normal spells behaviour, can be null. Set this in create_new_handler if needed
holy_area_cancast
+
+
+
+
+
+ Whether or not the spell functions in a holy place
selection_activated_message
+
+
+
+
+
+ The message displayed when a click based spell gets activated
selection_deactivated_message
+
+
+
+
+
+ The message displayed when a click based spell gets deactivated
smoke_type
+
+
+
+
+
+ Determines if the spell has smoke, and if so what effect the smoke has. See spell defines.
spell_handlers
+
+
+
+
+
+ List with the handler datums per spell type. Key = src.type, value = the handler datum created by create_new_handler()
+ Which targeting system is used. Set this in create_new_targeting
targeting_datums
+
+
+
+
+
+ List with the targeting datums per spell type. Key = src.type, value = the targeting datum created by create_new_targeting()
Proc Details cast(/list/targets, /mob /user)
+
+
+
+
+
+ The proc where the actual spell gets cast.
+Arguments:
+
+targets - The targets being targeted by the spell
+user - The caster of the spell
+ choose_targets
+
+ Will try to choose targets using the targeting variable and perform the spell if it can
+Do not override this! Override create_new_targeting instead
+Arguments:
+
+user - The caster of the spell
+ create_new_cooldown()
+
+
+
+
+
+ Creates and returns the spells cooldown handler, defaults to the standard recharge handler.
+Override this if you wish to use a different method of cooldown
create_new_handler()
+
+
+
+
+
+ Creates and returns the handler datum for this spell type.
+Override this if you want a custom spell handler.
+Should return a value of type /datum/spell_handler or NONE
create_new_targeting()
+
+
+
+
+
+ Creates and returns the targeting datum for this spell type. Override this!
+Should return a value of type /datum/spell_targeting
on_mind_transfer
+
+ This proc is ran when a mind is transfered to a new mob. Tells it if the action should be transfered on return true, and tells it not to remove it on false
on_purchase_upgrade()
+
+
+
+
+
+ Lets the spell have a special effect applied to it when upgraded. By default, does nothing.
+ Handles all the code for performing a spell once the targets are known
+Arguments:
+
+targets - The list of targets the spell is being cast on. Will not be empty or null
+recharge - Whether or not the spell should go recharge
+user - The caster of the spell
+ should_remove_click_intercept()
+
+
+
+
+
+ Called in try_perform
before removing the click interceptor. useful to override if you have a spell that requires more than 1 click
spend_spell_cost
+
+ Will spend the cost of using this spell once. Will update the action button's icon if there is any
+Arguments:
+
+user - Who used this spell?
+
+ Will try and perform the spell using the given targets and user. Will spend one charge of the spell
+Arguments:
+
+targets - The targets the spell is being performed on
+user - The caster of the spell
+ valid_target(target, user)
+
+
+
+
+
+ Allows for spell specific target validation. Will be used by the spell_targeting datums
+Arguments:
+
+target - Who is being considered
+user - Who is the user of this spell
+ write_custom_logs(/list/targets, /mob /user)
+
+
+
+
+
+ Will write additional logs if create_custom_logs is TRUE and the caster has a ckey. Override this
+Arguments:
+
+targets - The targets being targeted by the spell
+user - The user of the spell
+
+
+
+
diff --git a/datum/spell/ai_spell/ranged/core_tilt.html b/datum/spell/ai_spell/ranged/core_tilt.html
new file mode 100644
index 0000000000000..2c9d0a49cd713
--- /dev/null
+++ b/datum/spell/ai_spell/ranged/core_tilt.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/spell/ai_spell/ranged/core_tilt - Space Station 13
+
+
+
+
+
+
+
+ Var Details roll_over_cooldown
+
+
+
+
+
+ How long does it take for the ability to cool down, on top of [roll_over_time]?
roll_over_time
+
+
+
+
+
+ How long does it take us to roll?
+
+
+
diff --git a/datum/spell/alien_spell.html b/datum/spell/alien_spell.html
new file mode 100644
index 0000000000000..29a0d599d63b2
--- /dev/null
+++ b/datum/spell/alien_spell.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/spell/alien_spell - Space Station 13
+
+
+
+
+
+
+Vars
+ create_custom_logs Every alien spell creates only logs, no attack messages on someone placing weeds, but you DO get attack messages on neurotoxin and corrosive acid
+ plasma_cost How much plasma it costs to use this Procs
+ New Every single alien spell uses a "spell name + plasmacost" format
+ Var Details create_custom_logs
+
+
+
+
+
+ Every alien spell creates only logs, no attack messages on someone placing weeds, but you DO get attack messages on neurotoxin and corrosive acid
plasma_cost
+
+
+
+
+
+ How much plasma it costs to use this
Proc Details New()
+
+
+
+
+
+ Every single alien spell uses a "spell name + plasmacost" format
+
+
+
diff --git a/datum/spell/aoe.html b/datum/spell/aoe.html
new file mode 100644
index 0000000000000..1000be022adf2
--- /dev/null
+++ b/datum/spell/aoe.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/spell/aoe - Space Station 13
+
+
+
+
+
+
+
+ Var Details aoe_range
+
+
+
+
+
+ How far does it effect
+
+
+
diff --git a/datum/spell/aoe/revenant.html b/datum/spell/aoe/revenant.html
new file mode 100644
index 0000000000000..0e4dca098ad36
--- /dev/null
+++ b/datum/spell/aoe/revenant.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/spell/aoe/revenant - Space Station 13
+
+
+
+
+
+
+Vars
+ cast_amount How much essence it costs to use
+ locked If it's locked and needs to be unlocked before use
+ reveal How long it reveals the revenant in deciseconds
+ stun How long it stuns the revenant in deciseconds
+ unlock_amount How much essence it costs to unlock
+ Var Details cast_amount
+
+
+
+
+
+ How much essence it costs to use
locked
+
+
+
+
+
+ If it's locked and needs to be unlocked before use
reveal
+
+
+
+
+
+ How long it reveals the revenant in deciseconds
stun
+
+
+
+
+
+ How long it stuns the revenant in deciseconds
unlock_amount
+
+
+
+
+
+ How much essence it costs to unlock
+
+
+
diff --git a/datum/spell/aoe/revenant/haunt_object.html b/datum/spell/aoe/revenant/haunt_object.html
new file mode 100644
index 0000000000000..33ac248bb82dd
--- /dev/null
+++ b/datum/spell/aoe/revenant/haunt_object.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/spell/aoe/revenant/haunt_object - Space Station 13
+
+
+
+
+
+
+Makes objects be haunted and then throws them at conscious people to do damage, spooky!
Vars
+ attack_timers A list of all attack timers started by this spell being cast
+ max_targets The maximum number of objects to haunt Procs
+ attack Handles finding a valid target and throwing us at it
+ make_spooky Handles making an object haunted and setting it up to attack
+ set_outline Sets the glow on the haunted object, scales up based on throwforce
+ stop_timers Stop all attack timers cast by the previous spell use
+ Var Details attack_timers
+
+
+
+
+
+ A list of all attack timers started by this spell being cast
max_targets
+
+
+
+
+
+ The maximum number of objects to haunt
Proc Details
+ Handles finding a valid target and throwing us at it
+ Handles making an object haunted and setting it up to attack
+ Sets the glow on the haunted object, scales up based on throwforce
stop_timers()
+
+
+
+
+
+ Stop all attack timers cast by the previous spell use
+
+
+
diff --git a/datum/spell/charge_up.html b/datum/spell/charge_up.html
new file mode 100644
index 0000000000000..9422644703705
--- /dev/null
+++ b/datum/spell/charge_up.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/spell/charge_up - Space Station 13
+
+
+
+
+
+
+A click-based spell template which starts charging up once you click the action button/verb. Click again on something to activate the actual spell
+ Var Details charge_sound
+
+
+
+
+
+ The sound charging up your power will make. Be sure to include a channel when creating the sound
charge_up_overlay
+
+
+
+
+
+ The overlay used to show that you are charging. Create this in the New of the spell
max_charge_time
+
+
+
+
+
+ How long you can charge for
start_charging_text
+
+
+
+
+
+ The text shown when you start charging
stop_charging_fail_text
+
+
+
+
+
+ The text shown when you are over the charge limit and thus can't stop.
stop_charging_text
+
+
+
+
+
+ The text shown when you successfully stop charging
+
+
+
diff --git a/datum/spell/charge_up/bounce.html b/datum/spell/charge_up/bounce.html
new file mode 100644
index 0000000000000..6cfcdf37ed83e
--- /dev/null
+++ b/datum/spell/charge_up/bounce.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/spell/charge_up/bounce - Space Station 13
+
+
+
+
+
+
+A spell template that adds bounces to the charge_up spell template. The spell will bounce between targets once released.
+Don't override cast and instead override apply_bounce_effect and the other procs
Procs
+ apply_bounce_effect The proc called when a bounce hits a target. Override this to add an effect
+The user itself is never hit
+ create_beam Called when a bounce travels from one mob to another
+ get_bounce_amount How much bounces should there be in total?
+ get_bounce_energy How much energy should each bounce have?
Proc Details apply_bounce_effect(/mob /origin, /mob /target, energy, /mob /user)
+
+
+
+
+
+ The proc called when a bounce hits a target. Override this to add an effect
+The user itself is never hit
+Arguments:
+
+origin - Where the bounce came from
+target - The mob that got hit
+energy - How much energy the bounce has
+user - The caster of the spell
+ create_beam
+
+ Called when a bounce travels from one mob to another
+Arguments:
+
+origin - Where the bounce came from
+target - The mob that got hit
+ get_bounce_amount()
+
+
+
+
+
+ How much bounces should there be in total?
get_bounce_energy()
+
+
+
+
+
+ How much energy should each bounce have?
+
+
+
diff --git a/datum/spell/hackerman_deck.html b/datum/spell/hackerman_deck.html
new file mode 100644
index 0000000000000..20299cad3ded0
--- /dev/null
+++ b/datum/spell/hackerman_deck.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/spell/hackerman_deck - Space Station 13
+
+
+
+
+
+
+Vars
+ recent_hacking How many times have we successfully hacked in the last minute? Increases burn damage by 3 for each value above 0.
+ Var Details recent_hacking
+
+
+
+
+
+ How many times have we successfully hacked in the last minute? Increases burn damage by 3 for each value above 0.
+
+
+
diff --git a/datum/spell/mimic.html b/datum/spell/mimic.html
new file mode 100644
index 0000000000000..7300986256ebd
--- /dev/null
+++ b/datum/spell/mimic.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/spell/mimic - Space Station 13
+
+
+
+
+
+
+
+ Var Details
+ Which forms the user can become
+ How many forms the user can remember
next_override_index
+
+
+
+
+
+ Which index will be overriden next when the user wants to remember another form
perfect_disguise
+
+
+
+
+
+ If a message is shown when somebody examines the user from close range
+ Which form is currently selected
+
+
+
diff --git a/datum/spell/morph_spell.html b/datum/spell/morph_spell.html
new file mode 100644
index 0000000000000..9847d538304be
--- /dev/null
+++ b/datum/spell/morph_spell.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/spell/morph_spell - Space Station 13
+
+
+
+
+
+
+Vars
+ hunger_cost How much food it costs the morph to use this
+ Var Details hunger_cost
+
+
+
+
+
+ How much food it costs the morph to use this
+
+
+
diff --git a/datum/spell/projectile.html b/datum/spell/projectile.html
new file mode 100644
index 0000000000000..33be8bfd8041d
--- /dev/null
+++ b/datum/spell/projectile.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/spell/projectile - Space Station 13
+
+
+
+
+
+
+Vars
+ proj_type The projectile we spawn. Make sure to override this
+ Var Details proj_type
+
+
+
+
+
+ The projectile we spawn. Make sure to override this
+
+
+
diff --git a/datum/spell/spacetime_dist.html b/datum/spell/spacetime_dist.html
new file mode 100644
index 0000000000000..2a8e7d4737d21
--- /dev/null
+++ b/datum/spell/spacetime_dist.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/spell/spacetime_dist - Space Station 13
+
+
+
+
+
+
+Vars
+ duration The duration of the scramble
+ effects A lazylist of all scramble effects this spell has created.
+ ready Whether we're ready to cast again yet or not. In the event someone lowers their cooldown with charge.
+ scramble_radius The radius of the scramble around the caster. Increased by 3 * spell_level Procs
+ clean_turfs Callback which cleans up our effects list after the duration expires.
+ Var Details duration
+
+
+
+
+
+ The duration of the scramble
effects
+
+
+
+
+
+ A lazylist of all scramble effects this spell has created.
ready
+
+
+
+
+
+ Whether we're ready to cast again yet or not. In the event someone lowers their cooldown with charge.
scramble_radius
+
+
+
+
+
+ The radius of the scramble around the caster. Increased by 3 * spell_level
Proc Details clean_turfs()
+
+
+
+
+
+ Callback which cleans up our effects list after the duration expires.
+
+
+
diff --git a/datum/spell/summonitem.html b/datum/spell/summonitem.html
new file mode 100644
index 0000000000000..3a1521eecb00b
--- /dev/null
+++ b/datum/spell/summonitem.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/spell/summonitem - Space Station 13
+
+
+
+
+
+
+Vars
+ blacklisted_summons List of objects which will result in the spell stopping with the recursion search
+ Var Details blacklisted_summons
+
+
+
+
+
+ List of objects which will result in the spell stopping with the recursion search
+
+
+
diff --git a/datum/spell/touch/alien_spell.html b/datum/spell/touch/alien_spell.html
new file mode 100644
index 0000000000000..33368fe899148
--- /dev/null
+++ b/datum/spell/touch/alien_spell.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/spell/touch/alien_spell - Space Station 13
+
+
+
+
+
+
+Vars
+ base_cooldown Extremely fast cooldown, only present so the cooldown system doesn't explode
+ create_custom_logs Every alien spell creates only logs, no attack messages on someone placing weeds, but you DO get attack messages on neurotoxin and corrosive acid
+ on_remove_message We want a special on remove message, so we got this variable to do so
+ plasma_cost How much plasma it costs to use this
+ Var Details base_cooldown
+
+
+
+
+
+ Extremely fast cooldown, only present so the cooldown system doesn't explode
create_custom_logs
+
+
+
+
+
+ Every alien spell creates only logs, no attack messages on someone placing weeds, but you DO get attack messages on neurotoxin and corrosive acid
on_remove_message
+
+
+
+
+
+ We want a special on remove message, so we got this variable to do so
plasma_cost
+
+
+
+
+
+ How much plasma it costs to use this
+
+
+
diff --git a/datum/spell/turf_teleport.html b/datum/spell/turf_teleport.html
new file mode 100644
index 0000000000000..9999156f6b9cd
--- /dev/null
+++ b/datum/spell/turf_teleport.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/spell/turf_teleport - Space Station 13
+
+
+
+
+
+
+
+ Var Details include_light_turfs
+
+
+
+
+
+ Whether the spell can teleport to light locations
+
+
+
diff --git a/datum/spell/vampire.html b/datum/spell/vampire.html
new file mode 100644
index 0000000000000..d02d446632058
--- /dev/null
+++ b/datum/spell/vampire.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/spell/vampire - Space Station 13
+
+
+
+
+
+
+
+ Var Details required_blood
+
+
+
+
+
+ How much blood this ability costs to use
+
+
+
diff --git a/datum/spell/vampire/arena.html b/datum/spell/vampire/arena.html
new file mode 100644
index 0000000000000..d28b8c053ecb8
--- /dev/null
+++ b/datum/spell/vampire/arena.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/spell/vampire/arena - Space Station 13
+
+
+
+
+
+
+Vars
+ all_temp_walls Holds a reference to all arena walls so we can qdel them easily with dispel()
+ timer Holds a reference to the timer until either the spell runs out or we recast it
+ Var Details all_temp_walls
+
+
+
+
+
+ Holds a reference to all arena walls so we can qdel them easily with dispel()
timer
+
+
+
+
+
+ Holds a reference to the timer until either the spell runs out or we recast it
+
+
+
diff --git a/datum/spell/vampire/soul_anchor.html b/datum/spell/vampire/soul_anchor.html
new file mode 100644
index 0000000000000..6e6366496a18d
--- /dev/null
+++ b/datum/spell/vampire/soul_anchor.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/spell/vampire/soul_anchor - Space Station 13
+
+
+
+
+
+
+Vars
+ making_anchor Are we making an anchor?
+ timer Holds a reference to the timer until the caster fake recalls
+ Var Details making_anchor
+
+
+
+
+
+ Are we making an anchor?
timer
+
+
+
+
+
+ Holds a reference to the timer until the caster fake recalls
+
+
+
diff --git a/datum/spell_cooldown.html b/datum/spell_cooldown.html
new file mode 100644
index 0000000000000..9060a899e390e
--- /dev/null
+++ b/datum/spell_cooldown.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/spell_cooldown - Space Station 13
+
+
+
+
+
+
+
+ Var Details recharge_duration
+
+
+
+
+
+ the amount of time that must pass before a spell can be used again
recharge_time
+
+
+
+
+
+ the world.time the spell will be available again
spell_parent
+
+
+
+
+
+ holds a ref to the spell
starts_off_cooldown
+
+
+
+
+
+ does it start off cooldown?
+
+
+
diff --git a/datum/spell_cooldown/charges.html b/datum/spell_cooldown/charges.html
new file mode 100644
index 0000000000000..cd1b6ad1af388
--- /dev/null
+++ b/datum/spell_cooldown/charges.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/spell_cooldown/charges - Space Station 13
+
+
+
+
+
+
+
+ Var Details charge_duration
+
+
+
+
+
+ the cooldown between uses of charges
charge_time
+
+
+
+
+
+ the time at which a spell charge can be used
current_charges
+
+
+
+
+
+ the number of charges we currently have
max_charges
+
+
+
+
+
+ the max number of charges a spell can have
+
+
+
diff --git a/datum/spell_handler/alien.html b/datum/spell_handler/alien.html
new file mode 100644
index 0000000000000..bde578c02d0ab
--- /dev/null
+++ b/datum/spell_handler/alien.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/spell_handler/alien - Space Station 13
+
+
+
+
+
+
+Vars
+ plasma_cost Amount of plasma required to use this ability
+ Var Details plasma_cost
+
+
+
+
+
+ Amount of plasma required to use this ability
+
+
+
diff --git a/datum/spell_handler/morph.html b/datum/spell_handler/morph.html
new file mode 100644
index 0000000000000..4bcd8d5a527c5
--- /dev/null
+++ b/datum/spell_handler/morph.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/spell_handler/morph - Space Station 13
+
+
+
+
+
+
+Vars
+ hunger_cost How much food it costs the morph to use this
+ Var Details hunger_cost
+
+
+
+
+
+ How much food it costs the morph to use this
+
+
+
diff --git a/datum/spell_handler/vampire.html b/datum/spell_handler/vampire.html
new file mode 100644
index 0000000000000..91066ba8f5691
--- /dev/null
+++ b/datum/spell_handler/vampire.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/spell_handler/vampire - Space Station 13
+
+
+
+
+
+
+Vars
+ deduct_blood_on_cast If the blood cost should be handled by this handler. Or if the spell will handle it itself
+ Var Details deduct_blood_on_cast
+
+
+
+
+
+ If the blood cost should be handled by this handler. Or if the spell will handle it itself
+
+
+
diff --git a/datum/spell_targeting.html b/datum/spell_targeting.html
new file mode 100644
index 0000000000000..f82a94ea7d638
--- /dev/null
+++ b/datum/spell_targeting.html
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+ /datum/spell_targeting - Space Station 13
+
+
+
+
+
+
+The base class for the targeting systems spells use.
+To create a new targeting datum you just inherit from this base type and override the /datum/spell_targeting/proc/choose_targets proc.
+Override the /datum/spell_targeting/proc/valid_target proc for more complex validations.
+More complex behaviour like auto targeting and click based activation is possible.
Vars
+ allowed_type Which type the targets have to be
+ include_user If it includes user. Not always used in all spell_targeting objects
+ max_targets How many targets are allowed. INFINITY is used to target unlimited targets
+ range The range of the spell; outer radius for aoe spells
+ selection_type Can be SPELL_SELECTION_RANGE or SPELL_SELECTION_VIEW
+ try_auto_target Whether or not the spell will try to auto target first before setting up the intercept click
+ use_intercept_click Whether or not the targeting is done by intercepting a click or not
+ use_obstacle_check If the spell should do an obstacle check from the user to the target. Windows, for example, will block the spell if this is true.
+ use_turf_of_user Whether or not the spell should use the turf of the user as starting point Procs
+ InterceptClickOn Called when the parent spell intercepts the click
+ attempt_auto_target Will attempt to auto target the spell. Only works with 1 target currently
+ choose_targets Called when choosing the targets for the parent spell
+ obstacle_check Checks if the path from the source to the target is free.
+Mobs won't block the path. But any dense object (other than tables) will.
+ valid_target Checks whether or not the given target is valid. Calls spell.valid_target as well
+ Var Details allowed_type
+
+
+
+
+
+ Which type the targets have to be
include_user
+
+
+
+
+
+ If it includes user. Not always used in all spell_targeting objects
max_targets
+
+
+
+
+
+ How many targets are allowed. INFINITY is used to target unlimited targets
range
+
+
+
+
+
+ The range of the spell; outer radius for aoe spells
selection_type
+
+
+
+
+
+ Can be SPELL_SELECTION_RANGE or SPELL_SELECTION_VIEW
try_auto_target
+
+
+
+
+
+ Whether or not the spell will try to auto target first before setting up the intercept click
use_intercept_click
+
+
+
+
+
+ Whether or not the targeting is done by intercepting a click or not
use_obstacle_check
+
+
+
+
+
+ If the spell should do an obstacle check from the user to the target. Windows, for example, will block the spell if this is true.
use_turf_of_user
+
+
+
+
+
+ Whether or not the spell should use the turf of the user as starting point
Proc Details InterceptClickOn
+
+ Called when the parent spell intercepts the click
+Arguments:
+
+user - Who clicks with the spell targeting active?
+params - Additional parameters from the click
+A - Atom the user clicked on
+spell - The spell being cast
+ attempt_auto_target
+
+ Will attempt to auto target the spell. Only works with 1 target currently
choose_targets
+
+ Called when choosing the targets for the parent spell
+Arguments:
+
+user - the one who casts the spell
+spell - The spell being cast
+params - Params given by the intercept click. Only available if use_intercept_click is TRUE
+clicked_atom - The atom clicked on. Only available if use_intercept_click is TRUE
+ obstacle_check
+
+ Checks if the path from the source to the target is free.
+Mobs won't block the path. But any dense object (other than tables) will.
+Arguments:
+
+source - Where is the spell effect coming from?
+target - Where is the spell effect going?
+ valid_target(target, user, /datum /spell /spell, check_if_in_range)
+
+
+
+
+
+ Checks whether or not the given target is valid. Calls spell.valid_target as well
+Arguments:
+
+target - The one who is being considered as a target
+user - Who is casting the spell
+spell - The spell being cast
+check_if_in_range - If a view/range check has to be done to see if the target is valid
+
+
+
+
diff --git a/datum/spell_targeting/aoe.html b/datum/spell_targeting/aoe.html
new file mode 100644
index 0000000000000..aa83dad7c2fdb
--- /dev/null
+++ b/datum/spell_targeting/aoe.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/spell_targeting/aoe - Space Station 13
+
+
+
+
+
+
+An area of effect based spell targeting system. Will return all targets in the given range
Vars
+ inner_radius The radius of turfs not being affected. -1 is inactive
+ Var Details inner_radius
+
+
+
+
+
+ The radius of turfs not being affected. -1 is inactive
+
+
+
diff --git a/datum/spell_targeting/click.html b/datum/spell_targeting/click.html
new file mode 100644
index 0000000000000..628bc523dee68
--- /dev/null
+++ b/datum/spell_targeting/click.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/spell_targeting/click - Space Station 13
+
+
+
+
+
+
+A click based spell targeting system. The clicked atom will be used to determine who/what to target
Vars
+ click_radius How big the radius around the clicked atom is to find clicked_atom suitable target. -1 is only the selected atom is considered
+ Var Details click_radius
+
+
+
+
+
+ How big the radius around the clicked atom is to find clicked_atom suitable target. -1 is only the selected atom is considered
+
+
+
diff --git a/datum/spell_targeting/spiral.html b/datum/spell_targeting/spiral.html
new file mode 100644
index 0000000000000..cec8700055d8e
--- /dev/null
+++ b/datum/spell_targeting/spiral.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ /datum/spell_targeting/spiral - Space Station 13
+
+
+
+
+
+
+Gets a list of turfs around the center atom to scramble.
+Returns an assoc list of turf to turf . These pairs are what turfs are
+swapped between one another when the cast is done.
+
+
+
diff --git a/datum/spell_targeting/targeted.html b/datum/spell_targeting/targeted.html
new file mode 100644
index 0000000000000..cf6adb2d2368a
--- /dev/null
+++ b/datum/spell_targeting/targeted.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/spell_targeting/targeted - Space Station 13
+
+
+
+
+
+
+A spell targeting system which is able to select 1 to many targets in range/view of the caster. Has a random mode, distance from user based mode or a user input mode.
Vars
+ can_hit_target_more_than_once Only important if max_targets > 1, affects if the spell can be cast multiple times at one person from one cast
+ random_target Chooses random viable target instead of asking the caster
+ target_priority Who to target when too many targets are found. Only matters when max_targets = 1
+ Var Details can_hit_target_more_than_once
+
+
+
+
+
+ Only important if max_targets > 1, affects if the spell can be cast multiple times at one person from one cast
random_target
+
+
+
+
+
+ Chooses random viable target instead of asking the caster
target_priority
+
+
+
+
+
+ Who to target when too many targets are found. Only matters when max_targets = 1
+
+
+
diff --git a/datum/sprite_accessory/hair/dave.html b/datum/sprite_accessory/hair/dave.html
new file mode 100644
index 0000000000000..261c43d9f6abd
--- /dev/null
+++ b/datum/sprite_accessory/hair/dave.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /datum/sprite_accessory/hair/dave - Space Station 13
+
+
+
+
+
+
+END VG HAIRSTYLES//
+START POLARIS HAIRSTYLES
+
+
+
diff --git a/datum/sprite_accessory/hair/eighties_ponytail.html b/datum/sprite_accessory/hair/eighties_ponytail.html
new file mode 100644
index 0000000000000..d3989f799ce94
--- /dev/null
+++ b/datum/sprite_accessory/hair/eighties_ponytail.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /datum/sprite_accessory/hair/eighties_ponytail - Space Station 13
+
+
+
+
+
+
+//END POLARIS HAIRSTYLES///
+Ume hairstyles
+
+
+
diff --git a/datum/stack_recipe.html b/datum/stack_recipe.html
new file mode 100644
index 0000000000000..26863423cfa85
--- /dev/null
+++ b/datum/stack_recipe.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+ /datum/stack_recipe - Space Station 13
+
+
+
+
+
+
+Vars
+ cult_structure Resulting atom is a cult structure
+ max_res_amount Maximum amount of atoms made
+ on_floor Requires a floor underneath to make
+ on_floor_or_lattice Requires a floor OR lattice underneath to make
+ one_per_turf Only one resulting atom is allowed per turf
+ req_amount Required stack amount to make
+ res_amount Amount of atoms made
+ result_type Resulting typepath of crafted atom
+ time Time to make
+ title Visible title of recipe
+ window_checks Requires a valid window location to make Procs
+ do_build Creates the atom defined by the recipe. Should always return the object it creates or FALSE. This proc assumes that the construction is already possible; for checking whether a recipe can be built before construction, use try_build()
+ post_build What should be done after the object is built? obj/item/stack/O might not actually be a stack, but this proc needs access to merge() to work, which is on obj/item/stack, so declare it as obj/item/stack anyways.
+ try_build Returns TRUE if the recipe can be built, otherwise returns FALSE. This proc is only meant as a series of tests to check if construction is possible; the actual creation of the resulting atom should be handled in do_build()
+ Var Details cult_structure
+
+
+
+
+
+ Resulting atom is a cult structure
max_res_amount
+
+
+
+
+
+ Maximum amount of atoms made
on_floor
+
+
+
+
+
+ Requires a floor underneath to make
on_floor_or_lattice
+
+
+
+
+
+ Requires a floor OR lattice underneath to make
one_per_turf
+
+
+
+
+
+ Only one resulting atom is allowed per turf
req_amount
+
+
+
+
+
+ Required stack amount to make
res_amount
+
+
+
+
+
+ Amount of atoms made
result_type
+
+
+
+
+
+ Resulting typepath of crafted atom
time
+
+
+
+
+
+ Time to make
title
+
+
+
+
+
+ Visible title of recipe
window_checks
+
+
+
+
+
+ Requires a valid window location to make
Proc Details do_build
+
+ Creates the atom defined by the recipe. Should always return the object it creates or FALSE. This proc assumes that the construction is already possible; for checking whether a recipe can be built before construction, use try_build()
+ What should be done after the object is built? obj/item/stack/O might not actually be a stack, but this proc needs access to merge() to work, which is on obj/item/stack, so declare it as obj/item/stack anyways.
try_build
+
+ Returns TRUE if the recipe can be built, otherwise returns FALSE. This proc is only meant as a series of tests to check if construction is possible; the actual creation of the resulting atom should be handled in do_build()
+
+
+
diff --git a/datum/station_department.html b/datum/station_department.html
new file mode 100644
index 0000000000000..2da7279be3cec
--- /dev/null
+++ b/datum/station_department.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /datum/station_department - Space Station 13
+
+
+
+
+
+
+Vars
+ account_access The access need to get into this department account, this is a one req access list, used especialy for supply computer
+ account_base_pay The amount this department will be payed every payday at a minimum (unless deducted otherwise)
+ account_starting_balance The amount this departments will get endowed with a roundstart in their money account
+ auto_approval_cap If there is auto approval, is it capped?
+ crate_auto_approve Will this department's account auto approve crates?
+ department_account The money account tied to this department
+ department_name name of department, used to determine department money account names as well
+ department_roles A list of occupation names in this department
+ head_of_staff The occupation name of the person in charge of this department officially Procs
+ has_account_access checks to see if the crew members has the right access or is whitelisted on the department account
+ Var Details account_access
+
+
+
+
+
+ The access need to get into this department account, this is a one req access list, used especialy for supply computer
account_base_pay
+
+
+
+
+
+ The amount this department will be payed every payday at a minimum (unless deducted otherwise)
account_starting_balance
+
+
+
+
+
+ The amount this departments will get endowed with a roundstart in their money account
auto_approval_cap
+
+
+
+
+
+ If there is auto approval, is it capped?
crate_auto_approve
+
+
+
+
+
+ Will this department's account auto approve crates?
+ The money account tied to this department
department_name
+
+
+
+
+
+ name of department, used to determine department money account names as well
department_roles
+
+
+
+
+
+ A list of occupation names in this department
head_of_staff
+
+
+
+
+
+ The occupation name of the person in charge of this department officially
Proc Details has_account_access
+
+ checks to see if the crew members has the right access or is whitelisted on the department account
+
+
+
diff --git a/datum/station_goal/secondary.html b/datum/station_goal/secondary.html
new file mode 100644
index 0000000000000..259c94e27eeeb
--- /dev/null
+++ b/datum/station_goal/secondary.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /datum/station_goal/secondary - Space Station 13
+
+
+
+
+
+
+Vars
+ abstract Abstract goals can't be used directly.
+ admin_desc Admin-only shor description of the goal.
+ department Assigned department. Should match the values used for requests consoles.
+ personal_account The money account of the person who requested the goal.
+ progress Progress type of this goal.
+ progress_type Type path of the progress tracker used.
+ requester_name The person who requested the goal.
+ should_send_crate Should we (still) send a personal crate on the next shipment?
+ tracker Tracker that manages the goal progress, permanent and temporary.
+ Var Details abstract
+
+
+
+
+
+ Abstract goals can't be used directly.
admin_desc
+
+
+
+
+
+ Admin-only shor description of the goal.
department
+
+
+
+
+
+ Assigned department. Should match the values used for requests consoles.
personal_account
+
+
+
+
+
+ The money account of the person who requested the goal.
progress
+ – /datum /secondary_goal_progress
+
+
+
+
+ Progress type of this goal.
progress_type
+
+
+
+
+
+ Type path of the progress tracker used.
requester_name
+
+
+
+
+
+ The person who requested the goal.
should_send_crate
+
+
+
+
+
+ Should we (still) send a personal crate on the next shipment?
tracker
+ – /datum /secondary_goal_tracker
+
+
+
+
+ Tracker that manages the goal progress, permanent and temporary.
+
+
+
diff --git a/datum/station_goal/secondary/variety_food.html b/datum/station_goal/secondary/variety_food.html
new file mode 100644
index 0000000000000..9409da2979c12
--- /dev/null
+++ b/datum/station_goal/secondary/variety_food.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/station_goal/secondary/variety_food - Space Station 13
+
+
+
+
+
+
+
+ Var Details amount_per
+
+
+
+
+
+ How many of each food type are needed.
different_types
+
+
+
+
+
+ How many different types of food are needed.
+
+
+
diff --git a/datum/station_state.html b/datum/station_state.html
new file mode 100644
index 0000000000000..64884fbdec7c6
--- /dev/null
+++ b/datum/station_state.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/station_state - Space Station 13
+
+
+
+
+
+
+Vars
+ door Amount of airlocks
+ floor Amount of floors
+ grille Amount of grilles (without windows)
+ mach Amount of machines
+ r_wall Amount of reinforced walles
+ wall Amount of regular walls
+ window Amount of full windows
+ Var Details door
+
+
+
+
+
+ Amount of airlocks
floor
+
+
+
+
+
+ Amount of floors
grille
+
+
+
+
+
+ Amount of grilles (without windows)
mach
+
+
+
+
+
+ Amount of machines
r_wall
+
+
+
+
+
+ Amount of reinforced walles
wall
+
+
+
+
+
+ Amount of regular walls
window
+
+
+
+
+
+ Amount of full windows
+
+
+
diff --git a/datum/station_trait.html b/datum/station_trait.html
new file mode 100644
index 0000000000000..be4b4998e0d10
--- /dev/null
+++ b/datum/station_trait.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/station_trait - Space Station 13
+
+
+
+
+
+
+Base class of station traits. These are used to influence rounds in one way or the other by influencing the levers of the station.
Vars
+ blacklist What traits are incompatible with this one?
+ can_revert Whether or not this trait can be reverted by an admin
+ dynamic_threat_id The ID that we look for in dynamic.json. Not synced with 'name' because I can already see this go wrong
+ force Whether this trait is always enabled; generally used for debugging
+ name Name of the trait
+ report_message What message to show in the centcom report?
+ show_in_report Does this trait show in the centcom report?
+ trait_flags Extra flags for station traits such as it being abstract, planetary or space only
+ trait_processes Whether or not this trait uses process()
+ trait_to_give What code-trait does this station trait give? gives none if null
+ trait_type The type of this trait. Used to classify how this trait influences the station
+ weight Chance relative to other traits of its type to be picked Procs
+ get_report type of info the centcom report has on this trait, if any.
+ on_round_start Proc ran when round starts. Use this for roundstart effects.
+ revert Will attempt to revert the station trait, used by admins.
+ Var Details blacklist
+
+
+
+
+
+ What traits are incompatible with this one?
can_revert
+
+
+
+
+
+ Whether or not this trait can be reverted by an admin
dynamic_threat_id
+
+
+
+
+
+ The ID that we look for in dynamic.json. Not synced with 'name' because I can already see this go wrong
force
+
+
+
+
+
+ Whether this trait is always enabled; generally used for debugging
name
+
+
+
+
+
+ Name of the trait
report_message
+
+
+
+
+
+ What message to show in the centcom report?
show_in_report
+
+
+
+
+
+ Does this trait show in the centcom report?
trait_flags
+
+
+
+
+
+ Extra flags for station traits such as it being abstract, planetary or space only
trait_processes
+
+
+
+
+
+ Whether or not this trait uses process()
trait_to_give
+
+
+
+
+
+ What code-trait does this station trait give? gives none if null
trait_type
+
+
+
+
+
+ The type of this trait. Used to classify how this trait influences the station
weight
+
+
+
+
+
+ Chance relative to other traits of its type to be picked
Proc Details get_report()
+
+
+
+
+
+ type of info the centcom report has on this trait, if any.
on_round_start()
+
+
+
+
+
+ Proc ran when round starts. Use this for roundstart effects.
revert()
+
+
+
+
+
+ Will attempt to revert the station trait, used by admins.
+
+
+
diff --git a/datum/station_trait/cybernetic_revolution.html b/datum/station_trait/cybernetic_revolution.html
new file mode 100644
index 0000000000000..517b9c7602933
--- /dev/null
+++ b/datum/station_trait/cybernetic_revolution.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/station_trait/cybernetic_revolution - Space Station 13
+
+
+
+
+
+
+NOTE: THIS MAKES EMP MUCH MORE EXPENSIVE.
Vars
+ job_to_cybernetic List of all job types with the cybernetics they should receive.
+ Var Details job_to_cybernetic
+
+
+
+
+
+ List of all job types with the cybernetics they should receive.
+
+
+
diff --git a/datum/station_trait/random_event_weight_modifier.html b/datum/station_trait/random_event_weight_modifier.html
new file mode 100644
index 0000000000000..0808ef4dce912
--- /dev/null
+++ b/datum/station_trait/random_event_weight_modifier.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/station_trait/random_event_weight_modifier - Space Station 13
+
+
+
+
+
+
+
+ Var Details disable_is_one_shot
+
+
+
+
+
+ Do we want to turn off is one shot?
event_names
+
+
+
+
+
+ The names of the event we modify.
event_severity
+
+
+
+
+
+ The severity of the event we modify.
weight_multiplier
+
+
+
+
+
+ Multiplier applied to the weight of the event. may want to apply to scaling as well
+
+
+
diff --git a/datum/status_effect.html b/datum/status_effect.html
new file mode 100644
index 0000000000000..b77fad4462de8
--- /dev/null
+++ b/datum/status_effect.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/status_effect - Space Station 13
+
+
+
+
+
+
+Procs
+ before_remove Called before being removed; returning FALSE will cancel removal
Proc Details before_remove()
+
+
+
+
+
+ Called before being removed; returning FALSE will cancel removal
+
+
+
diff --git a/datum/status_effect/blooddrunk.html b/datum/status_effect/blooddrunk.html
new file mode 100644
index 0000000000000..dadf5899f92ec
--- /dev/null
+++ b/datum/status_effect/blooddrunk.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/status_effect/blooddrunk - Space Station 13
+
+
+
+
+
+
+Vars
+ chariot If this is the chariot subtype, which grants pacifism while the effect is active.
+ Var Details chariot
+
+
+
+
+
+ If this is the chariot subtype, which grants pacifism while the effect is active.
+
+
+
diff --git a/datum/status_effect/bubblegum_curse.html b/datum/status_effect/bubblegum_curse.html
new file mode 100644
index 0000000000000..5b7f19a9a09c4
--- /dev/null
+++ b/datum/status_effect/bubblegum_curse.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/status_effect/bubblegum_curse - Space Station 13
+
+
+
+
+
+
+Vars
+ coward_checking Are we starting the process to check if the person has still gotten out of range of bubble / crossed zlvls.
+ damage The damage the status effect does per tick.
+ Var Details coward_checking
+
+
+
+
+
+ Are we starting the process to check if the person has still gotten out of range of bubble / crossed zlvls.
damage
+
+
+
+
+
+ The damage the status effect does per tick.
+
+
+
diff --git a/datum/status_effect/cursed.html b/datum/status_effect/cursed.html
new file mode 100644
index 0000000000000..08aca5decc5b1
--- /dev/null
+++ b/datum/status_effect/cursed.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ /datum/status_effect/cursed - Space Station 13
+
+
+
+
+
+
+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.
Vars
+ branded_hand The hand we are branded to.
+ curse_count The amount of times we have been "applied" to the target.
+ damage_chance Raw probability we have to deal damage this tick.
+ max_curse_count The max number of curses a target can incur with this status effect.
+ monologuing Are we currently in the process of sending a monologue? Procs
+ check_curses Checks the number of curses we have and returns information back to the slot machine. max_curse_amount
is set by the slot machine itself.
+ clear_curses Cleans ourselves up and removes our curses. Meant to be done in a "positive" way, when the curse is broken. Directly use qdel otherwise.
+ handle_after_effects Makes a nice lorey message about the curse level we're at. I think it's nice
+ on_death If our owner dies without getting gibbed, we gib them, because fuck you baltamore
+ on_stat_changed If our owner's stat changes, rapidly surge the damage chance.
+ update_curse_count Handles the debuffs of this status effect and incrementing the number of curses we have.
+ Var Details
+ The hand we are branded to.
curse_count
+
+
+
+
+
+ The amount of times we have been "applied" to the target.
damage_chance
+
+
+
+
+
+ Raw probability we have to deal damage this tick.
max_curse_count
+
+
+
+
+
+ The max number of curses a target can incur with this status effect.
monologuing
+
+
+
+
+
+ Are we currently in the process of sending a monologue?
Proc Details check_curses(/mob /user, max_curse_amount)
+
+
+
+
+
+ Checks the number of curses we have and returns information back to the slot machine. max_curse_amount
is set by the slot machine itself.
clear_curses()
+
+
+
+
+
+ Cleans ourselves up and removes our curses. Meant to be done in a "positive" way, when the curse is broken. Directly use qdel otherwise.
handle_after_effects()
+
+
+
+
+
+ Makes a nice lorey message about the curse level we're at. I think it's nice
on_death
+
+ If our owner dies without getting gibbed, we gib them, because fuck you baltamore
on_stat_changed()
+
+
+
+
+
+ If our owner's stat changes, rapidly surge the damage chance.
update_curse_count()
+
+
+
+
+
+ Handles the debuffs of this status effect and incrementing the number of curses we have.
+
+
+
diff --git a/datum/status_effect/fake_virus.html b/datum/status_effect/fake_virus.html
new file mode 100644
index 0000000000000..f067d712665fc
--- /dev/null
+++ b/datum/status_effect/fake_virus.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/status_effect/fake_virus - Space Station 13
+
+
+
+
+
+
+
+ Var Details current_fake_disease
+
+
+
+
+
+ Which disease we are going to fake?
fake_emote
+
+
+
+
+
+ Fake virus emotes with three stages
fake_msg
+
+
+
+
+
+ Fake virus messages by with three stages
msg_stage
+
+
+
+
+
+ So you dont get the most intense messages immediately
+
+
+
diff --git a/datum/status_effect/fleshmend.html b/datum/status_effect/fleshmend.html
new file mode 100644
index 0000000000000..2d3a468fe3ac8
--- /dev/null
+++ b/datum/status_effect/fleshmend.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/status_effect/fleshmend - Space Station 13
+
+
+
+
+
+
+Vars
+ active_instances a list of integers, one for each remaining instance of fleshmend.
+ freezing This diminishes the healing of fleshmend if the user is cold when it is activated
+ tolerance This diminishes the healing of fleshmend the higher it is.
+ Var Details active_instances
+
+
+
+
+
+ a list of integers, one for each remaining instance of fleshmend.
freezing
+
+
+
+
+
+ This diminishes the healing of fleshmend if the user is cold when it is activated
tolerance
+
+
+
+
+
+ This diminishes the healing of fleshmend the higher it is.
+
+
+
diff --git a/datum/status_effect/high_five.html b/datum/status_effect/high_five.html
new file mode 100644
index 0000000000000..54df78a14e57b
--- /dev/null
+++ b/datum/status_effect/high_five.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/status_effect/high_five - Space Station 13
+
+
+
+
+
+
+Vars
+ critical_success Message displayed when wizards perform this together
+ item_path Item to be shown in the pop-up balloon.
+ request Message displayed when this status effect is applied.
+ sound_effect Sound effect played when this emote is completed.
+ success Message displayed when normal people perform this together Procs
+ wiz_cleanup So we don't leave folks with god-mode
+ Var Details critical_success
+
+
+
+
+
+ Message displayed when wizards perform this together
item_path
+
+
+
+
+
+ Item to be shown in the pop-up balloon.
request
+
+
+
+
+
+ Message displayed when this status effect is applied.
sound_effect
+
+
+
+
+
+ Sound effect played when this emote is completed.
success
+
+
+
+
+
+ Message displayed when normal people perform this together
Proc Details
+ So we don't leave folks with god-mode
+
+
+
diff --git a/datum/status_effect/high_five/rps.html b/datum/status_effect/high_five/rps.html
new file mode 100644
index 0000000000000..25d42f0d44315
--- /dev/null
+++ b/datum/status_effect/high_five/rps.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/status_effect/high_five/rps - Space Station 13
+
+
+
+
+
+
+Vars
+ move The move that you'll be making.
+ Var Details move
+
+
+
+
+
+ The move that you'll be making.
+
+
+
diff --git a/datum/status_effect/hippocraticOath.html b/datum/status_effect/hippocraticOath.html
new file mode 100644
index 0000000000000..3090591c1ee1a
--- /dev/null
+++ b/datum/status_effect/hippocraticOath.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/status_effect/hippocraticOath - Space Station 13
+
+
+
+
+
+
+Vars
+ heal_points How many points the rod has to heal with, maxes at 50, or whatever heal_points_max is set to.
+ max_heal_points Max heal points for the rod to spend on healing people
+ Var Details heal_points
+
+
+
+
+
+ How many points the rod has to heal with, maxes at 50, or whatever heal_points_max is set to.
max_heal_points
+
+
+
+
+
+ Max heal points for the rod to spend on healing people
+
+
+
diff --git a/datum/status_effect/his_grace.html b/datum/status_effect/his_grace.html
new file mode 100644
index 0000000000000..3112651ac8775
--- /dev/null
+++ b/datum/status_effect/his_grace.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/status_effect/his_grace - Space Station 13
+
+
+
+
+
+
+Vars
+ toolbox Attached His Grace toolbox
+ Var Details
+ Attached His Grace toolbox
+
+
+
diff --git a/datum/status_effect/incapacitating/sleeping.html b/datum/status_effect/incapacitating/sleeping.html
new file mode 100644
index 0000000000000..721c5988b3cf7
--- /dev/null
+++ b/datum/status_effect/incapacitating/sleeping.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ /datum/status_effect/incapacitating/sleeping - Space Station 13
+
+
+
+
+
+
+Vars
+ voluntary Whether we decided to take a nap on our own.
+As opposed to being hard knocked out with N2O or similar.
+ Var Details voluntary
+
+
+
+
+
+ Whether we decided to take a nap on our own.
+As opposed to being hard knocked out with N2O or similar.
+
+
+
diff --git a/datum/status_effect/limited_bonus.html b/datum/status_effect/limited_bonus.html
new file mode 100644
index 0000000000000..f54cbfe3caa1d
--- /dev/null
+++ b/datum/status_effect/limited_bonus.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+ /datum/status_effect/limited_bonus - Space Station 13
+
+
+
+
+
+
+A status effect that can have a certain amount of "bonus" duration added, which extends the duration every tick,
+although there is a maximum amount of bonus time that can be active at any given time.
+ Var Details bonus_time
+
+
+
+
+
+ How much extra time has been added
bonus_time_per_tick
+
+
+
+
+
+ How much extra time to apply per tick
max_bonus_time
+
+
+
+
+
+ How much maximum bonus time can be active at once
+
+
+
diff --git a/datum/status_effect/lwap_scope.html b/datum/status_effect/lwap_scope.html
new file mode 100644
index 0000000000000..a61b1d22dac20
--- /dev/null
+++ b/datum/status_effect/lwap_scope.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/status_effect/lwap_scope - Space Station 13
+
+
+
+
+
+
+Vars
+ locks The number of people the gun has locked on to. Caps at 10 for sanity.
+ Var Details locks
+
+
+
+
+
+ The number of people the gun has locked on to. Caps at 10 for sanity.
+
+
+
diff --git a/datum/status_effect/shadow_mend.html b/datum/status_effect/shadow_mend.html
new file mode 100644
index 0000000000000..98fb478e8d93b
--- /dev/null
+++ b/datum/status_effect/shadow_mend.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/status_effect/shadow_mend - Space Station 13
+
+
+
+
+
+
+Vars
+ devil If this is true, the status effect will try to apply the debuff to others, rather than the user
+ Var Details devil
+
+
+
+
+
+ If this is true, the status effect will try to apply the debuff to others, rather than the user
+
+
+
diff --git a/datum/status_effect/speedlegs.html b/datum/status_effect/speedlegs.html
new file mode 100644
index 0000000000000..477f2e03b24b1
--- /dev/null
+++ b/datum/status_effect/speedlegs.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/status_effect/speedlegs - Space Station 13
+
+
+
+
+
+
+Vars
+ cling A reference to the changeling's changeling antag datum.
+ Var Details
+ A reference to the changeling's changeling antag datum.
+
+
+
diff --git a/datum/status_effect/transient.html b/datum/status_effect/transient.html
new file mode 100644
index 0000000000000..7a74a122a2d8f
--- /dev/null
+++ b/datum/status_effect/transient.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ /datum/status_effect/transient - Space Station 13
+
+
+
+
+
+
+A status effect that works off a (possibly decimal) counter before expiring, rather than a specified world.time.
+This allows for a more precise tweaking of status durations at runtime (e.g. paralysis).
Vars
+ strength How much strength left before expiring? time in deciseconds. Procs
+ calc_decay Returns how much strength should be adjusted per tick.
+ Var Details strength
+
+
+
+
+
+ How much strength left before expiring? time in deciseconds.
Proc Details calc_decay()
+
+
+
+
+
+ Returns how much strength should be adjusted per tick.
+
+
+
diff --git a/datum/status_effect/transient/hallucination.html b/datum/status_effect/transient/hallucination.html
new file mode 100644
index 0000000000000..b345cbb5ccaa4
--- /dev/null
+++ b/datum/status_effect/transient/hallucination.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ /datum/status_effect/transient/hallucination - Space Station 13
+
+
+
+
+
+
+Procs
+ hallucinate Spawns an hallucination for the mob.
Proc Details hallucinate(hallucination_type)
+
+
+
+
+
+ Spawns an hallucination for the mob.
+Arguments:
+
+H - The type path of the hallucination to spawn.
+
+
+
+
diff --git a/datum/strip_menu.html b/datum/strip_menu.html
new file mode 100644
index 0000000000000..47233fe8d202f
--- /dev/null
+++ b/datum/strip_menu.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/strip_menu - Space Station 13
+
+
+
+
+
+
+A representation of the stripping UI
Vars
+ base64_cache Associated list of "[icon][icon_state]" = base64 representation of icon. Used for PERFORMANCE.
+ interactions A lazy list of user mobs to a list of strip menu keys that they're interacting with
+ owner The owner who has the element /datum/element/strippable
+ strippable The strippable element itself
+ Var Details base64_cache
+
+
+
+
+
+ Associated list of "[icon][icon_state]" = base64 representation of icon. Used for PERFORMANCE.
interactions
+
+
+
+
+
+ A lazy list of user mobs to a list of strip menu keys that they're interacting with
+ The owner who has the element /datum/element/strippable
+ The strippable element itself
+
+
+
diff --git a/datum/strippable_item.html b/datum/strippable_item.html
new file mode 100644
index 0000000000000..29a9ad704b518
--- /dev/null
+++ b/datum/strippable_item.html
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+ /datum/strippable_item - Space Station 13
+
+
+
+
+
+
+A representation of an item that can be stripped down
Vars
+ key The STRIPPABLE_ITEM_* key Procs
+ alternate_action Performs an alternative action on this strippable_item.
+has_alternate_action
needs to be TRUE.
+Returns FALSE if blocked by signal, TRUE otherwise.
+ finish_equip The proc that places the item on the source. This should not yield.
+ finish_unequip The proc that unequips the item from the source. This should not yield.
+ get_alternate_actions Returns the ID of this item's strippable action.
+Return null
if there is no alternate action.
+Any return value of this must be in StripMenu.
+ get_body_action Actions that can happen to that body part, regardless if there is an item or not. As long as it is not obscured
+ get_item Gets the item from the given source.
+ get_obscuring Returns a STRIPPABLE_OBSCURING_* define to report on whether or not this is obscured.
+ in_thief_mode Returns whether the user is in "thief mode" where stripping/equipping is silent and stealing from pockets moves stuff to your hands
+ should_show Returns whether or not this item should show.
+ start_equip Start the equipping process. This is the proc you should yield in.
+Returns TRUE/FALSE depending on if it is allowed.
+ start_unequip Start the unequipping process. This is the proc you should yield in.
+Returns TRUE/FALSE depending on if it is allowed.
+ try_equip Tries to equip the item onto the given source.
+Returns TRUE/FALSE depending on if it is allowed.
+This should be used for checking if an item CAN be equipped.
+It should not perform the equipping itself.
+ try_unequip Tries to unequip the item from the given source.
+Returns TRUE/FALSE depending on if it is allowed.
+This should be used for checking if it CAN be unequipped.
+It should not perform the unequipping itself.
+ Var Details key
+
+
+
+
+
+ The STRIPPABLE_ITEM_* key
Proc Details alternate_action(/atom /source, /mob /user, action_key)
+
+
+
+
+
+ Performs an alternative action on this strippable_item.
+has_alternate_action
needs to be TRUE.
+Returns FALSE if blocked by signal, TRUE otherwise.
finish_equip
+
+ The proc that places the item on the source. This should not yield.
finish_unequip
+
+ The proc that unequips the item from the source. This should not yield.
get_alternate_actions
+
+ Returns the ID of this item's strippable action.
+Return null
if there is no alternate action.
+Any return value of this must be in StripMenu.
get_body_action
+
+ Actions that can happen to that body part, regardless if there is an item or not. As long as it is not obscured
get_item
+
+ Gets the item from the given source.
get_obscuring
+
+ Returns a STRIPPABLE_OBSCURING_* define to report on whether or not this is obscured.
in_thief_mode
+
+ Returns whether the user is in "thief mode" where stripping/equipping is silent and stealing from pockets moves stuff to your hands
should_show
+
+ Returns whether or not this item should show.
start_equip
+
+ Start the equipping process. This is the proc you should yield in.
+Returns TRUE/FALSE depending on if it is allowed.
start_unequip
+
+ Start the unequipping process. This is the proc you should yield in.
+Returns TRUE/FALSE depending on if it is allowed.
try_equip
+
+ Tries to equip the item onto the given source.
+Returns TRUE/FALSE depending on if it is allowed.
+This should be used for checking if an item CAN be equipped.
+It should not perform the equipping itself.
try_unequip
+
+ Tries to unequip the item from the given source.
+Returns TRUE/FALSE depending on if it is allowed.
+This should be used for checking if it CAN be unequipped.
+It should not perform the unequipping itself.
+
+
+
diff --git a/datum/strippable_item/hand.html b/datum/strippable_item/hand.html
new file mode 100644
index 0000000000000..1f8a9d842cb6d
--- /dev/null
+++ b/datum/strippable_item/hand.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/strippable_item/hand - Space Station 13
+
+
+
+
+
+
+A strippable item for a hand
+ Var Details which_hand
+
+
+
+
+
+ Which hand?
+
+
+
diff --git a/datum/strippable_item/mob_item_slot.html b/datum/strippable_item/mob_item_slot.html
new file mode 100644
index 0000000000000..fc8a1c0923915
--- /dev/null
+++ b/datum/strippable_item/mob_item_slot.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/strippable_item/mob_item_slot - Space Station 13
+
+
+
+
+
+
+A preset for equipping items onto mob slots
+ Var Details item_slot
+
+
+
+
+
+ The SLOT_FLAG_* to equip to.
Proc Details get_equip_delay
+
+ Returns the delay of equipping this item to a mob
+
+
+
diff --git a/datum/strippable_item/mob_item_slot/pocket.html b/datum/strippable_item/mob_item_slot/pocket.html
new file mode 100644
index 0000000000000..9876e117fd33a
--- /dev/null
+++ b/datum/strippable_item/mob_item_slot/pocket.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/strippable_item/mob_item_slot/pocket - Space Station 13
+
+
+
+
+
+
+Vars
+ pocket_side Which pocket we're referencing. Used for visible text.
+ Var Details pocket_side
+
+
+
+
+
+ Which pocket we're referencing. Used for visible text.
+
+
+
diff --git a/datum/supermatter_event.html b/datum/supermatter_event.html
new file mode 100644
index 0000000000000..ad788ddaf11eb
--- /dev/null
+++ b/datum/supermatter_event.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/supermatter_event - Space Station 13
+
+
+
+
+
+
+Vars
+ threat_level Probability of the event not running, higher tiers being rarer
+ Var Details threat_level
+
+
+
+
+
+ Probability of the event not running, higher tiers being rarer
+
+
+
diff --git a/datum/supply_order.html b/datum/supply_order.html
new file mode 100644
index 0000000000000..b95b410b13ec5
--- /dev/null
+++ b/datum/supply_order.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /datum/supply_order - Space Station 13
+
+
+
+
+
+
+
+ Var Details
+ Reason/purpose for order given by orderer
+ The supply pack this order is for
+ The station department datum of the person's department who ordered the supply order
orderedby
+
+
+
+
+
+ The person who ordered the supply order
orderedbyRank
+
+
+
+
+
+ The occupation/assignment of the person who ordered the supply order
orderedbyaccount
+
+
+
+
+
+ The account tied to this order, important for personal orders
ordernum
+
+
+
+
+
+ The orders ID number
requires_cargo_approval
+
+
+
+
+
+ does this order need to be approve by carg?
requires_head_approval
+
+
+
+
+
+ does this order need to be approve by the department head?
+
+
+
diff --git a/datum/supply_packs.html b/datum/supply_packs.html
new file mode 100644
index 0000000000000..e9beb1ff0a55b
--- /dev/null
+++ b/datum/supply_packs.html
@@ -0,0 +1,206 @@
+
+
+
+
+
+
+ /datum/supply_packs - Space Station 13
+
+
+
+
+
+
+Vars
+ access If the container is lockable, the access to require for it.
+ amount The number of crates that get generated by this pack.
+ announce_beacons Particular beacons that we'll notify the relevant department when we reach
+ are_you_sure_you_want_to_be_banned If this variable is filled, this grants the user a special TGUI confirmation prompt about ordering this shuttle, before they can place the order. Similar to bag of holding.
+ cmag_hidden If TRUE, this pack is only visible on a cmagged supply console.
+ containername The name to give the container itself.
+ containertype The type of container that the contents will arrive in.
+ contains OBJ: What is inside the crate
+ contains_special STRING: What is inside the crate
+ contraband If TRUE, this pack is only visible on a hacked supply console.
+ cost The cost of this pack.
+ department_restrictions Determines which departments do not need QM approval to order this supply pack
+ group The pack group this should appear in.
+ hidden If TRUE, this pack is only visible on an emagged supply console.
+ manifest The manifest contents for this order.
+ name The name of this supply pack.
+ order_type Path of the type of order that should be generated from this order
+ singleton If true, this pack can only be ordered in units of 1.
+ singleton_group_id Identifier indicating the specific "set" of singletons that this belongs to.
+Only one item in this set can be in the shopping cart at once.
+ special A special pack that should not appear unless certain circumstances are fulfilled (event, station goals, admin packs)
+ special_enabled If this pack is special, whether it should be visible or not.
+ ui_manifest List of names for being done in TGUI Procs
+ can_order Define a special condition as to whether or not this crate can currently be ordered.
+ create_order Create a supply order for this pack.
+ on_order_confirm Called right when an order for this pack is confirmed.
+ Var Details access
+
+
+
+
+
+ If the container is lockable, the access to require for it.
amount
+
+
+
+
+
+ The number of crates that get generated by this pack.
announce_beacons
+
+
+
+
+
+ Particular beacons that we'll notify the relevant department when we reach
are_you_sure_you_want_to_be_banned
+
+
+
+
+
+ If this variable is filled, this grants the user a special TGUI confirmation prompt about ordering this shuttle, before they can place the order. Similar to bag of holding.
cmag_hidden
+
+
+
+
+
+ If TRUE, this pack is only visible on a cmagged supply console.
containername
+
+
+
+
+
+ The name to give the container itself.
containertype
+
+
+
+
+
+ The type of container that the contents will arrive in.
contains
+
+
+
+
+
+ OBJ: What is inside the crate
contains_special
+
+
+
+
+
+ STRING: What is inside the crate
contraband
+
+
+
+
+
+ If TRUE, this pack is only visible on a hacked supply console.
cost
+
+
+
+
+
+ The cost of this pack.
department_restrictions
+
+
+
+
+
+ Determines which departments do not need QM approval to order this supply pack
group
+
+
+
+
+
+ The pack group this should appear in.
hidden
+
+
+
+
+
+ If TRUE, this pack is only visible on an emagged supply console.
manifest
+
+
+
+
+
+ The manifest contents for this order.
name
+
+
+
+
+
+ The name of this supply pack.
+ Path of the type of order that should be generated from this order
singleton
+
+
+
+
+
+ If true, this pack can only be ordered in units of 1.
singleton_group_id
+
+
+
+
+
+ Identifier indicating the specific "set" of singletons that this belongs to.
+Only one item in this set can be in the shopping cart at once.
special
+
+
+
+
+
+ A special pack that should not appear unless certain circumstances are fulfilled (event, station goals, admin packs)
special_enabled
+
+
+
+
+
+ If this pack is special, whether it should be visible or not.
ui_manifest
+
+
+
+
+
+ List of names for being done in TGUI
Proc Details can_order()
+
+
+
+
+
+ Define a special condition as to whether or not this crate can currently be ordered.
create_order(orderedby, occupation, comment, order_num)
+
+
+
+
+
+ Create a supply order for this pack.
on_order_confirm
+
+ Called right when an order for this pack is confirmed.
+
+
+
diff --git a/datum/supply_packs/abstract/shuttle.html b/datum/supply_packs/abstract/shuttle.html
new file mode 100644
index 0000000000000..49ecde17436d9
--- /dev/null
+++ b/datum/supply_packs/abstract/shuttle.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /datum/supply_packs/abstract/shuttle - Space Station 13
+
+
+
+
+
+
+A "supply pack" that allows for purchasing a custom shuttle.
Vars
+ speed_factor The base speed multiplier to apply to the shuttle. 2 means it arrives twice as fast.
+ template The shuttle that this pack corresponds to ordering.
+If given on init, will fill out the pack automagically.
+ Var Details speed_factor
+
+
+
+
+
+ The base speed multiplier to apply to the shuttle. 2 means it arrives twice as fast.
+ The shuttle that this pack corresponds to ordering.
+If given on init, will fill out the pack automagically.
+
+
+
diff --git a/datum/surgery.html b/datum/surgery.html
new file mode 100644
index 0000000000000..1d85351bc7ff3
--- /dev/null
+++ b/datum/surgery.html
@@ -0,0 +1,227 @@
+
+
+
+
+
+
+ /datum/surgery - Space Station 13
+
+
+
+
+
+
+Datum Surgery Helpers
Vars
+ abstract Whether or not this should be a selectable surgery at all
+ can_cancel Whether this surgery can be stopped after the first step with a cautery
+ cancel_on_organ_change Whether this surgery should be cancelled when an organ change happens. (removed if requires bodypart, or added if doesn't require bodypart)
+ desc Description of the surgery
+ ignore_clothes Whether you need to remove clothes to perform the surgery
+ location Location of the surgery
+ lying_required Does the victim (patient) need to be lying down?
+ name Name of the surgery
+ organ_to_manipulate Body part the surgery is currently being performed on. Useful for checking to see if the organ desired is still in the body after the surgery has begun.
+ possible_locs Body locations this surgery can be performed on
+ replaced_by Don't show this surgery if this type exists. Set to /datum/surgery if you want to hide a "base" surgery.
+ requires_bodypart Surgery is only available if the target bodypart is present (or if it's missing)
+ requires_organic_bodypart Whether we can perform the surgery on a robotic limb
+ requires_real_bodypart Some surgeries might work on limbs that don't really exist (like chainsaw arms or flashlight eyes)
+ self_operable Can the surgery be performed on yourself?
+ speed_modifier Surgery step speed modifier
+ step_in_progress If we're currently performing a step
+ step_number How far along we are in a surgery being performed.
+ steps Surgical steps that go into performing this procedure
+ target Target of the surgery
+ target_mobtypes Mobs on which this can be performed Procs
+ can_start Whether or not we can start this surgery.
+If this returns FALSE, this surgery won't show up in the list.
+ get_surgery_next_step Get the next step in the current surgery, or null if we're on the last one.
+ get_surgery_step Get the current surgery step we're on
+ handle_organ_state_change Handle an organ's insertion or removal mid-surgery.
+If cancel_on_organ_change is true, then this will cancel the surgery in certain cases.
+ is_organ_compatible Get whether the target organ is compatible with the current surgery.
+ next_step Try to perform the next step in the current operation.
+This gets called in the attack chain, and as such returning FALSE in here means that the target
+will be hit with whatever's in your hand.
+ Var Details abstract
+
+
+
+
+
+ Whether or not this should be a selectable surgery at all
can_cancel
+
+
+
+
+
+ Whether this surgery can be stopped after the first step with a cautery
cancel_on_organ_change
+
+
+
+
+
+ Whether this surgery should be cancelled when an organ change happens. (removed if requires bodypart, or added if doesn't require bodypart)
desc
+
+
+
+
+
+ Description of the surgery
ignore_clothes
+
+
+
+
+
+ Whether you need to remove clothes to perform the surgery
location
+
+
+
+
+
+ Location of the surgery
lying_required
+
+
+
+
+
+ Does the victim (patient) need to be lying down?
name
+
+
+
+
+
+ Name of the surgery
+ Body part the surgery is currently being performed on. Useful for checking to see if the organ desired is still in the body after the surgery has begun.
possible_locs
+
+
+
+
+
+ Body locations this surgery can be performed on
replaced_by
+
+
+
+
+
+ Don't show this surgery if this type exists. Set to /datum/surgery if you want to hide a "base" surgery.
requires_bodypart
+
+
+
+
+
+ Surgery is only available if the target bodypart is present (or if it's missing)
requires_organic_bodypart
+
+
+
+
+
+ Whether we can perform the surgery on a robotic limb
requires_real_bodypart
+
+
+
+
+
+ Some surgeries might work on limbs that don't really exist (like chainsaw arms or flashlight eyes)
self_operable
+
+
+
+
+
+ Can the surgery be performed on yourself?
speed_modifier
+
+
+
+
+
+ Surgery step speed modifier
step_in_progress
+
+
+
+
+
+ If we're currently performing a step
step_number
+
+
+
+
+
+ How far along we are in a surgery being performed.
steps
+
+
+
+
+
+ Surgical steps that go into performing this procedure
+ Target of the surgery
target_mobtypes
+
+
+
+
+
+ Mobs on which this can be performed
Proc Details can_start
+
+ Whether or not we can start this surgery.
+If this returns FALSE, this surgery won't show up in the list.
get_surgery_next_step()
+
+
+
+
+
+ Get the next step in the current surgery, or null if we're on the last one.
get_surgery_step()
+
+
+
+
+
+ Get the current surgery step we're on
handle_organ_state_change
+
+ Handle an organ's insertion or removal mid-surgery.
+If cancel_on_organ_change is true, then this will cancel the surgery in certain cases.
is_organ_compatible
+
+ Get whether the target organ is compatible with the current surgery.
next_step
+
+ Try to perform the next step in the current operation.
+This gets called in the attack chain, and as such returning FALSE in here means that the target
+will be hit with whatever's in your hand.
+The return is passed to the attack chain, so return TRUE to stop any sort of afterattack.
+
+
+
diff --git a/datum/surgery_step.html b/datum/surgery_step.html
new file mode 100644
index 0000000000000..ecab76374f3a1
--- /dev/null
+++ b/datum/surgery_step.html
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+ /datum/surgery_step - Space Station 13
+
+
+
+
+
+
+Vars
+ accept_any_item Does the surgery step accept any item? If true, ignores implements. Compatible with accept_hand.
+ accept_hand does the surgery step require an open hand? If true, ignores implements. Compatible with accept_any_item.
+ allowed_tools Type path of tools that can be used to complete this step. Format is path = probability of success
.
+If the tool has a specific surgery tooltype, you can use that as a key as well.
+ blood_level How much blood this step can get on surgeon. See SURGERY_BLOODSPREAD_* defines
+ can_infect Whether this surgery step can cause an infection.
+ chems_needed List of chems needed in the mob to complete the step. Even on success, this step will have no effect if the required chems aren't in the mob.
+ implement_type The current type of implement from allowed_tools in use. This has to be stored, as the typepath of the tool might not match the list type (such as if we're using tool behavior)
+ repeatable Is this step repeatable by using the same tool again after it's finished?
+Make sure it isn't the last step, or it's used in a cancellable surgery. Otherwise, you might get stuck in a loop!
+ require_all_chems Do we require any of the needed chems, or all of them?
+ silicons_ignore_prob Whether silicons ignore any probabilities (and are therefore "perfect" surgeons)
+ time duration of the step
+ times_repeated How many times this step has been automatically repeated. Procs
+ can_repeat Determines whether or not this surgery step can repeat if its end/fail steps returned SURGERY_STEP_RETRY.
+ chem_check Check that the target contains the chems we expect them to.
+ deal_pain Try to inflict pain during a surgery, a surgeon's dream come true.
+This will wake up the user if they're voluntarily sleeping.
+ end_step Finish a surgery step, performing anything that runs on the tail-end of a successful surgery.
+This runs if the surgery step passes the probability check, and therefore is a success.
+ fail_step Play out the failure state of a surgery step.
+This runs if the surgery step fails the probability check, the right chems weren't present, or if the user deliberately failed the surgery.
+ get_step_information Get the action that will be performed during this surgery step, in context of the surgery it is a part of.
+ initiate Initiate and really perform the surgery itself.
+This includes the main do-after and the checking of probabilities for successful surgeries.
+If try_to_fail is TRUE, then this surgery will be deliberately failed out of.
+ is_valid_tool Whether or not the tool being used is usable for the surgery.
+Checks both the tool itself as well as any tool behaviors defined in allowed_tools.
+Arguments:
+ slowdown_immune Check for mobs that would be immune to surgery slowdowns/speedups.
+ tool_check Get whether the tool should be usable in its current state. Useful for checks to see if a welder is on, for example.
+ try_op Try to perform an operation on a user.
+Arguments:
+ Var Details accept_any_item
+
+
+
+
+
+ Does the surgery step accept any item? If true, ignores implements. Compatible with accept_hand.
accept_hand
+
+
+
+
+
+ does the surgery step require an open hand? If true, ignores implements. Compatible with accept_any_item.
+ Type path of tools that can be used to complete this step. Format is path = probability of success
.
+If the tool has a specific surgery tooltype, you can use that as a key as well.
blood_level
+
+
+
+
+
+ How much blood this step can get on surgeon. See SURGERY_BLOODSPREAD_* defines
can_infect
+
+
+
+
+
+ Whether this surgery step can cause an infection.
chems_needed
+
+
+
+
+
+ List of chems needed in the mob to complete the step. Even on success, this step will have no effect if the required chems aren't in the mob.
implement_type
+
+
+
+
+
+ The current type of implement from allowed_tools in use. This has to be stored, as the typepath of the tool might not match the list type (such as if we're using tool behavior)
repeatable
+
+
+
+
+
+ Is this step repeatable by using the same tool again after it's finished?
+Make sure it isn't the last step, or it's used in a cancellable surgery. Otherwise, you might get stuck in a loop!
require_all_chems
+
+
+
+
+
+ Do we require any of the needed chems, or all of them?
silicons_ignore_prob
+
+
+
+
+
+ Whether silicons ignore any probabilities (and are therefore "perfect" surgeons)
time
+
+
+
+
+
+ duration of the step
times_repeated
+
+
+
+
+
+ How many times this step has been automatically repeated.
Proc Details
+ Determines whether or not this surgery step can repeat if its end/fail steps returned SURGERY_STEP_RETRY.
+Arguments:
+
+user - mob performing the surgery
+target - mob the surgery is being performed on
+target_zone - body zone of the surgery
+tool - tool used for the surgery
+surgery - the operation this surgery step is a part of
+
+If this returns TRUE, the step will automatically retry. If not, the user will have to manually start the step again.
chem_check
+
+ Check that the target contains the chems we expect them to.
deal_pain
+
+ Try to inflict pain during a surgery, a surgeon's dream come true.
+This will wake up the user if they're voluntarily sleeping.
+Returns the success rate that the user's amount of pain would deal, while also handling extra pain behavior.
+ Finish a surgery step, performing anything that runs on the tail-end of a successful surgery.
+This runs if the surgery step passes the probability check, and therefore is a success.
+Should return SURGERY_STEP_CONTINUE to advance the surgery, though may return SURGERY_STEP_INCOMPLETE to keep the surgery step from advancing.
+ Play out the failure state of a surgery step.
+This runs if the surgery step fails the probability check, the right chems weren't present, or if the user deliberately failed the surgery.
+Should return SURGERY_STEP_INCOMPLETE to prevent the surgery step from advancing, though may return SURGERY_STEP_CONTINUE to advance to the next step regardless.
+ Get the action that will be performed during this surgery step, in context of the surgery it is a part of.
+
+surgery - A surgery in progress.
+ initiate
+
+ Initiate and really perform the surgery itself.
+This includes the main do-after and the checking of probabilities for successful surgeries.
+If try_to_fail is TRUE, then this surgery will be deliberately failed out of.
+Returns TRUE if the surgery should proceed to the next step, or FALSE otherwise.
+ Whether or not the tool being used is usable for the surgery.
+Checks both the tool itself as well as any tool behaviors defined in allowed_tools.
+Arguments:
+
+user - User handling the tool.
+tool - The tool (or item) being used in this surgery step.
+Returns TRUE if the tool can be used, or FALSE otherwise
+ slowdown_immune
+
+ Check for mobs that would be immune to surgery slowdowns/speedups.
+ Get whether the tool should be usable in its current state. Useful for checks to see if a welder is on, for example.
+Arguments:
+
+user - The user using the tool.
+tool - The tool in use.
+
+ Try to perform an operation on a user.
+Arguments:
+
+user - The user performing the surgery.
+target - The user on whom the surgery is being performed.
+target_zone - the zone the user is targeting for the surgery.
+tool - The object that the user is using to perform the surgery (optional)
+surgery - The surgery being performed.
+Returns TRUE if the step was a success, or FALSE if the step can't be performed for some reason.
+
+
+
+
diff --git a/datum/surgery_step/internal.html b/datum/surgery_step/internal.html
new file mode 100644
index 0000000000000..fad055510c771
--- /dev/null
+++ b/datum/surgery_step/internal.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/surgery_step/internal - Space Station 13
+
+
+
+
+
+
+Procs
+ get_organ_list Get an internal list of organs for a zone (or an external organ).
Proc Details
+ Get an internal list of organs for a zone (or an external organ).
+Helper function since we end up calling this a ton to work with carbons
+
+
+
diff --git a/datum/surgery_step/proxy.html b/datum/surgery_step/proxy.html
new file mode 100644
index 0000000000000..676a0ea568eae
--- /dev/null
+++ b/datum/surgery_step/proxy.html
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+ /datum/surgery_step/proxy - Space Station 13
+
+
+
+
+
+
+Here's the special sauce: a surgery step that can pretend to be a few different surgery steps.
+These proxy steps will, depending on the tool that's used, either continue to the next surgery step, or temporarily spin off a new surgery
+by adding new steps to the current surgery.
Vars
+ branches Optional surgery TYPES that we can branch out to
+Note that these must not share any starting tools.
+ branches_init Initialized versions of types specified in branches.
+Don't fill this yourself, instead fill branches with surgery TYPES.
+ insert_self_after Whether or not we should add ourselves as a step after we run a branch. This doesn't apply to failures, those will always add ourselves after.
+ overriding_tools These tools are just...special cases.
+If we're using one of these tools and there's a tool conflict with the original surgery,
+just ignore any branches and continue with the original surgery. Procs
+ try_next_step Test the next step, but don't fully commit to it unless it completes successfully.
+If the next step doesn't fully complete (such as being interrupted or failing), we'll insert ourselves again to bring us back
+to the "base" state.
+If it does, we'll add the subsequent steps to the surgery and continue down the expected branch. If you complete the surgery step, it
+means you've committed to what comes next.
+Part of the motivation behind this is that I don't want to mutate a surgery retroactively. We can insert, but we shouldn't be changing anything
+behind us.
+ Var Details branches
+
+
+
+
+
+ Optional surgery TYPES that we can branch out to
+Note that these must not share any starting tools.
branches_init
+
+
+
+
+
+ Initialized versions of types specified in branches.
+Don't fill this yourself, instead fill branches with surgery TYPES.
insert_self_after
+
+
+
+
+
+ Whether or not we should add ourselves as a step after we run a branch. This doesn't apply to failures, those will always add ourselves after.
+ These tools are just...special cases.
+If we're using one of these tools and there's a tool conflict with the original surgery,
+just ignore any branches and continue with the original surgery.
Proc Details try_next_step
+
+ Test the next step, but don't fully commit to it unless it completes successfully.
+If the next step doesn't fully complete (such as being interrupted or failing), we'll insert ourselves again to bring us back
+to the "base" state.
+If it does, we'll add the subsequent steps to the surgery and continue down the expected branch. If you complete the surgery step, it
+means you've committed to what comes next.
+Part of the motivation behind this is that I don't want to mutate a surgery retroactively. We can insert, but we shouldn't be changing anything
+behind us.
+Arguments:
+
+next_surgery_steps - the steps for the branching surgery to add to the current surgery. If there's no branching surgery (or this would continue the main surgery) ignore this.
+override_adding_self - If true, then on a successful surgery, regardless of the value of insert_self_after, we won't add ourselves in as another step.
+readd_step_on_fail - If true, when we fail a step we'll add the failed step again after the proxy surgery. This is necessary for main surgeries.
+(for other arguments, see try_op())
+
+
+
+
diff --git a/datum/syndicate_contract.html b/datum/syndicate_contract.html
new file mode 100644
index 0000000000000..f2c104d3a4f33
--- /dev/null
+++ b/datum/syndicate_contract.html
@@ -0,0 +1,355 @@
+
+
+
+
+
+
+ /datum/syndicate_contract - Space Station 13
+
+
+
+
+
+
+Describes a contract that can be completed by a Contractor.
+ Var Details chosen_difficulty
+
+
+
+
+
+ The selected difficulty.
completed_time
+
+
+
+
+
+ Formatted station time at which the contract was completed, if applicable.
+ The /datum/objective/contract associated to this contract.
credits_base
+
+
+
+
+
+ The base credits reward upon completion. Multiplied by the two lower bounds below.
+ Whether the contract was completed with the victim being dead on extraction.
+ Cooldown before making another extraction request in deciseconds.
+ The world.time at which the current extraction fulton will vanish and another extraction can be requested.
+ The flare indicating the extraction point.
+ The extraction portal.
extraction_timer_handle
+
+
+
+
+
+ Deadline reached timer handle. Deletes the portal and tells the agent to call extraction again.
fail_reason
+
+
+
+
+
+ Visual reason as to why the contract failed, if applicable.
fluff_message
+
+
+
+
+
+ Fluff message explaining why the kidnapee is the target.
nt_am_board_resigned
+
+
+
+
+
+ Whether the additional fluff story from any contractor completing all of their contracts was made already or not.
+ The owning contractor hub.
portal_duration
+
+
+
+
+
+ How long an extraction portal remains before going away. Should be less than /datum/syndicate_contract/var/extraction_cooldown .
prison_time
+
+
+
+
+
+ How long a target remains in the Syndicate jail.
prisoner_timer_handle
+
+
+
+
+
+ Prisoner jail timer handle. On completion, returns the prisoner back to station.
reward_credits
+
+
+
+
+
+ Amount of credits the contractor will receive upon completion.
reward_tc
+
+
+
+
+
+ Amount of telecrystals the contract will receive upon completion, depending on the chosen difficulty.
+Structure: EXTRACTION_DIFFICULTY_(EASY|MEDIUM|HARD) => number
status
+
+
+
+
+
+ Current contract status.
target_name
+
+
+
+
+
+ Name of the target to display on the UI.
target_photo
+
+
+
+
+
+ The target's photo to display on the UI.
temp_objs
+
+
+
+
+
+ Temporary objects that are available to the kidnapee during their time in jail. These are deleted when the victim is returned.
victim_belongings
+
+
+
+
+
+ The kidnapee's belongings. Set upon extraction by the contractor.
Proc Details clean_up()
+
+
+
+
+
+ Cleans up the contract.
complete(target_dead)
+
+
+
+
+
+ Marks the contract as completed and gives the rewards to the contractor.
+Arguments:
+
+target_dead - Whether the target was extracted dead.
+ deadline_reached()
+
+
+
+
+
+ Called when the extraction window closes.
default_damage
+
+ Default damage if no injury is possible.
+Arguments:
+fail(reason)
+
+
+
+
+
+ Marks the contract as failed and stops it.
+Arguments:
+
+difficulty - The visual reason as to why the contract failed.
+ generate(target_override)
+
+
+
+
+
+ Fills the contract with valid data to be used.
+ Handles the target's experience from extraction.
+Arguments:
+
+M - The target mob.
+P - The extraction portal.
+ handle_target_return
+
+ Handles the target's return to station.
+Arguments:
+initiate
+
+ Begins the contract if possible.
+Arguments:
+
+M - The contractor.
+difficulty - The chosen difficulty level.
+ injure_target
+
+ Handles the target's injury/interrogation at the Syndicate Jail.
+Arguments:
+invalidate()
+
+
+
+
+
+ Marks the contract as invalid and effectively cancels it for later use.
notify_completion(tc, creds, target_dead)
+
+
+
+
+
+ Notifies the uplink's holder that a contract has been completed.
+Arguments:
+
+tc - How many telecrystals they have received.
+creds - How many credits they have received.
+target_dead - Whether the target was extracted dead.
+
+ Opens the extraction portal.
+Arguments:
+
+U - The uplink.
+M - The contractor.
+F - The flare.
+
+ Initiates the extraction process if conditions are met.
+Arguments:
+
+ Called when a contract target has been extracted through the portal.
+Arguments:
+
+M - The target mob.
+P - The extraction portal.
+
+
+
+
diff --git a/datum/tarot.html b/datum/tarot.html
new file mode 100644
index 0000000000000..af350ae3ead9d
--- /dev/null
+++ b/datum/tarot.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/tarot - Space Station 13
+
+
+
+
+
+
+Vars
+ card_icon What icon is used for the card?
+ desc Desc used for the card description of the card
+ name Name used for the card
+ reversed Are we reversed? Used for the card back.
+ Var Details card_icon
+
+
+
+
+
+ What icon is used for the card?
desc
+
+
+
+
+
+ Desc used for the card description of the card
name
+
+
+
+
+
+ Name used for the card
reversed
+
+
+
+
+
+ Are we reversed? Used for the card back.
+
+
+
diff --git a/datum/tcomms_message.html b/datum/tcomms_message.html
new file mode 100644
index 0000000000000..05038fb03d818
--- /dev/null
+++ b/datum/tcomms_message.html
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+ /datum/tcomms_message - Space Station 13
+
+
+
+
+
+
+Datum which holds all the data for a message being sent
+This used to be a single associative list with just keys and values
+It had no typepath or presence checking, and was absolutely awful to work with
+This fixes that
Vars
+ connection Origin of the signal
+ data The signal data (See defines/radio.dm)
+ follow_target Follow target for AI use
+ freq What frequency the message is sent on
+ message_pieces Pieces of the message
+ needs_tcomms Did the signal come from a device that requires tcomms to function
+ pass Should this signal be re-broadcasted (Can be modified by NTTC, defaults to TRUE)
+ pre_modify_name sender_name before modify_message modifies it, because it introduces html tags.
+ radio The radio it was sent from
+ reject Is this signal meant to be rejected
+ sender Who sent it
+ sender_job What job are they
+ sender_name Who sent the message
+ sender_rank What rank are they (this is used for formatting)
+ source_level Source Z-level
+ verbage Verbage used
+ vmask Was it sent with a voice changer
+ vname Voice name if the person doesnt have a name (diona, alien, etc)
+ zlevels List of all channels this can be sent or received on Procs
+ Destroy Destructor for the TCM datum.
+ Var Details connection
+
+
+
+
+
+ Origin of the signal
data
+
+
+
+
+
+ The signal data (See defines/radio.dm)
follow_target
+
+
+
+
+
+ Follow target for AI use
freq
+
+
+
+
+
+ What frequency the message is sent on
message_pieces
+
+
+
+
+
+ Pieces of the message
needs_tcomms
+
+
+
+
+
+ Did the signal come from a device that requires tcomms to function
pass
+
+
+
+
+
+ Should this signal be re-broadcasted (Can be modified by NTTC, defaults to TRUE)
pre_modify_name
+
+
+
+
+
+ sender_name before modify_message modifies it, because it introduces html tags.
+ The radio it was sent from
reject
+
+
+
+
+
+ Is this signal meant to be rejected
+ Who sent it
sender_job
+
+
+
+
+
+ What job are they
sender_name
+
+
+
+
+
+ Who sent the message
sender_rank
+
+
+
+
+
+ What rank are they (this is used for formatting)
source_level
+
+
+
+
+
+ Source Z-level
verbage
+
+
+
+
+
+ Verbage used
vmask
+
+
+
+
+
+ Was it sent with a voice changer
vname
+
+
+
+
+
+ Voice name if the person doesnt have a name (diona, alien, etc)
zlevels
+
+
+
+
+
+ List of all channels this can be sent or received on
Proc Details Destroy()
+
+
+
+
+
+ Destructor for the TCM datum.
+This needs to happen like this so that things dont keep references held in place
+
+
+
diff --git a/datum/team.html b/datum/team.html
new file mode 100644
index 0000000000000..bf71dbdf74da1
--- /dev/null
+++ b/datum/team.html
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+ /datum/team - Space Station 13
+
+
+
+
+Antagonist Team
+
+
+
+
+
+Datum used by team antagonists to track it's members and objectives the team needs to complete.
Vars
+ antag_datum_type Type of antag datum members of this team have. Also given to new members added by admins.
+ blackbox_save_name The name to save objective successes under in the blackboxes. Saves nothing if blank.
+ members A list of minds who belong to this team.
+ name The name of the team.
+ objective_holder A list of objectives which all team members share. Procs
+ add_member Adds new_member
to this team.
+ add_team_objective Adds a team objective to each member's matching antag datum.
+ admin_add_member Adds a new member to this team from a list of players in the round.
+ admin_add_objective Allows admins to add a team objective.
+Minimize overriding this proc please.
+ admin_announce_objectives Allows admins to announce objectives to all team members.
+ admin_communicate Allows admins to send a message to all members of this team.
+ admin_remove_member Allows admins to remove a team member.
+ admin_remove_objective Allows admins to remove a team objective.
+ admin_rename_team Allows admins to rename the team.
+ get_admin_commands A list of team-specific admin commands for this team. Should be in the form of "command" = CALLBACK(x, PROC_REF(some_proc))
.
+ get_admin_priority_objectives Returns an associated list of priority objectives for admins to add to the team, this is like
+Must return in the form objective name
= objective_path
.
+ get_antag_datum_from_member Return an antag datum from a member which is linked with this team.
+ get_target_excludes Special overrides for teams for target exclusion from objectives.
+ handle_adding_admin_objective Overridable logic for handling how the adding of objectives works works
+Can return an objective datum, or a boolean.
+Returns a boolean if its already added to the team objectives in a custom way
+ handle_adding_member An internal proc to allow teams to handle custom parts of adding a member.
+This should ONLY be called by add_member()
to ensure proper order of operations.
+ handle_removing_member An internal proc for teams to remove a member.
+ on_round_end Displays the roundend stats for teams
+ remove_member Removes member
from this team.
+This is an interface proc, to prevent handle_removing_member from being called multiple times.
+ remove_team_objective Remove a team objective from each member's matching antag datum.
+ Var Details antag_datum_type
+
+
+
+
+
+ Type of antag datum members of this team have. Also given to new members added by admins.
blackbox_save_name
+
+
+
+
+
+ The name to save objective successes under in the blackboxes. Saves nothing if blank.
members
+
+
+
+
+
+ A list of minds who belong to this team.
name
+
+
+
+
+
+ The name of the team.
+ A list of objectives which all team members share.
Proc Details add_member
+
+ Adds new_member
to this team.
+This is an interface proc, to prevent handle_removing_member from being called multiple times.
+It is better if this is only called from add_antag_datum()
, but it is not required.
add_team_objective
+
+ Adds a team objective to each member's matching antag datum.
admin_add_member
+
+ Adds a new member to this team from a list of players in the round.
admin_add_objective
+
+ Allows admins to add a team objective.
+Minimize overriding this proc please.
admin_announce_objectives
+
+ Allows admins to announce objectives to all team members.
admin_communicate
+
+ Allows admins to send a message to all members of this team.
admin_remove_member
+
+ Allows admins to remove a team member.
admin_remove_objective
+
+ Allows admins to remove a team objective.
admin_rename_team
+
+ Allows admins to rename the team.
get_admin_commands()
+
+
+
+
+
+ A list of team-specific admin commands for this team. Should be in the form of "command" = CALLBACK(x, PROC_REF(some_proc))
.
get_admin_priority_objectives()
+
+
+
+
+
+ Returns an associated list of priority objectives for admins to add to the team, this is like
+Must return in the form objective name
= objective_path
.
get_antag_datum_from_member
+
+ Return an antag datum from a member which is linked with this team.
get_target_excludes()
+
+
+
+
+
+ Special overrides for teams for target exclusion from objectives.
handle_adding_admin_objective(/mob /user, objective_type)
+
+
+
+
+
+ Overridable logic for handling how the adding of objectives works works
+Can return an objective datum, or a boolean.
+Returns a boolean if its already added to the team objectives in a custom way
handle_adding_member
+
+ An internal proc to allow teams to handle custom parts of adding a member.
+This should ONLY be called by add_member()
to ensure proper order of operations.
handle_removing_member
+
+ An internal proc for teams to remove a member.
on_round_end()
+
+
+
+
+
+ Displays the roundend stats for teams
remove_member
+
+ Removes member
from this team.
+This is an interface proc, to prevent handle_removing_member from being called multiple times.
remove_team_objective
+
+ Remove a team objective from each member's matching antag datum.
+
+
+
diff --git a/datum/team/cult.html b/datum/team/cult.html
new file mode 100644
index 0000000000000..1181ff7f10733
--- /dev/null
+++ b/datum/team/cult.html
@@ -0,0 +1,146 @@
+
+
+
+
+
+
+ /datum/team/cult - Space Station 13
+
+
+
+
+
+
+Vars
+ ascend_number How many crew need to be converted to ascend
+ ascend_percent Used for the CentComm announcement at ascension
+ cult_ascendant Does the cult have halos
+ cult_risen Does the cult have glowing eyes
+ cult_status Variable used for tracking the progress of the cult's sacrifices & god summonings
+ is_in_transition Boolean that prevents all_members_timer from being called multiple times
+ mirror_shields_active Are cultist mirror shields active yet?
+ obj_summon God summon objective added when ready_to_summon() is called
+ rise_number How many crew need to be converted to rise Procs
+ all_members_timer This is a magic fuckin proc that takes a proc_ref, and calls it on all the human cultists.
+Created so that we don't make 1000 timers, and I'm too lazy to make a proc for all of these.
+Used in callbacks for some magic bullshit .
+ cult_body_transfer Makes sure that the signal stays on the correct body when a cultist changes bodies
+ cult_threshold_check Decides at the start of the round how many conversions are needed to rise/ascend.
+ current_sac_objective Return the current sacrifice objective datum, if any
+ get_admin_commands ADMIN STUFF DOWN YONDER
+ get_cultists Returns the current number of cultists and constructs.
+ Var Details ascend_number
+
+
+
+
+
+ How many crew need to be converted to ascend
ascend_percent
+
+
+
+
+
+ Used for the CentComm announcement at ascension
cult_ascendant
+
+
+
+
+
+ Does the cult have halos
cult_risen
+
+
+
+
+
+ Does the cult have glowing eyes
cult_status
+
+
+
+
+
+ Variable used for tracking the progress of the cult's sacrifices & god summonings
is_in_transition
+
+
+
+
+
+ Boolean that prevents all_members_timer from being called multiple times
mirror_shields_active
+
+
+
+
+
+ Are cultist mirror shields active yet?
obj_summon
+
+
+
+
+
+ God summon objective added when ready_to_summon() is called
rise_number
+
+
+
+
+
+ How many crew need to be converted to rise
Proc Details all_members_timer(cultist_proc_ref, /datum /callback/varset_callback)
+
+
+
+
+
+ This is a magic fuckin proc that takes a proc_ref, and calls it on all the human cultists.
+Created so that we don't make 1000 timers, and I'm too lazy to make a proc for all of these.
+Used in callbacks for some magic bullshit .
cult_body_transfer(old_body, new_body)
+
+
+
+
+
+ Makes sure that the signal stays on the correct body when a cultist changes bodies
cult_threshold_check()
+
+
+
+
+
+ Decides at the start of the round how many conversions are needed to rise/ascend.
+The number is decided by (Percentage * (Players - Cultists)), so for example at 110 players it would be 11 conversions for rise. (0.1 * (110 - 4))
+These values change based on population because 20 cultists are MUCH more powerful if there's only 50 players, compared to 120.
+Below 100 players, CULT_RISEN_LOW and CULT_ASCENDANT_LOW are used.
+Above 100 players, CULT_RISEN_HIGH and CULT_ASCENDANT_HIGH are used.
current_sac_objective()
+
+
+
+
+
+ Return the current sacrifice objective datum, if any
get_admin_commands()
+
+
+
+
+
+ ADMIN STUFF DOWN YONDER
get_cultists(separate)
+
+
+
+
+
+ Returns the current number of cultists and constructs.
+Returns the number of cultists and constructs in a list ([1] = Cultists, [2] = Constructs), or as one combined number.
+
+separate - Should the number be returned as a list with two separate values (Humans and Constructs) or as one number.
+
+
+
+
diff --git a/datum/team/revolution.html b/datum/team/revolution.html
new file mode 100644
index 0000000000000..1ee9050969f3d
--- /dev/null
+++ b/datum/team/revolution.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ /datum/team/revolution - Space Station 13
+
+
+
+
+
+
+Proc Details need_another_headrev(clamp_at)
+
+
+
+
+
+
+Calculate how many headrevs are needed, given a certain amount of sec/heads.
+
+ How many Headrevs given security + command (excluding the clamp)
+
+
+
+ Security
+
+
+
+ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+
+
+
+ ------------------------------------------------------------------
+
+
+
+ 0 | -3 -2 -2 -2 -1 -1 -1 0 0 0 1 1 1 2 2 2 3
+
+
+
+ 1 | -2 -1 -1 -1 0 0 0 1 1 1 2 2 2 3 3 3 4
+
+
+
+ 2 | -1 0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 5
+
+
+Command 3 | 0 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6
+
+ 4 | 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7
+
+
+
+ 5 | 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8
+
+
+
+ 6 | 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9
+
+
+
+ 7 | 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10
+
+
+
+
+
+
diff --git a/datum/tech.html b/datum/tech.html
new file mode 100644
index 0000000000000..09edbde4dd832
--- /dev/null
+++ b/datum/tech.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ /datum/tech - Space Station 13
+
+
+
+
+
+
+ Technology Datums
+
+Includes all the various technoliges and what they make.
+Datum of individual technologies.
+
+
+
diff --git a/datum/tgs_chat_channel.html b/datum/tgs_chat_channel.html
new file mode 100644
index 0000000000000..fc21d1ec9d417
--- /dev/null
+++ b/datum/tgs_chat_channel.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/tgs_chat_channel - Space Station 13
+
+
+
+
+
+
+Represents a connected chat channel.
+ Var Details connection_name
+
+
+
+
+
+ Name of the chat connection. This is the IRC server address or the Discord guild.
custom_tag
+
+
+
+
+
+ Tag string associated with the channel in TGS.
embeds_supported
+
+
+
+
+
+ [TRUE]/[FALSE] if the channel supports embeds.
friendly_name
+
+
+
+
+
+ User friendly name of the channel.
id
+
+
+
+
+
+ TGS internal channel ID.
is_admin_channel
+
+
+
+
+
+ [TRUE]/[FALSE] based on if the server operator has marked this channel for game admins only.
is_private_channel
+
+
+
+
+
+ [TRUE]/[FALSE] if the channel is a private message channel for a /datum/tgs_chat_user .
+
+
+
diff --git a/datum/tgs_chat_command.html b/datum/tgs_chat_command.html
new file mode 100644
index 0000000000000..3269a996d1970
--- /dev/null
+++ b/datum/tgs_chat_command.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ /datum/tgs_chat_command - Space Station 13
+
+
+
+
+
+
+User definable chat command.
Vars
+ admin_only If this command should be available to game administrators only.
+ help_text The help text displayed for this command.
+ ignore_type A subtype of /datum/tgs_chat_command that is ignored when enumerating available commands. Use this to create shared base /datums for commands.
+ name The string to trigger this command on a chat bot. e.g @bot name ...
or !tgs name ...
. Procs
+ Run Process command activation. Should return a /datum/tgs_message_content to respond to the issuer with.
+ Var Details admin_only
+
+
+
+
+
+ If this command should be available to game administrators only.
help_text
+
+
+
+
+
+ The help text displayed for this command.
ignore_type
+
+
+
+
+
+ A subtype of /datum/tgs_chat_command that is ignored when enumerating available commands. Use this to create shared base /datums for commands.
name
+
+
+
+
+
+ The string to trigger this command on a chat bot. e.g @bot name ...
or !tgs name ...
.
Proc Details
+ Process command activation. Should return a /datum/tgs_message_content to respond to the issuer with.
+sender - The /datum/tgs_chat_user who issued the command.
+params - The trimmed string following the command `/datum/tgs_chat_command/var/name].
+
+
+
diff --git a/datum/tgs_chat_embed/footer.html b/datum/tgs_chat_embed/footer.html
new file mode 100644
index 0000000000000..2a5642c4fd54a
--- /dev/null
+++ b/datum/tgs_chat_embed/footer.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/tgs_chat_embed/footer - Space Station 13
+
+
+
+
+
+
+See https://discord.com/developers/docs/resources/channel#embed-object-embed-footer-structure for details.
Vars
+ text Must be set in New().
+ Var Details text
+
+
+
+
+
+ Must be set in New().
+
+
+
diff --git a/datum/tgs_chat_embed/media.html b/datum/tgs_chat_embed/media.html
new file mode 100644
index 0000000000000..d97dcf74e1206
--- /dev/null
+++ b/datum/tgs_chat_embed/media.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/tgs_chat_embed/media - Space Station 13
+
+
+
+
+
+
+Common datum for similar discord embed medias.
Vars
+ url Must be set in New().
+ Var Details url
+
+
+
+
+
+ Must be set in New().
+
+
+
diff --git a/datum/tgs_chat_embed/structure.html b/datum/tgs_chat_embed/structure.html
new file mode 100644
index 0000000000000..31851aa21f9a3
--- /dev/null
+++ b/datum/tgs_chat_embed/structure.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/tgs_chat_embed/structure - Space Station 13
+
+
+
+
+
+
+User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/channel#embed-object-embed-structure for details.
Vars
+ colour Colour must be #AARRGGBB or #RRGGBB hex string.
+ image See https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure for details.
+ thumbnail See https://discord.com/developers/docs/resources/channel#embed-object-embed-thumbnail-structure for details.
+ timestamp Timestamp must be encoded as: time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss"). Use the active timezone.
+ video See https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure for details.
+ Var Details colour
+
+
+
+
+
+ Colour must be #AARRGGBB or #RRGGBB hex string.
+ See https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure for details.
+ See https://discord.com/developers/docs/resources/channel#embed-object-embed-thumbnail-structure for details.
timestamp
+
+
+
+
+
+ Timestamp must be encoded as: time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss"). Use the active timezone.
+ See https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure for details.
+
+
+
diff --git a/datum/tgs_chat_user.html b/datum/tgs_chat_user.html
new file mode 100644
index 0000000000000..040a29152a66a
--- /dev/null
+++ b/datum/tgs_chat_user.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/tgs_chat_user - Space Station 13
+
+
+
+
+
+
+
+ Var Details
+ The /datum/tgs_chat_channel the user was from.
friendly_name
+
+
+
+
+
+ The user's display name.
id
+
+
+
+
+
+ TGS internal user ID.
mention
+
+
+
+
+
+ The string to use to ping this user in a message.
+
+
+
diff --git a/datum/tgs_event_handler.html b/datum/tgs_event_handler.html
new file mode 100644
index 0000000000000..1a4c0c54a9bc2
--- /dev/null
+++ b/datum/tgs_event_handler.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ /datum/tgs_event_handler - Space Station 13
+
+
+
+
+
+
+User definable handler for TGS events.
+ Var Details receive_health_checks
+
+
+
+
+
+ If the handler receieves TGS_EVENT_HEALTH_CHECK events.
Proc Details HandleEvent(event_code, ...)
+
+
+
+
+
+ User definable callback for handling TGS events.
+event_code - One of the TGS_EVENT_ defines. Extra parameters will be documented in each.
+
+
+
diff --git a/datum/tgs_message_content.html b/datum/tgs_message_content.html
new file mode 100644
index 0000000000000..aa21fb7bef628
--- /dev/null
+++ b/datum/tgs_message_content.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/tgs_message_content - Space Station 13
+
+
+
+
+
+
+User definable chat message.
Vars
+ embed The /datum/tgs_chat_embed to embed in the message. Not supported on all chat providers.
+ text The tring content of the message. Must be provided in New().
+ Var Details
+ The /datum/tgs_chat_embed to embed in the message. Not supported on all chat providers.
text
+
+
+
+
+
+ The tring content of the message. Must be provided in New().
+
+
+
diff --git a/datum/tgs_revision_information.html b/datum/tgs_revision_information.html
new file mode 100644
index 0000000000000..6210801a0696a
--- /dev/null
+++ b/datum/tgs_revision_information.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/tgs_revision_information - Space Station 13
+
+
+
+
+
+
+Represents git revision information.
Vars
+ commit Full SHA of the commit.
+ origin_commit Full sha of last known remote commit. This may be null if the TGS repository is not currently tracking a remote branch.
+ timestamp ISO 8601 timestamp of when the commit was created.
+ Var Details commit
+
+
+
+
+
+ Full SHA of the commit.
origin_commit
+
+
+
+
+
+ Full sha of last known remote commit. This may be null if the TGS repository is not currently tracking a remote branch.
timestamp
+
+
+
+
+
+ ISO 8601 timestamp of when the commit was created.
+
+
+
diff --git a/datum/tgs_revision_information/test_merge.html b/datum/tgs_revision_information/test_merge.html
new file mode 100644
index 0000000000000..4fda4db6965cd
--- /dev/null
+++ b/datum/tgs_revision_information/test_merge.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/tgs_revision_information/test_merge - Space Station 13
+
+
+
+
+
+
+Represents a merge of a GitHub pull request.
Vars
+ author The Username of the test merge source's author.
+ body The test merge source's body when it was merged.
+ comment Optional comment left by the TGS user who initiated the merge.
+ head_commit The SHA of the test merge when that was merged.
+ number The test merge number.
+ title The test merge source's title when it was merged.
+ url An http URL to the test merge source.
+ Var Details author
+
+
+
+
+
+ The Username of the test merge source's author.
body
+
+
+
+
+
+ The test merge source's body when it was merged.
+ Optional comment left by the TGS user who initiated the merge.
head_commit
+
+
+
+
+
+ The SHA of the test merge when that was merged.
number
+
+
+
+
+
+ The test merge number.
title
+
+
+
+
+
+ The test merge source's title when it was merged.
url
+
+
+
+
+
+ An http URL to the test merge source.
+
+
+
diff --git a/datum/tgs_version.html b/datum/tgs_version.html
new file mode 100644
index 0000000000000..5dff3a99b4946
--- /dev/null
+++ b/datum/tgs_version.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/tgs_version - Space Station 13
+
+
+
+
+
+
+Represents a version.
+ Var Details deprecated_patch
+
+
+
+
+
+ Legacy version number. Generally null.
deprefixed_parameter
+
+
+
+
+
+ String value minus prefix.
minor
+
+
+
+
+
+ The minor version number. null for wildcards.
patch
+
+
+
+
+
+ The patch version number. null for wildcards.
raw_parameter
+
+
+
+
+
+ Unparsed string value.
suite
+
+
+
+
+
+ The suite/major version number.
+
+
+
diff --git a/datum/tgui.html b/datum/tgui.html
new file mode 100644
index 0000000000000..0dc82c038ee88
--- /dev/null
+++ b/datum/tgui.html
@@ -0,0 +1,256 @@
+
+
+
+
+
+
+ /datum/tgui - Space Station 13
+
+
+
+
+
+
+Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+tgui datum (represents a UI).
+ Var Details asset_data
+
+
+
+
+
+ Asset data to be sent with every update
autoupdate
+
+
+
+
+
+ Update the UI every MC tick.
closing
+
+
+
+
+
+ Stops further updates when close() was called.
initialized
+
+
+
+
+
+ If the UI has been initialized yet.
interface
+
+
+
+
+
+ The interface (template) to be used for this UI.
opened_at
+
+
+
+
+
+ Time of opening the window.
refresh_cooldown
+
+
+
+
+
+ Rate limit client refreshes to prevent DoS.
refreshing
+
+
+
+
+
+ Timed refreshing state
src_object
+
+
+
+
+
+ The object which owns the UI.
+ Topic state used to determine status/interactability.
status
+
+
+
+
+
+ The status/visibility of the UI.
title
+
+
+
+
+
+ The title of te UI.
user
+
+
+
+
+
+ The mob who opened/is using the UI.
+ The window_id for browse() and onclose().
window_key
+
+
+
+
+
+ Key that is used for remembering the window geometry.
window_size
+
+
+
+
+
+ Deprecated: Window size.
Proc Details New(/mob /user, /datum /src_object, interface, title, ui_x, ui_y)
+
+
+
+
+
+ public
+Create a new UI.
+required user mob The mob who opened/is using the UI.
+required src_object datum The object or datum which owns the UI.
+required interface string The interface used to render the UI.
+optional title string The title of the UI.
+optional ui_x int Deprecated: Window width.
+optional ui_y int Deprecated: Window height.
+return datum/tgui The requested UI.
close(can_be_suspended)
+
+
+
+
+
+ public
+Close the UI.
+optional can_be_suspended bool
get_payload(custom_data, with_data, with_static_data)
+
+
+
+
+
+ private
+Package the data to send to the UI, as JSON.
+return list
on_message(type, /list/payload, /list/href_list)
+
+
+
+
+
+ private
+Callback for handling incoming tgui messages.
open()
+
+
+
+
+
+ public
+Open this UI (and initialize it with data).
process(force)
+
+
+
+
+
+ private
+Run an update cycle for this UI. Called internally by SStgui
+every second or so.
process_status()
+
+
+
+
+
+ private
+Updates the status, and returns TRUE if status has changed.
send_asset
+
+ public
+Makes an asset available to use in tgui.
+required asset datum/asset
send_full_update(custom_data, force)
+
+
+
+
+
+ public
+Send a full update to the client (includes static data).
+optional custom_data list Custom data to send instead of ui_data.
+optional force bool Send an update even if UI is not interactive.
send_update(custom_data, force)
+
+
+
+
+
+ public
+Send a partial update to the client (excludes static data).
+optional custom_data list Custom data to send instead of ui_data.
+optional force bool Send an update even if UI is not interactive.
set_autoupdate(autoupdate)
+
+
+
+
+
+ public
+Enable/disable auto-updating of the UI.
+required value bool Enable/disable auto-updating.
set_state
+
+ public
+Replace current ui.state with a new one.
+required state datum/ui_state/state Next state
+
+
+
diff --git a/datum/tgui_alert.html b/datum/tgui_alert.html
new file mode 100644
index 0000000000000..3720da90a5f68
--- /dev/null
+++ b/datum/tgui_alert.html
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+ /datum/tgui_alert - Space Station 13
+
+
+
+
+
+
+Datum used for instantiating and using a TGUI-controlled modal that prompts the user with
+a message and has buttons for responses.
Vars
+ autofocus The bool that controls if this modal should grab window focus
+ buttons The list of buttons (responses) provided on the TGUI window
+ choice The button that the user has pressed, null if no selection has been made
+ closed Boolean field describing if the tgui_alert was closed by the user.
+ deletion_timer The attached timer that handles this objects timeout deletion
+ message The textual body of the TGUI window
+ start_time The time at which the tgui_alert was created, for displaying timeout progress.
+ state The TGUI UI state that will be returned in ui_state(). Default: always_state
+ timeout The lifespan of the tgui_alert, after which the window will close and delete itself.
+ title The title of the TGUI window Procs
+ wait Waits for a user's response to the tgui_alert's prompt before returning. Returns early if
+the window was closed by the user.
+ Var Details autofocus
+
+
+
+
+
+ The bool that controls if this modal should grab window focus
+ The list of buttons (responses) provided on the TGUI window
choice
+
+
+
+
+
+ The button that the user has pressed, null if no selection has been made
closed
+
+
+
+
+
+ Boolean field describing if the tgui_alert was closed by the user.
deletion_timer
+
+
+
+
+
+ The attached timer that handles this objects timeout deletion
message
+
+
+
+
+
+ The textual body of the TGUI window
start_time
+
+
+
+
+
+ The time at which the tgui_alert was created, for displaying timeout progress.
+ The TGUI UI state that will be returned in ui_state(). Default: always_state
timeout
+
+
+
+
+
+ The lifespan of the tgui_alert, after which the window will close and delete itself.
title
+
+
+
+
+
+ The title of the TGUI window
Proc Details wait()
+
+
+
+
+
+ Waits for a user's response to the tgui_alert's prompt before returning. Returns early if
+the window was closed by the user.
+
+
+
diff --git a/datum/tgui_input_number.html b/datum/tgui_input_number.html
new file mode 100644
index 0000000000000..822933c9b597f
--- /dev/null
+++ b/datum/tgui_input_number.html
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+ /datum/tgui_input_number - Space Station 13
+
+
+
+
+
+
+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.
Vars
+ closed Boolean field describing if the tgui_input_number was closed by the user.
+ default The default (or current) value, shown as a default. Users can press reset with this.
+ deletion_timer The attached timer that handles this objects timeout deletion
+ entry The entry that the user has return_typed in.
+ max_value The maximum value that can be entered.
+ message The prompt's body, if any, of the TGUI window.
+ min_value The minimum value that can be entered.
+ round_value Whether the submitted number is rounded down into an integer.
+ start_time The time at which the number input was created, for displaying timeout progress.
+ state The TGUI UI state that will be returned in ui_state(). Default: always_state
+ timeout The lifespan of the number input, after which the window will close and delete itself.
+ title The title of the TGUI window Procs
+ Destroy Checks for empty numbers - bank accounts, etc.
+Sanity check
+ wait Waits for a user's response to the tgui_input_number's prompt before returning. Returns early if
+the window was closed by the user.
+ Var Details closed
+
+
+
+
+
+ Boolean field describing if the tgui_input_number was closed by the user.
default
+
+
+
+
+
+ The default (or current) value, shown as a default. Users can press reset with this.
deletion_timer
+
+
+
+
+
+ The attached timer that handles this objects timeout deletion
entry
+
+
+
+
+
+ The entry that the user has return_typed in.
max_value
+
+
+
+
+
+ The maximum value that can be entered.
message
+
+
+
+
+
+ The prompt's body, if any, of the TGUI window.
min_value
+
+
+
+
+
+ The minimum value that can be entered.
round_value
+
+
+
+
+
+ Whether the submitted number is rounded down into an integer.
start_time
+
+
+
+
+
+ The time at which the number input was created, for displaying timeout progress.
+ The TGUI UI state that will be returned in ui_state(). Default: always_state
timeout
+
+
+
+
+
+ The lifespan of the number input, after which the window will close and delete itself.
title
+
+
+
+
+
+ The title of the TGUI window
Proc Details Destroy(force)
+
+
+
+
+
+ Checks for empty numbers - bank accounts, etc.
+Sanity check
wait()
+
+
+
+
+
+ Waits for a user's response to the tgui_input_number's prompt before returning. Returns early if
+the window was closed by the user.
+
+
+
diff --git a/datum/tgui_input_text.html b/datum/tgui_input_text.html
new file mode 100644
index 0000000000000..6e1a950e947d1
--- /dev/null
+++ b/datum/tgui_input_text.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+ /datum/tgui_input_text - Space Station 13
+
+
+
+
+
+
+tgui_input_text
+Datum used for instantiating and using a TGUI-controlled text input that prompts the user with
+a message and has an input for text entry.
Vars
+ closed Boolean field describing if the tgui_input_text was closed by the user.
+ default The default (or current) value, shown as a default.
+ deletion_timer The attached timer that handles this objects timeout deletion
+ encode Whether the input should be stripped using html_encode
+ entry The entry that the user has return_typed in.
+ max_length The maximum length for text entry
+ message The prompt's body, if any, of the TGUI window.
+ multiline Multiline input for larger input boxes.
+ start_time The time at which the text input was created, for displaying timeout progress.
+ state The TGUI UI state that will be returned in ui_state(). Default: always_state
+ timeout The lifespan of the text input, after which the window will close and delete itself.
+ title The title of the TGUI window Procs
+ set_entry Sets the return value for the tgui text proc.
+If html encoding is enabled, the text will be encoded.
+This can sometimes result in a string that is longer than the max length.
+If the string is longer than the max length, it will be clipped.
+ wait Waits for a user's response to the tgui_input_text's prompt before returning. Returns early if
+the window was closed by the user.
+ Var Details closed
+
+
+
+
+
+ Boolean field describing if the tgui_input_text was closed by the user.
default
+
+
+
+
+
+ The default (or current) value, shown as a default.
deletion_timer
+
+
+
+
+
+ The attached timer that handles this objects timeout deletion
encode
+
+
+
+
+
+ Whether the input should be stripped using html_encode
entry
+
+
+
+
+
+ The entry that the user has return_typed in.
max_length
+
+
+
+
+
+ The maximum length for text entry
message
+
+
+
+
+
+ The prompt's body, if any, of the TGUI window.
multiline
+
+
+
+
+
+ Multiline input for larger input boxes.
start_time
+
+
+
+
+
+ The time at which the text input was created, for displaying timeout progress.
+ The TGUI UI state that will be returned in ui_state(). Default: always_state
timeout
+
+
+
+
+
+ The lifespan of the text input, after which the window will close and delete itself.
title
+
+
+
+
+
+ The title of the TGUI window
Proc Details set_entry(entry)
+
+
+
+
+
+ Sets the return value for the tgui text proc.
+If html encoding is enabled, the text will be encoded.
+This can sometimes result in a string that is longer than the max length.
+If the string is longer than the max length, it will be clipped.
wait()
+
+
+
+
+
+ Waits for a user's response to the tgui_input_text's prompt before returning. Returns early if
+the window was closed by the user.
+
+
+
diff --git a/datum/tgui_list_input.html b/datum/tgui_list_input.html
new file mode 100644
index 0000000000000..de4d1f1c18cee
--- /dev/null
+++ b/datum/tgui_list_input.html
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+ /datum/tgui_list_input - Space Station 13
+
+
+
+
+
+
+Client does NOT have tgui_input on: Returns regular input
+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
Vars
+ choice The button that the user has pressed, null if no selection has been made
+ closed Boolean field describing if the tgui_list_input was closed by the user.
+ default The default button to be selected
+ deletion_timer The attached timer that handles this objects timeout deletion
+ invalid Whether the tgui list input is invalid or not (i.e. due to all list entries being null)
+ items The list of items (responses) provided on the TGUI window
+ items_map Buttons (strings specifically) mapped to the actual value (e.g. a mob or a verb)
+ message The textual body of the TGUI window
+ start_time The time at which the tgui_list_input was created, for displaying timeout progress.
+ state The TGUI UI state that will be returned in ui_state(). Default: always_state
+ timeout The lifespan of the tgui_list_input, after which the window will close and delete itself.
+ title The title of the TGUI window Procs
+ wait Waits for a user's response to the tgui_list_input's prompt before returning. Returns early if
+the window was closed by the user.
+ Var Details choice
+
+
+
+
+
+ The button that the user has pressed, null if no selection has been made
closed
+
+
+
+
+
+ Boolean field describing if the tgui_list_input was closed by the user.
default
+
+
+
+
+
+ The default button to be selected
deletion_timer
+
+
+
+
+
+ The attached timer that handles this objects timeout deletion
invalid
+
+
+
+
+
+ Whether the tgui list input is invalid or not (i.e. due to all list entries being null)
items
+
+
+
+
+
+ The list of items (responses) provided on the TGUI window
items_map
+
+
+
+
+
+ Buttons (strings specifically) mapped to the actual value (e.g. a mob or a verb)
message
+
+
+
+
+
+ The textual body of the TGUI window
start_time
+
+
+
+
+
+ The time at which the tgui_list_input was created, for displaying timeout progress.
+ The TGUI UI state that will be returned in ui_state(). Default: always_state
timeout
+
+
+
+
+
+ The lifespan of the tgui_list_input, after which the window will close and delete itself.
title
+
+
+
+
+
+ The title of the TGUI window
Proc Details wait()
+
+
+
+
+
+ Waits for a user's response to the tgui_list_input's prompt before returning. Returns early if
+the window was closed by the user.
+
+
+
diff --git a/datum/tgui_panel.html b/datum/tgui_panel.html
new file mode 100644
index 0000000000000..127a5ccff587f
--- /dev/null
+++ b/datum/tgui_panel.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/tgui_panel - Space Station 13
+
+
+
+
+
+
+Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+tgui_panel datum
+Hosts tgchat and other nice features.
+ Var Details telemetry_analyzed_at
+
+
+
+
+
+ Time of telemetry analysis completion
telemetry_connections
+
+
+
+
+
+ List of previous client connections
telemetry_requested_at
+
+
+
+
+
+ Time of telemetry request
Proc Details analyze_telemetry(payload)
+
+
+
+
+
+ private
+Analyzes a telemetry packet.
+Is currently only useful for detecting ban evasion attempts.
initialize(force)
+
+
+
+
+
+ public
+Initializes tgui panel.
is_ready()
+
+
+
+
+
+ public
+TRUE if panel is initialized and ready to receive messages.
on_initialize_timed_out()
+
+
+
+
+
+ private
+Called when initialization has timed out.
on_message(type, payload)
+
+
+
+
+
+ private
+Callback for handling incoming tgui messages.
play_music(url, extra_data)
+
+
+
+
+
+ public
+Sends music data to the browser.
+Optional settings:
+
+pitch: the playback rate
+start: the start time of the sound
+end: when the musics stops playing
+
+required url string Must be an https URL.
+optional extra_data list Optional settings.
request_telemetry()
+
+
+
+
+
+ private
+Requests some telemetry from the client.
send_roundrestart()
+
+
+
+
+
+ public
+Sends a round restart notification.
stop_music()
+
+
+
+
+
+ public
+Stops playing music through the browser.
+
+
+
diff --git a/datum/tgui_say.html b/datum/tgui_say.html
new file mode 100644
index 0000000000000..baeae7df4c6c6
--- /dev/null
+++ b/datum/tgui_say.html
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+ /datum/tgui_say - Space Station 13
+
+
+
+
+
+
+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.
Vars
+ client The user who opened the window
+ window The modal window
+ window_open Boolean for whether the tgui_say was opened by the user. Procs
+ New Creates the new input window to exist in the background.
+ close Closes the window serverside. Closes any open chat bubbles
+regardless of preference.
+ delegate_speech Delegates the speech to the proper channel.
+ handle_entry Handles text entry and forced speech.
+ initialize After a brief period, injects the scripts into
+the window to listen for open commands.
+ load Ensures nothing funny is going on window load.
+Minimizes the window, sets max length, closes all
+typing and thinking indicators. This is triggered
+as soon as the window sends the "ready" message.
+ on_message The equivalent of ui_act, this waits on messages from the window
+and delegates actions.
+ open Sets the window as "opened" server side, though it is already
+visible to the user. We do this to set local vars &
+start typing (if enabled and in an IC channel).
+ start_thinking Sets the mob as "thinking" - with indicator
+ start_typing Handles the user typing. After a brief period of inactivity,
+signals the client mob to revert to the "thinking" icon.
+ stop_thinking Special exemptions
+Removes typing/thinking indicators and flags the mob as not thinking
+ stop_typing Callback to remove the typing indicator after a brief period of inactivity.
+If the user was typing IC, the thinking indicator is shown.
+ Var Details client
+
+
+
+
+
+ The user who opened the window
+ The modal window
window_open
+
+
+
+
+
+ Boolean for whether the tgui_say was opened by the user.
Proc Details New
+
+ Creates the new input window to exist in the background.
close()
+
+
+
+
+
+ Closes the window serverside. Closes any open chat bubbles
+regardless of preference.
delegate_speech(entry, channel)
+
+
+
+
+
+ Delegates the speech to the proper channel.
+Arguments:
+entry - the text to broadcast
+channel - the channel to broadcast in
+Returns:
+boolean - on success or failure
handle_entry(payload)
+
+
+
+
+
+ Handles text entry and forced speech.
+Arguments:
+payload - a string list containing entry & channel
+Returns:
+boolean - success or failure
initialize()
+
+
+
+
+
+ After a brief period, injects the scripts into
+the window to listen for open commands.
load()
+
+
+
+
+
+ Ensures nothing funny is going on window load.
+Minimizes the window, sets max length, closes all
+typing and thinking indicators. This is triggered
+as soon as the window sends the "ready" message.
on_message(type, payload)
+
+
+
+
+
+ The equivalent of ui_act, this waits on messages from the window
+and delegates actions.
open(payload)
+
+
+
+
+
+ Sets the window as "opened" server side, though it is already
+visible to the user. We do this to set local vars &
+start typing (if enabled and in an IC channel).
+Arguments:
+payload - A list containing the channel the window was opened in.
start_thinking()
+
+
+
+
+
+ Sets the mob as "thinking" - with indicator
start_typing(me)
+
+
+
+
+
+ Handles the user typing. After a brief period of inactivity,
+signals the client mob to revert to the "thinking" icon.
stop_thinking()
+
+
+
+
+
+ Special exemptions
+Removes typing/thinking indicators and flags the mob as not thinking
stop_typing()
+
+
+
+
+
+ Callback to remove the typing indicator after a brief period of inactivity.
+If the user was typing IC, the thinking indicator is shown.
+
+
+
diff --git a/datum/tgui_window.html b/datum/tgui_window.html
new file mode 100644
index 0000000000000..e42e0fd88b8c3
--- /dev/null
+++ b/datum/tgui_window.html
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+ /datum/tgui_window - Space Station 13
+
+
+
+
+
+
+Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
Proc Details New(/client /client, id, pooled)
+
+
+
+
+
+ public
+Create a new tgui window.
+required client /client
+required id string A unique window identifier.
acquire_lock
+
+ public
+Acquire the window lock. Pool will not be able to provide this window
+to other UIs for the duration of the lock.
+Can be given an optional tgui datum, which will be automatically
+subscribed to incoming messages via the on_message proc.
+optional ui /datum/tgui
can_be_suspended()
+
+
+
+
+
+ public
+Checks if the window can be sanely suspended.
+return bool
close(can_be_suspended)
+
+
+
+
+
+ public
+Close the UI.
+optional can_be_suspended bool
flush_message_queue()
+
+
+
+
+
+ private
+Sends queued messages if the queue wasn't empty.
initialize(strict_mode, fancy, assets, inline_html, inline_js, inline_css)
+
+
+
+
+
+ public
+Initializes the window with a fresh page. Puts window into the "loading"
+state. You can begin sending messages right after initializing. Messages
+will be put into the queue until the window finishes loading.
+optional strict_mode bool - Enables strict error handling and BSOD.
+optional fancy bool - If TRUE and if this is NOT a panel, will hide the window titlebar.
+optional assets list - List of assets to load during initialization.
+optional inline_html string - Custom HTML to inject.
+optional inline_js string - Custom JS to inject.
+optional inline_css string - Custom CSS to inject.
is_ready()
+
+
+
+
+
+ public
+Checks if the window is ready to receive data.
+return bool
on_message(type, payload, href_list)
+
+
+
+
+
+ private
+Callback for handling incoming tgui messages.
reinitialize()
+
+
+
+
+
+ public
+Reinitializes the panel with previous data used for initialization.
release_lock()
+
+
+
+
+
+ public
+Release the window lock.
replace_html(inline_html)
+
+
+
+
+
+ public
+Replaces the inline HTML content.
+required inline_html string HTML to inject
send_asset
+
+ public
+Makes an asset available to use in tgui.
+required asset datum/asset
+return bool - TRUE if any assets had to be sent to the client
send_message(type, payload, force)
+
+
+
+
+
+ public
+Sends a message to tgui window.
+required type string Message type
+required payload list Message payload
+optional force bool Send regardless of the ready status.
send_raw_message(message, force)
+
+
+
+
+
+ public
+Sends a raw payload to tgui window.
+required message string JSON+urlencoded blob to send.
+optional force bool Send regardless of the ready status.
subscribe(/datum /object, delegate)
+
+
+
+
+
+ public
+Subscribes the datum to consume window messages on a specified proc.
+Note, that this supports only one subscriber, because code for that
+is simpler and therefore faster. If necessary, this can be rewritten
+to support multiple subscribers.
unsubscribe
+
+ public
+Unsubscribes the datum. Do not forget to call this when cleaning up.
+
+
+
diff --git a/datum/theft_objective.html b/datum/theft_objective.html
new file mode 100644
index 0000000000000..f7bd6c2e93b10
--- /dev/null
+++ b/datum/theft_objective.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/theft_objective - Space Station 13
+
+
+
+
+
+
+.
Vars
+ job_possession If a steal objective has forbidden jobs, and the forbidden jobs would not be in the possession of this item, set this to false
+ special_equipment Do we have a special item we give to somewhen when they get this objective?
+ Var Details job_possession
+
+
+
+
+
+ If a steal objective has forbidden jobs, and the forbidden jobs would not be in the possession of this item, set this to false
special_equipment
+
+
+
+
+
+ Do we have a special item we give to somewhen when they get this objective?
+
+
+
diff --git a/datum/thrownthing.html b/datum/thrownthing.html
new file mode 100644
index 0000000000000..3480a49a381a7
--- /dev/null
+++ b/datum/thrownthing.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/thrownthing - Space Station 13
+
+
+
+
+
+
+Vars
+ block_movement Will thrownthing datum actually block movement? this might be FALSE with some circumstances even if var/should_block_movement is TRUE. This variable change automatically during the throw
+ dodgeable When this variable is false, non dense mobs will be hit by a thrown item. useful for things that you dont want to be cheesed by crawling, EG. gravitational anomalies
+ should_block_movement Can a thrown mob move themselves to stop the throw?
+ Var Details block_movement
+
+
+
+
+
+ Will thrownthing datum actually block movement? this might be FALSE with some circumstances even if var/should_block_movement is TRUE. This variable change automatically during the throw
dodgeable
+
+
+
+
+
+ When this variable is false, non dense mobs will be hit by a thrown item. useful for things that you dont want to be cheesed by crawling, EG. gravitational anomalies
should_block_movement
+
+
+
+
+
+ Can a thrown mob move themselves to stop the throw?
+
+
+
diff --git a/datum/ticket.html b/datum/ticket.html
new file mode 100644
index 0000000000000..708e3db708198
--- /dev/null
+++ b/datum/ticket.html
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+ /datum/ticket - Space Station 13
+
+
+
+
+
+
+
+ Var Details adminwho_data
+
+
+
+
+
+ List of adminwho data
client_ckey
+
+
+
+
+
+ ckey of the client who opened the ticket.
first_raw_response
+
+
+
+
+
+ The first raw response. Used for ticket conversions
ingame_time_opened
+
+
+
+
+
+ Ingame time the ticket was opened
lastResponseTime
+
+
+
+
+
+ When the staff last responded.
lastStaffResponse
+
+
+
+
+
+ Last staff member who responded.
locationSent
+
+
+
+
+
+ The location the player was when they sent the ticket.
mobControlled
+
+
+
+
+
+ The mob the player was controlling when they sent the ticket.
real_time_opened
+
+
+
+
+
+ Real time the ticket was opened.
staffAssigned
+
+
+
+
+
+ Staff member who has assigned themselves to this ticket.
staff_ckey
+
+
+
+
+
+ Staff member ckey who took it
staff_take_time
+
+
+
+
+
+ The time the staff member took the ticket
ticketCooldown
+
+
+
+
+
+ Cooldown before allowing the user to open another ticket.
ticketNum
+
+
+
+
+
+ Ticket number.
ticketState
+
+
+
+
+
+ State of the ticket, open, closed, resolved etc.
ticket_converted
+
+
+
+
+
+ Has the ticket been converted to another type? (Mhelp to Ahelp, etc.)
ticket_responses
+ – /list/datum/ticket_response
+
+
+
+
+ Content of the staff help.
timeUntilStale
+
+
+
+
+
+ When the ticket goes stale.
title
+
+
+
+
+
+ The initial message from the user.
+
+
+
diff --git a/datum/ticket_response.html b/datum/ticket_response.html
new file mode 100644
index 0000000000000..9b66f1830afd3
--- /dev/null
+++ b/datum/ticket_response.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/ticket_response - Space Station 13
+
+
+
+
+
+
+
+ Var Details response_text
+
+
+
+
+
+ Text of this response
response_time
+
+
+
+
+
+ The time of the response
response_user
+
+
+
+
+
+ Who made the response
+
+
+
diff --git a/datum/tilt_crit.html b/datum/tilt_crit.html
new file mode 100644
index 0000000000000..ece2c2d409e09
--- /dev/null
+++ b/datum/tilt_crit.html
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+ /datum/tilt_crit - Space Station 13
+
+
+
+
+
+
+Framework for custom vendor crits.
+ Var Details fall_towards_mob
+
+
+
+
+
+ If we should be thrown against the mob or not.
harmless
+
+
+
+
+
+ If it'll deal damage or not
name
+
+
+
+
+
+ Name of a crit. Only crits with a name will be options.
valid_typecache
+
+
+
+
+
+ Typecache of valid types
valid_types_whitelist
+
+
+
+
+
+ List of types which we should be valid for
Proc Details
+ Return whether or not the crit selected is valid.
tip_crit_effect
+
+ Perform the tip crit effect on a victim.
+Arguments:
+
+machine - The machine that was tipped over
+user - The unfortunate victim upon whom it was tipped over
+incoming_damage - The amount of damage that was already being dealt to the victim
+Returns: The "crit rebate", or the amount of damage to subtract from the original amount of damage dealt, to soften the blow.
+
+
+
+
diff --git a/datum/timedevent.html b/datum/timedevent.html
new file mode 100644
index 0000000000000..ce5138c440a1b
--- /dev/null
+++ b/datum/timedevent.html
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+ /datum/timedevent - Space Station 13
+
+
+
+
+
+
+This is the actual timer, it contains the callback and necessary data to maintain
+the timer.
+See the documentation for the timer subsystem for an explanation of the buckets referenced
+below in next and prev
Vars
+ bucket_joined Boolean indicating if timer joined into bucket
+ bucket_pos Initial bucket position
+ callBack The callback to invoke after the timer completes
+ flags Flags associated with the timer, see _DEFINES/subsystems.dm
+ hash Unique hash generated when TIMER_UNIQUE flag is present
+ id ID used for timers when the TIMER_STOPPABLE flag is present
+ name An informative name generated for the timer as its representation in strings, useful for debugging
+ next Next timed event in the bucket
+ prev Previous timed event in the bucket
+ source The source of the timedevent, whatever called addtimer
+ spent Time at which the timer was invoked or destroyed
+ timeToRun The time at which the callback should be invoked at
+ wait The length of the timer Procs
+ bucketEject Removes this timed event from any relevant buckets, or the secondary queue
+ bucketJoin Attempts to add this timed event to a bucket, will enter the secondary queue
+if there are no appropriate buckets at this time.
+ getTimerInfo Returns debug information about timer
+ getcallingtype Returns a string of the type of the callback for this timer
+ Var Details bucket_joined
+
+
+
+
+
+ Boolean indicating if timer joined into bucket
bucket_pos
+
+
+
+
+
+ Initial bucket position
callBack
+
+
+
+
+
+ The callback to invoke after the timer completes
flags
+
+
+
+
+
+ Flags associated with the timer, see _DEFINES/subsystems.dm
hash
+
+
+
+
+
+ Unique hash generated when TIMER_UNIQUE flag is present
id
+
+
+
+
+
+ ID used for timers when the TIMER_STOPPABLE flag is present
name
+
+
+
+
+
+ An informative name generated for the timer as its representation in strings, useful for debugging
+ Next timed event in the bucket
+ Previous timed event in the bucket
source
+
+
+
+
+
+ The source of the timedevent, whatever called addtimer
spent
+
+
+
+
+
+ Time at which the timer was invoked or destroyed
timeToRun
+
+
+
+
+
+ The time at which the callback should be invoked at
wait
+
+
+
+
+
+ The length of the timer
Proc Details bucketEject()
+
+
+
+
+
+ Removes this timed event from any relevant buckets, or the secondary queue
bucketJoin()
+
+
+
+
+
+ Attempts to add this timed event to a bucket, will enter the secondary queue
+if there are no appropriate buckets at this time.
+Secondary queueing of timed events will occur when the timespan covered by the existing
+buckets is exceeded by the time at which this timed event is scheduled to be invoked.
+If the timed event is tracking client time, it will be added to a special bucket.
getTimerInfo()
+
+
+
+
+
+ Returns debug information about timer
getcallingtype()
+
+
+
+
+
+ Returns a string of the type of the callback for this timer
+
+
+
diff --git a/datum/traders.html b/datum/traders.html
new file mode 100644
index 0000000000000..ab56f2e40e2e4
--- /dev/null
+++ b/datum/traders.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/traders - Space Station 13
+
+
+
+
+
+
+
+ Var Details dock_site
+
+
+
+
+
+ What specific station the traders came from
trader_location
+
+
+
+
+
+ Where the traders originate from
trader_major_special
+
+
+
+
+
+ What big ticket faction gear do they start with
trader_minor_special
+
+
+
+
+
+ What standard faction gear do they start with
trader_outfit
+
+
+
+
+
+ What outfit do the traders spawn with
trader_species
+
+
+
+
+
+ What species the traders consist of
trader_type
+
+
+
+
+
+ What faction the trader is
+
+
+
diff --git a/datum/transaction.html b/datum/transaction.html
new file mode 100644
index 0000000000000..81460acb61d0c
--- /dev/null
+++ b/datum/transaction.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/transaction - Space Station 13
+
+
+
+
+
+
+Vars
+ account the account this log is attached to, used for money db level logging
+ amount If money is utilized/changed during this transaction, how much
+ is_deposit Whether or not this added or money from the account
+ purpose What this transaction is doing
+ time when the transaction occurred
+ transactor Who performed the action
+ Var Details account
+
+
+
+
+
+ the account this log is attached to, used for money db level logging
amount
+
+
+
+
+
+ If money is utilized/changed during this transaction, how much
is_deposit
+
+
+
+
+
+ Whether or not this added or money from the account
purpose
+
+
+
+
+
+ What this transaction is doing
time
+
+
+
+
+
+ when the transaction occurred
transactor
+
+
+
+
+
+ Who performed the action
+
+
+
diff --git a/datum/transfer_request.html b/datum/transfer_request.html
new file mode 100644
index 0000000000000..a5edddf0b19d1
--- /dev/null
+++ b/datum/transfer_request.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/transfer_request - Space Station 13
+
+
+
+
+
+
+Vars
+ amount how much money is being request
+ purpose reason for transfer request
+ requesting_account the money account that is requesting money
+ time when the money was requested
+ Var Details amount
+
+
+
+
+
+ how much money is being request
purpose
+
+
+
+
+
+ reason for transfer request
+ the money account that is requesting money
time
+
+
+
+
+
+ when the money was requested
+
+
+
diff --git a/datum/ui_modal.html b/datum/ui_modal.html
new file mode 100644
index 0000000000000..8c83388260bd7
--- /dev/null
+++ b/datum/ui_modal.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/ui_modal - Space Station 13
+
+
+
+
+
+
+Modal datum (contains base information for a modal)
Procs
+ on_answer Called when a modal receives an answer
+ preprocess_answer Called when it's time to pre-process the answer before using it
+ to_data Creates a list that describes a modal visually to be passed to JS
Proc Details on_answer(answer)
+
+
+
+
+
+ Called when a modal receives an answer
+Arguments:
+
+answer - The answer, a nullable text
+ preprocess_answer(answer)
+
+
+
+
+
+ Called when it's time to pre-process the answer before using it
+Arguments:
+
+answer - The answer, a nullable text
+ to_data()
+
+
+
+
+
+ Creates a list that describes a modal visually to be passed to JS
+
+
+
diff --git a/datum/ui_modal/input/bento.html b/datum/ui_modal/input/bento.html
new file mode 100644
index 0000000000000..908140a29641c
--- /dev/null
+++ b/datum/ui_modal/input/bento.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /datum/ui_modal/input/bento - Space Station 13
+
+
+
+
+
+
+Bento modal - Similar to choice, it displays the choices in a grid of images
+The returned answer is the index of the choice.
+
+
+
diff --git a/datum/ui_module/colour_matrix_tester.html b/datum/ui_module/colour_matrix_tester.html
new file mode 100644
index 0000000000000..8456da2139737
--- /dev/null
+++ b/datum/ui_module/colour_matrix_tester.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ui_module/colour_matrix_tester - Space Station 13
+
+
+
+
+
+
+Vars
+ target_datum The datum we are modifying. This will almost always be an atom, but clients have colours too
+ Var Details target_datum
+
+
+
+
+
+ The datum we are modifying. This will almost always be an atom, but clients have colours too
+
+
+
diff --git a/datum/ui_module/crew_monitor.html b/datum/ui_module/crew_monitor.html
new file mode 100644
index 0000000000000..bf13734e41cdc
--- /dev/null
+++ b/datum/ui_module/crew_monitor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ui_module/crew_monitor - Space Station 13
+
+
+
+
+
+
+Vars
+ ignore_sensors If true, we'll see everyone, regardless of their suit sensors.
+ Var Details ignore_sensors
+
+
+
+
+
+ If true, we'll see everyone, regardless of their suit sensors.
+
+
+
diff --git a/datum/ui_module/emojipedia.html b/datum/ui_module/emojipedia.html
new file mode 100644
index 0000000000000..a6c58a604b284
--- /dev/null
+++ b/datum/ui_module/emojipedia.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ui_module/emojipedia - Space Station 13
+
+
+
+
+
+
+Vars
+ emoji_list Store the list of potential emojis here.
+ Var Details emoji_list
+
+
+
+
+
+ Store the list of potential emojis here.
+
+
+
diff --git a/datum/ui_module/ert_manager.html b/datum/ui_module/ert_manager.html
new file mode 100644
index 0000000000000..0b8bb80a75bd8
--- /dev/null
+++ b/datum/ui_module/ert_manager.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ui_module/ert_manager - Space Station 13
+
+
+
+
+
+
+Vars
+ cyborg_security The below is a toggle for if sec cyborgs are enabled or not
+ Var Details cyborg_security
+
+
+
+
+
+ The below is a toggle for if sec cyborgs are enabled or not
+
+
+
diff --git a/datum/ui_module/ghost_hud_panel.html b/datum/ui_module/ghost_hud_panel.html
new file mode 100644
index 0000000000000..4d5c563db8893
--- /dev/null
+++ b/datum/ui_module/ghost_hud_panel.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ui_module/ghost_hud_panel - Space Station 13
+
+
+
+
+
+
+Allows ghosts to view a TGUI window which contains toggles for all HUD types available to them.
Vars
+ hud_type_lookup Associative list to get the appropriate hud type based on the string passed from TGUI.
+ Var Details hud_type_lookup
+
+
+
+
+
+ Associative list to get the appropriate hud type based on the string passed from TGUI.
+
+
+
diff --git a/datum/ui_module/library_manager.html b/datum/ui_module/library_manager.html
new file mode 100644
index 0000000000000..7cf38bdae3bf4
--- /dev/null
+++ b/datum/ui_module/library_manager.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/ui_module/library_manager - Space Station 13
+
+
+
+
+
+
+Vars
+ cached_books Where we will store our cachedbook datums
+ page_state TGUI page we are currently on
+ reports list of assoc lists detailing each invidual reports, can contain multiple reports for same book
+ selected_ckey Ckey's books we are viewing
+ view_book information for the book we are opening in browserui
+ view_book_page browserui helper variable for turning pages in book
+ Var Details cached_books
+
+
+
+
+
+ Where we will store our cachedbook datums
page_state
+
+
+
+
+
+ TGUI page we are currently on
reports
+
+
+
+
+
+ list of assoc lists detailing each invidual reports, can contain multiple reports for same book
selected_ckey
+
+
+
+
+
+ Ckey's books we are viewing
+ information for the book we are opening in browserui
view_book_page
+
+
+
+
+
+ browserui helper variable for turning pages in book
+
+
+
diff --git a/datum/ui_module/robot_self_diagnosis.html b/datum/ui_module/robot_self_diagnosis.html
new file mode 100644
index 0000000000000..f5f3effe66242
--- /dev/null
+++ b/datum/ui_module/robot_self_diagnosis.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ui_module/robot_self_diagnosis - Space Station 13
+
+
+
+
+
+
+Vars
+ owner The robot who can use this UI to diagnose themselves.
+ Var Details
+ The robot who can use this UI to diagnose themselves.
+
+
+
diff --git a/datum/ui_state.html b/datum/ui_state.html
new file mode 100644
index 0000000000000..34acdadd45ec8
--- /dev/null
+++ b/datum/ui_state.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ /datum/ui_state - Space Station 13
+
+
+
+
+
+
+Proc Details can_use_topic(src_object, /mob /user)
+
+
+
+
+
+ private
+Checks if a user can use src_object's UI, and returns the state.
+Can call a mob proc, which allows overrides for each mob.
+required src_object datum The object/datum which owns the UI.
+required user mob The mob who opened/is using the UI.
+return UI_state The state of the UI.
+
+
+
diff --git a/datum/uplink_item.html b/datum/uplink_item.html
new file mode 100644
index 0000000000000..d0132c48e90d9
--- /dev/null
+++ b/datum/uplink_item.html
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+ /datum/uplink_item - Space Station 13
+
+
+
+
+
+
+Vars
+ abstract Is what we're spawning abstract?
+ can_discount Can this be sold at a discount?
+ category What category is the item listed under
+ cost How many TC does this cost?
+ desc Description of the item in the uplink
+ excludefrom Empty list does nothing. Place the name of uplink type you don't want this item to be available in here.
+ hijack_only Can this item be purchased only during hijackings?
+ item What is spawned when we purchase this?
+ job Is this job locked?
+ limited_stock Can you only buy so many? -1 allows for infinite purchases
+ name Name of the item in the uplink
+ reference Used for discounts. Any unique string will do.
+ refund_amount specified refund amount in case there needs to be a TC penalty for refunds.
+ refund_path Alternative path for refunds, in case the item purchased isn't what is actually refunded (ie: holoparasites).
+ refundable Can you refund this in the uplink?
+ species This makes an item on the uplink only show up to the specified species
+ surplus Chance of being included in the surplus crate (when pick() selects it)
+ uplinktypes Empty list means it is in all the uplink types. Otherwise place the uplink type here.
+ uses_special_spawn Our special little snowflakes that have to be spawned in a different way than normal, like a surplus crate spawning a crate or contractor kits
+ Var Details abstract
+
+
+
+
+
+ Is what we're spawning abstract?
can_discount
+
+
+
+
+
+ Can this be sold at a discount?
category
+
+
+
+
+
+ What category is the item listed under
cost
+
+
+
+
+
+ How many TC does this cost?
desc
+
+
+
+
+
+ Description of the item in the uplink
excludefrom
+
+
+
+
+
+ Empty list does nothing. Place the name of uplink type you don't want this item to be available in here.
hijack_only
+
+
+
+
+
+ Can this item be purchased only during hijackings?
item
+
+
+
+
+
+ What is spawned when we purchase this?
job
+
+
+
+
+
+ Is this job locked?
limited_stock
+
+
+
+
+
+ Can you only buy so many? -1 allows for infinite purchases
name
+
+
+
+
+
+ Name of the item in the uplink
reference
+
+
+
+
+
+ Used for discounts. Any unique string will do.
refund_amount
+
+
+
+
+
+ specified refund amount in case there needs to be a TC penalty for refunds.
refund_path
+
+
+
+
+
+ Alternative path for refunds, in case the item purchased isn't what is actually refunded (ie: holoparasites).
refundable
+
+
+
+
+
+ Can you refund this in the uplink?
species
+
+
+
+
+
+ This makes an item on the uplink only show up to the specified species
surplus
+
+
+
+
+
+ Chance of being included in the surplus crate (when pick() selects it)
uplinktypes
+
+
+
+
+
+ Empty list means it is in all the uplink types. Otherwise place the uplink type here.
uses_special_spawn
+
+
+
+
+
+ Our special little snowflakes that have to be spawned in a different way than normal, like a surplus crate spawning a crate or contractor kits
+
+
+
diff --git a/datum/uplink_item/species_restricted/prescan.html b/datum/uplink_item/species_restricted/prescan.html
new file mode 100644
index 0000000000000..838997765981b
--- /dev/null
+++ b/datum/uplink_item/species_restricted/prescan.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/uplink_item/species_restricted/prescan - Space Station 13
+
+
+
+
+
+
+Vars
+ species A fresh start, but a start with nothing. Hard to use as well
+ Var Details species
+
+
+
+
+
+ A fresh start, but a start with nothing. Hard to use as well
+
+
+
diff --git a/datum/vampire_subclass.html b/datum/vampire_subclass.html
new file mode 100644
index 0000000000000..78d60c71c75b7
--- /dev/null
+++ b/datum/vampire_subclass.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/vampire_subclass - Space Station 13
+
+
+
+
+
+
+Vars
+ full_power_override If true, lets the vampire have access to their full power abilities without meeting the blood requirement, or needing a certain number of drained humans.
+ fully_powered_abilities A list of the powers a vampire unlocks when it reaches full power.
+ improved_rejuv_healing Whether or not a vampire heals more based on damage taken.
+ name The subclass' name. Used for blackbox logging.
+ standard_powers A list of powers that a vampire unlocks. The value of the list entry is equal to the blood total required for the vampire to unlock it.
+ thrall_cap maximun number of thralls a vampire may have at a time. incremented as they grow stronger, up to a cap at full power.
+ Var Details full_power_override
+
+
+
+
+
+ If true, lets the vampire have access to their full power abilities without meeting the blood requirement, or needing a certain number of drained humans.
fully_powered_abilities
+
+
+
+
+
+ A list of the powers a vampire unlocks when it reaches full power.
improved_rejuv_healing
+
+
+
+
+
+ Whether or not a vampire heals more based on damage taken.
name
+
+
+
+
+
+ The subclass' name. Used for blackbox logging.
standard_powers
+
+
+
+
+
+ A list of powers that a vampire unlocks. The value of the list entry is equal to the blood total required for the vampire to unlock it.
thrall_cap
+
+
+
+
+
+ maximun number of thralls a vampire may have at a time. incremented as they grow stronger, up to a cap at full power.
+
+
+
diff --git a/datum/virology_goal.html b/datum/virology_goal.html
new file mode 100644
index 0000000000000..774b3a19451f6
--- /dev/null
+++ b/datum/virology_goal.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/virology_goal - Space Station 13
+
+
+
+
+
+
+Vars
+ delivered_amount The amount of units currently already delivered
+ delivery_goal The amount of units of the required virus that must be delivered for the completion of this goal
+ Var Details delivered_amount
+
+
+
+
+
+ The amount of units currently already delivered
delivery_goal
+
+
+
+
+
+ The amount of units of the required virus that must be delivered for the completion of this goal
+
+
+
diff --git a/datum/vote.html b/datum/vote.html
new file mode 100644
index 0000000000000..05979e36e1d7f
--- /dev/null
+++ b/datum/vote.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/vote - Space Station 13
+
+
+
+
+
+
+
+ Var Details choices
+
+
+
+
+
+ Choices available in the vote
initiator
+
+
+
+
+
+ Person who started the vote
is_custom
+
+
+
+
+
+ Was this vote custom started?
question
+
+
+
+
+
+ The question being asked
show_counts
+
+
+
+
+
+ Do we want to show the vote counts as it goes
started_time
+
+
+
+
+
+ world.time the vote started at
vote_result_type
+
+
+
+
+
+ Vote result type. This determines how a winner is picked
vote_type_text
+
+
+
+
+
+ Vote type text, for showing in UIs and stuff
+
+
+
diff --git a/datum/weather/solar_flare.html b/datum/weather/solar_flare.html
new file mode 100644
index 0000000000000..92514147e0da7
--- /dev/null
+++ b/datum/weather/solar_flare.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/weather/solar_flare - Space Station 13
+
+
+
+
+
+
+Vars
+ semi_protected_areas Areas which are "semi-protected". Mobs inside these areas take reduced burn damage from the solar flare.
+ Var Details semi_protected_areas
+
+
+
+
+
+ Areas which are "semi-protected". Mobs inside these areas take reduced burn damage from the solar flare.
+
+
+
diff --git a/datum/wires.html b/datum/wires.html
new file mode 100644
index 0000000000000..138ff97a9d853
--- /dev/null
+++ b/datum/wires.html
@@ -0,0 +1,398 @@
+
+
+
+
+
+
+ /datum/wires - Space Station 13
+
+
+
+
+
+
+Vars
+ assemblies An associative list of signalers attached to the wires. The wire color is the key, and the signaler object reference is the value.
+ colors An associative list with the wire color as the key, and the wire define as the value.
+ cut_wires A list of all cut wires. The same values that can go into wires
will get added and removed from this list.
+ holder The atom the wires belong too. For example: an airlock.
+ holder_type The holder type; used to make sure that the holder is the correct type.
+ labelled TRUE if the wires are labelled for every user
+ proper_name The display name for the TGUI window. For example, given the var is "APC"...
+When the TGUI window is opened, "wires" will be appended to it's title, and it would become "APC wires".
+ randomize TRUE if the wires will be different every time a new wire datum is created.
+ wire_count The total number of wires that our holder atom has.
+ wires A list of all wires. For a list of valid wires defines that can go here, see code/__DEFINES/wires.dm
Procs
+ Interact Proc called when the user attempts to interact with wires UI.
+ add_duds Adds in dud wires, which do nothing when cut/pulsed.
+ attach_assembly Proc called when a mob tries to attach a signaler to a wire.
+ cut Cut or mend a wire. Calls on_cut()
.
+ cut_all Cuts all wires.
+ cut_color Cut the wire which corresponds with the passed in color.
+ cut_random Cuts a random wire.
+ detach_assembly Proc called when a mob tries to detach a signaler from a wire.
+ emp_pulse Use this proc if you want wires to be pulsed on EMP
+ get_attached Gets the signaler attached to the given wire color, if there is one.
+ get_status Base proc, intended to be overwritten. Put wire information you'll see at the botton of the TGUI window here, such as "The red light is blinking".
+ get_wire Gets the wire associated with the color passed in.
+ get_wire_name Get the name of the wire passed in.
+If wires can't be read, may either return something scrambled or nothing at all.
+A null return here means that there should be no name displayed at all.
+ interactable Base proc, intended to be overriden. Wire datum specific checks you want to run before the TGUI is shown to the user should go here.
+ is_all_cut Determines if all of the wires are cut. Returns TRUE they're all cut, FALSE otherwise.
+ is_attached Checks if the given wire has a signaler on it.
+ is_color_cut Determines if the wire associated with the passed in color, is cut or not. Returns TRUE if it's cut, FALSE otherwise.
+ is_cut Determines if the passed in wire is cut or not. Returns TRUE if it's cut, FALSE otherwise.
+ is_dud Determines if the passed in wire is a dud or not. Returns TRUE if the wire is a dud, FALSE otherwise.
+ is_dud_color Returns TRUE if the wire that corresponds to the passed in color is a dud. FALSE otherwise.
+ on_cut Proc called when any wire is cut.
+ on_pulse Proc called when any wire is pulsed.
+ pulse Pulses the given wire. Calls on_pulse()
.
+ pulse_assembly Proc called when an attached signaler receives a signal.
+ pulse_color Pulses the wire associated with the given color.
+ randomize Randomly generates a new set of wires. and corresponding colors from the given pool. Assigns the information as an associative list, to colors
.
+ repair Repairs all cut wires.
+ shuffle_wires Clears the colors
list, and randomizes it to a new set of color-to-wire relations.
+ ui_host Users will be interacting with our holder object and not the wire datum directly, therefore we need to return the holder.
+ Var Details assemblies
+
+
+
+
+
+ An associative list of signalers attached to the wires. The wire color is the key, and the signaler object reference is the value.
colors
+
+
+
+
+
+ An associative list with the wire color as the key, and the wire define as the value.
cut_wires
+
+
+
+
+
+ A list of all cut wires. The same values that can go into wires
will get added and removed from this list.
holder
+
+
+
+
+
+ The atom the wires belong too. For example: an airlock.
holder_type
+
+
+
+
+
+ The holder type; used to make sure that the holder is the correct type.
labelled
+
+
+
+
+
+ TRUE if the wires are labelled for every user
proper_name
+
+
+
+
+
+ The display name for the TGUI window. For example, given the var is "APC"...
+When the TGUI window is opened, "wires" will be appended to it's title, and it would become "APC wires".
randomize
+
+
+
+
+
+ TRUE if the wires will be different every time a new wire datum is created.
wire_count
+
+
+
+
+
+ The total number of wires that our holder atom has.
wires
+
+
+
+
+
+ A list of all wires. For a list of valid wires defines that can go here, see code/__DEFINES/wires.dm
Proc Details Interact
+
+ Proc called when the user attempts to interact with wires UI.
+Checks if the user exists, is a mob, the wires are attached to something (holder
) and makes sure interactable(user)
returns TRUE.
+If all the checks succeed, open the TGUI interface for the user.
+Arugments:
+
+user - the mob trying to interact with the wires.
+ add_duds(duds)
+
+
+
+
+
+ Adds in dud wires, which do nothing when cut/pulsed.
+Arguments:
+
+duds - the amount of dud wires to generate.
+
+ Proc called when a mob tries to attach a signaler to a wire.
+Makes sure that S
is actually a signaler and that something is not already attached to the wire.
+Adds the signaler to the assemblies
list as a value, with the color
as a the key.
+Arguments:
+
+color - the wire color.
+S - the signaler that a mob is trying to attach.
+ cut(wire)
+
+
+
+
+
+ Cut or mend a wire. Calls on_cut()
.
+Arugments:
+
+wire - a wire define, NOT a color. For example WIRE_ELECTRIFY
.
+ cut_all()
+
+
+
+
+
+ Cuts all wires.
cut_color(color)
+
+
+
+
+
+ Cut the wire which corresponds with the passed in color.
+Arugments:
+cut_random()
+
+
+
+
+
+ Cuts a random wire.
detach_assembly(color)
+
+
+
+
+
+ Proc called when a mob tries to detach a signaler from a wire.
+First checks if there is a signaler on the wire. If so, removes the signaler, and clears it from assemblies
list.
+Arguments:
+
+color - the wire color.
+ emp_pulse()
+
+
+
+
+
+ Use this proc if you want wires to be pulsed on EMP
get_attached(color)
+
+
+
+
+
+ Gets the signaler attached to the given wire color, if there is one.
+Arguments:
+
+color - the wire color.
+ get_status()
+
+
+
+
+
+ Base proc, intended to be overwritten. Put wire information you'll see at the botton of the TGUI window here, such as "The red light is blinking".
get_wire(color)
+
+
+
+
+
+ Gets the wire associated with the color passed in.
+Arugments:
+get_wire_name(/mob /user, wire)
+
+
+
+
+
+ Get the name of the wire passed in.
+If wires can't be read, may either return something scrambled or nothing at all.
+A null return here means that there should be no name displayed at all.
+Arguments:
+interactable
+
+ Base proc, intended to be overriden. Wire datum specific checks you want to run before the TGUI is shown to the user should go here.
is_all_cut()
+
+
+
+
+
+ Determines if all of the wires are cut. Returns TRUE they're all cut, FALSE otherwise.
is_attached(color)
+
+
+
+
+
+ Checks if the given wire has a signaler on it.
+Arguments:
+
+color - the wire color.
+ is_color_cut(color)
+
+
+
+
+
+ Determines if the wire associated with the passed in color, is cut or not. Returns TRUE if it's cut, FALSE otherwise.
+Arugments:
+is_cut(wire)
+
+
+
+
+
+ Determines if the passed in wire is cut or not. Returns TRUE if it's cut, FALSE otherwise.
+Arugments:
+
+wire - a wire define, NOT a color. For example WIRE_ELECTRIFY
.
+ is_dud(wire)
+
+
+
+
+
+ Determines if the passed in wire is a dud or not. Returns TRUE if the wire is a dud, FALSE otherwise.
+Arugments:
+
+wire - a wire define, NOT a color. For example WIRE_ELECTRIFY
.
+ is_dud_color(color)
+
+
+
+
+
+ Returns TRUE if the wire that corresponds to the passed in color is a dud. FALSE otherwise.
+Arugments:
+on_cut(wire, mend)
+
+
+
+
+
+ Proc called when any wire is cut.
+Base proc, intended to be overriden.
+Place an behavior you want to happen when certain wires are cut, into this proc.
+Arugments:
+
+wire - a wire define, NOT color. For example 'WIRE_ELECTRIFY'.
+mend - TRUE if we're mending the wire. FALSE if we're cutting.
+ on_pulse(wire)
+
+
+
+
+
+ Proc called when any wire is pulsed.
+Base proc, intended to be overriden.
+Place behavior you want to happen when certain wires are pulsed, into this proc.
+Arugments:
+
+wire - a wire define, NOT color. For example 'WIRE_ELECTRIFY'.
+ pulse(wire)
+
+
+
+
+
+ Pulses the given wire. Calls on_pulse()
.
+Arugments:
+
+wire - a wire define, NOT a color. For example WIRE_ELECTRIFY
.
+
+ Proc called when an attached signaler receives a signal.
+Searches through the assemblies
list for the wire that the signaler is attached to. Pulses the wire when it's found.
+Arugments:
+
+S - the attached signaler receiving the signal.
+ pulse_color(color)
+
+
+
+
+
+ Pulses the wire associated with the given color.
+Arugments:
+randomize()
+
+
+
+
+
+ Randomly generates a new set of wires. and corresponding colors from the given pool. Assigns the information as an associative list, to colors
.
+In the colors
list, the name of the color is the key, and the wire is the value.
+For example: colors["red"] = WIRE_ELECTRIFY
. This will look like list("red" = WIRE_ELECTRIFY)
internally.
repair()
+
+
+
+
+
+ Repairs all cut wires.
shuffle_wires()
+
+
+
+
+
+ Clears the colors
list, and randomizes it to a new set of color-to-wire relations.
ui_host()
+
+
+
+
+
+ Users will be interacting with our holder object and not the wire datum directly, therefore we need to return the holder.
+
+
+
diff --git a/datum/world_topic_handler.html b/datum/world_topic_handler.html
new file mode 100644
index 0000000000000..5b8fc355fb75c
--- /dev/null
+++ b/datum/world_topic_handler.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+ /datum/world_topic_handler - Space Station 13
+
+
+
+
+
+
+Vars
+ requires_commskey Set this to TRUE if the topic handler needs an authorised comms key
+ topic_key Key which invokes this topic Procs
+ execute Actually executes the user's topic
+ invoke Invokes the world/Topic handler
+ Var Details requires_commskey
+
+
+
+
+
+ Set this to TRUE if the topic handler needs an authorised comms key
topic_key
+
+
+
+
+
+ Key which invokes this topic
Proc Details execute(/list/input, key_valid)
+
+
+
+
+
+ Actually executes the user's topic
+Override this to do your work in subtypes of this topic
+Arguments:
+
+input - The list of topic data, sent from world/Topic
+key_valid - Has the user entered the correct auth key
+ invoke(/list/input)
+
+
+
+
+
+ Invokes the world/Topic handler
+This includes sanity checking for if the key is required, as well as other sanity checks
+DO NOT OVERRIDE
+Arguments:
+
+input - The list of topic data, sent from world/Topic
+
+
+
+
diff --git a/datum/world_topic_spam_prevention_handler.html b/datum/world_topic_spam_prevention_handler.html
new file mode 100644
index 0000000000000..0a17355e7f4a5
--- /dev/null
+++ b/datum/world_topic_spam_prevention_handler.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /datum/world_topic_spam_prevention_handler - Space Station 13
+
+
+
+
+
+
+Vars
+ ip IP. Used purely for select purposes.
+ last_request Time of last request
+ locked_out Is this IP currently locked out
+ strikes Amount of strikes. [WORLD_TOPIC_STRIKES_THRESHOLD] strikes is a lockout of [WORLD_TOPIC_LOCKOUT_TIME]
+ unlock_time Unlock time Procs
+ check_lockout Lockout handler
+ Var Details ip
+
+
+
+
+
+ IP. Used purely for select purposes.
last_request
+
+
+
+
+
+ Time of last request
locked_out
+
+
+
+
+
+ Is this IP currently locked out
strikes
+
+
+
+
+
+ Amount of strikes. [WORLD_TOPIC_STRIKES_THRESHOLD] strikes is a lockout of [WORLD_TOPIC_LOCKOUT_TIME]
unlock_time
+
+
+
+
+
+ Unlock time
Proc Details check_lockout()
+
+
+
+
+
+ Lockout handler
+Updates strikes and timers of the most recent client to topic the server
+including any relevant detail
+
+
+
diff --git a/datum/zlev_manager.html b/datum/zlev_manager.html
new file mode 100644
index 0000000000000..170c0ac467b6b
--- /dev/null
+++ b/datum/zlev_manager.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/zlev_manager - Space Station 13
+
+
+
+
+
+
+Proc Details increase_max_zlevel_to(new_maxz)
+
+
+
+
+
+ SPACE ALLOCATION
+
+
+
diff --git a/dmdoc.css b/dmdoc.css
new file mode 100644
index 0000000000000..367f005d2a85d
--- /dev/null
+++ b/dmdoc.css
@@ -0,0 +1,112 @@
+body {
+ margin: auto;
+ background: #f4f4f4;
+ color: #333333;
+ font-size: 16px;
+ line-height: 1.3;
+ max-width: 73%;
+ overflow-y: scroll;
+ font-family: Arial, Helvetica, sans-serif;
+}
+pre, code {
+ background: white;
+ tab-size: 4;
+ -moz-tab-size: 4;
+}
+pre {
+ padding: 8px;
+ white-space: pre-wrap;
+}
+code {
+ font-family: Consolas, "DejaVu Sans Mono", "Courier New", Courier, monospace;
+}
+a {
+ color: #333333;
+}
+article {
+ margin: 2.5% auto;
+}
+header, footer {
+ margin: 2.5% -6px;
+ border: 1px solid #444444;
+ border-radius: 5px;
+ padding: 5px;
+}
+h1 aside, h2 aside, h3 aside, h4 aside, h5 aside {
+ display: inline;
+ font-weight: normal;
+ font-size: smaller;
+}
+aside.declaration, aside.parent {
+ display: inline-block;
+ position: relative;
+ text-align: right;
+ width: 100px;
+ margin-right: -100px;
+ right: 105px;
+}
+aside.declaration {
+ font-style: italic;
+}
+table.summary tr:first-child > td > :first-child {
+ margin-top: 0;
+}
+table.summary tr:last-child > td > :last-child {
+ margin-bottom: 0;
+}
+table.summary th, table.summary td {
+ text-align: left;
+ vertical-align: top;
+ padding-left: 0;
+ padding-right: 1em;
+}
+table.summary th {
+ padding-left: 1em;
+ padding-bottom: 4px;
+ text-indent: -1em;
+}
+.no-substance {
+ color: #888888;
+}
+:target {
+ background-color: white;
+ border-radius: 5px;
+ padding-left: 3px;
+ padding-right: 3px;
+ margin-left: -3px;
+ margin-right: 3px;
+}
+img[src="git.png"] {
+ opacity: 0.8;
+}
+.expander {
+ cursor: pointer;
+ display: inline-block;
+ position: relative;
+ text-align: right;
+ width: 50px;
+ margin-right: -50px;
+ right: 53px;
+}
+
+@media (prefers-color-scheme: dark) {
+ body {
+ background-color: #151520;
+ color: #e0e0e0;
+ }
+ a {
+ color: #e0e0e0;
+ }
+ header, footer {
+ border-color: #d0d0d0;
+ }
+ .no-substance {
+ color: #bbbbbb;
+ }
+ pre, code, :target {
+ background-color: #252530;
+ }
+ img[src="git.png"] {
+ filter: invert(1);
+ }
+}
diff --git a/dmdoc.js b/dmdoc.js
new file mode 100644
index 0000000000000..6bf31f7e94411
--- /dev/null
+++ b/dmdoc.js
@@ -0,0 +1,58 @@
+// ----------------------------------------------------------------------------
+// Index page tree browsing
+
+document.addEventListener("DOMContentLoaded", function() {
+ var items = document.getElementsByClassName("index-tree");
+ var nodes = [];
+
+ for (var i = 0; i < items.length; ++i) {
+ var node = items[i];
+ var parent = node.parentElement;
+ if (!parent || parent.tagName.toLowerCase() != "li") {
+ continue;
+ }
+ node.hidden = true;
+ parent.style.listStyle = "none";
+ var expander = document.createElement("span");
+ expander.className = "expander";
+ expander.textContent = "\u2795";
+ expander.addEventListener("click", function(node) {
+ return function(event) {
+ if (event.target.tagName.toLowerCase() == "a") {
+ return;
+ }
+ event.preventDefault();
+ event.stopPropagation(true);
+ node.hidden = !node.hidden;
+ this.textContent = node.hidden ? "\u2795" : "\u2796";
+ };
+ }(node));
+
+ if (node.parentElement.parentElement.classList.contains("modules")) {
+ node.hidden = false;
+ expander.textContent = "\u2796";
+ }
+
+ parent.insertBefore(expander, parent.firstChild);
+ nodes.push({ node, expander });
+ }
+
+ if (nodes.length) {
+ var toggle = document.createElement("a");
+ toggle.href = "#";
+ toggle.appendChild(document.createTextNode("Toggle All"));
+ toggle.addEventListener("click", function(event) {
+ event.preventDefault();
+
+ var hidden = !nodes[1].node.hidden;
+ for (var i = 0; i < nodes.length; ++i) {
+ nodes[i].node.hidden = hidden;
+ nodes[i].expander.textContent = hidden ? "\u2795" : "\u2796";
+ }
+ });
+
+ var header = document.getElementsByTagName("header")[0];
+ header.appendChild(document.createTextNode(" \u2014 "));
+ header.appendChild(toggle);
+ }
+});
diff --git a/git.png b/git.png
new file mode 100644
index 0000000000000..c190e8538b5c1
Binary files /dev/null and b/git.png differ
diff --git a/global.html b/global.html
new file mode 100644
index 0000000000000..dbcab23d763a3
--- /dev/null
+++ b/global.html
@@ -0,0 +1,1344 @@
+
+
+
+
+
+
+ (global) - Space Station 13
+
+
+
+
+(global)
+
+
+
+
+
+Vars
+ Failsafe Failsafe
+ Master StonedMC
+ SSambience The subsystem used to play ambience to users every now and then, makes them real excited.
+ SSchat Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ SScleanup
+ SSpersistent_data
+ SStgui tgui subsystem
+ SStimer
+ SSverb_manager SSverb_manager, a subsystem that runs every tick and runs through its entire queue without yielding like SSinput.
+this exists because of how the byond tick works and where user inputted verbs are put within it. Procs
+ HTTPGet HTTP Get (Powered by RUSTG)
+ HeapPathWeightCompare TODO: Macro this to reduce proc overhead
+ MakeAPICall Internal API Caller
+ RoundDiagBar Diagnostic HUDs!
+ _queue_verb queue a callback for the given verb/verblike proc and any given arguments to the specified verb subsystem, so that they process in the next tick.
+intended to only work with verbs or verblike procs called directly from client input, use as part of TRY_QUEUE_VERB() and co.
+ add_attack_logs Creates attack (old and new) logs for the user and defense logs for the target.
+Will message admins depending on the custom_level, user and target.
+ add_verb handles adding verbs and updating the stat panel browser
+ addtimer Create a new timer and insert it in the queue.
+You should not call this directly, and should instead use the addtimer macro, which includes source information.
+ announce_merge_conflict_marker We REALLY do not want un-addressed merge conflicts in maps for an
+inexhaustible list of reasons. This should help ensure that this will not be
+missed in case linters fail to catch it for any reason what-so-ever.
+ atmos_scan Outputs a message to the user describing the target's gasmixes.
+Used in chat-based gas scans.
+ avoid_assoc_duplicate_keys takes an input_key, as text, and the list of keys already used, outputting a replacement key in the format of "[input_key] ([number_of_duplicates])" if it finds a duplicate
+use this for lists of things that might have the same name, like mobs or objects, that you plan on giving to a player as input
+ bang Creates a flashing effect that blinds and deafens mobs within range
+ broadcast_message Message Broadcast Proc
+ check_active_security_force
+ check_rights_all Requires the holder to have all the rights specified
+ client2rankcolour Proc to generate a "rank colour" from a client
+ compare_list compare two lists, returns TRUE if they are the same
+ costly_icon2asset Costlier version of icon2asset() that uses getFlatIcon() to account for overlays, underlays, etc. Use with extreme moderation, ESPECIALLY on mobs.
+ create_shrapnel Creates an explosion of shrapnel at a turf.
+ create_strippable_list Creates an assoc list of keys to /datum/strippable_item
+ cut_relative_direction Takes a screen_loc string and cut out any directions like NORTH or SOUTH
+ delete_all_SS_and_recreate_master Delete all existing SS to basically start over
+ deltimer Delete a timer
+ do_teleport Will teleport the given atom to the given destination using the other parameters
+ emissive_appearance Produces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EMISSIVE_COLOR . Order of application matters: Default generated blockers are overlays, and will block its own emissive underlays. If you want an object to be both a blocker, and have their own emissive, it has to be an overlay instead. Grayscale lightmasks are visible in the BYOND right-click and Examine pane, unless they're covered up by another overlay.
+ emissive_blocker Produces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EM_BLOCK_COLOR .
+ emoji_parse Turns :ai: into an emoji in text.
+ empulse Will cause an EMP on the given epicenter.
+This proc can sleep depending on the affected objects. So assume it sleeps!
+ finish_unequip_mob A utility function for /datum/strippable_item
s to finish unequipping an item from a mob.
+ fire_flash_log Flashfire is a proc used to log fire causing chemical reactions.
+ format_si_suffix Formats num with an SI prefix.
+ generate_and_hash_rsc_file Generates a filename for a given asset.
+Like generate_asset_name(), except returns the rsc reference and the rsc file hash as well as the asset name (sans extension)
+Used so that certain asset files dont have to be hashed twice
+ get_admin_objective_targets Allows admins to safely pick from SSticker.minds for objectives
+ get_all_linked_levels_zpos Proc to get a list of all the linked-together Z-Levels
+ get_allowed_instrument_ids Get all non admin_only instruments as a list of text ids.
+ get_antag_type_strings_list A proc that return an array of capitalized strings containing name of the antag types they are
+ get_antag_type_truncated_plaintext_string A proc that return a string containing all the singled out antags . Empty string if not antag
+ get_atoms_of_type Returns a list of atoms in a location of a given type. Can be refined to look for pixel-shift.
+ get_bbox_of_atoms Get a bounding box of a list of atoms.
+ get_channel_name Returns the clean name of an audio channel.
+ get_chemscan_results HEALTH ANALYZER
+ get_departments_from_job matches a string job name to their department(s) and returns it as a list
+ get_dummy_savefile Gets a dummy savefile for usage in icon generation.
+Savefiles generated from this proc will be empty.
+ get_edge_target_turf Returns the turf located at the map edge in the specified direction relative to target_atom used for mass driver
+ get_icon_dmi_path Given an icon object, dmi file path, or atom/image/mutable_appearance, attempts to find and return an associated dmi file path.
+A weird quirk about dm is that /icon objects represent both compile-time or dynamic icons in the rsc,
+But stringifying rsc references returns a dmi file path
+ONLY if that icon represents a completely unchanged dmi file from when the game was compiled.
+So if the given object is associated with an icon that was in the rsc when the game was compiled, this returns a path. otherwise it returns ""
+ get_line Get a list of turfs in a line from starting_atom
to ending_atom
.
+ get_living_players This proc returns every player with a client who is not a ghost or a new_player
+ get_path_to This file contains the stuff you need for using JPS (Jump Point Search) pathing, an alternative to A* that skips
+over large numbers of uninteresting tiles resulting in much quicker pathfinding solutions.
+ get_rad_contents A special GetAllContents that doesn't search past things with rad insulation
+Components which return COMPONENT_BLOCK_RADIATION prevent further searching into that object's contents. The object itself will get returned still.
+The ignore list makes those objects never return at all
+ get_ranged_target_turf
+ get_ranged_target_turf_direct Get ranged target turf, but with direct targets as opposed to directions
+ get_safe_species Returns a list of names of non-blacklisted or hazardous species.
+ get_unrestricted_random_reagent_id Returns a random reagent ID, with real non blacklisted balance boosting action!
+ get_valid_screen_location Returns a valid location to place a screen object without overflowing the viewport
+ get_valid_vent_spawns Returns a list of vents that can be used as a potential spawn if they meet the criteria set by the arguments
+ goonchem_vortex Throws or pulls objects to/from a chem reaction
+ icon2asset The dmi file path we attempt to return if the given object argument is associated with a stringifiable icon
+If successful, this looks like "icons/path/to/dmi_file.dmi"
+generate an asset for the given icon or the icon of the given appearance for [thing], and send it to any clients in target.
+Arguments:
+ icon2base64 Converts an icon to base64. Operates by putting the icon in the iconCache savefile,
+exporting it as text, and then parsing the base64 from that.
+(This relies on byond automatically storing icons in savefiles as base64)
+ icon_exists Checks if the given iconstate exists in the given file, caching the result. Setting no_sprite to TRUE will print a stack trace ONCE.
+ is_bad_connection Connection checker
+ is_color_dark Given a color in the format of "#RRGGBB", will return if the color is dark.
+ is_special_character ADMIN HELPER PROCS
+A proc that return whether the mob is a "Special Character" aka Antagonist
+ is_type_in_UID_list If the list L
contains a datum UID who's type matches D
's type, returns the UID of that datum in the list. Otherwise returns null.
+ is_valid_dmi_file given a text string, returns whether it is a valid dmi icons folder path
+ locateUID Locates a datum based off of the UID
+ makeDatumRefLists Initial Building
+ make_associative A proc for turning a list into an associative list.
+ md5asfile Save file as an external file then md5 it.
+Used because md5ing files stored in the rsc sometimes gives incorrect md5 results.
+ md5filepath Returns the md5 of a file at a given path.
+ message_adminTicket Sends a message to the staff able to see admin tickets
+Arguments:
+msg - The message being send
+important - If the message is important. If TRUE it will ignore the CHAT_NO_TICKETLOGS preferences,
+send a sound and flash the window. Defaults to FALSE
+ message_mentorTicket Sends a message to the staff able to see mentor tickets
+Arguments:
+msg - The message being send
+important - If the message is important. If TRUE it will ignore the CHAT_NO_TICKETLOGS preferences,
+send a sound and flash the window. Defaults to FALSE
+ message_to_html Message-related procs
+ offset_to_screen_loc Takes a list in the form (x_offset, y_offset)
+And converts it to a screen loc string
+Accepts an optional view string/size to force the screen_loc around, so it can't go out of scope
+ parse_caught_click_modifiers Returns a turf based on text inputs, original turf and viewing client
+ phase_filter This filter proc makes a visual effect where the object is split into fragments, with vertical lines cut out of them. It will appear as 2 seperate things are made of the one object that was cut out
+ pick_multiple_unique Picks multiple unique elements from the suplied list.
+If the given list has a length less than the amount given then it will return a list with an equal amount
+ pick_unique_lawset returns a random non starting / kill crew lawset if the station has a unique ai lawset
+ pickweight Picks an element based on its weight.
+L - The input list
+ propagate_network remove the old powernet and replace it with a new one throughout the network.
+ radial_menu_helper Similar to show_radial_menu, but choices is a list of atoms, for which icons will be automatically generated.
+Supports multiple items of the same name, 2 soaps will become soap (1) and soap (2) to the user.
+Otherwise, has the exact same arguments as show_radial_menu
+ random_body_accessory Returns a random body accessory for a given species name. Can be null based on is_optional argument.
+ recover_all_SS_and_recreate_master Recreate all SSs which will still cause data survive due to Recover(), the new Master will then find and take them from global.vars
+ remove_verb handles removing verb and sending it to browser to update, use this for removing verbs
+ round_health rounds value to limited symbols after the period for organ damage and other values
+ rustg_get_version Gets the version of rust_g
+ rustg_redis_disconnect_rq Disconnects from a previously connected redis server
+ rustg_unix_timestamp Returns the timestamp as a string
+ safe_get_ckey Safe ckey getter
+ sanitize_for_ic sanitize() with a pre-set list of characters to remove from IC speech.
+ screen_loc_to_offset Takes a screen loc string in the format
+"+-left-offset:+-pixel,+-bottom-offset:+-pixel"
+Where the :pixel is optional, and returns
+A list in the format (x_offset, y_offset)
+We require context to get info out of screen locs that contain relative info, so NORTH, SOUTH, etc
+ seconds_to_clock Take a value in seconds and makes it display like a clock. Hours are stripped. (mm:ss)
+ seconds_to_full_clock Take a value in seconds and makes it display like a clock (h:mm:ss)
+ seedify Convert a grown object into seeds.
+ setup_mod_themes Global proc that sets up all MOD themes as singletons in a list and returns it.
+ shake_camera Shake the camera of the person viewing the mob SO REAL!
+ show_blurb Shows a ticker reading out the given text on a client's screen.
+ spread_germs_by_incision Spread germs directly from a tool.
+ spread_germs_to_organ Spread some nasty germs to an organ.
+ start_unequip_mob A utility function for /datum/strippable_item
s to start unequipping an item from a mob.
+ start_watch Returns "watch handle" (really just a timestamp :V)
+ stop_watch Returns number of seconds elapsed.
+@param wh number The "Watch Handle" from start_watch(). (timestamp)
+ strip_html_tags Strips HTML tags (and only tags) from the input.
+The result may still include HTML entities, like ' for '
+ tgui_Topic Middleware for /client/Topic.
+ tgui_alert Creates a TGUI alert window and returns the user's response.
+ tgui_input_list Creates a TGUI input list window and returns the user's response.
+ tgui_input_number Creates a TGUI window with a number input. Returns the user's response as num | null.
+ tgui_input_text Creates a TGUI window with a text input. Returns the user's response.
+ to_chat Sends the message to the recipient (target).
+ to_chat_immediate Circumvents the message queue and sends the message to the recipient (target) as soon as possible.
+trailing_newline, confidential, and handle_whitespace currently have no effect, please fix this in the future or remove the arguments to lower cache!
+ trim_length Returns a string that does not exceed max_length characters in size
+ type_list_to_counted_assoc_list This proc takes a list of types, and returns them in the format below.
+[type] = amount of type in list.
+Useful for recipes.
+ view_to_pixels Takes a string or num view, and converts it to pixel width/height in a list(pixel_width, pixel_height)
+ wiki_link Creates a hyperlink for a specified wiki article.
+ Var Details Failsafe
+
+
+
+
+
+ Failsafe
+Pretty much pokes the MC to make sure it's still alive.
+ StonedMC
+Designed to properly split up a given tick among subsystems
+Note: if you read parts of this code and think "why is it doing it that way"
+Odds are, there is a reason
+ The subsystem used to play ambience to users every now and then, makes them real excited.
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ Cleanup Subsystem
+For now, all it does is periodically clean the supplied global lists of any null values they may contain.
+Why is this important?
+Sometimes, these lists can gain nulls due to errors.
+For example, when a dead player trasitions from the dead_mob_list
to the alive_mob_list
, a null value may get stuck in the dead mob list.
+This can cause issues when other code tries to do things with the values in the list, but are instead met with null values.
+These problems are incredibly hard to track down and fix, so this subsystem is a solution to that.
+ Persistent Data Subsystem
+Provides a centralised handler for persistent data reading and writing.
+The subsystem does not do any actual spawning itself, as this focuses on objects and mobs
+Should anything that is turf persistence related added in, that can be chucked into this SS
+Its quite a simple subsystem. For now, anyways.
+ tgui subsystem
+Contains all tgui state and subsystem code.
+Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ Timer Subsystem
+Handles creation, callbacks, and destruction of timed events.
+It is important to understand the buckets used in the timer subsystem are just a series of doubly-linked
+lists. The object at a given index in bucket_list is a /datum/timedevent, the head of a list, which has prev
+and next references for the respective elements in that bucket's list.
+ SSverb_manager, a subsystem that runs every tick and runs through its entire queue without yielding like SSinput.
+this exists because of how the byond tick works and where user inputted verbs are put within it.
+see TICK_ORDER.md for more info on how the byond tick is structured.
+The way the MC allots its time is via TICK_LIMIT_RUNNING, it simply subtracts the cost of SendMaps (MAPTICK_LAST_INTERNAL_TICK_USAGE)
+plus TICK_BYOND_RESERVE from the tick and uses up to that amount of time (minus the percentage of the tick used by the time it executes subsystems)
+on subsystems running cool things like atmospherics or Life or SSInput or whatever.
+Without this subsystem, verbs are likely to cause overtime if the MC uses all of the time it has alloted for itself in the tick, and SendMaps
+uses as much as its expected to, and an expensive verb ends up executing that tick. This is because the MC is completely blind to the cost of
+verbs, it can't account for it at all. The only chance for verbs to not cause overtime in a tick where the MC used as much of the tick
+as it alloted itself and where SendMaps costed as much as it was expected to is if the verb(s) take less than TICK_BYOND_RESERVE percent of
+the tick, which isnt much. Not to mention if SendMaps takes more than 30% of the tick and the MC forces itself to take at least 70% of the
+normal tick duration which causes ticks to naturally overrun even in the absence of verbs.
+With this subsystem, the MC can account for the cost of verbs and thus stop major overruns of ticks. This means that the most important subsystems
+like SSinput can start at the same time they were supposed to, leading to a smoother experience for the player since ticks arent riddled with
+minor hangs over and over again.
Proc Details HTTPGet(url)
+
+
+
+
+
+ HTTP Get (Powered by RUSTG)
+This proc should be used as a replacement for [world.Export()] due to an underlying issue with it.
+See: https://www.byond.com/forum/post/2772166
+The one thing you will need to be aware of is that this no longer wraps the response inside a "file", so anything that relies on a file2text() unwrap will need tweaking.
+RUST HTTP also has better support for HTTPS as well as weird quirks with modern webservers.
+Returns an assoc list that follows the standard [world.Export()] format (https://secure.byond.com/docs/ref/index.html#/world/proc/Export), with the above exception
+Arguments:
+
+ TODO: Macro this to reduce proc overhead
MakeAPICall(method, path, body)
+
+
+
+
+
+ Internal API Caller
+Makes calls to the internal Paradise API and returns a /datum/http_response .
+Arguments:
+
+method - The relevant HTTP method to use
+path - The path of the API call. DO NOT USE A LEADING SLASH
+body - The request body, if applicable
+ RoundDiagBar(value)
+
+
+
+
+
+ Diagnostic HUDs!
+ queue a callback for the given verb/verblike proc and any given arguments to the specified verb subsystem, so that they process in the next tick.
+intended to only work with verbs or verblike procs called directly from client input, use as part of TRY_QUEUE_VERB() and co.
+returns TRUE if the queuing was successful, FALSE otherwise.
add_attack_logs(/atom /user, target, what_done, custom_level)
+
+
+
+
+
+ Creates attack (old and new) logs for the user and defense logs for the target.
+Will message admins depending on the custom_level, user and target.
+custom_level will determine the log level set. Unless the target is SSD and there is a user doing it
+If custom_level is not set then the log level will be determined using the user and the target.
+
+Arguments:
+user - The thing doing it. Can be null
+target - The target of the attack
+what_done - What has happened
+custom_level - The log level override
+ add_verb(/client /target, verb_or_list_to_add)
+
+
+
+
+
+ handles adding verbs and updating the stat panel browser
+pass the verb type path to this instead of adding it directly to verbs so the statpanel can update
+Arguments:
+
+target - Who the verb is being added to, client or mob typepath
+verb - typepath to a verb, or a list of verbs, supports lists of lists
+ addtimer(/datum /callback/callback, wait, flags)
+
+
+
+
+
+ Create a new timer and insert it in the queue.
+You should not call this directly, and should instead use the addtimer macro, which includes source information.
+Arguments:
+
+callback the callback to call on timer finish
+wait deciseconds to run the timer for
+flags flags for this timer, see: code__DEFINES\subsystems.dm
+ announce_merge_conflict_marker
+
+ We REALLY do not want un-addressed merge conflicts in maps for an
+inexhaustible list of reasons. This should help ensure that this will not be
+missed in case linters fail to catch it for any reason what-so-ever.
atmos_scan(/mob /user, /atom /target, silent, print, milla_turf_details)
+
+
+
+
+
+ Outputs a message to the user describing the target's gasmixes.
+Used in chat-based gas scans.
avoid_assoc_duplicate_keys(input_key, /list/used_key_list)
+
+
+
+
+
+ takes an input_key, as text, and the list of keys already used, outputting a replacement key in the format of "[input_key] ([number_of_duplicates])" if it finds a duplicate
+use this for lists of things that might have the same name, like mobs or objects, that you plan on giving to a player as input
bang(/turf /T, /atom /A, range, flash, bang)
+
+
+
+
+
+ Creates a flashing effect that blinds and deafens mobs within range
+Arguments:
+
+T - The turf to flash
+A - The flashing atom
+range - The range in tiles of the flash
+flash - Whether to flash (blind)
+bang - Whether to bang (deafen)
+
+ Message Broadcast Proc
+This big fat disaster is responsible for sending the message out to all headsets and radios on the station
+It is absolutely disgusting, but used to take about 20 arguments before I slimmed it down to just one
+Arguments:
+
+tcm - The tcomms message datum
+ check_active_security_force()
+
+
+
+
+
+
+checks the security force on station and returns a list of numbers, of the form:
+total, active, dead, antag
+where active is defined as conscious (STAT = 0) and not an antag
+ check_rights_all(rights_required, show_msg, /mob /user)
+
+
+
+
+
+ Requires the holder to have all the rights specified
+rights_required = R_ADMIN|R_EVENT means they must have both flags, or it will return false
client2rankcolour
+
+ Proc to generate a "rank colour" from a client
+This takes the client and looks at various factors in order, such as patreon status, staff rank, and more
+Arguments:
+
+C - The client were looking up
+ compare_list(/list/l, /list/d)
+
+
+
+
+
+ compare two lists, returns TRUE if they are the same
costly_icon2asset(thing, target, sourceonly)
+
+
+
+
+
+ Costlier version of icon2asset() that uses getFlatIcon() to account for overlays, underlays, etc. Use with extreme moderation, ESPECIALLY on mobs.
create_shrapnel
+
+ Creates an explosion of shrapnel at a turf.
+
+/turf/epicenter - where the explosion occurs
+shrapnel_number - the amount of shrapnel to create
+/obj/item/projectile/shrapnel_type - the type of shrapnel bullets to shoot
+chance_to_hit_same_turf - the probability to hit someone on the same turf, doubled for someone lying down
+ create_strippable_list(types)
+
+
+
+
+
+ Creates an assoc list of keys to /datum/strippable_item
cut_relative_direction(fragment)
+
+
+
+
+
+ Takes a screen_loc string and cut out any directions like NORTH or SOUTH
delete_all_SS_and_recreate_master()
+
+
+
+
+
+ Delete all existing SS to basically start over
deltimer(id)
+
+
+
+
+
+ Delete a timer
+Arguments:
+
+id a timerid or a /datum/timedevent
+ do_teleport(atom_to_teleport, destination, variance_range, force_teleport, /datum /effect_system /effect_in, /datum /effect_system /effect_out, sound_in, sound_out, bypass_area_flag, safe_turf_pick, do_effect)
+
+
+
+
+
+ Will teleport the given atom to the given destination using the other parameters
+Arguments:
+
+atom_to_teleport - Atom to teleport
+destination - Where to teleport the atom to
+variance_range - With what precision to do the teleport. 0 means on target. Higher means that many turfs around it
+force_teleport - Whether to use forceMove instead of Move to move the atom to the destination
+effect_in - The effect started at the starting turf. If set to NONE then no effect is used
+effect_out - The effect started at the destination turf. If set to NONE then no effect is used
+sound_in - The sound played at the starting turf
+sound_out - The sound played at the destination turf
+bypass_area_flag - Whether is_teleport_allowed is skipped or not
+safe_turf_pick - Whether the chosen random turf from the variance is prefered to be a safe turf or not
+do_effect - Whether to play the effect or not
+ emissive_appearance(icon, icon_state, layer, alpha, appearance_flags)
+
+
+
+
+
+ Produces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EMISSIVE_COLOR . Order of application matters: Default generated blockers are overlays, and will block its own emissive underlays. If you want an object to be both a blocker, and have their own emissive, it has to be an overlay instead. Grayscale lightmasks are visible in the BYOND right-click and Examine pane, unless they're covered up by another overlay.
emissive_blocker(icon, icon_state, layer, alpha, appearance_flags)
+
+
+
+
+
+ Produces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EM_BLOCK_COLOR .
emoji_parse(text)
+
+
+
+
+
+ Turns :ai: into an emoji in text.
empulse(/turf /epicenter, heavy_range, light_range, log, cause)
+
+
+
+
+
+ Will cause an EMP on the given epicenter.
+This proc can sleep depending on the affected objects. So assume it sleeps!
+epicenter - The center of the EMP. Can be an atom, as long as the given atom is on a turf (in)directly
+heavy_range - The max distance from the epicenter where objects will be get heavy EMPed
+light_range - The max distance from the epicenter where objects will get light EMPed
+log - Whether or not this action should be logged or not. Will use the cause if provided
+cause - The cause of the EMP. Used for the logging
finish_unequip_mob
+
+ A utility function for /datum/strippable_item
s to finish unequipping an item from a mob.
fire_flash_log
+
+ Flashfire is a proc used to log fire causing chemical reactions.
+Call this whenever you have a chemical reaction that makes fire flashes.
+Arguments:
+
+holder: the beaker that the reagent is in
+name: name of the reagent / reaction
+
+ Formats num with an SI prefix.
+Returns a string formatted with a multiple of num and an SI prefix corresponding to an exponent of 10.
+Only considers exponents that are multiples of 3 (deca, deci, hecto, and centi are not included).
+A unit is not included in the string, the prefix is placed after the number with no spacing added anywhere.
+Listing of prefixes: https://en.wikipedia.org/wiki/Metric_prefix#List_of_SI_prefixes
generate_and_hash_rsc_file(file, dmi_file_path)
+
+
+
+
+
+ Generates a filename for a given asset.
+Like generate_asset_name(), except returns the rsc reference and the rsc file hash as well as the asset name (sans extension)
+Used so that certain asset files dont have to be hashed twice
get_admin_objective_targets(/mob /caller, /list/blacklist, /mob /default_target)
+
+
+
+
+
+ Allows admins to safely pick from SSticker.minds for objectives
+
+caller, mob to ask for results
+blacklist, optional list of targets that are not available
+default_target, the target to show in the list as default
+ get_all_linked_levels_zpos()
+
+
+
+
+
+ Proc to get a list of all the linked-together Z-Levels
+Returns a list of zlevel numbers which can be accessed from travelling space naturally
get_allowed_instrument_ids()
+
+
+
+
+
+ Get all non admin_only instruments as a list of text ids.
get_antag_type_strings_list
+
+ A proc that return an array of capitalized strings containing name of the antag types they are
+Arguments:
+
+M - the mob you're checking
+ get_antag_type_truncated_plaintext_string
+
+ A proc that return a string containing all the singled out antags . Empty string if not antag
+Usually, you'd return a FALSE, but since this is consumed by javascript you're in
+for a world of hurt if you pass a byond FALSE which get converted into a fucking string anyway and pass for TRUE in check. Fuck.
+It always append "(May be other antag)"
+Arguments:
+
+M - the mob you're checking
+ get_atoms_of_type(/atom /loc, type, check_shift, shift_x, shift_y)
+
+
+
+
+
+ Returns a list of atoms in a location of a given type. Can be refined to look for pixel-shift.
+Arguments:
+
+loc - The atom to look in.
+type - The type to look for.
+check_shift - If true, will exclude atoms whose pixel_x/pixel_y do not match shift_x/shift_y.
+shift_x - If check_shift is true, atoms whose pixel_x is different to this will be excluded.
+shift_y - If check_shift is true, atoms whose pixel_y is different to this will be excluded.
+ get_bbox_of_atoms(/list/atoms)
+
+
+
+
+
+ Get a bounding box of a list of atoms.
+Arguments:
+
+atoms - List of atoms. Can accept output of view() and range() procs.
+
+Returns: list(x1, y1, x2, y2)
get_channel_name(channel)
+
+
+
+
+
+ Returns the clean name of an audio channel.
+Arguments:
+
+channel - The channel number.
+ get_chemscan_results
+
+ HEALTH ANALYZER
get_departments_from_job(job_name)
+
+
+
+
+
+ matches a string job name to their department(s) and returns it as a list
get_dummy_savefile(from_failure)
+
+
+
+
+
+ Gets a dummy savefile for usage in icon generation.
+Savefiles generated from this proc will be empty.
get_edge_target_turf(/atom /target_atom, direction)
+
+
+
+
+
+ Returns the turf located at the map edge in the specified direction relative to target_atom used for mass driver
get_icon_dmi_path(/icon/icon)
+
+
+
+
+
+ Given an icon object, dmi file path, or atom/image/mutable_appearance, attempts to find and return an associated dmi file path.
+A weird quirk about dm is that /icon objects represent both compile-time or dynamic icons in the rsc,
+But stringifying rsc references returns a dmi file path
+ONLY if that icon represents a completely unchanged dmi file from when the game was compiled.
+So if the given object is associated with an icon that was in the rsc when the game was compiled, this returns a path. otherwise it returns ""
get_line(/atom /starting_atom, /atom /ending_atom)
+
+
+
+
+
+ Get a list of turfs in a line from starting_atom
to ending_atom
.
+Uses the ultra-fast Bresenham Line-Drawing Algorithm .
get_living_players(exclude_nonhuman, exclude_offstation)
+
+
+
+
+
+ This proc returns every player with a client who is not a ghost or a new_player
get_path_to(caller, end, max_distance, mintargetdist, id, simulated_only, /turf /exclude, skip_first, diagonal_safety)
+
+
+
+
+
+ This file contains the stuff you need for using JPS (Jump Point Search) pathing, an alternative to A* that skips
+over large numbers of uninteresting tiles resulting in much quicker pathfinding solutions.
+This is the proc you use whenever you want to have pathfinding more complex than "try stepping towards the thing".
+If no path was found, returns an empty list, which is important for bots like medibots who expect an empty list rather than nothing.
+Arguments:
+
+caller: The movable atom that's trying to find the path
+end: What we're trying to path to. It doesn't matter if this is a turf or some other atom, we're gonna just path to the turf it's on anyway
+max_distance: The maximum number of steps we can take in a given path to search (default: 30, 0 = infinite)
+mintargetdistance: Minimum distance to the target before path returns, could be used to get near a target, but not right to it - for an AI mob with a gun, for example.
+id: An ID card representing what access we have and what doors we can open. Its location relative to the pathing atom is irrelevant
+simulated_only: Whether we consider turfs without atmos simulation (AKA do we want to ignore space)
+exclude: If we want to avoid a specific turf, like if we're a mulebot who already got blocked by some turf
+skip_first: Whether or not to delete the first item in the path. This would be done because the first item is the starting tile, which can break movement for some creatures.
+diagonal_safety: ensures diagonal moves won't use invalid midstep turfs by splitting them into two orthogonal moves if necessary
+ get_rad_contents
+
+ A special GetAllContents that doesn't search past things with rad insulation
+Components which return COMPONENT_BLOCK_RADIATION prevent further searching into that object's contents. The object itself will get returned still.
+The ignore list makes those objects never return at all
get_ranged_target_turf(/atom /target_atom, direction, range)
+
+
+
+
+
+
+returns turf relative to A in given direction at set range
+// result is bounded to map size
+// note range is non-pythagorean
+// used for disposal system
+ get_ranged_target_turf_direct(/atom /starting_atom, /atom /target, range, offset)
+
+
+
+
+
+ Get ranged target turf, but with direct targets as opposed to directions
+Starts at atom starting_atom and gets the exact angle between starting_atom and target
+Moves from starting_atom with that angle, Range amount of times, until it stops, bound to map size
+Arguments:
+
+starting_atom - Initial Firer / Position
+target - Target to aim towards
+range - Distance of returned target turf from starting_atom
+offset - Angle offset, 180 input would make the returned target turf be in the opposite direction
+ get_safe_species()
+
+
+
+
+
+ Returns a list of names of non-blacklisted or hazardous species.
get_unrestricted_random_reagent_id()
+
+
+
+
+
+ Returns a random reagent ID, with real non blacklisted balance boosting action!
get_valid_screen_location(target_loc, target_offset, view)
+
+
+
+
+
+ Returns a valid location to place a screen object without overflowing the viewport
+
+target: The target location as a purely number based screen_loc string "+-left-offset:+-pixel,+-bottom-offset:+-pixel"
+target_offset: The amount we want to offset the target location by. We explictly don't care about direction here, we will try all 4
+view: The view variable of the client we're doing this for. We use this to get the size of the screen
+
+Returns a screen loc representing the valid location
get_valid_vent_spawns(unwelded_only, exclude_mobs_nearby, min_network_size)
+
+
+
+
+
+ Returns a list of vents that can be used as a potential spawn if they meet the criteria set by the arguments
+Will not include parent-less vents to the returned list.
+Arguments:
+
+unwelded_only - Whether the list should only include vents that are unwelded
+exclude_mobs_nearby - Whether to exclude vents that are near living mobs
+min_network_size - The minimum length (non-inclusive) of the vent's parent network. A smaller number means vents in small networks (Security, Virology) will appear in the list
+ goonchem_vortex(/turf /T, pull, volume, ignore_volume)
+
+
+
+
+
+ Throws or pulls objects to/from a chem reaction
+Scales the amount of objects thrown with the volume, unless ignore_volume is TRUE
+Arguments:
+
+T - The turf to use as the throw from/to point
+pull - Do we want to pull objects towards T (TRUE) or push them away from it (FALSE)
+volume - The volume of reagents. Used to scale the effect is ignore_volume = FALSE
+ignore_volume - Do we want to ignore the volume of reagents and just throw regardless
+ icon2asset(/atom /thing, /client /target, icon_state, dir, frame, moving, sourceonly, extra_classes)
+
+
+
+
+
+ The dmi file path we attempt to return if the given object argument is associated with a stringifiable icon
+If successful, this looks like "icons/path/to/dmi_file.dmi"
+generate an asset for the given icon or the icon of the given appearance for [thing], and send it to any clients in target.
+Arguments:
+
+thing - either a /icon object, or an object that has an appearance (atom, image, mutable_appearance).
+target - either a reference to or a list of references to /client's or mobs with clients
+icon_state - string to force a particular icon_state for the icon to be used
+dir - dir number to force a particular direction for the icon to be used
+frame - what frame of the icon_state's animation for the icon being used
+moving - whether or not to use a moving state for the given icon
+sourceonly - if TRUE, only generate the asset and send back the asset url, instead of tags that display the icon to players
+extra_classes - string of extra css classes to use when returning the icon string
+ icon2base64(/icon/icon)
+
+
+
+
+
+ Converts an icon to base64. Operates by putting the icon in the iconCache savefile,
+exporting it as text, and then parsing the base64 from that.
+(This relies on byond automatically storing icons in savefiles as base64)
icon_exists(file, state, no_sprite)
+
+
+
+
+
+ Checks if the given iconstate exists in the given file, caching the result. Setting no_sprite to TRUE will print a stack trace ONCE.
is_bad_connection(old_freq, new_freq)
+
+
+
+
+
+ Connection checker
+Checks the connection frequency against the intended frequency for the message
+NOTE: I barely know what on earth this does, but it works and it scares me
+Arguments:
+
+old_freq - Frequency of the connection
+new_freq - Frequency of the message
+ is_color_dark(color, threshold)
+
+
+
+
+
+ Given a color in the format of "#RRGGBB", will return if the color is dark.
is_special_character
+
+ ADMIN HELPER PROCS
+A proc that return whether the mob is a "Special Character" aka Antagonist
+Arguments:
+
+M - the mob you're checking
+ is_type_in_UID_list
+
+ If the list L
contains a datum UID who's type matches D
's type, returns the UID of that datum in the list. Otherwise returns null.
is_valid_dmi_file(icon_path)
+
+
+
+
+
+ given a text string, returns whether it is a valid dmi icons folder path
locateUID(uid)
+
+
+
+
+
+ Locates a datum based off of the UID
+Replacement for locate() which takes a UID instead of a ref
+Returns the datum, if found
makeDatumRefLists()
+
+
+
+
+
+ Initial Building
make_associative(/list/flat_list)
+
+
+
+
+
+ A proc for turning a list into an associative list.
+A simple proc for turning all things in a list into an associative list, instead
+Each item in the list will have an associative value of TRUE
+Arguments:
+
+flat_list - the list that it passes to make associative
+ md5asfile(file)
+
+
+
+
+
+ Save file as an external file then md5 it.
+Used because md5ing files stored in the rsc sometimes gives incorrect md5 results.
md5filepath(path)
+
+
+
+
+
+ Returns the md5 of a file at a given path.
message_adminTicket(msg, important)
+
+
+
+
+
+ Sends a message to the staff able to see admin tickets
+Arguments:
+msg - The message being send
+important - If the message is important. If TRUE it will ignore the CHAT_NO_TICKETLOGS preferences,
+send a sound and flash the window. Defaults to FALSE
message_mentorTicket(msg, important)
+
+
+
+
+
+ Sends a message to the staff able to see mentor tickets
+Arguments:
+msg - The message being send
+important - If the message is important. If TRUE it will ignore the CHAT_NO_TICKETLOGS preferences,
+send a sound and flash the window. Defaults to FALSE
message_to_html(message)
+
+
+
+
+
+ Message-related procs
+Message format (/list):
+
+type - Message type, must be one of defines in code/__DEFINES/chat.dm
+text - Plain message text
+html - HTML message text
+Optional metadata, can be any key/value pair.
+
+Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
offset_to_screen_loc(x_offset, y_offset, view)
+
+
+
+
+
+ Takes a list in the form (x_offset, y_offset)
+And converts it to a screen loc string
+Accepts an optional view string/size to force the screen_loc around, so it can't go out of scope
parse_caught_click_modifiers(/list/modifiers, /turf /origin, /client /viewing_client)
+
+
+
+
+
+ Returns a turf based on text inputs, original turf and viewing client
phase_filter(size)
+
+
+
+
+
+ This filter proc makes a visual effect where the object is split into fragments, with vertical lines cut out of them. It will appear as 2 seperate things are made of the one object that was cut out
pick_multiple_unique(/list/listfrom, amount)
+
+
+
+
+
+ Picks multiple unique elements from the suplied list.
+If the given list has a length less than the amount given then it will return a list with an equal amount
+Arguments:
+
+listfrom - The list where to pick from
+amount - The amount of elements it tries to pick.
+ pick_unique_lawset()
+
+
+
+
+
+ returns a random non starting / kill crew lawset if the station has a unique ai lawset
pickweight(/list/L)
+
+
+
+
+
+ Picks an element based on its weight.
+L - The input list
+example: list("a" = 1, "b" = 2) will pick "b" 2/3s of the time
+ remove the old powernet and replace it with a new one throughout the network.
+ Similar to show_radial_menu, but choices is a list of atoms, for which icons will be automatically generated.
+Supports multiple items of the same name, 2 soaps will become soap (1) and soap (2) to the user.
+Otherwise, has the exact same arguments as show_radial_menu
random_body_accessory(species, is_optional)
+
+
+
+
+
+ Returns a random body accessory for a given species name. Can be null based on is_optional argument.
+Arguments:
+
+species - The name of the species to filter valid body accessories.
+is_optional - Whether no body accessory (null) is an option.
+ recover_all_SS_and_recreate_master()
+
+
+
+
+
+ Recreate all SSs which will still cause data survive due to Recover(), the new Master will then find and take them from global.vars
remove_verb(/client /target, verb_or_list_to_remove)
+
+
+
+
+
+ handles removing verb and sending it to browser to update, use this for removing verbs
+pass the verb type path to this instead of removing it from verbs so the statpanel can update
+Arguments:
+
+target - Who the verb is being removed from, client or mob typepath
+verb - typepath to a verb, or a list of verbs, supports lists of lists
+ round_health(health)
+
+
+
+
+
+ rounds value to limited symbols after the period for organ damage and other values
rustg_get_version()
+
+
+
+
+
+ Gets the version of rust_g
rustg_redis_disconnect_rq()
+
+
+
+
+
+ Disconnects from a previously connected redis server
rustg_unix_timestamp()
+
+
+
+
+
+ Returns the timestamp as a string
safe_get_ckey
+
+ Safe ckey getter
+Should be used whenever broadcasting public information about a mob,
+as this proc will make a best effort to hide the users ckey if they request it.
+It will first check the mob for a client, then use the mobs last ckey as a directory lookup.
+If a client cant be found to check preferences on, it will just show as DC'd.
+This proc should only be used for public facing stuff, not administration related things.
+Arguments:
+
+M - Mob to get a safe ckey of
+ sanitize_for_ic(t)
+
+
+
+
+
+ sanitize() with a pre-set list of characters to remove from IC speech.
screen_loc_to_offset(screen_loc, view)
+
+
+
+
+
+ Takes a screen loc string in the format
+"+-left-offset:+-pixel,+-bottom-offset:+-pixel"
+Where the :pixel is optional, and returns
+A list in the format (x_offset, y_offset)
+We require context to get info out of screen locs that contain relative info, so NORTH, SOUTH, etc
seconds_to_clock(seconds)
+
+
+
+
+
+ Take a value in seconds and makes it display like a clock. Hours are stripped. (mm:ss)
seconds_to_full_clock(seconds)
+
+
+
+
+
+ Take a value in seconds and makes it display like a clock (h:mm:ss)
seedify
+
+ Convert a grown object into seeds.
setup_mod_themes()
+
+
+
+
+
+ Global proc that sets up all MOD themes as singletons in a list and returns it.
shake_camera(/mob /M, duration, strength)
+
+
+
+
+
+ Shake the camera of the person viewing the mob SO REAL!
show_blurb(/list/mob/targets, duration, message, scroll_down, screen_position, text_alignment, text_color, blurb_key, ignore_key, speed)
+
+
+
+
+
+ Shows a ticker reading out the given text on a client's screen.
+targets = mob or list of mobs to show it to.
+duration = how long it lingers after it finishes ticking.
+message = the message to display. Due to using maptext it isn't very flexible format-wise. 11px font, up to 480 pixels per line. Use \n for line breaks. Single-character HTML tags (, , etc.) are handled correctly but others display strangely. Note that maptext can display text macros in strange ways, ex. \improper showing as "ÿ". Lines containing only spaces, including ones only containing "\improper ", don't display.
+scroll_down = by default each line pushes the previous line upwards - this tells it to start high and scroll down. Ticks on \n - does not autodetect line breaks in long strings.
+screen_position = screen loc for the bottom-left corner of the blurb.
+text_alignment = "right", "left", or "center"
+text_color = colour of the text.
+blurb_key = a key used for specific blurb types so they are not shown repeatedly.
+ignore_key = used to skip key checks.
+text_limit = limit in characters of the message.
+ Spread germs directly from a tool.
+
+E - An external organ being operated on.
+tool - The tool performing the operation.
+
+ Spread some nasty germs to an organ.
+
+target_organ - The organ to try spreading germs to.
+user - The user who's manipulating the organ.
+tool - The tool the user is using to mess with the organ.
+ start_unequip_mob
+
+ A utility function for /datum/strippable_item
s to start unequipping an item from a mob.
start_watch()
+
+
+
+
+
+ Returns "watch handle" (really just a timestamp :V)
stop_watch(wh)
+
+
+
+
+
+ Returns number of seconds elapsed.
+@param wh number The "Watch Handle" from start_watch(). (timestamp)
+ Strips HTML tags (and only tags) from the input.
+The result may still include HTML entities, like ' for '
tgui_Topic(href_list)
+
+
+
+
+
+ Middleware for /client/Topic.
+return bool If TRUE, prevents propagation of the topic call.
tgui_alert(/mob /user, message, title, /list/buttons, timeout, autofocus, ui_state)
+
+
+
+
+
+ Creates a TGUI alert window and returns the user's response.
+This proc should be used to create alerts that the caller will wait for a response from.
+Arguments:
+
+user - The user to show the alert to.
+message - The content of the alert, shown in the body of the TGUI window.
+title - The of the alert modal, shown on the top of the TGUI window.
+buttons - The options that can be chosen by the user, each string is assigned a button on the UI.
+timeout - The timeout of the alert, after which the modal will close and qdel itself. Set to zero for no timeout.
+autofocus - The bool that controls if this alert should grab window focus.
+
+ Creates a TGUI input list window and returns the user's response.
+This proc should be used to create alerts that the caller will wait for a response from.
+Arguments:
+
+user - The user to show the input box to.
+message - The content of the input box, shown in the body of the TGUI window.
+title - The title of the input box, shown on the top of the TGUI window.
+items - The options that can be chosen by the user, each string is assigned a button on the UI.
+default - If an option is already preselected on the UI. Current values, etc.
+timeout - The timeout of the input box, after which the menu will close and qdel itself. Set to zero for no timeout.
+
+ Creates a TGUI window with a number input. Returns the user's response as num | null.
+This proc should be used to create windows for number entry that the caller will wait for a response from.
+If tgui fancy chat is turned off: Will return a normal input. If a max or min value is specified, will
+validate the input inside the UI and ui_act.
+Arguments:
+
+user - The user to show the number input to.
+message - The content of the number input, shown in the body of the TGUI window.
+title - The title of the number input modal, shown on the top of the TGUI window.
+default - The default (or current) value, shown as a placeholder. Users can press refresh with this.
+max_value - Specifies a maximum value. If none is set, any number can be entered. Pressing "max" defaults to 1000.
+min_value - Specifies a minimum value. Often 0.
+timeout - The timeout of the number input, after which the modal will close and qdel itself. Set to zero for no timeout.
+round_value - whether the inputted number is rounded down into an integer.
+ tgui_input_text(/mob /user, message, title, default, max_length, multiline, encode, timeout, ui_state)
+
+
+
+
+
+ Creates a TGUI window with a text input. Returns the user's response.
+This proc should be used to create windows for text entry that the caller will wait for a response from.
+If tgui fancy chat is turned off: Will return a normal input. If max_length is specified, will return
+stripped_multiline_input.
+Arguments:
+
+user - The user to show the text input to.
+message - The content of the text input, shown in the body of the TGUI window.
+title - The title of the text input modal, shown on the top of the TGUI window.
+default - The default (or current) value, shown as a placeholder.
+max_length - Specifies a max length for input. MAX_MESSAGE_LEN is default (1024)
+multiline - Bool that determines if the input box is much larger. Good for large messages, laws, etc.
+encode - Toggling this determines if input is filtered via html_encode. Setting this to FALSE gives raw input.
+timeout - The timeout of the textbox, after which the modal will close and qdel itself. Set to zero for no timeout.
+ to_chat(target, html, type, text, avoid_highlighting, handle_whitespace, trailing_newline, confidential, ticket_id)
+
+
+
+
+
+ Sends the message to the recipient (target).
+Recommended way to write to_chat calls:
+to_chat(client, "You have found <strong>[object]</strong>", MESSAGE_TYPE_INFO,
+
+Always remember to close spans!
+TARGET: Refers to the target of the to_chat message. Valid targets include clients, mobs, and the static world controller
+HTML: The Message to be sent to the TARGET. Converted to a string if not already one in this function
+TYPE: The chat tab that this message will be sent to, a list of all valid types can be found in chat.dm
+TEXT: Unused
+AVOID_HIGHLIGHTING: Unused
+trailing_newline, confidential, and handle_whitespace currently have no effect, please fix this in the future or remove the arguments to lower cache!
+ Circumvents the message queue and sends the message to the recipient (target) as soon as possible.
+trailing_newline, confidential, and handle_whitespace currently have no effect, please fix this in the future or remove the arguments to lower cache!
trim_length(text, max_length)
+
+
+
+
+
+ Returns a string that does not exceed max_length characters in size
type_list_to_counted_assoc_list(/list/origin_list)
+
+
+
+
+
+ This proc takes a list of types, and returns them in the format below.
+[type] = amount of type in list.
+Useful for recipes.
view_to_pixels(view)
+
+
+
+
+
+ Takes a string or num view, and converts it to pixel width/height in a list(pixel_width, pixel_height)
wiki_link(article_name, link_text)
+
+
+
+
+
+ Creates a hyperlink for a specified wiki article.
+
+
+
diff --git a/index.html b/index.html
new file mode 100644
index 0000000000000..8c2b807cb9c0b
--- /dev/null
+++ b/index.html
@@ -0,0 +1,3640 @@
+
+
+
+
+
+
+ Index - Space Station 13
+
+
+
+
+
+
+
+Space Station 13
+
+
+
+Modules
+(701 modules,
+ 1058/6651 macros, 15.9%)
+
+ _maps/ __MAP_DEFINES
+ code
+ __DEFINES
+ __HELPERS
+ __byond_version_compat
+ _compile_options
+ _globalvars/ bitfields
+ _onclick
+ controllers
+ datums
+ game
+ area
+ data_huds
+ dna
+ gamemodes
+ machinery
+ mecha
+ objects
+ sound - playsound
+ turfs
+
+ modules
+ admin
+ antagonists
+ _common
+ changeling
+ traitor/ contractor
+ vampire/vampire_powers/ vampire_powers
+
+ assembly/ infrared
+ Asset cache system
+ atmospherics
+ awaymissions
+ Buildmode
+ client
+ clothing
+ crafting
+ customitems/ item_defines
+ Paradise Economy
+ emoji/ emoji_parse
+ events
+ food_and_drinks
+ drinks
+ food
+ food_base
+ kitchen_machinery
+ recipes
+
+ games/ unum
+ hallucinations
+ hydroponics
+ instruments
+ lavaland/ lavaland_theme
+ library
+ lighting/ lighting_emissive_blocker
+ mapping
+ maptext_alerts/ text_blurbs
+ martial_arts/ krav_maga
+ mining
+ mob
+ mod
+ newscaster
+ paperwork
+ pda/ cart
+ power
+ apc/ apc
+ cell
+ engines
+ lights
+ Understanding Powernets - Much like any other massive numbers system in SS13, the power (or powernet) system is complex and confusing to work with, only being trumped in complexity by atmospherics/LINDA. This README serves as a powernets 101 guide and breaks down how the system works.
+
+ procedural_mapping/mapGenerators/ syndicate_mapgen
+ projectiles
+ reagents
+ chemistry
+ reagent_containers
+
+ recycling/ belt-placer
+ redis
+ research
+ response_team/ ert_outfits
+ ruins/ lavalandruin_code
+ security_levels/ security_level_datums
+ server_commands/ servermsg
+ shuttle
+ space_management
+ station_goals/ bluespace_tap
+ supply
+ surgery
+ telesci
+ DMAPI Internals - This folder should be placed on it's own inside a codebase that wishes to use the TGS DMAPI. Warranty void if modified.
+ Core DMAPI functions - This folder contains all DMAPI code not directly involved in an API.
+ DMAPI V3 - This DMAPI implements bridge using file output which TGS monitors for.
+ DMAPI V4 - This DMAPI implements bridge requests using file output which TGS monitors for. It has a safe mode restriction.
+ DMAPI V5 - This DMAPI implements bridge requests using HTTP GET requests to TGS. It has no security restrictions.
+
+ tgui
+ external
+ modules/ ghost_hud_panel
+ plugins
+ states
+ always - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ conscious - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ contained - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ deep_inventory - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ hands - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ human_adjacent - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ not_incapacitated - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ notcontained - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ physical - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ self - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+ tgui_datum
+ tgui_input
+ tgui_panel
+ tgui_window
+
+ tgui_input/say_modal/ tgui_say_modal
+
+
+
+
+
+
+Types
+(1010 detailed/1866 documented/20827 total, 9%)
+
+ (global)
+ area
+ awaycontent - AWAY AREAS
+ lavaland - Lavaland Areas
+ surface/ outdoors
+ outpost/ catwalk - subtype of /surface so storms hit there
+ unexplored - monsters and ruins spawn here
+ danger - megafauna will also spawn here
+
+
+
+ mine - Mine areas
+ outpost - Outpost areas
+ engineering - basically engi and atmos combined. I'm keeping it as "engineering" code wise, but "Life Support" sounds cooler in-game
+
+
+ start - will be unused once kurper gets his login interface patch done
+ station/maintenance/ assembly_line - Derelict Assembly Line
+ syndicate_depot/ core
+
+ atom
+ movable
+ emissive_blocker - Internal atom that copies an appearance on to the blocker plane
+ 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.
+ screen
+ action_landing - Exists so you have a place to put your buttons when you move them around
+ alert
+ augury
+ meteor - Meteor alert.
+Appears during a meteor storm and allows for auto-following of debris.
+
+ hunger/ fat
+ machine - Machine "hunger"
+ vampire - Vampire "hunger"
+
+ status_effect/ offering_item
+ succumb - Gives the player the option to succumb while in critical condition
+ Take Item alert - Alert which appears for a user when another player is attempting to offer them an item.
+The user can click the alert to accept, or simply do nothing to not take the item.
+
+ background - A generic background object.
+It is also implicitly used to allocate a rectangle on the map, which will
+be used for auto-scaling the map.
+ button_palette
+ fullscreen
+ center - Centered fullscreen atoms
+These are used to center a widescreen image so it scales properly across screen sizes, not suitable for screen images that eminate from the edge of the screen
+ stretch - Stretch version is suitable for images that stick to screen edges, as they scale with user screen size
+For centrally located screen objects, use /atom/movable/screen/fullscreen/center
+ cursor_catcher - An effect which tracks the cursor's location on the screen
+
+
+ map_view - A screen object, which acts as a container for turfs and other things
+you want to show on the map, which you usually attach to "vis_contents".
+ movable
+ palette_scroll
+ plane_master/ emissive - Things placed on this mask the lighting plane. Doesn't render directly.
+ text/ blurb
+
+
+
+ client
+ datum
+ action
+ changeling
+ biodegrade
+ dissonant_shriek/ cyberrev - A more expensive version, used during rounds with cyber rev station trait for balance reasons.
+ environmental_adaptation
+ evolution_menu
+ spiders
+ sting
+ cryo - Enable when mob cooling is fixed so that frostoil actually makes you cold, instead of mostly just hungry.
+
+ suit
+ armor - *
+|ARMOR |
+*
+ organic_space_suit -
+|SPACE SUIT + HELMET |
+* *
+
+ weapon
+ arm_blade - *
+|ARM BLADE |
+*
+ shield -
+|SHIELD |
+*
+ tentacle -
+|COMBAT TENTACLES |
+* *
+
+
+ Base guardian host action - These are used by guardian hosts to interact with their guardians. These are not buttons that guardians themselves use.
+ Communicate action - Allows the guardian host to communicate with their guardian.
+ Recall guardian action - Allows the guardian host to recall their guardian.
+ Reset guardian action - Allows the guardian host to exchange their guardian's player for another.
+
+ innate
+ cocoon
+ cult
+ blood_magic - Blood magic handles the creation of blood spells (formerly talismans)
+ blood_spell - The next generation of talismans, handles storage/creation of blood magic
+
+ demon/ whisper - The Powers
+ elite_attack
+
+ item_action
+
+ action_group
+ admins
+ ai_laws
+ antimov - Antimov
+ asimov - Asimov
+ cctv - CCTV
+ corporate - Corporate
+ crewsimov - Crewsimov
+ deathsquad - Deathsquad
+ drone - Drone
+ ert_override - ERT
+ hippocratic - Hippocratic Oath
+ maintain - Station Efficiency
+ nanotrasen - Nanotrasen/Malf
+ nanotrasen_aggressive - Nanotrasen Aggressive
+ ninja_override - Ninja
+ paladin - P.A.L.A.D.I.N.
+ peacekeeper - Peacekeeper
+ pranksimov - Pranksimov
+ quarantine - Quarantine.
+ robocop - Robocop
+ syndicate_override - Syndicate
+ tyrant - T.Y.R.A.N.T.
+
+ announcement_configuration
+ announcer
+ antagonist
+ asset
+ group - For registering or sending multiple others at once
+ simple - If you don't need anything complicated.
+ icon_states - Generates assets based on iconstates of a single icon
+ 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)
+
+ spritesheet
+ chem_master - Pill sprites for UIs
+ orbit_job - Sprites for Orbit Role UI
+
+
+ asset_cache_item - An internal datum containing info on items in the asset cache. Mainly used to cache md5 info for speed.
+ asset_transport - Base browse_rsc asset transport
+ webroot - CDN Webroot asset transport.
+
+ async_input - THIS WILL BE REMOVED IN THE FUTURE, I STRONGLY SUGGEST AGAINST USING THIS - GDN
+ barsign
+ bitfield - Specifies a bitfield for smarter debugging
+ body_accessory
+ tail
+ short - Same as above.
+ tiny - Pretty ambiguous as to what species it belongs to, tail could've been injured or docked.
+ wingler_tail - Jay wingler fluff tail
+
+
+ borrowbook - Datum used to keep track of who has borrowed what when and for how long.
+ browser
+ buildmode_mode/ tilting
+ cachedbook - Datum used to cache the SQL DB books locally in order to achieve a performance gain.
+ callback/ verb_callback - like normal callbacks but they also record their creation time for measurement purposes
+ candidate_poll
+ changeling_power_category
+ character_save
+ chat_payload - Stores information about a chat payload
+ Chat Message Overlay - Datum for generating a message overlay on the map
+ chemical_production_mode
+ chemical_reaction
+ cookiedough - Cookies by Ume
+ pestkiller - To-Do make this more realistic
+ phlogiston_fire - This MUST be above the smoke recipe.
+ sbiten - DRINKS THAT REQUIRED IMPROVED SPRITES BELOW:: -Agouri
+ zombie
+
+ Click intercept datum - Datum which is intended to be stored by a client's click_intercept
variable.
+Used to override normal clicking behavior when clicking on an object.
+While active, a mob's ClickOn
proc will redirect to the InterceptClickOn()
proc instead.
+ Give click intercept - While a mob has this intercept, left clicking on a carbon mob will attempt to offer their currently held item to that mob.
+
+ Client Login Processor Framework - The holder class for all client data processing
+ cloning_data - A datum to store the information gained by scanning a patient OR the fixes to be made to their body.
+ code_revision - Code Revision Datum
+ Component - The component datum
+ automatic_fire
+ boomerang - If an object is given the boomerang component, it should be thrown back to the thrower after either hitting it's 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.
+ caltrop
+ codeword_hearing - Component that allows for highlighting of words or phrases in chat based on regular expressions.
+ 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 seperate listener, which makes this quite powerful
+ construct_held_body - A component for tracking and manipulating bodies held inside constructs/shades
+Will drop the body/brain when the parent dies or is deleted.
+ corpse_description - Mapping component which adds examine text to a corpse that is removed on revival (in case for some reason someone revives your space ruin mob)
+For immersive environmental story telling
+ deadchat_control - Deadchat Plays Things - The Componenting
+ debris
+ defib - A component for an item that attempts to defibrillate a mob when activated.
+ emissive_blocker
+ footstep - Footstep component. Plays footsteps at parents location when it is appropriate.
+ label - The label component.
+ goal - A verson of the label component specific to labelling goal items.
+
+ largetransparency - Makes large icons partially see through if high priority atoms are behind them.
+ orbiter
+ parry
+ Basic Proximity Monitor - Attaching this component to an atom means that the atom will be able to detect mobs or objects moving within a specified radius of it.
+ radioactive
+ scope - A component that allows players to use the item to zoom out. Mainly intended for firearms, but now works with other items too.
+ shielded - The shielded component causes the parent item to nullify a certain number of attacks against the wearer, see: shielded vests.
+ Slip Component - This is a component that can be applied to any movable atom (mob or obj).
+ squeak
+ sticky
+ Surgery Initiator - Allows an item to start (or prematurely stop) a surgical operation.
+ tilted - A component that should be attached to things that have been tilted over, and can be righted.
+This can optionally block normal attack_hand interactions
+ two_handed - Two Handed Component
+
+ configuration_section
+ construction
+ Syndicate Hub - Describes and manages the contracts and rewards for a single contractor.
+ controller
+ coords - Simple datum for storing coordinates.
+ crafting_recipe
+ rake - Category resorting incoming
+
+ Custom User Item - Holder for CUIs
+ data
+ mining_equipment - Mining Equipment Datum
+ pda/app/ nanobank
+ vending_product - Datum used to hold information about a product in a vending machine
+
+ db_query - Datum based handler for all database queries
+ department_member
+ design
+ adv_reagent_scanner - Medical Tools
+ advmop - Janitorial Designs
+ aicore - Computer Boards
+ basic_capacitor - Stock Parts
+ basic_cell - Power Designs
+ bio_chip_implanter - Regular Implants
+ bluespace_crystal - Bluespace
+ borg_suit - Mecha Designs
+ bucket - Autolathe Designs
+ cyberimp_welding - Cybernetic Implants
+ design_disk - Misc Designs
+ drill - Mining
+ exwelder - Equipment
+ freeform_module - AI Module Disks
+ milk - Biogenerator Designs
+ mod_shell - MOD
+ nuclear_gun - Weapons
+ ripley_main - Mecha Module Disks
+ smelter - SMELTABLE ALLOYS
+ telecomms_core - Telecomms Equipment
+ thermomachine - Machine Boards
+
+ Discord Embed - Holder datum for discord embeds
+ Discord Embed Field - Holder datum for discord embed fields
+ discord_manager
+ Discord Webhook Payload - Holder datum for discord webhook POST send data
+ disease
+ dmm_suite
+ effect_system
+ element - A holder for simple behaviour that can be attached to many different types
+ 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
+ shatters_when_thrown - When attached to something, will make that thing shatter into shards on throw impact or z level falling
+ squish - squish.dm
+ strippable - An element for atoms that, when dragged and dropped onto a mob, opens a strip panel.
+
+ Emote - Most of the text that's not someone talking is based off of this.
+ living
+ brain - Emotes usable by brains, but only while they're in MMIs.
+ carbon
+ alien/ humanoid - Emotes usable by humanoid xenomorphs.
+ human
+ highfive
+ monkey - Snowflake emotes only for le epic chimp
+
+
+ simple_animal/ slime
+
+
+ enchantment
+ event - NOTE: Times are measured in master controller ticks!
+ event_meta
+ Feed Channel - Describes a single feed channel. Owns a list of /datum/feed_message .
+ Feed Message - Describes a single feed story. Always owned by a /datum/feed_channel .
+ Feed Network - Singleton that contains all informations related to newscasters (channels, stories).
+ feedback_variable - Datum to hold feedback data, which gets logged at round end
+ flagged_book
+ food_processor_process
+ meat - OBJECT RECIPIES
+ mob
+
+ game_mode
+ gas_mixture
+ bound_to_turf - Mathematical proofs:
+get_breath_partial_pressure(gas_pp) --> gas_pp/total_moles()breath_pp = pp
+get_true_breath_pressure(pp) --> gas_pp = pp/breath_pp total_moles()
+ readonly - A gas mixture that should not be modified after creation.
+
+ gear
+ HTTP Request - Holder datum for ingame HTTP requests
+ HTTP Response - Holder datum for HTTP responses
+ hud
+ Bio-chip Fluff Datum - Bio-chip fluff is just lore about the bio-chip that is accessed through the implantpad, you must attach
+one of these datums to the implant_data var on a bio-chip for it to show it up.
+ input_data
+ 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.*
+ ipintel
+ ipintel_manager
+ job
+ job_ban
+ job_ban_holder - Holder for job bans
+ job_objective
+ 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
+ keybinding
+ language
+ lavaland_theme
+ library_catalog
+ local_powernet - Manages all power related mechanics for a single /area
+Machines in areas will directly register to this datum in order to receive power
+ log_viewer
+ looping_sound
+ decreasing - Looping sounds that decrease volume by a specified % each loop until it reaches a specified total % volume.
+ kitchen/ microwave - KITCHEN MACHINERY
+
+ map - Map Datum
+ mapGenerator/syndicate/ empty - walls and floor only
+ map_template
+ martial_art
+ martial_combo
+ middleClickOverride/ Callback invoker middle click override datum - Middle click override which accepts a callback as an arugment in the New()
proc.
+When the living mob that has this datum middle-clicks or alt-clicks on something, the callback will be invoked.
+ milla_safe - Create a subclass of this and implement on_run
to manipulate tile air safely.
+ mimic_form
+ mind
+ mindslaves - Master Servent Datum Sytems,Based on TG Gang system
+ mod_theme - MODsuit theme, instanced once and then used by MODsuits to grab various statistics.
+ standard - We don't want the civilian skin to apply to all modsuits, that causes issues.
+
+ money_account
+ money_account_database
+ movement_detector - A datum to handle the busywork of registering signals to handle in depth tracking of a movable
+ mutation
+ grant_spell/ morph - Vanilla Morph
+
+ nttc_configuration
+ object_window_info - Datum that holds and tracks info about a client's object window
+Really only exists because I want to be able to do logic with signals
+And need a safe place to do the registration
+ objective
+ objective_holder - An objective holder for minds, antag datums, and teams.
+ organ
+ heart/ always_beating - A subtype that is always beating. Abductor glands and demon hearts use this.
+ lungs
+
+ outfit
+ admin
+ modsuit/ wizard - Technically not a MODsuit, we'll bundle it up in here for the future when it does become one
+ tournament
+ tournament_chef - Steven Seagal FTW
+ tournament_gangster - gangster are supposed to fight each other. --rastaf0
+
+
+ job/centcom/ response_team
+ commander - COMMANDER
+ engineer - ENGINEER
+ janitorial - JANITORIAL
+ medic - MEDIC
+ paranormal - PARANORMAL
+ security - SECURITY
+
+
+ pai_save
+ pAI Software - Datum module for pAI software
+ Painter Datum - Contains variables for updating holder
, as well as procs for choosing a colour and painting an atom.
+ pipe/ window - Yes, this is a pipe painter subtype.
+
+ pathfind - The datum used to handle the JPS pathfinding, completely self-contained
+ pathfinding_mover - A generalized datum for pathfinding, and moving to a target.
+ physiology datum - Datum that stores several modifiers in a way that isn't cleared by changing species
+ picture - AI-specific
+ pipes
+ atmospheric/ bent - Why is this not atmospheric/simple/bent you ask? Because otherwise the ordering of the pipes in the UI menu gets weird
+ transit - Pipe types for transit tubes.
+
+ plant_gene
+ trait
+ fire_resistance - Lavaland
+ plant_type - Parent type
+
+
+ point - this is explicitly utilitarian datum type made specially for the space map generation and are absolutely unusable for anything else
+ point_precise - A precise point on the map in absolute pixel locations based on world.icon_size. Pixels are FROM THE EDGE OF THE MAP!
+ vector
+ processed - pixel_speed is per decisecond.
+
+
+ position - For positions with map x/y/z and pixel x/y so you don't have to return lists. Could use addition/subtraction in the future I guess.
+ preference_toggle
+ preferences
+ qdel_item
+ radiation_wave
+ rcd_act - A generic action for an RCD.
+ reagent
+ aranesp
+ beer2 - disguised as normal beer for use by emagged service borgs
+ blob
+ boiling_oil - sets you on fire, does burn damage
+ cryogenic_liquid - does low burn damage and stamina damage and cools targets down
+ envenomed_filaments - toxin, hallucination, and some bonus spore toxin
+ kinetic - does semi-random brute damage
+ lexorin_jelly - does tons of oxygen damage and a little brute
+ ripping_tendrils - does brute and a little stamina damage
+
+ consumable - Food Reagents
+ entpoly - Lavaland Flora Reagents
+ ethanol
+ bacchus_blessing - An EXTREMELY powerful drink. Smashed in seconds, dead in minutes.
+ bilk - cocktail entities
+ dragons_breath - inaccessible to players, but here for admin shennanigans
+ suicider - otherwise known as "I want to get so smashed my liver gives out and I die from alcohol poisoning".
+
+ nutriment - Pure nutriment, universally digestable and thus slightly less effective
+ plantmatter - Plant-based biomatter, digestable by herbivores and omnivores, worthless to carnivores
+ protein - Meat-based protein, digestable by carnivores and omnivores, worthless to herbivores
+
+
+ eyenewt - Alchemical Reagents
+ fuel/ unholywater - if you somehow managed to extract this from someone, dont splash it on yourself and have a smoke
+ jestosterone - Formerly known as Nitrogen tungstide hypochlorite before NT fired the chemists for trying to be funny
+ medicine
+ adminordrazine - An OP chemical for admins
+ earthsblood - Created by ambrosia gaia plants
+ syndicate_nanites - Used exclusively by Syndicate medical cyborgs
+
+ mephedrone
+ methamphetamine
+ oil
+ pestkiller - To-Do; make this more realistic.
+ plantnutrient - Hydroponics stuff
+ questionmark - Food Related, but non-nutritious
+food poisoning
+ rotatium - Rotatium. Fucks up your rotation and is hilarious
+ teslium - Teslium. Causes periodic shocks, and makes shocks against the target much more effective.
+ blob - This version has it's shocks much less frequently, while retaining the shock multiplier
+
+ vomit - Vomit
+
+ Reagents Holder - The holder is the datum that holds a list of all reagents
+currently in the object.
+ reagents_editor
+ recipe
+ microwave/ wrap - FOOD ADDITTIONS
+ oven
+ cookies - cookies by Ume
+ turkey - Magic
+
+
+ Redis callback - Callback datum for subscribed redis channel handling
+ Redis message - Holder datum for redis messages
+ regional_powernet
+ Rep Purchase - Describes something that can be purchased with Contractor Rep.
+ Rep Purchase - Blackout
+ Rep Purchase - Item - Describes an item that can be purchased with Contractor Rep.
+ Rep Purchase - Contractor Balloon
+ Rep Purchase - Contractor Baton
+ Rep Purchase - Emergency escape flare
+ Rep Purchase - Fulton Extraction Kit
+ Rep Purchase - Contractor Pinpointer
+ Rep Purchase - Contractor Zippo Lighter
+
+ Rep Purchase - Contract Reroll
+
+ research
+ autolathe/ gamma - Gamma Armoury autolathe files
+
+ response_team
+ resumable_cost_counter - A cost counter for resumable, repeating processes.
+ river_spawner - A straightforward system for making "rivers", paths made up of a specific
+turf type that are generated in a random path on a z-level.
+ robot_storage
+ energy
+ material - This datum is an alternative to the energy storages, instead being recharged in different ways
+
+ scoreboard
+ security_level - Security levels
+ Server Command - Datum to handle both sending and receiving of server commands
+ server_configuration - Represents a base configuration datum. Has everything else bundled into it
+ Song datum - These are the actual backend behind instruments.
+They attach to an atom and provide the editor + playback functionality.
+ sortInstance
+ spacevine_mutation
+ aggressive_spread - very OP, but im out of other ideas currently
+ explosive - OH SHIT IT CAN CHAINREACT RUN!!!
+
+ species
+ diona/ pod - Same name and everything; we want the same limitations on them; we just want their regeneration to kick in at all times and them to have special factions
+ skeleton - The OG skellybones, quite OP. As of this comment, only available through ash-drake loot (2023-03-07)
+ brittle - The most common (and weakest) type, legion corpses and skeleton map spawners are these
+ lich - Wizard subtype, subtype to allow balancing separately from other skellies
+
+
+ spell
+ ai_spell/ranged/ core_tilt
+ alien_spell
+ regurgitate - First we check if there is a living queen
+
+ aoe
+ conjure/construct/ lesser - Construct Spells
+ revenant
+ hallucinations - Gives everyone in a 7 tile radius 2 minutes of hallucinations
+ haunt_object - Makes objects be haunted and then throws them at conscious people to do damage, spooky!
+
+
+ charge_up - A click-based spell template which starts charging up once you click the action button/verb. Click again on something to activate the actual spell
+ bounce - A spell template that adds bounces to the charge_up spell template. The spell will bounce between targets once released.
+Don't override cast and instead override apply_bounce_effect and the other procs
+
+ hackerman_deck
+ mimic
+ morph_spell
+ projectile
+ recruit - POWERS/ABILITIES CODE
+ spacetime_dist
+ summonitem
+ touch/ alien_spell
+ turf_teleport
+ vampire
+
+ spell_cooldown
+ spell_handler - The base class for the handler systems spells use.
+Subtypes of this class can be added to spells to modify their behaviour and change their can_cast.
+Thus allowing for a more modular behaviour system. For example a vampire spell that jaunts can just add the vampire spell_handler to the jaunt spell
+ spell_targeting - The base class for the targeting systems spells use.
+ alive_mob_list - Will find targets in the GLOB.alive_mob_list. The result will be in a random order
+ aoe - An area of effect based spell targeting system. Will return all targets in the given range
+ click - A click based spell targeting system. The clicked atom will be used to determine who/what to target
+ clicked_atom - A simple spell targeting system. Will return the clicked atom as a target. Only works for 1 target max and is basically a dumbed down /datum/spell_targeting/click
+ matter_eater - A spell targeting system especially made for the matter eater gene
+ reachable_turfs - A spell targeting system which will return nearby turfs which are reachable from the users location. Will pad the targets with the user's location if needed
+ remoteview - A spell targeting system which will return one user picked target from all alive mobs who have the remoteview block but do not have the psyresist block active.
+ self - A spell targeting system which will return the caster as target
+ spiral - Gets a list of turfs around the center atom to scramble.
+ targeted - A spell targeting system which is able to select 1 to many targets in range/view of the caster. Has a random mode, distance from user based mode or a user input mode.
+ telepathic - A spell targeting system which will allow the user to select a target from nearby living mobs. The name will be "Unknown entity" if the user can not see them
+
+ sprite_accessory
+ body_markings
+ head
+ tajara
+ muzzle_alt_taj - Companion marking for Tajaran Belly 2.
+ patchy_taj - Companion marking for Tajaran Patches.
+ points_taj - Companion marking for Tajaran Points.
+
+ unathi
+ banded_una - Companion marking for Unathi Banded.
+ points_una - Companion marking for Unathi Points.
+ sharp/ snout_narrow_una_sharp - Companion marking for Unathi Narrow Belly.
+ snout_narrow_una - Companion marking for Unathi Narrow Belly.
+
+ vulpkanin
+ muzzle_ears_vulp - Companion marking for Vulpkanin Belly Alt..
+ muzzle_vulp - Companion marking for Vulpkanin Belly Alt..
+ points_fade_vulp - Companion marking for Vulpkanin Points Fade.
+ points_sharp_vulp - Companion marking for Vulpkanin Points Sharp.
+
+
+ tail
+ shared/ short_tip - Species-ambiguous, generic short tail.
+ tajara/ taj_wingler_stripes - Tiger stripes.
+
+ tattoo - Tattoos applied post-round startup with tattoo guns in item_defines.dm
+ tiger_body - Yep, this is repeated. To be fixed later
+
+
+ facial_hair/ britstache - START VG HAIRSTYLES
+ hair
+ birdnest - START VG HAIRSTYLES
+ bun4 - Due to a vulp hairstyle called bun
+ dave - END VG HAIRSTYLES//
+ eighties_ponytail - //END POLARIS HAIRSTYLES///
+ fluff
+ pinapple_fluff_hair - Ume hairs end here///
+Fluff HairStyles//
+Pineapple Salad hair fluff its for a slime..has to go under human
+ zeke_fluff_tentacle - Zeke Fluff hair
+
+ short - END VG HAIRSTYLES
+
+
+ stack_recipe
+ station_department
+ station_goal/ secondary
+ station_state
+ 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.
+ status_effect
+ blooddrunk
+ bubblegum_curse
+ crusher_damage - tracks the damage dealt to this mob by kinetic crushers
+ cultghost - is a cult ghost and can't use manifest runes, can see ghosts and dies if too far from summoner
+ 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.
+ fake_virus
+ fleshmend
+ grouped - Status effect from multiple sources, when all sources are removed, so is the effect
+Adds itself to sources and destroys itself if one exists already, there are never multiple
+ high_five
+ hippocraticOath
+ his_grace
+ his_wrath - does minor damage over time unless holding His Grace
+ incapacitating/ sleeping
+ limited_bonus - A status effect that can have a certain amount of "bonus" duration added, which extends the duration every tick,
+although there is a maximum amount of bonus time that can be active at any given time.
+ lwap_scope
+ Offering Item status effect - Status effect given to mobs after they've offered an item to another player using the Give Item action (/datum/click_intercept/give ).
+ shadow_mend
+ speedlegs
+ Transient Status Effect (basetype) - A status effect that works off a (possibly decimal) counter before expiring, rather than a specified world.time.
+This allows for a more precise tweaking of status durations at runtime (e.g. paralysis).
+ Confusion - Prevents moving straight, sometimes changing movement direction at random.
+Decays at a rate of 1 per second.
+ Dizziness - Slightly offsets the client's screen randomly every tick.
+Decays at a rate of 1 per second, or 5 when resting.
+ Drowsiness - Slows down and causes eye blur, with a 5% chance of falling asleep for a short time.
+Decays at a rate of 1 per second, or 5 when resting.
+ Drukenness - Causes a myriad of status effects and other afflictions the stronger it is.
+Decays at a rate of 1 per second if no alcohol remains inside.
+ hallucination
+ silence/ absolute - this one will mute all emote sounds including gasps
+
+
+ strip_menu - A representation of the stripping UI
+ strippable_item - A representation of an item that can be stripped down
+ hand - A strippable item for a hand
+ mob_item_slot - A preset for equipping items onto mob slots
+
+ supermatter_event
+ supply_order
+ supply_packs
+ abstract - Abstract supply packs that don't contain any goods, but instead represent purchases that cargo can make.
+A supply pack that does not contain physical objects, but instead fires some sort of callback when ordered.
+ admin_notify - A sample supply pack that notifies admins when it is purchased, but provides no items.
+ donations - Simple supply pack for easy admin modification
+
+ shuttle - A "supply pack" that allows for purchasing a custom shuttle.
+
+ emergency - Section header - use these to set default supply group and crate type for sections
+ engineering/ tools - the most robust crate
+ misc
+ boxing - For non log spamming cargo brawls!
+ formalwear - This is a very classy crate.
+ janitor - Janitor Supplies
+ paper - Paper Work
+ polo - For space polo! Or horsehead Quiditch
+ randomised/ ingredients - its a bit hacky...
+ servicecostume - Costumes
+ station_goal - Station Goals
+ teamcolors - For team sports like space polo
+
+ organic
+ cow - livestock
+ hydroponics - /// hippy gear
+-- Skie
+
+ security
+ armory - Armory stuff
+ ballistic - Weapons: Specialist
+ epistol - costs 3/5ths of the normal e-guns for 3/4ths the total ammo, making it cheaper to arm more people, but less convient for any one person
+ mindshield - Implants & etc
+ riothelmets - Armor: Specialist
+
+ baton - Weapons: Basic
+ helmets - Armor: Basic
+ officerpack - Starter pack for an officer. Contains everything in a locker but backpack (officer already start with one). Convenient way to equip new officer on highpop.
+
+
+ surgery - Datum Surgery Helpers
+ bone_repair - Surgery Datums
+ intermediate - A partial surgery that consists of a few steps that may be found in the middle of another operation.
+An existing surgery can yield to an intermediate surgery for a few steps by way of a proxy surgery_step.
+
+ surgery_step
+ fix_dead_tissue - Debridement
+ internal
+ proxy - Here's the special sauce: a surgery step that can pretend to be a few different surgery steps.
+These proxy steps will, depending on the tool that's used, either continue to the next surgery step, or temporarily spin off a new surgery
+by adding new steps to the current surgery.
+ ib - Mend IB without healing bones
+ manipulate_organs - The surgery step to trigger this whole situation
+ open_organ - Proxy surgery step to allow healing bleeding, bones, and burns.
+Should be added into surgeries just after the first three standard steps.
+ robotics/ repair_limb - The robotic equivalent
+
+
+ symptom/ dizzy - Not the egg
+ Syndicate Contract - Describes a contract that can be completed by a Contractor.
+ tarot
+ reversed/ the_fool - REVERSED ARCANA
+ the_stars - I'm sorry matt, this is very funny.
+
+ Telecommunications Message - Datum which holds all the data for a message being sent
+ Antagonist Team - Datum used by team antagonists to track it's members and objectives the team needs to complete.
+ tech
+ toxins - not meant to be raised by deconstruction, do not give objects toxins as an origin_tech
+
+ tgs_chat_channel - Represents a connected chat channel.
+ tgs_chat_command - User definable chat command.
+ tgs_chat_embed
+ field - See https://discord.com/developers/docs/resources/channel#embed-object-embed-field-structure for details. Must have name and value set in New().
+ footer - See https://discord.com/developers/docs/resources/channel#embed-object-embed-footer-structure for details.
+ media - Common datum for similar discord embed medias.
+ provider - See https://discord.com/developers/docs/resources/channel#embed-object-embed-provider-structure for details.
+ author - See https://discord.com/developers/docs/resources/channel#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/channel#embed-object-embed-structure for details.
+
+ tgs_chat_user
+ tgs_event_handler - User definable handler for TGS events.
+ tgs_message_content - User definable chat message.
+ tgs_revision_information - Represents git revision information.
+ test_merge - Represents a merge of a GitHub pull request.
+
+ tgs_version - Represents a version.
+ tgui - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ tgui_alert - Datum used for instantiating and using a TGUI-controlled modal that prompts the user with
+a message and has buttons for responses.
+ 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_input_text - tgui_input_text
+ tgui_list_input - Client does NOT have tgui_input on: Returns regular input
+ tgui_panel - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ 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.
+ tgui_window - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ theft_objective - .
+ thrownthing
+ ticket
+ ticket_response
+ tilt_crit - Framework for custom vendor crits.
+ Timed Event - This is the actual timer, it contains the callback and necessary data to maintain
+the timer.
+ traders
+ transaction
+ transfer_request
+ ui_login - Login state (there should be only one for one datum)
+ ui_modal - Modal datum (contains base information for a modal)
+ boolean - Boolean modal - has yes/no buttons that do different actions depending on which is pressed
+ input - Input modal - has a text entry that can be used to enter an answer
+ bento - Bento modal - Similar to choice, it displays the choices in a grid of images
+ choice - Choice modal - has a dropdown menu that can be used to select an answer
+
+
+ ui_module
+ ui_state
+ uplink_item
+ bio_chips/ uplink - Nukies get Nuclear Uplink Bio-chip instead
+ device_tools/ thermal_drill - Nukies get Diamond Tipped Thermal Safe Drill instead
+ special - This uplink catagory is for uplink items avalible by special circumstances. Think station traits, or if some event rolling in a round gave traitors special items, or an objective.
+ species_restricted/ prescan
+ stealthy_weapons/ combat_minus - Nukies get combat gloves plus instead
+
+ vampire_subclass
+ virology_goal
+ vote
+ weather/ solar_flare
+ wires
+ world_topic_handler
+ world_topic_spam_prevention_handler
+ zlev_manager
+
+ mob
+ camera/aiEye/remote/ xenobio
+ dead/ observer
+ living
+ carbon
+ silicon
+ simple_animal
+ bot
+ floorbot
+ mulebot
+ secbot/ griefsky - This bot is powerful. If you managed to get 4 eswords somehow, you deserve this horror. Emag him for best results.
+ toy - A toy version of general griefsky!
+
+
+ butterfly
+ demon
+ pulse_demon
+ slaughter - The Monster
+ cult - Summoned as part of the cult objective "Bring the Slaughter"
+
+
+ hostile
+ asteroid/ elite
+ Goliath Broodmother - A stronger, faster variation of the goliath. Has the ability to spawn baby goliaths, which it can later detonate at will.
+When it's health is below half, tendrils will spawn randomly around it. When it is below a quarter of health, this effect is doubled.
+It's attacks are as follows:
+ Herald - A slow-moving projectile user with a few tricks up it's sleeve. Less unga-bunga than Colossus, with more cleverness in it's fighting style.
+As it's health gets lower, the amount of projectiles fired per-attack increases.
+It's attacks are as follows:
+ Legionnaire - A towering skeleton, embodying the power of Legion.
+As it's health gets lower, the head does more damage.
+It's 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 it's health gets lower, the time between it's attacks decrease.
+It's attacks are as follows:
+
+ blob - You will appear adjacent to the beacon
+ construct
+ armoured - Juggernaut
+ hostile - actually hostile, will move around, hit things
+
+ behemoth - Behemoth
+ hostile - actually hostile, will move around, hit things
+
+ builder - Artificer
+ hostile - actually hostile, will move around, hit things, heal other constructs
+
+ harvester - Harvester
+ hostile - actually hostile, will move around, hit things
+
+ wraith - Wraith
+ hostile - actually hostile, will move around, hit things
+ bubblegum - Used in bubblegum summoning. Needs MOB_SIZE_LARGE so crushers don't suffer
+
+
+
+ gorilla
+ guardian
+ illusion
+ cult - Cult Illusions
+ escape - Actual Types
+ mirage - It's just standing there, menacingly
+
+ malf_drone
+ megafauna
+ mimic/copy/ vendor
+ morph
+ poison
+ syndicate/ melee - Sword and shield
+ winter/ santa
+ stage_1 - stage 1: slow melee
+ stage_2 - stage 2: slow ranged
+ stage_3 - stage 3: fast rapidfire ranged
+ stage_4 - stage 4: fast spinebreaker
+
+
+ lizard
+ parrot
+ pet
+ cat/ cak
+ dog
+ corgi
+ puppy/ void - Tribute to the corgis born in nullspace
+
+ pug - Pugs
+
+
+ possessed_object
+ revenant
+ slime
+
+
+
+ obj
+ airlock_filler_object
+ docking_port/ mobile
+ effect
+ The abstract object - This is an object that is intended to able to be placed, but that is completely invisible.
+The object should be immune to all forms of damage, or things that can delete it, such as the singularity, or explosions.
+ chasm_storage - An abstract object which is basically just a bag that the chasm puts people inside
+ particle_holder - These effects can be added to anything to hold particles, which is useful because Byond only allows a single particle per atom
+ Basic Proximity Checker - Inteded for use with the proximity checker component /datum/component/proximity_monitor .
+Whenever a movable atom crosses this object, it calls HasProximity()
on the object which is listening for proximity (hasprox_receiver
).
+
+ anomaly
+ baseturf_helper - Set the baseturfs of every turf in the /area/ it is placed.
+ beam/ i_beam - IBeam
+ clockwork/overlay/floor/ bloodcult - this is used by BLOOD CULT, it shouldn't use such a path...
+ Contractor Extraction Flare - Used to designate where the /obj/effect/portal/advanced/contractor should spawn during the extraction process.
+ countdown
+ cross_action/ spacetime_dist
+ decal/ cleanable
+ blood
+ gibs/ cleangibs - most ironic name ever...
+ slime - this is the alien blood file, slimes are aliens.
+
+ confetti - PARTY TIME!
+ pie_smudge - honk
+ tar
+ trail_holder - not a child of blood on purpose
+
+ dummy/ slaughter - Can't use the wizard one, blocked by jaunt/slow
+ gibspawner
+ gluttony - Gluttony's wall: Used in the Gluttony ruin. Only lets the overweight through.
+ guardianshield
+ Hallucination - Base object for hallucinations. Contains basic behaviour to display an icon only to the target.
+ Hallucination - Abduction - Sends an abductor agent after the target. On knockdown, spawns an abductor scientist next to the target. Nothing else happens.
+ Hallucination - Assault - An imaginary attacker spawns close to the target and attacks them to stamcrit.
+ Hallucination - Audio - Plays a random sound.
+ Hallucination - Audio (Localized) - Plays a random sound at a random location around the target.
+
+ Hallucination - Bolts - Visually bolts a random number of airlocks around the target.
+ Hallucination - Bolts (Moderate) - A variation that affects more airlocks.
+
+ Hallucination - Chaser - A generic hallucination that chases the target.
+ Hallucination - Chasms - Displays fake chasms around the target that if crossed, cause them to trip.
+ Hallucination - Delamination Alarm - A fake radio message and audio that alerts of an increasing SM unstability.
+ Hallucination - Delusion - Changes the appearance of all humans around the target.
+ Hallucination - Energy Sword - A series of localized audio playback simulating an energy sword murder.
+ Hallucination - Fake Alert - Displays a random alert on the target's HUD.
+ Hallucination - Fake Danger - Sends a random danger message to the target's chat.
+ Hallucination - Fake Health - Visually changes the target's health status to something it shouldn't be.
+ Hallucination - Fake Item - Displays a random fake item around the target. If it's on the floor and they try to pick it up, they will trip and fall.
+ Hallucination - Fake Weapon - Displays a random fake weapon wielded by a human around the target.
+ Hallucination - Gunfire - A series of localized audio playback simulating a gunshot murder.
+ Hallucination - Husks - A random number of fake husks around the target.
+ Hallucination - Loose Energy Ball - A progressive hallucination that begins with intermittent explosions, before displaying an energy ball that shocks the target.
+ Hallucination - Plasma Flood - A fake plasma flood emanating from a nearby vent.
+ Hallucination - Self Delusion - Changes the target's appearance to something else temporarily.
+ Hallucination - Speech - Causes the target to hear a fake message from a random mob around them.
+ Hallucination - Stunprodding - A series of localized audio playback simulating a kidnapping with a stunprod.
+ Hallucination - Terror Infestation - Creates spider webs and a terror spider near a random vent around the target.
+ Hallucination - Tripper - A generic hallucination that causes the target to trip if they cross it.
+ Hallucination - Chasm - A fake chasm that if crossed by the target, causes them to trip.
+ Hallucination - Spider Web - A fake spider web that trips the target if crossed.
+
+ Hallucination - Xeno Pounce - An imaginary alien hunter pounces towards the target.
+ xeno_pouncer
+
+ hotspot/ fake - Largely for the fireflash procs below
+ immovablerod
+ landmark
+ mob_spawner - Mob spawners, spawns a mob and deletes the landmark
+ goldgrub - 75% chance to get a magmawing watcher, and 25% chance to get a icewing watcher (1/133, 1/400 respectively)
+
+ newplayer_start - There should only be one of these, in the lobby art area
+ river_waypoint
+
+ light_emitter - Light
+ mapping_helpers/ bombable_wall - Apply to a wall (or floor, technically) to ensure it is instantly destroyed by any explosion, even if usually invulnerable
+ mazegen
+ mob_spawn
+ corpse - these mob spawn subtypes trigger immediately (New or Initialize) and are not player controlled... since they're dead, you know?
+ human
+ alive/ space_bar_patron - Alive ones, used as "core" for ghost roles now and in future.
+ corpse/ abductor - Corpses, they can be used for "decoration" purpose.
+
+ mouse - Non-human spawners
+
+ particle_effect
+ ion_trails - Ion trails for jetpacks, ion thrusters and other space-flying things
+ smoke - SMOKE SYSTEMS
+ sparks/ sparkles - SPARKLE FIREWORKS
+
+ portal
+ rune
+ Blood Boil Rune - When invoked deals up to 30 burn damage to nearby non-cultists and sets them on fire.
+ wall
+
+ spawner
+ airlock/ long - Long and thin
+ grouped_spawner - Can be used to group spawners together so you ensure a certain amount of things are spawned but can be spawned on multiple locations.
+ lootdrop
+ random_barrier/ possibly_welded_airlock - these have no access restrictions, so for internal maintenance only
+ themed_mess
+ window/reinforced/ polarized
+
+ tear - The portal used in the /datum/event/tear midround.
+ temp_visual
+ decoy/ mephedrone_afterimage
+ dragon_swoop/bubblegum/ ancient_robot - this is the worst path I have ever made
+ explosion
+ getaway_flare - Because the original contractor flare is not a temp visual, for some reason.
+ heal - color is white by default, set to whatever is needed
+ hierophant
+ chaser - a hierophant's chaser. follows target around, moving and producing a blast every speed deciseconds.
+ wall - smoothing and pooling were not friends, but pooling is dead.
+
+ single_user - A visual effect that will be shown only to a particular user for a period of time.
+ sonar_ping
+
+ watcher_orbiter - Orbiting visual which shoots at mining mobs
+
+ item
+ abductor/ gizmo - SCIENTIST GEAR
+ aiModule
+ antimov - Antimov
+-- TLE
+ asimov - Asimov
+-- TLE
+ cctv - CCTV
+ corp - Corporate
+ crewsimov - Crewsimov
+-- TLE
+ drone - Drone
+ freeform - New Freeform
+Slightly more dynamic freeform module -- TLE
+ freeformcore - Freeform Core
+Slightly more dynamic freeform module -- TLE
+ hippocratic - Hippocratic Oath
+ maintain - Station Efficiency
+ nanotrasen - Nanotrasen
+-- TLE
+ nanotrasen_aggressive - NT Aggressive
+ oneCrewMember - oneCrewMember
+ oxygen - OxygenIsToxicToCrew
+ paladin - P.A.L.A.D.I.N.
+-- NEO
+ peacekeeper - Peacekeeper
+ pranksimov - Pranksimov
+ protectStation - ProtectStation
+ purge - Purge
+-- TLE
+ quarantine - Quarantine
+ reset - Reset
+ robocop - Robocop
+-- TLE
+ safeguard - Safeguard
+ syndicate - Hacked AI Module
+Slightly more dynamic freeform module -- TLE
+ toyAI - Ion Module
+-- Incoming //No actual reason to inherit from ion boards here, either. sigh ~Miauw
+ tyrant - T.Y.R.A.N.T.
+-- Darem
+
+ airlock_electronics
+ ammo_box/ magazine
+ internal - INTERNAL MAGAZINES
+ laser/ ert - Used by red ERT. Keeps the size for them
+ m10mm - EXTERNAL MAGAZINES
+ wt550m9
+
+ ammo_casing
+ energy
+ arc_revolver
+ disabler/ cyborg - seperate balancing for cyborg, again
+ emitter/cyborg/ proto - needed a slightly weaker ranged option to give to Safety Overriden borgs. The fire rate is about the same as an emitter if you put it on the ground.
+ laser/ cyborg - to balance cyborg energy cost seperately
+
+
+ analyzer - GAS ANALYZER
+ antag_spawner
+ morph - MORPH
+ nuke_ops - BORGS AND OPERATIVES
+ borg_tele - SYNDICATE BORG
+
+ pulse_demon - Pulse Demon
+ revenant - Revenant
+ slaughter_demon - ////////SLAUGHTER DEMON
+Warning edgiest item in the game
+
+ assembly
+ Banhammer
+ barcodescanner
+ barsign_electronics
+ batterer
+ beach_ball
+ beacon/ bacon - Probably a better way of doing this, I'm lazy.
+ bedsheet/fluff/ hugosheet - HugoLuman: Dan Martinez
+ bikehorn/fluff/ pinkbikehorn - Xerdies: Squiddle Toodle
+ Implants - Code for implants that can be inserted into a person and have some sort of passive or triggered action.
+ explosive
+ gorilla_rampage - Dumb path but easier to search for admins
+ mod
+ Stealth Implant - Implant which allows you to summon an MGS-style cardboard box that turns you invisble after a short delay.
+ traitor
+
+ blank_tarot_card
+ bodyanalyzer - BODY ANALYZERS
+ bombcore - Bomb Cores
+ training - Bomb Core Subtypes
+
+ Standard Book - Game Object which stores pages of text usually written by players, has other editable information such as the book's
+title, author, summary, and categories. Has other values that are generated when books are acquired through the library
+computer.
+ granter - Books that teach things.
+ MANUALS (BOOKS) - These are "programmatic books," that is books that are hard-coded into the game. Just for the sake of maintainability, keep
+information subject to change (as in likely to change SOON) out of the non-wiki manuals as they require PRs to change
+and it is not an author's responsbility to update manuals if they change a mechanic/recipe/feature referenced in one of them
+Don't worry about adding them to the library, as long as they're one of these types it is automatically added.
+ Wiki Page Based Book Manuals - These are programmatic books that source its pages / "content" straight from the wiki
+That means that this content can ONLY be changed by editing the wiki
+Space Law and SOP Manuals can only be edited by Wiki Admins
+
+
+ borg - Cyborg Spec Items
+ butcher_chainsaw - CHAINSAW
+ camera - camera
+ digital - digital camera
+ siliconcam
+ ai_camera - camera AI can take pictures with
+ drone_camera - currently doesn't offer the verbs, thus cannot be used
+ robot_camera - camera cyborgs can take pictures with
+
+
+ camera_bug
+ camera_film - film
+ candle
+ card
+ id
+ mining_point_card - Mining Point Card
+
+ cardboard_cutout/ adaptive - Purchased by Syndicate agents, these cutouts are indistinguishable from normal cutouts but aren't discolored when their appearance is changed
+ cardhand
+ cartridge
+ syndicate/ nuclear - needed subtype so regular traitors can't open and close nuclear shuttle doors
+
+ circuitboard
+ mecha - Circuitboards
+
+ claymore/ fluff - MrBarrelrolll: Maximus Greenwood
+ clockwork/alloy_shards/medium/gear_bit/ large - gives more power
+ clothing
+ accessory
+ medal
+ fluff
+ XannZxiax - Sagrotter: Xann Zxiax
+ elo - V-Force_Bomber: E.L.O.
+ panzermedal - PanzerSkull: GRN-DER
+
+ gold/heroism/ hardmode_full - Kill every hardmode boss. In a shift. Good luck.
+ recruiter - Prize for the NT Recruiter emagged arcade
+
+ necklace/locket/fluff/ fethasnecklace - Fethas: Sefra'neem
+ pin/ pride
+ rbscarf - Rb303: Isthel Eisenwald
+ scarf - No overlay
+ waistcoat - No overlay
+
+ ears/ headphones
+ glasses
+ hud
+ security/sunglasses/ fluff
+ eyepro - ///////// Clothing ////////////
+ voxxyhud - LP Spartan: Kaskreyarawkta
+
+
+ meson
+ engine/ tray - atmos techs have lived far too long without tray goggles while those damned engineers get their dual-purpose gogles all to themselves
+ fluff/ book_berner_1 - Adrkiller59: Adam Cooper
+
+ monocle/fluff/ trubus - Trubus: Wolf O'Shaw
+ sunglasses_fake/fluff/ kaki - Rapidvalj: Kakicharakiti
+
+ gloves
+ color
+ black/krav_maga/ combat - for nukies
+ fyellow - Cheap Chinese Crap
+
+ ring
+ fluff/ benjaminfallout - Benjaminfallout: Pretzel Brassheart
+ silver/ blessed - todo
+
+
+ head
+ beanie - Default is white, this is meant to be seen
+ beret/ purple - Fluff?
+ cardborg
+ fluff
+ chronx - chronx100: Hughe O'Splash
+ elo - V-Force_Bomber: E.L.O.
+ heather_winceworth - ///////// Hats ////////////
+Regens: Heather Winceworth
+ kaki - Rapidvalj: Kakicharakiti
+ kiahat - FullOfSkittles: Kiachi
+ lfbowler - Lightfire: Hyperion
+ linda - Epic_Charger: Linda Clark
+ pinesalad_horns - Pineapple Salad: Dan Jello
+ sigholt - sigholtstarsong: Sigholt Starsong
+ sparkyninja_beret - Sparkyninja: Neil Wilkinson
+
+ helmet
+ abductor - AGENT GEAR
+ fluff/ merchant_sallet - Travelling Merchant: Trav Noble. This >>IS NOT<< what they spawn in with
+ space/plasmaman/ lf53_fluff - LightFire53: Ikelos
+
+ hooded
+ berserker
+ hood/ fluff
+ linda - Epic_Charger: Linda Clark
+ shesi - MrSynnester : Shesi Skaklas
+ xantholne - Xantholne: Meex Zwichsnicrur
+
+
+ pirate/fluff/ stumpy - MrFroztee: Stumpy
+ stalhelm - Why do these exist - Because they aren't specifically Nazi Germany
+ valkyriehelmet - R3Valkyrie: Rikki
+ wizard/fake/fluff/ dreamy - phantasmicdream : Dreamy Rockwall
+
+ mask
+ bandana/fluff/ dar - ///////// Masks ////////////
+sasanek12: Dar'Konr
+ facehugger
+ toy - Mining Equipment Vendor Items
+
+ gas
+ fluff
+ kiamask - FullOfSkittles: Kiachi
+ kikerimask - Gangelwaefre: Kikeri
+ yahiyamask - Asmerath: Yahiya
+
+ sechailer/fluff/ spartan - LP Spartan: Kaskreyarawkta
+
+ holo_cigar
+ muzzle
+
+ shoes
+ black/fluff/ chronx - chronx100: Hughe O'Splash
+ combat - basic syndicate combat boots for nuke ops and mob corpses
+ swat - overpowered gimmick boots
+
+ galoshes/dry/ lightweight - for red janitor ert.
+ magboots
+ elite - For the Syndicate Strike Team/SolGov/Tactical Teams
+ wizard - bundled with the wiz hardsuit
+
+
+ suit
+ advanced_protective_suit - Advanced Protective Suit, AKA, God Mode in wearable form.
+ armor
+ reactive
+ random - Spawner for random reactive armor
+ repulse
+
+ shodanscoat - RazekPraxis: SHODAN
+ vest/fluff/ tactical - m3hillus: Medusa Schlofield
+
+ bloated_human - OH MY GOD WHAT HAVE YOU DONE!?!?!?
+ chaplain_hoodie/fluff/ chronx - chronx100: Hughe O'Splash
+ draculacoat - Bleh!
+ fluff - Suits
+ cheeky_sov_coat - CheekyCrenando: Srusu Rskuzu
+ dusty_jacket - ComputerlessCitizen: Screech
+ kluys - Kluys: Cripty Pandaen
+ pineapple - Pineapple Salad: Dan Jello
+ stobarico_greatcoat - Stobarico: F.U.R.R.Y
+ supplymaster_jacket - Denthamos: Henry Grandpa Gadow
+ vetcoat - Furasian: Fillmoore Grayson
+ navy - Furasian: Fillmoore Grayson
+ red - Furasian: Fillmoore Grayson
+
+
+ hooded
+ bee_costume - It's Hip!
+ cultrobes/ cult_shield
+ explorer - Explorer's Suit and Mask
+ fluff/ bone - Doru7: Jack Bone
+ hoodie
+ fluff
+ linda - Epic_Charger: Linda Clark
+ xantholne - Xantholne: Meex Zwichsnicrur
+ xydonus - Xydonus: Rsik Ugsharki Atan | Based off of the bomber jacket, but with a hood slapped on (for allowed suit storage)
+
+ hylo - Hylocereus: Sam Aria
+
+ wintercoat/fluff/ shesi - MrSynnester : Shesi Skaklas
+
+ jacket
+ dtx - AffectedArc07: DTX
+ fluff
+ elliot_windbreaker - DaveTheHeadcrab: Elliot Campbell
+ jacksvest - Anxipal: Jack Harper
+ kidosvest - Anxipal: Kido Qasteth
+
+ miljacket/ patch - sniper_fairy : P.A.T.C.H.
+
+ storage
+ fox - Shoes
+Sets
+ labcoat/ fluff
+ aeneas_rinil - Socialsystem: Lynn Fea
+ ionward_labcoat - Ionward: Gemini
+ pulsecoat - ozewse : Daniel Harper : Donated to them by Runemeds, who is the original donor.
+ red - Sweetjealousy: Sophie Faust-Noms
+
+
+
+ under
+ color/purple/ sensor - for jani ert
+ fluff - Uniforms
+ aegis - PlagueWalker: A.E.G.I.S.
+ benjaminfallout - Benjaminfallout: Pretzel Brassheart
+ counterfeitguise_uniform - thatdanguy23 : Rissa Williams
+ elishirt - FlattestGuitar9: Eli Randolph
+ elo_turtleneck - vforcebomber: E.L.O.
+ honourable - MrBarrelrolll: Maximus Greenwood
+ jane_sidsuit - SyndiGirl: Zoey Scyth
+ jay_turtleneck - Jayfeather: Jay Wingler
+ kharshai - Kharshai: Athena Castile
+ kiaoutfit - FullOfSkittles: Kiachi
+ kikeridress - Gangelwaefre: Kikeri
+ lfvicsuit - Lightfire: Hyperion
+ soviet_casual_uniform - Norstead : Natalya Sokolova
+ xantholne - Xantholne: Meex Zwichsnicrur
+
+ psysuit - Don't modify the path, used by a fluff item
+ fluff/ isaca_sirius_1 - Xilia: Isaca Sirius
+
+ rank/medical/ gown - Seems like it should be here for organisational purposes
+
+
+ contract - Apprentice Contract
+ Contractor Uplink - A contractor's point of contact with their Contractor Hub.
+ crowbar/fluff/ zelda_creedy_1 - Zomgponies: Griffin Rowley
+ crusher_trophy
+ crutches
+ deck
+ unum - A deck of unum cards. Classic.
+
+ defibrillator
+ desk_bell
+ destTagger
+ detonator
+ dice - depreciated d6, use /obj/item/dice/d6 if you actually want a d6
+ disk/ nuclear
+ door_remote/ janikeyring
+ eftpos
+ electropack
+ encryptionkey
+ heads/ ai_integrated - ported from bay, this goes 'inside' the AI.
+ syndicate/ all_channels - has to be a subtype and stuff
+
+ envelope
+ extinguisher
+ fireaxe - DEM AXES MAN, marker -Agouri
+ boneaxe - Blatant imitation of the fireaxe, but made out of bone.
+
+ flash
+ synthetic - just a regular flash now
+
+ flashlight
+ lantern - Lantern
+ spotlight - invisible lighting source
+
+ fluff
+ bird_painter - BirdtTalon: Kahkiri
+ cardgage_helmet_kit - captain cardgage: Richard Ulery
+ desolate_baton_kit - DesolateG: Micheal Smith
+ desolate_coat_kit - DesolateG: Micheal Smith
+ dogwhistle - phantasmicdream: Zeke Varloss
+ fei_gasmask_kit - Fei Hazelwood: Tariq Yon-Dale
+ k3_webbing_modkit - IK3I: Yakikatachi
+ lighty_plasman_modkit - LightFire53: Ikelos
+ merchant_sallet_modkit - Travelling Merchant: Trav Noble. This is what they spawn in with
+ pinapplehairgel - Pineapple Salad: Dan Jello
+ pyro_wintersec_kit - DarkLordpyro: Valthorne Haliber
+ rapid_wheelchair_kit - Rapidvalj: Hakikarahiti
+ rsik_katana - Xydonus: Rsik Ugsharki Atan
+ sylus_conversion_kit - Decemviri: Sylus Cain
+ tattoo_gun - Generic tattoo gun, make subtypes for different folks
+ zekemirror - phantasmicdream : Zeke Varloss
+
+ food - Food.
+ snacks
+ badrecipe - FOOD END
+ choc_pile - for reagent chocolate being spilled on turfs
+ chocolatebar
+ cookiedough - cookies by Ume
+ customizable
+ fullycustom - In the event you fuckers find something I forgot to add a customizable food for.
+
+ egg/ watcher - Egg which hatches into a helpful pet. Or you can eat it if you want.
+ grown
+ ash_flora/ shavings - for actual crafting
+
+ mashed_potatoes - mashed taters
+ warmdonkpocket
+
+
+ garrote - 12TC traitor item
+ improvised - Made via tablecrafting
+
+ geiger_counter - DISCLAIMER: I know nothing about how real-life Geiger counters work. This will not be realistic. ~Xhuis
+ GPS - A small item that reports its current location. Has a tag to help distinguish between them.
+ grenade
+ barrier/ dropwall
+ chem_grenade
+ adv_release - Intended for weaker, but longer lasting effects. Could have some interesting uses.
+ cryo - Intended for rare cryogenic mixes. Cools the area moderately upon detonation.
+ pyro - Intended for pyrotechnical mixes. Produces a small fire upon detonation, igniting potentially flammable mixtures.
+
+ clusterbuster/ mega_bang - Clusterbuster of Clusterbusters
+ cryogrenade_mod
+ jaunter_grenade
+ mirage
+ plastic
+ smokebomb - We need to clear the walk_to on destroy to allow a grenade which uses walk_to or related to properly GC
+
+ gripper
+ universal - Universal gripper. Not supplied to any cyborg by default. Could be varedited onto a borg for event stuff. Functions almost like a real hand!
+
+ grown - Grown weapons
+ bananapeel/ specialpeel - used by /obj/item/clothing/shoes/clown_shoes/banana_shoes
+ nettle - abstract type
+ sunflower - FLOWER POWER!
+
+ guardiancreator - Creation
+ gun
+ energy
+ projectile
+ revolver/ fingergun - Summoned by the Finger Gun spell, from advanced mimery traitor item
+ shotgun
+ automatic/combat/ cyborg - Service Malfunction Borg Combat Shotgun Variant
+ riot - for spawn in the armory
+
+
+ syringe
+ blowgun - craftable bamboo syringe gun
+ rapidsyringe
+ preloaded - Version that comes pre-loaded with a given amount of syringes.
+ beaker_blaster - For shenanigans. This is essentially an RSG that never needs to be refilled with syringes.
+ half - Version that comes loaded with half of the standard amount of syringes. Used in the uplink.
+
+
+
+ syringemalf - Malf Syringe Gun
+
+ hand_tele
+ handheld_defibrillator
+ his_grace
+ hivelordstabilizer - Hivelord stabilizer
+ inflatable/ cyborg
+ instrument
+ guitar/ cyborg - This is a special guitar for the emagged service borg that hits pretty hard and can still play music. Clonk.
+
+ kinetic_crusher - Mining Hammer
+ kirbyplants
+ kitchen
+ cutter - circular cutter by Ume
+ knife/ envy - Envy's knife: Found in the Envy ruin. Attackers take on the appearance of whoever they strike.
+
+ lazarus_injector - Lazarus Injector
+ Light item - Parent type of light fittings (Light bulbs, light tubes)
+ lighter
+ zippo/ fluff
+ duckchan - Duckchan: Rybys Romney
+ michael_guess_1 - mrbits: Callista Gold
+ purple - GodOfOreos: Jason Conrad
+ warriorstar - Warriorstar: DEADLOCK
+
+
+ lightreplacer
+ magic_tarot_card
+ mail_scanner
+ malf_upgrade - AI Upgrades
+ matter_decompiler
+ mecha_parts - Mecha Parts
+ chassis
+ durand - Durand
+ firefighter - Firefighter
+ gygax - Gygax
+ honker - HONK
+ odysseus - Odysseus
+ phazon - Phazon
+ reticence - Reticence
+ ripley - Ripley
+
+ mecha_equipment
+ anticcw_armor_booster - ///////////////////////// ARMOR BOOSTER MODULES //////////////////////////////////////////////////////////
+what is that noise? A BAWWW from TK mutants.
+ generator - GENERATOR
+ gravcatapult - GRAVITATIONAL CATAPULT
+ repair_droid - REPAIR DROID
+ teleporter - TELEPORTER
+ tesla_energy_relay - TESLA ENERGY RELAY
+ weapon/ ballistic - else the mousetraps are useless
+
+
+ megaphone
+ melee
+ mine_bot_upgrade - Minebot Upgrades
+ mining_drone_cube - Mining drone cube
+ mining_scanner - Mining Scanner
+ mining_voucher - Mining Equipment Voucher
+ mmi
+ mobcapsule - Mob Capsule
+ mod - MODsuits, trade-off between armor and utility
+ armor
+ mod_theme_administrative - considering this should not be used, it's getting just DS armor, not infinity in everything.
+ mod_theme_responsory - This has no slowdown active, and no variation between levels. I am ASSUMING this will be gamma only.
+
+ construction/ plating
+ advanced - This may be a bad idea. I think this is an interesting idea. And you still need robotics to build it, and traders can charge as much for it as they want. Also with ones like the CE modsuit, it is the flagship mod. That means it is sold a lot.
+ rescue - I want to add a way to get the rarer modsuit types, that is limited. A low chance for traders to have plating for it seems interesting
+ research - Don't think people will want the RD one though, it is as slow as shit. Anyway, here it is. Surely this will not end poorly.
+ safeguard - Continued from above, none of these are steal objectives, and only the CE or RD one comes pre-installed with modules. You are getting the protection / speed / looks of these hardsuits, but no special modules.
+
+ control
+ pre_equipped
+ mining
+ asteroid - The asteroid skin, as that one looks more space worthy / older. Good for space ruins.
+ vendor - visit robotics.
+
+ responsory
+ inquisitory - Diffrent look, as well as magic proof on TG. We don't have the magic proof stuff here, but it's perfect for inqusitors. Or if you want to give your ERT a fancy look.
+
+
+
+ core
+ module - MOD Module - A special device installed in a MODsuit allowing the suit to do new stuff.
+ active_sonar - Active Sonar - Displays a hud circle on the turf of any living creatures in the given radius
+ anomaly_locked - Anomaly Locked - Causes the module to not function without an anomaly.
+ cryogrenade - Cryogrenade. Freezes foes in place, cools them
+ firewall - Firewall. Deployable dropwall that lights projectiles on fire.
+ kinesis - Kinesis - Gives you the ability to move and launch objects.
+ teleporter - Teleporter - Lets the user teleport to a nearby location.
+ teslawall
+ vortex_shotgun - Vortex arm mounted shotgun. Fucks up reality in front of it, very power draining. Compeating with the vortex arm and stealth armor after all
+
+ armor_booster - Armor Booster - Grants your suit more armor and speed in exchange for EVA protection. Also acts as a welding screen.
+ ash_accretion
+ balloon - Balloon Blower - Blows a balloon.
+ bikehorn - Bike Horn - Plays a bike horn sound.
+ boot_heating
+ chameleon - Chameleon - lets the suit disguise as any item that would fit on that slot.
+ clamp - Hydraulic Clamp - Lets you pick up and drop crates.
+ 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.
+ smoke - Smoke Grenade Module, its tacticool.
+
+ dna_lock
+ drill - Drill - Lets you dig through rock and basalt.
+ emp_shield - EMP Shield - Protects the suit from EMPs.
+ energy_shield - Energy Shield - Gives you a rechargeable energy shield that nullifies attacks.
+ ert_camera - Camera Module - Puts a camera in the modsuit that the ERT commander can see
+ firefighting_tank - Atmos water tank module
+ flashlight - Flashlight - Gives the suit a customizable flashlight.
+ gps - Internal GPS - Extends a GPS you can use.
+ holster - Holster - Instantly holsters any not huge gun.
+ hydraulic
+ 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.
+ magboot - Magnetic Stability - Gives the user a slowdown but makes them negate gravity and be immune to slips.
+ monitor - Crew Monitor - Deploys or retracts a built-in handheld crew monitor
+ noslip - Anti Slip - Prevents you from slipping on water.
+ orebag - Ore Bag - Lets you pick up ores and drop them from the suit.
+ pathfinder - Pathfinder - Can fly the suit from a long distance to an implant installed in someone.
+ plasma_stabilizer - Plasma Stabilizer - Prevents plasmamen from igniting in the suit
+ plate_compression - Plate Compression - Compresses the suit to normal size
+ power_kick - Power kick - Lets the user launch themselves at someone to kick them.
+ rad_protection - Radiation Protection - Gives the user rad info in the ui, currently
+ reagent_scanner - Reagent Scanner - Lets the user scan reagents.
+ sphere_transform
+ springlock - Springlock Mechanism - allows your modsuit to activate faster, but reagents are very dangerous.
+ stamp - Stamper - Extends a stamp that can switch between accept/deny modes.
+ status_readout - Status Readout - Puts a lot of information including health, nutrition, fingerprints, temperature to the suit TGUI.
+ stealth - Cloaking - Lowers the user's visibility, can be interrupted by being touched or attacked.
+ storage - Storage - Adds a storage component to the suit.
+ t_ray - T-Ray Scan - Scans the terrain for undertile objects.
+ tether - Emergency Tether - Shoots a grappling hook projectile in 0g that throws the user towards it.
+ thermal_regulator - Thermal Regulator - Regulates the wearer's core temperature.
+ visor - Base Visor - Adds a specific HUD and traits to you.
+ welding - Welding Protection - Makes the helmet protect from flashes and welding.
+
+
+ mod_defib
+ mop
+ advanced/ abductor - JANITORIAL TOOLS
+
+ mounted/ frame
+ alarm_frame - Handheld air alarm frame, for placing on walls.
+ light_fixture
+
+ multisword/ pike - If We are to be used and spent, let it be for a noble purpose.
+ multitool - Multitool -- A multitool is used for hacking electronic devices.
+ necromantic_stone - Necromantic Stone
+ Newspaper - A newspaper displaying the stories of all channels contained within.
+ nuke_core/ plutonium - The steal objective, so it doesnt mess with the SM sliver on pinpointers and objectives
+ nullrod
+ claymore/ bostaff - May as well make it a "claymore" and inherit the blocking
+ ert - ERT subtype, applies sanctified property to any derived rod
+ fluff - fluff subtype to be used for all donator nullrods
+ chronx - chronx100: Hughe O'Splash
+
+
+ offhand - The offhand dummy item for two handed items
+ organ
+ external - EXTERNAL ORGANS
+ chest - ORGAN DEFINES
+
+ internal
+ alien
+ appendix/ diona - Turns into a nymph instantly, no transplanting possible.
+ body_egg/ alien_embryo
+ brain
+ diona - Turns into a nymph instantly, no transplanting possible.
+
+ cyberimp
+ arm/janitorial/ advanced - ERT implant, i dont overly expect this to get into the hands of crew
+ l - its for ERT, but still probably a good idea.
+
+ brain
+ eyes/ hud
+
+ eyes
+ diona - Turns into a nymph instantly, no transplanting possible.
+ tajaran/ farwa - Being the lesser form of Tajara, Farwas have an utterly incurable version of their colourblindness.
+ vulpkanin/ wolpin - Being the lesser form of Vulpkanin, Wolpins have an utterly incurable version of their colourblindness.
+
+ heart
+ cursed
+ demon - The Loot
+ diona - Turns into a nymph instantly, no transplanting possible.
+ gland/ emp - TODO : Replace with something more interesting
+
+ kidneys/ diona - Turns into a nymph instantly, no transplanting possible.
+ liver/ diona - Turns into a nymph instantly, no transplanting possible.
+ regenerative_core - Hivelord core
+ vocal_cords - organs that are activated through speech with the :x channel
+
+
+ organ_extractor/ abductor - Advanced abductor version. Is a lot faster with implanting into others
+ painter
+ paintkit - Please don't use this for anything, it's a base type for custom mech paintjobs.
+ paper
+ Safe Codes - Contains the (generated on map load) codes for all publicly known safes.
+ Telecommunications Password Paper - Piece of paper that spawns with the default link password
+
+ pda
+ photo - photo
+ pickaxe - Pickaxes & Drills & Shovels
+ drill/cyborg/ diamond - This is the BORG version!
+
+ pinpointer/ crew
+ pizzabox/ pizza_bomb
+ pneumatic_cannon
+ ghetto - Obtainable by improvised methods; more gas per use, less capacity, but smaller
+
+ projectile
+ baby_watcher_blast - Beam fired by a baby watcher, doesn't actually do less damage than its parent
+ beam/laser/sniper/ pierce
+ bullet
+ mime
+ fake - ...Rather a large amount of stamina damage. Used in the mime mecha
+ nonlethal
+
+ shrapnel - Shrapnel that flies through the air and hits you
+ stunshot - taser slugs for shotguns, nothing special
+ weakbullet - beanbag, heavy stamina damage
+
+ energy/ tesla_bolt - Leaving here for adminbus / so vetus still uses it.
+ magic/ chaos
+ missile
+
+ radio
+ borg - Exists so that borg radios and headsets can override it.
+ headset
+ heads/ ai_integrated - No need to care about icons, it should be hidden inside the AI anyway.
+ syndicate/ alt - undisguised bowman with flash protection
+
+ intercom
+
+ rcd
+ Rapid Crate Sender (RCS) - Used to teleport crates and closets to cargo telepads.
+ reagent_containers
+ applicator/dual/ syndi - It magically goes through hardsuits. Don't ask how.
+ borghypo
+ condiment - Condiments
+ saltshaker - Seperate from above since it's a small shaker rather then
+
+ drinks - Drinks.
+ bottle - Alchohol bottles! -Agouri
+ molotov - MOLOTOV
+ orangejuice - JUICES AND STUFF
+
+ coffee - Drinks
+ shaker - drinkingglass and shaker
+ trophy - Drinks. END
+ bronze_cup/ toolbox_win - 2023 toolbox tournament 3rd place went to paradise station.
+
+
+ dropper - Droppers.
+ glass - (Mixing)Glass.
+ bottle/ traitor - Traitor Poison Bottle
+
+ hypospray - MARK: HYPOSPRAY
+ autoinjector
+ stimpack - goliath kiting
+ teporone - basilisks
+
+
+ iv_bag/ blood - Don't use this - just an abstract type to allow blood bags to have a common blood_type var for ease of creation.
+ Pill - A swallowable pill. Can be dissolved in reagent containers.
+ spray
+ pestspray - -- Skie
+ plantbgone - Plant-B-Gone
+-- Skie
+ sticky_tar - Sticky tar spray
+ weedspray - -- Skie
+
+ syringe
+
+ reagent_scanner - REAGENT SCANNERS
+ relic
+ resonator - Resonator
+ restraints
+ handcuffs
+ energy/ cult - For the shackling spell
+
+ legcuffs
+ beartrap
+ bola
+ energy - For Security
+ tactical - traitor variant
+
+
+
+ robot_module
+ robotanalyzer - MACHINE ANALYZER
+ Safe Internals - Can be used to replace a safe's broken mechanism.
+ salvage
+ loot - Loot salvage, gained from fighting space simplemobs.
+ ruin - Ruin Salvage, misc loot gained from looking around ruins.
+
+ scalpel
+ alien - MEDICAL TOOLS
+ laser - parent type
+ laser1 - lasers also count as catuarys
+ manager - super tool! Retractor/hemostat
+
+
+ scratch
+ screwdriver/ abductor - ENGINEERING TOOLS
+ scrying - Scrying
+ seeds
+ firelemon - combustible lemon is too long so firelemon
+
+ shield
+ shockpaddles
+ shrapnel - Shrapnel projectiles turn into this after trying to embed
+ slapper
+ slime_extract - Slime Extracts
+ slime_scanner - SLIME SCANNER
+ slimepotion - Slime-derived potions
+ snowball
+ soulstone
+ spear/ bonespear - Blatant imitation of spear, but made out of bone. Not valid for explosive modification.
+ stack
+ cable_coil
+ marker_beacon
+ ten - miners start with 10 of these
+ thirty - and they're bought in stacks of 1, 10, or 30
+
+ sheet
+ cardboard - BubbleWrap
+ fur - basic fur sheets
+
+
+ stock_parts/ cell
+ emproof/ reactive - EMP proof so emp_act does not double dip.
+ pulse - 200 pulse shots
+ carbine - 25 pulse shots
+ pistol - 10 pulse shots
+
+
+ storage
+ backpack
+ duffel
+ syndie/med/ surgery_fake - for maint spawns
+
+ fluff
+ hiking - Pineapple Salad: Dan Jello
+ krich_back - lizardzsi: Krichahka
+ ssscratches_back - Ssscratches: Lasshy-Bot
+ syndiesatchel - SkeletalElite: Rawkkihiki
+ thebrew - Greey: Korala Ice
+
+
+ bag
+ dice - Thankfully no longer a pill bottle.
+ ore/ holding - miners, your messiah has arrived
+
+ belt
+ grenade/ tactical - Traitor bundle version
+ utility/ syndi_researcher - A cool looking belt thats essentially a syndicate toolbox
+
+ bible
+ box
+ stockparts/ basic - for ruins where it's a bad idea to give access to an autolathe/protolathe, but still want to make stock parts accessible
+ syndie_kit
+ bundle - Traitor bundles
+ agent13 - 159
+ bond - 137TC
+ darklord - 170TC + Telekinesis
+ grenadier - 133TC + Tactical Grenadier Belt
+ hacker - 180TC
+ implant - 200TC
+ infiltrator - 155TC + RCD & Mesons Autoimplanter
+ maint_loot - syndie briefcase has 600 credits for 5 TC.
+ metroid - 75TC + modules + laser gun
+ payday - 185TC
+ professional - 164TC
+ spy - 172TC
+ thief - 160TC
+
+ contractor
+
+
+ conveyor - Stores conveyor belts, click floor to make belt, use a conveyor switch on this to link all belts to that lever.
+ firstaid/ aquatic_kit - Aquatic Starter Kit
+ part_replacer - Stock Parts
+ photo_album - photo album
+ pill_bottle
+ secure
+ toolbox/fluff/ lunchbox - godoforeos: Jason Conrad
+
+ storm_staff
+ supermatter_halberd - Supermatter Halberd, used by Oblivion Enforcers
+ syndicatedetonator - Syndicate Detonator (aka the big red button)
+ t_scanner - T-RAY SCANNER
+ taperecorder
+ tarot_card_pack
+ tarot_generator
+ telepad_beacon - TELEPAD CALLER
+ thermal_drill
+ toy
+ uplink
+ veilrender - Veil Render
+ watcher_hatchling - A cute pet who will occasionally attack lavaland mobs for you
+ weaponcrafting/ gunkit - These gun kits are printed from the protolathe to then be used in making new weapons
+ wormhole_jaunter - Jaunter
+
+ machinery
+ access_button
+ ai_status_display
+ airlock_controller
+ alarm/ syndicate - general syndicate access
+ anomalous_crystal - Anomolous Crystal
+ dark_reprise - Revives anyone nearby, but turns them into shadowpeople and renders them uncloneable, so the crystal is your only hope of getting up again if you go down.
+ emitter - Generates a projectile when interacted with
+ helpers - Lets ghost spawn as helpful creatures that can only heal people slightly. Incredibly fragile and they can't converse with humans
+ possessor - Allows you to bodyjack small animals, then exit them at your leisure, but you can only do this once per activation. Because they blow up. Also, if the bodyjacked animal dies, SO DO YOU.
+ theme_warp - Warps the area you're in to look like a new one
+
+ atmospherics
+ binary
+ circulator
+ valve/ digital - can be controlled by AI
+
+ portable
+ supermatter_crystal
+ shard/hugbox/ fakecrystal - Hugbox shard with crystal visuals, used in the Supermatter/Hyperfractal shuttle
+
+ trinary
+ filter
+ tvalve/ digital - can be controlled by AI
+
+ unary
+
+ biogenerator
+ bluespace_beacon/syndicate/ infiltrator - beacon guaranteed offline at roundstart for infiltrator base
+ bodyscanner
+ button/ windowtint
+ camera
+ portable - Cameras which are placed inside of things, such as helmets.
+
+ chem_heater
+ chem_master
+ clonepod
+ clonescanner
+ compost bin - used to make soil from plants.
+Doesn't have components.
+ computer
+ constructable_frame - Made into a seperate type to make future revisions easier.
+ cooker
+ crema_switch
+ disco
+ dna_scannernew - DNA MACHINES
+ door
+ door_control
+ doppler_array
+ driver_button
+ economy - Base machine type for machinery that needs to interact with users spending Space Cash or credit from Money Accounts
+has helper procs to automate account authentification and handling transactions.
+ arcade/ claw
+ atm
+ slot_machine
+ vending
+ artvend - General miscellanious vendors
+ boozeomat
+ cigarette/ beach - Used in the lavaland_biodome_beach.dmm ruin
+ tool/ free - we want a free version for engineering to use
+ wallmed/ syndicate - Syndicate/Contraband Vendors
+
+
+ firealarm
+ fishtank
+ flasher/ portable - Portable version of the flasher. Only flashes when anchored
+ gibber
+ gravity_generator
+ grey_autocloner
+ hologram/ holopad - A stationary holopad for projecting hologram and making and receiving holocalls.
+ holosign - HOLOSIGN
+ holosign_switch - SWITCH
+ hydroponics
+ soil - Not actually hydroponics at all! Honk!
+
+ igniter
+ keycard_auth
+ kitchen_machine
+ Light fixture - The standard light tube fixture
+ Small light fixture - The smaller light bulb fixture
+
+ Light fixture frame - Incomplete light tube fixture
+ mass_driver
+ mass_driver_frame - MASS DRIVER FRAME
+ Exosuit Fabricator - A machine that allows for the production of exosuits and robotic parts.
+ mineral - Mineral processing unit console
+ equipment_vendor - Mining Equipment Vendor
+ explorer - Mining Equipment Vendor (Explorer)
+ golem - Mining Equiment Vendor (Golem)
+ labor - Mining Equiment Vendor (Gulag)
+
+ labor_points_checker - Point Lookup Console
+ labor_prisoner_shuttle_console - Prisoners' Console
+ mint
+ Ore Redemption Machine - Turns all the various mining machines into a single unit to speed up tmining and establish a point system.
+ Ore Redemption Machine (Golem) - Golem variant of the ORM.
+ Ore Redemption Machine (Labor Camp) - Labor camp variant of the ORM. Points can be claimed by anyone.
+
+ processing_unit - Mineral processing unit
+ stacking_machine - Mineral stacking unit
+ stacking_unit_console - Mineral stacking unit console
+ unloading_machine - Unloading unit
+
+ Newscaster - For all of the crew's news need. Includes reading, submitting and printing stories.
+ nuclearbomb
+ training - MARK: TRAINING NUKE
+
+ pdapainter
+ photocopier
+ porta_turret
+ power
+ apc
+ off_station - APC type used for when you don't want the power alarm on the APC to show up on AI reports
+ empty_charge - APCs used for ruins, this version also starts devoid of a charge
+
+ syndicate - general syndicate access
+ worn_out
+
+ Bluespace Harvester - A station goal that consumes enormous amounts of power to generate (mostly fluff) rewards
+ compressor
+ emitter
+ port_gen
+ turbine
+
+ prize_counter
+ processor
+ r_n_d/ experimentor
+ recharge_station
+ recycler
+ requests_console
+ shield/cult/ barrier
+ shieldwall - Containment Field START
+ shower
+ shuttle_manipulator
+ sleeper
+ Smart Fridge - Stores items of a specified type.
+ Disk Compartmentalizer - Disk variant of the Smart Fridge .
+ Drink Showcase - Drink variant of the Smart Fridge .
+ Drying Rack - Variant of the Smart Fridge for drying stuff.
+Doesn't have components.
+ Food and Drink Cart - Variant of the Smart Fridge that holds food and drinks in a mobile form
+ Refrigerated Medicine Storage - Medical variant of the Smart Fridge .
+ Secure Fridge - Secure variant of the Smart Fridge .
+Can be emagged and EMP'd to short the lock.
+ Smart Chemical Storage - Secure, Chemistry variant of the Smart Fridge .
+ Circuit Boards Storage - Circuit variant of the Smart Fridge .
+ Slime Extract Storage - Secure, Xenobiology variant of the Smart Fridge .
+ Secure Refrigerated Medicine Storage - Secure, Medical variant of the Smart Fridge .
+
+ Seed Storage - Seeds variant of the Smart Fridge .
+Formerly known as MegaSeed Servitor, but renamed to avoid confusion with the vending machine .
+
+ status_display
+ suit_storage_unit
+ syndicatebomb/ training - Bomb Subtypes
+ Telecommunications Device - This is the base machine for both tcomms devices (core + relay)
+ telepad - SCI TELEPAD
+ teleport
+ the_singularitygen - SINGULARITY SPAWNER
+ ticket_machine
+ transformer
+ washing_machine
+
+ mecha
+ singularity
+ energy_ball - The Tesla engine
+ narsie - Moving narsie to a child object of the singularity so it can be made to function differently. --NEO
+
+ structure
+ alien
+ egg
+ resin/ flower_bud_enemy - inheriting basic attack/damage stuff from alien structures
+ wallweed
+ weeds
+
+ barricade
+ bed/ abductor - STRUCTURES
+ blob
+ captured_nuke - alternative to blob just straight up destroying nukes
+
+ bonfire - BONFIRES
+ lit - haha empty define
+
+ cable
+ chair - fuck you Pete
+ closet
+ cardboard
+ crate
+ miningcar - Mining car (Crate like thing, not the rail car)
+ secure
+ oldstation - Secure Crates: Access locked to Theta crew. Cannot be moved, destroyed,
+emagged or EMPed because gamers can't be trusted not to game.
+ personal
+
+
+ secure_closet
+ Prisoner Belongings Closet - Cannot be opened. Contains the belongings of all kidnapped targets.
+Any item added inside stops processing and starts again when removed.
+ quartermaster/ lavaland - used in mining outpost
+
+ statue - this type path is a crime, ponies what the fuck
+ wardrobe/ miner - Miner Lockers
+
+ constructshell - Transferring to constructs
+ cult/ functional
+ cursed_slot_machine - Greed's slot machine: Used in the Greed ruin. Deals damage on each use, with a successful use giving a d20 of fate.
+ Disaster counter. - Tracks how many shifts it has been since the counter with that ID was exploded.
+ dispenser
+ displaycase
+ disposalholder
+ disposaloutlet
+ disposalpipe
+ door_assembly
+ dropwall_generator
+ elite_tumor
+ falsewall
+ filingcabinet/ filingcabinet - not changing the path to avoid unecessary map issues, but please don't name stuff like this in the future -Pete
+ flora
+ ash
+ rock - Rocks
+ tall_shroom - exists only so that the spawning check doesn't allow these spawning near other things
+
+ grass/ jungle
+ junglebush
+ tree/ jungle
+
+ fluff
+ drake_statue - Ash drake status spawn on either side of the necropolis gate in lavaland.
+ falling - A variety of statue in disrepair; parts are broken off and a gemstone is missing
+
+ empty_cryostasis_sleeper - Empty cryostasis sleepers are created when a malfunctioning cryostasis sleeper in a lavaland shelter is activated
+ empty_sleeper - Empty sleepers are created by a good few ghost roles in lavaland.
+ empty_terrarium - Empty terrariums are created when a preserved terrarium in a lavaland seed vault is activated.
+
+ forcefield - Mimewalls
+ grille/ broken - Pre-broken grilles for map placement
+ inflatable/ door - Based on mineral door code
+ kitchenspike_frame - Kitchen Spike
+ loom - This is a loom. It's usually made out of wood and used to weave fabric like durathread or cotton into their respective cloth types.
+ mecha_wreckage - Mecha wreckage
+ mining_bomb
+ mirror/magic/ pride - Pride's mirror: Used in the Pride ruin.
+ musician
+ ore_box - Ore box
+ plasticflaps/ mining - A specific type for mining that doesn't allow airflow because of them damn crates
+ railing
+ cap - aestetic "end" for railing
+ corner - aesthetic corner sharp edges hurt oof ouch
+
+ reagent_dispensers
+ respawner
+ roulette
+ Safe - A locked container that can only be opened by entering a combination through a dial.
+ Floor Safe - Like a safe, but without density. Can be hidden with flooring.
+
+ shadowcocoon
+ sign/poster/ ripped - POSTER VARIATIONS
+ sink/ puddle - splishy splashy ^_^
+ spawner/nether/ bluespace_tap
+ spider
+ statue/sandstone/ venus - call me when we add marble i guess
+ table
+ wood/ poker - No specialties, Just a mapping object.
+
+ table_frame
+ transit_tube/ station
+ transit_tube_pod
+ window
+
+ vehicle
+
+ procpath - Represents a proc or verb path.
+ sound - Default override for echo
+ turf
+ simulated
+ floor
+ beach
+ away
+ coastline/ dense - for boundary "walls"
+ sand/ dense - for boundary "walls"
+ water/ dense - for boundary "walls"
+
+ water - TODO - Refactor water so they share the same parent type - Or alternatively component something like that
+
+ grass
+ jungle/ no_creep - This vairant shows up under normal turfs so fits in the regular 32x32 sprite
+ no_creep - This vairant shows up under normal turfs so fits in the regular 32x32 sprite
+
+ indestructible/ boss - you put stone tiles on this and use it as a base
+ lava - Lava turf, burns things that are on it.
+Currently a subtype of floor so that footsteps work on it.
+Perhaps we could move it down to /turf/simulated/lava someday, as I dont think footsteps over lava are very important.
+ light
+ plasteel/airless/ indestructible - For bomb testing range
+ plating/ asteroid
+ airless/ cave
+ has_data - subtype for producing a tunnel with given data
+ volcanic/ has_data - subtype for producing a tunnel with given data
+
+ basalt
+ lava - lava underneath
+ 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.
+
+
+ transparent/ glass
+
+ mineral - Mineral deposits
+wall piece
+ wall
+ indestructible/ fakeglass
+ mineral
+ plastitanium - Plastitanium walls
+ titanium - //////////////////Titanium walls/////////////////////
+has to use this path due to how building walls works
+
+
+
+ space/ transit
+ east - moving to the east
+ north - moving to the north
+
+
+ world
+
+
+
+
+
+
+
diff --git a/mob.html b/mob.html
new file mode 100644
index 0000000000000..130a7d858a6b1
--- /dev/null
+++ b/mob.html
@@ -0,0 +1,702 @@
+
+
+
+
+
+
+ /mob - Space Station 13
+
+
+
+
+
+
+Vars
+ active_mutations List of the active mutation types
+ alerts lazy list. contains /atom/movable/screen/alert only, On /mob so clientless mobs will throw alerts properly
+ audio_emote_cd_status Cooldown on audio effects from emotes.
+ audio_emote_unintentional_cd_status Cooldown on audio effects from unintentional emotes.
+ blood_state Weirdly named, effects how blood transfers onto objects
+ bloody_feet Assoc list for tracking how "bloody" a mobs feet are, used for creating bloody foot/shoeprints on turfs when moving
+ bloody_hands Makes items bloody if you touch them
+ buckled movable atoms buckled to this mob
+ buckling movable atom we are buckled to
+ emote_cooldown_override Override for cooldowns on non-audio emotes. Should be a number in deciseconds.
+ emotes_used Tracks last uses of emotes for cooldown purposes
+ feet_blood_DNA Basically a lazy list, copies the DNA of blood you step in
+ feet_blood_color affects the blood color of your feet, color taken from the blood you step in
+ hand True for left hand active, otherwise for right hand active
+ health_hud_override Overrides the health HUD element state if set.
+ hud_type The type of HUD that this mob uses. Not to
+ hud_used The instantiated version of the mob's hud.
+ input_focus The datum receiving keyboard input. parent mob by default.
+ last_movement_dir The direction they last moved
+ last_typed Last thing we typed in to the typing indicator, probably does not need to exist
+ last_typed_time Last time we typed something in to the typing popup
+ memory other mobs we wont move when we're grab pulled. Not empty only when being grab pulled
+ next_click This is mainly modified by click code, to modify click delays elsewhere, use next_move and changeNext_move(), Controls the click delay. Changed with
+ next_click_adjust Unused
+ next_click_modifier Unused
+ next_move_adjust Unused, used to adjust our next move on a linar skill world.time + (how_many_deciseconds + Next move adjust) = Next move
+ next_move_modifier Value to multiply action delays by, actually used world.time + (how_many_deciseconds * Next move Adjust) = Next move
+ observers List of observers currently observing us.
+ open_uis Tracks the open UIs that a mob has, used in TGUI for various things, such as updating UIs
+ runechat_msg_location A soft reference to the location where this mob's runechat message will appear. Uses UID()
.
+ s_active Active storage container
+ screens Used for some screen objects
+ sound_environment_override Override for sound_environments. If this is set the user will always hear a specific type of reverb (Instead of the area defined reverb)
+ speaks_ooc Does this mob speak OOC?
+Controls whether they can say some symbols.
+ suiciding Is our mob currently suiciding? Used for suicide code along with many different revival checks
+ tgui_open_uis global
+ thinking Affects if you have a thinking indicator
+ typing Affects if you have a typing indicator
+ zone_selected The zone this mob is currently targeting Procs
+ ForceContractDisease Forces the mob to contract a virus. If the mob can have viruses. Ignores clothing and other protection
+Returns TRUE if it succeeds. False if it doesn't
+ Process_Spacemove Process_Spacemove
+Called by /client/Move()
+For moving in space
+Return 1 for movement 0 for none
+ adjust_nutrition Adjust the nutrition of a mob
+ become_mouse Returns true if the player successfully becomes a mouse
+ buckle_mob Buckle to another mob
+ can_buckle can the mob be buckled to something by default?
+ can_resist Can this mob resist (default FALSE)
+ can_unbuckle can the mob be unbuckled from something by default?
+ can_use_audio_emote Helper proc to determine if a mob can use emotes that make sound or not.
+ can_use_clickbinds Can this mob use keybinded click actions? (Altclick, Ctrlclick, ect)
+ create_chat_message Creates a message overlay at a defined location for a given speaker
+ custom_emote Perform a custom emote.
+ emote Send an emote.
+ flash_screen_color Flash up a color as an overlay on a player's screen, then fade back to normal.
+ get_mob_buckling_height returns the height in pixel the mob should have when buckled to another mob.
+ get_telepathic_targets Returns an assoc list which contains the mobs in range and their "visible" name.
+Mobs out of view but in range will be listed as unknown. Else they will have their visible name
+ ghost_can_reenter Checks if a mob's ghost can reenter their body or not. Used to check for DNR or AntagHUD.
+ hide_other_mob_action_buttons Hide another mob's action buttons from this mob
+ is_holding Check if an item is in one of our hands
+ manual_emote Allows the intrepid coder to send a basic emote
+Takes text as input, sends it out to those who need to know after some light parsing
+If you need something more complex, make it into a datum emote
+Arguments:
+ on_observing_action_granted Signal proc for COMSIG_MOB_GRANTED_ACTION - If we're viewing another mob's action buttons,
+we need to update with any newly added buttons granted to the mob.
+ on_observing_action_removed Signal proc for COMSIG_MOB_REMOVED_ACTION - If we're viewing another mob's action buttons,
+we need to update with any removed buttons from the mob.
+ pointed Point at an atom
+ post_buckle_mob Call back post buckle to a mob to offset your visual height
+ post_unbuckle_mob Call back post unbuckle from a mob, (reset your visual height here)
+ run_mode proc version to finish /mob/verb/mode() execution. used in case the proc needs to be queued for the tick after its first called
+ run_pointed possibly delayed verb that finishes the pointing process starting in [/mob/verb/pointed()].
+either called immediately or in the tick after pointed() was called, as per the [DEFAULT_QUEUE_OR_CALL_VERB()] macro
+ run_quick_equip proc extender of [/mob/verb/quick_equip] used to make the verb queuable if the server is overloaded
+ say_understands Checks if the mob can understand the other speaker
+ set_invisible Proc to PROPERLY set mob invisibility, huds gotta get set too!
+ set_nutrition Force set the mob nutrition
+ set_thinking_indicator Toggles the floating thought bubble above a players head.
+ set_typing_indicator Toggles the floating chat bubble above a players head.
+ shared_ui_interaction public
+ show_other_mob_action_buttons Show (most) of the another mob's action buttons to this mob
+ show_rads Show an overlay of radiation levels on radioactive objects.
+ shuttleRotate Turf rotate procs
+ special_get_hands_check Specal proc for special mobs that use "hands" in weird ways
+ start_audio_emote_cooldown Start the cooldown for an emote that plays audio.
+ throw_alert Proc to create or update an alert. Returns the alert if the alert is new or updated, 0 if it was thrown already.
+Each mob may only have one alert per category.
+ update_runechat_msg_location Updates the mob's runechat maptext display location.
+ usable_emote_keys Get a list of all emote keys usable by the current mob.
+ Var Details active_mutations
+
+
+
+
+
+ List of the active mutation types
alerts
+
+
+
+
+
+ lazy list. contains /atom/movable/screen/alert only, On /mob so clientless mobs will throw alerts properly
audio_emote_cd_status
+
+
+
+
+
+ Cooldown on audio effects from emotes.
audio_emote_unintentional_cd_status
+
+
+
+
+
+ Cooldown on audio effects from unintentional emotes.
blood_state
+
+
+
+
+
+ Weirdly named, effects how blood transfers onto objects
bloody_feet
+
+
+
+
+
+ Assoc list for tracking how "bloody" a mobs feet are, used for creating bloody foot/shoeprints on turfs when moving
bloody_hands
+
+
+
+
+
+ Makes items bloody if you touch them
buckled
+
+
+
+
+
+ movable atoms buckled to this mob
buckling
+
+
+
+
+
+ movable atom we are buckled to
emote_cooldown_override
+
+
+
+
+
+ Override for cooldowns on non-audio emotes. Should be a number in deciseconds.
emotes_used
+
+
+
+
+
+ Tracks last uses of emotes for cooldown purposes
feet_blood_DNA
+
+
+
+
+
+ Basically a lazy list, copies the DNA of blood you step in
feet_blood_color
+
+
+
+
+
+ affects the blood color of your feet, color taken from the blood you step in
hand
+
+
+
+
+
+ True for left hand active, otherwise for right hand active
health_hud_override
+
+
+
+
+
+ Overrides the health HUD element state if set.
hud_type
+
+
+
+
+
+ The type of HUD that this mob uses. Not to
hud_used
+
+
+
+
+
+ The instantiated version of the mob's hud.
+ The datum receiving keyboard input. parent mob by default.
last_movement_dir
+
+
+
+
+
+ The direction they last moved
last_typed
+
+
+
+
+
+ Last thing we typed in to the typing indicator, probably does not need to exist
last_typed_time
+
+
+
+
+
+ Last time we typed something in to the typing popup
memory
+
+
+
+
+
+ other mobs we wont move when we're grab pulled. Not empty only when being grab pulled
next_click
+
+
+
+
+
+ This is mainly modified by click code, to modify click delays elsewhere, use next_move and changeNext_move(), Controls the click delay. Changed with
next_click_adjust
+
+
+
+
+
+ Unused
next_click_modifier
+
+
+
+
+
+ Unused
next_move_adjust
+
+
+
+
+
+ Unused, used to adjust our next move on a linar skill world.time + (how_many_deciseconds + Next move adjust) = Next move
next_move_modifier
+
+
+
+
+
+ Value to multiply action delays by, actually used world.time + (how_many_deciseconds * Next move Adjust) = Next move
observers
+ – /list/mob/dead/observer
+
+
+
+
+ List of observers currently observing us.
open_uis
+
+
+
+
+
+ Tracks the open UIs that a mob has, used in TGUI for various things, such as updating UIs
runechat_msg_location
+
+
+
+
+
+ A soft reference to the location where this mob's runechat message will appear. Uses UID()
.
+ Active storage container
screens
+
+
+
+
+
+ Used for some screen objects
sound_environment_override
+
+
+
+
+
+ Override for sound_environments. If this is set the user will always hear a specific type of reverb (Instead of the area defined reverb)
speaks_ooc
+
+
+
+
+
+ Does this mob speak OOC?
+Controls whether they can say some symbols.
suiciding
+
+
+
+
+
+ Is our mob currently suiciding? Used for suicide code along with many different revival checks
tgui_open_uis
+
+
+
+
+
+ global
+Tracks open UIs for a user.
thinking
+
+
+
+
+
+ Affects if you have a thinking indicator
typing
+
+
+
+
+
+ Affects if you have a typing indicator
zone_selected
+
+
+
+
+
+ The zone this mob is currently targeting
Proc Details ForceContractDisease
+
+ Forces the mob to contract a virus. If the mob can have viruses. Ignores clothing and other protection
+Returns TRUE if it succeeds. False if it doesn't
+Arguments:
+
+D - the disease the mob will try to contract
+respect_carrier - if set to TRUE will not ignore the disease carrier flag
+notify_ghosts - will notify ghosts of infection if set to TRUE
+ Process_Spacemove(movement_dir)
+
+
+
+
+
+ Process_Spacemove
+Called by /client/Move()
+For moving in space
+Return 1 for movement 0 for none
adjust_nutrition(change)
+
+
+
+
+
+ Adjust the nutrition of a mob
become_mouse()
+
+
+
+
+
+ Returns true if the player successfully becomes a mouse
buckle_mob
+
+ Buckle to another mob
+You can buckle on mobs if you're next to them since most are dense
+Turns you to face the other mob too
can_buckle()
+
+
+
+
+
+ can the mob be buckled to something by default?
can_resist()
+
+
+
+
+
+ Can this mob resist (default FALSE)
can_unbuckle()
+
+
+
+
+
+ can the mob be unbuckled from something by default?
can_use_audio_emote(intentional)
+
+
+
+
+
+ Helper proc to determine if a mob can use emotes that make sound or not.
can_use_clickbinds()
+
+
+
+
+
+ Can this mob use keybinded click actions? (Altclick, Ctrlclick, ect)
create_chat_message(/atom /movable /speaker, raw_message, italics, size, symbol)
+
+
+
+
+
+ Creates a message overlay at a defined location for a given speaker
+Arguments:
+
+speaker - The atom who is saying this message
+raw_message - The text content of the message
+italics - Vacuum and other things
+size - Size of the message
+symbol - The symbol type of the message
+ custom_emote(m_type, message, intentional)
+
+
+
+
+
+ Perform a custom emote.
+
+m_type: Type of message to send.
+message: Content of the message. If none is provided, the user will be prompted to choose the input.
+intentional: Whether or not the user intendeded to perform the emote.
+ emote(emote_key, type_override, message, intentional, force_silence)
+
+
+
+
+
+ Send an emote.
+
+emote_key: Key of the emote being triggered
+m_type: Type of the emote, like EMOTE_AUDIBLE. If this is not null, the default type of the emote will be overridden.
+message: Custom parameter for the emote. This should be used if you want to pass something like a target programmatically.
+intentional: Whether or not the emote was deliberately triggered by the mob. If true, it's forced, which skips some checks when calling the emote.
+force_silence: If true, unusable/nonexistent emotes will not notify the user.
+ flash_screen_color(flash_color, flash_time)
+
+
+
+
+
+ Flash up a color as an overlay on a player's screen, then fade back to normal.
+Arguments:
+
+flash_color - The color to overlay on the screen.
+flash_time - The time it takes for the color to fade back to normal.
+ get_mob_buckling_height
+
+ returns the height in pixel the mob should have when buckled to another mob.
get_telepathic_targets()
+
+
+
+
+
+ Returns an assoc list which contains the mobs in range and their "visible" name.
+Mobs out of view but in range will be listed as unknown. Else they will have their visible name
ghost_can_reenter()
+
+
+
+
+
+ Checks if a mob's ghost can reenter their body or not. Used to check for DNR or AntagHUD.
+Returns FALSE if there is a ghost, and it can't reenter the body. Returns TRUE otherwise.
+ Hide another mob's action buttons from this mob
+Used for observers viewing another mob's screen
is_holding
+
+ Check if an item is in one of our hands
manual_emote(text)
+
+
+
+
+
+ Allows the intrepid coder to send a basic emote
+Takes text as input, sends it out to those who need to know after some light parsing
+If you need something more complex, make it into a datum emote
+Arguments:
+
+text - The text to send out
+
+Returns TRUE if it was able to run the emote, FALSE otherwise.
on_observing_action_granted
+
+ Signal proc for COMSIG_MOB_GRANTED_ACTION - If we're viewing another mob's action buttons,
+we need to update with any newly added buttons granted to the mob.
on_observing_action_removed
+
+ Signal proc for COMSIG_MOB_REMOVED_ACTION - If we're viewing another mob's action buttons,
+we need to update with any removed buttons from the mob.
pointed
+
+ Point at an atom
+mob verbs are faster than object verbs. See
+this byond forum post
+for why this isn't atom/verb/pointed()
+note: ghosts can point, this is intended
+visible_message will handle invisibility properly
+overridden here and in /mob/dead/observer for different point span classes and sanity checks
post_buckle_mob
+
+ Call back post buckle to a mob to offset your visual height
post_unbuckle_mob
+
+ Call back post unbuckle from a mob, (reset your visual height here)
run_mode()
+
+
+
+
+
+ proc version to finish /mob/verb/mode() execution. used in case the proc needs to be queued for the tick after its first called
run_pointed
+
+ possibly delayed verb that finishes the pointing process starting in [/mob/verb/pointed()].
+either called immediately or in the tick after pointed() was called, as per the [DEFAULT_QUEUE_OR_CALL_VERB()] macro
run_quick_equip()
+
+
+
+
+
+ proc extender of [/mob/verb/quick_equip] used to make the verb queuable if the server is overloaded
say_understands
+
+ Checks if the mob can understand the other speaker
+If it return FALSE, then the message will have some letters replaced with stars from the heard message
set_invisible(invis_value)
+
+
+
+
+
+ Proc to PROPERLY set mob invisibility, huds gotta get set too!
set_nutrition(change)
+
+
+
+
+
+ Force set the mob nutrition
set_thinking_indicator(state)
+
+
+
+
+
+ Toggles the floating thought bubble above a players head.
+Arguments:
+
+state - Should a thought bubble be shown or hidden
+ set_typing_indicator(state, me)
+
+
+
+
+
+ Toggles the floating chat bubble above a players head.
+Arguments:
+
+state - Should a chat bubble be shown or hidden
+me - Is the bubble being caused by the 'me' emote command
+ shared_ui_interaction(src_object)
+
+
+
+
+
+ public
+Standard interaction/sanity checks. Different mob types may have overrides.
+return UI_state The state of the UI.
+ Show (most) of the another mob's action buttons to this mob
+Used for observers viewing another mob's screen
show_rads(range)
+
+
+
+
+
+ Show an overlay of radiation levels on radioactive objects.
shuttleRotate(rotation, params)
+
+
+
+
+
+ Turf rotate procs
+Mob rotate procs
special_get_hands_check()
+
+
+
+
+
+ Specal proc for special mobs that use "hands" in weird ways
start_audio_emote_cooldown(intentional, cooldown)
+
+
+
+
+
+ Start the cooldown for an emote that plays audio.
+Arguments:
+
+intentional - Whether or not the user deliberately triggered this emote.
+cooldown - The amount of time that should be waited before any other audio emote can fire.
+ throw_alert(category, type, severity, /obj /new_master, override, timeout_override, no_anim, icon_override, /list/alert_args)
+
+
+
+
+
+ Proc to create or update an alert. Returns the alert if the alert is new or updated, 0 if it was thrown already.
+Each mob may only have one alert per category.
+Arguments:
+
+category - a text string corresponding to what type of alert it is
+type - a type path of the actual alert type to throw
+severity - is an optional number that will be placed at the end of the icon_state for this alert
+For example, high pressure's icon_state is "highpressure" and can be serverity 1 or 2 to get "highpressure1" or "highpressure2"
+obj/new_master - optional argument. Sets the alert's icon state to "template" in the ui_style icons with the master as an overlay. Clicks are forwarded to master
+no_anim - whether the alert should play a small sliding animation when created on the player's screen
+icon_override - makes it so the alert is not replaced until cleared by a clear_alert with clear_override, and it's used for hallucinations.
+list/alert_args - a list of arguments to pass to the alert when creating it
+ update_runechat_msg_location()
+
+
+
+
+
+ Updates the mob's runechat maptext display location.
+By default, we set this to the src mob's UID()
.
usable_emote_keys(intentional_use)
+
+
+
+
+
+ Get a list of all emote keys usable by the current mob.
+
+intentional_use: Whether or not to check based on if the action was intentional.
+
+
+
+
diff --git a/mob/camera/aiEye/remote/xenobio.html b/mob/camera/aiEye/remote/xenobio.html
new file mode 100644
index 0000000000000..a63347caf4007
--- /dev/null
+++ b/mob/camera/aiEye/remote/xenobio.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/camera/aiEye/remote/xenobio - Space Station 13
+
+
+
+
+
+
+Vars
+ allowed_area Area that the xenobio camera eye is allowed to travel
+ Var Details allowed_area
+
+
+
+
+
+ Area that the xenobio camera eye is allowed to travel
+
+
+
diff --git a/mob/dead/observer.html b/mob/dead/observer.html
new file mode 100644
index 0000000000000..90742a38f5f66
--- /dev/null
+++ b/mob/dead/observer.html
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ /mob/dead/observer - Space Station 13
+
+
+
+
+
+
+Vars
+ alive_runechat_color The "color" their runechat would have had
+ data_hud_seen Defines from __DEFINES/hud.dm go here based on which huds the ghost has activated.
+ gas_scan toggle for ghost gas analyzer
+ mob_observed UID of the mob which we are currently observing
+ plant_analyzer toggle for ghost plant analyzer Procs
+ check_ahud_rejoin_eligibility Check if a player has antag-hudded, and if so, if they can rejoin.
+Returns TRUE if the player can rejoin, and FALSE if the player is ineligible to rejoin.
+If allow_roundstart_observers is FALSE (TRUE by default), then any observers who were able to ahud due to joining roundstart will be excluded as well.
+ cleanup_observe Clean up observing
+ toggle_all_huds_off Toggles off all HUDs for the ghost player.
+ toggle_all_huds_on Toggles on all HUDs for the ghost player.
+ Var Details alive_runechat_color
+
+
+
+
+
+ The "color" their runechat would have had
data_hud_seen
+
+
+
+
+
+ Defines from __DEFINES/hud.dm go here based on which huds the ghost has activated.
gas_scan
+
+
+
+
+
+ toggle for ghost gas analyzer
mob_observed
+
+
+
+
+
+ UID of the mob which we are currently observing
plant_analyzer
+
+
+
+
+
+ toggle for ghost plant analyzer
Proc Details check_ahud_rejoin_eligibility(allow_roundstart_observers)
+
+
+
+
+
+ Check if a player has antag-hudded, and if so, if they can rejoin.
+Returns TRUE if the player can rejoin, and FALSE if the player is ineligible to rejoin.
+If allow_roundstart_observers is FALSE (TRUE by default), then any observers who were able to ahud due to joining roundstart will be excluded as well.
cleanup_observe()
+
+
+
+
+
+ Clean up observing
toggle_all_huds_off()
+
+
+
+
+
+ Toggles off all HUDs for the ghost player.
toggle_all_huds_on
+
+ Toggles on all HUDs for the ghost player.
+Enables antag HUD only if the ghost belongs to an admin.
+Arguments:
+
+user - A reference to the ghost's old mob. This argument is required since src
does not have a client
at this point.
+
+
+
+
diff --git a/mob/living.html b/mob/living.html
new file mode 100644
index 0000000000000..3caf0b220d2db
--- /dev/null
+++ b/mob/living.html
@@ -0,0 +1,554 @@
+
+
+
+
+
+
+ /mob/living - Space Station 13
+
+
+
+
+
+
+Vars
+ admin_prev_sleeping Used for keeping track of previous sleeping value with admin freeze.
+ advanced_bullet_dodge_chance This variable is the chance for a mob to automatically dodge a bullet. Useful for admins, and applied to some mobs by default, such as the malfunctioning drone mobs.
+ flags_2 Flag to enable these making trees semi-transparent if behind them
+ forced_look This can either be a numerical direction or a soft object reference (UID). It makes the mob always face towards the selected thing.
+ frozen Used for preventing attacks on admin-frozen mobs.
+ holder_type the type of holder that will be created when a mob gets scooped up
+ incorporeal_move Allows mobs to move through dense areas without restriction. For instance, in space or out of holder objects.
+ last_taste_text Stores a var of the last tast message we got. used so we don't spam people messages while they eat
+ last_taste_time Stores a var of the last world time we tasted something. used so we don't spam people messages while they eat
+ last_words Famous last words -- if succumbing, what the user's last words were
+ lying_angle Number of degrees of rotation of a mob. 0 means no rotation, up-side facing NORTH. 90 means up-side rotated to face EAST, and so on.
+ resting if a mob is choosing to lay down
+ stamina_regen_block_modifier A multiplier for the ammount of time it takes for someone to regenerate stamina damage. Procs
+ AdjustConfused Sets confusion to current amount + given, clamped between lower and higher bounds.
+ AdjustDizzy Sets dizziness to current amount + given, clamped between lower and higher bounds.
+ AdjustDrowsy Sets drowsiness to current amount + given, clamped between lower and higher bounds.
+ AdjustDrunk Sets drunkenness to current amount + given, clamped between lower and higher bounds.
+ AdjustSleeping used for admin freezing.
+ Confused Sets confusion if it's higher than current.
+ Dizzy Sets dizziness if it's higher than current.
+ Drowsy Sets drowsiness if it's higher than current.
+ Drunk Sets drunkenness if it's higher than current.
+ IsFrozen FROZEN
+ SetConfused Sets confusion if it's higher than zero.
+ SetDizzy Sets dizziness if it's higher than zero.
+ SetDrowsy Sets drowsiness if it's higher than zero.
+ SetDrunk Sets drunkenness if it's higher than zero.
+ add_stun_absorption STUN ABSORPTION
+ admin_Freeze mob freeze procs
+ advanced_bullet_dodge Tries to dodge incoming bullets if we aren't disabled for any reasons. Advised to overide with advanced effects, this is as basic example admins can apply.
+ apply_status_effect Applies a given status effect to this mob, returning the effect if it was successful or null otherwise
+ can_run_surgery Check to see if a surgical operation proposed on ourselves is valid or not. We are the target of the surgery
+ clear_forced_look Clears the mob's direction lock if enabled.
+ electrocute_act As the name suggests, this should be called to apply electric shocks.
+ get_confusion Returns current amount of confusion , 0 if none.
+ get_dizziness Returns current amount of dizziness , 0 if none.
+ get_drowsiness Returns current amount of drowsiness , 0 if none.
+ get_drunkenness Returns current amount of drunkenness , 0 if none.
+ grant_guardian_actions Grants all existing /datum/action/guardian
type actions to the src mob.
+ handle_fire Burns a mob and slowly puts the fires out. Returns TRUE if the mob is on fire
+ has_status_effect Returns the effect if the mob calling the proc owns the given status effect, or null otherwise
+ has_status_effect_list Returns a list of effects with matching IDs that the mod owns; use for effects there can be multiple of
+ has_status_effect_type Returns the effect if the mob calling the proc owns the given status effect, but checks by type.
+ on_fakedeath_trait_gain Called when [TRAIT_FAKEDEATH] is added to the mob.
+ on_fakedeath_trait_loss Called when [TRAIT_FAKEDEATH] is removed from the mob.
+ on_floored_trait_gain Called when TRAIT_FLOORED is added to the mob.
+ on_floored_trait_loss Called when TRAIT_FLOORED is removed from the mob.
+ on_forced_standing_trait_gain Called when [TRAIT_FORCED_STANDING] is added to the mob.
+ on_forced_standing_trait_loss Called when [TRAIT_FORCED_STANDING] is removed from the mob.
+ on_handsblocked_trait_gain Called when TRAIT_HANDS_BLOCKED is added to the mob.
+ on_handsblocked_trait_loss Called when TRAIT_HANDS_BLOCKED is removed from the mob.
+ on_immobilized_trait_gain Called when TRAIT_IMMOBILIZED is added to the mob.
+ on_immobilized_trait_loss Called when TRAIT_IMMOBILIZED is removed from the mob.
+ on_knockedout_trait_gain Called when TRAIT_KNOCKEDOUT is added to the mob.
+ on_knockedout_trait_loss Called when TRAIT_KNOCKEDOUT is removed from the mob.
+ on_pull_blocked_trait_gain Called when TRAIT_CANNOT_PULL is added to the mob.
+ on_pull_blocked_trait_loss Called when TRAIT_CANNOT_PULL is removed from the mob.
+ on_restrained_trait_gain Called when TRAIT_RESTRAINED is added to the mob.
+ on_restrained_trait_loss Called when TRAIT_RESTRAINED is removed from the mob.
+ on_ui_blocked_trait_gain Called when TRAIT_UI_BLOCKED is added to the mob.
+ on_ui_blocked_trait_loss Called when TRAIT_UI_BLOCKED is removed from the mob.
+ register_init_signals Called on /mob/living/Initialize(mapload) , for the mob to register to relevant signals.
+ remove_guardian_actions Removes all /datum/action/guardian
type actions from the src mob.
+ remove_status_effect Removes all of a given status effect from this mob, returning TRUE if at least one was removed
+ run_resist proc extender of [/mob/living/verb/resist] meant to make the process queable if the server is overloaded when the verb is called
+ set_forced_look Sets the mob's direction lock towards a given atom.
+ set_lying_angle Changes the inclination angle of a mob, used by humans and others to differentiate between standing up and prone positions.
+ shared_living_ui_distance public
+ transfer_blood_to BLOOD TRANSFERS
+ Var Details admin_prev_sleeping
+
+
+
+
+
+ Used for keeping track of previous sleeping value with admin freeze.
advanced_bullet_dodge_chance
+
+
+
+
+
+ This variable is the chance for a mob to automatically dodge a bullet. Useful for admins, and applied to some mobs by default, such as the malfunctioning drone mobs.
flags_2
+
+
+
+
+
+ Flag to enable these making trees semi-transparent if behind them
forced_look
+
+
+
+
+
+ This can either be a numerical direction or a soft object reference (UID). It makes the mob always face towards the selected thing.
frozen
+
+
+
+
+
+ Used for preventing attacks on admin-frozen mobs.
holder_type
+
+
+
+
+
+ the type of holder that will be created when a mob gets scooped up
incorporeal_move
+
+
+
+
+
+ Allows mobs to move through dense areas without restriction. For instance, in space or out of holder objects.
last_taste_text
+
+
+
+
+
+ Stores a var of the last tast message we got. used so we don't spam people messages while they eat
last_taste_time
+
+
+
+
+
+ Stores a var of the last world time we tasted something. used so we don't spam people messages while they eat
last_words
+
+
+
+
+
+ Famous last words -- if succumbing, what the user's last words were
lying_angle
+
+
+
+
+
+ Number of degrees of rotation of a mob. 0 means no rotation, up-side facing NORTH. 90 means up-side rotated to face EAST, and so on.
resting
+
+
+
+
+
+ if a mob is choosing to lay down
stamina_regen_block_modifier
+
+
+
+
+
+ A multiplier for the ammount of time it takes for someone to regenerate stamina damage.
Proc Details AdjustConfused(amount, bound_lower, bound_upper)
+
+
+
+
+
+ Sets confusion to current amount + given, clamped between lower and higher bounds.
+Arguments:
+
+amount - Amount to add. Can be negative to reduce duration.
+bound_lower - Minimum bound to set at least to. Defaults to 0.
+bound_upper - Maximum bound to set up to. Defaults to 5 minutes.
+ AdjustDizzy(amount, bound_lower, bound_upper)
+
+
+
+
+
+ Sets dizziness to current amount + given, clamped between lower and higher bounds.
+Arguments:
+
+amount - Amount to add. Can be negative to reduce duration.
+bound_lower - Minimum bound to set at least to. Defaults to 0.
+bound_upper - Maximum bound to set up to. Defaults to 5 minutes.
+ AdjustDrowsy(amount, bound_lower, bound_upper)
+
+
+
+
+
+ Sets drowsiness to current amount + given, clamped between lower and higher bounds.
+Arguments:
+
+amount - Amount to add. Can be negative to reduce duration.
+bound_lower - Minimum bound to set at least to. Defaults to 0.
+bound_upper - Maximum bound to set up to. Defaults to 5 minutes.
+ AdjustDrunk(amount, bound_lower, bound_upper)
+
+
+
+
+
+ Sets drunkenness to current amount + given, clamped between lower and higher bounds.
+Arguments:
+
+amount - Amount to add. Can be negative to reduce duration.
+bound_lower - Minimum bound to set at least to. Defaults to 0.
+bound_upper - Maximum bound to set up to. Defaults to 5 minutes.
+ AdjustSleeping(amount, bound_lower, bound_upper)
+
+
+
+
+
+ used for admin freezing.
Confused(amount)
+
+
+
+
+
+ Sets confusion if it's higher than current.
Dizzy(amount)
+
+
+
+
+
+ Sets dizziness if it's higher than current.
Drowsy(amount)
+
+
+
+
+
+ Sets drowsiness if it's higher than current.
Drunk(amount)
+
+
+
+
+
+ Sets drunkenness if it's higher than current.
IsFrozen()
+
+
+
+
+
+ FROZEN
SetConfused(amount)
+
+
+
+
+
+ Sets confusion if it's higher than zero.
SetDizzy(amount)
+
+
+
+
+
+ Sets dizziness if it's higher than zero.
SetDrowsy(amount)
+
+
+
+
+
+ Sets drowsiness if it's higher than zero.
SetDrunk(amount)
+
+
+
+
+
+ Sets drunkenness if it's higher than zero.
add_stun_absorption(key, duration, priority, message, self_message, examine_message)
+
+
+
+
+
+ STUN ABSORPTION
admin_Freeze(/client /admin, skip_overlays, mech)
+
+
+
+
+
+ mob freeze procs
advanced_bullet_dodge
+
+ Tries to dodge incoming bullets if we aren't disabled for any reasons. Advised to overide with advanced effects, this is as basic example admins can apply.
apply_status_effect(effect, ...)
+
+
+
+
+
+ Applies a given status effect to this mob, returning the effect if it was successful or null otherwise
+ Check to see if a surgical operation proposed on ourselves is valid or not. We are the target of the surgery
clear_forced_look(quiet)
+
+
+
+
+
+ Clears the mob's direction lock if enabled.
+Arguments:
+
+quiet - Whether to display a chat message.
+ electrocute_act(shock_damage, source, siemens_coeff, flags)
+
+
+
+
+
+ As the name suggests, this should be called to apply electric shocks.
get_confusion()
+
+
+
+
+
+ Returns current amount of confusion , 0 if none.
get_dizziness()
+
+
+
+
+
+ Returns current amount of dizziness , 0 if none.
get_drowsiness()
+
+
+
+
+
+ Returns current amount of drowsiness , 0 if none.
get_drunkenness()
+
+
+
+
+
+ Returns current amount of drunkenness , 0 if none.
+ Grants all existing /datum/action/guardian
type actions to the src mob.
+Called whenever the host gains their gauardian.
handle_fire()
+
+
+
+
+
+ Burns a mob and slowly puts the fires out. Returns TRUE if the mob is on fire
has_status_effect(effect)
+
+
+
+
+
+ Returns the effect if the mob calling the proc owns the given status effect, or null otherwise
has_status_effect_list(effect)
+
+
+
+
+
+ Returns a list of effects with matching IDs that the mod owns; use for effects there can be multiple of
has_status_effect_type(effect)
+
+
+
+
+
+ Returns the effect if the mob calling the proc owns the given status effect, but checks by type.
on_fakedeath_trait_gain
+
+ Called when [TRAIT_FAKEDEATH] is added to the mob.
on_fakedeath_trait_loss
+
+ Called when [TRAIT_FAKEDEATH] is removed from the mob.
on_floored_trait_gain
+
+ Called when TRAIT_FLOORED is added to the mob.
on_floored_trait_loss
+
+ Called when TRAIT_FLOORED is removed from the mob.
on_forced_standing_trait_gain
+
+ Called when [TRAIT_FORCED_STANDING] is added to the mob.
on_forced_standing_trait_loss
+
+ Called when [TRAIT_FORCED_STANDING] is removed from the mob.
on_handsblocked_trait_gain
+
+ Called when TRAIT_HANDS_BLOCKED is added to the mob.
on_handsblocked_trait_loss
+
+ Called when TRAIT_HANDS_BLOCKED is removed from the mob.
on_immobilized_trait_gain
+
+ Called when TRAIT_IMMOBILIZED is added to the mob.
on_immobilized_trait_loss
+
+ Called when TRAIT_IMMOBILIZED is removed from the mob.
on_knockedout_trait_gain
+
+ Called when TRAIT_KNOCKEDOUT is added to the mob.
on_knockedout_trait_loss
+
+ Called when TRAIT_KNOCKEDOUT is removed from the mob.
on_pull_blocked_trait_gain
+
+ Called when TRAIT_CANNOT_PULL is added to the mob.
on_pull_blocked_trait_loss
+
+ Called when TRAIT_CANNOT_PULL is removed from the mob.
on_restrained_trait_gain
+
+ Called when TRAIT_RESTRAINED is added to the mob.
on_restrained_trait_loss
+
+ Called when TRAIT_RESTRAINED is removed from the mob.
on_ui_blocked_trait_gain
+
+ Called when TRAIT_UI_BLOCKED is added to the mob.
on_ui_blocked_trait_loss
+
+ Called when TRAIT_UI_BLOCKED is removed from the mob.
register_init_signals()
+
+
+
+
+
+ Called on /mob/living/Initialize(mapload) , for the mob to register to relevant signals.
remove_guardian_actions()
+
+
+
+
+
+ Removes all /datum/action/guardian
type actions from the src mob.
+Called whenever the host loses their guardian.
remove_status_effect(effect, ...)
+
+
+
+
+
+ Removes all of a given status effect from this mob, returning TRUE if at least one was removed
run_resist()
+
+
+
+
+
+ proc extender of [/mob/living/verb/resist] meant to make the process queable if the server is overloaded when the verb is called
set_forced_look
+
+ Sets the mob's direction lock towards a given atom.
+Arguments:
+
+a - The atom to face towards.
+track - If TRUE, updates our direction relative to the atom when moving.
+ set_lying_angle(new_lying)
+
+
+
+
+
+ Changes the inclination angle of a mob, used by humans and others to differentiate between standing up and prone positions.
+In BYOND-angles 0 is NORTH, 90 is EAST, 180 is SOUTH and 270 is WEST.
+This usually means that 0 is standing up, 90 and 270 are horizontal positions to right and left respectively, and 180 is upside-down.
+Mobs that do now follow these conventions due to unusual sprites should require a special handling or redefinition of this proc, due to the density and layer changes.
+The return of this proc is the previous value of the modified lying_angle if a change was successful (might include zero), or null if no change was made.
shared_living_ui_distance
+
+ public
+Distance versus interaction check.
+required src_object atom/movable The object which owns the UI.
+return UI_state The state of the UI.
transfer_blood_to
+
+ BLOOD TRANSFERS
+
+
+
diff --git a/mob/living/carbon.html b/mob/living/carbon.html
new file mode 100644
index 0000000000000..7d770f771fce4
--- /dev/null
+++ b/mob/living/carbon.html
@@ -0,0 +1,285 @@
+
+
+
+
+
+
+ /mob/living/carbon - Space Station 13
+
+
+
+
+
+
+Vars
+ co2overloadtime Used to track how much CO2 is in our system. Too much CO2 means you get stunned and die
+ dreaming How many dream messages we have left to send
+ handcuffed Whether or not the mob is handcuffed, restraints/handcuffs/ required for var/cuffed_state
+ head The object stored on the head of the mob. Strangly not on the Human level
+ internal_organ_datums An associated list of strings that associate it with the organ datum, e.g. [ORGAN_DATUM_HEART] = /datum/organ/heart
+ last_pain_message Stores the last pain message we got. used to prevent chatspam from pain
+ legcuffed Same as handcuffs but for legs. Bear traps use this.
+ life_tick The amount of life ticks that have processed on this mob.
+ next_pain_time Stores the last time we sent a pain message. used to prevent chatspam from pain
+ nightmare How many nightmare messages we have left to send
+ pose Active emote/pose. Similar to flavor text
+ pulse Current pulse of this mob. Updated by handle_pulse on life
+ wear_suit The object stored on the exosuit slot of the mob. Strangly not on the Human level
+ wetlevel Tracks how wet the mob is. Only used for examining the mob Procs
+ can_breathe_helmet Returns TRUE if an air tank compatible helmet is equipped.
+ can_breathe_internals Returns TRUE if an air tank compatible mask or breathing tube is equipped.
+ can_breathe_mask Returns TRUE if an air tank compatible mask is equipped.
+ can_breathe_tube Returns TRUE if a breathing tube is equipped.
+ can_feel_pain Whether or not a mob can feel pain.
+ dream DREAMS
+ electrocute_act Adds to the parent by also adding functionality to propagate shocks through pulling and doing some fluff effects.
+ examine_damage_flavor Add specific damage flavor here.
+ examine_extra_damage_flavor Add any extra info which should be within the "damage" block, the big warning span.
+ examine_extra_general_flavor Add some last information in before HUDs get put through.
+ examine_handle_individual_limb Special handlers for processing limbs go here, based on limb names in examine_visible_clothing.
+ examine_start_damage_block Add whatever you want to start the damage block with here.
+ examine_visible_clothing Get the message parts, in order, for a proper examine.
+Message parts should be as follows:
+ examine_what_am_i Identify what this mob in particular is.
+ has_virus Whether a virus worthy displaying on the HUD is present.
+ is_in_crit Medical HUD! Basic mode needs suit sensors on.
+Whether the carbon mob is currently in crit.
+ pat_out Handles patting out a fire on someone.
+ secondary_shock Called slightly after electrocute act to reduce jittering and apply a secondary knockdown.
+ toggle_give Toggles the /datum/click_intercept/give on or off for the src mob.
+ update_suit_sensors HOOKS
+ Var Details co2overloadtime
+
+
+
+
+
+ Used to track how much CO2 is in our system. Too much CO2 means you get stunned and die
dreaming
+
+
+
+
+
+ How many dream messages we have left to send
+ Whether or not the mob is handcuffed, restraints/handcuffs/ required for var/cuffed_state
head
+
+
+
+
+
+ The object stored on the head of the mob. Strangly not on the Human level
internal_organ_datums
+
+
+
+
+
+ An associated list of strings that associate it with the organ datum, e.g. [ORGAN_DATUM_HEART] = /datum/organ/heart
last_pain_message
+
+
+
+
+
+ Stores the last pain message we got. used to prevent chatspam from pain
legcuffed
+
+
+
+
+
+ Same as handcuffs but for legs. Bear traps use this.
life_tick
+
+
+
+
+
+ The amount of life ticks that have processed on this mob.
next_pain_time
+
+
+
+
+
+ Stores the last time we sent a pain message. used to prevent chatspam from pain
nightmare
+
+
+
+
+
+ How many nightmare messages we have left to send
pose
+
+
+
+
+
+ Active emote/pose. Similar to flavor text
pulse
+
+
+
+
+
+ Current pulse of this mob. Updated by handle_pulse on life
+ The object stored on the exosuit slot of the mob. Strangly not on the Human level
wetlevel
+
+
+
+
+
+ Tracks how wet the mob is. Only used for examining the mob
Proc Details can_breathe_helmet()
+
+
+
+
+
+ Returns TRUE if an air tank compatible helmet is equipped.
can_breathe_internals()
+
+
+
+
+
+ Returns TRUE if an air tank compatible mask or breathing tube is equipped.
can_breathe_mask()
+
+
+
+
+
+ Returns TRUE if an air tank compatible mask is equipped.
can_breathe_tube()
+
+
+
+
+
+ Returns TRUE if a breathing tube is equipped.
can_feel_pain()
+
+
+
+
+
+ Whether or not a mob can feel pain.
+Returns TRUE if the mob can feel pain, FALSE otherwise
dream()
+
+
+
+
+
+ DREAMS
electrocute_act(shock_damage, source, siemens_coeff, flags)
+
+
+
+
+
+ Adds to the parent by also adding functionality to propagate shocks through pulling and doing some fluff effects.
examine_damage_flavor()
+
+
+
+
+
+ Add specific damage flavor here.
+ Add any extra info which should be within the "damage" block, the big warning span.
+ Add some last information in before HUDs get put through.
examine_handle_individual_limb(limb_name)
+
+
+
+
+
+ Special handlers for processing limbs go here, based on limb names in examine_visible_clothing.
examine_start_damage_block(skip_gloves, skip_suit_storage, skip_jumpsuit, skip_shoes, skip_mask, skip_ears, skip_eyes, skip_face)
+
+
+
+
+
+ Add whatever you want to start the damage block with here.
examine_visible_clothing(skip_gloves, skip_suit_storage, skip_jumpsuit, skip_shoes, skip_mask, skip_ears, skip_eyes, skip_face)
+
+
+
+
+
+ Get the message parts, in order, for a proper examine.
+Message parts should be as follows:
+
+Pronoun/intro for how they've got it on them
+The item itself
+Preposition for where it is
+the location it's in
+
+Arguments represent whether to skip a certain slot when handling the message.
examine_what_am_i(skip_jumpsuit, skip_face)
+
+
+
+
+
+ Identify what this mob in particular is.
has_virus()
+
+
+
+
+
+ Whether a virus worthy displaying on the HUD is present.
is_in_crit()
+
+
+
+
+
+ Medical HUD! Basic mode needs suit sensors on.
+Whether the carbon mob is currently in crit.
pat_out
+
+ Handles patting out a fire on someone.
+Removes 0.5 fire stacks per pat, with a 30% chance of the user burning their hand if they don't have adequate heat resistance.
+Arguments:
+
+src - The mob doing the patting
+target - The mob who is currently on fire
+ secondary_shock(should_stun)
+
+
+
+
+
+ Called slightly after electrocute act to reduce jittering and apply a secondary knockdown.
toggle_give()
+
+
+
+
+
+ Toggles the /datum/click_intercept/give on or off for the src mob.
update_suit_sensors()
+
+
+
+
+
+ HOOKS
+
+
+
diff --git a/mob/living/carbon/alien.html b/mob/living/carbon/alien.html
new file mode 100644
index 0000000000000..ae13ab2e46605
--- /dev/null
+++ b/mob/living/carbon/alien.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /mob/living/carbon/alien - Space Station 13
+
+
+
+
+
+
+Procs
+ get_caste_organs returns the list of type paths of the organs that we need to insert into
+this particular xeno upon its creation
Proc Details get_caste_organs()
+
+
+
+
+
+ returns the list of type paths of the organs that we need to insert into
+this particular xeno upon its creation
+
+
+
diff --git a/mob/living/carbon/alien/humanoid/hunter.html b/mob/living/carbon/alien/humanoid/hunter.html
new file mode 100644
index 0000000000000..ada69d4c8be01
--- /dev/null
+++ b/mob/living/carbon/alien/humanoid/hunter.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/living/carbon/alien/humanoid/hunter - Space Station 13
+
+
+
+
+
+
+
+ Var Details on_leap_cooldown
+
+
+
+
+
+ Are we on leap cooldown?
+
+
+
diff --git a/mob/living/carbon/human.html b/mob/living/carbon/human.html
new file mode 100644
index 0000000000000..2bcb503128f0f
--- /dev/null
+++ b/mob/living/carbon/human.html
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+ /mob/living/carbon/human - Space Station 13
+
+
+
+
+
+
+Vars
+ body_type The body type associated with the body
+ bodyparts_by_name map organ names to organs
+ height Players' height (more fluff)
+ physique Players physique (even MORE fluff)
+ previous_damage_appearance Stores what the body last looked like. Prevents updating the body when we don't need to
+ receiving_cpr_from UID of the person who is giving this mob CPR.
+ tail Name of tail image in species effects icon file.
+ wing Same as tail but wing Procs
+ Robotize For transforming humans into robots (cyborgs).
+ add_comment Helper function to add a "comment" to a data record. Used for medical or security records.
+ adjustBrainLoss sums up all the damage of all the limbs
+ check_eye_prot check_eye_prot()
+Returns a number between -1 to 2
+ check_vital_organs Returns true if all the mob's vital organs are functional, otherwise returns false
+ electrocute_act Calculates the siemens coeff based on clothing and species, can also restart hearts.
+ get_cpr_timer_adjustment Get the amount of time that this round of CPR should add to the death timer
+ get_runechat_color Helper to get the mobs runechat colour span
+ handle_fire FIRE CODE
+ mind_checks Handles any adjustments to the mob after a mind transfer.
+ regrow_external_limb_if_missing Regrows a given external limb if it is missing. Does not add internal organs back in.
+Returns whether or not it regrew the limb
+ sec_hud_set_ID Security HUDs! Basic mode shows only the job.
+ set_species Change a mob's species.
+ setup_dna Sets up DNA and species.
+ setup_other Sets up other variables and components that may be needed for gameplay.
+ tintcheck tintcheck()
+Checks eye covering items for visually impairing tinting, such as welding masks
+Checked in life.dm. 0 & 1 = no impairment, 2 = welding mask overlay, 3 = You can see jack, but you can't see shit.
+ update_hair Generates overlays for the hair layer.
+ Var Details body_type
+
+
+
+
+
+ The body type associated with the body
bodyparts_by_name
+
+
+
+
+
+ map organ names to organs
height
+
+
+
+
+
+ Players' height (more fluff)
physique
+
+
+
+
+
+ Players physique (even MORE fluff)
previous_damage_appearance
+
+
+
+
+
+ Stores what the body last looked like. Prevents updating the body when we don't need to
receiving_cpr_from
+
+
+
+
+
+ UID of the person who is giving this mob CPR.
tail
+
+
+
+
+
+ Name of tail image in species effects icon file.
wing
+
+
+
+
+
+ Same as tail but wing
Proc Details Robotize
+
+ For transforming humans into robots (cyborgs).
+Arguments:
+
+cell_type: A type path of the cell the new borg should receive.
+connect_to_default_AI: TRUE if you want /robot/New() to handle connecting the borg to the AI with the least borgs.
+AI: A reference to the AI we want to connect to.
+
+ Helper function to add a "comment" to a data record. Used for medical or security records.
adjustBrainLoss(amount, updating, use_brain_mod)
+
+
+
+
+
+ sums up all the damage of all the limbs
check_eye_prot()
+
+
+
+
+
+ check_eye_prot()
+Returns a number between -1 to 2
check_vital_organs()
+
+
+
+
+
+ Returns true if all the mob's vital organs are functional, otherwise returns false
electrocute_act(shock_damage, source, siemens_coeff, flags)
+
+
+
+
+
+ Calculates the siemens coeff based on clothing and species, can also restart hearts.
get_cpr_timer_adjustment(cpr_mod)
+
+
+
+
+
+ Get the amount of time that this round of CPR should add to the death timer
get_runechat_color()
+
+
+
+
+
+ Helper to get the mobs runechat colour span
+Basically just a quick redirect to the DNA handler that gets the species-specific colour handler
handle_fire()
+
+
+
+
+
+ FIRE CODE
mind_checks()
+
+
+
+
+
+ Handles any adjustments to the mob after a mind transfer.
regrow_external_limb_if_missing(limb_name)
+
+
+
+
+
+ Regrows a given external limb if it is missing. Does not add internal organs back in.
+Returns whether or not it regrew the limb
+Arguments:
+
+limb_name - The name of the limb being added. "l_arm" for example
+ sec_hud_set_ID()
+
+
+
+
+
+ Security HUDs! Basic mode shows only the job.
set_species(/datum /species /new_species, use_default_color, delay_icon_update, skip_same_check, retain_damage, transformation, keep_missing_bodyparts)
+
+
+
+
+
+ Change a mob's species.
+Arguments:
+
+new_species - The user's new species.
+use_default_color - If true, use the species' default color for the new mob.
+delay_icon_update - If true, UpdateAppearance() won't be called in this proc.
+skip_same_check - If true, don't bail out early if we would be changing to our current species and run through everything anyway.
+retain_damage - If true, damage on the mob will be re-applied post-transform. Otherwise, the mob will have its organs healed.
+transformation - If true, don't apply new species traits to the mob. A false value should be used when creating a new mob instead of transforming into a new species.
+keep_missing_bodyparts - If true, any bodyparts (legs, head, etc.) that were missing on the mob before species change will be missing post-change as well.
+ setup_dna
+
+ Sets up DNA and species.
+Arguments:
+
+new_species - The new species to assign.
+ setup_other()
+
+
+
+
+
+ Sets up other variables and components that may be needed for gameplay.
tintcheck()
+
+
+
+
+
+ tintcheck()
+Checks eye covering items for visually impairing tinting, such as welding masks
+Checked in life.dm. 0 & 1 = no impairment, 2 = welding mask overlay, 3 = You can see jack, but you can't see shit.
update_hair()
+
+
+
+
+
+ Generates overlays for the hair layer.
+
+
+
diff --git a/mob/living/carbon/human/monkey/magic.html b/mob/living/carbon/human/monkey/magic.html
new file mode 100644
index 0000000000000..f4bdbfe1e004d
--- /dev/null
+++ b/mob/living/carbon/human/monkey/magic.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/living/carbon/human/monkey/magic - Space Station 13
+
+
+
+
+
+
+Vars
+ return_timer Stores the timer ID of the timer that happens in Life() to prevent multiple of the same timer happening.
+ Var Details return_timer
+
+
+
+
+
+ Stores the timer ID of the timer that happens in Life() to prevent multiple of the same timer happening.
+
+
+
diff --git a/mob/living/silicon.html b/mob/living/silicon.html
new file mode 100644
index 0000000000000..33f3e0ee238a7
--- /dev/null
+++ b/mob/living/silicon.html
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+ /mob/living/silicon - Space Station 13
+
+
+
+
+
+
+
+ Var Details is_centered
+
+
+
+
+
+ For cyborgs with wide "heads", when false causes the hat icon to be stretched.
Proc Details can_hear()
+
+
+
+
+
+ EAR DAMAGE
place_on_head
+
+ Attempts to put an item on a silicon's head.
+Arguments:
+
+item_to_add - The item we're attempting to place on a silicon.
+user - Mob trying to put a hat on a silicon.
+Returns boolean reflecting if a hat was succesfully placed on the silicon.
+ remove_from_head
+
+ Attempts to remove any hats a silicon is wearing.
+Arguments:
+
+user - Mob trying to remove a silicon's hat.
+Returns boolean reflecting if a hat was successfully removed from the silicon.
+ run_armor(damage_amount, damage_type, damage_flag, attack_dir, armour_penetration_flat, armour_penetration_percentage)
+
+
+
+
+
+ returns the damage value of the attack after processing the silicons's various armor protections
subsystem_atmos_control()
+
+
+
+
+
+ Atmos Control
subsystem_crew_monitor()
+
+
+
+
+
+ Crew Monitor
subsystem_law_manager()
+
+
+
+
+
+ Law Manager
subsystem_power_monitor()
+
+
+
+
+
+ Power Monitor
+
+
+
diff --git a/mob/living/silicon/ai.html b/mob/living/silicon/ai.html
new file mode 100644
index 0000000000000..40376f4d444cb
--- /dev/null
+++ b/mob/living/silicon/ai.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /mob/living/silicon/ai - Space Station 13
+
+
+
+
+
+
+
+ Var Details
+ The cached AI annoucement help menu.
allow_teleporter
+
+
+
+
+
+ If true, this AI core can use the teleporter.
announce_arrivals
+
+
+
+
+
+ If our AI doesn't want to be the arrivals announcer, this gets set to FALSE.
cracked_camera
+
+
+
+
+
+ Set to true if the AI cracks it's camera by using the malf ability
purchased_modules
+
+
+
+
+
+ List of modules the AI has purchased malf upgrades for.
turrets_upgraded
+
+
+
+
+
+ Whether or not the AI has upgraded their turrets
Proc Details remove_malf_abilities()
+
+
+
+
+
+ Removes all malfunction-related /datum/action's from the target AI.
+
+
+
diff --git a/mob/living/silicon/pai.html b/mob/living/silicon/pai.html
new file mode 100644
index 0000000000000..10ca186ed3b99
--- /dev/null
+++ b/mob/living/silicon/pai.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /mob/living/silicon/pai - Space Station 13
+
+
+
+
+
+
+
+ Var Details
+ Currently active software
installed_software
+ – /list/datum/pai_software
+
+
+
+
+ List of all installed software
+ Integrated remote signaler for signalling
+
+
+
diff --git a/mob/living/silicon/robot.html b/mob/living/silicon/robot.html
new file mode 100644
index 0000000000000..8fc527abcc250
--- /dev/null
+++ b/mob/living/silicon/robot.html
@@ -0,0 +1,413 @@
+
+
+
+
+
+
+ /mob/living/silicon/robot - Space Station 13
+
+
+
+
+
+
+Vars
+ allow_rename Can a robot rename itself with the Namepick verb?
+ base_icon The default skin of some special robots.
+ braintype Determines if the robot is referred to as an "Android", "Robot", or "Cyborg" based on the type of brain inside.
+ brute_mod Incoming brute damage is multiplied by this number.
+ burn_mod Incoming burn damage is multiplied by this number.
+ can_lock_cover If set to TRUE, a robot can re-lock its own cover.
+ components Components are basically robot organs.
+ custom_eye_names Robot skins with multiple variants for different modules. They require special handling to make their eyes display.
+ custom_panel Does the robot have a non-default sprite for an open service panel?
+ custom_panel_names Robot skins with non-default sprites for an open service panel.
+ damage_protection All incoming damage has this number subtracted from it.
+ ear_protection Is the robot protected from the audio component of flashbangs? Prevents inflicting confusion.
+ emagged Has the robot been emagged?
+ emp_protection Is the robot immune to EMPs?
+ eye_protection Is the robot protected from the visual portion of flashbangs and flashes(1)? Are they protected from laser pointer (2)?
+ floorbuffer Does the robot clean dirt under it when it moves onto a tile?
+ has_advanced_reagent_vision If set to TRUE, the robot can see the types and precice quantities of reagents in transparent containers, the % amount of different reagents in opaque containers, and can identify different blood types.
+ has_camera Determines if a robot acts as a mobile security camera that can be observed through security consoles or by an AI.
+ ident Used when generating the number in default robot names.
+ ionpulse Does the robot have ion thrusters installed?
+ ionpulse_on Are the robot's ion thrusters activated?
+ is_emaggable Can the robot be emagged?
+ lamp_intensity Luminosity of the headlamp. 0 is off. Higher settings than the minimum require power. Increments in steps of 2.
+ lamp_max Maximum brightness of a robot's headlamp. Set as a var for easy adjusting.
+ lamp_recharging Flag for if the headlamp is on cooldown after being forcibly disabled (e.g. by a shadow deamon).
+ last_camera_update When the camera moved signal was sent last. Avoid overdoing it.
+ lawupdate Determines if the robot tries to sync its laws to a connected AI.
+ lockcharge Used when locking down a robot to preserve cell charge.
+ locked Is the robot's cover locked?
+ low_power_mode Has the robot's power cell run out of charge?
+ mail_destination Integer used to determine self-mailing location, used only by drones and saboteur robots.
+ mmi Used for deconstruction to remember what the robot was constructed out of.
+ modtype What specialisation the robot has.
+ modules_break If set to TRUE, the robot's 3 module slots will progressively become unusable as they take damage.
+ opened Is the robot's maintenance panel open?
+ pdahide If set to TRUE, the robot will be hidden on the PDA messenger list.
+ req_access Used for robot access checks.
+ req_one_access Determines the ID access needed to unlock the robot's cover.
+ robot_suit Used for deconstruction to remember what the robot was constructed out of.
+ scrambledcodes If set to TRUE, a robot will not be visible on the robotics control console.
+ speed Speed modifier. Positive numbers reduce speed, negative numbers increase it.
+ tracking_entities The number of known entities currently accessing the internal camera.
+ weapons_unlock Setting to TRUE unlocks a borg's Safety Override modules. Procs
+ get_module_sprites Returns an associative list of possible borg sprites based on the selected_module
.
+ get_module_types Returns a list of choosable module types, associated with the module icon for the radial menu.
+ initialize_module Sets up the module items and sprites for the cyborg module chosen in pick_module()
.
+ observer_screen_update Updates the observers's screens with cyborg itemss.
+Arguments
+ on_drop_hotkey_press Used in robot.dm
when the user presses "Q" by default.
+ robot_module_hat_offset Sets the offset for a cyborg's hats based on their module icon.
+Borgs are grouped by similar sprites (Eg. all the Noble borgs are all the same sprite but recoloured.)
+ set_mail_tag Set Mail Tag
+ spill_upgrades Take the borg's upgrades and spill them on the floor
+ Var Details allow_rename
+
+
+
+
+
+ Can a robot rename itself with the Namepick verb?
base_icon
+
+
+
+
+
+ The default skin of some special robots.
braintype
+
+
+
+
+
+ Determines if the robot is referred to as an "Android", "Robot", or "Cyborg" based on the type of brain inside.
brute_mod
+
+
+
+
+
+ Incoming brute damage is multiplied by this number.
burn_mod
+
+
+
+
+
+ Incoming burn damage is multiplied by this number.
can_lock_cover
+
+
+
+
+
+ If set to TRUE, a robot can re-lock its own cover.
components
+
+
+
+
+
+ Components are basically robot organs.
custom_eye_names
+
+
+
+
+
+ Robot skins with multiple variants for different modules. They require special handling to make their eyes display.
custom_panel
+
+
+
+
+
+ Does the robot have a non-default sprite for an open service panel?
custom_panel_names
+
+
+
+
+
+ Robot skins with non-default sprites for an open service panel.
damage_protection
+
+
+
+
+
+ All incoming damage has this number subtracted from it.
ear_protection
+
+
+
+
+
+ Is the robot protected from the audio component of flashbangs? Prevents inflicting confusion.
emagged
+
+
+
+
+
+ Has the robot been emagged?
emp_protection
+
+
+
+
+
+ Is the robot immune to EMPs?
eye_protection
+
+
+
+
+
+ Is the robot protected from the visual portion of flashbangs and flashes(1)? Are they protected from laser pointer (2)?
floorbuffer
+
+
+
+
+
+ Does the robot clean dirt under it when it moves onto a tile?
has_advanced_reagent_vision
+
+
+
+
+
+ If set to TRUE, the robot can see the types and precice quantities of reagents in transparent containers, the % amount of different reagents in opaque containers, and can identify different blood types.
has_camera
+
+
+
+
+
+ Determines if a robot acts as a mobile security camera that can be observed through security consoles or by an AI.
ident
+
+
+
+
+
+ Used when generating the number in default robot names.
ionpulse
+
+
+
+
+
+ Does the robot have ion thrusters installed?
ionpulse_on
+
+
+
+
+
+ Are the robot's ion thrusters activated?
is_emaggable
+
+
+
+
+
+ Can the robot be emagged?
lamp_intensity
+
+
+
+
+
+ Luminosity of the headlamp. 0 is off. Higher settings than the minimum require power. Increments in steps of 2.
lamp_max
+
+
+
+
+
+ Maximum brightness of a robot's headlamp. Set as a var for easy adjusting.
lamp_recharging
+
+
+
+
+
+ Flag for if the headlamp is on cooldown after being forcibly disabled (e.g. by a shadow deamon).
last_camera_update
+
+
+
+
+
+ When the camera moved signal was sent last. Avoid overdoing it.
lawupdate
+
+
+
+
+
+ Determines if the robot tries to sync its laws to a connected AI.
lockcharge
+
+
+
+
+
+ Used when locking down a robot to preserve cell charge.
locked
+
+
+
+
+
+ Is the robot's cover locked?
low_power_mode
+
+
+
+
+
+ Has the robot's power cell run out of charge?
mail_destination
+
+
+
+
+
+ Integer used to determine self-mailing location, used only by drones and saboteur robots.
+ Used for deconstruction to remember what the robot was constructed out of.
modtype
+
+
+
+
+
+ What specialisation the robot has.
modules_break
+
+
+
+
+
+ If set to TRUE, the robot's 3 module slots will progressively become unusable as they take damage.
opened
+
+
+
+
+
+ Is the robot's maintenance panel open?
pdahide
+
+
+
+
+
+ If set to TRUE, the robot will be hidden on the PDA messenger list.
req_access
+
+
+
+
+
+ Used for robot access checks.
req_one_access
+
+
+
+
+
+ Determines the ID access needed to unlock the robot's cover.
robot_suit
+
+
+
+
+
+ Used for deconstruction to remember what the robot was constructed out of.
scrambledcodes
+
+
+
+
+
+ If set to TRUE, a robot will not be visible on the robotics control console.
speed
+
+
+
+
+
+ Speed modifier. Positive numbers reduce speed, negative numbers increase it.
tracking_entities
+
+
+
+
+
+ The number of known entities currently accessing the internal camera.
weapons_unlock
+
+
+
+
+
+ Setting to TRUE unlocks a borg's Safety Override modules.
Proc Details get_module_sprites(selected_module)
+
+
+
+
+
+ Returns an associative list of possible borg sprites based on the selected_module
.
+Key: Sprite name | Value: Sprite icon
+Arguments:
+
+selected_module - The chosen cyborg module to get the sprites for.
+ get_module_types()
+
+
+
+
+
+ Returns a list of choosable module types, associated with the module icon for the radial menu.
+Key: Module name | Value: Module 'icon'
+By default this returns the Engineering, Janitor, Medical, Mining, and Service modules.
+If there are any [/mob/living/silicon/robot/var/force_modules] set, then they are returned instead.
+If the MMI has a xenomorph brain in it ([/obj/item/mmi/var/alien]), then only the "Hunter" and standard modules is returned.
initialize_module(selected_module, selected_sprite, /list/module_sprites)
+
+
+
+
+
+ Sets up the module items and sprites for the cyborg module chosen in pick_module()
.
+Arguments:
+
+selected_module - The name of the module chosen by the player in the previous procs.
+selected_sprite - The name of the sprite chosen by the player in the previous procs.
+module_sprites - The list of sprites possible for the given module. Used to transfer the icon
and icon_state
variables to the player.
+ observer_screen_update
+
+ Updates the observers's screens with cyborg itemss.
+Arguments
+
+item_module - the item being added or removed from the screen
+add - whether or not the item is being added, or removed.
+ on_drop_hotkey_press()
+
+
+
+
+
+ Used in robot.dm
when the user presses "Q" by default.
robot_module_hat_offset(module)
+
+
+
+
+
+ Sets the offset for a cyborg's hats based on their module icon.
+Borgs are grouped by similar sprites (Eg. all the Noble borgs are all the same sprite but recoloured.)
+Arguments:
+
+module - An icon_state
for which the offset needs to be calculated.
+ set_mail_tag()
+
+
+
+
+
+ Set Mail Tag
spill_upgrades()
+
+
+
+
+
+ Take the borg's upgrades and spill them on the floor
+
+
+
diff --git a/mob/living/silicon/robot/drone.html b/mob/living/silicon/robot/drone.html
new file mode 100644
index 0000000000000..385b2b9fc9d48
--- /dev/null
+++ b/mob/living/silicon/robot/drone.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/living/silicon/robot/drone - Space Station 13
+
+
+
+
+
+
+
+ Var Details sync_cooldown
+
+
+
+
+
+ Cooldown for law syncs
+
+
+
diff --git a/mob/living/simple_animal.html b/mob/living/simple_animal.html
new file mode 100644
index 0000000000000..ad916af3a7f51
--- /dev/null
+++ b/mob/living/simple_animal.html
@@ -0,0 +1,344 @@
+
+
+
+
+
+
+ /mob/living/simple_animal - Space Station 13
+
+
+
+
+
+
+Vars
+ AIStatus The Status of our AI, can be set to AI_ON (On, usual processing), AI_IDLE (Will not process, but will return to AI_ON if an enemy comes near), AI_OFF (Off, Not processing ever)
+ admin_prev_health Health of the mob before being admin-frozen, restored afterwards
+ animal_species Sorry, no spider+corgi buttbabies.
+ armour_penetration_flat Flat armour reduction, occurs after percentage armour penetration.
+ armour_penetration_percentage Percentage armour reduction, happens before flat armour reduction.
+ atmos_requirements Atmos effect - Yes, you can make creatures that require plasma or co2 to survive. N2O is a trace gas and handled separately, hence why it isn't here. It'd be hard to add it. Hard and me don't mix (Yes, yes make all the dick jokes you want with that.) - Errorage
+ can_be_on_fire If the mob can catch fire
+ can_collar Can add collar to mob or not, use the set_can_collar if you want to change this on runtime
+ can_crawl Can this simple mob crawl or not? If FALSE, it won't get immobilized by crawling
+ can_have_ai Once we have become sentient, we can never go back
+ childtype Hot simple_animal baby making vars
+ cold_damage_per_tick Same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
+ collar_type If the mob has collar sprites, define them.
+ damage_coeff 1 for full damage , 0 for none , -1 for 1:1 heal from that source
+ death_sound The sound played on death
+ del_on_death Causes mob to be deleted on death, useful for mobs that spawn lootable corpses
+ emote_hear Hearable emotes
+ emote_see Unlike speak_emote, the list of things in this variable only show by themselves with no spoken text. IE: Ian barks, Ian yaps
+ environment_smash Set to 1 to allow breaking of crates,lockers,racks,tables; 2 for walls; 3 for Rwalls
+ fire_damage Damage the mob will take if it is on fire
+ flip_on_death Flip the sprite upside down on death. Mostly here for things lacking custom dead sprites.
+ footstep_type What kind of footstep this mob should have. Null if it shouldn't have any.
+ force_threshold Minimum force required to deal any damage
+ friendly If the mob does no damage with it's attack
+ gold_core_spawnable If the mob can be spawned with a gold slime core. HOSTILE_SPAWN are spawned with plasma, FRIENDLY_SPAWN are spawned with blood
+ healable Healable by medical stacks? Defaults to yes.
+ heat_damage_per_tick Amount of damage applied if animal's body temperature is higher than maxbodytemp
+ icon_gib We only try to show a gibbing animation if this exists.
+ loot List of things spawned at mob's loc when it dies
+ master_commander Holding var for determining who own/controls a sentient simple animal (for sentience potions).
+ melee_damage_lower LETTING SIMPLE ANIMALS ATTACK? WHAT COULD GO WRONG. Defaults to zero so Ian can still be cuddly
+ melee_damage_type Damage type of a simple mob's melee attack, should it do damage.
+ my_z I don't want to confuse this with client registered_z
+ obj_damage How much damage this simple animal does to objects, if any
+ pass_door_while_hidden Allows a mob to pass unbolted doors while hidden
+ sentience_type Sentience type, for slime potions
+ shouldwakeup Convenience var for forcibly waking up an idling AI on next check.
+ speed Higher speed is slower, negative speed is faster
+ stop_automated_movement Use this to temporarely stop random movement or to if you write special movement code for animals.
+ stop_automated_movement_when_pulled When set to TRUE this stops the animal from moving when someone is pulling it.
+ unique_pet If the mob can be renamed
+ unsuitable_atmos_damage This damage is taken when atmos doesn't fit all the requirements above
+ wander Does the mob wander around when idle?
+ xenobiology_spawned Was this mob spawned by xenobiology magic? Used for mobcapping. Procs
+ handle_atom_del We need to clear the reference to where we're walking to properly GC
+ Var Details AIStatus
+
+
+
+
+
+ The Status of our AI, can be set to AI_ON (On, usual processing), AI_IDLE (Will not process, but will return to AI_ON if an enemy comes near), AI_OFF (Off, Not processing ever)
admin_prev_health
+
+
+
+
+
+ Health of the mob before being admin-frozen, restored afterwards
animal_species
+
+
+
+
+
+ Sorry, no spider+corgi buttbabies.
armour_penetration_flat
+
+
+
+
+
+ Flat armour reduction, occurs after percentage armour penetration.
armour_penetration_percentage
+
+
+
+
+
+ Percentage armour reduction, happens before flat armour reduction.
atmos_requirements
+
+
+
+
+
+ Atmos effect - Yes, you can make creatures that require plasma or co2 to survive. N2O is a trace gas and handled separately, hence why it isn't here. It'd be hard to add it. Hard and me don't mix (Yes, yes make all the dick jokes you want with that.) - Errorage
can_be_on_fire
+
+
+
+
+
+ If the mob can catch fire
can_collar
+
+
+
+
+
+ Can add collar to mob or not, use the set_can_collar if you want to change this on runtime
can_crawl
+
+
+
+
+
+ Can this simple mob crawl or not? If FALSE, it won't get immobilized by crawling
can_have_ai
+
+
+
+
+
+ Once we have become sentient, we can never go back
childtype
+
+
+
+
+
+ Hot simple_animal baby making vars
cold_damage_per_tick
+
+
+
+
+
+ Same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
collar_type
+
+
+
+
+
+ If the mob has collar sprites, define them.
damage_coeff
+
+
+
+
+
+ 1 for full damage , 0 for none , -1 for 1:1 heal from that source
death_sound
+
+
+
+
+
+ The sound played on death
del_on_death
+
+
+
+
+
+ Causes mob to be deleted on death, useful for mobs that spawn lootable corpses
emote_hear
+
+
+
+
+
+ Hearable emotes
emote_see
+
+
+
+
+
+ Unlike speak_emote, the list of things in this variable only show by themselves with no spoken text. IE: Ian barks, Ian yaps
environment_smash
+
+
+
+
+
+ Set to 1 to allow breaking of crates,lockers,racks,tables; 2 for walls; 3 for Rwalls
fire_damage
+
+
+
+
+
+ Damage the mob will take if it is on fire
flip_on_death
+
+
+
+
+
+ Flip the sprite upside down on death. Mostly here for things lacking custom dead sprites.
+ What kind of footstep this mob should have. Null if it shouldn't have any.
force_threshold
+
+
+
+
+
+ Minimum force required to deal any damage
friendly
+
+
+
+
+
+ If the mob does no damage with it's attack
gold_core_spawnable
+
+
+
+
+
+ If the mob can be spawned with a gold slime core. HOSTILE_SPAWN are spawned with plasma, FRIENDLY_SPAWN are spawned with blood
healable
+
+
+
+
+
+ Healable by medical stacks? Defaults to yes.
heat_damage_per_tick
+
+
+
+
+
+ Amount of damage applied if animal's body temperature is higher than maxbodytemp
icon_gib
+
+
+
+
+
+ We only try to show a gibbing animation if this exists.
loot
+
+
+
+
+
+ List of things spawned at mob's loc when it dies
+ Holding var for determining who own/controls a sentient simple animal (for sentience potions).
melee_damage_lower
+
+
+
+
+
+ LETTING SIMPLE ANIMALS ATTACK? WHAT COULD GO WRONG. Defaults to zero so Ian can still be cuddly
melee_damage_type
+
+
+
+
+
+ Damage type of a simple mob's melee attack, should it do damage.
my_z
+
+
+
+
+
+ I don't want to confuse this with client registered_z
obj_damage
+
+
+
+
+
+ How much damage this simple animal does to objects, if any
pass_door_while_hidden
+
+
+
+
+
+ Allows a mob to pass unbolted doors while hidden
sentience_type
+
+
+
+
+
+ Sentience type, for slime potions
shouldwakeup
+
+
+
+
+
+ Convenience var for forcibly waking up an idling AI on next check.
speed
+
+
+
+
+
+ Higher speed is slower, negative speed is faster
stop_automated_movement
+
+
+
+
+
+ Use this to temporarely stop random movement or to if you write special movement code for animals.
stop_automated_movement_when_pulled
+
+
+
+
+
+ When set to TRUE this stops the animal from moving when someone is pulling it.
unique_pet
+
+
+
+
+
+ If the mob can be renamed
unsuitable_atmos_damage
+
+
+
+
+
+ This damage is taken when atmos doesn't fit all the requirements above
wander
+
+
+
+
+
+ Does the mob wander around when idle?
xenobiology_spawned
+
+
+
+
+
+ Was this mob spawned by xenobiology magic? Used for mobcapping.
Proc Details handle_atom_del
+
+ We need to clear the reference to where we're walking to properly GC
+
+
+
diff --git a/mob/living/simple_animal/bot.html b/mob/living/simple_animal/bot.html
new file mode 100644
index 0000000000000..5abdaab4191ea
--- /dev/null
+++ b/mob/living/simple_animal/bot.html
@@ -0,0 +1,323 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/bot - Space Station 13
+
+
+
+
+
+
+Vars
+ Radio The bot's radio, for speaking to people.
+ access_card The ID card that the bot "holds"
+ ai_waypoint The end point of a bot's path, or the target location.
+ auto_patrol Set to make bot automatically patrol
+ awaiting_beacon Count of pticks awaiting a beacon response
+ base_speed The speed at which the bot moves, or the number of times it moves per process() tick.
+ blockcount Number of times retried a blocked path
+ bot_filter The radio filter the bot uses to identify itself on the network.
+ bot_name storing bot_name prior to pai and restoring it. MULEBOT uses this for suffix system
+ bot_purpose Bot Purpose under Show Laws
+ bot_type Type of bot, one of the *_BOT defines.
+ calling_ai Links a bot to the AI calling it.
+ control_freq Bot control frequency
+ data_hud_type The type of data HUD the bot uses. Diagnostic by default.
+ declare_message What the bot will display to the HUD user.
+ destination Destination description tag
+ frustration Used by some bots for tracking failures to reach their target.
+ hacked Used to differentiate between being hacked by silicons and emagged by humans.
+ hijacked Is currently hijacked by a pulse demon?
+ ignore_job List of jobs claimed by bot
+ ignore_list List of unreachable targets for an ignore-list enabled bot to ignore.
+ ignore_list_cleanup_timer This ticks up every automated action, at 300 we clean the ignore list
+ last_target_location Storing last chased target known location
+ lost_target Will be true if we lost target we were chasing
+ mode Standardizes the vars that indicate the bot is busy with its function.
+ model The type of bot it is.
+ nearest_beacon The nearest beacon's tag
+ nearest_beacon_loc The nearest beacon's location
+ new_destination Pending new destination (waiting for beacon response)
+ next_destination The next destination in the patrol route
+ open Maint panel
+ path List of turfs through which a bot 'steps' to reach the waypoint
+ patrol_target This is turf to navigate to (location of beacon)
+ radio_channel The bot's default radio channel
+ radio_config Which channels can the bot listen to
+ remote_disabled If enabled, the AI cannot Remotely control a bot. It can still control it through cameras.
+ req_access List of access values you can have to access the bot. Consider this as req_one_access
+ summon_target The turf of a user summoning a bot.
+ text_dehack Text shown when resetting a bots hacked status to normal.
+ text_dehack_fail Shown when a silicon tries to reset a bot emagged with the emag item, which cannot be reset.
+ text_hack Custom text returned to a silicon upon hacking a bot.
+ tries Number of times the bot tried and failed to move.
+ Var Details
+ The bot's radio, for speaking to people.
+ The ID card that the bot "holds"
ai_waypoint
+
+
+
+
+
+ The end point of a bot's path, or the target location.
auto_patrol
+
+
+
+
+
+ Set to make bot automatically patrol
awaiting_beacon
+
+
+
+
+
+ Count of pticks awaiting a beacon response
base_speed
+
+
+
+
+
+ The speed at which the bot moves, or the number of times it moves per process() tick.
blockcount
+
+
+
+
+
+ Number of times retried a blocked path
bot_filter
+
+
+
+
+
+ The radio filter the bot uses to identify itself on the network.
bot_name
+
+
+
+
+
+ storing bot_name prior to pai and restoring it. MULEBOT uses this for suffix system
bot_purpose
+
+
+
+
+
+ Bot Purpose under Show Laws
bot_type
+
+
+
+
+
+ Type of bot, one of the *_BOT defines.
+ Links a bot to the AI calling it.
control_freq
+
+
+
+
+
+ Bot control frequency
data_hud_type
+
+
+
+
+
+ The type of data HUD the bot uses. Diagnostic by default.
declare_message
+
+
+
+
+
+ What the bot will display to the HUD user.
destination
+
+
+
+
+
+ Destination description tag
frustration
+
+
+
+
+
+ Used by some bots for tracking failures to reach their target.
hacked
+
+
+
+
+
+ Used to differentiate between being hacked by silicons and emagged by humans.
hijacked
+
+
+
+
+
+ Is currently hijacked by a pulse demon?
ignore_job
+
+
+
+
+
+ List of jobs claimed by bot
ignore_list
+
+
+
+
+
+ List of unreachable targets for an ignore-list enabled bot to ignore.
ignore_list_cleanup_timer
+
+
+
+
+
+ This ticks up every automated action, at 300 we clean the ignore list
last_target_location
+
+
+
+
+
+ Storing last chased target known location
lost_target
+
+
+
+
+
+ Will be true if we lost target we were chasing
mode
+
+
+
+
+
+ Standardizes the vars that indicate the bot is busy with its function.
model
+
+
+
+
+
+ The type of bot it is.
nearest_beacon
+
+
+
+
+
+ The nearest beacon's tag
nearest_beacon_loc
+
+
+
+
+
+ The nearest beacon's location
new_destination
+
+
+
+
+
+ Pending new destination (waiting for beacon response)
next_destination
+
+
+
+
+
+ The next destination in the patrol route
open
+
+
+
+
+
+ Maint panel
path
+
+
+
+
+
+ List of turfs through which a bot 'steps' to reach the waypoint
patrol_target
+
+
+
+
+
+ This is turf to navigate to (location of beacon)
radio_channel
+
+
+
+
+
+ The bot's default radio channel
radio_config
+
+
+
+
+
+ Which channels can the bot listen to
remote_disabled
+
+
+
+
+
+ If enabled, the AI cannot Remotely control a bot. It can still control it through cameras.
req_access
+
+
+
+
+
+ List of access values you can have to access the bot. Consider this as req_one_access
summon_target
+
+
+
+
+
+ The turf of a user summoning a bot.
text_dehack
+
+
+
+
+
+ Text shown when resetting a bots hacked status to normal.
text_dehack_fail
+
+
+
+
+
+ Shown when a silicon tries to reset a bot emagged with the emag item, which cannot be reset.
text_hack
+
+
+
+
+
+ Custom text returned to a silicon upon hacking a bot.
tries
+
+
+
+
+
+ Number of times the bot tried and failed to move.
+
+
+
diff --git a/mob/living/simple_animal/bot/floorbot.html b/mob/living/simple_animal/bot/floorbot.html
new file mode 100644
index 0000000000000..6095b0c79a5b8
--- /dev/null
+++ b/mob/living/simple_animal/bot/floorbot.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/bot/floorbot - Space Station 13
+
+
+
+
+
+
+Vars
+ amount Tiles in inventory
+ autotile Fix the floor and include a tile.
+ eat_tiles Add floor tiles to inventory
+ make_tiles Convert metal into floor tiles (drops on floor)
+ nagged Prevents the Floorbot nagging more than once per refill.
+ process_type Determines what to do when process_scan() receives a target. See process_scan() for details.
+ replace_tiles Add tiles to existing floor
+ Var Details amount
+
+
+
+
+
+ Tiles in inventory
autotile
+
+
+
+
+
+ Fix the floor and include a tile.
eat_tiles
+
+
+
+
+
+ Add floor tiles to inventory
make_tiles
+
+
+
+
+
+ Convert metal into floor tiles (drops on floor)
nagged
+
+
+
+
+
+ Prevents the Floorbot nagging more than once per refill.
process_type
+
+
+
+
+
+ Determines what to do when process_scan() receives a target. See process_scan() for details.
replace_tiles
+
+
+
+
+
+ Add tiles to existing floor
+
+
+
diff --git a/mob/living/simple_animal/bot/mulebot.html b/mob/living/simple_animal/bot/mulebot.html
new file mode 100644
index 0000000000000..a0847bc260ea4
--- /dev/null
+++ b/mob/living/simple_animal/bot/mulebot.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/bot/mulebot - Space Station 13
+
+
+
+
+
+
+
+ Var Details next_move_time
+
+
+
+
+
+ world.time of next move
step_delay
+
+
+
+
+
+ Delay in deciseconds between each step
+
+
+
diff --git a/mob/living/simple_animal/butterfly.html b/mob/living/simple_animal/butterfly.html
new file mode 100644
index 0000000000000..487a2dfd2486f
--- /dev/null
+++ b/mob/living/simple_animal/butterfly.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/butterfly - Space Station 13
+
+
+
+
+
+
+Procs
+ decompose Made so severe anxiety does not overload the SSmob while keeping it's effect
Proc Details decompose()
+
+
+
+
+
+ Made so severe anxiety does not overload the SSmob while keeping it's effect
+
+
+
diff --git a/mob/living/simple_animal/demon/pulse_demon.html b/mob/living/simple_animal/demon/pulse_demon.html
new file mode 100644
index 0000000000000..275ac095804d5
--- /dev/null
+++ b/mob/living/simple_animal/demon/pulse_demon.html
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/demon/pulse_demon - Space Station 13
+
+
+
+
+
+
+Vars
+ apc_being_hijacked Reference to the APC currently being hijacked.
+ apc_images Images of APCs currently being shown on the client.
+ bot_movedelay Delay tracker for movement inside bots.
+ cable_images Images of cables currently being shown on the client.
+ can_exit_cable Controls whether the demon can move outside of cables. Toggled by a spell.
+ charge Current quantity of power the demon currently holds, spent while purchasing, upgrading or using spells or upgrades. Use adjust_charge to modify this.
+ charge_drained Book keeping for objective win conditions.
+ controlling_area Area being controlled, should be maintained as long as the demon does not move outside a container (APC, object, robot, bot).
+ current_bot Inhabited bot, only maintained while inside the bot.
+ current_cable Inhabited cable, only maintained while on top of the cable.
+ current_power Inhabited power source, maintained while inside, or while inside its area if it is an APC.
+ current_robot Inhabited cyborg, only maintained while inside the cyborg.
+ current_weapon Inhabited item, only items which can be used in rechargers can be hijacked. Only maintained while inside the item.
+ do_drain Controls whether the demon will drain power from sources. Toggled by a spell.
+ emp_debounce Tracking to prevent multiple EMPs in the same tick from instakilling a demon.
+ glow_color The color of light the demon emits. The range of the light is proportional to charge.
+ health_loss_rate Amount of health lost per Life tick when the power requirement was not met.
+ health_regen_rate Amount of health regenerated per Life tick when the power requirement was met.
+ hijack_time The time it takes to hijack APCs and cyborgs.
+ hijacked_apcs List of all previously hijacked APCs.
+ hijacked_robots A cyborg that has already been hijacked can be re-entered instantly.
+ hurt_sounds List of sounds that is picked from when the demon dies or is EMP'd.
+ inside_cable_speed Speed used while moving inside cables.
+ max_drain_rate Maximum value for power_drain_rate based on upgrades.
+ maxcharge Maximum quantity of power the demon can hold at once.
+ outside_cable_speed Speed used while moving outside cables. Can be upgraded.
+ power_drain_rate Amount of power (in watts) to drain from power sources every Life tick.
+ power_per_regen Amount of power (in watts) required to regenerate health.
+ regen_lock Lock health regeneration while this is not 0, decreases by 1 every Life tick.
+ speech_sounds List of sounds that is picked from when the demon speaks.
+ Var Details
+ Reference to the APC currently being hijacked.
apc_images
+
+
+
+
+
+ Images of APCs currently being shown on the client.
bot_movedelay
+
+
+
+
+
+ Delay tracker for movement inside bots.
cable_images
+
+
+
+
+
+ Images of cables currently being shown on the client.
can_exit_cable
+
+
+
+
+
+ Controls whether the demon can move outside of cables. Toggled by a spell.
charge
+
+
+
+
+
+ Current quantity of power the demon currently holds, spent while purchasing, upgrading or using spells or upgrades. Use adjust_charge to modify this.
charge_drained
+
+
+
+
+
+ Book keeping for objective win conditions.
controlling_area
+
+
+
+
+
+ Area being controlled, should be maintained as long as the demon does not move outside a container (APC, object, robot, bot).
+ Inhabited bot, only maintained while inside the bot.
+ Inhabited cable, only maintained while on top of the cable.
+ Inhabited power source, maintained while inside, or while inside its area if it is an APC.
+ Inhabited cyborg, only maintained while inside the cyborg.
current_weapon
+
+
+
+
+
+ Inhabited item, only items which can be used in rechargers can be hijacked. Only maintained while inside the item.
do_drain
+
+
+
+
+
+ Controls whether the demon will drain power from sources. Toggled by a spell.
emp_debounce
+
+
+
+
+
+ Tracking to prevent multiple EMPs in the same tick from instakilling a demon.
glow_color
+
+
+
+
+
+ The color of light the demon emits. The range of the light is proportional to charge.
health_loss_rate
+
+
+
+
+
+ Amount of health lost per Life tick when the power requirement was not met.
health_regen_rate
+
+
+
+
+
+ Amount of health regenerated per Life tick when the power requirement was met.
hijack_time
+
+
+
+
+
+ The time it takes to hijack APCs and cyborgs.
hijacked_apcs
+
+
+
+
+
+ List of all previously hijacked APCs.
hijacked_robots
+
+
+
+
+
+ A cyborg that has already been hijacked can be re-entered instantly.
hurt_sounds
+
+
+
+
+
+ List of sounds that is picked from when the demon dies or is EMP'd.
inside_cable_speed
+
+
+
+
+
+ Speed used while moving inside cables.
max_drain_rate
+
+
+
+
+
+ Maximum value for power_drain_rate based on upgrades.
maxcharge
+
+
+
+
+
+ Maximum quantity of power the demon can hold at once.
outside_cable_speed
+
+
+
+
+
+ Speed used while moving outside cables. Can be upgraded.
power_drain_rate
+
+
+
+
+
+ Amount of power (in watts) to drain from power sources every Life tick.
power_per_regen
+
+
+
+
+
+ Amount of power (in watts) required to regenerate health.
regen_lock
+
+
+
+
+
+ Lock health regeneration while this is not 0, decreases by 1 every Life tick.
speech_sounds
+
+
+
+
+
+ List of sounds that is picked from when the demon speaks.
+
+
+
diff --git a/mob/living/simple_animal/hostile.html b/mob/living/simple_animal/hostile.html
new file mode 100644
index 0000000000000..1095ac06a174f
--- /dev/null
+++ b/mob/living/simple_animal/hostile.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile - Space Station 13
+
+
+
+
+
+
+Procs
+ AICanContinue AI Status
+ ListTargets HOSTILE MOB TARGETTING AND AGGRESSION
+ aggro_fast Shortcut proc to allow initiating combat slightly faster than waiting for normal processing.
+ death END HOSTILE MOB TARGETTING AND AGGRESSION
Proc Details AICanContinue(/list/possible_targets)
+
+
+
+
+
+ AI Status
ListTargets()
+
+
+
+
+
+ HOSTILE MOB TARGETTING AND AGGRESSION
aggro_fast(known_target)
+
+
+
+
+
+ Shortcut proc to allow initiating combat slightly faster than waiting for normal processing.
death(gibbed)
+
+
+
+
+
+ END HOSTILE MOB TARGETTING AND AGGRESSION
+
+
+
diff --git a/mob/living/simple_animal/hostile/asteroid/elite/broodmother.html b/mob/living/simple_animal/hostile/asteroid/elite/broodmother.html
new file mode 100644
index 0000000000000..69fdbccc6b32e
--- /dev/null
+++ b/mob/living/simple_animal/hostile/asteroid/elite/broodmother.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/asteroid/elite/broodmother - Space Station 13
+
+
+
+
+
+
+A stronger, faster variation of the goliath. Has the ability to spawn baby goliaths, which it can later detonate at will.
+When it's health is below half, tendrils will spawn randomly around it. When it is below a quarter of health, this effect is doubled.
+It's attacks are as follows:
+
+Spawns a 3x3/plus shape of tentacles on the target location
+Spawns 2 baby goliaths on its tile, up to a max of 8. Children blow up when they die.
+The broodmother lets out a noise, and is able to move faster for 6.5 seconds.
+Summons your children around you.
+The broodmother is a fight revolving around stage control, as the activator has to manage the baby goliaths and the broodmother herself, along with all the tendrils.
+
+
+
+
diff --git a/mob/living/simple_animal/hostile/asteroid/elite/herald.html b/mob/living/simple_animal/hostile/asteroid/elite/herald.html
new file mode 100644
index 0000000000000..df71556fe4002
--- /dev/null
+++ b/mob/living/simple_animal/hostile/asteroid/elite/herald.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/asteroid/elite/herald - Space Station 13
+
+
+
+
+
+
+A slow-moving projectile user with a few tricks up it's sleeve. Less unga-bunga than Colossus, with more cleverness in it's fighting style.
+As it's health gets lower, the amount of projectiles fired per-attack increases.
+It's attacks are as follows:
+
+Fires three projectiles in a given direction.
+Fires a spread in every cardinal and diagonal direction at once, then does it again after a bit.
+Shoots a single, golden bolt. Wherever it lands, the herald will be teleported to the location.
+Spawns a mirror which reflects projectiles directly at the target.
+Herald is a more concentrated variation of the Colossus fight, having less projectiles overall, but more focused attacks.
+
+
+
+
diff --git a/mob/living/simple_animal/hostile/asteroid/elite/legionnaire.html b/mob/living/simple_animal/hostile/asteroid/elite/legionnaire.html
new file mode 100644
index 0000000000000..4c5122722418b
--- /dev/null
+++ b/mob/living/simple_animal/hostile/asteroid/elite/legionnaire.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/asteroid/elite/legionnaire - Space Station 13
+
+
+
+
+
+
+A towering skeleton, embodying the power of Legion.
+As it's health gets lower, the head does more damage.
+It's attacks are as follows:
+
+Charges at the target after a telegraph, throwing them across the arena should it connect.
+Legionnaire's head detaches, attacking as it's own entity. Has abilities of it's own later into the fight. Once dead, regenerates after a brief period. If the skill is used while the head is off, it will be killed.
+Leaves a pile of bones at your location. Upon using this skill again, you'll swap locations with the bone pile.
+Spews a cloud of smoke from it's maw, wherever said maw is.
+A unique fight incorporating the head mechanic of legion into a whole new beast. Combatants will need to make sure the tag-team of head and body don't lure them into a deadly trap.
+ Vars
+ charging Whether or not the legionnaire is currently charging, used to deny movement input if he is
+ Var Details charging
+
+
+
+
+
+ Whether or not the legionnaire is currently charging, used to deny movement input if he is
+
+
+
diff --git a/mob/living/simple_animal/hostile/asteroid/elite/pandora.html b/mob/living/simple_animal/hostile/asteroid/elite/pandora.html
new file mode 100644
index 0000000000000..3d2acb1a28dfb
--- /dev/null
+++ b/mob/living/simple_animal/hostile/asteroid/elite/pandora.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/asteroid/elite/pandora - Space Station 13
+
+
+
+
+
+
+A box with a similar design to the Hierophant which trades large, single attacks for more frequent smaller ones.
+As it's health gets lower, the time between it's attacks decrease.
+It's attacks are as follows:
+
+Fires hierophant blasts in a straight line. Can only fire in a straight line in 8 directions, being the diagonals and cardinals.
+Creates a box of hierophant blasts around the target. If they try to run away to avoid it, they'll very likely get hit.
+Teleports the pandora from one location to another, almost identical to Hierophant.
+Spawns a 7x7 AOE at the location of choice, spreading out from the center.
+Pandora's fight mirrors Hierophant's closely, but has stark differences in attack effects. Instead of long-winded dodge times and long cooldowns, Pandora constantly attacks the opponent, but leaves itself open for attack.
+
+
+
+
diff --git a/mob/living/simple_animal/hostile/construct.html b/mob/living/simple_animal/hostile/construct.html
new file mode 100644
index 0000000000000..4093424c8e2bc
--- /dev/null
+++ b/mob/living/simple_animal/hostile/construct.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/construct - Space Station 13
+
+
+
+
+
+
+Vars
+ held_body The body/brain of the player inside this construct, transferred over from the soulstone.
+ holy Is this a holy/purified construct?
+ playstyle_string Message to send to the construct when they are created, containing information about their role.
+ Var Details held_body
+
+
+
+
+
+ The body/brain of the player inside this construct, transferred over from the soulstone.
holy
+
+
+
+
+
+ Is this a holy/purified construct?
playstyle_string
+
+
+
+
+
+ Message to send to the construct when they are created, containing information about their role.
+
+
+
diff --git a/mob/living/simple_animal/hostile/construct/armoured.html b/mob/living/simple_animal/hostile/construct/armoured.html
new file mode 100644
index 0000000000000..7d347d370bb78
--- /dev/null
+++ b/mob/living/simple_animal/hostile/construct/armoured.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/construct/armoured - Space Station 13
+
+
+
+
+
+
+Juggernaut
Proc Details update_health_hud()
+
+
+
+
+
+ ui stuff
+
+
+
diff --git a/mob/living/simple_animal/hostile/gorilla.html b/mob/living/simple_animal/hostile/gorilla.html
new file mode 100644
index 0000000000000..a07aa6058c4ee
--- /dev/null
+++ b/mob/living/simple_animal/hostile/gorilla.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/gorilla - Space Station 13
+
+
+
+
+
+
+
+ Var Details carriable_cache
+
+
+
+
+
+ Typecache of all the types we can pick up and carry
crate_limit
+
+
+
+
+
+ The max number of crates we can carry
crates_in_hand
+
+
+
+
+
+ A lazylist of all crates we are carrying
dismember_chance
+
+
+
+
+
+ Chance to dismember while unconcious
is_bipedal
+
+
+
+
+
+ Is the gorilla stood up or not?
stamina_damage
+
+
+
+
+
+ Amount of stamina lost on a successful hit
throw_onhit
+
+
+
+
+
+ Chance of doing the throw or stamina damage, along with the flat damage amount
Proc Details drop_all_crates
+
+ Drops all the crates in our crate list.
drop_random_crate
+
+ Drops one random crates from our crate list.
get_target_bodyparts(/atom /hit_target)
+
+
+
+
+
+ Returns null when the target is not an unconscious carbon mob; a list of limbs (possibly empty) otherwise.
+
+
+
diff --git a/mob/living/simple_animal/hostile/gorilla/cargo_domestic.html b/mob/living/simple_animal/hostile/gorilla/cargo_domestic.html
new file mode 100644
index 0000000000000..885eaa26f7870
--- /dev/null
+++ b/mob/living/simple_animal/hostile/gorilla/cargo_domestic.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/gorilla/cargo_domestic - Space Station 13
+
+
+
+
+
+
+Vars
+ access_card The ID card that the gorilla is currently wearing.
+ Var Details
+ The ID card that the gorilla is currently wearing.
+
+
+
diff --git a/mob/living/simple_animal/hostile/guardian.html b/mob/living/simple_animal/hostile/guardian.html
new file mode 100644
index 0000000000000..b7bfaef2ace38
--- /dev/null
+++ b/mob/living/simple_animal/hostile/guardian.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/guardian - Space Station 13
+
+
+
+
+
+
+Vars
+ stealthy_deploying If true, it will not make a message on host when hit, or make an effect when deploying or recalling
+ Var Details stealthy_deploying
+
+
+
+
+
+ If true, it will not make a message on host when hit, or make an effect when deploying or recalling
+
+
+
diff --git a/mob/living/simple_animal/hostile/guardian/gaseous.html b/mob/living/simple_animal/hostile/guardian/gaseous.html
new file mode 100644
index 0000000000000..6dcc1d8819cfd
--- /dev/null
+++ b/mob/living/simple_animal/hostile/guardian/gaseous.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/guardian/gaseous - Space Station 13
+
+
+
+
+
+
+Vars
+ linda_flags Linda flag for the expelled gas because we need to use special flags for it that are not readable in game well.
+ moles_of_gas Moles of gas being expelled.
+ possible_gases Possible gases to expel, with how much moles they create.
+ Var Details linda_flags
+
+
+
+
+
+ Linda flag for the expelled gas because we need to use special flags for it that are not readable in game well.
moles_of_gas
+
+
+
+
+
+ Moles of gas being expelled.
possible_gases
+
+
+
+
+
+ Possible gases to expel, with how much moles they create.
+
+
+
diff --git a/mob/living/simple_animal/hostile/guardian/protector.html b/mob/living/simple_animal/hostile/guardian/protector.html
new file mode 100644
index 0000000000000..36eebc50295f1
--- /dev/null
+++ b/mob/living/simple_animal/hostile/guardian/protector.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/guardian/protector - Space Station 13
+
+
+
+
+
+
+
+ Var Details connected_shields
+
+
+
+
+
+ The shields the guardian has, and brings with it as it moves
+
+
+
diff --git a/mob/living/simple_animal/hostile/malf_drone.html b/mob/living/simple_animal/hostile/malf_drone.html
new file mode 100644
index 0000000000000..09b48a0e46ab1
--- /dev/null
+++ b/mob/living/simple_animal/hostile/malf_drone.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/malf_drone - Space Station 13
+
+
+
+
+
+
+Procs
+ advanced_bullet_dodge We overide the basic effect, as malfunctioning drones are in space, and use jets to dodge. Also lets us do cool effects.
Proc Details advanced_bullet_dodge
+
+ We overide the basic effect, as malfunctioning drones are in space, and use jets to dodge. Also lets us do cool effects.
+
+
+
diff --git a/mob/living/simple_animal/hostile/megafauna.html b/mob/living/simple_animal/hostile/megafauna.html
new file mode 100644
index 0000000000000..9201197563984
--- /dev/null
+++ b/mob/living/simple_animal/hostile/megafauna.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/megafauna - Space Station 13
+
+
+
+
+
+
+Vars
+ enraged Has someone enabled hard mode?
+ enraged_loot Path of the hardmode loot disk, if applicable. Procs
+ enrage This proc is called by the HRD-MDE grenade to enrage the megafauna. This should increase the megafaunas attack speed if possible, give it new moves, or disable weak moves. This should be reverseable, and reverses on zlvl change.
+ Var Details enraged
+
+
+
+
+
+ Has someone enabled hard mode?
enraged_loot
+
+
+
+
+
+ Path of the hardmode loot disk, if applicable.
Proc Details enrage()
+
+
+
+
+
+ This proc is called by the HRD-MDE grenade to enrage the megafauna. This should increase the megafaunas attack speed if possible, give it new moves, or disable weak moves. This should be reverseable, and reverses on zlvl change.
+
+
+
diff --git a/mob/living/simple_animal/hostile/megafauna/ancient_robot.html b/mob/living/simple_animal/hostile/megafauna/ancient_robot.html
new file mode 100644
index 0000000000000..8430bd526048c
--- /dev/null
+++ b/mob/living/simple_animal/hostile/megafauna/ancient_robot.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/megafauna/ancient_robot - Space Station 13
+
+
+
+
+
+
+Vars
+ TR Legs and the connector for the legs
+ Var Details
+ Legs and the connector for the legs
+
+
+
diff --git a/mob/living/simple_animal/hostile/megafauna/bubblegum.html b/mob/living/simple_animal/hostile/megafauna/bubblegum.html
new file mode 100644
index 0000000000000..a186f9a25eb0b
--- /dev/null
+++ b/mob/living/simple_animal/hostile/megafauna/bubblegum.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/megafauna/bubblegum - Space Station 13
+
+
+
+
+
+
+
+ Var Details enraged_healing
+
+
+
+
+
+ Enraged healing recived
second_life
+
+
+
+
+
+ Is it on its enraged exclusive second life?
second_life_portal
+
+
+
+
+
+ Does it have a portal to the funny second life arena created?
+
+
+
diff --git a/mob/living/simple_animal/hostile/megafauna/colossus.html b/mob/living/simple_animal/hostile/megafauna/colossus.html
new file mode 100644
index 0000000000000..1fcf125ce0583
--- /dev/null
+++ b/mob/living/simple_animal/hostile/megafauna/colossus.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/megafauna/colossus - Space Station 13
+
+
+
+
+
+
+
+ Var Details final_available
+
+
+
+
+
+ Have we used our final attack yet?
+
+
+
diff --git a/mob/living/simple_animal/hostile/megafauna/hierophant.html b/mob/living/simple_animal/hostile/megafauna/hierophant.html
new file mode 100644
index 0000000000000..d490189b2079e
--- /dev/null
+++ b/mob/living/simple_animal/hostile/megafauna/hierophant.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/megafauna/hierophant - Space Station 13
+
+
+
+
+
+
+Vars
+ colour_shifting If the hiero has changed colour, stop the rays animation.
+ Var Details colour_shifting
+
+
+
+
+
+ If the hiero has changed colour, stop the rays animation.
+
+
+
diff --git a/mob/living/simple_animal/hostile/mimic/copy/vendor.html b/mob/living/simple_animal/hostile/mimic/copy/vendor.html
new file mode 100644
index 0000000000000..cfe214395c23a
--- /dev/null
+++ b/mob/living/simple_animal/hostile/mimic/copy/vendor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/mimic/copy/vendor - Space Station 13
+
+
+
+
+
+
+
+ Var Details
+ The vendor we were turned from.
+
+
+
diff --git a/mob/living/simple_animal/hostile/morph.html b/mob/living/simple_animal/hostile/morph.html
new file mode 100644
index 0000000000000..567af82811b90
--- /dev/null
+++ b/mob/living/simple_animal/hostile/morph.html
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/morph - Space Station 13
+
+
+
+
+
+
+Vars
+ ambush_damage How much damage a successful ambush attack does
+ ambush_prepared If the morph is ready to perform an ambush
+ ambush_spell The ambush action used by the morph
+ ambush_weaken How much weaken a successful ambush attack applies
+ gathered_food How much the morph has gathered in terms of food. Used to reproduce and such
+ mimic_spell The spell the morph uses to morph
+ morphed If the morph is disguised or not
+ pass_airlock_spell The spell the morph uses to pass through airlocks Procs
+ add_food Adds the given amount of food to the gathered food and updates the actions.
+Does not include a check to see if it goes below 0 or not
+ Var Details ambush_damage
+
+
+
+
+
+ How much damage a successful ambush attack does
ambush_prepared
+
+
+
+
+
+ If the morph is ready to perform an ambush
+ The ambush action used by the morph
ambush_weaken
+
+
+
+
+
+ How much weaken a successful ambush attack applies
gathered_food
+
+
+
+
+
+ How much the morph has gathered in terms of food. Used to reproduce and such
mimic_spell
+
+
+
+
+
+ The spell the morph uses to morph
morphed
+
+
+
+
+
+ If the morph is disguised or not
pass_airlock_spell
+
+
+
+
+
+ The spell the morph uses to pass through airlocks
Proc Details add_food(amount)
+
+
+
+
+
+ Adds the given amount of food to the gathered food and updates the actions.
+Does not include a check to see if it goes below 0 or not
+
+
+
diff --git a/mob/living/simple_animal/hostile/poison/giant_spider/hunter/infestation_spider.html b/mob/living/simple_animal/hostile/poison/giant_spider/hunter/infestation_spider.html
new file mode 100644
index 0000000000000..55823f52ad865
--- /dev/null
+++ b/mob/living/simple_animal/hostile/poison/giant_spider/hunter/infestation_spider.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/poison/giant_spider/hunter/infestation_spider - Space Station 13
+
+
+
+
+
+
+Child of giant_spider because this should do everything the spider does and more
Vars
+ current_order Handles the spider's behavior
+ gibbed To check and gib the spider when dead, then remove only one of the counter for the changeling owner
+ owner_UID References to the owner changeling
+ Var Details current_order
+
+
+
+
+
+ Handles the spider's behavior
gibbed
+
+
+
+
+
+ To check and gib the spider when dead, then remove only one of the counter for the changeling owner
owner_UID
+
+
+
+
+
+ References to the owner changeling
+
+
+
diff --git a/mob/living/simple_animal/hostile/poison/terror_spider.html b/mob/living/simple_animal/hostile/poison/terror_spider.html
new file mode 100644
index 0000000000000..bc066443b4eb4
--- /dev/null
+++ b/mob/living/simple_animal/hostile/poison/terror_spider.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/poison/terror_spider - Space Station 13
+
+
+
+
+
+
+Vars
+ loudspeaker Does this terror speak loudly on the terror hivemind?
+ Var Details loudspeaker
+
+
+
+
+
+ Does this terror speak loudly on the terror hivemind?
+
+
+
diff --git a/mob/living/simple_animal/lizard.html b/mob/living/simple_animal/lizard.html
new file mode 100644
index 0000000000000..26de33a17350f
--- /dev/null
+++ b/mob/living/simple_animal/lizard.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/lizard - Space Station 13
+
+
+
+
+
+
+Vars
+ has_tail Lizards start with a tail
+ Var Details has_tail
+
+
+
+
+
+ Lizards start with a tail
+
+
+
diff --git a/mob/living/simple_animal/parrot.html b/mob/living/simple_animal/parrot.html
new file mode 100644
index 0000000000000..911ba1422ef4a
--- /dev/null
+++ b/mob/living/simple_animal/parrot.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/parrot - Space Station 13
+
+
+
+
+
+
+Proc Details try_grab_item
+
+ Attempts to pick up an adjacent item
+Arguments:
+
+I - The item to try and pick up
+
+
+
+
diff --git a/mob/living/simple_animal/pet/cat/cak.html b/mob/living/simple_animal/pet/cat/cak.html
new file mode 100644
index 0000000000000..294dce0b9cb90
--- /dev/null
+++ b/mob/living/simple_animal/pet/cat/cak.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/pet/cat/cak - Space Station 13
+
+
+
+
+
+
+Vars
+ final_bites Number of times the corpse has been bitten
+ Var Details final_bites
+
+
+
+
+
+ Number of times the corpse has been bitten
+
+
+
diff --git a/mob/living/simple_animal/pet/dog/corgi.html b/mob/living/simple_animal/pet/dog/corgi.html
new file mode 100644
index 0000000000000..d93e102bb6c1e
--- /dev/null
+++ b/mob/living/simple_animal/pet/dog/corgi.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/pet/dog/corgi - Space Station 13
+
+
+
+
+
+
+
+ Var Details inventory_back
+
+
+
+
+
+ Currently worn item on the back slot
inventory_head
+
+
+
+
+
+ Currently worn item on the head slot
strippable_inventory_slots
+
+
+
+
+
+ Item slots that are available for this corgi to equip stuff into
Proc Details drop_hat()
+
+
+
+
+
+ Deadchat plays command that drops the current hat off Ian.
find_new_hat()
+
+
+
+
+
+ Deadchat plays command that picks a new hat for Ian.
+
+
+
diff --git a/mob/living/simple_animal/possessed_object.html b/mob/living/simple_animal/possessed_object.html
new file mode 100644
index 0000000000000..e949c2bf56ad5
--- /dev/null
+++ b/mob/living/simple_animal/possessed_object.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/possessed_object - Space Station 13
+
+
+
+
+
+
+Vars
+ escape_chance The probability % of us escaping if stuffed into a bag/toolbox/etc
+ possessed_item What is the actual item we are "possessing"
+ Var Details escape_chance
+
+
+
+
+
+ The probability % of us escaping if stuffed into a bag/toolbox/etc
possessed_item
+
+
+
+
+
+ What is the actual item we are "possessing"
+
+
+
diff --git a/mob/living/simple_animal/revenant.html b/mob/living/simple_animal/revenant.html
new file mode 100644
index 0000000000000..9233cc09ee8b6
--- /dev/null
+++ b/mob/living/simple_animal/revenant.html
@@ -0,0 +1,155 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/revenant - Space Station 13
+
+
+
+
+
+
+Vars
+ drained_mobs contains a list of UIDs of mobs who have been drained. cannot drain the same mob twice.
+ draining If the revenant is draining someone.
+ essence The resource of revenants. Max health is equal to three times this amount
+ essence_accumulated How much essence the revenant has stolen
+ essence_drained How much essence the revenant has drained.
+ essence_regen_amount How much essence regenerates
+ essence_regen_cap The regeneration cap of essence (go figure); regenerates every Life() tick up to this amount.
+ essence_regenerating If the revenant regenerates essence or not; 1 for yes, 0 for no
+ icon_drain The revant's icon while draining mobs
+ icon_idle The revenant's idle icon
+ icon_reveal The revenant's revealed icon
+ icon_stun The revenant's stunned icon
+ inhibited If the revenant's abilities are blocked by a chaplain's power.
+ perfectsouls How many perfect, regen-cap increasing souls the revenant has.
+ revealed If the revenant can take damage from normal sources.
+ unreveal_time How long the revenant is revealed for, is about 2 seconds times this var.
+ unstun_time How long the revenant is stunned for, is about 2 seconds times this var. Procs
+ ClickOn Harvest
+ Var Details drained_mobs
+
+
+
+
+
+ contains a list of UIDs of mobs who have been drained. cannot drain the same mob twice.
draining
+
+
+
+
+
+ If the revenant is draining someone.
essence
+
+
+
+
+
+ The resource of revenants. Max health is equal to three times this amount
essence_accumulated
+
+
+
+
+
+ How much essence the revenant has stolen
essence_drained
+
+
+
+
+
+ How much essence the revenant has drained.
essence_regen_amount
+
+
+
+
+
+ How much essence regenerates
essence_regen_cap
+
+
+
+
+
+ The regeneration cap of essence (go figure); regenerates every Life() tick up to this amount.
essence_regenerating
+
+
+
+
+
+ If the revenant regenerates essence or not; 1 for yes, 0 for no
icon_drain
+
+
+
+
+
+ The revant's icon while draining mobs
icon_idle
+
+
+
+
+
+ The revenant's idle icon
icon_reveal
+
+
+
+
+
+ The revenant's revealed icon
icon_stun
+
+
+
+
+
+ The revenant's stunned icon
inhibited
+
+
+
+
+
+ If the revenant's abilities are blocked by a chaplain's power.
perfectsouls
+
+
+
+
+
+ How many perfect, regen-cap increasing souls the revenant has.
revealed
+
+
+
+
+
+ If the revenant can take damage from normal sources.
unreveal_time
+
+
+
+
+
+ How long the revenant is revealed for, is about 2 seconds times this var.
unstun_time
+
+
+
+
+
+ How long the revenant is stunned for, is about 2 seconds times this var.
Proc Details ClickOn(/atom /A, params)
+
+
+
+
+
+ Harvest
+
+
+
diff --git a/mob/living/simple_animal/slime.html b/mob/living/simple_animal/slime.html
new file mode 100644
index 0000000000000..1dd9e56fad293
--- /dev/null
+++ b/mob/living/simple_animal/slime.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/slime - Space Station 13
+
+
+
+
+
+
+Vars
+ AIproc Determines if the AI loop is activated
+ Atkcool Attack cooldown
+ Discipline If a slime has been hit with a freeze gun, or wrestled/attacked off a human, they become disciplined and don't attack anymore for a while
+ SStun Stun variable
+ Tempstun Temporary temperature stuns
+ colour TIME FOR SUBSPECIES
+ effectmod CORE-CROSSING CODE
+ Var Details AIproc
+
+
+
+
+
+ Determines if the AI loop is activated
Atkcool
+
+
+
+
+
+ Attack cooldown
Discipline
+
+
+
+
+
+ If a slime has been hit with a freeze gun, or wrestled/attacked off a human, they become disciplined and don't attack anymore for a while
SStun
+
+
+
+
+
+ Stun variable
Tempstun
+
+
+
+
+
+ Temporary temperature stuns
colour
+
+
+
+
+
+ TIME FOR SUBSPECIES
effectmod
+
+
+
+
+
+ CORE-CROSSING CODE
+
+
+
diff --git a/obj.html b/obj.html
new file mode 100644
index 0000000000000..305bf3d21b792
--- /dev/null
+++ b/obj.html
@@ -0,0 +1,273 @@
+
+
+
+
+
+
+ /obj - Space Station 13
+
+
+
+
+
+
+Vars
+ damage_deflection Damage under this value will be completely ignored
+ emagged Is it emagged or not? Procs
+ GetExplosionBlock returns how much the object blocks an explosion. Used by subtypes.
+ acid_act the obj's reaction when touched by acid
+ acid_melt called when the obj is destroyed by acid.
+ acid_processing the proc called by the acid subsystem to process the acid that's on the obj
+ bitmask_smooth Object override to prevent unanchored objects from smoothing
+ burn called when the obj is destroyed by fire
+ extinguish Called when the obj is no longer on fire.
+ fire_act FIRE
+ hulk_damage Called to get the damage that hulks will deal to the obj.
+ modify_max_integrity changes max_integrity while retaining current health percentage, returns TRUE if the obj got broken.
+ obj_destruction what happens when the obj's integrity reaches zero.
+ play_attack_sound the sound played when the obj is damaged.
+ run_obj_armor returns the damage value of the attack after processing the obj's various armor protections
+ set_sharpness Set whether the item should be sharp or not
+ ui_login_act Call this from a proc that is called in ui_act() to process login actions
+ ui_login_attackby Convenience function to perform login actions when
+the source object is hit by specific items.
+ ui_login_data Appends login state data.
+ ui_login_eject Attempts to eject the inserted ID.
+ ui_login_get Returns (or creates) the login state for the source object.
+ ui_login_insert Attempts to insert an object as an ID.
+ ui_login_login Attempts to log in with the given login type.
+ ui_login_logout Attempts to log out.
+ ui_login_on_login Called on successful login.
+ ui_login_on_logout Called on successful logout.
+ zap_act Called when the obj is hit by a tesla bolt.
+ zap_buckle_check Only tesla coils, vehicles, and grounding rods currently call this because mobs are already targeted over all other objects, but this might be useful for more things later.
+ Var Details damage_deflection
+
+
+
+
+
+ Damage under this value will be completely ignored
emagged
+
+
+
+
+
+ Is it emagged or not?
Proc Details GetExplosionBlock()
+
+
+
+
+
+ returns how much the object blocks an explosion. Used by subtypes.
acid_act(acidpwr, acid_volume)
+
+
+
+
+
+ the obj's reaction when touched by acid
acid_melt()
+
+
+
+
+
+ called when the obj is destroyed by acid.
acid_processing()
+
+
+
+
+
+ the proc called by the acid subsystem to process the acid that's on the obj
bitmask_smooth()
+
+
+
+
+
+ Object override to prevent unanchored objects from smoothing
burn()
+
+
+
+
+
+ called when the obj is destroyed by fire
extinguish()
+
+
+
+
+
+ Called when the obj is no longer on fire.
fire_act(/datum /gas_mixture /air, exposed_temperature, exposed_volume, global_overlay)
+
+
+
+
+
+ FIRE
hulk_damage()
+
+
+
+
+
+ Called to get the damage that hulks will deal to the obj.
modify_max_integrity(new_max, can_break, damage_type, new_failure_integrity)
+
+
+
+
+
+ changes max_integrity while retaining current health percentage, returns TRUE if the obj got broken.
obj_destruction(damage_flag)
+
+
+
+
+
+ what happens when the obj's integrity reaches zero.
play_attack_sound(damage_amount, damage_type, damage_flag)
+
+
+
+
+
+ the sound played when the obj is damaged.
run_obj_armor(damage_amount, damage_type, damage_flag, attack_dir, armour_penetration_flat, armour_penetration_percentage)
+
+
+
+
+
+ returns the damage value of the attack after processing the obj's various armor protections
set_sharpness(new_sharp_val)
+
+
+
+
+
+ Set whether the item should be sharp or not
ui_login_act(action, params)
+
+
+
+
+
+ Call this from a proc that is called in ui_act() to process login actions
+Arguments:
+
+action - The called action
+params - The params to the action
+ ui_login_attackby
+
+ Convenience function to perform login actions when
+the source object is hit by specific items.
+Arguments:
+
+O - The object
+user - The user
+ ui_login_data(/list/data, /mob /user, /datum /ui_login/state)
+
+
+
+
+
+ Appends login state data.
+Arguments:
+
+data - The data list to be returned
+user - The user calling ui_data()
+state - The current login state
+ ui_login_eject(/datum /ui_login/state)
+
+
+
+
+
+ Attempts to eject the inserted ID.
+Arguments:
+
+state - The current login state
+ ui_login_get()
+
+
+
+
+
+ Returns (or creates) the login state for the source object.
+Arguments:
+
+state - The current login state
+ ui_login_insert
+
+ Attempts to insert an object as an ID.
+Arguments:
+
+O - The object to try inserting
+state - The current login state
+ ui_login_login(login_type, /datum /ui_login/state)
+
+
+
+
+
+ Attempts to log in with the given login type.
+Arguments:
+
+login_type - The login type: LOGIN_TYPE_NORMAL (checks for inserted ID), LOGIN_TYPE_AI, LOGIN_TYPE_ROBOT and LOGIN_TYPE_ADMIN
+state - The current login state
+ ui_login_logout(/datum /ui_login/state)
+
+
+
+
+
+ Attempts to log out.
+Arguments:
+
+state - The current login state
+ ui_login_on_login(/datum /ui_login/state)
+
+
+
+
+
+ Called on successful login.
+Arguments:
+
+state - The current login state
+ ui_login_on_logout(/datum /ui_login/state)
+
+
+
+
+
+ Called on successful logout.
+Arguments:
+
+state - The current login state
+ zap_act(power, zap_flags)
+
+
+
+
+
+ Called when the obj is hit by a tesla bolt.
zap_buckle_check(strength)
+
+
+
+
+
+ Only tesla coils, vehicles, and grounding rods currently call this because mobs are already targeted over all other objects, but this might be useful for more things later.
+
+
+
diff --git a/obj/airlock_filler_object.html b/obj/airlock_filler_object.html
new file mode 100644
index 0000000000000..eeed6dfac6385
--- /dev/null
+++ b/obj/airlock_filler_object.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/airlock_filler_object - Space Station 13
+
+
+
+
+
+
+Vars
+ filled_airlock The door/airlock this fluff panel is attached to Procs
+ CanPass Multi-tile airlocks (using a filler panel) have special handling for movables with PASS_FLAG_GLASS
+ pair_airlock Multi-tile airlocks pair with a filler panel, if one goes so does the other.
+ Var Details
+ The door/airlock this fluff panel is attached to
Proc Details CanPass
+
+ Multi-tile airlocks (using a filler panel) have special handling for movables with PASS_FLAG_GLASS
pair_airlock
+
+ Multi-tile airlocks pair with a filler panel, if one goes so does the other.
+
+
+
diff --git a/obj/docking_port/mobile.html b/obj/docking_port/mobile.html
new file mode 100644
index 0000000000000..597c4a5904183
--- /dev/null
+++ b/obj/docking_port/mobile.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/docking_port/mobile - Space Station 13
+
+
+
+
+
+
+Vars
+ lance_docking Is this a shuttle that completely destroys whatever dares to get in it's way?
+ lockeddown If this variable is true, shuttle is on lockdown, and other requests can not be processed
+ shuttle_speed_factor The speed factor for this shuttle. Higher means faster.
+ uses_lockdown Does this shuttle use the lockdown system?
+ Var Details lance_docking
+
+
+
+
+
+ Is this a shuttle that completely destroys whatever dares to get in it's way?
lockeddown
+
+
+
+
+
+ If this variable is true, shuttle is on lockdown, and other requests can not be processed
shuttle_speed_factor
+
+
+
+
+
+ The speed factor for this shuttle. Higher means faster.
uses_lockdown
+
+
+
+
+
+ Does this shuttle use the lockdown system?
+
+
+
diff --git a/obj/docking_port/mobile/emergency.html b/obj/docking_port/mobile/emergency.html
new file mode 100644
index 0000000000000..97cdbf0070f76
--- /dev/null
+++ b/obj/docking_port/mobile/emergency.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/docking_port/mobile/emergency - Space Station 13
+
+
+
+
+
+
+Vars
+ hijack_status State of the emergency shuttles hijack status.
+ Var Details hijack_status
+
+
+
+
+
+ State of the emergency shuttles hijack status.
+
+
+
diff --git a/obj/effect/abstract/chasm_storage.html b/obj/effect/abstract/chasm_storage.html
new file mode 100644
index 0000000000000..a67775d89cadf
--- /dev/null
+++ b/obj/effect/abstract/chasm_storage.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ /obj/effect/abstract/chasm_storage - Space Station 13
+
+
+
+
+
+
+An abstract object which is basically just a bag that the chasm puts people inside
Procs
+ on_revive Called if something comes back to life inside the pit. Expected sources are badmins and changelings.
+Ethereals should take enough damage to be smashed and not revive.
+Arguments
+escapee - Lucky guy who just came back to life at the bottom of a hole.
Proc Details on_revive
+
+ Called if something comes back to life inside the pit. Expected sources are badmins and changelings.
+Ethereals should take enough damage to be smashed and not revive.
+Arguments
+escapee - Lucky guy who just came back to life at the bottom of a hole.
+
+
+
diff --git a/obj/effect/abstract/particle_holder.html b/obj/effect/abstract/particle_holder.html
new file mode 100644
index 0000000000000..47e3612787e03
--- /dev/null
+++ b/obj/effect/abstract/particle_holder.html
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+ /obj/effect/abstract/particle_holder - Space Station 13
+
+
+
+
+
+
+These effects can be added to anything to hold particles, which is useful because Byond only allows a single particle per atom
Vars
+ holding_parent The mob that is holding our item
+ last_attached_location_type typepath of the last location we're in, if it's different when moved then we need to update vis contents
+ parent The main item we're attached to at the moment, particle holders hold particles for something Procs
+ on_move signal called when parent is moved
+ on_qdel signal called when parent is deleted
+ update_visual_contents logic proc for particle holders, aka where they move.
+subtypes of particle holders can override this for particles that should always be turf level or do special things when repositioning.
+this base subtype has some logic for items, as the loc of items becomes mobs very often hiding the particles
+ Var Details holding_parent
+
+
+
+
+
+ The mob that is holding our item
last_attached_location_type
+
+
+
+
+
+ typepath of the last location we're in, if it's different when moved then we need to update vis contents
+ The main item we're attached to at the moment, particle holders hold particles for something
Proc Details on_move
+
+ signal called when parent is moved
on_qdel
+
+ signal called when parent is deleted
update_visual_contents
+
+ logic proc for particle holders, aka where they move.
+subtypes of particle holders can override this for particles that should always be turf level or do special things when repositioning.
+this base subtype has some logic for items, as the loc of items becomes mobs very often hiding the particles
+
+
+
diff --git a/obj/effect/abstract/proximity_checker.html b/obj/effect/abstract/proximity_checker.html
new file mode 100644
index 0000000000000..ad481411cd642
--- /dev/null
+++ b/obj/effect/abstract/proximity_checker.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ /obj/effect/abstract/proximity_checker - Space Station 13
+
+
+
+
+
+
+Inteded for use with the proximity checker component /datum/component/proximity_monitor .
+Whenever a movable atom crosses this object, it calls HasProximity()
on the object which is listening for proximity (hasprox_receiver
).
+Because these objects try to make the smallest footprint possible, when these objects move they should use direct loc
setting only, and not forceMove
!
+The overhead for forceMove is very unnecessary, because for example turfs and areas don't need to know when these have entered or exited them, etc.
+These are invisible objects who's sole purpose is to simply inform the receiver that something has moved within X tiles of the it.
Vars
+ active Whether or not the proximity checker is listening for things crossing it.
+ monitor The component that this object is in use with, and that will receive HasProximity()
calls. Procs
+ Crossed Called when something crossed over the proximity_checker. Notifies the hasprox_receiver
it has proximity with something.
+ Var Details active
+
+
+
+
+
+ Whether or not the proximity checker is listening for things crossing it.
+ The component that this object is in use with, and that will receive HasProximity()
calls.
Proc Details Crossed
+
+ Called when something crossed over the proximity_checker. Notifies the hasprox_receiver
it has proximity with something.
+Arguments:
+
+atom/movable/AM - the atom crossing the proximity checker
+oldloc - the location AM
used to be at
+
+
+
+
diff --git a/obj/effect/anomaly.html b/obj/effect/anomaly.html
new file mode 100644
index 0000000000000..fd47fc3b1c456
--- /dev/null
+++ b/obj/effect/anomaly.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/anomaly - Space Station 13
+
+
+
+
+
+
+Vars
+ drops_core Do we drop a core when we're neutralized?
+ lifespan Time in deciseconds before the anomaly triggers
+ Var Details drops_core
+
+
+
+
+
+ Do we drop a core when we're neutralized?
lifespan
+
+
+
+
+
+ Time in deciseconds before the anomaly triggers
+
+
+
diff --git a/obj/effect/anomaly/bluespace.html b/obj/effect/anomaly/bluespace.html
new file mode 100644
index 0000000000000..320a560ca75c8
--- /dev/null
+++ b/obj/effect/anomaly/bluespace.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/effect/anomaly/bluespace - Space Station 13
+
+
+
+
+
+
+Vars
+ fully_active Used by supermatter anomalies. If fully active, behaves like normal. Otherwise, will not teleport people, to keep them being telefragged into the SM
+ mass_teleporting Do we teleport everything around us to a beacon when despawning?
+ mob_range What is the range we will grab mobs to teleport from
+ other_range What is the range we will grab objects to teleport from
+ supermatter_spawned Do we have a smaller mob and object grab range, and 4 seconds of mercy?
+ Var Details fully_active
+
+
+
+
+
+ Used by supermatter anomalies. If fully active, behaves like normal. Otherwise, will not teleport people, to keep them being telefragged into the SM
mass_teleporting
+
+
+
+
+
+ Do we teleport everything around us to a beacon when despawning?
mob_range
+
+
+
+
+
+ What is the range we will grab mobs to teleport from
other_range
+
+
+
+
+
+ What is the range we will grab objects to teleport from
supermatter_spawned
+
+
+
+
+
+ Do we have a smaller mob and object grab range, and 4 seconds of mercy?
+
+
+
diff --git a/obj/effect/countdown.html b/obj/effect/countdown.html
new file mode 100644
index 0000000000000..ca7c58a51cbbe
--- /dev/null
+++ b/obj/effect/countdown.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/effect/countdown - Space Station 13
+
+
+
+
+
+
+Proc Details get_value()
+
+
+
+
+
+ Get the value from our atom
+
+
+
diff --git a/obj/effect/cross_action/spacetime_dist.html b/obj/effect/cross_action/spacetime_dist.html
new file mode 100644
index 0000000000000..019dea313733f
--- /dev/null
+++ b/obj/effect/cross_action/spacetime_dist.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/cross_action/spacetime_dist - Space Station 13
+
+
+
+
+
+
+Vars
+ cant_teleport Used to prevent an infinite loop in the space tiime continuum
+ linked_dist A flags which save people from being thrown about
+ Var Details cant_teleport
+
+
+
+
+
+ Used to prevent an infinite loop in the space tiime continuum
+ A flags which save people from being thrown about
+
+
+
diff --git a/obj/effect/decal/cleanable.html b/obj/effect/decal/cleanable.html
new file mode 100644
index 0000000000000..5afe719a09d82
--- /dev/null
+++ b/obj/effect/decal/cleanable.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/effect/decal/cleanable - Space Station 13
+
+
+
+
+
+
+Vars
+ bloodiness 0-100, amount of blood in this decal, used for making footprints and affecting the alpha of bloody footprints
+ gravity_check for blood n vomit in zero G --- IN GRAVITY=TRUE; NO GRAVITY=FALSE
+ mergeable_decal when another of the same type is made on the same tile will they merge --- YES=TRUE; NO=FLASE
+ plane prevents Ambient Occlusion effects around it ; Set to GAME_PLANE in Initialize() if on a wall
+ random_icon_states when Initialized() its icon_state will be chosen from this list
+ Var Details bloodiness
+
+
+
+
+
+ 0-100, amount of blood in this decal, used for making footprints and affecting the alpha of bloody footprints
gravity_check
+
+
+
+
+
+ for blood n vomit in zero G --- IN GRAVITY=TRUE; NO GRAVITY=FALSE
mergeable_decal
+
+
+
+
+
+ when another of the same type is made on the same tile will they merge --- YES=TRUE; NO=FLASE
plane
+
+
+
+
+
+ prevents Ambient Occlusion effects around it ; Set to GAME_PLANE in Initialize() if on a wall
random_icon_states
+
+
+
+
+
+ when Initialized() its icon_state will be chosen from this list
+
+
+
diff --git a/obj/effect/decal/cleanable/tar.html b/obj/effect/decal/cleanable/tar.html
new file mode 100644
index 0000000000000..8070f4ec753f4
--- /dev/null
+++ b/obj/effect/decal/cleanable/tar.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/decal/cleanable/tar - Space Station 13
+
+
+
+
+
+
+Vars
+ target The turf that the tar is sitting on
+ Var Details
+ The turf that the tar is sitting on
+
+
+
diff --git a/obj/effect/gibspawner.html b/obj/effect/gibspawner.html
new file mode 100644
index 0000000000000..1340510aeb6a0
--- /dev/null
+++ b/obj/effect/gibspawner.html
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+ /obj/effect/gibspawner - Space Station 13
+
+
+
+
+
+
+Procs
+ gib_dna Assigns DNA and blood colour to mob gibs.
+ spawn_gibs Spawns the gibs (and sparks if applicable) from the gib spawner.
Proc Details
+ Assigns DNA and blood colour to mob gibs.
+Returns FALSE if there was no DNA data to transfer to the gibs, and TRUE if there was.
+Arguments:
+spawn_gibs
+
+ Spawns the gibs (and sparks if applicable) from the gib spawner.
+Arguments:
+
+location - The position to spawn the gibs on.
+mob_dna - The /datum/dna controlling the blood DNA and colour of the gibs.
+
+
+
+
diff --git a/obj/effect/guardianshield.html b/obj/effect/guardianshield.html
new file mode 100644
index 0000000000000..a17c9f2d325ba
--- /dev/null
+++ b/obj/effect/guardianshield.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/guardianshield - Space Station 13
+
+
+
+
+
+
+
+ Var Details shield_orientation
+
+
+
+
+
+ Is the guardians shield the left or right shield?
+
+
+
diff --git a/obj/effect/hallucination.html b/obj/effect/hallucination.html
new file mode 100644
index 0000000000000..1491b49ffd344
--- /dev/null
+++ b/obj/effect/hallucination.html
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+ /obj/effect/hallucination - Space Station 13
+
+
+
+
+
+
+Base object for hallucinations. Contains basic behaviour to display an icon only to the target.
+ Var Details duration
+
+
+
+
+
+ Duration in deciseconds. Can also be a list with the form [lower bound, upper bound] for a random duration.
hallucination_icon
+
+
+
+
+
+ Hallucination icon.
hallucination_icon_state
+
+
+
+
+
+ Hallucination icon state.
hallucination_layer
+
+
+
+
+
+ Hallucination layer.
hallucination_override
+
+
+
+
+
+ Hallucination override.
images
+
+
+
+
+
+ Lazy list of images created as part of the hallucination. Cleared on destruction.
+ The mob that sees this hallucination.
Proc Details add_icon(/image/I)
+
+
+
+
+
+ Adds an image to the hallucination. Cleared on destruction.
+Arguments:
+clear_icon(/image/I)
+
+
+
+
+
+ Clears an image from the hallucination.
+Arguments:
+
+I - The image to clear.
+ clear_icon_in(/image/I, delay)
+
+
+
+
+
+ Clears an image from the hallucination after a delay.
+Arguments:
+
+I - The image to clear.
+delay - Delay in deciseconds.
+ clear_icons()
+
+
+
+
+
+ Clears all images from the hallucination.
play_sound_in(time, /turf /source, snd, volume, vary, frequency)
+
+
+
+
+
+ Plays a sound to the target only.
+Arguments:
+
+time - Deciseconds before the sound plays.
+source - The turf to play the sound from. Optional.
+snd - The sound file to play.
+volume - The sound volume.
+vary - Whether to randomize the sound's pitch.
+frequency - The sound's pitch.
+
+
+
+
diff --git a/obj/effect/hallucination/abduction.html b/obj/effect/hallucination/abduction.html
new file mode 100644
index 0000000000000..bb55e78c7452d
--- /dev/null
+++ b/obj/effect/hallucination/abduction.html
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/abduction - Space Station 13
+
+
+
+
+
+
+Sends an abductor agent after the target. On knockdown, spawns an abductor scientist next to the target. Nothing else happens.
Vars
+ agent The abductor agent hallucination.
+ scientist The abductor scientist image handle. Procs
+ do_spawn_scientist Timer called to actually spawn the scientist.
+ spawn_scientist Called when the fake abductor scientist should spawn.
+ Var Details
+ The abductor agent hallucination.
scientist
+
+
+
+
+
+ The abductor scientist image handle.
Proc Details do_spawn_scientist
+
+ Timer called to actually spawn the scientist.
+Arguments:
+
+T - Where to spawn the scientist.
+ spawn_scientist()
+
+
+
+
+
+ Called when the fake abductor scientist should spawn.
+
+
+
diff --git a/obj/effect/hallucination/assault.html b/obj/effect/hallucination/assault.html
new file mode 100644
index 0000000000000..8d44516692a4e
--- /dev/null
+++ b/obj/effect/hallucination/assault.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/assault - Space Station 13
+
+
+
+
+
+
+An imaginary attacker spawns close to the target and attacks them to stamcrit.
+ Var Details
+ The attacker hallucination.
+
+
+
diff --git a/obj/effect/hallucination/audio.html b/obj/effect/hallucination/audio.html
new file mode 100644
index 0000000000000..c7674fd8e027e
--- /dev/null
+++ b/obj/effect/hallucination/audio.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/audio - Space Station 13
+
+
+
+
+
+
+Plays a random sound.
Vars
+ sounds Associative list of sounds that may be played. Value corresponds to the volume.
+ Var Details sounds
+
+
+
+
+
+ Associative list of sounds that may be played. Value corresponds to the volume.
+
+
+
diff --git a/obj/effect/hallucination/bolts.html b/obj/effect/hallucination/bolts.html
new file mode 100644
index 0000000000000..31ebfb8c438b1
--- /dev/null
+++ b/obj/effect/hallucination/bolts.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/bolts - Space Station 13
+
+
+
+
+
+
+Visually bolts a random number of airlocks around the target.
Vars
+ bolt_amount The maximum amount of airlocks to fake bolt.
+ bolt_duration The duration of fake bolt in deciseconds.
+ bolted Lazy list of fake bolted airlocks. Key is airlock, value is bolt overlay. Procs
+ do_bolt Called in a timer to fake bolt the given airlock.
+ do_unbolt Called in a timer to fake unbolt the given airlock.
+ Var Details bolt_amount
+
+
+
+
+
+ The maximum amount of airlocks to fake bolt.
bolt_duration
+
+
+
+
+
+ The duration of fake bolt in deciseconds.
bolted
+
+
+
+
+
+ Lazy list of fake bolted airlocks. Key is airlock, value is bolt overlay.
Proc Details
+ Called in a timer to fake bolt the given airlock.
+Arguments:
+
+A - The airlock to fake bolt.
+ do_unbolt
+
+ Called in a timer to fake unbolt the given airlock.
+Arguments:
+
+A - The airlock to fake unbolt.
+bolt_overlay - The bolt overlay image currently displayed on A.
+
+
+
+
diff --git a/obj/effect/hallucination/chaser.html b/obj/effect/hallucination/chaser.html
new file mode 100644
index 0000000000000..d1a396fd3985b
--- /dev/null
+++ b/obj/effect/hallucination/chaser.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/chaser - Space Station 13
+
+
+
+
+
+
+A generic hallucination that chases the target.
Vars
+ think_interval Interval between two thinks in deciseconds. Shouldn't be too low to prevent lag.
+ think_timer Think timer handle. Procs
+ chase Called every Think when we are not close enough to the target.
+ think Called at regular intervals to determine what to do.
+ within_range Called every Think when we are close enough to the target.
+ Var Details think_interval
+
+
+
+
+
+ Interval between two thinks in deciseconds. Shouldn't be too low to prevent lag.
think_timer
+
+
+
+
+
+ Think timer handle.
Proc Details chase()
+
+
+
+
+
+ Called every Think when we are not close enough to the target.
think()
+
+
+
+
+
+ Called at regular intervals to determine what to do.
within_range()
+
+
+
+
+
+ Called every Think when we are close enough to the target.
+
+
+
diff --git a/obj/effect/hallucination/chaser/attacker.html b/obj/effect/hallucination/chaser/attacker.html
new file mode 100644
index 0000000000000..dbde95ea83dd3
--- /dev/null
+++ b/obj/effect/hallucination/chaser/attacker.html
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/chaser/attacker - Space Station 13
+
+
+
+
+
+
+A generic hallucination based on the Chaser that attacks if close enough.
Vars
+ attack_chance Chance to attack per Think spent in range.
+ damage Stamina damage to heal on hit.
+ should_attack_weakened Whether to attack if the target is knocked down. Procs
+ attack Called every Think when we are attacking the target.
+ attack_effects Called to handle the visual and audio effects of an attack.
+ on_knockdown Called when one of our attacks put the target in stamina crit.
+ Var Details attack_chance
+
+
+
+
+
+ Chance to attack per Think spent in range.
damage
+
+
+
+
+
+ Stamina damage to heal on hit.
should_attack_weakened
+
+
+
+
+
+ Whether to attack if the target is knocked down.
Proc Details attack(was_weakened)
+
+
+
+
+
+ Called every Think when we are attacking the target.
+Arguments:
+
+was_weakened - Whether the target was already knocked down prior to this attack.
+ attack_effects()
+
+
+
+
+
+ Called to handle the visual and audio effects of an attack.
on_knockdown()
+
+
+
+
+
+ Called when one of our attacks put the target in stamina crit.
+
+
+
diff --git a/obj/effect/hallucination/chaser/attacker/abductor.html b/obj/effect/hallucination/chaser/attacker/abductor.html
new file mode 100644
index 0000000000000..b71abd89c03c0
--- /dev/null
+++ b/obj/effect/hallucination/chaser/attacker/abductor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/chaser/attacker/abductor - Space Station 13
+
+
+
+
+
+
+
+ Var Details
+ The hallucination that spawned us.
+
+
+
diff --git a/obj/effect/hallucination/chaser/attacker/assaulter.html b/obj/effect/hallucination/chaser/attacker/assaulter.html
new file mode 100644
index 0000000000000..bae93c7688ac7
--- /dev/null
+++ b/obj/effect/hallucination/chaser/attacker/assaulter.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/chaser/attacker/assaulter - Space Station 13
+
+
+
+
+
+
+Vars
+ attack_sound The attack sound to play. Can be a file or text (passed to [/proc/get_sfx]).
+ attack_verb The attack verb to display.
+ Var Details attack_sound
+
+
+
+
+
+ The attack sound to play. Can be a file or text (passed to [/proc/get_sfx]).
attack_verb
+
+
+
+
+
+ The attack verb to display.
+
+
+
diff --git a/obj/effect/hallucination/chasms.html b/obj/effect/hallucination/chasms.html
new file mode 100644
index 0000000000000..6fe627cf24e4e
--- /dev/null
+++ b/obj/effect/hallucination/chasms.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/chasms - Space Station 13
+
+
+
+
+
+
+Displays fake chasms around the target that if crossed, cause them to trip.
Vars
+ max_amount Maximum number of chasms to create.
+ min_amount Minimum number of chasms to create.
+ Var Details max_amount
+
+
+
+
+
+ Maximum number of chasms to create.
min_amount
+
+
+
+
+
+ Minimum number of chasms to create.
+
+
+
diff --git a/obj/effect/hallucination/delusion.html b/obj/effect/hallucination/delusion.html
new file mode 100644
index 0000000000000..566bffbf3d713
--- /dev/null
+++ b/obj/effect/hallucination/delusion.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/delusion - Space Station 13
+
+
+
+
+
+
+Changes the appearance of all humans around the target.
Procs
+ get_image Returns the image to use as override to the target's appearance.
Proc Details
+ Returns the image to use as override to the target's appearance.
+
+
+
diff --git a/obj/effect/hallucination/fake_alert.html b/obj/effect/hallucination/fake_alert.html
new file mode 100644
index 0000000000000..efd8df439f073
--- /dev/null
+++ b/obj/effect/hallucination/fake_alert.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/fake_alert - Space Station 13
+
+
+
+
+
+
+Displays a random alert on the target's HUD.
Vars
+ alert_category The alert category that was affected(arc) as part of this hallucination.
+ alerts The possible alerts to be displayed. Key is alert type, value is alert category.
+ severities Alert severities. Only needed for some alerts such as temperature or pressure. Key is alert category, value is severity.
+ Var Details alert_category
+
+
+
+
+
+ The alert category that was affected(arc) as part of this hallucination.
alerts
+
+
+
+
+
+ The possible alerts to be displayed. Key is alert type, value is alert category.
severities
+
+
+
+
+
+ Alert severities. Only needed for some alerts such as temperature or pressure. Key is alert category, value is severity.
+
+
+
diff --git a/obj/effect/hallucination/fake_danger.html b/obj/effect/hallucination/fake_danger.html
new file mode 100644
index 0000000000000..c1289dbb79c22
--- /dev/null
+++ b/obj/effect/hallucination/fake_danger.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/fake_danger - Space Station 13
+
+
+
+
+
+
+Sends a random danger message to the target's chat.
Vars
+ messages List of messages that may be displayed.
+ Var Details messages
+
+
+
+
+
+ List of messages that may be displayed.
+
+
+
diff --git a/obj/effect/hallucination/fake_item.html b/obj/effect/hallucination/fake_item.html
new file mode 100644
index 0000000000000..6e73ba9ea1a56
--- /dev/null
+++ b/obj/effect/hallucination/fake_item.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/fake_item - Space Station 13
+
+
+
+
+
+
+Displays a random fake item around the target. If it's on the floor and they try to pick it up, they will trip and fall.
Vars
+ items Static list of items this hallucination can be.
+ Var Details items
+
+
+
+
+
+ Static list of items this hallucination can be.
+
+
+
diff --git a/obj/effect/hallucination/fake_weapon.html b/obj/effect/hallucination/fake_weapon.html
new file mode 100644
index 0000000000000..a74e3d4116f52
--- /dev/null
+++ b/obj/effect/hallucination/fake_weapon.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/fake_weapon - Space Station 13
+
+
+
+
+
+
+Displays a random fake weapon wielded by a human around the target.
Vars
+ default_icon The default LEFT-HAND icon file for weapons. Static.
+ right_hand_icons Static list of RIGHT-HAND counterpart for any LEFT-HAND icon files used above.
+ weapons Static list of weapons this hallucination can be. Key is icon state, value is LEFT-HAND icon file.
+ wielder The mob wielding the fake weapon.
+ Var Details default_icon
+
+
+
+
+
+ The default LEFT-HAND icon file for weapons. Static.
right_hand_icons
+
+
+
+
+
+ Static list of RIGHT-HAND counterpart for any LEFT-HAND icon files used above.
weapons
+
+
+
+
+
+ Static list of weapons this hallucination can be. Key is icon state, value is LEFT-HAND icon file.
+ The mob wielding the fake weapon.
+
+
+
diff --git a/obj/effect/hallucination/husks.html b/obj/effect/hallucination/husks.html
new file mode 100644
index 0000000000000..2234ece42b73e
--- /dev/null
+++ b/obj/effect/hallucination/husks.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/husks - Space Station 13
+
+
+
+
+
+
+A random number of fake husks around the target.
Vars
+ num_base The base number of husks to create.
+ variation The husk number variation, both negative and positive.
+ Var Details num_base
+
+
+
+
+
+ The base number of husks to create.
variation
+
+
+
+
+
+ The husk number variation, both negative and positive.
+
+
+
diff --git a/obj/effect/hallucination/loose_energy_ball.html b/obj/effect/hallucination/loose_energy_ball.html
new file mode 100644
index 0000000000000..ac236ada030eb
--- /dev/null
+++ b/obj/effect/hallucination/loose_energy_ball.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/loose_energy_ball - Space Station 13
+
+
+
+
+
+
+A progressive hallucination that begins with intermittent explosions, before displaying an energy ball that shocks the target.
Vars
+ length_phase_1 Length of phase 1 in deciseconds.
+ length_phase_2 Length of phase 2 in deciseconds.
+ length_phase_3 Length of phase 3 in deciseconds. Procs
+ phase_1 First phase of the hallucination: intermittent, far-away explosion sounds.
+ phase_2 Second phase of the hallucination: closer explosions and zap sounds from a random direction.
+ phase_3 Third and final phase of the hallucination: an energy ball that approaches the target before shocking it.
+ phase_3_inner Called during phase 3 to approach the energy ball towards the target.
+ Var Details length_phase_1
+
+
+
+
+
+ Length of phase 1 in deciseconds.
length_phase_2
+
+
+
+
+
+ Length of phase 2 in deciseconds.
length_phase_3
+
+
+
+
+
+ Length of phase 3 in deciseconds.
Proc Details phase_1()
+
+
+
+
+
+ First phase of the hallucination: intermittent, far-away explosion sounds.
phase_2()
+
+
+
+
+
+ Second phase of the hallucination: closer explosions and zap sounds from a random direction.
phase_3()
+
+
+
+
+
+ Third and final phase of the hallucination: an energy ball that approaches the target before shocking it.
phase_3_inner(/image/ball, distance, step)
+
+
+
+
+
+ Called during phase 3 to approach the energy ball towards the target.
+Arguments:
+
+ball - The energy ball image.
+distance - The remaining distance.
+step - The current step.
+
+
+
+
diff --git a/obj/effect/hallucination/plasma_flood.html b/obj/effect/hallucination/plasma_flood.html
new file mode 100644
index 0000000000000..ec30580bdbb88
--- /dev/null
+++ b/obj/effect/hallucination/plasma_flood.html
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/plasma_flood - Space Station 13
+
+
+
+
+
+
+A fake plasma flood emanating from a nearby vent.
Vars
+ expand_delay The delay at which the plasma flood expands in deciseconds. Shouldn't be too low to prevent lag.
+ expand_queue List of turfs that need expanding from.
+ expand_timer Expand timer handle.
+ processed Associative list of turfs that have already been processed. Procs
+ create_plasma Creates a fake plasma overlay on the given turf.
+ expand Called regularly in a timer to process the plasma flooding.
+ Var Details expand_delay
+
+
+
+
+
+ The delay at which the plasma flood expands in deciseconds. Shouldn't be too low to prevent lag.
expand_queue
+
+
+
+
+
+ List of turfs that need expanding from.
expand_timer
+
+
+
+
+
+ Expand timer handle.
processed
+
+
+
+
+
+ Associative list of turfs that have already been processed.
Proc Details create_plasma
+
+ Creates a fake plasma overlay on the given turf.
+Arguments:
+
+T - The turf to create a fake plasma overlay on.
+ expand()
+
+
+
+
+
+ Called regularly in a timer to process the plasma flooding.
+
+
+
diff --git a/obj/effect/hallucination/self_delusion.html b/obj/effect/hallucination/self_delusion.html
new file mode 100644
index 0000000000000..c0bf45d800120
--- /dev/null
+++ b/obj/effect/hallucination/self_delusion.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/self_delusion - Space Station 13
+
+
+
+
+
+
+Changes the target's appearance to something else temporarily.
Procs
+ get_image Returns the image to use as override to the target's appearance.
Proc Details get_image()
+
+
+
+
+
+ Returns the image to use as override to the target's appearance.
+
+
+
diff --git a/obj/effect/hallucination/speech.html b/obj/effect/hallucination/speech.html
new file mode 100644
index 0000000000000..eac5644bc9d9e
--- /dev/null
+++ b/obj/effect/hallucination/speech.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/speech - Space Station 13
+
+
+
+
+
+
+Causes the target to hear a fake message from a random mob around them.
Vars
+ messages List of messages that may be heard.
+ Var Details messages
+
+
+
+
+
+ List of messages that may be heard.
+
+
+
diff --git a/obj/effect/hallucination/tripper.html b/obj/effect/hallucination/tripper.html
new file mode 100644
index 0000000000000..751655142e133
--- /dev/null
+++ b/obj/effect/hallucination/tripper.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/tripper - Space Station 13
+
+
+
+
+
+
+A generic hallucination that causes the target to trip if they cross it.
Vars
+ stun Stun to add when crossed.
+ trip_chance Chance to trip when crossing.
+ weaken Weaken to add when crossed. Procs
+ on_crossed Called when the target crosses this hallucination.
+ Var Details stun
+
+
+
+
+
+ Stun to add when crossed.
trip_chance
+
+
+
+
+
+ Chance to trip when crossing.
weaken
+
+
+
+
+
+ Weaken to add when crossed.
Proc Details on_crossed()
+
+
+
+
+
+ Called when the target crosses this hallucination.
+
+
+
diff --git a/obj/effect/hallucination/xeno_pounce.html b/obj/effect/hallucination/xeno_pounce.html
new file mode 100644
index 0000000000000..15d10fd3a175b
--- /dev/null
+++ b/obj/effect/hallucination/xeno_pounce.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/xeno_pounce - Space Station 13
+
+
+
+
+
+
+An imaginary alien hunter pounces towards the target.
Vars
+ num_pounces Maximum number of times the alien will pounce.
+ pounce_interval How often to pounce in deciseconds.
+ xeno The xeno hallucination reference.
+ Var Details num_pounces
+
+
+
+
+
+ Maximum number of times the alien will pounce.
pounce_interval
+
+
+
+
+
+ How often to pounce in deciseconds.
+ The xeno hallucination reference.
+
+
+
diff --git a/obj/effect/hallucination/xeno_pouncer.html b/obj/effect/hallucination/xeno_pouncer.html
new file mode 100644
index 0000000000000..48d41c4e2449b
--- /dev/null
+++ b/obj/effect/hallucination/xeno_pouncer.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ /obj/effect/hallucination/xeno_pouncer - Space Station 13
+
+
+
+
+
+
+Procs
+ leap_to Throws the xeno towards the given loc.
+ reset_icon Resets the xeno's icon to a resting state.
Proc Details leap_to(dest)
+
+
+
+
+
+ Throws the xeno towards the given loc.
+Arguments:
+
+dest - The loc to leap to.
+ reset_icon()
+
+
+
+
+
+ Resets the xeno's icon to a resting state.
+
+
+
diff --git a/obj/effect/immovablerod.html b/obj/effect/immovablerod.html
new file mode 100644
index 0000000000000..2ed0a84a9a11d
--- /dev/null
+++ b/obj/effect/immovablerod.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ /obj/effect/immovablerod - Space Station 13
+
+
+
+
+
+
+Proc Details walk_in_direction(direction)
+
+
+
+
+
+ Rod will walk towards edge turf in the specified direction.
+Arguments:
+
+direction - The direction to walk the rod towards: NORTH, SOUTH, EAST, WEST.
+
+
+
+
diff --git a/obj/effect/immovablerod/smite.html b/obj/effect/immovablerod/smite.html
new file mode 100644
index 0000000000000..0a09fbf6385dc
--- /dev/null
+++ b/obj/effect/immovablerod/smite.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/immovablerod/smite - Space Station 13
+
+
+
+
+
+
+Vars
+ exit The target that we're gonna aim for between start and end
+ Var Details
+ The target that we're gonna aim for between start and end
+
+
+
diff --git a/obj/effect/landmark/mob_spawner.html b/obj/effect/landmark/mob_spawner.html
new file mode 100644
index 0000000000000..60165f42749c0
--- /dev/null
+++ b/obj/effect/landmark/mob_spawner.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/landmark/mob_spawner - Space Station 13
+
+
+
+
+
+
+Mob spawners, spawns a mob and deletes the landmark
Vars
+ mobtype The mob we use for the spawner
+ Var Details mobtype
+
+
+
+
+
+ The mob we use for the spawner
+
+
+
diff --git a/obj/effect/landmark/river_waypoint.html b/obj/effect/landmark/river_waypoint.html
new file mode 100644
index 0000000000000..6d3cc42ad5d04
--- /dev/null
+++ b/obj/effect/landmark/river_waypoint.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/landmark/river_waypoint - Space Station 13
+
+
+
+
+
+
+Vars
+ connected Whether the turf of this landmark has already been linked to others during river generation.
+ Var Details connected
+
+
+
+
+
+ Whether the turf of this landmark has already been linked to others during river generation.
+
+
+
diff --git a/obj/effect/mazegen/generator.html b/obj/effect/mazegen/generator.html
new file mode 100644
index 0000000000000..4939d0d9b832a
--- /dev/null
+++ b/obj/effect/mazegen/generator.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/effect/mazegen/generator - Space Station 13
+
+
+
+
+
+
+
+ Var Details helper_modules
+ – /list/obj/effect/mazegen/module_helper
+
+
+
+
+ List of all helper modules being used in this maze
loot_modules
+ – /list/obj/effect/mazegen/module_loot
+
+
+
+
+ List of all loot modules being used in this maze
mheight
+
+
+
+
+
+ Maze height
mwidth
+
+
+
+
+
+ Maze width
potential_loot_spots
+
+
+
+
+
+ Potential loot spots
turf_list
+
+
+
+
+
+ List of turfs to iterate in total
working_stack
+
+
+
+
+
+ "Stack" structure to be used while iterating
+
+
+
diff --git a/obj/effect/mazegen/generator/blockwise.html b/obj/effect/mazegen/generator/blockwise.html
new file mode 100644
index 0000000000000..90ca6aea5323a
--- /dev/null
+++ b/obj/effect/mazegen/generator/blockwise.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/effect/mazegen/generator/blockwise - Space Station 13
+
+
+
+
+
+
+
+ Var Details floor_material
+
+
+
+
+
+ Material to make the floor out of
open_spots
+
+
+
+
+
+ List of open spots (speeds up calculations)
wall_material
+
+
+
+
+
+ Material to make the walls out of
+
+
+
diff --git a/obj/effect/mazegen/module_helper.html b/obj/effect/mazegen/module_helper.html
new file mode 100644
index 0000000000000..b97a1a384f3ca
--- /dev/null
+++ b/obj/effect/mazegen/module_helper.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ /obj/effect/mazegen/module_helper - Space Station 13
+
+
+
+
+
+
+Proc Details helper_run(blockwise, /obj /effect/mazegen/host)
+
+
+
+
+
+ Helper handler proc
+This exists as an overridable method so you can do custom helper logic.
+An example of this is removing all windows on a tile.
+Arguments:
+
+blockwise - This will be TRUE if the maze this is running on is a blockwise maze
+
+
+
+
diff --git a/obj/effect/mazegen/module_loot.html b/obj/effect/mazegen/module_loot.html
new file mode 100644
index 0000000000000..a8084505fa3c0
--- /dev/null
+++ b/obj/effect/mazegen/module_loot.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /obj/effect/mazegen/module_loot - Space Station 13
+
+
+
+
+
+
+Vars
+ spawn_probability Probability for this to spawn in a dead end at all. 0-100%. I dont recommend using values higher than 10 Procs
+ spawn_loot Loot spawner proc
+ Var Details spawn_probability
+
+
+
+
+
+ Probability for this to spawn in a dead end at all. 0-100%. I dont recommend using values higher than 10
Proc Details spawn_loot
+
+ Loot spawner proc
+This exists as an overridable method so you can do more than just spawn objects.
+An example of this is spawning a specific mob based on a condition.
+Arguments:
+
+T - The turf loot will be spawned on
+
+
+
+
diff --git a/obj/effect/mob_spawn/corpse.html b/obj/effect/mob_spawn/corpse.html
new file mode 100644
index 0000000000000..6145a6c0ea465
--- /dev/null
+++ b/obj/effect/mob_spawn/corpse.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/effect/mob_spawn/corpse - Space Station 13
+
+
+
+
+
+
+these mob spawn subtypes trigger immediately (New or Initialize) and are not player controlled... since they're dead, you know?
+ Var Details corpse_description
+
+
+
+
+
+ what environmental storytelling script should this corpse have
naive_corpse_description
+
+
+
+
+
+ optionally different text to display if the target is a clown
spawn_when
+
+
+
+
+
+ when this mob spawn should auto trigger.
+
+
+
diff --git a/obj/effect/mob_spawn/human.html b/obj/effect/mob_spawn/human.html
new file mode 100644
index 0000000000000..03e2d4cd8b2a4
--- /dev/null
+++ b/obj/effect/mob_spawn/human.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/mob_spawn/human - Space Station 13
+
+
+
+
+
+
+
+ Var Details dna_scrambled
+
+
+
+
+
+ Should we fully dna-scramble these humans?
+
+
+
diff --git a/obj/effect/portal.html b/obj/effect/portal.html
new file mode 100644
index 0000000000000..ad49d517365b5
--- /dev/null
+++ b/obj/effect/portal.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/effect/portal - Space Station 13
+
+
+
+
+
+
+Vars
+ create_sparks Whether or not portal use will cause sparks
+ creation_mob_ckey The ckey of the mob which was responsible for the creation of the portal. For example, the mob who used a wormhole jaunter.
+ creation_obj_data The UID and name
of the object that created this portal. For example, a wormhole jaunter.
+ effect_cooldown The time after which the effects should play again. Too many effects can lag the server
+ precision How close to the portal you will teleport. FALSE = on the portal, TRUE = adjacent
+ Var Details create_sparks
+
+
+
+
+
+ Whether or not portal use will cause sparks
creation_mob_ckey
+
+
+
+
+
+ The ckey of the mob which was responsible for the creation of the portal. For example, the mob who used a wormhole jaunter.
creation_obj_data
+
+
+
+
+
+ The UID and name
of the object that created this portal. For example, a wormhole jaunter.
effect_cooldown
+
+
+
+
+
+ The time after which the effects should play again. Too many effects can lag the server
precision
+
+
+
+
+
+ How close to the portal you will teleport. FALSE = on the portal, TRUE = adjacent
+
+
+
diff --git a/obj/effect/portal/advanced/contractor.html b/obj/effect/portal/advanced/contractor.html
new file mode 100644
index 0000000000000..161193cfc47fb
--- /dev/null
+++ b/obj/effect/portal/advanced/contractor.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/effect/portal/advanced/contractor - Space Station 13
+
+
+
+
+
+
+Used to extract contract targets and send them to the Syndicate jail for a few minutes.
Vars
+ contract The contract associated with this portal.
+ contractor_mind The mind of the contractor. Used to tell them they shouldn't be taking the portal.
+ target_mind The mind of the kidnapping target. Prevents non-targets from taking the portal.
+ Var Details
+ The contract associated with this portal.
contractor_mind
+
+
+
+
+
+ The mind of the contractor. Used to tell them they shouldn't be taking the portal.
target_mind
+
+
+
+
+
+ The mind of the kidnapping target. Prevents non-targets from taking the portal.
+
+
+
diff --git a/obj/effect/portal/hand_tele.html b/obj/effect/portal/hand_tele.html
new file mode 100644
index 0000000000000..f6befa46bc487
--- /dev/null
+++ b/obj/effect/portal/hand_tele.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/portal/hand_tele - Space Station 13
+
+
+
+
+
+
+Vars
+ inactive If this is TRUE, you will not be able to teleport with that portal
+ unstable_time After you touch the portal, it will be unstable with high bad teleport chance, this variable contains time when it will be fine again
+ Var Details inactive
+
+
+
+
+
+ If this is TRUE, you will not be able to teleport with that portal
unstable_time
+
+
+
+
+
+ After you touch the portal, it will be unstable with high bad teleport chance, this variable contains time when it will be fine again
+
+
+
diff --git a/obj/effect/rune.html b/obj/effect/rune.html
new file mode 100644
index 0000000000000..be589f7a0c81f
--- /dev/null
+++ b/obj/effect/rune.html
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+ /obj/effect/rune - Space Station 13
+
+
+
+
+
+
+Vars
+ allow_excess_invokers If nearby cultists will also chant when invoked
+ construct_invoke If constructs can invoke it
+ cultist_desc Description that cultists see
+ cultist_name Name that cultists see
+ desc Description that non-cultists see
+ invocation What is said by cultists when the rune is invoked
+ invoke_damage How much damage cultists take when invoking it (This includes constructs)
+ keyword The actual keyword for the rune
+ name Name non-cultists see
+ req_cultists The amount of cultists required around the rune to invoke it. If only 1, any cultist can invoke it.
+ req_keyword If the rune requires a keyword (e.g. Teleport runes)
+ rune_blood_color The color of the rune. (Based on species blood color)
+ rune_in_use Used for some runes, this is for when you want a rune to not be usable when in use.
+ scribe_damage How much damage you take from drawing the rune
+ scribe_delay How long the rune takes to create (Currently only different for the Nar'Sie rune) Procs
+ teleport_effect Spawns the phase in/out effects for a cult teleport.
+ Var Details allow_excess_invokers
+
+
+
+
+
+ If nearby cultists will also chant when invoked
construct_invoke
+
+
+
+
+
+ If constructs can invoke it
cultist_desc
+
+
+
+
+
+ Description that cultists see
cultist_name
+
+
+
+
+
+ Name that cultists see
desc
+
+
+
+
+
+ Description that non-cultists see
invocation
+
+
+
+
+
+ What is said by cultists when the rune is invoked
invoke_damage
+
+
+
+
+
+ How much damage cultists take when invoking it (This includes constructs)
keyword
+
+
+
+
+
+ The actual keyword for the rune
name
+
+
+
+
+
+ Name non-cultists see
req_cultists
+
+
+
+
+
+ The amount of cultists required around the rune to invoke it. If only 1, any cultist can invoke it.
req_keyword
+
+
+
+
+
+ If the rune requires a keyword (e.g. Teleport runes)
rune_blood_color
+
+
+
+
+
+ The color of the rune. (Based on species blood color)
rune_in_use
+
+
+
+
+
+ Used for some runes, this is for when you want a rune to not be usable when in use.
scribe_damage
+
+
+
+
+
+ How much damage you take from drawing the rune
scribe_delay
+
+
+
+
+
+ How long the rune takes to create (Currently only different for the Nar'Sie rune)
Proc Details teleport_effect
+
+ Spawns the phase in/out effects for a cult teleport.
+Arguments:
+
+user - Mob to teleport
+location - Location to teleport from
+target - Location to teleport to
+
+
+
+
diff --git a/obj/effect/rune/blood_boil.html b/obj/effect/rune/blood_boil.html
new file mode 100644
index 0000000000000..7ac680429b0af
--- /dev/null
+++ b/obj/effect/rune/blood_boil.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ /obj/effect/rune/blood_boil - Space Station 13
+
+
+
+
+
+
+When invoked deals up to 30 burn damage to nearby non-cultists and sets them on fire.
+On activation the rune charges for six seconds, changing colour, glowing, and giving out a warning to all nearby mobs.
+After the charging period the rune burns any non-cultists in view and sets them on fire. After another short wait it does the same again with slightly higher damage.
+If the cultists channeling the rune move away or are stunned at any point, the rune is deleted. So it can be countered pretty easily with flashbangs.
+
+
+
diff --git a/obj/effect/rune/wall.html b/obj/effect/rune/wall.html
new file mode 100644
index 0000000000000..e6874f7a22206
--- /dev/null
+++ b/obj/effect/rune/wall.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/rune/wall - Space Station 13
+
+
+
+
+
+
+Vars
+ B The barrier summoned by the rune when invoked. Tracked as a variable to prevent refreshing the barrier's integrity. shieldgen.dm
+ Var Details
+ The barrier summoned by the rune when invoked. Tracked as a variable to prevent refreshing the barrier's integrity. shieldgen.dm
+
+
+
diff --git a/obj/effect/spawner.html b/obj/effect/spawner.html
new file mode 100644
index 0000000000000..449c8ef77db74
--- /dev/null
+++ b/obj/effect/spawner.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/spawner - Space Station 13
+
+
+
+
+
+
+Proc Details synchronize_variables
+
+ Used when we want to pass vars from a spawner to a spawned object
+a - The spawned object we want to pass a var to
+
+
+
diff --git a/obj/effect/spawner/grouped_spawner.html b/obj/effect/spawner/grouped_spawner.html
new file mode 100644
index 0000000000000..73ab5c50e6ad4
--- /dev/null
+++ b/obj/effect/spawner/grouped_spawner.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ /obj/effect/spawner/grouped_spawner - Space Station 13
+
+
+
+
+
+
+Can be used to group spawners together so you ensure a certain amount of things are spawned but can be spawned on multiple locations.
+How to use:
+Either place the base grouped_spawner in the map and define the group_id to
+determine which spawners belong to one another.
+Or make a child instance of the grouped_spawner and define the values there.
+When using the base version be sure to define both total_amount and max_per_spawner on
+at least one of the spawners of the group.
+A mismatch between instances of the same group between these values will lead to a runtime.
+So either leave it empty for the rest or have the rest have the same values
Vars
+ chosen_spawners Which spawners are chosen to spawn the objects
+ group_id The id of the group this spawner belongs to. If left empty it'll use the type as id. Define this for map instances if you want to link different spawners up or want to use the base version.
+ max_per_spawner How many will spawn maximum per spawner. Set this in the map edit tool or in a child instance to set it for all the other instances.
+ max_per_spawner_for_spawners The list which holds the max_per_spawner values for each spawner group
+ path_to_spawn Which path will be used to spawn.
+ spawner_groups The assoc list of grouped spawners. Key = group_id, value = list of spawners with that key
+ total_amount How many will spawn. Set this in the map edit tool or in a child instance to set it for all the other instances.
+ total_amount_for_spawners The list which holds the total_amount values for each spawner group Procs
+ get_spawn_values Sets the spawn values to the values of the first defined instance of this group_id
+ save_spawn_values Saves the spawn values. Will only pick the first defined version of this group_id
+ Var Details chosen_spawners
+
+
+
+
+
+ Which spawners are chosen to spawn the objects
group_id
+
+
+
+
+
+ The id of the group this spawner belongs to. If left empty it'll use the type as id. Define this for map instances if you want to link different spawners up or want to use the base version.
max_per_spawner
+
+
+
+
+
+ How many will spawn maximum per spawner. Set this in the map edit tool or in a child instance to set it for all the other instances.
max_per_spawner_for_spawners
+
+
+
+
+
+ The list which holds the max_per_spawner values for each spawner group
path_to_spawn
+
+
+
+
+
+ Which path will be used to spawn.
spawner_groups
+
+
+
+
+
+ The assoc list of grouped spawners. Key = group_id, value = list of spawners with that key
total_amount
+
+
+
+
+
+ How many will spawn. Set this in the map edit tool or in a child instance to set it for all the other instances.
total_amount_for_spawners
+
+
+
+
+
+ The list which holds the total_amount values for each spawner group
Proc Details get_spawn_values()
+
+
+
+
+
+ Sets the spawn values to the values of the first defined instance of this group_id
save_spawn_values()
+
+
+
+
+
+ Saves the spawn values. Will only pick the first defined version of this group_id
+
+
+
diff --git a/obj/effect/spawner/lootdrop/maintenance.html b/obj/effect/spawner/lootdrop/maintenance.html
new file mode 100644
index 0000000000000..7b6456b85425a
--- /dev/null
+++ b/obj/effect/spawner/lootdrop/maintenance.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/effect/spawner/lootdrop/maintenance - Space Station 13
+
+
+
+
+
+
+Proc Details Initialize(mapload)
+
+
+
+
+
+ CONTRABAND STUFF
+
+
+
diff --git a/obj/effect/spawner/themed_mess.html b/obj/effect/spawner/themed_mess.html
new file mode 100644
index 0000000000000..6a1b4e5edcf2c
--- /dev/null
+++ b/obj/effect/spawner/themed_mess.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ /obj/effect/spawner/themed_mess - Space Station 13
+
+
+
+
+
+
+Vars
+ remaining_tiles The number of tiles to spread to. Each new chosen tile receives this
+value decremented by one, ensuring the maximum size of the mess is limited
+by the original spawner's value.
+ Var Details remaining_tiles
+
+
+
+
+
+ The number of tiles to spread to. Each new chosen tile receives this
+value decremented by one, ensuring the maximum size of the mess is limited
+by the original spawner's value.
+
+
+
diff --git a/obj/effect/spawner/window/reinforced/polarized.html b/obj/effect/spawner/window/reinforced/polarized.html
new file mode 100644
index 0000000000000..fe36f009ef573
--- /dev/null
+++ b/obj/effect/spawner/window/reinforced/polarized.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/spawner/window/reinforced/polarized - Space Station 13
+
+
+
+
+
+
+Vars
+ id Used to link electrochromic windows to buttons
+ Var Details id
+
+
+
+
+
+ Used to link electrochromic windows to buttons
+
+
+
diff --git a/obj/effect/tear.html b/obj/effect/tear.html
new file mode 100644
index 0000000000000..83b10ba0a8e7f
--- /dev/null
+++ b/obj/effect/tear.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/tear - Space Station 13
+
+
+
+
+
+
+The portal used in the /datum/event/tear midround.
Vars
+ leader What the leader of the dimensional tear will be
+ Var Details leader
+
+
+
+
+
+ What the leader of the dimensional tear will be
+
+
+
diff --git a/obj/effect/temp_visual/decoy/mephedrone_afterimage.html b/obj/effect/temp_visual/decoy/mephedrone_afterimage.html
new file mode 100644
index 0000000000000..431403d5a6b2e
--- /dev/null
+++ b/obj/effect/temp_visual/decoy/mephedrone_afterimage.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/temp_visual/decoy/mephedrone_afterimage - Space Station 13
+
+
+
+
+
+
+Vars
+ matrix_end The color matrix it should be by the time it despawns
+ matrix_start The color matrix it should be at spawn
+ Var Details matrix_end
+
+
+
+
+
+ The color matrix it should be by the time it despawns
matrix_start
+
+
+
+
+
+ The color matrix it should be at spawn
+
+
+
diff --git a/obj/effect/temp_visual/explosion.html b/obj/effect/temp_visual/explosion.html
new file mode 100644
index 0000000000000..6f66fd8069e78
--- /dev/null
+++ b/obj/effect/temp_visual/explosion.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/effect/temp_visual/explosion - Space Station 13
+
+
+
+
+
+
+
+ Var Details
+ Explosion smoke particle holder
+ Smoke wave particle holder
+ Sparks particle holder
Proc Details generate_particles(radius, small, large)
+
+
+
+
+
+ Generate the particles
+
+
+
diff --git a/obj/effect/temp_visual/single_user.html b/obj/effect/temp_visual/single_user.html
new file mode 100644
index 0000000000000..bd08204fa9eeb
--- /dev/null
+++ b/obj/effect/temp_visual/single_user.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/effect/temp_visual/single_user - Space Station 13
+
+
+
+
+
+
+A visual effect that will be shown only to a particular user for a period of time.
+ Var Details displayed_image
+
+
+
+
+
+ The image to show to the user
image_icon
+
+
+
+
+
+ The icon to pull the image from
image_icon_state
+
+
+
+
+
+ The real icon state to be applied to the image
image_layer
+
+
+
+
+
+ The layer to apply the image to
image_plane
+
+
+
+
+
+ The plane to apply the image to
source_UID
+
+
+
+
+
+ The UID of the person who the image is being displayed to
Proc Details add_mind
+
+ Add the image to the user's screen
remove_mind
+
+ Remove the image from the user's screen
+
+
+
diff --git a/obj/effect/temp_visual/sonar_ping.html b/obj/effect/temp_visual/sonar_ping.html
new file mode 100644
index 0000000000000..e2a9f55f55c53
--- /dev/null
+++ b/obj/effect/temp_visual/sonar_ping.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/effect/temp_visual/sonar_ping - Space Station 13
+
+
+
+
+
+
+Vars
+ modsuit_image The image shown to modsuit users
+ real_icon_state The icon state applied to the image created for this ping.
+ source_UID The person in the modsuit at the moment, really just used to remove this from their screen Procs
+ add_mind Add the image to the modsuit wearer's screen
+ remove_mind Remove the image from the modsuit wearer's screen
+ Var Details modsuit_image
+
+
+
+
+
+ The image shown to modsuit users
real_icon_state
+
+
+
+
+
+ The icon state applied to the image created for this ping.
source_UID
+
+
+
+
+
+ The person in the modsuit at the moment, really just used to remove this from their screen
Proc Details add_mind
+
+ Add the image to the modsuit wearer's screen
remove_mind
+
+ Remove the image from the modsuit wearer's screen
+
+
+
diff --git a/obj/effect/watcher_orbiter.html b/obj/effect/watcher_orbiter.html
new file mode 100644
index 0000000000000..2ee5a3a92b475
--- /dev/null
+++ b/obj/effect/watcher_orbiter.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /obj/effect/watcher_orbiter - Space Station 13
+
+
+
+
+
+
+Orbiting visual which shoots at mining mobs
+ Var Details fire_delay
+
+
+
+
+
+ Time between taking potshots at goliaths
on_death_multiplier
+
+
+
+
+
+ How much faster do we shoot when avenging our parent?
parent
+
+
+
+
+
+ Who are we following?
projectile_sound
+
+
+
+
+
+ Sound to make when we shoot
projectile_type
+
+
+
+
+
+ Type of projectile we fire
shot_cooldown
+
+
+
+
+
+ Time taken between shots
target_faction
+
+
+
+
+
+ Types of mobs to attack
+ Datum which keeps us hanging out with our parent
Proc Details follow
+
+ Set ourselves up to track and orbit around a guy
on_parent_deleted()
+
+
+
+
+
+ Called if the guy we're tracking is deleted somehow
on_parent_died
+
+ We must guard this corpse
on_parent_moved
+
+ Follow our parent
on_parent_revived
+
+ Exit hyperactive mode
orbit_animation()
+
+
+
+
+
+ Do our orbiting animation
shoot_at
+
+ Take a shot
+
+
+
diff --git a/obj/item.html b/obj/item.html
new file mode 100644
index 0000000000000..9e13d6ecf0518
--- /dev/null
+++ b/obj/item.html
@@ -0,0 +1,191 @@
+
+
+
+
+
+
+ /obj/item - Space Station 13
+
+
+
+
+
+
+Vars
+ armour_penetration_flat Flat armour reduction, occurs after percentage armour penetration.
+ armour_penetration_percentage Percentage armour reduction, happens before flat armour reduction.
+ attack_effect_override Allows you to override the attack animation with an attack effect
+ drop_sound Sound uses when dropping the item, or when its thrown.
+ equip_sound Sound used when equipping the item into a valid slot
+ hit_reaction_chance Used to give a reaction chance on hit that is not a block. If less than 0, will remove the block message, allowing overides.
+ hitsound Sound played when you hit something with the item
+ in_storage Is this item inside a storage object?
+ item_state The icon state used to display the item in your inventory. If null then the icon_state value itself will be used
+ mob_throw_hit_sound Used when yate into a mob
+ outline_filter Holder var for the item outline filter, null when no outline filter on the item.
+ pickup_sound Sound uses when picking the item up (into your hands)
+ reach In tiles, how far this weapon can reach; 1 for adjacent, which is default
+ stealthy_audio Whether or not we use stealthy audio levels for this item's attack sounds
+ thrownby UID of a /mob
+ usesound Played when the item is used, for example tools Procs
+ can_enter_storage Called to check if this item can be put into a storage item.
+ cyborg_recharge Called on cyborg items that need special charging behavior. Override as needed for specific items.
+ dropped Called when a mob drops an item.
+ get_job_name Used in secHUD icon generation
+ is_robot_module Checks whether this item is a module of the robot it is located in.
+ use_tool Called when a mob tries to use the item as a tool.
+Handles most checks.
+ Var Details armour_penetration_flat
+
+
+
+
+
+ Flat armour reduction, occurs after percentage armour penetration.
armour_penetration_percentage
+
+
+
+
+
+ Percentage armour reduction, happens before flat armour reduction.
attack_effect_override
+
+
+
+
+
+ Allows you to override the attack animation with an attack effect
drop_sound
+
+
+
+
+
+ Sound uses when dropping the item, or when its thrown.
equip_sound
+
+
+
+
+
+ Sound used when equipping the item into a valid slot
hit_reaction_chance
+
+
+
+
+
+ Used to give a reaction chance on hit that is not a block. If less than 0, will remove the block message, allowing overides.
hitsound
+
+
+
+
+
+ Sound played when you hit something with the item
in_storage
+
+
+
+
+
+ Is this item inside a storage object?
item_state
+
+
+
+
+
+ The icon state used to display the item in your inventory. If null then the icon_state value itself will be used
mob_throw_hit_sound
+
+
+
+
+
+ Used when yate into a mob
outline_filter
+
+
+
+
+
+ Holder var for the item outline filter, null when no outline filter on the item.
pickup_sound
+
+
+
+
+
+ Sound uses when picking the item up (into your hands)
reach
+
+
+
+
+
+ In tiles, how far this weapon can reach; 1 for adjacent, which is default
stealthy_audio
+
+
+
+
+
+ Whether or not we use stealthy audio levels for this item's attack sounds
thrownby
+
+
+
+
+
+ UID of a /mob
usesound
+
+
+
+
+
+ Played when the item is used, for example tools
Proc Details can_enter_storage
+
+ Called to check if this item can be put into a storage item.
+Return FALSE
if src
can't be inserted, and TRUE
if it can.
+Arguments:
+
+S - The /obj/item/storage that src
is being inserted into.
+user - The mob trying to insert the item.
+ cyborg_recharge(coeff, emagged)
+
+
+
+
+
+ Called on cyborg items that need special charging behavior. Override as needed for specific items.
dropped(/mob /user, silent)
+
+
+
+
+
+ Called when a mob drops an item.
get_job_name()
+
+
+
+
+
+ Used in secHUD icon generation
is_robot_module()
+
+
+
+
+
+ Checks whether this item is a module of the robot it is located in.
+ Called when a mob tries to use the item as a tool.
+Handles most checks.
+
+
+
diff --git a/obj/item/aiModule.html b/obj/item/aiModule.html
new file mode 100644
index 0000000000000..e6d4010c7fced
--- /dev/null
+++ b/obj/item/aiModule.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/aiModule - Space Station 13
+
+
+
+
+
+
+Procs
+ handle_unique_ai what this module should do if it is mapload spawning on a unique AI station trait round.
Proc Details handle_unique_ai()
+
+
+
+
+
+ what this module should do if it is mapload spawning on a unique AI station trait round.
+
+
+
diff --git a/obj/item/airlock_electronics.html b/obj/item/airlock_electronics.html
new file mode 100644
index 0000000000000..e11e0af2e3a00
--- /dev/null
+++ b/obj/item/airlock_electronics.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/airlock_electronics - Space Station 13
+
+
+
+
+
+
+Vars
+ door_accesses_list An associative list containing all station accesses. Includes their name and access number.
+ is_installed Is this electronic installed in a door?
+ max_brain_damage Maximum brain damage a mob can have until it can't use the electronics
+ one_access Is the door access using req_one_access (TRUE) or req_access (FALSE)
+ selected_accesses List of accesses currently set
+ unres_access_from Which direction has unrestricted access to the airlock (e.g. medbay doors from the inside)
+ Var Details door_accesses_list
+
+
+
+
+
+ An associative list containing all station accesses. Includes their name and access number.
is_installed
+
+
+
+
+
+ Is this electronic installed in a door?
max_brain_damage
+
+
+
+
+
+ Maximum brain damage a mob can have until it can't use the electronics
one_access
+
+
+
+
+
+ Is the door access using req_one_access (TRUE) or req_access (FALSE)
selected_accesses
+
+
+
+
+
+ List of accesses currently set
unres_access_from
+
+
+
+
+
+ Which direction has unrestricted access to the airlock (e.g. medbay doors from the inside)
+
+
+
diff --git a/obj/item/ammo_box/magazine/wt550m9.html b/obj/item/ammo_box/magazine/wt550m9.html
new file mode 100644
index 0000000000000..6c9e6954e4bda
--- /dev/null
+++ b/obj/item/ammo_box/magazine/wt550m9.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/ammo_box/magazine/wt550m9 - Space Station 13
+
+
+
+
+
+
+Vars
+ being_loaded A var to check if the mag is being loaded
+ double_loaded There are two reloading processes ongoing so cancel them
+ Var Details being_loaded
+
+
+
+
+
+ A var to check if the mag is being loaded
double_loaded
+
+
+
+
+
+ There are two reloading processes ongoing so cancel them
+
+
+
diff --git a/obj/item/ammo_casing.html b/obj/item/ammo_casing.html
new file mode 100644
index 0000000000000..dd4064a836601
--- /dev/null
+++ b/obj/item/ammo_casing.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/ammo_casing - Space Station 13
+
+
+
+
+
+
+
+ Var Details muzzle_flash_color
+
+
+
+
+
+ What color the flash has. If null then the flash won't cause lighting
muzzle_flash_effect
+
+
+
+
+
+ What type of muzzle flash effect will be shown. If null then no effect and flash of light will be shown
muzzle_flash_range
+
+
+
+
+
+ What range the muzzle flash has
muzzle_flash_strength
+
+
+
+
+
+ How strong the flash is
+
+
+
diff --git a/obj/item/ammo_casing/energy/arc_revolver.html b/obj/item/ammo_casing/energy/arc_revolver.html
new file mode 100644
index 0000000000000..39a3b652e09dc
--- /dev/null
+++ b/obj/item/ammo_casing/energy/arc_revolver.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/ammo_casing/energy/arc_revolver - Space Station 13
+
+
+
+
+
+
+Vars
+ random_link_number This number is randomly generated when the arc revolver is made. This ensures the beams only link to beams from the gun, one lower or higher than the number on the boosted object.
+ Var Details random_link_number
+
+
+
+
+
+ This number is randomly generated when the arc revolver is made. This ensures the beams only link to beams from the gun, one lower or higher than the number on the boosted object.
+
+
+
diff --git a/obj/item/assembly.html b/obj/item/assembly.html
new file mode 100644
index 0000000000000..91d14d82bd549
--- /dev/null
+++ b/obj/item/assembly.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+ /obj/item/assembly - Space Station 13
+
+
+
+
+
+
+Procs
+ activate What the device does when turned on
+ attach_assembly Called when an assembly is attacked by another
+ holder_movement Called when the holder is moved
+ interact Called when attack_self is called
+ process_cooldown Called to constantly step down the countdown/cooldown
+ pulse Called when this device attempts to act on another device, var/radio determines if it was sent via radio or direct
+ pulsed Called when another assembly acts on this one, var/radio will determine where it came from for wire calcs
+ toggle_secure Happens when the assembly is (un)secured
Proc Details activate(radio)
+
+
+
+
+
+ What the device does when turned on
attach_assembly
+
+ Called when an assembly is attacked by another
holder_movement()
+
+
+
+
+
+ Called when the holder is moved
interact
+
+ Called when attack_self is called
process_cooldown()
+
+
+
+
+
+ Called to constantly step down the countdown/cooldown
pulse(radio)
+
+
+
+
+
+ Called when this device attempts to act on another device, var/radio determines if it was sent via radio or direct
pulsed(radio)
+
+
+
+
+
+ Called when another assembly acts on this one, var/radio will determine where it came from for wire calcs
toggle_secure()
+
+
+
+
+
+ Happens when the assembly is (un)secured
+
+
+
diff --git a/obj/item/assembly/health.html b/obj/item/assembly/health.html
new file mode 100644
index 0000000000000..803dcd6625ac0
--- /dev/null
+++ b/obj/item/assembly/health.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/assembly/health - Space Station 13
+
+
+
+
+
+
+
+ Var Details alarm_health
+
+
+
+
+
+ The health amount on which to activate
scanning
+
+
+
+
+
+ Are we scanning our user's health?
user_health
+
+
+
+
+
+ Our user's health
+
+
+
diff --git a/obj/item/assembly/signaler.html b/obj/item/assembly/signaler.html
new file mode 100644
index 0000000000000..9bbd2eb56eb79
--- /dev/null
+++ b/obj/item/assembly/signaler.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/assembly/signaler - Space Station 13
+
+
+
+
+
+
+Vars
+ code Signal code
+ frequency Signal freqency itself
+ receiving Are we set to receieve a signal? Procs
+ signal Called from activate(), actually invokes the signal on other signallers in the world
+ Var Details code
+
+
+
+
+
+ Signal code
frequency
+
+
+
+
+
+ Signal freqency itself
receiving
+
+
+
+
+
+ Are we set to receieve a signal?
Proc Details signal()
+
+
+
+
+
+ Called from activate(), actually invokes the signal on other signallers in the world
+
+
+
diff --git a/obj/item/barcodescanner.html b/obj/item/barcodescanner.html
new file mode 100644
index 0000000000000..406d0e167c2a6
--- /dev/null
+++ b/obj/item/barcodescanner.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/barcodescanner - Space Station 13
+
+
+
+
+
+
+Vars
+ computer Associated Library Computer, needed to perform actions
+ Var Details
+ Associated Library Computer, needed to perform actions
+
+
+
diff --git a/obj/item/barsign_electronics.html b/obj/item/barsign_electronics.html
new file mode 100644
index 0000000000000..a6159f4fddada
--- /dev/null
+++ b/obj/item/barsign_electronics.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/barsign_electronics - Space Station 13
+
+
+
+
+
+
+
+ Var Details restricts_access
+
+
+
+
+
+ Restricts the sign to bar access if TRUE
+
+
+
diff --git a/obj/item/batterer.html b/obj/item/batterer.html
new file mode 100644
index 0000000000000..6752a51e1a942
--- /dev/null
+++ b/obj/item/batterer.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/batterer - Space Station 13
+
+
+
+
+
+
+Vars
+ on_throwing_cooldown Is this item on cooldown from being thrown
+ recharge_ticks How many SSobj ticks have passed (Roughly 2 seconds of in game time), used to see when to recharge a use on this item
+ times_used How many times the mind batter has been used
+ Var Details on_throwing_cooldown
+
+
+
+
+
+ Is this item on cooldown from being thrown
recharge_ticks
+
+
+
+
+
+ How many SSobj ticks have passed (Roughly 2 seconds of in game time), used to see when to recharge a use on this item
times_used
+
+
+
+
+
+ How many times the mind batter has been used
+
+
+
diff --git a/obj/item/beach_ball.html b/obj/item/beach_ball.html
new file mode 100644
index 0000000000000..ab51dfab776ae
--- /dev/null
+++ b/obj/item/beach_ball.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/beach_ball - Space Station 13
+
+
+
+
+
+
+Vars
+ dribbleable Whether attack_self
will move ("dribble") it to the other hand
+ Var Details dribbleable
+
+
+
+
+
+ Whether attack_self
will move ("dribble") it to the other hand
+
+
+
diff --git a/obj/item/bio_chip.html b/obj/item/bio_chip.html
new file mode 100644
index 0000000000000..593fa02b7b1cf
--- /dev/null
+++ b/obj/item/bio_chip.html
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+ /obj/item/bio_chip - Space Station 13
+
+
+
+
+
+
+Code for implants that can be inserted into a person and have some sort of passive or triggered action.
Vars
+ activated How the implant is activated.
+ allow_multiple Whether multiple implants of this same type can be inserted into someone.
+ has_triggered_on_death Whether this implant has already triggered on death or not, to prevent it firing multiple times.
+ imp_in Who the implant is inside of.
+ implant_data the implant_fluff datum attached to this implant, purely cosmetic "lore" information
+ implant_state which implant overlay should be used for implant cases. This should point to a state in bio_chips.dmi
+ implanted Whether the implant is implanted. Null if it's never been inserted, TRUE if it's currently inside someone, or FALSE if it's been removed.
+ trigger_causes What type of action will trigger this emote. Bitfield of IMPLANT_EMOTE_* defines.
+ trigger_emotes List of emote keys that activate this implant when used.
+ uses Amount of times that the implant can be triggered by the user. If the implant can't be used, it can't be inserted. Procs
+ can_implant Check that we can actually implant this before implanting it
+ implant Try to implant ourselves into a mob.
+ removed Clean up when an implant is removed.
+ set_trigger Set the emote that will trigger the implant.
+ Var Details activated
+
+
+
+
+
+ How the implant is activated.
allow_multiple
+
+
+
+
+
+ Whether multiple implants of this same type can be inserted into someone.
has_triggered_on_death
+
+
+
+
+
+ Whether this implant has already triggered on death or not, to prevent it firing multiple times.
imp_in
+
+
+
+
+
+ Who the implant is inside of.
implant_data
+
+
+
+
+
+ the implant_fluff datum attached to this implant, purely cosmetic "lore" information
implant_state
+
+
+
+
+
+ which implant overlay should be used for implant cases. This should point to a state in bio_chips.dmi
implanted
+
+
+
+
+
+ Whether the implant is implanted. Null if it's never been inserted, TRUE if it's currently inside someone, or FALSE if it's been removed.
trigger_causes
+
+
+
+
+
+ What type of action will trigger this emote. Bitfield of IMPLANT_EMOTE_* defines.
trigger_emotes
+
+
+
+
+
+ List of emote keys that activate this implant when used.
uses
+
+
+
+
+
+ Amount of times that the implant can be triggered by the user. If the implant can't be used, it can't be inserted.
Proc Details can_implant
+
+ Check that we can actually implant this before implanting it
+
+source - The person being implanted
+user - The person doing the implanting
+
+Returns
+TRUE - I could care less, implant it, maybe don't. I don't care.
+FALSE - Don't implant!
implant(/mob /source, /mob /user, force)
+
+
+
+
+
+ Try to implant ourselves into a mob.
+
+source - The person the implant is being administered to.
+user - The person who is doing the implanting.
+
+Returns
+1 if the implant injects successfully
+-1 if the implant fails to inject
+0 if there's no room for the implant.
removed(/mob /source)
+
+
+
+
+
+ Clean up when an implant is removed.
+
+source - the user who the implant was removed from.
+ set_trigger(/mob /user, emote_key, on_implant, silent)
+
+
+
+
+
+ Set the emote that will trigger the implant.
+
+user - User who is trying to associate the implant to themselves.
+emote_key - Key of the emote that should trigger the implant.
+on_implant - Whether this proc is being called during the implantation of the implant.
+silent - If true, the user won't get any to_chat messages if an implantation fails.
+
+
+
+
diff --git a/obj/item/bio_chip/explosive.html b/obj/item/bio_chip/explosive.html
new file mode 100644
index 0000000000000..3af6748eb2705
--- /dev/null
+++ b/obj/item/bio_chip/explosive.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/bio_chip/explosive - Space Station 13
+
+
+
+
+
+
+Procs
+ self_destruct Gib the implantee and delete their destructible contents.
Proc Details self_destruct()
+
+
+
+
+
+ Gib the implantee and delete their destructible contents.
+
+
+
diff --git a/obj/item/bio_chip/mod.html b/obj/item/bio_chip/mod.html
new file mode 100644
index 0000000000000..9642d052cdb1b
--- /dev/null
+++ b/obj/item/bio_chip/mod.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/bio_chip/mod - Space Station 13
+
+
+
+
+
+
+Vars
+ jet_icon The jet icon we apply to the MOD.
+ module The pathfinder module we are linked to.
+ path List of turfs through which a mod 'steps' to reach the waypoint
+ target The target turf we are after
+ tries How many times have we tried to move?
+ Var Details jet_icon
+
+
+
+
+
+ The jet icon we apply to the MOD.
+ The pathfinder module we are linked to.
path
+
+
+
+
+
+ List of turfs through which a mod 'steps' to reach the waypoint
target
+
+
+
+
+
+ The target turf we are after
tries
+
+
+
+
+
+ How many times have we tried to move?
+
+
+
diff --git a/obj/item/bio_chip/traitor.html b/obj/item/bio_chip/traitor.html
new file mode 100644
index 0000000000000..436852ca70ed2
--- /dev/null
+++ b/obj/item/bio_chip/traitor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/bio_chip/traitor - Space Station 13
+
+
+
+
+
+
+Vars
+ mindslave_UID The UID of the mindslave's mind
. Stored to solve GC race conditions and ensure we can remove their mindslave status even when they're deleted or gibbed.
+ Var Details mindslave_UID
+
+
+
+
+
+ The UID of the mindslave's mind
. Stored to solve GC race conditions and ensure we can remove their mindslave status even when they're deleted or gibbed.
+
+
+
diff --git a/obj/item/blank_tarot_card.html b/obj/item/blank_tarot_card.html
new file mode 100644
index 0000000000000..8a4dc0a74ea9d
--- /dev/null
+++ b/obj/item/blank_tarot_card.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/blank_tarot_card - Space Station 13
+
+
+
+
+
+
+Vars
+ let_people_choose If a person can choose what the card produces. No cost if they can choose.
+ Var Details let_people_choose
+
+
+
+
+
+ If a person can choose what the card produces. No cost if they can choose.
+
+
+
diff --git a/obj/item/book.html b/obj/item/book.html
new file mode 100644
index 0000000000000..e17db9c6c7826
--- /dev/null
+++ b/obj/item/book.html
@@ -0,0 +1,189 @@
+
+
+
+
+
+
+ /obj/item/book - Space Station 13
+
+
+
+
+
+
+Game Object which stores pages of text usually written by players, has other editable information such as the book's
+title, author, summary, and categories. Has other values that are generated when books are acquired through the library
+computer.
+Like other User Interfaces that heavily rely on player input, using newer tools such as TGUI presents sanitization issues
+so books will remain using BrowserUI until further notice.
Vars
+ author Who wrote the book, can be changed by pen or PC
+ book_bgcolor The background color of the book, useful for themed programmatic books, must be in #FFFFFF hex color format
+ book_height Book UI Popup Height
+ book_width Book UI Popup Width
+ brain_damage_cooldown Cooldown for brain damage loss when reading
+ carved Indicates whether or not a books pages have been carved out
+ categories Book Categories - used for differentiating types of books, set by players upon upload, viewable upon examining book
+ copyright Prevents book from being uploaded - For all printed books
+ current_page What page is the book currently opened to? Page 0 - Intro Page | Page 1-5 - Content Pages
+ libraryid Book's id within the library system, unique to each book object, should not be declared manually
+ pages Content Pages of the books, this variable is a list of strings containting the HTML + Text of each page
+ protected Prevents book contents from being edited
+ rating Book Rating - Assigned by library computer based on how many/how players have rated this book
+ store Item that is stored inside the book
+ summary Short summary of the contents of the book, can be changed by pen or PC
+ title Title & Real name of the book Procs
+ can_read Internal Checker Proc
+ clear_stored_item needed for proper GC'ing
+ edit_book Edit Book Proc
+ read_book Read Book Proc
+ show_content Show Content Proc
+ Var Details author
+
+
+
+
+
+ Who wrote the book, can be changed by pen or PC
book_bgcolor
+
+
+
+
+
+ The background color of the book, useful for themed programmatic books, must be in #FFFFFF hex color format
book_height
+
+
+
+
+
+ Book UI Popup Height
book_width
+
+
+
+
+
+ Book UI Popup Width
brain_damage_cooldown
+
+
+
+
+
+ Cooldown for brain damage loss when reading
carved
+
+
+
+
+
+ Indicates whether or not a books pages have been carved out
categories
+
+
+
+
+
+ Book Categories - used for differentiating types of books, set by players upon upload, viewable upon examining book
copyright
+
+
+
+
+
+ Prevents book from being uploaded - For all printed books
current_page
+
+
+
+
+
+ What page is the book currently opened to? Page 0 - Intro Page | Page 1-5 - Content Pages
libraryid
+
+
+
+
+
+ Book's id within the library system, unique to each book object, should not be declared manually
pages
+
+
+
+
+
+ Content Pages of the books, this variable is a list of strings containting the HTML + Text of each page
protected
+
+
+
+
+
+ Prevents book contents from being edited
rating
+
+
+
+
+
+ Book Rating - Assigned by library computer based on how many/how players have rated this book
store
+
+
+
+
+
+ Item that is stored inside the book
summary
+
+
+
+
+
+ Short summary of the contents of the book, can be changed by pen or PC
title
+
+
+
+
+
+ Title & Real name of the book
Proc Details can_read
+
+ Internal Checker Proc
+Gives free pass to observers to read, ensures that all other mobs attempting to read book are A) literated and
+B) are within range to actually read the book.
clear_stored_item()
+
+
+
+
+
+ needed for proper GC'ing
edit_book
+
+ Edit Book Proc
+This is where a lot of the magic happens, upon interacting with the book with a pen, this proc will open up options
+for the player to edit the book. Most importantly, this is where we account for player stupidity and maliciousness
+any input must strip/reject bad text and HTML from user input, additionally we account for players trying to screw
+with the Database. This will also limit the max characters players can upload at one time to prevent spamming.
read_book
+
+ Read Book Proc
+Checks if players is able to read book and that book is readable before calling the neccesary procs to open up UI
show_content
+
+ Show Content Proc
+Builds the browserUI html to show to the player then open up the User interface. It first build the header navigation
+buttons and then builds the rest of the UI based on what page the player is turned to.
+
+
+
diff --git a/obj/item/book/granter.html b/obj/item/book/granter.html
new file mode 100644
index 0000000000000..fb972447927bb
--- /dev/null
+++ b/obj/item/book/granter.html
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+ /obj/item/book/granter - Space Station 13
+
+
+
+
+
+
+Books that teach things.
+(Intrinsic actions like bar flinging, spells like fireball or smoke, or martial arts)
Vars
+ book_sounds The sounds played as the user's reading the book.
+ pages_to_mastery Controls how long a mob must keep the book in his hand to actually successfully learn
+ reading Sanity, whether it's currently being read
+ reading_time The time it takes to read the book
+ remarks Flavor messages displayed to mobs reading the granter
+ uses The amount of uses on the granter. Procs
+ can_learn Checks if the user can learn whatever this granter... grants
+ on_reading_finished Called when the reading is completely finished. This is where the actual granting should happen.
+ on_reading_start Called when the user starts to read the granter.
+ on_reading_stopped Called when the reading is interrupted without finishing.
+ recoil Effects that occur whenever the book is read when it has no uses left.
+ turn_page The actual "turning over of the page" flavor bit that happens while someone is reading the granter.
+ Var Details book_sounds
+
+
+
+
+
+ The sounds played as the user's reading the book.
pages_to_mastery
+
+
+
+
+
+ Controls how long a mob must keep the book in his hand to actually successfully learn
reading
+
+
+
+
+
+ Sanity, whether it's currently being read
reading_time
+
+
+
+
+
+ The time it takes to read the book
+ Flavor messages displayed to mobs reading the granter
uses
+
+
+
+
+
+ The amount of uses on the granter.
Proc Details can_learn
+
+ Checks if the user can learn whatever this granter... grants
on_reading_finished
+
+ Called when the reading is completely finished. This is where the actual granting should happen.
on_reading_start
+
+ Called when the user starts to read the granter.
on_reading_stopped
+
+ Called when the reading is interrupted without finishing.
recoil
+
+ Effects that occur whenever the book is read when it has no uses left.
turn_page
+
+ The actual "turning over of the page" flavor bit that happens while someone is reading the granter.
+
+
+
diff --git a/obj/item/book/granter/action.html b/obj/item/book/granter/action.html
new file mode 100644
index 0000000000000..8de12267e4503
--- /dev/null
+++ b/obj/item/book/granter/action.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/book/granter/action - Space Station 13
+
+
+
+
+
+
+Vars
+ action_name The name of the action, formatted in a more text-friendly way.
+ granted_action The typepath of action that is given
+ Var Details action_name
+
+
+
+
+
+ The name of the action, formatted in a more text-friendly way.
granted_action
+
+
+
+
+
+ The typepath of action that is given
+
+
+
diff --git a/obj/item/book/granter/crafting_recipe.html b/obj/item/book/granter/crafting_recipe.html
new file mode 100644
index 0000000000000..8d25a69aed19e
--- /dev/null
+++ b/obj/item/book/granter/crafting_recipe.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/book/granter/crafting_recipe - Space Station 13
+
+
+
+
+
+
+
+ Var Details crafting_recipe_types
+
+
+
+
+
+ A list of all recipe types we grant on learn
+
+
+
diff --git a/obj/item/book/granter/spell.html b/obj/item/book/granter/spell.html
new file mode 100644
index 0000000000000..d251d1ee416d9
--- /dev/null
+++ b/obj/item/book/granter/spell.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/book/granter/spell - Space Station 13
+
+
+
+
+
+
+Vars
+ granted_spell The typepath of spell that is given
+ spell_name The name of the spell, formatted in a more text-friendly way
+ Var Details granted_spell
+
+
+
+
+
+ The typepath of spell that is given
spell_name
+
+
+
+
+
+ The name of the spell, formatted in a more text-friendly way
+
+
+
diff --git a/obj/item/book/manual.html b/obj/item/book/manual.html
new file mode 100644
index 0000000000000..8525249923029
--- /dev/null
+++ b/obj/item/book/manual.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ /obj/item/book/manual - Space Station 13
+
+
+
+
+
+
+These are "programmatic books," that is books that are hard-coded into the game. Just for the sake of maintainability, keep
+information subject to change (as in likely to change SOON) out of the non-wiki manuals as they require PRs to change
+and it is not an author's responsbility to update manuals if they change a mechanic/recipe/feature referenced in one of them
+Don't worry about adding them to the library, as long as they're one of these types it is automatically added.
+Longer Guides should really be a '/obj/item/book/manual/wiki' type book and be tethered to a wiki page, this is because wiki pages
+outside of SOP & Space Law can be very easily changed and do not require going through the Pull Request process. The benefits of
+these are that they can be illustrated, filled with tables, and changed without affecting the codebase.
+However, contributors should avoid making every book/page tethered to a wiki page for a few reasons:
+
+many players who are likely just starting out would benefit from only getting a little bit of info to get started (think 5-10 bar recipes)
+Wiki pages are purposefully dry and to the point, manuals benefit from having flavor/personality to them to make them interesting to read ICly
+One can just open the damn wiki instead of reading a crusty-ass manual
+-Sirryan2002
+
+
+
+
diff --git a/obj/item/book/manual/wiki.html b/obj/item/book/manual/wiki.html
new file mode 100644
index 0000000000000..723d45be7ebb2
--- /dev/null
+++ b/obj/item/book/manual/wiki.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ /obj/item/book/manual/wiki - Space Station 13
+
+
+
+
+
+
+These are programmatic books that source its pages / "content" straight from the wiki
+That means that this content can ONLY be changed by editing the wiki
+Space Law and SOP Manuals can only be edited by Wiki Admins
+These are automated well enough that as long as the link to the wiki is set correctly in the config and the article name is correct
+these will display (mostly) CSS stripped wiki pages in them.
+ Var Details wiki_article_title
+
+
+
+
+
+ The Article title of the wiki page being opened in the
+
+
+
diff --git a/obj/item/borg/upgrade.html b/obj/item/borg/upgrade.html
new file mode 100644
index 0000000000000..5d3e369a4c624
--- /dev/null
+++ b/obj/item/borg/upgrade.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+ /obj/item/borg/upgrade - Space Station 13
+
+
+
+
+
+
+Vars
+ items_to_add A list of items to add, rather than replace
+ items_to_replace A list of items, and their replacements that this upgrade should replace on installation, in the format of item_type_to_replace = replacement_item_type
.
+ module_type The type of module this upgrade is compatible with: Engineering, Medical, etc.
+ require_module Whether or not the cyborg needs to have a chosen module before they can receive this upgrade.
+ special_rechargables A list of replacement items will need to be placed into a cyborg module's special_rechargable
list after this upgrade is installed. Procs
+ action Called when someone clicks on a borg with an upgrade in their hand.
+ after_install Executes code after the module has been installed and the cyborg has been modified in some way.
+ do_install Executes code that will modify the cyborg or its module.
+ pre_install_checks Checks if the upgrade is able to be applied to the cyborg, before actually applying it.
+ Var Details items_to_add
+
+
+
+
+
+ A list of items to add, rather than replace
items_to_replace
+
+
+
+
+
+ A list of items, and their replacements that this upgrade should replace on installation, in the format of item_type_to_replace = replacement_item_type
.
module_type
+
+
+
+
+
+ The type of module this upgrade is compatible with: Engineering, Medical, etc.
require_module
+
+
+
+
+
+ Whether or not the cyborg needs to have a chosen module before they can receive this upgrade.
special_rechargables
+
+
+
+
+
+ A list of replacement items will need to be placed into a cyborg module's special_rechargable
list after this upgrade is installed.
Proc Details
+ Called when someone clicks on a borg with an upgrade in their hand.
+Arguments:
+
+R - the cyborg that was clicked on with an upgrade.
+
+ Executes code after the module has been installed and the cyborg has been modified in some way.
+Arguments:
+
+R - the cyborg that we've applied the upgrade to.
+
+ Executes code that will modify the cyborg or its module.
+Arguments:
+
+R - the cyborg we're applying the upgrade to.
+
+ Checks if the upgrade is able to be applied to the cyborg, before actually applying it.
+Arguments:
+
+R - the cyborg that was clicked on with an upgrade.
+
+
+
+
diff --git a/obj/item/borg/upgrade/floorbuffer.html b/obj/item/borg/upgrade/floorbuffer.html
new file mode 100644
index 0000000000000..cf79133659b6d
--- /dev/null
+++ b/obj/item/borg/upgrade/floorbuffer.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/borg/upgrade/floorbuffer - Space Station 13
+
+
+
+
+
+
+Vars
+ buffer_speed How much speed the cyborg loses while the buffer is active
+ Var Details buffer_speed
+
+
+
+
+
+ How much speed the cyborg loses while the buffer is active
+
+
+
diff --git a/obj/item/camera.html b/obj/item/camera.html
new file mode 100644
index 0000000000000..a54fb710a623f
--- /dev/null
+++ b/obj/item/camera.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/camera - Space Station 13
+
+
+
+
+
+
+camera
Procs
+ handle_haunt hauntings, like hallucinations but more spooky
Proc Details handle_haunt
+
+ hauntings, like hallucinations but more spooky
+
+
+
diff --git a/obj/item/camera_bug.html b/obj/item/camera_bug.html
new file mode 100644
index 0000000000000..9378db34f10e8
--- /dev/null
+++ b/obj/item/camera_bug.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/camera_bug - Space Station 13
+
+
+
+
+
+
+
+ Var Details
+ Integrated camera console to serve UI data
+
+
+
diff --git a/obj/item/candle.html b/obj/item/candle.html
new file mode 100644
index 0000000000000..06b8921a2367a
--- /dev/null
+++ b/obj/item/candle.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/candle - Space Station 13
+
+
+
+
+
+
+
+ Var Details wax_index
+
+
+
+
+
+ Index for the icon state
+
+
+
diff --git a/obj/item/card/id.html b/obj/item/card/id.html
new file mode 100644
index 0000000000000..c88162a4a59f0
--- /dev/null
+++ b/obj/item/card/id.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/card/id - Space Station 13
+
+
+
+
+
+
+
+ Var Details mining_points
+
+
+
+
+
+ For redeeming at mining equipment lockers
total_mining_points
+
+
+
+
+
+ Total mining points for the Shift.
+
+
+
diff --git a/obj/item/cardhand.html b/obj/item/cardhand.html
new file mode 100644
index 0000000000000..c15119476e3eb
--- /dev/null
+++ b/obj/item/cardhand.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/cardhand - Space Station 13
+
+
+
+
+
+
+Vars
+ direction Tracked direction, which is used when updating the hand's appearance instead of messing with the local dir
+ pickedcard The player's picked card they want to take out. Stored in the hand so it can be passed onto the verb
+ Var Details direction
+
+
+
+
+
+ Tracked direction, which is used when updating the hand's appearance instead of messing with the local dir
pickedcard
+
+
+
+
+
+ The player's picked card they want to take out. Stored in the hand so it can be passed onto the verb
+
+
+
diff --git a/obj/item/cartridge.html b/obj/item/cartridge.html
new file mode 100644
index 0000000000000..75cc2eabbd43d
--- /dev/null
+++ b/obj/item/cartridge.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/cartridge - Space Station 13
+
+
+
+
+
+
+Vars
+ integ_signaler Integrated signaler for captain, science & generic signaler cartridge
+ Var Details
+ Integrated signaler for captain, science & generic signaler cartridge
+
+
+
diff --git a/obj/item/circuitboard.html b/obj/item/circuitboard.html
new file mode 100644
index 0000000000000..2c231a4d3097f
--- /dev/null
+++ b/obj/item/circuitboard.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/circuitboard - Space Station 13
+
+
+
+
+
+
+Vars
+ board_name Use this instead of name
. Formats as: circuit board ([board_name])
+ name Use board_name
instead of this.
+ Var Details board_name
+
+
+
+
+
+ Use this instead of name
. Formats as: circuit board ([board_name])
name
+
+
+
+
+
+ Use board_name
instead of this.
+
+
+
diff --git a/obj/item/clothing.html b/obj/item/clothing.html
new file mode 100644
index 0000000000000..8882789a51250
--- /dev/null
+++ b/obj/item/clothing.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/item/clothing - Space Station 13
+
+
+
+
+
+
+Vars
+ blockTracking Do we block AI tracking?
+ can_leave_fibers Detective Work, used for allowing a given atom to leave its fibers on stuff. Allowed by default
+ scan_reagents Can the wearer see reagents inside transparent containers while it's equipped?
+ scan_reagents_advanced Can the wearer see reagents inside any container and identify blood types while it's equipped?
+ species_restricted Only these species can wear this kit. Procs
+ catch_fire Used for any clothing interactions when the user is on fire. (e.g. Cigarettes getting lit.)
+ weldingvisortoggle Done as such to not break chameleon gear since you can't rely on initial states
+ Var Details blockTracking
+
+
+
+
+
+ Do we block AI tracking?
can_leave_fibers
+
+
+
+
+
+ Detective Work, used for allowing a given atom to leave its fibers on stuff. Allowed by default
scan_reagents
+
+
+
+
+
+ Can the wearer see reagents inside transparent containers while it's equipped?
scan_reagents_advanced
+
+
+
+
+
+ Can the wearer see reagents inside any container and identify blood types while it's equipped?
species_restricted
+
+
+
+
+
+ Only these species can wear this kit.
Proc Details catch_fire()
+
+
+
+
+
+ Used for any clothing interactions when the user is on fire. (e.g. Cigarettes getting lit.)
weldingvisortoggle
+
+ Done as such to not break chameleon gear since you can't rely on initial states
+
+
+
diff --git a/obj/item/clothing/accessory/medal.html b/obj/item/clothing/accessory/medal.html
new file mode 100644
index 0000000000000..f353944a0ae91
--- /dev/null
+++ b/obj/item/clothing/accessory/medal.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/accessory/medal - Space Station 13
+
+
+
+
+
+
+Vars
+ channel The channel we will announce on when we are rewarded to someone
+ try_announce Will we try to announce, toggled by using in hand
+ Var Details channel
+
+
+
+
+
+ The channel we will announce on when we are rewarded to someone
try_announce
+
+
+
+
+
+ Will we try to announce, toggled by using in hand
+
+
+
diff --git a/obj/item/clothing/accessory/pin/pride.html b/obj/item/clothing/accessory/pin/pride.html
new file mode 100644
index 0000000000000..579ae487d9e64
--- /dev/null
+++ b/obj/item/clothing/accessory/pin/pride.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/accessory/pin/pride - Space Station 13
+
+
+
+
+
+
+Vars
+ flag_icons List of all pride flags to icon image, for the radial
+ flag_types List of all pride flags to icon state
+ Var Details flag_icons
+
+
+
+
+
+ List of all pride flags to icon image, for the radial
flag_types
+
+
+
+
+
+ List of all pride flags to icon state
+
+
+
diff --git a/obj/item/clothing/ears/headphones.html b/obj/item/clothing/ears/headphones.html
new file mode 100644
index 0000000000000..751204f516718
--- /dev/null
+++ b/obj/item/clothing/ears/headphones.html
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+ /obj/item/clothing/ears/headphones - Space Station 13
+
+
+
+
+
+
+Procs
+ should_stop_playing Whether the headphone's song should stop playing
+ start_playing Called by a component signal when our song starts playing.
+ stop_playing Called by a component signal when our song stops playing.
Proc Details should_stop_playing
+
+ Whether the headphone's song should stop playing
+Arguments:
+start_playing()
+
+
+
+
+
+ Called by a component signal when our song starts playing.
stop_playing()
+
+
+
+
+
+ Called by a component signal when our song stops playing.
+
+
+
diff --git a/obj/item/clothing/glasses.html b/obj/item/clothing/glasses.html
new file mode 100644
index 0000000000000..c42a132c40196
--- /dev/null
+++ b/obj/item/clothing/glasses.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/glasses - Space Station 13
+
+
+
+
+
+
+Vars
+ correct_wires Overrides colorblindness when interacting with wires
+ Var Details correct_wires
+
+
+
+
+
+ Overrides colorblindness when interacting with wires
+
+
+
diff --git a/obj/item/clothing/glasses/hud.html b/obj/item/clothing/glasses/hud.html
new file mode 100644
index 0000000000000..093cf7d2bf3ea
--- /dev/null
+++ b/obj/item/clothing/glasses/hud.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/glasses/hud - Space Station 13
+
+
+
+
+
+
+Vars
+ examine_extensions List of things added to examine text, like security or medical records.
+ hud_types The visual icons granted by wearing these glasses.
+ Var Details examine_extensions
+
+
+
+
+
+ List of things added to examine text, like security or medical records.
hud_types
+
+
+
+
+
+ The visual icons granted by wearing these glasses.
+
+
+
diff --git a/obj/item/clothing/glasses/hud/security/sunglasses/fluff/eyepro.html b/obj/item/clothing/glasses/hud/security/sunglasses/fluff/eyepro.html
new file mode 100644
index 0000000000000..e8877445cde9b
--- /dev/null
+++ b/obj/item/clothing/glasses/hud/security/sunglasses/fluff/eyepro.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ /obj/item/clothing/glasses/hud/security/sunglasses/fluff/eyepro - Space Station 13
+
+
+
+
+
+
+///////// Clothing ////////////
+///////// Gloves //////////////
+///////// Eye Wear ////////////
+T0EPIC4U: Ty Omaha
+
+
+
diff --git a/obj/item/clothing/gloves.html b/obj/item/clothing/gloves.html
new file mode 100644
index 0000000000000..7bb9b1def5e09
--- /dev/null
+++ b/obj/item/clothing/gloves.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/clothing/gloves - Space Station 13
+
+
+
+
+
+
+
+ Var Details gender
+
+
+
+
+
+ Carn: for grammarically correct text-parsing
pickpocket
+
+
+
+
+
+ Master pickpocket?
safe_from_poison
+
+
+
+
+
+ Do they protect the wearer from poison ink?
+
+
+
diff --git a/obj/item/clothing/head/cardborg.html b/obj/item/clothing/head/cardborg.html
new file mode 100644
index 0000000000000..a2e7efe895102
--- /dev/null
+++ b/obj/item/clothing/head/cardborg.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/head/cardborg - Space Station 13
+
+
+
+
+
+
+Vars
+ available_disguises All the borg skins that this can disguise you as.
+ species_disguise You appear to be this when examined instead of your mob's actual species. Also used to verify the helmet and suit are in a matching set.
+ Var Details available_disguises
+
+
+
+
+
+ All the borg skins that this can disguise you as.
species_disguise
+
+
+
+
+
+ You appear to be this when examined instead of your mob's actual species. Also used to verify the helmet and suit are in a matching set.
+
+
+
diff --git a/obj/item/clothing/head/hooded/berserker.html b/obj/item/clothing/head/hooded/berserker.html
new file mode 100644
index 0000000000000..307c3101f85be
--- /dev/null
+++ b/obj/item/clothing/head/hooded/berserker.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/clothing/head/hooded/berserker - Space Station 13
+
+
+
+
+
+
+Vars
+ berserk_active Status of berserk
+ berserk_charge Current charge of berserk, goes from 0 to 100 Procs
+ berserk_mode Starts berserk, giving the wearer 40% brute / burn resist, doubled attacking speed, NOGUNS trait, and colours them blood red.
+ end_berserk Ends berserk, reverting the changes from the proc [berserk_mode]
+ Var Details berserk_active
+
+
+
+
+
+ Status of berserk
berserk_charge
+
+
+
+
+
+ Current charge of berserk, goes from 0 to 100
Proc Details
+ Starts berserk, giving the wearer 40% brute / burn resist, doubled attacking speed, NOGUNS trait, and colours them blood red.
+ Ends berserk, reverting the changes from the proc [berserk_mode]
+
+
+
diff --git a/obj/item/clothing/mask/facehugger.html b/obj/item/clothing/mask/facehugger.html
new file mode 100644
index 0000000000000..a9f87fa2749ce
--- /dev/null
+++ b/obj/item/clothing/mask/facehugger.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/mask/facehugger - Space Station 13
+
+
+
+
+
+
+Vars
+ min_active_time Time it takes for a facehugger to become active again after going idle.
+ Var Details min_active_time
+
+
+
+
+
+ Time it takes for a facehugger to become active again after going idle.
+
+
+
diff --git a/obj/item/clothing/mask/facehugger/toy.html b/obj/item/clothing/mask/facehugger/toy.html
new file mode 100644
index 0000000000000..0a5376c60b3d5
--- /dev/null
+++ b/obj/item/clothing/mask/facehugger/toy.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /obj/item/clothing/mask/facehugger/toy - Space Station 13
+
+
+
+
+
+
+Mining Equipment Vendor Items
+Facehugger toy
+
+
+
diff --git a/obj/item/clothing/mask/holo_cigar.html b/obj/item/clothing/mask/holo_cigar.html
new file mode 100644
index 0000000000000..3de82e6f8d90f
--- /dev/null
+++ b/obj/item/clothing/mask/holo_cigar.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/mask/holo_cigar - Space Station 13
+
+
+
+
+
+
+Vars
+ has_smoked Tracks if this is the first cycle smoking the cigar.
+ Var Details has_smoked
+
+
+
+
+
+ Tracks if this is the first cycle smoking the cigar.
+
+
+
diff --git a/obj/item/clothing/mask/muzzle.html b/obj/item/clothing/mask/muzzle.html
new file mode 100644
index 0000000000000..df0e380bd28f3
--- /dev/null
+++ b/obj/item/clothing/mask/muzzle.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/mask/muzzle - Space Station 13
+
+
+
+
+
+
+Vars
+ resist_time How long you need to gnaw to get rid of the gag, 0 to make it impossible to remove
+ Var Details resist_time
+
+
+
+
+
+ How long you need to gnaw to get rid of the gag, 0 to make it impossible to remove
+
+
+
diff --git a/obj/item/clothing/shoes/magboots.html b/obj/item/clothing/shoes/magboots.html
new file mode 100644
index 0000000000000..a05aef8db3c05
--- /dev/null
+++ b/obj/item/clothing/shoes/magboots.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/shoes/magboots - Space Station 13
+
+
+
+
+
+
+Vars
+ multiple_icons If a pair of magboots has different icons for being on or off
+ Var Details multiple_icons
+
+
+
+
+
+ If a pair of magboots has different icons for being on or off
+
+
+
diff --git a/obj/item/clothing/suit.html b/obj/item/clothing/suit.html
new file mode 100644
index 0000000000000..951445a7c1530
--- /dev/null
+++ b/obj/item/clothing/suit.html
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+ /obj/item/clothing/suit - Space Station 13
+
+
+
+
+
+
+Vars
+ max_suit_w Maximum weight class of an item in the suit storage slot. Procs
+ hierophant_shield_damaged A proc for callback when the shield breaks, since I am stupid and want custom effects.
+ setup_hierophant_shielding Hierophant card shielding. Saves me time.
+ setup_shielding Wrapper proc to apply shielding through AddComponent().
+Called in /obj/item/clothing/Initialize().
+Override with an AddComponent(/datum/component/shielded, args) call containing the desired shield statistics.
+See /datum/component/shielded documentation for a description of the arguments
+ Var Details max_suit_w
+
+
+
+
+
+ Maximum weight class of an item in the suit storage slot.
Proc Details hierophant_shield_damaged(/mob /living /wearer, attack_text, new_current_charges)
+
+
+
+
+
+ A proc for callback when the shield breaks, since I am stupid and want custom effects.
setup_hierophant_shielding()
+
+
+
+
+
+ Hierophant card shielding. Saves me time.
setup_shielding()
+
+
+
+
+
+ Wrapper proc to apply shielding through AddComponent().
+Called in /obj/item/clothing/Initialize().
+Override with an AddComponent(/datum/component/shielded, args) call containing the desired shield statistics.
+See /datum/component/shielded documentation for a description of the arguments
+
+
+
diff --git a/obj/item/clothing/suit/armor/reactive.html b/obj/item/clothing/suit/armor/reactive.html
new file mode 100644
index 0000000000000..75d18fca0cb11
--- /dev/null
+++ b/obj/item/clothing/suit/armor/reactive.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/clothing/suit/armor/reactive - Space Station 13
+
+
+
+
+
+
+Vars
+ cell The cell reactive armor uses.
+ disabled Is the armor disabled, and prevented from reactivating temporarly?
+ energy_cost Cost multiplier for armor. "Stronger" armors use 200 charge, other armors use 120.
+ in_grace_period Is the armor in the one second grace period, to prevent rubbershot / buckshot from draining significant cell useage.
+ Var Details cell
+ – /obj /item /stock_parts/cell/emproof/reactive
+
+
+
+
+ The cell reactive armor uses.
disabled
+
+
+
+
+
+ Is the armor disabled, and prevented from reactivating temporarly?
energy_cost
+
+
+
+
+
+ Cost multiplier for armor. "Stronger" armors use 200 charge, other armors use 120.
in_grace_period
+
+
+
+
+
+ Is the armor in the one second grace period, to prevent rubbershot / buckshot from draining significant cell useage.
+
+
+
diff --git a/obj/item/clothing/suit/armor/reactive/repulse.html b/obj/item/clothing/suit/armor/reactive/repulse.html
new file mode 100644
index 0000000000000..da169088f9c4e
--- /dev/null
+++ b/obj/item/clothing/suit/armor/reactive/repulse.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/clothing/suit/armor/reactive/repulse - Space Station 13
+
+
+
+
+
+
+
+ Var Details repulse_power
+
+
+
+
+
+ How strong the reactive armor is for throwing
repulse_range
+
+
+
+
+
+ How far away are we finding things to throw
sparkle_path
+
+
+
+
+
+ What the sparkles looks like
+
+
+
diff --git a/obj/item/clothing/suit/hooded.html b/obj/item/clothing/suit/hooded.html
new file mode 100644
index 0000000000000..53d7c28d05be3
--- /dev/null
+++ b/obj/item/clothing/suit/hooded.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/suit/hooded - Space Station 13
+
+
+
+
+
+
+Vars
+ respects_nodrop If this variable is true, the hood can not be removed if the hood is nodrop
+ Var Details respects_nodrop
+
+
+
+
+
+ If this variable is true, the hood can not be removed if the hood is nodrop
+
+
+
diff --git a/obj/item/clothing/suit/hooded/cultrobes/cult_shield.html b/obj/item/clothing/suit/hooded/cultrobes/cult_shield.html
new file mode 100644
index 0000000000000..699f21fbee139
--- /dev/null
+++ b/obj/item/clothing/suit/hooded/cultrobes/cult_shield.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/clothing/suit/hooded/cultrobes/cult_shield - Space Station 13
+
+
+
+
+
+
+Procs
+ shield_damaged A proc for callback when the shield breaks, since cult robes are stupid and have different effects
Proc Details shield_damaged(/mob /living /wearer, attack_text, new_current_charges)
+
+
+
+
+
+ A proc for callback when the shield breaks, since cult robes are stupid and have different effects
+
+
+
diff --git a/obj/item/clothing/under.html b/obj/item/clothing/under.html
new file mode 100644
index 0000000000000..467dee4de06f4
--- /dev/null
+++ b/obj/item/clothing/under.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/under - Space Station 13
+
+
+
+
+
+
+Vars
+ has_sensor For the crew computer 2 = unable to change mode Procs
+ turn_sensors_off Tries to turn the sensors off. Returns TRUE if it succeeds
+ Var Details has_sensor
+
+
+
+
+
+ For the crew computer 2 = unable to change mode
Proc Details turn_sensors_off()
+
+
+
+
+
+ Tries to turn the sensors off. Returns TRUE if it succeeds
+
+
+
diff --git a/obj/item/contractor_uplink.html b/obj/item/contractor_uplink.html
new file mode 100644
index 0000000000000..96320de8badf4
--- /dev/null
+++ b/obj/item/contractor_uplink.html
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+ /obj/item/contractor_uplink - Space Station 13
+
+
+
+
+
+
+A contractor's point of contact with their Contractor Hub.
Vars
+ hub The Contractor Hub associated with this uplink. Procs
+ message_holder Sends a message to the mob holding this item.
+ Var Details
+ The Contractor Hub associated with this uplink.
Proc Details message_holder(text, sndfile)
+
+
+
+
+
+ Sends a message to the mob holding this item.
+Arguments:
+
+text - The text to send.
+sndfile - The sound to play to the holder only.
+
+
+
+
diff --git a/obj/item/crusher_trophy/broodmother_tongue.html b/obj/item/crusher_trophy/broodmother_tongue.html
new file mode 100644
index 0000000000000..cae31700be68d
--- /dev/null
+++ b/obj/item/crusher_trophy/broodmother_tongue.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/crusher_trophy/broodmother_tongue - Space Station 13
+
+
+
+
+
+
+Vars
+ use_time Time at which the item becomes usable again
+ Var Details use_time
+
+
+
+
+
+ Time at which the item becomes usable again
+
+
+
diff --git a/obj/item/crusher_trophy/legionnaire_spine.html b/obj/item/crusher_trophy/legionnaire_spine.html
new file mode 100644
index 0000000000000..68bfb0ce984b4
--- /dev/null
+++ b/obj/item/crusher_trophy/legionnaire_spine.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/crusher_trophy/legionnaire_spine - Space Station 13
+
+
+
+
+
+
+
+ Var Details next_use_time
+
+
+
+
+
+ Time at which the item becomes usable again
+
+
+
diff --git a/obj/item/crutches.html b/obj/item/crutches.html
new file mode 100644
index 0000000000000..b22cc4a4b2cb1
--- /dev/null
+++ b/obj/item/crutches.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/crutches - Space Station 13
+
+
+
+
+
+
+Vars
+ hidden Tiny item that can be hidden on crutches with a screwdriver
+ is_open Is the secret compartment open?
+ Var Details hidden
+
+
+
+
+
+ Tiny item that can be hidden on crutches with a screwdriver
is_open
+
+
+
+
+
+ Is the secret compartment open?
+
+
+
diff --git a/obj/item/deck.html b/obj/item/deck.html
new file mode 100644
index 0000000000000..f3ae9933f764d
--- /dev/null
+++ b/obj/item/deck.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /obj/item/deck - Space Station 13
+
+
+
+
+
+
+
+ Var Details card_attack_verb
+
+
+
+
+
+ Inherited card verbs
card_force
+
+
+
+
+
+ Inherited card force
card_hitsound
+
+
+
+
+
+ Inherited card hit sound
card_resistance_flags
+
+
+
+
+
+ Inherited card resistance
card_style
+
+
+
+
+
+ Styling for the cards, if they have multiple sets of sprites
card_throw_range
+
+
+
+
+
+ Inherited card throw range
card_throw_speed
+
+
+
+
+
+ Inherited card throw speed
card_throwforce
+
+
+
+
+
+ Inherited card throw force
cooldown
+
+
+
+
+
+ To prevent spam shuffle
deck_size
+
+
+
+
+
+ Decks default to a single pack, setting it higher will multiply them by that number
deck_style
+
+
+
+
+
+ Styling for the deck, it they has multiple sets of sprites
deck_total
+
+
+
+
+
+ The total number of cards. Set on init after the deck is fully built
simple_deck
+
+
+
+
+
+ For decks without a full set of sprites
+
+
+
diff --git a/obj/item/defibrillator.html b/obj/item/defibrillator.html
new file mode 100644
index 0000000000000..da39f8ee8d2ce
--- /dev/null
+++ b/obj/item/defibrillator.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /obj/item/defibrillator - Space Station 13
+
+
+
+
+
+
+Vars
+ cell Ref to internal power cell.
+ combat If true, this can be used through hardsuits, and can cause heart attacks in harm intent.
+ emag_proof If this can be emagged.
+ hardened If this is vulnerable to EMPs.
+ paddle_type Type of paddles that should be attached to this defib.
+ paddles Ref to attached paddles
+ paddles_on_defib If the paddles are currently attached to the unit.
+ powered if there's a cell in the defib with enough power for a revive; blocks paddles from reviving otherwise
+ safety If false, using harm intent will let you zap people. Note that any updates to this after init will only impact icons.
+ Var Details cell
+
+
+
+
+
+ Ref to internal power cell.
combat
+
+
+
+
+
+ If true, this can be used through hardsuits, and can cause heart attacks in harm intent.
emag_proof
+
+
+
+
+
+ If this can be emagged.
hardened
+
+
+
+
+
+ If this is vulnerable to EMPs.
+ Type of paddles that should be attached to this defib.
+ Ref to attached paddles
paddles_on_defib
+
+
+
+
+
+ If the paddles are currently attached to the unit.
powered
+
+
+
+
+
+ if there's a cell in the defib with enough power for a revive; blocks paddles from reviving otherwise
safety
+
+
+
+
+
+ If false, using harm intent will let you zap people. Note that any updates to this after init will only impact icons.
+
+
+
diff --git a/obj/item/desk_bell.html b/obj/item/desk_bell.html
new file mode 100644
index 0000000000000..6c8d92891274f
--- /dev/null
+++ b/obj/item/desk_bell.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/item/desk_bell - Space Station 13
+
+
+
+
+
+
+
+ Var Details
+ The remote signaller that we're gonna activate to this bell
broken_ringer
+
+
+
+
+
+ Is this bell broken?
ring_cooldown
+
+
+
+
+
+ Holds the time that the bell can next be rang.
ring_cooldown_length
+
+
+
+
+
+ The length of the cooldown. Setting it to 0 will skip all cooldowns alltogether.
ring_sound
+
+
+
+
+
+ The sound the bell makes
times_rang
+
+
+
+
+
+ The amount of times this bell has been rang, used to check the chance it breaks
Proc Details check_clapper
+
+ Check if the clapper breaks, and if it does, break it
ring_bell
+
+ Ring the bell
+
+
+
diff --git a/obj/item/destTagger.html b/obj/item/destTagger.html
new file mode 100644
index 0000000000000..14805a78de130
--- /dev/null
+++ b/obj/item/destTagger.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/destTagger - Space Station 13
+
+
+
+
+
+
+
+ Var Details currTag
+
+
+
+
+
+ Value of the tag
+
+
+
diff --git a/obj/item/detonator.html b/obj/item/detonator.html
new file mode 100644
index 0000000000000..6064ffcdcb93c
--- /dev/null
+++ b/obj/item/detonator.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/detonator - Space Station 13
+
+
+
+
+
+
+Vars
+ bombs list of all bombs connected to a detonator for a moment
+ Var Details bombs
+
+
+
+
+
+ list of all bombs connected to a detonator for a moment
+
+
+
diff --git a/obj/item/disk/nuclear.html b/obj/item/disk/nuclear.html
new file mode 100644
index 0000000000000..78487514504a7
--- /dev/null
+++ b/obj/item/disk/nuclear.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/disk/nuclear - Space Station 13
+
+
+
+
+
+
+Vars
+ restricted_to_station Is the disk restricted to the station? If true, also respawns the disk when deleted
+ training Is this a training disk?
+ Var Details restricted_to_station
+
+
+
+
+
+ Is the disk restricted to the station? If true, also respawns the disk when deleted
training
+
+
+
+
+
+ Is this a training disk?
+
+
+
diff --git a/obj/item/door_remote/janikeyring.html b/obj/item/door_remote/janikeyring.html
new file mode 100644
index 0000000000000..dd84d61acd6db
--- /dev/null
+++ b/obj/item/door_remote/janikeyring.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/door_remote/janikeyring - Space Station 13
+
+
+
+
+
+
+Vars
+ busy Are you already using the keyring?
+ cooldown This prevents spamming the key-shake.
+ hack_speed How fast does the keyring open an airlock. It is not set here so that it can be set via the user's role.
+ last_airlock_uid Stores the last airlock opened, opens faster on repeated use
+ Var Details busy
+
+
+
+
+
+ Are you already using the keyring?
cooldown
+
+
+
+
+
+ This prevents spamming the key-shake.
hack_speed
+
+
+
+
+
+ How fast does the keyring open an airlock. It is not set here so that it can be set via the user's role.
last_airlock_uid
+
+
+
+
+
+ Stores the last airlock opened, opens faster on repeated use
+
+
+
diff --git a/obj/item/eftpos.html b/obj/item/eftpos.html
new file mode 100644
index 0000000000000..3658353f0e74d
--- /dev/null
+++ b/obj/item/eftpos.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/item/eftpos - Space Station 13
+
+
+
+
+
+
+Vars
+ access_code The pin number needed to changed settings on the EFTPOS
+ account_database linked money account database to this EFTPOS
+ linked_account Current money account the EFTPOS is depositing to
+ machine_name Unique identifying name of this EFTPOS for transaction tracking in money accounts
+ transaction_amount Amount in space credits to charge card swiper
+ transaction_locked Whether or not the EFTPOS is locked into a transaction
+ transaction_paid Did the transaction go through? Will reset back to FALSE after 5 seconds, used as a cooldown and indicator to consumer Procs
+ print_reference creates and builds paper with info about the EFTPOS
+ Var Details access_code
+
+
+
+
+
+ The pin number needed to changed settings on the EFTPOS
+ linked money account database to this EFTPOS
+ Current money account the EFTPOS is depositing to
machine_name
+
+
+
+
+
+ Unique identifying name of this EFTPOS for transaction tracking in money accounts
transaction_amount
+
+
+
+
+
+ Amount in space credits to charge card swiper
transaction_locked
+
+
+
+
+
+ Whether or not the EFTPOS is locked into a transaction
transaction_paid
+
+
+
+
+
+ Did the transaction go through? Will reset back to FALSE after 5 seconds, used as a cooldown and indicator to consumer
Proc Details print_reference()
+
+
+
+
+
+ creates and builds paper with info about the EFTPOS
+
+
+
diff --git a/obj/item/electropack.html b/obj/item/electropack.html
new file mode 100644
index 0000000000000..e2dd8edb217cb
--- /dev/null
+++ b/obj/item/electropack.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/electropack - Space Station 13
+
+
+
+
+
+
+
+ Var Details integrated_signaler
+
+
+
+
+
+ The integrated signaler
+
+
+
diff --git a/obj/item/envelope.html b/obj/item/envelope.html
new file mode 100644
index 0000000000000..16bb9a7cf4073
--- /dev/null
+++ b/obj/item/envelope.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/envelope - Space Station 13
+
+
+
+
+
+
+Vars
+ job_list A list that contains the names of the jobs that can receive this type of letter. Only the base job has to be put in it, alternative titles have the same definition on the mind. Name of the job can be found in mind.assigned_role
+ recipient The real name required to open the letter
+ recipient_job The job of the recipient
+ Var Details job_list
+
+
+
+
+
+ A list that contains the names of the jobs that can receive this type of letter. Only the base job has to be put in it, alternative titles have the same definition on the mind. Name of the job can be found in mind.assigned_role
recipient
+
+
+
+
+
+ The real name required to open the letter
recipient_job
+
+
+
+
+
+ The job of the recipient
+
+
+
diff --git a/obj/item/extinguisher.html b/obj/item/extinguisher.html
new file mode 100644
index 0000000000000..42f7790c1401f
--- /dev/null
+++ b/obj/item/extinguisher.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/extinguisher - Space Station 13
+
+
+
+
+
+
+Vars
+ precision FALSE by default, turfs picked from a spray are random, set to TRUE to make it always have at least one water effect per row
+ Var Details precision
+
+
+
+
+
+ FALSE by default, turfs picked from a spray are random, set to TRUE to make it always have at least one water effect per row
+
+
+
diff --git a/obj/item/extinguisher/mini/nozzle.html b/obj/item/extinguisher/mini/nozzle.html
new file mode 100644
index 0000000000000..68fd1b5bc7547
--- /dev/null
+++ b/obj/item/extinguisher/mini/nozzle.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/extinguisher/mini/nozzle - Space Station 13
+
+
+
+
+
+
+Vars
+ metal_synthesis_cooldown Are we overusing the metal synthesizer? can be used 5 times in quick succession, regains 1 use per 10 seconds
+ nanofrost_cooldown Is our nanofrost on cooldown?
+ nozzle_mode What mode are we currently in?
+ tank A reference to the tank that this nozzle is linked to
+ Var Details
+ Are we overusing the metal synthesizer? can be used 5 times in quick succession, regains 1 use per 10 seconds
nanofrost_cooldown
+
+
+
+
+
+ Is our nanofrost on cooldown?
nozzle_mode
+
+
+
+
+
+ What mode are we currently in?
tank
+
+
+
+
+
+ A reference to the tank that this nozzle is linked to
+
+
+
diff --git a/obj/item/flash.html b/obj/item/flash.html
new file mode 100644
index 0000000000000..5a412442a229d
--- /dev/null
+++ b/obj/item/flash.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/flash - Space Station 13
+
+
+
+
+
+
+Vars
+ cooldown This tracks the world.time until the flash can be used again
+ cooldown_duration This is the duration of the cooldown
+ Var Details cooldown
+
+
+
+
+
+ This tracks the world.time until the flash can be used again
cooldown_duration
+
+
+
+
+
+ This is the duration of the cooldown
+
+
+
diff --git a/obj/item/food.html b/obj/item/food.html
new file mode 100644
index 0000000000000..1f8115f40a207
--- /dev/null
+++ b/obj/item/food.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ /obj/item/food - Space Station 13
+
+
+
+
+
+
+Food.
Vars
+ ant_location location checked every 5 minutes. If its the same place, the food has a chance to spawn ants
+ ant_suppressors Things that suppress food from being infested by ants when on the same turf
+ antable Will ants come near it?
+ goal_difficulty How difficult is this food for the kitchen to make?
+Affects the quantity of food that is requested by CC.
+ ingredient_name Name of the food to show up in kitchen machines (microwaves, ovens, etc)
+ last_ant_time Time we last checked for ants
+ list_reagents The list of reagents to create on Initialize()
+ volume Sets the default container amount for all food items.
+ Var Details ant_location
+
+
+
+
+
+ location checked every 5 minutes. If its the same place, the food has a chance to spawn ants
ant_suppressors
+
+
+
+
+
+ Things that suppress food from being infested by ants when on the same turf
antable
+
+
+
+
+
+ Will ants come near it?
goal_difficulty
+
+
+
+
+
+ How difficult is this food for the kitchen to make?
+Affects the quantity of food that is requested by CC.
ingredient_name
+
+
+
+
+
+ Name of the food to show up in kitchen machines (microwaves, ovens, etc)
last_ant_time
+
+
+
+
+
+ Time we last checked for ants
list_reagents
+
+
+
+
+
+ The list of reagents to create on Initialize()
volume
+
+
+
+
+
+ Sets the default container amount for all food items.
+
+
+
diff --git a/obj/item/food/snacks/badrecipe.html b/obj/item/food/snacks/badrecipe.html
new file mode 100644
index 0000000000000..ab760bc743897
--- /dev/null
+++ b/obj/item/food/snacks/badrecipe.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /obj/item/food/snacks/badrecipe - Space Station 13
+
+
+
+
+
+
+FOOD END
+/////////////////////////////////////////Snacks
+
+
+
diff --git a/obj/item/food/snacks/chocolatebar.html b/obj/item/food/snacks/chocolatebar.html
new file mode 100644
index 0000000000000..4ac7556f71663
--- /dev/null
+++ b/obj/item/food/snacks/chocolatebar.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/food/snacks/chocolatebar - Space Station 13
+
+
+
+
+
+
+Proc Details attackby
+
+ Chocolate crumbles/pile
+
+
+
diff --git a/obj/item/food/snacks/customizable.html b/obj/item/food/snacks/customizable.html
new file mode 100644
index 0000000000000..bd03cfff83398
--- /dev/null
+++ b/obj/item/food/snacks/customizable.html
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+ /obj/item/food/snacks/customizable - Space Station 13
+
+
+
+
+
+
+Vars
+ top Do we have a top?
+ top_image The image of the top Procs
+ add_ingredient Tries to add one ingredient and it's ingredients, if any and applicable, to this snack
+ add_ingredients Adds a list of ingredients to the existing snack. Updates the overlays as well
+ Var Details top
+
+
+
+
+
+ Do we have a top?
top_image
+
+
+
+
+
+ The image of the top
Proc Details add_ingredient
+
+ Tries to add one ingredient and it's ingredients, if any and applicable, to this snack
+Arguments:
+
+snack - The ingredient that will be added
+ add_ingredients(/list/new_ingredients)
+
+
+
+
+
+ Adds a list of ingredients to the existing snack. Updates the overlays as well
+Arguments:
+
+new_ingredients - The new ingredients to be added
+
+
+
+
diff --git a/obj/item/food/snacks/egg/watcher.html b/obj/item/food/snacks/egg/watcher.html
new file mode 100644
index 0000000000000..9a3efd953079a
--- /dev/null
+++ b/obj/item/food/snacks/egg/watcher.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/food/snacks/egg/watcher - Space Station 13
+
+
+
+
+
+
+Egg which hatches into a helpful pet. Or you can eat it if you want.
+ Var Details
+ Datum used to measure our steps
steps_to_hatch
+
+
+
+
+
+ How far should we travel to hatch?
steps_travelled
+
+
+
+
+
+ How far have we moved?
Proc Details jiggle()
+
+
+
+
+
+ Animate the egg
on_stepped
+
+ Called when we are moved, whether inside an inventory or by ourself somehow
+
+
+
diff --git a/obj/item/food/snacks/grown.html b/obj/item/food/snacks/grown.html
new file mode 100644
index 0000000000000..2d487e43e3a6d
--- /dev/null
+++ b/obj/item/food/snacks/grown.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/food/snacks/grown - Space Station 13
+
+
+
+
+
+
+Vars
+ seed The seed of this plant. Starts as a type path, gets converted to an item on New()
+ unsorted_seed The unsorted seed of this plant, if any. Used by the seed extractor.
+ Var Details
+ The seed of this plant. Starts as a type path, gets converted to an item on New()
unsorted_seed
+
+
+
+
+
+ The unsorted seed of this plant, if any. Used by the seed extractor.
+
+
+
diff --git a/obj/item/food/snacks/warmdonkpocket.html b/obj/item/food/snacks/warmdonkpocket.html
new file mode 100644
index 0000000000000..c742644c8d5e3
--- /dev/null
+++ b/obj/item/food/snacks/warmdonkpocket.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/food/snacks/warmdonkpocket - Space Station 13
+
+
+
+
+
+
+Vars
+ cool_timer This stores the timer for how long the donk pocket takes to cool, seven minutes, that is paused inside of a donk pocket box
+ heated_at This is used to check the world time when the donk pocket was heated or last removed from a donk pocket box, for restarting the timer
+ subtracted_time This tracks how much time the donk pocket has already been cooling for when its timer is paused
+ warm Is the donk pocket warm or has it cooled - this affects what chemicals it yields when consumed
+ Var Details cool_timer
+
+
+
+
+
+ This stores the timer for how long the donk pocket takes to cool, seven minutes, that is paused inside of a donk pocket box
heated_at
+
+
+
+
+
+ This is used to check the world time when the donk pocket was heated or last removed from a donk pocket box, for restarting the timer
subtracted_time
+
+
+
+
+
+ This tracks how much time the donk pocket has already been cooling for when its timer is paused
warm
+
+
+
+
+
+ Is the donk pocket warm or has it cooled - this affects what chemicals it yields when consumed
+
+
+
diff --git a/obj/item/gps.html b/obj/item/gps.html
new file mode 100644
index 0000000000000..f7351ea08af52
--- /dev/null
+++ b/obj/item/gps.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/item/gps - Space Station 13
+
+
+
+
+
+
+A small item that reports its current location. Has a tag to help distinguish between them.
Vars
+ emped Whether the GPS is EMPed, disabling it temporarily.
+ gpstag The tag that is visible to other GPSes.
+ local Whether the GPS should only show up to GPSes on the same Z-level.
+ locked_location Turf reference. If set, it will appear in the UI. Used by /obj/machinery/computer/telescience .
+ same_z Whether to only list signals that are on the same Z-level.
+ tracking Whether the GPS is on. Procs
+ reboot Turns off the GPS's EMPed state. Called automatically after an EMP.
+ Var Details emped
+
+
+
+
+
+ Whether the GPS is EMPed, disabling it temporarily.
gpstag
+
+
+
+
+
+ The tag that is visible to other GPSes.
local
+
+
+
+
+
+ Whether the GPS should only show up to GPSes on the same Z-level.
locked_location
+
+
+
+
+
+ Turf reference. If set, it will appear in the UI. Used by /obj/machinery/computer/telescience .
same_z
+
+
+
+
+
+ Whether to only list signals that are on the same Z-level.
tracking
+
+
+
+
+
+ Whether the GPS is on.
Proc Details reboot()
+
+
+
+
+
+ Turns off the GPS's EMPed state. Called automatically after an EMP.
+
+
+
diff --git a/obj/item/grenade.html b/obj/item/grenade.html
new file mode 100644
index 0000000000000..ff8de6ff4b5b8
--- /dev/null
+++ b/obj/item/grenade.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/grenade - Space Station 13
+
+
+
+
+
+
+Procs
+ Destroy We need to clear the walk_to on grabbing a moving grenade to have it not leap straight out of your hand
Proc Details Destroy()
+
+
+
+
+
+ We need to clear the walk_to on grabbing a moving grenade to have it not leap straight out of your hand
+
+
+
diff --git a/obj/item/grenade/barrier/dropwall.html b/obj/item/grenade/barrier/dropwall.html
new file mode 100644
index 0000000000000..f9981671c5b9b
--- /dev/null
+++ b/obj/item/grenade/barrier/dropwall.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/grenade/barrier/dropwall - Space Station 13
+
+
+
+
+
+
+Vars
+ armer Mob who armed it. Needed for the get_dir proc
+ deployed If this is true we do not arm again, due to the sleep
+ Var Details armer
+
+
+
+
+
+ Mob who armed it. Needed for the get_dir proc
deployed
+
+
+
+
+
+ If this is true we do not arm again, due to the sleep
+
+
+
diff --git a/obj/item/grenade/cryogrenade_mod.html b/obj/item/grenade/cryogrenade_mod.html
new file mode 100644
index 0000000000000..7005d700ed320
--- /dev/null
+++ b/obj/item/grenade/cryogrenade_mod.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/grenade/cryogrenade_mod - Space Station 13
+
+
+
+
+
+
+Vars
+ thrower Mob that threw the grenade.
+ Var Details thrower
+
+
+
+
+
+ Mob that threw the grenade.
+
+
+
diff --git a/obj/item/grenade/jaunter_grenade.html b/obj/item/grenade/jaunter_grenade.html
new file mode 100644
index 0000000000000..c094f6d76886b
--- /dev/null
+++ b/obj/item/grenade/jaunter_grenade.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/grenade/jaunter_grenade - Space Station 13
+
+
+
+
+
+
+Vars
+ thrower Mob that threw the grenade.
+ Var Details thrower
+
+
+
+
+
+ Mob that threw the grenade.
+
+
+
diff --git a/obj/item/grenade/mirage.html b/obj/item/grenade/mirage.html
new file mode 100644
index 0000000000000..1e2531a85eb62
--- /dev/null
+++ b/obj/item/grenade/mirage.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/grenade/mirage - Space Station 13
+
+
+
+
+
+
+Vars
+ thrower Mob that threw the grenade.
+ Var Details thrower
+
+
+
+
+
+ Mob that threw the grenade.
+
+
+
diff --git a/obj/item/grenade/plastic.html b/obj/item/grenade/plastic.html
new file mode 100644
index 0000000000000..f6cc232bd8105
--- /dev/null
+++ b/obj/item/grenade/plastic.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/grenade/plastic - Space Station 13
+
+
+
+
+
+
+
+ Var Details plastic_overlay
+
+
+
+
+
+ C4 overlay to put on target
plastic_overlay_target
+
+
+
+
+
+ Target of the overlay, not neccicarly the thing the C4 is attached to!
+
+
+
diff --git a/obj/item/grenade/plastic/c4.html b/obj/item/grenade/plastic/c4.html
new file mode 100644
index 0000000000000..4e8b5579f0d4c
--- /dev/null
+++ b/obj/item/grenade/plastic/c4.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/grenade/plastic/c4 - Space Station 13
+
+
+
+
+
+
+The Explosives
Vars
+ aim_dir Set when installing the charge, to know which direction to explode to when setting up a shaped c4
+ ex_breach Will the explosion cause a breach. C4 placed on floors will always cause a breach, regardless of this value.
+ ex_devastate Range values given to the explosion proc when primed
+ shaped If set to true, the secondary explosion will be centered two tiles behind the wall/object it's set on for a targeted breach and entry.
+ Var Details aim_dir
+
+
+
+
+
+ Set when installing the charge, to know which direction to explode to when setting up a shaped c4
ex_breach
+
+
+
+
+
+ Will the explosion cause a breach. C4 placed on floors will always cause a breach, regardless of this value.
ex_devastate
+
+
+
+
+
+ Range values given to the explosion proc when primed
shaped
+
+
+
+
+
+ If set to true, the secondary explosion will be centered two tiles behind the wall/object it's set on for a targeted breach and entry.
+
+
+
diff --git a/obj/item/grenade/plastic/miningcharge.html b/obj/item/grenade/plastic/miningcharge.html
new file mode 100644
index 0000000000000..d9cf0f6dad05c
--- /dev/null
+++ b/obj/item/grenade/plastic/miningcharge.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/grenade/plastic/miningcharge - Space Station 13
+
+
+
+
+
+
+Vars
+ boom_sizes list of sizes for explosion. Third number is used for actual rock explosion size, second number is radius for Weaken() effects, first is used for hacked charges
+ timer_off When TRUE, charges won't detonate on it's own. Used for mining detonator Procs
+ deconstruct Overriding to avoid the chargers from exploding because of received damage
+ Var Details boom_sizes
+
+
+
+
+
+ list of sizes for explosion. Third number is used for actual rock explosion size, second number is radius for Weaken() effects, first is used for hacked charges
timer_off
+
+
+
+
+
+ When TRUE, charges won't detonate on it's own. Used for mining detonator
Proc Details deconstruct(disassembled)
+
+
+
+
+
+ Overriding to avoid the chargers from exploding because of received damage
+
+
+
diff --git a/obj/item/gripper.html b/obj/item/gripper.html
new file mode 100644
index 0000000000000..ded5aaee5c2bf
--- /dev/null
+++ b/obj/item/gripper.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/gripper - Space Station 13
+
+
+
+
+
+
+
+ Var Details can_help_up
+
+
+
+
+
+ Set to TRUE to allow the gripper to shake people awake and help them up.
can_hold
+
+
+
+
+
+ Defines what items the gripper can carry.
can_hold_all_items
+
+
+
+
+
+ Set to TRUE to allow ANY item to be held, bypassing can_hold checks.
engineering_machine_interaction
+
+
+
+
+
+ Set to TRUE to removal of cells/lights from machine objects containing them.
gripped_item
+
+
+
+
+
+ The item currently being held.
+
+
+
diff --git a/obj/item/grown.html b/obj/item/grown.html
new file mode 100644
index 0000000000000..386828ba4d72c
--- /dev/null
+++ b/obj/item/grown.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/grown - Space Station 13
+
+
+
+
+
+
+Grown weapons
Vars
+ seed The seed of this plant. Starts as a type path, gets converted to an item on New()
+ unsorted_seed The unsorted seed of this plant, if any. Used by the seed extractor.
+ Var Details
+ The seed of this plant. Starts as a type path, gets converted to an item on New()
unsorted_seed
+
+
+
+
+
+ The unsorted seed of this plant, if any. Used by the seed extractor.
+
+
+
diff --git a/obj/item/guardiancreator.html b/obj/item/guardiancreator.html
new file mode 100644
index 0000000000000..918619c9b998c
--- /dev/null
+++ b/obj/item/guardiancreator.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/guardiancreator - Space Station 13
+
+
+
+
+
+
+Creation
+ Var Details picked_random_type
+
+
+
+
+
+ What type was picked the first activation
+
+
+
diff --git a/obj/item/gun.html b/obj/item/gun.html
new file mode 100644
index 0000000000000..634d06c8616a1
--- /dev/null
+++ b/obj/item/gun.html
@@ -0,0 +1,246 @@
+
+
+
+
+
+
+ /obj/item/gun - Space Station 13
+
+
+
+
+
+
+Vars
+ burst_size The number of bullets in a trigger pull.
+ can_bayonet Whether or not a knife can be attached to the gun.
+ can_flashlight Whether or not a flashlight can be attached to the gun.
+ can_holster Whether or not the gun fits in a shoulder holster.
+ can_suppress Whether or not a suppressor can be attached to the gun.
+ can_unsuppress Whether or not an attached suppressor can be removed from the gun.
+ chambered Is there currently a bullet in the chamber?
+ clumsy_check Checks to see if the user has the clumsy trait.
+ current_skin The skin choice if we had a reskin.
+ dual_wield_spread Additional spread when dual wielding.
+ execution_speed How long it takes to perform an execution with the gun.
+ fire_delay Rate of fire for burst firing and semi auto.
+ fire_sound Sound played when a projectile is fired.
+ fire_sound_text The fire sound that shows in chat messages: laser blast, gunshot, etc.
+ firing_burst Prevent the gun from firing again while already firing.
+ gun_light Whether or not the gun has a flashlight.
+ magin_sound Sound played when inserting a new magazine.
+ magout_sound Sound played when ejecting a magazine.
+ options List of reskin options.
+ recoil Screen shake when firing.
+ restricted_species Restrict what species can fire this gun.
+ sawn_desc Description change if gun is sawn-off.
+ sawn_state Whether or not the gun has been sawn-off.
+ semicd Cooldown handler.
+ spread Bigger values make shots less precise.
+ suppressed Whether or not a message is displayed when fired.
+ trigger_guard Trigger guard on the gun, hulks and ash walkers can't fire them with their big meaty fingers.
+ unique_rename If TRUE, allows the gun to be renamed with a pen.
+ unique_reskin Allows one-time reskinning.
+ upgrades Weapon modifications (except bayonets, flashlights, and suppressors - these are tracked seperately).
+ weapon_weight When dual wielding, accuracy will decrease based on weapon weight. WEAPON_HEAVY makes a weapon require two hands to fire, unless the user has TRAIT_BADASS.
+ Var Details burst_size
+
+
+
+
+
+ The number of bullets in a trigger pull.
can_bayonet
+
+
+
+
+
+ Whether or not a knife can be attached to the gun.
can_flashlight
+
+
+
+
+
+ Whether or not a flashlight can be attached to the gun.
can_holster
+
+
+
+
+
+ Whether or not the gun fits in a shoulder holster.
can_suppress
+
+
+
+
+
+ Whether or not a suppressor can be attached to the gun.
can_unsuppress
+
+
+
+
+
+ Whether or not an attached suppressor can be removed from the gun.
+ Is there currently a bullet in the chamber?
clumsy_check
+
+
+
+
+
+ Checks to see if the user has the clumsy trait.
current_skin
+
+
+
+
+
+ The skin choice if we had a reskin.
dual_wield_spread
+
+
+
+
+
+ Additional spread when dual wielding.
execution_speed
+
+
+
+
+
+ How long it takes to perform an execution with the gun.
fire_delay
+
+
+
+
+
+ Rate of fire for burst firing and semi auto.
fire_sound
+
+
+
+
+
+ Sound played when a projectile is fired.
fire_sound_text
+
+
+
+
+
+ The fire sound that shows in chat messages: laser blast, gunshot, etc.
firing_burst
+
+
+
+
+
+ Prevent the gun from firing again while already firing.
gun_light
+
+
+
+
+
+ Whether or not the gun has a flashlight.
magin_sound
+
+
+
+
+
+ Sound played when inserting a new magazine.
magout_sound
+
+
+
+
+
+ Sound played when ejecting a magazine.
options
+
+
+
+
+
+ List of reskin options.
recoil
+
+
+
+
+
+ Screen shake when firing.
restricted_species
+
+
+
+
+
+ Restrict what species can fire this gun.
sawn_desc
+
+
+
+
+
+ Description change if gun is sawn-off.
sawn_state
+
+
+
+
+
+ Whether or not the gun has been sawn-off.
semicd
+
+
+
+
+
+ Cooldown handler.
spread
+
+
+
+
+
+ Bigger values make shots less precise.
suppressed
+
+
+
+
+
+ Whether or not a message is displayed when fired.
trigger_guard
+
+
+
+
+
+ Trigger guard on the gun, hulks and ash walkers can't fire them with their big meaty fingers.
unique_rename
+
+
+
+
+
+ If TRUE, allows the gun to be renamed with a pen.
unique_reskin
+
+
+
+
+
+ Allows one-time reskinning.
upgrades
+
+
+
+
+
+ Weapon modifications (except bayonets, flashlights, and suppressors - these are tracked seperately).
weapon_weight
+
+
+
+
+
+ When dual wielding, accuracy will decrease based on weapon weight. WEAPON_HEAVY makes a weapon require two hands to fire, unless the user has TRAIT_BADASS.
+
+
+
diff --git a/obj/item/gun/energy.html b/obj/item/gun/energy.html
new file mode 100644
index 0000000000000..31fbdfbaec7da
--- /dev/null
+++ b/obj/item/gun/energy.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /obj/item/gun/energy - Space Station 13
+
+
+
+
+
+
+Vars
+ ammo_type What projectiles can this gun shoot?
+ can_charge If set to FALSE, the gun cannot be recharged in a recharger.
+ can_fit_in_turrets Do you want the gun to fit into a turret, defaults to TRUE, used for if a energy gun is too strong to be in a turret, or does not make sense to be in one.
+ cell What type of power cell this uses
+ cell_type The specific type of power cell this gun has.
+ charge_sections How many lights are there on the gun's item sprite indicating the charge level?
+ inhand_charge_sections How many lights are there on the gun's in-hand sprite indicating the charge level?
+ overlay_set If the item uses a shared set of overlays instead of being based on icon_state
+ ratio Used when updating icon and overlays to determine the energy pips
+ select The state of the select fire switch. Determines from the ammo_type list what kind of shot is fired next.
+ selfcharge Does this gun recharge itself? Some guns (such as the M1911-P) do not use this and instead have a cell type that self-charges.
+ shaded_charge If this gun uses a stateful charge bar for more detail
+ Var Details ammo_type
+
+
+
+
+
+ What projectiles can this gun shoot?
can_charge
+
+
+
+
+
+ If set to FALSE, the gun cannot be recharged in a recharger.
can_fit_in_turrets
+
+
+
+
+
+ Do you want the gun to fit into a turret, defaults to TRUE, used for if a energy gun is too strong to be in a turret, or does not make sense to be in one.
cell
+
+
+
+
+
+ What type of power cell this uses
cell_type
+
+
+
+
+
+ The specific type of power cell this gun has.
charge_sections
+
+
+
+
+
+ How many lights are there on the gun's item sprite indicating the charge level?
inhand_charge_sections
+
+
+
+
+
+ How many lights are there on the gun's in-hand sprite indicating the charge level?
overlay_set
+
+
+
+
+
+ If the item uses a shared set of overlays instead of being based on icon_state
ratio
+
+
+
+
+
+ Used when updating icon and overlays to determine the energy pips
select
+
+
+
+
+
+ The state of the select fire switch. Determines from the ammo_type list what kind of shot is fired next.
selfcharge
+
+
+
+
+
+ Does this gun recharge itself? Some guns (such as the M1911-P) do not use this and instead have a cell type that self-charges.
shaded_charge
+
+
+
+
+
+ If this gun uses a stateful charge bar for more detail
+
+
+
diff --git a/obj/item/gun/energy/detective.html b/obj/item/gun/energy/detective.html
new file mode 100644
index 0000000000000..b5768137d2136
--- /dev/null
+++ b/obj/item/gun/energy/detective.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/gun/energy/detective - Space Station 13
+
+
+
+
+
+
+
+ Var Details Announcer
+
+
+
+
+
+ Yes, this gun has a radio, welcome to 2022
linked_pinpointer_UID
+
+
+
+
+
+ Used to link back to the pinpointer
overcharged
+
+
+
+
+
+ Used to track if the gun is overcharged
tracking_target_UID
+
+
+
+
+
+ If true, this gun is tracking something and cannot track another mob
+
+
+
diff --git a/obj/item/gun/energy/sparker.html b/obj/item/gun/energy/sparker.html
new file mode 100644
index 0000000000000..fcf2b09e01999
--- /dev/null
+++ b/obj/item/gun/energy/sparker.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/gun/energy/sparker - Space Station 13
+
+
+
+
+
+
+Vars
+ emp_cooldown The cooldown tracking when we were last EMP'd
+ Var Details emp_cooldown
+
+
+
+
+
+ The cooldown tracking when we were last EMP'd
+
+
+
diff --git a/obj/item/gun/energy/temperature.html b/obj/item/gun/energy/temperature.html
new file mode 100644
index 0000000000000..2662c148a4f6c
--- /dev/null
+++ b/obj/item/gun/energy/temperature.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/gun/energy/temperature - Space Station 13
+
+
+
+
+
+
+
+ Var Details temperature_multiplier
+
+
+
+
+
+ How fast the gun changes temperature
+
+
+
diff --git a/obj/item/gun/projectile.html b/obj/item/gun/projectile.html
new file mode 100644
index 0000000000000..cefeab611800f
--- /dev/null
+++ b/obj/item/gun/projectile.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/gun/projectile - Space Station 13
+
+
+
+
+
+
+
+ Var Details suppressed_sound
+
+
+
+
+
+ The sound it will make when the gun suppression is TRUE
+
+
+
diff --git a/obj/item/gun/syringe/rapidsyringe.html b/obj/item/gun/syringe/rapidsyringe.html
new file mode 100644
index 0000000000000..e7d5344ee1edb
--- /dev/null
+++ b/obj/item/gun/syringe/rapidsyringe.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+ /obj/item/gun/syringe/rapidsyringe - Space Station 13
+
+
+
+
+
+
+
+ Var Details alarmed
+
+
+
+
+
+ Whether or not we've alerted the user that the reservoir is empty.
possible_transfer_amounts
+
+
+
+
+
+ Possible amounts to fill each syringe with, toggleable by alt-clicking.
reservoir_transfer_amount
+
+
+
+
+
+ Amount of reagents to transfer out at once if no syringe is loaded.
reservoir_volume
+
+
+
+
+
+ Maximum size of the internal reservoir
transfer_amount_selection
+
+
+
+
+
+ Index of possible_transfer_amounts that's currently active.
Proc Details
+ If user is null in this proc, messages will just be ignored
update_loaded_syringe()
+
+
+
+
+
+ Update the chambered syringe's contents based on the reservoir contents.
+Makes sure that what's contained in the syringe is representative of the mix as a whole.
+
+
+
diff --git a/obj/item/gun/syringe/rapidsyringe/preloaded.html b/obj/item/gun/syringe/rapidsyringe/preloaded.html
new file mode 100644
index 0000000000000..522d183340127
--- /dev/null
+++ b/obj/item/gun/syringe/rapidsyringe/preloaded.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/gun/syringe/rapidsyringe/preloaded - Space Station 13
+
+
+
+
+
+
+Version that comes pre-loaded with a given amount of syringes.
Vars
+ number_to_preload The number of syringes to reload. If not set, defaults to max_syringes.
+ Var Details number_to_preload
+
+
+
+
+
+ The number of syringes to reload. If not set, defaults to max_syringes.
+
+
+
diff --git a/obj/item/hand_tele.html b/obj/item/hand_tele.html
new file mode 100644
index 0000000000000..b144c1c1fc683
--- /dev/null
+++ b/obj/item/hand_tele.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/hand_tele - Space Station 13
+
+
+
+
+
+
+Vars
+ emp_timer Variable contains next time hand tele can be used to make it not EMP proof
+ Var Details emp_timer
+
+
+
+
+
+ Variable contains next time hand tele can be used to make it not EMP proof
+
+
+
diff --git a/obj/item/handheld_defibrillator.html b/obj/item/handheld_defibrillator.html
new file mode 100644
index 0000000000000..dc2c6c573b40f
--- /dev/null
+++ b/obj/item/handheld_defibrillator.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/handheld_defibrillator - Space Station 13
+
+
+
+
+
+
+Vars
+ attack_cooldown How long until we can attack the same person with any emagged handheld defib or baton again?
+ charge_time How long will it take to recharge after a shock?
+ cooldown Can the defib shock yet?
+ knockdown_duration How long does this knock the target down for?
+ Var Details attack_cooldown
+
+
+
+
+
+ How long until we can attack the same person with any emagged handheld defib or baton again?
charge_time
+
+
+
+
+
+ How long will it take to recharge after a shock?
cooldown
+
+
+
+
+
+ Can the defib shock yet?
knockdown_duration
+
+
+
+
+
+ How long does this knock the target down for?
+
+
+
diff --git a/obj/item/his_grace.html b/obj/item/his_grace.html
new file mode 100644
index 0000000000000..3e5532f88380f
--- /dev/null
+++ b/obj/item/his_grace.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/his_grace - Space Station 13
+
+
+
+
+
+
+
+ Var Details awakened
+
+
+
+
+
+ Is our little toolbox awake?
bloodthirst
+
+
+
+
+
+ How hungry is His Grace?
+
+
+
diff --git a/obj/item/inflatable/cyborg.html b/obj/item/inflatable/cyborg.html
new file mode 100644
index 0000000000000..938ab08899e00
--- /dev/null
+++ b/obj/item/inflatable/cyborg.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/inflatable/cyborg - Space Station 13
+
+
+
+
+
+
+Vars
+ delay How long it takes to inflate
+ Var Details delay
+
+
+
+
+
+ How long it takes to inflate
+
+
+
diff --git a/obj/item/instrument.html b/obj/item/instrument.html
new file mode 100644
index 0000000000000..ed5b3b2f5383f
--- /dev/null
+++ b/obj/item/instrument.html
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+ /obj/item/instrument - Space Station 13
+
+
+
+
+
+
+
+ Var Details allowed_instrument_ids
+
+
+
+
+
+ Our allowed list of instrument ids. This is nulled on initialize.
instrument_range
+
+
+
+
+
+ How far away our song datum can be heard.
song
+
+
+
+
+
+ Our song datum.
Proc Details should_stop_playing
+
+ Whether the instrument should stop playing
+Arguments:
+
+
+
+
diff --git a/obj/item/kinetic_crusher.html b/obj/item/kinetic_crusher.html
new file mode 100644
index 0000000000000..72bc3740af0d6
--- /dev/null
+++ b/obj/item/kinetic_crusher.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /obj/item/kinetic_crusher - Space Station 13
+
+
+
+
+
+
+Mining Hammer
Vars
+ base_force_wielded Amount of force typically assigned when wielded
+ force_wielded Tracker for the current amount of force used when the item is wielded.
+Note that this isn't wired to anything, and must be updated with AddComponent to have value.
+ Var Details base_force_wielded
+
+
+
+
+
+ Amount of force typically assigned when wielded
force_wielded
+
+
+
+
+
+ Tracker for the current amount of force used when the item is wielded.
+Note that this isn't wired to anything, and must be updated with AddComponent to have value.
+
+
+
diff --git a/obj/item/kirbyplants.html b/obj/item/kirbyplants.html
new file mode 100644
index 0000000000000..4cdb902053be9
--- /dev/null
+++ b/obj/item/kirbyplants.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/kirbyplants - Space Station 13
+
+
+
+
+
+
+Vars
+ mob_overlay Method to track plant overlay on mob for later removal Procs
+ hide_user User has decided to hold a plant, apply stealth.
+ reapply_hide Icon operation has occured, time to make sure we're showing a plant again if we need to be.
+ unhide_user User has either dropped the plant, or plant is being destroyed, restore user to normal.
+ Var Details mob_overlay
+
+
+
+
+
+ Method to track plant overlay on mob for later removal
Proc Details hide_user
+
+ User has decided to hold a plant, apply stealth.
reapply_hide
+
+ Icon operation has occured, time to make sure we're showing a plant again if we need to be.
unhide_user
+
+ User has either dropped the plant, or plant is being destroyed, restore user to normal.
+
+
+
diff --git a/obj/item/light.html b/obj/item/light.html
new file mode 100644
index 0000000000000..f2fbdbb750d89
--- /dev/null
+++ b/obj/item/light.html
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+ /obj/item/light - Space Station 13
+
+
+
+
+
+
+Parent type of light fittings (Light bulbs, light tubes)
+Will fit into empty /obj/machinery/light of the corresponding type
+ Var Details brightness_color
+
+
+
+
+
+ Light colour
brightness_power
+
+
+
+
+
+ Light intensity
brightness_range
+
+
+
+
+
+ Light range
materials
+
+
+
+
+
+ Materials the light is made of
rigged
+
+
+
+
+
+ Is the light rigged to explode?
status
+
+
+
+
+
+ Light status (LIGHT_OK | LIGHT_BURNED | LIGHT_BROKEN)
switchcount
+
+
+
+
+
+ How many times has the light been switched on/off?
+
+
+
diff --git a/obj/item/lighter.html b/obj/item/lighter.html
new file mode 100644
index 0000000000000..2fc8bf6b5fc5b
--- /dev/null
+++ b/obj/item/lighter.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/lighter - Space Station 13
+
+
+
+
+
+
+Vars
+ next_off_message Cooldown until the next turned off message/sound can be activated
+ next_on_message Cooldown until the next turned on message/sound can be activated
+ Var Details next_off_message
+
+
+
+
+
+ Cooldown until the next turned off message/sound can be activated
next_on_message
+
+
+
+
+
+ Cooldown until the next turned on message/sound can be activated
+
+
+
diff --git a/obj/item/lightreplacer.html b/obj/item/lightreplacer.html
new file mode 100644
index 0000000000000..41c7b1273bb18
--- /dev/null
+++ b/obj/item/lightreplacer.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/lightreplacer - Space Station 13
+
+
+
+
+
+
+
+ Var Details bluespace_toggle
+
+
+
+
+
+ It can replace lights at a distance?
bulb_shards
+
+
+
+
+
+ Eating used bulbs gives us bulb shards
decrement
+
+
+
+
+
+ How much to take from the glass?
increment
+
+
+
+
+
+ How much to increase per each glass?
shards_required
+
+
+
+
+
+ when we get this many shards, we get a free bulb.
+
+
+
diff --git a/obj/item/magic_tarot_card.html b/obj/item/magic_tarot_card.html
new file mode 100644
index 0000000000000..c0784d3745884
--- /dev/null
+++ b/obj/item/magic_tarot_card.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/magic_tarot_card - Space Station 13
+
+
+
+
+
+
+Vars
+ card_desc Our fancy description given to use by the tarot datum.
+ creator_deck The deck that created us. Notifies it we have been deleted on use.
+ face_down Is the card face down? Shows the card back, hides the examine / name.
+ has_been_activated Has the card been activated? If it has, don't activate it again
+ our_tarot Our magic tarot card datum that lets the tarot card do stuff on use, or hitting someone
+ Var Details card_desc
+
+
+
+
+
+ Our fancy description given to use by the tarot datum.
+ The deck that created us. Notifies it we have been deleted on use.
face_down
+
+
+
+
+
+ Is the card face down? Shows the card back, hides the examine / name.
has_been_activated
+
+
+
+
+
+ Has the card been activated? If it has, don't activate it again
our_tarot
+
+
+
+
+
+ Our magic tarot card datum that lets the tarot card do stuff on use, or hitting someone
+
+
+
diff --git a/obj/item/mail_scanner.html b/obj/item/mail_scanner.html
new file mode 100644
index 0000000000000..7280b56cebb33
--- /dev/null
+++ b/obj/item/mail_scanner.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/mail_scanner - Space Station 13
+
+
+
+
+
+
+Vars
+ saved The reference to the envelope that is currently stored in the mail scanner. It will be cleared upon confirming a correct delivery
+ scanner_range How far away can the scanner scan mail or people
+ Var Details
+ The reference to the envelope that is currently stored in the mail scanner. It will be cleared upon confirming a correct delivery
scanner_range
+
+
+
+
+
+ How far away can the scanner scan mail or people
+
+
+
diff --git a/obj/item/matter_decompiler.html b/obj/item/matter_decompiler.html
new file mode 100644
index 0000000000000..9eff721b8cc74
--- /dev/null
+++ b/obj/item/matter_decompiler.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/matter_decompiler - Space Station 13
+
+
+
+
+
+
+
+ Var Details stored_comms
+
+
+
+
+
+ Metal, glass, wood, plastic.
+
+
+
diff --git a/obj/item/megaphone.html b/obj/item/megaphone.html
new file mode 100644
index 0000000000000..92d6cfbec7b40
--- /dev/null
+++ b/obj/item/megaphone.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/megaphone - Space Station 13
+
+
+
+
+
+
+
+ Var Details insultmsg
+
+
+
+
+
+ List of insults to be sent when the megaphone is cmagged.
modified_cooldown
+
+
+
+
+
+ How long to wait between insults
normal_cooldown
+
+
+
+
+
+ How long to wait when using it as normal
on_cooldown
+
+
+
+
+
+ If it's on cooldown.
span
+
+
+
+
+
+ Span to use by default for the message.
+
+
+
diff --git a/obj/item/melee/baton.html b/obj/item/melee/baton.html
new file mode 100644
index 0000000000000..c2cd57be43b01
--- /dev/null
+++ b/obj/item/melee/baton.html
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+ /obj/item/melee/baton - Space Station 13
+
+
+
+
+
+
+Vars
+ cooldown the initial cooldown tracks the time between swings. tracks the world.time when the baton is usable again.
+ hitcost How much power does it cost to stun someone
+ knockdown_delay the time it takes before the target falls over
+ knockdown_duration How many seconds does the knockdown last for?
+ stam_damage how much stamina damage does this baton do?
+ turned_on Is the baton currently turned on Procs
+ baton_stun returning false results in no baton attack animation, returning true results in an animation.
+ deductcharge Removes the specified amount of charge from the batons power cell.
+ link_new_cell Updates the linked power cell on the baton.
+ Var Details cooldown
+
+
+
+
+
+ the initial cooldown tracks the time between swings. tracks the world.time when the baton is usable again.
hitcost
+
+
+
+
+
+ How much power does it cost to stun someone
knockdown_delay
+
+
+
+
+
+ the time it takes before the target falls over
knockdown_duration
+
+
+
+
+
+ How many seconds does the knockdown last for?
stam_damage
+
+
+
+
+
+ how much stamina damage does this baton do?
turned_on
+
+
+
+
+
+ Is the baton currently turned on
Proc Details baton_stun
+
+ returning false results in no baton attack animation, returning true results in an animation.
deductcharge(amount)
+
+
+
+
+
+ Removes the specified amount of charge from the batons power cell.
+If src
is a cyborg baton, this removes the charge from the borg's internal power cell instead.
+Arguments:
+
+amount - The amount of battery charge to be used.
+ link_new_cell(unlink)
+
+
+
+
+
+ Updates the linked power cell on the baton.
+If the baton is held by a cyborg, link it to their internal cell.
+Else, spawn a new cell and use that instead.
+Arguments:
+
+unlink - If TRUE, sets the cell
variable to null
rather than linking it to a new one.
+
+
+
+
diff --git a/obj/item/melee/blood_magic.html b/obj/item/melee/blood_magic.html
new file mode 100644
index 0000000000000..3a08f3ef6021d
--- /dev/null
+++ b/obj/item/melee/blood_magic.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/melee/blood_magic - Space Station 13
+
+
+
+
+
+
+Vars
+ has_source Does it have a source, AKA bloody empowerment.
+ Var Details has_source
+
+
+
+
+
+ Does it have a source, AKA bloody empowerment.
+
+
+
diff --git a/obj/item/melee/classic_baton.html b/obj/item/melee/classic_baton.html
new file mode 100644
index 0000000000000..afca4ee44e84b
--- /dev/null
+++ b/obj/item/melee/classic_baton.html
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+ /obj/item/melee/classic_baton - Space Station 13
+
+
+
+
+
+
+Knocks down the hit mob when not on harm intent and when /obj/item/melee/classic_baton/on is TRUE
+A non-lethal attack has a cooldown to avoid spamming
+ Var Details affect_silicon
+
+
+
+
+
+ Whether the baton can stun silicon mobs
cooldown
+
+
+
+
+
+ Cooldown in seconds between two knockdowns
knockdown_duration
+
+
+
+
+
+ The stun time (in seconds) for non-silicons
on
+
+
+
+
+
+ Whether the baton is toggled on (to allow attacking)
on_cooldown
+
+
+
+
+
+ Whether the baton is on cooldown
stamina_armour_pen
+
+
+
+
+
+ How much melee armour is ignored by the stamina damage
stamina_damage
+
+
+
+
+
+ The amount of stamina damage the baton does per swing
stun_sound
+
+
+
+
+
+ Sound to play when knocking someone down
stun_time_silicon
+
+
+
+
+
+ The stun time (in seconds) for silicons
Proc Details baton_knockdown
+
+ Called when a target is about to be hit non-lethally.
+Arguments:
+
+target - The mob about to be hit
+user - The attacking user
+ on_non_silicon_stun
+
+ Called when a non-silicon has been stunned.
+Arguments:
+
+target - The hit mob
+user - The attacking user
+
+ Called when a silicon has been stunned.
+Arguments:
+
+target - The hit mob
+user - The attacking user
+
+
+
+
diff --git a/obj/item/melee/classic_baton/telescopic.html b/obj/item/melee/classic_baton/telescopic.html
new file mode 100644
index 0000000000000..0be9fced215bc
--- /dev/null
+++ b/obj/item/melee/classic_baton/telescopic.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/item/melee/classic_baton/telescopic - Space Station 13
+
+
+
+
+
+
+
+ Var Details attack_verb_off
+
+
+
+
+
+ Attack verbs when concealed (created on Initialize)
attack_verb_on
+
+
+
+
+
+ Attack verbs when extended (created on Initialize)
extend_sound
+
+
+
+
+
+ Sound to play when concealing or extending
force_off
+
+
+
+
+
+ Force when concealed
force_on
+
+
+
+
+
+ Force when extended
icon_state_off
+
+
+
+
+
+ Icon state when concealed
icon_state_on
+
+
+
+
+
+ Icon state when extended
item_state_on
+
+
+
+
+
+ Item state when extended
+
+
+
diff --git a/obj/item/melee/classic_baton/telescopic/contractor.html b/obj/item/melee/classic_baton/telescopic/contractor.html
new file mode 100644
index 0000000000000..03649e008f8a5
--- /dev/null
+++ b/obj/item/melee/classic_baton/telescopic/contractor.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/melee/classic_baton/telescopic/contractor - Space Station 13
+
+
+
+
+
+
+
+ Var Details jitter_amount
+
+
+
+
+
+ Jitter to deal on stun.
stutter_amount
+
+
+
+
+
+ Stutter to deal on stun.
+
+
+
diff --git a/obj/item/melee/ghost_sword.html b/obj/item/melee/ghost_sword.html
new file mode 100644
index 0000000000000..1fa63a402993c
--- /dev/null
+++ b/obj/item/melee/ghost_sword.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/melee/ghost_sword - Space Station 13
+
+
+
+
+
+
+Vars
+ ghosts List of ghosts currently orbiting us.
+ orbs List of wisps we have active, for cleanup purposes in case a ghost gets randomly deleted. Procs
+ on_move When moving into something's contents
+ Var Details ghosts
+ – /list/mob/dead/observer
+
+
+
+
+ List of ghosts currently orbiting us.
orbs
+ – /list/obj/effect/wisp/ghost
+
+
+
+
+ List of wisps we have active, for cleanup purposes in case a ghost gets randomly deleted.
Proc Details on_move
+
+ When moving into something's contents
+
+
+
diff --git a/obj/item/melee/knuckleduster.html b/obj/item/melee/knuckleduster.html
new file mode 100644
index 0000000000000..98d2e719e5a74
--- /dev/null
+++ b/obj/item/melee/knuckleduster.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/melee/knuckleduster - Space Station 13
+
+
+
+
+
+
+Vars
+ elite Can the weapon damage organs directly or not?
+ gripped Is the weapon gripped or not?
+ trauma How much organ damage can the weapon do?
+ Var Details elite
+
+
+
+
+
+ Can the weapon damage organs directly or not?
gripped
+
+
+
+
+
+ Is the weapon gripped or not?
trauma
+
+
+
+
+
+ How much organ damage can the weapon do?
+
+
+
diff --git a/obj/item/melee/powerfist.html b/obj/item/melee/powerfist.html
new file mode 100644
index 0000000000000..d5a45c8abae94
--- /dev/null
+++ b/obj/item/melee/powerfist.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/melee/powerfist - Space Station 13
+
+
+
+
+
+
+Vars
+ gasperfist base pressure in kpa used by the powerfist per hit
+ Var Details gasperfist
+
+
+
+
+
+ base pressure in kpa used by the powerfist per hit
+
+
+
diff --git a/obj/item/melee/razorwire.html b/obj/item/melee/razorwire.html
new file mode 100644
index 0000000000000..d1943d6914e16
--- /dev/null
+++ b/obj/item/melee/razorwire.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/melee/razorwire - Space Station 13
+
+
+
+
+
+
+
+ Var Details razorwire_skin_options
+
+
+
+
+
+ List of skins for the razorwire.
+
+
+
diff --git a/obj/item/melee/spellblade.html b/obj/item/melee/spellblade.html
new file mode 100644
index 0000000000000..deef890521ee4
--- /dev/null
+++ b/obj/item/melee/spellblade.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/melee/spellblade - Space Station 13
+
+
+
+
+
+
+Vars
+ enchant enchantment holder, gives it unique on hit effects.
+ power the cooldown and power of enchantments are multiplied by this var when its applied Procs
+ add_enchantment todo add icons for these
+ Var Details
+ enchantment holder, gives it unique on hit effects.
power
+
+
+
+
+
+ the cooldown and power of enchantments are multiplied by this var when its applied
Proc Details add_enchantment(new_enchant, /mob /living /user, intentional)
+
+
+
+
+
+ todo add icons for these
+
+
+
diff --git a/obj/item/melee/touch_attack/alien.html b/obj/item/melee/touch_attack/alien.html
new file mode 100644
index 0000000000000..8c71f447d7b09
--- /dev/null
+++ b/obj/item/melee/touch_attack/alien.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/melee/touch_attack/alien - Space Station 13
+
+
+
+
+
+
+
+ Var Details catchphrase
+
+
+
+
+
+ Alien spells don't have catchphrases
needs_permit
+
+
+
+
+
+ Beepsky shouldn't be arresting you over this
+
+
+
diff --git a/obj/item/mmi.html b/obj/item/mmi.html
new file mode 100644
index 0000000000000..a4635337be3f1
--- /dev/null
+++ b/obj/item/mmi.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/mmi - Space Station 13
+
+
+
+
+
+
+
+ Var Details extended_desc
+
+
+
+
+
+ Extended description on examine_more
next_possible_ghost_ping
+
+
+
+
+
+ Time at which the ghost belonging to the mind in the mmi can be pinged again to be borged
+
+
+
diff --git a/obj/item/mod/control.html b/obj/item/mod/control.html
new file mode 100644
index 0000000000000..571e953c7169f
--- /dev/null
+++ b/obj/item/mod/control.html
@@ -0,0 +1,316 @@
+
+
+
+
+
+
+ /obj/item/mod/control - Space Station 13
+
+
+
+
+
+
+Vars
+ activating If the suit is currently activating/deactivating.
+ activation_step_time How long this MOD takes each part to seal.
+ active If the suit is deployed and turned on.
+ bag Internal storage in a modsuit
+ boots MOD boots.
+ chameleon_action Cham option for when the cham module is installed.
+ charge_drain Power usage of the MOD.
+ chestplate MOD chestplate.
+ complexity How much module complexity this MOD is carrying.
+ complexity_max How much module complexity can this MOD carry.
+ core MOD core.
+ current_disguise Is the control unit disquised?
+ emp_proof Is it EMP proof?
+ extended_desc Extended description of the theme.
+ gauntlets MOD gauntlets.
+ helmet MOD helmet.
+ interface_break If the suit interface is broken.
+ jetpack_active Is the jetpack on so we should make ion effects?
+ locked If the suit is ID locked.
+ malfunctioning If the suit is malfunctioning.
+ mod_overlays List of overlays the mod has. Needs to be cut onremoval / module deactivation
+ mod_parts Associated list of parts (helmet, chestplate, gauntlets, boots) to their unsealed worn layer.
+ modules Modules the MOD currently possesses.
+ open If the suit wire/module hatch is open.
+ overslotting_parts Associated list of parts that can overslot to their overslot (overslot means the part can cover another layer of clothing).
+ seconds_electrified How long the MOD is electrified for.
+ selected_module Currently used module.
+ skin Looks of the MOD.
+ slowdown_active Slowdown of the MOD when active.
+ slowdown_inactive Slowdown of the MOD when not active.
+ theme The MOD's theme, decides on some stuff like armor and statistics.
+ ui_theme Theme of the MOD TGUI
+ wearer Person wearing the MODsuit. Procs
+ choose_deploy Creates a radial menu from which the user chooses parts of the suit to deploy/retract. Repeats until all parts are extended or retracted.
+ deploy Deploys a part of the suit onto the user.
+ finish_activation Finishes the suit's activation, starts processing
+ quick_activation Quickly deploys all the suit parts and if successful, seals them and turns on the suit. Intended mostly for outfits.
+ quick_deploy Quickly deploys all parts (or retracts if all are on the wearer)
+ retract Retract a part of the suit from the user.
+ seal_part Seals or unseals the given part
+ toggle_activate Starts the activation sequence, where parts of the suit activate one by one until the whole suit is on
+ Var Details activating
+
+
+
+
+
+ If the suit is currently activating/deactivating.
activation_step_time
+
+
+
+
+
+ How long this MOD takes each part to seal.
active
+
+
+
+
+
+ If the suit is deployed and turned on.
bag
+
+
+
+
+
+ Internal storage in a modsuit
boots
+
+
+
+
+
+ MOD boots.
chameleon_action
+
+
+
+
+
+ Cham option for when the cham module is installed.
charge_drain
+
+
+
+
+
+ Power usage of the MOD.
+ MOD chestplate.
complexity
+
+
+
+
+
+ How much module complexity this MOD is carrying.
complexity_max
+
+
+
+
+
+ How much module complexity can this MOD carry.
+ MOD core.
current_disguise
+
+
+
+
+
+ Is the control unit disquised?
emp_proof
+
+
+
+
+
+ Is it EMP proof?
extended_desc
+
+
+
+
+
+ Extended description of the theme.
+ MOD gauntlets.
helmet
+
+
+
+
+
+ MOD helmet.
interface_break
+
+
+
+
+
+ If the suit interface is broken.
jetpack_active
+
+
+
+
+
+ Is the jetpack on so we should make ion effects?
locked
+
+
+
+
+
+ If the suit is ID locked.
malfunctioning
+
+
+
+
+
+ If the suit is malfunctioning.
mod_overlays
+
+
+
+
+
+ List of overlays the mod has. Needs to be cut onremoval / module deactivation
mod_parts
+
+
+
+
+
+ Associated list of parts (helmet, chestplate, gauntlets, boots) to their unsealed worn layer.
modules
+
+
+
+
+
+ Modules the MOD currently possesses.
open
+
+
+
+
+
+ If the suit wire/module hatch is open.
overslotting_parts
+
+
+
+
+
+ Associated list of parts that can overslot to their overslot (overslot means the part can cover another layer of clothing).
seconds_electrified
+
+
+
+
+
+ How long the MOD is electrified for.
+ Currently used module.
skin
+
+
+
+
+
+ Looks of the MOD.
slowdown_active
+
+
+
+
+
+ Slowdown of the MOD when active.
slowdown_inactive
+
+
+
+
+
+ Slowdown of the MOD when not active.
+ The MOD's theme, decides on some stuff like armor and statistics.
ui_theme
+
+
+
+
+
+ Theme of the MOD TGUI
+ Person wearing the MODsuit.
Proc Details choose_deploy
+
+ Creates a radial menu from which the user chooses parts of the suit to deploy/retract. Repeats until all parts are extended or retracted.
deploy
+
+ Deploys a part of the suit onto the user.
finish_activation(on)
+
+
+
+
+
+ Finishes the suit's activation, starts processing
quick_activation()
+
+
+
+
+
+ Quickly deploys all the suit parts and if successful, seals them and turns on the suit. Intended mostly for outfits.
quick_deploy
+
+ Quickly deploys all parts (or retracts if all are on the wearer)
retract
+
+ Retract a part of the suit from the user.
seal_part
+
+ Seals or unseals the given part
toggle_activate(/mob /user, force_deactivate)
+
+
+
+
+
+ Starts the activation sequence, where parts of the suit activate one by one until the whole suit is on
+
+
+
diff --git a/obj/item/mod/control/pre_equipped.html b/obj/item/mod/control/pre_equipped.html
new file mode 100644
index 0000000000000..8e9f4c601976a
--- /dev/null
+++ b/obj/item/mod/control/pre_equipped.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/mod/control/pre_equipped - Space Station 13
+
+
+
+
+
+
+Vars
+ applied_cell The cell we apply to the core. Only applies to standard core suits.
+ applied_core The MOD core we apply to the suit.
+ applied_modules List of modules we spawn with.
+ applied_skin The skin we apply to the suit, defaults to the default_skin of the theme.
+ default_pins Modules that we pin when the suit is installed for the first time, for convenience, can be applied or theme inbuilt modules.
+ Var Details applied_cell
+
+
+
+
+
+ The cell we apply to the core. Only applies to standard core suits.
applied_core
+
+
+
+
+
+ The MOD core we apply to the suit.
applied_modules
+
+
+
+
+
+ List of modules we spawn with.
applied_skin
+
+
+
+
+
+ The skin we apply to the suit, defaults to the default_skin of the theme.
default_pins
+
+
+
+
+
+ Modules that we pin when the suit is installed for the first time, for convenience, can be applied or theme inbuilt modules.
+
+
+
diff --git a/obj/item/mod/control/pre_equipped/responsory.html b/obj/item/mod/control/pre_equipped/responsory.html
new file mode 100644
index 0000000000000..07163605ac614
--- /dev/null
+++ b/obj/item/mod/control/pre_equipped/responsory.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/mod/control/pre_equipped/responsory - Space Station 13
+
+
+
+
+
+
+Vars
+ additional_module Additional module we add, as a treat.
+ insignia_type The insignia type, insignias show what sort of member of the ERT you're dealing with.
+ Var Details additional_module
+
+
+
+
+
+ Additional module we add, as a treat.
insignia_type
+
+
+
+
+
+ The insignia type, insignias show what sort of member of the ERT you're dealing with.
+
+
+
diff --git a/obj/item/mod/core.html b/obj/item/mod/core.html
new file mode 100644
index 0000000000000..5c8861b364746
--- /dev/null
+++ b/obj/item/mod/core.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mod/core - Space Station 13
+
+
+
+
+
+
+Vars
+ mod MOD unit we are powering.
+ Var Details
+ MOD unit we are powering.
+
+
+
diff --git a/obj/item/mod/core/plasma.html b/obj/item/mod/core/plasma.html
new file mode 100644
index 0000000000000..525f5a5d2d583
--- /dev/null
+++ b/obj/item/mod/core/plasma.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/mod/core/plasma - Space Station 13
+
+
+
+
+
+
+Vars
+ charge How much charge we are currently storing.
+ charger_list Associated list of charge sources, only stacks allowed.
+ maxcharge How much charge we can store.
+ Var Details charge
+
+
+
+
+
+ How much charge we are currently storing.
charger_list
+
+
+
+
+
+ Associated list of charge sources, only stacks allowed.
maxcharge
+
+
+
+
+
+ How much charge we can store.
+
+
+
diff --git a/obj/item/mod/core/standard.html b/obj/item/mod/core/standard.html
new file mode 100644
index 0000000000000..fcc690ace3059
--- /dev/null
+++ b/obj/item/mod/core/standard.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mod/core/standard - Space Station 13
+
+
+
+
+
+
+Vars
+ cell Installed cell.
+ Var Details cell
+
+
+
+
+
+ Installed cell.
+
+
+
diff --git a/obj/item/mod/module.html b/obj/item/mod/module.html
new file mode 100644
index 0000000000000..11c3841990a8b
--- /dev/null
+++ b/obj/item/mod/module.html
@@ -0,0 +1,379 @@
+
+
+
+
+
+
+ /obj/item/mod/module - Space Station 13
+
+
+
+
+
+
+MOD Module - A special device installed in a MODsuit allowing the suit to do new stuff.
Vars
+ active Is the module active
+ active_power_cost Power use when active
+ allow_flags flags that let the module ability be used in odd circumstances
+ complexity How much space it takes up in the MOD
+ cooldown_time Cooldown after use
+ cooldown_timer Timer for the cooldown
+ device If we're an active module, what item are we?
+ idle_power_cost Power use when idle
+ incompatible_modules What modules are we incompatible with?
+ mod Linked MODsuit
+ mod_color_overide Does the mod overide the colour in some way?
+ module_UID The UID of the module. Don't ask.
+ module_type If it's passive, togglable, usable or active
+ overlay_icon_file Icon file for the overlay.
+ overlay_state_active Overlay given to the user when the module is active
+ overlay_state_inactive Overlay given to the user when the module is inactive
+ overlay_state_use Overlay given to the user when the module is used, lasts until cooldown finishes
+ pinned_to List of UID()s mobs we are pinned to, linked with their action buttons
+ removable If it can be removed
+ tgui_id ID used by their TGUI
+ use_mod_colors Does the overlay use the control unit's colors?
+ use_power_cost Power use when used, we call it manually
+ used_signal The mouse button needed to use this module Procs
+ add_module_overlay Adds the worn overlays to the suit.
+ add_ui_configuration Generates an element of the get_configuration list with a display name, type and value
+ add_ui_data Adds additional things to the MODsuit ui_data()
+ check_power Checks if there is enough power in the suit
+ configure_edit Receives configure edits from the TGUI and edits the vars
+ drain_power Drains power from the suit charge
+ dropkey On drop key, concels a device item.
+ generate_worn_overlay Generates an icon to be used for the suit's worn overlays
+ get_configuration Creates a list of configuring options for this module
+ on_activation Called when the module is activated
+ on_active_process Called on the MODsuit's process if it is an active module
+ on_deactivation Called when the module is deactivated
+ on_device_deletion Called when the device gets deleted on active modules
+ on_equip Called when the MODsuit is equipped
+ on_exit Called when the device moves to a different place on active modules
+ on_install Called from MODsuit's install() proc, so when the module is installed.
+ on_process Called on the MODsuit's process
+ on_select Called when the module is selected from the TGUI, radial or the action button
+ on_select_use Called when an activated module without a device is used
+ on_special_click Called when an activated module without a device is active and the user alt/middle-clicks
+ on_suit_activation Called when the MODsuit is activated
+ on_suit_deactivation Called when the MODsuit is deactivated
+ on_unequip Called when the MODsuit is unequipped
+ on_uninstall Called from MODsuit's uninstall() proc, so when the module is uninstalled.
+ on_use Called when the module is used
+ pin Pins the module to the user's action buttons
+ update_signal Updates the signal used by active modules to be activated
+ Var Details active
+
+
+
+
+
+ Is the module active
active_power_cost
+
+
+
+
+
+ Power use when active
allow_flags
+
+
+
+
+
+ flags that let the module ability be used in odd circumstances
complexity
+
+
+
+
+
+ How much space it takes up in the MOD
cooldown_time
+
+
+
+
+
+ Cooldown after use
cooldown_timer
+
+
+
+
+
+ Timer for the cooldown
device
+
+
+
+
+
+ If we're an active module, what item are we?
idle_power_cost
+
+
+
+
+
+ Power use when idle
incompatible_modules
+
+
+
+
+
+ What modules are we incompatible with?
+ Linked MODsuit
mod_color_overide
+
+
+
+
+
+ Does the mod overide the colour in some way?
module_UID
+
+
+
+
+
+ The UID of the module. Don't ask.
module_type
+
+
+
+
+
+ If it's passive, togglable, usable or active
overlay_icon_file
+
+
+
+
+
+ Icon file for the overlay.
overlay_state_active
+
+
+
+
+
+ Overlay given to the user when the module is active
overlay_state_inactive
+
+
+
+
+
+ Overlay given to the user when the module is inactive
overlay_state_use
+
+
+
+
+
+ Overlay given to the user when the module is used, lasts until cooldown finishes
pinned_to
+
+
+
+
+
+ List of UID()s mobs we are pinned to, linked with their action buttons
removable
+
+
+
+
+
+ If it can be removed
tgui_id
+
+
+
+
+
+ ID used by their TGUI
use_mod_colors
+
+
+
+
+
+ Does the overlay use the control unit's colors?
use_power_cost
+
+
+
+
+
+ Power use when used, we call it manually
used_signal
+
+
+
+
+
+ The mouse button needed to use this module
Proc Details add_module_overlay
+
+ Adds the worn overlays to the suit.
add_ui_configuration(display_name, type, value, /list/values)
+
+
+
+
+
+ Generates an element of the get_configuration list with a display name, type and value
add_ui_data()
+
+
+
+
+
+ Adds additional things to the MODsuit ui_data()
check_power(amount)
+
+
+
+
+
+ Checks if there is enough power in the suit
+ Receives configure edits from the TGUI and edits the vars
drain_power(amount)
+
+
+
+
+
+ Drains power from the suit charge
dropkey
+
+ On drop key, concels a device item.
generate_worn_overlay
+
+ Generates an icon to be used for the suit's worn overlays
get_configuration()
+
+
+
+
+
+ Creates a list of configuring options for this module
on_activation()
+
+
+
+
+
+ Called when the module is activated
on_active_process()
+
+
+
+
+
+ Called on the MODsuit's process if it is an active module
on_deactivation(display_message, deleting)
+
+
+
+
+
+ Called when the module is deactivated
on_device_deletion
+
+ Called when the device gets deleted on active modules
on_equip()
+
+
+
+
+
+ Called when the MODsuit is equipped
on_exit
+
+ Called when the device moves to a different place on active modules
on_install()
+
+
+
+
+
+ Called from MODsuit's install() proc, so when the module is installed.
on_process()
+
+
+
+
+
+ Called on the MODsuit's process
on_select()
+
+
+
+
+
+ Called when the module is selected from the TGUI, radial or the action button
on_select_use
+
+ Called when an activated module without a device is used
on_special_click
+
+ Called when an activated module without a device is active and the user alt/middle-clicks
on_suit_activation()
+
+
+
+
+
+ Called when the MODsuit is activated
on_suit_deactivation(deleting)
+
+
+
+
+
+ Called when the MODsuit is deactivated
on_unequip()
+
+
+
+
+
+ Called when the MODsuit is unequipped
on_uninstall(deleting)
+
+
+
+
+
+ Called from MODsuit's uninstall() proc, so when the module is uninstalled.
on_use()
+
+
+
+
+
+ Called when the module is used
pin
+
+ Pins the module to the user's action buttons
update_signal(value)
+
+
+
+
+
+ Updates the signal used by active modules to be activated
+
+
+
diff --git a/obj/item/mod/module/anomaly_locked.html b/obj/item/mod/module/anomaly_locked.html
new file mode 100644
index 0000000000000..fcba5f64e4457
--- /dev/null
+++ b/obj/item/mod/module/anomaly_locked.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/mod/module/anomaly_locked - Space Station 13
+
+
+
+
+
+
+Anomaly Locked - Causes the module to not function without an anomaly.
+ Var Details accepted_anomalies
+
+
+
+
+
+ Accepted types of anomaly cores.
+ The core item the module runs off.
prebuilt
+
+
+
+
+
+ If this one starts with a core in.
+
+
+
diff --git a/obj/item/mod/module/anomaly_locked/cryogrenade.html b/obj/item/mod/module/anomaly_locked/cryogrenade.html
new file mode 100644
index 0000000000000..a5a90b753a77d
--- /dev/null
+++ b/obj/item/mod/module/anomaly_locked/cryogrenade.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mod/module/anomaly_locked/cryogrenade - Space Station 13
+
+
+
+
+
+
+Cryogrenade. Freezes foes in place, cools them
+ Var Details dispense_type
+
+
+
+
+
+ Path we dispense.
+
+
+
diff --git a/obj/item/mod/module/anomaly_locked/firewall.html b/obj/item/mod/module/anomaly_locked/firewall.html
new file mode 100644
index 0000000000000..d8c42950e608b
--- /dev/null
+++ b/obj/item/mod/module/anomaly_locked/firewall.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mod/module/anomaly_locked/firewall - Space Station 13
+
+
+
+
+
+
+Firewall. Deployable dropwall that lights projectiles on fire.
+ Var Details dispense_type
+
+
+
+
+
+ Path we dispense.
+
+
+
diff --git a/obj/item/mod/module/anomaly_locked/kinesis.html b/obj/item/mod/module/anomaly_locked/kinesis.html
new file mode 100644
index 0000000000000..13c2cf77dda19
--- /dev/null
+++ b/obj/item/mod/module/anomaly_locked/kinesis.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /obj/item/mod/module/anomaly_locked/kinesis - Space Station 13
+
+
+
+
+
+
+Kinesis - Gives you the ability to move and launch objects.
+ Var Details beam
+ – /obj /effect/abstract/kinesis
+
+
+
+
+ The special snowflake effect we need to get beams to work
grab_range
+
+
+
+
+
+ Range of the kinesis grab.
grabbed_atom
+
+
+
+
+
+ Atom we grabbed with kinesis.
hit_cooldown
+
+
+
+
+
+ The cooldown between us hitting objects with kinesis.
hit_cooldown_time
+
+
+
+
+
+ Time between us hitting objects with kinesis.
incapacitated_required
+
+
+
+
+
+ Is incapitated required for us to grab a mob?
+ Our mouse movement catcher.
kinesis_icon
+
+
+
+
+
+ Overlay we add to each grabbed atom.
mob_stun_time
+
+
+
+
+
+ How long we stun a mob for.
pre_pixel_x
+
+
+
+
+
+ The pixel_X of whatever we were grabbing before hand.
pre_pixel_y
+
+
+
+
+
+ The pixel_y of whatever we were grabbing before hand.
+ The sounds playing while we grabbed an object.
stat_required
+
+
+
+
+
+ Stat required for us to grab a mob.
+
+
+
diff --git a/obj/item/mod/module/anomaly_locked/teleporter.html b/obj/item/mod/module/anomaly_locked/teleporter.html
new file mode 100644
index 0000000000000..ec5496d407646
--- /dev/null
+++ b/obj/item/mod/module/anomaly_locked/teleporter.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mod/module/anomaly_locked/teleporter - Space Station 13
+
+
+
+
+
+
+Teleporter - Lets the user teleport to a nearby location.
+ Var Details teleport_time
+
+
+
+
+
+ Time it takes to teleport
+
+
+
diff --git a/obj/item/mod/module/anomaly_locked/teslawall.html b/obj/item/mod/module/anomaly_locked/teslawall.html
new file mode 100644
index 0000000000000..8d0e0b9cb8402
--- /dev/null
+++ b/obj/item/mod/module/anomaly_locked/teslawall.html
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ /obj/item/mod/module/anomaly_locked/teslawall - Space Station 13
+
+
+
+
+
+
+
+ Var Details charge_increment_delay
+
+
+
+
+
+ How much time it takes for charges to recover after they started recharging.
charge_recovery
+
+
+
+
+
+ How much charge is recovered per recovery.
charges
+
+
+
+
+
+ Charges the shield should start with.
lose_multiple_charges
+
+
+
+
+
+ Whether or not this shield can lose multiple charges.
max_charges
+
+
+
+
+
+ Copy paste of shielded code wheeeey
+Max charges of the shield.
recharge_path
+
+
+
+
+
+ The item path to recharge this shield.
recharge_start_delay
+
+
+
+
+
+ The time it takes for the first charge to recover.
shield_icon
+
+
+
+
+
+ The icon_state of the shield.
shield_icon_file
+
+
+
+
+
+ The icon file of the shield.
zap_flags
+
+
+
+
+
+ Teslawall specific variables.
+
+
+
diff --git a/obj/item/mod/module/armor_booster.html b/obj/item/mod/module/armor_booster.html
new file mode 100644
index 0000000000000..4b49922b0da17
--- /dev/null
+++ b/obj/item/mod/module/armor_booster.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/mod/module/armor_booster - Space Station 13
+
+
+
+
+
+
+Armor Booster - Grants your suit more armor and speed in exchange for EVA protection. Also acts as a welding screen.
+ Var Details actual_speed_added
+
+
+
+
+
+ Speed that we actually added.
armor_mod_1
+
+
+
+
+
+ Armor values added to the suit parts.
armor_mod_2
+
+
+
+
+
+ the actual armor object
remove_pressure_protection
+
+
+
+
+
+ Whether or not this module removes pressure protection.
spaceproofed
+
+
+
+
+
+ List of parts of the suit that are spaceproofed, for giving them back the pressure protection.
speed_added
+
+
+
+
+
+ Speed added to the control unit.
+
+
+
diff --git a/obj/item/mod/module/ash_accretion.html b/obj/item/mod/module/ash_accretion.html
new file mode 100644
index 0000000000000..b8eb060f04a7a
--- /dev/null
+++ b/obj/item/mod/module/ash_accretion.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/item/mod/module/ash_accretion - Space Station 13
+
+
+
+
+
+
+
+ Var Details accretion_turfs
+
+
+
+
+
+ Turfs that let us accrete ash.
actual_speed_added
+
+
+
+
+
+ Speed that we actually added.
armor_mod_1
+
+
+
+
+
+ Armor values per tile.
armor_mod_2
+
+
+
+
+
+ the actual armor object
keep_turfs
+
+
+
+
+
+ Turfs that let us keep ash.
max_traveled_tiles
+
+
+
+
+
+ How many tiles we can travel to max out the armor.
speed_added
+
+
+
+
+
+ Speed added when you're fully covered in ash.
traveled_tiles
+
+
+
+
+
+ How many tiles we traveled through.
+
+
+
diff --git a/obj/item/mod/module/boot_heating.html b/obj/item/mod/module/boot_heating.html
new file mode 100644
index 0000000000000..b0682075d316c
--- /dev/null
+++ b/obj/item/mod/module/boot_heating.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mod/module/boot_heating - Space Station 13
+
+
+
+
+
+
+Vars
+ icon_state Kinda small comparied to the other descriptions, but its ERT only, so..
+ Var Details icon_state
+
+
+
+
+
+ Kinda small comparied to the other descriptions, but its ERT only, so..
+
+
+
diff --git a/obj/item/mod/module/clamp.html b/obj/item/mod/module/clamp.html
new file mode 100644
index 0000000000000..d93580d343432
--- /dev/null
+++ b/obj/item/mod/module/clamp.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/mod/module/clamp - Space Station 13
+
+
+
+
+
+
+Hydraulic Clamp - Lets you pick up and drop crates.
Vars
+ load_time Time it takes to load a crate.
+ max_crates The max amount of crates you can carry.
+ stored_crates The crates stored in the module. Procs
+ should_cancel_drop Checks if the target crate has already been dropped by another on_select_use call
+ Var Details load_time
+
+
+
+
+
+ Time it takes to load a crate.
max_crates
+
+
+
+
+
+ The max amount of crates you can carry.
stored_crates
+
+
+
+
+
+ The crates stored in the module.
Proc Details should_cancel_drop()
+
+
+
+
+
+ Checks if the target crate has already been dropped by another on_select_use call
+
+
+
diff --git a/obj/item/mod/module/dispenser.html b/obj/item/mod/module/dispenser.html
new file mode 100644
index 0000000000000..c2e8649fd322e
--- /dev/null
+++ b/obj/item/mod/module/dispenser.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/mod/module/dispenser - Space Station 13
+
+
+
+
+
+
+Dispenser - Dispenses an item after a time passes.
+ Var Details dispense_time
+
+
+
+
+
+ Time it takes for us to dispense.
dispense_type
+
+
+
+
+
+ Path we dispense.
+
+
+
diff --git a/obj/item/mod/module/dna_lock.html b/obj/item/mod/module/dna_lock.html
new file mode 100644
index 0000000000000..2737d1da233af
--- /dev/null
+++ b/obj/item/mod/module/dna_lock.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mod/module/dna_lock - Space Station 13
+
+
+
+
+
+
+Vars
+ dna The DNA we lock with.
+ Var Details dna
+
+
+
+
+
+ The DNA we lock with.
+
+
+
diff --git a/obj/item/mod/module/energy_shield.html b/obj/item/mod/module/energy_shield.html
new file mode 100644
index 0000000000000..69031d3194b9c
--- /dev/null
+++ b/obj/item/mod/module/energy_shield.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /obj/item/mod/module/energy_shield - Space Station 13
+
+
+
+
+
+
+Energy Shield - Gives you a rechargeable energy shield that nullifies attacks.
+ Var Details charge_increment_delay
+
+
+
+
+
+ How much time it takes for charges to recover after they started recharging.
charge_recovery
+
+
+
+
+
+ How much charge is recovered per recovery.
charges
+
+
+
+
+
+ Charges the shield should start with.
lose_multiple_charges
+
+
+
+
+
+ Whether or not this shield can lose multiple charges.
max_charges
+
+
+
+
+
+ Max charges of the shield.
recharge_path
+
+
+
+
+
+ The item path to recharge this shield.
recharge_start_delay
+
+
+
+
+
+ The time it takes for the first charge to recover.
shield_icon
+
+
+
+
+
+ The icon_state of the shield.
shield_icon_file
+
+
+
+
+
+ The icon file of the shield.
+
+
+
diff --git a/obj/item/mod/module/flashlight.html b/obj/item/mod/module/flashlight.html
new file mode 100644
index 0000000000000..e8761bd98c6d1
--- /dev/null
+++ b/obj/item/mod/module/flashlight.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/mod/module/flashlight - Space Station 13
+
+
+
+
+
+
+Flashlight - Gives the suit a customizable flashlight.
+ Var Details activation_cooldown
+
+
+
+
+
+ The cooldown before we can re-activate this after having it forcefully extinguished
base_power
+
+
+
+
+
+ Charge drain per range amount.
max_range
+
+
+
+
+
+ Maximum range we can set.
min_range
+
+
+
+
+
+ Minimum range we can set.
mod_light_power
+
+
+
+
+
+ The light range for the mod
mod_light_range
+
+
+
+
+
+ The light power for the mod
+
+
+
diff --git a/obj/item/mod/module/holster.html b/obj/item/mod/module/holster.html
new file mode 100644
index 0000000000000..9b390066ea562
--- /dev/null
+++ b/obj/item/mod/module/holster.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mod/module/holster - Space Station 13
+
+
+
+
+
+
+Holster - Instantly holsters any not huge gun.
+ Var Details holstered
+
+
+
+
+
+ Gun we have holstered.
+
+
+
diff --git a/obj/item/mod/module/hydraulic.html b/obj/item/mod/module/hydraulic.html
new file mode 100644
index 0000000000000..69ba6c598f58a
--- /dev/null
+++ b/obj/item/mod/module/hydraulic.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/mod/module/hydraulic - Space Station 13
+
+
+
+
+
+
+
+ Var Details charge_up_overlay
+
+
+
+
+
+ The overlay used to show that you are charging.
launch_time
+
+
+
+
+
+ Time it takes to launch
+
+
+
diff --git a/obj/item/mod/module/jetpack.html b/obj/item/mod/module/jetpack.html
new file mode 100644
index 0000000000000..00cd695a11839
--- /dev/null
+++ b/obj/item/mod/module/jetpack.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mod/module/jetpack - Space Station 13
+
+
+
+
+
+
+Ion Jetpack - Lets the user fly freely through space using battery charge.
Vars
+ stabilizers Do we stop the wearer from gliding in space.
+ Var Details stabilizers
+
+
+
+
+
+ Do we stop the wearer from gliding in space.
+
+
+
diff --git a/obj/item/mod/module/magboot.html b/obj/item/mod/module/magboot.html
new file mode 100644
index 0000000000000..263cf7cdacb2b
--- /dev/null
+++ b/obj/item/mod/module/magboot.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mod/module/magboot - Space Station 13
+
+
+
+
+
+
+Magnetic Stability - Gives the user a slowdown but makes them negate gravity and be immune to slips.
+ Var Details slowdown_active
+
+
+
+
+
+ Slowdown added onto the suit.
+
+
+
diff --git a/obj/item/mod/module/pathfinder.html b/obj/item/mod/module/pathfinder.html
new file mode 100644
index 0000000000000..b8cffc94476c6
--- /dev/null
+++ b/obj/item/mod/module/pathfinder.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mod/module/pathfinder - Space Station 13
+
+
+
+
+
+
+Pathfinder - Can fly the suit from a long distance to an implant installed in someone.
Vars
+ implant The pathfinding implant.
+ Var Details
+ The pathfinding implant.
+
+
+
diff --git a/obj/item/mod/module/plate_compression.html b/obj/item/mod/module/plate_compression.html
new file mode 100644
index 0000000000000..c68faefb5b1ab
--- /dev/null
+++ b/obj/item/mod/module/plate_compression.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/mod/module/plate_compression - Space Station 13
+
+
+
+
+
+
+Plate Compression - Compresses the suit to normal size
Vars
+ new_size The size we set the suit to.
+ old_size The suit's size before the module is installed.
+ Var Details new_size
+
+
+
+
+
+ The size we set the suit to.
old_size
+
+
+
+
+
+ The suit's size before the module is installed.
+
+
+
diff --git a/obj/item/mod/module/power_kick.html b/obj/item/mod/module/power_kick.html
new file mode 100644
index 0000000000000..c225069e998ed
--- /dev/null
+++ b/obj/item/mod/module/power_kick.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/mod/module/power_kick - Space Station 13
+
+
+
+
+
+
+Power kick - Lets the user launch themselves at someone to kick them.
+ Var Details damage
+
+
+
+
+
+ Damage on kick.
knockdown_time
+
+
+
+
+
+ How long we knockdown for on the kick.
+
+
+
diff --git a/obj/item/mod/module/sphere_transform.html b/obj/item/mod/module/sphere_transform.html
new file mode 100644
index 0000000000000..7b6cd446d85a8
--- /dev/null
+++ b/obj/item/mod/module/sphere_transform.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mod/module/sphere_transform - Space Station 13
+
+
+
+
+
+
+Vars
+ animate_time Time it takes us to complete the animation.
+ Var Details animate_time
+
+
+
+
+
+ Time it takes us to complete the animation.
+
+
+
diff --git a/obj/item/mod/module/springlock.html b/obj/item/mod/module/springlock.html
new file mode 100644
index 0000000000000..a697f6abe642f
--- /dev/null
+++ b/obj/item/mod/module/springlock.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/item/mod/module/springlock - Space Station 13
+
+
+
+
+
+
+Springlock Mechanism - allows your modsuit to activate faster, but reagents are very dangerous.
+ Var Details activation_step_time_booster
+
+
+
+
+
+ How much faster will your suit deploy?
dont_let_you_come_back
+
+
+
+
+
+ If this is true, the suit will prevent you from retracting for 10 seconds, so an antag can smoke bomb you.
incoming_jumpscare
+
+
+
+
+
+ If this is true, we are about to spring shut on someone, and should not remove the retraction blocking.
nineteen_eighty_seven_edition
+
+
+
+
+
+ Is this the syndicate version, which can be toggled on multitool?
Proc Details on_activate_spring_block
+
+ Signal fired when wearer attempts to activate/deactivate suits
on_wearer_exposed(/atom /source, /list/reagents, /datum /reagents /source_reagents, methods, volume_modifier, show_message)
+
+
+
+
+
+ Signal fired when wearer is exposed to reagents
remove_retraction_block()
+
+
+
+
+
+ Removes the retraction blocker from the springlock so long as they are not about to be killed
snap_shut()
+
+
+
+
+
+ Delayed death proc of the suit after the wearer is exposed to reagents
+
+
+
diff --git a/obj/item/mod/module/stealth.html b/obj/item/mod/module/stealth.html
new file mode 100644
index 0000000000000..582491cdb50cb
--- /dev/null
+++ b/obj/item/mod/module/stealth.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/mod/module/stealth - Space Station 13
+
+
+
+
+
+
+Cloaking - Lowers the user's visibility, can be interrupted by being touched or attacked.
Vars
+ bumpoff Whether or not the cloak turns off on bumping.
+ stealth_alpha The alpha applied when the cloak is on.
+ Var Details bumpoff
+
+
+
+
+
+ Whether or not the cloak turns off on bumping.
stealth_alpha
+
+
+
+
+
+ The alpha applied when the cloak is on.
+
+
+
diff --git a/obj/item/mod/module/storage.html b/obj/item/mod/module/storage.html
new file mode 100644
index 0000000000000..a9a33322506ec
--- /dev/null
+++ b/obj/item/mod/module/storage.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/mod/module/storage - Space Station 13
+
+
+
+
+
+
+Storage - Adds a storage component to the suit.
+ Var Details max_combined_w_class
+
+
+
+
+
+ Max combined weight of all items in the storage.
max_items
+
+
+
+
+
+ Max amount of items in the storage.
max_w_class
+
+
+
+
+
+ Max weight class of items in the storage.
+
+
+
diff --git a/obj/item/mod/module/t_ray.html b/obj/item/mod/module/t_ray.html
new file mode 100644
index 0000000000000..905ebbff8788d
--- /dev/null
+++ b/obj/item/mod/module/t_ray.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mod/module/t_ray - Space Station 13
+
+
+
+
+
+
+T-Ray Scan - Scans the terrain for undertile objects.
Vars
+ range T-ray scan range.
+ Var Details range
+
+
+
+
+
+ T-ray scan range.
+
+
+
diff --git a/obj/item/mod/module/thermal_regulator.html b/obj/item/mod/module/thermal_regulator.html
new file mode 100644
index 0000000000000..777cef98a7409
--- /dev/null
+++ b/obj/item/mod/module/thermal_regulator.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/mod/module/thermal_regulator - Space Station 13
+
+
+
+
+
+
+Thermal Regulator - Regulates the wearer's core temperature.
+ Var Details max_temp
+
+
+
+
+
+ Maximum temperature we can set.
min_temp
+
+
+
+
+
+ Minimum temperature we can set.
temperature_setting
+
+
+
+
+
+ The temperature we are regulating to.
+
+
+
diff --git a/obj/item/mod/module/visor.html b/obj/item/mod/module/visor.html
new file mode 100644
index 0000000000000..b27dd44935df1
--- /dev/null
+++ b/obj/item/mod/module/visor.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/mod/module/visor - Space Station 13
+
+
+
+
+
+
+Base Visor - Adds a specific HUD and traits to you.
+ Var Details hud_type
+
+
+
+
+
+ The HUD type given by the visor.
visor_trait
+
+
+
+
+
+ The trait given by the visor.
+
+
+
diff --git a/obj/item/mod_defib.html b/obj/item/mod_defib.html
new file mode 100644
index 0000000000000..3cbc137f809d9
--- /dev/null
+++ b/obj/item/mod_defib.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mod_defib - Space Station 13
+
+
+
+
+
+
+Vars
+ on_cooldown Whether or not the paddles are on cooldown. Used for tracking icon states.
+ Var Details on_cooldown
+
+
+
+
+
+ Whether or not the paddles are on cooldown. Used for tracking icon states.
+
+
+
diff --git a/obj/item/mop.html b/obj/item/mop.html
new file mode 100644
index 0000000000000..f43b762aa2721
--- /dev/null
+++ b/obj/item/mop.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mop - Space Station 13
+
+
+
+
+
+
+
+ Var Details mop_sound_cooldown
+
+
+
+
+
+ The cooldown between each mopping sound effect
+
+
+
diff --git a/obj/item/mounted/frame.html b/obj/item/mounted/frame.html
new file mode 100644
index 0000000000000..c0c52e86915ec
--- /dev/null
+++ b/obj/item/mounted/frame.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/mounted/frame - Space Station 13
+
+
+
+
+
+
+
+ Var Details glass_sheets_refunded
+
+
+
+
+
+ amount of glass sheets returned upon the frame being wrenched
+ amount of metal sheets returned upon the frame being wrenched
mount_requirements
+
+
+
+
+
+ The requirements for this frame to be placed, uses bit flags
+
+
+
diff --git a/obj/item/mounted/frame/light_fixture.html b/obj/item/mounted/frame/light_fixture.html
new file mode 100644
index 0000000000000..1ea8340bbbb86
--- /dev/null
+++ b/obj/item/mounted/frame/light_fixture.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mounted/frame/light_fixture - Space Station 13
+
+
+
+
+
+
+Vars
+ fixture_type specifies which type of light fixture this frame will build
+ Var Details fixture_type
+
+
+
+
+
+ specifies which type of light fixture this frame will build
+
+
+
diff --git a/obj/item/multitool.html b/obj/item/multitool.html
new file mode 100644
index 0000000000000..0550db6e402c2
--- /dev/null
+++ b/obj/item/multitool.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/multitool - Space Station 13
+
+
+
+
+
+
+Multitool -- A multitool is used for hacking electronic devices.
Vars
+ buffer Reference to whatever machine is held in the buffer
+ buffer_uid Soft-ref for linked stuff. This should be used over the above var.
+ cd_apc_scan Cooldown for detecting APCs
+ Var Details
+ Reference to whatever machine is held in the buffer
buffer_uid
+
+
+
+
+
+ Soft-ref for linked stuff. This should be used over the above var.
cd_apc_scan
+
+
+
+
+
+ Cooldown for detecting APCs
+
+
+
diff --git a/obj/item/newspaper.html b/obj/item/newspaper.html
new file mode 100644
index 0000000000000..f74600eee0797
--- /dev/null
+++ b/obj/item/newspaper.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/item/newspaper - Space Station 13
+
+
+
+
+
+
+A newspaper displaying the stories of all channels contained within.
Vars
+ curr_page The currently selected page.
+ important_message The security notice to display optionally.
+ news_content The channels to display as content.
+ pages The number of pages.
+ rolled Whether the newspaper is rolled or not, making it a deadly weapon.
+ screen The current screen to display.
+ scribble The contents of a scribble made through pen, if any.
+ scribble_page The page of said scribble.
+ Var Details curr_page
+
+
+
+
+
+ The currently selected page.
+ The security notice to display optionally.
news_content
+ – /list/datum/feed_channel
+
+
+
+
+ The channels to display as content.
pages
+
+
+
+
+
+ The number of pages.
rolled
+
+
+
+
+
+ Whether the newspaper is rolled or not, making it a deadly weapon.
screen
+
+
+
+
+
+ The current screen to display.
scribble
+
+
+
+
+
+ The contents of a scribble made through pen, if any.
scribble_page
+
+
+
+
+
+ The page of said scribble.
+
+
+
diff --git a/obj/item/nullrod.html b/obj/item/nullrod.html
new file mode 100644
index 0000000000000..46efd11444a51
--- /dev/null
+++ b/obj/item/nullrod.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/nullrod - Space Station 13
+
+
+
+
+
+
+
+ Var Details
+ Does this null rod have fluff variants available
reskin_selectable
+
+
+
+
+
+ Is this variant selectable through the reskin menu (Set to FALSE for fluff items)
reskinned
+
+
+
+
+
+ Has the null rod been reskinned yet
sanctify_force
+
+
+
+
+
+ Extra 'Holy' burn damage for ERT null rods
variant_icons
+
+
+
+
+
+ Null rod variant icons, used for the radial menu
variant_names
+
+
+
+
+
+ Null rod variant names, used for the radial menu
+
+
+
diff --git a/obj/item/organ.html b/obj/item/organ.html
new file mode 100644
index 0000000000000..27abece49abec
--- /dev/null
+++ b/obj/item/organ.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/organ - Space Station 13
+
+
+
+
+
+
+Vars
+ destroy_on_removal Should this organ be destroyed on removal?
+ last_pain_message What was the last pain message that was sent?
+ next_pain_time When can we get the next pain message?
+ requires_machine_person When this variable is true, it can only be installed on the machine person species.
+ stealth_level What level of upgrades are needed to detect this. Level 0 is default. 1 is hidden from health analysers. 2 is hidden from cyborg analysers, and the body scanner at level 1. 4 is the highest level the body scanner can reach.
+ Var Details destroy_on_removal
+
+
+
+
+
+ Should this organ be destroyed on removal?
last_pain_message
+
+
+
+
+
+ What was the last pain message that was sent?
next_pain_time
+
+
+
+
+
+ When can we get the next pain message?
requires_machine_person
+
+
+
+
+
+ When this variable is true, it can only be installed on the machine person species.
stealth_level
+
+
+
+
+
+ What level of upgrades are needed to detect this. Level 0 is default. 1 is hidden from health analysers. 2 is hidden from cyborg analysers, and the body scanner at level 1. 4 is the highest level the body scanner can reach.
+
+
+
diff --git a/obj/item/organ/external.html b/obj/item/organ/external.html
new file mode 100644
index 0000000000000..ef1aa7d8ce631
--- /dev/null
+++ b/obj/item/organ/external.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/organ/external - Space Station 13
+
+
+
+
+
+
+EXTERNAL ORGANS
+ Var Details properly_attached
+
+
+
+
+
+ If the organ has been properly attached or not. Limbs on mobs and robotic ones
Proc Details droplimb(clean, disintegrate, ignore_children, nodamage)
+
+
+
+
+
+ DISMEMBERMENT
process()
+
+
+
+
+
+ PROCESSING & UPDATING
receive_damage(brute, burn, sharp, used_weapon, /list/forbidden_limbs, ignore_resists, updating_health)
+
+
+
+
+
+ DAMAGE PROCS
release_restraints
+
+ HELPERS
+
+
+
diff --git a/obj/item/organ/internal.html b/obj/item/organ/internal.html
new file mode 100644
index 0000000000000..dfa31d3f1147a
--- /dev/null
+++ b/obj/item/organ/internal.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/organ/internal - Space Station 13
+
+
+
+
+
+
+Vars
+ organ_datums An associated list of organ datums that this organ has. Procs
+ robotize INTERNAL ORGANS DEFINES
+ Var Details organ_datums
+
+
+
+
+
+ An associated list of organ datums that this organ has.
Proc Details robotize(make_tough)
+
+
+
+
+
+ INTERNAL ORGANS DEFINES
+
+
+
diff --git a/obj/item/organ/internal/alien.html b/obj/item/organ/internal/alien.html
new file mode 100644
index 0000000000000..bf97694c46219
--- /dev/null
+++ b/obj/item/organ/internal/alien.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/organ/internal/alien - Space Station 13
+
+
+
+
+
+
+Vars
+ cargo_profit Amount of credits that will be received by selling this in the cargo shuttle
+ hijacked Has this organ been hijacked? Can hijack via a hemostat Procs
+ insert This adds and removes alien spells upon addition, if a noncarbon tries to do this well... I blame adminbus
+ Var Details cargo_profit
+
+
+
+
+
+ Amount of credits that will be received by selling this in the cargo shuttle
hijacked
+
+
+
+
+
+ Has this organ been hijacked? Can hijack via a hemostat
Proc Details
+ This adds and removes alien spells upon addition, if a noncarbon tries to do this well... I blame adminbus
+
+
+
diff --git a/obj/item/organ/internal/body_egg/alien_embryo.html b/obj/item/organ/internal/body_egg/alien_embryo.html
new file mode 100644
index 0000000000000..85718819763c4
--- /dev/null
+++ b/obj/item/organ/internal/body_egg/alien_embryo.html
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+ /obj/item/organ/internal/body_egg/alien_embryo - Space Station 13
+
+
+
+
+
+
+Vars
+ incubation_deviation The random deviation for how long the incubation period per stage will take, ranging from -15% to +15. NOTE! If you have a better name for this var, I'd love it
+ incubation_time_per_stage How long it takes for an alien embryo to advance a stage in it's development
+ last_stage_progress Used to keep track of when incubation progressed to the next stage Procs
+ AttemptGrow Time for incubation is increased or decreased by a deviation of 15%, then we check to see if we've passed the threshold to goto our next stage of development
+The actual deviation location, and where the magic happens
+If you managed to get this far, you deserve to be rewarded somewhat
+ Var Details incubation_deviation
+
+
+
+
+
+ The random deviation for how long the incubation period per stage will take, ranging from -15% to +15. NOTE! If you have a better name for this var, I'd love it
incubation_time_per_stage
+
+
+
+
+
+ How long it takes for an alien embryo to advance a stage in it's development
last_stage_progress
+
+
+
+
+
+ Used to keep track of when incubation progressed to the next stage
Proc Details AttemptGrow(burst_on_success)
+
+
+
+
+
+ Time for incubation is increased or decreased by a deviation of 15%, then we check to see if we've passed the threshold to goto our next stage of development
+The actual deviation location, and where the magic happens
+If you managed to get this far, you deserve to be rewarded somewhat
+
+
+
diff --git a/obj/item/organ/internal/brain.html b/obj/item/organ/internal/brain.html
new file mode 100644
index 0000000000000..9f036756573ed
--- /dev/null
+++ b/obj/item/organ/internal/brain.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/organ/internal/brain - Space Station 13
+
+
+
+
+
+
+Vars
+ decoy_brain If it's a fake brain without a mob assigned that should still be treated like a real brain.
+ Var Details decoy_brain
+
+
+
+
+
+ If it's a fake brain without a mob assigned that should still be treated like a real brain.
+
+
+
diff --git a/obj/item/organ/internal/cyberimp/brain/anti_stam.html b/obj/item/organ/internal/cyberimp/brain/anti_stam.html
new file mode 100644
index 0000000000000..5fdd4829130b7
--- /dev/null
+++ b/obj/item/organ/internal/cyberimp/brain/anti_stam.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/organ/internal/cyberimp/brain/anti_stam - Space Station 13
+
+
+
+
+
+
+
+ Var Details currently_modifying_stamina
+
+
+
+
+
+ Are we currently modifying somoeones stamina regen block modifier? If so, we will want to undo it on removal.
stamina_crit_time_multiplier
+
+
+
+
+
+ How much we multiply the owners stamina regen block modifier by.
+
+
+
diff --git a/obj/item/organ/internal/cyberimp/brain/sensory_enhancer.html b/obj/item/organ/internal/cyberimp/brain/sensory_enhancer.html
new file mode 100644
index 0000000000000..652903d3767c3
--- /dev/null
+++ b/obj/item/organ/internal/cyberimp/brain/sensory_enhancer.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/organ/internal/cyberimp/brain/sensory_enhancer - Space Station 13
+
+
+
+
+
+
+Vars
+ custom_mob_sprite The icon state used for the on mob sprite. Default is sandy. Drask and vox have their own unique sprites
+ Var Details custom_mob_sprite
+
+
+
+
+
+ The icon state used for the on mob sprite. Default is sandy. Drask and vox have their own unique sprites
+
+
+
diff --git a/obj/item/organ/internal/cyberimp/eyes/hud.html b/obj/item/organ/internal/cyberimp/eyes/hud.html
new file mode 100644
index 0000000000000..9be035942b365
--- /dev/null
+++ b/obj/item/organ/internal/cyberimp/eyes/hud.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/organ/internal/cyberimp/eyes/hud - Space Station 13
+
+
+
+
+
+
+Vars
+ examine_extensions A list of extension kinds added to the examine text. Things like medical or security records.
+ Var Details examine_extensions
+
+
+
+
+
+ A list of extension kinds added to the examine text. Things like medical or security records.
+
+
+
diff --git a/obj/item/organ/internal/heart/cursed.html b/obj/item/organ/internal/heart/cursed.html
new file mode 100644
index 0000000000000..0e395affba41f
--- /dev/null
+++ b/obj/item/organ/internal/heart/cursed.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/organ/internal/heart/cursed - Space Station 13
+
+
+
+
+
+
+
+ Var Details in_grace_period
+
+
+
+
+
+ If true, the user doesn't need to pump their heart.
max_shocks_allowed
+
+
+
+
+
+ Max times that the shock will work before it'll just refuse.
revival_grace_period
+
+
+
+
+
+ How long the shock pumps their heart for them.
times_shocked
+
+
+
+
+
+ Times that it's been shocked.
Proc Details
+ Run this just before the shock is applied so we end up with enough blood to revive.
+
+
+
diff --git a/obj/item/organ/internal/heart/demon/slaughter.html b/obj/item/organ/internal/heart/demon/slaughter.html
new file mode 100644
index 0000000000000..4d4fc1e3ac721
--- /dev/null
+++ b/obj/item/organ/internal/heart/demon/slaughter.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /obj/item/organ/internal/heart/demon/slaughter - Space Station 13
+
+
+
+
+
+
+Procs
+ attack_self ///////The Loot
+SLAUGHTER DEMON HEART
Proc Details attack_self
+
+ ///////The Loot
+SLAUGHTER DEMON HEART
+
+
+
diff --git a/obj/item/organ/internal/regenerative_core.html b/obj/item/organ/internal/regenerative_core.html
new file mode 100644
index 0000000000000..5604ea1eb1a6b
--- /dev/null
+++ b/obj/item/organ/internal/regenerative_core.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/organ/internal/regenerative_core - Space Station 13
+
+
+
+
+
+
+Hivelord core
Vars
+ core_type Is this a hivelord or legion core? Procs
+ applyto Handles applying the core, logging and status/mood events.
+ Var Details core_type
+
+
+
+
+
+ Is this a hivelord or legion core?
Proc Details applyto
+
+ Handles applying the core, logging and status/mood events.
+
+
+
diff --git a/obj/item/painter.html b/obj/item/painter.html
new file mode 100644
index 0000000000000..eb80d9ef61664
--- /dev/null
+++ b/obj/item/painter.html
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+ /obj/item/painter - Space Station 13
+
+
+
+
+
+
+Vars
+ module_list List of any instanced /datum/painter 's, to avoid spawning more than one of each.
+ painter_icon_list Associative list of painter types, with the value being the icon. (For use in the radial menu)
+ painter_type_list Associative list of painter types, with the value being the datum. (For use in the radial menu)
+ selected_module The /datum/painter which is currently active. Procs
+ CtrlClick Displays a radial menu for choosing a new painter module.
+ afterattack If adjacent, calls paint_atom()
on the selected_module
, then plays the usesound
.
+ attack_self Calls pick_color()
on the selected_module
.
+ change_module Changes the selected_module
variable to new_module
, and updates the painter to reflect the new type.
+ Var Details module_list
+
+
+
+
+
+ List of any instanced /datum/painter 's, to avoid spawning more than one of each.
painter_icon_list
+
+
+
+
+
+ Associative list of painter types, with the value being the icon. (For use in the radial menu)
painter_type_list
+
+
+
+
+
+ Associative list of painter types, with the value being the datum. (For use in the radial menu)
selected_module
+
+
+
+
+
+ The /datum/painter which is currently active.
Proc Details CtrlClick
+
+ Displays a radial menu for choosing a new painter module.
afterattack(/atom /target, /mob /user, proximity, params)
+
+
+
+
+
+ If adjacent, calls paint_atom()
on the selected_module
, then plays the usesound
.
attack_self
+
+ Calls pick_color()
on the selected_module
.
change_module
+
+ Changes the selected_module
variable to new_module
, and updates the painter to reflect the new type.
+If new_module
is already present in module_list
, then that will be used instead.
+Otherwise a new datum will be spawned and added to module_list
.
+The Name, Description, Icon State, and Item State of the painter will be updated using variables from the new_module
datum.
+Arguments:
+
+datum/painter/new_module - The new painter datum which will be used.
+mob/user - The user interacting with the painter.
+
+
+
+
diff --git a/obj/item/paper.html b/obj/item/paper.html
new file mode 100644
index 0000000000000..f69dee250b71d
--- /dev/null
+++ b/obj/item/paper.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/paper - Space Station 13
+
+
+
+
+
+
+
+ Var Details paper_height
+
+
+
+
+
+ Height of the window that opens
paper_width
+
+
+
+
+
+ Width of the window that opens
+
+
+
diff --git a/obj/item/paper/tcommskey.html b/obj/item/paper/tcommskey.html
new file mode 100644
index 0000000000000..7bbd8be96e9cd
--- /dev/null
+++ b/obj/item/paper/tcommskey.html
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+ /obj/item/paper/tcommskey - Space Station 13
+
+
+
+
+Telecommunications Password Paper
+
+
+
+
+
+Piece of paper that spawns with the default link password
+This is spawned in the CE office and has the default link password
+While convenient, this is not necessary and doesnt matter if it gets lost or destroyed
+Because you can view the password easily by just looking at the core link page
Proc Details Initialize(mapload)
+
+
+
+
+
+ Password Paper Initializer
+This paper MUST be LateInitialized so the core has a chance to initialize and setup its password
+Otherwise shit breaks BADLY
LateInitialize(mapload)
+
+
+
+
+
+ Password Paper Late Initializer
+Since the core was regularly initialized, we can now use the LateInitialize here to grab its password, then put it on paper
+
+
+
diff --git a/obj/item/pda.html b/obj/item/pda.html
new file mode 100644
index 0000000000000..58be386ab1e1c
--- /dev/null
+++ b/obj/item/pda.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/pda - Space Station 13
+
+
+
+
+
+
+
+ Var Details default_pen
+
+
+
+
+
+ What pen is loaded in the PDA
+
+
+
diff --git a/obj/item/pinpointer/crew.html b/obj/item/pinpointer/crew.html
new file mode 100644
index 0000000000000..cc139014dd22f
--- /dev/null
+++ b/obj/item/pinpointer/crew.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/pinpointer/crew - Space Station 13
+
+
+
+
+
+
+
+ Var Details linked_gun_UID
+
+
+
+
+
+ Var to track the linked detective gun
+
+
+
diff --git a/obj/item/pinpointer/crew/contractor.html b/obj/item/pinpointer/crew/contractor.html
new file mode 100644
index 0000000000000..8998471b0d757
--- /dev/null
+++ b/obj/item/pinpointer/crew/contractor.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/pinpointer/crew/contractor - Space Station 13
+
+
+
+
+
+
+Vars
+ min_range The minimum range for the pinpointer to function properly.
+ owner The first person to have used the item. If this is set already, no one else can use it.
+ Var Details min_range
+
+
+
+
+
+ The minimum range for the pinpointer to function properly.
owner
+
+
+
+
+
+ The first person to have used the item. If this is set already, no one else can use it.
+
+
+
diff --git a/obj/item/pizzabox/pizza_bomb.html b/obj/item/pizzabox/pizza_bomb.html
new file mode 100644
index 0000000000000..821deb4869613
--- /dev/null
+++ b/obj/item/pizzabox/pizza_bomb.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/pizzabox/pizza_bomb - Space Station 13
+
+
+
+
+
+
+Vars
+ timer Adjustable timer Procs
+ go_boom Sound effect made by BlackDog
+ Var Details timer
+
+
+
+
+
+ Adjustable timer
Proc Details go_boom()
+
+
+
+
+
+ Sound effect made by BlackDog
+
+
+
diff --git a/obj/item/pneumatic_cannon.html b/obj/item/pneumatic_cannon.html
new file mode 100644
index 0000000000000..71f5c81e2dabe
--- /dev/null
+++ b/obj/item/pneumatic_cannon.html
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+ /obj/item/pneumatic_cannon - Space Station 13
+
+
+
+
+
+
+
+ Var Details gas_per_throw
+
+
+
+
+
+ How many moles of gas is drawn from a tank's pressure to fire
loaded_items
+
+
+
+
+
+ The items loaded into the cannon that will be fired out
loaded_weight_class
+
+
+
+
+
+ The weight of items currently in the cannon
max_pressure_setting
+
+
+
+
+
+ In case we want a really strong cannon
max_weight_class
+
+
+
+
+
+ The max weight of items that can fit into the cannon
pressure_setting
+
+
+
+
+
+ How powerful the cannon is - higher pressure = more gas but more powerful throws
requires_tank
+
+
+
+
+
+ If the cannon needs a tank at all
tank
+
+
+
+
+
+ The gas tank that is drawn from to fire things
Proc Details load_item
+
+ Arguments:
+
+I - item to load into the cannon
+user - the person loading the item in
+Returns:
+True if item was loaded, false if it failed
+
+
+
+
diff --git a/obj/item/projectile.html b/obj/item/projectile.html
new file mode 100644
index 0000000000000..fdfd12cd83a3d
--- /dev/null
+++ b/obj/item/projectile.html
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+ /obj/item/projectile - Space Station 13
+
+
+
+
+
+
+Vars
+ chain For when you want your projectile to have a chain coming out of the gun
+ forcedodge Number of times an object can pass through an object. -1 is infinite
+ has_been_fired Has the projectile been fired?
+ immolate Does the projectile increase fire stacks / immolate mobs on hit? Applies fire stacks equal to the number on hit.
+ last_angle_set_hitscan_store Last turf an angle was changed in for hitscan projectiles.
+ last_projectile_move Last world.time the projectile proper moved
+ min_ricochets how many times we have to ricochet min (unless we hit an atom we can ricochet off)
+ reflectability Determines the reflectability level of a projectile, either REFLECTABILITY_NEVER, REFLECTABILITY_PHYSICAL, REFLECTABILITY_ENERGY in order of ease to reflect.
+ ricochet_auto_aim_angle On ricochet, if ricochet_auto_aim_range is nonzero, we'll consider any mobs within this range of the normal angle of incidence to home in on, higher = more auto aim
+ ricochet_auto_aim_range On ricochet, if nonzero, we consider all mobs within this range of our projectile at the time of ricochet to home in on like Revolver Ocelot, as governed by ricochet_auto_aim_angle
+ ricochet_chance 0-100 (or more, I guess), the base chance of ricocheting, before being modified by the atom we shoot and our chance decay
+ ricochet_decay_chance 0-1 (or more, I guess) multiplier, the ricochet_chance is modified by multiplying this after each ricochet
+ ricochet_decay_damage 0-1 (or more, I guess) multiplier, the projectile's damage is modified by multiplying this after each ricochet
+ ricochet_incidence_leeway the angle of impact must be within this many degrees of the struck surface, set to 0 to allow any angle
+ ricochet_shoots_firer Can our ricochet autoaim hit our firer?
+ ricochets how many times we've ricochet'd so far (instance variable, not a stat)
+ ricochets_max how many times we can ricochet max
+ shield_buster Does this projectile do extra damage to / break shields?
+ time_offset Left over ticks in movement calculation
+ trajectory The projectile's trajectory
+ trajectory_ignore_forcemove Instructs forceMove to NOT reset our trajectory to the new location!
+ Var Details chain
+
+
+
+
+
+ For when you want your projectile to have a chain coming out of the gun
forcedodge
+
+
+
+
+
+ Number of times an object can pass through an object. -1 is infinite
has_been_fired
+
+
+
+
+
+ Has the projectile been fired?
immolate
+
+
+
+
+
+ Does the projectile increase fire stacks / immolate mobs on hit? Applies fire stacks equal to the number on hit.
last_angle_set_hitscan_store
+
+
+
+
+
+ Last turf an angle was changed in for hitscan projectiles.
last_projectile_move
+
+
+
+
+
+ Last world.time the projectile proper moved
min_ricochets
+
+
+
+
+
+ how many times we have to ricochet min (unless we hit an atom we can ricochet off)
reflectability
+
+
+
+
+
+ Determines the reflectability level of a projectile, either REFLECTABILITY_NEVER, REFLECTABILITY_PHYSICAL, REFLECTABILITY_ENERGY in order of ease to reflect.
ricochet_auto_aim_angle
+
+
+
+
+
+ On ricochet, if ricochet_auto_aim_range is nonzero, we'll consider any mobs within this range of the normal angle of incidence to home in on, higher = more auto aim
ricochet_auto_aim_range
+
+
+
+
+
+ On ricochet, if nonzero, we consider all mobs within this range of our projectile at the time of ricochet to home in on like Revolver Ocelot, as governed by ricochet_auto_aim_angle
ricochet_chance
+
+
+
+
+
+ 0-100 (or more, I guess), the base chance of ricocheting, before being modified by the atom we shoot and our chance decay
ricochet_decay_chance
+
+
+
+
+
+ 0-1 (or more, I guess) multiplier, the ricochet_chance is modified by multiplying this after each ricochet
ricochet_decay_damage
+
+
+
+
+
+ 0-1 (or more, I guess) multiplier, the projectile's damage is modified by multiplying this after each ricochet
ricochet_incidence_leeway
+
+
+
+
+
+ the angle of impact must be within this many degrees of the struck surface, set to 0 to allow any angle
ricochet_shoots_firer
+
+
+
+
+
+ Can our ricochet autoaim hit our firer?
ricochets
+
+
+
+
+
+ how many times we've ricochet'd so far (instance variable, not a stat)
ricochets_max
+
+
+
+
+
+ how many times we can ricochet max
shield_buster
+
+
+
+
+
+ Does this projectile do extra damage to / break shields?
time_offset
+
+
+
+
+
+ Left over ticks in movement calculation
+ The projectile's trajectory
trajectory_ignore_forcemove
+
+
+
+
+
+ Instructs forceMove to NOT reset our trajectory to the new location!
+
+
+
diff --git a/obj/item/projectile/beam/laser/sniper/pierce.html b/obj/item/projectile/beam/laser/sniper/pierce.html
new file mode 100644
index 0000000000000..6eb7836840d46
--- /dev/null
+++ b/obj/item/projectile/beam/laser/sniper/pierce.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/projectile/beam/laser/sniper/pierce - Space Station 13
+
+
+
+
+
+
+Vars
+ hit_a_r_wall Have we hit an r_wall? If we have, don't pierce it again so we don't become too effective on reinforced locations (AI sat)
+ Var Details hit_a_r_wall
+
+
+
+
+
+ Have we hit an r_wall? If we have, don't pierce it again so we don't become too effective on reinforced locations (AI sat)
+
+
+
diff --git a/obj/item/projectile/bullet/mime/nonlethal.html b/obj/item/projectile/bullet/mime/nonlethal.html
new file mode 100644
index 0000000000000..6121346a94b31
--- /dev/null
+++ b/obj/item/projectile/bullet/mime/nonlethal.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/projectile/bullet/mime/nonlethal - Space Station 13
+
+
+
+
+
+
+Vars
+ stamina We deal no normal damage...
+ Var Details stamina
+
+
+
+
+
+ We deal no normal damage...
+
+
+
diff --git a/obj/item/projectile/magic/chaos.html b/obj/item/projectile/magic/chaos.html
new file mode 100644
index 0000000000000..78b018ed31708
--- /dev/null
+++ b/obj/item/projectile/magic/chaos.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/item/projectile/magic/chaos - Space Station 13
+
+
+
+
+
+
+Vars
+ chaos_effect Name of random effect to be applied on target mob.
+ explosion_amount If left at 0, item goes in backpack or floor, if set, throw that many items around the target.
+ item_to_summon Set by random effet to be summoned in target mob's backpack, on the floor under mob, or around mob if explosion_amount is set. Procs
+ apply_gift_effect Picks a random gift to be given to mob/living/target. Should be mildly useful and/or funny.
+ apply_great_gift_effect Picks a random gift to be given to mob/living/target. Should be valuable and/or threatening to the wizard.
+ apply_lethal_effect Picks and apply a lethal effect on mob/living/target. Some are more instantaneous than others.
+ apply_misc_effect Picks and apply a random miscellaneous effect on mob/living/target. Can be negative or mildly positive.
+ apply_negative_effect Picks and apply a negative effect on mob/living/target. Usually causes damage and/or incapacitating effect.
+ chaos_chaos Picks and call a subproc to apply a random effect on mob/living/target.
+ Var Details chaos_effect
+
+
+
+
+
+ Name of random effect to be applied on target mob.
explosion_amount
+
+
+
+
+
+ If left at 0, item goes in backpack or floor, if set, throw that many items around the target.
item_to_summon
+
+
+
+
+
+ Set by random effet to be summoned in target mob's backpack, on the floor under mob, or around mob if explosion_amount is set.
Proc Details apply_gift_effect
+
+ Picks a random gift to be given to mob/living/target. Should be mildly useful and/or funny.
apply_great_gift_effect
+
+ Picks a random gift to be given to mob/living/target. Should be valuable and/or threatening to the wizard.
apply_lethal_effect
+
+ Picks and apply a lethal effect on mob/living/target. Some are more instantaneous than others.
apply_misc_effect
+
+ Picks and apply a random miscellaneous effect on mob/living/target. Can be negative or mildly positive.
apply_negative_effect
+
+ Picks and apply a negative effect on mob/living/target. Usually causes damage and/or incapacitating effect.
chaos_chaos
+
+ Picks and call a subproc to apply a random effect on mob/living/target.
+First pick a category of random effect,
+then calls a sub-proc to pick and apply an effect in that category,
+then summons any item_to_summon set by effects.
+Arguments:
+
+target - mob/living that will have effect applied on them
+
+
+
+
diff --git a/obj/item/projectile/missile.html b/obj/item/projectile/missile.html
new file mode 100644
index 0000000000000..1f0ebce5dfa7b
--- /dev/null
+++ b/obj/item/projectile/missile.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/projectile/missile - Space Station 13
+
+
+
+
+
+
+Vars
+ heavy If the missile will have a heavy, or light explosion.
+ Var Details heavy
+
+
+
+
+
+ If the missile will have a heavy, or light explosion.
+
+
+
diff --git a/obj/item/radio.html b/obj/item/radio.html
new file mode 100644
index 0000000000000..3f9a8a94a3ae0
--- /dev/null
+++ b/obj/item/radio.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /obj/item/radio - Space Station 13
+
+
+
+
+
+
+Vars
+ blacklisted_areas Areas in which this radio cannot send messages
+ broadcasting Whether the radio will broadcast stuff it hears, out over the radio
+ canhear_range the range which mobs can hear this radio from
+ channels see communications.dm for full list. First channes is a "default" for :h
+ disable_timer How many times this is disabled by EMPs
+ freerange Whether the radio can be re-tuned to restricted channels it has no key for
+ freqlock Whether the radio is able to have its primary frequency changed. Used for radios with weird primary frequencies, like DS, syndi, etc
+ has_loudspeaker Whether loudspeaker can be toggled by the user
+ listening Whether the radio is currently receiving
+ loudspeaker Whether the radio broadcasts to everyone within a few tiles, or not
+ on boolean for radio enabled or not
+ syndiekey Holder for the syndicate encryption key if present
+ traitor_frequency tune to frequency to unlock traitor supplies
+ Var Details blacklisted_areas
+
+
+
+
+
+ Areas in which this radio cannot send messages
broadcasting
+
+
+
+
+
+ Whether the radio will broadcast stuff it hears, out over the radio
canhear_range
+
+
+
+
+
+ the range which mobs can hear this radio from
channels
+
+
+
+
+
+ see communications.dm for full list. First channes is a "default" for :h
disable_timer
+
+
+
+
+
+ How many times this is disabled by EMPs
freerange
+
+
+
+
+
+ Whether the radio can be re-tuned to restricted channels it has no key for
freqlock
+
+
+
+
+
+ Whether the radio is able to have its primary frequency changed. Used for radios with weird primary frequencies, like DS, syndi, etc
has_loudspeaker
+
+
+
+
+
+ Whether loudspeaker can be toggled by the user
listening
+
+
+
+
+
+ Whether the radio is currently receiving
loudspeaker
+
+
+
+
+
+ Whether the radio broadcasts to everyone within a few tiles, or not
on
+
+
+
+
+
+ boolean for radio enabled or not
syndiekey
+ – /obj /item /encryptionkey/syndicate
+
+
+
+
+ Holder for the syndicate encryption key if present
traitor_frequency
+
+
+
+
+
+ tune to frequency to unlock traitor supplies
+
+
+
diff --git a/obj/item/radio/borg.html b/obj/item/radio/borg.html
new file mode 100644
index 0000000000000..fe9674178796e
--- /dev/null
+++ b/obj/item/radio/borg.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /obj/item/radio/borg - Space Station 13
+
+
+
+
+
+
+Exists so that borg radios and headsets can override it.
+///////Borg Radios//////////
+
+
+
diff --git a/obj/item/radio/intercom.html b/obj/item/radio/intercom.html
new file mode 100644
index 0000000000000..835caf04d4f9f
--- /dev/null
+++ b/obj/item/radio/intercom.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /obj/item/radio/intercom - Space Station 13
+
+
+
+
+
+
+Procs
+ crowbar_act Allows us to track who spams all these on if they do.
+ local_powernet_check Proc called whenever the intercom's local powernet loses or gains power. Responsible for setting the on
variable and calling update_icon()
.
Proc Details crowbar_act
+
+ Allows us to track who spams all these on if they do.
local_powernet_check
+
+ Proc called whenever the intercom's local powernet loses or gains power. Responsible for setting the on
variable and calling update_icon()
.
+Normally called after the intercom's local powernet sends the COMSIG_POWERNET_POWER_CHANGE
signal, but it can also be called directly.
+Arguments:
+source - the area that just had a power change.
+
+
+
diff --git a/obj/item/rcd.html b/obj/item/rcd.html
new file mode 100644
index 0000000000000..88f864f7a3c10
--- /dev/null
+++ b/obj/item/rcd.html
@@ -0,0 +1,258 @@
+
+
+
+
+
+
+ /obj/item/rcd - Space Station 13
+
+
+
+
+
+
+Vars
+ airlock_glass If the airlock will be created with glass so it can be seen through.
+ allowed_targets A list of valid atoms that RCDs can target. Clicking on an atom with an RCD which is not in this list, will do nothing.
+ canRwall If the RCD can deconstruct reinforced walls.
+ door_accesses_list An associative list containing all station accesses. Includes their name and access number. For use with the UI.
+ door_name The name that newly build airlocks will receive.
+ door_type The current airlock type that will be build.
+ door_types_ui_list An associative list containing an airlock's name, type path, and image. For use with the UI.
+ electrochromic If the glass airlock is polarized.
+ locked Is the RCD's airlock access selection menu locked?
+ matter The current amount of matter stored.
+ max_matter The max amount of matter that can be stored.
+ mode The RCD's current build mode.
+ no_ammo_message No ammo warning
+ one_access If this is TRUE, any airlocks that gets built will require only ONE of the checked accesses. If FALSE, it will require ALL of them.
+ possible_actions The list of potential RCD actions.
+ rcd_door_types An associative list of airlock type paths as keys, and their names as values.
+ selected_accesses A list of access numbers which have been checked off by the user in the UI.
+ spark_system The spark system used to create sparks when the user interacts with the RCD.
+ ui_tab Which airlock tab the UI is currently set to display. Procs
+ check_menu Runs a series of pre-checks before opening the radial menu to the user.
+ detonate_pulse Called from malf AI's "detonate RCD" ability.
+ detonate_pulse_explode Called in /obj/item/rcd/proc/detonate_pulse()
via callback.
+ get_airlock_image Creates and returns a base64 icon of the given airlock_type
.
+ load Tries to load ammo into an RCD, borgs will not use this.
+Arguments:
+ radial_menu Creates and displays a radial menu to a user when they trigger the attack_self
of the RCD.
+ tool_use_check Called in each of the four build modes before an object gets build. Makes sure there is enough matter to build the object.
+ ui_act_modal Called in ui_act() to process modal actions
+ use Attempts to use matter from the RCD.
+ Var Details airlock_glass
+
+
+
+
+
+ If the airlock will be created with glass so it can be seen through.
allowed_targets
+
+
+
+
+
+ A list of valid atoms that RCDs can target. Clicking on an atom with an RCD which is not in this list, will do nothing.
canRwall
+
+
+
+
+
+ If the RCD can deconstruct reinforced walls.
door_accesses_list
+
+
+
+
+
+ An associative list containing all station accesses. Includes their name and access number. For use with the UI.
door_name
+
+
+
+
+
+ The name that newly build airlocks will receive.
door_type
+
+
+
+
+
+ The current airlock type that will be build.
door_types_ui_list
+
+
+
+
+
+ An associative list containing an airlock's name, type path, and image. For use with the UI.
electrochromic
+
+
+
+
+
+ If the glass airlock is polarized.
locked
+
+
+
+
+
+ Is the RCD's airlock access selection menu locked?
matter
+
+
+
+
+
+ The current amount of matter stored.
max_matter
+
+
+
+
+
+ The max amount of matter that can be stored.
mode
+
+
+
+
+
+ The RCD's current build mode.
no_ammo_message
+
+
+
+
+
+ No ammo warning
one_access
+
+
+
+
+
+ If this is TRUE, any airlocks that gets built will require only ONE of the checked accesses. If FALSE, it will require ALL of them.
possible_actions
+
+
+
+
+
+ The list of potential RCD actions.
rcd_door_types
+
+
+
+
+
+ An associative list of airlock type paths as keys, and their names as values.
selected_accesses
+
+
+
+
+
+ A list of access numbers which have been checked off by the user in the UI.
spark_system
+
+
+
+
+
+ The spark system used to create sparks when the user interacts with the RCD.
ui_tab
+
+
+
+
+
+ Which airlock tab the UI is currently set to display.
Proc Details
+ Runs a series of pre-checks before opening the radial menu to the user.
+Arguments:
+
+user - the mob trying to open the radial menu.
+ detonate_pulse()
+
+
+
+
+
+ Called from malf AI's "detonate RCD" ability.
+Creates a delayed explosion centered around the RCD.
detonate_pulse_explode()
+
+
+
+
+
+ Called in /obj/item/rcd/proc/detonate_pulse()
via callback.
get_airlock_image(airlock_type)
+
+
+
+
+
+ Creates and returns a base64 icon of the given airlock_type
.
+This is used for airlock icon previews in the UI.
+Arugments:
+
+airlock_type - an airlock typepath.
+ load
+
+ Tries to load ammo into an RCD, borgs will not use this.
+Arguments:
+
+cart - the compressed matter catridge to insert
+user - the user to display the chat messages to
+
+ Creates and displays a radial menu to a user when they trigger the attack_self
of the RCD.
+Arguments:
+
+user - the mob trying to open the RCD radial.
+
+ Called in each of the four build modes before an object gets build. Makes sure there is enough matter to build the object.
+Arguments:
+
+amount - an amount of matter to check for
+ ui_act_modal(action, /list/params)
+
+
+
+
+
+ Called in ui_act() to process modal actions
+Arguments:
+
+action - The action passed by tgui
+params - The params passed by tgui
+ use(amount)
+
+
+
+
+
+ Attempts to use matter from the RCD.
+Arguments:
+
+amount - the amount of matter to use
+
+
+
+
diff --git a/obj/item/rcd/borg.html b/obj/item/rcd/borg.html
new file mode 100644
index 0000000000000..e3808ea207077
--- /dev/null
+++ b/obj/item/rcd/borg.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/rcd/borg - Space Station 13
+
+
+
+
+
+
+Vars
+ power_use_multiplier A multipler which is applied to matter amount checks. A higher number means more power usage per RCD usage.
+ Var Details power_use_multiplier
+
+
+
+
+
+ A multipler which is applied to matter amount checks. A higher number means more power usage per RCD usage.
+
+
+
diff --git a/obj/item/rcs.html b/obj/item/rcs.html
new file mode 100644
index 0000000000000..a55d4078ef7fa
--- /dev/null
+++ b/obj/item/rcs.html
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+ /obj/item/rcs - Space Station 13
+
+
+
+
+Rapid Crate Sender (RCS)
+
+
+
+
+
+Used to teleport crates and closets to cargo telepads.
+If emagged, it allows you to teleport crates to a random location, and also teleport yourself while inside a locker.
+ Var Details chargecost
+
+
+
+
+
+ How much power does each teleport use?
+ Selected telepad
rcell
+
+
+
+
+
+ Power cell (10000W)
teleporting
+
+
+
+
+
+ Currently teleporting something?
Proc Details attack_self
+
+ Used to select telepad location.
random_coords()
+
+
+
+
+
+ Returns a random location in a z level
+Defaults to station Z level, with a 50% chance of being a different one.
+Alternatives are space z levels with ruins.
+Coordinates are constrained within 50-200 x & y.
+
+
+
diff --git a/obj/item/reagent_containers/borghypo.html b/obj/item/reagent_containers/borghypo.html
new file mode 100644
index 0000000000000..7354067da3929
--- /dev/null
+++ b/obj/item/reagent_containers/borghypo.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers/borghypo - Space Station 13
+
+
+
+
+
+
+Vars
+ bypass_protection Can the autohypo inject through thick materials?
+ charge_tick Used for delay with the recharge time, each charge tick is worth 2 seconds of real time
+ maximum_reagents Maximum reagents that the base autohypo can store
+ recharge_time How many SSobj ticks it takes for the reagents to recharge by 10 units
+ total_reagents It doesn't matter what reagent is used in the autohypos, so we don't!
+ Var Details bypass_protection
+
+
+
+
+
+ Can the autohypo inject through thick materials?
charge_tick
+
+
+
+
+
+ Used for delay with the recharge time, each charge tick is worth 2 seconds of real time
maximum_reagents
+
+
+
+
+
+ Maximum reagents that the base autohypo can store
recharge_time
+
+
+
+
+
+ How many SSobj ticks it takes for the reagents to recharge by 10 units
total_reagents
+
+
+
+
+
+ It doesn't matter what reagent is used in the autohypos, so we don't!
+
+
+
diff --git a/obj/item/reagent_containers/hypospray.html b/obj/item/reagent_containers/hypospray.html
new file mode 100644
index 0000000000000..512096588a83a
--- /dev/null
+++ b/obj/item/reagent_containers/hypospray.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers/hypospray - Space Station 13
+
+
+
+
+
+
+MARK: HYPOSPRAY
Vars
+ can_pierce_hardsuits If TRUE, the hypospray can inject through most hardsuits/modsuits.
+ ignore_hypospray_immunity If TRUE, the hypospray isn't blocked by suits with TRAIT_HYPOSPRAY_IMMUNE.
+ safe_chem_list List of reagents that are allowed to go into a hypospray with active safeties.
+ safety_hypo If TRUE, the hypospray will reject any chemicals not on the safe_chem_list.
+ Var Details can_pierce_hardsuits
+
+
+
+
+
+ If TRUE, the hypospray can inject through most hardsuits/modsuits.
ignore_hypospray_immunity
+
+
+
+
+
+ If TRUE, the hypospray isn't blocked by suits with TRAIT_HYPOSPRAY_IMMUNE.
safe_chem_list
+
+
+
+
+
+ List of reagents that are allowed to go into a hypospray with active safeties.
safety_hypo
+
+
+
+
+
+ If TRUE, the hypospray will reject any chemicals not on the safe_chem_list.
+
+
+
diff --git a/obj/item/reagent_containers/syringe.html b/obj/item/reagent_containers/syringe.html
new file mode 100644
index 0000000000000..d0e3461529d18
--- /dev/null
+++ b/obj/item/reagent_containers/syringe.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/reagent_containers/syringe - Space Station 13
+
+
+
+
+
+
+Vars
+ penetrates_thick If this variable is true, the syringe will work through hardsuits / modsuits / biosuits.
+ Var Details penetrates_thick
+
+
+
+
+
+ If this variable is true, the syringe will work through hardsuits / modsuits / biosuits.
+
+
+
diff --git a/obj/item/relic.html b/obj/item/relic.html
new file mode 100644
index 0000000000000..cdcb460482b58
--- /dev/null
+++ b/obj/item/relic.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/relic - Space Station 13
+
+
+
+
+
+
+
+ Var Details cooldown_duration
+
+
+
+
+
+ Duration of the cooldown
function_id
+
+
+
+
+
+ What is the real function of this object?
last_use_time
+
+
+
+
+
+ Actual cooldown
petspawn_mob
+
+
+
+
+
+ Mob this object should spawn if [STRANGEOBJECT_FUNCTION_PET_SPAWN] is picked.
real_name
+
+
+
+
+
+ The name this object will get when it is discovered
revealed
+
+
+
+
+
+ Has this object been discovered?
+
+
+
diff --git a/obj/item/restraints/handcuffs.html b/obj/item/restraints/handcuffs.html
new file mode 100644
index 0000000000000..3b6266ef0033b
--- /dev/null
+++ b/obj/item/restraints/handcuffs.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/restraints/handcuffs - Space Station 13
+
+
+
+
+
+
+Vars
+ cuffsound Sound made when cuffing someone.
+ ignoresClumsy If set to TRUE, people with the TRAIT_CLUMSY won't cuff themselves when trying to cuff others.
+ trashtype Trash item generated when cuffs are broken (for disposable cuffs).
+ Var Details cuffsound
+
+
+
+
+
+ Sound made when cuffing someone.
ignoresClumsy
+
+
+
+
+
+ If set to TRUE, people with the TRAIT_CLUMSY won't cuff themselves when trying to cuff others.
trashtype
+
+
+
+
+
+ Trash item generated when cuffs are broken (for disposable cuffs).
+
+
+
diff --git a/obj/item/restraints/legcuffs/beartrap.html b/obj/item/restraints/legcuffs/beartrap.html
new file mode 100644
index 0000000000000..1ecd3cd7400a6
--- /dev/null
+++ b/obj/item/restraints/legcuffs/beartrap.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/restraints/legcuffs/beartrap - Space Station 13
+
+
+
+
+
+
+Vars
+ silent_arming Do we want the beartrap not to make a visable message on arm? Use when a beartrap is applied by something else.
+ Var Details silent_arming
+
+
+
+
+
+ Do we want the beartrap not to make a visable message on arm? Use when a beartrap is applied by something else.
+
+
+
diff --git a/obj/item/restraints/legcuffs/bola.html b/obj/item/restraints/legcuffs/bola.html
new file mode 100644
index 0000000000000..93221ed84e926
--- /dev/null
+++ b/obj/item/restraints/legcuffs/bola.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/item/restraints/legcuffs/bola - Space Station 13
+
+
+
+
+
+
+Vars
+ knockdown_duration the duration of the knockdown in seconds
+ max_range the max range after the bola fully spins up. if your value for this isn't divisable by the value of max_spins
it will be lower than the max
+ max_speed the max speed after the bola fully spins up. if your value for this isn't divisable by the value of max_spins
it will be lower than the max
+ max_spins the number of spins till the bola gets the maximum throw distance. each spin takes 1 second
+ reuseable is the bola reuseable?
+ spinning are we currently spinning the bola Procs
+ can_spin_check if it returns TRUE, it breaks the loop, returning FALSE, continues the loop
+ Var Details knockdown_duration
+
+
+
+
+
+ the duration of the knockdown in seconds
max_range
+
+
+
+
+
+ the max range after the bola fully spins up. if your value for this isn't divisable by the value of max_spins
it will be lower than the max
max_speed
+
+
+
+
+
+ the max speed after the bola fully spins up. if your value for this isn't divisable by the value of max_spins
it will be lower than the max
max_spins
+
+
+
+
+
+ the number of spins till the bola gets the maximum throw distance. each spin takes 1 second
reuseable
+
+
+
+
+
+ is the bola reuseable?
spinning
+
+
+
+
+
+ are we currently spinning the bola
Proc Details can_spin_check
+
+ if it returns TRUE, it breaks the loop, returning FALSE, continues the loop
+
+
+
diff --git a/obj/item/robot_module.html b/obj/item/robot_module.html
new file mode 100644
index 0000000000000..43e663a900e25
--- /dev/null
+++ b/obj/item/robot_module.html
@@ -0,0 +1,248 @@
+
+
+
+
+
+
+ /obj/item/robot_module - Space Station 13
+
+
+
+
+
+
+Vars
+ basic_modules A list of module-specific, non-emag modules the borg will gain when this module is chosen.
+ channels Radio channels the module owner has access to.
+ custom_removals Special items that are able to be removed from the robot owner via crowbar.
+ emag_modules A list of modules the robot gets when emagged.
+ emag_override_modules A list of modules the robot gets when either emagged or Safety Overridden.
+ malf_modules A list of modules that the robot gets when malf AI buys it.
+ malfhacked Has the AI hacked the borg module, allowing access to the malf AI exclusive item.
+ material_storages A list of all "material stacks", i.e. metal, glass, and reinforced glass
+ module_actions Special actions this module will gain when chosen such as meson vision, or thermal vision.
+ module_type For icon usage.
+ modules A list of all currently usable and created modules the robot currently has access too.
+ override_modules A list of modules the robot gets when Safety Overridden.
+ special_rechargables A list of modules that require special recharge handling. Examples include things like flashes, sprays and welding tools.
+ storages A list of all "energy stacks", i.e cables, brute kits, splints, etc.
+ subsystems Available tools given in the verb tab such as a crew monitor, or power monitor. Procs
+ add_armor Adds armor to a cyborg. Normaly resets it to 0 across the board, unless the module has an armor defined.
+ add_languages Adds all of the languages this module is suppose to know and/or speak.
+ add_module Adds the item I
to our modules
list, and sets up an /datum/robot_storage/energy
if its a stack.
+ add_subsystems_and_actions Adds anything in subsystems
to the robot's verbs, and grants any actions that are in module_actions
.
+ get_or_create_estorage Returns a robot_energy_strage
datum of type storage_type
. If one already exists, it returns that one, otherwise it create a new one.
+ handle_death Overriden for specific modules if they have storage items. These should have their contents emptied out onto the floor.
+ rebuild_modules Builds the usable module list from the modules we have in basic_modules
, override_modules
, emag_modules
, emag_override_modules
and malf_modules
+ recharge_consumables Handles the recharging of all borg stack items and any items which are in the special_rechargables
list.
+ remove_item_from_lists Searches through the various module lists for the given item_type
, deletes and removes the item from all supplied lists, if the item is found.
+ remove_subsystems_and_actions Removes any verbs from the robot that are in subsystems
, and removes any actions that are in module_actions
.
+ unemag Called when the robot owner of this module has the unemag()
proc called on them, which is only via admin means.
+ update_cells Called when the robot owner of this module has their power cell replaced.
+ Var Details basic_modules
+
+
+
+
+
+ A list of module-specific, non-emag modules the borg will gain when this module is chosen.
channels
+
+
+
+
+
+ Radio channels the module owner has access to.
custom_removals
+
+
+
+
+
+ Special items that are able to be removed from the robot owner via crowbar.
emag_modules
+
+
+
+
+
+ A list of modules the robot gets when emagged.
emag_override_modules
+
+
+
+
+
+ A list of modules the robot gets when either emagged or Safety Overridden.
malf_modules
+
+
+
+
+
+ A list of modules that the robot gets when malf AI buys it.
malfhacked
+
+
+
+
+
+ Has the AI hacked the borg module, allowing access to the malf AI exclusive item.
material_storages
+
+
+
+
+
+ A list of all "material stacks", i.e. metal, glass, and reinforced glass
module_actions
+
+
+
+
+
+ Special actions this module will gain when chosen such as meson vision, or thermal vision.
module_type
+
+
+
+
+
+ For icon usage.
modules
+
+
+
+
+
+ A list of all currently usable and created modules the robot currently has access too.
override_modules
+
+
+
+
+
+ A list of modules the robot gets when Safety Overridden.
special_rechargables
+
+
+
+
+
+ A list of modules that require special recharge handling. Examples include things like flashes, sprays and welding tools.
storages
+
+
+
+
+
+ A list of all "energy stacks", i.e cables, brute kits, splints, etc.
subsystems
+
+
+
+
+
+ Available tools given in the verb tab such as a crew monitor, or power monitor.
Proc Details
+ Adds armor to a cyborg. Normaly resets it to 0 across the board, unless the module has an armor defined.
+ Adds all of the languages this module is suppose to know and/or speak.
+Arugments:
+
+R - the owner of this module.
+ add_module
+
+ Adds the item I
to our modules
list, and sets up an /datum/robot_storage/energy
if its a stack.
+Arugments:
+
+I - the item to add to our modules.
+requires_rebuild - if adding this item requires rebuild_modules()
to be called.
+ add_subsystems_and_actions
+
+ Adds anything in subsystems
to the robot's verbs, and grants any actions that are in module_actions
.
get_or_create_estorage(storage_type)
+
+
+
+
+
+ Returns a robot_energy_strage
datum of type storage_type
. If one already exists, it returns that one, otherwise it create a new one.
+Arguments:
+
+storage_type - the subtype of datum/robot_storage
to fetch or create.
+
+ Overriden for specific modules if they have storage items. These should have their contents emptied out onto the floor.
rebuild_modules()
+
+
+
+
+
+ Builds the usable module list from the modules we have in basic_modules
, override_modules
, emag_modules
, emag_override_modules
and malf_modules
recharge_consumables
+
+ Handles the recharging of all borg stack items and any items which are in the special_rechargables
list.
+Arguments:
+
+R - the owner of this module.
+coeff - a coefficient which can be used to modify the recharge rate of consumables.
+ remove_item_from_lists(item_or_item_type)
+
+
+
+
+
+ Searches through the various module lists for the given item_type
, deletes and removes the item from all supplied lists, if the item is found.
+NOTE: be careful with using this proc, as it irreversibly removes entries from a borg's module list.
+This is safe to do with upgrades because the only way to revert upgrades currently is either to rebuild the borg or use a reset module, which allows the lists to regenerate.
+Arugments:
+
+item_type - the type of item to search for. Also accepts objects themselves.
+ remove_subsystems_and_actions
+
+ Removes any verbs from the robot that are in subsystems
, and removes any actions that are in module_actions
.
unemag()
+
+
+
+
+
+ Called when the robot owner of this module has the unemag()
proc called on them, which is only via admin means.
+Deletes this module's emag items, and recreates them.
update_cells(unlink_cell)
+
+
+
+
+
+ Called when the robot owner of this module has their power cell replaced.
+Changes the linked power cell for module items to the newly inserted cell, or to null
.
+Arguments:
+
+unlink_cell - If TRUE, set the item's power cell variable to null
rather than linking it to a new one.
+
+
+
+
diff --git a/obj/item/robot_module/janitor.html b/obj/item/robot_module/janitor.html
new file mode 100644
index 0000000000000..e3d1381bdfc81
--- /dev/null
+++ b/obj/item/robot_module/janitor.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ /obj/item/robot_module/janitor - Space Station 13
+
+
+
+
+
+
+Procs
+ on_cyborg_move Proc called after the janitor cyborg has moved, in order to clean atoms at it's new location.
Proc Details
+ Proc called after the janitor cyborg has moved, in order to clean atoms at it's new location.
+Arguments:
+
+mob/living/silicon/robot/R - The cyborg who moved.
+
+
+
+
diff --git a/obj/item/scratch.html b/obj/item/scratch.html
new file mode 100644
index 0000000000000..6512a5fe2aa15
--- /dev/null
+++ b/obj/item/scratch.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/scratch - Space Station 13
+
+
+
+
+
+
+
+ Var Details scratched
+
+
+
+
+
+ Has this been scratched yet?
winner
+
+
+
+
+
+ Is this the winner card?
winning_chance
+
+
+
+
+
+ The prob chance for it to be the winner card
+
+
+
diff --git a/obj/item/seeds.html b/obj/item/seeds.html
new file mode 100644
index 0000000000000..701fdb7a55b3d
--- /dev/null
+++ b/obj/item/seeds.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/seeds - Space Station 13
+
+
+
+
+
+
+
+ Var Details stat_better_if_small
+
+
+
+
+
+ Whether each stat is better at smaller values.
stat_mutation_sizes
+
+
+
+
+
+ The size of a small mutation for each stat.
weed_chance
+
+
+
+
+
+ Percentage chance per tray update to grow weeds
weed_rate
+
+
+
+
+
+ If weed chance passes, this many weeds sprout during growth
Proc Details adjust_yield(adjustamt)
+
+
+
+
+
+ Setter procs
+
+
+
diff --git a/obj/item/shield/mirror.html b/obj/item/shield/mirror.html
new file mode 100644
index 0000000000000..b533cf678b1d9
--- /dev/null
+++ b/obj/item/shield/mirror.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /obj/item/shield/mirror - Space Station 13
+
+
+
+
+
+
+
+ Var Details ballistic_threshold
+
+
+
+
+
+ Shatter threshold for Ballistic weapons
energy_threshold
+
+
+
+
+
+ Shatter threshold for Energy weapons
illusions
+
+
+
+
+
+ The number of clone illusions remaining
reflect_chance
+
+
+
+
+
+ Chance that energy projectiles will be reflected
Proc Details hit_reaction
+
+ Reflect/Block/Shatter proc.
+Projectiles:
+If you have been hit by a projectile, the 'threshold' will be set depending on the damage type.
+By default, energy weapons have a 70% chance of being reflected, so you're going to want to use ballistics against mirror shields. (Reflection is calculated beforehand in [/mob/living/carbon/human/bullet_act])
+For every point of damage above the threshold, the shield will have a 3% chance to shatter. (Up to a maximum of 75%)
+If a ballistic projectile doesn't shatter the shield, it will move on to the melee section.
+Melee and blocked projectiles:
+Melee attacks and bullets have a 50|50 chance of being blocked by the mirror shield. (Based on the 'block_chance' variable)
+If they are blocked, and the shield has an illusion charge, an illusion will be spawned at src.
+The illusion has a 60% chance to be hostile and attack non-cultists, and a 40% chance to just run away from the user.
+
+
+
diff --git a/obj/item/shield/v1_arm.html b/obj/item/shield/v1_arm.html
new file mode 100644
index 0000000000000..2fc7c7b4ff2db
--- /dev/null
+++ b/obj/item/shield/v1_arm.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/shield/v1_arm - Space Station 13
+
+
+
+
+
+
+Vars
+ reflect_damage_boost The damage the reflected projectile will be increased by
+ reflect_damage_cap The cap of the reflected damage. Damage will not be increased above 50, however it will not be reduced to 50 either.
+ Var Details reflect_damage_boost
+
+
+
+
+
+ The damage the reflected projectile will be increased by
reflect_damage_cap
+
+
+
+
+
+ The cap of the reflected damage. Damage will not be increased above 50, however it will not be reduced to 50 either.
+
+
+
diff --git a/obj/item/shockpaddles.html b/obj/item/shockpaddles.html
new file mode 100644
index 0000000000000..1c9f981e92e4d
--- /dev/null
+++ b/obj/item/shockpaddles.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/shockpaddles - Space Station 13
+
+
+
+
+
+
+Vars
+ defib Active defib this is connected to.
+ on_cooldown Whether or not the paddles are on cooldown. Used for tracking icon states.
+ revivecost Amount of power used on a shock. Procs
+ on_application Check to see if we should abort this before we've even gotten started
+ Var Details
+ Active defib this is connected to.
on_cooldown
+
+
+
+
+
+ Whether or not the paddles are on cooldown. Used for tracking icon states.
revivecost
+
+
+
+
+
+ Amount of power used on a shock.
Proc Details on_application
+
+ Check to see if we should abort this before we've even gotten started
+
+
+
diff --git a/obj/item/slapper.html b/obj/item/slapper.html
new file mode 100644
index 0000000000000..03c5db4dc4fd9
--- /dev/null
+++ b/obj/item/slapper.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/slapper - Space Station 13
+
+
+
+
+
+
+
+ Var Details table_smacks_left
+
+
+
+
+
+ How many smaller table smacks we can do before we're out
+
+
+
diff --git a/obj/item/slime_extract.html b/obj/item/slime_extract.html
new file mode 100644
index 0000000000000..ac23879c65b7d
--- /dev/null
+++ b/obj/item/slime_extract.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/slime_extract - Space Station 13
+
+
+
+
+
+
+Slime Extracts
Vars
+ Uses Uses before it goes inert
+ injector_mob The mob who last injected the extract with plasma, water or blood. Used for logging.
+ Var Details Uses
+
+
+
+
+
+ Uses before it goes inert
injector_mob
+
+
+
+
+
+ The mob who last injected the extract with plasma, water or blood. Used for logging.
+
+
+
diff --git a/obj/item/snowball.html b/obj/item/snowball.html
new file mode 100644
index 0000000000000..239ab8f43e34d
--- /dev/null
+++ b/obj/item/snowball.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/snowball - Space Station 13
+
+
+
+
+
+
+
+ Var Details stamina_damage
+
+
+
+
+
+ The amount of stamina damage to do on hit.
+
+
+
diff --git a/obj/item/soulstone.html b/obj/item/soulstone.html
new file mode 100644
index 0000000000000..dfc35840ef1fa
--- /dev/null
+++ b/obj/item/soulstone.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /obj/item/soulstone - Space Station 13
+
+
+
+
+
+
+Vars
+ animate_rays Should we show rays? Triggered by a held body
+ opt_in For tracking during the 'optional' bit
+ optional Does this soulstone ask the victim whether they want to be turned into a shade
+ reusable Can this soul stone be used more than once?
+ spent If the soul stone can only be used once, has it been used?
+ usability Can this soul stone be used by anyone, or only cultists/wizards? Procs
+ attack Capturing
+ radial_check Custom construct icons for different cults
+ transfer_soul Proc for moving soul in and out off stone
+ Var Details animate_rays
+
+
+
+
+
+ Should we show rays? Triggered by a held body
opt_in
+
+
+
+
+
+ For tracking during the 'optional' bit
optional
+
+
+
+
+
+ Does this soulstone ask the victim whether they want to be turned into a shade
reusable
+
+
+
+
+
+ Can this soul stone be used more than once?
spent
+
+
+
+
+
+ If the soul stone can only be used once, has it been used?
usability
+
+
+
+
+
+ Can this soul stone be used by anyone, or only cultists/wizards?
Proc Details
+ Capturing
radial_check
+
+ Custom construct icons for different cults
transfer_soul
+
+ Proc for moving soul in and out off stone
+
+
+
diff --git a/obj/item/stack.html b/obj/item/stack.html
new file mode 100644
index 0000000000000..348920c2f49e3
--- /dev/null
+++ b/obj/item/stack.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /obj/item/stack - Space Station 13
+
+
+
+
+
+
+Vars
+ cost How much energy using 1 sheet from the stack costs. Used only with /cyborg
type stacks.
+ dynamic_icon_state If this stack has a dynamic icon_state based on amount / max_amount
+ energy_type Which robot_energy_storage
to choose when this stack is created in cyborgs. Used only with /cyborg
type stacks.
+ is_cyborg Whether this stack is a /cyborg
subtype or not.
+ merge_type This path and its children should merge with this stack, defaults to src.type
+ parent_stack if true, then this item can't stack with subtypes
+ recipes A list of recipes buildable with this stack.
+ source The storage datum that will be used with this stack. Used only with /cyborg
type stacks.
+ table_type What sort of table is made when applying this stack to a frame?
+ Var Details cost
+
+
+
+
+
+ How much energy using 1 sheet from the stack costs. Used only with /cyborg
type stacks.
dynamic_icon_state
+
+
+
+
+
+ If this stack has a dynamic icon_state based on amount / max_amount
energy_type
+
+
+
+
+
+ Which robot_energy_storage
to choose when this stack is created in cyborgs. Used only with /cyborg
type stacks.
is_cyborg
+
+
+
+
+
+ Whether this stack is a /cyborg
subtype or not.
merge_type
+
+
+
+
+
+ This path and its children should merge with this stack, defaults to src.type
parent_stack
+
+
+
+
+
+ if true, then this item can't stack with subtypes
recipes
+
+
+
+
+
+ A list of recipes buildable with this stack.
+ The storage datum that will be used with this stack. Used only with /cyborg
type stacks.
table_type
+
+
+
+
+
+ What sort of table is made when applying this stack to a frame?
+
+
+
diff --git a/obj/item/stack/cable_coil.html b/obj/item/stack/cable_coil.html
new file mode 100644
index 0000000000000..f3b65611a9804
--- /dev/null
+++ b/obj/item/stack/cable_coil.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/item/stack/cable_coil - Space Station 13
+
+
+
+
+
+
+Procs
+ cable_join called when cable_coil is click on an installed obj/cable or click on a turf that already contains a "node" cable
+ place_turf called when cable_coil is clicked on a turf/simulated/floor
Proc Details
+ called when cable_coil is click on an installed obj/cable or click on a turf that already contains a "node" cable
place_turf(/turf /T, /mob /user, cable_direction)
+
+
+
+
+
+ called when cable_coil is clicked on a turf/simulated/floor
+
+
+
diff --git a/obj/item/storage.html b/obj/item/storage.html
new file mode 100644
index 0000000000000..4c2c39ab25f7b
--- /dev/null
+++ b/obj/item/storage.html
@@ -0,0 +1,241 @@
+
+
+
+
+
+
+ /obj/item/storage - Space Station 13
+
+
+
+
+
+
+Vars
+ allow_quick_empty Set this variable to allow the object to have the 'empty' verb, which dumps all the contents on the floor.
+ allow_quick_gather Set this variable to allow the object to have the 'toggle mode' verb, which quickly collects all items from a tile.
+ can_hold List of objects which this item can store (if set, it can't store anything else)
+ cant_hold List of objects which this item can't store (in effect only if can_hold isn't set)
+ cant_hold_override List of objects which this item overrides the cant_hold list (used to negate cant_hold on specific items. Ex: Allowing Smuggler's Satchels (subtype of backpack) to be stored inside bags of holding.)
+ display_contents_with_number Set this to make the storage item group contents of the same type and display them as a number.
+ foldable What kind of /obj/item/stack can this be folded into. (e.g. Boxes and cardboard)
+ foldable_amt How much of the stack item do you get.
+ max_combined_w_class The sum of the w_classes of all the items in this storage item.
+ max_w_class Max size of objects that this object can store (in effect only if can_hold isn't set)
+ mobs_viewing Lazy list of mobs which are currently viewing the storage inventory.
+ pickup_all_on_tile Pick up one item at a time or everything on the tile
+ silent No message on putting items in.
+ storage_slots The number of storage slots in this container.
+ use_sound Sound played when used. null
for no sound.
+ use_to_pickup Set this to make it possible to use this item in an inverse way, so you can have the item in your hand and click items on the floor to pick them up.
+ w_class_override List of objects that can be stored, regardless of w_class Procs
+ can_be_inserted Checks whether I
can be inserted into the container.
+ handle_item_insertion Handles items being inserted into a storage container.
+ hide_from Hides the current container interface from user
.
+ hide_from_all Hides the current container interface from all viewers.
+ orient_objs Draws the inventory and places the items on it using custom positions.
+ populate_contents Populates the container with items
+ remove_from_storage Handles the removal of an item from a storage container.
+ return_inv Loops through any nested containers inside src
, and returns a list of everything inside them.
+ show_to Shows user
the contents of src
, and activates any mouse trap style triggers.
+ update_viewers Checks all mobs currently viewing the storage inventory, and hides it if they shouldn't be able to see it.
+ Var Details allow_quick_empty
+
+
+
+
+
+ Set this variable to allow the object to have the 'empty' verb, which dumps all the contents on the floor.
allow_quick_gather
+
+
+
+
+
+ Set this variable to allow the object to have the 'toggle mode' verb, which quickly collects all items from a tile.
can_hold
+
+
+
+
+
+ List of objects which this item can store (if set, it can't store anything else)
cant_hold
+
+
+
+
+
+ List of objects which this item can't store (in effect only if can_hold isn't set)
cant_hold_override
+
+
+
+
+
+ List of objects which this item overrides the cant_hold list (used to negate cant_hold on specific items. Ex: Allowing Smuggler's Satchels (subtype of backpack) to be stored inside bags of holding.)
display_contents_with_number
+
+
+
+
+
+ Set this to make the storage item group contents of the same type and display them as a number.
foldable
+
+
+
+
+
+ What kind of /obj/item/stack can this be folded into. (e.g. Boxes and cardboard)
foldable_amt
+
+
+
+
+
+ How much of the stack item do you get.
max_combined_w_class
+
+
+
+
+
+ The sum of the w_classes of all the items in this storage item.
max_w_class
+
+
+
+
+
+ Max size of objects that this object can store (in effect only if can_hold isn't set)
mobs_viewing
+
+
+
+
+
+ Lazy list of mobs which are currently viewing the storage inventory.
pickup_all_on_tile
+
+
+
+
+
+ Pick up one item at a time or everything on the tile
silent
+
+
+
+
+
+ No message on putting items in.
storage_slots
+
+
+
+
+
+ The number of storage slots in this container.
use_sound
+
+
+
+
+
+ Sound played when used. null
for no sound.
use_to_pickup
+
+
+
+
+
+ Set this to make it possible to use this item in an inverse way, so you can have the item in your hand and click items on the floor to pick them up.
w_class_override
+
+
+
+
+
+ List of objects that can be stored, regardless of w_class
Proc Details can_be_inserted
+
+ Checks whether I
can be inserted into the container.
+Returns TRUE
if it can, and FALSE
if it can't.
+Arguments:
+
+obj/item/I - The item to insert
+stop_messages - Don't display a warning message if the item can't be inserted
+ handle_item_insertion
+
+ Handles items being inserted into a storage container.
+This doesn't perform any checks of whether an item can be inserted. That's done by /obj/item/storage/proc/can_be_inserted
+Arguments:
+
+obj/item/I - The item to be inserted
+mob/user - The mob performing the insertion
+prevent_warning - Stop the insertion message being displayed. Intended for cases when you are inserting multiple items at once.
+ hide_from
+
+ Hides the current container interface from user
.
hide_from_all()
+
+
+
+
+
+ Hides the current container interface from all viewers.
orient_objs(tx, ty, mx, my)
+
+
+
+
+
+ Draws the inventory and places the items on it using custom positions.
+tx
and ty
are the upper left tile.
+mx
and my
are the bottom right tile.
+The numbers are calculated from the bottom left, with the bottom left being 1,1
.
populate_contents()
+
+
+
+
+
+ Populates the container with items
+Override with whatever you want to put in the container
remove_from_storage
+
+ Handles the removal of an item from a storage container.
+Arguments:
+
+obj/item/I - The item to be removed
+atom/new_location - The location to send the item to.
+ return_inv()
+
+
+
+
+
+ Loops through any nested containers inside src
, and returns a list of everything inside them.
+Currently checks for storage containers, gifts containing storage containers, and folders.
show_to
+
+ Shows user
the contents of src
, and activates any mouse trap style triggers.
update_viewers()
+
+
+
+
+
+ Checks all mobs currently viewing the storage inventory, and hides it if they shouldn't be able to see it.
+
+
+
diff --git a/obj/item/storage/backpack/duffel.html b/obj/item/storage/backpack/duffel.html
new file mode 100644
index 0000000000000..37af9e9c19758
--- /dev/null
+++ b/obj/item/storage/backpack/duffel.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/storage/backpack/duffel - Space Station 13
+
+
+
+
+
+
+Vars
+ antidrop_on_zip Do we want the bag to be antidropped when zipped up?
+ open_icon_sprite This variable is used to change the icon state to the variable when opened
+ open_item_sprite This variable is used to change the item state to the variable when opened
+ zip_time How long it takes to toggle the zip state of this bag
+ zipped Is the bag zipped up?
+ Var Details antidrop_on_zip
+
+
+
+
+
+ Do we want the bag to be antidropped when zipped up?
open_icon_sprite
+
+
+
+
+
+ This variable is used to change the icon state to the variable when opened
open_item_sprite
+
+
+
+
+
+ This variable is used to change the item state to the variable when opened
zip_time
+
+
+
+
+
+ How long it takes to toggle the zip state of this bag
zipped
+
+
+
+
+
+ Is the bag zipped up?
+
+
+
diff --git a/obj/item/storage/belt.html b/obj/item/storage/belt.html
new file mode 100644
index 0000000000000..66d6f010b8de8
--- /dev/null
+++ b/obj/item/storage/belt.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/storage/belt - Space Station 13
+
+
+
+
+
+
+Vars
+ large Ignores update_weight() if TRUE
+ layer_over_suit Belt goes over all suit slots if TRUE
+ storable Bypasses the "belt in bag" prevention if TRUE
+ use_item_overlays Do we have overlays for items held inside the belt?
+ Var Details large
+
+
+
+
+
+ Ignores update_weight() if TRUE
layer_over_suit
+
+
+
+
+
+ Belt goes over all suit slots if TRUE
storable
+
+
+
+
+
+ Bypasses the "belt in bag" prevention if TRUE
use_item_overlays
+
+
+
+
+
+ Do we have overlays for items held inside the belt?
+
+
+
diff --git a/obj/item/storage/bible.html b/obj/item/storage/bible.html
new file mode 100644
index 0000000000000..cf4c873c3ef34
--- /dev/null
+++ b/obj/item/storage/bible.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/storage/bible - Space Station 13
+
+
+
+
+
+
+Vars
+ bible_variants Associative list of accociative lists of bible variants, used for the radial menu
+ customisable Is the sprite of this bible customisable
+ Var Details bible_variants
+
+
+
+
+
+ Associative list of accociative lists of bible variants, used for the radial menu
customisable
+
+
+
+
+
+ Is the sprite of this bible customisable
+
+
+
diff --git a/obj/item/storage/box/syndie_kit/contractor.html b/obj/item/storage/box/syndie_kit/contractor.html
new file mode 100644
index 0000000000000..393aee8198510
--- /dev/null
+++ b/obj/item/storage/box/syndie_kit/contractor.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /obj/item/storage/box/syndie_kit/contractor - Space Station 13
+
+
+
+
+
+
+
+ Var Details item_list
+
+
+
+
+
+ Items that may be part of the random items given to a contractor as part of their kit.
+Ideally all about 5 TC or less and fit the theme. Some of these are nukeops only.
+One item may show up only once.
num_additional_items
+
+
+
+
+
+ Amount of random items to be added to the contractor kit.
+See /obj/item/storage/box/syndie_kit/contractor/var/item_list for the available items.
+
+
+
diff --git a/obj/item/storage/pill_bottle.html b/obj/item/storage/pill_bottle.html
new file mode 100644
index 0000000000000..b19dcc4dc23c7
--- /dev/null
+++ b/obj/item/storage/pill_bottle.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/storage/pill_bottle - Space Station 13
+
+
+
+
+
+
+
+ Var Details allow_wrap
+
+
+
+
+
+ Whether to render a coloured wrapper overlay on the icon.
wrapper_color
+
+
+
+
+
+ The color of the wrapper overlay.
wrapper_state
+
+
+
+
+
+ The icon state of the wrapper overlay.
+
+
+
diff --git a/obj/item/storage/secure.html b/obj/item/storage/secure.html
new file mode 100644
index 0000000000000..b6287c40213b3
--- /dev/null
+++ b/obj/item/storage/secure.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/storage/secure - Space Station 13
+
+
+
+
+
+
+
+ Var Details code
+
+
+
+
+
+ What is our code to open?
enter_spam
+
+
+
+
+
+ Stops people from spamming enter like an idiot
locked
+
+
+
+
+
+ Are we locked?
panel_open
+
+
+
+
+
+ Is our hacking panel open?
user_entered_code
+
+
+
+
+
+ What has the user entered to guess the code
+
+
+
diff --git a/obj/item/storm_staff.html b/obj/item/storm_staff.html
new file mode 100644
index 0000000000000..85186707462b8
--- /dev/null
+++ b/obj/item/storm_staff.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/storm_staff - Space Station 13
+
+
+
+
+
+
+Vars
+ targeted_turfs This is a list of turfs currently being targeted.
+ Var Details targeted_turfs
+
+
+
+
+
+ This is a list of turfs currently being targeted.
+
+
+
diff --git a/obj/item/supermatter_halberd.html b/obj/item/supermatter_halberd.html
new file mode 100644
index 0000000000000..d037353d57f94
--- /dev/null
+++ b/obj/item/supermatter_halberd.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/supermatter_halberd - Space Station 13
+
+
+
+
+
+
+Supermatter Halberd, used by Oblivion Enforcers
Vars
+ charged Whether we'll knockdown on hit
+ Var Details charged
+
+
+
+
+
+ Whether we'll knockdown on hit
+
+
+
diff --git a/obj/item/taperecorder.html b/obj/item/taperecorder.html
new file mode 100644
index 0000000000000..1c9f01ef1ea36
--- /dev/null
+++ b/obj/item/taperecorder.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/taperecorder - Space Station 13
+
+
+
+
+
+
+Vars
+ cooldown The next worldtime we'll be able to print
+ mytape The tape we are recording to
+ playing If its playing back auto via atom_say
+ playsleepseconds The amount of time between something said during playback
+ recording If its currently recording
+ soundloop Sound loop that plays when recording or playing back.
+ Var Details cooldown
+
+
+
+
+
+ The next worldtime we'll be able to print
mytape
+
+
+
+
+
+ The tape we are recording to
playing
+
+
+
+
+
+ If its playing back auto via atom_say
playsleepseconds
+
+
+
+
+
+ The amount of time between something said during playback
recording
+
+
+
+
+
+ If its currently recording
soundloop
+
+
+
+
+
+ Sound loop that plays when recording or playing back.
+
+
+
diff --git a/obj/item/tarot_card_pack.html b/obj/item/tarot_card_pack.html
new file mode 100644
index 0000000000000..07847d02935c5
--- /dev/null
+++ b/obj/item/tarot_card_pack.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tarot_card_pack - Space Station 13
+
+
+
+
+
+
+Vars
+ cards How many cards in a pack. 3 in base, 5 in jumbo, 7 in mega
+ Var Details cards
+
+
+
+
+
+ How many cards in a pack. 3 in base, 5 in jumbo, 7 in mega
+
+
+
diff --git a/obj/item/tarot_generator.html b/obj/item/tarot_generator.html
new file mode 100644
index 0000000000000..3c83329b8ac61
--- /dev/null
+++ b/obj/item/tarot_generator.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/tarot_generator - Space Station 13
+
+
+
+
+
+
+Vars
+ maximum_cards What is the maximum number of cards the tarot generator can have in the world at a time?
+ our_card_cooldown_time How long the cooldown is each time we draw a card before we can draw another?
+ our_card_list List of cards we have created, to check against maximum, and so we can purge them from the pack.
+ Var Details maximum_cards
+
+
+
+
+
+ What is the maximum number of cards the tarot generator can have in the world at a time?
our_card_cooldown_time
+
+
+
+
+
+ How long the cooldown is each time we draw a card before we can draw another?
our_card_list
+
+
+
+
+
+ List of cards we have created, to check against maximum, and so we can purge them from the pack.
+
+
+
diff --git a/obj/item/thermal_drill.html b/obj/item/thermal_drill.html
new file mode 100644
index 0000000000000..53301059aa498
--- /dev/null
+++ b/obj/item/thermal_drill.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ /obj/item/thermal_drill - Space Station 13
+
+
+
+
+
+
+Proc Details should_stop_playing
+
+ Whether the instrument should stop playing
+Arguments:
+
+
+
+
diff --git a/obj/item/toy/crayon.html b/obj/item/toy/crayon.html
new file mode 100644
index 0000000000000..b088de1adec96
--- /dev/null
+++ b/obj/item/toy/crayon.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/toy/crayon - Space Station 13
+
+
+
+
+
+
+Vars
+ max_bites How many times a crayon can be bitten before being depleted. You eated it
+ preset_message The stored message in the crayon.
+ preset_message_index The index of the character in the message that will be drawn next.
+ times_eaten How many times this crayon has been gnawed on
+ Var Details max_bites
+
+
+
+
+
+ How many times a crayon can be bitten before being depleted. You eated it
preset_message
+
+
+
+
+
+ The stored message in the crayon.
preset_message_index
+
+
+
+
+
+ The index of the character in the message that will be drawn next.
times_eaten
+
+
+
+
+
+ How many times this crayon has been gnawed on
+
+
+
diff --git a/obj/item/toy/sword/chaosprank.html b/obj/item/toy/sword/chaosprank.html
new file mode 100644
index 0000000000000..7634750221a9a
--- /dev/null
+++ b/obj/item/toy/sword/chaosprank.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/toy/sword/chaosprank - Space Station 13
+
+
+
+
+
+
+Vars
+ pranked Sets to TRUE once the character using it hits something and realises it's not a real energy sword
+ Var Details pranked
+
+
+
+
+
+ Sets to TRUE once the character using it hits something and realises it's not a real energy sword
+
+
+
diff --git a/obj/item/uplink.html b/obj/item/uplink.html
new file mode 100644
index 0000000000000..39d217ec5de1b
--- /dev/null
+++ b/obj/item/uplink.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ /obj/item/uplink - Space Station 13
+
+
+
+
+
+
+Vars
+ is_jammed Whether the uplink is jammed and cannot be used to order items.
+ uplink_cats List of categories with items inside
+ uplink_items List of all items in total (For buying random) Procs
+ generate_item_lists Build the item lists for use with the UI
+ Var Details is_jammed
+
+
+
+
+
+ Whether the uplink is jammed and cannot be used to order items.
uplink_cats
+
+
+
+
+
+ List of categories with items inside
uplink_items
+
+
+
+
+
+ List of all items in total (For buying random)
Proc Details generate_item_lists
+
+ Build the item lists for use with the UI
+Generates a list of items for use in the UI, based on job, species and other parameters
+Arguments:
+
+
+
+
diff --git a/obj/item/uplink/hidden.html b/obj/item/uplink/hidden.html
new file mode 100644
index 0000000000000..3f4246c965601
--- /dev/null
+++ b/obj/item/uplink/hidden.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/uplink/hidden - Space Station 13
+
+
+
+
+
+
+Vars
+ cached_cart A cached version of shopping_cart containing all the data for the tgui side
+ lucky_numbers A list of 3 categories and item indexes in uplink_cats, to show as recommendedations
+ shopping_cart An assoc list of references (the variable called reference on an uplink item) and its value being how many of the item
+ Var Details cached_cart
+
+
+
+
+
+ A cached version of shopping_cart containing all the data for the tgui side
lucky_numbers
+
+
+
+
+
+ A list of 3 categories and item indexes in uplink_cats, to show as recommendedations
+ An assoc list of references (the variable called reference on an uplink item) and its value being how many of the item
+
+
+
diff --git a/obj/item/watcher_hatchling.html b/obj/item/watcher_hatchling.html
new file mode 100644
index 0000000000000..0fe99ad44d7c0
--- /dev/null
+++ b/obj/item/watcher_hatchling.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/watcher_hatchling - Space Station 13
+
+
+
+
+
+
+A cute pet who will occasionally attack lavaland mobs for you
Vars
+ orbiter The effect we create when out and about
+ owner Who are we orbiting? Procs
+ our_remove_orbiter In the more likely event that our orbiter is deleted, stop holding a reference to it
+ remove_owner If the guy we are orbiting is deleted but somehow we aren't
+ watcher_return Get back in your ball pikachu
+ Var Details
+ The effect we create when out and about
owner
+
+
+
+
+
+ Who are we orbiting?
Proc Details our_remove_orbiter()
+
+
+
+
+
+ In the more likely event that our orbiter is deleted, stop holding a reference to it
remove_owner()
+
+
+
+
+
+ If the guy we are orbiting is deleted but somehow we aren't
watcher_return()
+
+
+
+
+
+ Get back in your ball pikachu
+
+
+
diff --git a/obj/item/weaponcrafting/gunkit.html b/obj/item/weaponcrafting/gunkit.html
new file mode 100644
index 0000000000000..e3556bdbf47b5
--- /dev/null
+++ b/obj/item/weaponcrafting/gunkit.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/weaponcrafting/gunkit - Space Station 13
+
+
+
+
+
+
+These gun kits are printed from the protolathe to then be used in making new weapons
Vars
+ outcome What gun do we produce? Used by the universal gunkit.
+ Var Details outcome
+
+
+
+
+
+ What gun do we produce? Used by the universal gunkit.
+
+
+
diff --git a/obj/machinery.html b/obj/machinery.html
new file mode 100644
index 0000000000000..945784ba02408
--- /dev/null
+++ b/obj/machinery.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+ /obj/machinery - Space Station 13
+
+
+
+
+
+
+Vars
+ active_power_consumption How much power does this machine consume when it is in use
+ being_repaired This is if the machinery is being repaired
+ idle_power_consumption How much power does this machine consume when it is idling
+ machine_powernet The powernet this machine is connected to
+ power_channel The power channel this machine uses, idle/passive power consumption will pull from this channel and machine won't work if power channel has no power
+ power_state How is this machine currently passively consuming power?
+ siemens_strength how badly will it shock you? Procs
+ can_use_shortcut Makes sure the user is allowed to interact with the machine when they use a shortcut, like Control or Alt-clicking.
+ change_power_mode Helper proc to change the machines power usage mode, automatically adjusts static power usage to maintain perfect parity
+ has_power POWER RELATED PROCS
+ try_attack_hand Preprocess machinery interaction.
+ Var Details active_power_consumption
+
+
+
+
+
+ How much power does this machine consume when it is in use
being_repaired
+
+
+
+
+
+ This is if the machinery is being repaired
idle_power_consumption
+
+
+
+
+
+ How much power does this machine consume when it is idling
+ The powernet this machine is connected to
power_channel
+
+
+
+
+
+ The power channel this machine uses, idle/passive power consumption will pull from this channel and machine won't work if power channel has no power
power_state
+
+
+
+
+
+ How is this machine currently passively consuming power?
siemens_strength
+
+
+
+
+
+ how badly will it shock you?
Proc Details can_use_shortcut
+
+ Makes sure the user is allowed to interact with the machine when they use a shortcut, like Control or Alt-clicking.
+Arguments:
+
+user - the mob who is trying to interact with the machine.
+ change_power_mode(use_type)
+
+
+
+
+
+ Helper proc to change the machines power usage mode, automatically adjusts static power usage to maintain perfect parity
has_power(channel)
+
+
+
+
+
+ POWER RELATED PROCS
try_attack_hand
+
+ Preprocess machinery interaction.
+If overriding and extending interaction limitations, better call this with ..()
+unless you really know what you are doing.
+Returns TRUE when interaction is done due to different limitations and nothing should be done next.
+Returns FALSE when interaction can be continued.
+Arguments:
+
+user - the mob interacting with this machinery
+
+
+
+
diff --git a/obj/machinery/access_button.html b/obj/machinery/access_button.html
new file mode 100644
index 0000000000000..6150a6bdd0605
--- /dev/null
+++ b/obj/machinery/access_button.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/access_button - Space Station 13
+
+
+
+
+
+
+Vars
+ assigned_command Command, whether this button cycles in or out. This is /tmp/ so mappers dont try and define it in a map. Its assigned at runtime.
+ autolink_id Id to be used by the controller to grab us on spawn
+ controller_uid UID of the airlock controller that owns us
+ Var Details assigned_command
+
+
+
+
+
+ Command, whether this button cycles in or out. This is /tmp/ so mappers dont try and define it in a map. Its assigned at runtime.
autolink_id
+
+
+
+
+
+ Id to be used by the controller to grab us on spawn
controller_uid
+
+
+
+
+
+ UID of the airlock controller that owns us
+
+
+
diff --git a/obj/machinery/ai_status_display.html b/obj/machinery/ai_status_display.html
new file mode 100644
index 0000000000000..74e90ad058a1f
--- /dev/null
+++ b/obj/machinery/ai_status_display.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/ai_status_display - Space Station 13
+
+
+
+
+
+
+Vars
+ emotion Current emotion, used to calculate an icon state
+ mode Current mode
+ Var Details emotion
+
+
+
+
+
+ Current emotion, used to calculate an icon state
mode
+
+
+
+
+
+ Current mode
+
+
+
diff --git a/obj/machinery/airlock_controller.html b/obj/machinery/airlock_controller.html
new file mode 100644
index 0000000000000..a4cbded86fa6e
--- /dev/null
+++ b/obj/machinery/airlock_controller.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/machinery/airlock_controller - Space Station 13
+
+
+
+
+
+
+Vars
+ ext_button_link_id Button ID for all exterior buttons to link to on LateInitialize()
+ ext_door_link_id Airlock ID for all exterior doors to link to on LateInitialize()
+ exterior_doors All exterior doors to control. Soft-refs only.
+ int_button_link_id Vutton ID for all exterior buttons to link to on LateInitialize()
+ int_door_link_id Airlock ID for all interior doors to link to on LateInitialize()
+ interior_doors All interior doors to control. Soft-refs only.
+ state Current state (IDLE, PREPARE, DEPRESSURIZE, PRESSURIZE)
+ target_state Target state (MONE, INOPEN, OUTOPEN)
+ vent_link_id Vent ID for all vents to link to on LateInitialize()
+ vents All vents to control. Soft-refs only.
+ Var Details
+ Button ID for all exterior buttons to link to on LateInitialize()
ext_door_link_id
+
+
+
+
+
+ Airlock ID for all exterior doors to link to on LateInitialize()
exterior_doors
+
+
+
+
+
+ All exterior doors to control. Soft-refs only.
+ Vutton ID for all exterior buttons to link to on LateInitialize()
int_door_link_id
+
+
+
+
+
+ Airlock ID for all interior doors to link to on LateInitialize()
interior_doors
+
+
+
+
+
+ All interior doors to control. Soft-refs only.
state
+
+
+
+
+
+ Current state (IDLE, PREPARE, DEPRESSURIZE, PRESSURIZE)
target_state
+
+
+
+
+
+ Target state (MONE, INOPEN, OUTOPEN)
vent_link_id
+
+
+
+
+
+ Vent ID for all vents to link to on LateInitialize()
vents
+
+
+
+
+
+ All vents to control. Soft-refs only.
+
+
+
diff --git a/obj/machinery/atmospherics.html b/obj/machinery/atmospherics.html
new file mode 100644
index 0000000000000..47cd74dff379e
--- /dev/null
+++ b/obj/machinery/atmospherics.html
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+ /obj/machinery/atmospherics - Space Station 13
+
+
+
+
+
+
+Vars
+ autolink_id ID for automatic linkage of stuff. This is used to assist in connections at mapload. Dont try use it for other stuff
+ can_be_undertile Can this be put under a tile?
+ can_unwrench Can this be unwrenched?
+ connect_types Type of pipes this machine can connect to
+ connected_to What this machine is connected to
+ icon_connect_type Icon suffix for connection, can be "-supply" or "-scrubbers"
+ initialize_directions Directions to initialize in to grab pipes
+ on If the machine is currently operating or not.
+ pipe_color Pipe colour, not used for all subtypes
+ pipe_image Pipe image, not used for all subtypes
+ target_pressure The amount of pressure the machine wants to operate at. Procs
+ is_pipenet_split Whether or not this atmos machine has multiple pipenets attached to it
+Used to determine if a ventcrawler should update their vision or not
+ set_max Maxes the output pressure of the machine. If this is done by a user, display a message to them.
+ toggle Turns the machine either on, or off. If this is done by a user, display a message to them.
+ Var Details autolink_id
+
+
+
+
+
+ ID for automatic linkage of stuff. This is used to assist in connections at mapload. Dont try use it for other stuff
can_be_undertile
+
+
+
+
+
+ Can this be put under a tile?
can_unwrench
+
+
+
+
+
+ Can this be unwrenched?
connect_types
+
+
+
+
+
+ Type of pipes this machine can connect to
connected_to
+
+
+
+
+
+ What this machine is connected to
icon_connect_type
+
+
+
+
+
+ Icon suffix for connection, can be "-supply" or "-scrubbers"
initialize_directions
+
+
+
+
+
+ Directions to initialize in to grab pipes
on
+
+
+
+
+
+ If the machine is currently operating or not.
pipe_color
+
+
+
+
+
+ Pipe colour, not used for all subtypes
pipe_image
+
+
+
+
+
+ Pipe image, not used for all subtypes
target_pressure
+
+
+
+
+
+ The amount of pressure the machine wants to operate at.
Proc Details is_pipenet_split()
+
+
+
+
+
+ Whether or not this atmos machine has multiple pipenets attached to it
+Used to determine if a ventcrawler should update their vision or not
set_max
+
+ Maxes the output pressure of the machine. If this is done by a user, display a message to them.
+NOTE: Only applies to atmospherics machines which allow a target_pressure
to be set, such as pumps, or other devices.
+Arguments:
+
+user - the mob who is setting the output pressure to maximum.
+ toggle
+
+ Turns the machine either on, or off. If this is done by a user, display a message to them.
+NOTE: Only applies to atmospherics machines which can be toggled on or off, such as pumps, or other devices.
+Arguments:
+
+user - the mob who is toggling the machine.
+
+
+
+
diff --git a/obj/machinery/atmospherics/binary/circulator.html b/obj/machinery/atmospherics/binary/circulator.html
new file mode 100644
index 0000000000000..21b8841b8ec17
--- /dev/null
+++ b/obj/machinery/atmospherics/binary/circulator.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/atmospherics/binary/circulator - Space Station 13
+
+
+
+
+
+
+Vars
+ generator The Thermo-Electric Generator this circulator is connected to
+ Var Details
+ The Thermo-Electric Generator this circulator is connected to
+
+
+
diff --git a/obj/machinery/atmospherics/portable/pump.html b/obj/machinery/atmospherics/portable/pump.html
new file mode 100644
index 0000000000000..4130c499c696c
--- /dev/null
+++ b/obj/machinery/atmospherics/portable/pump.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/atmospherics/portable/pump - Space Station 13
+
+
+
+
+
+
+Vars
+ direction The direction the pump is operating in. This should be either DIRECTION_IN
or DIRECTION_OUT
.
+ target_pressure The desired pressure the pump should be outputting, either into the atmosphere, or into a holding tank.
+ Var Details direction
+
+
+
+
+
+ The direction the pump is operating in. This should be either DIRECTION_IN
or DIRECTION_OUT
.
target_pressure
+
+
+
+
+
+ The desired pressure the pump should be outputting, either into the atmosphere, or into a holding tank.
+
+
+
diff --git a/obj/machinery/atmospherics/portable/scrubber.html b/obj/machinery/atmospherics/portable/scrubber.html
new file mode 100644
index 0000000000000..7406c4923595d
--- /dev/null
+++ b/obj/machinery/atmospherics/portable/scrubber.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/atmospherics/portable/scrubber - Space Station 13
+
+
+
+
+
+
+Vars
+ volume_rate The volume of gas that can be scrubbed every time process_atmos()
is called (0.5 seconds).
+ widenet Is this scrubber acting on the 3x3 area around it.
+ Var Details volume_rate
+
+
+
+
+
+ The volume of gas that can be scrubbed every time process_atmos()
is called (0.5 seconds).
widenet
+
+
+
+
+
+ Is this scrubber acting on the 3x3 area around it.
+
+
+
diff --git a/obj/machinery/atmospherics/supermatter_crystal.html b/obj/machinery/atmospherics/supermatter_crystal.html
new file mode 100644
index 0000000000000..d3f01c8fab4f4
--- /dev/null
+++ b/obj/machinery/atmospherics/supermatter_crystal.html
@@ -0,0 +1,393 @@
+
+
+
+
+
+
+ /obj/machinery/atmospherics/supermatter_crystal - Space Station 13
+
+
+
+
+
+
+Vars
+ bullet_energy How much the bullets damage should be multiplied by when it is added to the internal variables
+ combined_gas The last air sample's total molar count, will always be above or equal to 0
+ countdown An effect we show to admins and ghosts the percentage of delam we're at
+ damage The amount of damage we have currently
+ damage_archived The damage we had before this cycle. Used to limit the damage we can take each cycle, and for safe_alert
+ damage_penalty_point When we pass this amount of damage we start shooting bolts
+ darkness_effects This list will hold 4 supermatter darkness effects when the supermatter is delaminating to a singulo delam. This lets me darken the area to look better, as it turns out, walls make the effect look ugly as shit.
+ dynamic_heat_modifier Affects the amount of o2 and plasma the sm outputs, along with the heat it makes.
+ dynamic_heat_resistance Affects the amount of damage and minimum point at which the sm takes heat damage
+ emergency_alert The alert we send when we've reached emergency_point
+ emergency_point The point at which we start sending messages to the common channel
+ event_active Do we have an active event?
+ explosion_point The point at which we delam
+ explosion_power A scaling value that affects the severity of explosions.
+ final_countdown Are we exploding?
+ gas_change_rate Determines the rate of positve change in gas comp values
+ gas_multiplier flat multiplies the amount of gas released by the SM.
+ gasefficency The portion of the gasmix we're on that we should remove
+ gasmix_power_ratio Affects the power gain the sm experiances from heat
+ global_supermatter_id The amount of supermatters that have been created this round
+ hallucination_power How much hallucination should we produce per unit of power?
+ has_been_powered Boolean used for logging if we've been powered
+ has_reached_emergency Boolean used for logging if we've passed the emergency point
+ has_run_sclass Run S-Class event? So we can only run one S-class event per round per crystal
+ heat_multiplier flat multiplies the heat released by the SM
+ heat_penalty_threshold value plus T0C = temp at which the SM starts to take damage. Variable for event usage
+ is_main_engine Used to track if we can give out the sm sliver stealing objective
+ last_accent_sound cooldown tracker for accent sounds
+ lastwarning Time in 1/10th of seconds since the last sent warning
+ matter_power Takes the energy throwing things into the sm generates and slowly turns it into actual power
+ mole_heat_penalty Used to increase or lessen the amount of damage the sm takes from heat based on molar counts.
+ moveable Can it be moved?
+ next_event_time Time of next event
+ power Refered to as eer on the moniter. This value effects gas output, heat, damage, and radiation.
+ power_additive amount of EER to ADD
+ power_changes Disables power changes
+ power_transmission_bonus Affects the amount of radiation the sm makes. We multiply this with power to find the rads.
+ powerloss_dynamic_scaling Based on co2 percentage, slowly moves between 0 and 1. We use it to calc the powerloss_inhibitor
+ powerloss_inhibitor Uses powerloss_dynamic_scaling and combined_gas to lessen the effects of our powerloss functions
+ processes Disables the sm's proccessing totally.
+ produces_gas Disables the production of gas, and pretty much any handling of it we do.
+ pulse_stage A variable to have the warp effect for singulo SM work properly
+ radio Our internal radio
+ safe_alert Our "Shit is no longer fucked" message. We send it when damage is less then damage_archived
+ soundloop Our soundloop
+ supermatter_id The id of our supermatter
+ takes_damage Disables all methods of taking damage
+ warning_alert The alert we send when we've reached warning_point
+ warning_point The point at which we should start sending messeges about the damage to the engi channels.
+ warp Reference to the warp effect
+ zap_cutoff The cutoff for a bolt jumping, grows with heat, lowers with higher mol count,
+ zap_icon Tracks the bolt color we are using
+ Var Details bullet_energy
+
+
+
+
+
+ How much the bullets damage should be multiplied by when it is added to the internal variables
combined_gas
+
+
+
+
+
+ The last air sample's total molar count, will always be above or equal to 0
+ An effect we show to admins and ghosts the percentage of delam we're at
damage
+
+
+
+
+
+ The amount of damage we have currently
damage_archived
+
+
+
+
+
+ The damage we had before this cycle. Used to limit the damage we can take each cycle, and for safe_alert
damage_penalty_point
+
+
+
+
+
+ When we pass this amount of damage we start shooting bolts
darkness_effects
+
+
+
+
+
+ This list will hold 4 supermatter darkness effects when the supermatter is delaminating to a singulo delam. This lets me darken the area to look better, as it turns out, walls make the effect look ugly as shit.
dynamic_heat_modifier
+
+
+
+
+
+ Affects the amount of o2 and plasma the sm outputs, along with the heat it makes.
dynamic_heat_resistance
+
+
+
+
+
+ Affects the amount of damage and minimum point at which the sm takes heat damage
emergency_alert
+
+
+
+
+
+ The alert we send when we've reached emergency_point
emergency_point
+
+
+
+
+
+ The point at which we start sending messages to the common channel
+ Do we have an active event?
explosion_point
+
+
+
+
+
+ The point at which we delam
explosion_power
+
+
+
+
+
+ A scaling value that affects the severity of explosions.
final_countdown
+
+
+
+
+
+ Are we exploding?
gas_change_rate
+
+
+
+
+
+ Determines the rate of positve change in gas comp values
gas_multiplier
+
+
+
+
+
+ flat multiplies the amount of gas released by the SM.
gasefficency
+
+
+
+
+
+ The portion of the gasmix we're on that we should remove
gasmix_power_ratio
+
+
+
+
+
+ Affects the power gain the sm experiances from heat
global_supermatter_id
+
+
+
+
+
+ The amount of supermatters that have been created this round
hallucination_power
+
+
+
+
+
+ How much hallucination should we produce per unit of power?
has_been_powered
+
+
+
+
+
+ Boolean used for logging if we've been powered
has_reached_emergency
+
+
+
+
+
+ Boolean used for logging if we've passed the emergency point
has_run_sclass
+
+
+
+
+
+ Run S-Class event? So we can only run one S-class event per round per crystal
heat_multiplier
+
+
+
+
+
+ flat multiplies the heat released by the SM
heat_penalty_threshold
+
+
+
+
+
+ value plus T0C = temp at which the SM starts to take damage. Variable for event usage
is_main_engine
+
+
+
+
+
+ Used to track if we can give out the sm sliver stealing objective
last_accent_sound
+
+
+
+
+
+ cooldown tracker for accent sounds
lastwarning
+
+
+
+
+
+ Time in 1/10th of seconds since the last sent warning
matter_power
+
+
+
+
+
+ Takes the energy throwing things into the sm generates and slowly turns it into actual power
mole_heat_penalty
+
+
+
+
+
+ Used to increase or lessen the amount of damage the sm takes from heat based on molar counts.
moveable
+
+
+
+
+
+ Can it be moved?
next_event_time
+
+
+
+
+
+ Time of next event
power
+
+
+
+
+
+ Refered to as eer on the moniter. This value effects gas output, heat, damage, and radiation.
power_additive
+
+
+
+
+
+ amount of EER to ADD
power_changes
+
+
+
+
+
+ Disables power changes
power_transmission_bonus
+
+
+
+
+
+ Affects the amount of radiation the sm makes. We multiply this with power to find the rads.
powerloss_dynamic_scaling
+
+
+
+
+
+ Based on co2 percentage, slowly moves between 0 and 1. We use it to calc the powerloss_inhibitor
powerloss_inhibitor
+
+
+
+
+
+ Uses powerloss_dynamic_scaling and combined_gas to lessen the effects of our powerloss functions
processes
+
+
+
+
+
+ Disables the sm's proccessing totally.
produces_gas
+
+
+
+
+
+ Disables the production of gas, and pretty much any handling of it we do.
pulse_stage
+
+
+
+
+
+ A variable to have the warp effect for singulo SM work properly
+ Our internal radio
safe_alert
+
+
+
+
+
+ Our "Shit is no longer fucked" message. We send it when damage is less then damage_archived
soundloop
+
+
+
+
+
+ Our soundloop
supermatter_id
+
+
+
+
+
+ The id of our supermatter
takes_damage
+
+
+
+
+
+ Disables all methods of taking damage
warning_alert
+
+
+
+
+
+ The alert we send when we've reached warning_point
warning_point
+
+
+
+
+
+ The point at which we should start sending messeges about the damage to the engi channels.
warp
+ – /obj /effect/warp_effect/supermatter
+
+
+
+
+ Reference to the warp effect
zap_cutoff
+
+
+
+
+
+ The cutoff for a bolt jumping, grows with heat, lowers with higher mol count,
zap_icon
+
+
+
+
+
+ Tracks the bolt color we are using
+
+
+
diff --git a/obj/machinery/atmospherics/trinary/filter.html b/obj/machinery/atmospherics/trinary/filter.html
new file mode 100644
index 0000000000000..529b076947c31
--- /dev/null
+++ b/obj/machinery/atmospherics/trinary/filter.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/atmospherics/trinary/filter - Space Station 13
+
+
+
+
+
+
+Vars
+ filter_list A list of available filter options. Used with ui_data
.
+ filter_type The type of gas we want to filter. Valid values that go here are from the FILTER
defines at the top of the file.
+ Var Details filter_list
+
+
+
+
+
+ A list of available filter options. Used with ui_data
.
filter_type
+
+
+
+
+
+ The type of gas we want to filter. Valid values that go here are from the FILTER
defines at the top of the file.
+
+
+
diff --git a/obj/machinery/atmospherics/unary.html b/obj/machinery/atmospherics/unary.html
new file mode 100644
index 0000000000000..48c841363218b
--- /dev/null
+++ b/obj/machinery/atmospherics/unary.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/atmospherics/unary - Space Station 13
+
+
+
+
+
+
+Vars
+ air_contents The current air contents of this device
+ node Our one pipe node (we're unary)
+ parent The pipenet we are plugged into
+ Var Details
+ The current air contents of this device
+ Our one pipe node (we're unary)
parent
+
+
+
+
+
+ The pipenet we are plugged into
+
+
+
diff --git a/obj/machinery/atmospherics/unary/cryo_cell.html b/obj/machinery/atmospherics/unary/cryo_cell.html
new file mode 100644
index 0000000000000..44004d938963c
--- /dev/null
+++ b/obj/machinery/atmospherics/unary/cryo_cell.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/machinery/atmospherics/unary/cryo_cell - Space Station 13
+
+
+
+
+
+
+Vars
+ auto_eject_prefs Holds two bitflags, AUTO_EJECT_DEAD and AUTO_EJECT_HEALTHY. Used to determine if the cryo cell will auto-eject dead and/or completely healthy patients.
+ occupant_overlay A separate effect for the occupant, as you can't animate overlays reliably and constantly removing and adding overlays is spamming the subsystem.
+ removal_timer Timer that we use to remove people that are in us for too long Procs
+ auto_eject Called when either the occupant is dead and the AUTO_EJECT_DEAD flag is present, OR the occupant is alive, has no external damage, and the AUTO_EJECT_HEALTHY flag is present.
+ Var Details auto_eject_prefs
+
+
+
+
+
+ Holds two bitflags, AUTO_EJECT_DEAD and AUTO_EJECT_HEALTHY. Used to determine if the cryo cell will auto-eject dead and/or completely healthy patients.
occupant_overlay
+
+
+
+
+
+ A separate effect for the occupant, as you can't animate overlays reliably and constantly removing and adding overlays is spamming the subsystem.
removal_timer
+
+
+
+
+
+ Timer that we use to remove people that are in us for too long
Proc Details auto_eject(eject_flag)
+
+
+
+
+
+ Called when either the occupant is dead and the AUTO_EJECT_DEAD flag is present, OR the occupant is alive, has no external damage, and the AUTO_EJECT_HEALTHY flag is present.
+
+
+
diff --git a/obj/machinery/atmospherics/unary/tank.html b/obj/machinery/atmospherics/unary/tank.html
new file mode 100644
index 0000000000000..167c1bfc22a2f
--- /dev/null
+++ b/obj/machinery/atmospherics/unary/tank.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/atmospherics/unary/tank - Space Station 13
+
+
+
+
+
+
+Vars
+ volume in liters, 1 meters by 1 meters by 2 meters
+ Var Details volume
+
+
+
+
+
+ in liters, 1 meters by 1 meters by 2 meters
+
+
+
diff --git a/obj/machinery/atmospherics/unary/thermomachine.html b/obj/machinery/atmospherics/unary/thermomachine.html
new file mode 100644
index 0000000000000..919bc1987f974
--- /dev/null
+++ b/obj/machinery/atmospherics/unary/thermomachine.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/atmospherics/unary/thermomachine - Space Station 13
+
+
+
+
+
+
+Vars
+ min_temperature actual temperature will be defined by RefreshParts() and by the cooling var
+ Var Details min_temperature
+
+
+
+
+
+ actual temperature will be defined by RefreshParts() and by the cooling var
+
+
+
diff --git a/obj/machinery/biogenerator.html b/obj/machinery/biogenerator.html
new file mode 100644
index 0000000000000..b092749db2330
--- /dev/null
+++ b/obj/machinery/biogenerator.html
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+ /obj/machinery/biogenerator - Space Station 13
+
+
+
+
+
+
+Vars
+ biomass The amount of biomass stored in the machine.
+ categories The /datum/design 's categories which can be produced by this machine and can be uploaded via a disk.
+ container The container that is used to store reagents from certain products.
+ efficiency Used to modify the cost of producing items. A higher number means cheaper costs.
+ files A reference to the biogenerator's research, which contains designs that it can build.
+ max_storable_plants The maximum amount of plants the biogenerator can store.
+ processing Is the biogenerator curretly grinding up plants?
+ product_list A list which holds all categories and items the biogenator has available. Used with the UI to save having to rebuild this every time someone opens it.
+ productivity Used to modify how much biomass is produced by grinding plants. A higher number means more biomass.
+ stored_plants A list of plants currently stored plants in the biogenerator. Procs
+ check_container_volume Check if the biogenerator's container
can hold the reagents we're trying to give it.
+ check_cost Check if the biogenerator has enough biomass to create the passed in design D
, times the mutiplier
.
+ create_product Create biogenerator products and subtracts the appropriate biomass cost.
+ detach_container Detach the container
from the biogenerator.
+ eject_plants Ejects the biogenerator's stored plants
+ process_plants Tells the biogenerator to grind up any stored plants, and produce an appropriate amount of biomass.
+ update_ui_product_list Builds/Updates the product_list
used by the UI.
+ Var Details biomass
+
+
+
+
+
+ The amount of biomass stored in the machine.
categories
+
+
+
+
+
+ The /datum/design 's categories which can be produced by this machine and can be uploaded via a disk.
container
+ – /obj /item /reagent_containers/glass
+
+
+
+
+ The container that is used to store reagents from certain products.
efficiency
+
+
+
+
+
+ Used to modify the cost of producing items. A higher number means cheaper costs.
+ A reference to the biogenerator's research, which contains designs that it can build.
max_storable_plants
+
+
+
+
+
+ The maximum amount of plants the biogenerator can store.
processing
+
+
+
+
+
+ Is the biogenerator curretly grinding up plants?
product_list
+
+
+
+
+
+ A list which holds all categories and items the biogenator has available. Used with the UI to save having to rebuild this every time someone opens it.
productivity
+
+
+
+
+
+ Used to modify how much biomass is produced by grinding plants. A higher number means more biomass.
stored_plants
+
+
+
+
+
+ A list of plants currently stored plants in the biogenerator.
Proc Details check_container_volume
+
+ Check if the biogenerator's container
can hold the reagents we're trying to give it.
+Arguments:
+
+datum/design/D - the design we want to create reagents from
+multiplier - how many of this design should be built
+ check_cost
+
+ Check if the biogenerator has enough biomass to create the passed in design D
, times the mutiplier
.
+Arguments:
+
+datum/design/D - the design we want to create
+multiplier - how many of this design should be built
+ create_product
+
+ Create biogenerator products and subtracts the appropriate biomass cost.
+Arguments:
+
+datum/design/D - the design we want to create, or create reagents from
+amount - how many of this design should be built
+ detach_container()
+
+
+
+
+
+ Detach the container
from the biogenerator.
eject_plants()
+
+
+
+
+
+ Ejects the biogenerator's stored plants
process_plants
+
+ Tells the biogenerator to grind up any stored plants, and produce an appropriate amount of biomass.
+Argumens:
+
+mob/user - the mob who activated the biogenerator
+ update_ui_product_list
+
+ Builds/Updates the product_list
used by the UI.
+
+
+
diff --git a/obj/machinery/bodyscanner.html b/obj/machinery/bodyscanner.html
new file mode 100644
index 0000000000000..44442112ff4f7
--- /dev/null
+++ b/obj/machinery/bodyscanner.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/bodyscanner - Space Station 13
+
+
+
+
+
+
+Vars
+ scan_level What is the level of the stock parts in the body scanner. A scan_level of one detects organs of stealth_level 1 or below, while a scan level of 4 would detect 4 or below.
+ Var Details scan_level
+
+
+
+
+
+ What is the level of the stock parts in the body scanner. A scan_level of one detects organs of stealth_level 1 or below, while a scan level of 4 would detect 4 or below.
+
+
+
diff --git a/obj/machinery/button/windowtint.html b/obj/machinery/button/windowtint.html
new file mode 100644
index 0000000000000..3cd007e7dad2a
--- /dev/null
+++ b/obj/machinery/button/windowtint.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/machinery/button/windowtint - Space Station 13
+
+
+
+
+
+
+Vars
+ active The button toggle state. If range equals TINT_CONTROL_RANGE_AREA and id equals TINT_CONTROL_GROUP_NONE or is same with other button, it is shared between all such buttons in its area.
+ button_area The area where the button is located.
+ id If equals TINT_CONTROL_GROUP_NONE, only windows with 'null-like' id are controlled by this button. Otherwise, windows with corresponding or 'null-like' id are controlled by this button.
+ range Windows in this range are controlled by this button. If it equals TINT_CONTROL_RANGE_AREA, the button controls only windows at button_area.
+ Var Details active
+
+
+
+
+
+ The button toggle state. If range equals TINT_CONTROL_RANGE_AREA and id equals TINT_CONTROL_GROUP_NONE or is same with other button, it is shared between all such buttons in its area.
+ The area where the button is located.
id
+
+
+
+
+
+ If equals TINT_CONTROL_GROUP_NONE, only windows with 'null-like' id are controlled by this button. Otherwise, windows with corresponding or 'null-like' id are controlled by this button.
range
+
+
+
+
+
+ Windows in this range are controlled by this button. If it equals TINT_CONTROL_RANGE_AREA, the button controls only windows at button_area.
+
+
+
diff --git a/obj/machinery/camera.html b/obj/machinery/camera.html
new file mode 100644
index 0000000000000..c7122d4cc455b
--- /dev/null
+++ b/obj/machinery/camera.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/camera - Space Station 13
+
+
+
+
+
+
+Vars
+ part_of_camera_network If this camera should be added to the camera network and update the camera network when it moves around
+ Var Details part_of_camera_network
+
+
+
+
+
+ If this camera should be added to the camera network and update the camera network when it moves around
+
+
+
diff --git a/obj/machinery/chem_heater.html b/obj/machinery/chem_heater.html
new file mode 100644
index 0000000000000..6f62a7816a8a7
--- /dev/null
+++ b/obj/machinery/chem_heater.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/chem_heater - Space Station 13
+
+
+
+
+
+
+Vars
+ auto_eject Whether this should auto-eject the beaker once done heating/cooling.
+ speed_increase The higher this number, the faster reagents will heat/cool.
+ Var Details auto_eject
+
+
+
+
+
+ Whether this should auto-eject the beaker once done heating/cooling.
speed_increase
+
+
+
+
+
+ The higher this number, the faster reagents will heat/cool.
+
+
+
diff --git a/obj/machinery/chem_master.html b/obj/machinery/chem_master.html
new file mode 100644
index 0000000000000..2d794076e4821
--- /dev/null
+++ b/obj/machinery/chem_master.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ /obj/machinery/chem_master - Space Station 13
+
+
+
+
+
+
+Procs
+ ui_act_modal Called in ui_act() to process modal actions
Proc Details ui_act_modal
+
+ Called in ui_act() to process modal actions
+Arguments:
+
+action - The action passed by tgui
+params - The params passed by tgui
+
+
+
+
diff --git a/obj/machinery/clonepod.html b/obj/machinery/clonepod.html
new file mode 100644
index 0000000000000..5c2991eec8349
--- /dev/null
+++ b/obj/machinery/clonepod.html
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+ /obj/machinery/clonepod - Space Station 13
+
+
+
+
+
+
+Vars
+ biomass The cloner's biomass count.
+ biomass_storage_capacity How much biomass we can store. This is calculated at the same time as organ_storage_capacity.
+ clone Our patient.
+ clone_progress The progress on the current clone.
+Measured from 0-100, where 0-20 has no body, and 21-100 gradually builds on limbs every 10. (r_arm, r_hand, l_arm, l_hand, r_leg, r_foot, l_leg, l_foot)
+ console The linked cloning console.
+ countdown The countdown.
+ current_limb The limb we're currently growing.
+ currently_cloning Whether or not we're cloning someone.
+ desc_flavor Flavor text to show on examine.
+ desired_data The cloning_data datum which shows the status we want the patient to be in.
+ limbs_to_grow A list of limbs which have not yet been grown by the cloner.
+ organ_storage_capacity How many organs we can store. This is calculated with the storage modifier in RefreshParts().
+ patient_data The cloning_data datum which shows the patient's current status.
+ price_modifier Our price modifier, multiplied with the base cost to get the true cost.
+ speed_modifier The speed at which we clone. Each processing cycle will advance clone_progress by this amount.
+ storage_modifier Our storage modifier, which is used in calculating organ and biomass storage.
+ Var Details biomass
+
+
+
+
+
+ The cloner's biomass count.
biomass_storage_capacity
+
+
+
+
+
+ How much biomass we can store. This is calculated at the same time as organ_storage_capacity.
+ Our patient.
clone_progress
+
+
+
+
+
+ The progress on the current clone.
+Measured from 0-100, where 0-20 has no body, and 21-100 gradually builds on limbs every 10. (r_arm, r_hand, l_arm, l_hand, r_leg, r_foot, l_leg, l_foot)
+ The linked cloning console.
+ The countdown.
current_limb
+
+
+
+
+
+ The limb we're currently growing.
currently_cloning
+
+
+
+
+
+ Whether or not we're cloning someone.
desc_flavor
+
+
+
+
+
+ Flavor text to show on examine.
+ The cloning_data datum which shows the status we want the patient to be in.
limbs_to_grow
+
+
+
+
+
+ A list of limbs which have not yet been grown by the cloner.
organ_storage_capacity
+
+
+
+
+
+ How many organs we can store. This is calculated with the storage modifier in RefreshParts().
+ The cloning_data datum which shows the patient's current status.
price_modifier
+
+
+
+
+
+ Our price modifier, multiplied with the base cost to get the true cost.
speed_modifier
+
+
+
+
+
+ The speed at which we clone. Each processing cycle will advance clone_progress by this amount.
storage_modifier
+
+
+
+
+
+ Our storage modifier, which is used in calculating organ and biomass storage.
+
+
+
diff --git a/obj/machinery/clonescanner.html b/obj/machinery/clonescanner.html
new file mode 100644
index 0000000000000..8f70b39514dca
--- /dev/null
+++ b/obj/machinery/clonescanner.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/machinery/clonescanner - Space Station 13
+
+
+
+
+
+
+Vars
+ console The linked cloning console.
+ has_scanned Whether or not we've tried to scan the current patient
+ last_scan The scanner's latest scan result
+ occupant The scanner's occupant.
+ scanning_tier The tier of scan we can perform. Tier 2 parts and up can scan husks - or a tier 4 scanner and tier 1 laser.
+ Var Details
+ The linked cloning console.
has_scanned
+
+
+
+
+
+ Whether or not we've tried to scan the current patient
+ The scanner's latest scan result
+ The scanner's occupant.
scanning_tier
+
+
+
+
+
+ The tier of scan we can perform. Tier 2 parts and up can scan husks - or a tier 4 scanner and tier 1 laser.
+
+
+
diff --git a/obj/machinery/compost_bin.html b/obj/machinery/compost_bin.html
new file mode 100644
index 0000000000000..3eb0d691e59b7
--- /dev/null
+++ b/obj/machinery/compost_bin.html
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+ /obj/machinery/compost_bin - Space Station 13
+
+
+
+
+
+
+used to make soil from plants.
+Doesn't have components.
Vars
+ biomass amount of biomass in the compost bin
+ biomass_capacity The maximum amount of biomass the compost bin can store.
+ compost amount of compost in the compost bin
+ compost_capacity The maximum amount of compost the compost bin can store.
+ potash amount of potash in the compost bin
+ potash_capacity The maximum amount of potash the compost bin can store.
+ potassium amount of potassium in the compost bin
+ potassium_capacity The maximum amount of potassium the compost bin can store.
+ process_counter stage in the process, for timing purposes.
+ saltpetre amount of saltpetre in the compost bin
+ Var Details biomass
+
+
+
+
+
+ amount of biomass in the compost bin
biomass_capacity
+
+
+
+
+
+ The maximum amount of biomass the compost bin can store.
compost
+
+
+
+
+
+ amount of compost in the compost bin
compost_capacity
+
+
+
+
+
+ The maximum amount of compost the compost bin can store.
potash
+
+
+
+
+
+ amount of potash in the compost bin
potash_capacity
+
+
+
+
+
+ The maximum amount of potash the compost bin can store.
potassium
+
+
+
+
+
+ amount of potassium in the compost bin
potassium_capacity
+
+
+
+
+
+ The maximum amount of potassium the compost bin can store.
process_counter
+
+
+
+
+
+ stage in the process, for timing purposes.
saltpetre
+
+
+
+
+
+ amount of saltpetre in the compost bin
+
+
+
diff --git a/obj/machinery/computer.html b/obj/machinery/computer.html
new file mode 100644
index 0000000000000..3de0b0c4476bf
--- /dev/null
+++ b/obj/machinery/computer.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/computer - Space Station 13
+
+
+
+
+
+
+
+ Var Details flickering
+
+
+
+
+
+ Are we in the middle of a flicker event?
force_no_power_icon_state
+
+
+
+
+
+ Are we forcing the icon to be represented in a no-power state?
+
+
+
diff --git a/obj/machinery/computer/HolodeckControl.html b/obj/machinery/computer/HolodeckControl.html
new file mode 100644
index 0000000000000..9dedbfa218bb0
--- /dev/null
+++ b/obj/machinery/computer/HolodeckControl.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/computer/HolodeckControl - Space Station 13
+
+
+
+
+
+
+Vars
+ available_decks All decks available to the player, will automatically be selectable in the menu if put in this list
+ selected_deck String name of the currently selected holodeck state
+ shutdown_state The default deck for this holodeck incase of emergency / destruction
+ Var Details available_decks
+
+
+
+
+
+ All decks available to the player, will automatically be selectable in the menu if put in this list
selected_deck
+
+
+
+
+
+ String name of the currently selected holodeck state
shutdown_state
+
+
+
+
+
+ The default deck for this holodeck incase of emergency / destruction
+
+
+
diff --git a/obj/machinery/computer/account_database.html b/obj/machinery/computer/account_database.html
new file mode 100644
index 0000000000000..42c496e812ec5
--- /dev/null
+++ b/obj/machinery/computer/account_database.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/computer/account_database - Space Station 13
+
+
+
+
+
+
+
+ Var Details
+ station account database
current_page
+
+
+
+
+
+ Current UI page
detailed_account_view
+
+
+
+
+
+ account currently being viewed
+
+
+
diff --git a/obj/machinery/computer/aiupload.html b/obj/machinery/computer/aiupload.html
new file mode 100644
index 0000000000000..258fbfc5f9dcd
--- /dev/null
+++ b/obj/machinery/computer/aiupload.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/machinery/computer/aiupload - Space Station 13
+
+
+
+
+
+
+Vars
+ cooldown sets the cooldown time between uploads when emag'd
+ found_laws holds the value for when the inherent_laws are counted in countlaws() Procs
+ alert_silicons pushes an alert to the AI and its borgs about the law changes
+ apply_emag_laws applies ion-like laws into either the inherent law or true ion law positions due to an emag'd AI upload being used
+ check_valid_selection checks to ensure there is a selected AI, and that it is on the same Z level
+ emag_inherent_law modifies one of the AI's laws to read like an ion law
+ emag_ion_check checks to see if an ion law is added or modified
+ Var Details cooldown
+
+
+
+
+
+ sets the cooldown time between uploads when emag'd
found_laws
+
+
+
+
+
+ holds the value for when the inherent_laws are counted in countlaws()
Proc Details alert_silicons()
+
+
+
+
+
+ pushes an alert to the AI and its borgs about the law changes
apply_emag_laws
+
+ applies ion-like laws into either the inherent law or true ion law positions due to an emag'd AI upload being used
check_valid_selection
+
+ checks to ensure there is a selected AI, and that it is on the same Z level
emag_inherent_law()
+
+
+
+
+
+ modifies one of the AI's laws to read like an ion law
emag_ion_check()
+
+
+
+
+
+ checks to see if an ion law is added or modified
+
+
+
diff --git a/obj/machinery/computer/arcade/recruiter.html b/obj/machinery/computer/arcade/recruiter.html
new file mode 100644
index 0000000000000..e32877feda3fd
--- /dev/null
+++ b/obj/machinery/computer/arcade/recruiter.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /obj/machinery/computer/arcade/recruiter - Space Station 13
+
+
+
+
+
+
+
+ Var Details curriculums
+
+
+
+
+
+ Current "turn" of the game
game_status
+
+
+
+
+
+ In which screen are we?
good_candidate
+
+
+
+
+
+ Is he a good candidate for hiring?
hirable_species
+
+
+
+
+
+ Species that are hirable in the eyes of NT
incorrect_jobs
+
+
+
+
+
+ Jobs that NT stations dont offer/mispelled
incorrect_planets
+
+
+
+
+
+ Planets with either mispellings or ones that cannot support life
incorrect_species
+
+
+
+
+
+ Species that are NOT hirable in the eyes of NT
reason
+
+
+
+
+
+ Why did you lose?
spam_cooldown
+
+
+
+
+
+ Used to stop players from spamming the buttons
total_curriculums
+
+
+
+
+
+ Total number of "turns" to win
unique_candidate
+
+
+
+
+
+ Which unique candidate is he?
+
+
+
diff --git a/obj/machinery/computer/cloning.html b/obj/machinery/computer/cloning.html
new file mode 100644
index 0000000000000..5773aa7584933
--- /dev/null
+++ b/obj/machinery/computer/cloning.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/machinery/computer/cloning - Space Station 13
+
+
+
+
+
+
+Vars
+ desired_data The desired outcome of the cloning process.
+ feedback What feedback to give for the most recent scan.
+ pods A list of all linked cloning pods.
+ scanner Our linked cloning scanner.
+ selected_pod The currently-selected cloning pod.
+ tab Which tab we're currently on
+ Var Details
+ The desired outcome of the cloning process.
feedback
+
+
+
+
+
+ What feedback to give for the most recent scan.
pods
+
+
+
+
+
+ A list of all linked cloning pods.
+ Our linked cloning scanner.
+ The currently-selected cloning pod.
tab
+
+
+
+
+
+ Which tab we're currently on
+
+
+
diff --git a/obj/machinery/computer/drone_control.html b/obj/machinery/computer/drone_control.html
new file mode 100644
index 0000000000000..3dcafddb7a6d2
--- /dev/null
+++ b/obj/machinery/computer/drone_control.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/computer/drone_control - Space Station 13
+
+
+
+
+
+
+
+ Var Details drone_call_area
+
+
+
+
+
+ Used when pinging drones
dronefab
+
+
+
+
+
+ The linked fabricator
ping_cooldown
+
+
+
+
+
+ Cooldown for area pings
+
+
+
diff --git a/obj/machinery/computer/general_air_control.html b/obj/machinery/computer/general_air_control.html
new file mode 100644
index 0000000000000..0865c1eb1b86b
--- /dev/null
+++ b/obj/machinery/computer/general_air_control.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/computer/general_air_control - Space Station 13
+
+
+
+
+
+
+
+ Var Details autolink_sensors
+
+
+
+
+
+ List of sensors to autolink to. Key = sensor_id, Value = sensor display name
sensor_name_data_map
+
+
+
+
+
+ List of sensor names to cache lists used in the display TGUI
sensor_name_uid_map
+
+
+
+
+
+ List of sensor names to UIDs to be used in the display
+
+
+
diff --git a/obj/machinery/computer/general_air_control/large_tank_control.html b/obj/machinery/computer/general_air_control/large_tank_control.html
new file mode 100644
index 0000000000000..acb1112dd4ae5
--- /dev/null
+++ b/obj/machinery/computer/general_air_control/large_tank_control.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/machinery/computer/general_air_control/large_tank_control - Space Station 13
+
+
+
+
+
+
+
+ Var Details inlet_data
+
+
+
+
+
+ UI holder list of the inlet data
inlet_injector_autolink_id
+
+
+
+
+
+ Autolink ID of the chamber inlet injector
inlet_injector_uid
+
+
+
+
+
+ The runtime UID of the inlet injector
inlet_setting
+
+
+
+
+
+ Default inlet injector setting (50 L/s)
outlet_data
+
+
+
+
+
+ UI holder list of the outlet data
outlet_setting
+
+
+
+
+
+ Default outlet vent setting (About 4559.6)
outlet_vent_autolink_id
+
+
+
+
+
+ Autolink ID of the chamber outlet vent
outlet_vent_uid
+
+
+
+
+
+ The runtime UID of the outlet vent
+
+
+
diff --git a/obj/machinery/computer/id_upgrader.html b/obj/machinery/computer/id_upgrader.html
new file mode 100644
index 0000000000000..933022908332a
--- /dev/null
+++ b/obj/machinery/computer/id_upgrader.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/computer/id_upgrader - Space Station 13
+
+
+
+
+
+
+
+ Var Details access_to_give
+
+
+
+
+
+ Access to give
used
+
+
+
+
+
+ Have we been used?
+
+
+
diff --git a/obj/machinery/computer/library.html b/obj/machinery/computer/library.html
new file mode 100644
index 0000000000000..6c5fd2c558e19
--- /dev/null
+++ b/obj/machinery/computer/library.html
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+ /obj/machinery/computer/library - Space Station 13
+
+
+
+
+
+
+This is the player facing machine that handles all library functions
+This holds all procs for handling book checkins/checkout, book fines, book obj creation/modification
+the object also holds static lists for book inventory and checkouts. NO SQL CALLS OR QUERIES ARE MADE HERE, all
+of those are handled by the global library catalog that we will reference, and it should stay that way :)
Vars
+ archive_page_num Page Number for going through player book archives
+ cached_booklist This list temporarily stores the player books we grab from the DB in datums, we only update it when we need to for performance reasons
+ checkoutperiod How Long a book is allowed to be checked out for
+ checkouts Static List of borrowbook datums, used to track book checkouts acrossed the library system
+ inventory Static List of book datums to track what books the librarian has added to the library inventory
+ num_pages Total number of pages for the parameters have set for our booklist
+ print_cooldown Wait period for printing books
+ selected_report report category_id we have selected
+ total_books total inventoried books, used for setting book library IDs
+ user_data list for storing player inputs and selections, helpful for cutting down on single variable declarations Procs
+ getmaxpages Returns the amount of pages we will need to hold all the book our DB has found
+ Var Details archive_page_num
+
+
+
+
+
+ Page Number for going through player book archives
cached_booklist
+
+
+
+
+
+ This list temporarily stores the player books we grab from the DB in datums, we only update it when we need to for performance reasons
checkoutperiod
+
+
+
+
+
+ How Long a book is allowed to be checked out for
checkouts
+
+
+
+
+
+ Static List of borrowbook datums, used to track book checkouts acrossed the library system
inventory
+
+
+
+
+
+ Static List of book datums to track what books the librarian has added to the library inventory
num_pages
+
+
+
+
+
+ Total number of pages for the parameters have set for our booklist
print_cooldown
+
+
+
+
+
+ Wait period for printing books
selected_report
+
+
+
+
+
+ report category_id we have selected
total_books
+
+
+
+
+
+ total inventoried books, used for setting book library IDs
user_data
+ – /datum /library_user_data
+
+
+
+
+ list for storing player inputs and selections, helpful for cutting down on single variable declarations
Proc Details getmaxpages(async)
+
+
+
+
+
+ Returns the amount of pages we will need to hold all the book our DB has found
+
+
+
diff --git a/obj/machinery/computer/med_data.html b/obj/machinery/computer/med_data.html
new file mode 100644
index 0000000000000..ba83081f2441d
--- /dev/null
+++ b/obj/machinery/computer/med_data.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ /obj/machinery/computer/med_data - Space Station 13
+
+
+
+
+
+
+TODO:SANITY
Procs
+ print_finish Called when the print timer finishes
+ set_temp Sets a temporary message to display to the user
+ ui_act_modal Called in ui_act() to process modal actions
Proc Details print_finish()
+
+
+
+
+
+ Called when the print timer finishes
set_temp(text, style, update_now)
+
+
+
+
+
+ Sets a temporary message to display to the user
+Arguments:
+
+text - Text to display, null/empty to clear the message from the UI
+style - The style of the message: (color name), info, success, warning, danger, virus
+ ui_act_modal(action, params)
+
+
+
+
+
+ Called in ui_act() to process modal actions
+Arguments:
+
+action - The action passed by tgui
+params - The params passed by tgui
+
+
+
+
diff --git a/obj/machinery/computer/monitor.html b/obj/machinery/computer/monitor.html
new file mode 100644
index 0000000000000..15ef1bed747ba
--- /dev/null
+++ b/obj/machinery/computer/monitor.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ /obj/machinery/computer/monitor - Space Station 13
+
+
+
+
+
+
+Vars
+ history The history list itself of the power
+ is_secret_monitor Will this monitor be hidden from viewers?
+ next_record Time to next record power
+ power_monitor TGUI module this power monitor uses to produce a UI for the user
+ powernet The regional powernet this power monitor is hooked into
+ record_interval Interval between power snapshots
+ record_size How many records to keep of supply and demand Procs
+ record Power snapshot recording proc
+ Var Details history
+
+
+
+
+
+ The history list itself of the power
is_secret_monitor
+
+
+
+
+
+ Will this monitor be hidden from viewers?
next_record
+
+
+
+
+
+ Time to next record power
power_monitor
+ – /datum /ui_module/power_monitor
+
+
+
+
+ TGUI module this power monitor uses to produce a UI for the user
+ The regional powernet this power monitor is hooked into
record_interval
+
+
+
+
+
+ Interval between power snapshots
record_size
+
+
+
+
+
+ How many records to keep of supply and demand
Proc Details record()
+
+
+
+
+
+ Power snapshot recording proc
+This proc handles recording powernet history for the graph on the TGUI
+It is called every process(), but only logs every 5 seconds
+
+
+
diff --git a/obj/machinery/computer/operating.html b/obj/machinery/computer/operating.html
new file mode 100644
index 0000000000000..73ee49e770ea7
--- /dev/null
+++ b/obj/machinery/computer/operating.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ /obj/machinery/computer/operating - Space Station 13
+
+
+
+
+
+
+Vars
+ currentPatient Who is on the Operating Table connected to the respective Operating Computer?
+Only used to see if it changed from the previous occupant. If you want any actual information
+about the mob - use table.patient
instead.
+ Var Details currentPatient
+
+
+
+
+
+ Who is on the Operating Table connected to the respective Operating Computer?
+Only used to see if it changed from the previous occupant. If you want any actual information
+about the mob - use table.patient
instead.
+
+
+
diff --git a/obj/machinery/computer/rdconsole.html b/obj/machinery/computer/rdconsole.html
new file mode 100644
index 0000000000000..6765163b97207
--- /dev/null
+++ b/obj/machinery/computer/rdconsole.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/computer/rdconsole - Space Station 13
+
+
+
+
+
+
+Vars
+ range Range to search for rnd devices in proximity to console
+ Var Details range
+
+
+
+
+
+ Range to search for rnd devices in proximity to console
+
+
+
diff --git a/obj/machinery/computer/robotics.html b/obj/machinery/computer/robotics.html
new file mode 100644
index 0000000000000..9172774cef5ac
--- /dev/null
+++ b/obj/machinery/computer/robotics.html
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+ /obj/machinery/computer/robotics - Space Station 13
+
+
+
+
+
+
+Procs
+ can_control Check if a user can send a lockdown/detonate command to a specific borg
+ can_detonate Checks if a user can detonate a specific cyborg, does a can_control check first.
+ can_detonate_any Checks if a user can detonate any cyborgs at all.
+ can_hack Check if the user is allowed to hack a specific borg
+ can_hack_any Check if the user is the right kind of entity to be able to hack borgs
+ console_shows Does this borg show up in the console
Proc Details can_control
+
+ Check if a user can send a lockdown/detonate command to a specific borg
+Returns TRUE if a user can send the command (does not guarantee it will work)
+Returns FALSE if a user cannot
+Arguments:
+
+user - The mob/user to be checked
+R - The mob/living/silicon/robot to be checked
+telluserwhy - Bool of whether the user should be sent a to_chat message if they don't have access
+ can_detonate
+
+ Checks if a user can detonate a specific cyborg, does a can_control check first.
can_detonate_any(/mob /user, telluserwhy)
+
+
+
+
+
+ Checks if a user can detonate any cyborgs at all.
+ Check if the user is allowed to hack a specific borg
+Returns TRUE if a user can hack the specific cyborg
+Returns FALSE if a user cannot
+Arguments:
+can_hack_any
+
+ Check if the user is the right kind of entity to be able to hack borgs
+Returns TRUE if a user is a traitor AI, or aghost
+Returns FALSE otherwise
+Arguments:
+
+ Does this borg show up in the console
+Returns TRUE if a robot will show up in the console
+Returns FALSE if a robot will not show up in the console
+Arguments:
+
+
+
+
diff --git a/obj/machinery/computer/scan_consolenew.html b/obj/machinery/computer/scan_consolenew.html
new file mode 100644
index 0000000000000..81f6b2f66de47
--- /dev/null
+++ b/obj/machinery/computer/scan_consolenew.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ /obj/machinery/computer/scan_consolenew - Space Station 13
+
+
+
+
+
+
+Proc Details create_injector(buffer_id, copy_buffer)
+
+
+
+
+
+ Creates a blank injector with the name of the buffer at the given buffer_id
+Arguments:
+
+buffer_id - The ID of the buffer
+copy_buffer - Whether the injector should copy the buffer contents
+ injector_cooldown_finish()
+
+
+
+
+
+ Called when the injector creation cooldown finishes
ui_act_modal(action, params)
+
+
+
+
+
+ Called in ui_act() to process modal actions
+Arguments:
+
+action - The action passed by tgui
+params - The params passed by tgui
+
+
+
+
diff --git a/obj/machinery/computer/secure_data.html b/obj/machinery/computer/secure_data.html
new file mode 100644
index 0000000000000..f42bc1eaf2a34
--- /dev/null
+++ b/obj/machinery/computer/secure_data.html
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+ /obj/machinery/computer/secure_data - Space Station 13
+
+
+
+
+
+
+
+ Var Details current_page
+
+
+
+
+
+ The current page being viewed.
field_edit_choices
+
+
+
+
+
+ The editable fields and their associated choices to display to the user.
field_edit_questions
+
+
+
+
+
+ The editable fields and their associated question to display to the user.
is_printing
+
+
+
+
+
+ Whether the computer is currently printing a paper or not.
record_general
+
+
+
+
+
+ The current general record being viewed.
record_security
+
+
+
+
+
+ The current security record being viewed.
temp_notice
+
+
+
+
+
+ The current temporary notice.
Proc Details print_cell_log_finish(name, info)
+
+
+
+
+
+ Called when the print cell log timer finishes
print_record_finish()
+
+
+
+
+
+ Called when the print record timer finishes
set_temp(text, style, update_now)
+
+
+
+
+
+ Sets a temporary message to display to the user
+Arguments:
+
+text - Text to display, null/empty to clear the message from the UI
+style - The style of the message: (color name), info, success, warning, danger
+ ui_act_modal(action, /list/params)
+
+
+
+
+
+ Called in ui_act() to process modal actions
+Arguments:
+
+action - The action passed by tgui
+params - The params passed by tgui
+
+
+
+
diff --git a/obj/machinery/computer/security.html b/obj/machinery/computer/security.html
new file mode 100644
index 0000000000000..75063b180e057
--- /dev/null
+++ b/obj/machinery/computer/security.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/computer/security - Space Station 13
+
+
+
+
+
+
+
+ Var Details cam_plane_masters
+
+
+
+
+
+ All the plane masters that need to be applied.
silent_console
+
+
+
+
+
+ is the console silent when switching cameras?
+
+
+
diff --git a/obj/machinery/computer/security/telescreen/entertainment.html b/obj/machinery/computer/security/telescreen/entertainment.html
new file mode 100644
index 0000000000000..29c3e8390923a
--- /dev/null
+++ b/obj/machinery/computer/security/telescreen/entertainment.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/computer/security/telescreen/entertainment - Space Station 13
+
+
+
+
+
+
+Vars
+ feeds_on Used to detect how many video cameras are active
+ icon_screen_on Icon utilised when feeds_on is true
+ Var Details feeds_on
+
+
+
+
+
+ Used to detect how many video cameras are active
icon_screen_on
+
+
+
+
+
+ Icon utilised when feeds_on is true
+
+
+
diff --git a/obj/machinery/computer/shuttle.html b/obj/machinery/computer/shuttle.html
new file mode 100644
index 0000000000000..3d68d3ca5e95c
--- /dev/null
+++ b/obj/machinery/computer/shuttle.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/computer/shuttle - Space Station 13
+
+
+
+
+
+
+
+ Var Details find_destinations_in_late_init
+
+
+
+
+
+ Do we want to search for shuttle destinations as part of Initialize (fixed) or LateInitialize (variable)
+
+
+
diff --git a/obj/machinery/computer/sm_monitor.html b/obj/machinery/computer/sm_monitor.html
new file mode 100644
index 0000000000000..0905f3ed2a140
--- /dev/null
+++ b/obj/machinery/computer/sm_monitor.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+ /obj/machinery/computer/sm_monitor - Space Station 13
+
+
+
+
+
+
+Vars
+ active Reference to the active shard
+ last_status Last status of the active supermatter for caching purposes
+ supermatters Cache-list of all supermatter shards Procs
+ refresh Supermatter List Refresher
+ Var Details
+ Reference to the active shard
last_status
+
+
+
+
+
+ Last status of the active supermatter for caching purposes
supermatters
+
+
+
+
+
+ Cache-list of all supermatter shards
Proc Details refresh()
+
+
+
+
+
+ Supermatter List Refresher
+This proc loops through the list of supermatters in the atmos SS and adds them to this console's cache list
+
+
+
diff --git a/obj/machinery/computer/supplycomp.html b/obj/machinery/computer/supplycomp.html
new file mode 100644
index 0000000000000..bf906515579c7
--- /dev/null
+++ b/obj/machinery/computer/supplycomp.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/machinery/computer/supplycomp - Space Station 13
+
+
+
+
+
+
+Vars
+ account_database the economy database this machine is connected to
+ can_order_contraband Can we order contraband
+ cargo_account the department account tethered to this supply console
+ hacked Can we order special supplies
+ is_public Is this a public console (Confirm + Shuttle controls are not visible)
+ reqtime Time of last request Procs
+ deny_crate just give the account pin here, its too much work for players to get the department account pin number since approval is access locked anyway
+ Var Details
+ the economy database this machine is connected to
can_order_contraband
+
+
+
+
+
+ Can we order contraband
+ the department account tethered to this supply console
hacked
+
+
+
+
+
+ Can we order special supplies
is_public
+
+
+
+
+
+ Is this a public console (Confirm + Shuttle controls are not visible)
reqtime
+
+
+
+
+
+ Time of last request
Proc Details deny_crate(/mob /user, order_num)
+
+
+
+
+
+ just give the account pin here, its too much work for players to get the department account pin number since approval is access locked anyway
+
+
+
diff --git a/obj/machinery/computer/teleporter.html b/obj/machinery/computer/teleporter.html
new file mode 100644
index 0000000000000..dc05e33afe86b
--- /dev/null
+++ b/obj/machinery/computer/teleporter.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+ /obj/machinery/computer/teleporter - Space Station 13
+
+
+
+
+
+
+Vars
+ advanced_beacon_locking When the teleporter is upgraded, it can lock onto beacons directly, rather than turfs. This is the variable for it.
+ calibrating Whether calibration is in progress or not. Calibration prevents changes.
+ locked A GPS with a locked destination
+ power_station The power station that's connected to the console
+ regime Switches mode between teleporter, gate and gps
+ target The target turf of the teleporter Procs
+ calibrateCallback Calibrates the hub. Helper function of ui_act
+ eject Helper function of ui_act
+ gate_helper Helper function of ui_act.
+ resetPowerstation Resets the connected powerstation to initial values. Helper function of ui_act
+ targets_gate Creates a list of viable targets for the gate. Helper function of ui_data
+ targets_teleport Creates a list of viable targets for the teleport. Helper function of ui_data
+ teleport_helper Helper function of ui_act.
+ Var Details advanced_beacon_locking
+
+
+
+
+
+ When the teleporter is upgraded, it can lock onto beacons directly, rather than turfs. This is the variable for it.
calibrating
+
+
+
+
+
+ Whether calibration is in progress or not. Calibration prevents changes.
locked
+
+
+
+
+
+ A GPS with a locked destination
+ The power station that's connected to the console
regime
+
+
+
+
+
+ Switches mode between teleporter, gate and gps
target
+
+
+
+
+
+ The target turf of the teleporter
Proc Details calibrateCallback()
+
+
+
+
+
+ Calibrates the hub. Helper function of ui_act
eject()
+
+
+
+
+
+ Helper function of ui_act
+Triggered when ejecting a gps device. Sets the gps to the ground and resets the console
gate_helper()
+
+
+
+
+
+ Helper function of ui_act.
+Called after selecting a target for the teleporter in the UI.
resetPowerstation()
+
+
+
+
+
+ Resets the connected powerstation to initial values. Helper function of ui_act
targets_gate(/mob /users)
+
+
+
+
+
+ Creates a list of viable targets for the gate. Helper function of ui_data
targets_teleport()
+
+
+
+
+
+ Creates a list of viable targets for the teleport. Helper function of ui_data
teleport_helper()
+
+
+
+
+
+ Helper function of ui_act.
+Called after selecting a target for the gate in the UI. Sets area_bypass and cc_beacon.
+
+
+
diff --git a/obj/machinery/computer/telescience.html b/obj/machinery/computer/telescience.html
new file mode 100644
index 0000000000000..41b746462dd95
--- /dev/null
+++ b/obj/machinery/computer/telescience.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ /obj/machinery/computer/telescience - Space Station 13
+
+
+
+
+
+
+
+ Var Details angle
+
+
+
+
+
+ Current elevation
crystals
+
+
+
+
+
+ How many crystals are loaded
inserted_gps
+
+
+
+
+
+ Our currently loaded GPS
last_target_ref
+
+
+
+
+
+ Last target reference
last_tele_data
+ – /datum /tsci_trajectory_data
+
+
+
+
+ Data of the last teleport
linked_pad_uid
+
+
+
+
+
+ UID of linked pad
power
+
+
+
+
+
+ Current power
power_offset
+
+
+
+
+
+ Offset of power
power_options
+
+
+
+
+
+ Power options available, more crystals required for more oomph
rotation
+
+
+
+
+
+ Current rotation
rotation_offset
+
+
+
+
+
+ Offset of rotation
target_z
+
+
+
+
+
+ Target Z
teleport_cooldown
+
+
+
+
+
+ Teleport cooldown, based on the power used
teleporting
+
+
+
+
+
+ Are we currently working
teles_left
+
+
+
+
+
+ How many teleports left until it becomes uncalibrated
temp_msg
+
+
+
+
+
+ Temp message to show in the UI
+
+
+
diff --git a/obj/machinery/computer/turbine_computer.html b/obj/machinery/computer/turbine_computer.html
new file mode 100644
index 0000000000000..bbf2989185261
--- /dev/null
+++ b/obj/machinery/computer/turbine_computer.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/computer/turbine_computer - Space Station 13
+
+
+
+
+
+
+Proc Details Initialize()
+
+
+
+
+
+ COMPUTER
+
+
+
diff --git a/obj/machinery/cooker.html b/obj/machinery/cooker.html
new file mode 100644
index 0000000000000..7211bd5da7098
--- /dev/null
+++ b/obj/machinery/cooker.html
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+ /obj/machinery/cooker - Space Station 13
+
+
+
+
+
+
+Vars
+ burns whether a machine burns something - if it does, you probably want to add the cooktype to /snacks/badrecipe
+ has_specials Set to TRUE if the machine has specials to check, otherwise leave it at FALSE
+ special_attack_cooldown_time Time between special attacks
+ special_attack_on_cooldown Whether or not a special attack can be performed right now
+ upgradeable Set to TRUE if the machine supports upgrades / deconstruction, or else it will ignore stuff like screwdrivers and parts exchangers Procs
+ can_grab_attack Verify if we would be able to perform our grab attack.
+ special_attack Perform the special grab interaction.
+Return TRUE to drop the grab or FALSE to keep the grab afterwards.
+ special_attack_shove Perform a special shove attack.
+The return value of this proc gets passed up to shove_impact, so returning TRUE will prevent any further shove handling (like knockdown).
+ Var Details burns
+
+
+
+
+
+ whether a machine burns something - if it does, you probably want to add the cooktype to /snacks/badrecipe
has_specials
+
+
+
+
+
+ Set to TRUE if the machine has specials to check, otherwise leave it at FALSE
special_attack_cooldown_time
+
+
+
+
+
+ Time between special attacks
special_attack_on_cooldown
+
+
+
+
+
+ Whether or not a special attack can be performed right now
upgradeable
+
+
+
+
+
+ Set to TRUE if the machine supports upgrades / deconstruction, or else it will ignore stuff like screwdrivers and parts exchangers
Proc Details can_grab_attack
+
+ Verify if we would be able to perform our grab attack.
special_attack
+
+ Perform the special grab interaction.
+Return TRUE to drop the grab or FALSE to keep the grab afterwards.
special_attack_shove
+
+ Perform a special shove attack.
+The return value of this proc gets passed up to shove_impact, so returning TRUE will prevent any further shove handling (like knockdown).
+
+
+
diff --git a/obj/machinery/cooker/deepfryer.html b/obj/machinery/cooker/deepfryer.html
new file mode 100644
index 0000000000000..07279feafc48c
--- /dev/null
+++ b/obj/machinery/cooker/deepfryer.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/cooker/deepfryer - Space Station 13
+
+
+
+
+
+
+Procs
+ make_foam Make foam consisting of burning oil.
Proc Details make_foam(ice_amount)
+
+
+
+
+
+ Make foam consisting of burning oil.
+
+
+
diff --git a/obj/machinery/crema_switch.html b/obj/machinery/crema_switch.html
new file mode 100644
index 0000000000000..1263197bcfc7a
--- /dev/null
+++ b/obj/machinery/crema_switch.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/crema_switch - Space Station 13
+
+
+
+
+
+
+Vars
+ id ID of the crematorium to hook into
+ Var Details id
+
+
+
+
+
+ ID of the crematorium to hook into
+
+
+
diff --git a/obj/machinery/disco.html b/obj/machinery/disco.html
new file mode 100644
index 0000000000000..541e9d45c1c23
--- /dev/null
+++ b/obj/machinery/disco.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/disco - Space Station 13
+
+
+
+
+
+
+Vars
+ restdancing If set to FALSE, the dance4 proc that rests the dancer will be replaced by dance2. Procs
+ breakitdown Starts the dance machine.
+ Var Details restdancing
+
+
+
+
+
+ If set to FALSE, the dance4 proc that rests the dancer will be replaced by dance2.
Proc Details breakitdown()
+
+
+
+
+
+ Starts the dance machine.
+
+
+
diff --git a/obj/machinery/door.html b/obj/machinery/door.html
new file mode 100644
index 0000000000000..8218413b2ecd9
--- /dev/null
+++ b/obj/machinery/door.html
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+ /obj/machinery/door - Space Station 13
+
+
+
+
+
+
+Vars
+ assemblytype The type of door frame to drop during deconstruction
+ fillers List. Player view blocking fillers for multi-tile doors.
+ id ID for the window tint button, or another external control
+ operating Is it currently in the process of opening, closing or being tampered
+ safe Whether the door detects things and mobs in its way and reopen or crushes them.
+ superconductivity How much this door reduces superconductivity to when closed.
+ unres_sides Unrestricted sides. A bitflag for which direction (if any) can open the door with no access. Procs
+ get_adjusted_dir Checks which way the airlock is facing and adjusts the direction accordingly.
+For use with multi-tile airlocks.
+ update_bounds Sets the bounds of the airlock. For use with multi-tile airlocks.
+If the airlock is multi-tile, it will set the bounds to be the size of the airlock.
+If the airlock doesn't already have fillers, it will create them.
+If the airlock already has fillers, it will move them to the correct location.
+ Var Details assemblytype
+
+
+
+
+
+ The type of door frame to drop during deconstruction
fillers
+
+
+
+
+
+ List. Player view blocking fillers for multi-tile doors.
id
+
+
+
+
+
+ ID for the window tint button, or another external control
operating
+
+
+
+
+
+ Is it currently in the process of opening, closing or being tampered
safe
+
+
+
+
+
+ Whether the door detects things and mobs in its way and reopen or crushes them.
superconductivity
+
+
+
+
+
+ How much this door reduces superconductivity to when closed.
unres_sides
+
+
+
+
+
+ Unrestricted sides. A bitflag for which direction (if any) can open the door with no access.
Proc Details get_adjusted_dir(dir)
+
+
+
+
+
+ Checks which way the airlock is facing and adjusts the direction accordingly.
+For use with multi-tile airlocks.
update_bounds()
+
+
+
+
+
+ Sets the bounds of the airlock. For use with multi-tile airlocks.
+If the airlock is multi-tile, it will set the bounds to be the size of the airlock.
+If the airlock doesn't already have fillers, it will create them.
+If the airlock already has fillers, it will move them to the correct location.
+
+
+
diff --git a/obj/machinery/door/airlock.html b/obj/machinery/door/airlock.html
new file mode 100644
index 0000000000000..1eb2ca4ca28c2
--- /dev/null
+++ b/obj/machinery/door/airlock.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /obj/machinery/door/airlock - Space Station 13
+
+
+
+
+
+
+Vars
+ command_running Is a command actually running
+ cur_command Command currently being executed
+ id_tag Our ID tag for map-based linking shenanigans
+ on_spark_cooldown Have we created sparks too recently?
+ shockedby List of people who have shocked this door for logging purposes Procs
+ open Time it takes to open an airlock with an item with the TRAIT_FORCES_OPEN_DOORS_ITEM trait, 5 seconds for wielded items, 10 seconds for nonwielded items
+Can we open the airlock while unpowered? Wielded item's can't, but unwielded items can
+ Var Details command_running
+
+
+
+
+
+ Is a command actually running
cur_command
+
+
+
+
+
+ Command currently being executed
id_tag
+
+
+
+
+
+ Our ID tag for map-based linking shenanigans
on_spark_cooldown
+
+
+
+
+
+ Have we created sparks too recently?
shockedby
+
+
+
+
+
+ List of people who have shocked this door for logging purposes
Proc Details open(forced)
+
+
+
+
+
+ Time it takes to open an airlock with an item with the TRAIT_FORCES_OPEN_DOORS_ITEM trait, 5 seconds for wielded items, 10 seconds for nonwielded items
+Can we open the airlock while unpowered? Wielded item's can't, but unwielded items can
+
+
+
diff --git a/obj/machinery/door/airlock/cult.html b/obj/machinery/door/airlock/cult.html
new file mode 100644
index 0000000000000..f863a449263b0
--- /dev/null
+++ b/obj/machinery/door/airlock/cult.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/machinery/door/airlock/cult - Space Station 13
+
+
+
+
+
+
+
+ Var Details friendly
+
+
+
+
+
+ Will the door let anyone through
openingoverlaytype
+
+
+
+
+
+ Spawns an effect when opening
stealth_airlock_material
+
+
+
+
+
+ Inner airlock material (Glass, plasteel)
stealth_glass
+
+
+
+
+
+ Is the concealed airlock glass
stealth_icon
+
+
+
+
+
+ Door sprite when concealed
stealth_opacity
+
+
+
+
+
+ Opacity when concealed (For glass doors)
stealth_overlays
+
+
+
+
+
+ Door overlays when concealed (Bolt lights, maintenance panel, etc.)
stealthy
+
+
+
+
+
+ Is this door currently concealed
+
+
+
diff --git a/obj/machinery/door/firedoor.html b/obj/machinery/door/firedoor.html
new file mode 100644
index 0000000000000..c5a1ec34abc44
--- /dev/null
+++ b/obj/machinery/door/firedoor.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/door/firedoor - Space Station 13
+
+
+
+
+
+
+Vars
+ boltslocked Whether the "bolts" are "screwed". Used for deconstruction sequence. Has nothing to do with airlock bolting.
+ manual_open_time How long does opening by hand take, in deciseconds.
+ Var Details boltslocked
+
+
+
+
+
+ Whether the "bolts" are "screwed". Used for deconstruction sequence. Has nothing to do with airlock bolting.
manual_open_time
+
+
+
+
+
+ How long does opening by hand take, in deciseconds.
+
+
+
diff --git a/obj/machinery/door/window.html b/obj/machinery/door/window.html
new file mode 100644
index 0000000000000..f3dab361bad0e
--- /dev/null
+++ b/obj/machinery/door/window.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/door/window - Space Station 13
+
+
+
+
+
+
+Vars
+ old_color Color for the window if it gets changed at some point, to preserve painter functionality Procs
+ check_close Check whether or not this door can close, based on whether or not someone's standing in front of it holding it open
+ Var Details old_color
+
+
+
+
+
+ Color for the window if it gets changed at some point, to preserve painter functionality
Proc Details check_close()
+
+
+
+
+
+ Check whether or not this door can close, based on whether or not someone's standing in front of it holding it open
+
+
+
diff --git a/obj/machinery/door_control.html b/obj/machinery/door_control.html
new file mode 100644
index 0000000000000..17879266edd3f
--- /dev/null
+++ b/obj/machinery/door_control.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/door_control - Space Station 13
+
+
+
+
+
+
+
+ Var Details desiredstate_open
+
+
+
+
+
+ FALSE is closed, TRUE is open.
+
+
+
diff --git a/obj/machinery/doppler_array.html b/obj/machinery/doppler_array.html
new file mode 100644
index 0000000000000..aa44bcf6e76d6
--- /dev/null
+++ b/obj/machinery/doppler_array.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/doppler_array - Space Station 13
+
+
+
+
+
+
+Procs
+ power_change overrides base power_change to check to make sure machine is anchored
Proc Details power_change()
+
+
+
+
+
+ overrides base power_change to check to make sure machine is anchored
+
+
+
diff --git a/obj/machinery/driver_button.html b/obj/machinery/driver_button.html
new file mode 100644
index 0000000000000..c1c9ae7b4b524
--- /dev/null
+++ b/obj/machinery/driver_button.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/driver_button - Space Station 13
+
+
+
+
+
+
+Vars
+ active Are we active?
+ id_tag ID tag of the driver to hook to
+ range Range of drivers + blast doors to hit
+ Var Details active
+
+
+
+
+
+ Are we active?
id_tag
+
+
+
+
+
+ ID tag of the driver to hook to
range
+
+
+
+
+
+ Range of drivers + blast doors to hit
+
+
+
diff --git a/obj/machinery/economy.html b/obj/machinery/economy.html
new file mode 100644
index 0000000000000..9ceb34df6aaab
--- /dev/null
+++ b/obj/machinery/economy.html
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+ /obj/machinery/economy - Space Station 13
+
+
+
+
+
+
+Base machine type for machinery that needs to interact with users spending Space Cash or credit from Money Accounts
+has helper procs to automate account authentification and handling transactions.
Vars
+ account_database the economy database this machine is connected to
+ cash_stored Amount of cash "stored" in this machine (used for smashing and grabbing mechanics)
+ cash_transaction Amount of cash inserted into the machine during a transaction
+ restricted_bypass Can this machine access restricted money accounts?
+ smash_and_grab If you beat the shit out of this machine, will money fling out? Procs
+ dispense_space_cash create the most effective combination of space cash piles to make up the requested amount
+ Var Details
+ the economy database this machine is connected to
cash_stored
+
+
+
+
+
+ Amount of cash "stored" in this machine (used for smashing and grabbing mechanics)
cash_transaction
+
+
+
+
+
+ Amount of cash inserted into the machine during a transaction
restricted_bypass
+
+
+
+
+
+ Can this machine access restricted money accounts?
smash_and_grab
+
+
+
+
+
+ If you beat the shit out of this machine, will money fling out?
Proc Details dispense_space_cash(amount, /mob /user)
+
+
+
+
+
+ create the most effective combination of space cash piles to make up the requested amount
+Will create up to 10 stacks of space cash based on the given amount, if there is more than 100,000 given,
+this proc will return the amount not dispensed.
+Arguments:
+
+amount - amount of space cash to dispense
+user - the mob to dispense the space cash to
+
+
+
+
diff --git a/obj/machinery/economy/arcade/claw.html b/obj/machinery/economy/arcade/claw.html
new file mode 100644
index 0000000000000..4da7aba5fcf72
--- /dev/null
+++ b/obj/machinery/economy/arcade/claw.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/economy/arcade/claw - Space Station 13
+
+
+
+
+
+
+Vars
+ bonus_prize_chance Chance to dispense a SECOND prize if you win, increased by matter bin rating
+ Var Details bonus_prize_chance
+
+
+
+
+
+ Chance to dispense a SECOND prize if you win, increased by matter bin rating
+
+
+
diff --git a/obj/machinery/economy/atm.html b/obj/machinery/economy/atm.html
new file mode 100644
index 0000000000000..37acfef92c8e3
--- /dev/null
+++ b/obj/machinery/economy/atm.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/machinery/economy/atm - Space Station 13
+
+
+
+
+
+
+
+ Var Details authenticated_account
+
+
+
+
+
+ Current money account the ATM is accessing
held_card
+
+
+
+
+
+ ID Card that is currently inserted into the ATM
lockout_time
+
+
+
+
+
+ the time when the lockout on the ATM is lifted
login_attempts
+
+
+
+
+
+ failed login attempts counter, used for locking out the atm
print_cooldown
+
+
+
+
+
+ cooldown inbetween printing balance statements n stuff
view_screen
+
+
+
+
+
+ UI screen the ATM is on currently
Proc Details clear_account()
+
+
+
+
+
+ ensures proper GC of money account
clear_held_card()
+
+
+
+
+
+ ensures proper GC of ID card
+
+
+
diff --git a/obj/machinery/economy/slot_machine.html b/obj/machinery/economy/slot_machine.html
new file mode 100644
index 0000000000000..af9c0400a9d88
--- /dev/null
+++ b/obj/machinery/economy/slot_machine.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/machinery/economy/slot_machine - Space Station 13
+
+
+
+
+
+
+Vars
+ emagged_game_in_progress Used to handle bolting/unbolting the emagged machine while someone is using it
+ emagged_win_chance The %chance of winning money and resetting the emagged state Procs
+ emagged_spinning The spinning and throwing away is handled here, with a possible call to winning
+ emagged_winning With a chance of "emagged_win_chance", we win some money and reset the machine to a non-emagged state
+ Var Details emagged_game_in_progress
+
+
+
+
+
+ Used to handle bolting/unbolting the emagged machine while someone is using it
emagged_win_chance
+
+
+
+
+
+ The %chance of winning money and resetting the emagged state
Proc Details emagged_spinning
+
+ The spinning and throwing away is handled here, with a possible call to winning
emagged_winning(user)
+
+
+
+
+
+ With a chance of "emagged_win_chance", we win some money and reset the machine to a non-emagged state
+
+
+
diff --git a/obj/machinery/economy/vending.html b/obj/machinery/economy/vending.html
new file mode 100644
index 0000000000000..9c33f0c85a658
--- /dev/null
+++ b/obj/machinery/economy/vending.html
@@ -0,0 +1,337 @@
+
+
+
+
+
+
+ /obj/machinery/economy/vending - Space Station 13
+
+
+
+
+
+
+Vars
+ active No sales pitches if off
+ ads_list Unimplemented list of ads that are meant to show up somewhere, but don't.
+ aggressive If the vendor should tip on anyone who walks by. Mainly used for brand intelligence
+ aggressive_slogan_delay How often slogans will be used by vendors if they're aggressive.
+ category The category of this vendor. Used for announcing brand intelligence.
+ crit_damage_factor Factor of extra damage to deal when triggering a crit
+ currently_vending Item currently being bought
+ emagged Allows people to access a vendor that's normally access restricted.
+ extended_inventory can we access the hidden inventory?
+ flickering blocks further flickering while true
+ force_no_power_icon_state do I look unpowered, even when powered?
+ hit_warning_cooldown_length How long to wait before resetting the warning cooldown
+ icon_addon Icon to be an overlay over the base sprite
+ icon_broken Icon for the broken overlay, defaults to icon_state + _broken
+ icon_deny Icon_state when denying access
+ icon_lightmask Icon for the lightmask, defaults to icon_state + _off, _lightmask if one is defined.
+ icon_off Icon for the off overlay, defaults to icon_state + _off
+ icon_panel Icon for the panel overlay, defaults to icon_state + _panel
+ icon_vend Icon_state when vending
+ inserted_item the actual item inserted
+ item_slot boolean, whether this vending machine can accept people inserting items into it, used for coffee vendors
+ last_hit_time Last time the machine was punched
+ num_shards number of shards to apply when a crit embeds
+ scan_id If true, enforce access checks on customers. Disabled by messing with wires.
+ seconds_electrified Shocks people like an airlock
+ self_knockover_factor Factor of extra damage to deal when you knock it over onto yourself
+ shoot_chance How often are we firing the items? (prob(...))
+ shoot_inventory Fire items at customers! We're broken!
+ shoot_speed How hard are we firing the items?
+ shut_up If true, prevent saying sales pitches
+ slogan_list List of slogans the vendor will say, optional
+ squish_damage Amount of damage to deal when tipped
+ tiltable If this vending machine can be tipped or not
+ tilted If this vendor is currently tipped
+ vend_delay How long vendor takes to vend one item.
+ vend_ready If off, vendor is busy and unusable until current action finishes
+ vendor_account the money account that is tethered to this vendor Procs
+ build_inventory Build src.produdct_records from the products lists
+ refill_inventory Refill our inventory from the passed in product list into the record list
+ restock Refill a vending machine from a refill canister
+ unbuild_inventory Given a record list, go through and and return a list of type -> amount
+ update_canister Set up a refill canister that matches this machines products
+ Var Details active
+
+
+
+
+
+ No sales pitches if off
ads_list
+
+
+
+
+
+ Unimplemented list of ads that are meant to show up somewhere, but don't.
aggressive
+
+
+
+
+
+ If the vendor should tip on anyone who walks by. Mainly used for brand intelligence
aggressive_slogan_delay
+
+
+
+
+
+ How often slogans will be used by vendors if they're aggressive.
category
+
+
+
+
+
+ The category of this vendor. Used for announcing brand intelligence.
crit_damage_factor
+
+
+
+
+
+ Factor of extra damage to deal when triggering a crit
+ Item currently being bought
emagged
+
+
+
+
+
+ Allows people to access a vendor that's normally access restricted.
extended_inventory
+
+
+
+
+
+ can we access the hidden inventory?
flickering
+
+
+
+
+
+ blocks further flickering while true
force_no_power_icon_state
+
+
+
+
+
+ do I look unpowered, even when powered?
hit_warning_cooldown_length
+
+
+
+
+
+ How long to wait before resetting the warning cooldown
icon_addon
+
+
+
+
+
+ Icon to be an overlay over the base sprite
icon_broken
+
+
+
+
+
+ Icon for the broken overlay, defaults to icon_state + _broken
icon_deny
+
+
+
+
+
+ Icon_state when denying access
icon_lightmask
+
+
+
+
+
+ Icon for the lightmask, defaults to icon_state + _off, _lightmask if one is defined.
icon_off
+
+
+
+
+
+ Icon for the off overlay, defaults to icon_state + _off
icon_panel
+
+
+
+
+
+ Icon for the panel overlay, defaults to icon_state + _panel
icon_vend
+
+
+
+
+
+ Icon_state when vending
inserted_item
+
+
+
+
+
+ the actual item inserted
item_slot
+
+
+
+
+
+ boolean, whether this vending machine can accept people inserting items into it, used for coffee vendors
last_hit_time
+
+
+
+
+
+ Last time the machine was punched
num_shards
+
+
+
+
+
+ number of shards to apply when a crit embeds
scan_id
+
+
+
+
+
+ If true, enforce access checks on customers. Disabled by messing with wires.
seconds_electrified
+
+
+
+
+
+ Shocks people like an airlock
self_knockover_factor
+
+
+
+
+
+ Factor of extra damage to deal when you knock it over onto yourself
shoot_chance
+
+
+
+
+
+ How often are we firing the items? (prob(...))
shoot_inventory
+
+
+
+
+
+ Fire items at customers! We're broken!
shoot_speed
+
+
+
+
+
+ How hard are we firing the items?
shut_up
+
+
+
+
+
+ If true, prevent saying sales pitches
slogan_list
+
+
+
+
+
+ List of slogans the vendor will say, optional
squish_damage
+
+
+
+
+
+ Amount of damage to deal when tipped
tiltable
+
+
+
+
+
+ If this vending machine can be tipped or not
tilted
+
+
+
+
+
+ If this vendor is currently tipped
vend_delay
+
+
+
+
+
+ How long vendor takes to vend one item.
vend_ready
+
+
+
+
+
+ If off, vendor is busy and unusable until current action finishes
+ the money account that is tethered to this vendor
Proc Details build_inventory(/list/productlist, /list/recordlist, start_empty)
+
+
+
+
+
+ Build src.produdct_records from the products lists
+src.products, src.contraband, src.premium, and src.prices allow specifying
+products that the vending machine is to carry without manually populating
+src.product_records.
refill_inventory(/list/productlist, /list/recordlist)
+
+
+
+
+
+ Refill our inventory from the passed in product list into the record list
+Arguments:
+
+productlist - list of types -> amount
+recordlist - existing record datums
+ restock(/obj /item /vending_refill/canister)
+
+
+
+
+
+ Refill a vending machine from a refill canister
+This takes the products from the refill canister and then fills the products,contraband and premium product categories
+Arguments:
+
+canister - the vending canister we are refilling from
+ unbuild_inventory(/list/recordlist)
+
+
+
+
+
+ Given a record list, go through and and return a list of type -> amount
update_canister()
+
+
+
+
+
+ Set up a refill canister that matches this machines products
+This is used when the machine is deconstructed, so the items aren't "lost"
+
+
+
diff --git a/obj/machinery/economy/vending/boozeomat.html b/obj/machinery/economy/vending/boozeomat.html
new file mode 100644
index 0000000000000..84c2df928e0ef
--- /dev/null
+++ b/obj/machinery/economy/vending/boozeomat.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/economy/vending/boozeomat - Space Station 13
+
+
+
+
+
+
+Vars
+ icon_deny 18 drink entities below, plus the glasses, in case someone wants to edit the number of bottles
+ Var Details icon_deny
+
+
+
+
+
+ 18 drink entities below, plus the glasses, in case someone wants to edit the number of bottles
+
+
+
diff --git a/obj/machinery/firealarm.html b/obj/machinery/firealarm.html
new file mode 100644
index 0000000000000..eaffac1db4276
--- /dev/null
+++ b/obj/machinery/firealarm.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/firealarm - Space Station 13
+
+
+
+
+
+
+Vars
+ detecting Whether or not the fire alarm will sound the alarm if its temperature rises above 200C
+ Var Details detecting
+
+
+
+
+
+ Whether or not the fire alarm will sound the alarm if its temperature rises above 200C
+
+
+
diff --git a/obj/machinery/fishtank.html b/obj/machinery/fishtank.html
new file mode 100644
index 0000000000000..815ec5e886565
--- /dev/null
+++ b/obj/machinery/fishtank.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /obj/machinery/fishtank - Space Station 13
+
+
+
+
+
+
+Procs
+ examine Note from FalseIncarnate:
+Feel free to try cleaning it up if you think of a better way to do it.
Proc Details examine
+
+ Note from FalseIncarnate:
+Feel free to try cleaning it up if you think of a better way to do it.
+
+
+
diff --git a/obj/machinery/gibber.html b/obj/machinery/gibber.html
new file mode 100644
index 0000000000000..41213bea8a00d
--- /dev/null
+++ b/obj/machinery/gibber.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/gibber - Space Station 13
+
+
+
+
+
+
+Procs
+ startgibbing Here's the part where I do something silly
Proc Details startgibbing(/mob /user, UserOverride)
+
+
+
+
+
+ Here's the part where I do something silly
+
+
+
diff --git a/obj/machinery/gravity_generator.html b/obj/machinery/gravity_generator.html
new file mode 100644
index 0000000000000..4152ac8b49345
--- /dev/null
+++ b/obj/machinery/gravity_generator.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/gravity_generator - Space Station 13
+
+
+
+
+
+
+Proc Details shuttleRotate(rotation, params)
+
+
+
+
+
+ Machine rotate procs
+
+
+
diff --git a/obj/machinery/gravity_generator/main.html b/obj/machinery/gravity_generator/main.html
new file mode 100644
index 0000000000000..fe2743fe6ad70
--- /dev/null
+++ b/obj/machinery/gravity_generator/main.html
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+ /obj/machinery/gravity_generator/main - Space Station 13
+
+
+
+
+
+
+Vars
+ breaker_on Is the breaker switch turned on
+ charge_count Charge percentage
+ charging_state Charging state (Idle, Charging, Discharging)
+ on Is the generator producing gravity
+ parts Generator parts on adjacent tiles Procs
+ set_gravity Set the state of gravity on the z-level.
+ set_power Set the charging state based on external power and the breaker state.
+ shake_everyone Shake everyone on the z level and play an alarm to let them know that gravity was enagaged/disenagaged.
+ Var Details breaker_on
+
+
+
+
+
+ Is the breaker switch turned on
charge_count
+
+
+
+
+
+ Charge percentage
charging_state
+
+
+
+
+
+ Charging state (Idle, Charging, Discharging)
on
+
+
+
+
+
+ Is the generator producing gravity
parts
+
+
+
+
+
+ Generator parts on adjacent tiles
Proc Details set_gravity(gravity)
+
+
+
+
+
+ Set the state of gravity on the z-level.
+
+enable - TRUE
to enable gravity, FALSE
to disable gravity
+ set_power()
+
+
+
+
+
+ Set the charging state based on external power and the breaker state.
shake_everyone()
+
+
+
+
+
+ Shake everyone on the z level and play an alarm to let them know that gravity was enagaged/disenagaged.
+
+
+
diff --git a/obj/machinery/grey_autocloner.html b/obj/machinery/grey_autocloner.html
new file mode 100644
index 0000000000000..6e4ee3379ac27
--- /dev/null
+++ b/obj/machinery/grey_autocloner.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/grey_autocloner - Space Station 13
+
+
+
+
+
+
+Vars
+ attempting If the clone pod is cloning someone, attempting becomes true, so only one person can clone at a time. False otherwise.
+ Var Details attempting
+
+
+
+
+
+ If the clone pod is cloning someone, attempting becomes true, so only one person can clone at a time. False otherwise.
+
+
+
diff --git a/obj/machinery/hologram/holopad.html b/obj/machinery/hologram/holopad.html
new file mode 100644
index 0000000000000..3e8260ec5f730
--- /dev/null
+++ b/obj/machinery/hologram/holopad.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ /obj/machinery/hologram/holopad - Space Station 13
+
+
+
+
+
+
+A stationary holopad for projecting hologram and making and receiving holocalls.
+Holopads are floor-plane machines similar, in appearance and interactive function, to quantum pads. They can be
+used by crew members to make and answer holocalls, or by the AI to project holograms autonomously.
+Holopads are machines which can project a hologram up to holo_range
tiles away. They do this in one of two modes:
+holocalls, and AI holograms. Holocalls require a user to stand on a holopad, use its menu to select a remote holopad,
+and make a call. Holocalls must be answered by the receiving holopad, or they will fail. Holopads can be configured
+globally to auto-accept instead of failing, with the debug static variable force_answer_call
. They can also be
+individually configured to auto-accept calls immediately by setting their public mode option (public_mode
),
+which can be done in-game by using a screwdriver and then a multitool on a holopad. Holocalls will automatically end
+if power goes out, the caller moves off the calling holopad, the caller projects outside the receiving holopad's
+range, the caller is killed or incapacitated, the caller ghosts or disconnects, or the caller is QDELETED. AI
+holograms require the AI to focus on the originating holopad and click on it; no answer is required. If the AI moves
+out of a holopad's range and into the range of another, it will attempt to transfer its hologram to the next holopad.
+Otherwise, AI holograms will stop projecting if power goes out for the originating holopad, the AI clicks on its
+origin holopad, or, like holocalls, if the AI is killed, incapacitated, disconnected, QDELETED, or ghosts.
+Holopads relay speech from the caller made with the :h radio key, and relay all speech on the answering end to the
+caller or AI.
Vars
+ dialling_input Whether or not the user is currently selecting where to send their call.
+ force_answer_call Universal debug toggle for whether holopads will automatically answer calls after a few rings.
+ holo_calls A list of holocalls associated with this holopad.
+ holo_range The range, in tiles, that a holopad can project a hologram.
+ holorays Holoray-mob link.
+ last_request Last request time, to prevent request spam. ~Carn
+ masters List of living mobs currently using the holopad
+ outgoing_call The outgoing holocall currently being processed by this holopad.
+ public_mode Toggle for auto-answering calls immediately, set via multitool.
+ ray The ray effect emanating from this holopad to the produced hologram.
+ ringing Whether or not this holopad is currently ringing, from being called by another pad.
+ Var Details
+ Whether or not the user is currently selecting where to send their call.
force_answer_call
+
+
+
+
+
+ Universal debug toggle for whether holopads will automatically answer calls after a few rings.
holo_calls
+
+
+
+
+
+ A list of holocalls associated with this holopad.
holo_range
+
+
+
+
+
+ The range, in tiles, that a holopad can project a hologram.
holorays
+
+
+
+
+
+ Holoray-mob link.
last_request
+
+
+
+
+
+ Last request time, to prevent request spam. ~Carn
masters
+
+
+
+
+
+ List of living mobs currently using the holopad
outgoing_call
+
+
+
+
+
+ The outgoing holocall currently being processed by this holopad.
public_mode
+
+
+
+
+
+ Toggle for auto-answering calls immediately, set via multitool.
ray
+ – /obj /effect/overlay/holoray
+
+
+
+
+ The ray effect emanating from this holopad to the produced hologram.
ringing
+
+
+
+
+
+ Whether or not this holopad is currently ringing, from being called by another pad.
+
+
+
diff --git a/obj/machinery/hydroponics.html b/obj/machinery/hydroponics.html
new file mode 100644
index 0000000000000..41185b07c8a0d
--- /dev/null
+++ b/obj/machinery/hydroponics.html
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+ /obj/machinery/hydroponics - Space Station 13
+
+
+
+
+
+
+Vars
+ age Current age
+ cycledelay Amount of time per plant cycle
+ dead Is it dead?
+ doping_chem The typepath of the chemical (if any) the tray has been doped with to bias its mutations.
+ doping_effects Maps doping chemicals to their affected stats.
+ harvest Ready to harvest?
+ lastcycle Used for timing of cycles.
+ lastproduce Last time it was harvested
+ max_mutagen The maximum amount of mutagen in the tray.
+ maxnutri The maximum nutrient of water in the tray
+ maxwater The maximum amount of water in the tray
+ mut_beamed Has the tray been hit by a mutation beam this harvest?
+ mutagen The amount of mutagens (UM or radioactives) in the tray.
+ mutagen_tank_name What do we call the mutagen tank?
+ myseed The currently planted seed
+ nutrient Nutrient in use
+ nutrilevel The amount of nutrient in the tray (max 10)
+ pestlevel The amount of pests in the tray (max 10)
+ plant_health Its health
+ recent_bee_visit Have we been visited by a bee recently, so bees dont overpollinate one plant
+ self_sufficiency_req Required total dose to make a self-sufficient hydro tray. 1:1 with earthsblood.
+ self_sustaining If the tray generates nutrients and water on its own
+ toxic Toxicity in the tray
+ using_irrigation If the tray is connected to other trays via irrigation hoses
+ waterlevel The amount of water in the tray (max 100)
+ weedlevel The amount of weeds in the tray (max 10)
+ yield_beamed Has the tray been hit by a yield-increasing beam this harvest?
+ yieldmod Nutrient's effect on yield Procs
+ CanPass Diona Nymph Related Procs
+ adjustNutri Tray Setters - The following procs adjust the tray or plants variables, and make sure that the stat doesn't go out of bounds.
+ Var Details age
+
+
+
+
+
+ Current age
cycledelay
+
+
+
+
+
+ Amount of time per plant cycle
dead
+
+
+
+
+
+ Is it dead?
doping_chem
+
+
+
+
+
+ The typepath of the chemical (if any) the tray has been doped with to bias its mutations.
doping_effects
+
+
+
+
+
+ Maps doping chemicals to their affected stats.
harvest
+
+
+
+
+
+ Ready to harvest?
lastcycle
+
+
+
+
+
+ Used for timing of cycles.
lastproduce
+
+
+
+
+
+ Last time it was harvested
max_mutagen
+
+
+
+
+
+ The maximum amount of mutagen in the tray.
maxnutri
+
+
+
+
+
+ The maximum nutrient of water in the tray
maxwater
+
+
+
+
+
+ The maximum amount of water in the tray
mut_beamed
+
+
+
+
+
+ Has the tray been hit by a mutation beam this harvest?
mutagen
+
+
+
+
+
+ The amount of mutagens (UM or radioactives) in the tray.
mutagen_tank_name
+
+
+
+
+
+ What do we call the mutagen tank?
+ The currently planted seed
nutrient
+
+
+
+
+
+ Nutrient in use
nutrilevel
+
+
+
+
+
+ The amount of nutrient in the tray (max 10)
pestlevel
+
+
+
+
+
+ The amount of pests in the tray (max 10)
plant_health
+
+
+
+
+
+ Its health
recent_bee_visit
+
+
+
+
+
+ Have we been visited by a bee recently, so bees dont overpollinate one plant
self_sufficiency_req
+
+
+
+
+
+ Required total dose to make a self-sufficient hydro tray. 1:1 with earthsblood.
self_sustaining
+
+
+
+
+
+ If the tray generates nutrients and water on its own
toxic
+
+
+
+
+
+ Toxicity in the tray
using_irrigation
+
+
+
+
+
+ If the tray is connected to other trays via irrigation hoses
waterlevel
+
+
+
+
+
+ The amount of water in the tray (max 100)
weedlevel
+
+
+
+
+
+ The amount of weeds in the tray (max 10)
yield_beamed
+
+
+
+
+
+ Has the tray been hit by a yield-increasing beam this harvest?
yieldmod
+
+
+
+
+
+ Nutrient's effect on yield
Proc Details CanPass
+
+ Diona Nymph Related Procs
adjustNutri(adjustamt)
+
+
+
+
+
+ Tray Setters - The following procs adjust the tray or plants variables, and make sure that the stat doesn't go out of bounds.
+
+
+
diff --git a/obj/machinery/igniter.html b/obj/machinery/igniter.html
new file mode 100644
index 0000000000000..850e08805ec54
--- /dev/null
+++ b/obj/machinery/igniter.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/igniter - Space Station 13
+
+
+
+
+
+
+Vars
+ id ID to hook buttons into
+ on Are we on?
+ Var Details id
+
+
+
+
+
+ ID to hook buttons into
on
+
+
+
+
+
+ Are we on?
+
+
+
diff --git a/obj/machinery/keycard_auth.html b/obj/machinery/keycard_auth.html
new file mode 100644
index 0000000000000..125132af5195f
--- /dev/null
+++ b/obj/machinery/keycard_auth.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/keycard_auth - Space Station 13
+
+
+
+
+
+
+Vars
+ busy True when a request is sent from another device. So someone on the other end can't just close the ERT menu while someone is typing
+ Var Details busy
+
+
+
+
+
+ True when a request is sent from another device. So someone on the other end can't just close the ERT menu while someone is typing
+
+
+
diff --git a/obj/machinery/kitchen_machine.html b/obj/machinery/kitchen_machine.html
new file mode 100644
index 0000000000000..27bed3720cea3
--- /dev/null
+++ b/obj/machinery/kitchen_machine.html
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+ /obj/machinery/kitchen_machine - Space Station 13
+
+
+
+
+
+
+
+ Var Details
+ Sound used when starting and ending cooking
special_attack_cooldown_time
+
+
+
+
+
+ Time between special attacks
special_attack_on_cooldown
+
+
+
+
+
+ Whether or not a special attack can be performed right now
Proc Details Initialize(mapload)
+
+
+
+
+
+ Initialising
attackby
+
+ Item Adding
cook()
+
+
+
+
+
+ Machine Menu Handling/Cooking
format_content_descs()
+
+
+
+
+
+ Machine Menu
special_attack
+
+ Perform the special grab interaction.
+Return TRUE to drop the grab or FALSE to keep the grab afterwards.
special_attack_shove
+
+ Perform a special shove attack.
+The return value of this proc gets passed up to shove_impact, so returning TRUE will prevent any further shove handling (like knockdown).
+
+
+
diff --git a/obj/machinery/kitchen_machine/candy_maker.html b/obj/machinery/kitchen_machine/candy_maker.html
new file mode 100644
index 0000000000000..4ce8a2f4eb008
--- /dev/null
+++ b/obj/machinery/kitchen_machine/candy_maker.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/kitchen_machine/candy_maker - Space Station 13
+
+
+
+
+
+
+Proc Details Initialize(mapload)
+
+
+
+
+
+ Initialising
+
+
+
diff --git a/obj/machinery/kitchen_machine/grill.html b/obj/machinery/kitchen_machine/grill.html
new file mode 100644
index 0000000000000..223841178bdfa
--- /dev/null
+++ b/obj/machinery/kitchen_machine/grill.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/kitchen_machine/grill - Space Station 13
+
+
+
+
+
+
+Proc Details Initialize(mapload)
+
+
+
+
+
+ Initialising
+
+
+
diff --git a/obj/machinery/kitchen_machine/microwave.html b/obj/machinery/kitchen_machine/microwave.html
new file mode 100644
index 0000000000000..2c05296a1d1ea
--- /dev/null
+++ b/obj/machinery/kitchen_machine/microwave.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/kitchen_machine/microwave - Space Station 13
+
+
+
+
+
+
+Proc Details Initialize(mapload)
+
+
+
+
+
+ Initialising
+
+
+
diff --git a/obj/machinery/kitchen_machine/oven.html b/obj/machinery/kitchen_machine/oven.html
new file mode 100644
index 0000000000000..8d1c45ed9ab84
--- /dev/null
+++ b/obj/machinery/kitchen_machine/oven.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/kitchen_machine/oven - Space Station 13
+
+
+
+
+
+
+Proc Details Initialize(mapload)
+
+
+
+
+
+ Initialising
+
+
+
diff --git a/obj/machinery/light.html b/obj/machinery/light.html
new file mode 100644
index 0000000000000..09d3277dff2db
--- /dev/null
+++ b/obj/machinery/light.html
@@ -0,0 +1,208 @@
+
+
+
+
+
+
+ /obj/machinery/light - Space Station 13
+
+
+
+
+
+
+The standard light tube fixture
+ Var Details brightness_color
+
+
+
+
+
+ Light colour when on
brightness_power
+
+
+
+
+
+ Light intensity
brightness_range
+
+
+
+
+
+ Light range (Also used in power calculation)
bulb_emergency_colour
+
+
+
+
+
+ The colour of the light while it's in emergency mode
extinguished
+
+
+
+
+
+ Was this light extinguished with an antag ability? Used to ovveride flicker events
fitting
+
+
+
+
+
+ Type of light bulb that goes into the fixture
flickering
+
+
+
+
+
+ Is the light currently flickering?
light_state
+
+
+
+
+
+ If the light state has changed since the last 'update()', also update the power requirements
light_type
+
+
+
+
+
+ Item type of the light bulb
lightmaterials
+
+
+
+
+
+ Materials the light is made of
nightshift_allowed
+
+
+
+
+
+ Allowed to be switched to night shift mode?
nightshift_enabled
+
+
+
+
+
+ Currently in night shift mode?
nightshift_light_color
+
+
+
+
+
+ The colour of the light while it's in night shift mode
nightshift_light_power
+
+
+
+
+
+ Light intensity when in night shift mode
nightshift_light_range
+
+
+
+
+
+ Light range when in night shift mode
on
+
+
+
+
+
+ Is the light on or off?
rigged
+
+
+
+
+
+ Is the light rigged to explode?
static_power_used
+
+
+
+
+
+ How much power does it use?
status
+
+
+
+
+
+ Light fixture status (LIGHT_OK | LIGHT_EMPTY | LIGHT_BURNED | LIGHT_BROKEN)
switchcount
+
+
+
+
+
+ How many times has the light been switched on/off? (This is used to calc the probability the light burns out)
turning_on
+
+
+
+
+
+ Is the light currently turning on?
Proc Details _turn_on(trigger, play_sound)
+
+
+
+
+
+ The actual proc to turn on the lightbulb.
+Private proc, do not call directly. Use /obj/machinery/light/proc/update instead.
+Sets the light power, range, and colour based on environmental conditions such as night shift and fire alarms.
+Also handles light bulbs burning out and exploding if trigger
is TRUE
.
flicker_event(amount)
+
+
+
+
+
+ Flicker routine for the light.
+Called by invoke_async so the parent proc can return immediately.
update(trigger, instant, play_sound)
+
+
+
+
+
+ Updates the light's 'on' state and power consumption based on /obj/machinery/light/var/on .
+Arguments:
+
+trigger - Should this update check if the light will explode/burn out.
+instant - Will the lightbulb turn on instantly, or after a short delay.
+play_sound - Will the lightbulb play a sound when it's turned on.
+
+
+
+
diff --git a/obj/machinery/light_construct.html b/obj/machinery/light_construct.html
new file mode 100644
index 0000000000000..9af37a80fa29e
--- /dev/null
+++ b/obj/machinery/light_construct.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+ /obj/machinery/light_construct - Space Station 13
+
+
+
+
+
+
+Incomplete light tube fixture
+Becomes a [Light fixture] when completed
Vars
+ fixture_type Light bulb type
+ newlight Holder for the completed fixture
+ sheets_refunded How many metal sheets get given after deconstruction
+ stage Construction stage (1 = Empty frame | 2 = Wired frame | 3 = Completed frame)
+ Var Details fixture_type
+
+
+
+
+
+ Light bulb type
+ Holder for the completed fixture
sheets_refunded
+
+
+
+
+
+ How many metal sheets get given after deconstruction
stage
+
+
+
+
+
+ Construction stage (1 = Empty frame | 2 = Wired frame | 3 = Completed frame)
+
+
+
diff --git a/obj/machinery/light_construct/small.html b/obj/machinery/light_construct/small.html
new file mode 100644
index 0000000000000..0f330c25a3efe
--- /dev/null
+++ b/obj/machinery/light_construct/small.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /obj/machinery/light_construct/small - Space Station 13
+
+
+
+
+
+
+Incomplete light bulb fixture
+Becomes a [Small light fixture] when completed
+
+
+
diff --git a/obj/machinery/mass_driver.html b/obj/machinery/mass_driver.html
new file mode 100644
index 0000000000000..5e1624988776e
--- /dev/null
+++ b/obj/machinery/mass_driver.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/mass_driver - Space Station 13
+
+
+
+
+
+
+Vars
+ drive_range This is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess.
+ id_tag ID tag, used for buttons
+ power Throw power
+ Var Details drive_range
+
+
+
+
+
+ This is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess.
id_tag
+
+
+
+
+
+ ID tag, used for buttons
power
+
+
+
+
+
+ Throw power
+
+
+
diff --git a/obj/machinery/mecha_part_fabricator.html b/obj/machinery/mecha_part_fabricator.html
new file mode 100644
index 0000000000000..58fd24e88b5a8
--- /dev/null
+++ b/obj/machinery/mecha_part_fabricator.html
@@ -0,0 +1,231 @@
+
+
+
+
+
+
+ /obj/machinery/mecha_part_fabricator - Space Station 13
+
+
+
+
+
+
+A machine that allows for the production of exosuits and robotic parts.
+ Var Details allowed_design_types
+
+
+
+
+
+ Bitflags of design types that can be produced.
being_built
+
+
+
+
+
+ The design that is being currently being built.
build_end
+
+
+
+
+
+ The world.time at which the current design build will end.
build_queue
+
+
+
+
+
+ The build queue. Lazy list.
build_start
+
+
+
+
+
+ The world.time at which the current design build started.
categories
+
+
+
+
+
+ List of categories to display in the UI. Designs intended for each respective category need to have the name in [/datum/design/category]. Defined in [Initialize()][/atom/proc/Initialize].
component_coeff
+
+
+
+
+
+ Resource efficiency multiplier. A lower value means less resources consumed. Updated by [CheckParts()][/atom/proc/CheckParts].
id
+
+
+
+
+
+ Unused. Ensures backwards compatibility with some maps.
local_designs
+
+
+
+
+
+ Holds the locally known R&D designs.
output_dir
+
+
+
+
+
+ Defines what direction this thing spits out it's produced parts
processing_queue
+
+
+
+
+
+ Whether the queue is currently being processed.
selected_category
+
+
+
+
+
+ The currently selected category.
syncing
+
+
+
+
+
+ Whether a R&D sync is currently in progress.
time_coeff
+
+
+
+
+
+ Production time multiplier. A lower value means faster production. Updated by [CheckParts()][/atom/proc/CheckParts].
Proc Details build_design
+
+ Given a design, attempts to build it.
+Arguments:
+
+D - The design to build.
+ build_design_timer_finish
+
+ Called when the timer for building a design finishes.
+Arguments:
+
+D - The design being built.
+final_cost - The materials consumed during the build.
+ can_afford_design
+
+ Returns whether the machine contains enough resources to build the given design.
+Arguments:
+
+D - The design to check.
+ can_insert_materials
+
+ Returns whether the machine can accept new materials.
get_design_build_time
+
+ Calculates the total build time of a design, applying /obj/machinery/mecha_part_fabricator/var/time_coeff .
+Arguments:
+
+D - The design whose build time to calculate.
+ get_design_cost
+
+ Calculates the total resource cost of a design, applying /obj/machinery/mecha_part_fabricator/var/component_coeff .
+Arguments:
+
+D - The design whose cost to calculate.
+ on_material_insert(type_inserted, id_inserted, amount_inserted)
+
+
+
+
+
+ Called by /datum/component/material_container when material sheets are inserted in the machine.
+Arguments:
+
+type_inserted - The material type.
+id_inserted - The material ID.
+amount_inserted - The amount of sheets inserted.
+ on_material_insert_timer_finish()
+
+
+
+
+
+ Called when the timer after inserting material sheets finishes.
process_queue()
+
+
+
+
+
+ Attempts to build the first item in the queue.
sync()
+
+
+
+
+
+ Syncs the R&D designs from the first /obj/machinery/computer/rdconsole in the area.
sync_timer_finish()
+
+
+
+
+
+ Called when the timer for syncing finishes.
+
+
+
diff --git a/obj/machinery/mecha_part_fabricator/upgraded.html b/obj/machinery/mecha_part_fabricator/upgraded.html
new file mode 100644
index 0000000000000..54005889e838e
--- /dev/null
+++ b/obj/machinery/mecha_part_fabricator/upgraded.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/mecha_part_fabricator/upgraded - Space Station 13
+
+
+
+
+
+
+Proc Details Initialize(mapload)
+
+
+
+
+
+ Exosuit Fabricator (upgraded)
+Upgraded variant of /obj/machinery/mecha_part_fabricator .
+
+
+
diff --git a/obj/machinery/mineral/equipment_vendor.html b/obj/machinery/mineral/equipment_vendor.html
new file mode 100644
index 0000000000000..181a9b86c66ec
--- /dev/null
+++ b/obj/machinery/mineral/equipment_vendor.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ /obj/machinery/mineral/equipment_vendor - Space Station 13
+
+
+
+
+
+
+Mining Equipment Vendor
Procs
+ redeem_voucher Called when someone slaps the machine with a mining voucher
Proc Details redeem_voucher(/obj /item /mining_voucher/voucher, /mob /redeemer)
+
+
+
+
+
+ Called when someone slaps the machine with a mining voucher
+Arguments:
+
+voucher - The voucher card item
+redeemer - The person holding it
+
+
+
+
diff --git a/obj/machinery/mineral/mint.html b/obj/machinery/mineral/mint.html
new file mode 100644
index 0000000000000..e9d1252ce845d
--- /dev/null
+++ b/obj/machinery/mineral/mint.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/machinery/mineral/mint - Space Station 13
+
+
+
+
+
+
+
+ Var Details active
+
+
+
+
+
+ Is it creating coins now?
chosen_material
+
+
+
+
+
+ Which material will be used to make coins or for ejecting.
money_bag
+
+
+
+
+
+ Inserted money bag.
total_coins
+
+
+
+
+
+ How many coins did the machine make in total.
+
+
+
diff --git a/obj/machinery/mineral/ore_redemption.html b/obj/machinery/mineral/ore_redemption.html
new file mode 100644
index 0000000000000..e30237eeeaede
--- /dev/null
+++ b/obj/machinery/mineral/ore_redemption.html
@@ -0,0 +1,166 @@
+
+
+
+
+
+
+ /obj/machinery/mineral/ore_redemption - Space Station 13
+
+
+
+
+
+
+Turns all the various mining machines into a single unit to speed up tmining and establish a point system.
Vars
+ anyone_claim If TRUE, /obj/machinery/mineral/ore_redemption/var/req_access_claim is ignored and any ID may be used to claim points.
+ files Locally known R&D designs.
+ inserted_disk The currently inserted design disk.
+ message_sent Whether the message to relevant supply consoles was sent already or not for an ore dump. If FALSE, another will be sent.
+ ore_buffer List of ore yet to process.
+ point_upgrade Point multiplier applied when smelting ore. Updated by [/obj/machinery/proc/RefreshParts].
+ points The number of unclaimed points.
+ req_access_claim The access number required to claim points from the machine.
+ sheet_per_ore Sheet multiplier applied when smelting ore. Updated by [/obj/machinery/proc/RefreshParts].
+ supply_consoles List of supply console department names that can receive a notification about ore dumps.
+A list may be provided as entry value to only notify when specific ore is dumped. Procs
+ get_num_smeltable_alloy Returns the amount of alloy sheets that can be produced from the given design.
+ give_points Adds a set number of mining points, based on the ore points, the ore amount, and the ORM upgrade state.
+ on_material_insert Called when an item is inserted manually as material.
+ process_ores Processes the given list of ores.
+ send_console_message Notifies all relevant supply consoles with the machine's contents.
+ smelt_ore Smelts the given stack of ore.
+ Var Details anyone_claim
+
+
+
+
+
+ If TRUE, /obj/machinery/mineral/ore_redemption/var/req_access_claim is ignored and any ID may be used to claim points.
+ Locally known R&D designs.
inserted_disk
+
+
+
+
+
+ The currently inserted design disk.
message_sent
+
+
+
+
+
+ Whether the message to relevant supply consoles was sent already or not for an ore dump. If FALSE, another will be sent.
ore_buffer
+ – /list/obj/item/stack/ore
+
+
+
+
+ List of ore yet to process.
point_upgrade
+
+
+
+
+
+ Point multiplier applied when smelting ore. Updated by [/obj/machinery/proc/RefreshParts].
points
+
+
+
+
+
+ The number of unclaimed points.
req_access_claim
+
+
+
+
+
+ The access number required to claim points from the machine.
sheet_per_ore
+
+
+
+
+
+ Sheet multiplier applied when smelting ore. Updated by [/obj/machinery/proc/RefreshParts].
supply_consoles
+
+
+
+
+
+ List of supply console department names that can receive a notification about ore dumps.
+A list may be provided as entry value to only notify when specific ore is dumped.
Proc Details get_num_smeltable_alloy
+
+ Returns the amount of alloy sheets that can be produced from the given design.
+Arguments:
+
+D - The smelting design.
+ give_points
+
+ Adds a set number of mining points, based on the ore points, the ore amount, and the ORM upgrade state.
+Arguments:
+
+ore_path - The typepath of the inserted ore.
+ore_amount - The amount of ore which has been inserted.
+ on_material_insert(inserted_type, last_inserted_id, inserted)
+
+
+
+
+
+ Called when an item is inserted manually as material.
+Arguments:
+
+inserted_type - The type of the inserted item.
+last_inserted_id - The ID of the last material to have been inserted.
+inserted - The amount of material inserted.
+ process_ores(/list/obj/item/stack/ore/L)
+
+
+
+
+
+ Processes the given list of ores.
+Arguments:
+
+L - List of ores to process.
+ send_console_message()
+
+
+
+
+
+ Notifies all relevant supply consoles with the machine's contents.
smelt_ore
+
+ Smelts the given stack of ore.
+Arguments:
+
+O - The ore stack to smelt.
+
+
+
+
diff --git a/obj/machinery/newscaster.html b/obj/machinery/newscaster.html
new file mode 100644
index 0000000000000..ad9535fecbe06
--- /dev/null
+++ b/obj/machinery/newscaster.html
@@ -0,0 +1,231 @@
+
+
+
+
+
+
+ /obj/machinery/newscaster - Space Station 13
+
+
+
+
+
+
+For all of the crew's news need. Includes reading, submitting and printing stories.
+Includes a security variant which can be used to issue wanted notices, censor channels and stories.
+Allows full access when aghosting.
+ Var Details alert
+
+
+
+
+
+ Whether the newscaster has new stories or not.
is_printing
+
+
+
+
+
+ Whether the newscaster is currently printing a newspaper or not.
is_security
+
+
+
+
+
+ Whether the newscaster can be used to make wanted issues or not.
is_silent
+
+
+
+
+
+ Whether the unit is silent or not.
jobblacklist
+
+
+
+
+
+ Static list of jobs that shouldn't be advertised if a position is available.
last_views
+
+
+
+
+
+ Static, lazy list containing a user's last view time per channel.
paper_remaining
+
+
+
+
+
+ The amount of newspapers the newscaster can print.
photo
+
+
+
+
+
+ The currently attached photo.
scanned_user
+
+
+
+
+
+ The name of the mob currently using the newscaster.
screen
+
+
+
+
+
+ The current screen index in the UI.
temp_notice
+
+
+
+
+
+ The current temporary notice.
unit_number
+
+
+
+
+
+ The newcaster's index among all newscasters (GLOB.allNewscasters).
+ The currently viewed channel.
Proc Details AltClick
+
+ Ejects the currently loaded photo if there is one.
alert_news(announcement, wanted_notice)
+
+
+
+
+
+ Makes the newscaster say a message and change its icon state for a while.
+Arguments:
+
+announcement - The message to say
+wanted_notice - Whether the alert is a wanted notice notification (overrides announcement)
+ alert_timer_finish()
+
+
+
+
+
+ Called when the timer following a call to /obj/machinery/newscaster/proc/alert_news finishes.
can_scan
+
+ Returns whether the machine's /obj/machinery/newscaster/var/scanned_user should update on interact.
+Arguments:
+
+user - The user to check
+ eject_photo
+
+ Ejects the photo currently held by the machine if there is one.
+Arguments:
+
+user - The user to try to give the photo to.
+
+ Returns a /datum/feed_message in a format that can be used as TGUI data.
+Arguments:
+
+FM - The story to send
+M - Optional. The user to send the story's photo to if it exists
+ get_scanned_user
+
+ Tries to obtain a mob's name and security access based on their ID.
+Arguments:
+print_newspaper()
+
+
+
+
+
+ Tries to print a newspaper with all of the content so far.
print_newspaper_finish()
+
+
+
+
+
+ Called when the timer following a call to /obj/machinery/newscaster/proc/print_newspaper finishes.
set_temp(text, style, update_now)
+
+
+
+
+
+ Sets a temporary message to display to the user
+Arguments:
+
+text - Text to display, null/empty to clear the message from the UI
+style - The style of the message: (color name), info, success, warning, danger
+ ui_act_modal(action, /list/params)
+
+
+
+
+
+ Called in ui_act() to process modal actions
+Arguments:
+
+action - The action passed by tgui
+params - The params passed by tgui
+
+
+
+
diff --git a/obj/machinery/nuclearbomb.html b/obj/machinery/nuclearbomb.html
new file mode 100644
index 0000000000000..18b3842a85b09
--- /dev/null
+++ b/obj/machinery/nuclearbomb.html
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+ /obj/machinery/nuclearbomb - Space Station 13
+
+
+
+
+
+
+Vars
+ anchor_stage The same state removal stage is, until someone opens the panel of the nuke. This way we can have someone open the front of the nuke, while keeping track of where in the world we are on the anchoring bolts.
+ code Code entered by user
+ core_stage This is so that we can check if the internal components are sealed up properly when the outer hatch is closed.
+ exploded Have we gone boom yet?
+ extended Are our bolts supposed to be in the floor, may not actually cause anchoring if the bolts are cut
+ r_code Random code between 10000 and 99999
+ radio Bombs Internal Radio
+ requires_NAD_to_unbolt If this is true you cannot unbolt the NAD with tools, only the NAD
+ sheets_to_fix How many sheets of various metals we need to fix it
+ sprite_prefix Prefix to add, if any, on icon states for this bomb
+ timeleft Countdown to boom
+ timing Are we counting down?
+ training Is this a training bomb?
+ yes_code Is the most recently inputted code correct? Procs
+ get_nuke_site Determine the location of the nuke with respect to the station. Used for,
+among other things, calculating win conditions for nukies and choosing which
+round-end cinematic to play.
+ Var Details anchor_stage
+
+
+
+
+
+ The same state removal stage is, until someone opens the panel of the nuke. This way we can have someone open the front of the nuke, while keeping track of where in the world we are on the anchoring bolts.
code
+
+
+
+
+
+ Code entered by user
core_stage
+
+
+
+
+
+ This is so that we can check if the internal components are sealed up properly when the outer hatch is closed.
exploded
+
+
+
+
+
+ Have we gone boom yet?
extended
+
+
+
+
+
+ Are our bolts supposed to be in the floor, may not actually cause anchoring if the bolts are cut
r_code
+
+
+
+
+
+ Random code between 10000 and 99999
+ Bombs Internal Radio
requires_NAD_to_unbolt
+
+
+
+
+
+ If this is true you cannot unbolt the NAD with tools, only the NAD
sheets_to_fix
+
+
+
+
+
+ How many sheets of various metals we need to fix it
sprite_prefix
+
+
+
+
+
+ Prefix to add, if any, on icon states for this bomb
timeleft
+
+
+
+
+
+ Countdown to boom
timing
+
+
+
+
+
+ Are we counting down?
training
+
+
+
+
+
+ Is this a training bomb?
yes_code
+
+
+
+
+
+ Is the most recently inputted code correct?
Proc Details get_nuke_site()
+
+
+
+
+
+ Determine the location of the nuke with respect to the station. Used for,
+among other things, calculating win conditions for nukies and choosing which
+round-end cinematic to play.
+
+
+
diff --git a/obj/machinery/pdapainter.html b/obj/machinery/pdapainter.html
new file mode 100644
index 0000000000000..b3d809b98df46
--- /dev/null
+++ b/obj/machinery/pdapainter.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/pdapainter - Space Station 13
+
+
+
+
+
+
+
+ Var Details cached_icon_state
+
+
+
+
+
+ Cache of the icon state of the currently inserted PDA
colorlist
+
+
+
+
+
+ List of possible PDA colors to choose from
preview_icon_state
+
+
+
+
+
+ The preview to show of what the new paint will look like
+
+
+
diff --git a/obj/machinery/photocopier.html b/obj/machinery/photocopier.html
new file mode 100644
index 0000000000000..9aebb9a2bc5f7
--- /dev/null
+++ b/obj/machinery/photocopier.html
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+ /obj/machinery/photocopier - Space Station 13
+
+
+
+
+
+
+Vars
+ copying Is the photocopier performing an action currently?
+ copyitem Current obj stored in the copier to be copied
+ copymob Mob that is currently on the photocopier
+ folder Current folder obj stored in the copier to copy into
+ maxcopies Max number of copies that can be made at one time
+ saved_documents Lazy init list, Objs currently saved inside the photocopier for printing later
+ total_copies Total copies printed from copymachines globally Procs
+ bundlecopy A public proc for copying bundles of paper
+ cancopy An internal proc for checking if a photocopier is able to copy an object
+ check_mob Internal proc for checking the Mob on top of the copier
+Reports FALSE if there is no copymob or if the copymob is in a diff location than the copy machine, otherwise reports TRUE
+ copy Public proc for copying items
+ papercopy Public proc for copying paper objs
+ photocopy Public proc for copying photo objs
+ Var Details copying
+
+
+
+
+
+ Is the photocopier performing an action currently?
copyitem
+
+
+
+
+
+ Current obj stored in the copier to be copied
copymob
+
+
+
+
+
+ Mob that is currently on the photocopier
folder
+
+
+
+
+
+ Current folder obj stored in the copier to copy into
maxcopies
+
+
+
+
+
+ Max number of copies that can be made at one time
saved_documents
+
+
+
+
+
+ Lazy init list, Objs currently saved inside the photocopier for printing later
total_copies
+
+
+
+
+
+ Total copies printed from copymachines globally
Proc Details bundlecopy(/obj /item /paper_bundle/bundle, scanning, use_toner)
+
+
+
+
+
+ A public proc for copying bundles of paper
+It iterates through each object in the bundle and calls papercopy() and photocopy() and stores the produce photo/paper in the bundle
+Arguments:
+
+bundle - The paper bundle object being copied
+scanning - If true, the paper bundle is stored inside the photocopier
+use_toner - If true, this operation uses toner, this is not done in copy() because partial bundles would be impossible otherwise
+ cancopy(scancopy)
+
+
+
+
+
+ An internal proc for checking if a photocopier is able to copy an object
+It performs early checks/returns to see if the copier has any toner, if the copier is powered/working,
+if the copier is currently perfoming an action, or if we've hit the global copy limit. Used to inform
+the player in-game if they're using the photocopier incorrectly (no toner, no item inside, etc)
+Arguments:
+
+scancopy - If TRUE, cancopy does not check for an item on/inside the copier to copy, used for copying stored files
+ check_mob()
+
+
+
+
+
+ Internal proc for checking the Mob on top of the copier
+Reports FALSE if there is no copymob or if the copymob is in a diff location than the copy machine, otherwise reports TRUE
copy
+
+ Public proc for copying items
+Determines what item needs to be copied whether it's a mob's ass, paper, bundle, or photo and then calls the respective
+proc for it. Most toner var changing happens here so that the faxmachine child obj does not need to worry about toner
+Arguments:
+
+obj/item/C - The item stored inside the photocopier to be copied (obj/paper, obj/photo, obj/paper_bundle)
+scancopy - Indicates that obj/item/C is a stored file, we need to pass this on to cancopy() so it passes the check
+ papercopy
+
+ Public proc for copying paper objs
+Takes a paper object and makes a copy of it. This proc specifically does not change toner which allows more versatile use for child objects
+returns null if paper failed to be copied and returns the new copied paper obj if succesful
+Arguments:
+
+obj/item/paper/copy - The paper obj to be copied
+scanning - If true, the photo is stored inside the photocopier and we do not check for toner
+bundled - If true the photo is stored inside the photocopier, used by bundlecopy() to construct paper bundles
+ photocopy(/obj /item /photo/photocopy, scanning, bundled)
+
+
+
+
+
+ Public proc for copying photo objs
+Takes a photo object and makes a copy of it. This proc specifically does not change toner which allows more versatile use for child objects
+returns null if photo failed to be copied and returns the new copied photo object if succesful
+Arguments:
+
+obj/item/photo/photocopy - The photo obj to be copied
+scanning - If true, the photo is stored inside the photocopier and we do not check for toner
+bundled - If true the photo is stored inside the photocopier, used by bundlecopy() to construct paper bundles
+
+
+
+
diff --git a/obj/machinery/photocopier/faxmachine.html b/obj/machinery/photocopier/faxmachine.html
new file mode 100644
index 0000000000000..f61b494bcb20f
--- /dev/null
+++ b/obj/machinery/photocopier/faxmachine.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/machinery/photocopier/faxmachine - Space Station 13
+
+
+
+
+
+
+Vars
+ authenticated Whether the machine is "logged in" or not
+ cooldown_time After sending a message to CC/syndicate, cannot send another to them for this many deciseconds
+ department Our department, determines whether this machine gets faxes sent to a department
+ destination Target department to send outgoing faxes to
+ long_range_enabled Can we send messages off-station?
+ scan ID card inserted into the machine, used to log in with
+ sendcooldown Next world.time at which this fax machine can send a message to CC/syndicate
+ syndie_restricted If true, prevents fax machine from sending messages to NT machines
+ Var Details authenticated
+
+
+
+
+
+ Whether the machine is "logged in" or not
cooldown_time
+
+
+
+
+
+ After sending a message to CC/syndicate, cannot send another to them for this many deciseconds
department
+
+
+
+
+
+ Our department, determines whether this machine gets faxes sent to a department
destination
+
+
+
+
+
+ Target department to send outgoing faxes to
long_range_enabled
+
+
+
+
+
+ Can we send messages off-station?
+ ID card inserted into the machine, used to log in with
sendcooldown
+
+
+
+
+
+ Next world.time at which this fax machine can send a message to CC/syndicate
syndie_restricted
+
+
+
+
+
+ If true, prevents fax machine from sending messages to NT machines
+
+
+
diff --git a/obj/machinery/porta_turret.html b/obj/machinery/porta_turret.html
new file mode 100644
index 0000000000000..09eb82efe122e
--- /dev/null
+++ b/obj/machinery/porta_turret.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/machinery/porta_turret - Space Station 13
+
+
+
+
+
+
+Vars
+ deployment_override Deployment override to allow turret popup on/under dense turfs/objects, for admin/CC turrets
+ initial_eprojectile What lethal mode projectile with the turret start with?
+ initial_projectile What non-lethal mode projectile with the turret start with? Procs
+ pop_up Whitelist to determine what objects can be put over turrets while letting them deploy
+ Var Details deployment_override
+
+
+
+
+
+ Deployment override to allow turret popup on/under dense turfs/objects, for admin/CC turrets
initial_eprojectile
+
+
+
+
+
+ What lethal mode projectile with the turret start with?
initial_projectile
+
+
+
+
+
+ What non-lethal mode projectile with the turret start with?
Proc Details pop_up()
+
+
+
+
+
+ Whitelist to determine what objects can be put over turrets while letting them deploy
+
+
+
diff --git a/obj/machinery/power.html b/obj/machinery/power.html
new file mode 100644
index 0000000000000..3c3b318968dad
--- /dev/null
+++ b/obj/machinery/power.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ /obj/machinery/power - Space Station 13
+
+
+
+
+
+
+Procs
+ add_queued_power_demand Adds queued power demand to be met next process cycle
+ consume_direct_power Adds power demand to the powernet, machines should use this
+ get_available_power Gets power available (NOT EXTRA) on this cables powernet, machines should use this
+ get_power_balance Gets surplus power available on this machines powernet, machines should use this proc
+ get_queued_available_power Gets available (NOT EXTRA) power queued for next process cycle on this machines powernet
+ get_queued_surplus Gets surplus power queued for next process cycle on this cables powernet
+ get_surplus Gets surplus power available on this machines powernet, machines should use this proc
Proc Details add_queued_power_demand(amount)
+
+
+
+
+
+ Adds queued power demand to be met next process cycle
consume_direct_power(amount)
+
+
+
+
+
+ Adds power demand to the powernet, machines should use this
get_available_power()
+
+
+
+
+
+ Gets power available (NOT EXTRA) on this cables powernet, machines should use this
get_power_balance()
+
+
+
+
+
+ Gets surplus power available on this machines powernet, machines should use this proc
get_queued_available_power()
+
+
+
+
+
+ Gets available (NOT EXTRA) power queued for next process cycle on this machines powernet
get_queued_surplus()
+
+
+
+
+
+ Gets surplus power queued for next process cycle on this cables powernet
get_surplus()
+
+
+
+
+
+ Gets surplus power available on this machines powernet, machines should use this proc
+
+
+
diff --git a/obj/machinery/power/apc.html b/obj/machinery/power/apc.html
new file mode 100644
index 0000000000000..911e30539d9fb
--- /dev/null
+++ b/obj/machinery/power/apc.html
@@ -0,0 +1,373 @@
+
+
+
+
+
+
+ /obj/machinery/power/apc - Space Station 13
+
+
+
+
+
+
+Vars
+ aidisabled Can silicons access this APC?
+ apc_area APC Area/Powernet vars
+the area that this APC is in
+ areastring the set string name of the area, used in naming the APC
+ autoflag settings variable for having the APC auto use certain power channel settings
+ being_hijacked Being hijacked by a pulse demon?
+ cell APC Cell Vars
+the cell type stored in this APC
+ cell_type Base cell has 2500 capacity. Enter the path of a different cell you want to use. cell determines charge rates, max capacity, ect. These can also be changed with other APC vars, but isn't recommended to minimize the risk of accidental usage of dirty editted APCs
+ chargecount Counter var, ticks up when the APC receives power from terminal and resets to 0 when not charging, used for the var/charging
var
+ chargemode If TRUE, the APC will automatically draw power from connect terminal, if FALSE it will not charge
+ charging The current charging mode of the APC: not charging, charging, fully charged
+ constructed Was this APC built instead of already existing? Used for malfhack to keep borgs from building apcs in space
+ coverlocked Is the APC cover locked? i.e cannot be opened?
+ emergency_power Used to determine if emergency lights should be on or off
+ environment_channel The current setting for the environment channel
+ equipment_channel The current setting for the equipment channel
+ last_used_environment amount of power used in the last cycle for environment channel
+ last_used_equipment amount of power used in the last cycle for equipment channel
+ last_used_lighting amount of power used in the last cycle for lighting channel
+ last_used_total amount of power used in the last cycle in total
+ lighting_channel APC Settings Vars
+The current setting for the lighting channel
+ locked Is the APC User Interface locked (prevents interaction)? Will not prevent silicons or admin observers from interacting
+ longtermpower A counter var used to help determine if the APC has not been charging long enough to justify not performing certain auto setting such as turning all channels back on
+ main_status The status of the terminals powernet that this APC is connected to: not connected, no power, or recieving power
+ malfhack APC Malf AI Vars
+ opened State of the APC Cover - Closed, Open, or Off
+ operating Is the APC on and transmitting power to enabled breakers? Think of this var as the master breaker for the APC
+ shorted Can the APC receive/transmit power? Determined by the condition of the 2 Main Power Wires
+ start_charge the percentage charge the internal battery will start with
+ terminal The power terminal connected to this APC
+ update_state APC Overlay Vars
+ wires APC Status Vars
+The wire panel associated with this APC Procs
+ autoset
+ check_ai_control_callback Updates APC to AI accesible if AI Wire is mended
+ check_main_power_callback Updates APC to not be shorted if both main power wires are mended
+ connect_to_network Override because the APC does not directly connect to the network; it goes through a terminal.
+ emp_act
+ get_cell
+ handle_shock_chance Handles APC arc'ing every APC process interval
+ overload_lighting overload all the lights in this APC area
+ process What the APC will do every process interval, updates power settings and power changes depending on powernet state
+ recharge_apc If the APC has a cell, recharge it
+ repair_apc Repairs all wires, enables all breakers, and unshorts the APC
+ set_broken ************* ---
+APC Helper Procs --- Antag Abilities/Fun Stuff
+************* ---
+set APC stat as broken and set it to be non operational, kick out an AI if there's a malf one in it
+ set_nightshift sets nightshift mode on for the APC
+ togglelock
+ turn_emergency_power_off turns off emergency power and sets each light to update
+ Var Details aidisabled
+
+
+
+
+
+ Can silicons access this APC?
apc_area
+
+
+
+
+
+ APC Area/Powernet vars
+the area that this APC is in
areastring
+
+
+
+
+
+ the set string name of the area, used in naming the APC
autoflag
+
+
+
+
+
+ settings variable for having the APC auto use certain power channel settings
being_hijacked
+
+
+
+
+
+ Being hijacked by a pulse demon?
cell
+
+
+
+
+
+ APC Cell Vars
+the cell type stored in this APC
cell_type
+
+
+
+
+
+ Base cell has 2500 capacity. Enter the path of a different cell you want to use. cell determines charge rates, max capacity, ect. These can also be changed with other APC vars, but isn't recommended to minimize the risk of accidental usage of dirty editted APCs
chargecount
+
+
+
+
+
+ Counter var, ticks up when the APC receives power from terminal and resets to 0 when not charging, used for the var/charging
var
chargemode
+
+
+
+
+
+ If TRUE, the APC will automatically draw power from connect terminal, if FALSE it will not charge
charging
+
+
+
+
+
+ The current charging mode of the APC: not charging, charging, fully charged
constructed
+
+
+
+
+
+ Was this APC built instead of already existing? Used for malfhack to keep borgs from building apcs in space
coverlocked
+
+
+
+
+
+ Is the APC cover locked? i.e cannot be opened?
emergency_power
+
+
+
+
+
+ Used to determine if emergency lights should be on or off
environment_channel
+
+
+
+
+
+ The current setting for the environment channel
equipment_channel
+
+
+
+
+
+ The current setting for the equipment channel
last_used_environment
+
+
+
+
+
+ amount of power used in the last cycle for environment channel
last_used_equipment
+
+
+
+
+
+ amount of power used in the last cycle for equipment channel
last_used_lighting
+
+
+
+
+
+ amount of power used in the last cycle for lighting channel
last_used_total
+
+
+
+
+
+ amount of power used in the last cycle in total
lighting_channel
+
+
+
+
+
+ APC Settings Vars
+The current setting for the lighting channel
locked
+
+
+
+
+
+ Is the APC User Interface locked (prevents interaction)? Will not prevent silicons or admin observers from interacting
longtermpower
+
+
+
+
+
+ A counter var used to help determine if the APC has not been charging long enough to justify not performing certain auto setting such as turning all channels back on
main_status
+
+
+
+
+
+ The status of the terminals powernet that this APC is connected to: not connected, no power, or recieving power
malfhack
+
+
+
+
+
+ APC Malf AI Vars
opened
+
+
+
+
+
+ State of the APC Cover - Closed, Open, or Off
operating
+
+
+
+
+
+ Is the APC on and transmitting power to enabled breakers? Think of this var as the master breaker for the APC
shorted
+
+
+
+
+
+ Can the APC receive/transmit power? Determined by the condition of the 2 Main Power Wires
start_charge
+
+
+
+
+
+ the percentage charge the internal battery will start with
+ The power terminal connected to this APC
update_state
+
+
+
+
+
+ APC Overlay Vars
wires
+
+
+
+
+
+ APC Status Vars
+The wire panel associated with this APC
Proc Details autoset(current_setting, new_setting)
+
+
+
+
+
+ autoset
+this proc is rather confusing at first glance, it handles apc power channel settings when trying to
+auto set values to it, good luck understanding how this works but I sure as hell don't
check_ai_control_callback()
+
+
+
+
+
+ Updates APC to AI accesible if AI Wire is mended
check_main_power_callback()
+
+
+
+
+
+ Updates APC to not be shorted if both main power wires are mended
connect_to_network()
+
+
+
+
+
+ Override because the APC does not directly connect to the network; it goes through a terminal.
emp_act(severity)
+
+
+
+
+
+
+External Acts on the APCS
+get_cell()
+
+
+
+
+
+
+APC Power Procs
+handle_shock_chance(excess)
+
+
+
+
+
+ Handles APC arc'ing every APC process interval
overload_lighting(chance)
+
+
+
+
+
+ overload all the lights in this APC area
process()
+
+
+
+
+
+ What the APC will do every process interval, updates power settings and power changes depending on powernet state
recharge_apc()
+
+
+
+
+
+ If the APC has a cell, recharge it
repair_apc()
+
+
+
+
+
+ Repairs all wires, enables all breakers, and unshorts the APC
set_broken()
+
+
+
+
+
+ ************* ---
+APC Helper Procs --- Antag Abilities/Fun Stuff
+************* ---
+set APC stat as broken and set it to be non operational, kick out an AI if there's a malf one in it
set_nightshift(on)
+
+
+
+
+
+ sets nightshift mode on for the APC
togglelock
+
+
+APC Settings
+turn_emergency_power_off()
+
+
+
+
+
+ turns off emergency power and sets each light to update
+
+
+
diff --git a/obj/machinery/power/apc/worn_out.html b/obj/machinery/power/apc/worn_out.html
new file mode 100644
index 0000000000000..c08c818ae48fe
--- /dev/null
+++ b/obj/machinery/power/apc/worn_out.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ /obj/machinery/power/apc/worn_out - Space Station 13
+
+
+
+
+
+
+
+APC subtypes
+
+
+
+
diff --git a/obj/machinery/power/bluespace_tap.html b/obj/machinery/power/bluespace_tap.html
new file mode 100644
index 0000000000000..df9e1288410f7
--- /dev/null
+++ b/obj/machinery/power/bluespace_tap.html
@@ -0,0 +1,179 @@
+
+
+
+
+
+
+ /obj/machinery/power/bluespace_tap - Space Station 13
+
+
+
+
+
+
+A station goal that consumes enormous amounts of power to generate (mostly fluff) rewards
+A machine that takes power each tick, generates points based on it
+and lets you spend those points on rewards. A certain amount of points
+has to be generated for the station goal to count as completed.
Vars
+ active_nether_portals When event triggers this will hold references to all portals so we can fix the sprite after they're broken
+ actual_power_usage How much power the machine needs per processing tick at the current level.
+ base_points Amount of points to give per mining level
+ desired_level The machine you WANT the machine to mine at. It will try to match this.
+ fillers For faking having a big machine, dummy 'machines' that are hidden inside the large sprite and make certain tiles dense. See new and destroy.
+ input_level The level the machine is currently mining at. 0 means off
+ max_level Max power input level, I don't expect this to be ever reached
+ points Available mining points
+ power_needs Correspond to power required for a mining level, first entry for level 1, etc.
+ product_list list of possible products
+ safe_levels How high the machine can be run before it starts having a chance for dimension breaches.
+ total_points The total points earned by this machine so far, for tracking station goal and highscore Procs
+ attack_hand A list of lists, each inner list equals a datum
+ decrease_level Decreases the desired mining level
+ get_power_use Gets the amount of power at a set input level
+ increase_level Increases the desired mining level
+ produce Produces the product with the desired key and increases product cost accordingly
+ set_level Sets the desired mining level
+ Var Details active_nether_portals
+
+
+
+
+
+ When event triggers this will hold references to all portals so we can fix the sprite after they're broken
actual_power_usage
+
+
+
+
+
+ How much power the machine needs per processing tick at the current level.
base_points
+
+
+
+
+
+ Amount of points to give per mining level
desired_level
+
+
+
+
+
+ The machine you WANT the machine to mine at. It will try to match this.
fillers
+
+
+
+
+
+ For faking having a big machine, dummy 'machines' that are hidden inside the large sprite and make certain tiles dense. See new and destroy.
+ The level the machine is currently mining at. 0 means off
max_level
+
+
+
+
+
+ Max power input level, I don't expect this to be ever reached
points
+
+
+
+
+
+ Available mining points
power_needs
+
+
+
+
+
+ Correspond to power required for a mining level, first entry for level 1, etc.
product_list
+
+
+
+
+
+ list of possible products
safe_levels
+
+
+
+
+
+ How high the machine can be run before it starts having a chance for dimension breaches.
total_points
+
+
+
+
+
+ The total points earned by this machine so far, for tracking station goal and highscore
Proc Details attack_hand
+
+ A list of lists, each inner list equals a datum
decrease_level()
+
+
+
+
+
+ Decreases the desired mining level
+Decreases the desired mining level, that
+the machine tries to reach if there
+is enough power for it. Note that it does
+NOT decrease the actual mining level directly.
get_power_use(i_level)
+
+
+
+
+
+ Gets the amount of power at a set input level
+Gets the amount of power (in W) a set input level needs.
+Note that this is not necessarily the current power use.
+
+i_level - The hypothetical input level for which we want to know the power use.
+ increase_level()
+
+
+
+
+
+ Increases the desired mining level
+Increases the desired mining level, that
+the machine tries to reach if there
+is enough power for it. Note that it does
+NOT increase the actual mining level directly.
produce(key)
+
+
+
+
+
+ Produces the product with the desired key and increases product cost accordingly
set_level(t_level)
+
+
+
+
+
+ Sets the desired mining level
+Sets the desired mining level, that
+the machine tries to reach if there
+is enough power for it. Note that it does
+NOT change the actual mining level directly.
+Arguments:
+
+t_level - The level we try to set it at, between 0 and max_level
+
+
+
+
diff --git a/obj/machinery/power/compressor.html b/obj/machinery/power/compressor.html
new file mode 100644
index 0000000000000..2c89f5ec9c15c
--- /dev/null
+++ b/obj/machinery/power/compressor.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/power/compressor - Space Station 13
+
+
+
+
+
+
+Vars
+ last_overheat This value needs to be zero. It represents seconds since the last overheat event
+ overheat value that dertermines the amount of overheat "damage" on the turbine.
+ radio Internal radio, used to alert engineers of turbine trip!
+ Var Details last_overheat
+
+
+
+
+
+ This value needs to be zero. It represents seconds since the last overheat event
overheat
+
+
+
+
+
+ value that dertermines the amount of overheat "damage" on the turbine.
+ Internal radio, used to alert engineers of turbine trip!
+
+
+
diff --git a/obj/machinery/power/emitter.html b/obj/machinery/power/emitter.html
new file mode 100644
index 0000000000000..d4193709903a1
--- /dev/null
+++ b/obj/machinery/power/emitter.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /obj/machinery/power/emitter - Space Station 13
+
+
+
+
+
+
+
+ Var Details active
+
+
+
+
+
+ Is the emitter turned on
fire_delay
+
+
+
+
+
+ Delay between each emitter shot (In deciseconds)
last_shot
+
+
+
+
+
+ When was the last emitter shot
locked
+
+
+
+
+
+ Locked by an ID card
maximum_fire_delay
+
+
+
+
+
+ Maximum delay between each emitter shot
minimum_fire_delay
+
+
+
+
+
+ Minimum delay between each emitter shot
powered
+
+
+
+
+
+ Is the emitter powered
shot_number
+
+
+
+
+
+ How many shots have been fired
state
+
+
+
+
+
+ Construction state
+
+
+
diff --git a/obj/machinery/power/port_gen.html b/obj/machinery/power/port_gen.html
new file mode 100644
index 0000000000000..35245e2023303
--- /dev/null
+++ b/obj/machinery/power/port_gen.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/power/port_gen - Space Station 13
+
+
+
+
+
+
+Proc Details remove_emp()
+
+
+
+
+
+ Callback proc for EMP status
+
+
+
diff --git a/obj/machinery/power/port_gen/pacman.html b/obj/machinery/power/port_gen/pacman.html
new file mode 100644
index 0000000000000..2b0387473c5cc
--- /dev/null
+++ b/obj/machinery/power/port_gen/pacman.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/machinery/power/port_gen/pacman - Space Station 13
+
+
+
+
+
+
+Vars
+ max_power_output The maximum power setting without emagging.
+ max_safe_output For UI use, maximal output that won't cause overheat.
+ max_sheets max capacity of the hopper
+ max_temperature max temperature before overheating increases
+ overheating if this gets high enough the generator explodes
+ sheet_left How much is left of the current sheet
+ sheets How many sheets of material are loaded in the generator
+ temperature The current temperature
+ temperature_gain how much the temperature increases per power output level, in degrees per level
+ time_per_sheet fuel efficiency - how long 1 sheet lasts at power level 1
+ Var Details max_power_output
+
+
+
+
+
+ The maximum power setting without emagging.
max_safe_output
+
+
+
+
+
+ For UI use, maximal output that won't cause overheat.
max_sheets
+
+
+
+
+
+ max capacity of the hopper
max_temperature
+
+
+
+
+
+ max temperature before overheating increases
overheating
+
+
+
+
+
+ if this gets high enough the generator explodes
sheet_left
+
+
+
+
+
+ How much is left of the current sheet
sheets
+
+
+
+
+
+ How many sheets of material are loaded in the generator
temperature
+
+
+
+
+
+ The current temperature
temperature_gain
+
+
+
+
+
+ how much the temperature increases per power output level, in degrees per level
time_per_sheet
+
+
+
+
+
+ fuel efficiency - how long 1 sheet lasts at power level 1
+
+
+
diff --git a/obj/machinery/power/turbine.html b/obj/machinery/power/turbine.html
new file mode 100644
index 0000000000000..13d74994274cf
--- /dev/null
+++ b/obj/machinery/power/turbine.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/power/turbine - Space Station 13
+
+
+
+
+
+
+
+ Var Details generator_threshold
+
+
+
+
+
+ If the turbine is outputing enough to visibly affect its sprite
+
+
+
diff --git a/obj/machinery/prize_counter.html b/obj/machinery/prize_counter.html
new file mode 100644
index 0000000000000..9d4d059c585c0
--- /dev/null
+++ b/obj/machinery/prize_counter.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/prize_counter - Space Station 13
+
+
+
+
+
+
+Vars
+ tickets Amount of arcade tickets in the prize counter.
+ Var Details tickets
+
+
+
+
+
+ Amount of arcade tickets in the prize counter.
+
+
+
diff --git a/obj/machinery/processor.html b/obj/machinery/processor.html
new file mode 100644
index 0000000000000..2e3e7893e8c63
--- /dev/null
+++ b/obj/machinery/processor.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/machinery/processor - Space Station 13
+
+
+
+
+
+
+Proc Details select_recipe(X)
+
+
+
+
+
+ END MOB RECIPIES
+
+
+
diff --git a/obj/machinery/r_n_d/experimentor.html b/obj/machinery/r_n_d/experimentor.html
new file mode 100644
index 0000000000000..07fb4db468f3f
--- /dev/null
+++ b/obj/machinery/r_n_d/experimentor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/r_n_d/experimentor - Space Station 13
+
+
+
+
+
+
+Vars
+ range Used for linking with rnd consoles
+ Var Details range
+
+
+
+
+
+ Used for linking with rnd consoles
+
+
+
diff --git a/obj/machinery/recharge_station.html b/obj/machinery/recharge_station.html
new file mode 100644
index 0000000000000..822e14fbc731e
--- /dev/null
+++ b/obj/machinery/recharge_station.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/machinery/recharge_station - Space Station 13
+
+
+
+
+
+
+Vars
+ circuitboard What type of circuit board is required to build this machine.
+ consumable_recharge_coeff How efficiently the recharger is able to recharge consumable items such as metal, glass, chemicals in sprays, welding tool fuel, etc.
+ occupant A reference to the occupant currently sitting inside the recharger.
+ recharge_speed How fast the recharger can give charge to the occupants energy cell. Based on capacitors and the cell the recharger has.
+ recharge_speed_nutrition How much nutrition is given to the occupant. Based on capacitors and the cell the recharger has. Only relevent for IPCs.
+ repairs How much the occupant is repaired every cycle. Based on what manipulator the recharger has.
+ Var Details circuitboard
+
+
+
+
+
+ What type of circuit board is required to build this machine.
consumable_recharge_coeff
+
+
+
+
+
+ How efficiently the recharger is able to recharge consumable items such as metal, glass, chemicals in sprays, welding tool fuel, etc.
occupant
+
+
+
+
+
+ A reference to the occupant currently sitting inside the recharger.
recharge_speed
+
+
+
+
+
+ How fast the recharger can give charge to the occupants energy cell. Based on capacitors and the cell the recharger has.
recharge_speed_nutrition
+
+
+
+
+
+ How much nutrition is given to the occupant. Based on capacitors and the cell the recharger has. Only relevent for IPCs.
repairs
+
+
+
+
+
+ How much the occupant is repaired every cycle. Based on what manipulator the recharger has.
+
+
+
diff --git a/obj/machinery/recycler.html b/obj/machinery/recycler.html
new file mode 100644
index 0000000000000..30398253db15f
--- /dev/null
+++ b/obj/machinery/recycler.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/recycler - Space Station 13
+
+
+
+
+
+
+
+ Var Details always_gib
+
+
+
+
+
+ For admin fun, var edit always_gib to TRUE (1)
last_consumption_sound
+
+
+
+
+
+ The last time we played a consumption sound.
+
+
+
diff --git a/obj/machinery/requests_console.html b/obj/machinery/requests_console.html
new file mode 100644
index 0000000000000..8d46d564152fb
--- /dev/null
+++ b/obj/machinery/requests_console.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/machinery/requests_console - Space Station 13
+
+
+
+
+
+
+Vars
+ announceAuth Will be set to TRUE when you authenticate yourself for announcements
+ goalRequester The ID card of the person requesting a secondary goal.
+ msgStamped If a message is stamped, this will contain the stamp name
+ msgVerified Will contain the name of the person who verified it
+ secondaryGoalAuth Will be set to TRUE when you authenticate yourself for requesting a secondary goal
+ Var Details announceAuth
+
+
+
+
+
+ Will be set to TRUE when you authenticate yourself for announcements
goalRequester
+
+
+
+
+
+ The ID card of the person requesting a secondary goal.
msgStamped
+
+
+
+
+
+ If a message is stamped, this will contain the stamp name
msgVerified
+
+
+
+
+
+ Will contain the name of the person who verified it
secondaryGoalAuth
+
+
+
+
+
+ Will be set to TRUE when you authenticate yourself for requesting a secondary goal
+
+
+
diff --git a/obj/machinery/shield/cult/barrier.html b/obj/machinery/shield/cult/barrier.html
new file mode 100644
index 0000000000000..e8ef25e50a56a
--- /dev/null
+++ b/obj/machinery/shield/cult/barrier.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ /obj/machinery/shield/cult/barrier - Space Station 13
+
+
+
+
+
+
+Vars
+ parent_rune The rune that created the shield itself. Used to delete the rune when the shield is destroyed. Procs
+ Toggle Turns the shield on and off.
+ Var Details
+ The rune that created the shield itself. Used to delete the rune when the shield is destroyed.
Proc Details Toggle()
+
+
+
+
+
+ Turns the shield on and off.
+The shield has 2 states: on and off. When on, it will block movement, projectiles, items, etc. and be clearly visible, and block atmospheric gases.
+When off, the rune no longer blocks anything and turns invisible.
+The barrier itself is not intended to interact with the conceal runes cult spell for balance purposes.
+
+
+
diff --git a/obj/machinery/shower.html b/obj/machinery/shower.html
new file mode 100644
index 0000000000000..c148343ba4ef2
--- /dev/null
+++ b/obj/machinery/shower.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/shower - Space Station 13
+
+
+
+
+
+
+Vars
+ current_temperature What temperature the shower reagents are set to.
+ on Is the shower on or off?
+ soundloop What sound will be played on loop when the shower is on and pouring water.
+ Var Details current_temperature
+
+
+
+
+
+ What temperature the shower reagents are set to.
on
+
+
+
+
+
+ Is the shower on or off?
+ What sound will be played on loop when the shower is on and pouring water.
+
+
+
diff --git a/obj/machinery/shuttle_manipulator.html b/obj/machinery/shuttle_manipulator.html
new file mode 100644
index 0000000000000..af714052d8ec3
--- /dev/null
+++ b/obj/machinery/shuttle_manipulator.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/shuttle_manipulator - Space Station 13
+
+
+
+
+
+
+Vars
+ selected UI state variables
+ shuttle_and_preview_cooldown Used for cooldown, very obvious name, required due to shuttles spawning in the same location and causing the server to implode
+ Var Details
+ UI state variables
shuttle_and_preview_cooldown
+
+
+
+
+
+ Used for cooldown, very obvious name, required due to shuttles spawning in the same location and causing the server to implode
+
+
+
diff --git a/obj/machinery/sleeper.html b/obj/machinery/sleeper.html
new file mode 100644
index 0000000000000..5ad47867b4c6a
--- /dev/null
+++ b/obj/machinery/sleeper.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/machinery/sleeper - Space Station 13
+
+
+
+
+
+
+Vars
+ beaker Beaker loaded into the sleeper. Used for dialysis.
+ filtering Whether the machine is currently performing dialysis.
+ Var Details beaker
+ – /obj /item /reagent_containers/glass
+
+
+
+
+ Beaker loaded into the sleeper. Used for dialysis.
filtering
+
+
+
+
+
+ Whether the machine is currently performing dialysis.
+
+
+
diff --git a/obj/machinery/smartfridge.html b/obj/machinery/smartfridge.html
new file mode 100644
index 0000000000000..957c2a7eea7fd
--- /dev/null
+++ b/obj/machinery/smartfridge.html
@@ -0,0 +1,165 @@
+
+
+
+
+
+
+ /obj/machinery/smartfridge - Space Station 13
+
+
+
+
+
+
+Stores items of a specified type.
Vars
+ accepted_items_typecache Typecache of accepted item types, init it in [/obj/machinery/smartfridge/Initialize].
+ board_type The type of the circuitboard dropped on deconstruction. This is how to avoid getting subtypes into the board.
+ can_dry Whether the fridge can dry its' contents. Used for display.
+ drop_contents_on_delete Do we drop contents on destroy?
+ drying Whether the fridge is currently drying. Used by drying racks .
+ is_secure Whether the fridge is considered secure. Used for wiring and display.
+ item_quants Associative list (/text => /number) tracking the amounts of a specific item held by the fridge.
+ max_n_of_items The maximum number of items the fridge can hold. Multiplicated by the matter bin component's rating.
+ scan_id Whether the fridge requires ID scanning. Used for the secure variant of the fridge.
+ seconds_electrified How long in ticks the fridge is electrified for. Decrements every process.
+ shoot_inventory Whether the fridge should randomly shoot held items at a nearby living target or not.
+ silicon_controllable Whether the fridge is electric and thus silicon controllable.
+ starting_items Associative list (/obj/item => /number) representing the items the fridge should initially contain.
+ visible_contents Whether the fridge's contents are visible on the world icon.
+ wires The wires controlling the fridge. Procs
+ accept_check Returns whether the smart fridge can accept the given item.
+ load Tries to load an item if it is accepted by /obj/machinery/smartfridge/proc/accept_check .
+ throw_item Tries to shoot a random at a nearby living mob.
+ Var Details accepted_items_typecache
+
+
+
+
+
+ Typecache of accepted item types, init it in [/obj/machinery/smartfridge/Initialize].
board_type
+
+
+
+
+
+ The type of the circuitboard dropped on deconstruction. This is how to avoid getting subtypes into the board.
can_dry
+
+
+
+
+
+ Whether the fridge can dry its' contents. Used for display.
drop_contents_on_delete
+
+
+
+
+
+ Do we drop contents on destroy?
drying
+
+
+
+
+
+ Whether the fridge is currently drying. Used by drying racks .
is_secure
+
+
+
+
+
+ Whether the fridge is considered secure. Used for wiring and display.
item_quants
+
+
+
+
+
+ Associative list (/text => /number) tracking the amounts of a specific item held by the fridge.
max_n_of_items
+
+
+
+
+
+ The maximum number of items the fridge can hold. Multiplicated by the matter bin component's rating.
scan_id
+
+
+
+
+
+ Whether the fridge requires ID scanning. Used for the secure variant of the fridge.
seconds_electrified
+
+
+
+
+
+ How long in ticks the fridge is electrified for. Decrements every process.
shoot_inventory
+
+
+
+
+
+ Whether the fridge should randomly shoot held items at a nearby living target or not.
silicon_controllable
+
+
+
+
+
+ Whether the fridge is electric and thus silicon controllable.
starting_items
+
+
+
+
+
+ Associative list (/obj/item => /number) representing the items the fridge should initially contain.
visible_contents
+
+
+
+
+
+ Whether the fridge's contents are visible on the world icon.
wires
+
+
+
+
+
+ The wires controlling the fridge.
Proc Details accept_check
+
+ Returns whether the smart fridge can accept the given item.
+By default checks if the item is in the typecache .
+Arguments:
+
+O - The item to check.
+ load
+
+ Tries to load an item if it is accepted by /obj/machinery/smartfridge/proc/accept_check .
+Arguments:
+
+I - The item to load.
+user - The user trying to load the item.
+ throw_item()
+
+
+
+
+
+ Tries to shoot a random at a nearby living mob.
+
+
+
diff --git a/obj/machinery/smartfridge/drying_rack.html b/obj/machinery/smartfridge/drying_rack.html
new file mode 100644
index 0000000000000..e786c751c42bf
--- /dev/null
+++ b/obj/machinery/smartfridge/drying_rack.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ /obj/machinery/smartfridge/drying_rack - Space Station 13
+
+
+
+
+
+
+Variant of the Smart Fridge for drying stuff.
+Doesn't have components.
Procs
+ rack_dry Called in [/obj/machinery/smartfridge/drying_rack/process] to dry the contents.
+ toggle_drying Toggles the drying process.
Proc Details rack_dry()
+
+
+
+
+
+ Called in [/obj/machinery/smartfridge/drying_rack/process] to dry the contents.
toggle_drying(forceoff)
+
+
+
+
+
+ Toggles the drying process.
+Arguments:
+
+forceoff - Whether to force turn off the drying rack.
+
+
+
+
diff --git a/obj/machinery/status_display.html b/obj/machinery/status_display.html
new file mode 100644
index 0000000000000..d6db2f8c7c61d
--- /dev/null
+++ b/obj/machinery/status_display.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/machinery/status_display - Space Station 13
+
+
+
+
+
+
+
+ Var Details is_supply
+
+
+
+
+
+ Is this a supply display?
message1
+
+
+
+
+
+ Line 1 of a custom message, if any
message2
+
+
+
+
+
+ Line 2 of a custom message, if any
mode
+
+
+
+
+
+ Status display mode
picture_state
+
+
+
+
+
+ icon_state of alert picture
spookymode
+
+
+
+
+
+ Are we spooked?
+
+
+
diff --git a/obj/machinery/suit_storage_unit.html b/obj/machinery/suit_storage_unit.html
new file mode 100644
index 0000000000000..6da8171cf3c2b
--- /dev/null
+++ b/obj/machinery/suit_storage_unit.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/machinery/suit_storage_unit - Space Station 13
+
+
+
+
+
+
+Vars
+ occupant_typecache If set, turned into typecache in Initialize, other wise, defaults to mob/living typecache
+ req_access Access needed to control it, checked only if ID lock is enabled
+ safeties prevent locking people in there if set to true
+ secure enables ID locking when set to true
+ shocked Shocks anyone that touches it
+ uv Is true if a uv cleaning cycle is currently running.
+ uv_cycles How many uv cleaning cycles to do, counts down while cleaning takes place.
+ uv_super If set to true, uses much more damaging UV wavelength and fries anything inside. Procs
+ store_item Tries to store the item into whatever slot it can go, returns true if the item is stored successfully.
+ try_store_item Tries to store the item, returns true if it's moved successfully, false otherwise (because of nodrop etc)
+ Var Details occupant_typecache
+
+
+
+
+
+ If set, turned into typecache in Initialize, other wise, defaults to mob/living typecache
req_access
+
+
+
+
+
+ Access needed to control it, checked only if ID lock is enabled
safeties
+
+
+
+
+
+ prevent locking people in there if set to true
secure
+
+
+
+
+
+ enables ID locking when set to true
shocked
+
+
+
+
+
+ Shocks anyone that touches it
uv
+
+
+
+
+
+ Is true if a uv cleaning cycle is currently running.
uv_cycles
+
+
+
+
+
+ How many uv cleaning cycles to do, counts down while cleaning takes place.
uv_super
+
+
+
+
+
+ If set to true, uses much more damaging UV wavelength and fries anything inside.
Proc Details store_item
+
+ Tries to store the item into whatever slot it can go, returns true if the item is stored successfully.
try_store_item
+
+ Tries to store the item, returns true if it's moved successfully, false otherwise (because of nodrop etc)
+
+
+
diff --git a/obj/machinery/tcomms.html b/obj/machinery/tcomms.html
new file mode 100644
index 0000000000000..7a6ab6f88dbf2
--- /dev/null
+++ b/obj/machinery/tcomms.html
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+ /obj/machinery/tcomms - Space Station 13
+
+
+
+
+
+
+This is the base machine for both tcomms devices (core + relay)
+This holds a few base procs (Icon updates, enable/disable, etc)
+It also has the initial overrides for Initialize() and Destroy()
+ Var Details active
+
+
+
+
+
+ Is the machine active
ion
+
+
+
+
+
+ Has the machine been hit by an ionospheric anomaly
network_id
+
+
+
+
+
+ Network ID used for names + auto linkage
Proc Details Destroy()
+
+
+
+
+
+ Base Destructor
+Ensures that the machine is taken out of the global list when destroyed
Initialize(mapload)
+
+
+
+
+
+ Base Initializer
+Ensures that the machine is put into the global list of tcomms devices, and then its made sure that the icon is correct if the machine starts offline
crowbar_act
+
+ Crowbar Act Handler
+Handles the crowbar action for all tcomms machines, so they can be deconstructed
end_ion()
+
+
+
+
+
+ End of Ion Anomaly Event
+Proc to easily stop an Ion Anomaly's effects, and update the icon
log_action(user, msg, adminmsg)
+
+
+
+
+
+ Logging helper
+Proc which allows easy logging of changs made to tcomms machines
+Arguments:
+
+user - The user who did the action
+msg - The log message
+adminmsg - Should an admin log be sent when this happens
+ onTransitZ(old_z, new_z)
+
+
+
+
+
+ Z-Level transit change helper
+Proc to make sure you cant have two of these active on a Z-level at once. It also makes sure to update the linkage
power_change()
+
+
+
+
+
+ Power Change Handler
+Proc which ensures icons are updated when machines lose power
screwdriver_act
+
+ Screwdriver Act Handler
+Handles the screwdriver action for all tcomms machines, so they can be open and closed to be deconstructed
start_ion()
+
+
+
+
+
+ Start of Ion Anomaly Event
+Proc to easily start an Ion Anomaly's effects, and update the icon
update_icon_state()
+
+
+
+
+
+ Icon Updater
+Ensures that the icon updates properly based on if the machine is active or not. This removes the need for this check in many other places.
+
+
+
diff --git a/obj/machinery/tcomms/core.html b/obj/machinery/tcomms/core.html
new file mode 100644
index 0000000000000..b00ca10c44955
--- /dev/null
+++ b/obj/machinery/tcomms/core.html
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+ /obj/machinery/tcomms/core - Space Station 13
+
+
+
+
+
+
+The core of the entire telecomms operation
+This thing basically handles the main broadcasting of the data, as well as NTTC configs
+The relays dont do any actual processing, they are just objects which can bring tcomms to another zlevel
+ Var Details link_password
+
+
+
+
+
+ Password for linking stuff together
linked_relays
+
+
+
+
+
+ List of all linked relays
+ The NTTC config for this device
reachable_zlevels
+
+
+
+
+
+ List of all reachable devices
ui_tab
+
+
+
+
+
+ What tab of the UI were currently on
Proc Details Destroy()
+
+
+
+
+
+ Destructor for the core.
+Ensures that the machine is taken out of the global list when destroyed, and also unlinks all connected relays
Initialize(mapload)
+
+
+
+
+
+ Initializer for the core.
+Calls parent to ensure its added to the GLOB of tcomms machines, before generating a link password and adding itself to the list of reachable Zs.
check_power_on()
+
+
+
+
+
+ Power-on checker
+Checks the z-level to see if an existing core is already powered on, and deny this one turning on if there is one. Returns TRUE if it can power on, or FALSE if it cannot
+ Proc which takes in the message datum
+Some checks are ran on the signal, and NTTC is applied
+After that, it is broadcasted out to the required Z-levels
+Arguments:
+
+tcm - The tcomms message datum
+ onTransitZ(old_z, new_z)
+
+
+
+
+
+ Z-Level transit change helper
+Handles parent call of disabling the machine if it changes Z-level, but also rebuilds the list of reachable levels
refresh_zlevels()
+
+
+
+
+
+ Proc to remake the list of available zlevels
+Loops through the list of connected relays and adds their zlevels in.
+This is called if a relay is added or removed
zlevel_reachable(zlevel)
+
+
+
+
+
+ Helper to see if a zlevel is reachable
+This is a simple check to see if the input z-level is in the list of reachable ones
+Returns TRUE if it can, FALSE if it cant
+Arguments:
+
+zlevel - The input z level to test
+
+
+
+
diff --git a/obj/machinery/tcomms/relay.html b/obj/machinery/tcomms/relay.html
new file mode 100644
index 0000000000000..61821d010e140
--- /dev/null
+++ b/obj/machinery/tcomms/relay.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /obj/machinery/tcomms/relay - Space Station 13
+
+
+
+
+
+
+Extends the reach of telecomms to the z-level it is built on
+Relays themselves dont do any processing, they just tell the core that this z-level is available in the tcomms network.
+ Var Details autolink_id
+
+
+
+
+
+ ID of the hub to auto link to
hidden_link
+
+
+
+
+
+ Is this link invisible on the hub?
linked
+
+
+
+
+
+ Is this linked to anything at all
+ The host core for this relay
password_bypass
+
+
+
+
+
+ Does this relay need a password to connect to hubs?
Proc Details
+ Proc to link the relay to the core.
+Sets the linked core to the target (argument below), before adding it to the list of linked relays, then re-freshing the zlevel list
+The relay is then marked as linked
+Arguments:
+
+target - The telecomms core that this relay should be linked to
+ Destroy()
+
+
+
+
+
+ Descrutor for the relay.
+Ensures that the machine is taken out of the global list when destroyed, and also removes the link to the core.
Initialize(mapload)
+
+
+
+
+
+ Initializer for the relay.
+Calls parent to ensure its added to the GLOB of tcomms machines, before checking if there is an autolink that needs to be added.
LateInitialize()
+
+
+
+
+
+ Late Initialize for the relay.
+Calls parent, then adds links to the cores. This is a LateInitialize because the core MUST be initialized first
Reset()
+
+
+
+
+
+ Proc to rest the relay.
+Resets the relay, removing its linkage status, and refreshing the core's list of z-levels
check_power_on()
+
+
+
+
+
+ Power-on checker
+Checks the z-level to see if an existing relay is already powered on, and deny this one turning on if there is one. Returns TRUE if it can power on, or FALSE if it cannot
onTransitZ(old_z, new_z)
+
+
+
+
+
+ Z-Level transit change helper
+Handles parent call of disabling the machine if it changes Z-level, but also rebuilds the list of reachable levels on the linked core
power_change()
+
+
+
+
+
+ Power Change Handler
+Proc which ensures the host core has its zlevels updated (icons are updated by parent call)
+
+
+
diff --git a/obj/machinery/teleport.html b/obj/machinery/teleport.html
new file mode 100644
index 0000000000000..abcc286d2de9e
--- /dev/null
+++ b/obj/machinery/teleport.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ /obj/machinery/teleport - Space Station 13
+
+
+
+
+
+
+Vars
+ teleports_this_cycle Used by the teleporter hub and permament teleporter to track how many teleports have been done this cycle. Procs
+ blockAI Internal helper function
+ Var Details teleports_this_cycle
+
+
+
+
+
+ Used by the teleporter hub and permament teleporter to track how many teleports have been done this cycle.
Proc Details blockAI
+
+ Internal helper function
+Prevents AI from using the teleporter, prints out failure messages for clarity
+
+
+
diff --git a/obj/machinery/ticket_machine.html b/obj/machinery/ticket_machine.html
new file mode 100644
index 0000000000000..06b7fd08c1072
--- /dev/null
+++ b/obj/machinery/ticket_machine.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/machinery/ticket_machine - Space Station 13
+
+
+
+
+
+
+Vars
+ dispense_enabled If FALSE, the ticket machine will not dispense tickets. Toggled by swiping aHoP ID
+ Var Details dispense_enabled
+
+
+
+
+
+ If FALSE, the ticket machine will not dispense tickets. Toggled by swiping aHoP ID
+
+
+
diff --git a/obj/machinery/transformer.html b/obj/machinery/transformer.html
new file mode 100644
index 0000000000000..7c8ebc800d094
--- /dev/null
+++ b/obj/machinery/transformer.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/machinery/transformer - Space Station 13
+
+
+
+
+
+
+Vars
+ acceptdir The direction that mobs must moving in to get transformed.
+ cooldown_duration Cooldown between each transformation, in deciseconds.
+ is_on_cooldown If the factory is currently on cooldown from its last transformation.
+ masterAI The AI who placed this factory.
+ robot_cell_type The type of cell that newly created borgs get.
+ transform_dead TRUE if the factory can transform dead mobs.
+ transform_standing TRUE if the mob can be standing and still be transformed. Procs
+ do_transform Transforms a human mob into a cyborg, connects them to the malf AI which placed the factory.
+ initialize_belts Used to create all of the belts the transformer will be using. All belts should be pushing WEST
.
+ reset_cooldown Resets is_on_cooldown
to FALSE
and updates our icon. Used in a callback after the transformer does a transformation.
+ Var Details acceptdir
+
+
+
+
+
+ The direction that mobs must moving in to get transformed.
cooldown_duration
+
+
+
+
+
+ Cooldown between each transformation, in deciseconds.
is_on_cooldown
+
+
+
+
+
+ If the factory is currently on cooldown from its last transformation.
+ The AI who placed this factory.
robot_cell_type
+
+
+
+
+
+ The type of cell that newly created borgs get.
+ TRUE if the factory can transform dead mobs.
+ TRUE if the mob can be standing and still be transformed.
Proc Details
+ Transforms a human mob into a cyborg, connects them to the malf AI which placed the factory.
initialize_belts()
+
+
+
+
+
+ Used to create all of the belts the transformer will be using. All belts should be pushing WEST
.
reset_cooldown()
+
+
+
+
+
+ Resets is_on_cooldown
to FALSE
and updates our icon. Used in a callback after the transformer does a transformation.
+
+
+
diff --git a/obj/machinery/washing_machine.html b/obj/machinery/washing_machine.html
new file mode 100644
index 0000000000000..8eb44cedd01d7
--- /dev/null
+++ b/obj/machinery/washing_machine.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/machinery/washing_machine - Space Station 13
+
+
+
+
+
+
+Vars
+ can_be_washed Typecache of washable items
+ does_not_fit Typecache of items that do not fit, overrides the whitelist
+ state Integer ID corresponding to whether the machine can accept more items, is running, will produce gibs, etc.
+ Var Details can_be_washed
+
+
+
+
+
+ Typecache of washable items
does_not_fit
+
+
+
+
+
+ Typecache of items that do not fit, overrides the whitelist
state
+
+
+
+
+
+ Integer ID corresponding to whether the machine can accept more items, is running, will produce gibs, etc.
+
+
+
diff --git a/obj/mecha.html b/obj/mecha.html
new file mode 100644
index 0000000000000..5307446395f2d
--- /dev/null
+++ b/obj/mecha.html
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ /obj/mecha - Space Station 13
+
+
+
+
+
+
+
+ Var Details anchored
+
+
+
+
+
+ opaque. Menacing.
mech_enter_time
+
+
+
+
+
+ Time it takes to enter the mech
thruster_count
+
+
+
+
+
+ How many ion thrusters we got on this bad boy
Proc Details Process_Spacemove(movement_dir)
+
+
+
+
+
+ MARK: Movement procs
Topic(href, href_list)
+
+
+
+
+
+ Topic
admin_Freeze
+
+ Freeze Mech
+ MARK: AI piloting
attackby
+
+ MARK: AttackBy
check_for_internal_damage(/list/possible_int_damage, ignore_threshold)
+
+
+
+
+
+ MARK: Internal damage
get_armour_facing(relative_dir)
+
+
+
+
+
+ MARK: Health related procs
get_cell()
+
+
+
+
+
+ Helpers
get_stats_html()
+
+
+
+
+
+ Rendering stats window
has_charge(amount)
+
+
+
+
+
+ MARK: Power stuff
occupant_message(message)
+
+
+
+
+
+ Messages and Log
+ MARK: Access stuff
process()
+
+
+
+
+
+ MARK: Mecha global iterators
return_obj_air()
+
+
+
+
+
+ MARK: Atmospheric stuff
+
+
+
diff --git a/obj/mecha/working/ripley.html b/obj/mecha/working/ripley.html
new file mode 100644
index 0000000000000..371620eb4f952
--- /dev/null
+++ b/obj/mecha/working/ripley.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/mecha/working/ripley - Space Station 13
+
+
+
+
+
+
+Vars
+ drake_hides How many drake hides does the Ripley have? Does not stack with other armor
+ hides How many goliath hides does the Ripley have? Does not stack with other armor
+ plates How many plates does the Ripley have? Does not stack with other armor
+ Var Details drake_hides
+
+
+
+
+
+ How many drake hides does the Ripley have? Does not stack with other armor
hides
+
+
+
+
+
+ How many goliath hides does the Ripley have? Does not stack with other armor
plates
+
+
+
+
+
+ How many plates does the Ripley have? Does not stack with other armor
+
+
+
diff --git a/obj/singularity.html b/obj/singularity.html
new file mode 100644
index 0000000000000..c82e0ef3290b7
--- /dev/null
+++ b/obj/singularity.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/singularity - Space Station 13
+
+
+
+
+
+
+Vars
+ all_possible_areas Init list that has all the areas that we can possibly move to, to reduce processing impact
+ beacon_target If there is a syndicate beacon, the singularity will move quickly towards it.
+ isnt_shutting_down Whether or not we've pinged ghosts
+ target The target of the singularity. It will wander slowly towards this, and pick another target once it reaches it.
+ Var Details all_possible_areas
+
+
+
+
+
+ Init list that has all the areas that we can possibly move to, to reduce processing impact
beacon_target
+
+
+
+
+
+ If there is a syndicate beacon, the singularity will move quickly towards it.
isnt_shutting_down
+
+
+
+
+
+ Whether or not we've pinged ghosts
target
+
+
+
+
+
+ The target of the singularity. It will wander slowly towards this, and pick another target once it reaches it.
+
+
+
diff --git a/obj/singularity/energy_ball.html b/obj/singularity/energy_ball.html
new file mode 100644
index 0000000000000..bd7fd7c47f7e8
--- /dev/null
+++ b/obj/singularity/energy_ball.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/singularity/energy_ball - Space Station 13
+
+
+
+
+
+
+The Tesla engine
Vars
+ has_close_field Variable that defines whether it has a field generator close enough
+ movement_dir Direction we have to go to go towards the target turf
+ steps_per_move How many tiles do we move per movement step?
+ target_turf Turf where the tesla will move to if it's loose Procs
+ on_start_orbit When we get orbited, add the orbiter to our tracked balls
+ Var Details has_close_field
+
+
+
+
+
+ Variable that defines whether it has a field generator close enough
movement_dir
+
+
+
+
+
+ Direction we have to go to go towards the target turf
steps_per_move
+
+
+
+
+
+ How many tiles do we move per movement step?
target_turf
+
+
+
+
+
+ Turf where the tesla will move to if it's loose
Proc Details on_start_orbit
+
+ When we get orbited, add the orbiter to our tracked balls
+
+
+
diff --git a/obj/structure.html b/obj/structure.html
new file mode 100644
index 0000000000000..654ed20d8271b
--- /dev/null
+++ b/obj/structure.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure - Space Station 13
+
+
+
+
+
+
+Vars
+ creates_cover Determines if a structure adds the TRAIT_TURF_COVERED to its turf.
+ unbuckle_time How long this takes to unbuckle yourself from.
+ Var Details creates_cover
+
+
+
+
+
+ Determines if a structure adds the TRAIT_TURF_COVERED to its turf.
unbuckle_time
+
+
+
+
+
+ How long this takes to unbuckle yourself from.
+
+
+
diff --git a/obj/structure/alien/egg.html b/obj/structure/alien/egg.html
new file mode 100644
index 0000000000000..3b407b3d001af
--- /dev/null
+++ b/obj/structure/alien/egg.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/structure/alien/egg - Space Station 13
+
+
+
+
+
+
+Procs
+ burst Need to carry the kill from Burst() to Hatch(), this section handles the alien opening the egg
+ hatch We now check HOW the hugger is hatching, kill carried from Burst() and obj_break()
Proc Details burst(kill)
+
+
+
+
+
+ Need to carry the kill from Burst() to Hatch(), this section handles the alien opening the egg
hatch(kill)
+
+
+
+
+
+ We now check HOW the hugger is hatching, kill carried from Burst() and obj_break()
+
+
+
diff --git a/obj/structure/alien/wallweed.html b/obj/structure/alien/wallweed.html
new file mode 100644
index 0000000000000..d871766261d52
--- /dev/null
+++ b/obj/structure/alien/wallweed.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/alien/wallweed - Space Station 13
+
+
+
+
+
+
+Vars
+ silent_removal This var is used for making automatic weed removals silent instead of making them produce the breaking sound
+ Var Details silent_removal
+
+
+
+
+
+ This var is used for making automatic weed removals silent instead of making them produce the breaking sound
+
+
+
diff --git a/obj/structure/alien/weeds.html b/obj/structure/alien/weeds.html
new file mode 100644
index 0000000000000..ed9ef177729d6
--- /dev/null
+++ b/obj/structure/alien/weeds.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/alien/weeds - Space Station 13
+
+
+
+
+
+
+Vars
+ silent_removal This var is used for making automatic weed removals silent instead of making them produce the breaking sound Procs
+ spread linked_node ||
+ Var Details silent_removal
+
+
+
+
+
+ This var is used for making automatic weed removals silent instead of making them produce the breaking sound
Proc Details spread()
+
+
+
+
+
+ linked_node ||
+
+
+
diff --git a/obj/structure/barricade.html b/obj/structure/barricade.html
new file mode 100644
index 0000000000000..50ff6e4e718d7
--- /dev/null
+++ b/obj/structure/barricade.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/barricade - Space Station 13
+
+
+
+
+
+
+Vars
+ directional_blockage This variable is used to allow projectiles to always shoot through a barrier from a certain direction
+ Var Details directional_blockage
+
+
+
+
+
+ This variable is used to allow projectiles to always shoot through a barrier from a certain direction
+
+
+
diff --git a/obj/structure/barricade/dropwall.html b/obj/structure/barricade/dropwall.html
new file mode 100644
index 0000000000000..b092e3661e6c1
--- /dev/null
+++ b/obj/structure/barricade/dropwall.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/barricade/dropwall - Space Station 13
+
+
+
+
+
+
+Vars
+ core_shield This variable is used to tell the shield to ping it's owner when it is broke.
+ source This variable is to tell the shield what it's source is.
+ Var Details core_shield
+
+
+
+
+
+ This variable is used to tell the shield to ping it's owner when it is broke.
+ This variable is to tell the shield what it's source is.
+
+
+
diff --git a/obj/structure/blob.html b/obj/structure/blob.html
new file mode 100644
index 0000000000000..dc29a0ff29737
--- /dev/null
+++ b/obj/structure/blob.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/blob - Space Station 13
+
+
+
+
+
+
+
+ Var Details compromised_integrity
+
+
+
+
+
+ If a threshold is reached, resulting in shifting variables
+
+
+
diff --git a/obj/structure/bonfire.html b/obj/structure/bonfire.html
new file mode 100644
index 0000000000000..fe68f5e1c7355
--- /dev/null
+++ b/obj/structure/bonfire.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/bonfire - Space Station 13
+
+
+
+
+
+
+BONFIRES
Procs
+ CheckOxygen Check if we're standing in an oxygenless environment
Proc Details CheckOxygen()
+
+
+
+
+
+ Check if we're standing in an oxygenless environment
+
+
+
diff --git a/obj/structure/cable.html b/obj/structure/cable.html
new file mode 100644
index 0000000000000..2484957612659
--- /dev/null
+++ b/obj/structure/cable.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+ /obj/structure/cable - Space Station 13
+
+
+
+
+
+
+Vars
+ d1 The direction of endpoint one of this cable
+ d2 The direction of enpoint two of this cable
+ powernet The regional powernet this cable is registered to Procs
+ add_power_demand Adds power demand to the powernet, machines should use this
+ add_queued_power_demand Adds queued power demand to be met next process cycle, non_machines should use this
+ get_available_power Gets power available (NOT EXTRA) on this cables powernet, machines should use this, engines should add power to the net with this proc
+ get_queued_available_power Gets available (NOT EXTRA) power queued for next process cycle on this cables powernet, non_machines should use this
+ get_queued_surplus Gets surplus power queued for next process cycle on this cables powernet, non_machines should use this
+ get_surplus Gets surplus power available on this cables powernet, machines should use this
+ hide If underfloor, hide the cable
+ merge_connected_networks merge_connected_networks(), merge_connected_networks_on_turf(), and merge_diagonal_networks() all deal with merging
+cables' powernets together
+ shuttleRotate Structure rotate procs
+ Var Details d1
+
+
+
+
+
+ The direction of endpoint one of this cable
d2
+
+
+
+
+
+ The direction of enpoint two of this cable
+ The regional powernet this cable is registered to
Proc Details add_power_demand(amount)
+
+
+
+
+
+ Adds power demand to the powernet, machines should use this
add_queued_power_demand(amount)
+
+
+
+
+
+ Adds queued power demand to be met next process cycle, non_machines should use this
get_available_power()
+
+
+
+
+
+ Gets power available (NOT EXTRA) on this cables powernet, machines should use this, engines should add power to the net with this proc
get_queued_available_power()
+
+
+
+
+
+ Gets available (NOT EXTRA) power queued for next process cycle on this cables powernet, non_machines should use this
get_queued_surplus()
+
+
+
+
+
+ Gets surplus power queued for next process cycle on this cables powernet, non_machines should use this
get_surplus()
+
+
+
+
+
+ Gets surplus power available on this cables powernet, machines should use this
hide(i)
+
+
+
+
+
+ If underfloor, hide the cable
merge_connected_networks(direction)
+
+
+
+
+
+ merge_connected_networks(), merge_connected_networks_on_turf(), and merge_diagonal_networks() all deal with merging
+cables' powernets together
shuttleRotate(rotation, params)
+
+
+
+
+
+ Structure rotate procs
+
+
+
diff --git a/obj/structure/chair.html b/obj/structure/chair.html
new file mode 100644
index 0000000000000..568cedbe47f4b
--- /dev/null
+++ b/obj/structure/chair.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/chair - Space Station 13
+
+
+
+
+
+
+fuck you Pete
Vars
+ possible_dirs Used to handle rotation properly, should only be 1, 4, or 8
+ Var Details possible_dirs
+
+
+
+
+
+ Used to handle rotation properly, should only be 1, 4, or 8
+
+
+
diff --git a/obj/structure/chair/sofa/bench.html b/obj/structure/chair/sofa/bench.html
new file mode 100644
index 0000000000000..9842621daff6a
--- /dev/null
+++ b/obj/structure/chair/sofa/bench.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/chair/sofa/bench - Space Station 13
+
+
+
+
+
+
+
+ Var Details cover
+
+
+
+
+
+ icon for the cover seat
cover_color
+
+
+
+
+
+ cover seat color
+
+
+
diff --git a/obj/structure/closet/cardboard.html b/obj/structure/closet/cardboard.html
new file mode 100644
index 0000000000000..2be502adfb15e
--- /dev/null
+++ b/obj/structure/closet/cardboard.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/closet/cardboard - Space Station 13
+
+
+
+
+
+
+
+ Var Details move_speed_multiplier
+
+
+
+
+
+ How fast a mob can move inside this box.
+
+
+
diff --git a/obj/structure/closet/cardboard/agent.html b/obj/structure/closet/cardboard/agent.html
new file mode 100644
index 0000000000000..9cd933cff627e
--- /dev/null
+++ b/obj/structure/closet/cardboard/agent.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/closet/cardboard/agent - Space Station 13
+
+
+
+
+
+
+Vars
+ box_img The box image attached to the fake_box
object.
+ fake_box A holder effect which follows the src box so we can display an image to the person inside the box.
+ implant_user_UID UID of the person who summoned this box with an implant.
+ Var Details box_img
+
+
+
+
+
+ The box image attached to the fake_box
object.
fake_box
+
+
+
+
+
+ A holder effect which follows the src box so we can display an image to the person inside the box.
implant_user_UID
+
+
+
+
+
+ UID of the person who summoned this box with an implant.
+
+
+
diff --git a/obj/structure/closet/crate.html b/obj/structure/closet/crate.html
new file mode 100644
index 0000000000000..d16681208638c
--- /dev/null
+++ b/obj/structure/closet/crate.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/closet/crate - Space Station 13
+
+
+
+
+
+
+Vars
+ announce_beacons A list of beacon names that the crate will announce the arrival of, when delivered.
+ crate_value How much this crate is worth if you sell it via the cargo shuttle, needed for balance :)
+ Var Details announce_beacons
+
+
+
+
+
+ A list of beacon names that the crate will announce the arrival of, when delivered.
crate_value
+
+
+
+
+
+ How much this crate is worth if you sell it via the cargo shuttle, needed for balance :)
+
+
+
diff --git a/obj/structure/closet/crate/secure/oldstation.html b/obj/structure/closet/crate/secure/oldstation.html
new file mode 100644
index 0000000000000..8dfad6ffdabf3
--- /dev/null
+++ b/obj/structure/closet/crate/secure/oldstation.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/closet/crate/secure/oldstation - Space Station 13
+
+
+
+
+
+
+Secure Crates: Access locked to Theta crew. Cannot be moved, destroyed,
+emagged or EMPed because gamers can't be trusted not to game.
Procs
+ togglelock Allow Theta crew to move the crates once unlocked so they don't get in the way
Proc Details togglelock
+
+ Allow Theta crew to move the crates once unlocked so they don't get in the way
+
+
+
diff --git a/obj/structure/closet/crate/secure/personal.html b/obj/structure/closet/crate/secure/personal.html
new file mode 100644
index 0000000000000..abdeaef7c04d0
--- /dev/null
+++ b/obj/structure/closet/crate/secure/personal.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/closet/crate/secure/personal - Space Station 13
+
+
+
+
+
+
+Vars
+ registered_name The name of the person this crate is registered to. Procs
+ is_usable_id Returns whether the object is a usable ID card (not guest pass, has name).
+ Var Details registered_name
+
+
+
+
+
+ The name of the person this crate is registered to.
Proc Details is_usable_id
+
+ Returns whether the object is a usable ID card (not guest pass, has name).
+
+
+
diff --git a/obj/structure/closet/secure_closet/contractor.html b/obj/structure/closet/secure_closet/contractor.html
new file mode 100644
index 0000000000000..a6a67e5431469
--- /dev/null
+++ b/obj/structure/closet/secure_closet/contractor.html
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+ /obj/structure/closet/secure_closet/contractor - Space Station 13
+
+
+
+
+
+
+Cannot be opened. Contains the belongings of all kidnapped targets.
+Any item added inside stops processing and starts again when removed.
+ Var Details prisoners
+
+
+
+
+
+ Lazy, associative list of prisoners being held as part of a contract.
+Structure: /mob/living => /datum/syndicate_contract
suspended_items
+
+
+
+
+
+ Lazy list of atoms which should process again when taken out.
Proc Details give_item
+
+ Tries to add an atom for temporary holding, suspending its processing.
+Arguments:
+remove_item
+
+ Removes an atom from temporary holding.
+Arguments:
+
+A - The atom to remove.
+
+
+
+
diff --git a/obj/structure/constructshell.html b/obj/structure/constructshell.html
new file mode 100644
index 0000000000000..45bfb8eefeb17
--- /dev/null
+++ b/obj/structure/constructshell.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/constructshell - Space Station 13
+
+
+
+
+
+
+Transferring to constructs
Vars
+ active Is someone currently placing a soulstone into the shell
+ Var Details active
+
+
+
+
+
+ Is someone currently placing a soulstone into the shell
+
+
+
diff --git a/obj/structure/cult/functional.html b/obj/structure/cult/functional.html
new file mode 100644
index 0000000000000..9380e091c9ce0
--- /dev/null
+++ b/obj/structure/cult/functional.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/cult/functional - Space Station 13
+
+
+
+
+
+
+Procs
+ get_ETA Returns the cooldown time in minutes and seconds
+ get_choosable_items Returns the items the cult can craft from this forge.
Proc Details get_ETA()
+
+
+
+
+
+ Returns the cooldown time in minutes and seconds
get_choosable_items()
+
+
+
+
+
+ Returns the items the cult can craft from this forge.
+Override on children for logic regarding game state.
+
+
+
diff --git a/obj/structure/cursed_slot_machine.html b/obj/structure/cursed_slot_machine.html
new file mode 100644
index 0000000000000..dbccd224b2246
--- /dev/null
+++ b/obj/structure/cursed_slot_machine.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/structure/cursed_slot_machine - Space Station 13
+
+
+
+
+
+
+Greed's slot machine: Used in the Greed ruin. Deals damage on each use, with a successful use giving a d20 of fate.
Vars
+ brightness_on Should we be emitting light?
+ cooldown_length Length of the cooldown between the machine being used and being able to spin the machine again.
+ icon_screen Variable that tracks the screen we display.
+ in_active_use Are we currently in use? Anti-spam prevention measure.
+ max_curse_amount The maximum amount of curses we will allow a player to have before disallowing them to use the machine.
+ prize machine's reward when you hit jackpot
+ spin_cooldown Cooldown between pulls of the cursed slot machine.
+ status_effect_on_roll should we be applying the cursed status effect?
+ win_prob The probability the player has to win. Procs
+ check_and_set_usage Validates that the user can use the cursed slot machine. User is the person using the slot machine. Returns TRUE if we can, FALSE otherwise.
+ Var Details brightness_on
+
+
+
+
+
+ Should we be emitting light?
cooldown_length
+
+
+
+
+
+ Length of the cooldown between the machine being used and being able to spin the machine again.
icon_screen
+
+
+
+
+
+ Variable that tracks the screen we display.
in_active_use
+
+
+
+
+
+ Are we currently in use? Anti-spam prevention measure.
max_curse_amount
+
+
+
+
+
+ The maximum amount of curses we will allow a player to have before disallowing them to use the machine.
prize
+
+
+
+
+
+ machine's reward when you hit jackpot
spin_cooldown
+
+
+
+
+
+ Cooldown between pulls of the cursed slot machine.
status_effect_on_roll
+
+
+
+
+
+ should we be applying the cursed status effect?
win_prob
+
+
+
+
+
+ The probability the player has to win.
Proc Details check_and_set_usage
+
+ Validates that the user can use the cursed slot machine. User is the person using the slot machine. Returns TRUE if we can, FALSE otherwise.
+
+
+
diff --git a/obj/structure/disaster_counter.html b/obj/structure/disaster_counter.html
new file mode 100644
index 0000000000000..0e127f7d82ced
--- /dev/null
+++ b/obj/structure/disaster_counter.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/disaster_counter - Space Station 13
+
+
+
+
+
+
+Tracks how many shifts it has been since the counter with that ID was exploded.
Vars
+ counter_id ID of the counter. Must be overriden. Use alphanumerics with no spaces only, as this is used in the filesystem.
+ current_count Current count number
+ record_count Record count
+ Var Details counter_id
+
+
+
+
+
+ ID of the counter. Must be overriden. Use alphanumerics with no spaces only, as this is used in the filesystem.
current_count
+
+
+
+
+
+ Current count number
record_count
+
+
+
+
+
+ Record count
+
+
+
diff --git a/obj/structure/dispenser.html b/obj/structure/dispenser.html
new file mode 100644
index 0000000000000..742a16249ce99
--- /dev/null
+++ b/obj/structure/dispenser.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/structure/dispenser - Space Station 13
+
+
+
+
+
+
+Procs
+ try_insert_tank Called when the user clicks on the dispenser with a tank. Tries to insert the tank into the dispenser, and updates the UI if successful.
+ try_remove_tank Called when the user clicks on the oxygen or plasma tank UI buttons, and tries to withdraw a tank.
Proc Details try_insert_tank
+
+ Called when the user clicks on the dispenser with a tank. Tries to insert the tank into the dispenser, and updates the UI if successful.
try_remove_tank
+
+ Called when the user clicks on the oxygen or plasma tank UI buttons, and tries to withdraw a tank.
+
+
+
diff --git a/obj/structure/displaycase.html b/obj/structure/displaycase.html
new file mode 100644
index 0000000000000..ae733bffcdc11
--- /dev/null
+++ b/obj/structure/displaycase.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ /obj/structure/displaycase - Space Station 13
+
+
+
+
+
+
+Vars
+ alert If true, this is alarmed and will set off a siren when opened without proper access.
+ electronics The electronics currently installed in this showpiece.
+ open If this is currently unlocked
+ openable If false, this can never be opened, and the item inside should be inaccessible. Good for showcases.
+ showpiece The object stored inside.
+ start_showpiece_type The type that should be instantiated to fill the showpiece.
+ start_showpieces A list of random items that could possibly fill the case, as well as a flavor message for them.
+Takes sublists in the form of list("type" = /obj/item/bikehorn, "trophy_message" = "henk")
+ trophy_message A flavor message to show with this item.
+ Var Details alert
+
+
+
+
+
+ If true, this is alarmed and will set off a siren when opened without proper access.
+ The electronics currently installed in this showpiece.
open
+
+
+
+
+
+ If this is currently unlocked
openable
+
+
+
+
+
+ If false, this can never be opened, and the item inside should be inaccessible. Good for showcases.
showpiece
+
+
+
+
+
+ The object stored inside.
start_showpiece_type
+
+
+
+
+
+ The type that should be instantiated to fill the showpiece.
start_showpieces
+
+
+
+
+
+ A list of random items that could possibly fill the case, as well as a flavor message for them.
+Takes sublists in the form of list("type" = /obj/item/bikehorn, "trophy_message" = "henk")
trophy_message
+
+
+
+
+
+ A flavor message to show with this item.
+
+
+
diff --git a/obj/structure/disposalholder.html b/obj/structure/disposalholder.html
new file mode 100644
index 0000000000000..4111e24a0a6ee
--- /dev/null
+++ b/obj/structure/disposalholder.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/disposalholder - Space Station 13
+
+
+
+
+
+
+Vars
+ destinationTag Destination the holder is set to, defaulting to disposals and changes if the contents have a mail/sort tag.
+ Var Details destinationTag
+
+
+
+
+
+ Destination the holder is set to, defaulting to disposals and changes if the contents have a mail/sort tag.
+
+
+
diff --git a/obj/structure/disposaloutlet.html b/obj/structure/disposaloutlet.html
new file mode 100644
index 0000000000000..8d0f87b46158e
--- /dev/null
+++ b/obj/structure/disposaloutlet.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/disposaloutlet - Space Station 13
+
+
+
+
+
+
+
+ Var Details last_sound
+
+
+
+
+
+ The last time a sound was played
+
+
+
diff --git a/obj/structure/disposalpipe.html b/obj/structure/disposalpipe.html
new file mode 100644
index 0000000000000..165cced0beb0e
--- /dev/null
+++ b/obj/structure/disposalpipe.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/disposalpipe - Space Station 13
+
+
+
+
+
+
+Vars
+ last_sound The last time a sound was played from this
+ Var Details last_sound
+
+
+
+
+
+ The last time a sound was played from this
+
+
+
diff --git a/obj/structure/door_assembly.html b/obj/structure/door_assembly.html
new file mode 100644
index 0000000000000..5b9da0a2cb2a7
--- /dev/null
+++ b/obj/structure/door_assembly.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/door_assembly - Space Station 13
+
+
+
+
+
+
+
+ Var Details mineral
+
+
+
+
+
+ String value. Used in user chat messages
mineral_type
+
+
+
+
+
+ mineral object path.
+
+
+
diff --git a/obj/structure/dropwall_generator.html b/obj/structure/dropwall_generator.html
new file mode 100644
index 0000000000000..3e5a9455ea4c5
--- /dev/null
+++ b/obj/structure/dropwall_generator.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/dropwall_generator - Space Station 13
+
+
+
+
+
+
+Vars
+ barricade_type The type of dropwall
+ core_shield The core shield that protects the generator
+ protected This variable is used to prevent damage to it's core shield when it is up.
+ Var Details barricade_type
+
+
+
+
+
+ The type of dropwall
+ The core shield that protects the generator
protected
+
+
+
+
+
+ This variable is used to prevent damage to it's core shield when it is up.
+
+
+
diff --git a/obj/structure/elite_tumor.html b/obj/structure/elite_tumor.html
new file mode 100644
index 0000000000000..7e05879cc229e
--- /dev/null
+++ b/obj/structure/elite_tumor.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/elite_tumor - Space Station 13
+
+
+
+
+
+
+Vars
+ invaders List of invaders that have teleportes into the arena multiple times . They will be suffering.
+ potentialspawns List of all potentially spawned elites Procs
+ onEliteLoss Hey kids, want 60 brute damage, increased by 40 each time you do it? Well, here you go!
+ Var Details invaders
+
+
+
+
+
+ List of invaders that have teleportes into the arena multiple times . They will be suffering.
potentialspawns
+
+
+
+
+
+ List of all potentially spawned elites
Proc Details onEliteLoss()
+
+
+
+
+
+ Hey kids, want 60 brute damage, increased by 40 each time you do it? Well, here you go!
+
+
+
diff --git a/obj/structure/falsewall.html b/obj/structure/falsewall.html
new file mode 100644
index 0000000000000..b748432003232
--- /dev/null
+++ b/obj/structure/falsewall.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/falsewall - Space Station 13
+
+
+
+
+
+
+Vars
+ env_smash_level Minimum environment smash level (found on simple animals) to break through this instantly
+ Var Details env_smash_level
+
+
+
+
+
+ Minimum environment smash level (found on simple animals) to break through this instantly
+
+
+
diff --git a/obj/structure/flora/grass/jungle.html b/obj/structure/flora/grass/jungle.html
new file mode 100644
index 0000000000000..5c5b92a56d6cb
--- /dev/null
+++ b/obj/structure/flora/grass/jungle.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/flora/grass/jungle - Space Station 13
+
+
+
+
+
+
+Vars
+ variations Controls how many variants of the sprite exists
+ Var Details variations
+
+
+
+
+
+ Controls how many variants of the sprite exists
+
+
+
diff --git a/obj/structure/flora/junglebush.html b/obj/structure/flora/junglebush.html
new file mode 100644
index 0000000000000..d69889fbc1b3f
--- /dev/null
+++ b/obj/structure/flora/junglebush.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/flora/junglebush - Space Station 13
+
+
+
+
+
+
+Vars
+ variations Controls how many variants of the sprite exists
+ Var Details variations
+
+
+
+
+
+ Controls how many variants of the sprite exists
+
+
+
diff --git a/obj/structure/flora/tree/jungle.html b/obj/structure/flora/tree/jungle.html
new file mode 100644
index 0000000000000..555cdd5e0d874
--- /dev/null
+++ b/obj/structure/flora/tree/jungle.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/flora/tree/jungle - Space Station 13
+
+
+
+
+
+
+
+ Var Details shadow_reference
+ – /obj /effect/abstract/shadow
+
+
+
+
+ Hard ref to the tree's shadow
+
+
+
diff --git a/obj/structure/loom.html b/obj/structure/loom.html
new file mode 100644
index 0000000000000..8440b70bdc536
--- /dev/null
+++ b/obj/structure/loom.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/loom - Space Station 13
+
+
+
+
+
+
+This is a loom. It's usually made out of wood and used to weave fabric like durathread or cotton into their respective cloth types.
Procs
+ weave Handles the weaving.
Proc Details weave
+
+ Handles the weaving.
+
+
+
diff --git a/obj/structure/mining_bomb.html b/obj/structure/mining_bomb.html
new file mode 100644
index 0000000000000..01caf8b671317
--- /dev/null
+++ b/obj/structure/mining_bomb.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/structure/mining_bomb - Space Station 13
+
+
+
+
+
+
+
+ Var Details damage
+
+
+
+
+
+ Damage done on explosion.
drill_power
+
+
+
+
+
+ Drill power of grenade
explosion_image
+
+
+
+
+
+ Image overlaid on explosion.
explosion_time
+
+
+
+
+
+ Time to explode from the priming
fauna_boost
+
+
+
+
+
+ Damage multiplier on hostile fauna.
power
+
+
+
+
+
+ Radius of explosion
prime_time
+
+
+
+
+
+ Time to prime the explosion
+
+
+
diff --git a/obj/structure/musician.html b/obj/structure/musician.html
new file mode 100644
index 0000000000000..db99dfcda1808
--- /dev/null
+++ b/obj/structure/musician.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ /obj/structure/musician - Space Station 13
+
+
+
+
+
+
+Proc Details should_stop_playing
+
+ Whether the instrument should stop playing
+Arguments:
+
+
+
+
diff --git a/obj/structure/railing.html b/obj/structure/railing.html
new file mode 100644
index 0000000000000..36dcd648187cc
--- /dev/null
+++ b/obj/structure/railing.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/railing - Space Station 13
+
+
+
+
+
+
+Procs
+ wrench_act Implements behaviour that makes it possible to unanchor the railing.
Proc Details
+ Implements behaviour that makes it possible to unanchor the railing.
+
+
+
diff --git a/obj/structure/reagent_dispensers.html b/obj/structure/reagent_dispensers.html
new file mode 100644
index 0000000000000..90626b84b4472
--- /dev/null
+++ b/obj/structure/reagent_dispensers.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/structure/reagent_dispensers - Space Station 13
+
+
+
+
+
+
+Vars
+ can_be_unwrenched Can this tank be unwrenched
+ lastrigger The last person to rig this fuel tank - Stored with the object. Only the last person matters for investigation
+ reagent_id The ID of the reagent that the dispenser uses
+ tank_volume How much this dispenser can hold (In units)
+ went_boom If the dispenser is being blown up already. Used to avoid multiple boom calls due to itself exploding etc
+ Var Details can_be_unwrenched
+
+
+
+
+
+ Can this tank be unwrenched
lastrigger
+
+
+
+
+
+ The last person to rig this fuel tank - Stored with the object. Only the last person matters for investigation
reagent_id
+
+
+
+
+
+ The ID of the reagent that the dispenser uses
tank_volume
+
+
+
+
+
+ How much this dispenser can hold (In units)
went_boom
+
+
+
+
+
+ If the dispenser is being blown up already. Used to avoid multiple boom calls due to itself exploding etc
+
+
+
diff --git a/obj/structure/reagent_dispensers/beerkeg/nuke.html b/obj/structure/reagent_dispensers/beerkeg/nuke.html
new file mode 100644
index 0000000000000..743afe8a998c4
--- /dev/null
+++ b/obj/structure/reagent_dispensers/beerkeg/nuke.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/reagent_dispensers/beerkeg/nuke - Space Station 13
+
+
+
+
+
+
+Vars
+ exploding If TRUE, prevents the player from inserting the disk again while it is currently exploding.
+ Var Details exploding
+
+
+
+
+
+ If TRUE, prevents the player from inserting the disk again while it is currently exploding.
+
+
+
diff --git a/obj/structure/respawner.html b/obj/structure/respawner.html
new file mode 100644
index 0000000000000..85a2ecc8122aa
--- /dev/null
+++ b/obj/structure/respawner.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/respawner - Space Station 13
+
+
+
+
+
+
+
+ Var Details selected_outfit
+
+
+
+
+
+ An outfit for ghosts to spawn with
+
+
+
diff --git a/obj/structure/roulette.html b/obj/structure/roulette.html
new file mode 100644
index 0000000000000..4d996ec8fc3c0
--- /dev/null
+++ b/obj/structure/roulette.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/roulette - Space Station 13
+
+
+
+
+
+
+Vars
+ colors Colors available on the roulette
+ options List of options the roulette currently has
+ spinning Is it currently spinning?
+ Var Details colors
+
+
+
+
+
+ Colors available on the roulette
options
+
+
+
+
+
+ List of options the roulette currently has
spinning
+
+
+
+
+
+ Is it currently spinning?
+
+
+
diff --git a/obj/structure/safe.html b/obj/structure/safe.html
new file mode 100644
index 0000000000000..bb93c3b57c1dc
--- /dev/null
+++ b/obj/structure/safe.html
@@ -0,0 +1,183 @@
+
+
+
+
+
+
+ /obj/structure/safe - Space Station 13
+
+
+
+
+
+
+A locked container that can only be opened by entering a combination through a dial.
Vars
+ current_tumbler_index The index in the tumblers list of the tumbler dial position that needs to be hit.
+ dial The position the dial is pointing to.
+ drill The currently placed thermal drill, if any.
+ drill_overlay The drill overlay image to display during the drilling process.
+ drill_start_time The world.time at which drilling started.
+ drill_timer The /proc/addtimer handle for the current thermal drill.
+ drill_x_offset The X pixel offset for the drilling progress bar.
+ drill_y_offset The Y pixel offset for the drilling progress bar.
+ driller Who placed the drill on the safe. Used to trigger the status effect
+ known_by Used by /obj/item/paper/safe_code to tell the codes through a paper spawned on map load.
+ locked Whether the safe is locked or not.
+ maxspace The maximum combined w_class of stuff in the safe.
+ number_of_tumblers The amount of tumblers that will be generated.
+ open Whether the safe is open or not.
+ progress_bar The progress bar image to display during the drilling process.
+ space The combined w_class of everything in the safe.
+ time_to_drill Drill duration of the current thermal drill.
+ tumblers The list of tumbler dial positions that need to be hit. Procs
+ check_unlocked Called every dial turn to determine whether the safe should unlock or not.
+ drill_open Called when the current thermal drill has finished drilling.
+ get_combination Returns the combination to unlock the safe as text.
+ notify_user Called every dial turn to provide feedback if possible.
+ Var Details current_tumbler_index
+
+
+
+
+
+ The index in the tumblers list of the tumbler dial position that needs to be hit.
dial
+
+
+
+
+
+ The position the dial is pointing to.
+ The currently placed thermal drill, if any.
drill_overlay
+
+
+
+
+
+ The drill overlay image to display during the drilling process.
drill_start_time
+
+
+
+
+
+ The world.time at which drilling started.
drill_timer
+
+
+
+
+
+ The /proc/addtimer handle for the current thermal drill.
drill_x_offset
+
+
+
+
+
+ The X pixel offset for the drilling progress bar.
drill_y_offset
+
+
+
+
+
+ The Y pixel offset for the drilling progress bar.
+ Who placed the drill on the safe. Used to trigger the status effect
known_by
+
+
+
+
+
+ Used by /obj/item/paper/safe_code to tell the codes through a paper spawned on map load.
locked
+
+
+
+
+
+ Whether the safe is locked or not.
maxspace
+
+
+
+
+
+ The maximum combined w_class of stuff in the safe.
number_of_tumblers
+
+
+
+
+
+ The amount of tumblers that will be generated.
open
+
+
+
+
+
+ Whether the safe is open or not.
progress_bar
+
+
+
+
+
+ The progress bar image to display during the drilling process.
space
+
+
+
+
+
+ The combined w_class of everything in the safe.
time_to_drill
+
+
+
+
+
+ Drill duration of the current thermal drill.
tumblers
+
+
+
+
+
+ The list of tumbler dial positions that need to be hit.
Proc Details check_unlocked()
+
+
+
+
+
+ Called every dial turn to determine whether the safe should unlock or not.
drill_open()
+
+
+
+
+
+ Called when the current thermal drill has finished drilling.
get_combination()
+
+
+
+
+
+ Returns the combination to unlock the safe as text.
notify_user(user, canhear, sounds, total_ticks, current_tick, correct_sound)
+
+
+
+
+
+ Called every dial turn to provide feedback if possible.
+
+
+
diff --git a/obj/structure/shadowcocoon.html b/obj/structure/shadowcocoon.html
new file mode 100644
index 0000000000000..c5ff394168212
--- /dev/null
+++ b/obj/structure/shadowcocoon.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/shadowcocoon - Space Station 13
+
+
+
+
+
+
+
+ Var Details silent
+
+
+
+
+
+ Will we play hallucination sounds or not
time_since_last_hallucination
+
+
+
+
+
+ Amount of SSobj ticks (Roughly 2 seconds) since the last hallucination proc'd
+
+
+
diff --git a/obj/structure/spawner/nether/bluespace_tap.html b/obj/structure/spawner/nether/bluespace_tap.html
new file mode 100644
index 0000000000000..7351acb5d1022
--- /dev/null
+++ b/obj/structure/spawner/nether/bluespace_tap.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/spawner/nether/bluespace_tap - Space Station 13
+
+
+
+
+
+
+
+ Var Details
+ the BSH that spawned this portal
+
+
+
diff --git a/obj/structure/spider/spiderling.html b/obj/structure/spider/spiderling.html
new file mode 100644
index 0000000000000..7ffe7f5aff663
--- /dev/null
+++ b/obj/structure/spider/spiderling.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/spider/spiderling - Space Station 13
+
+
+
+
+
+
+
+ Var Details xenobiology_spawned
+
+
+
+
+
+ Is this spiderling created from a xenobiology mob?
+
+
+
diff --git a/obj/structure/spider/terrorweb.html b/obj/structure/spider/terrorweb.html
new file mode 100644
index 0000000000000..891b1a8466eae
--- /dev/null
+++ b/obj/structure/spider/terrorweb.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ /obj/structure/spider/terrorweb - Space Station 13
+
+
+
+
+
+
+Proc Details after_carbon_crossed
+
+ Called some time after a carbon mob crossed the terror web.
+Arguments:
+
+
+
+
diff --git a/obj/structure/table.html b/obj/structure/table.html
new file mode 100644
index 0000000000000..929040241de84
--- /dev/null
+++ b/obj/structure/table.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/structure/table - Space Station 13
+
+
+
+
+
+
+Vars
+ can_be_flipped Can this table be flipped?
+ minimum_env_smash The minimum level of environment_smash required for simple animals to be able to one-shot this.
+ slippery If this is true, the table will have items slide off it when placed. Procs
+ check_cover Determines whether a projectile crossing our turf should be stopped.
+Return FALSE to stop the projectile.
+ Var Details can_be_flipped
+
+
+
+
+
+ Can this table be flipped?
minimum_env_smash
+
+
+
+
+
+ The minimum level of environment_smash required for simple animals to be able to one-shot this.
slippery
+
+
+
+
+
+ If this is true, the table will have items slide off it when placed.
Proc Details
+ Determines whether a projectile crossing our turf should be stopped.
+Return FALSE to stop the projectile.
+Arguments:
+
+P - The projectile trying to cross.
+from - Where the projectile is located.
+
+
+
+
diff --git a/obj/structure/table_frame.html b/obj/structure/table_frame.html
new file mode 100644
index 0000000000000..e8688480a0fa1
--- /dev/null
+++ b/obj/structure/table_frame.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/table_frame - Space Station 13
+
+
+
+
+
+
+Procs
+ try_make_table Try to make a table with the item used to attack. FALSE if you can't make a table and should attack. TRUE does not necessarily mean a table was made.
Proc Details try_make_table
+
+ Try to make a table with the item used to attack. FALSE if you can't make a table and should attack. TRUE does not necessarily mean a table was made.
+
+
+
diff --git a/obj/structure/transit_tube/station.html b/obj/structure/transit_tube/station.html
new file mode 100644
index 0000000000000..c9fe80358b906
--- /dev/null
+++ b/obj/structure/transit_tube/station.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/transit_tube/station - Space Station 13
+
+
+
+
+
+
+Vars
+ boarding_dir Direction by which you can board the tube
+ Var Details boarding_dir
+
+
+
+
+
+ Direction by which you can board the tube
+
+
+
diff --git a/obj/structure/transit_tube_pod.html b/obj/structure/transit_tube_pod.html
new file mode 100644
index 0000000000000..2047116f34aa7
--- /dev/null
+++ b/obj/structure/transit_tube_pod.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/structure/transit_tube_pod - Space Station 13
+
+
+
+
+
+
+Vars
+ current_move_anim_mode The move animation mode for the next processing tick
+ current_tube The tube we're currently traveling through
+ enter_delay How long to wait when entering a new tube
+ exit_delay How long to wait when exiting a new tube
+ move_cooldown The next time we'll be moving
+ next_dir The direction of our next transit from pipe to pipe. Stored between process calls here.
+ next_loc The location of our next target tube. Stored same as above
+ occupied_icon_state Icon state in use while we're occupied
+ Var Details current_move_anim_mode
+
+
+
+
+
+ The move animation mode for the next processing tick
current_tube
+
+
+
+
+
+ The tube we're currently traveling through
enter_delay
+
+
+
+
+
+ How long to wait when entering a new tube
exit_delay
+
+
+
+
+
+ How long to wait when exiting a new tube
move_cooldown
+
+
+
+
+
+ The next time we'll be moving
next_dir
+
+
+
+
+
+ The direction of our next transit from pipe to pipe. Stored between process calls here.
next_loc
+
+
+
+
+
+ The location of our next target tube. Stored same as above
occupied_icon_state
+
+
+
+
+
+ Icon state in use while we're occupied
+
+
+
diff --git a/obj/structure/window.html b/obj/structure/window.html
new file mode 100644
index 0000000000000..10b260d272b19
--- /dev/null
+++ b/obj/structure/window.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/structure/window - Space Station 13
+
+
+
+
+
+
+Vars
+ edge_overlay Tracks the edging appearence sprite
+ edge_overlay_file Used to define what file the edging sprite is contained within
+ env_smash_level Minimum environment smash level (found on simple animals) to break through this instantly
+ old_color Used to restore colours from polarised glass
+ superconductivity How well this window resists superconductivity.
+ Var Details edge_overlay
+
+
+
+
+
+ Tracks the edging appearence sprite
edge_overlay_file
+
+
+
+
+
+ Used to define what file the edging sprite is contained within
env_smash_level
+
+
+
+
+
+ Minimum environment smash level (found on simple animals) to break through this instantly
old_color
+
+
+
+
+
+ Used to restore colours from polarised glass
superconductivity
+
+
+
+
+
+ How well this window resists superconductivity.
+
+
+
diff --git a/obj/vehicle/janicart.html b/obj/vehicle/janicart.html
new file mode 100644
index 0000000000000..a3c7826be1845
--- /dev/null
+++ b/obj/vehicle/janicart.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/vehicle/janicart - Space Station 13
+
+
+
+
+
+
+Vars
+ buffer_delay How much speed the janicart loses while the buffer is active
+ floorbuffer Does it clean the tile under it?
+ Var Details buffer_delay
+
+
+
+
+
+ How much speed the janicart loses while the buffer is active
floorbuffer
+
+
+
+
+
+ Does it clean the tile under it?
+
+
+
diff --git a/obj/vehicle/lavaboat.html b/obj/vehicle/lavaboat.html
new file mode 100644
index 0000000000000..694f02eb53602
--- /dev/null
+++ b/obj/vehicle/lavaboat.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/vehicle/lavaboat - Space Station 13
+
+
+
+
+
+
+Vars
+ last_message_time The last time we told the user that they can't drive on land, so we don't spam them
+ Var Details last_message_time
+
+
+
+
+
+ The last time we told the user that they can't drive on land, so we don't spam them
+
+
+
diff --git a/procpath.html b/procpath.html
new file mode 100644
index 0000000000000..a32d81401a0c1
--- /dev/null
+++ b/procpath.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /procpath - Space Station 13
+
+
+
+
+
+
+Represents a proc or verb path.
+Despite having no DM-defined static type, proc paths have some variables,
+listed below. These are not modifiable, but for a given procpath P,
+new P(null, "Name", "Desc")
can be used to create a new procpath with the
+same code but new name
and desc
values. The other variables cannot be
+changed in this way.
+This type exists only to act as an annotation, providing reasonable static
+typing for procpaths. Previously, types like /atom/verb
were used, with
+the name
and desc
vars of /atom
thus being accessible. Proc and verb
+paths will fail istype
and ispath
checks against /procpath
.
Vars
+ category The category or tab the verb will appear in.
+ desc The verb's help text or description.
+ hidden Whether or not the verb appears in statpanel and commandbar when you press space
+ invisibility Only clients/mobs with see_invisibility
higher can use the verb.
+ name A text string of the verb's name.
+ Var Details category
+
+
+
+
+
+ The category or tab the verb will appear in.
desc
+
+
+
+
+
+ The verb's help text or description.
hidden
+
+
+
+
+
+ Whether or not the verb appears in statpanel and commandbar when you press space
invisibility
+
+
+
+
+
+ Only clients/mobs with see_invisibility
higher can use the verb.
name
+
+
+
+
+
+ A text string of the verb's name.
+
+
+
diff --git a/turf.html b/turf.html
new file mode 100644
index 0000000000000..d5493f817bfb0
--- /dev/null
+++ b/turf.html
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+ /turf - Space Station 13
+
+
+
+
+turf
+
+
+
+
+
+Vars
+ affecting_lights List of light sources affecting this turf.
+ atmos_environment The external environment that this tile is exposed to for ATMOS_MODE_EXPOSED_TO_ENVIRONMENT
+ atmos_mode The general behavior of atmos on this tile.
+ atmos_superconductivity makes turfs less picky about where they transfer gas. Largely just used in the SM
+ corners A list of our lighting corners.
+ dynamic_lighting Handles if the lighting should be dynamic. Generally lighting is dynamic if it's not in space
+ fixed_underlay Icon-smoothing variable to map a diagonal wall corner with a fixed underlay.
+ has_opaque_atom Not to be confused with opacity, this will be TRUE if there's any opaque atom on the tile.
+ lighting_corners_initialised If you're curious why these are TMP vars, I don't know! TMP only affects savefiles so this does nothing :) - GDN
+Is the lighting on this turf inited
+ lighting_object The lighting Object affecting us
+ oxygen Properties for open tiles (/floor)
+All the gas vars, on the turf, are meant to be utilized for initializing a gas datum and setting its first gas values; the turf vars are never further modified at runtime; it is never directly used for calculations by the atmospherics system.
+ pathing_pass_method How pathing algorithm will check if this turf is passable by itself (not including content checks). By default it's just density check.
+WARNING: Currently to use a density shortcircuiting this does not support dense turfs with special allow through function
+ pressure_difference The pressure difference between the turf and it's neighbors. Affects movables by pulling them in the path of least resistance
+ pressure_direction The direction movables should travel when affected by pressure. Set to the biggest difference in atmos by turf neighbors
+ real_layer Set if the turf should appear on a different layer while in-game and map editing, otherwise use normal layer.
+ transparent_floor used to check if pipes should be visible under the turf or not Procs
+ AdjacentTurfs Returns the adjacent turfs. Can check for density or cardinal directions only instead of all 8, or just dense turfs entirely. dense_only takes precedence over open_only.
+ LinkBlockedWithAccess For seeing if we can actually move between 2 given turfs while accounting for our access and the caller's pass_flags
+ blind_release_air Blindly releases air to this tile. Do not use if you care what the tile previously held, implement /datum/milla_safe instead.
+ get_readonly_air Gets a read-only version of this tile's air. Do not use if you intend to modify the air later, implement /datum/milla_safe instead.
+ private_unsafe_get_air Do not call this directly. Use get_readonly_air or implement /datum/milla_safe.
+ Var Details affecting_lights
+ – /tmp/list/datum/light_source
+
+
+
+
+ List of light sources affecting this turf.
atmos_environment
+
+
+
+
+
+ The external environment that this tile is exposed to for ATMOS_MODE_EXPOSED_TO_ENVIRONMENT
atmos_mode
+
+
+
+
+
+ The general behavior of atmos on this tile.
atmos_superconductivity
+
+
+
+
+
+ makes turfs less picky about where they transfer gas. Largely just used in the SM
corners
+ – /tmp/list/datum/lighting_corner
+
+
+
+
+ A list of our lighting corners.
dynamic_lighting
+
+
+
+
+
+ Handles if the lighting should be dynamic. Generally lighting is dynamic if it's not in space
fixed_underlay
+
+
+
+
+
+ Icon-smoothing variable to map a diagonal wall corner with a fixed underlay.
has_opaque_atom
+
+
+
+
+
+ Not to be confused with opacity, this will be TRUE if there's any opaque atom on the tile.
lighting_corners_initialised
+
+
+
+
+
+ If you're curious why these are TMP vars, I don't know! TMP only affects savefiles so this does nothing :) - GDN
+Is the lighting on this turf inited
lighting_object
+
+
+
+
+
+ The lighting Object affecting us
oxygen
+
+
+
+
+
+ Properties for open tiles (/floor)
+All the gas vars, on the turf, are meant to be utilized for initializing a gas datum and setting its first gas values; the turf vars are never further modified at runtime; it is never directly used for calculations by the atmospherics system.
pathing_pass_method
+
+
+
+
+
+ How pathing algorithm will check if this turf is passable by itself (not including content checks). By default it's just density check.
+WARNING: Currently to use a density shortcircuiting this does not support dense turfs with special allow through function
pressure_difference
+
+
+
+
+
+ The pressure difference between the turf and it's neighbors. Affects movables by pulling them in the path of least resistance
pressure_direction
+
+
+
+
+
+ The direction movables should travel when affected by pressure. Set to the biggest difference in atmos by turf neighbors
real_layer
+
+
+
+
+
+ Set if the turf should appear on a different layer while in-game and map editing, otherwise use normal layer.
transparent_floor
+
+
+
+
+
+ used to check if pipes should be visible under the turf or not
Proc Details AdjacentTurfs(open_only, cardinal_only, dense_only)
+
+
+
+
+
+ Returns the adjacent turfs. Can check for density or cardinal directions only instead of all 8, or just dense turfs entirely. dense_only takes precedence over open_only.
LinkBlockedWithAccess(/turf /destination_turf, caller, ID, no_id)
+
+
+
+
+
+ For seeing if we can actually move between 2 given turfs while accounting for our access and the caller's pass_flags
+Assumes destinantion turf is non-dense - check and shortcircuit in code invoking this proc to avoid overhead.
+Arguments:
+
+caller: The movable, if one exists, being used for mobility checks to see what tiles it can reach
+ID: An ID card that decides if we can gain access to doors that would otherwise block a turf
+simulated_only: Do we only worry about turfs with simulated atmos, most notably things that aren't space?
+no_id: When true, doors with public access will count as impassible
+ blind_release_air
+
+ Blindly releases air to this tile. Do not use if you care what the tile previously held, implement /datum/milla_safe instead.
get_readonly_air()
+
+
+
+
+
+ Gets a read-only version of this tile's air. Do not use if you intend to modify the air later, implement /datum/milla_safe instead.
private_unsafe_get_air()
+
+
+
+
+
+ Do not call this directly. Use get_readonly_air or implement /datum/milla_safe.
+
+
+
diff --git a/turf/simulated.html b/turf/simulated.html
new file mode 100644
index 0000000000000..6baf2d0b9a314
--- /dev/null
+++ b/turf/simulated.html
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ /turf/simulated - Space Station 13
+
+
+
+
+
+
+Vars
+ active_hotspot The active hotspot on this turf. The fact this is done through a literal object is painful
+ atmos_overlay_type Current gas overlay. Can be set to plasma or sleeping_gas
+ excited Is this turf active?
+ excited_group The excited group we're linked to. Used for zone atmos calculations
+ fuel_burnt If a fire is ongoing, how much fuel did we burn last tick?
+Value is not updated while below PLASMA_MINIMUM_BURN_TEMPERATURE.
+ recently_active Was this turf recently activated? Probably not needed anymore
+ temperature_archived The temp we were when we got archived
+ wet Used to check if the turf is wet. Really should just be an object on the turf
+ wet_overlay Used to store the wet turf overlay. Really should just be an object on the turf Procs
+ quench Quenches any fire on the turf, and if it does, cools down the turf's air by the given parameters.
+ Var Details active_hotspot
+
+
+
+
+
+ The active hotspot on this turf. The fact this is done through a literal object is painful
atmos_overlay_type
+
+
+
+
+
+ Current gas overlay. Can be set to plasma or sleeping_gas
excited
+
+
+
+
+
+ Is this turf active?
excited_group
+
+
+
+
+
+ The excited group we're linked to. Used for zone atmos calculations
fuel_burnt
+
+
+
+
+
+ If a fire is ongoing, how much fuel did we burn last tick?
+Value is not updated while below PLASMA_MINIMUM_BURN_TEMPERATURE.
recently_active
+
+
+
+
+
+ Was this turf recently activated? Probably not needed anymore
temperature_archived
+
+
+
+
+
+ The temp we were when we got archived
wet
+
+
+
+
+
+ Used to check if the turf is wet. Really should just be an object on the turf
wet_overlay
+
+
+
+
+
+ Used to store the wet turf overlay. Really should just be an object on the turf
Proc Details quench(delta, divisor)
+
+
+
+
+
+ Quenches any fire on the turf, and if it does, cools down the turf's air by the given parameters.
+
+
+
diff --git a/turf/simulated/floor/light.html b/turf/simulated/floor/light.html
new file mode 100644
index 0000000000000..0aa6344c2d8b7
--- /dev/null
+++ b/turf/simulated/floor/light.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /turf/simulated/floor/light - Space Station 13
+
+
+
+
+
+
+
+ Var Details can_modify_colour
+
+
+
+
+
+ Can we modify a colour
light_broken
+
+
+
+
+
+ Are we broken
on
+
+
+
+
+
+ Are we on
using_power
+
+
+
+
+
+ Are we draining power
+
+
+
diff --git a/turf/simulated/floor/light/disco.html b/turf/simulated/floor/light/disco.html
new file mode 100644
index 0000000000000..832fa44c470ad
--- /dev/null
+++ b/turf/simulated/floor/light/disco.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /turf/simulated/floor/light/disco - Space Station 13
+
+
+
+
+
+
+
+ Var Details available_colors
+
+
+
+
+
+ The tile can change into these colors
can_modify_colour
+
+
+
+
+
+ Cannot change its color with a multitool
current_color
+
+
+
+
+
+ This is our current color, don't pick it again
+
+
+
diff --git a/turf/simulated/floor/plating/asteroid/airless/cave.html b/turf/simulated/floor/plating/asteroid/airless/cave.html
new file mode 100644
index 0000000000000..df22ab8d8ff71
--- /dev/null
+++ b/turf/simulated/floor/plating/asteroid/airless/cave.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /turf/simulated/floor/plating/asteroid/airless/cave - Space Station 13
+
+
+
+
+
+
+Vars
+ recursions Very important for making sure prod won't die due to poor RNG from cave spawns
+ Var Details recursions
+
+
+
+
+
+ Very important for making sure prod won't die due to poor RNG from cave spawns
+
+
+
diff --git a/turf/simulated/floor/transparent/glass.html b/turf/simulated/floor/transparent/glass.html
new file mode 100644
index 0000000000000..a8969b817ed9e
--- /dev/null
+++ b/turf/simulated/floor/transparent/glass.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /turf/simulated/floor/transparent/glass - Space Station 13
+
+
+
+
+
+
+Vars
+ light_process Amount of SSobj ticks (Roughly 2 seconds) that a extinguished glass floor tile has been lit up
+ Var Details light_process
+
+
+
+
+
+ Amount of SSobj ticks (Roughly 2 seconds) that a extinguished glass floor tile has been lit up
+
+
+
diff --git a/turf/simulated/mineral.html b/turf/simulated/mineral.html
new file mode 100644
index 0000000000000..61f2e2165235a
--- /dev/null
+++ b/turf/simulated/mineral.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /turf/simulated/mineral - Space Station 13
+
+
+
+
+
+
+Mineral deposits
+wall piece
+ Var Details should_reset_color
+
+
+
+
+
+ Should this be set to the normal rock colour on init?
+
+
+
diff --git a/turf/simulated/wall.html b/turf/simulated/wall.html
new file mode 100644
index 0000000000000..c6af015fc7e14
--- /dev/null
+++ b/turf/simulated/wall.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /turf/simulated/wall - Space Station 13
+
+
+
+
+
+
+
+ Var Details explodable
+
+
+
+
+
+ Are we a explodable turf?
explodable_overlay
+
+
+
+
+
+ Do we have a explodable overlay?
rusted
+
+
+
+
+
+ Are we a rusty wall or not?
rusted_overlay
+
+
+
+
+
+ Have we got a rusty overlay?
Proc Details rust()
+
+
+
+
+
+ Apply rust effects to the wall
+
+
+
diff --git a/turf/simulated/wall/indestructible/fakeglass.html b/turf/simulated/wall/indestructible/fakeglass.html
new file mode 100644
index 0000000000000..2cd4c93d03c10
--- /dev/null
+++ b/turf/simulated/wall/indestructible/fakeglass.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /turf/simulated/wall/indestructible/fakeglass - Space Station 13
+
+
+
+
+
+
+
+ Var Details edge_overlay
+
+
+
+
+
+ Tracks the edging appearence sprite
edge_overlay_file
+
+
+
+
+
+ Used to define what file the edging sprite is contained within
+
+
+
diff --git a/world.html b/world.html
new file mode 100644
index 0000000000000..50c8670878d53
--- /dev/null
+++ b/world.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /world - Space Station 13
+
+
+
+
+world
+
+
+
+
+
+Proc Details invoke_callback_with_usr(/mob /user_mob, /datum /callback/invoked_callback, ...)
+
+
+
+
+
+ Makes a call in the context of a different usr. Use sparingly
+
+
+