diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/CNAME b/CNAME
new file mode 100644
index 000000000000..3c47c69fcca6
--- /dev/null
+++ b/CNAME
@@ -0,0 +1 @@
+docs.cm-ss13.com
diff --git a/area.html b/area.html
new file mode 100644
index 000000000000..c4dbacff3bde
--- /dev/null
+++ b/area.html
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ /area - byond
+
+
+
+
+Unknown
+
+
+
+
+
+Vars
+ ambience_exterior Default sound to play as ambience for clients entering the area
+ area_has_base_lighting Whether this area has a currently active base lighting, bool
+ base_lighting_alpha alpha 0-255 of lighting_effect and thus baselighting intensity
+ base_lighting_color The colour of the light acting on this area
+ block_game_interaction If this area is outside the game's normal interactivity and should be excluded from things like EOR reports and crew monitors.
+Doesn't need to be set for areas/Z levels that are marked as admin-only
+ flags_area Bitfield of special area features
+ lighting_effect The mutable appearance we underlay to show light
+ sound_environment Default sound environment to use for the area, as list or int BYOND preset: http://www.byond.com/docs/ref/#/sound/var/environment
+ static_lighting Whether this area allows static lighting and thus loads the lighting objects Procs
+ get_sound_ambience Returns the correct ambience sound track for a client in this area
+ Var Details ambience_exterior
+
+
+
+
+
+ Default sound to play as ambience for clients entering the area
area_has_base_lighting
+
+
+
+
+
+ Whether this area has a currently active base lighting, bool
base_lighting_alpha
+
+
+
+
+
+ alpha 0-255 of lighting_effect and thus baselighting intensity
base_lighting_color
+
+
+
+
+
+ The colour of the light acting on this area
block_game_interaction
+
+
+
+
+
+ If this area is outside the game's normal interactivity and should be excluded from things like EOR reports and crew monitors.
+Doesn't need to be set for areas/Z levels that are marked as admin-only
flags_area
+
+
+
+
+
+ Bitfield of special area features
lighting_effect
+
+
+
+
+
+ The mutable appearance we underlay to show light
sound_environment
+
+
+
+
+
+ Default sound environment to use for the area, as list or int BYOND preset: http://www.byond.com/docs/ref/#/sound/var/environment
static_lighting
+
+
+
+
+
+ Whether this area allows static lighting and thus loads the lighting objects
Proc Details get_sound_ambience
+
+ Returns the correct ambience sound track for a client in this area
+
+
+
diff --git a/area/almayer.html b/area/almayer.html
new file mode 100644
index 000000000000..554a64c9bae5
--- /dev/null
+++ b/area/almayer.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /area/almayer - byond
+
+
+
+
+
+
+
+ Var Details hijack_evacuation_area
+
+
+
+
+
+ Whether this area is used for hijack evacuation progress
hijack_evacuation_type
+
+
+
+
+
+ Whether this area is additive or multiplicative towards evacuation progress
hijack_evacuation_weight
+
+
+
+
+
+ The weight this area gives towards hijack evacuation progress
+
+
+
diff --git a/area/shuttle.html b/area/shuttle.html
new file mode 100644
index 000000000000..12b75e3296f8
--- /dev/null
+++ b/area/shuttle.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /area/shuttle - byond
+
+
+
+
+
+
+Proc Details PlaceOnTopReact(/list/new_baseturfs, /turf /fake_turf_type, flags)
+
+
+
+
+
+ area/shuttle/Initialize()
+
+
+
diff --git a/atom.html b/atom.html
new file mode 100644
index 000000000000..46fd639cd2ec
--- /dev/null
+++ b/atom.html
@@ -0,0 +1,463 @@
+
+
+
+
+
+
+ /atom - byond
+
+
+
+
+
+
+Vars
+ base_pixel_x Default pixel x shifting for the atom's icon.
+ base_pixel_y Default pixel y shifting for the atom's icon.
+ base_transform Base transform matrix, edited by admin tooling and such
+ hybrid_light_sources Any light sources that are "inside" of us, for example, if src here was a mob that's carrying a flashlight, that flashlight's light source would be part of this list.
+ light Our light source. Don't fuck with this directly unless you have a good reason!
+ light_color Hexadecimal RGB string representing the colour of the light. White by default.
+ light_flags Bitflags to determine lighting-related atom properties.
+ light_mask_type typepath for the lighting maskfor dynamic light sources
+ light_on Boolean variable for toggleable lights. Has no effect without the proper light_system, light_range and light_power values.
+ light_pixel_x x offset for dynamic lights on this atom
+ light_pixel_y y offset for dynamic lights on this atom
+ light_power Intensity of the light. The stronger, the less shadows you will see on the lit area.
+ light_range Range of the light in tiles. Zero means no light.
+ light_system Light systems, only one of the three should be active at the same time.
+ minimap_color The color this atom will be if we choose to draw it on the minimap
+ orbit_target Reference to atom being orbited
+ raw_transform Last transform used before being compound with base_transform
+This allows us to re-create transform if only base_transform changes
+ reagents Chemistry.
+ static_light The light source, datum. Dont fuck with this directly
+ static_light_sources Static light sources currently attached to this atom, this includes ones owned by atoms inside this atom Procs
+ GetAllContents Will return the contents of an atom recursivly to a depth of 'searchDepth', not including starting atom
+ Topic Passes Stat Browser Panel clicks to the game and calls client click on an atom
+ add_blood add_blood
+ add_mob_blood Adjust the randomness there so everyone gets the same thing
+Shout it at everyone
+ apply_transform Updates the atom's transform compounding it with /atom/var/base_transform
+ attack_alien *The parent proc, will default to UnarmedAttack behaviour unless overridden
+Return XENO_ATTACK_ACTION if it does something and the attack should have full attack delay.
+Return XENO_NONCOMBAT_ACTION if it did something and should have some delay.
+Return XENO_NO_DELAY_ACTION if it gave an error message or should have no delay at all, ex. "You can't X that, it's Y!"
+Return FALSE if it didn't do anything and should count as a missed slash.
+ balloon_alert Creates text that will float from the atom upwards to the viewer.
+ balloon_alert_to_viewers Create balloon alerts (text that floats up) to everything within range.
+Will only display to people who can see.
+ beam This is what you use to start a beam. Example: origin.Beam(target, args). Store the return of this proc if you don't set maxdist or time, you need it to delete the beam.
+ connect_to_shuttle This proc is called on atoms when they are loaded into a shuttle
+ get_all_contents Returns the src and all recursive contents as a list. Includes the starting atom.
+ get_all_orbiters Recursive getter method to return a list of all ghosts orbitting this atom
+ get_storage_depth_to Returns the storage depth of an atom. This is the number of items the atom is nested in before reaching the designated container, counted inclusively.
+Returning 1 == directly inside the container's contents, 2 == inside something which is itself inside the container, etc.
+An alternative to loc.loc; looked at another way, the number it returns is the number of loc checks before reaching the target.
+Returns FALSE if the atom isn't somewhere inside the container's contents.
+ get_storage_depth_turf Like get storage depth to, but returns the depth to the nearest turf, inclusively
+Returns FALSE if no top level turf (a loc was null somewhere, or a non-turf atom's loc was an area somehow).
+ langchat_display_image
+ langchat_drop_image Hides the image, if one exists. Do not null the langchat image; it is rotated when the mob is buckled or proned to maintain text orientation.
+ langchat_make_image Creates the image if one does not exist, resets settings that are modified by speech procs.
+ reset_light Turn on the light, should be called by a timer
+ setDir Hook for running code when a dir change occurs
+ set_density Setter for the density
variable to append behavior related to its changing.
+ set_light_flags Setter for the light flags of this atom.
+ set_opacity Updates the atom's opacity value.
+ static_update_light Pretty simple, just updates static lights on this atom
+ transfer_label_component //////////////////// Hand Labeler ////////////////////////////////
+meant for use with qdelling/newing things to transfer labels between them
+ transition_filter
+ turn_light If this object has lights, turn it on/off.
+user: the mob actioning this
+toggle_on: if TRUE, will try to turn ON the light. Opposite if FALSE
+cooldown: how long until you can toggle the light on/off again
+sparks: if a spark effect will be generated
+forced: if TRUE and toggle_on = FALSE, will cause the light to turn on in cooldown second
+originated_turf: if not null, will check if the obj_turf is closer than distance_max to originated_turf, and the proc will return if not
+distance_max: used to check if originated_turf is close to obj.loc
+ update_base_transform Upates the base_transform which will be compounded with other transforms
+ update_light Will update the light (duh).Creates or destroys it if needed, makes it update values, makes sure it's got the correct source turf...
+ vv_get_dropdown Return the markup to for the dropdown list for the VV panel for this atom
+ Var Details base_pixel_x
+
+
+
+
+
+ Default pixel x shifting for the atom's icon.
base_pixel_y
+
+
+
+
+
+ Default pixel y shifting for the atom's icon.
+ Base transform matrix, edited by admin tooling and such
hybrid_light_sources
+
+
+
+
+
+ Any light sources that are "inside" of us, for example, if src here was a mob that's carrying a flashlight, that flashlight's light source would be part of this list.
+ Our light source. Don't fuck with this directly unless you have a good reason!
light_color
+
+
+
+
+
+ Hexadecimal RGB string representing the colour of the light. White by default.
light_flags
+
+
+
+
+
+ Bitflags to determine lighting-related atom properties.
light_mask_type
+
+
+
+
+
+ typepath for the lighting maskfor dynamic light sources
light_on
+
+
+
+
+
+ Boolean variable for toggleable lights. Has no effect without the proper light_system, light_range and light_power values.
light_pixel_x
+
+
+
+
+
+ x offset for dynamic lights on this atom
light_pixel_y
+
+
+
+
+
+ y offset for dynamic lights on this atom
light_power
+
+
+
+
+
+ Intensity of the light. The stronger, the less shadows you will see on the lit area.
light_range
+
+
+
+
+
+ Range of the light in tiles. Zero means no light.
light_system
+
+
+
+
+
+ Light systems, only one of the three should be active at the same time.
minimap_color
+
+
+
+
+
+ The color this atom will be if we choose to draw it on the minimap
orbit_target
+
+
+
+
+
+ Reference to atom being orbited
+ Last transform used before being compound with base_transform
+This allows us to re-create transform if only base_transform changes
+ Chemistry.
+ The light source, datum. Dont fuck with this directly
static_light_sources
+
+
+
+
+
+ Static light sources currently attached to this atom, this includes ones owned by atoms inside this atom
Proc Details GetAllContents(searchDepth, /list/toReturn)
+
+
+
+
+
+ Will return the contents of an atom recursivly to a depth of 'searchDepth', not including starting atom
Topic(href, /list/href_list)
+
+
+
+
+
+ Passes Stat Browser Panel clicks to the game and calls client click on an atom
add_blood(b_color)
+
+
+
+
+
+ add_blood
add_mob_blood
+
+ Adjust the randomness there so everyone gets the same thing
+Shout it at everyone
+ Updates the atom's transform compounding it with /atom/var/base_transform
attack_alien
+
+ *The parent proc, will default to UnarmedAttack behaviour unless overridden
+Return XENO_ATTACK_ACTION if it does something and the attack should have full attack delay.
+Return XENO_NONCOMBAT_ACTION if it did something and should have some delay.
+Return XENO_NO_DELAY_ACTION if it gave an error message or should have no delay at all, ex. "You can't X that, it's Y!"
+Return FALSE if it didn't do anything and should count as a missed slash.
+If using do_afters or sleeps, use invoke_async (or manually add the relevant action delayand return FALSE
+so that it doesn't double up on the delays) so that it applies the delay immediately instead of when it finishes.*
balloon_alert(/mob /viewer, text, text_color)
+
+
+
+
+
+ Creates text that will float from the atom upwards to the viewer.
balloon_alert_to_viewers(message, self_message, max_distance, /list/ignored_mobs, text_color)
+
+
+
+
+
+ Create balloon alerts (text that floats up) to everything within range.
+Will only display to people who can see.
beam(/atom /BeamTarget, icon_state, icon, time, maxdistance, beam_type, always_turn)
+
+
+
+
+
+ This is what you use to start a beam. Example: origin.Beam(target, args). Store the return of this proc if you don't set maxdist or time, you need it to delete the beam.
+Unless you're making a custom beam effect (see the beam_type argument), you won't actually have to mess with any other procs. Make sure you store the return of this Proc, you'll need it
+to kill the beam.
+Arguments:
+BeamTarget: Where you're beaming from. Where do you get origin? You didn't read the docs, fuck you.
+icon_state: What the beam's icon_state is. The datum effect isn't the ebeam object, it doesn't hold any icon and isn't type dependent.
+icon: What the beam's icon file is. Don't change this, man. All beam icons should be in beam.dmi anyways.
+maxdistance: how far the beam will go before stopping itself. Used mainly for two things: preventing lag if the beam may go in that direction and setting a range to abilities that use beams.
+beam_type: The type of your custom beam. This is for adding other wacky stuff for your beam only. Most likely, you won't (and shouldn't) change it.
+ This proc is called on atoms when they are loaded into a shuttle
get_all_contents(ignore_flag_1)
+
+
+
+
+
+ Returns the src and all recursive contents as a list. Includes the starting atom.
get_all_orbiters(/list/processed, source)
+
+
+
+
+
+ Recursive getter method to return a list of all ghosts orbitting this atom
+This will work fine without manually passing arguments.
get_storage_depth_to(/atom /container)
+
+
+
+
+
+ Returns the storage depth of an atom. This is the number of items the atom is nested in before reaching the designated container, counted inclusively.
+Returning 1 == directly inside the container's contents, 2 == inside something which is itself inside the container, etc.
+An alternative to loc.loc; looked at another way, the number it returns is the number of loc checks before reaching the target.
+Returns FALSE if the atom isn't somewhere inside the container's contents.
get_storage_depth_turf()
+
+
+
+
+
+ Like get storage depth to, but returns the depth to the nearest turf, inclusively
+Returns FALSE if no top level turf (a loc was null somewhere, or a non-turf atom's loc was an area somehow).
langchat_display_image
+
+
+Displays image to a single listener after it was built above eg. for chaining different game logic than speech code
+This does just that, doesn't check deafness or language! Do what you will in that regard *
+ langchat_drop_image()
+
+
+
+
+
+ Hides the image, if one exists. Do not null the langchat image; it is rotated when the mob is buckled or proned to maintain text orientation.
langchat_make_image(override_color)
+
+
+
+
+
+ Creates the image if one does not exist, resets settings that are modified by speech procs.
reset_light()
+
+
+
+
+
+ Turn on the light, should be called by a timer
setDir(newdir)
+
+
+
+
+
+ Hook for running code when a dir change occurs
+Not recommended to override, listen for the COMSIG_ATOM_DIR_CHANGE signal instead (sent by this proc)
set_density(new_value)
+
+
+
+
+
+ Setter for the density
variable to append behavior related to its changing.
set_light_flags(new_value)
+
+
+
+
+
+ Setter for the light flags of this atom.
set_opacity(new_opacity)
+
+
+
+
+
+ Updates the atom's opacity value.
+This exists to act as a hook for associated behavior.
+It notifies (potentially) affected light sources so they can update (if needed).
static_update_light()
+
+
+
+
+
+ Pretty simple, just updates static lights on this atom
transfer_label_component
+
+ //////////////////// Hand Labeler ////////////////////////////////
+meant for use with qdelling/newing things to transfer labels between them
transition_filter(name, /list/new_params, time, easing, loop)
+
+
+
+
+
+
+
+Update a filter's parameter and animate this change. If the filter doesnt exist we won't do anything.
+
+
+Basically a [datum/proc/modify_filter] call but with animations. Unmodified filter parameters are kept.
+
+
+Arguments:
+
+
+
+
+
+
+new_params - New parameters of the filter
+
+
+
+
+time - time arg of the BYOND animate() proc.
+
+
+
+
+easing - easing arg of the BYOND animate() proc.
+
+
+
+
+loop - loop arg of the BYOND animate() proc.
+
+
+ turn_light(/mob /user, toggle_on, cooldown, sparks, forced, light_again)
+
+
+
+
+
+ If this object has lights, turn it on/off.
+user: the mob actioning this
+toggle_on: if TRUE, will try to turn ON the light. Opposite if FALSE
+cooldown: how long until you can toggle the light on/off again
+sparks: if a spark effect will be generated
+forced: if TRUE and toggle_on = FALSE, will cause the light to turn on in cooldown second
+originated_turf: if not null, will check if the obj_turf is closer than distance_max to originated_turf, and the proc will return if not
+distance_max: used to check if originated_turf is close to obj.loc
+ Upates the base_transform which will be compounded with other transforms
update_light()
+
+
+
+
+
+ Will update the light (duh).Creates or destroys it if needed, makes it update values, makes sure it's got the correct source turf...
vv_get_dropdown()
+
+
+
+
+
+ Return the markup to for the dropdown list for the VV panel for this atom
+Override in subtypes to add custom VV handling in the VV panel
+
+
+
diff --git a/atom/movable.html b/atom/movable.html
new file mode 100644
index 000000000000..07dc5e23412e
--- /dev/null
+++ b/atom/movable.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ /atom/movable - byond
+
+
+
+
+
+
+Vars
+ affected_movable_lights Lazylist to keep track on the sources of illumination.
+ affecting_dynamic_lumi Highest-intensity light affecting us, which determines our visibility.
+ black_market_value How much this mob|object is worth when lowered into the ASRS pit while the black market is unlocked.
+ blocks_emissive Either FALSE, EMISSIVE_BLOCK_GENERIC , or EMISSIVE_BLOCK_UNIQUE
+ em_block Internal holder for emissive blocker object, do not use directly use blocks_emissive
+ emissive_overlay Holds a reference to the emissive blocker overlay Procs
+ Collide Called when a movable atom has hit an atom via movement
+ Collided Called when an atom has been hit by a movable atom via movement
+ 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()
+ destroy_clone ---Var-Copy---
+ keybind_face_direction A wrapper for setDir that should only be able to fail by living mobs.
+ set_light_range_power_color Helper to change several lighting overlay settings.
+ ui_interact The ui_interact proc is used to open and update Nano UIs
+If ui_interact is not used then the UI will not update correctly
+ui_interact is currently defined for /atom/movable
+ update_dynamic_luminosity Keeps track of the sources of dynamic luminosity and updates our visibility with the highest.
+ Var Details affected_movable_lights
+
+
+
+
+
+ Lazylist to keep track on the sources of illumination.
affecting_dynamic_lumi
+
+
+
+
+
+ Highest-intensity light affecting us, which determines our visibility.
black_market_value
+
+
+
+
+
+ How much this mob|object is worth when lowered into the ASRS pit while the black market is unlocked.
blocks_emissive
+
+
+
+
+
+ Either FALSE, EMISSIVE_BLOCK_GENERIC , or EMISSIVE_BLOCK_UNIQUE
+ Internal holder for emissive blocker object, do not use directly use blocks_emissive
emissive_overlay
+
+
+
+
+
+ Holds a reference to the emissive blocker overlay
Proc Details Collide
+
+ Called when a movable atom has hit an atom via movement
+ Called when an atom has been hit by a movable atom via movement
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()
destroy_clone()
+
+
+
+
+
+ ---Var-Copy---
keybind_face_direction(direction)
+
+
+
+
+
+ A wrapper for setDir that should only be able to fail by living mobs.
+Called from [/atom/movable/proc/keyLoop], this exists to be overwritten by living mobs with a check to see if we're actually alive enough to change directions
set_light_range_power_color(range, power, color)
+
+
+
+
+
+ Helper to change several lighting overlay settings.
ui_interact
+
+ The ui_interact proc is used to open and update Nano UIs
+If ui_interact is not used then the UI will not update correctly
+ui_interact is currently defined for /atom/movable
+@param user /mob The mob who is interacting with this ui
+@param ui_key string A string key to use for this ui. Allows for multiple unique uis on one obj/mob (defaut value "main")
+@param ui /datum/nanoui This parameter is passed by the nanoui process() proc when updating an open ui
+@param force_open boolean Force the UI to (re)open, even if it's already open
+@return nothing
update_dynamic_luminosity()
+
+
+
+
+
+ Keeps track of the sources of dynamic luminosity and updates our visibility with the highest.
+
+
+
diff --git a/atom/movable/emissive_blocker.html b/atom/movable/emissive_blocker.html
new file mode 100644
index 000000000000..879614ef3992
--- /dev/null
+++ b/atom/movable/emissive_blocker.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ /atom/movable/emissive_blocker - byond
+
+
+
+
+
+
+Internal atom that copies an appearance on to the blocker plane
+Copies an appearance vis render_target and render_source on to the emissive blocking 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/lighting_mask.html b/atom/movable/lighting_mask.html
new file mode 100644
index 000000000000..633fda2f4827
--- /dev/null
+++ b/atom/movable/lighting_mask.html
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+ /atom/movable/lighting_mask - byond
+
+
+
+
+
+
+Vars
+ affecting_turfs Turfs that are being affected by this mask, this is for the sake of luminosity
+ attached_atom The atom that we are attached to, does not need hard del protection as we are deleted with it
+ awaiting_update Prevents us from registering for update twice before SSlighting init
+ current_angle The current angle the item is pointing at
+ is_directional Set to TRUE if you want the light to rotate with the owner
+ mask_holder Reference to the holder /obj/effect
+ radius The radius of illumination of the mask
+ shadows list of mutable appearance shadows Procs
+ apply_matrix if you want the matrix to grow or shrink, you can do that using this proc when applyng it
+ calculate_lighting_shadows Returns a list of matrices corresponding to the matrices that should be applied to triangles of
+coordinates (0,0),(1,0),(0,1) to create a triangcalculate_shadows_matricesle that respresents the shadows
+takes in the old turf to smoothly animate shadow movement
+ calculate_triangle_vertices Basically takes the 2-4 corners, extends them and then generates triangle coordinates representing shadows
+Input: list(list(list(x, y), list(x, y)))
+Layer 1: Lines
+Layer 2: Vertex
+Layer 3: X/Y value
+OUTPUT: The same thing but with 3 lists embedded rather than 2 because they are triangles not lines now.
+ cull_blocked_in_group Takes in the list of lines and sight blockers and returns only the lines that are not blocked
+ get_corners_from_coords Converts the corners into the 3 (or 2) valid points
+For example if a wall is top right of the source, the bottom left wall corner
+can be removed otherwise the wall itself will be in the shadow.
+Input: list(list(x1, y1), list(x2, y2))
+Output: list(list(list(x, y), list(x, y))) <-- 2 coordinates that form a line
+ get_matrix Creates a matrix for the lighting mak to use
+ group_atoms Groups things into vertical and horizontal lines.
+Input: All atoms ungrouped list(atom1, atom2, atom3)
+Output: List(List(Group), list(group2), ... , list(groupN))
+Output: List(List(atom1, atom2), list(atom3, atom4...), ... , list(atom))
+ queue_mask_update Enqueues the mask in the queue properly
+ rotate Rotates the light source to angle degrees.
+ rotate_mask_on_holder_turn The holder atom turned, spins the mask if it's needed
+ set_color Setter proc for colors
+ set_intensity Setter proc for the intensity of the mask
+ set_radius Sets the radius of the mask, and updates everything that needs to be updated
+ triangle_to_matrix Converts a triangle into a matrix that can be applied to a standardized triangle
+to make it represent the points.
+ Var Details affecting_turfs
+
+
+
+
+
+ Turfs that are being affected by this mask, this is for the sake of luminosity
attached_atom
+
+
+
+
+
+ The atom that we are attached to, does not need hard del protection as we are deleted with it
awaiting_update
+
+
+
+
+
+ Prevents us from registering for update twice before SSlighting init
current_angle
+
+
+
+
+
+ The current angle the item is pointing at
is_directional
+
+
+
+
+
+ Set to TRUE if you want the light to rotate with the owner
+ Reference to the holder /obj/effect
radius
+
+
+
+
+
+ The radius of illumination of the mask
shadows
+ – /list/mutable_appearance
+
+
+
+
+ list of mutable appearance shadows
Proc Details apply_matrix(/matrix/to_apply, transform_time)
+
+
+
+
+
+ if you want the matrix to grow or shrink, you can do that using this proc when applyng it
calculate_lighting_shadows()
+
+
+
+
+
+ Returns a list of matrices corresponding to the matrices that should be applied to triangles of
+coordinates (0,0),(1,0),(0,1) to create a triangcalculate_shadows_matricesle that respresents the shadows
+takes in the old turf to smoothly animate shadow movement
calculate_triangle_vertices(/list/cornergroup)
+
+
+
+
+
+ Basically takes the 2-4 corners, extends them and then generates triangle coordinates representing shadows
+Input: list(list(list(x, y), list(x, y)))
+Layer 1: Lines
+Layer 2: Vertex
+Layer 3: X/Y value
+OUTPUT: The same thing but with 3 lists embedded rather than 2 because they are triangles not lines now.
cull_blocked_in_group(/list/lines, /list/sight_blockers)
+
+
+
+
+
+ Takes in the list of lines and sight blockers and returns only the lines that are not blocked
get_corners_from_coords(/list/coordgroup)
+
+
+
+
+
+ Converts the corners into the 3 (or 2) valid points
+For example if a wall is top right of the source, the bottom left wall corner
+can be removed otherwise the wall itself will be in the shadow.
+Input: list(list(x1, y1), list(x2, y2))
+Output: list(list(list(x, y), list(x, y))) <-- 2 coordinates that form a line
get_matrix(radius)
+
+
+
+
+
+ Creates a matrix for the lighting mak to use
group_atoms(/list/ungrouped_things)
+
+
+
+
+
+ Groups things into vertical and horizontal lines.
+Input: All atoms ungrouped list(atom1, atom2, atom3)
+Output: List(List(Group), list(group2), ... , list(groupN))
+Output: List(List(atom1, atom2), list(atom3, atom4...), ... , list(atom))
queue_mask_update()
+
+
+
+
+
+ Enqueues the mask in the queue properly
rotate(angle)
+
+
+
+
+
+ Rotates the light source to angle degrees.
rotate_mask_on_holder_turn(new_direction)
+
+
+
+
+
+ The holder atom turned, spins the mask if it's needed
set_color(colour)
+
+
+
+
+
+ Setter proc for colors
set_intensity(intensity)
+
+
+
+
+
+ Setter proc for the intensity of the mask
set_radius(new_radius, transform_time)
+
+
+
+
+
+ Sets the radius of the mask, and updates everything that needs to be updated
triangle_to_matrix(/list/triangle)
+
+
+
+
+
+ Converts a triangle into a matrix that can be applied to a standardized triangle
+to make it represent the points.
+
+
+
diff --git a/atom/movable/plane_master_controller.html b/atom/movable/plane_master_controller.html
new file mode 100644
index 000000000000..f0d69f1b8c99
--- /dev/null
+++ b/atom/movable/plane_master_controller.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /atom/movable/plane_master_controller - byond
+
+
+
+
+
+
+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
+ Initialize Ensures that all the planes are correctly in the controlled_planes list.
+ add_filter Full override so we can just use filterrific
+ get_filters Gets all filters for this controllers plane masters
+ remove_filter Full override so we can just use filterrific
+ transition_filter Transitions all filters owned by this plane master controller
+ 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 Initialize
+
+ Ensures that all the planes are correctly in the controlled_planes list.
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_filter(name_or_names)
+
+
+
+
+
+ Full override so we can just use filterrific
transition_filter(name, /list/new_params, time, easing, loop)
+
+
+
+
+
+ Transitions all filters owned by this plane master controller
+
+
+
diff --git a/atom/movable/screen.html b/atom/movable/screen.html
new file mode 100644
index 000000000000..6d6d7de03af2
--- /dev/null
+++ b/atom/movable/screen.html
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+ /atom/movable/screen - byond
+
+
+
+
+
+
+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".
Vars
+ assigned_map Map name assigned to this object.
+Automatically set by /client/proc/add_obj_to_map.
+ clear_with_screen If FALSE, this will not be cleared when calling /client/clear_screen()
+ del_on_map_removal Mark this object as garbage-collectible after you clean the map
+it was registered on.
+ hud A reference to the owner HUD, if any.
+ master A reference to the object in the slot. Grabs or items, generally. 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).
+ update_icon le awesome parent type
+ Var Details assigned_map
+
+
+
+
+
+ Map name assigned to this object.
+Automatically set by /client/proc/add_obj_to_map.
clear_with_screen
+
+
+
+
+
+ If FALSE, this will not be cleared when calling /client/clear_screen()
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.
hud
+
+
+
+
+
+ A reference to the owner HUD, if any.
master
+
+
+
+
+
+ A reference to the object in the slot. Grabs or items, generally.
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.
update_icon()
+
+
+
+
+
+ le awesome parent type
+
+
+
diff --git a/atom/movable/screen/alert.html b/atom/movable/screen/alert.html
new file mode 100644
index 000000000000..a1e7864f840f
--- /dev/null
+++ b/atom/movable/screen/alert.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /atom/movable/screen/alert - byond
+
+
+
+
+
+
+Vars
+ click_master Boolean. If TRUE, the Click() proc will attempt to Click() on the master first if there is a master.
+ override_alerts If it is overriding other alerts of the same type
+ owner Alert owner
+ timeout If set to a number, this alert will clear itself after that many deciseconds
+ Var Details click_master
+
+
+
+
+
+ Boolean. If TRUE, the Click() proc will attempt to Click() on the master first if there is a master.
override_alerts
+
+
+
+
+
+ If it is overriding other alerts of the same type
owner
+
+
+
+
+
+ Alert owner
timeout
+
+
+
+
+
+ If set to a number, this alert will clear itself after that many deciseconds
+
+
+
diff --git a/atom/movable/screen/alert/status_effect.html b/atom/movable/screen/alert/status_effect.html
new file mode 100644
index 000000000000..ef5300ccc782
--- /dev/null
+++ b/atom/movable/screen/alert/status_effect.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /atom/movable/screen/alert/status_effect - byond
+
+
+
+
+
+
+Alert base type for status effect alerts
+ Var Details
+ The status effect we're linked to
+
+
+
diff --git a/atom/movable/screen/color_matrix_proxy_view.html b/atom/movable/screen/color_matrix_proxy_view.html
new file mode 100644
index 000000000000..1b2176f0d2bb
--- /dev/null
+++ b/atom/movable/screen/color_matrix_proxy_view.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /atom/movable/screen/color_matrix_proxy_view - byond
+
+
+
+
+
+
+Vars
+ client The client that is watching this view
+ Var Details client
+
+
+
+
+
+ The client that is watching this view
+
+
+
diff --git a/atom/movable/screen/escape_menu/home_button_text.html b/atom/movable/screen/escape_menu/home_button_text.html
new file mode 100644
index 000000000000..94f9c0a60e8e
--- /dev/null
+++ b/atom/movable/screen/escape_menu/home_button_text.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /atom/movable/screen/escape_menu/home_button_text - byond
+
+
+
+
+
+
+Procs
+ set_hovered Sets the hovered state of the button, and updates the text
Proc Details set_hovered(hovered)
+
+
+
+
+
+ Sets the hovered state of the button, and updates the text
+
+
+
diff --git a/atom/movable/screen/fullscreen.html b/atom/movable/screen/fullscreen.html
new file mode 100644
index 000000000000..9a9a3bec614a
--- /dev/null
+++ b/atom/movable/screen/fullscreen.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /atom/movable/screen/fullscreen - byond
+
+
+
+
+
+
+Vars
+ should_resize If this should try and resize if the user's view is bigger than the default
+ Var Details should_resize
+
+
+
+
+
+ If this should try and resize if the user's view is bigger than the default
+
+
+
diff --git a/atom/movable/screen/gun.html b/atom/movable/screen/gun.html
new file mode 100644
index 000000000000..87eca27ceb9e
--- /dev/null
+++ b/atom/movable/screen/gun.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /atom/movable/screen/gun - byond
+
+
+
+
+
+
+Vars
+ gun_proc_ref The proc/verb which should be called on the gun.
+ Var Details gun_proc_ref
+
+
+
+
+
+ The proc/verb which should be called on the gun.
+
+
+
diff --git a/atom/movable/screen/plane_master.html b/atom/movable/screen/plane_master.html
new file mode 100644
index 000000000000..ba2d99752828
--- /dev/null
+++ b/atom/movable/screen/plane_master.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ /atom/movable/screen/plane_master - byond
+
+
+
+
+
+
+Vars
+ blend_mode_override integer: blend mode to apply to the render relay in case you dont want to use the plane_masters blend_mode
+ generate_render_target bool: Whether this plane should get a render target automatically generated
+ relay reference: current relay this plane is utilizing to render
+ render_relay_plane integer: what plane we will relay this planes render to Procs
+ relay_render_to_plane Plane master proc called in backdrop() that creates a relay object, sets it as needed and then adds it to the clients screen
+Sets:
+ Var Details blend_mode_override
+
+
+
+
+
+ integer: blend mode to apply to the render relay in case you dont want to use the plane_masters blend_mode
generate_render_target
+
+
+
+
+
+ bool: Whether this plane should get a render target automatically generated
relay
+ – /obj /render_plane_relay
+
+
+
+
+ reference: current relay this plane is utilizing to render
render_relay_plane
+
+
+
+
+
+ integer: what plane we will relay this planes render to
Proc Details relay_render_to_plane(/mob /mymob, relay_plane)
+
+
+
+
+
+ Plane master proc called in backdrop() that creates a relay object, sets it as needed and then adds it to the clients screen
+Sets:
+
+layer from plane to avoid z-fighting
+plane to relay the render to
+render_source so that the plane will render on this object
+mouse opacity to ensure proper mouse hit tracking
+name for debugging purposes
+Other vars such as alpha will automatically be applied with the render source
+Arguments:
+mymob: mob whose plane is being backdropped
+relay_plane: plane we are relaying this plane master to
+
+
+
+
diff --git a/atom/movable/screen/plane_master/rendering_plate.html b/atom/movable/screen/plane_master/rendering_plate.html
new file mode 100644
index 000000000000..12ae9356d654
--- /dev/null
+++ b/atom/movable/screen/plane_master/rendering_plate.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ /atom/movable/screen/plane_master/rendering_plate - byond
+
+
+
+
+
+
+Rendering plate
+Acts like a plane master, but for plane masters
+Renders other planes onto this plane, through the use of render objects
+Any effects applied onto this plane will act on the unified plane
+IE a bulge filter will apply as if the world was one object
+remember that once planes are unified on a render plate you cant change the layering of them!
+
+
+
diff --git a/atom/movable/screen/queen_locator.html b/atom/movable/screen/queen_locator.html
new file mode 100644
index 000000000000..1e229322379b
--- /dev/null
+++ b/atom/movable/screen/queen_locator.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /atom/movable/screen/queen_locator - byond
+
+
+
+
+
+
+Vars
+ tracker_type The 'category' of the atom currently being tracked. (Defaults to TRACKER_QUEEN
)
+ tracking_ref A weak reference to the atom currently being tracked.
+(Note: This is null for TRACKER_QUEEN
and TRACKER_HIVE
, as those are accessed through the user's hive datum.)
+ Var Details tracker_type
+
+
+
+
+
+ The 'category' of the atom currently being tracked. (Defaults to TRACKER_QUEEN
)
tracking_ref
+
+
+
+
+
+ A weak reference to the atom currently being tracked.
+(Note: This is null for TRACKER_QUEEN
and TRACKER_HIVE
, as those are accessed through the user's hive datum.)
+
+
+
diff --git a/atom/movable/screen/text/screen_text.html b/atom/movable/screen/text/screen_text.html
new file mode 100644
index 000000000000..e702251e928d
--- /dev/null
+++ b/atom/movable/screen/text/screen_text.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+ /atom/movable/screen/text/screen_text - byond
+
+
+
+
+
+
+Vars
+ fade_in_time Time taken to fade in as we start printing text
+ fade_out_delay Time before fade out after printing is finished
+ fade_out_time Time taken when fading out after fade_out_delay
+ letters_per_update letters to update by per text to per play_delay
+ play_delay delay between playing each letter. in general use 1 for fluff and 0.5 for time sensitive messsages
+ player The client that this text is for
+ style_close closing styling for the message
+ style_open opening styling for the message
+ text_to_play var for the text we are going to play Procs
+ after_play handles post-play effects like fade out after the fade out delay
+ end_play ends the play then deletes this screen object and plays the next one in queue if it exists
+ play_to_client proc for actually playing this screen_text on a mob.
+ Var Details fade_in_time
+
+
+
+
+
+ Time taken to fade in as we start printing text
fade_out_delay
+
+
+
+
+
+ Time before fade out after printing is finished
fade_out_time
+
+
+
+
+
+ Time taken when fading out after fade_out_delay
letters_per_update
+
+
+
+
+
+ letters to update by per text to per play_delay
play_delay
+
+
+
+
+
+ delay between playing each letter. in general use 1 for fluff and 0.5 for time sensitive messsages
player
+
+
+
+
+
+ The client that this text is for
style_close
+
+
+
+
+
+ closing styling for the message
style_open
+
+
+
+
+
+ opening styling for the message
text_to_play
+
+
+
+
+
+ var for the text we are going to play
Proc Details after_play()
+
+
+
+
+
+ handles post-play effects like fade out after the fade out delay
end_play()
+
+
+
+
+
+ ends the play then deletes this screen object and plays the next one in queue if it exists
play_to_client()
+
+
+
+
+
+ proc for actually playing this screen_text on a mob.
+
+
+
diff --git a/atom/movable/vis_obj/weed_food.html b/atom/movable/vis_obj/weed_food.html
new file mode 100644
index 000000000000..f8d144841a40
--- /dev/null
+++ b/atom/movable/vis_obj/weed_food.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /atom/movable/vis_obj/weed_food - byond
+
+
+
+
+
+
+Proc Details on_animation_timer()
+
+
+
+
+
+ Timer callback for changing the icon_state
+
+
+
diff --git a/client.html b/client.html
new file mode 100644
index 000000000000..627f1cd11649
--- /dev/null
+++ b/client.html
@@ -0,0 +1,562 @@
+
+
+
+
+
+
+ /client - byond
+
+
+
+
+
+
+Vars
+ adminhelptimerid Client var used for returning the ahelp verb
+ completed_asset_jobs List of all completed blocking send jobs awaiting acknowledgement by send_asset
+ connection_time world.time they connected
+ current_ticket Client var used for tracking the ticket the (usually) not-admin client is dealing with
+ holding_click Whether or not the player is holding their mouse click
+ ignore_next_click Means that there can only be one click per mousedown.
+ key_combos_held A buffer for combinations such of modifiers + keys (ex: CtrlD, AltE, ShiftT). Format: "key"
-> "combo"
(ex: "D"
-> "CtrlD"
)
+ keys_held A buffer of currently held keys.
+ last_asset_job Last asset send job id.
+ mouse_trace_history The history of all atoms that were hovered over while the mouse was depressed
+ movement_keys custom movement keys for this client
+ movement_locked Are we locking our movement input?
+ next_move_dir_add On next move, add this dir to the move that would otherwise be done
+ next_move_dir_sub On next move, subtract this dir from the move that would otherwise be done
+ obj_window Our object window datum. It stores info about and handles behavior for the object tab
+ panel_tabs list of all tabs
+ recent_examines A lazy list of atoms we've examined in the last EXAMINE_MORE_TIME (default 1.5) seconds, so that we will call [/atom/proc/examine_more] instead of [/atom/proc/examine] on them when examining
+ screen_maps Assoc list with all the active maps - when a screen obj is added to
+a map, it's put in here as well.
+ screen_texts lazylist of screen_texts for this client, first in this list is the one playing
+ stat_panel Stat panel window declaration
+ stat_tab our current tab
+ tgui_cache_reloaded global
+ tgui_say Assigned say modal of the client
+ tgui_windows global
+ tooltips datum that controls the displaying and hiding of tooltips
+ topiclimiter Used for limiting the rate of topic sends by the client to avoid abuse
+ typing_indicators Does this client have typing indicators enabled?
+ urgent_ahelp_cooldown The last urgent ahelp that this player sent Procs
+ adaptive_zoom Attempts to scale client zoom automatically to fill 1080p multiples. Best used with auto fit viewport.
+ add_to_screen Wrapper for adding anything to a client's screen
+ admin_follow Attempts to make the client orbit the given object, for administrative purposes.
+If they are not an observer, will try to aghost them.
+ 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_rsc 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.
+ check_localhost_status Logical OR list, not match all.
+ clear_all_maps Clears all the maps of registered screen objects.
+ clear_map Clears the map of registered screen objects.
+ clear_screen Clears the client's screen, aside from ones that opt out
+ close_popup Closes a popup.
+ create_popup Creates a popup window with a basic map element in it, without any
+further initialization.
+ erase_all_macros Erases macros set by the keybinding system
+ fix_tgui_panel tgui panel / chat troubleshooting verb
+ get_total_drone_playtime playtime for drone and drone evolution castes
+ get_total_t3_playtime playtime for t3 castes and queen
+ get_total_xeno_playtime playtime for all castes
+ handle_ooc_prefix Used by OOC chat to generate icons for player prefix. Intended to make it easy to see at a glance if someone is staff, WL Council or Mentor.
+ 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 to be sent to the browser
+Sends the 2D verbs vector of (verb category, verb name)
+ keyUp Check if the key is short enough to even be a real key
+ nanoclose Called when a Nano UI window is closed
+This is how Nano handles closed windows
+It must be a verb so that it can be called using winset
+ notify_login Handles login-related logging and associated notifications
+ on_stat_panel_message Handles incoming messages from the stat-panel TGUI.
+ open_escape_menu Opens the escape menu.
+Verb, hardcoded to Escape, set in the client skin.
+ open_particle_editor opens the particle editor UI for the in_atom object for this client
+ 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.
+ remove_from_screen Wrapper for removing anything from a client's screen
+ reset_held_keys Manually clears any held keys, in case due to lag or other undefined behavior a key gets stuck.
+ set_crit_type Toggle in character preferences and toggle preferences to configure what kind of crit overlay is used in game; Either white or grey.
+ set_eye_blur_type Toggle in character preferences and toggle preferences to configure what kind of blur overlay is used in game; Either blurry, impaired, or legacy.
+ set_flash_type Toggle in character preferences and toggle preferences to configure what kind of flash overlay is used in game; Either white or black.
+ set_macros Request blocking update of keybinds to client, clearing old ones
+ setup_popup Create the popup, and get it ready for generic use by giving
+it a background.
+ show_other_record Management Access
+Edit Access
+Note category options
+ tgui_say_create_open_command Creates a JSON encoded message to open TGUI say modals properly.
+ toggle_dualwield Toggle whether dual-wielding fires both guns at once or swaps between them.
+ typing_indicator Whether or not to show a typing indicator when speaking. Defaults to on.
+ uiclose verb
+ update_special_keybinds Updates the keybinds for special keys
+ Var Details adminhelptimerid
+
+
+
+
+
+ Client var used for returning the ahelp verb
completed_asset_jobs
+
+
+
+
+
+ List of all completed blocking send jobs awaiting acknowledgement by send_asset
connection_time
+
+
+
+
+
+ world.time they connected
+ Client var used for tracking the ticket the (usually) not-admin client is dealing with
holding_click
+
+
+
+
+
+ Whether or not the player is holding their mouse click
ignore_next_click
+
+
+
+
+
+ Means that there can only be one click per mousedown.
key_combos_held
+
+
+
+
+
+ A buffer for combinations such of modifiers + keys (ex: CtrlD, AltE, ShiftT). Format: "key"
-> "combo"
(ex: "D"
-> "CtrlD"
)
keys_held
+
+
+
+
+
+ A buffer of currently held keys.
last_asset_job
+
+
+
+
+
+ Last asset send job id.
mouse_trace_history
+
+
+
+
+
+ The history of all atoms that were hovered over while the mouse was depressed
movement_keys
+
+
+
+
+
+ custom movement keys for this client
movement_locked
+
+
+
+
+
+ Are we locking our movement input?
next_move_dir_add
+
+
+
+
+
+ On next move, add this dir to the move that would otherwise be done
next_move_dir_sub
+
+
+
+
+
+ On next move, subtract this dir from the move that would otherwise be done
+ Our object window datum. It stores info about and handles behavior for the object tab
panel_tabs
+
+
+
+
+
+ list of all tabs
recent_examines
+
+
+
+
+
+ A lazy list of atoms we've examined in the last EXAMINE_MORE_TIME (default 1.5) seconds, so that we will call [/atom/proc/examine_more] instead of [/atom/proc/examine] on them when examining
screen_maps
+
+
+
+
+
+ Assoc list with all the active maps - when a screen obj is added to
+a map, it's put in here as well.
+Format: list( = list(/atom/movable/screen))
screen_texts
+ – /list/atom/movable/screen/text/screen_text
+
+
+
+
+ lazylist of screen_texts for this client, first in this list is the one playing
+ Stat panel window declaration
stat_tab
+
+
+
+
+
+ our current tab
tgui_cache_reloaded
+
+
+
+
+
+ global
+TRUE if cache was reloaded by tgui dev server at least once.
+ Assigned say modal of the client
tgui_windows
+
+
+
+
+
+ global
+Tracks open windows for a user.
+ datum that controls the displaying and hiding of tooltips
topiclimiter
+
+
+
+
+
+ Used for limiting the rate of topic sends by the client to avoid abuse
typing_indicators
+
+
+
+
+
+ Does this client have typing indicators enabled?
urgent_ahelp_cooldown
+
+
+
+
+
+ The last urgent ahelp that this player sent
Proc Details adaptive_zoom()
+
+
+
+
+
+ Attempts to scale client zoom automatically to fill 1080p multiples. Best used with auto fit viewport.
add_to_screen(screen_add)
+
+
+
+
+
+ Wrapper for adding anything to a client's screen
admin_follow
+
+ Attempts to make the client orbit the given object, for administrative purposes.
+If they are not an observer, will try to aghost them.
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_rsc 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.
check_localhost_status()
+
+
+
+
+
+ Logical OR list, not match all.
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.
clear_screen()
+
+
+
+
+
+ Clears the client's screen, aside from ones that opt out
+ Closes a popup.
+ 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.
erase_all_macros()
+
+
+
+
+
+ Erases macros set by the keybinding system
fix_tgui_panel()
+
+
+
+
+
+ tgui panel / chat troubleshooting verb
get_total_drone_playtime()
+
+
+
+
+
+ playtime for drone and drone evolution castes
get_total_t3_playtime()
+
+
+
+
+
+ playtime for t3 castes and queen
get_total_xeno_playtime(skip_cache)
+
+
+
+
+
+ playtime for all castes
handle_ooc_prefix()
+
+
+
+
+
+ Used by OOC chat to generate icons for player prefix. Intended to make it easy to see at a glance if someone is staff, WL Council or Mentor.
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 to be sent to the browser
+Sends the 2D verbs vector of (verb category, verb name)
keyUp(_key)
+
+
+
+
+
+ Check if the key is short enough to even be a real key
nanoclose(uiref)
+
+
+
+
+
+ Called when a Nano UI window is closed
+This is how Nano handles closed windows
+It must be a verb so that it can be called using winset
+@return nothing
notify_login()
+
+
+
+
+
+ Handles login-related logging and associated notifications
on_stat_panel_message(type, payload)
+
+
+
+
+
+ Handles incoming messages from the stat-panel TGUI.
+ Opens the escape menu.
+Verb, hardcoded to Escape, set in the client skin.
open_particle_editor
+
+ opens the particle editor UI for the in_atom object for this client
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.
remove_from_screen(screen_remove)
+
+
+
+
+
+ Wrapper for removing anything from a client's screen
reset_held_keys()
+
+
+
+
+
+ Manually clears any held keys, in case due to lag or other undefined behavior a key gets stuck.
set_crit_type()
+
+
+
+
+
+ Toggle in character preferences and toggle preferences to configure what kind of crit overlay is used in game; Either white or grey.
set_eye_blur_type()
+
+
+
+
+
+ Toggle in character preferences and toggle preferences to configure what kind of blur overlay is used in game; Either blurry, impaired, or legacy.
set_flash_type()
+
+
+
+
+
+ Toggle in character preferences and toggle preferences to configure what kind of flash overlay is used in game; Either white or black.
set_macros()
+
+
+
+
+
+ Request blocking update of keybinds to client, clearing old ones
+ Create the popup, and get it ready for generic use by giving
+it a background.
+Width and height are multiplied by 64 by default.
show_other_record(note_category, category_text, target, can_edit, can_del)
+
+
+
+
+
+ Management Access
+Edit Access
+Note category options
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.
toggle_dualwield()
+
+
+
+
+
+ Toggle whether dual-wielding fires both guns at once or swaps between them.
typing_indicator()
+
+
+
+
+
+ Whether or not to show a typing indicator when speaking. Defaults to on.
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.
update_special_keybinds
+
+ Updates the keybinds for special keys
+Handles adding macros for the keys that need it
+And adding movement keys to the clients movement_keys list
+At the time of writing this, communication(OOC, Say, IC) require macros
+Arguments:
+
+direct_prefs - the preference we're going to get keybinds from
+
+
+
+
diff --git a/code/__DEFINES/ARES.html b/code/__DEFINES/ARES.html
new file mode 100644
index 000000000000..1154a7fdc161
--- /dev/null
+++ b/code/__DEFINES/ARES.html
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+ code/__DEFINES/ARES.dm - byond
+
+
+
+
+code/__DEFINES/ARES.dm
+
+
+
+Define Details
+ARES_ACCESS_BASIC
+
+
+
+ Generic access for 1:1 conversations with ARES and unrestricted commands.
ARES_ACCESS_CE
+
+
+
+ Synth, CE & Commanding Officer, can read the access log.
ARES_ACCESS_COMMAND
+
+
+
+ Secure Access, can read ARES Announcements and Bioscans.
ARES_ACCESS_CORPORATE
+
+
+
+ CL, can read Apollo Log and also Delete Announcements.
ARES_ACCESS_DEBUG
+
+
+
+ Debugging. Allows me to view everything without using a high command rank.
ARES_ACCESS_HIGH
+
+
+
+ High Command, can read the deletion log.
ARES_ACCESS_SENIOR
+
+
+
+ Senior Command, can Delete Bioscans.
ARES_LOG_MAIN
+
+
+
+ Logged with all announcements
ARES_LOG_NONE
+
+
+
+ Not by ARES logged through marine_announcement()
ARES_LOG_SECURITY
+
+
+
+ Logged in the security updates
COOLDOWN_ARES_SENSOR
+
+
+
+ Cooldowns
JOE_JOIN_DEAD_TIME
+
+
+
+ Time until someone can respawn as Working Joe
TICKET_ASSIGNED
+
+
+
+ Assigned to a WJ
TICKET_CANCELLED
+
+
+
+ Cancelled by reporter
TICKET_COMPLETED
+
+
+
+ Completed by WJs
TICKET_GRANTED
+
+
+
+ Granted Access Ticket
TICKET_NON_PRIORITY
+
+
+
+ Downgraded from Priority
TICKET_OPEN
+
+
+
+ Checks for if buttons can be used, these may yet be removed and internalised to the UI programming
TICKET_PENDING
+
+
+
+ Ticket statuses, both for Access and Maintenance
+Pending assignment/rejection
TICKET_PRIORITY
+
+
+
+ Upgraded to Priority
TICKET_REJECTED
+
+
+
+ Rejected by WJs
TICKET_RETURNED
+
+
+
+ Self-Returned Access Ticket
TICKET_REVOKED
+
+
+
+ Revoked Access Ticket
+
+
+
diff --git a/code/__DEFINES/MC.html b/code/__DEFINES/MC.html
new file mode 100644
index 000000000000..b8ba08b085b3
--- /dev/null
+++ b/code/__DEFINES/MC.html
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+ code/__DEFINES/MC.dm - byond
+
+
+
+
+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
+ MC_RUNNING Returns true if the MC is initialized and running.
+Optional argument init_stage controls what stage the mc must have initializted to count as initialized. Defaults to INITSTAGE_MAX if not specified.
+ SubSystem flags (Please design any new flags so that the default is off, to make adding flags to subsystems easier)
+ SS_NO_INIT subsystem does not initialize.
+ SS_NO_FIRE subsystem does not fire.
+(like can_fire = 0, but keeps it from getting added to the processing subsystems list)
+(Requires a MC restart to change)
+ 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 Treat wait as a tick count, not DS, run every wait ticks.
+(also forces it to run first in the tick (unless SS_BACKGROUND))
+(We don't want to be choked out by other subsystems queuing into us)
+(implies all runlevels because of how it works)
+This is designed for basically anything that works as a mini-mc (like SStimer)
+ SS_KEEP_TIMING keep the subsystem's timing on point by firing early if it fired late last fire because of lag
+ie: if a 20ds subsystem fires say 5 ds late due to lag or what not, its next fire would be in 15ds, not 20ds.
+ SS_POST_FIRE_TIMING Calculate its next fire after its fired.
+(IE: if a 5ds wait SS takes 2ds to run, its next fire should be 5ds away, not 3ds like it normally would be)
+This flag overrides SS_KEEP_TIMING
+ SS_OK_TO_FAIL_INIT If this subsystem doesn't initialize, it should not report as a hard error in CI.
+This should be used for subsystems that are flaky for complicated reasons, such as
+the Lua subsystem, which relies on auxtools, which is unstable.
+It should not be used simply to silence CI.
+ SUBSYSTEM STATES
+
+ SS_IDLE ain't doing shit.
+ SS_QUEUED queued to run
+ SS_RUNNING actively running
+ SS_PAUSED paused by mc_tick_check
+ SS_SLEEPING fire() slept.
+ SS_PAUSING in the middle of pausing
+ INITSTAGE_EARLY ! Early init stuff that doesn't need to wait for mapload
+ INITSTAGE_MAIN ! Main init stage
+ INITSTAGE_MAX ! Highest initstage.
Define Details
+INITSTAGE_EARLY
+
+
+
+ ! Early init stuff that doesn't need to wait for mapload
INITSTAGE_MAIN
+
+
+
+ ! Main init stage
INITSTAGE_MAX
+
+
+
+ ! Highest initstage.
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
MC_RUNNING
+
+
+
+
+ Returns true if the MC is initialized and running.
+Optional argument init_stage controls what stage the mc must have initializted to count as initialized. Defaults to INITSTAGE_MAX if not specified.
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_IDLE
+
+
+
+ ain't doing shit.
SS_KEEP_TIMING
+
+
+
+ keep the subsystem's timing on point by firing early if it fired late last fire because of lag
+ie: if a 20ds subsystem fires say 5 ds late due to lag or what not, its next fire would be in 15ds, not 20ds.
SS_NO_FIRE
+
+
+
+ subsystem does not fire.
+(like can_fire = 0, but keeps it from getting added to the processing subsystems list)
+(Requires a MC restart to change)
SS_NO_INIT
+
+
+
+ subsystem does not initialize.
SS_OK_TO_FAIL_INIT
+
+
+
+ If this subsystem doesn't initialize, it should not report as a hard error in CI.
+This should be used for subsystems that are flaky for complicated reasons, such as
+the Lua subsystem, which relies on auxtools, which is unstable.
+It should not be used simply to silence CI.
SS_PAUSED
+
+
+
+ paused by mc_tick_check
SS_PAUSING
+
+
+
+ in the middle of pausing
SS_POST_FIRE_TIMING
+
+
+
+ Calculate its next fire after its fired.
+(IE: if a 5ds wait SS takes 2ds to run, its next fire should be 5ds away, not 3ds like it normally would be)
+This flag overrides SS_KEEP_TIMING
SS_QUEUED
+
+
+
+ queued to run
SS_RUNNING
+
+
+
+ actively running
SS_SLEEPING
+
+
+
+ fire() slept.
SS_TICKER
+
+
+
+ Treat wait as a tick count, not DS, run every wait ticks.
+(also forces it to run first in the tick (unless SS_BACKGROUND))
+(We don't want to be choked out by other subsystems queuing into us)
+(implies all runlevels because of how it works)
+This is designed for basically anything that works as a mini-mc (like SStimer)
+
+
+
diff --git a/code/__DEFINES/__game.html b/code/__DEFINES/__game.html
new file mode 100644
index 000000000000..6713e51c7506
--- /dev/null
+++ b/code/__DEFINES/__game.html
@@ -0,0 +1,212 @@
+
+
+
+
+
+
+ code/__DEFINES/__game.dm - byond
+
+
+
+
+code/__DEFINES/__game.dm
+
+
+
+Define Details
+AMOUNT_PER_TIME
+
+
+
+
+ Used for calculations with delta_time when figuring how much "amount" to give per "time"
+amount
- The number to get per time
+time
- The time period in which to gain this amount
+To be used with delta_time. Multiplied by 10 to convert from deciseconds to seconds
BARRICADE_BSTATE_MOVABLE
+
+
+
+ Ready to be deconstructed and can be moved.
BARRICADE_BSTATE_UNSECURED
+
+
+
+ Intermediate state before cade is movable (no apparent effect on health).
BEAM_INFINITE_DURATION
+
+
+
+ For beams with an infinite duration (deletion is handled separately)
CANDLE_LUM
+
+
+
+ For how bright candles are.
CEILING_IS_PROTECTED
+ (ceiling, protection_level)
+
+
+
+ Only use the CEILING_PROTECTION_TIER_X defines for protection_level
CEILING_NO_PROTECTION
+
+
+
+ Do not block any ordnance
CEILING_PROTECTION_TIER_1
+
+
+
+ Blocks mortar placement, lasing, and medevac
CEILING_PROTECTION_TIER_2
+
+
+
+ Blocks CAS signals, supply drops, fultoning, and mortar fire
CEILING_PROTECTION_TIER_3
+
+
+
+ Blocks CAS fire
CEILING_PROTECTION_TIER_4
+
+
+
+ Blocks OB fire
CHAT_CPM_ALLOWED
+
+
+
+ Max characters per minute allowed to speak
CHAT_CPM_MINIMUM
+
+
+
+ Minimum character length counted for a single message
CHAT_CPM_PERIOD
+
+
+
+ Buffer period over which speaking budget is considered
CHAT_TYPE_ALL
+
+
+
+ This is so if we have newer flags, we still have ALL working. This will work for 16 first flags.
CHAT_TYPE_ALL_COMBAT
+
+
+
+ Used for pre-setting tgchat message type as combat messages
DOCK_ATTEMPT_TIMEOUT
+
+
+
+ how long in ticks we wait before assuming the docking controller is broken or blown up.
EXTINGUISHER_WATER_USE_AMT
+
+
+
+ Amount of water consumed by extinguisher per use.//why is this a define let alone a GLOBAL define oh my good lord
GET_RANDOM_FREQ
+
+
+
+ Frequency stuff only works with 45kbps oggs.
NO_FLAGS
+
+
+
+ To make it even more clear that something is a bitfield.
PERF_TOGGLE_ATTACKLOGS
+
+
+
+ Disable file-based attacklogs
PERF_TOGGLE_LAZYSS
+
+
+
+ Set conservative MC timings on game start
PERF_TOGGLE_NOBLOODPRINTS
+
+
+
+ Disable bloody footprints
PERF_TOGGLE_SHUTTLES
+
+
+
+ Disables loading/ticking shuttle controllers
PERF_TOGGLE_TECHWEBS
+
+
+
+ Disables loading Techwebs and additional Z-Levels
PLAYERCOUNT_LOWPOP_MAP_LIMIT
+
+
+
+ Number of players before we switch to lowpop maps only (LV, BR, Prison).
PREROUND_TIME
+
+
+
+ Time before the round starts.
QTREE_SCAN_MOBS
+
+
+
+ Return mob list instead of client list.
QUADTREE_BOUNDARY_MINIMUM_HEIGHT
+
+
+
+ Minimum Y height up to which we keep dividing the tree (meaning cells can be half that)
QUADTREE_BOUNDARY_MINIMUM_WIDTH
+
+
+
+ Minimum X width up to which we keep dividing the tree (meaning cells can be half that)
QUADTREE_CAPACITY
+
+
+
+ Max amount of player coordinates in a quadtree cell
ROUNDSTART_LOGOUT_REPORT_TIME
+
+
+
+ Amount of time (in deciseconds) after the rounds starts, that the player disconnect report is issued.
SPLIT_ADMIN_TABS
+
+
+
+ Splits admin tabs in Statpanel
TOGGLE_WINDOW_SKIN
+
+
+
+ Window skin types
TRANSITIONEDGE
+
+
+
+ Distance from edge to move to another z-level.
+
+
+
diff --git a/code/__DEFINES/__rust_g.html b/code/__DEFINES/__rust_g.html
new file mode 100644
index 000000000000..1e0396d09ef8
--- /dev/null
+++ b/code/__DEFINES/__rust_g.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ code/__DEFINES/__rust_g.dm - byond
+
+
+
+
+code/__DEFINES/__rust_g.dm
+
+
+
+
+ rustg_cnoise_generate This proc generates a cellular automata noise grid which can be used in procedural generation methods.
Define Details
+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.
+
+
+
+
diff --git a/code/__DEFINES/_click.html b/code/__DEFINES/_click.html
new file mode 100644
index 000000000000..a973179d371a
--- /dev/null
+++ b/code/__DEFINES/_click.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/__DEFINES/_click.dm - byond
+
+
+
+
+code/__DEFINES/_click.dm
+
+
+
+
+ BUTTON Mouse button that was just clicked/released
+if(modifiersBUTTON == LEFT_CLICK)
Define Details
+
+ Mouse button that was just clicked/released
+if(modifiersBUTTON == LEFT_CLICK)
+
+
+
diff --git a/code/__DEFINES/_globals.html b/code/__DEFINES/_globals.html
new file mode 100644
index 000000000000..a5cb07c8f28f
--- /dev/null
+++ b/code/__DEFINES/_globals.html
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+ code/__DEFINES/_globals.dm - byond
+
+
+
+
+code/__DEFINES/_globals.dm
+
+
+
+Define Details
+GLOBAL_DATUM
+
+
+
+
+ Create a typed null global
GLOBAL_DATUM_INIT
+
+
+
+
+ Create a typed global with an initializer expression
GLOBAL_LIST
+
+
+
+
+ Create a null global list
GLOBAL_LIST_EMPTY
+
+
+
+
+ Create a list global that is initialized as an empty list
GLOBAL_LIST_EMPTY_TYPED
+
+
+
+
+ Create a typed list global that is initialized as an empty list
GLOBAL_LIST_FILE_LOAD
+
+
+
+
+ Load a file in as a global list
GLOBAL_LIST_INIT
+
+
+
+
+ Create a list global with an initializer expression
GLOBAL_LIST_INIT_TYPED
+
+
+
+
+ Create a typed list global with an initializer expression
GLOBAL_MANAGED
+
+
+
+
+ Creates a global initializer with a given InitValue expression, do not use
GLOBAL_PROTECT
+
+
+
+
+ Prevents a given global from being VV'd
GLOBAL_RAW
+
+
+
+
+ Defines a global var on the controller, do not use
GLOBAL_REAL
+
+
+
+
+ Standard typed BYOND global, do not use
GLOBAL_REAL_VAR
+
+
+
+
+ Standard BYOND global, do not use
GLOBAL_REFERENCE_LIST_INDEXED
+
+
+
+
+ Creates datum reference list
GLOBAL_SUBTYPE_INDEXED
+
+
+
+
+ Creates name keyed subtype instance list
GLOBAL_SUBTYPE_PATHS_LIST_INDEXED
+
+
+
+
+ Creates list of subtype paths indexed by a variable
GLOBAL_SUBTYPE_PATH_INDEXED
+
+
+
+
+ Lists subtypes of a given type, indexed by initial value of a variable
GLOBAL_UNMANAGED
+
+
+
+
+ Creates an empty global initializer, do not use
GLOBAL_VAR
+
+
+
+
+ Create an untyped null global
GLOBAL_VAR_CONST
+
+
+
+
+ Create a global const var, do not use
GLOBAL_VAR_INIT
+
+
+
+
+ Create an untyped global with an initializer expression
+
+
+
diff --git a/code/__DEFINES/_macros.html b/code/__DEFINES/_macros.html
new file mode 100644
index 000000000000..9adadcece7dc
--- /dev/null
+++ b/code/__DEFINES/_macros.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ code/__DEFINES/_macros.dm - byond
+
+
+
+
+code/__DEFINES/_macros.dm
+
+
+
+
+ calculateticks Converts your ticks to proper tenths.
+ tcheck Shorthand of checking and then sleeping a process based on world CPU.
+ text_ref Takes a datum as input, returns its ref string
Define Details
+calculateticks
+
+
+
+
+ Converts your ticks to proper tenths.
tcheck
+
+
+
+
+ Shorthand of checking and then sleeping a process based on world CPU.
text_ref
+
+
+
+
+ Takes a datum as input, returns its ref string
+
+
+
diff --git a/code/__DEFINES/_math.html b/code/__DEFINES/_math.html
new file mode 100644
index 000000000000..d954c7fed6ce
--- /dev/null
+++ b/code/__DEFINES/_math.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ code/__DEFINES/_math.dm - byond
+
+
+
+
+code/__DEFINES/_math.dm
+
+
+
+
+ get_turf Get the turf that A
resides in, regardless of any containers.
+ SIGN Gets the sign of x, returns -1 if negative, 0 if 0, 1 if positive
+ LERP Performs a linear interpolation between a and b. Note that amount=0 returns a, amount=1 returns b, and amount=0.5 returns the mean of a and b.
Define Details
+LERP
+
+
+
+
+ Performs a linear interpolation between a and b. Note that amount=0 returns a, amount=1 returns b, and amount=0.5 returns the mean of a and b.
SIGN
+
+
+
+
+ Gets the sign of x, returns -1 if negative, 0 if 0, 1 if positive
get_turf
+
+
+
+
+ Get the turf that A
resides in, regardless of any containers.
+Use in favor of A.loc
or src.loc
so that things work correctly when
+stored inside an inventory, locker, or other container.
+
+
+
diff --git a/code/__DEFINES/_tick.html b/code/__DEFINES/_tick.html
new file mode 100644
index 000000000000..353972e8356c
--- /dev/null
+++ b/code/__DEFINES/_tick.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ code/__DEFINES/_tick.dm - byond
+
+
+
+
+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
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_MC_INIT_DEFAULT
+
+
+
+ Tick limit while initializing
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
+
+
+
diff --git a/code/__DEFINES/access.html b/code/__DEFINES/access.html
new file mode 100644
index 000000000000..7e4b7266d6fe
--- /dev/null
+++ b/code/__DEFINES/access.html
@@ -0,0 +1,212 @@
+
+
+
+
+
+
+ code/__DEFINES/access.dm - byond
+
+
+
+
+code/__DEFINES/access.dm
+
+
+
+Define Details
+ACCESS_ARES_DEBUG
+
+
+
+ Used to access Maintenance Protocols on ARES Interface.
ACCESS_CLF_GENERAL
+
+
+
+ Found on just about all CLF ID cards
ACCESS_CLF_SENIOR_LEAD
+
+
+
+ Senior leadership, the highest ranks
ACCESS_COME_BACK_TO_ME
+
+
+
+ Temporary, just so I can flag places I need to change
ACCESS_ILLEGAL_PIRATE
+
+
+
+ The generic "I'm a bad guy" access
ACCESS_LIST_CIVIL_LIAISON
+
+
+
+ Used by the Wey-Yu - Civil Authority Liaison
ACCESS_LIST_CLF_ALL
+
+
+
+ All access levels associated with CLF
ACCESS_LIST_CLF_BASE
+
+
+
+ Generic/basic access to CLF stuff
ACCESS_LIST_COLONIAL_ALL
+
+
+
+ All the access levels in the civillian category, excluding Press.
ACCESS_LIST_DELIVERY
+
+
+
+ The access used by delivery ERT (Pizza/Souto)
ACCESS_LIST_EMERGENCY_RESPONSE
+
+
+
+ The accesses granted to emergency responders.
ACCESS_LIST_GLOBAL
+
+
+
+ Well... everything (non Yautja).
ACCESS_LIST_MARINE_ALL
+
+
+
+ All USCM Access levels used on the USS Almayer
ACCESS_LIST_MARINE_LIAISON
+
+
+
+ Used by the Wey-Yu - USCM Liaison
ACCESS_LIST_MARINE_MAIN
+
+
+
+ Most of the USCM Access Levels used on the USS Almayer, excluding highly restricted ones.
ACCESS_LIST_UA
+
+
+
+ Access used by United Americas responders.
ACCESS_LIST_UPP_ALL
+
+
+
+ All access levels associated with UPP
ACCESS_LIST_WY_ALL
+
+
+
+ All access levels associated with Weyland Yutani
ACCESS_LIST_WY_BASE
+
+
+
+ Generic/basic access to Wey-Yu stuff
ACCESS_LIST_WY_GOON
+
+
+
+ Wey-Yu Corp Security access.
ACCESS_LIST_WY_PMC
+
+
+
+ Wey-Yu PMCs access.
ACCESS_LIST_WY_SENIOR
+
+
+
+ Access levels for WY senior leadership
ACCESS_MARINE_AI
+
+
+
+ Used as dedicated access to ARES Core.
ACCESS_MARINE_AI_TEMP
+
+
+
+ Used in temporary passes
ACCESS_TUTORIAL_LOCKED
+
+
+
+ Anything in a tutorial sequence that shouldn't be accessed
ACCESS_TWE_GENERAL
+
+
+
+ Found on just about all Imperial ID cards
ACCESS_TWE_SENIOR_LEAD
+
+
+
+ Senior leadership, the highest ranks
ACCESS_UPP_GENERAL
+
+
+
+ Found on just about all Union ID cards
ACCESS_UPP_SENIOR_LEAD
+
+
+
+ Senior leadership, the highest ranks
ACCESS_WY_COLONIAL
+
+
+
+ WY employee override for most colonial areas
ACCESS_WY_EXEC
+
+
+
+ WY access given to field executives, like a marine liaison.
ACCESS_WY_GENERAL
+
+
+
+ Found on just about all corporate ID cards
ACCESS_WY_SECRETS
+
+
+
+ Secret research or other projects with highly restricted access
ACCESS_WY_SENIOR_LEAD
+
+
+
+ Senior leadership, the highest ranks
ACCESS_YAUTJA_ANCIENT
+
+
+
+ Ancients only
ACCESS_YAUTJA_ELDER
+
+
+
+ Elders+ only
ACCESS_YAUTJA_SECURE
+
+
+
+ Requires a visible ID chip to open
+
+
+
diff --git a/code/__DEFINES/admin.html b/code/__DEFINES/admin.html
new file mode 100644
index 000000000000..4d54fb49d4ba
--- /dev/null
+++ b/code/__DEFINES/admin.html
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+ code/__DEFINES/admin.dm - byond
+
+
+
+
+code/__DEFINES/admin.dm
+
+
+
+Define Details
+ANTIGRIEF_DISABLED
+
+
+
+ Disables antigrief entirely: Anyone can activate explosives at any time on the Almayer.
ANTIGRIEF_ENABLED
+
+
+
+ Enables antigrief entirely: Nobody can activate explosives on the Almayer, unless the ship crashed.
ANTIGRIEF_NEW_PLAYERS
+
+
+
+ Enables antigrief on the Almayer, but only for new players: Those who've had less than 10 total human hours.
ASAY_LINK_NEW_MESSAGE_INDEX
+
+
+
+ for /proc/check_asay_links , if there are any actionable refs in the asay message, this index in the return list contains the new message text to be printed
ASAY_LINK_PINGED_ADMINS_INDEX
+
+
+
+ for /proc/check_asay_links , if there are any admin pings in the asay message, this index in the return list contains a list of admins to ping
HELD_KEY_BUFFER_LENGTH
+
+
+
+ Length of held key 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
MAX_KEYS_PER_KEYBIND
+
+
+
+ Maximum keys per keybind
NOTE_ADMIN
+
+
+
+ This note is used by staff for disciplinary record keeping.
NOTE_MERIT
+
+
+
+ This note is used by staff for positive record keeping.
NOTE_WHITELIST
+
+
+
+ These notes are automatically applied by the Whitelist Panel.
PROC_BLOCKED
+
+
+
+ Proc has been blocked by IsAdminAdvancedProcCall()
+
+
+
diff --git a/code/__DEFINES/assert.html b/code/__DEFINES/assert.html
new file mode 100644
index 000000000000..65f15774b4eb
--- /dev/null
+++ b/code/__DEFINES/assert.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/__DEFINES/assert.dm - byond
+
+
+
+
+code/__DEFINES/assert.dm
+
+
+
+
+ ASSERT Override BYOND's native ASSERT to optionally specify a message
Define Details
+ASSERT
+
+
+
+
+ Override BYOND's native ASSERT to optionally specify a message
+
+
+
diff --git a/code/__DEFINES/atmospherics.html b/code/__DEFINES/atmospherics.html
new file mode 100644
index 000000000000..596bb8c1a875
--- /dev/null
+++ b/code/__DEFINES/atmospherics.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ code/__DEFINES/atmospherics.dm - byond
+
+
+
+
+code/__DEFINES/atmospherics.dm
+
+
+
+
+ TEMPERATURE_DAMAGE_COEFFICIENT This is used in handle_temperature_damage() for humans, and in reagents that affect body temperature. Temperature damage is multiplied by this amount.
+ BODYTEMP_AUTORECOVERY_DIVISOR This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. This is applied each tick, so long as the mob is alive.
+ BODYTEMP_AUTORECOVERY_MINIMUM Minimum amount of kelvin moved toward 310.15K per tick. So long as abs(310.15 - bodytemp) is more than 50.
+ BODYTEMP_COLD_DIVISOR Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is lower than their body temperature. Make it lower to lose bodytemp faster.
+ BODYTEMP_HEAT_DIVISOR Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to gain bodytemp faster.
+ BODYTEMP_COOLING_MAX The maximum number of degrees that your body can cool in 1 tick, when in a cold area.
+ BODYTEMP_HEATING_MAX The maximum number of degrees that your body can heat up in 1 tick, when in a hot area.
+ BODYTEMP_HEAT_DAMAGE_LIMIT The limit the human body can take before it starts taking damage from heat.
+ BODYTEMP_COLD_DAMAGE_LIMIT The limit the human body can take before it starts taking damage from coldness.
+ VENT_GAS_SMOKE Used in /obj/structure/pipes/vents/proc/create_gas
Define Details
+BODYTEMP_AUTORECOVERY_DIVISOR
+
+
+
+ This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. This is applied each tick, so long as the mob is alive.
BODYTEMP_AUTORECOVERY_MINIMUM
+
+
+
+ Minimum amount of kelvin moved toward 310.15K per tick. So long as abs(310.15 - bodytemp) is more than 50.
BODYTEMP_COLD_DAMAGE_LIMIT
+
+
+
+ The limit the human body can take before it starts taking damage from coldness.
BODYTEMP_COLD_DIVISOR
+
+
+
+ Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is lower than their body temperature. Make it lower to lose bodytemp faster.
BODYTEMP_COOLING_MAX
+
+
+
+ The maximum number of degrees that your body can cool in 1 tick, when in a cold area.
BODYTEMP_HEATING_MAX
+
+
+
+ The maximum number of degrees that your body can heat up in 1 tick, when in a hot area.
BODYTEMP_HEAT_DAMAGE_LIMIT
+
+
+
+ The limit the human body can take before it starts taking damage from heat.
BODYTEMP_HEAT_DIVISOR
+
+
+
+ Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to gain bodytemp faster.
TEMPERATURE_DAMAGE_COEFFICIENT
+
+
+
+ This is used in handle_temperature_damage() for humans, and in reagents that affect body temperature. Temperature damage is multiplied by this amount.
VENT_GAS_SMOKE
+
+
+
+ Used in /obj/structure/pipes/vents/proc/create_gas
+
+
+
diff --git a/code/__DEFINES/autofire.html b/code/__DEFINES/autofire.html
new file mode 100644
index 000000000000..9974cad760a0
--- /dev/null
+++ b/code/__DEFINES/autofire.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/__DEFINES/autofire.dm - byond
+
+
+
+
+code/__DEFINES/autofire.dm
+
+
+
+Define Details
+AUTOFIRE_BUCKET_POS
+
+
+
+
+ Helper for getting the correct bucket
+
+
+
diff --git a/code/__DEFINES/autolathe.html b/code/__DEFINES/autolathe.html
new file mode 100644
index 000000000000..61c0bcdb2f93
--- /dev/null
+++ b/code/__DEFINES/autolathe.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ code/__DEFINES/autolathe.dm - byond
+
+
+
+
+code/__DEFINES/autolathe.dm
+
+
+
+Define Details
+AUTOLATHE_ARMYLATHE_CATEGORIES_LIST
+
+
+
+ armylathe
AUTOLATHE_CATEGORY_ALL
+
+
+
+ CATEGORY DEFINES
AUTOLATHE_MEDILATHE_CATEGORIES_LIST
+
+
+
+ medilathe
AUTOLATHE_STANDARD_CATEGORIES_LIST
+
+
+
+ standard lathe
+
+
+
diff --git a/code/__DEFINES/bullet_traits.html b/code/__DEFINES/bullet_traits.html
new file mode 100644
index 000000000000..06228814d1a5
--- /dev/null
+++ b/code/__DEFINES/bullet_traits.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ code/__DEFINES/bullet_traits.dm - byond
+
+
+
+
+code/__DEFINES/bullet_traits.dm
+
+
+
+
+ BULLET_TRAIT_ENTRY An entry to a list for giving projectiles bullet traits
+Must be placed inside of a list
+ BULLET_TRAIT_ENTRY_ID An entry to a list for giving projectiles bullet traits with a unique ID
+Must be placed inside of a list
+ GIVE_BULLET_TRAIT Helper define for directly changing a projectile's bullet traits
Define Details
+BULLET_TRAIT_ENTRY
+
+
+
+
+ An entry to a list for giving projectiles bullet traits
+Must be placed inside of a list
BULLET_TRAIT_ENTRY_ID
+
+
+
+
+ An entry to a list for giving projectiles bullet traits with a unique ID
+Must be placed inside of a list
GIVE_BULLET_TRAIT
+ (projectile, trait, args ...)
+
+
+
+ Helper define for directly changing a projectile's bullet traits
+
+
+
diff --git a/code/__DEFINES/chat.html b/code/__DEFINES/chat.html
new file mode 100644
index 000000000000..f748181cf09d
--- /dev/null
+++ b/code/__DEFINES/chat.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ code/__DEFINES/chat.dm - byond
+
+
+
+
+code/__DEFINES/chat.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ examine_block Adds a generic box around whatever message you're sending in chat. Really makes things stand out.
Define Details
+examine_block
+
+
+
+
+ Adds a generic box around whatever message you're sending in chat. Really makes things stand out.
+
+
+
diff --git a/code/__DEFINES/chemistry.html b/code/__DEFINES/chemistry.html
new file mode 100644
index 000000000000..5bf0cbf3c047
--- /dev/null
+++ b/code/__DEFINES/chemistry.html
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+ code/__DEFINES/chemistry.dm - byond
+
+
+
+
+code/__DEFINES/chemistry.dm
+
+
+
+
+ BOTTLE_ICON_CHOICES Amount of bottle icon variations in total
+ PILL_ICON_CHOICES Amount of random icon variations for pills in total
+ CHEM_CLASS_NONE Default. Chemicals not used in the chem generator
+ CHEM_CLASS_BASIC Chemicals that can be dispensed directly from the dispenser (iron, oxygen)
+ CHEM_CLASS_COMMON Chemicals which recipe is commonly known and made (bicaridine, alkysine, salt)
+ CHEM_CLASS_UNCOMMON Chemicals which recipe is uncommonly known and made (spacedrugs, foaming agent)
+ CHEM_CLASS_RARE Chemicals without a recipe but can be obtained on the Almayer, or requires rare components
+ CHEM_CLASS_SPECIAL Chemicals without a recipe and can't be obtained on the Almayer, or requires special components
+ CHEM_CLASS_ULTRA Randomly generated chemicals
+ REAGENT_TYPE_MEDICAL Used to restrict recipes in the generator from employing all reagents of this type
+ REAGENT_SCANNABLE Whether the reagent shows up on health analysers.
+ REAGENT_NOT_INGESTIBLE Whether the reagent canNOT be ingested and must be delivered through injection. Used by electrogenetic property.
+ REAGENT_CANNOT_OVERDOSE Whether the reagent canNOT trigger its overdose effects. Used by regulating property. For ordinary reagents with no overdose effect, instead keep var/overdose at 0.
+ REAGENT_NO_GENERATION Reagent doesn't randomly generate in chemicals
+ PROPERTY_DISABLED the property is disabled and can't spawn anywhere, however is still functional
+ PROPERTY_COMMON can be generated anywhere and available in round start chems
+ PROPERTY_UNCOMMON can be generated anywhere, but not available in round start chems
+ PROPERTY_RARE can only be generated at specific gen_tiers, but can also be made through specific property combinations
+ PROPERTY_LEGENDARY can strictly only be generated at specific gen_tiers
+ PROPERTY_ADMIN can only be spawned through admin powers
+ RESEARCH_LEVEL_INCREASE_MULTIPLIER Scales cost of increasing clearance using credits
+ TECHTREE_LEVEL_MULTIPLIER Scales tech level to max amplification level
+ CHEM_FIRE_PENETRATION_THRESHOLD The minimum amount of a fire penetrating chemical required to turn a fire into fire penetrating
+ CHEM_FIRE_STAR_THRESHOLD An intensity greater than this will cause a fire to be star shape
+ CHEM_FIRE_PHOSPHORUS_PER_RADIUS Amount of phosphorus that equals 1 radius of white phosphorus smoke
+ EXPLOSION_PHORON_THRESHOLD The minimum amount of phoron required to turn shrapnel into incendiary shrapnel
+ INCENDIARY_SHARDS_MAX_REDUCTION The maximum amount of shards is divided by this number if the shards are incendiary
Define Details
+BOTTLE_ICON_CHOICES
+
+
+
+ Amount of bottle icon variations in total
CHEM_CLASS_BASIC
+
+
+
+ Chemicals that can be dispensed directly from the dispenser (iron, oxygen)
CHEM_CLASS_COMMON
+
+
+
+ Chemicals which recipe is commonly known and made (bicaridine, alkysine, salt)
CHEM_CLASS_NONE
+
+
+
+ Default. Chemicals not used in the chem generator
CHEM_CLASS_RARE
+
+
+
+ Chemicals without a recipe but can be obtained on the Almayer, or requires rare components
CHEM_CLASS_SPECIAL
+
+
+
+ Chemicals without a recipe and can't be obtained on the Almayer, or requires special components
CHEM_CLASS_ULTRA
+
+
+
+ Randomly generated chemicals
CHEM_CLASS_UNCOMMON
+
+
+
+ Chemicals which recipe is uncommonly known and made (spacedrugs, foaming agent)
CHEM_FIRE_PENETRATION_THRESHOLD
+
+
+
+ The minimum amount of a fire penetrating chemical required to turn a fire into fire penetrating
CHEM_FIRE_PHOSPHORUS_PER_RADIUS
+
+
+
+ Amount of phosphorus that equals 1 radius of white phosphorus smoke
CHEM_FIRE_STAR_THRESHOLD
+
+
+
+ An intensity greater than this will cause a fire to be star shape
EXPLOSION_PHORON_THRESHOLD
+
+
+
+ The minimum amount of phoron required to turn shrapnel into incendiary shrapnel
INCENDIARY_SHARDS_MAX_REDUCTION
+
+
+
+ The maximum amount of shards is divided by this number if the shards are incendiary
PILL_ICON_CHOICES
+
+
+
+ Amount of random icon variations for pills in total
PROPERTY_ADMIN
+
+
+
+ can only be spawned through admin powers
PROPERTY_COMMON
+
+
+
+ can be generated anywhere and available in round start chems
PROPERTY_DISABLED
+
+
+
+ the property is disabled and can't spawn anywhere, however is still functional
PROPERTY_LEGENDARY
+
+
+
+ can strictly only be generated at specific gen_tiers
PROPERTY_RARE
+
+
+
+ can only be generated at specific gen_tiers, but can also be made through specific property combinations
PROPERTY_UNCOMMON
+
+
+
+ can be generated anywhere, but not available in round start chems
REAGENT_CANNOT_OVERDOSE
+
+
+
+ Whether the reagent canNOT trigger its overdose effects. Used by regulating property. For ordinary reagents with no overdose effect, instead keep var/overdose at 0.
REAGENT_NOT_INGESTIBLE
+
+
+
+ Whether the reagent canNOT be ingested and must be delivered through injection. Used by electrogenetic property.
REAGENT_NO_GENERATION
+
+
+
+ Reagent doesn't randomly generate in chemicals
REAGENT_SCANNABLE
+
+
+
+ Whether the reagent shows up on health analysers.
REAGENT_TYPE_MEDICAL
+
+
+
+ Used to restrict recipes in the generator from employing all reagents of this type
RESEARCH_LEVEL_INCREASE_MULTIPLIER
+
+
+
+ Scales cost of increasing clearance using credits
TECHTREE_LEVEL_MULTIPLIER
+
+
+
+ Scales tech level to max amplification level
+
+
+
diff --git a/code/__DEFINES/clans.html b/code/__DEFINES/clans.html
new file mode 100644
index 000000000000..6e5061b0fb70
--- /dev/null
+++ b/code/__DEFINES/clans.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ code/__DEFINES/clans.dm - byond
+
+
+
+
+code/__DEFINES/clans.dm
+
+
+
+Define Details
+CLAN_ACTION_CLAN_RENAME
+
+
+
+ Set name of clan
CLAN_ACTION_CLAN_SETDESC
+
+
+
+ Set description of clan
CLAN_ACTION_CLAN_SETHONOR
+
+
+
+ Set honor of clan
CLAN_ACTION_PLAYER_MODIFYRANK
+
+
+
+ Set a player's rank. Resets when moved from clan to Young Blood
CLAN_ACTION_PLAYER_MOVECLAN
+
+
+
+ Set a player's clan
CLAN_LIMIT_NUMBER
+
+
+
+ Hard limit
CLAN_LIMIT_SIZE
+
+
+
+ Scales with clan size
CLAN_PERMISSION_ADMIN_MANAGER
+
+
+
+ Manages the ancients
CLAN_PERMISSION_ADMIN_MODIFY
+
+
+
+ Modify all clans
CLAN_PERMISSION_ADMIN_MOVE
+
+
+
+ Move people to and from clans
CLAN_PERMISSION_ADMIN_VIEW
+
+
+
+ View all clans
CLAN_PERMISSION_USER_MODIFY
+
+
+
+ Modify ranks within clan
CLAN_RANK_ADMIN
+
+
+
+ Must be given by someone with CLAN_PERMISSION_ADMIN_MODIFY
CLAN_RANK_BLOODED
+
+
+
+ New to the clan
CLAN_RANK_UNBLOODED
+
+
+
+ Unused for the moment
CLAN_RANK_YOUNG
+
+
+
+ Clanless
+
+
+
diff --git a/code/__DEFINES/client_prefs.html b/code/__DEFINES/client_prefs.html
new file mode 100644
index 000000000000..dbe0d6bf1b6c
--- /dev/null
+++ b/code/__DEFINES/client_prefs.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ code/__DEFINES/client_prefs.dm - byond
+
+
+
+
+code/__DEFINES/client_prefs.dm
+
+
+
+Define Details
+DUAL_WIELD_FIRE
+
+
+
+ dual_wield_pref from /datum/preferences
+Fire both weapons when dual wielding
DUAL_WIELD_NONE
+
+
+
+ Do nothing when dual wielding
DUAL_WIELD_SWAP
+
+
+
+ Swap to the other weapon when dual wielding
TOGGLE_AMMO_DISPLAY_TYPE
+
+
+
+ limit how often the ammo is displayed when using semi-automatic fire
XENO_ABILITY_CLICK_MAX
+
+
+
+ Update this to whatever the largest value of the XENO_ABILITY_CLICK_* defines is.
XENO_ABILITY_CLICK_MIDDLE
+
+
+
+ Determines how abilities are activated, whether they're activated via middle click, shift click or right click.
+
+
+
diff --git a/code/__DEFINES/colours.html b/code/__DEFINES/colours.html
new file mode 100644
index 000000000000..e587f510e661
--- /dev/null
+++ b/code/__DEFINES/colours.html
@@ -0,0 +1,250 @@
+
+
+
+
+
+
+ code/__DEFINES/colours.dm - byond
+
+
+
+
+code/__DEFINES/colours.dm
+
+
+
+
+ ADMIN_COLOR_PRIORITY Only used by rare effects like greentext coloring mobs and when admins varedit color
+ TEMPORARY_COLOR_PRIORITY e.g. purple effect of the revenant on a mob, black effect when mob electrocuted
+ WASHABLE_COLOR_PRIORITY Color splashed onto an atom (e.g. paint on turf)
+ FIXED_COLOR_PRIORITY Color inherent to the atom (e.g. blob color)
+ COLOR_PRIORITY_AMOUNT how many color priority levels there are.
+ COLOR_WHITE White rgb(255, 255, 255)
+ COLOR_BLACK Black rgb(0, 0, 0)
+ COLOR_RED Red rgb(255, 0, 0)
+ COLOR_GREEN Green rgb(0, 255, 0)
+ COLOR_BLUE Blue rgb(0, 0, 255)
+ COLOR_CYAN Cyan rgb(0, 255, 255) B + G
+ COLOR_MAGENTA Magenta rgb(255, 0, 255) R+B
+ COLOR_YELLOW Yellow rgb(255, 255, 0) R+G
+ COLOR_OLIVE Olive rgb(128, 128, 0)
+ COLOR_SILVER Silver rgb(192, 192, 192) shade of grey
+ COLOR_GRAY Gray rgb(128, 128, 128)
+ COLOR_MAROON Maroon rgb(128, 0, 0) shade of red
+ COLOR_LIGHT_GREEN light green rgb( 0, 128, 0)
+ COLOR_PURPLE Purple rgb( 128, 0, 128)
+ LIGHT_COLOR_GREEN Some defines to generalise Colors used in lighting.
+ LIGHT_COLOR_BLUE Cold, diluted blue. rgb(100, 150, 250)
+ LIGHT_COLOR_BLUEGREEN Light blueish green. rgb(125, 225, 175)
+ LIGHT_COLOR_CYAN Diluted cyan. rgb(125, 225, 225)
+ LIGHT_COLOR_LIGHT_CYAN More-saturated cyan. rgb(64, 206, 255)
+ LIGHT_COLOR_DARK_BLUE Saturated blue. rgb(51, 117, 248)
+ LIGHT_COLOR_PINK Diluted, mid-warmth pink. rgb(225, 125, 225)
+ LIGHT_COLOR_YELLOW Dimmed yellow, leaning kaki. rgb(225, 225, 125)
+ LIGHT_COLOR_BROWN Clear brown, mostly dim. rgb(150, 100, 50)
+ LIGHT_COLOR_ORANGE Mostly pure orange. rgb(250, 150, 50)
+ LIGHT_COLOR_PURPLE Light Purple. rgb(149, 44, 244)
+ LIGHT_COLOR_LAVENDER Less-saturated light purple. rgb(155, 81, 255)
+ LIGHT_COLOR_HOLY_MAGIC slightly desaturated bright yellow.
+ LIGHT_COLOR_BLOOD_MAGIC deep crimson
+ LIGHT_COLOR_RED Warm red color rgb(250, 66, 66)
+ LIGHT_COLOR_FIRE Warm orange color, leaning strongly towards yellow. rgb(250, 160, 25)
+ LIGHT_COLOR_LAVA Very warm yellow, leaning slightly towards orange. rgb(196, 138, 24)
+ LIGHT_COLOR_FLARE Bright, non-saturated red. Leaning slightly towards pink for visibility. rgb(250, 100, 75)
+ LIGHT_COLOR_SLIME_LAMP Weird color, between yellow and green, very slimy. rgb(175, 200, 75)
+ LIGHT_COLOR_TUNGSTEN Extremely diluted yellow, close to skin color (for some reason). rgb(250, 225, 175)
+ LIGHT_COLOR_HALOGEN Barely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250)
+ COLOR_MOSTLY_PURE_RED The default color for admin say, used as a fallback when the preference is not enabled
+ AMBIENT_OCCLUSION Icon filter that creates ambient occlusion
+ GAUSSIAN_BLUR Icon filter that creates gaussian blur
+ COLOR_LASER_RED Gun muzzle colors
Define Details
+ADMIN_COLOR_PRIORITY
+
+
+
+ Only used by rare effects like greentext coloring mobs and when admins varedit color
AMBIENT_OCCLUSION
+
+
+
+ Icon filter that creates ambient occlusion
COLOR_BLACK
+
+
+
+ Black rgb(0, 0, 0)
COLOR_BLUE
+
+
+
+ Blue rgb(0, 0, 255)
COLOR_CYAN
+
+
+
+ Cyan rgb(0, 255, 255) B + G
COLOR_GRAY
+
+
+
+ Gray rgb(128, 128, 128)
COLOR_GREEN
+
+
+
+ Green rgb(0, 255, 0)
COLOR_LASER_RED
+
+
+
+ Gun muzzle colors
COLOR_LIGHT_GREEN
+
+
+
+ light green rgb( 0, 128, 0)
COLOR_MAGENTA
+
+
+
+ Magenta rgb(255, 0, 255) R+B
COLOR_MAROON
+
+
+
+ Maroon rgb(128, 0, 0) shade of red
COLOR_MOSTLY_PURE_RED
+
+
+
+ The default color for admin say, used as a fallback when the preference is not enabled
COLOR_OLIVE
+
+
+
+ Olive rgb(128, 128, 0)
COLOR_PRIORITY_AMOUNT
+
+
+
+ how many color priority levels there are.
COLOR_PURPLE
+
+
+
+ Purple rgb( 128, 0, 128)
COLOR_RED
+
+
+
+ Red rgb(255, 0, 0)
COLOR_SILVER
+
+
+
+ Silver rgb(192, 192, 192) shade of grey
COLOR_WHITE
+
+
+
+ White rgb(255, 255, 255)
COLOR_YELLOW
+
+
+
+ Yellow rgb(255, 255, 0) R+G
FIXED_COLOR_PRIORITY
+
+
+
+ Color inherent to the atom (e.g. blob color)
GAUSSIAN_BLUR
+
+
+
+
+ Icon filter that creates gaussian blur
LIGHT_COLOR_BLOOD_MAGIC
+
+
+
+ deep crimson
LIGHT_COLOR_BLUE
+
+
+
+ Cold, diluted blue. rgb(100, 150, 250)
LIGHT_COLOR_BLUEGREEN
+
+
+
+ Light blueish green. rgb(125, 225, 175)
LIGHT_COLOR_BROWN
+
+
+
+ Clear brown, mostly dim. rgb(150, 100, 50)
LIGHT_COLOR_CYAN
+
+
+
+ Diluted cyan. rgb(125, 225, 225)
LIGHT_COLOR_DARK_BLUE
+
+
+
+ Saturated blue. rgb(51, 117, 248)
LIGHT_COLOR_FIRE
+
+
+
+ Warm orange color, leaning strongly towards yellow. rgb(250, 160, 25)
LIGHT_COLOR_FLARE
+
+
+
+ Bright, non-saturated red. Leaning slightly towards pink for visibility. rgb(250, 100, 75)
LIGHT_COLOR_GREEN
+
+
+
+ Some defines to generalise Colors used in lighting.
+Important note: Colors can end up significantly different from the basic html picture, especially when saturated
+Bright but quickly dissipating neon green. rgb(100, 200, 100)
LIGHT_COLOR_HALOGEN
+
+
+
+ Barely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250)
LIGHT_COLOR_HOLY_MAGIC
+
+
+
+ slightly desaturated bright yellow.
LIGHT_COLOR_LAVA
+
+
+
+ Very warm yellow, leaning slightly towards orange. rgb(196, 138, 24)
LIGHT_COLOR_LAVENDER
+
+
+
+ Less-saturated light purple. rgb(155, 81, 255)
LIGHT_COLOR_LIGHT_CYAN
+
+
+
+ More-saturated cyan. rgb(64, 206, 255)
LIGHT_COLOR_ORANGE
+
+
+
+ Mostly pure orange. rgb(250, 150, 50)
LIGHT_COLOR_PINK
+
+
+
+ Diluted, mid-warmth pink. rgb(225, 125, 225)
LIGHT_COLOR_PURPLE
+
+
+
+ Light Purple. rgb(149, 44, 244)
LIGHT_COLOR_RED
+
+
+
+ Warm red color rgb(250, 66, 66)
LIGHT_COLOR_SLIME_LAMP
+
+
+
+ Weird color, between yellow and green, very slimy. rgb(175, 200, 75)
LIGHT_COLOR_TUNGSTEN
+
+
+
+ Extremely diluted yellow, close to skin color (for some reason). rgb(250, 225, 175)
LIGHT_COLOR_YELLOW
+
+
+
+ Dimmed yellow, leaning kaki. rgb(225, 225, 125)
TEMPORARY_COLOR_PRIORITY
+
+
+
+ e.g. purple effect of the revenant on a mob, black effect when mob electrocuted
WASHABLE_COLOR_PRIORITY
+
+
+
+ Color splashed onto an atom (e.g. paint on turf)
+
+
+
diff --git a/code/__DEFINES/combat.html b/code/__DEFINES/combat.html
new file mode 100644
index 000000000000..876728008e85
--- /dev/null
+++ b/code/__DEFINES/combat.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ code/__DEFINES/combat.dm - byond
+
+
+
+
+code/__DEFINES/combat.dm
+
+
+
+Define Details
+DECLOAK_EMP
+
+
+
+ Caused by an EMP.
DECLOAK_EXTINGUISHER
+
+
+
+ Caused by fire extinguisher.
DECLOAK_FORCED
+
+
+
+ Forced for any unspecified reason.
DECLOAK_PREDALIEN
+
+
+
+ Caused by predalien screech.
DECLOAK_SPECIES
+
+
+
+ Caused by being worn by non humans.
DECLOAK_SUBMERGED
+
+
+
+ Caused by being in a body of water.
+
+
+
diff --git a/code/__DEFINES/conflict.html b/code/__DEFINES/conflict.html
new file mode 100644
index 000000000000..d30b24f0ab46
--- /dev/null
+++ b/code/__DEFINES/conflict.html
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+ code/__DEFINES/conflict.dm - byond
+
+
+
+
+code/__DEFINES/conflict.dm
+
+
+
+Define Details
+AMMO_ANTISTRUCT
+
+
+
+ Primarily for railgun but can be implemented for other projectiles that are for antitank and antistructure (wall/machine)
AMMO_FLAME
+
+
+
+ Handles sentry flamers glob
AMMO_HITS_TARGET_TURF
+
+
+
+ Whether or not the bullet hits the target that was clicked or if it keeps travelling
AMMO_MP
+
+
+
+ Can only hit people with criminal status
AMMO_NO_DEFLECT
+
+
+
+ Can't be deflected
AMMO_STRIKES_SURFACE
+
+
+
+ If the projectile hits a dense turf it'll do on_hit_turf on the turf just in front of the turf instead of on the turf itself
AMMUNITION_HANDFUL_BOX
+
+
+
+ for dump_ammo_to(), boxes of handfuls like shotgun shell boxes
AMMUNITION_SLAP_TRANSFER
+
+
+
+ If this magazine can transfer to other magazines of the same type by slapping one with the other
ATTACH_IGNORE_EMPTY
+
+
+
+ This attachment should override ignore if it is empty
ATTACH_MELEE
+
+
+
+ This attachment should activate if you attack() with it attached.
ATTACH_PROJECTILE
+
+
+
+ for attachments that fire bullets
ATTACH_WEAPON
+
+
+
+ is a weapon that fires stuff
ATTACH_WIELD_OVERRIDE
+
+
+
+ Override for attachies so you can fire them with a single hand . ONLY FOR PROJECTILES!!
BRUTE_ORGAN_DAM_PROB_MULT
+
+
+
+ The multiplier to existing brute damage when calculating organ damage probability
DMG_ORGAN_DAM_PROB_MULT
+
+
+
+ The multiplier to damage when calculating organ damage probability
EXPLOSION_PRONE_MULTIPLIER
+
+
+
+ prone mobs receive less damage from explosions
EXPLOSION_THRESHOLD_GIB
+
+
+
+ how much it takes to gib a mob
FALLOFF_PER_TILE
+
+
+
+ 1 % per 1 tile per 1 normalcy
GUN_INTERNAL_MAG
+
+
+
+ If checking for ammo with current.mag you have to check it against numerical values, as booleans will not trigger.
GUN_LOW_AMMO_PERCENTAGE
+
+
+
+ A gun filled with this percentage of it's total ammo or lower is considered to have low ammo
GUN_NO_DESCRIPTION
+
+
+
+ No gun description, only base desc
GUN_ONE_HAND_WIELDED
+
+
+
+ removes unwielded accuracy and scatter penalties (not recoil)
GUN_RECOIL_BUILDUP
+
+
+
+ Whether the gun has been fired by its current user (reset upon dropped()
)
+ support weapon, bipod will grant autofire
MOB_SIZE_COEFF
+
+
+
+ Coefficient of mobsize when calculating damage from a mob colliding with a dense atom
PROJECTILE_BULLSEYE
+
+
+
+ Apply additional effects upon hitting clicked target
PROJECTILE_SHRAPNEL
+
+
+
+ Projectile is shrpanel which allow it to skip some collisions
SHOES_SLOWDOWN
+
+
+
+ How much shoes slow you down by default. Negative values speed you up
THROWFORCE_COEFF
+
+
+
+ Coefficient of throwforce when calculating damage from an atom colliding with a mob
THROW_DELAY
+
+
+
+ This is how long you must wait to throw again after throwing two things
THROW_SPEED_DENSE_COEFF
+
+
+
+ Coefficient of throwspeed when calculating damage from a mob colliding with a dense atom
THROW_SPEED_IMPACT_COEFF
+
+
+
+ Coefficient of throwspeed when calculating damage from an atom colliding with a mob
+
+
+
diff --git a/code/__DEFINES/cooldowns.html b/code/__DEFINES/cooldowns.html
new file mode 100644
index 000000000000..c301956fa787
--- /dev/null
+++ b/code/__DEFINES/cooldowns.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ code/__DEFINES/cooldowns.dm - byond
+
+
+
+
+code/__DEFINES/cooldowns.dm
+
+
+
+Define Details
+COMSIG_CD_STOP
+
+
+
+
+ COOLDOWN SYSTEMS
COOLDOWN_SECONDSLEFT
+
+
+
+
+ just pre-divides the result by 10 to give an output in seconds
+
+
+
diff --git a/code/__DEFINES/dcs/flags.html b/code/__DEFINES/dcs/flags.html
new file mode 100644
index 000000000000..5cc6db19ce80
--- /dev/null
+++ b/code/__DEFINES/dcs/flags.html
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/flags.dm - byond
+
+
+
+
+code/__DEFINES/dcs/flags.dm
+
+
+
+
+ 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_INCOMPATIBLE Return value to cancel attaching
+ ELEMENT_DETACH Causes the detach proc to be called when the host object is being deleted
+ 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
+ COMPONENT_DUPE_HIGHLANDER old component is deleted (default)
+ COMPONENT_DUPE_ALLOWED duplicates allowed
+ COMPONENT_DUPE_UNIQUE new component is deleted
+ COMPONENT_DUPE_UNIQUE_PASSARGS old component is given the initialization args of the new
+ COMPONENT_DUPE_SELECTIVE each component of the same type is consulted as to whether the duplicate should be allowed
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
+
+
+
+ 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/helpers.html b/code/__DEFINES/dcs/helpers.html
new file mode 100644
index 000000000000..bd870d9e4c49
--- /dev/null
+++ b/code/__DEFINES/dcs/helpers.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/helpers.dm - byond
+
+
+
+
+code/__DEFINES/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.
+ SIGNAL_HANDLER_DOES_SLEEP Signifies that this proc is used to handle signals, but also sleeps.
+Do not use this for new work.
+ 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.
SIGNAL_HANDLER_DOES_SLEEP
+
+
+
+ Signifies that this proc is used to handle signals, but also sleeps.
+Do not use this for new work.
+
+
+
diff --git a/code/__DEFINES/dcs/signals/atom/mob/living/signals_human.html b/code/__DEFINES/dcs/signals/atom/mob/living/signals_human.html
new file mode 100644
index 000000000000..bb9f3805d95b
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/mob/living/signals_human.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/atom/mob/living/signals_human.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/atom/mob/living/signals_human.dm
+
+
+
+Define Details
+COMSIG_HUMAN_ALIEN_ATTACK
+
+
+
+ from /mob/living/carbon/human/attack_alien()
COMSIG_HUMAN_ATTEMPTING_EQUIP
+
+
+
+ From /mob/proc/equip_to_slot_if_possible()
COMSIG_HUMAN_BLOOD_CROSSED
+
+
+
+ From /obj/effect/decal/cleanable/blood/Crossed(): (amount, bcolor, dry_time_left)
COMSIG_HUMAN_BULLET_ACT
+
+
+
+ From /mob/living/carbon/human/bullet_act(): (damage_result, ammo_flags, obj/projectile/P)
COMSIG_HUMAN_CARRY
+
+
+
+ From /mob/living/carbon/human/MouseDrop_T(atom/dropping, mob/user)
COMSIG_HUMAN_COLD_PROTECTION_APPLY_MODIFIERS
+
+
+
+ From /mob/living/carbon/human/proc/get_flags_cold_protection()
COMSIG_HUMAN_EXTINGUISH
+
+
+
+ From /mob/living/carbon/human/ExtinguishMob()
COMSIG_HUMAN_FLAY_ATTEMPT
+
+
+
+ From /datum/flaying_datum
COMSIG_HUMAN_FORCESAY
+
+
+
+ from /mob/living/carbon/human/proc/force_say(): ()
COMSIG_HUMAN_IMPREGNATE
+
+
+
+ From /obj/item/clothing/mask/facehugger/proc/impregnate(): (obj/item/clothing/mask/facehugger/hugger)
COMSIG_HUMAN_MOVEMENT_CANCEL_INTERACTION
+
+
+
+ from /mob/living/carbon/human/movement_delay()
COMSIG_HUMAN_OVERLAY_APPLIED
+
+
+
+ From /mob/living/carbon/human/apply_overlay(): (cache_index, overlay_image)
COMSIG_HUMAN_OVERLAY_REMOVED
+
+
+
+ From /mob/living/carbon/human/remove_overlay(): (cache_index, overlay_image)
COMSIG_HUMAN_POST_MOVE_DELAY
+
+
+
+ from /mob/living/carbon/human/movement_delay(): (list/movedata)
COMSIG_HUMAN_POST_UPDATE_SIGHT
+
+
+
+ from /mob/living/carbon/human/update_sight()
COMSIG_HUMAN_PRE_BULLET_ACT
+
+
+
+ From /mob/living/carbon/human/bullet_act
COMSIG_HUMAN_REVIVED
+
+
+
+ From /obj/item/device/defibrillator/attack
COMSIG_HUMAN_SHRAPNEL_REMOVED
+
+
+
+ From /obj/item/proc/dig_out_shrapnel() : ()
COMSIG_HUMAN_SURGERY_APPLY_MODIFIERS
+
+
+
+ from /datum/surgery_step/proc/attempt_step()
+
+
+
diff --git a/code/__DEFINES/dcs/signals/atom/mob/living/signals_living.html b/code/__DEFINES/dcs/signals/atom/mob/living/signals_living.html
new file mode 100644
index 000000000000..feec9320de41
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/mob/living/signals_living.html
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/atom/mob/living/signals_living.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/atom/mob/living/signals_living.dm
+
+
+
+Define Details
+COMSIG_LIVING_APPLY_EFFECT
+
+
+
+ from base of /mob/living/apply_status_effect(): (datum/status_effect/new_effect)
COMSIG_LIVING_ATTACKHAND_HUMAN
+
+
+
+ From /mob/living/carbon/human/attack_hand() : (mob/living/carbon/human/attacked_mob)
COMSIG_LIVING_CLIMB_STRUCTURE
+
+
+
+ From /obj/structure/proc/do_climb(var/mob/living/user, mods)
COMSIG_LIVING_FLAMER_CROSSED
+
+
+
+ From /obj/flamer_fire/Crossed
COMSIG_LIVING_FLAMER_FLAMED
+
+
+
+ From /obj/flamer_fire/Initialize
COMSIG_LIVING_GHOSTED
+
+
+
+ From /mob/living/proc/do_ghost() : (mob/dead/observer/ghost)
COMSIG_LIVING_HYPOSPRAY_INJECTED
+
+
+
+ From /obj/item/reagent_container/hypospray/attack() : (obj/item/reagent_container/hypospray/injector)
COMSIG_LIVING_PREIGNITION
+
+
+
+ From /mob/living/proc/IgniteMob
COMSIG_LIVING_PRE_COLLIDE
+
+
+
+ From /mob/living/Collide(): (atom/A)
COMSIG_LIVING_REJUVENATED
+
+
+
+ From /mob/living/rejuvenate
COMSIG_LIVING_SET_BODY_POSITION
+
+
+
+ from base of mob/living/set_body_position()
COMSIG_LIVING_SET_BUCKLED
+
+
+
+ from base of mob/living/set_buckled(): (new_buckled)
COMSIG_LIVING_ZOOM_OUT
+
+
+
+ From /obj/item/proc/unzoom
COMSIG_MOB_RECALCULATE_CLIENT_COLOR
+
+
+
+ From /mob/living/verb/resist()
COMSIG_MOB_RESISTED
+
+
+
+ From /mob/living/verb/resist()
+
+
+
diff --git a/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.html b/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.html
new file mode 100644
index 000000000000..6a28268c1cdb
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.html
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.dm
+
+
+
+Define Details
+COMSIG_QUEEN_DISMOUNT_OVIPOSITOR
+
+
+
+ From /mob/living/carbon/xenomorph/queen/proc/dismount_ovipositor(): (instant_dismount)
COMSIG_QUEEN_MOUNT_OVIPOSITOR
+
+
+
+ From /mob/living/carbon/xenomorph/queen/proc/mount_ovipositor
COMSIG_XENO_ACTION_USED
+
+
+
+ From /datum/action/xeno_action/proc/use_ability_wrapper(): (mob/owner)
COMSIG_XENO_ALIEN_ATTACK
+
+
+
+ from /mob/living/carbon/xenomorph/attack_alien()
COMSIG_XENO_APPEND_TO_STAT
+
+
+
+ from /mob/living/carbon/xenomorph/get_status_tab_items(): (list/statdata)
COMSIG_XENO_BULLET_ACT
+
+
+
+ From /mob/living/carbon/xenomorph/bullet_act
COMSIG_XENO_DEAL_ACID_DAMAGE
+
+
+
+ From /mob/living/carbon/xenomorph/proc/check_blood_splash()
COMSIG_XENO_DEBUFF_CLEANSE
+
+
+
+ used in /datum/component/status_effect/cleanse()
COMSIG_XENO_ENTER_CRIT
+
+
+
+ From /mob/living/carbon/xenomorph/proc/handle_crit()
COMSIG_XENO_FAILED_ACTION_USED
+
+
+
+ From /datum/action/xeno_action/proc/use_ability_wrapper(): (mob/owner)
COMSIG_XENO_MOVEMENT_DELAY
+
+
+
+ from /mob/living/carbon/xenomorph/movement_delay()
COMSIG_XENO_PLANT_RESIN_NODE
+
+
+
+ From /datum/action/xeno_action/onclick/plant_weeds/use_ability(): (atom/A)
COMSIG_XENO_POST_SPIT
+
+
+
+ From ../xeno_action/activable/xeno_spit/use_ability
COMSIG_XENO_PRE_ACTION_USED
+
+
+
+ From /datum/action/xeno_action/proc/use_ability_wrapper(): (mob/owner)
COMSIG_XENO_PRE_APPLY_ARMOURED_DAMAGE
+
+
+
+ from /mob/living/carbon/xenomorph/apply_armoured_damage(): (list/damagedata)
COMSIG_XENO_PRE_CALCULATE_ARMOURED_DAMAGE_PROJECTILE
+
+
+
+ from /mob/living/carbon/xenomorph/bullet_act(): (list/damagedata)
COMSIG_XENO_RECALCULATE_SPEED
+
+
+
+ From /mob/living/carbon/xenomorph/proc/recalculate_speed()
COMSIG_XENO_REVIVED
+
+
+
+ From /mob/living/carbon/xenomorph/revive()
COMSIG_XENO_SLASH_ADDITIONAL_EFFECTS_SELF
+
+
+
+ For any additional things that should happen when a xeno's melee_attack_additional_effects_self() proc is called
COMSIG_XENO_START_CHARGING
+
+
+
+ Called whenever xeno should resume charge
COMSIG_XENO_START_EMIT_PHEROMONES
+
+
+
+ From //mob/living/carbon/xenomorph/proc/emit_pheromones(): (pheromone, emit_cost)
COMSIG_XENO_STOP_MOMENTUM
+
+
+
+ Called whenever xeno should stop momentum (when charging)
COMSIG_XENO_TAKE_HUGGER_FROM_MORPHER
+
+
+
+ From /obj/effect/alien/resin/special/eggmorph/attack_alien: (mob/living/carbon/xenomorph/M)
COMSIG_XENO_TRY_HIVEMIND_TALK
+
+
+
+ From /mob/living/carbon/xenomorph/proc/hivemind_talk(): (message)
+
+
+
diff --git a/code/__DEFINES/dcs/signals/atom/mob/signals_mind.html b/code/__DEFINES/dcs/signals/atom/mob/signals_mind.html
new file mode 100644
index 000000000000..c9c27ed32593
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/mob/signals_mind.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/atom/mob/signals_mind.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/atom/mob/signals_mind.dm
+
+
+
+
+ COMSIG_MIND_TRANSFERRED from mind/transfer_to. Sent after the mind has been transferred to a different body: (mob/previous_body)
Define Details
+COMSIG_MIND_TRANSFERRED
+
+
+
+ from mind/transfer_to. Sent after the mind has been transferred to a different body: (mob/previous_body)
+
+
+
diff --git a/code/__DEFINES/dcs/signals/atom/mob/signals_mob.html b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.html
new file mode 100644
index 000000000000..d82563247e87
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.html
@@ -0,0 +1,281 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm
+
+
+
+Define Details
+COMSIG_LIVING_POST_FULLY_HEAL
+
+
+
+ from rejuv
COMSIG_MOB_AGGRESSIVELY_GRABBED
+
+
+
+ From /obj/item/grab/proc/progress_passive() : (mob/living/carbon/human/grabber)
COMSIG_MOB_APC_CUT_WIRE
+
+
+
+ From /obj/structure/machinery/power/apc/proc/cut
COMSIG_MOB_APC_POWER_PULSE
+
+
+
+ From /obj/structure/machinery/power/apc/proc/pulse
COMSIG_MOB_APC_REMOVE_BOARD
+
+
+
+ From /obj/structure/machinery/power/apc/attackby
COMSIG_MOB_APC_REMOVE_CELL
+
+
+
+ From /obj/structure/machinery/power/apc/attack_hand
COMSIG_MOB_ATTEMPTING_EQUIP
+
+
+
+ From /mob/proc/equip_to_slot_if_possible()
COMSIG_MOB_CHANGE_VIEW
+
+
+
+ called in /client/change_view()
COMSIG_MOB_CONSTRUCT_WALL
+
+
+
+ From /obj/structure/girder/proc/do_wall
COMSIG_MOB_CONSTRUCT_WINDOW
+
+
+
+ From /obj/structure/window_frame/attackby
COMSIG_MOB_DEATH
+
+
+
+ From /mob/proc/death
COMSIG_MOB_DESTROY_AIRLOCK
+
+
+
+ From /obj/structure/machinery/door/airlock/proc/take_damage
COMSIG_MOB_DESTROY_WALL
+
+
+
+ From /turf/closed/wall/proc/take_damage
COMSIG_MOB_DESTROY_WINDOW
+
+
+
+ From /obj/structure/window/proc/healthcheck
COMSIG_MOB_DEVOURED
+
+
+
+ For when a mob is devoured by a Xeno
COMSIG_MOB_DISASSEMBLE_AIRLOCK
+
+
+
+ From /obj/structure/machinery/door/airlock/attackby
COMSIG_MOB_DISASSEMBLE_WINDOW
+
+
+
+ From /obj/structure/window/attackby
COMSIG_MOB_DISASSEMBLE_W_FRAME
+
+
+
+ From /obj/structure/window_frame/attackby
COMSIG_MOB_DRAGGED
+
+
+
+ For when a mob is dragged
COMSIG_MOB_EATEN_SNACK
+
+
+
+ From /obj/item/reagent_container/food/snacks/proc/on_Consume() : (obj/item/reagent_container/food/snacks/eaten_food)
COMSIG_MOB_EFFECT_CLOAK_CANCEL
+
+
+
+ Cancels all running cloaking effects on target
COMSIG_MOB_EMOTE
+
+
+
+ from /mob/living/emote(): ()
COMSIG_MOB_EXPLODED_WALL
+
+
+
+ From /turf/closed/wall/ex_act
COMSIG_MOB_EXPLODE_W_FRAME
+
+
+
+ From /obj/structure/window/framed/ex_act
COMSIG_MOB_FIRED_GUN
+
+
+
+ From /projectiles/updated_projectiles/guns/proc/fire
COMSIG_MOB_FIRED_GUN_ATTACHMENT
+
+
+
+ From /projectiles/updated_projectiles/guns/proc/fire_attachment
COMSIG_MOB_GET_STATUS_TAB_ITEMS
+
+
+
+ From /mob/proc/get_status_tab_items() : (list/status_list)
COMSIG_MOB_GHOSTIZE
+
+
+
+ When a mob is turned into a /mob/dead/observer at /mob/proc/ghostize()
COMSIG_MOB_GRAB_UPGRADE
+
+
+
+ From /obj/item/grab/attack_self(mob/user)
COMSIG_MOB_GUN_EMPTY
+
+
+
+ From /obj/item/weapon/gun/proc/reload_into_chamber() : (obj/item/weapon/gun/empty_gun)
COMSIG_MOB_INTENT_CHANGE
+
+
+
+ From /mob/proc/a_intent_change() : (new_intent)
COMSIG_MOB_ITEM_ATTACK_SELF
+
+
+
+ From /obj/item/proc/attack_self() : (obj/item/used)
COMSIG_MOB_ITEM_DROPPED
+
+
+
+ From /obj/item/proc/dropped() : (obj/item/dropped)
COMSIG_MOB_ITEM_UNEQUIPPED
+
+
+
+ From /obj/item/proc/unequipped()
COMSIG_MOB_LOGGED_IN
+
+
+
+ From base of /mob/Login(), called after a client logs into this mob: ()
+Not to be confused with COMSIG_MOB_LOGIN
COMSIG_MOB_LOGIN
+
+
+
+ From base of /mob/Login(), called when a client logs into this mob: ()
+Not to be confused with COMSIG_MOB_LOGGED_IN
COMSIG_MOB_LOGOUT
+
+
+
+ From base of /mob/Logout(): ()
COMSIG_MOB_NEW_MIND
+
+
+
+ When a mob gets a new mind via transfer at /datum/mind/proc/transfer_to()
COMSIG_MOB_PARENT_ATTACKBY
+
+
+
+ From /atom/proc/attackby() : (atom/attacked, obj/item/attacked_with)
COMSIG_MOB_PICKUP_ITEM
+
+
+
+ From /obj/item/proc/pickup() : (obj/item/picked_up)
COMSIG_MOB_REAL_NAME_CHANGED
+
+
+
+ From /mob/proc/change_real_name(): (old_name, new_name)
COMSIG_MOB_RELOADED_GUN
+
+
+
+ From /obj/item/weapon/gun/proc/reload() : (obj/item/weapon/gun/reloaded)
COMSIG_MOB_RESET_VIEW
+
+
+
+ Called in /mob/reset_view(): (atom/A)
COMSIG_MOB_SET_FACE_DIR
+
+
+
+ From base of /mob/proc/set_face_dir(): (newdir)
COMSIG_MOB_STATCHANGE
+
+
+
+ from base of mob/set_stat(): (new_stat, old_stat)
COMSIG_MOB_SWAPPED_HAND
+
+
+
+ From /mob/proc/swap_hand() : ()
COMSIG_MOB_TACKLED_DOWN
+
+
+
+ From /mob/living/carbon/human/attack_alien(): (mob/living/carbon/xenomorph/M, dam_bonus)
COMSIG_MOB_TUTORIAL_UPDATE_OBJECTIVE
+
+
+
+ From /datum/tutorial/proc/update_objective() : (new_objective)
COMSIG_MOB_WEED_SLOWDOWN
+
+
+
+ From /obj/effect/alien/weeds/Crossed(atom/movable/AM)
COMSIG_MOB_WINDOW_EXPLODED
+
+
+
+ From /obj/structure/window/ex_act
+
+
+
diff --git a/code/__DEFINES/dcs/signals/atom/signals_atom.html b/code/__DEFINES/dcs/signals/atom/signals_atom.html
new file mode 100644
index 000000000000..fa68e3345c1a
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/signals_atom.html
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/atom/signals_atom.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/atom/signals_atom.dm
+
+
+
+Define Details
+COMSIG_ATOM_DECORATED
+
+
+
+ From /atom/proc/Decorate
COMSIG_ATOM_DIR_CHANGE
+
+
+
+ from base of atom/setDir(): (old_dir, new_dir). Called before the direction changes.
COMSIG_ATOM_DROPPED_ON
+
+
+
+ Called when an atom has something mouse dropped on it, from /client/MouseDrop: (atom/dropped_on)
COMSIG_ATOM_DROP_ON
+
+
+
+ Called when an atom is mouse dropped on another atom, from /client/MouseDrop: (atom/dropped_onto)
COMSIG_ATOM_EMP_ACT
+
+
+
+ Called when an atom has emp_act called on it, from /atom/emp_act: (severity)
COMSIG_ATOM_HITBY
+
+
+
+ from /atom/hitby(): (atom/movable/AM)
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_SET_LIGHT_COLOR
+
+
+
+ Called right before the atom changes the value of light_color to a different one, from base atom/set_light_color(): (new_color)
COMSIG_ATOM_SET_LIGHT_FLAGS
+
+
+
+ Called right before the atom changes the value of light_flags to a different one, from base atom/set_light_flags(): (new_value)
COMSIG_ATOM_SET_LIGHT_ON
+
+
+
+ Called right before the atom changes the value of light_on to a different one, from base atom/set_light_on(): (new_value)
COMSIG_ATOM_SET_LIGHT_POWER
+
+
+
+ Called right before the atom changes the value of light_power to a different one, from base atom/set_light_power(): (new_power)
COMSIG_ATOM_SET_LIGHT_RANGE
+
+
+
+ Called right before the atom changes the value of light_range to a different one, from base atom/set_light_range(): (new_range)
COMSIG_ATOM_SET_OPACITY
+
+
+
+ from base of atom/set_opacity(): (new_opacity)
COMSIG_ATOM_TEMPORARY_ANIMATION_START
+
+
+
+ generally called before temporary non-parallel animate()s on the atom (animation_duration)
COMSIG_ATOM_TURF_CHANGE
+
+
+
+ from /turf/ChangeTurf
+ When the transform or an atom is varedited through vv topic.
+
+
+
diff --git a/code/__DEFINES/dcs/signals/atom/signals_cell.html b/code/__DEFINES/dcs/signals/atom/signals_cell.html
new file mode 100644
index 000000000000..35c178622ec5
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/signals_cell.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/atom/signals_cell.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/atom/signals_cell.dm
+
+
+
+Define Details
+COMSIG_CELL_ADD_CHARGE
+
+
+
+ (charge_amount)
COMSIG_CELL_CHECK_CHARGE
+
+
+
+ (charge_amount)
COMSIG_CELL_REMOVE_CELL
+
+
+
+ (mob/living/user)
COMSIG_CELL_TRY_RECHARGING
+
+
+
+ (mob/living/user)
COMSIG_CELL_USE_CHARGE
+
+
+
+ (charge_amount)
+
+
+
diff --git a/code/__DEFINES/dcs/signals/atom/signals_item.html b/code/__DEFINES/dcs/signals/atom/signals_item.html
new file mode 100644
index 000000000000..2d63d97a8dbd
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/signals_item.html
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/atom/signals_item.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/atom/signals_item.dm
+
+
+
+Define Details
+COMPONENT_CANCEL_EQUIP
+
+
+
+ Return this in response if you don't want items equipped
COMSIG_BROADCAST_GO_LIVE
+
+
+
+ from /obj/item/device/camera/broadcasting
COMSIG_GUN_INTERRUPT_FIRE
+
+
+
+ from /obj/item/weapon/gun/proc/load_into_chamber() : ()
COMSIG_GUN_RECALCULATE_ATTACHMENT_BONUSES
+
+
+
+ from /obj/item/weapon/gun/proc/recalculate_attachment_bonuses() : ()
COMSIG_ITEM_ATTACKED
+
+
+
+ from /obj/item/attackby() : (obj/item, mob/user)
COMSIG_ITEM_ATTACK_SELF
+
+
+
+ From base of /obj/item/proc/attack_self(): (mob/user)
COMSIG_ITEM_ATTEMPTING_EQUIP
+
+
+
+ from /obj/item/proc/mob_can_equip
COMSIG_ITEM_DROPPED
+
+
+
+ from base of obj/item/dropped(): (mob/user)
COMSIG_ITEM_EQUIPPED
+
+
+
+ From base of /obj/item/proc/equipped(): (mob/user, slot)
COMSIG_ITEM_UNEQUIPPED
+
+
+
+ From base of /obj/item/proc/unequipped(): (mob/user, slot)
COMSIG_ITEM_UNWIELD
+
+
+
+ from /obj/item/proc/unwield
COMSIG_ITEM_UNZOOM
+
+
+
+ from /obj/item/proc/unzoom() : (mob/user)
COMSIG_ITEM_ZOOM
+
+
+
+ from /obj/item/proc/do_zoom() : (mob/user)
COMSIG_SNACK_EATEN
+
+
+
+ from /obj/item/reagent_container/food/snacks/proc/On_Consume
+
+
+
diff --git a/code/__DEFINES/dcs/signals/atom/signals_movable.html b/code/__DEFINES/dcs/signals/atom/signals_movable.html
new file mode 100644
index 000000000000..e17e5a815230
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/signals_movable.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/atom/signals_movable.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/atom/signals_movable.dm
+
+
+
+Define Details
+COMSIG_MOVABLE_ENTERED_RIVER
+
+
+
+ From /turf/open/gm/river/Entered(): (turf/open/gm/river/river, covered)
COMSIG_MOVABLE_FORCEMOVE_PRE_CROSSED
+
+
+
+ From /atom/movable/proc/doMove: I think it only works with forceMove so watch out
COMSIG_MOVABLE_MOVED
+
+
+
+ from base of atom/movable/Moved(): (/atom, dir, forced)
COMSIG_MOVABLE_PRE_MOVE
+
+
+
+ From /atom/movable/Move(): (atom/NewLoc)
COMSIG_MOVABLE_PRE_THROW
+
+
+
+ From /atom/movable/proc/launch_towards
COMSIG_MOVABLE_SHUTTLE_CRUSH
+
+
+
+ shuttle crushing something
COMSIG_MOVABLE_UPDATE_GLIDE_SIZE
+
+
+
+ from base of /atom/movable/proc/set_glide_size(): (target)
COMSIG_MOVABLE_XENO_START_PULLING
+
+
+
+ from /mob/living/carbon/xenomorph/start_pulling(): (mob/living/carbon/xenomorph/X)
+
+
+
diff --git a/code/__DEFINES/dcs/signals/atom/signals_obj.html b/code/__DEFINES/dcs/signals/atom/signals_obj.html
new file mode 100644
index 000000000000..ebc1770096ea
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/signals_obj.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/atom/signals_obj.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/atom/signals_obj.dm
+
+
+
+Define Details
+COMSIG_ARC_ANTENNA_TOGGLED
+
+
+
+ from /obj/vehicle/multitile/arc/toggle_antenna()
COMSIG_CRYOPOD_GO_OUT
+
+
+
+ from /obj/structure/machinery/cryopod/go_out()
COMSIG_INTEL_DISK_COMPLETED
+
+
+
+ from /datum/cm_objective/retrieve_data/disk/complete()
COMSIG_INTEL_DISK_LOST_POWER
+
+
+
+ from /datum/cm_objective/retrieve_data/disk/process()
COMSIG_LIMB_STOP_BLEEDING
+
+
+
+ from /obj/limb/proc/remove_all_bleeding() : (external, internal)
COMSIG_OBJ_AFTER_BUCKLE
+
+
+
+ from /obj/proc/afterbuckle()
COMSIG_SHUTTLE_SETMODE
+
+
+
+ shuttle mode change
COMSIG_TRANSMITTER_UPDATE_ICON
+
+
+
+ from /obj/structure/transmitter/update_icon()
COMSIG_VENDOR_SUCCESSFUL_VEND
+
+
+
+ from /proc/vendor_successful_vend() : (obj/structure/machinery/cm_vending/vendor, list/itemspec, mob/living/carbon/human/user)
COMSIG_WEEDNODE_CANNOT_EXPAND_FURTHER
+
+
+
+ From /obj/effect/alien/weeds/proc/on_weed_expand()
COMSIG_WEEDNODE_GROWTH
+
+
+
+ From /obj/effect/alien/weeds/Initialize()
COMSIG_WEEDNODE_GROWTH_COMPLETE
+
+
+
+ From /obj/effect/alien/weeds/Initialize()
+
+
+
diff --git a/code/__DEFINES/dcs/signals/atom/signals_projectile.html b/code/__DEFINES/dcs/signals/atom/signals_projectile.html
new file mode 100644
index 000000000000..a486d984178e
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/signals_projectile.html
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/atom/signals_projectile.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/atom/signals_projectile.dm
+
+
+
+Define Details
+COMSIG_AMMO_POINT_BLANK
+
+
+
+ Called on point blank for ammo effects
COMSIG_BULLET_ACT_LIVING
+
+
+
+ Called when a bullet hits a living mob
COMSIG_BULLET_ACT_XENO
+
+
+
+ Called when a bullet hits a xenomorph
COMSIG_BULLET_CHECK_MOB_SKIPPING
+
+
+
+ Called when checking whether bullet should skip mob for whatever reasons (like IFF)
COMSIG_BULLET_DIRECT_HIT
+
+
+
+ Called when a bullet hits a living mob on a sprite click (original target is final target)
COMSIG_BULLET_POST_HANDLE_MOB
+
+
+
+ From /obj/projectile/handle_mob(): (mob/living/target)
COMSIG_BULLET_POST_HANDLE_OBJ
+
+
+
+ From /obj/projectile/handle_obj(): (obj/target, did_hit)
COMSIG_BULLET_POST_HANDLE_TURF
+
+
+
+ From /obj/projectile/scan_a_turf(): (turf/target)
COMSIG_BULLET_PRE_HANDLE_MOB
+
+
+
+ From /obj/projectile/handle_mob(): (mob/living/target)
COMSIG_BULLET_PRE_HANDLE_OBJ
+
+
+
+ From /obj/projectile/handle_obj(): (obj/target)
COMSIG_BULLET_PRE_HANDLE_TURF
+
+
+
+ From /obj/projectile/scan_a_turf(): (turf/target)
COMSIG_BULLET_USER_EFFECTS
+
+
+
+ Apply any effects to the bullet (primarily through bullet traits)
+based on the user
COMSIG_POST_BULLET_ACT_HUMAN
+
+
+
+ Called when a bullet hits a human
+
+
+
diff --git a/code/__DEFINES/dcs/signals/atom/signals_turf.html b/code/__DEFINES/dcs/signals/atom/signals_turf.html
new file mode 100644
index 000000000000..710d487d4141
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/signals_turf.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/atom/signals_turf.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/atom/signals_turf.dm
+
+
+
+Define Details
+COMSIG_MOVABLE_TURF_ENTERED
+
+
+
+ from /turf/Entered
COMSIG_POSTER_PLACED
+
+
+
+ from /turf/closed/wall/proc/place_poster
COMSIG_TURF_BULLET_ACT
+
+
+
+ Called when a bullet hits a turf
COMSIG_TURF_RESERVATION_RELEASED
+
+
+
+ from base of /datum/turf_reservation/proc/Release: (datum/turf_reservation/reservation)
COMSIG_WALL_RESIN_ATTACKBY
+
+
+
+ From /turf/closed/wall/resin/attackby(): (obj/item/I, mob/M)
COMSIG_WALL_RESIN_XENO_ATTACK
+
+
+
+ From /turf/closed/wall/resin/attack_alien(): (mob/living/carbon/xenomorph/X)
+
+
+
diff --git a/code/__DEFINES/dcs/signals/signals_admin.html b/code/__DEFINES/dcs/signals/signals_admin.html
new file mode 100644
index 000000000000..b32eeae0110c
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_admin.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/signals_admin.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/signals_admin.dm
+
+
+
+Define Details
+COMSIG_ADMIN_HELP_RECEIVED
+
+
+
+ Called on a client when a player receives an adminhelp. From /client/proc/receive_ahelp(message)
COMSIG_ADMIN_HELP_REPLIED
+
+
+
+ Called on the /datum/admin_help when the player replies. From /client/proc/cmd_admin_pm().
+
+
+
diff --git a/code/__DEFINES/dcs/signals/signals_client.html b/code/__DEFINES/dcs/signals/signals_client.html
new file mode 100644
index 000000000000..5d054ddd7f59
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_client.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/signals_client.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/signals_client.dm
+
+
+
+Define Details
+COMSIG_CLIENT_MOB_LOGGED_IN
+
+
+
+ Called from /mob/Login() after a client logs into a mob: (mob)
COMSIG_CLIENT_PRE_CLICK
+
+
+
+ from /mob/do_click(): (atom/A, list/mods)
COMSIG_CLIENT_SCREEN_ADD
+
+
+
+ Called when something is added to a client's screen : /client/proc/add_to_screen(screen_add)
COMSIG_CLIENT_SCREEN_REMOVE
+
+
+
+ Called when something is removed from a client's screen : /client/proc/remove_from_screen(screen_remove)
COMSIG_CLIENT_VERB_ADDED
+
+
+
+ Called after one or more verbs are added: (list of verbs added)
COMSIG_CLIENT_VERB_REMOVED
+
+
+
+ Called after one or more verbs are added: (list of verbs added)
+
+
+
diff --git a/code/__DEFINES/dcs/signals/signals_datum.html b/code/__DEFINES/dcs/signals/signals_datum.html
new file mode 100644
index 000000000000..62edffdb9647
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_datum.html
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/signals_datum.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/signals_datum.dm
+
+
+
+
+ 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 COMPONENT_ABORT_QDEL 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_UI_ACT from datum ui_act (usr, action)
+ 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_PARENT_EXAMINE from base of atom/examine(): (/mob, list/examine_text)
+ COMSIG_VV_TOPIC handler for vv_do_topic (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_ACTION_GIVEN From /datum/action/proc/give_to(): (mob/owner)
+ COMSIG_ACTION_REMOVED From base of /datum/action/proc/remove_from(): (mob/owner)
+ COMSIG_ACTION_HIDDEN From base of /datum/action/proc/hide_from(): (mob/owner)
+ COMSIG_ACTION_UNHIDDEN From base of /datum/action/proc/unhide_from(): (mob/owner)
+ COMSIG_ACTION_ACTIVATED From base of /datum/action/proc/action_activate() : ()
+ COMSIG_BONUS_DAMAGE from /datum/component/bonus_damage_stack
+ COMSIG_SET_SQUAD from /datum/squad/proc/put_marine_in_squad
+ COMSIG_DROP_RETRIEVAL_CHECK From /datum/element/drop_retrieval usage: /obj/item/attachable/magnetic_harness/can_be_attached_to_gun(), /obj/item/storage/pouch/sling/can_be_inserted() (/obj/item/I)
+ COMSIG_LAZY_TEMPLATE_LOADED Fired on the lazy template datum when the template is finished loading. (list/loaded_atom_movables, list/loaded_turfs, list/loaded_areas)
Define Details
+COMPONENT_NO_AFTERATTACK
+
+
+
+ Return this in response if you don't want afterattack to be called
COMSIG_ACTION_ACTIVATED
+
+
+
+ From base of /datum/action/proc/action_activate() : ()
COMSIG_ACTION_GIVEN
+
+
+
+ From /datum/action/proc/give_to(): (mob/owner)
COMSIG_ACTION_HIDDEN
+
+
+
+ From base of /datum/action/proc/hide_from(): (mob/owner)
COMSIG_ACTION_REMOVED
+
+
+
+ From base of /datum/action/proc/remove_from(): (mob/owner)
COMSIG_ACTION_UNHIDDEN
+
+
+
+ From base of /datum/action/proc/unhide_from(): (mob/owner)
COMSIG_BONUS_DAMAGE
+
+
+
+ from /datum/component/bonus_damage_stack
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_DROP_RETRIEVAL_CHECK
+
+
+
+ From /datum/element/drop_retrieval usage: /obj/item/attachable/magnetic_harness/can_be_attached_to_gun(), /obj/item/storage/pouch/sling/can_be_inserted() (/obj/item/I)
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_LAZY_TEMPLATE_LOADED
+
+
+
+ Fired on the lazy template datum when the template is finished loading. (list/loaded_atom_movables, list/loaded_turfs, list/loaded_areas)
COMSIG_PARENT_ATTACKBY
+
+
+
+ from base of atom/attackby(): (/obj/item, /mob/living, params)
COMSIG_PARENT_EXAMINE
+
+
+
+ from base of atom/examine(): (/mob, list/examine_text)
COMSIG_PARENT_PREQDELETED
+
+
+
+ before a datum's Destroy() is called: (force), returning a COMPONENT_ABORT_QDEL 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_SET_SQUAD
+
+
+
+ from /datum/squad/proc/put_marine_in_squad
COMSIG_TOPIC
+
+
+
+ generic topic handler (usr, href_list)
COMSIG_UI_ACT
+
+
+
+ from datum ui_act (usr, action)
COMSIG_VV_TOPIC
+
+
+
+ handler for vv_do_topic (usr, href_list)
+
+
+
diff --git a/code/__DEFINES/dcs/signals/signals_global.html b/code/__DEFINES/dcs/signals/signals_global.html
new file mode 100644
index 000000000000..db9c4c115065
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_global.html
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/signals_global.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/signals_global.dm
+
+
+
+Define Details
+CANCEL_RANDOM_EVENT
+
+
+
+ Do not allow this random event to continue.
COMSIG_GLOB_AICORE_LOCKDOWN
+
+
+
+ From /proc/aicore_lockdown()
COMSIG_GLOB_CLIENT_LOGGED_IN
+
+
+
+ Called from /client/New() when a client logs in to the game: (client)
COMSIG_GLOB_DS_FIRST_LANDED
+
+
+
+ from /datum/game_mode/proc/ds_first_landed
COMSIG_GLOB_EXPANDED_WORLD_BOUNDS
+
+
+
+ sent after world.maxx and/or world.maxy are expanded: (has_exapnded_world_maxx, has_expanded_world_maxy)
COMSIG_GLOB_FUEL_PUMP_UPDATE
+
+
+
+ From /datum/controller/subsystem/hijack/fire()
COMSIG_GLOB_GENERATOR_SET_OVERLOADING
+
+
+
+ From /obj/structure/machinery/power/reactor/proc/set_overloading() : (set_overloading)
COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING
+
+
+
+ From /datum/game_mode/colonialmarines/proc/check_ground_humans()
COMSIG_GLOB_GROUNDSIDE_TELECOMM_TURNED_OFF
+
+
+
+ From /obj/structure/machinery/telecomms/proc/tcomms_shutdown(), called when the relay turns off
COMSIG_GLOB_MARINE_DEATH
+
+
+
+ from /mob/living/carbon/human/death
COMSIG_GLOB_MOB_LOGGED_IN
+
+
+
+ Called from /mob/Login() when a client logs into a mob: (mob)
COMSIG_GLOB_MODE_POSTSETUP
+
+
+
+ from /datum/game_mode/proc/post_setup
COMSIG_GLOB_MODE_PREGAME_LOBBY
+
+
+
+ from /datum/controller/subsystem/ticker/fire
COMSIG_GLOB_MODE_PRESETUP
+
+
+
+ from /datum/game_mode/proc/pre_setup
COMSIG_GLOB_NEW_Z
+
+
+
+ from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args)
COMSIG_GLOB_POST_SETUP
+
+
+
+ from /datum/controller/subsystem/ticker/PostSetup
COMSIG_GLOB_PREDATOR_ROUND_TOGGLED
+
+
+
+ From /datum/admins/proc/force_predator_round()
COMSIG_GLOB_RANDOM_EVENT
+
+
+
+ Called by (/datum/round_event_control/RunEvent).
COMSIG_GLOB_RESEARCH_LOCKDOWN
+
+
+
+ From /proc/biohazard_lockdown()
COMSIG_GLOB_SECURITY_LEVEL_CHANGED
+
+
+
+ from /proc/set_security_level
COMSIG_GLOB_VAR_EDIT
+
+
+
+ called after a successful var edit somewhere in the world: (list/args)
COMSIG_GLOB_VEHICLE_ORDERED
+
+
+
+ from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args)
COMSIG_GLOB_XENO_DEATH
+
+
+
+ from /mob/living/carbon/xenomorph/death
COMSIG_GLOB_XENO_SPAWN
+
+
+
+ from /mob/living/carbon/xenomorph/initialize
COMSIG_GLOB_YAUTJA_ARMORY_OPENED
+
+
+
+ From
+
+
+
diff --git a/code/__DEFINES/dcs/signals/signals_subsystem.html b/code/__DEFINES/dcs/signals/signals_subsystem.html
new file mode 100644
index 000000000000..4b44a419ec82
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_subsystem.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/signals_subsystem.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/signals_subsystem.dm
+
+
+
+Define Details
+COMSIG_SSRADIO_GET_AVAILABLE_TCOMMS_ZS
+
+
+
+ from /datum/controller/subsystem/radio/get_available_tcomm_zs(): (list/tcomms)
COMSIG_SUBSYSTEM_POST_INITIALIZE
+
+
+
+ Subsystem signals
+From base of datum/controller/subsystem/Initialize
+
+
+
diff --git a/code/__DEFINES/equipment.html b/code/__DEFINES/equipment.html
new file mode 100644
index 000000000000..cfa2b38db232
--- /dev/null
+++ b/code/__DEFINES/equipment.html
@@ -0,0 +1,417 @@
+
+
+
+
+
+
+ code/__DEFINES/equipment.dm - byond
+
+
+
+
+code/__DEFINES/equipment.dm
+
+
+
+
+ NOINTERACT You can't interact with it, at all. Useful when doing certain animations.
+ FPRINT takes a fingerprint
+ CONDUCT conducts electricity (metal etc.)
+ ON_BORDER 'border object'. item has priority to check when entering or leaving
+ NOBLOODY Don't want a blood overlay on this one.
+ DIRLOCK movable atom won't change direction when Moving()ing. Useful for items that have several dir states.
+ NOREACT Reagents dont' react inside this container.
+ OPENCONTAINER is an open container for chemistry purposes
+ RELAY_CLICK This is used for /obj/ that relay your clicks via handle_click(), mostly for MGs ~Art
+ ITEM_UNCATCHABLE The item can't be caught out of the air.
+ NO_NAME_OVERRIDE Used for nonstandard marine clothing to ignore 'specialty' var.
+ NO_SNOW_TYPE Used for armors or uniforms that don't have a snow/desert/etc icon state set via select_gamemode_skin (not all item types currently perform this test though).
+ CAN_BE_SYRINGED syringes can inject or drain reagents in this even if it isn't an OPENCONTAINER
+ CAN_BE_DISPENSED_INTO Chem dispenser can dispense in this even if it isn't an OPENCONTAINER
+ INITIALIZED Initialized by SSatoms.
+ ATOM_DECORATED Has run Decorate() as part of subsystem init
+ USES_HEARING Whether or not the object uses hearing
+ HTML_USE_INITAL_ICON Should we use the initial icon for display? Mostly used by overlay only objects
+ NODROP Cannot be dropped/unequipped at all, only deleted.
+ NOBLUDGEON when an item has this it produces no "X has been hit by Y with Z" message with the default handler
+ NOSHIELD weapon not affected by shield (does nothing currently)
+ DELONDROP Deletes on drop instead of falling on the floor.
+ TWOHANDED The item is twohanded.
+ WIELDED The item is wielded with both hands.
+ ITEM_ABSTRACT The item is abstract (grab, powerloader_clamp, etc)
+ ITEM_PREDATOR Specific predator item interactions.
+ MOB_LOCK_ON_EQUIP Lock this item to the mob that equips it up until permadeath
+ NO_CRYO_STORE This item deletes itself when put in cryo storage
+ ITEM_OVERRIDE_NORTHFACE For backpacks if they should have unique layering functions
+ CAN_DIG_SHRAPNEL whether activating it digs shrapnel out of the user and striking others with medical skills can dig shapnel out of other people.
+ ANIMATED_SURGICAL_TOOL whether it has an animated icon state of "[icon_state]_on" to be used during surgeries.
+ IGNITING_ITEM Has heat source but isn't 'on fire' and thus can be stored
+ FORCEDROP_CONDITIONAL Overrides NODROP in some cases (stripping)
+ SMARTGUNNER_BACKPACK_OVERRIDE Overrides smartgunner not being able to wear backpacks
+ HIDEEARS (ears means headsets and such)
+ HIDEEYES (eyes means glasses)
+ HIDELOWHAIR temporarily removes the user's facial hair overlay.
+ HIDETOPHAIR temporarily removes the user's hair overlay. Leaves facial hair.
+ HIDEALLHAIR temporarily removes the user's hair, facial and otherwise.
+ HIDEFACE Dictates whether we appear as unknown.
+ COVEREYES Covers the eyes/protects them.
+ COVERMOUTH Covers the mouth.
+ ALLOWINTERNALS mask allows internals
+ ALLOWREBREATH Mask allows to breath in really hot or really cold air.
+ BLOCKGASEFFECT blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets
+ ALLOWCPR Allows CPR even though the face is covered by a mask
+ FULL_DECAP_PROTECTION Helmet does not fall off when blocking a decapitation
+ BLOCKSHARPOBJ From /tg: prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body.
+ NOPRESSUREDMAGE This flag is used on the flags variable for SUIT and HEAD items which stop pressure damage.
+ BLOCK_KNOCKDOWN Suits only. Wearing this will stop you from being pushed over.
+ SMARTGUN_HARNESS Whether wearing this suit grants you the ability to fire a smartgun
+ VISION_IMPAIR_NONE No visual impairment
+ VISION_IMPAIR_MIN 1 tile of partial impairment
+ VISION_IMPAIR_WEAK 2 tiles of partial impairment
+ VISION_IMPAIR_MED 3 tiles of partial impairment
+ VISION_IMPAIR_HIGH 1 tile of full and 2 of partial impairment
+ VISION_IMPAIR_STRONG 2 tiles of full and 2 of partial impairment
+ VISION_IMPAIR_MAX 3 tiles of full and 2 of partial impairment (original one)
+ UNIFORM_SLEEVE_ROLLABLE can we roll the sleeves on this uniform?
+ UNIFORM_SLEEVE_CUTTABLE can the sleeves be cut?
+ UNIFORM_JACKET_REMOVABLE can the jacket be removed?
+ UNIFORM_DO_NOT_HIDE_ACCESSORIES are accessories never hidden by sleeve/jacket state? (meant for snow uniform which rolls collar instead of sleeves)
+ SLOT_BLOCK_SUIT_STORE Anything with this flag cannot be worn in suit storage, period.
+ SPACE_HELMET_MIN_COLD_PROT what min_cold_protection_temperature is set to for space-helmet quality headwear. MUST NOT BE 0.
+ SPACE_SUIT_MIN_COLD_PROT what min_cold_protection_temperature is set to for space-suit quality jumpsuits or suits. MUST NOT BE 0.
+ SPACE_SUIT_MAX_HEAT_PROT These need better heat protect, but not as good heat protect as firesuits.
+ FIRESUIT_MAX_HEAT_PROT what max_heat_protection_temperature is set to for firesuit quality headwear. MUST NOT BE 0.
+ FIRE_HELMET_MAX_HEAT_PROT for fire helmet quality items (red and white hardhats)
+ HELMET_MIN_COLD_PROT For normal helmets
+ HELMET_MAX_HEAT_PROT For normal helmets
+ ARMOR_MIN_COLD_PROT For armor
+ ARMOR_MAX_HEAT_PROT For armor
+ GLOVES_MIN_COLD_PROT For some gloves (black and)
+ GLOVES_MAX_HEAT_PROT For some gloves
+ SHOE_MIN_COLD_PROT For shoes
+ SHOE_MAX_HEAT_PROT For shoes
+ ICE_PLANET_MIN_COLD_PROT For the ice planet map protection from the elements.
+ ACCESSORY_SLOT_ARMOR_C Used for uniform armor inserts.
Define Details
+ACCESSORY_SLOT_ARMOR_C
+
+
+
+ Used for uniform armor inserts.
ALLOWCPR
+
+
+
+ Allows CPR even though the face is covered by a mask
ALLOWINTERNALS
+
+
+
+ mask allows internals
ALLOWREBREATH
+
+
+
+ Mask allows to breath in really hot or really cold air.
+ whether it has an animated icon state of "[icon_state]_on" to be used during surgeries.
ARMOR_MAX_HEAT_PROT
+
+
+
+ For armor
ARMOR_MIN_COLD_PROT
+
+
+
+ For armor
ATOM_DECORATED
+
+
+
+ Has run Decorate() as part of subsystem init
BLOCKGASEFFECT
+
+
+
+ blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets
BLOCKSHARPOBJ
+
+
+
+ From /tg: prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body.
BLOCK_KNOCKDOWN
+
+
+
+ Suits only. Wearing this will stop you from being pushed over.
CAN_BE_DISPENSED_INTO
+
+
+
+ Chem dispenser can dispense in this even if it isn't an OPENCONTAINER
CAN_BE_SYRINGED
+
+
+
+ syringes can inject or drain reagents in this even if it isn't an OPENCONTAINER
CAN_DIG_SHRAPNEL
+
+
+
+ whether activating it digs shrapnel out of the user and striking others with medical skills can dig shapnel out of other people.
CONDUCT
+
+
+
+ conducts electricity (metal etc.)
COVEREYES
+
+
+
+ Covers the eyes/protects them.
COVERMOUTH
+
+
+
+ Covers the mouth.
DELONDROP
+
+
+
+ Deletes on drop instead of falling on the floor.
DIRLOCK
+
+
+
+ movable atom won't change direction when Moving()ing. Useful for items that have several dir states.
FIRESUIT_MAX_HEAT_PROT
+
+
+
+ what max_heat_protection_temperature is set to for firesuit quality headwear. MUST NOT BE 0.
FIRE_HELMET_MAX_HEAT_PROT
+
+
+
+ for fire helmet quality items (red and white hardhats)
FORCEDROP_CONDITIONAL
+
+
+
+ Overrides NODROP in some cases (stripping)
FPRINT
+
+
+
+ takes a fingerprint
FULL_DECAP_PROTECTION
+
+
+
+ Helmet does not fall off when blocking a decapitation
GLOVES_MAX_HEAT_PROT
+
+
+
+ For some gloves
GLOVES_MIN_COLD_PROT
+
+
+
+ For some gloves (black and)
HELMET_MAX_HEAT_PROT
+
+
+
+ For normal helmets
HELMET_MIN_COLD_PROT
+
+
+
+ For normal helmets
HIDEALLHAIR
+
+
+
+ temporarily removes the user's hair, facial and otherwise.
HIDEEARS
+
+
+
+ (ears means headsets and such)
HIDEEYES
+
+
+
+ (eyes means glasses)
HIDEFACE
+
+
+
+ Dictates whether we appear as unknown.
HIDELOWHAIR
+
+
+
+ temporarily removes the user's facial hair overlay.
HIDETOPHAIR
+
+
+
+ temporarily removes the user's hair overlay. Leaves facial hair.
HTML_USE_INITAL_ICON
+
+
+
+ Should we use the initial icon for display? Mostly used by overlay only objects
ICE_PLANET_MIN_COLD_PROT
+
+
+
+ For the ice planet map protection from the elements.
IGNITING_ITEM
+
+
+
+ Has heat source but isn't 'on fire' and thus can be stored
INITIALIZED
+
+
+
+ Initialized by SSatoms.
ITEM_ABSTRACT
+
+
+
+ The item is abstract (grab, powerloader_clamp, etc)
ITEM_OVERRIDE_NORTHFACE
+
+
+
+ For backpacks if they should have unique layering functions
ITEM_PREDATOR
+
+
+
+ Specific predator item interactions.
ITEM_UNCATCHABLE
+
+
+
+ The item can't be caught out of the air.
MOB_LOCK_ON_EQUIP
+
+
+
+ Lock this item to the mob that equips it up until permadeath
NOBLOODY
+
+
+
+ Don't want a blood overlay on this one.
NOBLUDGEON
+
+
+
+ when an item has this it produces no "X has been hit by Y with Z" message with the default handler
NODROP
+
+
+
+ Cannot be dropped/unequipped at all, only deleted.
NOINTERACT
+
+
+
+ You can't interact with it, at all. Useful when doing certain animations.
NOPRESSUREDMAGE
+
+
+
+ This flag is used on the flags variable for SUIT and HEAD items which stop pressure damage.
NOREACT
+
+
+
+ Reagents dont' react inside this container.
NOSHIELD
+
+
+
+ weapon not affected by shield (does nothing currently)
NO_CRYO_STORE
+
+
+
+ This item deletes itself when put in cryo storage
NO_NAME_OVERRIDE
+
+
+
+ Used for nonstandard marine clothing to ignore 'specialty' var.
NO_SNOW_TYPE
+
+
+
+ Used for armors or uniforms that don't have a snow/desert/etc icon state set via select_gamemode_skin (not all item types currently perform this test though).
ON_BORDER
+
+
+
+ 'border object'. item has priority to check when entering or leaving
OPENCONTAINER
+
+
+
+ is an open container for chemistry purposes
RELAY_CLICK
+
+
+
+ This is used for /obj/ that relay your clicks via handle_click(), mostly for MGs ~Art
SHOE_MAX_HEAT_PROT
+
+
+
+ For shoes
SHOE_MIN_COLD_PROT
+
+
+
+ For shoes
SLOT_BLOCK_SUIT_STORE
+
+
+
+ Anything with this flag cannot be worn in suit storage, period.
SMARTGUNNER_BACKPACK_OVERRIDE
+
+
+
+ Overrides smartgunner not being able to wear backpacks
SMARTGUN_HARNESS
+
+
+
+ Whether wearing this suit grants you the ability to fire a smartgun
SPACE_HELMET_MIN_COLD_PROT
+
+
+
+ what min_cold_protection_temperature is set to for space-helmet quality headwear. MUST NOT BE 0.
SPACE_SUIT_MAX_HEAT_PROT
+
+
+
+ These need better heat protect, but not as good heat protect as firesuits.
SPACE_SUIT_MIN_COLD_PROT
+
+
+
+ what min_cold_protection_temperature is set to for space-suit quality jumpsuits or suits. MUST NOT BE 0.
TWOHANDED
+
+
+
+ The item is twohanded.
+ are accessories never hidden by sleeve/jacket state? (meant for snow uniform which rolls collar instead of sleeves)
+ can the jacket be removed?
+ can the sleeves be cut?
+ can we roll the sleeves on this uniform?
USES_HEARING
+
+
+
+ Whether or not the object uses hearing
VISION_IMPAIR_HIGH
+
+
+
+ 1 tile of full and 2 of partial impairment
VISION_IMPAIR_MAX
+
+
+
+ 3 tiles of full and 2 of partial impairment (original one)
VISION_IMPAIR_MED
+
+
+
+ 3 tiles of partial impairment
VISION_IMPAIR_MIN
+
+
+
+ 1 tile of partial impairment
VISION_IMPAIR_NONE
+
+
+
+ No visual impairment
VISION_IMPAIR_STRONG
+
+
+
+ 2 tiles of full and 2 of partial impairment
VISION_IMPAIR_WEAK
+
+
+
+ 2 tiles of partial impairment
WIELDED
+
+
+
+ The item is wielded with both hands.
+
+
+
diff --git a/code/__DEFINES/flags.html b/code/__DEFINES/flags.html
new file mode 100644
index 000000000000..ce2e51d68972
--- /dev/null
+++ b/code/__DEFINES/flags.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ code/__DEFINES/flags.dm - byond
+
+
+
+
+code/__DEFINES/flags.dm
+
+
+
+Define Details
+ALL_CARDINALS
+
+
+
+ All the cardinal direction bitflags.
EMOTE_AUDIBLE
+
+
+
+ Is the emote audible
EMOTE_IMPORTANT
+
+
+
+ Is it an emote that should be shown regardless of blindness/deafness
EMOTE_NO_MESSAGE
+
+
+
+ Does the emote not have a message?
EMOTE_VISIBLE
+
+
+
+ Is the emote visible
HAZARD_JOE_EMOTE
+
+
+
+ Hazard Joe emote
WORKING_JOE_EMOTE
+
+
+
+ Working Joe emote
+
+
+
diff --git a/code/__DEFINES/fonts.html b/code/__DEFINES/fonts.html
new file mode 100644
index 000000000000..724ff7722337
--- /dev/null
+++ b/code/__DEFINES/fonts.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/fonts.dm - byond
+
+
+
+
+code/__DEFINES/fonts.dm
+
+
+
+Define Details
+EMOJI_SET
+
+
+
+ Emoji icon set
+
+
+
diff --git a/code/__DEFINES/guns.html b/code/__DEFINES/guns.html
new file mode 100644
index 000000000000..27a8c978e25f
--- /dev/null
+++ b/code/__DEFINES/guns.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__DEFINES/guns.dm - byond
+
+
+
+
+code/__DEFINES/guns.dm
+
+
+
+Define Details
+COUNCIL_CO_GUNS
+
+
+
+ Council CO special weapons options
CO_GUNS
+
+
+
+ Base CO special weapons options
+
+
+
diff --git a/code/__DEFINES/hud.html b/code/__DEFINES/hud.html
new file mode 100644
index 000000000000..4344de36f000
--- /dev/null
+++ b/code/__DEFINES/hud.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__DEFINES/hud.dm - byond
+
+
+
+
+code/__DEFINES/hud.dm
+
+
+
+Define Details
+APPEARANCE_UI
+
+
+
+ Used for HUD objects
APPEARANCE_UI_IGNORE_ALPHA
+
+
+
+ Used for progress bars and chat messages
+
+
+
diff --git a/code/__DEFINES/human.html b/code/__DEFINES/human.html
new file mode 100644
index 000000000000..448c880edaf5
--- /dev/null
+++ b/code/__DEFINES/human.html
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+ code/__DEFINES/human.dm - byond
+
+
+
+
+code/__DEFINES/human.dm
+
+
+
+Define Details
+BACK_FRONT_LAYER
+
+
+
+ For backpacks when mob is facing north
BURST_LAYER
+
+
+
+ Chestburst overlay
EFFECTS_LAYER
+
+
+
+ If you're hit by an acid DoT
FIRE_LAYER
+
+
+
+ If you're on fire
FLAY_LAYER
+
+
+
+ For use by Hunter Flay
HEADSHOT_LAYER
+
+
+
+ Unrevivable headshot overlays, suicide/execution.
HEMOSTAT_MIN_DURATION
+
+
+
+ OLD SURGERY DEFINES, USED BY AUTODOC
HUMAN_BLOODTYPES
+
+
+
+ HUMAN BLOODTYPES
HUMAN_CRIT_MAX_OXYLOSS
+
+
+
+ The amount of damage you'll get when in critical condition. We want this to be a 5 minute deal = 300s. There are 50HP to get through, so (1/6)*last_tick_duration per second. Breaths however only happen every 3 ticks.
HUMAN_MAX_OXYLOSS
+
+
+
+ Defines how much oxyloss humans can get per tick. A tile with no air at all (such as space) applies this value, otherwise it's a percentage of it.
HUMAN_MAX_PALENESS
+
+
+
+ this is added to human skin tone to get value of pale_max variable
HUMAN_STRIP_DELAY
+
+
+
+ takes 40ds = 4s to strip someone.
LIMB_AMPUTATED
+
+
+
+ limb was amputated cleanly or destroyed limb was cleaned up, thus causing no pain
LIMB_DESTROYED
+
+
+
+ limb is missing
LIMB_MUTATED
+
+
+
+ limb is deformed by mutations
LIMB_ORGANIC
+
+
+
+ LIMB FLAGS
LIMB_SPLINTED_INDESTRUCTIBLE
+
+
+
+ Splint is indestructible
LIMB_SYNTHSKIN
+
+
+
+ not completely robot, but pseudohuman
LIMB_UNCALIBRATED_PROSTHETIC
+
+
+
+ A prosthetic that's been attached to the body but not connected to the brain.
MEDICAL_LAYER
+
+
+
+ For splint and gauze overlays
TAIL_LAYER
+
+
+
+ bs12 specific. this hack is probably gonna come back to haunt me
TARGETED_LAYER
+
+
+
+ for target sprites when held at gun point, and holo cards.
WOUNDS_ALREADY_TREATED
+
+
+
+ Relevant wounds exist, but they're already bandaged.
WOUNDS_BANDAGED
+
+
+
+ Relevant wounds exist, bandaged them.
WOUND_BANDAGED
+
+
+
+ WOUND DEFINES
+
+
+
diff --git a/code/__DEFINES/job.html b/code/__DEFINES/job.html
new file mode 100644
index 000000000000..69bd6dacbf1d
--- /dev/null
+++ b/code/__DEFINES/job.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ code/__DEFINES/job.dm - byond
+
+
+
+
+code/__DEFINES/job.dm
+
+
+
+
+ JOB_OBSERVER For monthly time tracking
+ JOB_ERT_GRUNT_LIST For denying certain traits being applied to people. ie. bad leg
+'Grunt' lists are for people who wouldn't logically get the bad leg trait, ie. UPP marine counterparts.
Define Details
+JOB_ERT_GRUNT_LIST
+
+
+
+ For denying certain traits being applied to people. ie. bad leg
+'Grunt' lists are for people who wouldn't logically get the bad leg trait, ie. UPP marine counterparts.
JOB_OBSERVER
+
+
+
+ For monthly time tracking
+
+
+
diff --git a/code/__DEFINES/layers.html b/code/__DEFINES/layers.html
new file mode 100644
index 000000000000..294e6f3b2779
--- /dev/null
+++ b/code/__DEFINES/layers.html
@@ -0,0 +1,287 @@
+
+
+
+
+
+
+ code/__DEFINES/layers.dm - byond
+
+
+
+
+code/__DEFINES/layers.dm
+
+
+
+
+ UNDERFLOOR_OBJ_LAYER bluespace beacon, navigation beacon, etc
+ CATWALK_LAYER catwalk overlay of /turf/open/floor/plating/plating_catwalk
+ WEED_LAYER Alien weeds and node layer
+ ABOVE_WEED_LAYER Over weeds, such as blood
+ ATMOS_DEVICE_LAYER vents, connector ports, atmos devices that should be above pipe layer.
+ FIREDOOR_OPEN_LAYER Right under poddoors
+ PODDOOR_OPEN_LAYER Under doors and virtually everything that's "above the floor"
+ CONVEYOR_LAYER conveyor belt
+ DOOR_OPEN_LAYER Under all objects if opened. 2.85 due to tables being at 2.8
+ HATCH_LAYER For hatches on the floor.
+ BELOW_OBJ_LAYER just below all items
+ LOWER_ITEM_LAYER for items that should be at the bottom of the pile of items
+ BETWEEN_OBJECT_ITEM_LAYER A layer above objects (like structures) but below items
+ ITEM_LAYER The layer on which items lay
+ UPPER_ITEM_LAYER for items that should be at the top of the pile of items
+ ABOVE_OBJ_LAYER just above all items
+ DOOR_CLOSED_LAYER Above most items if closed
+ FIREDOOR_CLOSED_LAYER Right under poddoors
+ PODDOOR_CLOSED_LAYER Above doors which are at 3.1
+ WINDOW_LAYER above closed doors
+ WALL_OBJ_LAYER posters on walls
+ POWERLOADER_LAYER above windows and wall mounts so the top of the loader doesn't clip.
+ ABOVE_LYING_MOB_LAYER drone (not the xeno)
+ BIG_XENO_LAYER above ABOVE_MOB_LAYER because it's used for shallow river overlays which clips with the top of large xeno sprites.
+ ABOVE_XENO_LAYER for xenos to hide behind bushes and tall grass
+ FACEHUGGER_LAYER For facehuggers
+ WEATHER_LAYER For WEATHER
+ BELOW_FULLSCREEN_LAYER blip from motion detector
+ FULLSCREEN_WEATHER_LAYER Weather
+ FULLSCREEN_IMPAIRED_LAYER visual impairment from wearing welding helmet, etc.
+ FULLSCREEN_FLASH_LAYER flashed
+ FULLSCREEN_DAMAGE_LAYER red circles when hurt
+ FULLSCREEN_BLIND_LAYER unconscious
+ FULLSCREEN_PAIN_LAYER pain flashes
+ FULLSCREEN_VULTURE_SCOPE_LAYER Vulture sniper/spotter scope
+ FULLSCREEN_CRIT_LAYER in critical
+ AREAS_LAYER for areas, so they appear above everything else on map file.
+ 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 layer.
+ EMISSIVE_LAYER_UNBLOCKABLE The layer you should use if you really don't want an emissive overlay to be blocked.
+ BALLOON_CHAT_PLANE Plane for balloon text (text that fades up)
+ TYPING_LAYER Bubble for typing indicators
+ LOWEST_EVER_PLANE NEVER HAVE ANYTHING BELOW THIS PLANE ADJUST IF YOU NEED MORE SPACE
+ FLOOR_PLANE Floor plane, self explanatory. Used for Ambient Occlusion filter
+ GAME_PLANE Game Plane, where most of the game objects reside
+ ABOVE_GAME_PLANE Above Game Plane. For things which are above game objects, but below screen effects.
+ ROOF_PLANE Roof plane, disappearing when entering buildings
+ BLACKNESS_PLANE To keep from conflicts with SEE_BLACKNESS internals
+ LIGHTING_PLANE --------------- FULLSCREEN RUNECHAT BUBBLES ------------
+ RUNECHAT_PLANE Popup Chat Messages
+ HUD_PLANE HUD layer defines
+ PLANE_MASTERS_GAME Plane master controller keys
Define Details
+ABOVE_GAME_PLANE
+
+
+
+ Above Game Plane. For things which are above game objects, but below screen effects.
ABOVE_LYING_MOB_LAYER
+
+
+
+ drone (not the xeno)
ABOVE_OBJ_LAYER
+
+
+
+ just above all items
ABOVE_WEED_LAYER
+
+
+
+ Over weeds, such as blood
ABOVE_XENO_LAYER
+
+
+
+ for xenos to hide behind bushes and tall grass
AREAS_LAYER
+
+
+
+ for areas, so they appear above everything else on map file.
ATMOS_DEVICE_LAYER
+
+
+
+ vents, connector ports, atmos devices that should be above pipe layer.
BALLOON_CHAT_PLANE
+
+
+
+ Plane for balloon text (text that fades up)
BELOW_FULLSCREEN_LAYER
+
+
+
+ blip from motion detector
BELOW_OBJ_LAYER
+
+
+
+ just below all items
BETWEEN_OBJECT_ITEM_LAYER
+
+
+
+ A layer above objects (like structures) but below items
BIG_XENO_LAYER
+
+
+
+ above ABOVE_MOB_LAYER because it's used for shallow river overlays which clips with the top of large xeno sprites.
BLACKNESS_PLANE
+
+
+
+ To keep from conflicts with SEE_BLACKNESS internals
CATWALK_LAYER
+
+
+
+ catwalk overlay of /turf/open/floor/plating/plating_catwalk
CONVEYOR_LAYER
+
+
+
+ conveyor belt
DOOR_CLOSED_LAYER
+
+
+
+ Above most items if closed
DOOR_OPEN_LAYER
+
+
+
+ Under all objects if opened. 2.85 due to tables being at 2.8
EMISSIVE_LAYER_UNBLOCKABLE
+
+
+
+ The layer you should use if you really don't want an emissive overlay to be blocked.
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 layer.
FACEHUGGER_LAYER
+
+
+
+ For facehuggers
FIREDOOR_CLOSED_LAYER
+
+
+
+ Right under poddoors
FIREDOOR_OPEN_LAYER
+
+
+
+ Right under poddoors
FLOOR_PLANE
+
+
+
+ Floor plane, self explanatory. Used for Ambient Occlusion filter
FULLSCREEN_BLIND_LAYER
+
+
+
+ unconscious
FULLSCREEN_CRIT_LAYER
+
+
+
+ in critical
FULLSCREEN_DAMAGE_LAYER
+
+
+
+ red circles when hurt
FULLSCREEN_FLASH_LAYER
+
+
+
+ flashed
FULLSCREEN_IMPAIRED_LAYER
+
+
+
+ visual impairment from wearing welding helmet, etc.
FULLSCREEN_PAIN_LAYER
+
+
+
+ pain flashes
FULLSCREEN_VULTURE_SCOPE_LAYER
+
+
+
+ Vulture sniper/spotter scope
FULLSCREEN_WEATHER_LAYER
+
+
+
+ Weather
GAME_PLANE
+
+
+
+ Game Plane, where most of the game objects reside
HATCH_LAYER
+
+
+
+ For hatches on the floor.
HUD_PLANE
+
+
+
+ HUD layer defines
ITEM_LAYER
+
+
+
+ The layer on which items lay
LIGHTING_PLANE
+
+
+
+ --------------- FULLSCREEN RUNECHAT BUBBLES ------------
LOWER_ITEM_LAYER
+
+
+
+ for items that should be at the bottom of the pile of items
LOWEST_EVER_PLANE
+
+
+
+ NEVER HAVE ANYTHING BELOW THIS PLANE ADJUST IF YOU NEED MORE SPACE
PLANE_MASTERS_GAME
+
+
+
+ Plane master controller keys
PODDOOR_CLOSED_LAYER
+
+
+
+ Above doors which are at 3.1
PODDOOR_OPEN_LAYER
+
+
+
+ Under doors and virtually everything that's "above the floor"
POWERLOADER_LAYER
+
+
+
+ above windows and wall mounts so the top of the loader doesn't clip.
ROOF_PLANE
+
+
+
+ Roof plane, disappearing when entering buildings
RUNECHAT_PLANE
+
+
+
+ Popup Chat Messages
TYPING_LAYER
+
+
+
+ Bubble for typing indicators
UNDERFLOOR_OBJ_LAYER
+
+
+
+ bluespace beacon, navigation beacon, etc
UPPER_ITEM_LAYER
+
+
+
+ for items that should be at the top of the pile of items
WALL_OBJ_LAYER
+
+
+
+ posters on walls
WEATHER_LAYER
+
+
+
+ For WEATHER
WEED_LAYER
+
+
+
+ Alien weeds and node layer
WINDOW_LAYER
+
+
+
+ above closed doors
+
+
+
diff --git a/code/__DEFINES/lighting.html b/code/__DEFINES/lighting.html
new file mode 100644
index 000000000000..1a31479d5856
--- /dev/null
+++ b/code/__DEFINES/lighting.html
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+ code/__DEFINES/lighting.dm - byond
+
+
+
+
+code/__DEFINES/lighting.dm
+
+
+
+
+ NO_LIGHT_SUPPORT Object doesn't use any of the light systems. Should be changed to add a light source to the object.
+ STATIC_LIGHT Light made with the lighting datums, applying a matrix.
+ MOVABLE_LIGHT Light made by masking the lighting darkness plane.
+ HYBRID_LIGHT A mix of the above, cheaper on moving items than dynamic, but heavier on rendering than movable
+ DIRECTIONAL_LIGHT Pointy light
+ LIGHTING_ICON_BIG icon used for lighting shading effects
+ LIGHTING_PLANE_ALPHA_YAUTJA The dim natural vision of Yautja
+ EMISSIVE_BLOCK_GENERIC Uses vis_overlays to leverage caching so that very few new items need to be made for the overlay. For anything that doesn't change outline or opaque area much or at all.
+ 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 matrix applied to all emissive overlays. Should be solely dependent on alpha and not have RGB overlap with EM_BLOCK_COLOR .
+ EM_BLOCK_COLOR The color matrix applied to all emissive blockers. Should be solely dependent on alpha and not have RGB overlap with EMISSIVE_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 independent 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.
+ LIGHTING_SOFT_THRESHOLD If the max of the lighting lumcounts of each spectrum drops below this, disable luminosity on the lighting objects. Set to zero to disable soft lighting. Luminosity changes then work if it's lit at all.
Define Details
+DIRECTIONAL_LIGHT
+
+
+
+ Pointy light
EMISSIVE_APPEARANCE_FLAGS
+
+
+
+ A set of appearance flags applied to all emissive and emissive blocker overlays.
EMISSIVE_BLOCK_GENERIC
+
+
+
+ Uses vis_overlays to leverage caching so that very few new items need to be made for the overlay. For anything that doesn't change outline or opaque area much or at all.
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 matrix applied to all emissive overlays. Should be solely dependent on alpha and not have RGB overlap with EM_BLOCK_COLOR .
EM_BLOCK_COLOR
+
+
+
+ The color matrix applied to all emissive blockers. Should be solely dependent on alpha and not have RGB overlap with EMISSIVE_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 independent 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
HYBRID_LIGHT
+
+
+
+ A mix of the above, cheaper on moving items than dynamic, but heavier on rendering than movable
LIGHTING_ICON_BIG
+
+
+
+ icon used for lighting shading effects
LIGHTING_PLANE_ALPHA_YAUTJA
+
+
+
+ The dim natural vision of Yautja
LIGHTING_SOFT_THRESHOLD
+
+
+
+ If the max of the lighting lumcounts of each spectrum drops below this, disable luminosity on the lighting objects. Set to zero to disable soft lighting. Luminosity changes then work if it's lit at all.
MOVABLE_LIGHT
+
+
+
+ Light made by masking the lighting darkness plane.
NO_LIGHT_SUPPORT
+
+
+
+ Object doesn't use any of the light systems. Should be changed to add a light source to the object.
PARSE_LIGHT_COLOR
+
+
+
+
+ Parse the hexadecimal color into lumcounts of each perspective.
STATIC_LIGHT
+
+
+
+ Light made with the lighting datums, applying a matrix.
+
+
+
diff --git a/code/__DEFINES/maps.html b/code/__DEFINES/maps.html
new file mode 100644
index 000000000000..4d196d1d5851
--- /dev/null
+++ b/code/__DEFINES/maps.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+ code/__DEFINES/maps.dm - byond
+
+
+
+
+code/__DEFINES/maps.dm
+
+
+
+
+ ZTRAIT_BOMBCAP_MULTIPLIER number - bombcap is multiplied by this before being applied to bombs
+ ZTRAIT_GRAVITY number - default gravity if there's no gravity generators or area overrides present
+ UNAFFECTED UNAFFECTED if absent - no space transitions
+ SELFLOOPING SELFLOOPING - space transitions always self-loop
+ CROSSLINKED CROSSLINKED - mixed in with the cross-linked space pool
+ RESERVED_TURF_TYPE Reserved/Transit turf type
+What the turf is when not being used
+ PLACEMENT_TRIES How many times we try to fit the ruin somewhere until giving up (really should just swap to some packing algo)
+ SPACE_KEY A map key that corresponds to being one exclusively for Space.
Define Details
+CROSSLINKED
+
+
+
+ CROSSLINKED - mixed in with the cross-linked space pool
PLACEMENT_TRIES
+
+
+
+ How many times we try to fit the ruin somewhere until giving up (really should just swap to some packing algo)
RESERVED_TURF_TYPE
+
+
+
+ Reserved/Transit turf type
+What the turf is when not being used
SELFLOOPING
+
+
+
+ SELFLOOPING - space transitions always self-loop
SPACE_KEY
+
+
+
+ A map key that corresponds to being one exclusively for Space.
UNAFFECTED
+
+
+
+ UNAFFECTED if absent - no space transitions
ZTRAIT_BOMBCAP_MULTIPLIER
+
+
+
+ number - bombcap is multiplied by this before being applied to bombs
ZTRAIT_GRAVITY
+
+
+
+ number - default gravity if there's no gravity generators or area overrides present
+
+
+
diff --git a/code/__DEFINES/math_physics.html b/code/__DEFINES/math_physics.html
new file mode 100644
index 000000000000..debbd00d4896
--- /dev/null
+++ b/code/__DEFINES/math_physics.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/math_physics.dm - byond
+
+
+
+
+code/__DEFINES/math_physics.dm
+
+
+
+Define Details
+GAS_CRITICAL_TEMPERATURE
+
+
+
+ K. The critical point temperature for air.
+
+
+
diff --git a/code/__DEFINES/minimap.html b/code/__DEFINES/minimap.html
new file mode 100644
index 000000000000..02722824b12e
--- /dev/null
+++ b/code/__DEFINES/minimap.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/minimap.dm - byond
+
+
+
+
+code/__DEFINES/minimap.dm
+
+
+
+
+ MINIMAP_SCALE Converts the overworld x and y to minimap x and y values
Define Details
+MINIMAP_SCALE
+
+
+
+ Converts the overworld x and y to minimap x and y values
+
+
+
diff --git a/code/__DEFINES/misc.html b/code/__DEFINES/misc.html
new file mode 100644
index 000000000000..3e595cb24692
--- /dev/null
+++ b/code/__DEFINES/misc.html
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+ code/__DEFINES/misc.dm - byond
+
+
+
+
+code/__DEFINES/misc.dm
+
+
+
+Define Details
+AREA_ALLOW_XENO_JOIN
+
+
+
+ xenos can join whilst in this area (for admin zlevel)
AREA_AVOID_BIOSCAN
+
+
+
+ used to make mobs skip bioscans
AREA_CONTAINMENT
+
+
+
+ Flags the area as a containment area
AREA_NOTUNNEL
+
+
+
+ makes it so the area can not be tunneled to
AREA_UNWEEDABLE
+
+
+
+ Flags the area as permanently unweedable. Still requires is_resin_allowed = FALSE
BEHAVIOR_IMMOBILE
+
+
+
+ You cannot move the person while this action is being performed
CELLS
+
+
+
+ Amount of cells per row/column in grid
CELLSIZE
+
+
+
+ Size of a cell in pixel
COOLDOWN_BRACER_CHARGE
+
+
+
+ Cooldown for pred recharge
DA_DEFAULT_NUM_TICKS
+
+
+
+ Default number of ticks for do_after
INTERRUPT_DIFF_INTENT
+
+
+
+ By default not in INTERRUPT_ALL (too niche) (Doesn't actually exist.)
INTERRUPT_DIFF_SELECT_ZONE
+
+
+
+ By default not in INTERRUPT_ALL (too niche)
INTERRUPT_DIFF_TURF
+
+
+
+ Might want to consider adding a separate flag for DIFF_COORDS
INTERRUPT_LCLICK
+
+
+
+ Mainly for boiler globs
INTERRUPT_OUT_OF_RANGE
+
+
+
+ By default not in INTERRUPT_ALL, should not be used in conjunction with INTERRUPT_DIFF_TURF
INTERRUPT_RESIST
+
+
+
+ Allows timed actions to be cancelled upon hitting resist, on by default
INTERRUPT_UNCONSCIOUS
+
+
+
+ Relevant to stat var for mobs
SIZE_HUGE
+
+
+
+ Using Large does the same job
SIZE_LARGE
+
+
+
+ Size of rifles, SMGs
SIZE_MEDIUM
+
+
+
+ Backpacks, belts. Size of pistols, general magazines
SIZE_SMALL
+
+
+
+ Armor, pouch slots/pockets
SIZE_TINY
+
+
+
+ Helmets
get_area
+
+
+
+
+ Get the ultimate area of A
, similarly to get_turf .
+Use instead of A.loc.loc
.
+
+
+
diff --git a/code/__DEFINES/mobs.html b/code/__DEFINES/mobs.html
new file mode 100644
index 000000000000..ec24064968d4
--- /dev/null
+++ b/code/__DEFINES/mobs.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ code/__DEFINES/mobs.dm - byond
+
+
+
+
+code/__DEFINES/mobs.dm
+
+
+
+Define Details
+GLOBAL_STATUS_MULTIPLIER
+
+
+
+ Multiplier for Stun/KD/KO/etc durations in new backend, due to old system being based on life ticks
LYING_DOWN
+
+
+
+ Mob is lying down, usually associated with lying_angle values of 90 or 270.
MOBILITY_LIEDOWN
+
+
+
+ can lie down
MOBILITY_MOVE
+
+
+
+ can move
MOBILITY_REST
+
+
+
+ can rest
MOBILITY_STAND
+
+
+
+ can, and is, standing up
NO_BUCKLE_LYING
+
+
+
+ Possible value of /atom/movable/buckle_lying . If set to a different (positive-or-zero) value than this, the buckling thing will force a lying angle on the buckled.
STANDING_UP
+
+
+
+ Mob is standing up, usually associated with lying_angle value of 0.
+
+
+
diff --git a/code/__DEFINES/mode.html b/code/__DEFINES/mode.html
new file mode 100644
index 000000000000..118deb5df424
--- /dev/null
+++ b/code/__DEFINES/mode.html
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+ code/__DEFINES/mode.dm - byond
+
+
+
+
+code/__DEFINES/mode.dm
+
+
+
+Define Details
+APC_SCORE_INTERVAL
+
+
+
+ Misc. defines for objectives
MARINE_GEAR_SCALING_NORMAL
+
+
+
+ Number of weighted marine players for 1 gear_scale. gear_scale is clamped to 1 minimum
MODE_BLOOD_OPTIMIZATION
+
+
+
+ Blood spawns without a dry timer, and do not cause footprints
MODE_HARDCORE_PERMA
+
+
+
+ Toggles Hardcore for all marines, meaning they instantly perma upon death
MODE_LZ_PROTECTION
+
+
+
+ Prevents the LZ from being mortared
MODE_NO_ATTACK_DEAD
+
+
+
+ People will not be able to shoot at corpses
MODE_NO_COMBAT_CAS
+
+
+
+ Prevents POs and DCCs from creating combat CAS equipment
MODE_NO_SNIPER_SENTRY
+
+
+
+ Upgrade kits will no longer allow you to select long-range upgrades
MODE_NO_STRIPDRAG_ENEMY
+
+
+
+ Can't strip or drag dead enemies
MODE_SHIPSIDE_SD
+
+
+
+ Toggles whether Predators can big SD when not on the groundmap
+ Can strip enemy, but not their boots, uniform, armor, helmet, or ID
MODE_STRONG_DEFIBS
+
+
+
+ Defibs Ignore Armor
WHITELIST_COMMANDER_COLONEL
+
+
+
+ Former CO senator/whitelist overseer award
WHITELIST_COMMANDER_COUNCIL_LEGACY
+
+
+
+ Old holders of COMMANDER_COUNCIL for 3 months
WHITELIST_MENTOR
+
+
+
+ Senior Enlisted Advisor, auto granted by R_MENTOR
WHITELIST_SYNTHETIC_COUNCIL_LEGACY
+
+
+
+ Old holders of SYNTHETIC_COUNCIL for 3 months
WHITELIST_YAUTJA_COUNCIL_LEGACY
+
+
+
+ Old holders of YAUTJA_COUNCIL for 3 months
WHITELIST_YAUTJA_LEGACY
+
+
+
+ Old holders of YAUTJA_ELDER
+
+
+
diff --git a/code/__DEFINES/nightmare.html b/code/__DEFINES/nightmare.html
new file mode 100644
index 000000000000..f91f7bd8b6f7
--- /dev/null
+++ b/code/__DEFINES/nightmare.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ code/__DEFINES/nightmare.dm - byond
+
+
+
+
+code/__DEFINES/nightmare.dm
+
+
+
+Define Details
+NIGHTMARE_CTX_GLOBAL
+
+
+
+ Global Nightmare context: Performs any global game setup
NIGHTMARE_CTX_GROUND
+
+
+
+ Ground Map Context: Performs actions relevant to the ground map
NIGHTMARE_CTX_SHIP
+
+
+
+ Ship Map Context: Performs actions relevant to the ship map
NIGHTMARE_TASKFLAG_DISABLED
+
+
+
+ This task can not be executed
NIGHTMARE_TASKFLAG_ONESHOT
+
+
+
+ This task can only be executed once
+
+
+
diff --git a/code/__DEFINES/objects.html b/code/__DEFINES/objects.html
new file mode 100644
index 000000000000..8e07030ac197
--- /dev/null
+++ b/code/__DEFINES/objects.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ code/__DEFINES/objects.dm - byond
+
+
+
+
+code/__DEFINES/objects.dm
+
+
+
+
+ TOUCH Reaction type from touching it
+ INGEST Reaction type from eating it
+ OBJ_ORGANIC Marks an object as organic. Used for alien structures and any other organic material
+ OBJ_NO_HELMET_BAND Makes the item not spawn a band around the helmet if it's used as a helmet garb
+ OBJ_IS_HELMET_GARB Marks the object as helmet garb
+ OBJ_UNIQUE_RENAME can you customize the description/name of the thing?
Define Details
+INGEST
+
+
+
+ Reaction type from eating it
OBJ_IS_HELMET_GARB
+
+
+
+ Marks the object as helmet garb
OBJ_NO_HELMET_BAND
+
+
+
+ Makes the item not spawn a band around the helmet if it's used as a helmet garb
OBJ_ORGANIC
+
+
+
+ Marks an object as organic. Used for alien structures and any other organic material
OBJ_UNIQUE_RENAME
+
+
+
+ can you customize the description/name of the thing?
TOUCH
+
+
+
+ Reaction type from touching it
+
+
+
diff --git a/code/__DEFINES/paygrade_defs/civilian.html b/code/__DEFINES/paygrade_defs/civilian.html
new file mode 100644
index 000000000000..4d50e27ccc20
--- /dev/null
+++ b/code/__DEFINES/paygrade_defs/civilian.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ code/__DEFINES/paygrade_defs/civilian.dm - byond
+
+
+
+
+code/__DEFINES/paygrade_defs/civilian.dm
+
+
+
+
+ PAY_SHORT_CIV CIV, Civilian
+ PAY_SHORT_CNUR CNUR, Nurse
+ PAY_SHORT_CDOC CDOC, Doctor
+ PAY_SHORT_CCMO CCMO, Professor
+ PAY_SHORT_CREP CREP, Representative
+ PAY_SHORT_SYN SYN, Synthetic
+ PAY_SHORT_OPR OPR, Operator
+ PAY_SHORT_CDNM CDNM, Operative (intended for codenamed people IE Operative Theta)
+ PAY_SHORT_CPO CPO, Officer
+ PAY_SHORT_CSPO CSPO, Senior Officer
+ PAY_SHORT_REB REB, Rebel
+ PAY_SHORT_REBC REBC, Rebel Commander "REBC"
Define Details
+PAY_SHORT_CCMO
+
+
+
+ CCMO, Professor
PAY_SHORT_CDNM
+
+
+
+ CDNM, Operative (intended for codenamed people IE Operative Theta)
PAY_SHORT_CDOC
+
+
+
+ CDOC, Doctor
PAY_SHORT_CIV
+
+
+
+ CIV, Civilian
PAY_SHORT_CNUR
+
+
+
+ CNUR, Nurse
PAY_SHORT_CPO
+
+
+
+ CPO, Officer
PAY_SHORT_CREP
+
+
+
+ CREP, Representative
PAY_SHORT_CSPO
+
+
+
+ CSPO, Senior Officer
PAY_SHORT_OPR
+
+
+
+ OPR, Operator
PAY_SHORT_REB
+
+
+
+ REB, Rebel
PAY_SHORT_REBC
+
+
+
+ REBC, Rebel Commander "REBC"
PAY_SHORT_SYN
+
+
+
+ SYN, Synthetic
+
+
+
diff --git a/code/__DEFINES/paygrade_defs/cmb.html b/code/__DEFINES/paygrade_defs/cmb.html
new file mode 100644
index 000000000000..083b460f5307
--- /dev/null
+++ b/code/__DEFINES/paygrade_defs/cmb.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ code/__DEFINES/paygrade_defs/cmb.dm - byond
+
+
+
+
+code/__DEFINES/paygrade_defs/cmb.dm
+
+
+
+Define Details
+PAY_SHORT_CMBD
+
+
+
+ CMBD, CMB Deputy
PAY_SHORT_CMBM
+
+
+
+ CMBM, CMB Marshal
PAY_SHORT_CMBS
+
+
+
+ CMBS, CMB Synthetic
PAY_SHORT_ICCA
+
+
+
+ ICCA, Interstellar Commerce Commission Agent
PAY_SHORT_ICCL
+
+
+
+ ICCL, Interstellar Commerce Commission Corporate Liaison
PAY_SHORT_IHRO
+
+
+
+ IHRO, Interstellar Human Rights Observer
+
+
+
diff --git a/code/__DEFINES/paygrade_defs/dutch.html b/code/__DEFINES/paygrade_defs/dutch.html
new file mode 100644
index 000000000000..0108ca5db65d
--- /dev/null
+++ b/code/__DEFINES/paygrade_defs/dutch.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ code/__DEFINES/paygrade_defs/dutch.dm - byond
+
+
+
+
+code/__DEFINES/paygrade_defs/dutch.dm
+
+
+
+Define Details
+PAY_SHORT_DTC
+
+
+
+ DTC, Dutch's Dozen Standard Mercenary
PAY_SHORT_DTCA
+
+
+
+ DTCA, Arnold
PAY_SHORT_DTCF
+
+
+
+ DTCF, Dutch's Dozen Flamethrower Specialist
PAY_SHORT_DTCM
+
+
+
+ DTCM, Dutch's Dozen Medic
PAY_SHORT_DTCMG
+
+
+
+ DTCMG, Dutch's Dozen Machinegunner
+
+
+
diff --git a/code/__DEFINES/paygrade_defs/marines.html b/code/__DEFINES/paygrade_defs/marines.html
new file mode 100644
index 000000000000..998a42ac4430
--- /dev/null
+++ b/code/__DEFINES/paygrade_defs/marines.html
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+ code/__DEFINES/paygrade_defs/marines.dm - byond
+
+
+
+
+code/__DEFINES/paygrade_defs/marines.dm
+
+
+
+
+ PAY_SHORT_ME1 ME1, Private
+ PAY_SHORT_ME2 ME2, Private First Class
+ PAY_SHORT_ME3 ME3, Lance Corporal
+ PAY_SHORT_ME4 ME4, Corporal
+ PAY_SHORT_ME5 ME5, Sergeant
+ PAY_SHORT_ME6 ME6, Staff Sergeant
+ PAY_SHORT_ME7 ME7, Gunnery Sergeant
+ PAY_SHORT_ME8 ME8, Master Sergeant
+ PAY_SHORT_ME8E ME8E, First Sergeant
+ PAY_SHORT_ME9 ME9, Master Gunnery Sergeant
+ PAY_SHORT_ME9E ME9E, Sergeant Major
+ PAY_SHORT_ME9C ME9C, Sergeant Major of the Colonial Marine Corps
+ PAY_SHORT_MO1 MO1, Second Lieutenant
+ PAY_SHORT_MO2 MO2, First Lieutenant
+ PAY_SHORT_MO3 MO3, Captain
+ PAY_SHORT_MO4 MO4, Major
+ PAY_SHORT_MO5 MO5, Lieutenant Colonel
+ PAY_SHORT_MO6 MO6, Colonel
+ PAY_SHORT_MO6E MO6E, Senior Colonel
+ PAY_SHORT_MO6C MO6C, Division Colonel
+ PAY_SHORT_MO7 MO7, Brigadier General
+ PAY_SHORT_MO8 MO8, Major General
+ PAY_SHORT_MO9 MO9, Lieutenant General
+ PAY_SHORT_MO10 MO10, General
+ PAY_SHORT_MO10C MO10C, Assistant Commandant of the Marine Corps
+ PAY_SHORT_MO10S MO10S, Commandant of the Marine Corps
Define Details
+PAY_SHORT_ME1
+
+
+
+ ME1, Private
PAY_SHORT_ME2
+
+
+
+ ME2, Private First Class
PAY_SHORT_ME3
+
+
+
+ ME3, Lance Corporal
PAY_SHORT_ME4
+
+
+
+ ME4, Corporal
PAY_SHORT_ME5
+
+
+
+ ME5, Sergeant
PAY_SHORT_ME6
+
+
+
+ ME6, Staff Sergeant
PAY_SHORT_ME7
+
+
+
+ ME7, Gunnery Sergeant
PAY_SHORT_ME8
+
+
+
+ ME8, Master Sergeant
PAY_SHORT_ME8E
+
+
+
+ ME8E, First Sergeant
PAY_SHORT_ME9
+
+
+
+ ME9, Master Gunnery Sergeant
PAY_SHORT_ME9C
+
+
+
+ ME9C, Sergeant Major of the Colonial Marine Corps
PAY_SHORT_ME9E
+
+
+
+ ME9E, Sergeant Major
PAY_SHORT_MO1
+
+
+
+ MO1, Second Lieutenant
PAY_SHORT_MO10
+
+
+
+ MO10, General
PAY_SHORT_MO10C
+
+
+
+ MO10C, Assistant Commandant of the Marine Corps
PAY_SHORT_MO10S
+
+
+
+ MO10S, Commandant of the Marine Corps
PAY_SHORT_MO2
+
+
+
+ MO2, First Lieutenant
PAY_SHORT_MO3
+
+
+
+ MO3, Captain
PAY_SHORT_MO4
+
+
+
+ MO4, Major
PAY_SHORT_MO5
+
+
+
+ MO5, Lieutenant Colonel
PAY_SHORT_MO6
+
+
+
+ MO6, Colonel
PAY_SHORT_MO6C
+
+
+
+ MO6C, Division Colonel
PAY_SHORT_MO6E
+
+
+
+ MO6E, Senior Colonel
PAY_SHORT_MO7
+
+
+
+ MO7, Brigadier General
PAY_SHORT_MO8
+
+
+
+ MO8, Major General
PAY_SHORT_MO9
+
+
+
+ MO9, Lieutenant General
+
+
+
diff --git a/code/__DEFINES/paygrade_defs/mercs.html b/code/__DEFINES/paygrade_defs/mercs.html
new file mode 100644
index 000000000000..1b82f29e4e1d
--- /dev/null
+++ b/code/__DEFINES/paygrade_defs/mercs.html
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+ code/__DEFINES/paygrade_defs/mercs.dm - byond
+
+
+
+
+code/__DEFINES/paygrade_defs/mercs.dm
+
+
+
+
+ PAY_SHORT_FL_S FL-S, Standard
+ PAY_SHORT_FL_M FL-M, Medic
+ PAY_SHORT_FL_WL FL-WL, Warlord
+ PAY_SHORT_EFL_S EFL-S, Elite Standard
+ PAY_SHORT_EFL_M EFL-M, Elite Medic
+ PAY_SHORT_EFL_E EFL-E, Elite Engineer
+ PAY_SHORT_EFL_H EFL-H, Elite Heavy
+ PAY_SHORT_EFL_TL EFL-WL, Elite Warlord
+ PAY_SHORT_VAI_S VAI-S, Standard
+ PAY_SHORT_VAI_M VAI-M, Medic
+ PAY_SHORT_VAI_E VAI-E, Engineer
+ PAY_SHORT_VAI_G VAI-G, Machinegunner
+ PAY_SHORT_VAI_SN VAI-SN, Synthetic
+ PAY_SHORT_VAI_L VAI-L, Team Leader
Define Details
+PAY_SHORT_EFL_E
+
+
+
+ EFL-E, Elite Engineer
PAY_SHORT_EFL_H
+
+
+
+ EFL-H, Elite Heavy
PAY_SHORT_EFL_M
+
+
+
+ EFL-M, Elite Medic
PAY_SHORT_EFL_S
+
+
+
+ EFL-S, Elite Standard
PAY_SHORT_EFL_TL
+
+
+
+ EFL-WL, Elite Warlord
PAY_SHORT_FL_M
+
+
+
+ FL-M, Medic
PAY_SHORT_FL_S
+
+
+
+ FL-S, Standard
PAY_SHORT_FL_WL
+
+
+
+ FL-WL, Warlord
PAY_SHORT_VAI_E
+
+
+
+ VAI-E, Engineer
PAY_SHORT_VAI_G
+
+
+
+ VAI-G, Machinegunner
PAY_SHORT_VAI_L
+
+
+
+ VAI-L, Team Leader
PAY_SHORT_VAI_M
+
+
+
+ VAI-M, Medic
PAY_SHORT_VAI_S
+
+
+
+ VAI-S, Standard
PAY_SHORT_VAI_SN
+
+
+
+ VAI-SN, Synthetic
+
+
+
diff --git a/code/__DEFINES/paygrade_defs/navy.html b/code/__DEFINES/paygrade_defs/navy.html
new file mode 100644
index 000000000000..2c3dd61d4031
--- /dev/null
+++ b/code/__DEFINES/paygrade_defs/navy.html
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+ code/__DEFINES/paygrade_defs/navy.dm - byond
+
+
+
+
+code/__DEFINES/paygrade_defs/navy.dm
+
+
+
+
+ PAY_SHORT_NE1 NE1, Seaman Recruit
+ PAY_SHORT_NE2 NE2M, Seaman Apprentice
+ PAY_SHORT_NE3 NE3, Seaman
+ PAY_SHORT_NE4 NE4, Petty Officer 3rd Class
+ PAY_SHORT_NE5 NE5, Petty Officer 2nd Class
+ PAY_SHORT_NE6 NE6, Petty Officer 1st Class
+ PAY_SHORT_NE7 NE7, Chief Petty Officer
+ PAY_SHORT_NE8 NE8, Senior Chief Petty Officer
+ PAY_SHORT_NE8C NE8C, Command Senior Chief Petty Officer
+ PAY_SHORT_NE9 NE9, Master Chief Petty Officer
+ PAY_SHORT_NE9C NE9C, Command Master Chief Petty Officer
+ PAY_SHORT_NO1 NO1, Ensign
+ PAY_SHORT_NO2 NO2, Lieutenant Junior Grade
+ PAY_SHORT_NO3 NO3, Lieutenant
+ PAY_SHORT_NO4 NO4, Lieutenant Commander
+ PAY_SHORT_NO5 NO5, Commander
+ PAY_SHORT_NO6 NO6, Captain
+ PAY_SHORT_NO6E NO6E, Commodore
+ PAY_SHORT_NO6C NO6C, Senior Commodore
+ PAY_SHORT_NO7 NO7, Rear Admiral (Lower Half)
+ PAY_SHORT_NO8 NO8, Rear Admiral (Upper Half)
+ PAY_SHORT_NO9 NO9, Vice Admiral
+ PAY_SHORT_NO10 NO10, Admiral
+ PAY_SHORT_NO10C NO10C, Chief of Naval Operations
Define Details
+PAY_SHORT_NE1
+
+
+
+ NE1, Seaman Recruit
PAY_SHORT_NE2
+
+
+
+ NE2M, Seaman Apprentice
PAY_SHORT_NE3
+
+
+
+ NE3, Seaman
PAY_SHORT_NE4
+
+
+
+ NE4, Petty Officer 3rd Class
PAY_SHORT_NE5
+
+
+
+ NE5, Petty Officer 2nd Class
PAY_SHORT_NE6
+
+
+
+ NE6, Petty Officer 1st Class
PAY_SHORT_NE7
+
+
+
+ NE7, Chief Petty Officer
PAY_SHORT_NE8
+
+
+
+ NE8, Senior Chief Petty Officer
PAY_SHORT_NE8C
+
+
+
+ NE8C, Command Senior Chief Petty Officer
PAY_SHORT_NE9
+
+
+
+ NE9, Master Chief Petty Officer
PAY_SHORT_NE9C
+
+
+
+ NE9C, Command Master Chief Petty Officer
PAY_SHORT_NO1
+
+
+
+ NO1, Ensign
PAY_SHORT_NO10
+
+
+
+ NO10, Admiral
PAY_SHORT_NO10C
+
+
+
+ NO10C, Chief of Naval Operations
PAY_SHORT_NO2
+
+
+
+ NO2, Lieutenant Junior Grade
PAY_SHORT_NO3
+
+
+
+ NO3, Lieutenant
PAY_SHORT_NO4
+
+
+
+ NO4, Lieutenant Commander
PAY_SHORT_NO5
+
+
+
+ NO5, Commander
PAY_SHORT_NO6
+
+
+
+ NO6, Captain
PAY_SHORT_NO6C
+
+
+
+ NO6C, Senior Commodore
PAY_SHORT_NO6E
+
+
+
+ NO6E, Commodore
PAY_SHORT_NO7
+
+
+
+ NO7, Rear Admiral (Lower Half)
PAY_SHORT_NO8
+
+
+
+ NO8, Rear Admiral (Upper Half)
PAY_SHORT_NO9
+
+
+
+ NO9, Vice Admiral
+
+
+
diff --git a/code/__DEFINES/paygrade_defs/paygrade.html b/code/__DEFINES/paygrade_defs/paygrade.html
new file mode 100644
index 000000000000..657bb5aed197
--- /dev/null
+++ b/code/__DEFINES/paygrade_defs/paygrade.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/__DEFINES/paygrade_defs/paygrade.dm - byond
+
+
+
+
+code/__DEFINES/paygrade_defs/paygrade.dm
+
+
+
+
+ GRADE_ENLISTED Paygrade is equivalent to or is an enlisted position.
+ GRADE_OFFICER Paygrade is equivalent to or is an officer.
+ GRADE_FLAG Paygrade is for high command or senior leadership. Military flag officers.
Define Details
+GRADE_ENLISTED
+
+
+
+ Paygrade is equivalent to or is an enlisted position.
GRADE_FLAG
+
+
+
+ Paygrade is for high command or senior leadership. Military flag officers.
GRADE_OFFICER
+
+
+
+ Paygrade is equivalent to or is an officer.
+
+
+
diff --git a/code/__DEFINES/paygrade_defs/provost.html b/code/__DEFINES/paygrade_defs/provost.html
new file mode 100644
index 000000000000..84202699c470
--- /dev/null
+++ b/code/__DEFINES/paygrade_defs/provost.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ code/__DEFINES/paygrade_defs/provost.dm - byond
+
+
+
+
+code/__DEFINES/paygrade_defs/provost.dm
+
+
+
+Define Details
+PAY_SHORT_PVA
+
+
+
+ PvI, Provost Advisor
PAY_SHORT_PVCI
+
+
+
+ PvCI, Provost Chief Inspector
PAY_SHORT_PVCM
+
+
+
+ PvCM, Provost Chief Marshal
PAY_SHORT_PVDM
+
+
+
+ PvDM, Provost Deputy Marshal
PAY_SHORT_PVI
+
+
+
+ PvI, Provost Inspector
PAY_SHORT_PVM
+
+
+
+ PvM, Provost Marshal
PAY_SHORT_PVSM
+
+
+
+ PvSM, Provost Sector Marshal
+
+
+
diff --git a/code/__DEFINES/paygrade_defs/twe.html b/code/__DEFINES/paygrade_defs/twe.html
new file mode 100644
index 000000000000..e4ab2f685892
--- /dev/null
+++ b/code/__DEFINES/paygrade_defs/twe.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ code/__DEFINES/paygrade_defs/twe.dm - byond
+
+
+
+
+code/__DEFINES/paygrade_defs/twe.dm
+
+
+
+
+ PAY_SHORT_RMC1 RMC1, Heitai-Marine
+ PAY_SHORT_RMC2 RMC2, Santo-Lance Corporal
+ PAY_SHORT_RMC3 RMC3, Nito-Corporal
+ PAY_SHORT_RMC4 RMC4, Itto-Sergeant
+ PAY_SHORT_RNOW RNOW, Warrant Officer
+ PAY_SHORT_RNO1 RNO1, Second Lieutenant
+ PAY_SHORT_RNO2 RNO2, First Lieutenant
+ PAY_SHORT_RNO3 RNO3, Standing Officer
+ PAY_SHORT_RNO4 RNO4, Captain
+ PAY_SHORT_RNO5 RNO5, Admiral
+ PAY_SHORT_RNO6 RNO6, Grand Admiral
+ PAY_SHORT_EMP EMP, Emperor
Define Details
+PAY_SHORT_EMP
+
+
+
+ EMP, Emperor
PAY_SHORT_RMC1
+
+
+
+ RMC1, Heitai-Marine
PAY_SHORT_RMC2
+
+
+
+ RMC2, Santo-Lance Corporal
PAY_SHORT_RMC3
+
+
+
+ RMC3, Nito-Corporal
PAY_SHORT_RMC4
+
+
+
+ RMC4, Itto-Sergeant
PAY_SHORT_RNO1
+
+
+
+ RNO1, Second Lieutenant
PAY_SHORT_RNO2
+
+
+
+ RNO2, First Lieutenant
PAY_SHORT_RNO3
+
+
+
+ RNO3, Standing Officer
PAY_SHORT_RNO4
+
+
+
+ RNO4, Captain
PAY_SHORT_RNO5
+
+
+
+ RNO5, Admiral
PAY_SHORT_RNO6
+
+
+
+ RNO6, Grand Admiral
PAY_SHORT_RNOW
+
+
+
+ RNOW, Warrant Officer
+
+
+
diff --git a/code/__DEFINES/paygrade_defs/upp.html b/code/__DEFINES/paygrade_defs/upp.html
new file mode 100644
index 000000000000..b68c68bae396
--- /dev/null
+++ b/code/__DEFINES/paygrade_defs/upp.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+ code/__DEFINES/paygrade_defs/upp.dm - byond
+
+
+
+
+code/__DEFINES/paygrade_defs/upp.dm
+
+
+
+
+ PAY_SHORT_UEC UE,
+ PAY_SHORT_UE1 UE1, Private
+ PAY_SHORT_UE2 UE2, Private First Class
+ PAY_SHORT_UE3 UE3, Korporal
+ PAY_SHORT_UE4 UE4, unior Serzhant
+ PAY_SHORT_UE5 UE5, Serzhant
+ PAY_SHORT_UE6 UE6, Master Serzhant
+ PAY_SHORT_UC1 UC1, Junior Kommando
+ PAY_SHORT_UC2 UC2, 2nd Kommando
+ PAY_SHORT_UC3 UC3, 1st Kommando
+ PAY_SHORT_UO1 UO1, Leytenant
+ PAY_SHORT_UO2 UO2, Senior Leytenant
+ PAY_SHORT_UO3 UO3, Kapitan
+ PAY_SHORT_UO4 UO4, Mayjor
+ PAY_SHORT_UO4P UO4P, Political Commissar
+ PAY_SHORT_UO5 UO5, Leytenant Kolonel
+ PAY_SHORT_UO6 UO6, Kolonel
+ PAY_SHORT_UO7 UO7, Mayjor General
+ PAY_SHORT_UO8 UO8, Leytenant General
+ PAY_SHORT_UO9 UO9, Army General
Define Details
+PAY_SHORT_UC1
+
+
+
+ UC1, Junior Kommando
PAY_SHORT_UC2
+
+
+
+ UC2, 2nd Kommando
PAY_SHORT_UC3
+
+
+
+ UC3, 1st Kommando
PAY_SHORT_UE1
+
+
+
+ UE1, Private
PAY_SHORT_UE2
+
+
+
+ UE2, Private First Class
PAY_SHORT_UE3
+
+
+
+ UE3, Korporal
PAY_SHORT_UE4
+
+
+
+ UE4, unior Serzhant
PAY_SHORT_UE5
+
+
+
+ UE5, Serzhant
PAY_SHORT_UE6
+
+
+
+ UE6, Master Serzhant
PAY_SHORT_UEC
+
+
+
+ UE,
PAY_SHORT_UO1
+
+
+
+ UO1, Leytenant
PAY_SHORT_UO2
+
+
+
+ UO2, Senior Leytenant
PAY_SHORT_UO3
+
+
+
+ UO3, Kapitan
PAY_SHORT_UO4
+
+
+
+ UO4, Mayjor
PAY_SHORT_UO4P
+
+
+
+ UO4P, Political Commissar
PAY_SHORT_UO5
+
+
+
+ UO5, Leytenant Kolonel
PAY_SHORT_UO6
+
+
+
+ UO6, Kolonel
PAY_SHORT_UO7
+
+
+
+ UO7, Mayjor General
PAY_SHORT_UO8
+
+
+
+ UO8, Leytenant General
PAY_SHORT_UO9
+
+
+
+ UO9, Army General
+
+
+
diff --git a/code/__DEFINES/paygrade_defs/weyland.html b/code/__DEFINES/paygrade_defs/weyland.html
new file mode 100644
index 000000000000..4f64359c4d2a
--- /dev/null
+++ b/code/__DEFINES/paygrade_defs/weyland.html
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+ code/__DEFINES/paygrade_defs/weyland.dm - byond
+
+
+
+
+code/__DEFINES/paygrade_defs/weyland.dm
+
+
+
+
+ PAY_SHORT_WYC1 WYC1, Trainee
+ PAY_SHORT_WYC2 WYC2, Junior Executive
+ PAY_SHORT_WYC3 WYC3, Executive
+ PAY_SHORT_WYC4 WYC4, Senior Executive
+ PAY_SHORT_WYC5 WYC5, Executive Specialist
+ PAY_SHORT_WYC6 WYC6, Executive Supervisor
+ PAY_SHORT_WYC7 WYC7, Assistant Manager
+ PAY_SHORT_WYC8 WYC8, Division Manager
+ PAY_SHORT_WYC9 WYC9, Chief Executive
+ PAY_SHORT_WYC10 WYC10, Director
+ PAY_SHORT_PMC_OP PMC-OP, Operator, standard PMC.
+ PAY_SHORT_PMC_EN PMC-EN, Enforcer
+ PAY_SHORT_PMC_SS PMC-SS, Support Specialist
+ PAY_SHORT_PMC_MS PMC-MS, Medical Specialist
+ PAY_SHORT_PMC_WS PMC-WS, Weapons Specialist
+ PAY_SHORT_PMC_VS PMC-VS, Vehicle Specialist
+ PAY_SHORT_PMC_XS PMC-XS, Xeno Specialist (Handler)
+ PAY_SHORT_PMC_TL PMC-TL, Team Leader
+ PAY_SHORT_PMC_DOC PMC-DOC, Trauma Surgeon
+ PAY_SHORT_PMC_TEC PMC-ENG, Technician
+ PAY_SHORT_PMC_ELR PMC-ELR, Elite Responder
+ PAY_SHORT_PMC_ELM PMC-ELM, Elite Medic
+ PAY_SHORT_PMC_ELG PMC-ELG, Elite Gunner
+ PAY_SHORT_PMC_ETL PMC-ETL, Elite Team Leader
+ PAY_SHORT_PMC_DIR PMC-DIR, PMC Director
Define Details
+PAY_SHORT_PMC_DIR
+
+
+
+ PMC-DIR, PMC Director
PAY_SHORT_PMC_DOC
+
+
+
+ PMC-DOC, Trauma Surgeon
PAY_SHORT_PMC_ELG
+
+
+
+ PMC-ELG, Elite Gunner
PAY_SHORT_PMC_ELM
+
+
+
+ PMC-ELM, Elite Medic
PAY_SHORT_PMC_ELR
+
+
+
+ PMC-ELR, Elite Responder
PAY_SHORT_PMC_EN
+
+
+
+ PMC-EN, Enforcer
PAY_SHORT_PMC_ETL
+
+
+
+ PMC-ETL, Elite Team Leader
PAY_SHORT_PMC_MS
+
+
+
+ PMC-MS, Medical Specialist
PAY_SHORT_PMC_OP
+
+
+
+ PMC-OP, Operator, standard PMC.
PAY_SHORT_PMC_SS
+
+
+
+ PMC-SS, Support Specialist
PAY_SHORT_PMC_TEC
+
+
+
+ PMC-ENG, Technician
PAY_SHORT_PMC_TL
+
+
+
+ PMC-TL, Team Leader
PAY_SHORT_PMC_VS
+
+
+
+ PMC-VS, Vehicle Specialist
PAY_SHORT_PMC_WS
+
+
+
+ PMC-WS, Weapons Specialist
PAY_SHORT_PMC_XS
+
+
+
+ PMC-XS, Xeno Specialist (Handler)
PAY_SHORT_WYC1
+
+
+
+ WYC1, Trainee
PAY_SHORT_WYC10
+
+
+
+ WYC10, Director
PAY_SHORT_WYC2
+
+
+
+ WYC2, Junior Executive
PAY_SHORT_WYC3
+
+
+
+ WYC3, Executive
PAY_SHORT_WYC4
+
+
+
+ WYC4, Senior Executive
PAY_SHORT_WYC5
+
+
+
+ WYC5, Executive Specialist
PAY_SHORT_WYC6
+
+
+
+ WYC6, Executive Supervisor
PAY_SHORT_WYC7
+
+
+
+ WYC7, Assistant Manager
PAY_SHORT_WYC8
+
+
+
+ WYC8, Division Manager
PAY_SHORT_WYC9
+
+
+
+ WYC9, Chief Executive
+
+
+
diff --git a/code/__DEFINES/procpath.html b/code/__DEFINES/procpath.html
new file mode 100644
index 000000000000..d56c2ccf92d0
--- /dev/null
+++ b/code/__DEFINES/procpath.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/__DEFINES/procpath.dm - byond
+
+
+
+
+code/__DEFINES/procpath.dm
+
+
+
+
+
+
+
diff --git a/code/__DEFINES/qdel.html b/code/__DEFINES/qdel.html
new file mode 100644
index 000000000000..b69c9f6f3364
--- /dev/null
+++ b/code/__DEFINES/qdel.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ code/__DEFINES/qdel.dm - byond
+
+
+
+
+code/__DEFINES/qdel.dm
+
+
+
+
+ Defines that give qdel hints.
+These can be given as a return in [/atom/proc/Destroy] or by calling /proc/qdel .
+ QDEL_HINT_QUEUE qdel
should queue the object for deletion.
+ QDEL_HINT_LETMELIVE qdel
should let the object live after calling [/atom/proc/Destroy].
+ QDEL_HINT_IWILLGC Functionally the same as the above. qdel
should assume the object will gc on its own, and not check it.
+ QDEL_HINT_HARDDEL Qdel should assume this object won't GC, and queue a hard delete using a hard reference.
+ 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
+ QDEL_ITEM_ADMINS_WARNED Set when admins are told about lag causing qdels in this type.
+ QDEL_ITEM_SUSPENDED_FOR_LAG Set when a type can no longer be hard deleted on failure because of lag it causes while this happens.
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
QDEL_HINT_HARDDEL
+
+
+
+ Qdel should assume this object won't GC, and queue a hard delete using a hard reference.
QDEL_HINT_IWILLGC
+
+
+
+ Functionally the same as the above. qdel
should assume the object will gc on its own, and not check it.
QDEL_HINT_LETMELIVE
+
+
+
+ qdel
should let the object live after calling [/atom/proc/Destroy].
QDEL_HINT_QUEUE
+
+
+
+ qdel
should queue the object for deletion.
QDEL_ITEM_ADMINS_WARNED
+
+
+
+ Set when admins are told about lag causing qdels in this type.
QDEL_ITEM_SUSPENDED_FOR_LAG
+
+
+
+ Set when a type can no longer be hard deleted on failure because of lag it causes while this happens.
+
+
+
diff --git a/code/__DEFINES/shuttles.html b/code/__DEFINES/shuttles.html
new file mode 100644
index 000000000000..1c4cbfe0196e
--- /dev/null
+++ b/code/__DEFINES/shuttles.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__DEFINES/shuttles.dm - byond
+
+
+
+
+code/__DEFINES/shuttles.dm
+
+
+
+Define Details
+GAMEMODE_IMMUNE
+
+
+
+ shuttle is immune to gamemode timer restrictions
+
+
+
diff --git a/code/__DEFINES/skills.html b/code/__DEFINES/skills.html
new file mode 100644
index 000000000000..48a89b2e9abc
--- /dev/null
+++ b/code/__DEFINES/skills.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ code/__DEFINES/skills.dm - byond
+
+
+
+
+code/__DEFINES/skills.dm
+
+
+
+Define Details
+SKILL_SPEC_ALL
+
+
+
+ Can use ALL specialist weapons
SKILL_SPEC_GRENADIER
+
+
+
+ Can use the rotary grenade launcher and heavy armor
SKILL_SPEC_KITTED
+
+
+
+ Is trained to use specialist gear & HAS picked a kit. (Functionally same as SPEC_ROCKET)
SKILL_SPEC_PYRO
+
+
+
+ Can use heavy flamers
SKILL_SPEC_ROCKET
+
+
+
+ Can use RPG
SKILL_SPEC_SCOUT
+
+
+
+ Can use thermal cloaks and custom M4RA rifle
SKILL_SPEC_SMARTGUN
+
+
+
+ Can use smartguns
SKILL_SPEC_SNIPER
+
+
+
+ Can use sniper rifles and camo suits
SKILL_SPEC_TRAINED
+
+
+
+ Is trained to use specialist gear, but hasn't picked a kit.
SKILL_SPEC_UPP
+
+
+
+ UPP special training
+
+
+
diff --git a/code/__DEFINES/status_effects.html b/code/__DEFINES/status_effects.html
new file mode 100644
index 000000000000..5e41ef4c3395
--- /dev/null
+++ b/code/__DEFINES/status_effects.html
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+ code/__DEFINES/status_effects.dm - byond
+
+
+
+
+code/__DEFINES/status_effects.dm
+
+
+
+Define Details
+IGNORE_GRAB
+
+
+
+ If the incapacitated status effect will ignore a mob being agressively grabbed
IGNORE_RESTRAINTS
+
+
+
+ If the incapacitated status effect will ignore a mob in restraints (handcuffs)
IGNORE_STASIS
+
+
+
+ If the incapacitated status effect will ignore a mob in stasis (stasis beds)
STATUS_EFFECT_FAST_PROCESS
+
+
+
+ Processing flags - used to define the speed at which the status will work
+This is fast - 0.2s between ticks (I believe!)
STATUS_EFFECT_MULTIPLE
+
+
+
+ if it allows multiple instances of the effect
STATUS_EFFECT_NORMAL_PROCESS
+
+
+
+ This is slower and better for more intensive status effects - 1s between ticks
STATUS_EFFECT_REFRESH
+
+
+
+ if it only allows one, and new instances just instead refresh the timer
STATUS_EFFECT_REPLACE
+
+
+
+ if it allows only one, but new instances replace
STATUS_EFFECT_TIME_THRESHOLD
+
+
+
+ Time threshold after which we launch ending timer - this should be higher than the slowest processing rate
STATUS_EFFECT_UNIQUE
+
+
+
+ if it allows only one, preventing new instances
+
+
+
diff --git a/code/__DEFINES/strippable.html b/code/__DEFINES/strippable.html
new file mode 100644
index 000000000000..fc54d1065afd
--- /dev/null
+++ b/code/__DEFINES/strippable.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/__DEFINES/strippable.dm - byond
+
+
+
+
+code/__DEFINES/strippable.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 000000000000..87c3c90ac43a
--- /dev/null
+++ b/code/__DEFINES/subsystems.html
@@ -0,0 +1,214 @@
+
+
+
+
+
+
+ code/__DEFINES/subsystems.dm - byond
+
+
+
+
+code/__DEFINES/subsystems.dm
+
+
+
+Define Details
+GAME_STATE_FINISHED
+
+
+
+ Game has round finished
GAME_STATE_PLAYING
+
+
+
+ Game has round in progress
GAME_STATE_PREGAME
+
+
+
+ Game is loaded and in pregame lobby
GAME_STATE_SETTING_UP
+
+
+
+ Game is attempting to start the round
GAME_STATE_STARTUP
+
+
+
+ Game is loading
INITIALIZATION_INNEW_MAPLOAD
+
+
+
+ New should call Initialize(TRUE)
INITIALIZATION_INNEW_REGULAR
+
+
+
+ New should call Initialize(FALSE)
INITIALIZATION_INSSATOMS
+
+
+
+ New should not call Initialize
INITIALIZE_HINT_LATELOAD
+
+
+
+ call LateInitialize at the end of all atom Initalization
+The item will be added to the late_loaders list, this is iterated over after
+initalization of subsystems is complete and calls LateInitalize on the atom
+see this file for the LateIntialize proc
INITIALIZE_HINT_NORMAL
+
+
+
+ Nothing happens
INITIALIZE_HINT_QDEL
+
+
+
+ Call qdel on the atom after intialization
INITIALIZE_HINT_ROUNDSTART
+
+
+
+ Call LateInitialize on roundstart
+ type and all subtypes should always immediately call Initialize in New()
PROCESS_KILL
+
+
+
+ Used to trigger object removal from a processing list
SS_INIT_FAILURE
+
+
+
+ Negative values incidate a failure or warning of some kind, positive are good.
+0 and 1 are unused so that TRUE and FALSE are guaranteed to be invalid values.
+Subsystem failed to initialize entirely. Print a warning, log, and disable firing.
SS_INIT_NONE
+
+
+
+ The default return value which must be overridden. Will succeed with a warning.
SS_INIT_NO_NEED
+
+
+
+ Successful, but don't print anything. Useful if subsystem was disabled.
SS_INIT_SUCCESS
+
+
+
+ Subsystem initialized sucessfully.
SS_INIT_TIMER_KEY
+
+
+
+ The timer key used to know how long subsystem initialization takes
TIMER_CLIENT_TIME
+
+
+
+ Timing should be based on how timing progresses on clients, not the server.
+Tracking this is more expensive,
+should only be used in conjuction with things that have to progress client side, such as
+animate() or sound()
TIMER_DELETE_ME
+
+
+
+ Delete the timer on parent datum Destroy() and when deltimer'd
TIMER_ID_NULL
+
+
+
+ Empty ID define
TIMER_LOOP
+
+
+
+ Loops the timer repeatedly until qdeleted
+In most cases you want a subsystem instead, so don't use this unless you have a good reason
TIMER_NO_HASH_WAIT
+
+
+
+ prevents distinguishing identical timers with the wait variable
+To be used with TIMER_UNIQUE
TIMER_OVERRIDE
+
+
+
+ For unique timers: Replace the old timer rather then not start this one
TIMER_STOPPABLE
+
+
+
+ Timer can be stopped using deltimer()
TIMER_UNIQUE
+
+
+
+ Don't run if there is an identical unique timer active
+if the arguments to addtimer are the same as an existing timer, it doesn't create a new timer,
+and returns the id of the existing timer
addtimer
+
+
+
+
+ Create a new timer and add it to the queue.
+
+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
+
+
+
+
+timer_subsystem the subsystem to insert this timer into
+
+
+
+
+
+
diff --git a/code/__DEFINES/supply.html b/code/__DEFINES/supply.html
new file mode 100644
index 000000000000..9a6ac5ed8418
--- /dev/null
+++ b/code/__DEFINES/supply.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/__DEFINES/supply.dm - byond
+
+
+
+
+code/__DEFINES/supply.dm
+
+
+
+
+ ASRS_POOL_MAIN Main pool of ASRS supplies, dispensing military supplies such as ammo
+ ASRS_POOL_FOOD Secondary ASRS pool dispening food related items for MessTech
+ ASRS_XENO_CRATES_DIVIDER Divider to the amount of xeno forces on the planet to ASRS provided crates. It is used as such sqrt(xenos/ASRS_XENO_CRATES_DIVIDER))
Define Details
+ASRS_POOL_FOOD
+
+
+
+ Secondary ASRS pool dispening food related items for MessTech
ASRS_POOL_MAIN
+
+
+
+ Main pool of ASRS supplies, dispensing military supplies such as ammo
ASRS_XENO_CRATES_DIVIDER
+
+
+
+ Divider to the amount of xeno forces on the planet to ASRS provided crates. It is used as such sqrt(xenos/ASRS_XENO_CRATES_DIVIDER))
+
+
+
diff --git a/code/__DEFINES/surgery.html b/code/__DEFINES/surgery.html
new file mode 100644
index 000000000000..9af65baf6272
--- /dev/null
+++ b/code/__DEFINES/surgery.html
@@ -0,0 +1,205 @@
+
+
+
+
+
+
+ code/__DEFINES/surgery.dm - byond
+
+
+
+
+code/__DEFINES/surgery.dm
+
+
+
+
+ is_surgery_tool checks if the item has a path that can be specifically used in a surgery step.
+ is_surgery_init_tool checks if the item has a path that can be specifically used in a surgery step and is not flagged to not message on failed init - ex. cable coil, trauma kits etc.
+ SELF_SURGERY_SLOWDOWN Multiplier to surgery times when working on yourself.
+ SURGERY_DEPTH_SURFACE No incision.
+ SURGERY_DEPTH_SHALLOW An incision has been opened.
+ SURGERY_DEPTH_DEEP Deep incision - opened ribcage/skull.
+ SURGERY_SURFACE_MULT_AWFUL A surface that's utterly unsuitable for complex surgery. Worst possible case.
+ SURGERY_SURFACE_MULT_UNSUITED A surface unsuited for surgery, but better than nothing.
+ SURGERY_SURFACE_MULT_ADEQUATE A surface that's adequate for surgery, if not ideal.
+ SURGERY_SURFACE_MULT_IDEAL A surface that's ideal for performing surgeries.
+ SURGERY_TOOL_MULT_AWFUL A tool that's badly unsuitable for the surgery. Worst usable case. Using a glass shard instead of a scalpel, using a bayonet to saw off a limb's bone.
+ SURGERY_TOOL_MULT_BAD_SUBSTITUTE An improvised substitute for an ill-fitting tool. Using wirecutters instead of a retractor.
+ SURGERY_TOOL_MULT_SUBSTITUTE A tool that's functional, but hardly good. Generally an improvised substitute for a well-matching tool - wirecutters instead of haemostat.
+ SURGERY_TOOL_MULT_SUBOPTIMAL A tool that's a good, if not ideal, fit for the surgery -- generally a real surgical tool used slightly out of its role. Haemostat instead of retractor, fixovein instead of sutures.
+ SURGERY_TOOL_MULT_IDEAL A tool that's perfect for the surgery.
+ SURGERY_FAILURE_IMPOSSIBLE The (no) chance of failure for surgery because the correct tools/conditions are used or skill compensates
+ SURGERY_FAILURE_UNLIKELY The chance of failure for surgery because the the tool/ground is SURGERY_TOOL_MULT_BAD_SUBSTITUTE/SURGERY_SURFACE_MULT_UNSUITED and skill can't compensate enough
+ SURGERY_FAILURE_POSSIBLE The chance of failure for surgery because the the tool/ground is SURGERY_TOOL_MULT_AWFUL/SURGERY_SURFACE_MULT_AWFUL and skill can't compensate enough
+ SURGERY_FAILURE_LIKELY The chance of failure for surgery because the the tool and ground is some combination worse than awful and skill can't compensate enough
+ SURGERY_PRIORITY_MAXIMUM Appears first in lists. Ex. larva surgery, opening incision. Immediately life-threatening or initiation surgeries.
+ SURGERY_PRIORITY_HIGH Appears second in lists. Ex. IB fix, bleeding surgeries. Life-threatening or liable to get worse.
+ SURGERY_PRIORITY_MODERATE Appears third in lists. Ex. bone fix, tending wounds. Worth doing but not immediately threatening. Most surgeries will be here.
+ SURGERY_PRIORITY_LOW Appears fourth in lists. Ex. opening ribs, amputation. Things that shouldn't be at the top of a list.
+ SURGERY_PRIORITY_MINIMUM Appears last in lists. Ex. cauterizing incision, closing ribcage. Concluding steps.
+ SURGERY_TOOLS_NO_INIT_MSG Tools routinely used to hit people, which wouldn't make sense to give 'you can't open an incision with xyz' messages.
+ SURGERY_TOOLS_INCISION Tools used to open incisions or cut flesh. IMS listed separately as the generic incision surgery uses it to skip steps.
+PICT isn't as fast as standard to disincentivise using it instead of a normal scalpel.
+See also /datum/surgery_step/cut_larval_pseudoroots, /datum/surgery_step/retract_skin.
+ SURGERY_TOOLS_CAUTERIZE Tools used to close incisions. May need surgical line in future. Check /datum/surgery_step/cauterize var/tools_lit if adding activatable tools.
+ SURGERY_TOOLS_PINCH Tools used to grab and remove things delicately. See also /datum/surgery_step/remove_larva.
+ SURGERY_TOOLS_PRY_DELICATE Tools used to pry things very finely. No crowbar, fork works decently; it can't pinch, but it's easier to maneuver precisely than wirecutters.
+ SURGERY_TOOLS_MEND_BLOODVESSEL Tools used to patch damaged bloodvessels. Same tools as SUTURE, but fixovein exists specifically for this work and is best at it.
+ SURGERY_TOOLS_SUTURE Tools used to suture damaged flesh. Same tools as BLOODVESSEL, but surgical line is ideal for this.
+ SURGERY_TOOLS_SEVER_BONE Tools used to sever limb bones. Same tools as /datum/surgery_step/saw_encased, but with hacking/chopping tools being better than sawing.
+See also /datum/surgery_step/saw_off_limb/failure var/list/cannot_hack, listing the tools that can't instantly chop a limb.
+ SURGERY_TOOLS_PRY_ENCASED Tools used to open and close ribs/skull. Heavy-duty prying, haemostat/wirecutter won't cut it.
+ SURGERY_TOOLS_BONE_MEND Tools used to patch lightly damaged bones or before setting. May need surgical line in future.
Define Details
+SELF_SURGERY_SLOWDOWN
+
+
+
+ Multiplier to surgery times when working on yourself.
SURGERY_DEPTH_DEEP
+
+
+
+ Deep incision - opened ribcage/skull.
SURGERY_DEPTH_SHALLOW
+
+
+
+ An incision has been opened.
SURGERY_DEPTH_SURFACE
+
+
+
+ No incision.
SURGERY_FAILURE_IMPOSSIBLE
+
+
+
+ The (no) chance of failure for surgery because the correct tools/conditions are used or skill compensates
SURGERY_FAILURE_LIKELY
+
+
+
+ The chance of failure for surgery because the the tool and ground is some combination worse than awful and skill can't compensate enough
SURGERY_FAILURE_POSSIBLE
+
+
+
+ The chance of failure for surgery because the the tool/ground is SURGERY_TOOL_MULT_AWFUL/SURGERY_SURFACE_MULT_AWFUL and skill can't compensate enough
SURGERY_FAILURE_UNLIKELY
+
+
+
+ The chance of failure for surgery because the the tool/ground is SURGERY_TOOL_MULT_BAD_SUBSTITUTE/SURGERY_SURFACE_MULT_UNSUITED and skill can't compensate enough
SURGERY_PRIORITY_HIGH
+
+
+
+ Appears second in lists. Ex. IB fix, bleeding surgeries. Life-threatening or liable to get worse.
SURGERY_PRIORITY_LOW
+
+
+
+ Appears fourth in lists. Ex. opening ribs, amputation. Things that shouldn't be at the top of a list.
SURGERY_PRIORITY_MAXIMUM
+
+
+
+ Appears first in lists. Ex. larva surgery, opening incision. Immediately life-threatening or initiation surgeries.
SURGERY_PRIORITY_MINIMUM
+
+
+
+ Appears last in lists. Ex. cauterizing incision, closing ribcage. Concluding steps.
SURGERY_PRIORITY_MODERATE
+
+
+
+ Appears third in lists. Ex. bone fix, tending wounds. Worth doing but not immediately threatening. Most surgeries will be here.
SURGERY_SURFACE_MULT_ADEQUATE
+
+
+
+ A surface that's adequate for surgery, if not ideal.
SURGERY_SURFACE_MULT_AWFUL
+
+
+
+ A surface that's utterly unsuitable for complex surgery. Worst possible case.
SURGERY_SURFACE_MULT_IDEAL
+
+
+
+ A surface that's ideal for performing surgeries.
SURGERY_SURFACE_MULT_UNSUITED
+
+
+
+ A surface unsuited for surgery, but better than nothing.
+ Tools used to patch lightly damaged bones or before setting. May need surgical line in future.
+ Tools used to close incisions. May need surgical line in future. Check /datum/surgery_step/cauterize var/tools_lit if adding activatable tools.
+ Tools used to open incisions or cut flesh. IMS listed separately as the generic incision surgery uses it to skip steps.
+PICT isn't as fast as standard to disincentivise using it instead of a normal scalpel.
+See also /datum/surgery_step/cut_larval_pseudoroots, /datum/surgery_step/retract_skin.
+ Tools used to patch damaged bloodvessels. Same tools as SUTURE, but fixovein exists specifically for this work and is best at it.
+ Tools routinely used to hit people, which wouldn't make sense to give 'you can't open an incision with xyz' messages.
+ Tools used to grab and remove things delicately. See also /datum/surgery_step/remove_larva.
+ Tools used to pry things very finely. No crowbar, fork works decently; it can't pinch, but it's easier to maneuver precisely than wirecutters.
+ Tools used to open and close ribs/skull. Heavy-duty prying, haemostat/wirecutter won't cut it.
+ Tools used to sever limb bones. Same tools as /datum/surgery_step/saw_encased, but with hacking/chopping tools being better than sawing.
+See also /datum/surgery_step/saw_off_limb/failure var/list/cannot_hack, listing the tools that can't instantly chop a limb.
+ Tools used to suture damaged flesh. Same tools as BLOODVESSEL, but surgical line is ideal for this.
+ A tool that's badly unsuitable for the surgery. Worst usable case. Using a glass shard instead of a scalpel, using a bayonet to saw off a limb's bone.
+ An improvised substitute for an ill-fitting tool. Using wirecutters instead of a retractor.
+ A tool that's perfect for the surgery.
+ A tool that's a good, if not ideal, fit for the surgery -- generally a real surgical tool used slightly out of its role. Haemostat instead of retractor, fixovein instead of sutures.
+ A tool that's functional, but hardly good. Generally an improvised substitute for a well-matching tool - wirecutters instead of haemostat.
+ checks if the item has a path that can be specifically used in a surgery step and is not flagged to not message on failed init - ex. cable coil, trauma kits etc.
+ checks if the item has a path that can be specifically used in a surgery step.
+
+
+
diff --git a/code/__DEFINES/techtree.html b/code/__DEFINES/techtree.html
new file mode 100644
index 000000000000..0352472a8fc0
--- /dev/null
+++ b/code/__DEFINES/techtree.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ code/__DEFINES/techtree.dm - byond
+
+
+
+
+code/__DEFINES/techtree.dm
+
+
+
+Define Details
+PASSIVE_INCREASE_AMOUNT
+
+
+
+ Controls the passive increase amount.
TECH_FLAG_DISABLED
+
+
+
+ Prevents a tech from being added to the tech trees
TECH_FLAG_MULTIUSE
+
+
+
+ The tech can be purchased multiple times
TECH_FLAG_NO_ANNOUNCE
+
+
+
+ Don't announce when this tech is bought.
+
+
+
diff --git a/code/__DEFINES/text.html b/code/__DEFINES/text.html
new file mode 100644
index 000000000000..9b7cf3183ab2
--- /dev/null
+++ b/code/__DEFINES/text.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ code/__DEFINES/text.dm - byond
+
+
+
+
+code/__DEFINES/text.dm
+
+
+
+
+ MAPTEXT Prepares a text to be used for maptext. Use this so it doesn't look hideous.
+ MAPTEXT_VCR_OSD_MONO Prepares a text to be used for maptext, using a font that can handle larger text better.
+ WXH_TO_HEIGHT Macro from Lummox used to get height from a MeasureText proc
+ SANITIZE_FILENAME Removes characters incompatible with file names.
+ STRIP_HTML_SIMPLE Simply removes the < and > characters, and limits the length of the message.
+ SHOW_MESSAGE_VISIBLE defines related to text related procs
Define Details
+MAPTEXT
+
+
+
+
+ Prepares a text to be used for maptext. Use this so it doesn't look hideous.
MAPTEXT_VCR_OSD_MONO
+
+
+
+
+ Prepares a text to be used for maptext, using a font that can handle larger text better.
SANITIZE_FILENAME
+
+
+
+
+ Removes characters incompatible with file names.
SHOW_MESSAGE_VISIBLE
+
+
+
+ defines related to text related procs
STRIP_HTML_SIMPLE
+
+
+
+
+ Simply removes the < and > characters, and limits the length of the message.
WXH_TO_HEIGHT
+
+
+
+
+ Macro from Lummox used to get height from a MeasureText proc
+
+
+
diff --git a/code/__DEFINES/tgs.html b/code/__DEFINES/tgs.html
new file mode 100644
index 000000000000..f413bcaf168a
--- /dev/null
+++ b/code/__DEFINES/tgs.html
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+ code/__DEFINES/tgs.dm - byond
+
+
+
+
+code/__DEFINES/tgs.dm
+
+
+
+
+ TGS_FILE2TEXT_NATIVE Consumers SHOULD create this define if you want to do TGS configuration outside of this file.
+ TGS_EVENT_REBOOT_MODE_CHANGE 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 Consumers MUST run this macro 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 This abstract version SHOULD be overridden to be used.
+ /datum/tgs_http_handler User definable handler for HTTP calls. This abstract version MUST be overridden to be used.
+ /datum/tgs_http_result Result of a /datum/tgs_http_handler call. MUST NOT be overridden.
+ /datum/tgs_chat_command User definable chat command. This abstract version MUST be overridden to be used.
+ /datum/tgs_message_content User definable chat message. MUST NOT be overridden.
+ /datum/tgs_chat_embed/structure User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/message#embed-object 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/message#embed-object-embed-footer-structure for details.
+ /datum /tgs_chat_embed/provider See https://discord.com/developers/docs/resources/message#embed-object-embed-provider-structure for details.
+ /datum/tgs_chat_embed/provider/author See https://discord.com/developers/docs/resources/message#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/message#embed-object-embed-field-structure for details.
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
+
+
+
+ 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_FILE2TEXT_NATIVE
+
+
+
+ Consumers SHOULD create this define if you want to do TGS configuration outside of this file.
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
+
+
+
+ Consumers MUST run this macro 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.html b/code/__DEFINES/tgui.html
new file mode 100644
index 000000000000..f06148e8dafc
--- /dev/null
+++ b/code/__DEFINES/tgui.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ code/__DEFINES/tgui.dm - byond
+
+
+
+
+code/__DEFINES/tgui.dm
+
+
+
+Define Details
+TGUI_CREATE_MESSAGE
+
+
+
+
+ Creates a message packet for sending via output()
TGUI_CREATE_OPEN_MESSAGE
+
+
+
+
+ Creates a message packet for sending via output() specifically for opening tgsay using an embedded winget
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/traits.html b/code/__DEFINES/traits.html
new file mode 100644
index 000000000000..8bd6b5d42ec2
--- /dev/null
+++ b/code/__DEFINES/traits.html
@@ -0,0 +1,529 @@
+
+
+
+
+
+
+ code/__DEFINES/traits.dm - byond
+
+
+
+
+code/__DEFINES/traits.dm
+
+
+
+
+ GET_TRAIT_SOURCES Returns a list of trait sources for this trait. Only useful for wacko cases and internal futzing
+You should not be using this
+ COUNT_TRAIT_SOURCES Returns the amount of sources for a trait. useful if you don't want to have a "thing counter" stuck around all the time
+ HAS_MIND_TRAIT A simple helper for checking traits in a mob's mind
+ TRAIT_UNDENSE Example trait
+Apply this to make a mob not dense, and remove it when you want it to no longer make them undense, other sorces of undesity will still apply. Always define a unique source when adding a new instance of this!
+ 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_FORCED_STANDING Forces user to stay standing
+ TRAIT_INCAPACITATED Stuns preventing movement and using objects but without further impairement
+ TRAIT_DAZED Disoriented. Unable to talk properly, and unable to use some skills as Xeno
+ TRAIT_MERGED_WITH_WEEDS Apply this to identify a mob as merged with weeds
+ TRAIT_TEMPORARILY_MUTED Apply this to identify a mob as temporarily muted
+ TRAIT_NO_STRAY Mob wont get hit by stray projectiles
+ TRAIT_YAUTJA_TECH Knowledge of Yautja technology
+ TRAIT_SUPER_STRONG Absolutely RIPPED. Can do misc. heavyweight stuff others can't. (Yautja, Synths)
+ TRAIT_FOREIGN_BIO Foreign biology. Basic medHUDs won't show the mob. (Yautja, Zombies)
+ TRAIT_INTENT_EYES Eye color changes on intent. (G1 Synths and WJs)
+ TRAIT_INFILTRATOR_SYNTH Masked synthetic biology. Basic medHUDs will perceive the mob as human. (Infiltrator Synths)
+ TRAIT_UNSTRIPPABLE Makes it impossible to strip the inventory of this mob.
+ TRAIT_XENONID If the Hive is a Xenonid Hive
+ TRAIT_HIVEMIND_INTERFERENCE if the xeno's connection to the hivemind is cut
+ TRAIT_OPPOSABLE_THUMBS If the hive or xeno can use objects.
+ TRAIT_NO_HIVE_DELAY If the Hive delays round end (this is overridden for some hives). Does not occur naturally. Must be applied in events.
+ TRAIT_NO_COLOR If the Hive uses it's colors on the mobs. Does not occur naturally, excepting the Mutated hive.
+ TRAIT_NESTED If the mob is nested.
+ TRAIT_CRAWLER If the mob can crawl through pipes equipped
+ TRAIT_SIMPLE_DESC If the mob is hidden from examination
+ TRAIT_LISPING Replace s with th in talking
+ TRAIT_TWOBORE_TRAINING If the mob can handle the superheavy two-bore rifle and speaks its fluff lines when landing hits with it.
+ TRAIT_NEARSIGHTED_EQUIPMENT If the mob has equipment that alleviates nearsightedness
+ TRAIT_DEXTROUS If the mob is affected by drag delay.
+ TRAIT_CHARGING If the mob is currently charging (xeno only)
+ TRAIT_LEADERSHIP If the mob has leadership abilities (giving orders).
+ TRAIT_REAGENT_SCANNER If the mob can see the reagents contents of stuff
+ TRAIT_CANNOT_EAT If the mob cannot eat/be fed
+ TRAIT_SPOTTER_LAZED If the mob is being lazed by a sniper spotter
+ TRAIT_EAR_PROTECTION If the mob has ear protection. Protects from external ear damage effects. Includes explosions, firing the RPG, screeching DEAFNESS only, and flashbangs.
+ TRAIT_SANTA If the mob is Santa. Enough said.
+ TRAIT_BIMEX If the mob is wearing bimex glasses. Used for badass laser deflection flavor text.
+ TRAIT_EMOTE_CD_EXEMPT Stops emote cooldown
+ TRAIT_HOLDS_CANE If the mob is holding a cane.
+ TRAIT_USING_WHEELCHAIR If the mob is buckled to a wheelchair.
+ TRAIT_HARDCORE If the mob will instantly go permadead upon death
+ TRAIT_VULTURE_USER If the mob is able to use the vulture rifle or spotting scope
+ TRAIT_IN_TUTORIAL If the mob is currently loading a tutorial
+ TRAIT_CLOAKED If the mob is cloaked in any form
+ TRAIT_SPEC_VENDOR If the mob claimed a specialist set from a vendor
+ TRAIT_SPEC_KIT If the mob claimed a specialist set from a kit
+ TRAIT_SPEC What spec set the mob has claimed, if any
+ TRAIT_IRON_TEETH If the mob won't drop items held in face slot when downed
+ TRAIT_ABILITY_NO_PLASMA_TRANSFER Xenos with this trait cannot have plasma transfered to them
+ TRAIT_ABILITY_OVIPOSITOR Shows that the xeno queen is on ovi
+ TRAIT_ABILITY_BURROWED Used for burrowed mobs, prevent's SG/sentrys/claymores from autofiring
+ TRAIT_TOOL_TRADEBAND Can lockout blackmarket from ASRS console circuits.
+ TRAIT_TOOL_BLACKMARKET_HACKER Can hack ASRS consoles to access the black market
+ TRAIT_ERT_ID If this ID belongs to an ERT member
+ TRAIT_TABLE_FLIPPING If the table is being flipped, prevent any changes that will mess with adjacency handling
+ TRAIT_SOURCE_INHERENT Example trait source
+ ROUNDSTART_TRAIT cannot be removed without admin intervention
+ LYING_TRAIT Status trait coming from lying down through update_canmove()
+ TRAIT_SOURCE_SPECIES Status trait coming from species. .human/species_gain()
+ TRAIT_SOURCE_HIVE Status trait coming from the hive.
+ TRAIT_SOURCE_BUCKLE Status trait coming from being buckled.
+ TRAIT_SOURCE_SQUAD_LEADER Status trait coming from being assigned as [acting] squad leader.
+ TRAIT_SOURCE_JOB Status trait coming from their job
+ TRAIT_SOURCE_ADMIN Status trait forced by staff
+ TRAIT_SOURCE_TUTORIAL Status trait coming from a tutorial
+ TRAIT_SOURCE_EQUIPMENT Status trait coming from equipment
+ TRAIT_SOURCE_SKILL Status trait coming from skill
+ TRAIT_SOURCE_ATTACHMENT Status trait coming from attachment
+ TRAIT_SOURCE_ABILITY Status trait coming from ability
+ TRAIT_SOURCE_TEMPORARY_MUTE Status trait coming from temporary_mute
+ TRAIT_SOURCE_XENO_ACTION_CHARGE Status trait forced by the xeno action charge
+ TRAIT_SOURCE_HIVEMIND_INTERFERENCE Status trait coming from hivemind interference
+ XENO_NEST_TRAIT Status trait coming from a xeno nest
+ XENO_THROW_TRAIT Status trait from a generic throw by xeno abilities
+ TRAIT_SOURCE_FLIP_TABLE Status trait coming from being flipped or unflipped.
+ TRAIT_SOURCE_WEAPON Status trait from weapons?? buh
+ TRAIT_SOURCE_ITEM Status trait coming from generic items
+ BUCKLED_TRAIT trait associated to being buckled
+ FAKEDEATH_TRAIT trait source when an effect is coming from a fakedeath effect (refactor this)
+ BODY_TRAIT trait source where a condition comes from body state
+ LYING_DOWN_TRAIT Trait associated to lying down (having a [lying_angle] of a different value than zero).
+ STAT_TRAIT trait associated to a stat value or range of
+ OVIPOSITOR_TRAIT trait effect related to the queen ovipositor
+ CHOKEHOLD_TRAIT trait associated to being held in a chokehold
+ SPECIALIST_GEAR_TRAIT trait effect related to active specialist gear
+ DOUBLE_SEATS_TRAIT traits associated with usage of snowflake dropship double seats
+ XENO_WEED_TRAIT traits associated with xeno on-ground weeds
+ INTERACTION_TRAIT traits associated with actively interacted machinery
+ TRAIT_SOURCE_DROPSHIP_INTERACTION traits associated with interacting with a dropship
+ STUNNED_TRAIT traits bound by stunned status effects
+ KNOCKEDDOWN_TRAIT traits bound by knocked_down status effect
+ KNOCKEDOUT_TRAIT traits bound by knocked_out status effect
+ POUNCED_TRAIT traits from being pounced
+ STEP_TRIGGER_TRAIT traits from step_triggers on the map
+ HACKED_TRAIT traits from hacked machine interactions
+ CHLOROFORM_TRAIT traits from chloroform usage
Define Details
+BODY_TRAIT
+
+
+
+ trait source where a condition comes from body state
BUCKLED_TRAIT
+
+
+
+ trait associated to being buckled
+ traits from chloroform usage
CHOKEHOLD_TRAIT
+
+
+
+ trait associated to being held in a chokehold
COUNT_TRAIT_SOURCES
+
+
+
+
+ Returns the amount of sources for a trait. useful if you don't want to have a "thing counter" stuck around all the time
DOUBLE_SEATS_TRAIT
+
+
+
+ traits associated with usage of snowflake dropship double seats
FAKEDEATH_TRAIT
+
+
+
+ trait source when an effect is coming from a fakedeath effect (refactor this)
GET_TRAIT_SOURCES
+
+
+
+
+ Returns a list of trait sources for this trait. Only useful for wacko cases and internal futzing
+You should not be using this
HACKED_TRAIT
+
+
+
+ traits from hacked machine interactions
HAS_MIND_TRAIT
+
+
+
+
+ A simple helper for checking traits in a mob's mind
INTERACTION_TRAIT
+
+
+
+ traits associated with actively interacted machinery
KNOCKEDDOWN_TRAIT
+
+
+
+ traits bound by knocked_down status effect
KNOCKEDOUT_TRAIT
+
+
+
+ traits bound by knocked_out status effect
LYING_DOWN_TRAIT
+
+
+
+ Trait associated to lying down (having a [lying_angle] of a different value than zero).
LYING_TRAIT
+
+
+
+ Status trait coming from lying down through update_canmove()
OVIPOSITOR_TRAIT
+
+
+
+ trait effect related to the queen ovipositor
POUNCED_TRAIT
+
+
+
+ traits from being pounced
ROUNDSTART_TRAIT
+
+
+
+ cannot be removed without admin intervention
SPECIALIST_GEAR_TRAIT
+
+
+
+ trait effect related to active specialist gear
STAT_TRAIT
+
+
+
+ trait associated to a stat value or range of
STEP_TRIGGER_TRAIT
+
+
+
+ traits from step_triggers on the map
STUNNED_TRAIT
+
+
+
+ traits bound by stunned status effects
TRAIT_ABILITY_BURROWED
+
+
+
+ Used for burrowed mobs, prevent's SG/sentrys/claymores from autofiring
TRAIT_ABILITY_NO_PLASMA_TRANSFER
+
+
+
+ Xenos with this trait cannot have plasma transfered to them
TRAIT_ABILITY_OVIPOSITOR
+
+
+
+ Shows that the xeno queen is on ovi
TRAIT_BIMEX
+
+
+
+ If the mob is wearing bimex glasses. Used for badass laser deflection flavor text.
TRAIT_CANNOT_EAT
+
+
+
+ If the mob cannot eat/be fed
TRAIT_CHARGING
+
+
+
+ If the mob is currently charging (xeno only)
TRAIT_CLOAKED
+
+
+
+ If the mob is cloaked in any form
TRAIT_CRAWLER
+
+
+
+ If the mob can crawl through pipes equipped
TRAIT_DAZED
+
+
+
+ Disoriented. Unable to talk properly, and unable to use some skills as Xeno
TRAIT_DEXTROUS
+
+
+
+ If the mob is affected by drag delay.
TRAIT_EAR_PROTECTION
+
+
+
+ If the mob has ear protection. Protects from external ear damage effects. Includes explosions, firing the RPG, screeching DEAFNESS only, and flashbangs.
TRAIT_EMOTE_CD_EXEMPT
+
+
+
+ Stops emote cooldown
TRAIT_ERT_ID
+
+
+
+ If this ID belongs to an ERT member
TRAIT_FLOORED
+
+
+
+ Prevents voluntary standing or staying up on its own.
TRAIT_FORCED_STANDING
+
+
+
+ Forces user to stay standing
TRAIT_FOREIGN_BIO
+
+
+
+ Foreign biology. Basic medHUDs won't show the mob. (Yautja, Zombies)
TRAIT_HARDCORE
+
+
+
+ If the mob will instantly go permadead upon death
TRAIT_HIVEMIND_INTERFERENCE
+
+
+
+ if the xeno's connection to the hivemind is cut
TRAIT_HOLDS_CANE
+
+
+
+ If the mob is holding a cane.
TRAIT_IMMOBILIZED
+
+
+
+ Prevents voluntary movement.
TRAIT_INCAPACITATED
+
+
+
+ Stuns preventing movement and using objects but without further impairement
TRAIT_INFILTRATOR_SYNTH
+
+
+
+ Masked synthetic biology. Basic medHUDs will perceive the mob as human. (Infiltrator Synths)
TRAIT_INTENT_EYES
+
+
+
+ Eye color changes on intent. (G1 Synths and WJs)
TRAIT_IN_TUTORIAL
+
+
+
+ If the mob is currently loading a tutorial
TRAIT_IRON_TEETH
+
+
+
+ If the mob won't drop items held in face slot when downed
TRAIT_KNOCKEDOUT
+
+
+
+ Forces the user to stay unconscious.
TRAIT_LEADERSHIP
+
+
+
+ If the mob has leadership abilities (giving orders).
TRAIT_LISPING
+
+
+
+ Replace s with th in talking
TRAIT_MERGED_WITH_WEEDS
+
+
+
+ Apply this to identify a mob as merged with weeds
TRAIT_NEARSIGHTED_EQUIPMENT
+
+
+
+ If the mob has equipment that alleviates nearsightedness
TRAIT_NESTED
+
+
+
+ If the mob is nested.
TRAIT_NO_COLOR
+
+
+
+ If the Hive uses it's colors on the mobs. Does not occur naturally, excepting the Mutated hive.
TRAIT_NO_HIVE_DELAY
+
+
+
+ If the Hive delays round end (this is overridden for some hives). Does not occur naturally. Must be applied in events.
TRAIT_NO_STRAY
+
+
+
+ Mob wont get hit by stray projectiles
TRAIT_OPPOSABLE_THUMBS
+
+
+
+ If the hive or xeno can use objects.
TRAIT_REAGENT_SCANNER
+
+
+
+ If the mob can see the reagents contents of stuff
TRAIT_SANTA
+
+
+
+ If the mob is Santa. Enough said.
TRAIT_SIMPLE_DESC
+
+
+
+ If the mob is hidden from examination
TRAIT_SOURCE_ABILITY
+
+
+
+
+ Status trait coming from ability
TRAIT_SOURCE_ADMIN
+
+
+
+ Status trait forced by staff
TRAIT_SOURCE_ATTACHMENT
+
+
+
+
+ Status trait coming from attachment
TRAIT_SOURCE_BUCKLE
+
+
+
+ Status trait coming from being buckled.
TRAIT_SOURCE_DROPSHIP_INTERACTION
+
+
+
+ traits associated with interacting with a dropship
TRAIT_SOURCE_EQUIPMENT
+
+
+
+
+ Status trait coming from equipment
TRAIT_SOURCE_FLIP_TABLE
+
+
+
+ Status trait coming from being flipped or unflipped.
TRAIT_SOURCE_HIVE
+
+
+
+ Status trait coming from the hive.
TRAIT_SOURCE_HIVEMIND_INTERFERENCE
+
+
+
+ Status trait coming from hivemind interference
TRAIT_SOURCE_INHERENT
+
+
+
+ Example trait source
TRAIT_SOURCE_ITEM
+
+
+
+ Status trait coming from generic items
TRAIT_SOURCE_JOB
+
+
+
+ Status trait coming from their job
TRAIT_SOURCE_SKILL
+
+
+
+
+ Status trait coming from skill
TRAIT_SOURCE_SPECIES
+
+
+
+ Status trait coming from species. .human/species_gain()
TRAIT_SOURCE_SQUAD_LEADER
+
+
+
+ Status trait coming from being assigned as [acting] squad leader.
TRAIT_SOURCE_TEMPORARY_MUTE
+
+
+
+ Status trait coming from temporary_mute
TRAIT_SOURCE_TUTORIAL
+
+
+
+ Status trait coming from a tutorial
TRAIT_SOURCE_WEAPON
+
+
+
+ Status trait from weapons?? buh
TRAIT_SOURCE_XENO_ACTION_CHARGE
+
+
+
+ Status trait forced by the xeno action charge
TRAIT_SPEC
+
+
+
+
+ What spec set the mob has claimed, if any
TRAIT_SPEC_KIT
+
+
+
+ If the mob claimed a specialist set from a kit
TRAIT_SPEC_VENDOR
+
+
+
+ If the mob claimed a specialist set from a vendor
TRAIT_SPOTTER_LAZED
+
+
+
+ If the mob is being lazed by a sniper spotter
TRAIT_SUPER_STRONG
+
+
+
+ Absolutely RIPPED. Can do misc. heavyweight stuff others can't. (Yautja, Synths)
TRAIT_TABLE_FLIPPING
+
+
+
+ If the table is being flipped, prevent any changes that will mess with adjacency handling
TRAIT_TEMPORARILY_MUTED
+
+
+
+ Apply this to identify a mob as temporarily muted
+ Can hack ASRS consoles to access the black market
+ Can lockout blackmarket from ASRS console circuits.
TRAIT_TWOBORE_TRAINING
+
+
+
+ If the mob can handle the superheavy two-bore rifle and speaks its fluff lines when landing hits with it.
TRAIT_UNDENSE
+
+
+
+ Example trait
+Apply this to make a mob not dense, and remove it when you want it to no longer make them undense, other sorces of undesity will still apply. Always define a unique source when adding a new instance of this!
TRAIT_UNSTRIPPABLE
+
+
+
+ Makes it impossible to strip the inventory of this mob.
TRAIT_USING_WHEELCHAIR
+
+
+
+ If the mob is buckled to a wheelchair.
TRAIT_VULTURE_USER
+
+
+
+ If the mob is able to use the vulture rifle or spotting scope
TRAIT_XENONID
+
+
+
+ If the Hive is a Xenonid Hive
TRAIT_YAUTJA_TECH
+
+
+
+ Knowledge of Yautja technology
XENO_NEST_TRAIT
+
+
+
+ Status trait coming from a xeno nest
XENO_THROW_TRAIT
+
+
+
+ Status trait from a generic throw by xeno abilities
XENO_WEED_TRAIT
+
+
+
+ traits associated with xeno on-ground weeds
+
+
+
diff --git a/code/__DEFINES/turf_flags.html b/code/__DEFINES/turf_flags.html
new file mode 100644
index 000000000000..316585d2f4e1
--- /dev/null
+++ b/code/__DEFINES/turf_flags.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ code/__DEFINES/turf_flags.dm - byond
+
+
+
+
+code/__DEFINES/turf_flags.dm
+
+
+
+
+ TURF_ORGANIC Marks a turf as organic. Used for alien wall and membranes.
+ UNUSED_RESERVATION_TURF If a turf is an usused reservation turf awaiting assignment
+ RESERVATION_TURF If a turf is a reserved turf
+ CHANGETURF_IGNORE_AIR This flag prevents changeturf from gathering air from nearby turfs to fill the new turf with an approximation of local air
+ CHANGETURF_SKIP A flag for PlaceOnTop to just instance the new turf instead of calling ChangeTurf. Used for uninitialized turfs NOTHING ELSE
Define Details
+CHANGETURF_IGNORE_AIR
+
+
+
+ This flag prevents changeturf from gathering air from nearby turfs to fill the new turf with an approximation of local air
CHANGETURF_SKIP
+
+
+
+ A flag for PlaceOnTop to just instance the new turf instead of calling ChangeTurf. Used for uninitialized turfs NOTHING ELSE
RESERVATION_TURF
+
+
+
+ If a turf is a reserved turf
TURF_ORGANIC
+
+
+
+ Marks a turf as organic. Used for alien wall and membranes.
UNUSED_RESERVATION_TURF
+
+
+
+ If a turf is an usused reservation turf awaiting assignment
+
+
+
diff --git a/code/__DEFINES/turfs.html b/code/__DEFINES/turfs.html
new file mode 100644
index 000000000000..6b764d742779
--- /dev/null
+++ b/code/__DEFINES/turfs.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+ code/__DEFINES/turfs.dm - byond
+
+
+
+
+code/__DEFINES/turfs.dm
+
+
+
+
+ RECT_TURFS Returns a list of turfs within H_RADIUS tiles horizontally and V_RADIUS tiles vertically of CENTER.
+ RANGE_TURFS Returns a list of turfs within Dist tiles of Center. When Dist >= 5 faster than a range()
filtered to /turf
s.
+ ORANGE_TURFS Returns a list of turfs within Dist tiles of Center, excluding Center. When Dist >= 5 faster than an orange()
filtered to /turf
s.
+ Z_TURFS Returns all turfs in a zlevel
+ CORNER_BLOCK Returns a list of turfs in the rectangle specified by BOTTOM LEFT corner and height/width
+ CORNER_BLOCK_OFFSET Returns a list of turfs similar to CORNER_BLOCK but with offsets
+ CORNER_OUTLINE Returns an outline (neighboring turfs) of the given block
Define Details
+CORNER_BLOCK
+
+
+
+
+ Returns a list of turfs in the rectangle specified by BOTTOM LEFT corner and height/width
CORNER_BLOCK_OFFSET
+ (corner, width, height, offset_x, offset_y)
+
+
+
+ Returns a list of turfs similar to CORNER_BLOCK but with offsets
CORNER_OUTLINE
+
+
+
+
+ Returns an outline (neighboring turfs) of the given block
ORANGE_TURFS
+
+
+
+
+ Returns a list of turfs within Dist tiles of Center, excluding Center. When Dist >= 5 faster than an orange()
filtered to /turf
s.
RANGE_TURFS
+
+
+
+
+ Returns a list of turfs within Dist tiles of Center. When Dist >= 5 faster than a range()
filtered to /turf
s.
RECT_TURFS
+ (H_RADIUS, V_RADIUS, CENTER)
+
+
+
+ Returns a list of turfs within H_RADIUS tiles horizontally and V_RADIUS tiles vertically of CENTER.
Z_TURFS
+
+
+
+
+ Returns all turfs in a zlevel
+
+
+
diff --git a/code/__DEFINES/unit_tests.html b/code/__DEFINES/unit_tests.html
new file mode 100644
index 000000000000..41a26e66a784
--- /dev/null
+++ b/code/__DEFINES/unit_tests.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ code/__DEFINES/unit_tests.dm - byond
+
+
+
+
+code/__DEFINES/unit_tests.dm
+
+
+
+
+ PERFORM_ALL_TESTS Are tests enabled with no focus?
+Use this when performing test assertions outside of a unit test,
+since a focused test means that you're trying to run a test quickly.
+If a parameter is provided, will check if the focus is on that test name.
+For example, PERFORM_ALL_TESTS(log_mapping) will only run if either
+no test is focused, or the focus is log_mapping.
+ TEST_ONLY_ASSERT ASSERT(), but it only actually does anything during unit tests
Define Details
+
+ Are tests enabled with no focus?
+Use this when performing test assertions outside of a unit test,
+since a focused test means that you're trying to run a test quickly.
+If a parameter is provided, will check if the focus is on that test name.
+For example, PERFORM_ALL_TESTS(log_mapping) will only run if either
+no test is focused, or the focus is log_mapping.
TEST_ONLY_ASSERT
+
+
+
+
+ ASSERT(), but it only actually does anything during unit tests
+
+
+
diff --git a/code/__DEFINES/vehicle.html b/code/__DEFINES/vehicle.html
new file mode 100644
index 000000000000..7a8d373cd91a
--- /dev/null
+++ b/code/__DEFINES/vehicle.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/__DEFINES/vehicle.dm - byond
+
+
+
+
+code/__DEFINES/vehicle.dm
+
+
+
+Define Details
+VEHICLE_BYPASS_BLOCKERS
+
+
+
+ Vehicle can bypass vehicle blockers, typically going further into maps than intended
VEHICLE_CLASS_WEAK
+
+
+
+ Vehicle Classes (for future)
VEHICLE_TOGGLE_SHIFT_CLICK_GUNNER
+
+
+
+ Toggle between Shift click and MMB click for gunner
+
+
+
diff --git a/code/__DEFINES/vendors.html b/code/__DEFINES/vendors.html
new file mode 100644
index 000000000000..cba9b4c92743
--- /dev/null
+++ b/code/__DEFINES/vendors.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ code/__DEFINES/vendors.dm - byond
+
+
+
+
+code/__DEFINES/vendors.dm
+
+
+
+
+ VEND_STOCK_DYNAMIC Vendors with this flag will fill retroactively based on latejoining players,
+and expect a scale multiplier instead of amount of items
+ VEND_PROPS Vends props looking like the items instead of the actual items. Basically for tutorials.
+ VEND_TOKEN_VOID Token invalid/unrecognised.
Define Details
+VEND_PROPS
+
+
+
+ Vends props looking like the items instead of the actual items. Basically for tutorials.
VEND_STOCK_DYNAMIC
+
+
+
+ Vendors with this flag will fill retroactively based on latejoining players,
+and expect a scale multiplier instead of amount of items
VEND_TOKEN_VOID
+
+
+
+ Token invalid/unrecognised.
+
+
+
diff --git a/code/__DEFINES/weapon_stats.html b/code/__DEFINES/weapon_stats.html
new file mode 100644
index 000000000000..d73ba3e352a0
--- /dev/null
+++ b/code/__DEFINES/weapon_stats.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__DEFINES/weapon_stats.dm - byond
+
+
+
+
+code/__DEFINES/weapon_stats.dm
+
+
+
+
+ FIRE_VARIANT_DEFAULT Default fire behavior: No associated values.
+ FIRE_VARIANT_TYPE_B "Type B" Armor Shredding Greenfire: Burn Time T5, Burn Level T2, Slows on Tile, Increased Tile Damage, Easier Extinguishing.
Define Details
+FIRE_VARIANT_DEFAULT
+
+
+
+ Default fire behavior: No associated values.
FIRE_VARIANT_TYPE_B
+
+
+
+ "Type B" Armor Shredding Greenfire: Burn Time T5, Burn Level T2, Slows on Tile, Increased Tile Damage, Easier Extinguishing.
+
+
+
diff --git a/code/__DEFINES/xeno.html b/code/__DEFINES/xeno.html
new file mode 100644
index 000000000000..da9acde36f3a
--- /dev/null
+++ b/code/__DEFINES/xeno.html
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+ code/__DEFINES/xeno.dm - byond
+
+
+
+
+code/__DEFINES/xeno.dm
+
+
+
+Define Details
+BUILD_TIME_MULT_LESSER_DRONE
+
+
+
+ Multiplier for time taken for a xeno to place down a resin structure
ENDGAME_LARVA_CAP_MULTIPLIER
+
+
+
+ Xenos need to have their number to marines ratio lower than this to get larvae from pylons
FACEHUGGER_WINDUP_DURATION
+
+
+
+ The duration it takes a player controlled facehugger to leap or hug adjacently
HIJACK_RATIO_FOR_TACMAP
+
+
+
+ If this is marine to xeno ratio during hijack, xenos see marines on tacmap
LARVA_ADDITION_MULTIPLIER
+
+
+
+ What percent of their numbers xeno get from pylons
SINGLETARGETGUT
+
+
+
+ Defines for Abomination ability /datum/action/xeno_action/activable/feralfrenzy
WEED_EXPLOSION_DAMAGEMULT
+
+
+
+ Between 2% to 10% of explosion severity
WEED_XENO_DAMAGEMULT
+
+
+
+ Multiplicative. The amount of damage xenos do to weeds.
XENO_ATTACK_ACTION
+
+
+
+ Full attack delay.
XENO_AVAILABLE_TIMER
+
+
+
+ The time against away_timer when an AFK xeno gets listed in the available list so ghosts can get ready
XENO_BURIED_LARVA_TIME_LIMIT
+
+
+
+ The amount of time after round start before buried larva spawns are disallowed
XENO_COMM_ACQUISITION_TIME
+
+
+
+ The time when xenos can start taking over comm towers
XENO_FACEHUGGER_LEAVE_TIMER
+
+
+
+ The time against away_timer when an AFK facehugger converts to a npc
XENO_HIJACK_EVILUTION_BUFF
+
+
+
+ Evolution boost during hijack
XENO_HIJACK_EVILUTION_TIME
+
+
+
+ For how long the buff lasts
XENO_JOIN_AFK_TIME_LIMIT
+
+
+
+ The time of inactivity you cannot exceed to join as a xeno
XENO_JOIN_DEAD_LARVA_TIME
+
+
+
+ The time you must be dead to join as a xeno larva
XENO_JOIN_DEAD_TIME
+
+
+
+ The time you must be dead to join as xeno (not larva)
XENO_LEAVE_TIMER
+
+
+
+ The time against away_timer when an AFK xeno (not larva) can be replaced
XENO_LEAVE_TIMER_LARVA
+
+
+
+ The time against away_timer when an AFK xeno larva can be replaced
XENO_NOBODY
+
+
+
+ Nobody can create constructions. (Feral)
XENO_NONCOMBAT_ACTION
+
+
+
+ Noticeable but shorter than full delay.
XENO_NO_DELAY_ACTION
+
+
+
+ No delay at all.
XENO_PYLON_ACTIVATION_COOLDOWN
+
+
+
+ The time it takes for a pylon to give one larva while activated
XENO_PYLON_DESTRUCTION_DELAY
+
+
+
+ The time until you can re-corrupt a comms relay after the last pylon was destroyed
xeno_attack_delay
+
+
+
+
+ Usually 1 second delay.
xeno_miss_delay
+
+
+
+
+ Usually half a second's delay.
xeno_noncombat_delay
+
+
+
+
+ 0.4 seconds, legacy 'open hand clicked something adjacent' delay.
+
+
+
diff --git a/code/__HELPERS/#maths.html b/code/__HELPERS/#maths.html
new file mode 100644
index 000000000000..ead1c4ba7668
--- /dev/null
+++ b/code/__HELPERS/#maths.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__HELPERS/#maths.dm - byond
+
+
+
+
+code/__HELPERS/#maths.dm
+
+
+
+
+ /proc/display_power
+ Format a power value in W, kW, MW, or GW.
+ /proc/anyprob
+ chances are 1:value. anyprob(1) will always return true
+ /proc/bit_count
+ counts the number of bits in Byond's 16-bit width field, in constant time and memory!
+ /proc/make_tuple
+ Returns the name of the mathematical tuple of same length as the number arg (rounded down).
+ /proc/at_least
+ Takes a value, and a threshold it has to at least match
+returns the correctly signed value max'd to the threshold
+
+
+
diff --git a/code/__HELPERS/_lists.html b/code/__HELPERS/_lists.html
new file mode 100644
index 000000000000..5ee78df84c6b
--- /dev/null
+++ b/code/__HELPERS/_lists.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ code/__HELPERS/_lists.dm - byond
+
+
+
+
+code/__HELPERS/_lists.dm
+
+
+
+
+ COMPARE_KEY Passed into BINARY_INSERT to compare keys
+ COMPARE_VALUE Passed into BINARY_INSERT to compare values
+ BINARY_INSERT Binary search sorted insert
+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/sort_list
+ sort any value in a list
+ /proc/bitfield_to_list
+ Converts a bitfield to a list of numbers (or words if a wordlist is provided)
+ /proc/pick_weight
+ Picks a random element from a list based on a weighting system.
+For example, given the following list:
+A = 6, B = 3, C = 1, D = 0
+A would have a 60% chance of being picked,
+B would have a 30% chance of being picked,
+C would have a 10% chance of being picked,
+and D would have a 0% chance of being picked.
+You should only pass integers in.
+ /proc/list_clear_nulls
+ Removes any null entries from the list
+Returns TRUE if the list had nulls, FALSE otherwise
+ /proc/unique_list
+ Return a list with no duplicate entries
+ /proc/unique_list_in_place
+ same as unique_list, but returns nothing and acts on list in place (also handles associated values properly)
+ /proc/shuffle_inplace
+ same as shuffle, but returns nothing and acts on list in place
Define Details
+BINARY_INSERT
+ (INPUT, LIST, TYPECONT, COMPARE, COMPARISON, COMPTYPE)
+
+
+
+ Binary search sorted insert
+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
+
+
+
diff --git a/code/__HELPERS/_time.html b/code/__HELPERS/_time.html
new file mode 100644
index 000000000000..5e03446a0a38
--- /dev/null
+++ b/code/__HELPERS/_time.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/_time.dm - byond
+
+
+
+
+code/__HELPERS/_time.dm
+
+
+
+
+ /proc/worldtime2text
+ Returns the world time in english. Do not use to get date information - starts at 0 + a random time offset from 10 minutes to 24 hours.
+
+
+
diff --git a/code/__HELPERS/animations.html b/code/__HELPERS/animations.html
new file mode 100644
index 000000000000..d59f0c8893ff
--- /dev/null
+++ b/code/__HELPERS/animations.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__HELPERS/animations.dm - byond
+
+
+
+
+code/__HELPERS/animations.dm
+
+
+
+Define Details
+
+ The duration of the animate call in mob/living/update_transform
+
+
+
diff --git a/code/__HELPERS/chat.html b/code/__HELPERS/chat.html
new file mode 100644
index 000000000000..faf868aa29c8
--- /dev/null
+++ b/code/__HELPERS/chat.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/__HELPERS/chat.dm - byond
+
+
+
+
+code/__HELPERS/chat.dm
+
+
+
+
+ /proc/send2chat
+ Asynchronously sends a message to TGS chat channels.
+ /proc/send2adminchat
+ Sends a message to TGS admin chat channels.
+
+
+
diff --git a/code/__HELPERS/cmp.html b/code/__HELPERS/cmp.html
new file mode 100644
index 000000000000..f586d3b4dd4b
--- /dev/null
+++ b/code/__HELPERS/cmp.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/__HELPERS/cmp.dm - byond
+
+
+
+
+code/__HELPERS/cmp.dm
+
+
+
+
+ /proc/cmp_mob_deathtime_asc
+ Compares mobs based on their timeofdeath value in ascending order
+ /proc/cmp_obs_larvaqueuetime_asc
+ Compares observers based on their larva_queue_time value in ascending order
+Assumes the client on the observer is not null
+
+
+
diff --git a/code/__HELPERS/datums.html b/code/__HELPERS/datums.html
new file mode 100644
index 000000000000..24876f6d65e5
--- /dev/null
+++ b/code/__HELPERS/datums.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/datums.dm - byond
+
+
+
+
+code/__HELPERS/datums.dm
+
+
+
+
+ /proc/is_valid_src
+ Check if a datum has not been deleted and is a valid source
+
+
+
diff --git a/code/__HELPERS/files.html b/code/__HELPERS/files.html
new file mode 100644
index 000000000000..5a844f98f937
--- /dev/null
+++ b/code/__HELPERS/files.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/__HELPERS/files.dm - byond
+
+
+
+
+code/__HELPERS/files.dm
+
+
+
+
+ /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 000000000000..5483d203b9cd
--- /dev/null
+++ b/code/__HELPERS/game.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ code/__HELPERS/game.dm - byond
+
+
+
+
+code/__HELPERS/game.dm
+
+
+
+
+
+
+
diff --git a/code/__HELPERS/generators.html b/code/__HELPERS/generators.html
new file mode 100644
index 000000000000..67f6d1f519db
--- /dev/null
+++ b/code/__HELPERS/generators.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/__HELPERS/generators.dm - byond
+
+
+
+
+code/__HELPERS/generators.dm
+
+
+
+
+ /proc/return_generator_args
+ returns the arguments given to a generator and manually extracts them from the internal byond object
+returns:
+
+
+
diff --git a/code/__HELPERS/guid.html b/code/__HELPERS/guid.html
new file mode 100644
index 000000000000..cd37a223e1ed
--- /dev/null
+++ b/code/__HELPERS/guid.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/__HELPERS/guid.dm - byond
+
+
+
+
+code/__HELPERS/guid.dm
+
+
+
+
+ /proc/GUID
+ returns a GUID like identifier (using a mostly made up record format)
+guids are not on their own suitable for access or security tokens, as most of their bits are predictable.
+(But may make a nice salt to one)
+
+
+
diff --git a/code/__HELPERS/icons.html b/code/__HELPERS/icons.html
new file mode 100644
index 000000000000..e4c1aeaeb2d1
--- /dev/null
+++ b/code/__HELPERS/icons.html
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ code/__HELPERS/icons.dm - byond
+
+
+
+
+code/__HELPERS/icons.dm
+
+
+
+
+ /proc/getFlatIcon
+ Create a single /icon from a given /atom or /image .
+ /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/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/icon2html
+ 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"
+but they pass both isicon() and isfile() checks. theyre the easiest case since stringifying them gives us the path we want
+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/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 extention.)
+ /proc/icon_exists
+ Checks if the given iconstate exists in the given file, caching the result. Setting scream to TRUE will print a stack trace ONCE.
+ /proc/center_image
+ Center's an image.
+Requires:
+The Image
+The x dimension of the icon file used in the image
+The y dimension of the icon file used in the image
+eg: center_image(image_to_center, 32,32)
+eg2: center_image(image_to_center, 96,96)
+
+
+
diff --git a/code/__HELPERS/lazy_templates.html b/code/__HELPERS/lazy_templates.html
new file mode 100644
index 000000000000..916637b79c6a
--- /dev/null
+++ b/code/__HELPERS/lazy_templates.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/lazy_templates.dm - byond
+
+
+
+
+code/__HELPERS/lazy_templates.dm
+
+
+
+
+ /proc/generate_lazy_template_map
+ Iterates through all lazy template datums that exist and returns a list of them as an associative list of type -> instance.
+
+
+
diff --git a/code/__HELPERS/lighting.html b/code/__HELPERS/lighting.html
new file mode 100644
index 000000000000..7b21cfecd4c0
--- /dev/null
+++ b/code/__HELPERS/lighting.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/__HELPERS/lighting.dm - byond
+
+
+
+
+code/__HELPERS/lighting.dm
+
+
+
+
+
+
+
diff --git a/code/__HELPERS/lists.html b/code/__HELPERS/lists.html
new file mode 100644
index 000000000000..bd547bbf983f
--- /dev/null
+++ b/code/__HELPERS/lists.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/__HELPERS/lists.dm - byond
+
+
+
+
+code/__HELPERS/lists.dm
+
+
+
+
+ /proc/pick_n_take
+ Pick a random element from the list and remove it from the list.
+ /proc/mergeListsSum
+ Sums values in two associative lists, from mergee into result, in place
+ /proc/sort_list_dist
+ Returns a list of atoms sorted by each entry's distance to target
.
+ /proc/reverse_range
+ replaces reverseList ~Carnie
+
+
+
diff --git a/code/__HELPERS/logging.html b/code/__HELPERS/logging.html
new file mode 100644
index 000000000000..28bd7db7f36b
--- /dev/null
+++ b/code/__HELPERS/logging.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__HELPERS/logging.dm - byond
+
+
+
+
+code/__HELPERS/logging.dm
+
+
+
+
+ /proc/log_perf
+ Logging for game performance
+ /proc/log_tgui
+ Appends a tgui-related log entry. All arguments are optional.
+ /proc/log_mapping
+ Logging for mapping errors
+
+
+
diff --git a/code/__HELPERS/matrices.html b/code/__HELPERS/matrices.html
new file mode 100644
index 000000000000..c2e3021d9024
--- /dev/null
+++ b/code/__HELPERS/matrices.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__HELPERS/matrices.dm - byond
+
+
+
+
+code/__HELPERS/matrices.dm
+
+
+
+
+ /proc/color_matrix_from_string
+ Converts a hex color string to a color matrix.
+ /proc/color_matrix_recolor_rgb
+ Creates a matrix to re-paint a sprite, replacing pure red, green, and blue with 3 different shades. Doesn't work with mixed tones of RGB or whites or greys
+-- must be pure. R/G/B 255 becomes the new color, darker shades become correspondingly darker.
+The arg is a list of hex colours, for ex "list("#d4c218", "#b929f7", "#339933"".
+if you want variations of the same color, color_matrix_recolor_red() is simpler.
+ /proc/color_matrix_recolor_red
+ Creates a matrix to re-paint a sprite, replacing shades of red with corresponding shades of a new color. In the base sprite, Hue must always be pure red.
+Saturation and Lightness can be anything. Arg is a hex string for a color. Proc is by Lummox JR, www.byond.com/forum/post/2209545
+color_matrix_recolor_rgb is more complex, but gives more precise control over the palette, at least if using 3 or fewer colours.
+
+
+
diff --git a/code/__HELPERS/nameof.html b/code/__HELPERS/nameof.html
new file mode 100644
index 000000000000..9cc0f596c951
--- /dev/null
+++ b/code/__HELPERS/nameof.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ code/__HELPERS/nameof.dm - byond
+
+
+
+
+code/__HELPERS/nameof.dm
+
+
+
+
+ NAMEOF NAMEOF: Compile time checked variable name to string conversion
+evaluates to a string equal to "X", but compile errors if X isn't a var on datum.
+datum may be null, but it does need to be a typed var.
+ NAMEOF_STATIC NAMEOF that actually works in static definitions because src::type requires src to be defined
Define Details
+NAMEOF
+
+
+
+
+ NAMEOF: Compile time checked variable name to string conversion
+evaluates to a string equal to "X", but compile errors if X isn't a var on datum.
+datum may be null, but it does need to be a typed var.
NAMEOF_STATIC
+
+
+
+
+ NAMEOF that actually works in static definitions because src::type requires src to be defined
+
+
+
diff --git a/code/__HELPERS/qdel.html b/code/__HELPERS/qdel.html
new file mode 100644
index 000000000000..95a107a5964d
--- /dev/null
+++ b/code/__HELPERS/qdel.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/qdel.dm - byond
+
+
+
+
+code/__HELPERS/qdel.dm
+
+
+
+
+
+
+
diff --git a/code/__HELPERS/string_lists.html b/code/__HELPERS/string_lists.html
new file mode 100644
index 000000000000..d7e959c9d736
--- /dev/null
+++ b/code/__HELPERS/string_lists.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/__HELPERS/string_lists.dm - byond
+
+
+
+
+code/__HELPERS/string_lists.dm
+
+
+
+
+ /proc/string_list
+ Caches lists with non-numeric stringify-able values (text or typepath).
+ /proc/baseturfs_string_list
+ A wrapper for baseturf string lists, to offer support of non list values, and a stack_trace if we have major issues
+
+
+
diff --git a/code/__HELPERS/text.html b/code/__HELPERS/text.html
new file mode 100644
index 000000000000..c3c5cbc2fde5
--- /dev/null
+++ b/code/__HELPERS/text.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/__HELPERS/text.dm - byond
+
+
+
+
+code/__HELPERS/text.dm
+
+
+
+
+
+
+
diff --git a/code/__HELPERS/traits.html b/code/__HELPERS/traits.html
new file mode 100644
index 000000000000..afc31645fa3b
--- /dev/null
+++ b/code/__HELPERS/traits.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/__HELPERS/traits.dm - byond
+
+
+
+
+code/__HELPERS/traits.dm
+
+
+
+
+ /proc/___TraitAdd
+ DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
+ /proc/___TraitRemove
+ DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
+
+
+
diff --git a/code/__HELPERS/type2type.html b/code/__HELPERS/type2type.html
new file mode 100644
index 000000000000..d1bd2a424051
--- /dev/null
+++ b/code/__HELPERS/type2type.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/__HELPERS/type2type.dm - byond
+
+
+
+
+code/__HELPERS/type2type.dm
+
+
+
+
+ /proc/url2htmlloader
+ Return html to load a url.
+for use inside of browse() calls to html assets that might be loaded on a cdn.
+ /proc/big_number_to_text
+ Formats a larger number to correct textual representation without losing data
+
+
+
diff --git a/code/__HELPERS/unsorted.html b/code/__HELPERS/unsorted.html
new file mode 100644
index 000000000000..f617dc6f00aa
--- /dev/null
+++ b/code/__HELPERS/unsorted.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ code/__HELPERS/unsorted.dm - byond
+
+
+
+
+code/__HELPERS/unsorted.dm
+
+
+
+
+ /proc/get_pixel_position_x
+ Gives X position on pixel grid of an object, accounting for offsets
+ /proc/get_pixel_position_y
+ Gives Y position on pixel grid of an object, accounting for offsets
+ /proc/Get_Angle
+ Calculate the angle between two atoms. Uses north-clockwise convention: NORTH = 0, EAST = 90, etc.
+ /proc/delta_to_angle
+ Calculate the angle produced by a pair of x and y deltas. Uses north-clockwise convention: NORTH = 0, EAST = 90, etc.
+ /proc/TurfBlockedNonWindow
+ the actual dir between the start and target turf
+The direction that mover's path is being blocked by
+ /proc/get_cardinal_dir
+ Returns the nearest cardinal dir between two atoms. Favors NORTH/SOUTH on perfect diagonals. Consistent and reversible.
+ /proc/get_line
+ Get a list of turfs in a line from start_atom
to end_atom
.
+ /proc/dview
+ Version of view() which ignores darkness, because BYOND doesn't have it (I actually suggested it but it was tagged redundant, BUT HEARERS IS A T- /rant).
+ /proc/doview
+ Version of oview() which ignores darkness
+ VARSET_WEAK_CALLBACK Same as VARSET_CALLBACK, but uses a weakref to the datum.
+Use this if the timer is exceptionally long.
+ UNTIL_OR_TIMEOUT Macro for cases where an UNTIL() may go on forever (such as for an http request)
+ /proc/getpois
+ Returns a list of all items of interest with their name
+ /proc/get_related_directions
+ Given a direction, return the direction and the +-45 degree directions next to it
+ /proc/should_block_game_interaction
+ Returns TRUE if the target is somewhere that the game should not interact with if possible
+In this case, admin Zs and tutorial areas
Define Details
+UNTIL_OR_TIMEOUT
+
+
+
+
+ Macro for cases where an UNTIL() may go on forever (such as for an http request)
VARSET_WEAK_CALLBACK
+
+
+
+
+ Same as VARSET_CALLBACK, but uses a weakref to the datum.
+Use this if the timer is exceptionally long.
+
+
+
diff --git a/code/__HELPERS/verb_helpers.html b/code/__HELPERS/verb_helpers.html
new file mode 100644
index 000000000000..f8c81df74f5c
--- /dev/null
+++ b/code/__HELPERS/verb_helpers.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/__HELPERS/verb_helpers.dm - byond
+
+
+
+
+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 000000000000..b90306bebd55
--- /dev/null
+++ b/code/_byond_version_compat.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ code/_byond_version_compat.dm - byond
+
+
+
+
+code/_byond_version_compat.dm
+
+
+
+
+ PROC_REF Call by name proc references, checks if the proc exists on either this type or as a global proc.
+ VERB_REF Call by name verb references, checks if the verb exists on either this type or as a global verb.
+ TYPE_PROC_REF Call by name proc reference, checks if the proc exists on either the given type or as a global proc
+ TYPE_VERB_REF Call by name verb reference, checks if the verb exists on either the given type or as a global verb
+ GLOBAL_PROC_REF Call by name proc reference, checks if the proc is an existing global proc
Define Details
+GLOBAL_PROC_REF
+
+
+
+
+ Call by name proc reference, checks if the proc is an existing global proc
PROC_REF
+
+
+
+
+ Call by name proc references, checks if the proc exists on either this type or as a global proc.
TYPE_PROC_REF
+
+
+
+
+ Call by name proc reference, checks if the proc exists on either the given type or as a global proc
TYPE_VERB_REF
+
+
+
+
+ Call by name verb reference, checks if the verb exists on either the given type or as a global verb
VERB_REF
+
+
+
+
+ Call by name verb references, checks if the verb exists on either this type or as a global verb.
+
+
+
diff --git a/code/_globalvars/bitfields.html b/code/_globalvars/bitfields.html
new file mode 100644
index 000000000000..3fcbce18880b
--- /dev/null
+++ b/code/_globalvars/bitfields.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/_globalvars/bitfields.dm - byond
+
+
+
+
+code/_globalvars/bitfields.dm
+
+
+
+
+
+
+
diff --git a/code/_globalvars/global_lists.html b/code/_globalvars/global_lists.html
new file mode 100644
index 000000000000..3030ba8cac3b
--- /dev/null
+++ b/code/_globalvars/global_lists.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/_globalvars/global_lists.dm - byond
+
+
+
+
+code/_globalvars/global_lists.dm
+
+
+
+
+
+
+
diff --git a/code/_globalvars/lists/keybindings.html b/code/_globalvars/lists/keybindings.html
new file mode 100644
index 000000000000..3a82c9e51b29
--- /dev/null
+++ b/code/_globalvars/lists/keybindings.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/_globalvars/lists/keybindings.dm - byond
+
+
+
+
+code/_globalvars/lists/keybindings.dm
+
+
+
+
+
+
+
diff --git a/code/_globalvars/misc.html b/code/_globalvars/misc.html
new file mode 100644
index 000000000000..44a9ebda7b1e
--- /dev/null
+++ b/code/_globalvars/misc.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ code/_globalvars/misc.dm - byond
+
+
+
+
+code/_globalvars/misc.dm
+
+
+
+Define Details
+shuttle_time_in_station
+
+
+
+ 3 minutes in the station.
shuttle_time_to_arrive
+
+
+
+ 10 minutes to arrive.
+
+
+
diff --git a/code/_macros.html b/code/_macros.html
new file mode 100644
index 000000000000..64f7a66b8205
--- /dev/null
+++ b/code/_macros.html
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+ code/_macros.dm - byond
+
+
+
+
+code/_macros.dm
+
+
+
+
+ debug_msg A message define designed to be easily found and deleted
+ LAZYFIND Returns the key of the submitted item in the list
+ 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
+ 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.
Define Details
+LAZYACCESSASSOC
+
+
+
+
+ Accesses an associative list, returns null if nothing is found
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)
LAZYFIND
+
+
+
+
+ Returns the key of the submitted item in the list
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.
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
debug_msg
+
+
+
+
+ A message define designed to be easily found and deleted
+
+
+
diff --git a/code/_onclick/hud/map_popups.html b/code/_onclick/hud/map_popups.html
new file mode 100644
index 000000000000..91fa23b993fd
--- /dev/null
+++ b/code/_onclick/hud/map_popups.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/_onclick/hud/map_popups.dm - byond
+
+
+
+
+code/_onclick/hud/map_popups.dm
+
+
+
+
+ /atom/movable/screen 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 /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/rendering/_render_readme.html b/code/_onclick/hud/rendering/_render_readme.html
new file mode 100644
index 000000000000..3d2a68a74815
--- /dev/null
+++ b/code/_onclick/hud/rendering/_render_readme.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ code/_onclick/hud/rendering/_render_readme.md - byond
+
+
+
+
+The Render Readme code/_onclick/hud/rendering/_render_readme.md
+
+
+
+
+
+Byond internal functionality
+Known internal snowflake
+The rendering solution
+Render plates
+
+Byond internal functionality
+This part of the guide will assume that you have read the byond reference entry for rendering at www.byond.com/docs/ref//#/{notes}/renderer
+When you create an atom, this will always create an internal byond structure called an "appearance". This appearance you will likely be familiar with, as it is exposed through the /atom/var/appearance var. This appearance var holds data on how to render the object, ie what icon/icon_state/color etc it is using. Note that appearance vars will always copy, and do not hold a reference. When you update a var, for example let's pretend we add a filter, the appearance will be updated to include the filter. Note that, however, vis_contents objets are uniquely excluded from appearances. Then, when the filter is updated, the appearance will be recreated, and the atom marked as "dirty". After it has been updated, the SendMaps() function (sometimes also called maptick), which is an internal byond function that iterates over all objects in a client's view and in the clients.mob.contents, checks for "dirty" atoms, then resends any "dirty" appearances to clients as needed and unmarks them as dirty. This function is notoriously slow, but we can see its tick usage through the world.map_cpu var. We can also avoid more complex checks checking whether an object is visible on a client's screen by using the TILE_BOUND appearance flag.
+Finally, we arrive at clientside behavior, where we have two main clientside functions: GetMapIcons, and Render. GetMapIcons is repsonsible for actual rendering calculations on the clientside, such as "Group Icons and Set bounds", which performs clientside calculations for transform matrixes. Note that particles here are handled in a separate thread and are not diplayed in the clientside profiler. Render handles the actual drawing of the screen.
+For debugging rendering issues its reccomended you do two things:
+A) Talk to someone who has inside knowledge(like lummox) about it, most of this is undocumented and bugs often
+B) Use the undocumented debug printer which reads of data on icons rendering, this is very dense but can be useful in some cases. To use: Right click top tab -> Options & Messages -> Client -> Command -> Enter ".debug profile mapicons" and press Enter -> go to your Byond directory and find BYOND/cfg/mapicons.json . Yes this is one giant one-line json.
+Known internal snowflake
+The following is an incomplete list of pitfalls that come from byond snowflake that are known, this list is obviously incomplete.
+
+Transforms are very slow on clientside. This is not usually noticable, but if you start using large amounts of them it will grind you to a halt quickly, regardless of whether its on overlays or objs
+The darkness plane. The darkness plane has specific variables it needs to render correctly, and these can be found in the plane masters file. it is composed internally of two parts, a black mask over the clients screen, and a non rendering mask that blocks all luminosity=0 turfs and their contents from rendering if the SEE_BLACKNESS flag is set properly. It behaves very oddly, such as forcing itself to ALWAYS render or pre-render on blend_multiply blend mode or refusing to render the black mask properly otherwise. The blocker will always block rendering but the mask can be layered under other objects.
+render_target/source. Render_target/source will only copy certain rendering instructions, and these are only defined as "etc." in the byond reference. Known non copied appearance vars include: blend_mode, plane, layer, vis_contents, mouse_opacity...
+Large icons on the screen that peek over the edge will instead of only rendering partly like you would expect will instead stretch the screen while not adgusting the render buffer, which means that you can actively see as tiles and map objects are rendered. You can use this for an easy "offscreen" UI.
+Numerically large filters on objects of any size will torpedo performance, even though large objects with small filters will perform massively better. (ie blur(size=20) BAD)
+Texture Atlas: the texture atlas byond uses to render icons is very susceptible to corruption and can regularily replace icons with other icons or just not render at all. This can be exasperated by alt tabbing or pausing the dreamseeker process.
+The renderer is awful code and lummox said he will try changing a large part of it for 515 so keep an eye on that
+Byond uses DirectX 9 (Lummox said he wants to update to DirectX 11)
+Particles are just fancy overlays and are not independent of their owner
+Maptick items inside mob.contents are cheaper compared to most other movables
+Displacement filter: The byond "displacement filter" does not, as the name would make you expect, use displacement maps, but instead uses normal maps.
+
+The rendering solution
+One of the main issues with making pretty effects is how objects can only render to one plane, and how filters can only be applied to single objects. Quite simply it means we cant apply effects to multiple planes at once, and an effect to one plane only by treating it as a single unit:
+
+A semi-fix to stop from having to apply effects to every single plane is to use the render controllers, to automatically apply filters and colors automatically onto their controlled planes.
+The solution is thus instead we replace plane masters rendering directly to client with planes that render multiple planes onto them as objects in order to be able to affect multiple planes while treating them as a single object. This is done by relaying the plane using a "render relay" onto a "render plate" which acts as a plane master of plane masters of sorts, and since planes are rendered onto it as single objects any filters we apply to them will render over the planes, treating them as a single unit.
+
+We can also choose to render these by decreasing the scaling all applied effects (effect_size/number_of_plates_rendered_to) then rendering it onto multiple planes:
+
+Through these this allows us to treat planes as single objects, and lets us distort them as a single unit, most notably works wonders with the displacement filter. Specifically, here you can displacement_filter a plane onto a plate, which then will treat all the other planes rendered on that plate as a single unit.
+Render plates
+The rendering system uses two objects to unify planes: render_relay and render_plates. Render relays use render_target/source and the relay_render_to_plane proc to replicate the plane master on the render relay. This render relay is then rendered onto a render_plate, which is a plane master that renders the render_relays onto itself. This plate can then be hierachically rendered with the same process until it reaches the master render_plate, which is the plate that will actually render to the player. These plates naturally in the byond style have quirks. For example, rendering to two plates will double any effects such as color or filters, and as such you need to carefully manage how you render them. Keep in mind as well that when sorting the layers for rendering on a plane that they should not be negative, this is handled automatically in relay_render_to_plane. When debugging note that mouse_opacity can act bizzarly with this method, such as only allowing you to click things that are layered over objects on a certain plane but auomatically setting the mouse_opacity should be handling this. Note that if you decide to manipulate a plane with internal byond objects that you will have to manually extrapolate the vars that are set if you want to render them to another plane (See blackness plane for example), and that this is not documented anywhere.
+Goodluck and godspeed with coding
+- Just another contributor
+
+
+
diff --git a/code/_onclick/hud/rendering/plane_master.html b/code/_onclick/hud/rendering/plane_master.html
new file mode 100644
index 000000000000..7857fc9b2448
--- /dev/null
+++ b/code/_onclick/hud/rendering/plane_master.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ code/_onclick/hud/rendering/plane_master.dm - byond
+
+
+
+
+code/_onclick/hud/rendering/plane_master.dm
+
+
+
+
+ /atom /movable /screen /plane_master /game_world Contains most things in the game world
+ /atom /movable /screen /plane_master /roof Plane master handling display of building roofs. They're meant to become invisible when inside a building.
+ /atom /movable /screen /plane_master /blackness Plane master handling byond internal blackness
+vars are set as to replicate behavior when rendering to other planes
+do not touch this unless you know what you are doing
+ This system works by exploiting BYONDs color matrix filter to use layers to handle emissive blockers.
+Emissive overlays are pasted with an atom color that converts them to be entirely some specific color.
+Emissive blockers are pasted with an atom color that converts them to be entirely some different color.
+Emissive overlays and emissive blockers are put onto the same plane.
+The layers for the emissive overlays and emissive blockers cause them to mask eachother similar to normal BYOND objects.
+A color matrix filter is applied to the emissive plane to mask out anything that isn't whatever the emissive color is.
+This is then used to alpha mask the lighting plane.
+ /atom /movable /screen /plane_master /lighting Contains all lighting objects
+ /atom /movable /screen /plane_master /emissive Handles emissive overlays and emissive blockers.
+
+
+
diff --git a/code/_onclick/hud/rendering/plane_master_controller.html b/code/_onclick/hud/rendering/plane_master_controller.html
new file mode 100644
index 000000000000..0f684546221f
--- /dev/null
+++ b/code/_onclick/hud/rendering/plane_master_controller.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/_onclick/hud/rendering/plane_master_controller.dm - byond
+
+
+
+
+code/_onclick/hud/rendering/plane_master_controller.dm
+
+
+
+
+ /atom/movable/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.
+ /atom /movable /plane_master_controller /non_master Exists for convienience when referencing all non-master render plates.
+This is the whole game and the UI, but not the escape menu.
+
+
+
diff --git a/code/_onclick/hud/rendering/render_plate.html b/code/_onclick/hud/rendering/render_plate.html
new file mode 100644
index 000000000000..775d921f3c9d
--- /dev/null
+++ b/code/_onclick/hud/rendering/render_plate.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/_onclick/hud/rendering/render_plate.dm - byond
+
+
+
+
+code/_onclick/hud/rendering/render_plate.dm
+
+
+
+
+
+
+
diff --git a/code/_onclick/hud/screen_object_holder.html b/code/_onclick/hud/screen_object_holder.html
new file mode 100644
index 000000000000..31a5d843730c
--- /dev/null
+++ b/code/_onclick/hud/screen_object_holder.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/_onclick/hud/screen_object_holder.dm - byond
+
+
+
+
+code/_onclick/hud/screen_object_holder.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/configuration/config_entry.html b/code/controllers/configuration/config_entry.html
new file mode 100644
index 000000000000..4b3e31672a43
--- /dev/null
+++ b/code/controllers/configuration/config_entry.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/configuration/config_entry.dm - byond
+
+
+
+
+code/controllers/configuration/config_entry.dm
+
+
+
+
+ /datum /config_entry/str_list List config entry, used for configuring a list of strings
+
+
+
diff --git a/code/controllers/configuration/entries/game_options.html b/code/controllers/configuration/entries/game_options.html
new file mode 100644
index 000000000000..8ee1c7e3e882
--- /dev/null
+++ b/code/controllers/configuration/entries/game_options.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/configuration/entries/game_options.dm - byond
+
+
+
+
+code/controllers/configuration/entries/game_options.dm
+
+
+
+
+ /datum /config_entry/string/nightmare_path Relative inclusion path for nightmare configuration files
+ /datum /config_entry/number/extra_larva_per_burst Used to determine how many extra larva you want per burst. Supports fractions. See /datum/hive_status/proc/increase_larva_after_burst()
+
+
+
diff --git a/code/controllers/configuration/entries/general.html b/code/controllers/configuration/entries/general.html
new file mode 100644
index 000000000000..c078855484c7
--- /dev/null
+++ b/code/controllers/configuration/entries/general.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ code/controllers/configuration/entries/general.dm - byond
+
+
+
+
+code/controllers/configuration/entries/general.dm
+
+
+
+
+ /datum /config_entry/string/manager_url Server to notify of game events
+ /datum /config_entry/string/centcom_ban_db URL for the CentCom Galactic Ban DB API
+ /datum /config_entry/string/webmap_host Host of the webmap
+ /datum /config_entry/flag/log_timers_on_bucket_reset logs all timers in buckets on automatic bucket reset (Useful for timer debugging)
+logs all timers in buckets on automatic bucket reset (Useful for timer debugging)
+ /datum /config_entry/flag/ephemeral_map_mode Force map bypassing configuration, and ignore map changes
+ /datum /config_entry/string/ephemeral_ground_map Map configuration file to use in ephemeral mode
+ /datum /config_entry/string/influxdb_host InfluxDB v2 Host to connect to for sending statistics (over HTTP API)
+ /datum /config_entry/string/influxdb_bucket InfluxDB v2 Bucket to send staistics to
+ /datum /config_entry/string/influxdb_org InfluxDB v2 Organization to access buckets of
+ /datum /config_entry/string/influxdb_token InfluxDB v2 API Token to access the organization and bucket
+ /datum /config_entry/number/influxdb_stats_period How often to snapshot general game statistics to influxdb driver
+ /datum /config_entry/number/influxdb_mcstats_period How often to snapshot MC statistics
+ /datum /config_entry/number/influxdb_send_period How often to send queued influxdb statistics
+ /datum /config_entry/keyed_list/connection_relay_ping Relay Ping Browser configuration
+
+
+
diff --git a/code/controllers/mc/failsafe.html b/code/controllers/mc/failsafe.html
new file mode 100644
index 000000000000..a4a36e90dbe5
--- /dev/null
+++ b/code/controllers/mc/failsafe.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/controllers/mc/failsafe.dm - byond
+
+
+
+
+code/controllers/mc/failsafe.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/mc/master.html b/code/controllers/mc/master.html
new file mode 100644
index 000000000000..580703fb63d9
--- /dev/null
+++ b/code/controllers/mc/master.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/controllers/mc/master.dm - byond
+
+
+
+
+code/controllers/mc/master.dm
+
+
+
+
+ /var/Master
+ StonedMC
+ /datum/controller/master Start of queue linked list
+End of queue linked list (used for appending to the list)
+Are we loading in a new map?
+for scheduling different subsystems for different stages of the round
+
+
+
diff --git a/code/controllers/mc/subsystem.html b/code/controllers/mc/subsystem.html
new file mode 100644
index 000000000000..71fd139c7bf1
--- /dev/null
+++ b/code/controllers/mc/subsystem.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/mc/subsystem.dm - byond
+
+
+
+
+code/controllers/mc/subsystem.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/subsystem/autofire.html b/code/controllers/subsystem/autofire.html
new file mode 100644
index 000000000000..e69e1131e141
--- /dev/null
+++ b/code/controllers/subsystem/autofire.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/autofire.dm - byond
+
+
+
+
+code/controllers/subsystem/autofire.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/subsystem/chat.html b/code/controllers/subsystem/chat.html
new file mode 100644
index 000000000000..26ed3b9dbf5b
--- /dev/null
+++ b/code/controllers/subsystem/chat.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/chat.dm - byond
+
+
+
+
+code/controllers/subsystem/chat.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/controllers/subsystem/game_decorator.html b/code/controllers/subsystem/game_decorator.html
new file mode 100644
index 000000000000..fb658a547265
--- /dev/null
+++ b/code/controllers/subsystem/game_decorator.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/controllers/subsystem/game_decorator.dm - byond
+
+
+
+
+code/controllers/subsystem/game_decorator.dm
+
+
+
+
+ So map decoration is done post-setup after nightmare and spawners
+
+
+
diff --git a/code/controllers/subsystem/garbage.html b/code/controllers/subsystem/garbage.html
new file mode 100644
index 000000000000..00be17a2df72
--- /dev/null
+++ b/code/controllers/subsystem/garbage.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ code/controllers/subsystem/garbage.dm - byond
+
+
+
+
+code/controllers/subsystem/garbage.dm
+
+
+
+
+ Debugging GC issues
+In order to debug qdel()
failures, there are several tools available.
+To enable these tools, define TESTING
in _compile_options.dm .
+First is a verb called "Find References", which lists every refererence to an object in the world. This allows you to track down any indirect or obfuscated references that you might have missed.
+Complementing this is another verb, "qdel() then Find References".
+This does exactly what you'd expect; it calls qdel()
on the object and then it finds all references remaining.
+This is great, because it means that Destroy()
will have been called before it starts to find references,
+so the only references you'll find will be the ones preventing the object from qdel()
ing gracefully.
+If you have a datum or something you are not destroying directly (say via the singulo),
+the next tool is QDEL_HINT_FINDREFERENCE
. You can return this in Destroy()
(where you would normally return ..()
),
+to print a list of references once it enters the GC queue.
+Finally is a verb, "Show qdel() Log", which shows the deletion log that the garbage subsystem keeps. This is helpful if you are having race conditions or need to review the order of deletions.
+Note that for any of these tools to work TESTING
must be defined.
+By using these methods of finding references, you can make your life far, far easier when dealing with qdel()
failures.
+ /datum /qdel_item Qdel Item: Holds statistics on each type that passes thru qdel
+Holds the type as a string for this type
+Total number of times it's passed thru qdel.
+Total amount of milliseconds spent processing this type's Destroy()
+Times it was queued for soft deletion but failed to soft delete.
+Different from failures because it also includes QDEL_HINT_HARDDEL deletions
+Total amount of milliseconds spent hard deleting this type.
+Highest time spent hard_deleting this in ms.
+Number of times hard deletes took longer than the configured threshold
+Number of times it's not respected force=TRUE
+Number of times it's not even bother to give a qdel hint
+Number of times it's slept in its destroy
+ Flags related to this type's trip thru qdel.
+
+ /proc/qdel
+ Should be treated as a replacement for the 'del' keyword.
+
+
+
diff --git a/code/controllers/subsystem/influxdriver.html b/code/controllers/subsystem/influxdriver.html
new file mode 100644
index 000000000000..9784e9dd6ee4
--- /dev/null
+++ b/code/controllers/subsystem/influxdriver.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/influxdriver.dm - byond
+
+
+
+
+code/controllers/subsystem/influxdriver.dm
+
+
+
+
+ /var/SSinfluxdriver
+ Sends collected statistics to an influxdb v2 backend periodically
+
+
+
diff --git a/code/controllers/subsystem/influxstats.html b/code/controllers/subsystem/influxstats.html
new file mode 100644
index 000000000000..82a71c3c05b9
--- /dev/null
+++ b/code/controllers/subsystem/influxstats.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/controllers/subsystem/influxstats.dm - byond
+
+
+
+
+code/controllers/subsystem/influxstats.dm
+
+
+
+
+ /var/SSinfluxstats
+ Sends generic round running statistics to the InfluxDB backend
+ /datum /controller/subsystem /influxstats Counter of data snapshots sent
+ Current task in progress, for pausing/resuming
+
+
+
diff --git a/code/controllers/subsystem/lighting.html b/code/controllers/subsystem/lighting.html
new file mode 100644
index 000000000000..e2a4e1d4c816
--- /dev/null
+++ b/code/controllers/subsystem/lighting.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/controllers/subsystem/lighting.dm - byond
+
+
+
+
+code/controllers/subsystem/lighting.dm
+
+
+
+
+ /datum/controller/subsystem/lighting List of static lighting sources queued for update.
+List of lighting corners queued for update.
+List of lighting objects queued for update.
+ List of hybrid lighting sources queued for update.
+
+
+
diff --git a/code/controllers/subsystem/minimap.html b/code/controllers/subsystem/minimap.html
new file mode 100644
index 000000000000..e869a7166e9a
--- /dev/null
+++ b/code/controllers/subsystem/minimap.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ code/controllers/subsystem/minimap.dm - byond
+
+
+
+
+code/controllers/subsystem/minimap.dm
+
+
+
+
+ /var/SSminimaps
+
+ /datum/hud_displays Holder datum for a zlevels data, concerning the overlays and the drawn level itself
+The individual image trackers have a raw and a normal list
+raw lists just store the images, while the normal ones are assoc list of [tracked_atom] = image
+the raw lists are to speed up the Fire() of the subsystem so we dont have to filter through
+WARNING!
+There is a byond bug: http://www.byond.com/forum/post/2661309
+That that forces us to use a separate list ref when accessing the lists of this datum
+Yea it hurts me too
+ /datum/minimap_updator Holder datum to ease updating of atoms to update
+ /proc/get_tacmap_data_png
+ Fetches the datum containing an announced flattend map png reference.
+ /proc/get_unannounced_tacmap_data_png
+ Fetches the datum containing the latest unannounced flattend map png reference.
+ /proc/get_tacmap_data_svg
+ Fetches the last set of svg coordinates for the tacmap drawing.
+ /proc/resend_current_map_png
+ Re-sends relevant flattened tacmaps to a single client.
+ /atom /movable /screen /minimap Default HUD screen minimap object
+ /datum/action/minimap Action that gives the owner access to the minimap pool
+ /proc/get_minimap_flag_for_faction
+ Gets the MINIMAP_FLAG for the provided faction or hivenumber if one exists
+
+
+
diff --git a/code/controllers/subsystem/pager_status.html b/code/controllers/subsystem/pager_status.html
new file mode 100644
index 000000000000..fa6dff39a0dd
--- /dev/null
+++ b/code/controllers/subsystem/pager_status.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/pager_status.dm - byond
+
+
+
+
+code/controllers/subsystem/pager_status.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/subsystem/ping.html b/code/controllers/subsystem/ping.html
new file mode 100644
index 000000000000..3b3d2b94848f
--- /dev/null
+++ b/code/controllers/subsystem/ping.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/ping.dm - byond
+
+
+
+
+code/controllers/subsystem/ping.dm
+
+
+
+
+ Copyright (c) 2022 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/controllers/subsystem/shuttles.html b/code/controllers/subsystem/shuttles.html
new file mode 100644
index 000000000000..4e4f49022db7
--- /dev/null
+++ b/code/controllers/subsystem/shuttles.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ code/controllers/subsystem/shuttles.dm - byond
+
+
+
+
+code/controllers/subsystem/shuttles.dm
+
+
+
+
+ MAX_TRANSIT_TILE_COUNT How many turfs to allow before we stop blocking transit requests
+ SOFT_TRANSIT_RESERVATION_THRESHOLD How many turfs to allow before we start freeing up existing "soft reserved" transit docks
+If we're under load we want to allow for cycling, but if not we want to preserve already generated docks for use
+ SHUTTLE_SPAWN_BUFFER Give a shuttle 10 "fires" (~10 seconds) to spawn before it can be cleaned up.
Define Details
+MAX_TRANSIT_TILE_COUNT
+
+
+
+ How many turfs to allow before we stop blocking transit requests
SHUTTLE_SPAWN_BUFFER
+
+
+
+ Give a shuttle 10 "fires" (~10 seconds) to spawn before it can be cleaned up.
SOFT_TRANSIT_RESERVATION_THRESHOLD
+
+
+
+ How many turfs to allow before we start freeing up existing "soft reserved" transit docks
+If we're under load we want to allow for cycling, but if not we want to preserve already generated docks for use
+
+
+
diff --git a/code/controllers/subsystem/statpanel.html b/code/controllers/subsystem/statpanel.html
new file mode 100644
index 000000000000..915483946794
--- /dev/null
+++ b/code/controllers/subsystem/statpanel.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/controllers/subsystem/statpanel.dm - byond
+
+
+
+
+code/controllers/subsystem/statpanel.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/tgui.html b/code/controllers/subsystem/tgui.html
new file mode 100644
index 000000000000..1d67f2e23c6c
--- /dev/null
+++ b/code/controllers/subsystem/tgui.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/controllers/subsystem/tgui.dm - byond
+
+
+
+
+code/controllers/subsystem/tgui.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ /var/SStgui
+ tgui subsystem
+
+
+
diff --git a/code/controllers/subsystem/timer.html b/code/controllers/subsystem/timer.html
new file mode 100644
index 000000000000..bf59ed4534eb
--- /dev/null
+++ b/code/controllers/subsystem/timer.html
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+ code/controllers/subsystem/timer.dm - byond
+
+
+
+
+code/controllers/subsystem/timer.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
+ /proc/timeleft
+ Get the remaining deciseconds on a timer
+ /proc/updatetimedelay
+ Update the delay on an existing LOOPING timer
+Will come into effect on the next process
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/datums/action.html b/code/datums/action.html
new file mode 100644
index 000000000000..1c7fb871cf6a
--- /dev/null
+++ b/code/datums/action.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/action.dm - byond
+
+
+
+
+code/datums/action.dm
+
+
+
+
+ /proc/give_action
+ Gives an action to a mob and returns it
+
+
+
diff --git a/code/datums/balloon_alerts/balloon_alerts.html b/code/datums/balloon_alerts/balloon_alerts.html
new file mode 100644
index 000000000000..4a34a6fd95c6
--- /dev/null
+++ b/code/datums/balloon_alerts/balloon_alerts.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/datums/balloon_alerts/balloon_alerts.dm - byond
+
+
+
+
+code/datums/balloon_alerts/balloon_alerts.dm
+
+
+
+Define Details
+BALLOON_TEXT_CHAR_LIFETIME_INCREASE_MIN
+
+
+
+ The amount of characters needed before this increase takes into effect
BALLOON_TEXT_CHAR_LIFETIME_INCREASE_MULT
+
+
+
+ The increase in duration per character in seconds
+
+
+
diff --git a/code/datums/beam.html b/code/datums/beam.html
new file mode 100644
index 000000000000..a25142605f32
--- /dev/null
+++ b/code/datums/beam.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/beam.dm - byond
+
+
+
+
+code/datums/beam.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/_component.html b/code/datums/components/_component.html
new file mode 100644
index 000000000000..e34bc5f5cd91
--- /dev/null
+++ b/code/datums/components/_component.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/_component.dm - byond
+
+
+
+
+code/datums/components/_component.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/armor_link.html b/code/datums/components/armor_link.html
new file mode 100644
index 000000000000..da84d32ad0ab
--- /dev/null
+++ b/code/datums/components/armor_link.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/datums/components/armor_link.dm - byond
+
+
+
+
+code/datums/components/armor_link.dm
+
+
+
+
+ /datum /component /armor_link Return the object that is the host of any UI's that this component has
+datum/component/ui_host()
+Allows a piece of clothing to have their armor values change based on the values of another piece of clothing
+Ex: Marine boots have their armor values change based on what type of armor you're wearing on your chest
+
+
+
diff --git a/code/datums/components/bad_leg.html b/code/datums/components/bad_leg.html
new file mode 100644
index 000000000000..5a4efac45799
--- /dev/null
+++ b/code/datums/components/bad_leg.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/datums/components/bad_leg.dm - byond
+
+
+
+
+code/datums/components/bad_leg.dm
+
+
+
+
+ MAX_STEPS Maximum amount of steps you can take until you get stunned from pain.
Define Details
+MAX_STEPS
+
+
+
+ Maximum amount of steps you can take until you get stunned from pain.
+
+
+
diff --git a/code/datums/components/bonus_damage_stack.html b/code/datums/components/bonus_damage_stack.html
new file mode 100644
index 000000000000..1f0c5b7b089c
--- /dev/null
+++ b/code/datums/components/bonus_damage_stack.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/datums/components/bonus_damage_stack.dm - byond
+
+
+
+
+code/datums/components/bonus_damage_stack.dm
+
+
+
+Define Details
+BONUS_DAMAGE_MAX_ALPHA
+
+
+
+ Max alpha for the filter outline.
BONUS_DAMAGE_STACK_LOSS_PER_SECOND
+
+
+
+ Loss of stack every second once it's been more than 5 seconds since last_stack.
+
+
+
diff --git a/code/datums/components/cluster_stack.html b/code/datums/components/cluster_stack.html
new file mode 100644
index 000000000000..a5b2e0d8826e
--- /dev/null
+++ b/code/datums/components/cluster_stack.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/datums/components/cluster_stack.dm - byond
+
+
+
+
+code/datums/components/cluster_stack.dm
+
+
+
+Define Details
+CLUSTER_MAX_ALPHA
+
+
+
+ Max alpha for the filter outline.
CLUSTER_STACK_LOSS_PER_SECOND
+
+
+
+ Loss of stack every second once it's been more than 5 seconds since last_stack.
MAX_CLUSTER_STACKS
+
+
+
+ Once cluster_stacks reaches this number, it triggers apply_cluster_stacks() and resets to zero.
+
+
+
diff --git a/code/datums/components/connect_mob_behalf.html b/code/datums/components/connect_mob_behalf.html
new file mode 100644
index 000000000000..d18f9e06c906
--- /dev/null
+++ b/code/datums/components/connect_mob_behalf.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/components/connect_mob_behalf.dm - byond
+
+
+
+
+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 separate listener, which makes this quite powerful
+
+
+
diff --git a/code/datums/components/footstep.html b/code/datums/components/footstep.html
new file mode 100644
index 000000000000..60a7d52f5b96
--- /dev/null
+++ b/code/datums/components/footstep.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/footstep.dm - byond
+
+
+
+
+code/datums/components/footstep.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/label.html b/code/datums/components/label.html
new file mode 100644
index 000000000000..b6a534447eeb
--- /dev/null
+++ b/code/datums/components/label.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/label.dm - byond
+
+
+
+
+code/datums/components/label.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/overlay_lighting.html b/code/datums/components/overlay_lighting.html
new file mode 100644
index 000000000000..8ff856579b19
--- /dev/null
+++ b/code/datums/components/overlay_lighting.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ code/datums/components/overlay_lighting.dm - byond
+
+
+
+
+code/datums/components/overlay_lighting.dm
+
+
+
+Define Details
+LIGHTING_ATTACHED
+
+
+
+ Is the parent attached to something else, its loc? Then we need to keep an eye of this.
LIGHTING_ON
+
+
+
+ For switchable lights, is it on and currently emitting light?
+
+
+
diff --git a/code/datums/components/rename.html b/code/datums/components/rename.html
new file mode 100644
index 000000000000..82ec2f0936f9
--- /dev/null
+++ b/code/datums/components/rename.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/components/rename.dm - byond
+
+
+
+
+code/datums/components/rename.dm
+
+
+
+
+
+
+
diff --git a/code/datums/components/weed_food.html b/code/datums/components/weed_food.html
new file mode 100644
index 000000000000..d19407d94f4a
--- /dev/null
+++ b/code/datums/components/weed_food.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/components/weed_food.dm - byond
+
+
+
+
+code/datums/components/weed_food.dm
+
+
+
+
+ /datum/component/weed_food A component that can be attached to a mob/living to be merged with weeds after a delay.
+Attempting to attach a new weed_food even if one already exists is equivalent to calling start().
+
+
+
diff --git a/code/datums/datum.html b/code/datums/datum.html
new file mode 100644
index 000000000000..039c9ea7441e
--- /dev/null
+++ b/code/datums/datum.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/datums/datum.dm - byond
+
+
+
+
+code/datums/datum.dm
+
+
+
+
+ /datum The absolute base class for everything
+ /proc/end_cooldown
+ Callback called by a timer to end an associative-list-indexed cooldown.
+ /proc/reset_cooldown
+ Proc used by stoppable timers to end a cooldown before the time has ran out.
+
+
+
diff --git a/code/datums/decorators/gamemode_decorator.html b/code/datums/decorators/gamemode_decorator.html
new file mode 100644
index 000000000000..f71e7de33384
--- /dev/null
+++ b/code/datums/decorators/gamemode_decorator.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/decorators/gamemode_decorator.dm - byond
+
+
+
+
+code/datums/decorators/gamemode_decorator.dm
+
+
+
+
+ /datum/decorator/gamemode Gamemode decorators allow us to make changes to edits on specific gamemodes,
+to assist in balancing varied gameplay in different modes
+
+
+
diff --git a/code/datums/elements/_element.html b/code/datums/elements/_element.html
new file mode 100644
index 000000000000..878ac292f6fc
--- /dev/null
+++ b/code/datums/elements/_element.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/elements/_element.dm - byond
+
+
+
+
+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/bullet_trait/bullet_trait.html b/code/datums/elements/bullet_trait/bullet_trait.html
new file mode 100644
index 000000000000..9033dde469ea
--- /dev/null
+++ b/code/datums/elements/bullet_trait/bullet_trait.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ code/datums/elements/bullet_trait/bullet_trait.md - byond
+
+
+
+
+A PROTOTYPE FOR MAKING ANY BULLET TRAITS code/datums/elements/bullet_trait/bullet_trait.md
+
+
+
+
+ Element representing traits that can be applied to bullets upon being fired
+
+Must be attached to a projectile (/obj/projectile
in projectile.dm
)
+Allows for the customization of bullet behavior based on ammo types or guns (or other things)
+
+By convention, bullet_traits should be named bullet_trait_[insert rest of name here]
+/datum/element/bullet_trait
+ // General bullet trait vars
+ // ALWAYS INCLUDE THESE TWO LINES IN THE BULLET TRAIT DEF
+ element_flags = ELEMENT_DETACH|ELEMENT_BESPOKE
+ id_arg_index = 2
+
+/datum/element/bullet_trait/databaseAttach(datum/target)
+ . = ..()
+ // All bullet traits can only be applied to projectiles
+ if(!istype(target, /obj/projectile))
+ return ELEMENT_INCOMPATIBLE
+
+ [handling here]
+
+
+
+
diff --git a/code/datums/elements/light_blocking.html b/code/datums/elements/light_blocking.html
new file mode 100644
index 000000000000..e0112c23b45c
--- /dev/null
+++ b/code/datums/elements/light_blocking.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/elements/light_blocking.dm - byond
+
+
+
+
+code/datums/elements/light_blocking.dm
+
+
+
+
+ /datum/element/light_blocking Attached to movable atoms with opacity. Listens to them move and updates their old and new turf loc's opacity accordingly.
+
+
+
diff --git a/code/datums/elements/strippable.html b/code/datums/elements/strippable.html
new file mode 100644
index 000000000000..f8fa648fba6e
--- /dev/null
+++ b/code/datums/elements/strippable.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/datums/elements/strippable.dm - byond
+
+
+
+
+code/datums/elements/strippable.dm
+
+
+
+
+
+
+
diff --git a/code/datums/elements/suturing.html b/code/datums/elements/suturing.html
new file mode 100644
index 000000000000..edc033ea35bf
--- /dev/null
+++ b/code/datums/elements/suturing.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/elements/suturing.dm - byond
+
+
+
+
+code/datums/elements/suturing.dm
+
+
+
+
+ /datum/suture_handler Handles sutures for this limb. Doesn't process, updates on limb damage and new suture attempts.
+
+
+
diff --git a/code/datums/emotes.html b/code/datums/emotes.html
new file mode 100644
index 000000000000..097dda5e1500
--- /dev/null
+++ b/code/datums/emotes.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/emotes.dm - byond
+
+
+
+
+code/datums/emotes.dm
+
+
+
+
+ /datum/emote Most of the text that's not someone talking is based off of this.
+
+
+
diff --git a/code/datums/entities/player_note.html b/code/datums/entities/player_note.html
new file mode 100644
index 000000000000..a5e34ab26e29
--- /dev/null
+++ b/code/datums/entities/player_note.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/entities/player_note.dm - byond
+
+
+
+
+code/datums/entities/player_note.dm
+
+
+
+
+ /proc/get_all_notes
+ Returns all notes associated with a CKEY, structured as a list of strings.
+
+
+
diff --git a/code/datums/entities/player_times.html b/code/datums/entities/player_times.html
new file mode 100644
index 000000000000..747bc32de975
--- /dev/null
+++ b/code/datums/entities/player_times.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/entities/player_times.dm - byond
+
+
+
+
+code/datums/entities/player_times.dm
+
+
+
+
+
+
+
diff --git a/code/datums/helper_datums/stack_end_detector.html b/code/datums/helper_datums/stack_end_detector.html
new file mode 100644
index 000000000000..3636ed3f7dde
--- /dev/null
+++ b/code/datums/helper_datums/stack_end_detector.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/helper_datums/stack_end_detector.dm - byond
+
+
+
+
+code/datums/helper_datums/stack_end_detector.dm
+
+
+
+
+ /datum/stack_end_detector Stack End Detector.
+Can detect if a given code stack has exited, used by the mc for stack overflow detection.
+ /datum/stack_canary Stack canary. Will go away if the stack it was primed by is ended by byond for return or stack overflow reasons.
+
+
+
diff --git a/code/datums/lazy_template.html b/code/datums/lazy_template.html
new file mode 100644
index 000000000000..356df8d676d2
--- /dev/null
+++ b/code/datums/lazy_template.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/lazy_template.dm - byond
+
+
+
+
+code/datums/lazy_template.dm
+
+
+
+
+ /datum/lazy_template Datum used to designate certain areas that do not need to exist nor be loaded at world start
+but do want to be loaded under certain circumstances. Use this for stuff like the nukie base or wizden, aka stuff that only matters when their antag is rolled.
+
+
+
diff --git a/code/datums/looping_sounds/_looping_sound.html b/code/datums/looping_sounds/_looping_sound.html
new file mode 100644
index 000000000000..01fd70d91f57
--- /dev/null
+++ b/code/datums/looping_sounds/_looping_sound.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/looping_sounds/_looping_sound.dm - byond
+
+
+
+
+code/datums/looping_sounds/_looping_sound.dm
+
+
+
+
+
+
+
diff --git a/code/datums/movement_detector.html b/code/datums/movement_detector.html
new file mode 100644
index 000000000000..68cd1f0be239
--- /dev/null
+++ b/code/datums/movement_detector.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/movement_detector.dm - byond
+
+
+
+
+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/mutable_appearance.html b/code/datums/mutable_appearance.html
new file mode 100644
index 000000000000..9fa817a7eb37
--- /dev/null
+++ b/code/datums/mutable_appearance.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/mutable_appearance.dm - byond
+
+
+
+
+code/datums/mutable_appearance.dm
+
+
+
+
+
+
+
diff --git a/code/datums/quadtree.html b/code/datums/quadtree.html
new file mode 100644
index 000000000000..9a301944432f
--- /dev/null
+++ b/code/datums/quadtree.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/datums/quadtree.dm - byond
+
+
+
+
+code/datums/quadtree.dm
+
+
+
+
+ /datum/shape A simple geometric shape for testing collisions and intersections. This one is a single point.
+ /datum/shape/rectangle A simple geometric shape for testing collisions and intersections. This one is an axis-aligned rectangle.
+ /datum/shape/rectangle/square A simple geometric shape for testing collisions and intersections. This one is an axis-aligned square.
+ /datum/shape/ellipse A simple geometric shape for testing collisions and intersections. This one is an axis-aligned ellipse.
+ /datum/shape/ellipse/circle A simple geometric shape for testing collisions and intersections. This one is a circle.
+
+
+
diff --git a/code/datums/redis/callbacks/_redis_callback.html b/code/datums/redis/callbacks/_redis_callback.html
new file mode 100644
index 000000000000..1ed9c05a16b3
--- /dev/null
+++ b/code/datums/redis/callbacks/_redis_callback.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/redis/callbacks/_redis_callback.dm - byond
+
+
+
+
+code/datums/redis/callbacks/_redis_callback.dm
+
+
+
+
+ /datum/redis_callback This datum is used for assigning callbacks that run
+when a message is received on a specific channel. Subtypes of this
+are automatically registered in SSredis initialization
+
+
+
diff --git a/code/datums/redis/redis_message.html b/code/datums/redis/redis_message.html
new file mode 100644
index 000000000000..a97181ee5f37
--- /dev/null
+++ b/code/datums/redis/redis_message.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/redis/redis_message.dm - byond
+
+
+
+
+code/datums/redis/redis_message.dm
+
+
+
+
+
+
+
diff --git a/code/datums/skills/skills.html b/code/datums/skills/skills.html
new file mode 100644
index 000000000000..9fc9f58e55ca
--- /dev/null
+++ b/code/datums/skills/skills.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/skills/skills.dm - byond
+
+
+
+
+code/datums/skills/skills.dm
+
+
+
+
+ /datum/skills Skill with an extra S at the end is a collection of multiple skills. Basically a skillSET
+This is to organize and provide a common interface to the huge heap of skills there are
+
+
+
diff --git a/code/datums/statistics/entities/human_stats.html b/code/datums/statistics/entities/human_stats.html
new file mode 100644
index 000000000000..cc8e0bc9bb9b
--- /dev/null
+++ b/code/datums/statistics/entities/human_stats.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/datums/statistics/entities/human_stats.dm - byond
+
+
+
+
+code/datums/statistics/entities/human_stats.dm
+
+
+
+
+ /datum /entity/player_stats/human indexed list of types /datum/entity/weapon_stats
+indexed list of types /datum/entity/job_stats
+reference to /datum/entity/weapon_stats (like tac-shotty)
+ list of all medals earned
+
+
+
diff --git a/code/datums/statistics/entities/player_entity.html b/code/datums/statistics/entities/player_entity.html
new file mode 100644
index 000000000000..00bf41b7572a
--- /dev/null
+++ b/code/datums/statistics/entities/player_entity.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/statistics/entities/player_entity.dm - byond
+
+
+
+
+code/datums/statistics/entities/player_entity.dm
+
+
+
+
+ /datum /entity/player_entity Indeed list of /datum/entity/player_stats
+Indexed list of /datum/entity/statistic/death
+
+
+
diff --git a/code/datums/statistics/entities/weapon_stats.html b/code/datums/statistics/entities/weapon_stats.html
new file mode 100644
index 000000000000..0154e2a5f803
--- /dev/null
+++ b/code/datums/statistics/entities/weapon_stats.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/statistics/entities/weapon_stats.dm - byond
+
+
+
+
+code/datums/statistics/entities/weapon_stats.dm
+
+
+
+
+ /datum /entity/weapon_stats Indexed list of /datum/entity/statistic, "Total Reloads" = number
+Indexed list of /datum/entity/statistic, "jobname2" = number
+Indexed list of /datum/entity/statistic, "caste" = number
+
+
+
diff --git a/code/datums/status_effects/_status_effect.html b/code/datums/status_effects/_status_effect.html
new file mode 100644
index 000000000000..a0929f13e202
--- /dev/null
+++ b/code/datums/status_effects/_status_effect.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/datums/status_effects/_status_effect.dm - byond
+
+
+
+
+code/datums/status_effects/_status_effect.dm
+
+
+
+
+
+
+
diff --git a/code/datums/status_effects/debuffs/debuffs.html b/code/datums/status_effects/debuffs/debuffs.html
new file mode 100644
index 000000000000..cfa5efe3b100
--- /dev/null
+++ b/code/datums/status_effects/debuffs/debuffs.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/status_effects/debuffs/debuffs.dm - byond
+
+
+
+
+code/datums/status_effects/debuffs/debuffs.dm
+
+
+
+
+ /datum /status_effect /incapacitating/dazed DAZED:
+This prevents talking as human or using abilities as Xenos, mainly
+
+
+
diff --git a/code/datums/status_effects/grouped_effect.html b/code/datums/status_effects/grouped_effect.html
new file mode 100644
index 000000000000..ce1b84a30300
--- /dev/null
+++ b/code/datums/status_effects/grouped_effect.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/status_effects/grouped_effect.dm - byond
+
+
+
+
+code/datums/status_effects/grouped_effect.dm
+
+
+
+
+
+
+
diff --git a/code/datums/status_effects/limited_effect.html b/code/datums/status_effects/limited_effect.html
new file mode 100644
index 000000000000..dd689362c5b7
--- /dev/null
+++ b/code/datums/status_effects/limited_effect.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/status_effects/limited_effect.dm - byond
+
+
+
+
+code/datums/status_effects/limited_effect.dm
+
+
+
+
+
+
+
diff --git a/code/datums/status_effects/stacking_effect.html b/code/datums/status_effects/stacking_effect.html
new file mode 100644
index 000000000000..1a5f9c0c307b
--- /dev/null
+++ b/code/datums/status_effects/stacking_effect.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/status_effects/stacking_effect.dm - byond
+
+
+
+
+code/datums/status_effects/stacking_effect.dm
+
+
+
+
+
+
+
diff --git a/code/datums/tutorial/_tutorial.html b/code/datums/tutorial/_tutorial.html
new file mode 100644
index 000000000000..08fc7f44c3d8
--- /dev/null
+++ b/code/datums/tutorial/_tutorial.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/tutorial/_tutorial.dm - byond
+
+
+
+
+code/datums/tutorial/_tutorial.dm
+
+
+
+
+ /datum/tutorial A tutorial datum contains a set of instructions for a player tutorial, such as what to spawn, what's scripted to occur, and so on.
+
+
+
diff --git a/code/datums/tutorial/creating_a_tutorial.html b/code/datums/tutorial/creating_a_tutorial.html
new file mode 100644
index 000000000000..49a1cb9f7040
--- /dev/null
+++ b/code/datums/tutorial/creating_a_tutorial.html
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+ code/datums/tutorial/creating_a_tutorial.md - byond
+
+
+
+
+Tutorial Creation code/datums/tutorial/creating_a_tutorial.md
+
+
+
+
+ Step 1: Identifying the Goal
+Your first objective when making a tutorial should be to have a clear and concise vision of what you want the tutorial to convey to the user. People absorb information better in smaller chunks, so you should ideally keep a tutorial to one section of information at a time.
+For example, if you are making a tutorial for new CM players, it should be split into multiple parts like:
+
+Basics
+Medical
+Weaponry
+Requisitions/Communication
+
+Step 2: Coding
+For an example of the current code standards for tutorials, see this file.
+The API for tutorials is designed to be very simple, so I'll go over all the base /datum/tutorial
procs and some vars here:
+Variables
+
+name<string>
+
+This is the player-facing name of the tutorial.
+
+
+tutorial_id<string>
+
+This is the back-end ID of the tutorial, used for save files. Try not to change a tutorial's ID after it's on the live server.
+
+
+category<string>
+
+This is what category the tutorial should be under. Use the TUTORIAL_CATEGORY_XXXX
macros.
+
+
+tutorial_template</datum/map_template/tutorial>
+
+This is what type the map template of the tutorial should be. The default space is 12x12; ideally make it so it fits the given scale of the tutorial with some wiggle room for the player to move around.
+
+
+parent_path<path>
+
+This is the top-most parent /datum/tutorial
path, used to exclude abstract parents from the tutorial menu. For example, /datum/tutorial/marine/basic
would have a parent_path
of /datum/tutorial/marine
, since that path is the top-most abstract path.
+
+
+completion_marked<bool>
+
+If this is TRUE
, the tutorial will be marked as completed if ended in any way. You can modify this with mark_completed()
but is not necessary if end_tutorial(TRUE)
is called.
+
+
+
+Procs
+
+start_tutorial(mob/starting_mob)
+
+This proc starts the tutorial, setting up the map template and player. This should be overridden with a parent call before any overridden code.
+
+
+end_tutorial(completed = FALSE)
+
+This proc ends the tutorial, sending the player back to the lobby and deleting the tutorial itself. A parent call on any subtypes should be at the end of the overridden segment. If completed
is TRUE
, then the tutorial will save as a completed one for the user. If mark_completed()
was called previously, the tutorial will count as completed regardless of if this is called with an argument of TRUE
or FALSE
.
+
+
+add_highlight(atom/target, color = "#d19a02")
+
+This proc adds a highlight filter around an atom, by default this color. Successive calls of highlight on the same atom will override the last.
+
+
+remove_highlight(atom/target)
+
+This proc removes the tutorial highlight from a target.
+
+
+add_to_tracking_atoms(atom/reference)
+
+This proc will add a reference to the tutorial's tracked atom dictionary. For what a tracked atom is, see Step 2.1.
+
+
+remove_from_tracking_atoms(atom/reference)
+
+This proc will remove a reference from the tutorial's tracked atom dictionary. For what a tracked atom is, see Step 2.1.
+
+
+message_to_player(message)
+
+This proc is the ideal way to communicate to a player. It is visually similar to overwatch messages or weather alerts, but appears and disappears much faster. The messages sent should be consise, but can have a degree of dialogue to them.
+
+
+update_objective(message)
+
+This proc is used to update the player's objective in their status panel. This should be only what is required and how to do it without any dialogue or extra text.
+
+
+init_mob()
+
+This proc is used to initialize the mob and set them up correctly.
+
+
+init_map()
+
+This proc does nothing by default, but can be overriden to spawn any atoms necessary for the tutorial from the very start.
+
+
+tutorial_end_in(time = 5 SECONDS, completed = TRUE)
+
+This proc will end the tutorial in the given time, defaulting to 5 seconds. Once the proc is called, the player will be booted back to the menu screen after the time is up. Will mark the tutorial as completed if completed
is TRUE
+
+
+loc_from_corner(offset_x = 0, offset_y = 0)
+
+This proc will return a turf offset from the bottom left corner of the tutorial zone. Keep in mind, the bottom left corner is NOT on a wall, it is on the first floor on the bottom left corner. offset_x
and offset_y
are used to offset what turf you want to get, and should never be negative.
+
+
+on_ghost(datum/source, mob/dead/observer/ghost)
+
+This proc is used to properly end and clean up the tutorial should a player ghost out. You shouldn't need to override or modify this when making a tutorial.
+
+
+signal_end_tutorial(datum/source)
+
+This proc is used to call end_tutorial()
via signals. If something (e.g. a player dying) should send a signal that ends the tutorial, have the signal call this proc.
+
+
+on_logout(datum/source)
+
+This proc is called when a player logs out, disconnecting their client from the server. As with on_ghost()
and similar procs, it cleans up and ends the tutorial.
+
+
+generate_binds()
+
+This proc generates a dictionary of the player's keybinds, in the form of {"action_name" : "key_to_press"}. This is used for the retrieve_bind()
proc to be able to tell the user what buttons to press.
+
+
+retrieve_bind(action_name)
+
+This proc will be one you'll get a fair amount of use from. Whenever you tell the user to do something like "drop an item", you should tell them what button to press by calling retrieve_bind("drop_item")
in the string telling them to drop an item.
+
+
+mark_completed()
+
+This proc can be used as an alternative to calling end_tutorial(TRUE)
. Calling this proc means any method of exiting the tutorial (ghosting, dying, pressing the exit button) will mark the tutorial as completed.
+
+
+
+Step 2.1: Tracking Atoms
+Naturally, you will need to keep track of certain objects or mobs for signal purposes, so the tracking system exists to fill that purpose. When you add a reference to the tracking atom list with add_to_tracking_atoms()
, it gets put into a dictionary of {path : reference}
. Because of this limitation, you should not track more than 1 object of the same type. To get a tracked atom, use of the TUTORIAL_ATOM_FROM_TRACKING(path, varname)
macro is recommended. path
should be replaced with the precise typepath of the tracked atom, and varname
should be replaced with the variable name you wish to use. If an object is going to be deleted, remove it with remove_from_tracking_atoms()
first.
+Step 2.2: Scripting Format
+Any proc whose main purpose is to advance the tutorial will be hereon referred to as a "script proc", as part of the entire "script". In the vast majority of cases, a script proc should hand off to the next using signals. Here is an example from basic_marine.dm
:
+/datum/tutorial/marine/basic/proc/on_cryopod_exit()
+ SIGNAL_HANDLER
+
+ UnregisterSignal(tracking_atoms[/obj/structure/machinery/cryopod/tutorial], COMSIG_CRYOPOD_GO_OUT)
+ message_to_player("Good. You may notice the yellow \"food\" icon on the right side of your screen. Proceed to the outlined <b>Food Vendor</b> and vend the <b>USCM Protein Bar</b>.")
+ update_objective("Vend a <b>USCM Protein Bar</b> from the outlined <b>ColMarTech Food Vendor</b>.")
+ TUTORIAL_ATOM_FROM_TRACKING(/obj/structure/machinery/cm_vending/sorted/marine_food/tutorial, food_vendor)
+ add_highlight(food_vendor)
+ food_vendor.req_access = list()
+ RegisterSignal(food_vendor, COMSIG_VENDOR_SUCCESSFUL_VEND, PROC_REF(on_food_vend))
+
+
+Line-by-line:
+
+SIGNAL_HANDLER
is necessary as this proc was called via signal.
+Here we are unregistering the signal we registered in the previous proc to call this one, which inthis case was waiting for the player to leave the tracked cryopod.
+Now, we tell the user the next step in the script, which is sent to their screen.
+Here we update the player's status panel with similar info to the above line, but far morecondensed.
+Since we need to access the food vendor, we use the TUTORIAL_ATOM_FROM_TRACKING()
macro to get aref to it.
+We add a yellow outline to the food vendor to make it more clear what is wanted of the player
+The tutorial food vendors are locked to ACCESS_TUTORIAL_LOCKED
by default, so here we remove thataccess requirement
+And finally, we register a signal for the next script proc, waiting for the user to vend something from the food vendor.
+
+Step 2.3: Quirks & Tips
+
+Generally speaking, you will want to create /tutorial
subtypes of anything you add in the tutorial, should it need any special functions or similar.
+Restrict access from players as much as possible. As seen in the example above, restricting access to vendors and similar machines is recommended to prevent sequence breaking. Additionally, avoid adding anything that detracts from the tutorial itself.
+Attempt to avoid softlocks when possible. If someone could reasonably do something (e.g. firing every bullet they have at a ranged target and missing, now unable to kill them and progress) that could softlock them, then there should be a fallback of some sort. However, accomodations don't need to be made for people who purposefully cause a softlock; there's a "stop tutorial" button for a reason.
+When calling message_to_player()
or update_objective()
, bold the names of objects, items, and keybinds.
+Attempt to bind as many scripting signals to the tutorial_mob
as possible. The nature of SS13 means something as sequence-heavy as this will always be fragile, so keeping the fragility we can affect to a minimum is imperative.
+
+
+
+
diff --git a/code/datums/tutorial/marine/reqs_line.html b/code/datums/tutorial/marine/reqs_line.html
new file mode 100644
index 000000000000..4de34f03bbf9
--- /dev/null
+++ b/code/datums/tutorial/marine/reqs_line.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+ code/datums/tutorial/marine/reqs_line.dm - byond
+
+
+
+
+code/datums/tutorial/marine/reqs_line.dm
+
+
+
+Define Details
+TUTORIAL_REQS_LINE_STAGE_ATTACHIES
+
+
+
+ Reqs Tutorial Stage 1: Give me some attachies
TUTORIAL_REQS_LINE_STAGE_GEARBOX
+
+
+
+ Reqs Tutorial Stage 2: I would like an HPR
TUTORIAL_REQS_LINE_STAGE_MIXED
+
+
+
+ Reqs Tutorial Stage 3: Multiple items. Also toss something over..
TUTORIAL_REQS_LINE_STAGE_STARTING
+
+
+
+ Reqs Tutorial Stage 0: Get in position
TUTORIAL_REQS_LINE_STAGE_SURVIVAL
+
+
+
+ Reqs Tutorial Stage 4: SURVIVAL MODE, random requests in a loop
TUTORIAL_REQS_LINE_SURVIVAL_DIFFICULTY
+
+
+
+ How fast to increase difficulty in survival mode (amount of items/agents)
+
+
+
diff --git a/code/datums/weather/weather_map_holders/sorokyne.html b/code/datums/weather/weather_map_holders/sorokyne.html
new file mode 100644
index 000000000000..2690afcbb3b3
--- /dev/null
+++ b/code/datums/weather/weather_map_holders/sorokyne.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/datums/weather/weather_map_holders/sorokyne.dm - byond
+
+
+
+
+code/datums/weather/weather_map_holders/sorokyne.dm
+
+
+
+
+ /datum /weather_ss_map_holder/sorokyne Sorokyne's map holder
+
+
+
diff --git a/code/game/area/areas.html b/code/game/area/areas.html
new file mode 100644
index 000000000000..512570bdc00e
--- /dev/null
+++ b/code/game/area/areas.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/game/area/areas.dm - byond
+
+
+
+
+code/game/area/areas.dm
+
+
+
+
+ AREA_MUTED define used to mute an area base_muffle = AREA_MUTED
Define Details
+AREA_MUTED
+
+
+
+ define used to mute an area base_muffle = AREA_MUTED
+
+
+
diff --git a/code/game/area/strata.html b/code/game/area/strata.html
new file mode 100644
index 000000000000..b096b2028435
--- /dev/null
+++ b/code/game/area/strata.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ code/game/area/strata.dm - byond
+
+
+
+
+code/game/area/strata.dm
+
+
+
+
+ /area /strata/ag/exterior/research_decks Research Station
+ /area /strata/ag/exterior/paths/southresearch close to research
+ /area /strata/ag/interior/tcomms Telecomms
+ /area /strata/ug/interior/jungle /END OUTPOST DEFINES/
+DEEP JUNGLE
+ /area /strata/ag/interior/engi_shed Engineering Terminals / Sheds, whatever. Map Power
+ /area /strata/ag/interior/outpost OUTPOST INTERIOR
+ /area /strata/ag/interior/outpost/maint ALL MAINTENANCE AREAS
+ /area /strata/ag/interior/outpost/med OUTPOST MEDICAL
+ /area /strata/ag/interior/outpost/engi OUTPOST ENGINEERING
+ /area /strata/ag/interior/outpost/security OUTPOST SECURITY
+ /area /strata/ag/interior/outpost/admin OUTPOST ADMINISTRATION
+ /area /strata/ag/interior/outpost/canteen CANTEEN / GENERAL QUARTERS
+ /area /strata/ug/interior/outpost/jung JUNGLE STRUCTURES - UNDERGROUND
+
+
+
diff --git a/code/game/jobs/job/antag/antag.html b/code/game/jobs/job/antag/antag.html
new file mode 100644
index 000000000000..e9116d70c4e4
--- /dev/null
+++ b/code/game/jobs/job/antag/antag.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/jobs/job/antag/antag.dm - byond
+
+
+
+
+code/game/jobs/job/antag/antag.dm
+
+
+
+
+ /datum /timelock/drone counts drone caste evo time as well
+ /datum /timelock/tier3 t3 and queen time
+
+
+
diff --git a/code/game/jobs/whitelist.html b/code/game/jobs/whitelist.html
new file mode 100644
index 000000000000..33cdfe3fecb5
--- /dev/null
+++ b/code/game/jobs/whitelist.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/jobs/whitelist.dm - byond
+
+
+
+
+code/game/jobs/whitelist.dm
+
+
+
+
+ /proc/get_whitelisted_roles
+ returns a list of strings containing the whitelists held by a specific ckey
+
+
+
diff --git a/code/game/machinery/ARES/ARES.html b/code/game/machinery/ARES/ARES.html
new file mode 100644
index 000000000000..daced430f037
--- /dev/null
+++ b/code/game/machinery/ARES/ARES.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/machinery/ARES/ARES.dm - byond
+
+
+
+
+code/game/machinery/ARES/ARES.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/ARES/ARES_interface_apollo.html b/code/game/machinery/ARES/ARES_interface_apollo.html
new file mode 100644
index 000000000000..16c5952a5fa7
--- /dev/null
+++ b/code/game/machinery/ARES/ARES_interface_apollo.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/ARES/ARES_interface_apollo.dm - byond
+
+
+
+
+code/game/machinery/ARES/ARES_interface_apollo.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/ARES/ARES_step_triggers.html b/code/game/machinery/ARES/ARES_step_triggers.html
new file mode 100644
index 000000000000..57e2a3b17ba3
--- /dev/null
+++ b/code/game/machinery/ARES/ARES_step_triggers.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/ARES/ARES_step_triggers.dm - byond
+
+
+
+
+code/game/machinery/ARES/ARES_step_triggers.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/doors/multi_tile.html b/code/game/machinery/doors/multi_tile.html
new file mode 100644
index 000000000000..c3bbe592291c
--- /dev/null
+++ b/code/game/machinery/doors/multi_tile.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/doors/multi_tile.dm - byond
+
+
+
+
+code/game/machinery/doors/multi_tile.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/fax_machine.html b/code/game/machinery/fax_machine.html
new file mode 100644
index 000000000000..1e830159d48f
--- /dev/null
+++ b/code/game/machinery/fax_machine.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/machinery/fax_machine.dm - byond
+
+
+
+
+code/game/machinery/fax_machine.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/kitchen/smartfridge.html b/code/game/machinery/kitchen/smartfridge.html
new file mode 100644
index 000000000000..922e38698051
--- /dev/null
+++ b/code/game/machinery/kitchen/smartfridge.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/machinery/kitchen/smartfridge.dm - byond
+
+
+
+
+code/game/machinery/kitchen/smartfridge.dm
+
+
+
+
+
+
+
diff --git a/code/game/machinery/pipe/construction.html b/code/game/machinery/pipe/construction.html
new file mode 100644
index 000000000000..c55050a8327f
--- /dev/null
+++ b/code/game/machinery/pipe/construction.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/game/machinery/pipe/construction.dm - byond
+
+
+
+
+code/game/machinery/pipe/construction.dm
+
+
+
+Define Details
+PIPE_UNIVERSAL
+
+
+
+ Supply, scrubbers and universal pipes
+
+
+
diff --git a/code/game/machinery/pipe/pipe_dispenser.html b/code/game/machinery/pipe/pipe_dispenser.html
new file mode 100644
index 000000000000..4b30a9506bda
--- /dev/null
+++ b/code/game/machinery/pipe/pipe_dispenser.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/machinery/pipe/pipe_dispenser.dm - byond
+
+
+
+
+code/game/machinery/pipe/pipe_dispenser.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/aliens.html b/code/game/objects/effects/aliens.html
new file mode 100644
index 000000000000..75b815b435e4
--- /dev/null
+++ b/code/game/objects/effects/aliens.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/effects/aliens.dm - byond
+
+
+
+
+code/game/objects/effects/aliens.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/decals/cleanable/misc.html b/code/game/objects/effects/decals/cleanable/misc.html
new file mode 100644
index 000000000000..6da516f23bcc
--- /dev/null
+++ b/code/game/objects/effects/decals/cleanable/misc.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/decals/cleanable/misc.dm - byond
+
+
+
+
+code/game/objects/effects/decals/cleanable/misc.dm
+
+
+
+
+ /obj /effect/decal/cleanable /cobweb2/dynamic Variant used for halloween - need to pass info in constructor as its turned in an overlay
+
+
+
diff --git a/code/game/objects/effects/decals/strata_decals.html b/code/game/objects/effects/decals/strata_decals.html
new file mode 100644
index 000000000000..da2b78aafd9f
--- /dev/null
+++ b/code/game/objects/effects/decals/strata_decals.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/effects/decals/strata_decals.dm - byond
+
+
+
+
+code/game/objects/effects/decals/strata_decals.dm
+
+
+
+
+ /obj /effect/decal/strata_decals/rocks OUTDOOR STUFF
+ /obj /effect/decal/strata_decals/grime INDOORS STUFF
+
+
+
diff --git a/code/game/objects/effects/effect_system/effect_system.html b/code/game/objects/effects/effect_system/effect_system.html
new file mode 100644
index 000000000000..b4f3212a03a0
--- /dev/null
+++ b/code/game/objects/effects/effect_system/effect_system.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/game/objects/effects/effect_system/effect_system.dm - byond
+
+
+
+
+code/game/objects/effects/effect_system/effect_system.dm
+
+
+
+
+ /obj /effect/particle_effect/ion_trails ///// Attach an Ion trail to any object, that spawns when it moves (like for the jetpack)
+just pass in the object to attach it to in set_up
+Then do start() to start it and stop() to stop it, obviously
+and don't call start() in a loop that will be repeated otherwise it'll get spammed!
+ /datum /effect_system/steam_trail_follow Attach a steam trail to an object (eg. a reacting beaker) that will follow it
+
+
+
diff --git a/code/game/objects/effects/effect_system/smoke.html b/code/game/objects/effects/effect_system/smoke.html
new file mode 100644
index 000000000000..3c5c070ebe34
--- /dev/null
+++ b/code/game/objects/effects/effect_system/smoke.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/game/objects/effects/effect_system/smoke.dm - byond
+
+
+
+
+code/game/objects/effects/effect_system/smoke.dm
+
+
+
+Define Details
+BOILER_GAS_CADE_BLOCK_CHANCE
+
+
+
+ / SMOKE SYSTEMS
+Chance that cades block the gas. Smoke spread ticks are calculated very quickly so this has to be high to have a noticeable effect.
+
+
+
diff --git a/code/game/objects/effects/landmarks/corpsespawner.html b/code/game/objects/effects/landmarks/corpsespawner.html
new file mode 100644
index 000000000000..80b8d3b87db1
--- /dev/null
+++ b/code/game/objects/effects/landmarks/corpsespawner.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/game/objects/effects/landmarks/corpsespawner.dm - byond
+
+
+
+
+code/game/objects/effects/landmarks/corpsespawner.dm
+
+
+
+
+ /obj /effect/landmark/corpsespawner LANDMARK CORPSE
+ /obj /effect/landmark/corpsespawner/prisoner Civilians
+ /obj /effect/landmark/corpsespawner/bridgeofficer Officers
+ /obj /effect/landmark/corpsespawner/colonist CM specific jobs
+ /obj /effect/landmark/corpsespawner/clf Faction Specific Corpses
+
+
+
diff --git a/code/game/objects/effects/landmarks/landmarks.html b/code/game/objects/effects/landmarks/landmarks.html
new file mode 100644
index 000000000000..587b6a2bdda5
--- /dev/null
+++ b/code/game/objects/effects/landmarks/landmarks.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/game/objects/effects/landmarks/landmarks.dm - byond
+
+
+
+
+code/game/objects/effects/landmarks/landmarks.dm
+
+
+
+
+ /obj /effect/landmark/unit_test_bottom_left Marks the bottom left of the testing zone.
+In landmarks.dm and not unit_test.dm so it is always active in the mapping tools.
+ /obj /effect/landmark/unit_test_top_right Marks the top right of the testing zone.
+In landmarks.dm and not unit_test.dm so it is always active in the mapping tools.
+ /obj /effect/landmark/tutorial_bottom_left Marks the bottom left of the tutorial zone.
+
+
+
diff --git a/code/game/objects/effects/landmarks/structure_spawners/setup_distress.html b/code/game/objects/effects/landmarks/structure_spawners/setup_distress.html
new file mode 100644
index 000000000000..ba6f080dd026
--- /dev/null
+++ b/code/game/objects/effects/landmarks/structure_spawners/setup_distress.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/landmarks/structure_spawners/setup_distress.dm - byond
+
+
+
+
+code/game/objects/effects/landmarks/structure_spawners/setup_distress.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/landmarks/structure_spawners/structure_spawner.html b/code/game/objects/effects/landmarks/structure_spawners/structure_spawner.html
new file mode 100644
index 000000000000..d149384cda9d
--- /dev/null
+++ b/code/game/objects/effects/landmarks/structure_spawners/structure_spawner.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/effects/landmarks/structure_spawners/structure_spawner.dm - byond
+
+
+
+
+code/game/objects/effects/landmarks/structure_spawners/structure_spawner.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/landmarks/structure_spawners/xvx_hive.html b/code/game/objects/effects/landmarks/structure_spawners/xvx_hive.html
new file mode 100644
index 000000000000..d0aab57a324e
--- /dev/null
+++ b/code/game/objects/effects/landmarks/structure_spawners/xvx_hive.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/landmarks/structure_spawners/xvx_hive.dm - byond
+
+
+
+
+code/game/objects/effects/landmarks/structure_spawners/xvx_hive.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/effects/projector.html b/code/game/objects/effects/projector.html
new file mode 100644
index 000000000000..c2d176fcde6e
--- /dev/null
+++ b/code/game/objects/effects/projector.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/projector.dm - byond
+
+
+
+
+code/game/objects/effects/projector.dm
+
+
+
+
+ /obj /effect/projector You will appear adjacent to the beacon
+
+
+
diff --git a/code/game/objects/effects/spawners/prop_gun_spawner.html b/code/game/objects/effects/spawners/prop_gun_spawner.html
new file mode 100644
index 000000000000..4bfc8d91bdf9
--- /dev/null
+++ b/code/game/objects/effects/spawners/prop_gun_spawner.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/effects/spawners/prop_gun_spawner.dm - byond
+
+
+
+
+code/game/objects/effects/spawners/prop_gun_spawner.dm
+
+
+
+
+ /obj/item/prop/prop_gun The source, which the skin will be copied from
+The prop itself, which the skin will be copied to
+
+
+
diff --git a/code/game/objects/effects/spawners/random.html b/code/game/objects/effects/spawners/random.html
new file mode 100644
index 000000000000..e6a438c23613
--- /dev/null
+++ b/code/game/objects/effects/spawners/random.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/effects/spawners/random.dm - byond
+
+
+
+
+code/game/objects/effects/spawners/random.dm
+
+
+
+
+ /obj /effect/spawner/random/facepaint If anyone wants to make custom sprites for this and the bala random spawner, be my guest.
+
+
+
diff --git a/code/game/objects/items/books/book.html b/code/game/objects/items/books/book.html
new file mode 100644
index 000000000000..b613e551c7be
--- /dev/null
+++ b/code/game/objects/items/books/book.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/objects/items/books/book.dm - byond
+
+
+
+
+code/game/objects/items/books/book.dm
+
+
+
+
+ /obj/item/book Check if it has the possibility of being a FANCY present
+Checks if it might be one of the ULTRA fancy presents.
+Default, just in case
+
+
+
diff --git a/code/game/objects/items/devices/flashlight.html b/code/game/objects/items/devices/flashlight.html
new file mode 100644
index 000000000000..c96cf78118cd
--- /dev/null
+++ b/code/game/objects/items/devices/flashlight.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/devices/flashlight.dm - byond
+
+
+
+
+code/game/objects/items/devices/flashlight.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/devices/multitool.html b/code/game/objects/items/devices/multitool.html
new file mode 100644
index 000000000000..5f5337c84f18
--- /dev/null
+++ b/code/game/objects/items/devices/multitool.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/devices/multitool.dm - byond
+
+
+
+
+code/game/objects/items/devices/multitool.dm
+
+
+
+
+ /obj /item /device/multitool Multitool -- A multitool is used for hacking electronic devices.
+
+
+
diff --git a/code/game/objects/items/devices/personal_data_transmitter.html b/code/game/objects/items/devices/personal_data_transmitter.html
new file mode 100644
index 000000000000..1c30e8cfca56
--- /dev/null
+++ b/code/game/objects/items/devices/personal_data_transmitter.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/devices/personal_data_transmitter.dm - byond
+
+
+
+
+code/game/objects/items/devices/personal_data_transmitter.dm
+
+
+
+
+ /obj /item /storage /box/pdt_kit/advanced THE ADVANCED VERSION... ADMIN SPAWN ONLY... USES TGUI RADAR...
+
+
+
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 000000000000..b84725e97ec0
--- /dev/null
+++ b/code/game/objects/items/devices/radio/encryptionkey.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/devices/radio/encryptionkey.dm - byond
+
+
+
+
+code/game/objects/items/devices/radio/encryptionkey.dm
+
+
+
+
+ /obj /item /device/encryptionkey/WY For CL and their Marine goons
+ /obj /item /device/encryptionkey/mortar Used by the Mortar Crew in WO game mode - intently has no squad radio access
+
+
+
diff --git a/code/game/objects/items/explosives/grenades/marines.html b/code/game/objects/items/explosives/grenades/marines.html
new file mode 100644
index 000000000000..b0d067b648e3
--- /dev/null
+++ b/code/game/objects/items/explosives/grenades/marines.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/game/objects/items/explosives/grenades/marines.dm - byond
+
+
+
+
+code/game/objects/items/explosives/grenades/marines.dm
+
+
+
+
+ /obj /item /explosive /grenade/sebb /primed Damage equation: damage - (mob distance * falloff_dam_reduction_mult)
+Example: A marine is 3 tiles out, the distance (3) is multiplied by falloff_dam_reduction_mult to get falloff.
+The raw damage is minused by falloff to get actual damage
+ /obj /item /explosive /grenade/baton Baton slugs
+
+
+
diff --git a/code/game/objects/items/explosives/mine.html b/code/game/objects/items/explosives/mine.html
new file mode 100644
index 000000000000..d30da5731b04
--- /dev/null
+++ b/code/game/objects/items/explosives/mine.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/explosives/mine.dm - byond
+
+
+
+
+code/game/objects/items/explosives/mine.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/handheld_distress_beacon.html b/code/game/objects/items/handheld_distress_beacon.html
new file mode 100644
index 000000000000..3efc3822815d
--- /dev/null
+++ b/code/game/objects/items/handheld_distress_beacon.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/handheld_distress_beacon.dm - byond
+
+
+
+
+code/game/objects/items/handheld_distress_beacon.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/reagent_containers/dropper.html b/code/game/objects/items/reagent_containers/dropper.html
new file mode 100644
index 000000000000..d0a6d53fc6aa
--- /dev/null
+++ b/code/game/objects/items/reagent_containers/dropper.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/reagent_containers/dropper.dm - byond
+
+
+
+
+code/game/objects/items/reagent_containers/dropper.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/reagent_containers/food.html b/code/game/objects/items/reagent_containers/food.html
new file mode 100644
index 000000000000..f642b9720082
--- /dev/null
+++ b/code/game/objects/items/reagent_containers/food.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/reagent_containers/food.dm - byond
+
+
+
+
+code/game/objects/items/reagent_containers/food.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/reagent_containers/food/condiment.html b/code/game/objects/items/reagent_containers/food/condiment.html
new file mode 100644
index 000000000000..f35c6fb8800c
--- /dev/null
+++ b/code/game/objects/items/reagent_containers/food/condiment.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/reagent_containers/food/condiment.dm - byond
+
+
+
+
+code/game/objects/items/reagent_containers/food/condiment.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/reagent_containers/food/drinks.html b/code/game/objects/items/reagent_containers/food/drinks.html
new file mode 100644
index 000000000000..3f4be7e4d5a6
--- /dev/null
+++ b/code/game/objects/items/reagent_containers/food/drinks.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/game/objects/items/reagent_containers/food/drinks.dm - byond
+
+
+
+
+code/game/objects/items/reagent_containers/food/drinks.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/reagent_containers/food/drinks/bottle.html b/code/game/objects/items/reagent_containers/food/drinks/bottle.html
new file mode 100644
index 000000000000..04d978fc2ab7
--- /dev/null
+++ b/code/game/objects/items/reagent_containers/food/drinks/bottle.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/game/objects/items/reagent_containers/food/drinks/bottle.dm - byond
+
+
+
+
+code/game/objects/items/reagent_containers/food/drinks/bottle.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/reagent_containers/food/drinks/jar.html b/code/game/objects/items/reagent_containers/food/drinks/jar.html
new file mode 100644
index 000000000000..207f7cd16785
--- /dev/null
+++ b/code/game/objects/items/reagent_containers/food/drinks/jar.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/reagent_containers/food/drinks/jar.dm - byond
+
+
+
+
+code/game/objects/items/reagent_containers/food/drinks/jar.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/reagent_containers/food/snacks.html b/code/game/objects/items/reagent_containers/food/snacks.html
new file mode 100644
index 000000000000..527b23775880
--- /dev/null
+++ b/code/game/objects/items/reagent_containers/food/snacks.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/reagent_containers/food/snacks.dm - byond
+
+
+
+
+code/game/objects/items/reagent_containers/food/snacks.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/reagent_containers/food/snacks/meat.html b/code/game/objects/items/reagent_containers/food/snacks/meat.html
new file mode 100644
index 000000000000..69c0d05d0868
--- /dev/null
+++ b/code/game/objects/items/reagent_containers/food/snacks/meat.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/reagent_containers/food/snacks/meat.dm - byond
+
+
+
+
+code/game/objects/items/reagent_containers/food/snacks/meat.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/reagent_containers/glass.html b/code/game/objects/items/reagent_containers/glass.html
new file mode 100644
index 000000000000..8b8450c18205
--- /dev/null
+++ b/code/game/objects/items/reagent_containers/glass.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/reagent_containers/glass.dm - byond
+
+
+
+
+code/game/objects/items/reagent_containers/glass.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/reagent_containers/hypospray.html b/code/game/objects/items/reagent_containers/hypospray.html
new file mode 100644
index 000000000000..1baa98ec75c7
--- /dev/null
+++ b/code/game/objects/items/reagent_containers/hypospray.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/reagent_containers/hypospray.dm - byond
+
+
+
+
+code/game/objects/items/reagent_containers/hypospray.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/reagent_containers/pill.html b/code/game/objects/items/reagent_containers/pill.html
new file mode 100644
index 000000000000..ed08d524c50b
--- /dev/null
+++ b/code/game/objects/items/reagent_containers/pill.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/objects/items/reagent_containers/pill.dm - byond
+
+
+
+
+code/game/objects/items/reagent_containers/pill.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/reagent_containers/robot_parts.html b/code/game/objects/items/reagent_containers/robot_parts.html
new file mode 100644
index 000000000000..7676c7026d36
--- /dev/null
+++ b/code/game/objects/items/reagent_containers/robot_parts.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/reagent_containers/robot_parts.dm - byond
+
+
+
+
+code/game/objects/items/reagent_containers/robot_parts.dm
+
+
+
+
+ /obj /item /fake_robot_head A cameo of a real robotic head with limited gameplay functionality
+
+
+
diff --git a/code/game/objects/items/reagent_containers/syringes.html b/code/game/objects/items/reagent_containers/syringes.html
new file mode 100644
index 000000000000..06aab8bf82ec
--- /dev/null
+++ b/code/game/objects/items/reagent_containers/syringes.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/game/objects/items/reagent_containers/syringes.dm - byond
+
+
+
+
+code/game/objects/items/reagent_containers/syringes.dm
+
+
+
+Define Details
+SYRINGE_DRAW
+
+
+
+ Syringes.
+
+
+
diff --git a/code/game/objects/items/stacks/flags.html b/code/game/objects/items/stacks/flags.html
new file mode 100644
index 000000000000..d7b1d7754caf
--- /dev/null
+++ b/code/game/objects/items/stacks/flags.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/stacks/flags.dm - byond
+
+
+
+
+code/game/objects/items/stacks/flags.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/stock_parts.html b/code/game/objects/items/stock_parts.html
new file mode 100644
index 000000000000..237413aa89d5
--- /dev/null
+++ b/code/game/objects/items/stock_parts.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/stock_parts.dm - byond
+
+
+
+
+code/game/objects/items/stock_parts.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/storage/backpack.html b/code/game/objects/items/storage/backpack.html
new file mode 100644
index 000000000000..ce4e23588e55
--- /dev/null
+++ b/code/game/objects/items/storage/backpack.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/storage/backpack.dm - byond
+
+
+
+
+code/game/objects/items/storage/backpack.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/storage/belt.html b/code/game/objects/items/storage/belt.html
new file mode 100644
index 000000000000..be1c32c2081e
--- /dev/null
+++ b/code/game/objects/items/storage/belt.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/storage/belt.dm - byond
+
+
+
+
+code/game/objects/items/storage/belt.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/storage/boxes.html b/code/game/objects/items/storage/boxes.html
new file mode 100644
index 000000000000..96b14ea9a380
--- /dev/null
+++ b/code/game/objects/items/storage/boxes.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/storage/boxes.dm - byond
+
+
+
+
+code/game/objects/items/storage/boxes.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/storage/pouch.html b/code/game/objects/items/storage/pouch.html
new file mode 100644
index 000000000000..fb1596a28c98
--- /dev/null
+++ b/code/game/objects/items/storage/pouch.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/objects/items/storage/pouch.dm - byond
+
+
+
+
+code/game/objects/items/storage/pouch.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/storage/storage.html b/code/game/objects/items/storage/storage.html
new file mode 100644
index 000000000000..b861dd08bcf9
--- /dev/null
+++ b/code/game/objects/items/storage/storage.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/storage/storage.dm - byond
+
+
+
+
+code/game/objects/items/storage/storage.dm
+
+
+
+
+ /obj/item/storage This contains what previously was known as stored_start, stored_continue, and stored_end
+
+
+
diff --git a/code/game/objects/items/trash.html b/code/game/objects/items/trash.html
new file mode 100644
index 000000000000..af63a7b512cf
--- /dev/null
+++ b/code/game/objects/items/trash.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/game/objects/items/trash.dm - byond
+
+
+
+
+code/game/objects/items/trash.dm
+
+
+
+
+
+
+
diff --git a/code/game/objects/items/weapons/twohanded.html b/code/game/objects/items/weapons/twohanded.html
new file mode 100644
index 000000000000..2cd429bc9b5d
--- /dev/null
+++ b/code/game/objects/items/weapons/twohanded.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/weapons/twohanded.dm - byond
+
+
+
+
+code/game/objects/items/weapons/twohanded.dm
+
+
+
+
+ /obj /item /weapon/twohanded/offhand OFFHAND
+
+
+
diff --git a/code/game/objects/prop.html b/code/game/objects/prop.html
new file mode 100644
index 000000000000..7add9bd72037
--- /dev/null
+++ b/code/game/objects/prop.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/objects/prop.dm - byond
+
+
+
+
+code/game/objects/prop.dm
+
+
+
+
+ /obj/item/prop/replacer A prop that acts as a replacement for another item, mimicking their looks.
+Mainly used in Reqs Tutorial to provide the full item selections without side effects.
+ /obj /item /prop/alien/hugger Xeno-specific props
+
+
+
diff --git a/code/game/objects/structures/kitchen_spike.html b/code/game/objects/structures/kitchen_spike.html
new file mode 100644
index 000000000000..3d6ac830288b
--- /dev/null
+++ b/code/game/objects/structures/kitchen_spike.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/kitchen_spike.dm - byond
+
+
+
+
+code/game/objects/structures/kitchen_spike.dm
+
+
+
+
+ /obj /structure/kitchenspike Kitchen Spike
+
+
+
diff --git a/code/game/objects/structures/pipes/vents/pump_scrubber.html b/code/game/objects/structures/pipes/vents/pump_scrubber.html
new file mode 100644
index 000000000000..61dee4d60f37
--- /dev/null
+++ b/code/game/objects/structures/pipes/vents/pump_scrubber.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/pipes/vents/pump_scrubber.dm - byond
+
+
+
+
+code/game/objects/structures/pipes/vents/pump_scrubber.dm
+
+
+
+
+ /obj /structure/pipes /vents/pump/no_boom/gas Vents that are linked to ARES Security Protocols, allowing the ARES Interface to trigger security measures.
+
+
+
diff --git a/code/game/objects/structures/props.html b/code/game/objects/structures/props.html
new file mode 100644
index 000000000000..aaad52cf0282
--- /dev/null
+++ b/code/game/objects/structures/props.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/structures/props.dm - byond
+
+
+
+
+code/game/objects/structures/props.dm
+
+
+
+
+ /obj /structure/prop/invuln/fire Decorative fire.
+
+
+
diff --git a/code/game/runtimes.html b/code/game/runtimes.html
new file mode 100644
index 000000000000..6c2d6ad4dd4b
--- /dev/null
+++ b/code/game/runtimes.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/game/runtimes.dm - byond
+
+
+
+
+code/game/runtimes.dm
+
+
+
+
+ Shorthand of Static Initializer errors only, for use in STUI
+Full text of all Static Initializer + World Init errors, for log backfilling
+Truthy when init is done and we don't need these shenanigans anymore
+
+
+
diff --git a/code/game/sound.html b/code/game/sound.html
new file mode 100644
index 000000000000..c5d732279d6d
--- /dev/null
+++ b/code/game/sound.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/game/sound.dm - byond
+
+
+
+
+code/game/sound.dm
+
+
+
+
+ /proc/playsound_area
+ Plays sound to all mobs that are map-level contents of an area
+ /proc/playsound_z
+ Play sound for all on-map clients on a given Z-level. Good for ambient sounds.
+
+
+
diff --git a/code/game/turfs/closed.html b/code/game/turfs/closed.html
new file mode 100644
index 000000000000..eb4371984759
--- /dev/null
+++ b/code/game/turfs/closed.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/turfs/closed.dm - byond
+
+
+
+
+code/game/turfs/closed.dm
+
+
+
+
+ /turf /closed/cordon Cordon turf marking z-level boundaries and surrounding reservations
+ /turf /closed/cordon/debug Used as placeholder turf when something went really wrong, as per /tg/ string lists handler
+
+
+
diff --git a/code/game/turfs/floor_types.html b/code/game/turfs/floor_types.html
new file mode 100644
index 000000000000..df7618dd7b25
--- /dev/null
+++ b/code/game/turfs/floor_types.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/game/turfs/floor_types.dm - byond
+
+
+
+
+code/game/turfs/floor_types.dm
+
+
+
+
+ /turf /open/floor/plating/bare_catwalk Visually like plating+catwalks but without overlaying or interactions - mainly for Reqs Elevator
+ /turf /open/floor/tdome Admin level thunderdome floor. Doesn't get damaged by explosions and such for pristine testing
+ /turf/open/floor/almayer/empty Base type of the requisitions and vehicle bay elevator pits.
+ /turf /open/floor/almayer/empty /requisitions Requisitions pit.
+ /turf /open/floor/almayer/empty /vehicle_bay Vehicle bay pit.
+
+
+
diff --git a/code/game/turfs/walls/r_wall.html b/code/game/turfs/walls/r_wall.html
new file mode 100644
index 000000000000..7f6943e93c4e
--- /dev/null
+++ b/code/game/turfs/walls/r_wall.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/turfs/walls/r_wall.dm - byond
+
+
+
+
+code/game/turfs/walls/r_wall.dm
+
+
+
+
+ /turf /closed/wall /r_wall/elevator Destructible elevator walls, for when you want the elevator to act as a prop rather than an actual elevator
+
+
+
diff --git a/code/game/turfs/walls/wall_types.html b/code/game/turfs/walls/wall_types.html
new file mode 100644
index 000000000000..367b72ffd78d
--- /dev/null
+++ b/code/game/turfs/walls/wall_types.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/turfs/walls/wall_types.dm - byond
+
+
+
+
+code/game/turfs/walls/wall_types.dm
+
+
+
+
+ /turf /closed/wall /almayer /reinforced/temphull Acts like /turf/closed/wall/almayer/outer until post-hijack where it reverts to /turf/closed/wall/almayer/reinforced.
+
+
+
diff --git a/code/global.html b/code/global.html
new file mode 100644
index 000000000000..71c8c6b5d9e2
--- /dev/null
+++ b/code/global.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/global.dm - byond
+
+
+
+
+code/global.dm
+
+
+
+
+ RL_EVERYTHING The sum of all other rank permissions, other than host or profiler.
+ RL_HOST Truely everything
Define Details
+RL_EVERYTHING
+
+
+
+ The sum of all other rank permissions, other than host or profiler.
RL_HOST
+
+
+
+ Truely everything
+
+
+
diff --git a/code/modules/admin/NewBan.html b/code/modules/admin/NewBan.html
new file mode 100644
index 000000000000..63ae77f24560
--- /dev/null
+++ b/code/modules/admin/NewBan.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/admin/NewBan.dm - byond
+
+
+
+
+code/modules/admin/NewBan.dm
+
+
+
+
+
+
+
diff --git a/code/modules/admin/autoreply.html b/code/modules/admin/autoreply.html
new file mode 100644
index 000000000000..cf81b52f8552
--- /dev/null
+++ b/code/modules/admin/autoreply.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/admin/autoreply.dm - byond
+
+
+
+
+code/modules/admin/autoreply.dm
+
+
+
+
+
+
+
diff --git a/code/modules/admin/callproc.html b/code/modules/admin/callproc.html
new file mode 100644
index 000000000000..e451b85f064d
--- /dev/null
+++ b/code/modules/admin/callproc.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ code/modules/admin/callproc.dm - byond
+
+
+
+
+code/modules/admin/callproc.dm
+
+
+
+
+ /mob/proccall_handler Used to handle proccalls called indirectly by an admin (namely tgs).
+Has to be a mob because IsAdminAdvancedProcCall() checks usr, which is a mob variable.
+So usr is set to this for any proccalls that don't have any usr mob/client to refer to.
+ /proc/HandleUserlessProcCall
+ Handles a userless proccall, used by circuits.
+ /proc/HandleUserlessSDQL
+ Handles a userless sdql, used by TGS.
+ /proc/WrapAdminProcCall
+ Wrapper for proccalls where the datum is flagged as vareditted
+
+
+
diff --git a/code/modules/admin/tag.html b/code/modules/admin/tag.html
new file mode 100644
index 000000000000..f2eabf8db98f
--- /dev/null
+++ b/code/modules/admin/tag.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/admin/tag.dm - byond
+
+
+
+
+code/modules/admin/tag.dm
+
+
+
+
+ TAG_DEL Quick define for readability
Define Details
+TAG_DEL
+
+
+
+
+ Quick define for readability
+
+
+
diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.html b/code/modules/admin/verbs/SDQL2/SDQL_2.html
new file mode 100644
index 000000000000..12ed97d92307
--- /dev/null
+++ b/code/modules/admin/verbs/SDQL2/SDQL_2.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ code/modules/admin/verbs/SDQL2/SDQL_2.dm - byond
+
+
+
+
+code/modules/admin/verbs/SDQL2/SDQL_2.dm
+
+
+
+Define Details
+SDQL2_OPTION_BLOCKING_CALLS
+
+
+
+ Require proccalls to finish before continuing the query
SDQL2_OPTION_DO_NOT_AUTOGC
+
+
+
+ Do not delete the query after its completion
SDQL2_OPTION_HIGH_PRIORITY
+
+
+
+ High priority SDQL query, allow using almost all of the tick.
+ When using SELECT, don't print a popup. Makes SELECT vastly faster.
SDQL2_OPTION_OPTIMIZED_SOURCE
+
+
+
+ Change to GLOB.mob_list for /mob or etc. automatically if we're iterating over world.
+This isn't default because SDQL2 is a technical tool that should be as failure-safe as possible (such as a mob not being added to GLOB.mob_list, for example)
SDQL2_OPTION_SELECT_OUTPUT_SKIP_NULLS
+
+
+
+ Don't print nulls that the select picked up. Enabled by default
SDQL2_OPTION_SEQUENTIAL
+
+
+
+ Queries chained together with ; will execute in series instead of in parallel
+
+
+
diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.html b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.html
new file mode 100644
index 000000000000..06e324b1b937
--- /dev/null
+++ b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm - byond
+
+
+
+
+code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm
+
+
+
+
+ /proc/_pick_list
+ Allow me to explain
+for some reason, if pick() is passed arglist(args) directly and args contains only one list
+it considers it to be a list of lists
+this means something like _pick(list) would fail
+need to do this instead
+ /proc/_animate_filter
+ Auxtools REALLY doesn't know how to handle filters as values;
+when passed as arguments to auxtools-called procs, they aren't simply treated as nulls -
+they don't even count towards the length of args.
+For example, calling some_proc([a filter], foo, bar) from auxtools
+is equivalent to calling some_proc(foo, bar). Thus, we can't use _animate directly on filters.
+Use this to perform animation steps on a filter. Consecutive steps on the same filter can be
+achieved by calling _animate with no target.
+
+
+
diff --git a/code/modules/admin/verbs/adminhelp.html b/code/modules/admin/verbs/adminhelp.html
new file mode 100644
index 000000000000..61c60d5629a9
--- /dev/null
+++ b/code/modules/admin/verbs/adminhelp.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ code/modules/admin/verbs/adminhelp.dm - byond
+
+
+
+
+code/modules/admin/verbs/adminhelp.dm
+
+
+
+
+ /datum/admin_help_tickets
+ /datum/admin_help
+ /proc/admin_ticket_log
+ Use this proc when an admin takes action that may be related to an open ticket on what
+what can be a client, ckey, or mob
+player_message: If the message should be shown in the player ticket panel, fill this out
+log_in_blackbox: Whether or not this message with the blackbox system.
+If disabled, this message should be logged with a different proc call
+ /proc/check_asay_links
+ Checks a given message to see if any of the words are something we want to treat specially, as detailed below.
+
+
+
diff --git a/code/modules/admin/view_variables/debug_variables.html b/code/modules/admin/view_variables/debug_variables.html
new file mode 100644
index 000000000000..6c74767595ca
--- /dev/null
+++ b/code/modules/admin/view_variables/debug_variables.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/admin/view_variables/debug_variables.dm - byond
+
+
+
+
+code/modules/admin/view_variables/debug_variables.dm
+
+
+
+
+
+
+
diff --git a/code/modules/almayer/shakeship.html b/code/modules/almayer/shakeship.html
new file mode 100644
index 000000000000..ede361afb3bf
--- /dev/null
+++ b/code/modules/almayer/shakeship.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/almayer/shakeship.dm - byond
+
+
+
+
+code/modules/almayer/shakeship.dm
+
+
+
+
+
+
+
diff --git a/code/modules/almayer/weaponhits.html b/code/modules/almayer/weaponhits.html
new file mode 100644
index 000000000000..3d482e79b13d
--- /dev/null
+++ b/code/modules/almayer/weaponhits.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/almayer/weaponhits.dm - byond
+
+
+
+
+code/modules/almayer/weaponhits.dm
+
+
+
+
+ /datum /space_weapon Space weapons it's self for ship to ship or PKO/Xeno PKO things
+ /datum /space_weapon_ammo Ammo datum for space weapons
+
+
+
diff --git a/code/modules/asset_cache.html b/code/modules/asset_cache.html
new file mode 100644
index 000000000000..3f284003ab62
--- /dev/null
+++ b/code/modules/asset_cache.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ code/modules/asset_cache/readme.md - byond
+
+
+
+
+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 000000000000..c8a458fd3da8
--- /dev/null
+++ b/code/modules/asset_cache/asset_cache_item.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/asset_cache/asset_cache_item.dm - byond
+
+
+
+
+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 000000000000..9a9dd7004ad7
--- /dev/null
+++ b/code/modules/asset_cache/asset_list.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/asset_cache/asset_list.dm - byond
+
+
+
+
+code/modules/asset_cache/asset_list.dm
+
+
+
+
+ /datum/asset/simple If you don't need anything complicated.
+ /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/transports/asset_transport.html b/code/modules/asset_cache/transports/asset_transport.html
new file mode 100644
index 000000000000..f9adcd20d69d
--- /dev/null
+++ b/code/modules/asset_cache/transports/asset_transport.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/asset_cache/transports/asset_transport.dm - byond
+
+
+
+
+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 000000000000..dbb973be5542
--- /dev/null
+++ b/code/modules/asset_cache/transports/webroot_transport.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/asset_cache/transports/webroot_transport.dm - byond
+
+
+
+
+code/modules/asset_cache/transports/webroot_transport.dm
+
+
+
+
+
+
+
diff --git a/code/modules/autowiki/autowiki.html b/code/modules/autowiki/autowiki.html
new file mode 100644
index 000000000000..c8d05127bfad
--- /dev/null
+++ b/code/modules/autowiki/autowiki.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/autowiki/autowiki.dm - byond
+
+
+
+
+code/modules/autowiki/autowiki.dm
+
+
+
+
+ /proc/generate_autowiki_output
+ When the AUTOWIKI
define is enabled, will generate an output file for tools/autowiki/autowiki.js to consume.
+Autowiki code intentionally still exists even without the define, to ensure developers notice
+when they break it immediately, rather than until CI or worse, call time.
+Returns a string of the autowiki output file
+
+
+
diff --git a/code/modules/autowiki/pages/_page.html b/code/modules/autowiki/pages/_page.html
new file mode 100644
index 000000000000..e3a2f368b7e7
--- /dev/null
+++ b/code/modules/autowiki/pages/_page.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/autowiki/pages/_page.dm - byond
+
+
+
+
+code/modules/autowiki/pages/_page.dm
+
+
+
+
+
+
+
diff --git a/code/modules/buildmode.html b/code/modules/buildmode.html
new file mode 100644
index 000000000000..c35dc346ef64
--- /dev/null
+++ b/code/modules/buildmode.html
@@ -0,0 +1,209 @@
+
+
+
+
+
+
+ code/modules/buildmode/README.md - byond
+
+
+
+
+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.
+
+
+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.
+
+
+
+
+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.
+
+
+
+
+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.
+
+
+
+
+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/buildmode/bm-mode.html b/code/modules/buildmode/bm-mode.html
new file mode 100644
index 000000000000..5dd29619bb12
--- /dev/null
+++ b/code/modules/buildmode/bm-mode.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/modules/buildmode/bm-mode.dm - byond
+
+
+
+
+code/modules/buildmode/bm-mode.dm
+
+
+
+Define Details
+AREASELECT_CORNERA
+
+
+
+ Corner A area section for buildmode
AREASELECT_CORNERB
+
+
+
+ Corner B area selection for buildmode
+
+
+
diff --git a/code/modules/character_traits/character_trait.html b/code/modules/character_traits/character_trait.html
new file mode 100644
index 000000000000..9cd7b50550d0
--- /dev/null
+++ b/code/modules/character_traits/character_trait.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/character_traits/character_trait.dm - byond
+
+
+
+
+code/modules/character_traits/character_trait.dm
+
+
+
+
+
+
+
diff --git a/code/modules/client/statbrowser_options.html b/code/modules/client/statbrowser_options.html
new file mode 100644
index 000000000000..452eb08da81a
--- /dev/null
+++ b/code/modules/client/statbrowser_options.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/client/statbrowser_options.dm - byond
+
+
+
+
+code/modules/client/statbrowser_options.dm
+
+
+
+
+ /datum /statbrowser_options Handles the Statbrowser Options window for a given client
+
+
+
diff --git a/code/modules/clothing/under/marine_uniform.html b/code/modules/clothing/under/marine_uniform.html
new file mode 100644
index 000000000000..896e1e2e0ae1
--- /dev/null
+++ b/code/modules/clothing/under/marine_uniform.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/clothing/under/marine_uniform.dm - byond
+
+
+
+
+code/modules/clothing/under/marine_uniform.dm
+
+
+
+
+
+
+
diff --git a/code/modules/cm_marines/dropship_ammo.html b/code/modules/cm_marines/dropship_ammo.html
new file mode 100644
index 000000000000..bf1463e0e9ea
--- /dev/null
+++ b/code/modules/cm_marines/dropship_ammo.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/cm_marines/dropship_ammo.dm - byond
+
+
+
+
+code/modules/cm_marines/dropship_ammo.dm
+
+
+
+
+
+
+
diff --git a/code/modules/cm_marines/dropship_equipment.html b/code/modules/cm_marines/dropship_equipment.html
new file mode 100644
index 000000000000..6d946091d28b
--- /dev/null
+++ b/code/modules/cm_marines/dropship_equipment.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/cm_marines/dropship_equipment.dm - byond
+
+
+
+
+code/modules/cm_marines/dropship_equipment.dm
+
+
+
+
+ /obj /structure/dropship_equipment Dropship equipment, mainly weaponry but also utility implements
+ /obj /structure/dropship_equipment/sentry_holder Turret holder for dropship automated sentries
+ /obj /structure/dropship_equipment/mg_holder Holder for the dropship mannable machinegun system
+ /obj /structure/dropship_equipment/adv_comp COMPUTERS
+ /obj/structure/dropship_equipment/weapon CAS Dropship weaponry, used for aerial bombardment
+
+
+
diff --git a/code/modules/cm_marines/marines_consoles.html b/code/modules/cm_marines/marines_consoles.html
new file mode 100644
index 000000000000..98550191ce49
--- /dev/null
+++ b/code/modules/cm_marines/marines_consoles.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/modules/cm_marines/marines_consoles.dm - byond
+
+
+
+
+code/modules/cm_marines/marines_consoles.dm
+
+
+
+Define Details
+RAIDER_OFFICER_SQUAD
+
+
+
+ This is a really hacky way to make SOF work, but the nice and easy alternative would screw with round spawning
SENSORS_UPDATE_PERIOD
+
+
+
+ How often the sensor data is updated
UNKNOWN_JOB_ID
+
+
+
+ The job sorting ID associated with otherwise unknown jobs
+
+
+
diff --git a/code/modules/cm_marines/radar.html b/code/modules/cm_marines/radar.html
new file mode 100644
index 000000000000..23ce0e597991
--- /dev/null
+++ b/code/modules/cm_marines/radar.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/cm_marines/radar.dm - byond
+
+
+
+
+code/modules/cm_marines/radar.dm
+
+
+
+
+ /datum/radar generic parent that handles most of the process
+ /datum /radar /lifeline A program that tracks crew members via suit sensors
+
+
+
diff --git a/code/modules/cm_marines/specialist.html b/code/modules/cm_marines/specialist.html
new file mode 100644
index 000000000000..e1fd93389596
--- /dev/null
+++ b/code/modules/cm_marines/specialist.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/cm_marines/specialist.dm - byond
+
+
+
+
+code/modules/cm_marines/specialist.dm
+
+
+
+
+ /proc/get_specialist_set
+ Get a specialist set datum typepath given a mob, returns null if they aren't a spec or haven't chosen a kit.
+
+
+
diff --git a/code/modules/cm_marines/vehicle_part_fabricator.html b/code/modules/cm_marines/vehicle_part_fabricator.html
new file mode 100644
index 000000000000..b9f8008d7f98
--- /dev/null
+++ b/code/modules/cm_marines/vehicle_part_fabricator.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/cm_marines/vehicle_part_fabricator.dm - byond
+
+
+
+
+code/modules/cm_marines/vehicle_part_fabricator.dm
+
+
+
+
+ /obj /structure/machinery/part_fabricator/tank Fabricator for individual tank parts
+
+
+
diff --git a/code/modules/cm_preds/yaut_mask.html b/code/modules/cm_preds/yaut_mask.html
new file mode 100644
index 000000000000..46040b11ca05
--- /dev/null
+++ b/code/modules/cm_preds/yaut_mask.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/cm_preds/yaut_mask.dm - byond
+
+
+
+
+code/modules/cm_preds/yaut_mask.dm
+
+
+
+
+
+
+
diff --git a/code/modules/cm_preds/yaut_weapons.html b/code/modules/cm_preds/yaut_weapons.html
new file mode 100644
index 000000000000..7ed4887f54ee
--- /dev/null
+++ b/code/modules/cm_preds/yaut_weapons.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/cm_preds/yaut_weapons.dm - byond
+
+
+
+
+code/modules/cm_preds/yaut_weapons.dm
+
+
+
+
+
+
+
diff --git a/code/modules/cm_tech/techs/abstract/repeatable.html b/code/modules/cm_tech/techs/abstract/repeatable.html
new file mode 100644
index 000000000000..ff0111907850
--- /dev/null
+++ b/code/modules/cm_tech/techs/abstract/repeatable.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/cm_tech/techs/abstract/repeatable.dm - byond
+
+
+
+
+code/modules/cm_tech/techs/abstract/repeatable.dm
+
+
+
+
+ /datum /tech /repeatable A tech that can be purchased multiple times
+
+
+
diff --git a/code/modules/decorators/christmas.html b/code/modules/decorators/christmas.html
new file mode 100644
index 000000000000..c06ba106cf5c
--- /dev/null
+++ b/code/modules/decorators/christmas.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/decorators/christmas.dm - byond
+
+
+
+
+code/modules/decorators/christmas.dm
+
+
+
+
+ /datum /decorator/christmas/food Replaces marine food dispensers contents with more festive MREs
+
+
+
diff --git a/code/modules/defenses/sentry_computer.html b/code/modules/defenses/sentry_computer.html
new file mode 100644
index 000000000000..82ed30e2c846
--- /dev/null
+++ b/code/modules/defenses/sentry_computer.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/defenses/sentry_computer.dm - byond
+
+
+
+
+code/modules/defenses/sentry_computer.dm
+
+
+
+
+
+
+
diff --git a/code/modules/discord/discord_embed.html b/code/modules/discord/discord_embed.html
new file mode 100644
index 000000000000..5bbd5d207afa
--- /dev/null
+++ b/code/modules/discord/discord_embed.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/discord/discord_embed.dm - byond
+
+
+
+
+code/modules/discord/discord_embed.dm
+
+
+
+
+ /datum/discord_embed Documentation for the embed object and all of its variables can be found at
+https://discord.com/developers/docs/resources/channel#embed-object
+It is recommended to read the documentation on the discord website, as the information below could become outdated in the future.
+
+
+
diff --git a/code/modules/dropships/attach_points/attach_point.html b/code/modules/dropships/attach_points/attach_point.html
new file mode 100644
index 000000000000..06bef03aa2a5
--- /dev/null
+++ b/code/modules/dropships/attach_points/attach_point.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/dropships/attach_points/attach_point.dm - byond
+
+
+
+
+code/modules/dropships/attach_points/attach_point.dm
+
+
+
+
+
+
+
diff --git a/code/modules/dropships/cas/fire_mission_record.html b/code/modules/dropships/cas/fire_mission_record.html
new file mode 100644
index 000000000000..31513434c37c
--- /dev/null
+++ b/code/modules/dropships/cas/fire_mission_record.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/dropships/cas/fire_mission_record.dm - byond
+
+
+
+
+code/modules/dropships/cas/fire_mission_record.dm
+
+
+
+
+
+
+
diff --git a/code/modules/escape_menu/details.html b/code/modules/escape_menu/details.html
new file mode 100644
index 000000000000..2cdd770fb645
--- /dev/null
+++ b/code/modules/escape_menu/details.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/escape_menu/details.dm - byond
+
+
+
+
+code/modules/escape_menu/details.dm
+
+
+
+
+
+
+
diff --git a/code/modules/escape_menu/subsystem.html b/code/modules/escape_menu/subsystem.html
new file mode 100644
index 000000000000..d8eba11dd840
--- /dev/null
+++ b/code/modules/escape_menu/subsystem.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/escape_menu/subsystem.dm - byond
+
+
+
+
+code/modules/escape_menu/subsystem.dm
+
+
+
+
+ /var/SSescape_menu
+ Subsystem for controlling anything related to the escape menu
+
+
+
diff --git a/code/modules/escape_menu/title.html b/code/modules/escape_menu/title.html
new file mode 100644
index 000000000000..bbf8de13db93
--- /dev/null
+++ b/code/modules/escape_menu/title.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/escape_menu/title.dm - byond
+
+
+
+
+code/modules/escape_menu/title.dm
+
+
+
+
+
+
+
diff --git a/code/modules/events/_events.html b/code/modules/events/_events.html
new file mode 100644
index 000000000000..8ac295cddc1d
--- /dev/null
+++ b/code/modules/events/_events.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/events/_events.dm - byond
+
+
+
+
+code/modules/events/_events.dm
+
+
+
+
+
+
+
diff --git a/code/modules/flufftext/Chinese.html b/code/modules/flufftext/Chinese.html
new file mode 100644
index 000000000000..0bd8b15c28f0
--- /dev/null
+++ b/code/modules/flufftext/Chinese.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/flufftext/Chinese.dm - byond
+
+
+
+
+code/modules/flufftext/Chinese.dm
+
+
+
+Define Details
+CHINESE_SOUND_ZERO_INITIAL_CHANCE
+
+
+
+ How likely the syllable is not to have a consonant at the start, needs to be kinda high
+
+
+
diff --git a/code/modules/flufftext/Japanese.html b/code/modules/flufftext/Japanese.html
new file mode 100644
index 000000000000..6271ffd3bac6
--- /dev/null
+++ b/code/modules/flufftext/Japanese.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ code/modules/flufftext/Japanese.dm - byond
+
+
+
+
+code/modules/flufftext/Japanese.dm
+
+
+
+Define Details
+JAPANESE_SOUND_APOSTROPHE_CHANCE
+
+
+
+ How likely it is to insert an apostrophe between two syllables (this can happen anywhere, mainly used for morpheme boundaries.)
JAPANESE_SOUND_GEMINATION_CHANCE_INITIAL
+
+
+
+ How likely the initial (consonant) is to geminate ie k -> kk
JAPANESE_SOUND_GEMINATION_CHANCE_NUCLEUS
+
+
+
+ How likely the nucleus (vowel) is to geminate ie a -> aa
JAPANESE_SOUND_GEMINATION_CHANCE_VOICED
+
+
+
+ how likely voiced sounds are to geminate, these mainly occur in foreign loans so quite unlikely
JAPANESE_SOUND_NULL_INITIAL_CHANCE
+
+
+
+ How likely the syllable is not to have a consonant at the start, needs to be kinda high for convincing diphthongs
JAPANESE_SOUND_N_FINAL_CHANCE
+
+
+
+ How likely the syllable is to end in an N
JAPANESE_SOUND_PALATALISATION_CHANCE
+
+
+
+ How likely the consonant is to palatalise ie r -> ry
+
+
+
diff --git a/code/modules/gear_presets/corpses.html b/code/modules/gear_presets/corpses.html
new file mode 100644
index 000000000000..3eb9fbd5012b
--- /dev/null
+++ b/code/modules/gear_presets/corpses.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/gear_presets/corpses.dm - byond
+
+
+
+
+code/modules/gear_presets/corpses.dm
+
+
+
+
+
+
+
diff --git a/code/modules/gear_presets/survivors/lv_522/forcon_survivors.html b/code/modules/gear_presets/survivors/lv_522/forcon_survivors.html
new file mode 100644
index 000000000000..8f7ca4a4e4a2
--- /dev/null
+++ b/code/modules/gear_presets/survivors/lv_522/forcon_survivors.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm - byond
+
+
+
+
+code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm
+
+
+
+
+
+
+
diff --git a/code/modules/gear_presets/survivors/misc.html b/code/modules/gear_presets/survivors/misc.html
new file mode 100644
index 000000000000..2b29f4421774
--- /dev/null
+++ b/code/modules/gear_presets/survivors/misc.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/gear_presets/survivors/misc.dm - byond
+
+
+
+
+code/modules/gear_presets/survivors/misc.dm
+
+
+
+
+
+
+
diff --git a/code/modules/holidays/halloween/decorators.html b/code/modules/holidays/halloween/decorators.html
new file mode 100644
index 000000000000..ab57dc66de2d
--- /dev/null
+++ b/code/modules/holidays/halloween/decorators.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/holidays/halloween/decorators.dm - byond
+
+
+
+
+code/modules/holidays/halloween/decorators.dm
+
+
+
+
+ /datum /game_decorator/halloween /pumpkins Pumpkins decorator: adds patches of carvable/wearable pumpkins around the ground level
+Amount of pumpkins to place
+Amount of pumpkins to remove per day to halloween
+Chance reduction per day before halloween
+ /datum/game_decorator/halloween/cobwebs Cobweb decorator: adds more and more cobwebs as you go through the month
+
+
+
diff --git a/code/modules/holidays/halloween/pumpkins/patches.html b/code/modules/holidays/halloween/pumpkins/patches.html
new file mode 100644
index 000000000000..b56354e19451
--- /dev/null
+++ b/code/modules/holidays/halloween/pumpkins/patches.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/holidays/halloween/pumpkins/patches.dm - byond
+
+
+
+
+code/modules/holidays/halloween/pumpkins/patches.dm
+
+
+
+
+ /obj /structure/pumpkin_patch Patches of pumpkins spawned at roundstart from where marines can get their carvable pumpkins
+Whether there's still vines to display or not
+Amount of pumpkins currently in the patch
+Prefix to prepend to icon states, for corrupted pumpkins
+
+
+
diff --git a/code/modules/holidays/halloween/pumpkins/wearable.html b/code/modules/holidays/halloween/pumpkins/wearable.html
new file mode 100644
index 000000000000..2982be3f9f53
--- /dev/null
+++ b/code/modules/holidays/halloween/pumpkins/wearable.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/holidays/halloween/pumpkins/wearable.dm - byond
+
+
+
+
+code/modules/holidays/halloween/pumpkins/wearable.dm
+
+
+
+
+ /obj /item /clothing /head/pumpkin Carved Pumpkin from the Halloween event
+Icon state prefix for corrupted pumpkin variants
+Currently carved pumpkin overlay
+
+
+
diff --git a/code/modules/keybindings.html b/code/modules/keybindings.html
new file mode 100644
index 000000000000..f3180c43a3a3
--- /dev/null
+++ b/code/modules/keybindings.html
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ code/modules/keybindings/readme.md - byond
+
+
+
+
+In-code keypress handling system code/modules/keybindings/readme.md
+
+
+
+
+ This whole system is heavily based off of forum_account's keyboard library.
+Thanks to forum_account for saving the day, the library can be found
+here !
+.dmf macros have some very serious shortcomings. For example, they do not allow reusing parts
+of one macro in another, so giving cyborgs their own shortcuts to swap active module couldn't
+inherit the movement that all mobs should have anyways. The webclient only supports one macro,
+so having more than one was problematic. Additionally each keybind has to call an actual
+verb, which meant a lot of hidden verbs that just call one other proc. Also our existing
+macro was really bad and tied unrelated behavior into Northeast()
, Southeast()
, Northwest()
,
+and Southwest()
.
+The basic premise of this system is to not screw with .dmf macro setup at all and handle
+pressing those keys in the code instead. We have every key call client.keyDown()
+or client.keyUp()
with the pressed key as an argument. Certain keys get processed
+directly by the client because they should be doable at any time, then we call
+keyDown()
or keyUp()
on the client's holder and the client's mob's focus.
+By default mob.focus
is the mob itself, but you can set it to any datum to give control of a
+client's keypresses to another object. This would be a good way to handle a menu or driving
+a mech. You can also set it to null to disregard input from a certain user.
+Movement is handled by having each client call client.keyLoop()
every game tick.
+As above, this calls holder and focus.keyLoop()
. atom/movable/keyLoop()
handles movement
+Try to keep the calculations in this proc light. It runs every tick for every client after all!
+You can also tell which keys are being held down now. Each client a list of keys pressed called
+keys_held
. Each entry is a key as a text string associated with the world.time when it was
+pressed.
+No client-set keybindings at this time, but it shouldn't be too hard if someone wants.
+Notes about certain keys:
+
+Tab
has client-sided behavior but acts normally
+T
, O
, and M
move focus to the input when pressed. This fires the keyUp macro right away.
+\
needs to be escaped in the dmf so any usage is \\
+
+You cannot TICK_CHECK
or check world.tick_usage
inside of procs called by key down and up
+events. They happen outside of a byond tick and have no meaning there. Key looping
+works correctly since it's part of a subsystem, not direct input.
+
+
+
diff --git a/code/modules/lighting/emissive_blocker.html b/code/modules/lighting/emissive_blocker.html
new file mode 100644
index 000000000000..5dc81bbe2450
--- /dev/null
+++ b/code/modules/lighting/emissive_blocker.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/lighting/emissive_blocker.dm - byond
+
+
+
+
+code/modules/lighting/emissive_blocker.dm
+
+
+
+
+
+
+
diff --git a/code/modules/lighting/lighting_mask/lighting_mask.html b/code/modules/lighting/lighting_mask/lighting_mask.html
new file mode 100644
index 000000000000..fd2919f06783
--- /dev/null
+++ b/code/modules/lighting/lighting_mask/lighting_mask.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ code/modules/lighting/lighting_mask/lighting_mask.dm - byond
+
+
+
+
+code/modules/lighting/lighting_mask/lighting_mask.dm
+
+
+
+Define Details
+LIGHTING_MASK_RADIUS
+
+
+
+ Lighting mask sprite radius in tiles
LIGHTING_MASK_SPRITE_SIZE
+
+
+
+ Lighting mask sprite diameter in pixels
+
+
+
diff --git a/code/modules/lighting/lighting_mask/lighting_mask_holder.html b/code/modules/lighting/lighting_mask/lighting_mask_holder.html
new file mode 100644
index 000000000000..0952699fc887
--- /dev/null
+++ b/code/modules/lighting/lighting_mask/lighting_mask_holder.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/lighting/lighting_mask/lighting_mask_holder.dm - byond
+
+
+
+
+code/modules/lighting/lighting_mask/lighting_mask_holder.dm
+
+
+
+
+
+
+
diff --git a/code/modules/lighting/lighting_mask/shadow_calculator.html b/code/modules/lighting/lighting_mask/shadow_calculator.html
new file mode 100644
index 000000000000..6cad9dc5a017
--- /dev/null
+++ b/code/modules/lighting/lighting_mask/shadow_calculator.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ code/modules/lighting/lighting_mask/shadow_calculator.dm - byond
+
+
+
+
+code/modules/lighting/lighting_mask/shadow_calculator.dm
+
+
+
+Define Details
+COORD_LIST_ADD
+
+
+
+
+ Inserts a coord list into a grouped list
RADIUS_BASED_OFFSET
+
+
+
+ Eyeball number for radius based offsets do not touch
+
+
+
diff --git a/code/modules/lighting/lighting_turf.html b/code/modules/lighting/lighting_turf.html
new file mode 100644
index 000000000000..a67693d06e2a
--- /dev/null
+++ b/code/modules/lighting/lighting_turf.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/modules/lighting/lighting_turf.dm - byond
+
+
+
+
+code/modules/lighting/lighting_turf.dm
+
+
+
+
+ LIGHT_POWER_ESTIMATION Estimates the light power based on the alpha of the light and the range.
+Assumes a linear fallout at (0, alpha/255) to (range, 0)
+Used for lightig mask lumcount calculations
Define Details
+LIGHT_POWER_ESTIMATION
+
+
+
+
+ Estimates the light power based on the alpha of the light and the range.
+Assumes a linear fallout at (0, alpha/255) to (range, 0)
+Used for lightig mask lumcount calculations
+
+
+
diff --git a/code/modules/logging/log_category.html b/code/modules/logging/log_category.html
new file mode 100644
index 000000000000..5238999cb65b
--- /dev/null
+++ b/code/modules/logging/log_category.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/logging/log_category.dm - byond
+
+
+
+
+code/modules/logging/log_category.dm
+
+
+
+
+ /datum/log_category The main datum that contains all log entries for a category
+ /datum /log_category /backup_category_not_found Backup log category to catch attempts to log to a category that doesn't exist
+
+
+
diff --git a/code/modules/logging/log_holder.html b/code/modules/logging/log_holder.html
new file mode 100644
index 000000000000..139bfae6bdc8
--- /dev/null
+++ b/code/modules/logging/log_holder.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/logging/log_holder.dm - byond
+
+
+
+
+code/modules/logging/log_holder.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mapping.html b/code/modules/mapping.html
new file mode 100644
index 000000000000..ac4c690f5e8b
--- /dev/null
+++ b/code/modules/mapping.html
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+ code/modules/mapping/README.txt - byond
+
+
+
+
+code/modules/mapping/README.txt
+
+
+
+
+ The code in this module originally evolved from dmm_suite and has since been
+specialized for SS13 and otherwise tweaked to fit /tg/station's needs.
+
+dmm_suite version 1.0
+ Released January 30th, 2011.
+
+NOTE: Map saving functionality removed
+
+defines the object /dmm_suite
+ - Provides the proc load_map()
+ - Loads the specified map file onto the specified z-level.
+ - provides the proc write_map()
+ - Returns a text string of the map in dmm format
+ ready for output to a file.
+ - provides the proc save_map()
+ - Returns a .dmm file if map is saved
+ - Returns FALSE if map fails to save
+
+The dmm_suite provides saving and loading of map files in BYOND's native DMM map
+format. It approximates the map saving and loading processes of the Dream Maker
+and Dream Seeker programs so as to allow editing, saving, and loading of maps at
+runtime.
+
+------------------------
+
+To save a map at runtime, create an instance of /dmm_suite, and then call
+write_map(), which accepts three arguments:
+ - A turf representing one corner of a three dimensional grid (Required).
+ - Another turf representing the other corner of the same grid (Required).
+ - Any, or a combination, of several bit flags (Optional, see documentation).
+
+The order in which the turfs are supplied does not matter, the /dmm_writer will
+determine the grid containing both, in much the same way as DM's block() function.
+write_map() will then return a string representing the saved map in dmm format;
+this string can then be saved to a file, or used for any other purose.
+
+------------------------
+
+To load a map at runtime, create an instance of /dmm_suite, and then call load_map(),
+which accepts two arguments:
+ - A .dmm file to load (Required).
+ - A number representing the z-level on which to start loading the map (Optional).
+
+The /dmm_suite will load the map file starting on the specified z-level. If no
+z-level was specified, world.maxz will be increased so as to fit the map. Note
+that if you wish to load a map onto a z-level that already has objects on it,
+you will have to handle the removal of those objects. Otherwise the new map will
+simply load the new objects on top of the old ones.
+
+Also note that all type paths specified in the .dmm file must exist in the world's
+code, and that the /dmm_reader trusts that files to be loaded are in fact valid
+.dmm files. Errors in the .dmm format will cause runtime errors.
+
+
+
+
diff --git a/code/modules/mapping/preloader.html b/code/modules/mapping/preloader.html
new file mode 100644
index 000000000000..03bf4fd4863b
--- /dev/null
+++ b/code/modules/mapping/preloader.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/mapping/preloader.dm - byond
+
+
+
+
+code/modules/mapping/preloader.dm
+
+
+
+
+ /datum /map_preloader Preloader datum
+ /area /template_noop Template noop (no operation) is used to skip a turf or area when the template is loaded this allows for template transparency
+ex. if a ship has gaps in it's design, you would use template_noop to fill these in so that when the ship moves z-level, any
+tiles these gaps land on will not be deleted and replaced with the ships (empty) tiles
+ /turf /template_noop See above explanation
+
+
+
diff --git a/code/modules/mapping/reader.html b/code/modules/mapping/reader.html
new file mode 100644
index 000000000000..ed03594ec0ca
--- /dev/null
+++ b/code/modules/mapping/reader.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ code/modules/mapping/reader.dm - byond
+
+
+
+
+code/modules/mapping/reader.dm
+
+
+
+
+ MAP_DMM DMM SPEC:
+DMM is split into two parts. First we have strings of text linked to lists of paths and their modifications (I will call this the cache)
+We call these strings "keys" and the things they point to members. Keys have a static length
+ MAP_TGM TGM SPEC:
+TGM is a derevation of DMM, with restrictions placed on it
+to make it easier to parse and to reduce merge conflicts/ease their resolution
+ /proc/load_map
+ Helper and recommened way to load a map file
Define Details
+MAP_DMM
+
+
+
+ DMM SPEC:
+DMM is split into two parts. First we have strings of text linked to lists of paths and their modifications (I will call this the cache)
+We call these strings "keys" and the things they point to members. Keys have a static length
+The second part is a list of locations matched to a string of keys. (I'll be calling this the grid)
+These are used to lookup the cache we built earlier.
+We store location lists as grid_sets. the lines represent different things depending on the spec
+In standard DMM (which you can treat as the base case, since it also covers weird modifications) each line
+represents an x file, and there's typically only one grid set per z level.
+The meme is you can look at a DMM formatted map and literally see what it should roughly look like
+This differs in TGM, and we can pull some performance from this
+Any restrictions here also apply to TGM
+/tg/ Restrictions:
+Paths have a specified order. First atoms in the order in which they should be loaded, then a single turf, then the area of the cell
+DMM technically supports turf stacking, but this is deprecated for all formats
MAP_TGM
+
+
+
+ TGM SPEC:
+TGM is a derevation of DMM, with restrictions placed on it
+to make it easier to parse and to reduce merge conflicts/ease their resolution
+Requirements:
+Each "statement" in a key's details ends with a new line, and wrapped in (...)
+All paths end with either a comma or occasionally a {, then a new line
+Excepting the area, who is listed last and ends with a ) to mark the end of the key
+{} denotes a list of variable edits applied to the path that came before the first {
+the final } is followed by a comma, and then a new line
+Variable edits have the form \tname = value;\n
+Except the last edit, which has no final ;, and just ends in a newline
+No extra padding is permitted
+Many values are supported. See parse_constant()
+Strings must be wrapped in "...", files in '...', and lists in list(...)
+Files are kinda susy, and may not actually work. buyer beware
+Lists support assoc values as expected
+These constants can be further embedded into lists
+There can be no padding in front of, or behind a path
+Therefore:
+"key" = (
+/path,
+/other/path{
+var = list("name" = 'filepath');
+other_var = /path
+},
+/turf,
+/area)
+
+
+
diff --git a/code/modules/mapping/space_management/space_reservation.html b/code/modules/mapping/space_management/space_reservation.html
new file mode 100644
index 000000000000..e4f32014615a
--- /dev/null
+++ b/code/modules/mapping/space_management/space_reservation.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mapping/space_management/space_reservation.dm - byond
+
+
+
+
+code/modules/mapping/space_management/space_reservation.dm
+
+
+
+
+ /area /misc/cordon Cordon area surrounding turf reservations
+
+
+
diff --git a/code/modules/mapping/verify.html b/code/modules/mapping/verify.html
new file mode 100644
index 000000000000..686e8125ef9a
--- /dev/null
+++ b/code/modules/mapping/verify.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mapping/verify.dm - byond
+
+
+
+
+code/modules/mapping/verify.dm
+
+
+
+
+
+
+
diff --git a/code/modules/maptext_alerts/text_blurbs.html b/code/modules/maptext_alerts/text_blurbs.html
new file mode 100644
index 000000000000..c80746769e63
--- /dev/null
+++ b/code/modules/maptext_alerts/text_blurbs.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/modules/maptext_alerts/text_blurbs.dm - byond
+
+
+
+
+code/modules/maptext_alerts/text_blurbs.dm
+
+
+
+
+ /proc/show_location_blurb
+ Reads out a description of game time, game date, main ship and current area. Originally for displaying roundstart messages on a conventional SS13 server.
+ /proc/show_blurb_uscm
+ Shows operation start blurb to living marines. Slightly different for squad marines, pilots, and deploying ship crew/passengers.
+exempt_ztraits = trait or list of traits of zlevels where any marines don't see the message, ex. marine faction survivors colonyside
+shouldn't see the ship marines' drop message. Ex. ZTRAIT_GROUND by default.
+unit = the unit the marines are from. FF, Dust Raiders etc. Military crew see this.
+base = the base the marines are staging from. The ship, Whiskey Outpost etc. Noncombat crew see this.
+ /proc/show_blurb
+ *Shows a ticker reading out the given text on a client's screen.
+targets = mob or list of mobs to show it to.
+
+
+
diff --git a/code/modules/mob/language/languages.html b/code/modules/mob/language/languages.html
new file mode 100644
index 000000000000..fa3e016f3bbc
--- /dev/null
+++ b/code/modules/mob/language/languages.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/language/languages.dm - byond
+
+
+
+
+code/modules/mob/language/languages.dm
+
+
+
+
+ /datum /language/event_hivemind Font size
+
+
+
diff --git a/code/modules/mob/living/carbon/human/species/human.html b/code/modules/mob/living/carbon/human/species/human.html
new file mode 100644
index 000000000000..5c26053d197c
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/species/human.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/human/species/human.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/human/species/human.dm
+
+
+
+
+ /datum /species /human The blood volume turned into a %, with BLOOD_VOLUME_NORMAL being 100%
+How much oxyloss will there be from the next time blood processes
+The limit of the oxyloss gained, ignoring oxyloss from the switch statement
+
+
+
diff --git a/code/modules/mob/living/carbon/human/species/zombie.html b/code/modules/mob/living/carbon/human/species/zombie.html
new file mode 100644
index 000000000000..3e59f612bcd0
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/species/zombie.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/human/species/zombie.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/human/species/zombie.dm
+
+
+
+Define Details
+ZOMBIE_REVIVE_TIME
+
+
+
+ Time until a zombie rises from the dead
+
+
+
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/boiler/boiler_abilities.html b/code/modules/mob/living/carbon/xenomorph/abilities/boiler/boiler_abilities.html
new file mode 100644
index 000000000000..f1dd5b3997a5
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/boiler/boiler_abilities.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/xenomorph/abilities/boiler/boiler_abilities.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/xenomorph/abilities/boiler/boiler_abilities.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.html b/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.html
new file mode 100644
index 000000000000..eafce1f31698
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/xenomorph/abilities/praetorian/praetorian_abilities.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.html b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.html
new file mode 100644
index 000000000000..b79df528afc6
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/living/carbon/xenomorph/update_icons.html b/code/modules/mob/living/carbon/xenomorph/update_icons.html
new file mode 100644
index 000000000000..6b47d7900038
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/update_icons.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/xenomorph/update_icons.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/xenomorph/update_icons.dm
+
+
+
+
+ /atom /movable /vis_obj Used to display the xeno wounds/backpacks without rapidly switching overlays
+
+
+
diff --git a/code/modules/mob/living/living_healthscan.html b/code/modules/mob/living/living_healthscan.html
new file mode 100644
index 000000000000..c1e66f4f32f5
--- /dev/null
+++ b/code/modules/mob/living/living_healthscan.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/living_healthscan.dm - byond
+
+
+
+
+code/modules/mob/living/living_healthscan.dm
+
+
+
+
+ /datum/health_scan vars reffing this on /mob/dead/observer, /obj/item/device/healthanalyzer, /obj/structure/machinery/cm_vending/sorted/medical, /obj/structure/machinery/body_scanconsole are called last_health_display
+
+
+
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/giant_lizard.html b/code/modules/mob/living/simple_animal/hostile/retaliate/giant_lizard.html
new file mode 100644
index 000000000000..ee40e1b7a0b3
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/giant_lizard.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/simple_animal/hostile/retaliate/giant_lizard.dm - byond
+
+
+
+
+code/modules/mob/living/simple_animal/hostile/retaliate/giant_lizard.dm
+
+
+
+
+
+
+
diff --git a/code/modules/mob/mob_helpers.html b/code/modules/mob/mob_helpers.html
new file mode 100644
index 000000000000..8fd71624d2a7
--- /dev/null
+++ b/code/modules/mob/mob_helpers.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/mob/mob_helpers.dm - byond
+
+
+
+
+code/modules/mob/mob_helpers.dm
+
+
+
+
+ /proc/stars_decode_html
+ Summary: proc that parses an html input string and scrambles the non-html string contents.
+ /proc/lisp_replace
+ Replaces S and similar sounds with 'th' and such. Stolen from tg.
+
+
+
diff --git a/code/modules/nightmare/nmcontext.html b/code/modules/nightmare/nmcontext.html
new file mode 100644
index 000000000000..a41a1d59dcad
--- /dev/null
+++ b/code/modules/nightmare/nmcontext.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/nightmare/nmcontext.dm - byond
+
+
+
+
+code/modules/nightmare/nmcontext.dm
+
+
+
+
+ /datum/nmcontext Context within which we resolve nightmare actions
+ /datum /nmcontext /map Context belonging to a map scope (ground map, ship map, etc)
+
+
+
diff --git a/code/modules/nightmare/nmnodes/components.html b/code/modules/nightmare/nmnodes/components.html
new file mode 100644
index 000000000000..0d761b4c4877
--- /dev/null
+++ b/code/modules/nightmare/nmnodes/components.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/nightmare/nmnodes/components.dm - byond
+
+
+
+
+code/modules/nightmare/nmnodes/components.dm
+
+
+
+
+
+
+
diff --git a/code/modules/nightmare/nmnodes/flow.html b/code/modules/nightmare/nmnodes/flow.html
new file mode 100644
index 000000000000..04a413493378
--- /dev/null
+++ b/code/modules/nightmare/nmnodes/flow.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/nightmare/nmnodes/flow.dm - byond
+
+
+
+
+code/modules/nightmare/nmnodes/flow.dm
+
+
+
+
+ /datum/nmnode/branch Holding node for several child nodes
+ /datum /nmnode /branch /include Same as branch, but load node data from another included file
+ /datum /nmnode /picker Same as branch, but selects a subset of the given nodes
+amount: how many items to pick
+choices: nested nodes to pick from
+each node should have a 'weight' key if you want to use weighted pick
+
+
+
diff --git a/code/modules/nightmare/nmnodes/mapload.html b/code/modules/nightmare/nmnodes/mapload.html
new file mode 100644
index 000000000000..26e370424149
--- /dev/null
+++ b/code/modules/nightmare/nmnodes/mapload.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ code/modules/nightmare/nmnodes/mapload.dm - byond
+
+
+
+
+code/modules/nightmare/nmnodes/mapload.dm
+
+
+
+
+ /datum/nmnode/mapload Abstract config node designating a map insertion
+ /datum/nmnode/mapload/landmark Designates insert of a given map file at a specified landmark
+ /datum /nmnode /mapload /variations Inserts a map file among a set of variations in a folder
+param: path: some/folder/, landmark
+files within should be named with a prefix indicating weighting:
+some/folder/20.destroyed.dmm
+some/folder/50.spaced.dmm
+using + instead of dot means to keep map contents, eg.
+some/folder/20+extras.dmm is added on top
+ /datum/nmnode/mapload/sprinkles Similar to variations mode, but rolls all files individually rather
+than picking one, using name for landmark. The prefix number is used
+as a percentage chance.
+
+
+
diff --git a/code/modules/nightmare/nmnodes/nmnode.html b/code/modules/nightmare/nmnodes/nmnode.html
new file mode 100644
index 000000000000..88e87c0fc7f9
--- /dev/null
+++ b/code/modules/nightmare/nmnodes/nmnode.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/nightmare/nmnodes/nmnode.dm - byond
+
+
+
+
+code/modules/nightmare/nmnodes/nmnode.dm
+
+
+
+
+ /datum/nmnode Decriptive nightmare config nodes loaded from config files
+
+
+
diff --git a/code/modules/nightmare/nmtasks/mapload.html b/code/modules/nightmare/nmtasks/mapload.html
new file mode 100644
index 000000000000..99ac8c1b415c
--- /dev/null
+++ b/code/modules/nightmare/nmtasks/mapload.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/nightmare/nmtasks/mapload.dm - byond
+
+
+
+
+code/modules/nightmare/nmtasks/mapload.dm
+
+
+
+
+
+
+
diff --git a/code/modules/nightmare/nmtasks/mapscheduler.html b/code/modules/nightmare/nmtasks/mapscheduler.html
new file mode 100644
index 000000000000..d1e46a018639
--- /dev/null
+++ b/code/modules/nightmare/nmtasks/mapscheduler.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/nightmare/nmtasks/mapscheduler.dm - byond
+
+
+
+
+code/modules/nightmare/nmtasks/mapscheduler.dm
+
+
+
+
+
+
+
diff --git a/code/modules/nightmare/nmtasks/nmtask.html b/code/modules/nightmare/nmtasks/nmtask.html
new file mode 100644
index 000000000000..3171706d6f7b
--- /dev/null
+++ b/code/modules/nightmare/nmtasks/nmtask.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/nightmare/nmtasks/nmtask.dm - byond
+
+
+
+
+code/modules/nightmare/nmtasks/nmtask.dm
+
+
+
+
+ /datum/nmtask Nightmare task, executing game actions as part of context
+
+
+
diff --git a/code/modules/nightmare/nmtasks/scheduler.html b/code/modules/nightmare/nmtasks/scheduler.html
new file mode 100644
index 000000000000..6e6388a72f8c
--- /dev/null
+++ b/code/modules/nightmare/nmtasks/scheduler.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/nightmare/nmtasks/scheduler.dm - byond
+
+
+
+
+code/modules/nightmare/nmtasks/scheduler.dm
+
+
+
+
+ /datum /nmtask /scheduler Simple blocking executor to execute several tasks in a row
+
+
+
diff --git a/code/modules/paperwork/paperbin.html b/code/modules/paperwork/paperbin.html
new file mode 100644
index 000000000000..8f874a3ccdcd
--- /dev/null
+++ b/code/modules/paperwork/paperbin.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/paperwork/paperbin.dm - byond
+
+
+
+
+code/modules/paperwork/paperbin.dm
+
+
+
+
+ /obj /item /form_printer Relic from the days of cyborgs, kept for flavour, an handheld paper
+dispenser that was supposed to print pre-filled forms but never did.
+
+
+
diff --git a/code/modules/paperwork/photocopier.html b/code/modules/paperwork/photocopier.html
new file mode 100644
index 000000000000..ae4f8b934825
--- /dev/null
+++ b/code/modules/paperwork/photocopier.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/paperwork/photocopier.dm - byond
+
+
+
+
+code/modules/paperwork/photocopier.dm
+
+
+
+
+
+
+
diff --git a/code/modules/paperwork/photography.html b/code/modules/paperwork/photography.html
new file mode 100644
index 000000000000..3f3fd79a4c8f
--- /dev/null
+++ b/code/modules/paperwork/photography.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/paperwork/photography.dm - byond
+
+
+
+
+code/modules/paperwork/photography.dm
+
+
+
+
+ /datum /picture Picture metadata
+
+
+
diff --git a/code/modules/power/apc.html b/code/modules/power/apc.html
new file mode 100644
index 000000000000..1d52bcc76709
--- /dev/null
+++ b/code/modules/power/apc.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/modules/power/apc.dm - byond
+
+
+
+
+code/modules/power/apc.dm
+
+
+
+Define Details
+APC_CHARGING
+
+
+
+ The APC is charging.
APC_FULLY_CHARGED
+
+
+
+ The APC is fully charged.
APC_NOT_CHARGING
+
+
+
+ The APC is not charging.
+
+
+
diff --git a/code/modules/projectiles/gun_helpers.html b/code/modules/projectiles/gun_helpers.html
new file mode 100644
index 000000000000..06cbe3e6e416
--- /dev/null
+++ b/code/modules/projectiles/gun_helpers.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/projectiles/gun_helpers.dm - byond
+
+
+
+
+code/modules/projectiles/gun_helpers.dm
+
+
+
+
+ /proc/get_turf_on_clickcatcher
+ Helper proc that processes a clicked target, if the target is not black tiles, it will not change it. If they are it will return the turf of the black tiles. It will return null if the object is a screen object other than black tiles.
+
+
+
diff --git a/code/modules/projectiles/magazines/revolvers.html b/code/modules/projectiles/magazines/revolvers.html
new file mode 100644
index 000000000000..7220804e47e1
--- /dev/null
+++ b/code/modules/projectiles/magazines/revolvers.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/projectiles/magazines/revolvers.dm - byond
+
+
+
+
+code/modules/projectiles/magazines/revolvers.dm
+
+
+
+
+
+
+
diff --git a/code/modules/reagents/chemical_research/generated_reagents.html b/code/modules/reagents/chemical_research/generated_reagents.html
new file mode 100644
index 000000000000..231d2ec363a0
--- /dev/null
+++ b/code/modules/reagents/chemical_research/generated_reagents.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/reagents/chemical_research/generated_reagents.dm - byond
+
+
+
+
+code/modules/reagents/chemical_research/generated_reagents.dm
+
+
+
+
+ /datum /chemical_reaction/generated/alpha Tier 1
+ /datum /chemical_reaction/generated/zeta Tier 2
+ /datum /chemical_reaction/generated/iota Tier 3
+ /datum /chemical_reaction/generated/lambda Tier 4
+
+
+
diff --git a/code/modules/reagents/chemistry_reactions/food_drink.html b/code/modules/reagents/chemistry_reactions/food_drink.html
new file mode 100644
index 000000000000..8afa36bd136e
--- /dev/null
+++ b/code/modules/reagents/chemistry_reactions/food_drink.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry_reactions/food_drink.dm - byond
+
+
+
+
+code/modules/reagents/chemistry_reactions/food_drink.dm
+
+
+
+
+ /datum /chemical_reaction/sbiten DRINKS THAT REQUIRED IMPROVED SPRITES BELOW:: -Agouri
+
+
+
diff --git a/code/modules/reagents/chemistry_reagents/medical.html b/code/modules/reagents/chemistry_reagents/medical.html
new file mode 100644
index 000000000000..b5bc76d1c2c0
--- /dev/null
+++ b/code/modules/reagents/chemistry_reagents/medical.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/reagents/chemistry_reagents/medical.dm - byond
+
+
+
+
+code/modules/reagents/chemistry_reagents/medical.dm
+
+
+
+
+ /datum /reagent/medical/antidepressant/methylphenidate ANTIDEPRESSANTS
+
+
+
diff --git a/code/modules/recycling/disposal.html b/code/modules/recycling/disposal.html
new file mode 100644
index 000000000000..641ac30c9056
--- /dev/null
+++ b/code/modules/recycling/disposal.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/recycling/disposal.dm - byond
+
+
+
+
+code/modules/recycling/disposal.dm
+
+
+
+
+ /obj /structure/disposalholder Virtual disposal object, travels through pipes in lieu of actual items
+Contents will be items flushed by the disposal, this allows the gas flushed to be tracked
+
+
+
diff --git a/code/modules/shuttle/helpers.html b/code/modules/shuttle/helpers.html
new file mode 100644
index 000000000000..04b466ace849
--- /dev/null
+++ b/code/modules/shuttle/helpers.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/shuttle/helpers.dm - byond
+
+
+
+
+code/modules/shuttle/helpers.dm
+
+
+
+
+ /datum /door_controller/aggregate Datum containing methods to allow for the control over multiple door groups.
+ /datum /door_controller/single Datum containing methods to allow for the control over a single door group.
+
+
+
diff --git a/code/modules/shuttle/shuttles.html b/code/modules/shuttle/shuttles.html
new file mode 100644
index 000000000000..1aa53ebc0016
--- /dev/null
+++ b/code/modules/shuttle/shuttles.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ code/modules/shuttle/shuttles.md - byond
+
+
+
+
+Shuttle Module code/modules/shuttle/shuttles.md
+
+
+
+
+ Heres some notes which help understand what is going on.
+A shuttle is split into two docking ports: a mobile one, which is the shuttle itself, and the stationary one - where the shuttle can come to a rest.
+The map template /datum/map_template/shuttle/ert1
- give it a unique name and the shuttle_id
parameter is the map name you are using for the shuttle.
+The map template shuttle_id points to the file in folder maps\shuttles
. It also refers to the id
variable in the mobile docking port. The best way to resolve this is using a define in code\__DEFINES\shuttles.dm
.
+Shuttle map templates
+Shuttle map templates are used to define what the shuttle should look like.
+Shuttle dimensions
+When defining the shuttle dimensions, define the height/width as if it was orienting north. The subsystem will properly line everything up, this allows for stationary docks to be in different orientations to their defined map template.
+A shuttle has a height, width, dheight and dwidth. The height and width is the size of the shuttle, with respect to its direction. If the template direction is North/South then width is your X coordinate and height is your Y. If the template direction is East/West then width is your Y direction and height is your X. On stationary docking ports, you can specify dwidth and dheight (auto generated for mobile), these are offsets for how your shuttle should land on the site. When a mobile port lands on a stationary port it wants to place the bottom left of the shuttle turfs on the stationary port. The dwidth/dheight allows you to offset this.
+Generic Elevator Shuttle
+The elevator used on Trijent (DesertDam) can be used in any map and multiple can exist on one map.
+Do not modify the trident shuttle map. You can code in elevators from the following two docking ports (where the elevator can go):
+
+/obj/docking_port/stationary/trijent_elevator/occupied
+/obj/docking_port/stationary/trijent_elevator/empty
+
+An occupied stationary port will start the map with an elevator and an empty one will not.
+All docking ports are, by default, linked together. One elevator can go to all docking ports.
+To limit access between docking ports you can use tags.
+To setup an elevator:
+
+place the docking port where you want the elevator to sit
+give the docking port instance a unique ID
+give the docking port instance a unique Name
+make sure the door direction is correct west/east
+give the docking port shuttle_area the area name for where it sits
+if you want to build a docking port 'network' then change the roudnstart_template to a subclass
+if you want to assign a docking port to a 'network' then give it a value in "tag"
+
+If things are unclear, look at trident. It has two elevator networks.
+
+
+
diff --git a/code/modules/shuttle/shuttles/crashable/lifeboats.html b/code/modules/shuttle/shuttles/crashable/lifeboats.html
new file mode 100644
index 000000000000..d8d9c56794a5
--- /dev/null
+++ b/code/modules/shuttle/shuttles/crashable/lifeboats.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/modules/shuttle/shuttles/crashable/lifeboats.dm - byond
+
+
+
+
+code/modules/shuttle/shuttles/crashable/lifeboats.dm
+
+
+
+
+
+
+
diff --git a/code/modules/surgery/surgery_initiator.html b/code/modules/surgery/surgery_initiator.html
new file mode 100644
index 000000000000..4e884f0e967b
--- /dev/null
+++ b/code/modules/surgery/surgery_initiator.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/surgery/surgery_initiator.dm - byond
+
+
+
+
+code/modules/surgery/surgery_initiator.dm
+
+
+
+
+ /proc/initiate_surgery_moment
+ Does the surgery initiation. Returns TRUE if the triggering attack should be halted.
+
+
+
diff --git a/code/modules/surgery/surgery_procedure.html b/code/modules/surgery/surgery_procedure.html
new file mode 100644
index 000000000000..6a7cbf420ce8
--- /dev/null
+++ b/code/modules/surgery/surgery_procedure.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/surgery/surgery_procedure.dm - byond
+
+
+
+
+code/modules/surgery/surgery_procedure.dm
+
+
+
+
+ /datum/surgery Base surgery datum and procs. There is an important distinction between surgery datums and surgery steps.
+The surgery is a separate instance for each individual operation; the steps are shared globally.
+datum/surgery and datum/surgery_step are intertwined. The surgery calls the step which modifies the surgery.
+Defines are in __DEFINES/human.dm and __DEFINES/surgery.dm.
+
+
+
diff --git a/code/modules/tents/blockers.html b/code/modules/tents/blockers.html
new file mode 100644
index 000000000000..dbb4e5c01ba0
--- /dev/null
+++ b/code/modules/tents/blockers.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/tents/blockers.dm - byond
+
+
+
+
+code/modules/tents/blockers.dm
+
+
+
+
+
+
+
diff --git a/code/modules/tents/deployed_tents.html b/code/modules/tents/deployed_tents.html
new file mode 100644
index 000000000000..bacd332d6eb4
--- /dev/null
+++ b/code/modules/tents/deployed_tents.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/tents/deployed_tents.dm - byond
+
+
+
+
+code/modules/tents/deployed_tents.dm
+
+
+
+
+ /obj/structure/tent Structures serving as landmarks and providing a buff to its users.
+A notable code feature is that they use a separate roof image that phases out when you enter the tent.
+ /obj /structure/tent /cmd Command tent, providing basics for field command: a phone, and an overwatch console
+ /obj /structure/tent /med Medical tent, procures a buff to surgery speed
+ /obj /structure/tent /big Big Tent. It's just Big. Use it for shelter or organization!
+
+
+
diff --git a/code/modules/tents/equipment.html b/code/modules/tents/equipment.html
new file mode 100644
index 000000000000..7816593ae484
--- /dev/null
+++ b/code/modules/tents/equipment.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/tents/equipment.dm - byond
+
+
+
+
+code/modules/tents/equipment.dm
+
+
+
+
+
+
+
diff --git a/code/modules/tgchat/message.html b/code/modules/tgchat/message.html
new file mode 100644
index 000000000000..a5b439d26bf4
--- /dev/null
+++ b/code/modules/tgchat/message.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgchat/message.dm - byond
+
+
+
+
+code/modules/tgchat/message.dm
+
+
+
+
+
+
+
diff --git a/code/modules/tgchat/to_chat.html b/code/modules/tgchat/to_chat.html
new file mode 100644
index 000000000000..3032c9b83474
--- /dev/null
+++ b/code/modules/tgchat/to_chat.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/tgchat/to_chat.dm - byond
+
+
+
+
+code/modules/tgchat/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.
+ /proc/to_chat
+ Sends the message to the recipient (target).
+
+
+
diff --git a/code/modules/tgs.html b/code/modules/tgs.html
new file mode 100644
index 000000000000..01601c4a4b89
--- /dev/null
+++ b/code/modules/tgs.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ code/modules/tgs/README.md - byond
+
+
+
+
+DMAPI Internals code/modules/tgs/README.md
+
+
+
+
+ This folder should be placed on its 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 000000000000..1dce2e59ddc2
--- /dev/null
+++ b/code/modules/tgs/core.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/modules/tgs/core/README.md - byond
+
+
+
+
+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.
+byond_world_export.dm contains the default /datum/tgs_http_handler
implementation which uses world.Export()
.
+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.
+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 000000000000..7141f2a01e4a
--- /dev/null
+++ b/code/modules/tgs/v3210.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/tgs/v3210/README.md - byond
+
+
+
+
+DMAPI V3 code/modules/tgs/v3210/README.md
+
+
+
+
+ This DMAPI implements bridge using file output which TGS monitors for.
+
+api.dm contains the bulk of the API code.
+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 000000000000..68f14c505899
--- /dev/null
+++ b/code/modules/tgs/v4.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/tgs/v4/README.md - byond
+
+
+
+
+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.
+
+api.dm contains the bulk of the API code.
+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 000000000000..5061b6495e9e
--- /dev/null
+++ b/code/modules/tgs/v5.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ code/modules/tgs/v5/README.md - byond
+
+
+
+
+DMAPI V5 code/modules/tgs/v5/README.md
+
+
+
+
+ This DMAPI implements bridge requests using HTTP GET requests to TGS. It has no security restrictions.
+
+__interop_version.dm contains the version of the API used between the DMAPI and TGS.
+_defines.dm contains constant definitions.
+api.dm contains the bulk of the API code.
+bridge.dm contains functions related to making bridge requests.
+chunking.dm contains common function for splitting large raw data sets into chunks BYOND can natively process.
+commands.dm contains functions relating to /datum/tgs_chat_command
s.
+serializers.dm contains function to help convert interop /datum
s into a JSON encodable list()
format.
+topic.dm contains functions related to processing topic requests.
+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 000000000000..0839d17cefca
--- /dev/null
+++ b/code/modules/tgui/external.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/tgui/external.dm - byond
+
+
+
+
+code/modules/tgui/external.dm
+
+
+
+
+ External tgui definitions, such as src_object APIs.
+Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ /proc/tgui_Topic
+ Middleware for /client/Topic.
+
+
+
diff --git a/code/modules/tgui/states.html b/code/modules/tgui/states.html
new file mode 100644
index 000000000000..0a3d231628d7
--- /dev/null
+++ b/code/modules/tgui/states.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/tgui/states.dm - byond
+
+
+
+
+code/modules/tgui/states.dm
+
+
+
+
+ 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
+
+
+
diff --git a/code/modules/tgui/states/admin.html b/code/modules/tgui/states/admin.html
new file mode 100644
index 000000000000..99fd3e579c40
--- /dev/null
+++ b/code/modules/tgui/states/admin.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/admin.dm - byond
+
+
+
+
+code/modules/tgui/states/admin.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/always.html b/code/modules/tgui/states/always.html
new file mode 100644
index 000000000000..1d697922a76f
--- /dev/null
+++ b/code/modules/tgui/states/always.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/always.dm - byond
+
+
+
+
+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 000000000000..3129bdb3a833
--- /dev/null
+++ b/code/modules/tgui/states/conscious.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/conscious.dm - byond
+
+
+
+
+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 000000000000..2c035ecd0b21
--- /dev/null
+++ b/code/modules/tgui/states/contained.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/contained.dm - byond
+
+
+
+
+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 000000000000..597d9bd7de64
--- /dev/null
+++ b/code/modules/tgui/states/deep_inventory.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/deep_inventory.dm - byond
+
+
+
+
+code/modules/tgui/states/deep_inventory.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/default.html b/code/modules/tgui/states/default.html
new file mode 100644
index 000000000000..13799c0cfa0d
--- /dev/null
+++ b/code/modules/tgui/states/default.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/default.dm - byond
+
+
+
+
+code/modules/tgui/states/default.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 000000000000..73dea56146c5
--- /dev/null
+++ b/code/modules/tgui/states/hands.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/hands.dm - byond
+
+
+
+
+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 000000000000..fce6c0dd7cb1
--- /dev/null
+++ b/code/modules/tgui/states/human_adjacent.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/human_adjacent.dm - byond
+
+
+
+
+code/modules/tgui/states/human_adjacent.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/inventory.html b/code/modules/tgui/states/inventory.html
new file mode 100644
index 000000000000..292a3acde08e
--- /dev/null
+++ b/code/modules/tgui/states/inventory.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/inventory.dm - byond
+
+
+
+
+code/modules/tgui/states/inventory.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/never.html b/code/modules/tgui/states/never.html
new file mode 100644
index 000000000000..4f82ef36e9e6
--- /dev/null
+++ b/code/modules/tgui/states/never.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/never.dm - byond
+
+
+
+
+code/modules/tgui/states/never.dm
+
+
+
+
+ Copyright (c) 2021 Arm A. Hammer
+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 000000000000..4b8451d5c213
--- /dev/null
+++ b/code/modules/tgui/states/not_incapacitated.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/not_incapacitated.dm - byond
+
+
+
+
+code/modules/tgui/states/not_incapacitated.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/not_incapacitated_and_inventory.html b/code/modules/tgui/states/not_incapacitated_and_inventory.html
new file mode 100644
index 000000000000..deeae86e6c98
--- /dev/null
+++ b/code/modules/tgui/states/not_incapacitated_and_inventory.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/not_incapacitated_and_inventory.dm - byond
+
+
+
+
+code/modules/tgui/states/not_incapacitated_and_inventory.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 000000000000..a97b249d89e9
--- /dev/null
+++ b/code/modules/tgui/states/notcontained.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/notcontained.dm - byond
+
+
+
+
+code/modules/tgui/states/notcontained.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/observer.html b/code/modules/tgui/states/observer.html
new file mode 100644
index 000000000000..29ea492392b6
--- /dev/null
+++ b/code/modules/tgui/states/observer.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/observer.dm - byond
+
+
+
+
+code/modules/tgui/states/observer.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 000000000000..54400b596571
--- /dev/null
+++ b/code/modules/tgui/states/physical.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/physical.dm - byond
+
+
+
+
+code/modules/tgui/states/physical.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/reverse_contained.html b/code/modules/tgui/states/reverse_contained.html
new file mode 100644
index 000000000000..c470fa9269f1
--- /dev/null
+++ b/code/modules/tgui/states/reverse_contained.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/tgui/states/reverse_contained.dm - byond
+
+
+
+
+code/modules/tgui/states/reverse_contained.dm
+
+
+
+
+ Not copyrighted, but magatsuchi made it.
+
+
+
diff --git a/code/modules/tgui/states/self.html b/code/modules/tgui/states/self.html
new file mode 100644
index 000000000000..3e16fcfdf3c5
--- /dev/null
+++ b/code/modules/tgui/states/self.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/self.dm - byond
+
+
+
+
+code/modules/tgui/states/self.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/states/zlevel.html b/code/modules/tgui/states/zlevel.html
new file mode 100644
index 000000000000..a6f85b0d32a6
--- /dev/null
+++ b/code/modules/tgui/states/zlevel.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/states/zlevel.dm - byond
+
+
+
+
+code/modules/tgui/states/zlevel.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui/status_composers.html b/code/modules/tgui/status_composers.html
new file mode 100644
index 000000000000..c3f92652bcf1
--- /dev/null
+++ b/code/modules/tgui/status_composers.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ code/modules/tgui/status_composers.dm - byond
+
+
+
+
+code/modules/tgui/status_composers.dm
+
+
+
+
+ /proc/default_ui_state
+ The sane defaults for a UI such as a computer or a machine.
+ /proc/ui_status_user_is_adjacent
+ Returns a UI status such that users adjacent to source will be able to interact,
+far away users will be able to see, and anyone farther won't see anything.
+Dead users will receive updates no matter what, though you likely want to add
+a [ui_status_only_living
] check for finer observer interactions.
+ /proc/ui_status_only_living
+ Returns a UI status such that the dead will be able to watch, but not interact.
+ /proc/ui_status_user_is_abled
+ Returns a UI status such that users with debilitating conditions, such as
+being dead or not having power for silicons, will not be able to interact.
+Being dead will disable UI, being incapacitated will continue updating it,
+and anything else will make it interactive.
+ /proc/ui_status_user_is_advanced_tool_user
+ Returns a UI status such that advanced tool users will be able to interact,
+but everyone else can only watch.
+ /proc/ui_status_user_strictly_adjacent
+ Return UI_INTERACTIVE if the user is strictly adjacent to the target atom, whether they can see it or not.
+Return UI_CLOSE otherwise.
+
+
+
diff --git a/code/modules/tgui/tgui-say/modal.html b/code/modules/tgui/tgui-say/modal.html
new file mode 100644
index 000000000000..5bd5fc4cc29d
--- /dev/null
+++ b/code/modules/tgui/tgui-say/modal.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui-say/modal.dm - byond
+
+
+
+
+code/modules/tgui/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/code/modules/tgui/tgui.html b/code/modules/tgui/tgui.html
new file mode 100644
index 000000000000..b995dac7006e
--- /dev/null
+++ b/code/modules/tgui/tgui.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui.dm - byond
+
+
+
+
+code/modules/tgui/tgui.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ /datum/tgui tgui datum (represents a UI).
+
+
+
diff --git a/code/modules/tgui/tgui_alert.html b/code/modules/tgui/tgui_alert.html
new file mode 100644
index 000000000000..8fb8e23a16dc
--- /dev/null
+++ b/code/modules/tgui/tgui_alert.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui_alert.dm - byond
+
+
+
+
+code/modules/tgui/tgui_alert.dm
+
+
+
+
+ /proc/tgui_alert
+ Creates a TGUI alert window and returns the user's response.
+ /proc/tgui_alert_async
+ Creates an asynchronous TGUI alert window with an associated callback.
+ /datum/tgui_modal Datum used for instantiating and using a TGUI-controlled modal that prompts the user with
+a message and has buttons for responses.
+ /datum/tgui_modal/async An asynchronous version of tgui_modal to be used with callbacks instead of waiting on user responses.
+
+
+
diff --git a/code/modules/tgui/tgui_input_list.html b/code/modules/tgui/tgui_input_list.html
new file mode 100644
index 000000000000..8987d54c1eb7
--- /dev/null
+++ b/code/modules/tgui/tgui_input_list.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui_input_list.dm - byond
+
+
+
+
+code/modules/tgui/tgui_input_list.dm
+
+
+
+
+ /proc/tgui_input_list
+ Creates a TGUI input list window and returns the user's response.
+ /proc/tgui_input_list_async
+ Creates an asynchronous TGUI input list window with an associated callback.
+ /datum/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
+ /datum/tgui_list_input/async An asynchronous version of tgui_list_input to be used with callbacks instead of waiting on user responses.
+
+
+
diff --git a/code/modules/tgui/tgui_number_input.html b/code/modules/tgui/tgui_number_input.html
new file mode 100644
index 000000000000..d6800c0e82b1
--- /dev/null
+++ b/code/modules/tgui/tgui_number_input.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui_number_input.dm - byond
+
+
+
+
+code/modules/tgui/tgui_number_input.dm
+
+
+
+
+ /proc/tgui_input_number
+ Creates a TGUI window with a number input. Returns the user's response as num | null.
+ /proc/tgui_input_real_number
+ A clone of tgui_input_number that defaults to accepting negative inputs too.
+ /proc/tgui_input_number_async
+ Creates an asynchronous TGUI number input window with an associated callback.
+ /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.
+ /datum/tgui_input_number/async An asynchronous version of tgui_input_number to be used with callbacks instead of waiting on user responses.
+
+
+
diff --git a/code/modules/tgui/tgui_window.html b/code/modules/tgui/tgui_window.html
new file mode 100644
index 000000000000..14053a7b1797
--- /dev/null
+++ b/code/modules/tgui/tgui_window.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui/tgui_window.dm - byond
+
+
+
+
+code/modules/tgui/tgui_window.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui_input/checkboxes.html b/code/modules/tgui_input/checkboxes.html
new file mode 100644
index 000000000000..f27042982285
--- /dev/null
+++ b/code/modules/tgui_input/checkboxes.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/tgui_input/checkboxes.dm - byond
+
+
+
+
+code/modules/tgui_input/checkboxes.dm
+
+
+
+
+
+
+
diff --git a/code/modules/tgui_input/text.html b/code/modules/tgui_input/text.html
new file mode 100644
index 000000000000..7a5d1a60da96
--- /dev/null
+++ b/code/modules/tgui_input/text.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/tgui_input/text.dm - byond
+
+
+
+
+code/modules/tgui_input/text.dm
+
+
+
+
+
+
+
diff --git a/code/modules/tgui_panel/audio.html b/code/modules/tgui_panel/audio.html
new file mode 100644
index 000000000000..cf7eabd1ddee
--- /dev/null
+++ b/code/modules/tgui_panel/audio.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui_panel/audio.dm - byond
+
+
+
+
+code/modules/tgui_panel/audio.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui_panel/external.html b/code/modules/tgui_panel/external.html
new file mode 100644
index 000000000000..e5091c6b6ce1
--- /dev/null
+++ b/code/modules/tgui_panel/external.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/tgui_panel/external.dm - byond
+
+
+
+
+code/modules/tgui_panel/external.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+
+
diff --git a/code/modules/tgui_panel/telemetry.html b/code/modules/tgui_panel/telemetry.html
new file mode 100644
index 000000000000..2495c454e7c8
--- /dev/null
+++ b/code/modules/tgui_panel/telemetry.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ code/modules/tgui_panel/telemetry.dm - byond
+
+
+
+
+code/modules/tgui_panel/telemetry.dm
+
+
+
+Define Details
+TGUI_TELEMETRY_MAX_CONNECTIONS
+
+
+
+ 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_panel/tgui_panel.html b/code/modules/tgui_panel/tgui_panel.html
new file mode 100644
index 000000000000..3d5126c381c4
--- /dev/null
+++ b/code/modules/tgui_panel/tgui_panel.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/modules/tgui_panel/tgui_panel.dm - byond
+
+
+
+
+code/modules/tgui_panel/tgui_panel.dm
+
+
+
+
+ Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ /datum/tgui_panel tgui_panel datum
+Hosts tgchat and other nice features.
+
+
+
diff --git a/code/modules/unit_tests.html b/code/modules/unit_tests.html
new file mode 100644
index 000000000000..003a68efa76e
--- /dev/null
+++ b/code/modules/unit_tests.html
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+ code/modules/unit_tests/README.md - byond
+
+
+
+
+Unit Tests code/modules/unit_tests/README.md
+
+
+
+
+ What is unit testing?
+Unit tests are automated code to verify that parts of the game work exactly as they should. For example, a test to make sure that the amputation surgery actually amputates the limb . These are ran every time a PR is made, and thus are very helpful for preventing bugs from cropping up in your code that would've otherwise gone unnoticed. For example, would you have thought to check that beach boys would still work the same after editing pizza ? If you value your time, probably not.
+On their most basic level, when UNIT_TESTS
is defined, all subtypes of /datum/unit_test
will have their Run
proc executed. From here, if Fail
is called at any point, then the tests will report as failed.
+How do I write one?
+
+Find a relevant file.
+
+All unit test related code is in code/modules/unit_tests
. If you are adding a new test for a surgery, for example, then you'd open surgeries.dm
. If a relevant file does not exist, simply create one in this folder, then #include
it in _unit_tests.dm
.
+
+Create the unit test.
+
+To make a new unit test, you simply need to define a /datum/unit_test
.
+For example, let's suppose that we are creating a test to make sure a proc square
correctly raises inputs to the power of two. We'd start with first:
+/datum/unit_test/square/Run()
+
+This defines our new unit test, /datum/unit_test/square
. Inside this function, we're then going to run through whatever we want to check. Tests provide a few assertion functions to make this easy. For now, we're going to use TEST_ASSERT_EQUAL
.
+/datum/unit_test/square/Run()
+ TEST_ASSERT_EQUAL(square(3), 9, "square(3) did not return 9")
+ TEST_ASSERT_EQUAL(square(4), 16, "square(4) did not return 16")
+
+As you can hopefully tell, we're simply checking if the output of square
matches the output we are expecting. If the test fails, it'll report the error message given as well as whatever the actual output was.
+
+Run the unit test
+
+Open code/_compile_options.dm
and uncomment the following line.
+//#define UNIT_TESTS //If this is uncommented, we do a single run though of the game setup and tear down process with unit tests in between
+
+Then, run tgstation.dmb in Dream Daemon. Don't bother trying to connect, you won't need to. You'll be able to see the outputs of all the tests. You'll get to see which tests failed and for what reason. If they all pass, you're set!
+How to think about tests
+Unit tests exist to prevent bugs that would happen in a real game. Thus, they should attempt to emulate the game world wherever possible. For example, the quick swap sanity test emulates a real scenario of the bug it fixed occurring by creating a character and giving it real items. The unrecommended alternative would be to create special test-only items. This isn't a hard rule, the reagent method exposure tests create a test-only reagent for example, but do keep it in mind.
+Unit tests should also be just that--testing units of code. For example, instead of having one massive test for reagents, there are instead several smaller tests for testing exposure, metabolization, etc.
+The unit testing API
+You can find more information about all of these from their respective doc comments, but for a brief overview:
+/datum/unit_test
- The base for all tests to be ran. Subtypes must override Run()
. New()
and Destroy()
can be used for setup and teardown. To fail, use TEST_FAIL(reason)
.
+/datum/unit_test/proc/allocate(type, ...)
- Allocates an instance of the provided type with the given arguments. Is automatically destroyed when the test is over. Commonly seen in the form of var/mob/living/carbon/human/human = allocate(/mob/living/carbon/human/consistent)
.
+TEST_FAIL(reason)
- Marks a failure at this location, but does not stop the test.
+TEST_ASSERT(assertion, reason)
- Stops the unit test and fails if the assertion is not met. For example: TEST_ASSERT(powered(), "Machine is not powered")
.
+TEST_ASSERT_NOTNULL(a, message)
- Same as TEST_ASSERT
, but checks if !isnull(a)
. For example: TEST_ASSERT_NOTNULL(myatom, "My atom was never set!")
.
+TEST_ASSERT_NULL(a, message)
- Same as TEST_ASSERT
, but checks if isnull(a)
. If not, gives a helpful message showing what a
was. For example: TEST_ASSERT_NULL(delme, "Delme was never cleaned up!")
.
+TEST_ASSERT_EQUAL(a, b, message)
- Same as TEST_ASSERT
, but checks if a == b
. If not, gives a helpful message showing what both a
and b
were. For example: TEST_ASSERT_EQUAL(2 + 2, 4, "The universe is falling apart before our eyes!")
.
+TEST_ASSERT_NOTEQUAL(a, b, message)
- Same as TEST_ASSERT_EQUAL
, but reversed.
+TEST_FOCUS(test_path)
- Only run the test provided within the parameters. Useful for reducing noise. For example, if we only want to run our example square test, we can add TEST_FOCUS(/datum/unit_test/square)
. Should never be pushed in a pull request--you will be laughed at.
+Final Notes
+
+Writing tests before you attempt to fix the bug can actually speed up development a lot! It means you don't have to go in game and folllow the same exact steps manually every time. This process is known as "TDD" (test driven development). Write the test first, make sure it fails, then start work on the fix/feature, and you'll know you're done when your tests pass. If you do try this, do make sure to confirm in a non-testing environment just to double check.
+Make sure that your tests don't accidentally call RNG functions like prob
. Since RNG is seeded during tests, you may not realize you have until someone else makes a PR and the tests fail!
+Do your best not to change the behavior of non-testing code during tests. While it may sometimes be necessary in the case of situations such as the above, it is still a slippery slope that can lead to the code you're testing being too different from the production environment to be useful.
+
+
+
+
diff --git a/code/modules/unit_tests/_unit_tests.html b/code/modules/unit_tests/_unit_tests.html
new file mode 100644
index 000000000000..07f1b2d254f8
--- /dev/null
+++ b/code/modules/unit_tests/_unit_tests.html
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+ code/modules/unit_tests/_unit_tests.dm - byond
+
+
+
+
+code/modules/unit_tests/_unit_tests.dm
+
+
+
+
+ TEST_FAIL For advanced cases, fail unconditionally but don't return (so a test can return multiple results)
+ TEST_ASSERT Asserts that a condition is true
+If the condition is not true, fails the test
+ TEST_ASSERT_NOTNULL Asserts that a parameter is not null
+ TEST_ASSERT_NULL Asserts that a parameter is null
+ TEST_ASSERT_EQUAL Asserts that the two parameters passed are equal, fails otherwise
+Optionally allows an additional message in the case of a failure
+ TEST_ASSERT_NOTEQUAL Asserts that the two parameters passed are not equal, fails otherwise
+Optionally allows an additional message in the case of a failure
+ TEST_FOCUS Only run the test provided within the parentheses
+This is useful for debugging when you want to reduce noise, but should never be pushed
+Intended to be used in the manner of TEST_FOCUS(/datum/unit_test/math)
+ TEST_NOTICE Logs a noticeable message on GitHub, but will not mark as an error.
+Use this when something shouldn't happen and is of note, but shouldn't block CI.
+Does not mark the test as failed.
+ UNIT_TEST_PASSED Constants indicating unit test completion status
+ TEST_LONGER After most test steps, used for tests that run long so shorter issues can be noticed faster
+ TEST_CREATE_AND_DESTROY This must be the last test to run due to the inherent nature of the test iterating every single tangible atom in the game and qdeleting all of them (while taking long sleeps to make sure the garbage collector fires properly) taking a large amount of time.
+ TEST_OUTPUT_RED Change color to red on ANSI terminal output, if enabled with -DANSICOLORS.
+ TEST_OUTPUT_GREEN Change color to green on ANSI terminal output, if enabled with -DANSICOLORS.
+ TRAIT_SOURCE_UNIT_TESTS A trait source when adding traits through unit tests
Define Details
+TEST_ASSERT
+
+
+
+
+ Asserts that a condition is true
+If the condition is not true, fails the test
TEST_ASSERT_EQUAL
+
+
+
+
+ Asserts that the two parameters passed are equal, fails otherwise
+Optionally allows an additional message in the case of a failure
TEST_ASSERT_NOTEQUAL
+
+
+
+
+ Asserts that the two parameters passed are not equal, fails otherwise
+Optionally allows an additional message in the case of a failure
TEST_ASSERT_NOTNULL
+
+
+
+
+ Asserts that a parameter is not null
TEST_ASSERT_NULL
+
+
+
+
+ Asserts that a parameter is null
TEST_CREATE_AND_DESTROY
+
+
+
+ This must be the last test to run due to the inherent nature of the test iterating every single tangible atom in the game and qdeleting all of them (while taking long sleeps to make sure the garbage collector fires properly) taking a large amount of time.
TEST_FAIL
+
+
+
+
+ For advanced cases, fail unconditionally but don't return (so a test can return multiple results)
TEST_FOCUS
+
+
+
+
+ Only run the test provided within the parentheses
+This is useful for debugging when you want to reduce noise, but should never be pushed
+Intended to be used in the manner of TEST_FOCUS(/datum/unit_test/math)
TEST_LONGER
+
+
+
+ After most test steps, used for tests that run long so shorter issues can be noticed faster
TEST_NOTICE
+
+
+
+
+ Logs a noticeable message on GitHub, but will not mark as an error.
+Use this when something shouldn't happen and is of note, but shouldn't block CI.
+Does not mark the test as failed.
TEST_OUTPUT_GREEN
+
+
+
+
+ Change color to green on ANSI terminal output, if enabled with -DANSICOLORS.
TEST_OUTPUT_RED
+
+
+
+
+ Change color to red on ANSI terminal output, if enabled with -DANSICOLORS.
TRAIT_SOURCE_UNIT_TESTS
+
+
+
+ A trait source when adding traits through unit tests
UNIT_TEST_PASSED
+
+
+
+ Constants indicating unit test completion status
+
+
+
diff --git a/code/modules/unit_tests/autowiki.html b/code/modules/unit_tests/autowiki.html
new file mode 100644
index 000000000000..49f889d11860
--- /dev/null
+++ b/code/modules/unit_tests/autowiki.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/unit_tests/autowiki.dm - byond
+
+
+
+
+code/modules/unit_tests/autowiki.dm
+
+
+
+
+ /datum /unit_test /autowiki Tests that all autowikis generate something without runtiming
+ /datum /unit_test /autowiki_include_template Test that include_template
produces reasonable results
+
+
+
diff --git a/code/modules/unit_tests/create_and_destroy.html b/code/modules/unit_tests/create_and_destroy.html
new file mode 100644
index 000000000000..c53ae9329a2b
--- /dev/null
+++ b/code/modules/unit_tests/create_and_destroy.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/unit_tests/create_and_destroy.dm - byond
+
+
+
+
+code/modules/unit_tests/create_and_destroy.dm
+
+
+
+
+ /datum /unit_test /create_and_destroy Delete one of every type, sleep a while, then check to see if anything has gone fucky
+
+
+
diff --git a/code/modules/unit_tests/emote_panels.html b/code/modules/unit_tests/emote_panels.html
new file mode 100644
index 000000000000..eda5eac8053b
--- /dev/null
+++ b/code/modules/unit_tests/emote_panels.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/unit_tests/emote_panels.dm - byond
+
+
+
+
+code/modules/unit_tests/emote_panels.dm
+
+
+
+
+ /datum /unit_test /emote_panels Test that all emotes for Working Joes & Yautja have a category
+
+
+
diff --git a/code/modules/unit_tests/focus_only_tests.html b/code/modules/unit_tests/focus_only_tests.html
new file mode 100644
index 000000000000..a5ab71ed380f
--- /dev/null
+++ b/code/modules/unit_tests/focus_only_tests.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/modules/unit_tests/focus_only_tests.dm - byond
+
+
+
+
+code/modules/unit_tests/focus_only_tests.dm
+
+
+
+
+ /datum /unit_test /focus_only These tests perform no behavior of their own, and have their tests offloaded onto other procs.
+This is useful in cases like in build_appearance_list where we want to know if any fail,
+but is not useful to right a test for.
+This file exists so that you can change any of these to TEST_FOCUS and only check for that test.
+For example, change /datum/unit_test/focus_only/invalid_overlays to TEST_FOCUS(/datum/unit_test/focus_only/invalid_overlays),
+and you will only test the check for invalid overlays in appearance building.
+ /datum /unit_test /focus_only/invalid_overlays Checks that every overlay passed into build_appearance_list exists in the icon
+ /datum /unit_test /focus_only/invalid_research_designs Checks that every icon sent to the research_designs spritesheet is valid
+ /datum /unit_test /focus_only/invalid_vending_machine_icon_states Checks that every icon sent to vending machines is valid
+ /datum /unit_test /focus_only/multiple_space_initialization Checks that space does not initialize multiple times
+ /datum /unit_test /focus_only/sorted_smoothing_groups Checks that smoothing_groups and canSmoothWith are properly sorted in /atom/Initialize
+
+
+
diff --git a/code/modules/unit_tests/missing_icons.html b/code/modules/unit_tests/missing_icons.html
new file mode 100644
index 000000000000..273488416554
--- /dev/null
+++ b/code/modules/unit_tests/missing_icons.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/unit_tests/missing_icons.dm - byond
+
+
+
+
+code/modules/unit_tests/missing_icons.dm
+
+
+
+
+
+
+
diff --git a/code/modules/unit_tests/spritesheets.html b/code/modules/unit_tests/spritesheets.html
new file mode 100644
index 000000000000..7bc24eaf0fb7
--- /dev/null
+++ b/code/modules/unit_tests/spritesheets.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/unit_tests/spritesheets.dm - byond
+
+
+
+
+code/modules/unit_tests/spritesheets.dm
+
+
+
+
+ /datum /unit_test /spritesheets Checks if spritesheet assets contain icon states with invalid names
+
+
+
diff --git a/code/modules/unit_tests/subsystem_init.html b/code/modules/unit_tests/subsystem_init.html
new file mode 100644
index 000000000000..5299e4f6af6e
--- /dev/null
+++ b/code/modules/unit_tests/subsystem_init.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/unit_tests/subsystem_init.dm - byond
+
+
+
+
+code/modules/unit_tests/subsystem_init.dm
+
+
+
+
+ /datum /unit_test /subsystem_init Tests that all subsystems that need to properly initialize.
+
+
+
diff --git a/code/modules/unit_tests/tgui_create_message.html b/code/modules/unit_tests/tgui_create_message.html
new file mode 100644
index 000000000000..cc4acdc1fe9a
--- /dev/null
+++ b/code/modules/unit_tests/tgui_create_message.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/unit_tests/tgui_create_message.dm - byond
+
+
+
+
+code/modules/unit_tests/tgui_create_message.dm
+
+
+
+
+ /datum /unit_test /tgui_create_message Test that TGUI_CREATE_MESSAGE
is correctly implemented
+
+
+
diff --git a/code/modules/vehicles/hardpoints/hardpoint.html b/code/modules/vehicles/hardpoints/hardpoint.html
new file mode 100644
index 000000000000..ec4e735ff35d
--- /dev/null
+++ b/code/modules/vehicles/hardpoints/hardpoint.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/vehicles/hardpoints/hardpoint.dm - byond
+
+
+
+
+code/modules/vehicles/hardpoints/hardpoint.dm
+
+
+
+
+ /obj/item/hardpoint Hardpoints are any items that attach to a base vehicle, such as wheels/treads, support systems and guns
+
+
+
diff --git a/code/modules/vehicles/interior/interactable/vendors.html b/code/modules/vehicles/interior/interactable/vendors.html
new file mode 100644
index 000000000000..0f21b1b607df
--- /dev/null
+++ b/code/modules/vehicles/interior/interactable/vendors.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/vehicles/interior/interactable/vendors.dm - byond
+
+
+
+
+code/modules/vehicles/interior/interactable/vendors.dm
+
+
+
+
+
+
+
diff --git a/code/modules/vehicles/interior/interior.html b/code/modules/vehicles/interior/interior.html
new file mode 100644
index 000000000000..f1aa3c1f8b73
--- /dev/null
+++ b/code/modules/vehicles/interior/interior.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/vehicles/interior/interior.dm - byond
+
+
+
+
+code/modules/vehicles/interior/interior.dm
+
+
+
+
+
+
+
diff --git a/datum.html b/datum.html
new file mode 100644
index 000000000000..0ad4f0e736cc
--- /dev/null
+++ b/datum.html
@@ -0,0 +1,425 @@
+
+
+
+
+
+
+ /datum - byond
+
+
+
+
+
+
+The absolute base class for everything
+A datum instantiated has no physical world prescence, use an atom if you want something
+that actually lives in the world
+Be very mindful about adding variables to this class, they are inherited by every single
+thing in the entire game, and so you can easily cause memory usage to rise a lot with careless
+use of variables at this level
Vars
+ _status_traits Status traits attached to this datum. associative list of the form: list(trait name (string) = list(source1, source2, source3,...))
+ active_timers Active timers with this datum as the target
+ comp_lookup Any datum registered to receive signals from this datum is in this list
+ datum_components Components attached to this datum
+ datum_flags Datum level flags
+ gc_destroyed Tick count time when this object was destroyed.
+ signal_enabled Is this datum capable of sending signals?
+ signal_procs Lazy associated list in the structure of signals:proctype
that are run when the datum receives that signal
+ tgui_shared_states global
+ weak_reference A weak reference to another datum Procs
+ Destroy Default implementation of clean-up code.
+ 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
+ TakeComponent Transfer this component to another parent
+ TransferComponents Transfer all components to target
+ 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
+ add_traits Proc that handles adding multiple traits to a target via a list. Must have a common source and target.
+ process This proc is called on a datum on every "cycle" if it is being processed by a subsystem. The time between each cycle is determined by the subsystem's "wait" setting.
+You can start and stop processing a datum using the START_PROCESSING and STOP_PROCESSING defines.
+ remove_traits Proc that handles removing multiple traits from a target via a list. Must have a common source and target.
+ tgui_interact public
+ ui_act public
+ ui_assets public
+ ui_close public
+ ui_data public
+ ui_host private
+ ui_state private
+ ui_static_data public
+ ui_status public
+ update_static_data public
+ update_static_data_for_all_viewers public
+ vv_edit_var Called whenever a var is edited to edit the var, returning FALSE will reject the edit.
+ Var Details _status_traits
+
+
+
+
+
+ Status traits attached to this datum. associative list of the form: list(trait name (string) = list(source1, source2, source3,...))
active_timers
+
+
+
+
+
+ Active timers with this datum as the target
comp_lookup
+
+
+
+
+
+ Any datum registered to receive signals from this datum is in this list
+Lazy associated list in the structure of signal:registree/list of registrees
datum_components
+
+
+
+
+
+ Components attached to this datum
+Lazy associated list in the structure of type:component/list of components
datum_flags
+
+
+
+
+
+ Datum level flags
gc_destroyed
+
+
+
+
+
+ Tick count time when this object was destroyed.
+If this is non zero then the object has been garbage collected and is awaiting either
+a hard del by the GC subsystme, or to be autocollected (if it has no references)
signal_enabled
+
+
+
+
+
+ Is this datum capable of sending signals?
+Set to true when a signal has been registered
signal_procs
+ – /list/list/datum/callback
+
+
+
+
+ Lazy associated list in the structure of signals:proctype
that are run when the datum receives that signal
tgui_shared_states
+
+
+
+
+
+ global
+Associative list of JSON-encoded shared states that were set by
+tgui clients.
weak_reference
+
+
+
+
+
+ A weak reference to another datum
Proc Details Destroy(force, ...)
+
+
+
+
+
+ Default implementation of clean-up code.
+This should be overridden to remove all references pointing to the object being destroyed, if
+you do override it, make sure to call the parent and return it's return value by default
+Return an appropriate QDEL_HINT to modify handling of your deletion;
+in most cases this is QDEL_HINT_QUEUE .
+The base case is responsible for doing the following
+
+Erasing timers pointing to this datum
+Erasing compenents on this datum
+Notifying datums listening to signals from this datum that we are going away
+
+Returns QDEL_HINT_QUEUE
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
+ TakeComponent
+
+ Transfer this component to another parent
+Component is taken from source datum
+Arguments:
+
+datum/component/target Target datum to transfer to
+ TransferComponents
+
+ Transfer all components to target
+All components from source datum are taken
+Arguments:
+
+/datum/target the target to move the components to
+ 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
add_traits(/list/list_of_traits, source)
+
+
+
+
+
+ Proc that handles adding multiple traits to a target via a list. Must have a common source and target.
process(delta_time)
+
+
+
+
+
+ This proc is called on a datum on every "cycle" if it is being processed by a subsystem. The time between each cycle is determined by the subsystem's "wait" setting.
+You can start and stop processing a datum using the START_PROCESSING and STOP_PROCESSING defines.
+Since the wait setting of a subsystem can be changed at any time, it is important that any rate-of-change that you implement in this proc is multiplied by the delta_time that is sent as a parameter,
+Additionally, any "prob" you use in this proc should instead use the DT_PROB define to make sure that the final probability per second stays the same even if the subsystem's wait is altered.
+Examples where this must be considered:
+
+Implementing a cooldown timer, use mytimer -= delta_time
, not mytimer -= 1
. This way, mytimer
will always have the unit of seconds
+Damaging a mob, do L.adjustFireLoss(20 * delta_time)
, not L.adjustFireLoss(20)
. This way, the damage per second stays constant even if the wait of the subsystem is changed
+Probability of something happening, do if(DT_PROB(25, delta_time))
, not if(prob(25))
. This way, if the subsystem wait is e.g. lowered, there won't be a higher chance of this event happening per second
+
+If you override this do not call parent, as it will return PROCESS_KILL. This is done to prevent objects that dont override process() from staying in the processing list
remove_traits(/list/list_of_traits, source)
+
+
+
+
+
+ Proc that handles removing multiple traits from a target via a list. Must have a common source and target.
tgui_interact
+
+ 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_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 user's input has been handled and the UI should update.
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_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
+
+ 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
update_static_data_for_all_viewers()
+
+
+
+
+
+ public
+Will force an update on static data for all viewers.
+Should be done manually whenever something happens to
+change static data.
vv_edit_var(var_name, var_value)
+
+
+
+
+
+ Called whenever a var is edited to edit the var, returning FALSE will reject the edit.
+
+
+
diff --git a/datum/action.html b/datum/action.html
new file mode 100644
index 000000000000..66d65227adb6
--- /dev/null
+++ b/datum/action.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ /datum/action - byond
+
+
+
+
+
+
+Vars
+ hidden Whether the action is hidden from its owner
+ listen_signal A signal on the mob that will cause the action to activate
+ player_hidden Hide the action from the owner without preventing them from using it (incase of keybind listen_signal) Procs
+ give_to Cannot use arglist for both cases because of
+unique BYOND handling of args in New
+ keybind_activation handler for when a keybind signal is received by the action, calls the action_activate proc asynchronous
+ Var Details hidden
+
+
+
+
+
+ Whether the action is hidden from its owner
listen_signal
+
+
+
+
+
+ A signal on the mob that will cause the action to activate
player_hidden
+
+
+
+
+
+ Hide the action from the owner without preventing them from using it (incase of keybind listen_signal)
Proc Details give_to
+
+ Cannot use arglist for both cases because of
+unique BYOND handling of args in New
keybind_activation()
+
+
+
+
+
+ handler for when a keybind signal is received by the action, calls the action_activate proc asynchronous
+
+
+
diff --git a/datum/action/ghost.html b/datum/action/ghost.html
new file mode 100644
index 000000000000..23d7c24929eb
--- /dev/null
+++ b/datum/action/ghost.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/ghost - byond
+
+
+
+
+
+
+Procs
+ remove_ghost signal handler to remove the ghost button when someone's not so dead
Proc Details remove_ghost
+
+ signal handler to remove the ghost button when someone's not so dead
+
+
+
diff --git a/datum/action/item_action/cycle_helmet_huds.html b/datum/action/item_action/cycle_helmet_huds.html
new file mode 100644
index 000000000000..5efdd14cc4f8
--- /dev/null
+++ b/datum/action/item_action/cycle_helmet_huds.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/action/item_action/cycle_helmet_huds - byond
+
+
+
+
+
+
+Proc Details
+ Sets the action overlay based on the visor type
set_default_overlay()
+
+
+
+
+
+ Sets the action overlay to default hud sight up
+
+
+
diff --git a/datum/action/item_action/reagent_container/set_transfer_amount.html b/datum/action/item_action/reagent_container/set_transfer_amount.html
new file mode 100644
index 000000000000..d95bd0f95149
--- /dev/null
+++ b/datum/action/item_action/reagent_container/set_transfer_amount.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/item_action/reagent_container/set_transfer_amount - byond
+
+
+
+
+
+
+Vars
+ container The container that transfer amount will be set on
+ Var Details
+ The container that transfer amount will be set on
+
+
+
diff --git a/datum/action/item_action/specialist/aimed_shot.html b/datum/action/item_action/specialist/aimed_shot.html
new file mode 100644
index 000000000000..153acf75fbab
--- /dev/null
+++ b/datum/action/item_action/specialist/aimed_shot.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /datum/action/item_action/specialist/aimed_shot - byond
+
+
+
+
+
+
+Procs
+ check_can_use Add a decisecond to the default 1.5 seconds for each two tiles to hit.
+/timer is (f_spotting_time + 1 SECONDS) because sometimes it janks out before the doafter is done. blame sleeps or something
Proc Details check_can_use(/mob /M, cover_lose_focus)
+
+
+
+
+
+ Add a decisecond to the default 1.5 seconds for each two tiles to hit.
+/timer is (f_spotting_time + 1 SECONDS) because sometimes it janks out before the doafter is done. blame sleeps or something
+
+
+
diff --git a/datum/action/item_action/specialist/spotter_target.html b/datum/action/item_action/specialist/spotter_target.html
new file mode 100644
index 000000000000..c9b2b35c81f9
--- /dev/null
+++ b/datum/action/item_action/specialist/spotter_target.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/item_action/specialist/spotter_target - byond
+
+
+
+
+
+
+Procs
+ check_can_use Add a decisecond to the default 1.5 seconds for each two tiles to hit.
Proc Details check_can_use(/mob /target, cover_lose_focus)
+
+
+
+
+
+ Add a decisecond to the default 1.5 seconds for each two tiles to hit.
+
+
+
diff --git a/datum/action/item_action/taser/change_mode.html b/datum/action/item_action/taser/change_mode.html
new file mode 100644
index 000000000000..488ec0d698ca
--- /dev/null
+++ b/datum/action/item_action/taser/change_mode.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/item_action/taser/change_mode - byond
+
+
+
+
+
+
+Procs
+ update_icon Updates the action button icon dependant on mode.
Proc Details update_icon()
+
+
+
+
+
+ Updates the action button icon dependant on mode.
+
+
+
diff --git a/datum/action/minimap.html b/datum/action/minimap.html
new file mode 100644
index 000000000000..c28ba69e1184
--- /dev/null
+++ b/datum/action/minimap.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/action/minimap - byond
+
+
+
+
+
+
+Action that gives the owner access to the minimap pool
Vars
+ default_overwatch_level This is mostly for the AI & other things which do not move groundside.
+ map Minimap object we'll be displaying
+ marker_flags marker flags this will give the target, mostly used for marine minimaps
+ minimap_displayed boolean as to whether the minimap is currently shown
+ minimap_flags Flags to allow the owner to see others of this type Procs
+ on_owner_z_change Updates the map when the owner changes zlevel
+ Var Details default_overwatch_level
+
+
+
+
+
+ This is mostly for the AI & other things which do not move groundside.
+ Minimap object we'll be displaying
marker_flags
+
+
+
+
+
+ marker flags this will give the target, mostly used for marine minimaps
minimap_displayed
+
+
+
+
+
+ boolean as to whether the minimap is currently shown
minimap_flags
+
+
+
+
+
+ Flags to allow the owner to see others of this type
Proc Details on_owner_z_change
+
+ Updates the map when the owner changes zlevel
+
+
+
diff --git a/datum/action/predator_action.html b/datum/action/predator_action.html
new file mode 100644
index 000000000000..8514a86b03ed
--- /dev/null
+++ b/datum/action/predator_action.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/action/predator_action - byond
+
+
+
+
+
+
+Vars
+ active If the action is currently on or in use
+ bracers The bracers on the mob (if applicable)
+ mask The mask on the mob (if applicable)
+ require_bracers If the action requires bracers worn or in-hand
+ require_mask If the action requires a yautja mask to be worn
+ yautja The mob calling the action
+ Var Details active
+
+
+
+
+
+ If the action is currently on or in use
+ The bracers on the mob (if applicable)
+ The mask on the mob (if applicable)
require_bracers
+
+
+
+
+
+ If the action requires bracers worn or in-hand
require_mask
+
+
+
+
+
+ If the action requires a yautja mask to be worn
+ The mob calling the action
+
+
+
diff --git a/datum/action/predator_action/mask/control_falcon_drone.html b/datum/action/predator_action/mask/control_falcon_drone.html
new file mode 100644
index 000000000000..74b2ab2bc7f2
--- /dev/null
+++ b/datum/action/predator_action/mask/control_falcon_drone.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/predator_action/mask/control_falcon_drone - byond
+
+
+
+
+
+
+
+ Var Details linked_falcon_drone
+
+
+
+
+
+ The falcon drone that will be sent when the action is pressed
+
+
+
diff --git a/datum/action/tutorial_end.html b/datum/action/tutorial_end.html
new file mode 100644
index 000000000000..13fa8be4869b
--- /dev/null
+++ b/datum/action/tutorial_end.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/tutorial_end - byond
+
+
+
+
+
+
+Vars
+ tutorial Weakref to the tutorial this is related to
+ Var Details tutorial
+
+
+
+
+
+ Weakref to the tutorial this is related to
+
+
+
diff --git a/datum/action/vulture_tripod_unscope.html b/datum/action/vulture_tripod_unscope.html
new file mode 100644
index 000000000000..964495b066d0
--- /dev/null
+++ b/datum/action/vulture_tripod_unscope.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/vulture_tripod_unscope - byond
+
+
+
+
+
+
+Vars
+ tripod Weakref to the tripod that this is linked to
+ Var Details tripod
+
+
+
+
+
+ Weakref to the tripod that this is linked to
+
+
+
diff --git a/datum/action/xeno_action.html b/datum/action/xeno_action.html
new file mode 100644
index 000000000000..4f23b2801954
--- /dev/null
+++ b/datum/action/xeno_action.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ /datum/action/xeno_action - byond
+
+
+
+
+
+
+Vars
+ charge_time When set, an ability has to be charged up by being the active ability before it can be used
+ xeno_cooldown Cooldown of the ability (do not use the cooldown var)
+Probably should only have the cooldown var, but that is for another rework Procs
+ use_ability_wrapper A wrapper for use_ability that sends a signal
+ verb_acid_lance Name of the action to appear on the ability icon
+ verb_acid_mine Name of the action to appear on the ability icon
+ Var Details charge_time
+
+
+
+
+
+ When set, an ability has to be charged up by being the active ability before it can be used
xeno_cooldown
+
+
+
+
+
+ Cooldown of the ability (do not use the cooldown var)
+Probably should only have the cooldown var, but that is for another rework
Proc Details use_ability_wrapper(...)
+
+
+
+
+
+ A wrapper for use_ability that sends a signal
verb_acid_lance()
+
+
+
+
+
+ Name of the action to appear on the ability icon
verb_acid_mine()
+
+
+
+
+
+ Name of the action to appear on the ability icon
+
+
+
diff --git a/datum/action/xeno_action/activable/boiler_trap.html b/datum/action/xeno_action/activable/boiler_trap.html
new file mode 100644
index 000000000000..eeea49e5142e
--- /dev/null
+++ b/datum/action/xeno_action/activable/boiler_trap.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/activable/boiler_trap - byond
+
+
+
+
+
+
+Trapper boiler abilities
+ Var Details trap_ttl
+
+
+
+
+
+ Config
Proc Details use_ability(/atom /affected_atom)
+
+
+
+
+
+ Trapper boiler powers
+
+
+
diff --git a/datum/action/xeno_action/activable/feralfrenzy.html b/datum/action/xeno_action/activable/feralfrenzy.html
new file mode 100644
index 000000000000..2d6b65c5ff06
--- /dev/null
+++ b/datum/action/xeno_action/activable/feralfrenzy.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/activable/feralfrenzy - byond
+
+
+
+
+
+
+Vars
+ range The orange used for a AOETARGETGUT
+ Var Details range
+
+
+
+
+
+ The orange used for a AOETARGETGUT
+
+
+
diff --git a/datum/action/xeno_action/activable/fortify.html b/datum/action/xeno_action/activable/fortify.html
new file mode 100644
index 000000000000..58128de30f51
--- /dev/null
+++ b/datum/action/xeno_action/activable/fortify.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/activable/fortify - byond
+
+
+
+
+
+
+Vars
+ frontal_armor Extra armor when fortified and facing bullets.
+ Var Details frontal_armor
+
+
+
+
+
+ Extra armor when fortified and facing bullets.
+
+
+
diff --git a/datum/action/xeno_action/activable/pounce.html b/datum/action/xeno_action/activable/pounce.html
new file mode 100644
index 000000000000..03be3f85a26b
--- /dev/null
+++ b/datum/action/xeno_action/activable/pounce.html
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/activable/pounce - byond
+
+
+
+
+
+
+Proc Details additional_effects
+
+ Any additional effects to apply to the target
+is called if and only if we actually hit a human target
additional_effects_always()
+
+
+
+
+
+ Additional effects to apply even if we don't hit anything
post_windup_effects(interrupted)
+
+
+
+
+
+ Any effects to apply to the xenomorph after the windup finishes (or is interrupted)
pre_pounce_effects()
+
+
+
+
+
+ Effects to apply inmediately before pouncing.
pre_windup_effects()
+
+
+
+
+
+ Any effects to apply to the xenomorph before the windup occurs
+
+
+
diff --git a/datum/action/xeno_action/activable/prae_impale.html b/datum/action/xeno_action/activable/prae_impale.html
new file mode 100644
index 000000000000..470831ede679
--- /dev/null
+++ b/datum/action/xeno_action/activable/prae_impale.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/activable/prae_impale - byond
+
+
+
+
+
+
+Dancer Abilities
Proc Details use_ability(/atom /target_atom)
+
+
+
+
+
+ Dancer powers
+
+
+
diff --git a/datum/action/xeno_action/activable/secrete_resin/remote.html b/datum/action/xeno_action/activable/secrete_resin/remote.html
new file mode 100644
index 000000000000..fccbcb6afb8c
--- /dev/null
+++ b/datum/action/xeno_action/activable/secrete_resin/remote.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/activable/secrete_resin/remote - byond
+
+
+
+
+
+
+Procs
+ can_remote_build Check if the target is a resin door and open or close it
Proc Details can_remote_build()
+
+
+
+
+
+ Check if the target is a resin door and open or close it
+
+
+
diff --git a/datum/action/xeno_action/activable/tail_jab.html b/datum/action/xeno_action/activable/tail_jab.html
new file mode 100644
index 000000000000..8f72582b1a34
--- /dev/null
+++ b/datum/action/xeno_action/activable/tail_jab.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/activable/tail_jab - byond
+
+
+
+
+
+
+Procs
+ reset_direction To reset the direction if they haven't moved since then in below callback.
Proc Details reset_direction
+
+ To reset the direction if they haven't moved since then in below callback.
+
+
+
diff --git a/datum/action/xeno_action/activable/tail_stab.html b/datum/action/xeno_action/activable/tail_stab.html
new file mode 100644
index 000000000000..658ca51dbf2e
--- /dev/null
+++ b/datum/action/xeno_action/activable/tail_stab.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/activable/tail_stab - byond
+
+
+
+
+
+
+Vars
+ blunt_stab Used for defender's tail 'stab'. Procs
+ reset_direction To reset the direction if they haven't moved since then in below callback.
+Direction var to make the tail stab look cool and immersive.
+Ditto.
+ Var Details blunt_stab
+
+
+
+
+
+ Used for defender's tail 'stab'.
Proc Details reset_direction
+
+ To reset the direction if they haven't moved since then in below callback.
+Direction var to make the tail stab look cool and immersive.
+Ditto.
+
+
+
diff --git a/datum/action/xeno_action/activable/tail_stab/tail_seize.html b/datum/action/xeno_action/activable/tail_stab/tail_seize.html
new file mode 100644
index 000000000000..f6b6c8586654
--- /dev/null
+++ b/datum/action/xeno_action/activable/tail_stab/tail_seize.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/activable/tail_stab/tail_seize - byond
+
+
+
+
+
+
+Oppressor powers
Proc Details use_ability(/atom /targetted_atom)
+
+
+
+
+
+ OPPRESSOR POWERS
+
+
+
diff --git a/datum/action/xeno_action/activable/xeno_spit.html b/datum/action/xeno_action/activable/xeno_spit.html
new file mode 100644
index 000000000000..45ed19a50c8c
--- /dev/null
+++ b/datum/action/xeno_action/activable/xeno_spit.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/activable/xeno_spit - byond
+
+
+
+
+
+
+Vars
+ spitting Var that keeps track of in-progress wind-up spits like Bombard to prevent spitting multiple spits at the same time
+ Var Details spitting
+
+
+
+
+
+ Var that keeps track of in-progress wind-up spits like Bombard to prevent spitting multiple spits at the same time
+
+
+
diff --git a/datum/action/xeno_action/activable/xeno_spit/bombard.html b/datum/action/xeno_action/activable/xeno_spit/bombard.html
new file mode 100644
index 000000000000..1ac26fd9fae9
--- /dev/null
+++ b/datum/action/xeno_action/activable/xeno_spit/bombard.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/activable/xeno_spit/bombard - byond
+
+
+
+
+
+
+Vars
+ action_types_to_cd These are actions that will be placed on cooldown for the cooldown_duration when activates. Added acid shroud for now because it can be abused
+ cooldown_duration Duration for the cooldown of abilities affected by bombard
+ Var Details action_types_to_cd
+
+
+
+
+
+ These are actions that will be placed on cooldown for the cooldown_duration when activates. Added acid shroud for now because it can be abused
cooldown_duration
+
+
+
+
+
+ Duration for the cooldown of abilities affected by bombard
+
+
+
diff --git a/datum/action/xeno_action/onclick/acid_shroud.html b/datum/action/xeno_action/onclick/acid_shroud.html
new file mode 100644
index 000000000000..aada61876c23
--- /dev/null
+++ b/datum/action/xeno_action/onclick/acid_shroud.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/onclick/acid_shroud - byond
+
+
+
+
+
+
+Vars
+ action_types_to_cd These are actions that will be placed on cooldown for the cooldown_duration when activates
+ cooldown_duration Duration for the cooldown of abilities affected by acid shroud
+ sound_play Allows the sound to play. Flipped to false when sound is triggered and true after a timer. This prevents soundspam
+ Var Details action_types_to_cd
+
+
+
+
+
+ These are actions that will be placed on cooldown for the cooldown_duration when activates
cooldown_duration
+
+
+
+
+
+ Duration for the cooldown of abilities affected by acid shroud
sound_play
+
+
+
+
+
+ Allows the sound to play. Flipped to false when sound is triggered and true after a timer. This prevents soundspam
+
+
+
diff --git a/datum/action/xeno_action/onclick/apprehend.html b/datum/action/xeno_action/onclick/apprehend.html
new file mode 100644
index 000000000000..9f719b7b1a6d
--- /dev/null
+++ b/datum/action/xeno_action/onclick/apprehend.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/onclick/apprehend - byond
+
+
+
+
+
+
+BERSERKER ACTIONS
Proc Details use_ability(/atom /affected_atom)
+
+
+
+
+
+ BERSERKER POWERS
+
+
+
diff --git a/datum/action/xeno_action/onclick/charge_spit.html b/datum/action/xeno_action/onclick/charge_spit.html
new file mode 100644
index 000000000000..017c77d4f082
--- /dev/null
+++ b/datum/action/xeno_action/onclick/charge_spit.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/onclick/charge_spit - byond
+
+
+
+
+
+
+Procs
+ disable_spatter Though the ability's other buffs are supposed to last for its duration, it's only supposed to enhance one spit.
Proc Details disable_spatter()
+
+
+
+
+
+ Though the ability's other buffs are supposed to last for its duration, it's only supposed to enhance one spit.
+
+
+
diff --git a/datum/action/xeno_action/onclick/charger_charge.html b/datum/action/xeno_action/onclick/charger_charge.html
new file mode 100644
index 000000000000..ae0ca6a4e301
--- /dev/null
+++ b/datum/action/xeno_action/onclick/charger_charge.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/onclick/charger_charge - byond
+
+
+
+
+
+
+Vars
+ last_charge_move The last time the crusher moved while charging
+ momentum Dictates speed and damage dealt via collision, increased with movement
+ Var Details last_charge_move
+
+
+
+
+
+ The last time the crusher moved while charging
momentum
+
+
+
+
+
+ Dictates speed and damage dealt via collision, increased with movement
+
+
+
diff --git a/datum/action/xeno_action/onclick/empower.html b/datum/action/xeno_action/onclick/empower.html
new file mode 100644
index 000000000000..b10e4de8b220
--- /dev/null
+++ b/datum/action/xeno_action/onclick/empower.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/onclick/empower - byond
+
+
+
+
+
+
+Proc Details use_ability
+
+ BASE RAV POWERS
+
+
+
diff --git a/datum/action/xeno_action/onclick/lurker_invisibility.html b/datum/action/xeno_action/onclick/lurker_invisibility.html
new file mode 100644
index 000000000000..6e3f7f048f08
--- /dev/null
+++ b/datum/action/xeno_action/onclick/lurker_invisibility.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/onclick/lurker_invisibility - byond
+
+
+
+
+
+
+Procs
+ invisibility_off Implementation for disabling invisibility.
+(refund_multiplier) indicates how much cooldown to refund based on time remaining
+0 indicates full cooldown; 0.5 indicates 50% of remaining time is refunded
Proc Details invisibility_off(refund_multiplier)
+
+
+
+
+
+ Implementation for disabling invisibility.
+(refund_multiplier) indicates how much cooldown to refund based on time remaining
+0 indicates full cooldown; 0.5 indicates 50% of remaining time is refunded
+
+
+
diff --git a/datum/action/xeno_action/onclick/plant_weeds.html b/datum/action/xeno_action/onclick/plant_weeds.html
new file mode 100644
index 000000000000..e78ed691396f
--- /dev/null
+++ b/datum/action/xeno_action/onclick/plant_weeds.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/onclick/plant_weeds - byond
+
+
+
+
+
+
+Proc Details use_ability
+
+ Powers used by multiple Xenomorphs.
+
+
+
diff --git a/datum/action/xeno_action/onclick/shift_spits/boiler.html b/datum/action/xeno_action/onclick/shift_spits/boiler.html
new file mode 100644
index 000000000000..bf146b052dc0
--- /dev/null
+++ b/datum/action/xeno_action/onclick/shift_spits/boiler.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/onclick/shift_spits/boiler - byond
+
+
+
+
+
+
+Proc Details use_ability(/atom /affected_atom)
+
+
+
+
+
+ 0.7 seconds
+
+
+
diff --git a/datum/action/xeno_action/onclick/soak.html b/datum/action/xeno_action/onclick/soak.html
new file mode 100644
index 000000000000..55ea11c40920
--- /dev/null
+++ b/datum/action/xeno_action/onclick/soak.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/onclick/soak - byond
+
+
+
+
+
+
+Vars
+ damage_accumulated Initially zero, gets damage added when the ability is activated
+ damage_threshold Requires 140 damage taken within 6 seconds to activate the ability
+ Var Details damage_accumulated
+
+
+
+
+
+ Initially zero, gets damage added when the ability is activated
damage_threshold
+
+
+
+
+
+ Requires 140 damage taken within 6 seconds to activate the ability
+
+
+
diff --git a/datum/action/xeno_action/onclick/spike_shield.html b/datum/action/xeno_action/onclick/spike_shield.html
new file mode 100644
index 000000000000..87199079d501
--- /dev/null
+++ b/datum/action/xeno_action/onclick/spike_shield.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/onclick/spike_shield - byond
+
+
+
+
+
+
+HEDGEHOG ABILITIES
Proc Details use_ability
+
+ HEDGEHOG POWERS
+
+
+
diff --git a/datum/action/xeno_action/onclick/tacmap.html b/datum/action/xeno_action/onclick/tacmap.html
new file mode 100644
index 000000000000..86f569c340f3
--- /dev/null
+++ b/datum/action/xeno_action/onclick/tacmap.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/onclick/tacmap - byond
+
+
+
+
+
+
+Proc Details handle_dismount_ovipositor()
+
+
+
+
+
+ deals with the queen dismounting the ovipositor, hiding the action from the user
handle_mount_ovipositor()
+
+
+
+
+
+ deals with the queen mounting the ovipositor, unhiding the action from the user
+ handles the addition of a new queen, hiding if appropriate
+
+
+
diff --git a/datum/action/xeno_action/onclick/toggle_long_range.html b/datum/action/xeno_action/onclick/toggle_long_range.html
new file mode 100644
index 000000000000..5f5b452b05ac
--- /dev/null
+++ b/datum/action/xeno_action/onclick/toggle_long_range.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/onclick/toggle_long_range - byond
+
+
+
+
+
+
+Vars
+ movement_buffer how much you can move before zoom breaks
+ movement_slowdown if we can move while zoomed, how slowed will we be when zoomed in? Use speed modifier defines.
+ Var Details movement_buffer
+
+
+
+
+
+ how much you can move before zoom breaks
movement_slowdown
+
+
+
+
+
+ if we can move while zoomed, how slowed will we be when zoomed in? Use speed modifier defines.
+
+
+
diff --git a/datum/action/xeno_action/onclick/xenohide.html b/datum/action/xeno_action/onclick/xenohide.html
new file mode 100644
index 000000000000..f0c3ca389635
--- /dev/null
+++ b/datum/action/xeno_action/onclick/xenohide.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/onclick/xenohide - byond
+
+
+
+
+
+
+Procs
+ post_attack remove hide and apply modified attack cooldown
Proc Details post_attack()
+
+
+
+
+
+ remove hide and apply modified attack cooldown
+
+
+
diff --git a/datum/admin_help.html b/datum/admin_help.html
new file mode 100644
index 000000000000..341f3b47c81c
--- /dev/null
+++ b/datum/admin_help.html
@@ -0,0 +1,188 @@
+
+
+
+
+
+
+ /datum/admin_help - byond
+
+
+
+
+
+
+Vars
+ admins_involved List of admin ckeys that are involved, like through responding
+ closed_at The time at which the ticket was closed
+ heard_by_no_admins If any admins were online when the ticket was initialized
+ id Unique ID of the ticket
+ initial_message What was the first message sent by the player?
+ initiator Semi-misnomer, it's the person who ahelped/was bwoinked
+ initiator_ckey The ckey of the initiator
+ initiator_key_name The key name of the initiator
+ marked_admin Which admin has marked this ahelp?
+ name The current name of the ticket
+ opened_at The time at which the ticket was opened
+ opening_responders The list of clients currently responding to the opening ticket before it gets a response
+ player_interactions List of player interactions
+ player_replied Has the player replied to this ticket yet?
+ statclick Statclick holder for the ticket
+ state The current state of the ticket
+ ticket_counter Static counter used for generating each ticket ID
+ ticket_interactions The collection of interactions with this ticket. Use AddInteraction() or, preferably, admin_ticket_log()
+ webhook_sent Whether this ahelp has sent a webhook or not, and what type Procs
+ AutoReply Resolve ticket with a premade message
+ New Call this on its own to create a ticket, don't manually assign current_ticket
+ ticket_status Renders the current status of the ticket into a displayable string
+ Var Details admins_involved
+
+
+
+
+
+ List of admin ckeys that are involved, like through responding
closed_at
+
+
+
+
+
+ The time at which the ticket was closed
heard_by_no_admins
+
+
+
+
+
+ If any admins were online when the ticket was initialized
id
+
+
+
+
+
+ Unique ID of the ticket
initial_message
+
+
+
+
+
+ What was the first message sent by the player?
initiator
+
+
+
+
+
+ Semi-misnomer, it's the person who ahelped/was bwoinked
initiator_ckey
+
+
+
+
+
+ The ckey of the initiator
initiator_key_name
+
+
+
+
+
+ The key name of the initiator
marked_admin
+
+
+
+
+
+ Which admin has marked this ahelp?
name
+
+
+
+
+
+ The current name of the ticket
opened_at
+
+
+
+
+
+ The time at which the ticket was opened
opening_responders
+
+
+
+
+
+ The list of clients currently responding to the opening ticket before it gets a response
player_interactions
+
+
+
+
+
+ List of player interactions
player_replied
+
+
+
+
+
+ Has the player replied to this ticket yet?
statclick
+ – /obj /effect/statclick/ahelp
+
+
+
+
+ Statclick holder for the ticket
state
+
+
+
+
+
+ The current state of the ticket
ticket_counter
+
+
+
+
+
+ Static counter used for generating each ticket ID
ticket_interactions
+
+
+
+
+
+ The collection of interactions with this ticket. Use AddInteraction() or, preferably, admin_ticket_log()
webhook_sent
+
+
+
+
+
+ Whether this ahelp has sent a webhook or not, and what type
Proc Details AutoReply()
+
+
+
+
+
+ Resolve ticket with a premade message
New(msg_raw, /client /C, is_bwoink, urgent)
+
+
+
+
+
+ Call this on its own to create a ticket, don't manually assign current_ticket
+Arguments:
+
+msg_raw - The first message of this admin_help: used for the initial title of the ticket
+is_bwoink - Boolean operator, TRUE if this ticket was started by an admin PM
+ ticket_status()
+
+
+
+
+
+ Renders the current status of the ticket into a displayable string
+
+
+
diff --git a/datum/admin_help_tickets.html b/datum/admin_help_tickets.html
new file mode 100644
index 000000000000..0c15a6a9a2a1
--- /dev/null
+++ b/datum/admin_help_tickets.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/admin_help_tickets - byond
+
+
+
+
+
+
+
+ Var Details active_tickets
+
+
+
+
+
+ The set of all active tickets
closed_tickets
+
+
+
+
+
+ The set of all closed tickets
resolved_tickets
+
+
+
+
+
+ The set of all resolved tickets
+
+
+
diff --git a/datum/admins.html b/datum/admins.html
new file mode 100644
index 000000000000..346e115501b6
--- /dev/null
+++ b/datum/admins.html
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+ /datum/admins - byond
+
+
+
+
+
+
+
+ Var Details invisimined
+
+
+
+
+
+ Whether this admin is invisiminning
Proc Details accept_ert(/mob /approver, /mob /ref_person)
+
+
+
+
+
+ new ban stuff
+new ban stuff
accept_handheld_ert(/mob /approver, /mob /ref_person, ert_called)
+
+
+
+
+
+ Handles calling the ERT sent by handheld distress beacons
add_tagged_datum
+
+ Inserts the target_datum into [/datum/admins/var/tagged_datums], for later reference.
+Arguments:
+
+target_datum - The datum you want to create a tag for
+
+ Display all of the tagged datums
+ gets any additional channels for tgui-say (admin & mentor)
handle_tagged_del
+
+ Get ahead of the curve with deleting
modify_traits
+
+ Allow admin to add or remove traits of datum
remove_tagged_datum(/datum /target_datum, silent)
+
+
+
+
+
+ Attempts to remove the specified datum from [/datum/admins/var/tagged_datums] if it exists
+Arguments:
+
+target_datum - The datum you want to remove from the tagged_datums list
+silent - If TRUE, won't print messages to the owner's chat
+ spawn_atom(object)
+
+
+
+
+
+ ADMIN HELPER PROCS
toggleaban()
+
+
+
+
+
+ admins2.dm merge
view_attack_log()
+
+
+
+
+
+ Shows this round's attack log
view_game_log()
+
+
+
+
+
+ Shows this round's server log
view_href_log()
+
+
+
+
+
+ Shows this round's href log
view_runtime_log()
+
+
+
+
+
+ Shows this round's runtime log
view_tgui_log()
+
+
+
+
+
+ Shows this round's tgui log
+
+
+
diff --git a/datum/ammo.html b/datum/ammo.html
new file mode 100644
index 000000000000..3848928fd32c
--- /dev/null
+++ b/datum/ammo.html
@@ -0,0 +1,306 @@
+
+
+
+
+
+
+ /datum/ammo - byond
+
+
+
+
+generic bullet
+
+
+
+
+
+Vars
+ accuracy This is added to the bullet's base accuracy.
+ accuracy_var_high This INCREASES the upper bound of accuracy variance by 2%, to 107%.
+ accuracy_var_low How much the accuracy varies when fired. // This REDUCES the lower bound of accuracy variance by 2%, to 96%.
+ accurate_range For most guns, this is where the bullet dramatically looses accuracy. Not for snipers though.
+ accurate_range_min Snipers use this to simulate poor accuracy at close ranges
+ apply_delegate Does this apply xenomorph behaviour delegate?
+ bonus_projectiles_amount How many extra projectiles it shoots out. Works kind of like firing on burst, but all of the projectiles travel together
+ bonus_projectiles_type Type path of the extra projectiles
+ damage This is the base damage of the bullet as it is fired
+ damage_armor_punch how much armor breaking is done by sheer weapon force. This is for big blunt weapons
+ damage_buildup How much damage the bullet loses per turf away before the effective range
+ damage_falloff How much damage the bullet loses per turf traveled after the effective range
+ damage_type BRUTE, BURN, TOX, OXY, CLONE are the only things that should be in here
+ damage_var_high This INCREASES the upper bound of damage variance by 2%, to 107%.
+ damage_var_low Same as with accuracy variance.
+ debilitate Stun,knockdown,knockout,irradiate,stutter,eyeblur,drowsy,agony
+ effective_range_max What maximum range the ammo deals full damage, tapers off using damage_falloff after hitting this value. 0 for no maximum. Added onto gun range as a modifier.
+ effective_range_min What minimum range the ammo deals full damage, builds up the closer you get. 0 for no minimum. Added onto gun range as a modifier.
+ handful_state custom handful sprite, for shotgun shells or etc.
+ hit_effect_color The flicker that plays when a bullet hits a target. Usually red. Can be nulled so it doesn't show up at all.
+ max_range This will de-increment a counter on the bullet.
+ multiple_handful_name so handfuls say 'buckshot shells' not 'shell'
+ pen_armor_punch how much armor breaking will be done per point of penetration. This is for weapons that penetrate with their shape (like needle bullets)
+ penetration How much armor it ignores before calculations take place
+ ping The icon that is displayed when the bullet bounces off something.
+ scatter How much the ammo scatters when burst fired, added to gun scatter, along with other mods
+ shell_speed How fast the projectile moves.
+ shrapnel_chance The % chance it will imbed in a human
+ shrapnel_type The shrapnel type the ammo will embed, if the chance rolls
+ sound_armor When it's blocked by human armor.
+ sound_bounce When it bounces off something.
+ sound_hit When it deals damage.
+ sound_miss When it misses someone.
+ sound_override if we should play a special sound when firing.
+ sound_shield_hit When the bullet is absorbed by a xeno_shield
+ traits_to_give An assoc list in the format list(/datum/element/bullet_trait_to_give = list(...args))
+that will be given to a projectile with the current ammo datum Procs
+ knockback_effects Either knockback or slam them into an obstacle.
+The applied effects for knockback(), overwrite to change slow/stun amounts for different ammo datums
+ on_pointblank Special effects when pointblanking mobs. Ultimately called from /living/attackby(). Return TRUE to end the PB attempt.
+ set_bullet_traits Populate traits_to_give in this proc
+ Var Details accuracy
+
+
+
+
+
+ This is added to the bullet's base accuracy.
accuracy_var_high
+
+
+
+
+
+ This INCREASES the upper bound of accuracy variance by 2%, to 107%.
accuracy_var_low
+
+
+
+
+
+ How much the accuracy varies when fired. // This REDUCES the lower bound of accuracy variance by 2%, to 96%.
accurate_range
+
+
+
+
+
+ For most guns, this is where the bullet dramatically looses accuracy. Not for snipers though.
accurate_range_min
+
+
+
+
+
+ Snipers use this to simulate poor accuracy at close ranges
apply_delegate
+
+
+
+
+
+ Does this apply xenomorph behaviour delegate?
bonus_projectiles_amount
+
+
+
+
+
+ How many extra projectiles it shoots out. Works kind of like firing on burst, but all of the projectiles travel together
bonus_projectiles_type
+
+
+
+
+
+ Type path of the extra projectiles
damage
+
+
+
+
+
+ This is the base damage of the bullet as it is fired
damage_armor_punch
+
+
+
+
+
+ how much armor breaking is done by sheer weapon force. This is for big blunt weapons
damage_buildup
+
+
+
+
+
+ How much damage the bullet loses per turf away before the effective range
damage_falloff
+
+
+
+
+
+ How much damage the bullet loses per turf traveled after the effective range
damage_type
+
+
+
+
+
+ BRUTE, BURN, TOX, OXY, CLONE are the only things that should be in here
damage_var_high
+
+
+
+
+
+ This INCREASES the upper bound of damage variance by 2%, to 107%.
damage_var_low
+
+
+
+
+
+ Same as with accuracy variance.
debilitate
+
+
+
+
+
+ Stun,knockdown,knockout,irradiate,stutter,eyeblur,drowsy,agony
effective_range_max
+
+
+
+
+
+ What maximum range the ammo deals full damage, tapers off using damage_falloff after hitting this value. 0 for no maximum. Added onto gun range as a modifier.
effective_range_min
+
+
+
+
+
+ What minimum range the ammo deals full damage, builds up the closer you get. 0 for no minimum. Added onto gun range as a modifier.
handful_state
+
+
+
+
+
+ custom handful sprite, for shotgun shells or etc.
hit_effect_color
+
+
+
+
+
+ The flicker that plays when a bullet hits a target. Usually red. Can be nulled so it doesn't show up at all.
max_range
+
+
+
+
+
+ This will de-increment a counter on the bullet.
multiple_handful_name
+
+
+
+
+
+ so handfuls say 'buckshot shells' not 'shell'
pen_armor_punch
+
+
+
+
+
+ how much armor breaking will be done per point of penetration. This is for weapons that penetrate with their shape (like needle bullets)
penetration
+
+
+
+
+
+ How much armor it ignores before calculations take place
ping
+
+
+
+
+
+ The icon that is displayed when the bullet bounces off something.
scatter
+
+
+
+
+
+ How much the ammo scatters when burst fired, added to gun scatter, along with other mods
shell_speed
+
+
+
+
+
+ How fast the projectile moves.
shrapnel_chance
+
+
+
+
+
+ The % chance it will imbed in a human
shrapnel_type
+
+
+
+
+
+ The shrapnel type the ammo will embed, if the chance rolls
sound_armor
+
+
+
+
+
+ When it's blocked by human armor.
sound_bounce
+
+
+
+
+
+ When it bounces off something.
sound_hit
+
+
+
+
+
+ When it deals damage.
sound_miss
+
+
+
+
+
+ When it misses someone.
sound_override
+
+
+
+
+
+ if we should play a special sound when firing.
sound_shield_hit
+
+
+
+
+
+ When the bullet is absorbed by a xeno_shield
traits_to_give
+
+
+
+
+
+ An assoc list in the format list(/datum/element/bullet_trait_to_give = list(...args))
+that will be given to a projectile with the current ammo datum
Proc Details knockback_effects
+
+ Either knockback or slam them into an obstacle.
+The applied effects for knockback(), overwrite to change slow/stun amounts for different ammo datums
+ Special effects when pointblanking mobs. Ultimately called from /living/attackby(). Return TRUE to end the PB attempt.
set_bullet_traits()
+
+
+
+
+
+ Populate traits_to_give in this proc
+
+
+
diff --git a/datum/ammo/bullet/rifle/holo_target.html b/datum/ammo/bullet/rifle/holo_target.html
new file mode 100644
index 000000000000..a8f344bb9b26
--- /dev/null
+++ b/datum/ammo/bullet/rifle/holo_target.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/ammo/bullet/rifle/holo_target - byond
+
+
+
+
+
+
+
+ Var Details bonus_damage_cap_increase
+
+
+
+
+
+ modifies the default cap limit of 100 by this amount
holo_stacks
+
+
+
+
+
+ inflicts this many holo stacks per bullet hit
stack_loss_multiplier
+
+
+
+
+
+ multiplies the default drain of 5 holo stacks per second by this amount
+
+
+
diff --git a/datum/ammo/bullet/shrapnel/hornet_rounds.html b/datum/ammo/bullet/shrapnel/hornet_rounds.html
new file mode 100644
index 000000000000..7b894c455cc3
--- /dev/null
+++ b/datum/ammo/bullet/shrapnel/hornet_rounds.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/ammo/bullet/shrapnel/hornet_rounds - byond
+
+
+
+
+
+
+
+ Var Details bonus_damage_cap_increase
+
+
+
+
+
+ modifies the default cap limit of 100 by this amount
holo_stacks
+
+
+
+
+
+ inflicts this many holo stacks per bullet hit
stack_loss_multiplier
+
+
+
+
+
+ multiplies the default drain of 5 holo stacks per second by this amount
+
+
+
diff --git a/datum/ammo/bullet/smartgun/holo_target.html b/datum/ammo/bullet/smartgun/holo_target.html
new file mode 100644
index 000000000000..3c7f7fccb9cf
--- /dev/null
+++ b/datum/ammo/bullet/smartgun/holo_target.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/ammo/bullet/smartgun/holo_target - byond
+
+
+
+
+
+
+
+ Var Details bonus_damage_cap_increase
+
+
+
+
+
+ modifies the default cap limit of 100 by this amount
holo_stacks
+
+
+
+
+
+ inflicts this many holo stacks per bullet hit
stack_loss_multiplier
+
+
+
+
+
+ multiplies the default drain of 5 holo stacks per second by this amount
+
+
+
diff --git a/datum/ammo/bullet/sniper/anti_materiel/vulture/holo_target.html b/datum/ammo/bullet/sniper/anti_materiel/vulture/holo_target.html
new file mode 100644
index 000000000000..e1cebe4c1818
--- /dev/null
+++ b/datum/ammo/bullet/sniper/anti_materiel/vulture/holo_target.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/ammo/bullet/sniper/anti_materiel/vulture/holo_target - byond
+
+
+
+
+
+
+
+ Var Details bonus_damage_cap_increase
+
+
+
+
+
+ modifies the default cap limit of 100 by this amount
holo_stacks
+
+
+
+
+
+ inflicts this many holo stacks per bullet hit
stack_loss_multiplier
+
+
+
+
+
+ multiplies the default drain of 5 holo stacks per second by this amount
+
+
+
diff --git a/datum/ammo/xeno.html b/datum/ammo/xeno.html
new file mode 100644
index 000000000000..01896389a853
--- /dev/null
+++ b/datum/ammo/xeno.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/ammo/xeno - byond
+
+
+
+
+
+
+Vars
+ added_spit_delay used to make cooldown of the different spits vary.
+ pre_spit_warn Should there be an additional warning while winding up? (do not put to true if there is not a windup)
+ spit_windup Should there be a windup for this spit?
+ Var Details added_spit_delay
+
+
+
+
+
+ used to make cooldown of the different spits vary.
pre_spit_warn
+
+
+
+
+
+ Should there be an additional warning while winding up? (do not put to true if there is not a windup)
spit_windup
+
+
+
+
+
+ Should there be a windup for this spit?
+
+
+
diff --git a/datum/ammo/xeno/boiler_gas.html b/datum/ammo/xeno/boiler_gas.html
new file mode 100644
index 000000000000..b6188529c6b3
--- /dev/null
+++ b/datum/ammo/xeno/boiler_gas.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ammo/xeno/boiler_gas - byond
+
+
+
+
+
+
+Vars
+ smokerange range on the smoke in tiles from center
+ Var Details smokerange
+
+
+
+
+
+ range on the smoke in tiles from center
+
+
+
diff --git a/datum/ares_console_admin.html b/datum/ares_console_admin.html
new file mode 100644
index 000000000000..4d1c10c5dd96
--- /dev/null
+++ b/datum/ares_console_admin.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/ares_console_admin - byond
+
+
+
+
+
+
+
+ Var Details access_list
+
+
+
+
+
+ A record of who logged in and when.
last_login
+
+
+
+
+
+ The last admin to login.
logged_in
+
+
+
+
+
+ The currently logged in admin.
+
+
+
diff --git a/datum/ares_datacore.html b/datum/ares_datacore.html
new file mode 100644
index 000000000000..460d787e2f9d
--- /dev/null
+++ b/datum/ares_datacore.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+ /datum/ares_datacore - byond
+
+
+
+
+
+
+
+ Var Details ai_lockdown_active
+
+
+
+
+
+ Status of the AI Core Lockdown
apollo_log
+
+
+
+
+
+ The chat log of the apollo link. Timestamped.
apollo_login_list
+
+
+
+
+
+ Access list for Apollo Maintenance Console
interface_access_list
+
+
+
+
+
+ A record of who logged in and when.
nuke_available
+
+
+
+
+
+ Is nuke request usable or not?
records_announcement
+
+
+
+
+
+ Holds all (/datum/ares_record/announcement)s
records_asrs
+
+
+
+
+
+ Holds all (/datum/ares_record/requisition_log)s
records_bioscan
+
+
+
+
+
+ Holds all (/datum/ares_record/bioscan)s
records_bombardment
+
+
+
+
+
+ Holds all (/datum/ares_record/bombardment)s
records_deletion
+
+
+
+
+
+ Holds all (/datum/ares_record/deletion)s
records_flight
+
+
+
+
+
+ Holds all (/datum/ares_record/flight)s
records_security
+
+
+
+
+
+ Holds all (/datum/ares_record/security)s (including AA)
records_talking
+
+
+
+
+
+ Holds all (/datum/ares_record/talk_log)s
records_tech
+
+
+
+
+
+ Holds all (/datum/ares_record/tech)s
+
+
+
diff --git a/datum/ares_link.html b/datum/ares_link.html
new file mode 100644
index 000000000000..e007003271ee
--- /dev/null
+++ b/datum/ares_link.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/ares_link - byond
+
+
+
+
+
+
+
+ Var Details linked_alerts
+
+
+
+
+
+ All motion triggers for the link
linked_systems
+
+
+
+
+
+ All machinery for the link
linked_vents
+
+
+
+
+
+ Linked security gas vents.
tag_num
+
+
+
+
+
+ The tag number for generated vent labels, if none is manually set.
tickets_maintenance
+
+
+
+
+
+ Working Joe stuff
+
+
+
diff --git a/datum/ares_record.html b/datum/ares_record.html
new file mode 100644
index 000000000000..400506cdf729
--- /dev/null
+++ b/datum/ares_record.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/ares_record - byond
+
+
+
+
+
+
+Vars
+ details The content of the record, announcement text/bioscan info etc.
+ time World time in text format.
+ title The title of the record, usually announcement title.
+ user The name of the initiator of certain records. Who fired an OB, or who deleted something etc.
+ Var Details details
+
+
+
+
+
+ The content of the record, announcement text/bioscan info etc.
time
+
+
+
+
+
+ World time in text format.
title
+
+
+
+
+
+ The title of the record, usually announcement title.
user
+
+
+
+
+
+ The name of the initiator of certain records. Who fired an OB, or who deleted something etc.
+
+
+
diff --git a/datum/ares_record/tech.html b/datum/ares_record/tech.html
new file mode 100644
index 000000000000..968f5ea5093c
--- /dev/null
+++ b/datum/ares_record/tech.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/ares_record/tech - byond
+
+
+
+
+
+
+Vars
+ is_tier If this tech unlock changed the tier.
+ Var Details is_tier
+
+
+
+
+
+ If this tech unlock changed the tier.
+
+
+
diff --git a/datum/ares_ticket.html b/datum/ares_ticket.html
new file mode 100644
index 000000000000..a6307d0150b5
--- /dev/null
+++ b/datum/ares_ticket.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/ares_ticket - byond
+
+
+
+
+
+
+
+ Var Details ticket_assignee
+
+
+
+
+
+ Name of who is handling the ticket. Derived from last login.
ticket_details
+
+
+
+
+
+ The content of the ticket, usually an explanation of what it is for.
ticket_id
+
+
+
+
+
+ Numerical designation of the ticket.
ticket_name
+
+
+
+
+
+ The name of the ticket.
ticket_priority
+
+
+
+
+
+ Whether or not the tickey is a priority.
ticket_submitter
+
+
+
+
+
+ Who submitted the ticket. Derived from last login.
ticket_time
+
+
+
+
+
+ World time in text format.
+
+
+
diff --git a/datum/asset.html b/datum/asset.html
new file mode 100644
index 000000000000..ef48ccc91f2c
--- /dev/null
+++ b/datum/asset.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/asset - byond
+
+
+
+
+
+
+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 000000000000..8d8490e1871f
--- /dev/null
+++ b/datum/asset/simple.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ /datum/asset/simple - byond
+
+
+
+
+
+
+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 the legacy browse_rsc
+system when cdn 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 the legacy browse_rsc
+system when cdn transports are enabled?
+
+
+
diff --git a/datum/asset/simple/namespaced.html b/datum/asset/simple/namespaced.html
new file mode 100644
index 000000000000..9087f67f1b55
--- /dev/null
+++ b/datum/asset/simple/namespaced.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+ /datum/asset/simple/namespaced - byond
+
+
+
+
+
+
+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. Procs
+ get_htmlloader Get a html string that will load a html asset.
+Needed because byond doesn't allow you to browse() to a url.
+ 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.
Proc Details get_htmlloader(filename)
+
+
+
+
+
+ Get a html string that will load a html asset.
+Needed because byond doesn't allow you to browse() to a url.
+
+
+
diff --git a/datum/asset_cache_item.html b/datum/asset_cache_item.html
new file mode 100644
index 000000000000..978e6d27f06d
--- /dev/null
+++ b/datum/asset_cache_item.html
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+ /datum/asset_cache_item - byond
+
+
+
+
+
+
+An internal datum containing info on items in the asset cache. Mainly used to cache md5 info for speed.
Vars
+ 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?
+ 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 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 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?
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
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 000000000000..81cc796cc371
--- /dev/null
+++ b/datum/asset_transport.html
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+ /datum/asset_transport - byond
+
+
+
+
+Simple browse_rsc asset transport
+
+
+
+
+
+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 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 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 000000000000..0816885eeeac
--- /dev/null
+++ b/datum/asset_transport/webroot.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+ /datum/asset_transport/webroot - byond
+
+
+
+
+
+
+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/authority/branch/role.html b/datum/authority/branch/role.html
new file mode 100644
index 000000000000..ca1f6e719934
--- /dev/null
+++ b/datum/authority/branch/role.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+ /datum/authority/branch/role - byond
+
+
+
+
+
+
+Vars
+ role_mappings List of mapped roles that should be used in place of usual ones Procs
+ assign_roles Assign roles to the players. Return roles that are still avialable.
+If count is true, return role balancing weight instead.
+ calculate_role_weight Calculate role balance weight for one person joining as that role. This weight is used
+when calculating the number of xenos both roundstart and burrowed larva they get for
+people late joining. This weight also controls the size of local wildlife population,
+survivors and the number of roundstart Squad Rifleman slots.
+ Var Details role_mappings
+
+
+
+
+
+ List of mapped roles that should be used in place of usual ones
Proc Details assign_roles(/list/roles_for_mode, /list/unassigned_players, count)
+
+
+
+
+
+ Assign roles to the players. Return roles that are still avialable.
+If count is true, return role balancing weight instead.
calculate_role_weight
+
+ Calculate role balance weight for one person joining as that role. This weight is used
+when calculating the number of xenos both roundstart and burrowed larva they get for
+people late joining. This weight also controls the size of local wildlife population,
+survivors and the number of roundstart Squad Rifleman slots.
+
+
+
diff --git a/datum/autoreply.html b/datum/autoreply.html
new file mode 100644
index 000000000000..fb0365f5f0d8
--- /dev/null
+++ b/datum/autoreply.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/autoreply - byond
+
+
+
+
+
+
+Vars
+ closer If the autoreply will automatically close the ahelp or not.
+ message The detailed message in the auto reply.
+ title What shows up in the list of replies, and the big red header on the reply itself.
+ Var Details closer
+
+
+
+
+
+ If the autoreply will automatically close the ahelp or not.
message
+
+
+
+
+
+ The detailed message in the auto reply.
title
+
+
+
+
+
+ What shows up in the list of replies, and the big red header on the reply itself.
+
+
+
diff --git a/datum/autowiki.html b/datum/autowiki.html
new file mode 100644
index 000000000000..0e3c5c3aa73f
--- /dev/null
+++ b/datum/autowiki.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /datum/autowiki - byond
+
+
+
+
+
+
+A representation of an automated wiki page.
Vars
+ generate_multiple If the generation of this autowiki should call /generate_multiple(),
+which should return a list of list(title = "Page Title", contents)
+allowing for the generation of multiple pages in the same autowiki
+ page The page on the wiki to be replaced.
+This should never be a user-facing page, like "Guide to circuits".
+It should always be a template that only Autowiki should touch.
+For example: "Template:Autowiki/CircuitInfo". Procs
+ escape_value Escape a parameter such that it can be correctly put inside a wiki output
+ generate Override and return the new text of the page.
+This proc can be impure, usually to call upload_file
.
+ include_template Generates an auto formatted template user.
+Your autowiki should ideally be a lot of these.
+It lets wiki editors edit it much easier later, without having to enter repo.
+Parameters will be passed in by name. That means your template should expect
+something that looks like {{ Autowiki_Circuit|name=Combiner|description=This combines }}
+Lists, which must be array-like (no keys), will be turned into a flat list with their key and a number,
+such that list("food" = list("fruit", "candy")) -> food1=fruit|food2=candy
+Your page should respect AUTOWIKI_SKIP, and check for this using IS_AUTOWIKI_SKIP
+ upload_icon Takes an icon and uploads it to Autowiki-name.png.
+Do your best to make sure this is unique, so it doesn't clash with other autowiki icons.
+ Var Details generate_multiple
+
+
+
+
+
+ If the generation of this autowiki should call /generate_multiple(),
+which should return a list of list(title = "Page Title", contents)
+allowing for the generation of multiple pages in the same autowiki
page
+
+
+
+
+
+ The page on the wiki to be replaced.
+This should never be a user-facing page, like "Guide to circuits".
+It should always be a template that only Autowiki should touch.
+For example: "Template:Autowiki/CircuitInfo".
Proc Details escape_value(parameter)
+
+
+
+
+
+ Escape a parameter such that it can be correctly put inside a wiki output
generate()
+
+
+
+
+
+ Override and return the new text of the page.
+This proc can be impure, usually to call upload_file
.
include_template(name, parameters)
+
+
+
+
+
+ Generates an auto formatted template user.
+Your autowiki should ideally be a lot of these.
+It lets wiki editors edit it much easier later, without having to enter repo.
+Parameters will be passed in by name. That means your template should expect
+something that looks like {{ Autowiki_Circuit|name=Combiner|description=This combines }}
+Lists, which must be array-like (no keys), will be turned into a flat list with their key and a number,
+such that list("food" = list("fruit", "candy")) -> food1=fruit|food2=candy
+Your page should respect AUTOWIKI_SKIP, and check for this using IS_AUTOWIKI_SKIP
upload_icon(/icon/icon, name)
+
+
+
+
+
+ Takes an icon and uploads it to Autowiki-name.png.
+Do your best to make sure this is unique, so it doesn't clash with other autowiki icons.
+
+
+
diff --git a/datum/beam.html b/datum/beam.html
new file mode 100644
index 000000000000..453380cc208b
--- /dev/null
+++ b/datum/beam.html
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+ /datum/beam - byond
+
+
+
+
+
+
+
+Beam Datum and Effect
+
+IF YOU ARE LAZY AND DO NOT WANT TO READ, GO TO THE BOTTOM OF THE FILE AND USE THAT PROC!
+
+
+This is the beam datum! It's a really neat effect for the game in drawing a line from one atom to another.
+
+
+It has two parts:
+
+
+The datum itself which manages redrawing the beam to constantly keep it pointing from the origin to the target.
+
+
+The effect which is what the beams are made out of. They're placed in a line from the origin to target, rotated towards the target and snipped off at the end.
+
+
+These effects are kept in a list and constantly created and destroyed (hence the proc names draw and reset, reset destroying all effects and draw creating more.)
+
+
+You can add more special effects to the beam itself by changing what the drawn beam effects do. For example you can make a vine that pricks people by making the beam_type
+
+
+include a crossed proc that damages the crosser. Examples in venus_human_trap.dm
+
+ Vars
+ always_turn will the origin object always turn to face the target?
+ beam_type the objects placed in the elements list
+ elements list of beam objects. These have their visuals set by the visuals var which is created on starting
+ icon icon used by the beam.
+ icon_state icon state of the main segments of the beam
+ max_distance The beam will qdel if it's longer than this many tiles.
+ origin where the beam goes from
+ target where the beam goes to
+ visuals This is used as the visual_contents of beams, so you can apply one effect to this and the whole beam will look like that. never gets deleted on redrawing. Procs
+ Draw Creates the beam effects and places them in a line from the origin to the target. Sets their rotation to make the beams face the target, too.
+ Start Proc called by the atom Beam() proc. Sets up signals, and draws the beam for the first time.
+ redrawing Triggered by signals set up when the beam is set up. If it's still sane to create a beam, it removes the old beam, creates a new one. Otherwise it kills the beam.
+ Var Details always_turn
+
+
+
+
+
+ will the origin object always turn to face the target?
beam_type
+
+
+
+
+
+ the objects placed in the elements list
elements
+
+
+
+
+
+ list of beam objects. These have their visuals set by the visuals var which is created on starting
icon
+
+
+
+
+
+ icon used by the beam.
icon_state
+
+
+
+
+
+ icon state of the main segments of the beam
max_distance
+
+
+
+
+
+ The beam will qdel if it's longer than this many tiles.
origin
+
+
+
+
+
+ where the beam goes from
target
+
+
+
+
+
+ where the beam goes to
visuals
+
+
+
+
+
+ This is used as the visual_contents of beams, so you can apply one effect to this and the whole beam will look like that. never gets deleted on redrawing.
Proc Details Draw()
+
+
+
+
+
+ Creates the beam effects and places them in a line from the origin to the target. Sets their rotation to make the beams face the target, too.
Start()
+
+
+
+
+
+ Proc called by the atom Beam() proc. Sets up signals, and draws the beam for the first time.
redrawing
+
+ Triggered by signals set up when the beam is set up. If it's still sane to create a beam, it removes the old beam, creates a new one. Otherwise it kills the beam.
+Arguments:
+mover: either the origin of the beam or the target of the beam that moved.
+oldloc: from where mover moved.
+direction: in what direction mover moved from.
+
+
+
diff --git a/datum/behavior_delegate.html b/datum/behavior_delegate.html
new file mode 100644
index 000000000000..c147563188e2
--- /dev/null
+++ b/datum/behavior_delegate.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+ /datum/behavior_delegate - byond
+
+
+
+
+
+
+Vars
+ bound_xeno The Xeno we handle mutator state for
+ name Userfriendly name of the mutator Procs
+ append_to_stat Returns any extra information to display via stat.
+ handle_slash Handling specific behavior - if TRUE, the attack will not have an attack delay by default.
+ melee_attack_modify_damage Modifies the damage of a slash based on the current mutator state.
+Do not override this proc unless you need to affect the rolled damage
+of an attack before it happens
+ on_collide Used to do something when a xeno collides with a movable atom
+ on_hitby_projectile Any special behaviors on reception of a projectile attack
+ on_kill_mob Behaviour when killing people
+ on_life Called during Xeno life
+Handles anything that needs to be periodically ticked
+for this mutator to function
+ on_update_icons Handling the xeno icon state or overlays, return TRUE if icon state should not be changed
+ override_intent Used to override an intent for some abilities that must force harm on next attack_alien()
+ ranged_attack_on_hit Technically speaking, these are called whenever a xeno projectile impacts
+a target (acid spit), NOT when gas damages them.
+If you want to deal any more damage, just do it in the addl. effects proc
+adding damage to a projectile in the actual proc is highly nontrivial
+ Var Details
+ The Xeno we handle mutator state for
name
+
+
+
+
+
+ Userfriendly name of the mutator
Proc Details append_to_stat()
+
+
+
+
+
+ Returns any extra information to display via stat.
handle_slash
+
+ Handling specific behavior - if TRUE, the attack will not have an attack delay by default.
melee_attack_modify_damage
+
+ Modifies the damage of a slash based on the current mutator state.
+Do not override this proc unless you need to affect the rolled damage
+of an attack before it happens
on_collide
+
+ Used to do something when a xeno collides with a movable atom
on_hitby_projectile(ammo)
+
+
+
+
+
+ Any special behaviors on reception of a projectile attack
on_kill_mob
+
+ Behaviour when killing people
on_life()
+
+
+
+
+
+ Called during Xeno life
+Handles anything that needs to be periodically ticked
+for this mutator to function
on_update_icons()
+
+
+
+
+
+ Handling the xeno icon state or overlays, return TRUE if icon state should not be changed
override_intent
+
+ Used to override an intent for some abilities that must force harm on next attack_alien()
ranged_attack_on_hit()
+
+
+
+
+
+ Technically speaking, these are called whenever a xeno projectile impacts
+a target (acid spit), NOT when gas damages them.
+If you want to deal any more damage, just do it in the addl. effects proc
+adding damage to a projectile in the actual proc is highly nontrivial
+
+
+
diff --git a/datum/behavior_delegate/carrier_eggsac.html b/datum/behavior_delegate/carrier_eggsac.html
new file mode 100644
index 000000000000..5ba349485630
--- /dev/null
+++ b/datum/behavior_delegate/carrier_eggsac.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/behavior_delegate/carrier_eggsac - byond
+
+
+
+
+
+
+Vars
+ egg_sustain_cap Total number of eggs which can be sustained defined as EGGSAC_OFF_WEED_EGGCAP
+ eggs_sustained List of /obj/effect/alien/egg/carrier_egg sustained by the carrier on normal weeds
+ sustain_distance Distance from the egg that the carrier can go before it stops sustaining it Procs
+ Destroy Remove all references to src in eggs_sustained
+ remove_egg_owner Remove owner of egg
+ Var Details egg_sustain_cap
+
+
+
+
+
+ Total number of eggs which can be sustained defined as EGGSAC_OFF_WEED_EGGCAP
eggs_sustained
+
+
+
+
+
+ List of /obj/effect/alien/egg/carrier_egg sustained by the carrier on normal weeds
sustain_distance
+
+
+
+
+
+ Distance from the egg that the carrier can go before it stops sustaining it
Proc Details Destroy()
+
+
+
+
+
+ Remove all references to src in eggs_sustained
+ Remove owner of egg
+
+
+
diff --git a/datum/behavior_delegate/crusher_base.html b/datum/behavior_delegate/crusher_base.html
new file mode 100644
index 000000000000..0997f65d2a1d
--- /dev/null
+++ b/datum/behavior_delegate/crusher_base.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/behavior_delegate/crusher_base - byond
+
+
+
+
+
+
+Vars
+ is_charging Utilized to update charging animation.
+ Var Details is_charging
+
+
+
+
+
+ Utilized to update charging animation.
+
+
+
diff --git a/datum/behavior_delegate/lurker_base.html b/datum/behavior_delegate/lurker_base.html
new file mode 100644
index 000000000000..3190ffe689ab
--- /dev/null
+++ b/datum/behavior_delegate/lurker_base.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/behavior_delegate/lurker_base - byond
+
+
+
+
+
+
+Proc Details on_invisibility()
+
+
+
+
+
+ Implementation for enabling invisibility.
on_invisibility_off()
+
+
+
+
+
+ Implementation for disabling invisibility.
+
+
+
diff --git a/datum/behavior_delegate/praetorian_base.html b/datum/behavior_delegate/praetorian_base.html
new file mode 100644
index 000000000000..72255031ceae
--- /dev/null
+++ b/datum/behavior_delegate/praetorian_base.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/behavior_delegate/praetorian_base - byond
+
+
+
+
+
+
+Vars
+ reward_shield reward for hitting shots instead of spamming acid ball
+ Var Details reward_shield
+
+
+
+
+
+ reward for hitting shots instead of spamming acid ball
+
+
+
diff --git a/datum/bioscan_data.html b/datum/bioscan_data.html
new file mode 100644
index 000000000000..782fdd0a6bcd
--- /dev/null
+++ b/datum/bioscan_data.html
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+ /datum/bioscan_data - byond
+
+
+
+
+
+
+Vars
+ larva All larva on all hives
+ marine_planet_location Random mentioned locations Procs
+ ares_bioscan The announcement to all Humans. Slightly off for the planet and elsewhere, accurate for the ship.
+ qm_bioscan The announcement to all Xenos. Slightly off for the human ship, accurate otherwise.
+ yautja_bioscan All larva on all hives
+Count all larva across all hives
+Keeping track of peak numbers to determine when a side is "losing"
+Pick one random location to disclose
+Inform Yautja and Ghosts exactly what's what.
+ Var Details larva
+
+
+
+
+
+ All larva on all hives
marine_planet_location
+
+
+
+
+
+ Random mentioned locations
Proc Details ares_bioscan(forced, variance)
+
+
+
+
+
+ The announcement to all Humans. Slightly off for the planet and elsewhere, accurate for the ship.
qm_bioscan(variance)
+
+
+
+
+
+ The announcement to all Xenos. Slightly off for the human ship, accurate otherwise.
yautja_bioscan()
+
+
+
+
+
+ All larva on all hives
+Count all larva across all hives
+Keeping track of peak numbers to determine when a side is "losing"
+Pick one random location to disclose
+Inform Yautja and Ghosts exactly what's what.
+
+
+
diff --git a/datum/bitfield.html b/datum/bitfield.html
new file mode 100644
index 000000000000..76af04b54027
--- /dev/null
+++ b/datum/bitfield.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/bitfield - byond
+
+
+
+
+
+
+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/cas_fire_envelope.html b/datum/cas_fire_envelope.html
new file mode 100644
index 000000000000..1c0ed71f8976
--- /dev/null
+++ b/datum/cas_fire_envelope.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+ /datum/cas_fire_envelope - byond
+
+
+
+
+
+
+Procs
+ change_direction Change attack vector for firemission
+ chat_warning Step 2, 3, 4: Warns nearby mobs of the incoming fire mission. Warning as 1 is non-precise, whereas 2 and 3 are precise.
+ end_cooldown Step 7: Sets the fire mission stat to FIRE_MISSION_STATE_IDLE
+ flyoff Step 6: Sets the fire mission stat to FIRE_MISSION_STATE_COOLDOWN
+ on_tracked_object_del Signal handler for when we are viewing a object in cam is qdel'd (but camera actually is actually some other obj)
+ open_fire Step 5: Actually executes the fire mission updating stat to FIRE_MISSION_STATE_FIRING and then FIRE_MISSION_STATE_OFF_TARGET
+ play_sound Step 1: Sets the stat to FIRE_MISSION_STATE_ON_TARGET and starts the sound effect for the fire mission.
+ untrack_object Call to unregister the on_tracked_object_del behavior
Proc Details change_direction(new_dir)
+
+
+
+
+
+ Change attack vector for firemission
chat_warning(/atom /target_turf, range, warning_number)
+
+
+
+
+
+ Step 2, 3, 4: Warns nearby mobs of the incoming fire mission. Warning as 1 is non-precise, whereas 2 and 3 are precise.
end_cooldown()
+
+
+
+
+
+ Step 7: Sets the fire mission stat to FIRE_MISSION_STATE_IDLE
flyoff()
+
+
+
+
+
+ Step 6: Sets the fire mission stat to FIRE_MISSION_STATE_COOLDOWN
on_tracked_object_del
+
+ Signal handler for when we are viewing a object in cam is qdel'd (but camera actually is actually some other obj)
open_fire
+
+ Step 5: Actually executes the fire mission updating stat to FIRE_MISSION_STATE_FIRING and then FIRE_MISSION_STATE_OFF_TARGET
play_sound(/atom /target_turf)
+
+
+
+
+
+ Step 1: Sets the stat to FIRE_MISSION_STATE_ON_TARGET and starts the sound effect for the fire mission.
untrack_object()
+
+
+
+
+
+ Call to unregister the on_tracked_object_del behavior
+
+
+
diff --git a/datum/cas_fire_mission.html b/datum/cas_fire_mission.html
new file mode 100644
index 000000000000..347efa33cf84
--- /dev/null
+++ b/datum/cas_fire_mission.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /datum/cas_fire_mission - byond
+
+
+
+
+
+
+Procs
+ add_user_to_sim_tracking Used only in the simulation room, proper tracking is done in the add_user_to_tracking envelop.
+This shouldn't be used in any other procs.
Proc Details add_user_to_sim_tracking(/mob /living /user, /obj /effect/firemission_guidance/guidance)
+
+
+
+
+
+ Used only in the simulation room, proper tracking is done in the add_user_to_tracking envelop.
+This shouldn't be used in any other procs.
+
+
+
diff --git a/datum/cas_fire_mission_record.html b/datum/cas_fire_mission_record.html
new file mode 100644
index 000000000000..6f354f75b341
--- /dev/null
+++ b/datum/cas_fire_mission_record.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/cas_fire_mission_record - byond
+
+
+
+
+
+
+Defines firing patterns in Fire Missions, transverse to its firing direction
Vars
+ offsets List of transverse offsets for each firing step - null meaning not shooting
+ weapon Weapon relevant to this fire mission record Procs
+ get_ammo Get current ammo status for a weapon
+ get_offsets Get offset range allowed when firing weapon in this configuration
+ Var Details offsets
+
+
+
+
+
+ List of transverse offsets for each firing step - null meaning not shooting
+ Weapon relevant to this fire mission record
Proc Details get_ammo()
+
+
+
+
+
+ Get current ammo status for a weapon
get_offsets()
+
+
+
+
+
+ Get offset range allowed when firing weapon in this configuration
+
+
+
diff --git a/datum/caste_datum.html b/datum/caste_datum.html
new file mode 100644
index 000000000000..f97d4ae87f1f
--- /dev/null
+++ b/datum/caste_datum.html
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+ /datum/caste_datum - byond
+
+
+
+
+
+
+Vars
+ acid_splash_cooldown Time it takes between acid splash retaliate procs. Variable per caste, for if we want future castes that are acid bombs
+ adjust_size_x Adjust pixel size. 0.x is smaller, 1.x is bigger, percentage based.
+ armor_deflection Chance of deflecting projectiles.
+ aura_allowed "Evolving" removed for the time being
+ aura_strength The strength of our aura. Zero means we can't emit one
+ available_strains A list of strain typepaths that are able to be chosen by this caste.
+ build_time_mult Default build time and build distance
+ deevolves_to what caste or castes to de-evolve to.
+ evolution_allowed Are they allowed to evolve (and have their evolution progress group)
+ evolution_threshold Threshold to next evolution
+ evolve_without_queen whether they can get evo points without needing an ovi queen
+ evolves_to This is where you add castes to evolve into. "Separated", "by", "commas"
+ fire_vulnerability_mult if fire_immunity is set to be vulnerable, how much will fire damage be multiplied. Defines in xeno.dm
+ hugger_nurturing if a hugger is held in hand, won't attempt to leap and kill itself
+ innate_healing whether the xeno heals even outside weeds.
+ is_intelligent If they can use consoles, etc. Set on Queen
+ melee_vehicle_damage allows fine tuning melee damage to vehicles per caste.
+ minimap_icon Iconstate for the xeno on the minimap
+ minimap_leadered_overlay The iconstate for leadered xenos on the minimap, added as overlay
+ spit_delay Delay timer for spitting
+ spit_types list of datum projectile types the xeno can use.
+ spit_windup Windup for spits
+ tremor_cooldown Big strong ability, big cooldown.
+ xeno_explosion_resistance Armor but for explosions
+ Var Details acid_splash_cooldown
+
+
+
+
+
+ Time it takes between acid splash retaliate procs. Variable per caste, for if we want future castes that are acid bombs
adjust_size_x
+
+
+
+
+
+ Adjust pixel size. 0.x is smaller, 1.x is bigger, percentage based.
armor_deflection
+
+
+
+
+
+ Chance of deflecting projectiles.
aura_allowed
+
+
+
+
+
+ "Evolving" removed for the time being
aura_strength
+
+
+
+
+
+ The strength of our aura. Zero means we can't emit one
available_strains
+
+
+
+
+
+ A list of strain typepaths that are able to be chosen by this caste.
build_time_mult
+
+
+
+
+
+ Default build time and build distance
deevolves_to
+
+
+
+
+
+ what caste or castes to de-evolve to.
evolution_allowed
+
+
+
+
+
+ Are they allowed to evolve (and have their evolution progress group)
evolution_threshold
+
+
+
+
+
+ Threshold to next evolution
evolve_without_queen
+
+
+
+
+
+ whether they can get evo points without needing an ovi queen
evolves_to
+
+
+
+
+
+ This is where you add castes to evolve into. "Separated", "by", "commas"
fire_vulnerability_mult
+
+
+
+
+
+ if fire_immunity is set to be vulnerable, how much will fire damage be multiplied. Defines in xeno.dm
hugger_nurturing
+
+
+
+
+
+ if a hugger is held in hand, won't attempt to leap and kill itself
innate_healing
+
+
+
+
+
+ whether the xeno heals even outside weeds.
is_intelligent
+
+
+
+
+
+ If they can use consoles, etc. Set on Queen
melee_vehicle_damage
+
+
+
+
+
+ allows fine tuning melee damage to vehicles per caste.
minimap_icon
+
+
+
+
+
+ Iconstate for the xeno on the minimap
minimap_leadered_overlay
+
+
+
+
+
+ The iconstate for leadered xenos on the minimap, added as overlay
spit_delay
+
+
+
+
+
+ Delay timer for spitting
spit_types
+
+
+
+
+
+ list of datum projectile types the xeno can use.
spit_windup
+
+
+
+
+
+ Windup for spits
tremor_cooldown
+
+
+
+
+
+ Big strong ability, big cooldown.
xeno_explosion_resistance
+
+
+
+
+
+ Armor but for explosions
+
+
+
diff --git a/datum/character_trait.html b/datum/character_trait.html
new file mode 100644
index 000000000000..068e0cf9047b
--- /dev/null
+++ b/datum/character_trait.html
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+ /datum/character_trait - byond
+
+
+
+
+
+
+Character traits
+Similar to the traits from Project Zomboid
Vars
+ applyable Whether the trait can be applied to mobs
+Do not forget to override this var for any child types
+Only set this to TRUE for "abstract" parent types
+ cost The point cost for the preferences menu
+ refresh_choices Refreshes the character creation menu when picked
+ trait_group Trait groups determine whether this trait
+can be applied to a given mob Procs
+ apply_trait Put the actual changes made to the human mob in this proc
+ can_give_trait A wrapper to check if the trait can be applied first
+ give_trait Gives the target the trait
+ try_give_trait Performs the check for whether the trait is valid for target and then
+gives it to target
+ unapply_trait Revert character trait changes in this proc
+ Var Details applyable
+
+
+
+
+
+ Whether the trait can be applied to mobs
+Do not forget to override this var for any child types
+Only set this to TRUE for "abstract" parent types
cost
+
+
+
+
+
+ The point cost for the preferences menu
refresh_choices
+
+
+
+
+
+ Refreshes the character creation menu when picked
+ Trait groups determine whether this trait
+can be applied to a given mob
+This var should always be set to the
+trait group's typepath
Proc Details
+ Put the actual changes made to the human mob in this proc
can_give_trait
+
+ A wrapper to check if the trait can be applied first
give_trait
+
+ Gives the target the trait
try_give_trait
+
+ Performs the check for whether the trait is valid for target and then
+gives it to target
+ Revert character trait changes in this proc
+
+
+
diff --git a/datum/character_trait/biology/bad_leg.html b/datum/character_trait/biology/bad_leg.html
new file mode 100644
index 000000000000..18a70aba190c
--- /dev/null
+++ b/datum/character_trait/biology/bad_leg.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/character_trait/biology/bad_leg - byond
+
+
+
+
+
+
+Vars
+ bad_cane_roles Roles that get the shitty wooden pole.
+ fancy_cane_roles Roles that get the fancy cane.
+ inapplicable_roles Roles that will not allow the trait to be added. (Due to being designed for combat, heavy physical duty, or just being too junior to be worth keeping around as a cripple.)
+ inapplicable_species Species that will not allow the trait to be added.
+ Var Details bad_cane_roles
+
+
+
+
+
+ Roles that get the shitty wooden pole.
fancy_cane_roles
+
+
+
+
+
+ Roles that get the fancy cane.
inapplicable_roles
+
+
+
+
+
+ Roles that will not allow the trait to be added. (Due to being designed for combat, heavy physical duty, or just being too junior to be worth keeping around as a cripple.)
inapplicable_species
+
+
+
+
+
+ Species that will not allow the trait to be added.
+
+
+
diff --git a/datum/character_trait/biology/lisp.html b/datum/character_trait/biology/lisp.html
new file mode 100644
index 000000000000..4c749364070d
--- /dev/null
+++ b/datum/character_trait/biology/lisp.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/character_trait/biology/lisp - byond
+
+
+
+
+
+
+
+ Var Details inapplicable_roles
+
+
+
+
+
+ Roles that will not allow the trait to be added
inapplicable_species
+
+
+
+
+
+ Species that will not allow the trait to be added.
maximum_ranking
+
+
+
+
+
+ Maximum rank at which you can have this trait.
+
+
+
diff --git a/datum/character_trait_group.html b/datum/character_trait_group.html
new file mode 100644
index 000000000000..8061751f4279
--- /dev/null
+++ b/datum/character_trait_group.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+ /datum/character_trait_group - byond
+
+
+
+
+
+
+Character trait groups for constraints (if any)
Vars
+ base_type Override this variable if you want this
+trait group to be constraining
+Only need to override for the parent
+Example, parent type /datum/character_trait_group/language,
+set this var to /datum/character_trait_group/language
+ max The maximum amount of traits from
+this trait group that a mob can have
+ mutually_exclusive Whether a mob can only have one
+trait of this trait group
+ trait_group_name For player prefs menu
+ traits A list of this group's traits populated in /datum/character_trait/New()
+ Var Details base_type
+
+
+
+
+
+ Override this variable if you want this
+trait group to be constraining
+Only need to override for the parent
+Example, parent type /datum/character_trait_group/language,
+set this var to /datum/character_trait_group/language
max
+
+
+
+
+
+ The maximum amount of traits from
+this trait group that a mob can have
mutually_exclusive
+
+
+
+
+
+ Whether a mob can only have one
+trait of this trait group
trait_group_name
+
+
+
+
+
+ For player prefs menu
traits
+ – /list/datum/character_trait
+
+
+
+
+ A list of this group's traits populated in /datum/character_trait/New()
+
+
+
diff --git a/datum/chem_property.html b/datum/chem_property.html
new file mode 100644
index 000000000000..3a842db7c98f
--- /dev/null
+++ b/datum/chem_property.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/chem_property - byond
+
+
+
+
+
+
+Vars
+ cost_penalty a cost penalty is added at each level above 5 (+1 at 6, +2 at 7, +4 at 8, +5 at 9, +7 at 10)
+ volatile Should reagent with this property explode/start fire when mixed more than overdose threshold at once?
+ Var Details cost_penalty
+
+
+
+
+
+ a cost penalty is added at each level above 5 (+1 at 6, +2 at 7, +4 at 8, +5 at 9, +7 at 10)
volatile
+
+
+
+
+
+ Should reagent with this property explode/start fire when mixed more than overdose threshold at once?
+
+
+
diff --git a/datum/chemical_data.html b/datum/chemical_data.html
new file mode 100644
index 000000000000..7679d260162b
--- /dev/null
+++ b/datum/chemical_data.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/chemical_data - byond
+
+
+
+
+
+
+
+ Var Details credits_gained
+
+
+
+
+
+ credits gained from survivor clearance cards
+
+
+
diff --git a/datum/cm_objective.html b/datum/cm_objective.html
new file mode 100644
index 000000000000..cae1b869f134
--- /dev/null
+++ b/datum/cm_objective.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/cm_objective - byond
+
+
+
+
+
+
+Procs
+ award_points Add points to the techtree of whoever owns the objective.
Proc Details award_points(override_points)
+
+
+
+
+
+ Add points to the techtree of whoever owns the objective.
+
+
+
diff --git a/datum/cm_objective/recover_corpses.html b/datum/cm_objective/recover_corpses.html
new file mode 100644
index 000000000000..fa407c62a211
--- /dev/null
+++ b/datum/cm_objective/recover_corpses.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/cm_objective/recover_corpses - byond
+
+
+
+
+
+
+Vars
+ corpses List of list of active corpses per tech-faction ownership Procs
+ score_corpse Get score value for a given corpse
+ Var Details corpses
+
+
+
+
+
+ List of list of active corpses per tech-faction ownership
Proc Details score_corpse(/mob /target)
+
+
+
+
+
+ Get score value for a given corpse
+
+
+
diff --git a/datum/component.html b/datum/component.html
new file mode 100644
index 000000000000..2422a46907bf
--- /dev/null
+++ b/datum/component.html
@@ -0,0 +1,181 @@
+
+
+
+
+
+
+ /datum/component - byond
+
+
+
+
+
+
+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
+ CheckDupeComponent Called on a component when a component of the same type was added to the same parent with COMPONENT_DUPE_SELECTIVE
+ 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
+ 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 CheckDupeComponent
+
+ Called on a component when a component of the same type was added to the same parent with COMPONENT_DUPE_SELECTIVE
+See /datum/component/var/dupe_mode
+C
's type will always be the same of the called component
+return TRUE if you are absorbing the component, otherwise FALSE if you are fine having it exist as a duplicate component
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
+
+
+
diff --git a/datum/component/automatedfire.html b/datum/component/automatedfire.html
new file mode 100644
index 000000000000..8c691cbb88a3
--- /dev/null
+++ b/datum/component/automatedfire.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/component/automatedfire - byond
+
+
+
+
+
+
+Vars
+ next Contains the reference to the next component in the bucket, used by autofire subsystem
+ next_fire Contains the scheduled fire time, used for scheduling EOL
+ prev Contains the reference to the previous component in the bucket, used by autofire subsystem
+ shooter The owner of this component Procs
+ process_shot Handle the firing of the autofire component
+ schedule_shot schedule the shooter into the system, inserting it into the next fire queue
+ Var Details
+ Contains the reference to the next component in the bucket, used by autofire subsystem
next_fire
+
+
+
+
+
+ Contains the scheduled fire time, used for scheduling EOL
+ Contains the reference to the previous component in the bucket, used by autofire subsystem
shooter
+
+
+
+
+
+ The owner of this component
Proc Details process_shot()
+
+
+
+
+
+ Handle the firing of the autofire component
schedule_shot()
+
+
+
+
+
+ schedule the shooter into the system, inserting it into the next fire queue
+
+
+
diff --git a/datum/component/automatedfire/autofire.html b/datum/component/automatedfire/autofire.html
new file mode 100644
index 000000000000..b49ef8a42940
--- /dev/null
+++ b/datum/component/automatedfire/autofire.html
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+ /datum/component/automatedfire/autofire - byond
+
+
+
+
+
+
+
+ Var Details auto_fire_shot_delay
+
+
+
+
+
+ Delay between two shots when in full auto
automatic_delay_mult
+
+
+
+
+
+ The multiplier for how much slower the parent should fire in automatic mode. 1 is normal, 1.2 is 20% slower, 2 is 100% slower, etc.
burst_shots_to_fire
+
+
+
+
+
+ How many bullets are fired in burst mode
burstfire_shot_delay
+
+
+
+
+
+ Delay between two burst shots
bursting
+
+
+
+
+
+ If we are in a burst
callback_bursting
+
+
+
+
+
+ Callback to set bursting mode on the parent
callback_display_ammo
+
+
+
+
+
+ Callback to ask the parent to display ammo
callback_fire
+
+
+
+
+
+ Callback to ask the parent to fire
callback_reset_fire
+
+
+
+
+
+ Callback to ask the parent to reset its firing vars
callback_set_firing
+
+
+
+
+
+ Callback to set parent's fa_firing
fire_mode
+
+
+
+
+
+ The current fire mode of the shooter
have_to_reset_at_burst_end
+
+
+
+
+
+ If TRUE, the shooter will reset its references at the end of the burst
shooting
+
+
+
+
+
+ If the shooter is currently shooting
shots_fired
+
+
+
+
+
+ Count the shots fired when bursting
Proc Details hard_reset()
+
+
+
+
+
+ We are burst firing, we can't clean the state now. We will do it when the burst is over
+Hard reset the autofire, happens when the shooter fall/is thrown, at the end of a burst or when it runs out of ammunition
initiate_shot()
+
+
+
+
+
+ Insert the component in the bucket system if it was not in already
modify_burst_shots_to_fire(/datum /source, burst_shots_to_fire)
+
+
+
+
+
+ Setter for the number of shots in a burst
modify_burstfire_shot_delay(/datum /source, burstfire_shot_delay)
+
+
+
+
+
+ Setter for burst shot delay
modify_fire_mode(/datum /source, fire_mode)
+
+
+
+
+
+ Setter for fire mode
modify_fire_shot_delay(/datum /source, auto_fire_shot_delay)
+
+
+
+
+
+ Setter for auto fire shot delay
process_shot()
+
+
+
+
+
+ Ask the shooter to fire and schedule the next shot if need
stop_firing()
+
+
+
+
+
+ Remove the component from the bucket system if it was in
+
+
+
diff --git a/datum/component/bad_leg.html b/datum/component/bad_leg.html
new file mode 100644
index 000000000000..b8174f64e472
--- /dev/null
+++ b/datum/component/bad_leg.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/component/bad_leg - byond
+
+
+
+
+
+
+
+ Var Details affected_limb
+
+
+
+
+
+ Bound limb.
bound_action
+
+
+
+
+
+ The bound action to reduce steps tracker.
last_message_time
+
+
+
+
+
+ Holds the last time a message was sent to prevent spam.
+ Bound human.
steps_walking
+
+
+
+
+
+ Tracker for steps walked.
Proc Details rest_legs_pain
+
+ This prevents weird shit like corpses being dragged triggering the messages.
+
+
+
diff --git a/datum/component/bonus_damage_stack.html b/datum/component/bonus_damage_stack.html
new file mode 100644
index 000000000000..cec2f72cb3a2
--- /dev/null
+++ b/datum/component/bonus_damage_stack.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/component/bonus_damage_stack - byond
+
+
+
+
+
+
+
+ Var Details bonus_damage_cap
+
+
+
+
+
+ extra damage multiplier, divided by 1000
bonus_damage_cap_increase
+
+
+
+
+
+ extra cap limit added by more powerful bullets
bonus_damage_stacks
+
+
+
+
+
+ extra damage multiplier, divided by 1000
last_stack
+
+
+
+
+
+ Last world.time that the afflicted was hit by a holo-targeting round.
stack_loss_multiplier
+
+
+
+
+
+ multiplies the BONUS_DAMAGE_STACK_LOSS_PER_SECOND calculation, modifying how fast we lose holo stacks
+
+
+
diff --git a/datum/component/camera_manager.html b/datum/component/camera_manager.html
new file mode 100644
index 000000000000..84b275a26a7e
--- /dev/null
+++ b/datum/component/camera_manager.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/component/camera_manager - byond
+
+
+
+
+
+
+
+ Var Details last_camera_turf
+
+
+
+
+
+ The turf where the camera was last updated.
Proc Details show_camera_static()
+
+
+
+
+
+ Set the displayed camera to the static not-connected.
+
+
+
diff --git a/datum/component/cell.html b/datum/component/cell.html
new file mode 100644
index 000000000000..27450d9c484d
--- /dev/null
+++ b/datum/component/cell.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /datum/component/cell - byond
+
+
+
+
+
+
+Vars
+ cell_insert If the component requires a cell to be inserted to work instead of having an integrated one
+ charge Current charge of power cell
+ charge_drain If draining charge on process(), how much to drain per process call
+ charge_examine_range From how many tiles at the highest someone can examine the parent to see the charge
+ display_charge If the parent should show cell charge on examine
+ hit_charge If the component can be recharged by hitting its parent with a cell
+ initial_max_charge Initial max charge of the power cell
+ inserted_cell Ref to an inserted cell. Should only be null if cell_insert is false
+ max_charge Maximum charge of the power cell, set to -1 for infinite charge
+ max_recharge_tick The maximum amount that can be recharged per tick when using a cell to recharge this component
+ Var Details cell_insert
+
+
+
+
+
+ If the component requires a cell to be inserted to work instead of having an integrated one
charge
+
+
+
+
+
+ Current charge of power cell
charge_drain
+
+
+
+
+
+ If draining charge on process(), how much to drain per process call
charge_examine_range
+
+
+
+
+
+ From how many tiles at the highest someone can examine the parent to see the charge
display_charge
+
+
+
+
+
+ If the parent should show cell charge on examine
hit_charge
+
+
+
+
+
+ If the component can be recharged by hitting its parent with a cell
initial_max_charge
+
+
+
+
+
+ Initial max charge of the power cell
inserted_cell
+
+
+
+
+
+ Ref to an inserted cell. Should only be null if cell_insert is false
max_charge
+
+
+
+
+
+ Maximum charge of the power cell, set to -1 for infinite charge
max_recharge_tick
+
+
+
+
+
+ The maximum amount that can be recharged per tick when using a cell to recharge this component
+
+
+
diff --git a/datum/component/cluster_stack.html b/datum/component/cluster_stack.html
new file mode 100644
index 000000000000..0559f779a868
--- /dev/null
+++ b/datum/component/cluster_stack.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/component/cluster_stack - byond
+
+
+
+
+
+
+Vars
+ cluster_stacks Count of how many cluster rounds are in the current stack.
+ damage_counter Counter of how much damage each cluster round did, 30% of which will be given to the target of apply_cluster_stacks()
+ last_stack Last world.time that the afflicted was hit by a cluster round.
+ Var Details cluster_stacks
+
+
+
+
+
+ Count of how many cluster rounds are in the current stack.
damage_counter
+
+
+
+
+
+ Counter of how much damage each cluster round did, 30% of which will be given to the target of apply_cluster_stacks()
last_stack
+
+
+
+
+
+ Last world.time that the afflicted was hit by a cluster round.
+
+
+
diff --git a/datum/component/connect_mob_behalf.html b/datum/component/connect_mob_behalf.html
new file mode 100644
index 000000000000..6231d576893d
--- /dev/null
+++ b/datum/component/connect_mob_behalf.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ /datum/component/connect_mob_behalf - byond
+
+
+
+
+
+
+This component behaves similar to connect_loc_behalf, but working off clients and mobs instead of loc
+To be clear, we hook into a signal on a tracked client's mob
+We retain the ability to react to that signal on a separate listener, which makes this quite powerful
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/crate_tag.html b/datum/component/crate_tag.html
new file mode 100644
index 000000000000..81c5a0cbd042
--- /dev/null
+++ b/datum/component/crate_tag.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/component/crate_tag - byond
+
+
+
+
+
+
+Vars
+ name The crate tag used for notifications and as label Procs
+ notify_squad Handler to notify an overwatched squad that this crate has been dropped for them
+ Var Details name
+
+
+
+
+
+ The crate tag used for notifications and as label
Proc Details notify_squad
+
+ Handler to notify an overwatched squad that this crate has been dropped for them
+
+
+
diff --git a/datum/component/disk_reader.html b/datum/component/disk_reader.html
new file mode 100644
index 000000000000..1995ab61eaf7
--- /dev/null
+++ b/datum/component/disk_reader.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/component/disk_reader - byond
+
+
+
+
+
+
+Vars
+ disk Ref to the inserted disk
+ Var Details disk
+
+
+
+
+
+ Ref to the inserted disk
+
+
+
diff --git a/datum/component/footstep.html b/datum/component/footstep.html
new file mode 100644
index 000000000000..de1da0310cb1
--- /dev/null
+++ b/datum/component/footstep.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/component/footstep - byond
+
+
+
+
+
+
+Footstep component. Plays footsteps at parents location when it is appropriate.
Vars
+ falloff falloff of soundfile see playsound()
+ footstep_sounds This can be a list OR a soundfile OR null. Determines whatever sound gets played.
+ range range of soundfile see playsound()
+ steps how many steps before the footstep sound is played
+ volume volume of soundfile see playsound()
+ Var Details falloff
+
+
+
+
+
+ falloff of soundfile see playsound()
+ This can be a list OR a soundfile OR null. Determines whatever sound gets played.
range
+
+
+
+
+
+ range of soundfile see playsound()
steps
+
+
+
+
+
+ how many steps before the footstep sound is played
volume
+
+
+
+
+
+ volume of soundfile see playsound()
+
+
+
diff --git a/datum/component/label.html b/datum/component/label.html
new file mode 100644
index 000000000000..6b57261a95ae
--- /dev/null
+++ b/datum/component/label.html
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+ /datum/component/label - byond
+
+
+
+
+
+
+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/nmnode_cond.html b/datum/component/nmnode_cond.html
new file mode 100644
index 000000000000..afc5e7ef7dab
--- /dev/null
+++ b/datum/component/nmnode_cond.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/component/nmnode_cond - byond
+
+
+
+
+
+
+Applies to a /datum/nmnode to enforce scenario constraints
Vars
+ negate By default, the condition is required. If true, invert the check
+ pname Parameter from scenario storage to check for
+ pvalue Value to check the parameter against
+ Var Details negate
+
+
+
+
+
+ By default, the condition is required. If true, invert the check
pname
+
+
+
+
+
+ Parameter from scenario storage to check for
pvalue
+
+
+
+
+
+ Value to check the parameter against
+
+
+
diff --git a/datum/component/overlay_lighting.html b/datum/component/overlay_lighting.html
new file mode 100644
index 000000000000..b01ba771a9c1
--- /dev/null
+++ b/datum/component/overlay_lighting.html
@@ -0,0 +1,342 @@
+
+
+
+
+
+
+ /datum/component/overlay_lighting - byond
+
+
+
+
+
+
+Movable atom overlay-based lighting component.
+
+
+Component works by applying a visual object to the parent target.
+
+
+The component tracks the parent's loc to determine the current_holder.
+
+
+The current_holder is either the parent or its loc, whichever is on a turf. If none, then the current_holder is null and the light is not visible.
+
+
+Lighting works at its base by applying a dark overlay and "cutting" said darkness with light, adding (possibly colored) transparency.
+
+
+This component uses the visible_mask visual object to apply said light mask on the darkness.
+
+
+The main limitation of this system is that it uses a limited number of pre-baked geometrical shapes, but for most uses it does the job.
+
+
+Another limitation is for big lights: you only see the light if you see the object emiting it.
+
+
+For small objects this is good (you can't see them behind a wall), but for big ones this quickly becomes prety clumsy.
+
+ Vars
+ affected_turfs Lazy list to track the turfs being affected by our light, to determine their visibility.
+ cast_range Cast range for the directional cast (how far away the atom is moved)
+ cone A cone overlay for directional light, it's alpha and color are dependant on the light
+ current_direction Current tracked direction for the directional cast behaviour
+ current_holder Movable atom currently holding the light. Parent might be a flashlight, for example, but that might be held by a mob or something else.
+ directional Whether we're a directional light
+ directional_offset_x Tracks current directional x offset so we dont update unecessarily
+ directional_offset_y Tracks current directional y offset so we dont update unecessarily
+ light_overlays Cache of the possible light overlays, according to size.
+ lum_power How much this light affects the dynamic_lumcount of turfs.
+ lumcount_range Ceiling of range, integer without decimal entries.
+ overlay_lighting_flags For light sources that can be turned on and off.
+ parent_attached_to Movable atom the parent is attached to. For example, a flashlight into a helmet or gun. We'll need to track the thing the parent is attached to as if it were the parent itself.
+ range How far the light reaches, float.
+ set_alpha Transparency value.
+ visible_mask Overlay effect to cut into the darkness and provide light. Procs
+ add_dynamic_lumi Adds the luminosity and source for the affected movable atoms to keep track of their visibility.
+ cast_directional_light Here we append the behavior associated to changing lum_power.
+ check_holder Used to determine the new valid current_holder from the parent's loc.
+ clean_old_turfs Clears the affected_turfs lazylist, removing from its contents the effects of being near the light.
+ get_new_turfs Populates the affected_turfs lazylist, adding to its contents the effects of being near the light.
+ make_luminosity_update Clears the old affected turfs and populates the new ones.
+ on_holder_dir_change Called when current_holder changes loc.
+ on_holder_moved Called when current_holder changes loc.
+ on_holder_qdel Called when the current_holder is qdeleted, to remove the light effect.
+ on_light_flags_change Triggered right after the parent light flags change.
+ on_parent_attached_to_moved Called when parent_attached_to changes loc.
+ on_parent_attached_to_qdel Called when the current_holder is qdeleted, to remove the light effect.
+ on_parent_dir_change Called when parent changes loc.
+ on_parent_moved Called when parent changes loc.
+ on_toggle Toggles the light on and off.
+ remove_dynamic_lumi Removes the luminosity and source for the affected movable atoms to keep track of their visibility.
+ set_color Changes the light's color, pretty straightforward.
+ set_direction Sets a new direction for the directional cast, then updates luminosity
+ set_holder Called to change the value of current_holder.
+ set_lum_power Here we append the behavior associated to changing lum_power.
+ set_parent_attached_to Called to change the value of parent_attached_to.
+ set_power Changes the intensity/brightness of the light by altering the visual object's alpha.
+ set_range Changes the range which the light reaches. 0 means no light, 7 is the maximum value.
+ turn_off Toggles the light off.
+ turn_on Toggles the light on.
+ Var Details affected_turfs
+
+
+
+
+
+ Lazy list to track the turfs being affected by our light, to determine their visibility.
cast_range
+
+
+
+
+
+ Cast range for the directional cast (how far away the atom is moved)
cone
+
+
+
+
+
+ A cone overlay for directional light, it's alpha and color are dependant on the light
current_direction
+
+
+
+
+
+ Current tracked direction for the directional cast behaviour
current_holder
+
+
+
+
+
+ Movable atom currently holding the light. Parent might be a flashlight, for example, but that might be held by a mob or something else.
directional
+
+
+
+
+
+ Whether we're a directional light
directional_offset_x
+
+
+
+
+
+ Tracks current directional x offset so we dont update unecessarily
directional_offset_y
+
+
+
+
+
+ Tracks current directional y offset so we dont update unecessarily
light_overlays
+
+
+
+
+
+ Cache of the possible light overlays, according to size.
lum_power
+
+
+
+
+
+ How much this light affects the dynamic_lumcount of turfs.
lumcount_range
+
+
+
+
+
+ Ceiling of range, integer without decimal entries.
overlay_lighting_flags
+
+
+
+
+
+ For light sources that can be turned on and off.
parent_attached_to
+
+
+
+
+
+ Movable atom the parent is attached to. For example, a flashlight into a helmet or gun. We'll need to track the thing the parent is attached to as if it were the parent itself.
range
+
+
+
+
+
+ How far the light reaches, float.
set_alpha
+
+
+
+
+
+ Transparency value.
visible_mask
+
+
+
+
+
+ Overlay effect to cut into the darkness and provide light.
Proc Details add_dynamic_lumi()
+
+
+
+
+
+ Adds the luminosity and source for the affected movable atoms to keep track of their visibility.
cast_directional_light()
+
+
+
+
+
+ Here we append the behavior associated to changing lum_power.
check_holder()
+
+
+
+
+
+ Used to determine the new valid current_holder from the parent's loc.
clean_old_turfs()
+
+
+
+
+
+ Clears the affected_turfs lazylist, removing from its contents the effects of being near the light.
get_new_turfs()
+
+
+
+
+
+ Populates the affected_turfs lazylist, adding to its contents the effects of being near the light.
make_luminosity_update()
+
+
+
+
+
+ Clears the old affected turfs and populates the new ones.
on_holder_dir_change
+
+ Called when current_holder changes loc.
on_holder_moved
+
+ Called when current_holder changes loc.
on_holder_qdel
+
+ Called when the current_holder is qdeleted, to remove the light effect.
on_light_flags_change(/atom /source, new_flags)
+
+
+
+
+
+ Triggered right after the parent light flags change.
on_parent_attached_to_moved
+
+ Called when parent_attached_to changes loc.
on_parent_attached_to_qdel
+
+ Called when the current_holder is qdeleted, to remove the light effect.
on_parent_dir_change
+
+ Called when parent changes loc.
on_parent_moved
+
+ Called when parent changes loc.
on_toggle(/atom /source, new_value)
+
+
+
+
+
+ Toggles the light on and off.
remove_dynamic_lumi()
+
+
+
+
+
+ Removes the luminosity and source for the affected movable atoms to keep track of their visibility.
set_color(/atom /source, new_color)
+
+
+
+
+
+ Changes the light's color, pretty straightforward.
set_direction(newdir)
+
+
+
+
+
+ Sets a new direction for the directional cast, then updates luminosity
set_holder
+
+ Called to change the value of current_holder.
set_lum_power(new_lum_power)
+
+
+
+
+
+ Here we append the behavior associated to changing lum_power.
set_parent_attached_to
+
+ Called to change the value of parent_attached_to.
set_power(/atom /source, new_power)
+
+
+
+
+
+ Changes the intensity/brightness of the light by altering the visual object's alpha.
set_range(/atom /source, new_range)
+
+
+
+
+
+ Changes the range which the light reaches. 0 means no light, 7 is the maximum value.
turn_off()
+
+
+
+
+
+ Toggles the light off.
turn_on()
+
+
+
+
+
+ Toggles the light on.
+
+
+
diff --git a/datum/component/rename.html b/datum/component/rename.html
new file mode 100644
index 000000000000..a04ea1c9ef77
--- /dev/null
+++ b/datum/component/rename.html
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+ /datum/component/rename - byond
+
+
+
+
+
+
+The rename component.
+This component is used to manage names and descriptions changed with the pen.
+Atoms can only have one instance of this component at a time.
+When a player renames or changes the description of an atom with a pen, this component gets applied to it.
+If a player resets the name and description, they will be reverted to their state before being changed and the component will be removed.
Vars
+ custom_desc The desc the player is applying to the parent.
+ custom_name The name the player is applying to the parent.
+ original_desc The desc before the player changed it.
+ original_name The name before the player changed it. Procs
+ InheritComponent This proc will fire after the parent's name or desc is changed with a pen, which is trying to apply another rename component.
+Since the parent already has a rename component, it will remove the old one and apply the new one.
+The name and description changes will be merged or overwritten.
+ apply_rename Saves the current name and description before changing them to the player's inputs.
+ revert_rename Reverts the name and description to the state before they were changed.
+ Var Details custom_desc
+
+
+
+
+
+ The desc the player is applying to the parent.
custom_name
+
+
+
+
+
+ The name the player is applying to the parent.
original_desc
+
+
+
+
+
+ The desc before the player changed it.
original_name
+
+
+
+
+
+ The name before the player changed it.
Proc Details InheritComponent
+
+ This proc will fire after the parent's name or desc is changed with a pen, which is trying to apply another rename component.
+Since the parent already has a rename component, it will remove the old one and apply the new one.
+The name and description changes will be merged or overwritten.
apply_rename()
+
+
+
+
+
+ Saves the current name and description before changing them to the player's inputs.
revert_rename()
+
+
+
+
+
+ Reverts the name and description to the state before they were changed.
+
+
+
diff --git a/datum/component/temporary_mute.html b/datum/component/temporary_mute.html
new file mode 100644
index 000000000000..b8e688506e8c
--- /dev/null
+++ b/datum/component/temporary_mute.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/component/temporary_mute - byond
+
+
+
+
+
+
+Vars
+ on_emote_message A message to tell the user when they attempt to emote, if any
+ on_speak_message A message to tell the user when they attempt to speak, if any
+ on_unmute_message A message to tell the user when they become no longer mute, if any
+ time_until_unmute How long after the component's initialization it should be deleted. -1 means it will never delete
+ Var Details on_emote_message
+
+
+
+
+
+ A message to tell the user when they attempt to emote, if any
on_speak_message
+
+
+
+
+
+ A message to tell the user when they attempt to speak, if any
on_unmute_message
+
+
+
+
+
+ A message to tell the user when they become no longer mute, if any
time_until_unmute
+
+
+
+
+
+ How long after the component's initialization it should be deleted. -1 means it will never delete
+
+
+
diff --git a/datum/component/tutorial_status.html b/datum/component/tutorial_status.html
new file mode 100644
index 000000000000..a56cea5aa90a
--- /dev/null
+++ b/datum/component/tutorial_status.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/component/tutorial_status - byond
+
+
+
+
+
+
+Vars
+ tutorial_status What the mob's current tutorial status is, displayed in the status panel
+ Var Details tutorial_status
+
+
+
+
+
+ What the mob's current tutorial status is, displayed in the status panel
+
+
+
diff --git a/datum/component/weed_food.html b/datum/component/weed_food.html
new file mode 100644
index 000000000000..fb600ed5b99f
--- /dev/null
+++ b/datum/component/weed_food.html
@@ -0,0 +1,193 @@
+
+
+
+
+
+
+ /datum/component/weed_food - byond
+
+
+
+
+
+
+A component that can be attached to a mob/living to be merged with weeds after a delay.
+Attempting to attach a new weed_food even if one already exists is equivalent to calling start().
+Attach this to any mob/living that is dead (death or initialized dead) and it should handle the rest.
Vars
+ absorbing_weeds The weeds that we are merging/merged with
+ active Whether we are waiting on timer to merge
+ merged Whether we are merged with weeds
+ parent_buckle The obj that our parent is buckled to and we have registered a signal
+ parent_mob The living mob that we are bound to
+ parent_nest A nest our parent is buckled to and we have registered a signal
+ parent_turf The turf that our parent is on
+ timer_id Any active timer for a pending merge
+ unmerged_time The time we were unmerged (just to handle weeds upgrading)
+ weed_appearance The overlay image when merged Procs
+ merge_with_weeds Finish becomming one with the weeds
+Returns TRUE if merged successfully
+ on_after_buckle SIGNAL_HANDLER for COMSIG_OBJ_AFTER_BUCKLE
+ on_forsaken SIGNAL_HANDLER for COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING
+ on_move SIGNAL_HANDLER for COMSIG_MOVABLE_TURF_ENTERED
+ on_nest_deletion SIGNAL_HANDLER for COMSIG_PARENT_QDELETING of nest
+ on_preignition SIGNAL_HANDLER for COMSIG_LIVING_PREIGNITION of weeds
+ on_rejuv SIGNAL_HANDLER for COMSIG_LIVING_REJUVENATED and COMSIG_HUMAN_REVIVED
+ on_update SIGNAL_HANDLER for COMSIG_HUMAN_SET_UNDEFIBBABLE & COMSIG_WEEDNODE_GROWTH
+ on_weed_deletion SIGNAL_HANDLER for COMSIG_PARENT_QDELETING of weeds
+ start Try to start the process to turn into weeds
+Returns TRUE if started successfully
+ stop Try to stop the process turning into weeds
+Returns TRUE if stopped successfully (was active when called)
+ unmerge_with_weeds Undo the weedening
+Returns TRUE if unmerged successfully (always)
+ Var Details absorbing_weeds
+ – /obj /effect/alien/weeds
+
+
+
+
+ The weeds that we are merging/merged with
active
+
+
+
+
+
+ Whether we are waiting on timer to merge
merged
+
+
+
+
+
+ Whether we are merged with weeds
parent_buckle
+
+
+
+
+
+ The obj that our parent is buckled to and we have registered a signal
parent_mob
+
+
+
+
+
+ The living mob that we are bound to
+ A nest our parent is buckled to and we have registered a signal
parent_turf
+
+
+
+
+
+ The turf that our parent is on
timer_id
+
+
+
+
+
+ Any active timer for a pending merge
unmerged_time
+
+
+
+
+
+ The time we were unmerged (just to handle weeds upgrading)
+ The overlay image when merged
Proc Details merge_with_weeds()
+
+
+
+
+
+ Finish becomming one with the weeds
+Returns TRUE if merged successfully
on_after_buckle(/obj /source, /mob /buckled)
+
+
+
+
+
+ SIGNAL_HANDLER for COMSIG_OBJ_AFTER_BUCKLE
on_forsaken()
+
+
+
+
+
+ SIGNAL_HANDLER for COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING
on_move()
+
+
+
+
+
+ SIGNAL_HANDLER for COMSIG_MOVABLE_TURF_ENTERED
on_nest_deletion()
+
+
+
+
+
+ SIGNAL_HANDLER for COMSIG_PARENT_QDELETING of nest
on_preignition()
+
+
+
+
+
+ SIGNAL_HANDLER for COMSIG_LIVING_PREIGNITION of weeds
on_rejuv()
+
+
+
+
+
+ SIGNAL_HANDLER for COMSIG_LIVING_REJUVENATED and COMSIG_HUMAN_REVIVED
on_update()
+
+
+
+
+
+ SIGNAL_HANDLER for COMSIG_HUMAN_SET_UNDEFIBBABLE & COMSIG_WEEDNODE_GROWTH
on_weed_deletion()
+
+
+
+
+
+ SIGNAL_HANDLER for COMSIG_PARENT_QDELETING of weeds
start()
+
+
+
+
+
+ Try to start the process to turn into weeds
+Returns TRUE if started successfully
stop()
+
+
+
+
+
+ Try to stop the process turning into weeds
+Returns TRUE if stopped successfully (was active when called)
unmerge_with_weeds()
+
+
+
+
+
+ Undo the weedening
+Returns TRUE if unmerged successfully (always)
+
+
+
diff --git a/datum/computer/file/embedded_program/docking/simple.html b/datum/computer/file/embedded_program/docking/simple.html
new file mode 100644
index 000000000000..b04a11e81401
--- /dev/null
+++ b/datum/computer/file/embedded_program/docking/simple.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/computer/file/embedded_program/docking/simple - byond
+
+
+
+
+
+
+Procs
+ open_door datum/computer/file/embedded_program/docking/simple/proc/signal_mech_sensor(command)
Proc Details open_door()
+
+
+
+
+
+ datum/computer/file/embedded_program/docking/simple/proc/signal_mech_sensor(command)
+
+
+
diff --git a/datum/construction_template.html b/datum/construction_template.html
new file mode 100644
index 000000000000..6c00f5f0574e
--- /dev/null
+++ b/datum/construction_template.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/construction_template - byond
+
+
+
+
+
+
+Procs
+ on_template_creation runs in /obj/effect/alien/resin/construction/proc/set_template() for logic needed to occur then
Proc Details on_template_creation()
+
+
+
+
+
+ runs in /obj/effect/alien/resin/construction/proc/set_template() for logic needed to occur then
+
+
+
diff --git a/datum/construction_template/xenomorph.html b/datum/construction_template/xenomorph.html
new file mode 100644
index 000000000000..33fbdcd00c1e
--- /dev/null
+++ b/datum/construction_template/xenomorph.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/construction_template/xenomorph - byond
+
+
+
+
+
+
+Vars
+ block_range The range around this structure which needs to be clear for it to be constructed.
+ hive_ref The hive that this structure belongs to.
+ Var Details block_range
+
+
+
+
+
+ The range around this structure which needs to be clear for it to be constructed.
+ The hive that this structure belongs to.
+
+
+
diff --git a/datum/construction_template/xenomorph/nest.html b/datum/construction_template/xenomorph/nest.html
new file mode 100644
index 000000000000..da4c0aacb631
--- /dev/null
+++ b/datum/construction_template/xenomorph/nest.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/construction_template/xenomorph/nest - byond
+
+
+
+
+
+
+
+ Var Details direction_to_put_nest
+
+
+
+
+
+ This will be used to orient the nest that will be built
+
+
+
diff --git a/datum/controller/global_vars.html b/datum/controller/global_vars.html
new file mode 100644
index 000000000000..5593454caa88
--- /dev/null
+++ b/datum/controller/global_vars.html
@@ -0,0 +1,489 @@
+
+
+
+
+
+
+ /datum/controller/global_vars - byond
+
+
+
+
+
+
+
+ Var Details AdminProcCallHandler
+
+
+
+
+
+ Use this for indirect proccalls which require a user
admin_state
+
+
+
+
+
+ tgui state: admin_state
+Checks that the user is an admin, end-of-story.
always_state
+
+
+
+
+
+ tgui state: always_state
+Always grants the user UI_INTERACTIVE. Period.
areas_by_type
+
+
+
+
+
+ An association from typepath to area instance. Only includes areas with unique
set.
base_miss_chance
+
+
+
+
+
+ The base miss chance for the different defence zones
blurb_witnesses
+
+
+
+
+
+ List of ckeys that have seen a blurb of a given key.
cached_maps
+
+
+
+
+
+ List of all the maps that have been cached for /proc/load_map
character_trait_groups
+ – /static/list/datum/character_trait_group
+
+
+
+
+
+
+Global lists
+
+
+character_trait_groups should be defined BEFORE character_traits because of dependencies
+
+
+When trying to reference specific traits or trait groups, reference these lists, which
+
+
+store character traits and character trait groups by their type paths
+
+
+Example:
+
+
+GLOB.character_traits/datum/character_trait/language/spanish will get the
+
+
+"Speaks Spanish" character trait, which you can use to give or remove traits
+
+ cm_vending_clothing_doctor
+
+
+
+
+
+ defined in senior_officers.dm
conscious_state
+
+
+
+
+
+ tgui state: conscious_state
+Only checks if the user is conscious.
contained_state
+
+
+
+
+
+ tgui state: contained_state
+Checks that the user is inside the src_object.
deep_inventory_state
+
+
+
+
+
+ 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.
deployed_fultons
+
+
+
+
+
+ A list of fultons currently airborne.
em_block_color
+
+
+
+
+
+ A globaly cached version of EM_BLOCK_COLOR for quick access.
em_mask_matrix
+
+
+
+
+
+ A globaly cached version of EM_MASK_MATRIX for quick access.
emissive_color
+
+
+
+
+
+ A globaly cached version of EMISSIVE_COLOR for quick access.
fallen_list_cross
+
+
+
+
+
+ This is for dogtags placed on crosses- they will show up at the end-round memorial.
focused_test
+
+
+
+
+
+ The name of the test that is currently focused.
+Use the PERFORM_ALL_TESTS macro instead.
gamemode_roles
+
+
+
+
+
+ List of roles that can be setup for each gamemode
hands_state
+
+
+
+
+
+ tgui state: hands_state
+Checks that the src_object is in the user's hands.
hive_state
+
+
+
+
+
+ tgui state: hive_state
+Checks that the user is part of a hive.
hive_state_queen
+
+
+
+
+
+ tgui state: hive_state_queen
+Checks that the user is part of a hive and is the leading queen of that hive.
hj_categories
+
+
+
+
+
+ list of categories for hazard joes
hj_emotes
+
+
+
+
+
+ dict ("category" : (emotes)) of every hj emote typepath
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.
medals_view_tgui
+ – /static/datum /medals_view_tgui
+
+
+
+
+ Can remove notes from anyone other than yourself, unless you're the host. So long as you have deletion access anyway.
never_state
+
+
+
+
+
+ tgui state: never_state
+Always closes the UI, no matter what. See the ui_state in religious_tool.dm to see an example
new_player_state
+
+
+
+
+
+ tgui state: new_player_state
+Checks that the user is a new_player, or if user is an admin
not_incapacitated_and_adjacent_state
+
+
+
+
+
+ tgui state: not_incapacitated_and_adjacent state
+Checks that the user isn't incapacitated and that they are adjacent
+Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
not_incapacitated_and_adjacent_strict_state
+ – /static/datum /ui_state /not_incapacitated_and_adjacent_strict_state
+
+
+
+
+ tgui state: not_incapacitated_and_adjacent_strict state
+Checks that the user isn't incapacitated and that they are adjacent and always does ui_close
+Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
not_incapacitated_and_adjacent_turf_state
+
+
+
+
+
+ tgui state: not_incapacitated_turf_state
+Checks that the user isn't incapacitated and that their loc is a turf
not_incapacitated_and_adjacent_turf_strict_state
+ – /static/datum /ui_state /not_incapacitated_and_adjacent_strict_state
+
+
+
+
+ tgui state: not_incapacitated_turf_state
+Checks that the user isn't incapacitated and that their loc is a turf
not_incapacitated_and_inventory_state
+
+
+
+
+
+ tgui state: not_incapacitated_and_inventory_state
+Checks that the user isn't incapacitated and the obj is in their inventory
not_incapacitated_and_inventory_turf_state
+
+
+
+
+
+ tgui state: not_incapacitated_and_inventory_turf_state
+Checks that the user isn't incapacitated and that their loc is a turf and the obj is in their inventory
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.
note_categories
+
+
+
+
+
+ Note categories in text form, in order of their numerical #defines.
obfs_x
+
+
+
+
+
+ A number between -500 and 500.
obfs_y
+
+
+
+
+
+ A number between -500 and 500.
observer_state
+
+
+
+
+
+ tgui state: observer_state
+Checks that the user is an observer/ghost.
ooc_color_override
+
+
+
+
+
+ In-round override to default OOC color
perf_flags
+
+
+
+
+
+ Global performance feature toggle flags
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.
reverse_contained_state
+
+
+
+
+
+ tgui state: reverse_contained_state
+Checks if src_object is inside of user.
self_state
+
+
+
+
+
+ tgui state: self_state
+Only checks that the user and src_object are the same.
time_offset
+
+
+
+
+
+ Offset for the Operation time
trait_name_map
+
+
+
+
+
+ value -> trait name, generated on use from trait_by_type global
unit_test_mapping_logs
+
+
+
+
+
+ When unit testing, all logs sent to log_mapping are stored here and retrieved in log_mapping unit test.
wj_categories
+
+
+
+
+
+ list of categories for working joes
wj_emotes
+
+
+
+
+
+ dict ("category" : (emotes)) of every wj emote typepath
xeno_datum_list
+ – /static/list/datum/caste_datum
+
+
+
+
+ Xeno caste datums
xeno_queue_candidate_count
+
+
+
+
+
+ The last count of possible candidates in the xeno larva queue (updated via get_alien_candidates)
z_state
+
+
+
+
+
+ tgui state: z_state
+Only checks that the Z-level of the user and src_object are the same.
+
+
+
diff --git a/datum/controller/master.html b/datum/controller/master.html
new file mode 100644
index 000000000000..ef0710d07c2e
--- /dev/null
+++ b/datum/controller/master.html
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+ /datum/controller/master - byond
+
+
+
+
+
+
+Start of queue linked list
+End of queue linked list (used for appending to the list)
+Are we loading in a new map?
+for scheduling different subsystems for different stages of the round
Vars
+ current_initializing_subsystem During initialization, will be the instanced subsytem that is currently initializing.
+Outside of initialization, returns null.
+ 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
+ init_stage_completed Most recent init stage to complete init.
+ iteration How many times have we ran
+ 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 makes the mc main loop runtime
+ processing Are we processing (higher values increase the processing delay by n ticks)
+ 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)
+ stack_end_detector Stack end detector to detect stack overflows that kill the mc's main loop
+ subsystems List of subsystems to process(). 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
+ init_subsystem Initialize a given subsystem and handle the results.
+ laggy_byond_map_update_incoming Warns us that the end of tick byond map_update will be laggier then normal, so that we can just skip running subsystems this tick.
+ Var Details current_initializing_subsystem
+
+
+
+
+
+ During initialization, will be the instanced subsytem that is currently initializing.
+Outside of initialization, returns null.
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
init_stage_completed
+
+
+
+
+
+ Most recent init stage to complete init.
iteration
+
+
+
+
+
+ How many times have we ran
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
+
+
+
+
+
+ makes the mc main loop runtime
processing
+
+
+
+
+
+ Are we processing (higher values increase the processing delay by n ticks)
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)
+ Stack end detector to detect stack overflows that kill the mc's main loop
subsystems
+
+
+
+
+
+ List of subsystems to process().
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
+ Initialize a given subsystem and handle the results.
+Arguments:
+
+subsystem - the subsystem to initialize.
+ laggy_byond_map_update_incoming()
+
+
+
+
+
+ Warns us that the end of tick byond map_update will be laggier then normal, so that we can just skip running subsystems this tick.
+
+
+
diff --git a/datum/controller/subsystem.html b/datum/controller/subsystem.html
new file mode 100644
index 000000000000..bb68301f12a3
--- /dev/null
+++ b/datum/controller/subsystem.html
@@ -0,0 +1,296 @@
+
+
+
+
+
+
+ /datum/controller/subsystem - byond
+
+
+
+
+
+
+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)
+ failure_strikes How many times we suspect a subsystem type has crashed the MC, 3 strikes and you're out!
+ flags Subsystem Flags 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.
+ init_stage Which stage does this subsystem init at. Earlier stages can fire while later stages init.
+ 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()
+ 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.
+ slept_count Tracks how many times a subsystem has ever slept in fire().
+ 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
+ Initialize Used to initialize the subsystem. This is expected to be overridden by subtypes.
+ OnConfigLoad Called after the config has been loaded or reloaded.
+ 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.
+ 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)
failure_strikes
+
+
+
+
+
+ How many times we suspect a subsystem type has crashed the MC, 3 strikes and you're out!
flags
+
+
+
+
+
+ Subsystem Flags 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.
init_stage
+
+
+
+
+
+ Which stage does this subsystem init at. Earlier stages can fire while later stages init.
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()
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.
slept_count
+
+
+
+
+
+ Tracks how many times a subsystem has ever slept in fire().
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 Initialize()
+
+
+
+
+
+ Used to initialize the subsystem. This is expected to be overridden by subtypes.
OnConfigLoad()
+
+
+
+
+
+ Called after the config has been loaded or reloaded.
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.
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/atoms.html b/datum/controller/subsystem/atoms.html
new file mode 100644
index 000000000000..00c7ab1f5abe
--- /dev/null
+++ b/datum/controller/subsystem/atoms.html
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/atoms - byond
+
+
+
+
+
+
+Vars
+ created_atoms initAtom() adds the atom its creating to this list iff InitializeAtoms() has been given a list to populate as an argument
+ initialized_changed A count of how many initalize changes we've made. We want to prevent old_initialize being overridden by some other value, breaking init code Procs
+ CreateAtoms Actually creates the list of atoms. Exists soley so a runtime in the creation logic doesn't cause initalized to totally break
+ InitAtom Init this specific atom
+ InitializeLateLoaders Processes all late_loaders, checking the length each iteration and prevents duplicate calls
+This is necessary because of an edge case where there might be simultanious calls to InitializeAtoms
+ fix_atoms_locs Force reset atoms loc, as map expansion can botch turf contents for multitiles
+This is obviously a bandaid fix, see CM MR !2797, /tg/ PR #65638,
+and the BYOND Bug Report: http://www.byond.com/forum/post/2777527
+ initializing_something Returns TRUE if anything is currently being initialized
+ set_tracked_initalized Use this to set initialized to prevent error states where old_initialized is overridden. It keeps happening and it's cheesing me off
+ Var Details created_atoms
+
+
+
+
+
+ initAtom() adds the atom its creating to this list iff InitializeAtoms() has been given a list to populate as an argument
initialized_changed
+
+
+
+
+
+ A count of how many initalize changes we've made. We want to prevent old_initialize being overridden by some other value, breaking init code
Proc Details CreateAtoms(/list/atoms, /list/atoms_to_return)
+
+
+
+
+
+ Actually creates the list of atoms. Exists soley so a runtime in the creation logic doesn't cause initalized to totally break
InitAtom(/atom /A, from_template, /list/arguments)
+
+
+
+
+
+ Init this specific atom
InitializeLateLoaders()
+
+
+
+
+
+ Processes all late_loaders, checking the length each iteration and prevents duplicate calls
+This is necessary because of an edge case where there might be simultanious calls to InitializeAtoms
fix_atoms_locs(/list/atoms)
+
+
+
+
+
+ Force reset atoms loc, as map expansion can botch turf contents for multitiles
+This is obviously a bandaid fix, see CM MR !2797, /tg/ PR #65638,
+and the BYOND Bug Report: http://www.byond.com/forum/post/2777527
initializing_something()
+
+
+
+
+
+ Returns TRUE if anything is currently being initialized
set_tracked_initalized(value)
+
+
+
+
+
+ Use this to set initialized to prevent error states where old_initialized is overridden. It keeps happening and it's cheesing me off
+
+
+
diff --git a/datum/controller/subsystem/automatedfire.html b/datum/controller/subsystem/automatedfire.html
new file mode 100644
index 000000000000..c3c238c316de
--- /dev/null
+++ b/datum/controller/subsystem/automatedfire.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/automatedfire - byond
+
+
+
+
+
+
+Vars
+ bucket_list List of buckets, each bucket holds every shooter that has to shoot this byond tick
+ bucket_resolution How many buckets for every frame of world.fps
+ head_offset world.time of the first entry in the bucket list, effectively the 'start time' of the current buckets
+ next_shooter Reference to the next shooter before we clean shooter.next
+ practical_offset Index of the first non-empty bucket
+ shooter_count How many shooter are in the buckets Procs
+ reset_buckets In the event of a change of world.tick_lag, we refresh the size of the bucket and the bucket resolution
+ Var Details bucket_list
+
+
+
+
+
+ List of buckets, each bucket holds every shooter that has to shoot this byond tick
bucket_resolution
+
+
+
+
+
+ How many buckets for every frame of world.fps
head_offset
+
+
+
+
+
+ world.time of the first entry in the bucket list, effectively the 'start time' of the current buckets
+ Reference to the next shooter before we clean shooter.next
practical_offset
+
+
+
+
+
+ Index of the first non-empty bucket
shooter_count
+
+
+
+
+
+ How many shooter are in the buckets
Proc Details reset_buckets()
+
+
+
+
+
+ In the event of a change of world.tick_lag, we refresh the size of the bucket and the bucket resolution
+
+
+
diff --git a/datum/controller/subsystem/database_query_manager.html b/datum/controller/subsystem/database_query_manager.html
new file mode 100644
index 000000000000..b3ef6add54d0
--- /dev/null
+++ b/datum/controller/subsystem/database_query_manager.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/database_query_manager - byond
+
+
+
+
+
+
+
+ Var Details max_concurrent_queries
+
+
+
+
+
+ Maximum amount of queries that can be ran concurrently
queries_active
+ – /list/datum/db/query_response
+
+
+
+
+ Queries currently being handled by database driver
queries_current
+ – /list/datum/db/query_response
+
+
+
+
+ Queries left to handle during controller firing
queries_new
+ – /list/datum/db/query_response
+
+
+
+
+ Queries pending execution that will be handled this controller firing
queries_standby
+ – /list/datum/db/query_response
+
+
+
+
+ Queries pending execution, mapped to complete arguments
Proc Details create_queued_query(/datum /db/query_response/Q, qtargs)
+
+
+
+
+
+ Helper proc for handling queued new queries
process_query(/datum /db/query_response/Q)
+
+
+
+
+
+ Helper proc for query processing used in fire() - returns TRUE if not done yet
+
+
+
diff --git a/datum/controller/subsystem/events.html b/datum/controller/subsystem/events.html
new file mode 100644
index 000000000000..9e3f526c3ab2
--- /dev/null
+++ b/datum/controller/subsystem/events.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/events - byond
+
+
+
+
+
+
+Vars
+ control list of all datum/round_event_control. Used for selecting events based on weight and occurrences.
+ frequency_lower Lower bound for how frequently events will occur
+ frequency_upper the latest an event can happen after a previous event
+ running list of all existing /datum/round_event
+ scheduled The next world.time that a naturally occurring random event can be selected. Procs
+ check_event checks if we should select a random event yet, and reschedules if necessary
+ reschedule decides which world.time we should select another random event at.
+ spawn_event selects a random event based on whether it can occur and it's 'weight'(probability)
+ Var Details control
+
+
+
+
+
+ list of all datum/round_event_control. Used for selecting events based on weight and occurrences.
frequency_lower
+
+
+
+
+
+ Lower bound for how frequently events will occur
frequency_upper
+
+
+
+
+
+ the latest an event can happen after a previous event
running
+
+
+
+
+
+ list of all existing /datum/round_event
scheduled
+
+
+
+
+
+ The next world.time that a naturally occurring random event can be selected.
Proc Details check_event()
+
+
+
+
+
+ checks if we should select a random event yet, and reschedules if necessary
reschedule()
+
+
+
+
+
+ decides which world.time we should select another random event at.
spawn_event()
+
+
+
+
+
+ selects a random event based on whether it can occur and it's 'weight'(probability)
+
+
+
diff --git a/datum/controller/subsystem/hijack.html b/datum/controller/subsystem/hijack.html
new file mode 100644
index 000000000000..04dc5b4b6067
--- /dev/null
+++ b/datum/controller/subsystem/hijack.html
@@ -0,0 +1,274 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/hijack - byond
+
+
+
+
+
+
+
+ Var Details admin_sd_blocked
+
+
+
+
+
+ Admin var to manually prevent self destruct from occurring
announce_checkpoint
+
+
+
+
+
+ Holds the next % point progress should be announced, increments on itself
ares_sd_announced
+
+
+
+
+
+ If ARES has announced the 50% point yet for SD
current_progress
+
+
+
+
+
+ Current progress towards evacuating safely via lifeboats
current_run
+
+
+
+
+
+ The areas that need cycled through currently
current_run_progress_additive
+
+
+
+
+
+ The progress of the current run that needs to be added at the end of the current run
current_run_progress_multiplicative
+
+
+
+
+
+ Holds what the current_run_progress_additive should be multiplied by at the end of the current run
early_launch_required_progress
+
+
+
+
+
+ How much progress is required to early launch
engine_room_heated
+
+
+
+
+
+ If the engine room has been heated, occurs at 33% SD completion
engine_room_superheated
+
+
+
+
+
+ If the engine room has been superheated, occurs at 66% SD completion
estimated_time_left
+
+
+
+
+
+ The estimated time left to get to the safe evacuation point
evac_admin_denied
+
+
+
+
+
+ Whether or not evacuation has been disabled by admins
evac_status
+
+
+
+
+
+ What stage of evacuation we are currently on
generator_ever_overloaded
+
+
+
+
+
+ If a generator has ever been overloaded in the past this round
hijack_status
+
+
+
+
+
+ What stage of hijack are we currently on
last_run_progress_change
+
+
+
+
+
+ Holds the progress change from last run
maximum_overload_generators
+
+
+
+
+
+ Maximum amount of fusion generators that can be overloaded at once for a time benefit
overloaded_generators
+
+
+
+
+
+ How many generators are currently overloaded
percent_completion_remaining
+
+
+
+
+
+ Roughly what % of the SD countdown remains
progress_areas
+
+
+
+
+
+ Areas that are marked as having progress, assoc list that is progress_area = boolean, the boolean indicating if it was progressing or not on the last fire()
required_progress
+
+
+
+
+
+ Required progress to evacuate safely via lifeboats
sd_detonated
+
+
+
+
+
+ If the self destruct has/is detonating
sd_max_time
+
+
+
+
+
+ How long the manual self destruct will take on the high end
sd_min_time
+
+
+
+
+
+ How long the manual self destruct will take on the low end
sd_time_remaining
+
+
+
+
+
+ How much time left until SD detonates
sd_unlocked
+
+
+
+
+
+ If TRUE, self destruct has been unlocked and is possible with a hold of reactor
Proc Details activate_lifeboats()
+
+
+
+
+
+ Opens the lifeboat doors and gets them ready to launch
announce_area_power_change(/area /changed_area)
+
+
+
+
+
+ Called when an area power status is changed to announce that it has been changed
announce_progress()
+
+
+
+
+
+ Called to announce to xenos the state of evacuation progression
announce_status_on_crash()
+
+
+
+
+
+ Called when the xeno dropship crashes into the Almayer and announces the current status of various objectives to marines
cancel_evacuation()
+
+
+
+
+
+ Cancels evacuation, tells lifepods/lifeboats and status_displays
deactivate_lifeboats()
+
+
+
+
+
+ Turns off ability to manually take off lifeboats
get_evac_eta()
+
+
+
+
+
+ Passes the ETA for status panels
initiate_evacuation()
+
+
+
+
+
+ Initiates evacuation by announcing and then prepping all lifepods/lifeboats
unlock_self_destruct()
+
+
+
+
+
+ Once refueling is done, marines can optionally hold SD for a time for a stalemate instead of a xeno minor
+
+
+
diff --git a/datum/controller/subsystem/influxdriver.html b/datum/controller/subsystem/influxdriver.html
new file mode 100644
index 000000000000..b61b496d463b
--- /dev/null
+++ b/datum/controller/subsystem/influxdriver.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/influxdriver - byond
+
+
+
+
+
+
+Vars
+ max_batch Maximum amount of metric lines to send at most in one request
+This is neccessary because sending a lot of metrics can get expensive
+and drive the subsystem into overtime, but we can't split the work as it'd be even less efficient
+ timestamp_cache_realtime Last timestamp in microseconds
+ timestamp_cache_worldtime Last tick time the timestamp was taken at Procs
+ enqueue_stats Enqueues sending to InfluxDB Backend selected measurement values - round_id and timestamp are filled in automatically
+ enqueue_stats_crude Enqueues sending varied stats in a dumb and simpler format directly as: measurement count=
+ flush_queue Flushes measurements batch to InfluxDB backend
+ serialize_field Puts a single field or tag value into InfluxDB Line format
+ Var Details max_batch
+
+
+
+
+
+ Maximum amount of metric lines to send at most in one request
+This is neccessary because sending a lot of metrics can get expensive
+and drive the subsystem into overtime, but we can't split the work as it'd be even less efficient
timestamp_cache_realtime
+
+
+
+
+
+ Last timestamp in microseconds
timestamp_cache_worldtime
+
+
+
+
+
+ Last tick time the timestamp was taken at
Proc Details enqueue_stats(measurement, /list/tags, /list/fields)
+
+
+
+
+
+ Enqueues sending to InfluxDB Backend selected measurement values - round_id and timestamp are filled in automatically
enqueue_stats_crude(measurement, value, field_name)
+
+
+
+
+
+ Enqueues sending varied stats in a dumb and simpler format directly as: measurement count=
flush_queue(/list/queue)
+
+
+
+
+
+ Flushes measurements batch to InfluxDB backend
serialize_field(field, value)
+
+
+
+
+
+ Puts a single field or tag value into InfluxDB Line format
+
+
+
diff --git a/datum/controller/subsystem/interior.html b/datum/controller/subsystem/interior.html
new file mode 100644
index 000000000000..5e946098105d
--- /dev/null
+++ b/datum/controller/subsystem/interior.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/interior - byond
+
+
+
+
+
+
+Proc Details get_interior_by_coords(x, y, z)
+
+
+
+
+
+ Finds which interior is at (x, y, z) and returns its interior datum
in_interior(loc)
+
+
+
+
+
+ Checks if an atom is in an interior
load_interior
+
+ Loads an interior, requires the interior datum
+
+
+
diff --git a/datum/controller/subsystem/lighting.html b/datum/controller/subsystem/lighting.html
new file mode 100644
index 000000000000..ccaa7fe68d1c
--- /dev/null
+++ b/datum/controller/subsystem/lighting.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/lighting - byond
+
+
+
+
+
+
+List of static lighting sources queued for update.
+List of lighting corners queued for update.
+List of lighting objects queued for update.
+ Var Details started
+
+
+
+
+
+ Whether the SS has begun setting up yet
total_shadow_calculations
+
+
+
+
+
+ Total times shadows were updated, debug
+
+
+
diff --git a/datum/controller/subsystem/mapping.html b/datum/controller/subsystem/mapping.html
new file mode 100644
index 000000000000..24edba2bfc54
--- /dev/null
+++ b/datum/controller/subsystem/mapping.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/mapping - byond
+
+
+
+
+
+
+Vars
+ adding_new_zlevel True when in the process of adding a new Z-level, global locking
+ lists_to_reserve List of lists of turfs to reserve
+ loaded_lazy_templates list of lazy templates that have been loaded
+ map_templates Name of all maps
+ shuttle_templates Name of all shuttles
+ tent_type_templates map_id of all tents
+ z_list list of all z level datums in the order of their z (z level 1 is at index 1, etc.)
+ z_trait_levels list of traits and their associated z leves Procs
+ add_reservation_zlevel Adds a new reservation z level. A bit of space that can be handed out on request
+Of note, reservations default to transit turfs, to make their most common use, shuttles, faster
+ get_main_ship_name Gets a name for the marine ship as per the enabled ship map configuration
+ initialize_reserved_level Sets up a z level as reserved
+This is not for wiping reserved levels, use wipe_reservations() for that.
+If this is called after SSatom init, it will call Initialize on all turfs on the passed z, as its name promises
+ manage_z_level Takes a z level datum, and tells the mapping subsystem to manage it
+Also handles things like plane offset generation, and other things that happen on a z level to z level basis
+ request_turf_block_reservation Requests a /datum/turf_reservation based on the given width, height, and z_size. You can specify a z_reservation to use a specific z level, or leave it null to use any z level.
+ reserve_turfs Schedules a group of turfs to be handed back to the reservation system's control
+If await is true, will sleep until the turfs are finished work
+ Var Details adding_new_zlevel
+
+
+
+
+
+ True when in the process of adding a new Z-level, global locking
lists_to_reserve
+
+
+
+
+
+ List of lists of turfs to reserve
loaded_lazy_templates
+
+
+
+
+
+ list of lazy templates that have been loaded
map_templates
+
+
+
+
+
+ Name of all maps
shuttle_templates
+
+
+
+
+
+ Name of all shuttles
tent_type_templates
+
+
+
+
+
+ map_id of all tents
z_list
+ – /list/datum/space_level
+
+
+
+
+ list of all z level datums in the order of their z (z level 1 is at index 1, etc.)
z_trait_levels
+
+
+
+
+
+ list of traits and their associated z leves
Proc Details add_reservation_zlevel(for_shuttles)
+
+
+
+
+
+ Adds a new reservation z level. A bit of space that can be handed out on request
+Of note, reservations default to transit turfs, to make their most common use, shuttles, faster
get_main_ship_name()
+
+
+
+
+
+ Gets a name for the marine ship as per the enabled ship map configuration
initialize_reserved_level(z)
+
+
+
+
+
+ Sets up a z level as reserved
+This is not for wiping reserved levels, use wipe_reservations() for that.
+If this is called after SSatom init, it will call Initialize on all turfs on the passed z, as its name promises
manage_z_level
+
+ Takes a z level datum, and tells the mapping subsystem to manage it
+Also handles things like plane offset generation, and other things that happen on a z level to z level basis
request_turf_block_reservation(width, height, z_size, z_reservation, reservation_type, turf_type_override)
+
+
+
+
+
+ Requests a /datum/turf_reservation based on the given width, height, and z_size. You can specify a z_reservation to use a specific z level, or leave it null to use any z level.
reserve_turfs(/list/turfs, await)
+
+
+
+
+
+ Schedules a group of turfs to be handed back to the reservation system's control
+If await is true, will sleep until the turfs are finished work
+
+
+
diff --git a/datum/controller/subsystem/minimaps.html b/datum/controller/subsystem/minimaps.html
new file mode 100644
index 000000000000..25ac7bf0e468
--- /dev/null
+++ b/datum/controller/subsystem/minimaps.html
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/minimaps - byond
+
+
+
+
+
+
+Vars
+ earlyadds list of callbacks we need to invoke late because Initialize happens early
+ hashed_minimaps assoc list of minimap objects that are hashed so we have to update as few as possible
+ hashed_tacmaps associated list of tacmap datums with a hash
+ images_by_source Assoc list of images we hold by their source
+ minimap_added weakrefs of xenos temporarily added to the marine minimap
+ minimaps_by_z Minimap hud display datums sorted by zlevel
+ removal_cbs Assoc list of removal callbacks to invoke to remove images from the raw lists
+ update_targets the update target datums, sorted by update flag type
+ update_targets_unsorted Nonassoc list of targets we want to be stripped of their overlays during the SS fire
+ updators_by_datum list of holders for data relating to tracked zlevel and tracked atom Procs
+ add_marker Adds an atom we want to track with blips to the subsystem
+Arguments:
+ add_to_updaters Adds an atom to the processing updators that will have blips drawn on them
+Arguments:
+ fetch_minimap_object Fetches a /atom/movable/screen/minimap instance or creates one if none exists
+Note this does not destroy them when the map is unused, might be a potential thing to do?
+Arguments:
+ on_z_change Called on zlevel change of a blip-atom so we can update the image lists as needed
+ remove_marker Removes an atom and it's blip from the subsystem.
+Force has no effect on this proc, but is here because we are a COMSIG_PARENT_QDELETING handler.
+ remove_updator Removes a atom from the subsystems updating overlays
+ removeimage removes an image from raw tracked lists, invoked by callback
+ Var Details earlyadds
+
+
+
+
+
+ list of callbacks we need to invoke late because Initialize happens early
hashed_minimaps
+
+
+
+
+
+ assoc list of minimap objects that are hashed so we have to update as few as possible
hashed_tacmaps
+
+
+
+
+
+ associated list of tacmap datums with a hash
images_by_source
+
+
+
+
+
+ Assoc list of images we hold by their source
minimap_added
+
+
+
+
+
+ weakrefs of xenos temporarily added to the marine minimap
minimaps_by_z
+ – /list/datum/hud_displays
+
+
+
+
+ Minimap hud display datums sorted by zlevel
removal_cbs
+
+
+
+
+
+ Assoc list of removal callbacks to invoke to remove images from the raw lists
update_targets
+
+
+
+
+
+ the update target datums, sorted by update flag type
update_targets_unsorted
+
+
+
+
+
+ Nonassoc list of targets we want to be stripped of their overlays during the SS fire
updators_by_datum
+ – /list/datum/minimap_updator
+
+
+
+
+ list of holders for data relating to tracked zlevel and tracked atom
Proc Details add_marker(/atom /target, zlevel, hud_flags, iconstate, icon, /list/overlay_iconstates, /image /given_image)
+
+
+
+
+
+ Adds an atom we want to track with blips to the subsystem
+Arguments:
+
+target: atom we want to track
+zlevel: zlevel we want this atom to be tracked for
+hud_flags: tracked HUDs we want this atom to be displayed on
+iconstate: iconstate for the blip we want to be used for this tracked atom
+icon: icon file we want to use for this blip, 'icons/UI_icons/map_blips.dmi' by default
+overlay_iconstates: list of iconstates to use as overlay. Used for xeno leader icons.
+ add_to_updaters(/atom /target, flags, ztarget)
+
+
+
+
+
+ Adds an atom to the processing updators that will have blips drawn on them
+Arguments:
+
+target: the target we want to be updating the overlays on
+flags: flags for the types of blips we want to be updated
+ztarget: zlevel we want to be updated with
+ fetch_minimap_object(zlevel, flags)
+
+
+
+
+
+ Fetches a /atom/movable/screen/minimap instance or creates one if none exists
+Note this does not destroy them when the map is unused, might be a potential thing to do?
+Arguments:
+
+zlevel: zlevel to fetch map for
+flags: map flags to fetch from
+ on_z_change
+
+ Called on zlevel change of a blip-atom so we can update the image lists as needed
remove_marker(/atom /source, force, minimap_flag)
+
+
+
+
+
+ Removes an atom and it's blip from the subsystem.
+Force has no effect on this proc, but is here because we are a COMSIG_PARENT_QDELETING handler.
remove_updator
+
+ Removes a atom from the subsystems updating overlays
removeimage
+
+ removes an image from raw tracked lists, invoked by callback
+
+
+
diff --git a/datum/controller/subsystem/nightmare.html b/datum/controller/subsystem/nightmare.html
new file mode 100644
index 000000000000..3724b15fe676
--- /dev/null
+++ b/datum/controller/subsystem/nightmare.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/nightmare - byond
+
+
+
+
+
+
+Vars
+ contexts List of nightmare context types, mapped to their instance
+ roots List of parsed file nodes Procs
+ get_scenario_value Returns a value from the global scenario
+ load_file Reads a JSON file, returns a branch nmnode representing contents of file
+ load_map_config Load nightmare steps relevant to a map
+ parse_file Reads a JSON file, returns list of config nodes in the file
+ parse_tree Instanciates nmnodes from parsed JSON
+ read_node Instanciate a single nmnode from its JSON definition
+ set_scenario_value Override a value from the global scenario.
+ Var Details contexts
+
+
+
+
+
+ List of nightmare context types, mapped to their instance
roots
+
+
+
+
+
+ List of parsed file nodes
Proc Details get_scenario_value(name)
+
+
+
+
+
+ Returns a value from the global scenario
load_file(filename, tag)
+
+
+
+
+
+ Reads a JSON file, returns a branch nmnode representing contents of file
load_map_config(context_name, map_type)
+
+
+
+
+
+ Load nightmare steps relevant to a map
parse_file(filename)
+
+
+
+
+
+ Reads a JSON file, returns list of config nodes in the file
parse_tree(/list/parsed)
+
+
+
+
+
+ Instanciates nmnodes from parsed JSON
read_node(/list/parsed)
+
+
+
+
+
+ Instanciate a single nmnode from its JSON definition
set_scenario_value(name, value)
+
+
+
+
+
+ Override a value from the global scenario.
+
+
+
diff --git a/datum/controller/subsystem/objectives.html b/datum/controller/subsystem/objectives.html
new file mode 100644
index 000000000000..56dd070dced6
--- /dev/null
+++ b/datum/controller/subsystem/objectives.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/objectives - byond
+
+
+
+
+
+
+Proc Details initialize_objectives()
+
+
+
+
+
+ Allows to perform objective initialization later on in case of map changes
+
+
+
diff --git a/datum/controller/subsystem/perf_logging.html b/datum/controller/subsystem/perf_logging.html
new file mode 100644
index 000000000000..b066c19da258
--- /dev/null
+++ b/datum/controller/subsystem/perf_logging.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/perf_logging - byond
+
+
+
+
+
+
+Procs
+ new_record Insert a new timing record for a single subsystem
+ start_logging Setup to begin performance logging when game starts
+ update_mc_timing Insert a new timing record for the MC as a whole
Proc Details
+ Insert a new timing record for a single subsystem
start_logging()
+
+
+
+
+
+ Setup to begin performance logging when game starts
update_mc_timing()
+
+
+
+
+
+ Insert a new timing record for the MC as a whole
+
+
+
diff --git a/datum/controller/subsystem/processing/dcs.html b/datum/controller/subsystem/processing/dcs.html
new file mode 100644
index 000000000000..e79ee0bc3448
--- /dev/null
+++ b/datum/controller/subsystem/processing/dcs.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/processing/dcs - byond
+
+
+
+
+
+
+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/projectiles.html b/datum/controller/subsystem/projectiles.html
new file mode 100644
index 000000000000..479cff9ace1a
--- /dev/null
+++ b/datum/controller/subsystem/projectiles.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/projectiles - byond
+
+
+
+
+
+
+Vars
+ flying List of projectiles handled this controller firing
+ projectiles List of projectiles handled by the subsystem
+ sleepers List of projectiles on hold due to sleeping
+ Var Details flying
+
+
+
+
+
+ List of projectiles handled this controller firing
projectiles
+
+
+
+
+
+ List of projectiles handled by the subsystem
sleepers
+
+
+
+
+
+ List of projectiles on hold due to sleeping
+
+
+
diff --git a/datum/controller/subsystem/redis.html b/datum/controller/subsystem/redis.html
new file mode 100644
index 000000000000..3dd8319d0284
--- /dev/null
+++ b/datum/controller/subsystem/redis.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/redis - byond
+
+
+
+
+
+
+Vars
+ connected if a connection to redis has been established
+ instance_name the name this server uses externally
+ queue message queue, for messages sent prior to initialization
+ redis_logging if this server is sending logs to redis, in addition to the file system
+ subbed_channels subscribed to channels on the redis server
+ Var Details connected
+
+
+
+
+
+ if a connection to redis has been established
instance_name
+
+
+
+
+
+ the name this server uses externally
queue
+ – /list/datum/redis_message
+
+
+
+
+ message queue, for messages sent prior to initialization
redis_logging
+
+
+
+
+
+ if this server is sending logs to redis, in addition to the file system
subbed_channels
+
+
+
+
+
+ subscribed to channels on the redis server
+
+
+
diff --git a/datum/controller/subsystem/shuttle.html b/datum/controller/subsystem/shuttle.html
new file mode 100644
index 000000000000..966650da67bc
--- /dev/null
+++ b/datum/controller/subsystem/shuttle.html
@@ -0,0 +1,194 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/shuttle - byond
+
+
+
+
+
+
+Vars
+ assoc_mobile Now it's only for ID generation in /obj/docking_port/mobile/register()
+ assoc_stationary Now it's only for ID generation in /obj/docking_port/stationary/register()
+ existing_shuttle The existing shuttle associated with the selected shuttle map_template.
+ loading_shuttle Are we currently in the process of loading a shuttle? Useful to ensure we don't load more than one at once, to avoid weird inconsistencies and possible runtimes.
+ lockdown Disallow transit after nuke goes off
+ mobile A list of all the mobile docking ports.
+ preview_reservation The turf reservation for the current previewed shuttle.
+ preview_shuttle The docking port associated to the preview_template that's currently being previewed.
+ preview_template The shuttle map_template of the shuttle we want to preview.
+ selected The currently selected shuttle map_template in the shuttle manipulator's template viewer.
+ stationary A list of all the stationary docking ports.
+ transit A list of all the transit docking ports.
+ transit_request_failures An associative list of the mobile docking ports that have failed a transit request, with the amount of times they've actually failed that transit request, up to MAX_TRANSIT_REQUEST_RETRIES
+ transit_requesters A list of all the mobile docking ports currently requesting a spot in hyperspace.
+ transit_utilized How many turfs our shuttles are currently utilizing in reservation space Procs
+ action_load Loads a shuttle template and sends it to a given destination port, optionally replacing the existing shuttle
+ get_template_shuttle Tries to get a shuttle based on its original template id (rather than one that may have an additional identifier)
+ load_template Loads a shuttle template into the transit Z level, usually referred to elsewhere in the code as a shuttle preview.
+Does not register the shuttle so it can't be used yet, that's handled in action_load()
+ moveShuttle Moves a shuttle to a new location
+ transit_space_clearing Gotta manage our space brother
+ unload_preview Removes the preview_shuttle from the transit Z-level
+ Var Details assoc_mobile
+
+
+
+
+
+ Now it's only for ID generation in /obj/docking_port/mobile/register()
assoc_stationary
+
+
+
+
+
+ Now it's only for ID generation in /obj/docking_port/stationary/register()
+ The existing shuttle associated with the selected shuttle map_template.
loading_shuttle
+
+
+
+
+
+ Are we currently in the process of loading a shuttle? Useful to ensure we don't load more than one at once, to avoid weird inconsistencies and possible runtimes.
lockdown
+
+
+
+
+
+ Disallow transit after nuke goes off
mobile
+
+
+
+
+
+ A list of all the mobile docking ports.
+ The turf reservation for the current previewed shuttle.
+ The docking port associated to the preview_template that's currently being previewed.
preview_template
+
+
+
+
+
+ The shuttle map_template of the shuttle we want to preview.
+ The currently selected shuttle map_template in the shuttle manipulator's template viewer.
stationary
+
+
+
+
+
+ A list of all the stationary docking ports.
transit
+
+
+
+
+
+ A list of all the transit docking ports.
transit_request_failures
+
+
+
+
+
+ An associative list of the mobile docking ports that have failed a transit request, with the amount of times they've actually failed that transit request, up to MAX_TRANSIT_REQUEST_RETRIES
transit_requesters
+
+
+
+
+
+ A list of all the mobile docking ports currently requesting a spot in hyperspace.
transit_utilized
+
+
+
+
+
+ How many turfs our shuttles are currently utilizing in reservation space
Proc Details
+ Loads a shuttle template and sends it to a given destination port, optionally replacing the existing shuttle
+Arguments:
+
+loading_template - The shuttle template to load
+destination_port - The station docking port to send the shuttle to once loaded
+to_replace - A shuttle to replace, otherwise we create a new one
+ get_template_shuttle(id, warn)
+
+
+
+
+
+ Tries to get a shuttle based on its original template id (rather than one that may have an additional identifier)
load_template
+
+ Loads a shuttle template into the transit Z level, usually referred to elsewhere in the code as a shuttle preview.
+Does not register the shuttle so it can't be used yet, that's handled in action_load()
+Arguments:
+
+loading_template - The shuttle template to load
+ moveShuttle(id, dock_id, timed)
+
+
+
+
+
+ Moves a shuttle to a new location
+Arguments:
+
+id - The ID of the shuttle (mobile docking port) to move
+dock_id - The ID of the destination (stationary docking port) to move to
+timed - If true, have the shuttle follow normal spool-up, jump, dock process. If false, immediately move to the new location.
+ transit_space_clearing
+
+ Gotta manage our space brother
unload_preview()
+
+
+
+
+
+ Removes the preview_shuttle from the transit Z-level
+
+
+
diff --git a/datum/controller/subsystem/statpanels.html b/datum/controller/subsystem/statpanels.html
new file mode 100644
index 000000000000..267ad3b1855c
--- /dev/null
+++ b/datum/controller/subsystem/statpanels.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/statpanels - byond
+
+
+
+
+
+
+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), ...)
+ set_SDQL2_tab Sets the current tab to the SDQL tab
+ 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
+
+ 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), ...)
set_SDQL2_tab
+
+ Sets the current tab to the SDQL tab
+
+
+
diff --git a/datum/controller/subsystem/stickyban.html b/datum/controller/subsystem/stickyban.html
new file mode 100644
index 000000000000..cf2a728bd410
--- /dev/null
+++ b/datum/controller/subsystem/stickyban.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/stickyban - byond
+
+
+
+
+
+
+Procs
+ add_matched_cid Adds a CID match to the specified stickyban.
+ add_matched_ckey Adds a ckey match to the specified sticky ban.
+ add_matched_ip Adds an IP match to the specified stickyban.
+ add_stickyban Adds a new tracked stickyban, and returns a /datum/entity/stickyban if it was successful. Blocking, sleeps.
+ check_for_sticky_ban Returns a list of /datum/view_record/stickyban s, or null, if no stickybans are found. All arguments are optional, but you should pass at least one if you want any results.
+ get_impacted_cid_records Returns a /list of /datum/view_record/stickyban_matched_cid where the impacted CID matches the CID provided.
+Connections matching this CID will be blocked - provided the linked stickyban is active.
+ get_impacted_ckey_records Returns a /list of /datum/view_record/stickyban_matched_ckey where the ckey provided has not been
+whitelisted from the stickyban, and would be prevented from joining - provided that the stickyban itself
+remains active.
+ get_impacted_ip_records Returns a /list of /datum/view_record/stickyban_matched_ip where the impacted IP matches the IP provided.
+Connections matchin this IP will be blocked - provided the linked stickyban is active.
+ get_whitelisted_ckey_records Returns a /list of /datum/view_record/stickyban_matched_ckey which have been manually whitelisted by an admin and matches the provided existing_ban_id and key.
+ handle_old_perma Imports permabans from the old ban.txt, and does not ban people that have been whitelisted.
+ import_sticky Legacy import from pager bans to database bans.
+ match_sticky Associates an existing stickyban with a new match, either of a ckey, address, or computer_id. Or all three.
+ whitelist_ckey Whitelists a specific CKEY to the specified stickyban, which will allow connection, even with matching CIDs and IPs.
Proc Details add_matched_cid(existing_ban_id, cid)
+
+
+
+
+
+ Adds a CID match to the specified stickyban.
add_matched_ckey(existing_ban_id, key)
+
+
+
+
+
+ Adds a ckey match to the specified sticky ban.
add_matched_ip(existing_ban_id, ip)
+
+
+
+
+
+ Adds an IP match to the specified stickyban.
add_stickyban
+
+ Adds a new tracked stickyban, and returns a /datum/entity/stickyban if it was successful. Blocking, sleeps.
check_for_sticky_ban(ckey, address, computer_id)
+
+
+
+
+
+ Returns a list of /datum/view_record/stickyban s, or null, if no stickybans are found. All arguments are optional, but you should pass at least one if you want any results.
get_impacted_cid_records(cid)
+
+
+
+
+
+ Returns a /list of /datum/view_record/stickyban_matched_cid where the impacted CID matches the CID provided.
+Connections matching this CID will be blocked - provided the linked stickyban is active.
get_impacted_ckey_records(key)
+
+
+
+
+
+ Returns a /list of /datum/view_record/stickyban_matched_ckey where the ckey provided has not been
+whitelisted from the stickyban, and would be prevented from joining - provided that the stickyban itself
+remains active.
get_impacted_ip_records(ip)
+
+
+
+
+
+ Returns a /list of /datum/view_record/stickyban_matched_ip where the impacted IP matches the IP provided.
+Connections matchin this IP will be blocked - provided the linked stickyban is active.
get_whitelisted_ckey_records(existing_ban_id, key)
+
+
+
+
+
+ Returns a /list of /datum/view_record/stickyban_matched_ckey which have been manually whitelisted by an admin and matches the provided existing_ban_id and key.
handle_old_perma(identifier, /list/ban_data)
+
+
+
+
+
+ Imports permabans from the old ban.txt, and does not ban people that have been whitelisted.
import_sticky(identifier, /list/ban_data)
+
+
+
+
+
+ Legacy import from pager bans to database bans.
match_sticky(existing_ban_id, ckey, address, computer_id)
+
+
+
+
+
+ Associates an existing stickyban with a new match, either of a ckey, address, or computer_id. Or all three.
+Arguments:
+
+existing_ban_id, int, required
+ckey, string, optional
+address, string, optional
+computer_id, string, optional
+ whitelist_ckey(existing_ban_id, key)
+
+
+
+
+
+ Whitelists a specific CKEY to the specified stickyban, which will allow connection, even with matching CIDs and IPs.
+
+
+
diff --git a/datum/controller/subsystem/tgui.html b/datum/controller/subsystem/tgui.html
new file mode 100644
index 000000000000..326ed5e8e626
--- /dev/null
+++ b/datum/controller/subsystem/tgui.html
@@ -0,0 +1,202 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/tgui - byond
+
+
+
+
+
+
+
+ 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
+
+ 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/ticker.html b/datum/controller/subsystem/ticker.html
new file mode 100644
index 000000000000..fc188b332012
--- /dev/null
+++ b/datum/controller/subsystem/ticker.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/ticker - byond
+
+
+
+
+
+
+Vars
+ start_immediately If TRUE, there is no lobby phase, the game starts immediately.
+ tipped If we have already done tip of the round. Procs
+ apply_lazy_timings Placeholder proc to apply slower SS timings for performance. Should be refactored to be included in Master/SS probably. Note we can't change prios after MC init.
+ request_start Attempt to start game asynchronously if applicable
+ setup_start Try to effectively setup gamemode and start now
+ Var Details
+ If TRUE, there is no lobby phase, the game starts immediately.
tipped
+
+
+
+
+
+ If we have already done tip of the round.
Proc Details apply_lazy_timings()
+
+
+
+
+
+ Placeholder proc to apply slower SS timings for performance. Should be refactored to be included in Master/SS probably. Note we can't change prios after MC init.
request_start()
+
+
+
+
+
+ Attempt to start game asynchronously if applicable
setup_start()
+
+
+
+
+
+ Try to effectively setup gamemode and start now
+
+
+
diff --git a/datum/controller/subsystem/timer.html b/datum/controller/subsystem/timer.html
new file mode 100644
index 000000000000..bda1483a1118
--- /dev/null
+++ b/datum/controller/subsystem/timer.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/timer - byond
+
+
+
+
+
+
+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/vote.html b/datum/controller/subsystem/vote.html
new file mode 100644
index 000000000000..1a621b82700e
--- /dev/null
+++ b/datum/controller/subsystem/vote.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/vote - byond
+
+
+
+
+
+
+Vars
+ adjustments Adjustments applied to the current round's votes
+ carryover Votes from previous rounds
+ choices Current round votes
+ on_vote_end Callback that runs when the vote ends
+ vote_adjustment_callback Callback to calculate how many votes to add/remove
+Pass the number of current round votes and carryover
+ Var Details adjustments
+
+
+
+
+
+ Adjustments applied to the current round's votes
carryover
+
+
+
+
+
+ Votes from previous rounds
choices
+
+
+
+
+
+ Current round votes
on_vote_end
+
+
+
+
+
+ Callback that runs when the vote ends
vote_adjustment_callback
+
+
+
+
+
+ Callback to calculate how many votes to add/remove
+Pass the number of current round votes and carryover
+
+
+
diff --git a/datum/controller/subsystem/weather.html b/datum/controller/subsystem/weather.html
new file mode 100644
index 000000000000..bec54dcf7c0e
--- /dev/null
+++ b/datum/controller/subsystem/weather.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/weather - byond
+
+
+
+
+
+
+
+ Var Details map_holder
+ – /datum /weather_ss_map_holder
+
+
+
+
+ Important vars
weather_areas
+
+
+
+
+
+ List of master areas to use for applying effects
Proc Details setup_weather_event(event_typepath)
+
+
+
+
+
+ Startup of an arbitrary weather event if none is running. Returns TRUE if successful.
+
+
+
diff --git a/datum/controller/supply.html b/datum/controller/supply.html
new file mode 100644
index 000000000000..70686305b835
--- /dev/null
+++ b/datum/controller/supply.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /datum/controller/supply - byond
+
+
+
+
+
+
+
+ Var Details asrs_supply_packs_by_pool
+
+
+
+
+
+ Pools mapped to list of random ASRS packs that belong to it
base_random_crate_intervals
+
+
+
+
+
+ How many processing intervals do we get random crates for each pool. Currently only ASRS_POOL_MAIN gets scaled amount of crates.
black_market_enabled
+
+
+
+
+
+ If the black market is enabled.
black_market_heat
+
+
+
+
+
+ How close the CMB is to investigating | 100 sends an ERT
black_market_points
+
+
+
+
+
+ in Weyland-Yutani dollars - Not Stan_Albatross.
black_market_sold_items
+
+
+
+
+
+ This contains a list of all typepaths of sold items and how many times they've been received. Used to calculate points dropoff (Can't send down a hundred blue souto cans for infinite points)
mendoza_status
+
+
+
+
+
+ If the players killed him by sending a live hostile below.. this goes false and they can't order any more contraband.
points
+
+
+
+
+
+ Current supply points
points_scale
+
+
+
+
+
+ Multiplier to the amount of points awarded based on marine scale
random_crates_carry
+
+
+
+
+
+ How many partial crates are stored in ASRS per pool to smooth amount given out
Proc Details black_market_investigation()
+
+
+
+
+
+ For code readability.
+
+
+
diff --git a/datum/coords/qtplayer.html b/datum/coords/qtplayer.html
new file mode 100644
index 000000000000..e51db86e6c98
--- /dev/null
+++ b/datum/coords/qtplayer.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/coords/qtplayer - byond
+
+
+
+
+
+
+Vars
+ is_observer Truthy if player is an observer
+ player Relevant client the coords are associated to
+ Var Details is_observer
+
+
+
+
+
+ Truthy if player is an observer
player
+
+
+
+
+
+ Relevant client the coords are associated to
+
+
+
diff --git a/datum/crewmonitor.html b/datum/crewmonitor.html
new file mode 100644
index 000000000000..e95272152162
--- /dev/null
+++ b/datum/crewmonitor.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/crewmonitor - byond
+
+
+
+
+
+
+Vars
+ data Cache of data generated, used for serving the data within SENSOR_UPDATE_PERIOD of the last update
+ jobs Map of job to ID for sorting purposes
+ last_update Cache of last update time
+ ui_sources List of user -> UI source
+ Var Details data
+
+
+
+
+
+ Cache of data generated, used for serving the data within SENSOR_UPDATE_PERIOD of the last update
jobs
+
+
+
+
+
+ Map of job to ID for sorting purposes
last_update
+
+
+
+
+
+ Cache of last update time
ui_sources
+
+
+
+
+
+ List of user -> UI source
+
+
+
diff --git a/datum/custom_hud.html b/datum/custom_hud.html
new file mode 100644
index 000000000000..a91e0b70a5ed
--- /dev/null
+++ b/datum/custom_hud.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/custom_hud - byond
+
+
+
+
+
+
+Procs
+ hud_slot_offset Offsets the slot's screen_loc by the item's hud_offset var. Uses the ui slot var as the arg: ui_belt, not WEAR_WAIST/"belt".
Proc Details hud_slot_offset
+
+ Offsets the slot's screen_loc by the item's hud_offset var. Uses the ui slot var as the arg: ui_belt, not WEAR_WAIST/"belt".
+
+
+
diff --git a/datum/datacore.html b/datum/datacore.html
new file mode 100644
index 000000000000..15882dad0219
--- /dev/null
+++ b/datum/datacore.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/datacore - byond
+
+
+
+
+
+
+Procs
+ manifest If it is a real squad in the USCM squad list to prevent the crew manifest from breaking
Proc Details manifest(nosleep)
+
+
+
+
+
+ If it is a real squad in the USCM squad list to prevent the crew manifest from breaking
+
+
+
diff --git a/datum/decorator/gamemode.html b/datum/decorator/gamemode.html
new file mode 100644
index 000000000000..de6704dc09bf
--- /dev/null
+++ b/datum/decorator/gamemode.html
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+ /datum/decorator/gamemode - byond
+
+
+
+
+
+
+Gamemode decorators allow us to make changes to edits on specific gamemodes,
+to assist in balancing varied gameplay in different modes
+They can be manually defined, and procs overridden. Alternatively,
+using the GAMEMODE_DECORATOR define, you can quickly make a decorator for
+a specific type and subtypes.
+eg:
+GAMEMODE_DECORATOR(/obj/item/clothing/suit/storage/marine/smartgunner, /datum/game_mode/extended/faction_clash, list(
+ ARMOR_EDIT(armor_bullet, CLOTHING_ARMOR_HIGH),
+ ARMOR_EDIT(armor_internaldamage, CLOTHING_ARMOR_HIGH)
+ ))
+
+If you need to edit different types, make a new define using VARIABLE_EDIT, and provide the parent path for the type.
Vars
+ apply_type Which type this should apply edits to
+ edits The list of edits to make
+ gamemode The gamemode type this should apply to
+ Var Details apply_type
+
+
+
+
+
+ Which type this should apply edits to
edits
+
+
+
+
+
+ The list of edits to make
gamemode
+
+
+
+
+
+ The gamemode type this should apply to
+
+
+
diff --git a/datum/discord_embed.html b/datum/discord_embed.html
new file mode 100644
index 000000000000..cb686661dd12
--- /dev/null
+++ b/datum/discord_embed.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ /datum/discord_embed - byond
+
+
+
+
+
+
+Documentation for the embed object and all of its variables can be found at
+https://discord.com/developers/docs/resources/channel#embed-object
+It is recommended to read the documentation on the discord website, as the information below could become outdated in the future.
Vars
+ author Name of the author of the embed
+ color The color that appears on the top of the embed. This is an integer and is the color code of the embed.
+ content Any content that should appear above the embed
+ description The description
+ fields A key-value string list of fields that should be displayed
+ footer The footer that appears on the embed
+ image String representing a link to an image
+ provider String representing the name of the provider
+ provider_url String representing the link of the provider
+ thumbnail String representing a link to the thumbnail image
+ title Title of the embed
+ url The URL that the title
+ video String representing a link to the video
+ Var Details author
+
+
+
+
+
+ Name of the author of the embed
color
+
+
+
+
+
+ The color that appears on the top of the embed. This is an integer and is the color code of the embed.
content
+
+
+
+
+
+ Any content that should appear above the embed
description
+
+
+
+
+
+ The description
fields
+
+
+
+
+
+ A key-value string list of fields that should be displayed
+ The footer that appears on the embed
image
+
+
+
+
+
+ String representing a link to an image
provider
+
+
+
+
+
+ String representing the name of the provider
provider_url
+
+
+
+
+
+ String representing the link of the provider
thumbnail
+
+
+
+
+
+ String representing a link to the thumbnail image
title
+
+
+
+
+
+ Title of the embed
url
+
+
+
+
+
+ The URL that the title
video
+
+
+
+
+
+ String representing a link to the video
+
+
+
diff --git a/datum/disease/black_goo.html b/datum/disease/black_goo.html
new file mode 100644
index 000000000000..a17ca5d82bd6
--- /dev/null
+++ b/datum/disease/black_goo.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/disease/black_goo - byond
+
+
+
+
+
+
+Vars
+ goo_message_cooldown cooldown for the living mob's symptom messages
+ infection_rate variable that handles passive increase of the virus of a host.
+ stage_counter variable to keep track of the stage level, used to prevent the stage message from being displayed more than once for any given stage.
+ stage_level variable that contains accumulated virus progression for a host. Iterates to a value above 360 and is then reset.
+ zombie_is_transforming boolean value to determine if the mob is currently transforming into a zombie.
+ Var Details goo_message_cooldown
+
+
+
+
+
+ cooldown for the living mob's symptom messages
infection_rate
+
+
+
+
+
+ variable that handles passive increase of the virus of a host.
stage_counter
+
+
+
+
+
+ variable to keep track of the stage level, used to prevent the stage message from being displayed more than once for any given stage.
stage_level
+
+
+
+
+
+ variable that contains accumulated virus progression for a host. Iterates to a value above 360 and is then reset.
+ boolean value to determine if the mob is currently transforming into a zombie.
+
+
+
diff --git a/datum/dynamic_light_source.html b/datum/dynamic_light_source.html
new file mode 100644
index 000000000000..d7b303f3eeb0
--- /dev/null
+++ b/datum/dynamic_light_source.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /datum/dynamic_light_source - byond
+
+
+
+
+
+
+
+ Var Details applied
+
+
+
+
+
+ Whether we have applied our light yet or not.
cached_loc
+
+
+
+
+
+ our last loc
contained_atom
+
+
+
+
+
+ The atom that the source atom is contained inside
light_color
+
+
+
+
+
+ The colour of the light, string, decomposed by PARSE_LIGHT_COLOR()
light_power
+
+
+
+
+
+ Intensity of the emitter light.
light_range
+
+
+
+
+
+ The range of the emitted light.
+ reference to the mask holder effect
mask_type
+
+
+
+
+
+ typepath for the mask type we are using
+ reference to the mask contained within the mask_holder objects vis_contents
pixel_turf
+
+
+
+
+
+ the turf the contained atom appears to be covering
source_atom
+
+
+
+
+
+ source atom that we belong to
Proc Details find_containing_atom()
+
+
+
+
+
+ Updates containing atom
set_light(l_range, l_power, l_color)
+
+
+
+
+
+ Update light if changed.
+
+
+
diff --git a/datum/effects/acid.html b/datum/effects/acid.html
new file mode 100644
index 000000000000..3e33bc4e8cb2
--- /dev/null
+++ b/datum/effects/acid.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/effects/acid - byond
+
+
+
+
+
+
+
+ Var Details acid_enhanced
+
+
+
+
+
+ If it's been enhanced by a spit combo.
acid_goopiness
+
+
+
+
+
+ How 'goopy' the acid is. Each value is one stop drop roll.
+
+
+
diff --git a/datum/effects/neurotoxin.html b/datum/effects/neurotoxin.html
new file mode 100644
index 000000000000..c12361ea6fe9
--- /dev/null
+++ b/datum/effects/neurotoxin.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/effects/neurotoxin - byond
+
+
+
+
+
+
+Vars
+ bloodcough_prob Chance of blood_cough per proc (damaging)
+ duration Duration of the effect. Also used for intensity aswell
+ hallucinate Whether or not we hallucinate. (small rng stun chance)
+ msg Default per proc message
+ stam_dam Stamina damage per tick. Major balance number.
+ strength Multiplier for effects. Inputted in directly.
+ stumble Should we stumble on next tick? Changed automatically
+ stumble_prob Probability of stumbling per proc. Changed by code.
+ Var Details bloodcough_prob
+
+
+
+
+
+ Chance of blood_cough per proc (damaging)
duration
+
+
+
+
+
+ Duration of the effect. Also used for intensity aswell
hallucinate
+
+
+
+
+
+ Whether or not we hallucinate. (small rng stun chance)
msg
+
+
+
+
+
+ Default per proc message
stam_dam
+
+
+
+
+
+ Stamina damage per tick. Major balance number.
strength
+
+
+
+
+
+ Multiplier for effects. Inputted in directly.
stumble
+
+
+
+
+
+ Should we stumble on next tick? Changed automatically
stumble_prob
+
+
+
+
+
+ Probability of stumbling per proc. Changed by code.
+
+
+
diff --git a/datum/element.html b/datum/element.html
new file mode 100644
index 000000000000..f3935571b37a
--- /dev/null
+++ b/datum/element.html
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+ /datum/element - byond
+
+
+
+
+
+
+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/bloody_feet.html b/datum/element/bloody_feet.html
new file mode 100644
index 000000000000..18b197b4977e
--- /dev/null
+++ b/datum/element/bloody_feet.html
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+ /datum/element/bloody_feet - byond
+
+
+
+
+
+
+Vars
+ color Color of the tracks left behind
+ entered_bloody_turf Whether the human has moved into the turf giving them bloody feet
+Necessary because of how Crossed is called before Moved
+ steps_to_take The amount of steps you can take to make bloody footsteps
+ target_shoes State var to track the shoes (if any) of the humans
+with this element
+ Var Details color
+
+
+
+
+
+ Color of the tracks left behind
entered_bloody_turf
+
+
+
+
+
+ Whether the human has moved into the turf giving them bloody feet
+Necessary because of how Crossed is called before Moved
steps_to_take
+
+
+
+
+
+ The amount of steps you can take to make bloody footsteps
target_shoes
+
+
+
+
+
+ State var to track the shoes (if any) of the humans
+with this element
+
+
+
diff --git a/datum/element/bullet_trait_damage_boost.html b/datum/element/bullet_trait_damage_boost.html
new file mode 100644
index 000000000000..b3ba3054ec85
--- /dev/null
+++ b/datum/element/bullet_trait_damage_boost.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ /datum/element/bullet_trait_damage_boost - byond
+
+
+
+
+
+
+Vars
+ damage_boosted_atoms A typecache of objs or turfs that, upon being hit, boost the damage of the attached projectile Procs
+ Attach vars:
+ Var Details damage_boosted_atoms
+
+
+
+
+
+ A typecache of objs or turfs that, upon being hit, boost the damage of the attached projectile
Proc Details Attach(/datum /target, damage_mult, /list/damage_boosted_atoms)
+
+
+
+
+
+ vars:
+
+damage_mult - the damage multiplier to be applied if the bullet hits an atom whose type is in breaching_objs
+damage_boosted_atoms - a typecache of objs that can be breached; should be a global list because the element is bespoke
+
+
+
+
diff --git a/datum/element/bullet_trait_iff.html b/datum/element/bullet_trait_iff.html
new file mode 100644
index 000000000000..519b52613e57
--- /dev/null
+++ b/datum/element/bullet_trait_iff.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/element/bullet_trait_iff - byond
+
+
+
+
+
+
+
+ Var Details iff_group
+
+
+
+
+
+ The iff group for this bullet
iff_group_cache
+
+
+
+
+
+ A cache of IFF groups for specific mobs
+
+
+
diff --git a/datum/element/bullet_trait_penetrating.html b/datum/element/bullet_trait_penetrating.html
new file mode 100644
index 000000000000..5a8eb2454db8
--- /dev/null
+++ b/datum/element/bullet_trait_penetrating.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/element/bullet_trait_penetrating - byond
+
+
+
+
+
+
+
+ Var Details distance_loss_per_hit
+
+
+
+
+
+ The distance loss per hit
+
+
+
diff --git a/datum/element/bullet_trait_penetrating/heavy.html b/datum/element/bullet_trait_penetrating/heavy.html
new file mode 100644
index 000000000000..49c68b5d0c59
--- /dev/null
+++ b/datum/element/bullet_trait_penetrating/heavy.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/element/bullet_trait_penetrating/heavy - byond
+
+
+
+
+
+
+
+ Var Details bullet_destroy_structures
+
+
+
+
+
+ Typecache of things to annihilate if the bullet is on a tile with it
damage_lost_per_pen
+
+
+
+
+
+ For every turf this pierces, how much damage should this lose?
+
+
+
diff --git a/datum/element/bullet_trait_penetrating/weak.html b/datum/element/bullet_trait_penetrating/weak.html
new file mode 100644
index 000000000000..e2a5acfcd954
--- /dev/null
+++ b/datum/element/bullet_trait_penetrating/weak.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/element/bullet_trait_penetrating/weak - byond
+
+
+
+
+
+
+Vars
+ damage_percent_lost_per_hit For each thing this hits, how much damage it loses normally. This can be modified by what it penetrates later.
+ distance_loss_per_hit For each thing this hits, how much distance it loses normally.
+ turf_hit_slow_mult How many times more effective turfs are at slowing down the projectile normally, reducing both range and damage.
+ Var Details damage_percent_lost_per_hit
+
+
+
+
+
+ For each thing this hits, how much damage it loses normally. This can be modified by what it penetrates later.
distance_loss_per_hit
+
+
+
+
+
+ For each thing this hits, how much distance it loses normally.
turf_hit_slow_mult
+
+
+
+
+
+ How many times more effective turfs are at slowing down the projectile normally, reducing both range and damage.
+
+
+
diff --git a/datum/element/light_blocking.html b/datum/element/light_blocking.html
new file mode 100644
index 000000000000..cd6814b7dac7
--- /dev/null
+++ b/datum/element/light_blocking.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /datum/element/light_blocking - byond
+
+
+
+
+
+
+Attached to movable atoms with opacity. Listens to them move and updates their old and new turf loc's opacity accordingly.
Procs
+ on_target_move Updates old and new turf loc opacities.
+Updates old and new turf loc opacities.
Proc Details on_target_move
+
+ Updates old and new turf loc opacities.
+Updates old and new turf loc opacities.
+
+
+
diff --git a/datum/element/strippable.html b/datum/element/strippable.html
new file mode 100644
index 000000000000..186fd19b40dc
--- /dev/null
+++ b/datum/element/strippable.html
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+ /datum/element/strippable - byond
+
+
+
+
+
+
+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
+ should_strip_proc_path A proc path that returns TRUE/FALSE if we should show the strip panel for this entity.
+If it does not exist, the strip menu will always show.
+Will be called with (mob/user).
+ strip_menus An existing strip menus
+ Var Details items
+
+
+
+
+
+ An assoc list of keys to /datum/strippable_item
should_strip_proc_path
+
+
+
+
+
+ A proc path that returns TRUE/FALSE if we should show the strip panel for this entity.
+If it does not exist, the strip menu will always show.
+Will be called with (mob/user).
+ An existing strip menus
+
+
+
diff --git a/datum/element/suturing.html b/datum/element/suturing.html
new file mode 100644
index 000000000000..3bcede00ca3e
--- /dev/null
+++ b/datum/element/suturing.html
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+ /datum/element/suturing - byond
+
+
+
+
+
+
+Vars
+ description_pain "it feels like your [left arm] is []!"
+ description_verb ex. 'suture', "you begin to [] the [wounds]". ALso has 's' put on the end sometimes, '[suture]s'.
+ description_verbing ex 'suturing', "[user] finishes [] the [wounds]"
+ suture_brute Damage types that can be treated. Both are healed simultaneously.
+With above: a brute + burn tool with time 2, used on a person with 20 brute and 20 burns, would heal 10 of each type after a 4 second delay.
+On a person with just 20 brute, it would heal 10 brute after 2 seconds.
+ time_per_damage_point Action time (in deciseconds) to heal each point of damage.
+ Var Details description_pain
+
+
+
+
+
+ "it feels like your [left arm] is []!"
description_verb
+
+
+
+
+
+ ex. 'suture', "you begin to [] the [wounds]". ALso has 's' put on the end sometimes, '[suture]s'.
description_verbing
+
+
+
+
+
+ ex 'suturing', "[user] finishes [] the [wounds]"
suture_brute
+
+
+
+
+
+ Damage types that can be treated. Both are healed simultaneously.
+With above: a brute + burn tool with time 2, used on a person with 20 brute and 20 burns, would heal 10 of each type after a 4 second delay.
+On a person with just 20 brute, it would heal 10 brute after 2 seconds.
time_per_damage_point
+
+
+
+
+
+ Action time (in deciseconds) to heal each point of damage.
+
+
+
diff --git a/datum/emergency_call.html b/datum/emergency_call.html
new file mode 100644
index 000000000000..66238736ee36
--- /dev/null
+++ b/datum/emergency_call.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/emergency_call - byond
+
+
+
+
+
+
+
+ Var Details chance_hidden
+
+
+
+
+
+ Probability that the message will be replaced with static. - prob(chance_hidden)
home_base
+
+
+
+
+
+ the /datum/lazy_template we should attempt to spawn in for the return journey
shuttle
+
+
+
+
+
+ the shuttle being used by this distress call
static_message
+
+
+
+
+
+ Message to display when distress beacon is hidden
+
+
+
diff --git a/datum/emergency_call/upp.html b/datum/emergency_call/upp.html
new file mode 100644
index 000000000000..a95f162cdd3b
--- /dev/null
+++ b/datum/emergency_call/upp.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/emergency_call/upp - byond
+
+
+
+
+
+
+Proc Details create_member
+
+ UPP
+
+
+
diff --git a/datum/emote.html b/datum/emote.html
new file mode 100644
index 000000000000..69c540f74d90
--- /dev/null
+++ b/datum/emote.html
@@ -0,0 +1,308 @@
+
+
+
+
+
+
+ /datum/emote - byond
+
+
+
+
+
+
+Most of the text that's not someone talking is based off of this.
+Yes, the displayed message is stored on the datum, it would cause problems
+for emotes with a message that can vary, but that's handled differently in
+run_emote(), so be sure to use can_message_change if you plan to have
+different displayed messages from player to player.
Vars
+ alt_message Message displayed for audible emotes if someone's deaf. Only use this if key_third_person can't be acceptably used.
+ie. if someone says *medic and someone's deaf, they'd receive [X] calls for a medic! silently., which is not ideal.
+ audio_cooldown How long is the cooldown on the audio of the emote, if it has one?
+ can_message_change Does this message have a message that can be modified by the user?
+ cooldown The cooldown between the uses of the emote.
+ emote_type Whether the emote is visible and/or audible bitflag
+ 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.
+ keybind Should this emote generate a keybind?
+ keybind_category Does this emote have a custom keybind category?
+ message Message displayed when emote is used.
+ 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.
+ 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 Will only work if the emote is EMOTE_AUDIBLE.
+ only_forced_audio Can only code call this event instead of the player.
+ say_message What message to make the user send with the emote?
+ sound Sound to play when emote is called.
+ stat_allowed In which state can you use this emote? (Check stat.dm for a full list of them)
+ vary Used for the honk borg emote.
+ volume What volume should the sound be played at? Procs
+ can_run_emote Check to see if the user is allowed to run the emote.
+ check_cooldown For handling emote cooldown, return true to allow the emote to happen.
+ get_sound To get the sound that the emote plays, for special sound interactions depending on the mob.
+ replace_pronoun To replace pronouns in the inputed string with the user's proper pronouns.
+ run_emote Handles the modifications and execution of emotes.
+ run_langchat Handles above-head chat automatically running on an emote.
+ 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.
+ Var Details alt_message
+
+
+
+
+
+ Message displayed for audible emotes if someone's deaf. Only use this if key_third_person can't be acceptably used.
+ie. if someone says *medic and someone's deaf, they'd receive [X] calls for a medic! silently., which is not ideal.
audio_cooldown
+
+
+
+
+
+ How long is the cooldown on the audio of the emote, if it has one?
can_message_change
+
+
+
+
+
+ Does this message have a message that can be modified by the user?
cooldown
+
+
+
+
+
+ The cooldown between the uses of the emote.
emote_type
+
+
+
+
+
+ Whether the emote is visible and/or audible bitflag
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.
keybind
+
+
+
+
+
+ Should this emote generate a keybind?
keybind_category
+
+
+
+
+
+ Does this emote have a custom keybind category?
message
+
+
+
+
+
+ Message displayed when emote is used.
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.
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
+
+
+
+
+
+ Will only work if the emote is EMOTE_AUDIBLE.
only_forced_audio
+
+
+
+
+
+ Can only code call this event instead of the player.
say_message
+
+
+
+
+
+ What message to make the user send with the emote?
sound
+
+
+
+
+
+ Sound to play when emote is called.
stat_allowed
+
+
+
+
+
+ In which state can you use this emote? (Check stat.dm for a full list of them)
vary
+
+
+
+
+
+ Used for the honk borg emote.
volume
+
+
+
+
+
+ What volume should the sound be played at?
Proc Details 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.
check_cooldown(/mob /user, intentional)
+
+
+
+
+
+ For handling emote cooldown, return true to allow the emote to happen.
+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.
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.
replace_pronoun(/mob /user, msg)
+
+
+
+
+
+ To replace pronouns in the inputed string with the user's proper pronouns.
+Arguments:
+
+user - Person that is trying to send the emote.
+msg - The string to modify.
+
+Returns the modified msg string.
run_emote(/mob /user, params, type_override, intentional)
+
+
+
+
+
+ Handles the modifications and execution of emotes.
+Arguments:
+
+user - Person that is trying to send the emote.
+params - Parameters 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.
run_langchat(/mob /user, /list/group)
+
+
+
+
+
+ Handles above-head chat automatically running on an emote.
+Arguments:
+
+user - Person trying to send the emote
+group - The list of people that will see this emote being
+ 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)
+
+
+
+
+
+ Replaces the %t in the message in message_param by params.
+Arguments:
+
+user - Person that is trying to send the emote.
+params - Parameters added after the emote.
+
+Returns the modified string.
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.
+
+
+
diff --git a/datum/emote/living/carbon/human.html b/datum/emote/living/carbon/human.html
new file mode 100644
index 000000000000..ceeb741a5539
--- /dev/null
+++ b/datum/emote/living/carbon/human.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/emote/living/carbon/human - byond
+
+
+
+
+
+
+
+ Var Details species_type_allowed_typecache
+
+
+
+
+
+ Species that can use this emote.
species_type_blacklist_typecache
+
+
+
+
+
+ Species that can't use this emote.
+
+
+
diff --git a/datum/emote/living/carbon/human/synthetic/working_joe.html b/datum/emote/living/carbon/human/synthetic/working_joe.html
new file mode 100644
index 000000000000..13391f4b089b
--- /dev/null
+++ b/datum/emote/living/carbon/human/synthetic/working_joe.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/emote/living/carbon/human/synthetic/working_joe - byond
+
+
+
+
+
+
+Vars
+ category A general category for the emote, for use in the WJ emote panel. See [code/__DEFINES/emote_panels.dm] for categories.
+ haz_sound Path to hazard joe variant sound
+ joe_flag What Working Joe types can use this emote
+ override_say Override text for the emote to be displayed in the WJ emote panel
+ Var Details category
+
+
+
+
+
+ A general category for the emote, for use in the WJ emote panel. See [code/__DEFINES/emote_panels.dm] for categories.
haz_sound
+
+
+
+
+
+ Path to hazard joe variant sound
joe_flag
+
+
+
+
+
+ What Working Joe types can use this emote
override_say
+
+
+
+
+
+ Override text for the emote to be displayed in the WJ emote panel
+
+
+
diff --git a/datum/emote/living/carbon/human/yautja.html b/datum/emote/living/carbon/human/yautja.html
new file mode 100644
index 000000000000..0f31f633c20e
--- /dev/null
+++ b/datum/emote/living/carbon/human/yautja.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/emote/living/carbon/human/yautja - byond
+
+
+
+
+
+
+Vars
+ category A general category for the emote, for use in the Yautja emote panel. See [code/__DEFINES/emote_panels.dm] for categories.
+ no_panel Override for being in panel or not
+ override_say Override text for the emote to be displayed in the Yautja emote panel
+ Var Details category
+
+
+
+
+
+ A general category for the emote, for use in the Yautja emote panel. See [code/__DEFINES/emote_panels.dm] for categories.
no_panel
+
+
+
+
+
+ Override for being in panel or not
override_say
+
+
+
+
+
+ Override text for the emote to be displayed in the Yautja emote panel
+
+
+
diff --git a/datum/entity/player.html b/datum/entity/player.html
new file mode 100644
index 000000000000..b751d19080ef
--- /dev/null
+++ b/datum/entity/player.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/entity/player - byond
+
+
+
+
+
+
+Procs
+ add_perma_ban Permanently bans this user, with the provided reason. The banner (/datum/entity/player ) argument is optional, as this can be done without admin intervention.
Proc Details add_perma_ban
+
+ Permanently bans this user, with the provided reason. The banner (/datum/entity/player ) argument is optional, as this can be done without admin intervention.
+
+
+
diff --git a/datum/entity/player_note.html b/datum/entity/player_note.html
new file mode 100644
index 000000000000..88fa05527220
--- /dev/null
+++ b/datum/entity/player_note.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/entity/player_note - byond
+
+
+
+
+
+
+Vars
+ note_category The category the note is. Admin/Merit/Commander/Synthetic/Yautja
+ Var Details note_category
+
+
+
+
+
+ The category the note is. Admin/Merit/Commander/Synthetic/Yautja
+
+
+
diff --git a/datum/entity_meta/stickyban.html b/datum/entity_meta/stickyban.html
new file mode 100644
index 000000000000..615857f57209
--- /dev/null
+++ b/datum/entity_meta/stickyban.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/entity_meta/stickyban - byond
+
+
+
+
+
+
+Procs
+ on_insert We abuse the on_insert from ndatabase here to ensure we have the synced ID of the new stickyban when applying a lot of associated bans. If we don't have a matching pager ban with the new sticky's identifier, we stop.
Proc Details on_insert(/datum /entity/stickyban/new_sticky)
+
+
+
+
+
+ We abuse the on_insert from ndatabase here to ensure we have the synced ID of the new stickyban when applying a lot of associated bans. If we don't have a matching pager ban with the new sticky's identifier, we stop.
+
+
+
diff --git a/datum/equipment_preset.html b/datum/equipment_preset.html
new file mode 100644
index 000000000000..f006c383dc01
--- /dev/null
+++ b/datum/equipment_preset.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/equipment_preset - byond
+
+
+
+
+
+
+Procs
+ add_survivor_weapon_civilian Randomizes the primary weapon a survivor might find at the start of the outbreak in a gun cabinet.
+For the most part you will stil get a shotgun but there is an off chance you get something unique.
+If you dont like the weapon deal with it. Cursed ammo for shotguns is intentional for scarcity reasons.
+Some weapons may not appear at all in a colony so they will need the extra ammo.
+MERC, and DB needed a handfull of shells to compete with the normal CMB.
+ get_antag_clothing_equipment Antag Vendor Equipment
Proc Details add_survivor_weapon_civilian
+
+ Randomizes the primary weapon a survivor might find at the start of the outbreak in a gun cabinet.
+For the most part you will stil get a shotgun but there is an off chance you get something unique.
+If you dont like the weapon deal with it. Cursed ammo for shotguns is intentional for scarcity reasons.
+Some weapons may not appear at all in a colony so they will need the extra ammo.
+MERC, and DB needed a handfull of shells to compete with the normal CMB.
get_antag_clothing_equipment()
+
+
+
+
+
+ Antag Vendor Equipment
+
+
+
diff --git a/datum/equipment_preset/survivor/forecon/marksman.html b/datum/equipment_preset/survivor/forecon/marksman.html
new file mode 100644
index 000000000000..2a430da1bfb6
--- /dev/null
+++ b/datum/equipment_preset/survivor/forecon/marksman.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ /datum/equipment_preset/survivor/forecon/marksman - byond
+
+
+
+
+
+
+
+
+
+
diff --git a/datum/equipment_preset/survivor/forecon/smartgunner.html b/datum/equipment_preset/survivor/forecon/smartgunner.html
new file mode 100644
index 000000000000..c97e11173dd2
--- /dev/null
+++ b/datum/equipment_preset/survivor/forecon/smartgunner.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ /datum/equipment_preset/survivor/forecon/smartgunner - byond
+
+
+
+
+
+
+
+
+
+
diff --git a/datum/equipment_preset/survivor/forecon/sniper.html b/datum/equipment_preset/survivor/forecon/sniper.html
new file mode 100644
index 000000000000..6926368216f0
--- /dev/null
+++ b/datum/equipment_preset/survivor/forecon/sniper.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ /datum/equipment_preset/survivor/forecon/sniper - byond
+
+
+
+
+
+
+
+
+
+
diff --git a/datum/equipment_preset/survivor/forecon/tech.html b/datum/equipment_preset/survivor/forecon/tech.html
new file mode 100644
index 000000000000..94bc85288371
--- /dev/null
+++ b/datum/equipment_preset/survivor/forecon/tech.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ /datum/equipment_preset/survivor/forecon/tech - byond
+
+
+
+
+
+
+
+
+
+
diff --git a/datum/equipment_preset/synth/working_joe.html b/datum/equipment_preset/synth/working_joe.html
new file mode 100644
index 000000000000..703c8cc6f26f
--- /dev/null
+++ b/datum/equipment_preset/synth/working_joe.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/equipment_preset/synth/working_joe - byond
+
+
+
+
+
+
+Vars
+ joe_type Used to set species when loading race
+ Var Details joe_type
+
+
+
+
+
+ Used to set species when loading race
+
+
+
diff --git a/datum/equipment_preset/tutorial.html b/datum/equipment_preset/tutorial.html
new file mode 100644
index 000000000000..4767868b7da3
--- /dev/null
+++ b/datum/equipment_preset/tutorial.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/equipment_preset/tutorial - byond
+
+
+
+
+
+
+Vars
+ underfed If the player should start out underfed
+ Var Details underfed
+
+
+
+
+
+ If the player should start out underfed
+
+
+
diff --git a/datum/equipment_preset/twe/royal_marine.html b/datum/equipment_preset/twe/royal_marine.html
new file mode 100644
index 000000000000..47f7d3adbb9b
--- /dev/null
+++ b/datum/equipment_preset/twe/royal_marine.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/equipment_preset/twe/royal_marine - byond
+
+
+
+
+
+
+
+ Var Details headset_type
+
+
+
+
+
+ Gives the Royal Marines their radios
+
+
+
diff --git a/datum/equipment_preset/uscm.html b/datum/equipment_preset/uscm.html
new file mode 100644
index 000000000000..4e552ce2b396
--- /dev/null
+++ b/datum/equipment_preset/uscm.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/equipment_preset/uscm - byond
+
+
+
+
+
+
+Vars
+ ert_squad Allows the squad to be set even if spawned on admin z level
+ Var Details ert_squad
+
+
+
+
+
+ Allows the squad to be set even if spawned on admin z level
+
+
+
diff --git a/datum/escape_menu.html b/datum/escape_menu.html
new file mode 100644
index 000000000000..e81a3554ffef
--- /dev/null
+++ b/datum/escape_menu.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/escape_menu - byond
+
+
+
+
+
+
+Vars
+ client The client that owns this escape menu
+ Var Details client
+
+
+
+
+
+ The client that owns this escape menu
+
+
+
diff --git a/datum/flaying_datum.html b/datum/flaying_datum.html
new file mode 100644
index 000000000000..799a74143db2
--- /dev/null
+++ b/datum/flaying_datum.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/flaying_datum - byond
+
+
+
+
+
+
+Records status of flaying attempts and handles progress.
Proc Details
+ Loops until interrupted or done.
+
+
+
diff --git a/datum/font.html b/datum/font.html
new file mode 100644
index 000000000000..d8c6e7bc6df5
--- /dev/null
+++ b/datum/font.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/font - byond
+
+
+
+
+
+
+A font datum, it exists to define a custom font to use in a span style later.
Vars
+ font_family The font file we link to.
+ name Font name, just so people know what to put in their span style.
+ Var Details font_family
+
+
+
+
+
+ The font file we link to.
name
+
+
+
+
+
+ Font name, just so people know what to put in their span style.
+
+
+
diff --git a/datum/game_decorator/halloween.html b/datum/game_decorator/halloween.html
new file mode 100644
index 000000000000..a80ef38eff8e
--- /dev/null
+++ b/datum/game_decorator/halloween.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/game_decorator/halloween - byond
+
+
+
+
+
+
+Procs
+ get_days_remaining Get the number of days remaining to event, or -1 if not applicable
Proc Details get_days_remaining()
+
+
+
+
+
+ Get the number of days remaining to event, or -1 if not applicable
+
+
+
diff --git a/datum/game_decorator/halloween/cobwebs.html b/datum/game_decorator/halloween/cobwebs.html
new file mode 100644
index 000000000000..9f72561115fc
--- /dev/null
+++ b/datum/game_decorator/halloween/cobwebs.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/game_decorator/halloween/cobwebs - byond
+
+
+
+
+
+
+Cobweb decorator: adds more and more cobwebs as you go through the month
Vars
+ base_chance How much prob() chance to put a cobweb during halloween proper
+ ramp_chance How much to remove per day before date
+ ramp_scale How much to scale cobwebs alpha down per day (1 - ramp_scale * days, affects alpha & size)
+ scale_rand Extra randomness removed onto scale before full blown halloween
+ Var Details base_chance
+
+
+
+
+
+ How much prob() chance to put a cobweb during halloween proper
ramp_chance
+
+
+
+
+
+ How much to remove per day before date
ramp_scale
+
+
+
+
+
+ How much to scale cobwebs alpha down per day (1 - ramp_scale * days, affects alpha & size)
scale_rand
+
+
+
+
+
+ Extra randomness removed onto scale before full blown halloween
+
+
+
diff --git a/datum/game_mode.html b/datum/game_mode.html
new file mode 100644
index 000000000000..abcef021f1a2
--- /dev/null
+++ b/datum/game_mode.html
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+ /datum/game_mode - byond
+
+
+
+
+
+
+Vars
+ gear_scale Multiplier to the amount of marine gear, current value as calculated with modifiers
+ gear_scale_max Multiplier to the amount of marine gear, maximum reached value for
+ latejoin_larva_used Amount of latejoin_tally already awarded as larvas
+ role_mappings List of role titles to override to different roles when starting game
+ taskbar_icon When set and this gamemode is selected, the taskbar icon will change to the png selected here Procs
+ can_start can_start()
+Checks to see if the game can be setup and ran with the current number of players or whatnot.
+ ds_first_drop Triggered partway through the first drop, based on DROPSHIP_DROP_MSG_DELAY. Marines are underway but haven't yet landed.
+ ds_first_landed Triggered when the dropship first lands.
+ init_gear_scale Returns a multiplier to the amount of gear that is to be distributed roundstart, stored in /datum/game_mode/var/gear_scale
+ latejoin_update Updates [var/latejoin_tally] and [var/gear_scale] based on role weights of latejoiners/cryoers. Delta is the amount of role positions added/removed
+ pick_queen_spawn Pick and setup a queen spawn from landmarks, then spawns the player there alongside any required setup
+ 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
+ setup_structures Spawn structures relevant to the game mode setup, done before actual game setup. By default try to setup everything.
+ update_gear_scale Updates the /datum/game_mode/var/gear_scale multiplier based on joining and cryoing marines
+ Var Details gear_scale
+
+
+
+
+
+ Multiplier to the amount of marine gear, current value as calculated with modifiers
gear_scale_max
+
+
+
+
+
+ Multiplier to the amount of marine gear, maximum reached value for
latejoin_larva_used
+
+
+
+
+
+ Amount of latejoin_tally already awarded as larvas
role_mappings
+
+
+
+
+
+ List of role titles to override to different roles when starting game
taskbar_icon
+
+
+
+
+
+ When set and this gamemode is selected, the taskbar icon will change to the png selected here
Proc Details can_start(bypass_checks)
+
+
+
+
+
+ can_start()
+Checks to see if the game can be setup and ran with the current number of players or whatnot.
ds_first_drop
+
+ Triggered partway through the first drop, based on DROPSHIP_DROP_MSG_DELAY. Marines are underway but haven't yet landed.
+ Triggered when the dropship first lands.
init_gear_scale()
+
+
+
+
+
+ Returns a multiplier to the amount of gear that is to be distributed roundstart, stored in /datum/game_mode/var/gear_scale
latejoin_update(role, delta)
+
+
+
+
+
+ Updates [var/latejoin_tally] and [var/gear_scale] based on role weights of latejoiners/cryoers. Delta is the amount of role positions added/removed
pick_queen_spawn(/mob /player, hivenumber)
+
+
+
+
+
+ Pick and setup a queen spawn from landmarks, then spawns the player there alongside any required setup
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
setup_structures()
+
+
+
+
+
+ Spawn structures relevant to the game mode setup, done before actual game setup. By default try to setup everything.
update_gear_scale(delta)
+
+
+
+
+
+ Updates the /datum/game_mode/var/gear_scale multiplier based on joining and cryoing marines
+
+
+
diff --git a/datum/game_mode/colonialmarines.html b/datum/game_mode/colonialmarines.html
new file mode 100644
index 000000000000..8c3dbb2fdff4
--- /dev/null
+++ b/datum/game_mode/colonialmarines.html
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+ /datum/game_mode/colonialmarines - byond
+
+
+
+
+
+
+Procs
+ check_ground_humans Checks for humans groundside after hijack, spawns forsaken if requirements met
+ check_hijack_explosions Primes and fires off the explodey-pipes during hijack.
+ clear_lz_hazards Clears miasma smoke in landing zones
+ get_valid_sentry_turfs Returns a list of non-dense turfs using the given block arguments ignoring the provided structure types
+ shake_ship Makes the mainship shake, along with playing a klaxon sound effect.
+ spawn_lz_hazards Spawns miasma smoke in landing zones
+ spawn_lz_sentry Spawns a droppod with a temporary defense sentry at the given turf
+ start_lz_hazards Creates an OB warning at each LZ to warn of the miasma and then spawns the miasma
+ warn_lz_hazard Creates an OB warning at each LZ to warn of the incoming miasma
Proc Details check_ground_humans()
+
+
+
+
+
+ Checks for humans groundside after hijack, spawns forsaken if requirements met
check_hijack_explosions()
+
+
+
+
+
+ Primes and fires off the explodey-pipes during hijack.
clear_lz_hazards()
+
+
+
+
+
+ Clears miasma smoke in landing zones
get_valid_sentry_turfs(left, bottom, z, width, height, /list/structures_to_ignore)
+
+
+
+
+
+ Returns a list of non-dense turfs using the given block arguments ignoring the provided structure types
shake_ship()
+
+
+
+
+
+ Makes the mainship shake, along with playing a klaxon sound effect.
spawn_lz_hazards()
+
+
+
+
+
+ Spawns miasma smoke in landing zones
spawn_lz_sentry(/turf /target, /list/structures_to_break)
+
+
+
+
+
+ Spawns a droppod with a temporary defense sentry at the given turf
start_lz_hazards()
+
+
+
+
+
+ Creates an OB warning at each LZ to warn of the miasma and then spawns the miasma
warn_lz_hazard(lz)
+
+
+
+
+
+ Creates an OB warning at each LZ to warn of the incoming miasma
+
+
+
diff --git a/datum/health_scan.html b/datum/health_scan.html
new file mode 100644
index 000000000000..10b7fd72c891
--- /dev/null
+++ b/datum/health_scan.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ /datum/health_scan - byond
+
+
+
+
+
+
+vars reffing this on /mob/dead/observer, /obj/item/device/healthanalyzer, /obj/structure/machinery/cm_vending/sorted/medical, /obj/structure/machinery/body_scanconsole are called last_health_display
Procs
+ get_death_value Returns TRUE if the target is either dead or appears to be dead.
+ get_oxy_value Returns the oxygen value, unless they have FAKEDEATH - in which case it will instead make up a number to return.
+ look_at This is the proc for interacting with, or looking at, a mob's health display. Also contains skillchecks and the like. You may NOT call tgui interact directly, and you MUST set the detail level.
+ ui_act for checking if limbs are robot limbs
Proc Details get_death_value(/mob /target_mob)
+
+
+
+
+
+ Returns TRUE if the target is either dead or appears to be dead.
get_oxy_value(/mob /target_mob)
+
+
+
+
+
+ Returns the oxygen value, unless they have FAKEDEATH - in which case it will instead make up a number to return.
look_at(/mob /user, detail, bypass_checks, ignore_delay, alien, /datum /tgui /ui)
+
+
+
+
+
+ This is the proc for interacting with, or looking at, a mob's health display. Also contains skillchecks and the like. You may NOT call tgui interact directly, and you MUST set the detail level.
ui_act
+
+ for checking if limbs are robot limbs
+
+
+
diff --git a/datum/hive_status.html b/datum/hive_status.html
new file mode 100644
index 000000000000..bbc2ea944779
--- /dev/null
+++ b/datum/hive_status.html
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+ /datum/hive_status - byond
+
+
+
+
+
+
+
+ Var Details allow_queen_evolve
+
+
+
+
+
+ Set to false if you want to prevent evolutions into Queens
free_slots
+
+
+
+
+
+ Assoc list of free slots available to specific castes
hardcore
+
+
+
+
+
+ Set to true if you want to prevent bursts and spawns of new xenos. Will also prevent healing if the queen no longer exists
hijack_burrowed_left
+
+
+
+
+
+ how many burrowed is going to spawn during larva surge
hit_larva_pylon_limit
+
+
+
+
+
+ If hit limit of larva from pylons
hugger_timelock
+
+
+
+
+
+ When can huggers join the round
latejoin_burrowed
+
+
+
+
+
+ Set to false if you want to prevent getting burrowed larva from latejoin marines
lesser_drone_limit
+
+
+
+
+
+ How many lesser drones the hive can support
lesser_drone_minimum
+
+
+
+
+
+ Slots available for lesser drones will never go below this number
partial_larva
+
+
+
+
+
+ used by /datum/hive_status/proc/increase_larva_after_burst() to support non-integer increases to larva
playable_hugger_limit
+
+
+
+
+
+ How many huggers can the hive support
playable_hugger_max_divisor
+
+
+
+
+
+ This number divides the total xenos counted for slots to give the max number of facehuggers
playable_hugger_minimum
+
+
+
+
+
+ Minimum number of huggers available at any hive size
playable_lesser_drones_max_divisor
+
+
+
+
+
+ This number divides the total xenos counted for slots to give the max number of lesser drones
reporting_id
+
+
+
+
+
+ Short Hive ID as string used in stats reporting
tier_2_xenos
+
+
+
+
+
+ list of living tier2 xenos
tier_3_xenos
+
+
+
+
+
+ list of living tier3 xenos
totalXenos
+
+
+
+
+
+ list of living xenos
total_dead_xenos
+
+
+
+
+
+ list of previously living xenos (hardrefs currently)
used_slots
+
+
+
+
+
+ Assoc list of slots currently used by specific castes (for calculating free_slot usage)
Proc Details convert_partial_larva_to_full_larva()
+
+
+
+
+
+ Called after times when partial larva are added to process them to stored larva
+ Generate the image()'s requried for the evolution radial menu.
increase_larva_after_burst()
+
+
+
+
+
+ Called by /obj/item/alien_embryo when a host is bursting to determine extra larva per burst
setup_pylon_limits()
+
+
+
+
+
+ Sets up limits on pylons in New() for potential futureproofing with more static comms
+
+
+
diff --git a/datum/hive_status/tutorial.html b/datum/hive_status/tutorial.html
new file mode 100644
index 000000000000..76afdd2ff522
--- /dev/null
+++ b/datum/hive_status/tutorial.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/hive_status/tutorial - byond
+
+
+
+
+
+
+
+ Var Details hive_structures_limit
+
+
+
+
+
+ Can have many tutorials going at once.
+
+
+
diff --git a/datum/http_request.html b/datum/http_request.html
new file mode 100644
index 000000000000..903f0844936a
--- /dev/null
+++ b/datum/http_request.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/http_request - byond
+
+
+
+
+
+
+Vars
+ output_file If present response body will be saved to this file.
+ Var Details output_file
+
+
+
+
+
+ If present response body will be saved to this file.
+
+
+
diff --git a/datum/hud.html b/datum/hud.html
new file mode 100644
index 000000000000..4c99558422ef
--- /dev/null
+++ b/datum/hud.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/hud - byond
+
+
+
+
+
+
+Vars
+ plane_master_controllers Assoc list of controller groups, associated with key string group name with value of the plane master controller ref
+ Var Details 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
+
+
+
diff --git a/datum/hud_displays.html b/datum/hud_displays.html
new file mode 100644
index 000000000000..5031edd9fdb3
--- /dev/null
+++ b/datum/hud_displays.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/hud_displays - byond
+
+
+
+
+
+
+Holder datum for a zlevels data, concerning the overlays and the drawn level itself
+The individual image trackers have a raw and a normal list
+raw lists just store the images, while the normal ones are assoc list of [tracked_atom] = image
+the raw lists are to speed up the Fire() of the subsystem so we dont have to filter through
+WARNING!
+There is a byond bug: http://www.byond.com/forum/post/2661309
+That that forces us to use a separate list ref when accessing the lists of this datum
+Yea it hurts me too
Vars
+ hud_image Actual icon of the drawn zlevel with all of it's atoms
+ images_assoc Assoc list of updating images; list("[flag]" = list([source] = blip)
+ images_raw Raw list containing updating images by flag; list("[flag]" = list(blip))
+ x_offset x offset of the actual icon to center it to screens
+ y_offset y offset of the actual icons to keep it to screens
+ Var Details hud_image
+
+
+
+
+
+ Actual icon of the drawn zlevel with all of it's atoms
images_assoc
+
+
+
+
+
+ Assoc list of updating images; list("[flag]" = list([source] = blip)
images_raw
+
+
+
+
+
+ Raw list containing updating images by flag; list("[flag]" = list(blip))
x_offset
+
+
+
+
+
+ x offset of the actual icon to center it to screens
y_offset
+
+
+
+
+
+ y offset of the actual icons to keep it to screens
+
+
+
diff --git a/datum/interior.html b/datum/interior.html
new file mode 100644
index 000000000000..808090bd786c
--- /dev/null
+++ b/datum/interior.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/interior - byond
+
+
+
+
+
+
+Vars
+ map_template the map template associated with this interior
+ reservation the turf reservation associated with this interior
+ Var Details map_template
+
+
+
+
+
+ the map template associated with this interior
+ the turf reservation associated with this interior
+
+
+
diff --git a/datum/internal_organ.html b/datum/internal_organ.html
new file mode 100644
index 000000000000..e77d4bf384a2
--- /dev/null
+++ b/datum/internal_organ.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/internal_organ - byond
+
+
+
+
+
+
+
+ Var Details organ_status
+
+
+
+
+
+ status of organ - is it healthy, broken, bruised?
Proc Details set_organ_status()
+
+
+
+
+
+ Set the correct organ state
+
+
+
diff --git a/datum/item_storage_box.html b/datum/item_storage_box.html
new file mode 100644
index 000000000000..eb4ff8efc3c5
--- /dev/null
+++ b/datum/item_storage_box.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/item_storage_box - byond
+
+
+
+
+
+
+Vars
+ index The index that indentifies me inside GLOB.item_storage_box_cache
+ Var Details index
+
+
+
+
+
+ The index that indentifies me inside GLOB.item_storage_box_cache
+
+
+
diff --git a/datum/japanese_sound.html b/datum/japanese_sound.html
new file mode 100644
index 000000000000..f31e8f975ad7
--- /dev/null
+++ b/datum/japanese_sound.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/japanese_sound - byond
+
+
+
+
+
+
+a generic sound
Procs
+ geminate handle gemination, and make sure that if the sound is voiced the chance is lower
Proc Details geminate()
+
+
+
+
+
+ handle gemination, and make sure that if the sound is voiced the chance is lower
+
+
+
diff --git a/datum/job.html b/datum/job.html
new file mode 100644
index 000000000000..79e71c589b89
--- /dev/null
+++ b/datum/job.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /datum/job - byond
+
+
+
+
+
+
+Vars
+ gets_emergency_kit If TRUE, this job will spawn w/ a cryo emergency kit during evac/red alert
+ handle_spawn_and_equip When set to true, SSticker won't call spawn_in_player, instead calling the job's spawn_and_equip proc
+ job_options When set you will be able to choose between the different job options when selecting your role.
+Associated list. Main list elements - actual options, associated values - shorthands for job preferences menu (keep those short). Procs
+ filter_job_option Intended to be overwritten to handle any requirements for specific job variations that can be selected
+ handle_job_options Intended to be overwritten to handle when a job has variants that can be selected.
+ on_cryo Called when the job owner enters deep cryogenic storage
+ Var Details gets_emergency_kit
+
+
+
+
+
+ If TRUE, this job will spawn w/ a cryo emergency kit during evac/red alert
handle_spawn_and_equip
+
+
+
+
+
+ When set to true, SSticker won't call spawn_in_player, instead calling the job's spawn_and_equip proc
job_options
+
+
+
+
+
+ When set you will be able to choose between the different job options when selecting your role.
+Associated list. Main list elements - actual options, associated values - shorthands for job preferences menu (keep those short).
Proc Details filter_job_option(/mob /job_applicant)
+
+
+
+
+
+ Intended to be overwritten to handle any requirements for specific job variations that can be selected
handle_job_options(option)
+
+
+
+
+
+ Intended to be overwritten to handle when a job has variants that can be selected.
+ Called when the job owner enters deep cryogenic storage
+
+
+
diff --git a/datum/job/civilian/doctor.html b/datum/job/civilian/doctor.html
new file mode 100644
index 000000000000..0722f190357e
--- /dev/null
+++ b/datum/job/civilian/doctor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/job/civilian/doctor - byond
+
+
+
+
+
+
+Vars
+ doctor If this job is a doctor variant of the doctor role
+ Var Details doctor
+
+
+
+
+
+ If this job is a doctor variant of the doctor role
+
+
+
diff --git a/datum/job/civilian/reporter.html b/datum/job/civilian/reporter.html
new file mode 100644
index 000000000000..95e173704557
--- /dev/null
+++ b/datum/job/civilian/reporter.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/job/civilian/reporter - byond
+
+
+
+
+
+
+Vars
+ military If this job is a military variant of the reporter role
+ Var Details military
+
+
+
+
+
+ If this job is a military variant of the reporter role
+
+
+
diff --git a/datum/job/civilian/survivor.html b/datum/job/civilian/survivor.html
new file mode 100644
index 000000000000..3c2567c02dac
--- /dev/null
+++ b/datum/job/civilian/survivor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/job/civilian/survivor - byond
+
+
+
+
+
+
+Vars
+ hostile Whether or not the survivor is an inherently hostile to marines.
+ Var Details hostile
+
+
+
+
+
+ Whether or not the survivor is an inherently hostile to marines.
+
+
+
diff --git a/datum/keybinding/mob/target.html b/datum/keybinding/mob/target.html
new file mode 100644
index 000000000000..d49d774b5eb7
--- /dev/null
+++ b/datum/keybinding/mob/target.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/keybinding/mob/target - byond
+
+
+
+
+
+
+Procs
+ get_target_zone Returns the body zone which should be targeted when pressing this keybind.
Proc Details get_target_zone
+
+ Returns the body zone which should be targeted when pressing this keybind.
+
+
+
diff --git a/datum/launch_metadata.html b/datum/launch_metadata.html
new file mode 100644
index 000000000000..18ec08621605
--- /dev/null
+++ b/datum/launch_metadata.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /datum/launch_metadata - byond
+
+
+
+
+
+
+
+ Var Details end_throw_callbacks
+
+
+
+
+
+ A list of callbacks to invoke when the throw completes successfully
Proc Details invoke_end_throw_callbacks
+
+ Invoke end_throw_callbacks on this metadata.
+Takes argument of type /atom/movable
+
+
+
diff --git a/datum/lazy_template.html b/datum/lazy_template.html
new file mode 100644
index 000000000000..4b56fb3e6cd5
--- /dev/null
+++ b/datum/lazy_template.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+ /datum/lazy_template - byond
+
+
+
+
+
+
+Datum used to designate certain areas that do not need to exist nor be loaded at world start
+but do want to be loaded under certain circumstances. Use this for stuff like the nukie base or wizden, aka stuff that only matters when their antag is rolled.
Vars
+ map_dir Directory of maps to prefix to the filename
+ map_name The filename (without extension) of the map to load
+ uses_multiple_allocations If this is true each load will increment an index keyed to the type and it will load [map_name]_[index] Procs
+ lazy_load Does the grunt work of loading the template.
+ Var Details map_dir
+
+
+
+
+
+ Directory of maps to prefix to the filename
map_name
+
+
+
+
+
+ The filename (without extension) of the map to load
uses_multiple_allocations
+
+
+
+
+
+ If this is true each load will increment an index keyed to the type and it will load [map_name]_[index]
Proc Details lazy_load()
+
+
+
+
+
+ Does the grunt work of loading the template.
+
+
+
diff --git a/datum/log_category.html b/datum/log_category.html
new file mode 100644
index 000000000000..26a50b0245f6
--- /dev/null
+++ b/datum/log_category.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/log_category - byond
+
+
+
+
+
+
+The main datum that contains all log entries for a category
Vars
+ category The category this datum contains
+ config_flag If set this config flag is checked to enable this log category
+ entries List of all entries, in chronological order of when they were added Procs
+ add_entry Add an entry to this category. It is very important that any data you provide doesn't hold references to anything!
+ get_output_file Allows for category specific file splitting. Needs to accept a null entry for the default file.
+ write_entry Writes an entry to the output file for the category
+ Var Details category
+
+
+
+
+
+ The category this datum contains
config_flag
+
+
+
+
+
+ If set this config flag is checked to enable this log category
entries
+
+
+
+
+
+ List of all entries, in chronological order of when they were added
Proc Details add_entry(message, /list/data)
+
+
+
+
+
+ Add an entry to this category. It is very important that any data you provide doesn't hold references to anything!
get_output_file(/list/entry)
+
+
+
+
+
+ Allows for category specific file splitting. Needs to accept a null entry for the default file.
write_entry(/list/entry)
+
+
+
+
+
+ Writes an entry to the output file for the category
+
+
+
diff --git a/datum/log_holder.html b/datum/log_holder.html
new file mode 100644
index 000000000000..90693d1cf5cc
--- /dev/null
+++ b/datum/log_holder.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/log_holder - byond
+
+
+
+
+
+
+Main datum to manage logging actions
Vars
+ disabled_categories typecache list for categories that exist but are disabled
+ log_categories Associative: category -> datum
+ logging_start_timestamp When the log_holder first initialized
+ round_id Round ID, if set, that logging is initialized for Procs
+ Log This is Log because log is a byond internal proc
+ init_logging Assembles basic information for logging, creating the log category datums and checking for config flags as required
+ shutdown_logging Tells the log_holder to not allow any more logging to be done, and dumps all categories to their json file
+ Var Details disabled_categories
+
+
+
+
+
+ typecache list for categories that exist but are disabled
log_categories
+ – /list/datum/log_category
+
+
+
+
+ Associative: category -> datum
logging_start_timestamp
+
+
+
+
+
+ When the log_holder first initialized
round_id
+
+
+
+
+
+ Round ID, if set, that logging is initialized for
Proc Details Log(category, message, /list/data)
+
+
+
+
+
+ This is Log because log is a byond internal proc
init_logging()
+
+
+
+
+
+ Assembles basic information for logging, creating the log category datums and checking for config flags as required
shutdown_logging()
+
+
+
+
+
+ Tells the log_holder to not allow any more logging to be done, and dumps all categories to their json file
+
+
+
diff --git a/datum/looping_sound.html b/datum/looping_sound.html
new file mode 100644
index 000000000000..f677207aeb2b
--- /dev/null
+++ b/datum/looping_sound.html
@@ -0,0 +1,260 @@
+
+
+
+
+
+
+ /datum/looping_sound - byond
+
+
+
+
+
+
+A datum for sounds that need to loop, with a high amount of configurability.
Vars
+ chance Chance per loop to play a mid_sound.
+ direct If true, plays directly to provided atoms instead of from them.
+ end_sound (soundfile) The sound played after the main loop has concluded.
+ end_volume Override for volume of end sound.
+ extra_range The extra range of the sound in tiles, defaults to 0.
+ falloff_distance only applicable to is_sound_projecting: max range till sound volume starts dropping as distance increases
+ is_sound_projecting Let's you make a "loud" sound that "projects." IE you can hear this sound from a further distance away.
+Think of like an air raid siren. They're loud if you're close yeah... but you can hear them from mad far away, bruv
+with a longer "falloff distance." Fixes the extra_range stuff
+ loop_started Has the looping started yet?
+ max_loops The max amount of loops to run for.
+ mid_length The length of time to wait between playing mid_sounds.
+ mid_sounds (list or soundfile) Since this can be either a list or a single soundfile you can have random sounds. May contain further lists but must contain a soundfile at the end.
+ parent The source of the sound, or the recipient of the sound.
+ skip_starting_sounds Do we skip the starting sounds?
+ start_length How long to wait before starting the main loop after playing start_sound.
+ start_sound (soundfile) Played before starting the mid_sounds loop.
+ start_volume Override for volume of start sound.
+ timer_id The ID of the timer that's used to loop the sounds.
+ vary Whether or not the sounds will vary in pitch when played.
+ volume Sound output volume. Procs
+ get_sound Returns the sound we should now be playing.
+ handle_parent_del A simple proc to handle the deletion of the parent, so that it does not force it to hard-delete.
+ is_active A simple proc that lets us know whether the sounds are currently active or not.
+ on_start A proc that's there to handle delaying the main sounds if there's a start_sound, and simply starting the sound loop in general.
+ on_stop Simple proc that's executed when the looping sound is stopped, so that the end_sound
can be played, if there's one.
+ play The proc that handles actually playing the sound.
+ set_parent A simple proc to change who our parent is set to, also handling registering and unregistering the QDELETING signals on the parent.
+ sound_loop A simple proc handling the looping of the sound itself.
+ start The proc to actually kickstart the whole sound sequence. This is what you should call to start the looping_sound
.
+ start_sound_loop The proc that handles starting the actual core sound loop.
+ stop The proc to call to stop the sound loop.
+ Var Details chance
+
+
+
+
+
+ Chance per loop to play a mid_sound.
direct
+
+
+
+
+
+ If true, plays directly to provided atoms instead of from them.
end_sound
+
+
+
+
+
+ (soundfile) The sound played after the main loop has concluded.
end_volume
+
+
+
+
+
+ Override for volume of end sound.
+ The extra range of the sound in tiles, defaults to 0.
falloff_distance
+
+
+
+
+
+ only applicable to is_sound_projecting: max range till sound volume starts dropping as distance increases
is_sound_projecting
+
+
+
+
+
+ Let's you make a "loud" sound that "projects." IE you can hear this sound from a further distance away.
+Think of like an air raid siren. They're loud if you're close yeah... but you can hear them from mad far away, bruv
+with a longer "falloff distance." Fixes the extra_range stuff
loop_started
+
+
+
+
+
+ Has the looping started yet?
max_loops
+
+
+
+
+
+ The max amount of loops to run for.
mid_length
+
+
+
+
+
+ The length of time to wait between playing mid_sounds.
mid_sounds
+
+
+
+
+
+ (list or soundfile) Since this can be either a list or a single soundfile you can have random sounds. May contain further lists but must contain a soundfile at the end.
parent
+
+
+
+
+
+ The source of the sound, or the recipient of the sound.
skip_starting_sounds
+
+
+
+
+
+ Do we skip the starting sounds?
start_length
+
+
+
+
+
+ How long to wait before starting the main loop after playing start_sound.
start_sound
+
+
+
+
+
+ (soundfile) Played before starting the mid_sounds loop.
start_volume
+
+
+
+
+
+ Override for volume of start sound.
timer_id
+
+
+
+
+
+ The ID of the timer that's used to loop the sounds.
vary
+
+
+
+
+
+ Whether or not the sounds will vary in pitch when played.
volume
+
+
+
+
+
+ Sound output volume.
Proc Details get_sound(_mid_sounds)
+
+
+
+
+
+ Returns the sound we should now be playing.
handle_parent_del
+
+ A simple proc to handle the deletion of the parent, so that it does not force it to hard-delete.
is_active()
+
+
+
+
+
+ A simple proc that lets us know whether the sounds are currently active or not.
on_start()
+
+
+
+
+
+ A proc that's there to handle delaying the main sounds if there's a start_sound, and simply starting the sound loop in general.
on_stop()
+
+
+
+
+
+ Simple proc that's executed when the looping sound is stopped, so that the end_sound
can be played, if there's one.
play(soundfile, volume_override)
+
+
+
+
+
+ The proc that handles actually playing the sound.
+Arguments:
+
+soundfile - The soundfile we want to play.
+volume_override - The volume we want to play the sound at, overriding the volume
variable.
+ set_parent(new_parent)
+
+
+
+
+
+ A simple proc to change who our parent is set to, also handling registering and unregistering the QDELETING signals on the parent.
sound_loop(start_time)
+
+
+
+
+
+ A simple proc handling the looping of the sound itself.
+Arguments:
+
+start_time - The time at which the mid_sounds
started being played (so we know when to stop looping).
+ start(on_behalf_of)
+
+
+
+
+
+ The proc to actually kickstart the whole sound sequence. This is what you should call to start the looping_sound
.
+Arguments:
+
+on_behalf_of - The new object to set as a parent.
+ start_sound_loop()
+
+
+
+
+
+ The proc that handles starting the actual core sound loop.
stop(null_parent)
+
+
+
+
+
+ The proc to call to stop the sound loop.
+Arguments:
+
+null_parent - Whether or not we should set the parent to null (useful when destroying the looping_sound
itself). Defaults to FALSE.
+
+
+
+
diff --git a/datum/map_config.html b/datum/map_config.html
new file mode 100644
index 000000000000..93fef60252fb
--- /dev/null
+++ b/datum/map_config.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/map_config - byond
+
+
+
+
+
+
+Vars
+ override_map If truthy this is config for a round overridden map: search for override maps in data/, instead of using a path in maps
+ Var Details override_map
+
+
+
+
+
+ If truthy this is config for a round overridden map: search for override maps in data/, instead of using a path in maps
+
+
+
diff --git a/datum/map_report.html b/datum/map_report.html
new file mode 100644
index 000000000000..9f382f790233
--- /dev/null
+++ b/datum/map_report.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/map_report - byond
+
+
+
+
+
+
+An error report generated by [parsed_map/check_for_errors].
Vars
+ loadable Whether this map can be loaded safely despite the errors. Procs
+ show_to Show a rendered version of this report to a client.
+ Var Details loadable
+
+
+
+
+
+ Whether this map can be loaded safely despite the errors.
Proc Details show_to
+
+ Show a rendered version of this report to a client.
+
+
+
diff --git a/datum/map_template.html b/datum/map_template.html
new file mode 100644
index 000000000000..a383a8e521b1
--- /dev/null
+++ b/datum/map_template.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/map_template - byond
+
+
+
+
+
+
+Vars
+ created_atoms the list of atoms created by this template being loaded, only populated if returns_created_atoms is TRUE
+ default_area Default area associated with the map template
+ returns_created_atoms if true, creates a list of all atoms created by this template loading, defaults to FALSE
+ should_place_on_top if true, turfs loaded from this template are placed on top of the turfs already there, defaults to TRUE
+ Var Details created_atoms
+
+
+
+
+
+ the list of atoms created by this template being loaded, only populated if returns_created_atoms is TRUE
default_area
+
+
+
+
+
+ Default area associated with the map template
returns_created_atoms
+
+
+
+
+
+ if true, creates a list of all atoms created by this template loading, defaults to FALSE
should_place_on_top
+
+
+
+
+
+ if true, turfs loaded from this template are placed on top of the turfs already there, defaults to TRUE
+
+
+
diff --git a/datum/minimap_updator.html b/datum/minimap_updator.html
new file mode 100644
index 000000000000..c90fc0edeb74
--- /dev/null
+++ b/datum/minimap_updator.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/minimap_updator - byond
+
+
+
+
+
+
+Holder datum to ease updating of atoms to update
Vars
+ minimap Atom to update with the overlays
+ ztarget Target zlevel we want to be updating to
+ Var Details minimap
+
+
+
+
+
+ Atom to update with the overlays
ztarget
+
+
+
+
+
+ Target zlevel we want to be updating to
+
+
+
diff --git a/datum/mob_hud.html b/datum/mob_hud.html
new file mode 100644
index 000000000000..a776375a191a
--- /dev/null
+++ b/datum/mob_hud.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/mob_hud - byond
+
+
+
+
+
+
+Procs
+ refresh_hud Refreshes the HUD, adding user and sources if missing and then calls to add the HUD
Proc Details refresh_hud(/mob /user, /list/source)
+
+
+
+
+
+ Refreshes the HUD, adding user and sources if missing and then calls to add the HUD
+
+
+
diff --git a/datum/movement_detector.html b/datum/movement_detector.html
new file mode 100644
index 000000000000..2abc089eebd2
--- /dev/null
+++ b/datum/movement_detector.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+ /datum/movement_detector - byond
+
+
+
+
+
+
+A datum to handle the busywork of registering signals to handle in depth tracking of a movable
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
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/nanomanager.html b/datum/nanomanager.html
new file mode 100644
index 000000000000..e2bb516b6465
--- /dev/null
+++ b/datum/nanomanager.html
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+ /datum/nanomanager - byond
+
+
+
+
+
+
+Procs
+ New Create a new nanomanager instance.
+This proc generates a list of assets which are to be sent to each client on connect
+ close_user_uis Close /nanoui uis belonging to user
+ get_open_ui Get an open /nanoui ui for the current user, src_object and ui_key
+ try_update_ui Get an open /nanoui ui for the current user, src_object and ui_key and try to update it with data
+ ui_closed Remove a /nanoui ui from the list of open uis
+This is called by the /nanoui close() proc
+ ui_opened Add a /nanoui ui to the list of open uis
+This is called by the /nanoui open() proc
+ update_uis Update all /nanoui uis attached to src_object
+ update_user_uis Update /nanoui uis belonging to user
+ user_logout This is called on user logout
+Closes/clears all uis attached to the user's /mob
+ user_transferred This is called when a player transfers from one mob to another
+Transfers all open UIs to the new mob
Proc Details New()
+
+
+
+
+
+ Create a new nanomanager instance.
+This proc generates a list of assets which are to be sent to each client on connect
+@return /nanomanager new nanomanager object
close_user_uis(/mob /user, src_object, ui_key)
+
+
+
+
+
+ Close /nanoui uis belonging to user
+@param user /mob The mob who owns the uis
+@param src_object /obj|/mob If src_object is provided, only close uis which are attached to src_object (optional)
+@param ui_key string If ui_key is provided, only close uis with a matching ui_key (optional)
+@return int The number of uis closed
get_open_ui(/mob /user, src_object, ui_key)
+
+
+
+
+
+ Get an open /nanoui ui for the current user, src_object and ui_key
+@param user /mob The mob who opened/owns the ui
+@param src_object /obj|/mob The obj or mob which the ui belongs to
+@param ui_key string A string key used for the ui
+@return /nanoui Returns the found ui, or null if none exists
try_update_ui(/mob /user, src_object, ui_key, /datum /nanoui /ui, data, force_open)
+
+
+
+
+
+ Get an open /nanoui ui for the current user, src_object and ui_key and try to update it with data
+@param user /mob The mob who opened/owns the ui
+@param src_object /obj|/mob The obj or mob which the ui belongs to
+@param ui_key string A string key used for the ui
+@param ui /datum/nanoui An existing instance of the ui (can be null)
+@param data list The data to be passed to the ui, if it exists
+@param force_open boolean The ui is being forced to (re)open, so close ui if it exists (instead of updating)
+@return /nanoui Returns the found ui, for null if none exists
ui_closed
+
+ Remove a /nanoui ui from the list of open uis
+This is called by the /nanoui close() proc
+@param ui /nanoui The ui to remove
+@return int 0 if no ui was removed, 1 if removed successfully
ui_opened
+
+ Add a /nanoui ui to the list of open uis
+This is called by the /nanoui open() proc
+@param ui /nanoui The ui to add
+@return nothing
update_uis(src_object)
+
+
+
+
+
+ Update all /nanoui uis attached to src_object
+@param src_object /obj|/mob The obj or mob which the uis are attached to
+@return int The number of uis updated
update_user_uis(/mob /user, src_object, ui_key)
+
+
+
+
+
+ Update /nanoui uis belonging to user
+@param user /mob The mob who owns the uis
+@param src_object /obj|/mob If src_object is provided, only update uis which are attached to src_object (optional)
+@param ui_key string If ui_key is provided, only update uis with a matching ui_key (optional)
+@return int The number of uis updated
user_logout
+
+ This is called on user logout
+Closes/clears all uis attached to the user's /mob
+@param user /mob The user's mob
+@return nothing
user_transferred
+
+ This is called when a player transfers from one mob to another
+Transfers all open UIs to the new mob
+@param oldMob /mob The user's old mob
+@param newMob /mob The user's new mob
+@return nothing
+
+
+
diff --git a/datum/nanoui.html b/datum/nanoui.html
new file mode 100644
index 000000000000..2cbc95f732f6
--- /dev/null
+++ b/datum/nanoui.html
@@ -0,0 +1,278 @@
+
+
+
+
+
+
+ /datum/nanoui - byond
+
+
+
+
+
+
+Procs
+ New Create a new nanoui instance.
+ Topic This Topic() proc is called whenever a user clicks on a link within a Nano UI
+If the UI status is currently STATUS_INTERACTIVE then call the src_object Topic()
+If the src_object Topic() returns 1 (true) then update all UIs attached to src_object
+ add_common_assets Use this proc to add assets which are common to (and required by) all nano uis
+ add_script Add a JavsScript script to this UI
+These must be added before the UI has been opened, adding after that will have no effect
+ add_stylesheet Add a CSS stylesheet to this UI
+These must be added before the UI has been opened, adding after that will have no effect
+ add_template Add a template for this UI
+Templates are combined with the data sent to the UI to create the rendered view
+These must be added before the UI has been opened, adding after that will have no effect
+ close Close this UI
+ get_config_data Get config data to sent to the ui.
+ get_html Return the HTML for this UI
+ get_send_data Get data to sent to the ui.
+ on_close_winset Set the UI window to call the nanoclose verb when the window is closed
+This allows Nano to handle closed windows
+ open Open this UI
+ process Process this UI, updating the entire UI or just the status (aka visibility)
+This process proc is called by the master_controller
+ push_data Push data to an already open UI window
+ set_auto_update Set the ui to auto update (every master_controller tick)
+ set_auto_update_content Set the ui to update the main content (re-render it) on each update
+ set_auto_update_layout Set the ui to update the layout (re-render it) on each update, turning this on will break the map ui (if it's being used)
+ set_initial_data Set the initial data for the ui. This is vital as the data structure set here cannot be changed when pushing new updates.
+ set_map_z_level Toggle showing the map ui
+ set_show_map Toggle showing the map ui
+ set_state_key Set the state key for use in the frontend Javascript
+ set_status Set the current status (also known as visibility) of this ui.
+ set_window_options Set the browser window options for this ui
+ update Update the UI
+ update_status Update the status (visibility) of this ui based on the user's status
+ use_on_close_logic Set whether or not to use the "old" on close logic (mainly unset_interaction())
Proc Details New(nuser, nsrc_object, nui_key, ntemplate_filename, ntitle, nwidth, nheight, /atom /nref, nallowed)
+
+
+
+
+
+ Create a new nanoui instance.
+@param nuser /mob The mob who has opened/owns this ui
+@param nsrc_object /obj|/mob The obj or mob which this ui belongs to
+@param nui_key string A string key to use for this ui. Allows for multiple unique uis on one src_oject
+@param ntemplate string The filename of the template file from /nano/templates (e.g. "my_template.tmpl")
+@param ntitle string The title of this ui
+@param nwidth int the width of the ui window
+@param nheight int the height of the ui window
+@param nref /atom A custom ref to use if "on_close_logic" is set to 1
+@return /nanoui new nanoui object
Topic(href, href_list)
+
+
+
+
+
+ This Topic() proc is called whenever a user clicks on a link within a Nano UI
+If the UI status is currently STATUS_INTERACTIVE then call the src_object Topic()
+If the src_object Topic() returns 1 (true) then update all UIs attached to src_object
+@return nothing
add_common_assets()
+
+
+
+
+
+ Use this proc to add assets which are common to (and required by) all nano uis
+@return nothing
add_script(name, file)
+
+
+
+
+
+ Add a JavsScript script to this UI
+These must be added before the UI has been opened, adding after that will have no effect
+@param file string The name of the JavaScript file from /nano/js (e.g. "my_script.js")
+@return nothing
add_stylesheet(name, file)
+
+
+
+
+
+ Add a CSS stylesheet to this UI
+These must be added before the UI has been opened, adding after that will have no effect
+@param file string The name of the CSS file from /nano/css (e.g. "my_style.css")
+@return nothing
add_template(key, filename)
+
+
+
+
+
+ Add a template for this UI
+Templates are combined with the data sent to the UI to create the rendered view
+These must be added before the UI has been opened, adding after that will have no effect
+@param key string The key which is used to reference this template in the frontend
+@param filename string The name of the template file from /nano/templates (e.g. "my_template.tmpl")
+@return nothing
close()
+
+
+
+
+
+ Close this UI
+@return nothing
get_config_data()
+
+
+
+
+
+ Get config data to sent to the ui.
+@return /list config data
get_html()
+
+
+
+
+
+ Return the HTML for this UI
+@return string HTML for the UI
get_send_data(/list/data)
+
+
+
+
+
+ Get data to sent to the ui.
+@param data /list The list of general data for this ui (can be null to use previous data sent)
+@return /list data to send to the ui
on_close_winset()
+
+
+
+
+
+ Set the UI window to call the nanoclose verb when the window is closed
+This allows Nano to handle closed windows
+@return nothing
open()
+
+
+
+
+
+ Open this UI
+@return nothing
process(update)
+
+
+
+
+
+ Process this UI, updating the entire UI or just the status (aka visibility)
+This process proc is called by the master_controller
+@param update string For this UI to update
+@return nothing
push_data(data, force_push)
+
+
+
+
+
+ Push data to an already open UI window
+@return nothing
set_auto_update(nstate)
+
+
+
+
+
+ Set the ui to auto update (every master_controller tick)
+@param state int (bool) Set auto update to 1 or 0 (true/false)
+@return nothing
set_auto_update_content(nstate)
+
+
+
+
+
+ Set the ui to update the main content (re-render it) on each update
+@param state int (bool) Set update to 1 or 0 (true/false) (default 1)
+@return nothing
set_auto_update_layout(nstate)
+
+
+
+
+
+ Set the ui to update the layout (re-render it) on each update, turning this on will break the map ui (if it's being used)
+@param state int (bool) Set update to 1 or 0 (true/false) (default 0)
+@return nothing
set_initial_data(/list/data)
+
+
+
+
+
+ Set the initial data for the ui. This is vital as the data structure set here cannot be changed when pushing new updates.
+@param data /list The list of data for this ui
+@return nothing
set_map_z_level(nz)
+
+
+
+
+
+ Toggle showing the map ui
+@param nstate_key boolean 1 to show map, 0 to hide (default is 0)
+@return nothing
set_show_map(nstate)
+
+
+
+
+
+ Toggle showing the map ui
+@param nstate_key boolean 1 to show map, 0 to hide (default is 0)
+@return nothing
set_state_key(nstate_key)
+
+
+
+
+
+ Set the state key for use in the frontend Javascript
+@param nstate_key string The key of the state to use
+@return nothing
set_status(state, push_update)
+
+
+
+
+
+ Set the current status (also known as visibility) of this ui.
+@param state int The status to set, see the defines at the top of this file
+@param push_update int (bool) Push an update to the ui to update it's status (an update is always sent if the status has changed to red (0))
+@return nothing
set_window_options(nwindow_options)
+
+
+
+
+
+ Set the browser window options for this ui
+@param nwindow_options string The new window options
+@return nothing
update(force_open)
+
+
+
+
+
+ Update the UI
+@return nothing
update_status(push_update)
+
+
+
+
+
+ Update the status (visibility) of this ui based on the user's status
+@param push_update int (bool) Push an update to the ui to update it's status. This is set to 0/false if an update is going to be pushed anyway (to avoid unnessary updates)
+@return nothing
use_on_close_logic(state)
+
+
+
+
+
+ Set whether or not to use the "old" on close logic (mainly unset_interaction())
+@param state int (bool) Set on_close_logic to 1 or 0 (true/false)
+@return nothing
+
+
+
diff --git a/datum/nmcontext.html b/datum/nmcontext.html
new file mode 100644
index 000000000000..31075a3e83e6
--- /dev/null
+++ b/datum/nmcontext.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /datum/nmcontext - byond
+
+
+
+
+
+
+Context within which we resolve nightmare actions
Vars
+ config Config values used internally relevant to context
+ name User-friendly name
+ scenario Storage of scenario values in the context as KV
+ scheduler Holder for tasks to execute in the context
+ scheduler_type Scheduler task type
+ trace Runtime debug list of resolved nodes in the context Procs
+ get_file_path Resolve a config file path using context configuration
+ get_scenario_value Get a value from the scenario, or a global value
+ set_scenario_value Set a value in the scenario. This should only be used by manual user intervention, such as admins tweaking scenario!!
+ Var Details config
+
+
+
+
+
+ Config values used internally relevant to context
name
+
+
+
+
+
+ User-friendly name
scenario
+
+
+
+
+
+ Storage of scenario values in the context as KV
scheduler
+
+
+
+
+
+ Holder for tasks to execute in the context
scheduler_type
+
+
+
+
+
+ Scheduler task type
trace
+
+
+
+
+
+ Runtime debug list of resolved nodes in the context
Proc Details get_file_path(relative_path, file_type)
+
+
+
+
+
+ Resolve a config file path using context configuration
get_scenario_value(pname)
+
+
+
+
+
+ Get a value from the scenario, or a global value
set_scenario_value(pname, value)
+
+
+
+
+
+ Set a value in the scenario. This should only be used by manual user intervention, such as admins tweaking scenario!!
+
+
+
diff --git a/datum/nmnode.html b/datum/nmnode.html
new file mode 100644
index 000000000000..ef91a5a01ad9
--- /dev/null
+++ b/datum/nmnode.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/nmnode - byond
+
+
+
+
+
+
+Decriptive nightmare config nodes loaded from config files
Vars
+ id Unique identifier for referencing in JSON configuration
+ name User provided name for debugging
+ raw Original JSON object that was used to create this Procs
+ invoke Call wrapper for resolving nodes
+ resolve Implementation of the node, resolving into tasks in the given context
+ Var Details id
+
+
+
+
+
+ Unique identifier for referencing in JSON configuration
name
+
+
+
+
+
+ User provided name for debugging
raw
+
+
+
+
+
+ Original JSON object that was used to create this
Proc Details invoke
+
+ Call wrapper for resolving nodes
resolve
+
+ Implementation of the node, resolving into tasks in the given context
+
+
+
diff --git a/datum/nmnode/branch.html b/datum/nmnode/branch.html
new file mode 100644
index 000000000000..52dfa93a6efd
--- /dev/null
+++ b/datum/nmnode/branch.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/nmnode/branch - byond
+
+
+
+
+
+
+Holding node for several child nodes
+ Var Details nodes
+
+
+
+
+
+ Child nodes
+
+
+
diff --git a/datum/nmnode/mapload.html b/datum/nmnode/mapload.html
new file mode 100644
index 000000000000..f30e19cdb2a7
--- /dev/null
+++ b/datum/nmnode/mapload.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/nmnode/mapload - byond
+
+
+
+
+
+
+Abstract config node designating a map insertion
Vars
+ filepath Base file (or directory) path of map files
+ Var Details filepath
+
+
+
+
+
+ Base file (or directory) path of map files
+
+
+
diff --git a/datum/nmnode/mapload/landmark.html b/datum/nmnode/mapload/landmark.html
new file mode 100644
index 000000000000..8065cfe9ffa6
--- /dev/null
+++ b/datum/nmnode/mapload/landmark.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/nmnode/mapload/landmark - byond
+
+
+
+
+
+
+Designates insert of a given map file at a specified landmark
+ Var Details landmark
+
+
+
+
+
+ Landmark identifier
+
+
+
diff --git a/datum/nmnode/mapload/sprinkles.html b/datum/nmnode/mapload/sprinkles.html
new file mode 100644
index 000000000000..f02d40c9e333
--- /dev/null
+++ b/datum/nmnode/mapload/sprinkles.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+ /datum/nmnode/mapload/sprinkles - byond
+
+
+
+
+
+
+Similar to variations mode, but rolls all files individually rather
+than picking one, using name for landmark. The prefix number is used
+as a percentage chance.
+Example:
+some/folder/10.something_funny.dmm
+would have 10% chance to insert at the 'something_funny' landmark
+
+
+
diff --git a/datum/nmtask.html b/datum/nmtask.html
new file mode 100644
index 000000000000..7fd57ef1f705
--- /dev/null
+++ b/datum/nmtask.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ /datum/nmtask - byond
+
+
+
+
+
+
+Nightmare task, executing game actions as part of context
Vars
+ flags Task behavior flags
+ name Task name Procs
+ _invoke_async Internal wrapper for async exec
+ cleanup Free resources used by the task and its state, without deleting it
+ execute Task implementation
+ invoke_async Invoke task execution asynchronously
+If the return value is anything else than NIGHTMARE_TASK_ASYNC,
+the task will have completed, and callback fired, before this proc returns
+ invoke_sync Invoke task execution synchronously
+ Var Details flags
+
+
+
+
+
+ Task behavior flags
name
+
+
+
+
+
+ Task name
Proc Details _invoke_async(/datum /callback/async_callback)
+
+
+
+
+
+ Internal wrapper for async exec
cleanup()
+
+
+
+
+
+ Free resources used by the task and its state, without deleting it
execute()
+
+
+
+
+
+ Task implementation
invoke_async(/datum /callback/async_callback)
+
+
+
+
+
+ Invoke task execution asynchronously
+If the return value is anything else than NIGHTMARE_TASK_ASYNC,
+the task will have completed, and callback fired, before this proc returns
invoke_sync()
+
+
+
+
+
+ Invoke task execution synchronously
+
+
+
diff --git a/datum/nmtask/mapload.html b/datum/nmtask/mapload.html
new file mode 100644
index 000000000000..f9faafdd3ba2
--- /dev/null
+++ b/datum/nmtask/mapload.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/nmtask/mapload - byond
+
+
+
+
+
+
+Loads a chunk of map at the specified position
Procs
+ initialize_boundary_contents Initialize atoms/areas in bounds - basically a Nightmare version of [/datum/map_template/initTemplateBounds]
+ step_parse Step 1: Validate file and asks for parsing
Proc Details initialize_boundary_contents()
+
+
+
+
+
+ Initialize atoms/areas in bounds - basically a Nightmare version of [/datum/map_template/initTemplateBounds]
step_parse()
+
+
+
+
+
+ Step 1: Validate file and asks for parsing
+
+
+
diff --git a/datum/nmtask/scheduler/mapload.html b/datum/nmtask/scheduler/mapload.html
new file mode 100644
index 000000000000..2c63df10ef59
--- /dev/null
+++ b/datum/nmtask/scheduler/mapload.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/nmtask/scheduler/mapload - byond
+
+
+
+
+
+
+Handles map insertions sequentially and updating the game to match map insertions
Vars
+ tainted_bounds Map boundaries tainted by children nightmare tasks to be handled
+ Var Details tainted_bounds
+
+
+
+
+
+ Map boundaries tainted by children nightmare tasks to be handled
+
+
+
diff --git a/datum/object_window_info.html b/datum/object_window_info.html
new file mode 100644
index 000000000000..47ef5f275495
--- /dev/null
+++ b/datum/object_window_info.html
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+ /datum/object_window_info - byond
+
+
+
+
+
+
+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
+ 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
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/origin.html b/datum/origin.html
new file mode 100644
index 000000000000..e561693b1906
--- /dev/null
+++ b/datum/origin.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/origin - byond
+
+
+
+
+
+
+Procs
+ validate_name Return null if the name is correct, otherwise return a string containing the error message
Proc Details validate_name(name_to_check)
+
+
+
+
+
+ Return null if the name is correct, otherwise return a string containing the error message
+
+
+
diff --git a/datum/parsed_map.html b/datum/parsed_map.html
new file mode 100644
index 000000000000..c1844701437b
--- /dev/null
+++ b/datum/parsed_map.html
@@ -0,0 +1,166 @@
+
+
+
+
+
+
+ /datum/parsed_map - byond
+
+
+
+
+
+
+Vars
+ bounds Offset bounds. Same as parsed_bounds until load().
+ expanded_x If we've expanded world.maxy
+ expanded_y If we've expanded world.maxx
+ key_len The length of a key in this file. This is promised by the standard to be static
+ line_len The length of a line in this file. Not promised by dmm but standard dmm uses it, so we can trust it
+ loaded_areas List of area types we've loaded AS A PART OF THIS MAP
+We do this to allow non unique areas, so we'll only load one per map
+ loading If we are currently loading this map
+ matches_tgm Matches key formats in TMG (IE: newline after the ()
+ model_path Pulls out model paths for DMM
+ parsed_bounds Unoffset bounds. Null on parse failure.
+ turf_blacklist any turf in this list is skipped inside of build_coordinate. Lazy assoc list
+ var_edits_tgm Pulls out key value pairs for TGM Procs
+ New Parse a map, possibly cropping it.
+ _dmm_load Stanrdard loading, not used in production
+Doesn't take advantage of any tgm optimizations, which makes it slower but also more general
+Use this if for some reason your map format is messy
+ check_for_errors Check a parsed but not yet loaded map for errors.
+ dmm_build_cache Builds key caches for general formats
+Slower then the proc above, tho it could still be optimized slightly. it's just not a priority
+Since we don't run DMM maps, ever.
+ filter_grid_sets_based_on_z_bounds Iterates over all grid sets and returns ones with z values within the given bounds. Inclusive
+ load Load the parsed map into the world. You probably want /proc/load_map . Keep the signature the same.
+ Var Details bounds
+
+
+
+
+
+ Offset bounds. Same as parsed_bounds until load().
expanded_x
+
+
+
+
+
+ If we've expanded world.maxy
expanded_y
+
+
+
+
+
+ If we've expanded world.maxx
key_len
+
+
+
+
+
+ The length of a key in this file. This is promised by the standard to be static
line_len
+
+
+
+
+
+ The length of a line in this file. Not promised by dmm but standard dmm uses it, so we can trust it
loaded_areas
+
+
+
+
+
+ List of area types we've loaded AS A PART OF THIS MAP
+We do this to allow non unique areas, so we'll only load one per map
loading
+
+
+
+
+
+ If we are currently loading this map
matches_tgm
+
+
+
+
+
+ Matches key formats in TMG (IE: newline after the ()
model_path
+
+
+
+
+
+ Pulls out model paths for DMM
parsed_bounds
+
+
+
+
+
+ Unoffset bounds. Null on parse failure.
turf_blacklist
+
+
+
+
+
+ any turf in this list is skipped inside of build_coordinate. Lazy assoc list
var_edits_tgm
+
+
+
+
+
+ Pulls out key value pairs for TGM
Proc Details New(tfile, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, measureOnly)
+
+
+
+
+
+ Parse a map, possibly cropping it.
_dmm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete)
+
+
+
+
+
+ Stanrdard loading, not used in production
+Doesn't take advantage of any tgm optimizations, which makes it slower but also more general
+Use this if for some reason your map format is messy
check_for_errors()
+
+
+
+
+
+ Check a parsed but not yet loaded map for errors.
+Returns a /datum/map_report if there are errors or FALSE
otherwise.
dmm_build_cache(no_changeturf, bad_paths)
+
+
+
+
+
+ Builds key caches for general formats
+Slower then the proc above, tho it could still be optimized slightly. it's just not a priority
+Since we don't run DMM maps, ever.
filter_grid_sets_based_on_z_bounds(lower_z, upper_z)
+
+
+
+
+
+ Iterates over all grid sets and returns ones with z values within the given bounds. Inclusive
load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete)
+
+
+
+
+
+ Load the parsed map into the world. You probably want /proc/load_map . Keep the signature the same.
+
+
+
diff --git a/datum/particle_editor.html b/datum/particle_editor.html
new file mode 100644
index 000000000000..0bc032afe2e9
--- /dev/null
+++ b/datum/particle_editor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/particle_editor - byond
+
+
+
+
+
+
+Vars
+ target movable whose particles we want to be editing
+ Var Details
+ movable whose particles we want to be editing
+
+
+
diff --git a/datum/paygrade.html b/datum/paygrade.html
new file mode 100644
index 000000000000..704598c34a2b
--- /dev/null
+++ b/datum/paygrade.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/paygrade - byond
+
+
+
+
+
+
+Vars
+ default_faction The faction this paygrade is usually assigned to.
+ fprefix Factional prefix, currently only used by PMCs. In essence, a pre-prefix.
+ officer_grade If the grade refers to an officer equivalent or not.
+ pay_multiplier Actually gives you the fucking money from your paygrade in your ATM account. Multiplier of 1 equals PFC pay.
+ Var Details default_faction
+
+
+
+
+
+ The faction this paygrade is usually assigned to.
fprefix
+
+
+
+
+
+ Factional prefix, currently only used by PMCs. In essence, a pre-prefix.
officer_grade
+
+
+
+
+
+ If the grade refers to an officer equivalent or not.
pay_multiplier
+
+
+
+
+
+ Actually gives you the fucking money from your paygrade in your ATM account. Multiplier of 1 equals PFC pay.
+
+
+
diff --git a/datum/player_details.html b/datum/player_details.html
new file mode 100644
index 000000000000..1a25899baa43
--- /dev/null
+++ b/datum/player_details.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/player_details - byond
+
+
+
+
+
+
+Vars
+ larva_queue_time The descriminator for larva queue ordering: Generally set to timeofdeath except for facehuggers/admin z-level play
+ Var Details larva_queue_time
+
+
+
+
+
+ The descriminator for larva queue ordering: Generally set to timeofdeath except for facehuggers/admin z-level play
+
+
+
diff --git a/datum/player_info.html b/datum/player_info.html
new file mode 100644
index 000000000000..09165caed465
--- /dev/null
+++ b/datum/player_info.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/player_info - byond
+
+
+
+
+
+
+
+ Var Details author
+
+
+
+
+
+ Panels
+
+
+
diff --git a/datum/preferences.html b/datum/preferences.html
new file mode 100644
index 000000000000..61e2a43b1d55
--- /dev/null
+++ b/datum/preferences.html
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+ /datum/preferences - byond
+
+
+
+
+
+
+Vars
+ auto_observe If this client has auto observe enabled, used by /datum/orbit_menu
+ completed_tutorials A list of tutorials that the client has completed, saved across rounds
+ custom_cursors if this client has custom cursors enabled
+ pref_job_slots Holds assignment of character slots to jobs.
+ pref_special_job_options holds our preferred job options for jobs
+ read_traits State var to check if traits have been read in to modify
+trait points
+ tooltips if this client has tooltips enabled
+ trait_points State var for preferences to track trait points
+Change this value to set the amount of trait points you start with
+ traits The list of traits a client will gives its human mob upon spawn
+Store as typepaths Procs
+ SetChoices Job Preferences: Preferences for role at round start.
+ check_keybindings checks through keybindings for outdated unbound keys and updates them
+ copy_all_to Transfers both physical characteristics and character information to character
+ find_assigned_slot Loads appropriate character slot for the given job as assigned in preferences.
+ set_job_slots Job Assignments window: Assign unique characters to a particular job.
+ tutorial_list_to_savestring Converts a client's list of completed tutorials into a string for saving
+ tutorial_savestring_to_list Converts a saved string of completed tutorials into a list for in-game use
+ Var Details auto_observe
+
+
+
+
+
+ If this client has auto observe enabled, used by /datum/orbit_menu
completed_tutorials
+
+
+
+
+
+ A list of tutorials that the client has completed, saved across rounds
custom_cursors
+
+
+
+
+
+ if this client has custom cursors enabled
pref_job_slots
+
+
+
+
+
+ Holds assignment of character slots to jobs.
pref_special_job_options
+
+
+
+
+
+ holds our preferred job options for jobs
read_traits
+
+
+
+
+
+ State var to check if traits have been read in to modify
+trait points
+ if this client has tooltips enabled
trait_points
+
+
+
+
+
+ State var for preferences to track trait points
+Change this value to set the amount of trait points you start with
traits
+
+
+
+
+
+ The list of traits a client will gives its human mob upon spawn
+Store as typepaths
Proc Details SetChoices(/mob /user, limit, /list/splitJobs, width, height)
+
+
+
+
+
+ Job Preferences: Preferences for role at round start.
+Arguments:
+
+limit - The amount of jobs allowed per column.
+splitJobs - Allows you split the table by job. You can make different tables for each department by including their heads.
+width - Screen' width.
+height - Screen's height.
+ check_keybindings()
+
+
+
+
+
+ checks through keybindings for outdated unbound keys and updates them
copy_all_to
+
+ Transfers both physical characteristics and character information to character
find_assigned_slot(job_title, is_late_join)
+
+
+
+
+
+ Loads appropriate character slot for the given job as assigned in preferences.
set_job_slots(/mob /user, limit, /list/splitJobs, width, height)
+
+
+
+
+
+ Job Assignments window: Assign unique characters to a particular job.
+Arguments:
+
+limit - The amount of jobs allowed per column.
+splitJobs - Allows you split the table by job. You can make different tables for each department by including their heads.
+width - Screen' width.
+height - Screen's height.
+ tutorial_list_to_savestring()
+
+
+
+
+
+ Converts a client's list of completed tutorials into a string for saving
tutorial_savestring_to_list(savestring)
+
+
+
+
+
+ Converts a saved string of completed tutorials into a list for in-game use
+
+
+
diff --git a/datum/quadtree.html b/datum/quadtree.html
new file mode 100644
index 000000000000..bddbb1c04f15
--- /dev/null
+++ b/datum/quadtree.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/quadtree - byond
+
+
+
+
+
+
+
+ Var Details final_divide
+
+
+
+
+
+ Don't divide further when truthy
+
+
+
diff --git a/datum/radar.html b/datum/radar.html
new file mode 100644
index 000000000000..d0cb613036a5
--- /dev/null
+++ b/datum/radar.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/radar - byond
+
+
+
+
+
+
+generic parent that handles most of the process
Vars
+ arrowstyle Used by the tgui interface, themed NT or Syndicate.
+ holder the thing which has this datum attached to it. REQUIRED!!! IF HOLDER DOES NOT EXIST, WE DO NOT EXIST. QDEL.
+ last_icon_state Used to keep track of the last value program_icon_state was set to, to prevent constant unnecessary update_appearance() calls
+ next_scan Used to store when the next scan is available. Updated by the scan() proc.
+ objects List of trackable entities. Updated by the scan() proc.
+ pointercolor Used by the tgui interface, themed for NT or Syndicate colors.
+ scan_cooldown cooldown between scans
+ selected Ref of the last trackable object selected by the user in the tgui window. Updated in the ui_act() proc. Procs
+ find_atom Finds the atom in the appropriate list that the selected
var indicates
+ scan Runs a scan of all the trackable atoms.
+ track Updates tracking information of the selected target.
+ trackable Checks the trackability of the selected target.
+ Var Details arrowstyle
+
+
+
+
+
+ Used by the tgui interface, themed NT or Syndicate.
holder
+
+
+
+
+
+ the thing which has this datum attached to it. REQUIRED!!! IF HOLDER DOES NOT EXIST, WE DO NOT EXIST. QDEL.
last_icon_state
+
+
+
+
+
+ Used to keep track of the last value program_icon_state was set to, to prevent constant unnecessary update_appearance() calls
next_scan
+
+
+
+
+
+ Used to store when the next scan is available. Updated by the scan() proc.
objects
+
+
+
+
+
+ List of trackable entities. Updated by the scan() proc.
pointercolor
+
+
+
+
+
+ Used by the tgui interface, themed for NT or Syndicate colors.
scan_cooldown
+
+
+
+
+
+ cooldown between scans
selected
+
+
+
+
+
+ Ref of the last trackable object selected by the user in the tgui window. Updated in the ui_act() proc.
Proc Details find_atom()
+
+
+
+
+
+ Finds the atom in the appropriate list that the selected
var indicates
+The selected
var holds a REF, which is a string. A mob REF may be
+something like "mob_209". In order to find the actual atom, we need
+to search the appropriate list for the REF string. This is dependant
+on the program (Lifeline uses GLOB.human_list, while Fission360 uses
+GLOB.poi_list), but the result will be the same; evaluate the string and
+return an atom reference.
scan()
+
+
+
+
+
+ Runs a scan of all the trackable atoms.
+Checks each entry in the GLOB of the specific trackable atoms against
+the track() proc, and fill the objects list with lists containing the
+atoms' names and REFs. The objects list is handed to the tgui screen
+for displaying to, and being selected by, the user. A two second
+sleep is used to delay the scan, both for thematical reasons as well
+as to limit the load players may place on the server using these
+somewhat costly loops.
track()
+
+
+
+
+
+ Updates tracking information of the selected target.
+The track() proc updates the entire set of information about the location
+of the target, including whether the Ntos window should use a pinpointer
+crosshair over the up/down arrows, or none in favor of a rotating arrow
+for far away targets. This information is returned in the form of a list.
trackable
+
+ Checks the trackability of the selected target.
+If the target is on the computer's Z level, or both are on station Z
+levels, and the target isn't untrackable, return TRUE.
+Arguments:
+*arg1 is the atom being evaluated.
+
+
+
diff --git a/datum/reagent/ethanol.html b/datum/reagent/ethanol.html
new file mode 100644
index 000000000000..530c8eabeeb9
--- /dev/null
+++ b/datum/reagent/ethanol.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/reagent/ethanol - byond
+
+
+
+
+
+
+Vars
+ accumulated_alcohol If it's a normal drink, let them drink a bit before they start feeling it.
+ boozepwr higher numbers mean the booze will have an effect faster.
+ effect_start This is when the properties are gonna hit. Drink in moderation.
+ Var Details accumulated_alcohol
+
+
+
+
+
+ If it's a normal drink, let them drink a bit before they start feeling it.
boozepwr
+
+
+
+
+
+ higher numbers mean the booze will have an effect faster.
effect_start
+
+
+
+
+
+ This is when the properties are gonna hit. Drink in moderation.
+
+
+
diff --git a/datum/reagents.html b/datum/reagents.html
new file mode 100644
index 000000000000..3a8215c881bf
--- /dev/null
+++ b/datum/reagents.html
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+ /datum/reagents - byond
+
+
+
+
+
+
+Procs
+ remove_any_but This proc is one that removes all reagents from the targeted datum other than the designated ignored reagent
+ set_source_mob You can search for specific reagents using the specific reagents arg.
+ trans_to Transfers to the reagents datum of an object
+ trans_to_datum Transfers to a reagent datum
+ trans_to_ingest Transfers to object as ingestion
Proc Details remove_any_but(reagent_to_ignore, amount)
+
+
+
+
+
+ This proc is one that removes all reagents from the targeted datum other than the designated ignored reagent
set_source_mob(new_source_mob, specific_reagent)
+
+
+
+
+
+ You can search for specific reagents using the specific reagents arg.
trans_to(/atom /target, amount, multiplier, preserve_data, reaction)
+
+
+
+
+
+ Transfers to the reagents datum of an object
trans_to_datum(/datum /reagents /target, amount, multiplier, preserve_data, reaction)
+
+
+
+
+
+ Transfers to a reagent datum
trans_to_ingest(/atom /movable /target, amount, multiplier, preserve_data)
+
+
+
+
+
+ Transfers to object as ingestion
+
+
+
diff --git a/datum/reagents/vessel.html b/datum/reagents/vessel.html
new file mode 100644
index 000000000000..378784015dfe
--- /dev/null
+++ b/datum/reagents/vessel.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/reagents/vessel - byond
+
+
+
+
+
+
+Proc Details inject_vessel(/atom /target, interaction, reactions, delay)
+
+
+
+
+
+ Injects all contents into an object
+
+
+
diff --git a/datum/redis_callback.html b/datum/redis_callback.html
new file mode 100644
index 000000000000..6f0dc1901c51
--- /dev/null
+++ b/datum/redis_callback.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+ /datum/redis_callback - byond
+
+
+
+
+
+
+This datum is used for assigning callbacks that run
+when a message is received on a specific channel. Subtypes of this
+are automatically registered in SSredis initialization
Vars
+ channel redis channel that this callback subscribes to Procs
+ on_message This proc is run when a message is received on the callback's channel.
+Must be overwritten.
+ Var Details channel
+
+
+
+
+
+ redis channel that this callback subscribes to
Proc Details on_message(message)
+
+
+
+
+
+ This proc is run when a message is received on the callback's channel.
+Must be overwritten.
+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 000000000000..d86f51888e5f
--- /dev/null
+++ b/datum/redis_message.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/redis_message - byond
+
+
+
+
+
+
+Used to hold redis messages created prior to the initialization of SSredis
Vars
+ channel destination redis channel
+ message message being sent to the channel
+ Var Details channel
+
+
+
+
+
+ destination redis channel
message
+
+
+
+
+
+ message being sent to the channel
+
+
+
diff --git a/datum/research_upgrades.html b/datum/research_upgrades.html
new file mode 100644
index 000000000000..b10fad70260b
--- /dev/null
+++ b/datum/research_upgrades.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /datum/research_upgrades - byond
+
+
+
+
+
+
+Vars
+ behavior which behavior should this type follow. Should this be completely excluded from the buy menu? should it be one of the dropdown options? or a normal item?
+ change_purchase The change of price for item per purchase, recommended for mass producing stuff or limited upgrade.
+ clearance_req Clearance requirment to buy this upgrade. 5x is level 6. Why is it not that way? no one knows.
+ desc name of upgrades, not items. Items are at research_upgrades.dm somewhere in item folder.
+ item_reference Path to the item, upgrade, if any.
+ maximum_price the maximum price which we cant go any more expensive, usually dont need to set this if change price is 0 or negative
+ minimum_price the minimum price which we cant go any cheaper usually dont need to set this if change price is 0 or positive
+ name unique to every upgrade. not the name of the item. name of the upgrade
+ upgrade_type In which tab the upgrade should be.
+ value_upgrade the price of the upgrade, refer to this: 500 is a runner, 8k is queen. T3 is usually 3k, woyer is 2k. Procs
+ on_purchase gets called once the product is purchased, override if you need to pass any special arguments or have special behavior on purchase.
+ Var Details behavior
+
+
+
+
+
+ which behavior should this type follow. Should this be completely excluded from the buy menu? should it be one of the dropdown options? or a normal item?
change_purchase
+
+
+
+
+
+ The change of price for item per purchase, recommended for mass producing stuff or limited upgrade.
clearance_req
+
+
+
+
+
+ Clearance requirment to buy this upgrade. 5x is level 6. Why is it not that way? no one knows.
desc
+
+
+
+
+
+ name of upgrades, not items. Items are at research_upgrades.dm somewhere in item folder.
item_reference
+
+
+
+
+
+ Path to the item, upgrade, if any.
maximum_price
+
+
+
+
+
+ the maximum price which we cant go any more expensive, usually dont need to set this if change price is 0 or negative
minimum_price
+
+
+
+
+
+ the minimum price which we cant go any cheaper usually dont need to set this if change price is 0 or positive
name
+
+
+
+
+
+ unique to every upgrade. not the name of the item. name of the upgrade
upgrade_type
+
+
+
+
+
+ In which tab the upgrade should be.
value_upgrade
+
+
+
+
+
+ the price of the upgrade, refer to this: 500 is a runner, 8k is queen. T3 is usually 3k, woyer is 2k.
Proc Details on_purchase(/turf /machine_loc)
+
+
+
+
+
+ gets called once the product is purchased, override if you need to pass any special arguments or have special behavior on purchase.
+
+
+
diff --git a/datum/role_reserved_slots.html b/datum/role_reserved_slots.html
new file mode 100644
index 000000000000..95b34929f791
--- /dev/null
+++ b/datum/role_reserved_slots.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/role_reserved_slots - byond
+
+
+
+
+
+
+special role slots datum. Stores category name, roles, amount of taken slots and total slots.
Vars
+ category_name category name for roles
+ roles roles, that fit this category. Don't put same role in more than one category, only first found is checked.
+ taken amount of slots taken.
+ total total amount of slots.
+ Var Details category_name
+
+
+
+
+
+ category name for roles
roles
+
+
+
+
+
+ roles, that fit this category. Don't put same role in more than one category, only first found is checked.
taken
+
+
+
+
+
+ amount of slots taken.
total
+
+
+
+
+
+ total amount of slots.
+
+
+
diff --git a/datum/round_event.html b/datum/round_event.html
new file mode 100644
index 000000000000..8dc60718438f
--- /dev/null
+++ b/datum/round_event.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/round_event - byond
+
+
+
+
+
+
+Vars
+ cancel_event Whether a admin wants this event to be cancelled
+ Var Details cancel_event
+
+
+
+
+
+ Whether a admin wants this event to be cancelled
+
+
+
diff --git a/datum/round_event/economy_inflation.html b/datum/round_event/economy_inflation.html
new file mode 100644
index 000000000000..7543bb1c3930
--- /dev/null
+++ b/datum/round_event/economy_inflation.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/round_event/economy_inflation - byond
+
+
+
+
+
+
+Vars
+ inflation_mult The multiplier for increasing prices of the above.
+ product_type The event will modify all vendors of this specific product type.
+ time_to_update Used in the announcement and in setup to indicate when it will start. Procs
+ get_random_story Returns a random backstory 'incident' as the cause for the sudden price hike.
+ Var Details inflation_mult
+
+
+
+
+
+ The multiplier for increasing prices of the above.
product_type
+
+
+
+
+
+ The event will modify all vendors of this specific product type.
time_to_update
+
+
+
+
+
+ Used in the announcement and in setup to indicate when it will start.
Proc Details get_random_story()
+
+
+
+
+
+ Returns a random backstory 'incident' as the cause for the sudden price hike.
+
+
+
diff --git a/datum/round_event_control.html b/datum/round_event_control.html
new file mode 100644
index 000000000000..43ada0871ca1
--- /dev/null
+++ b/datum/round_event_control.html
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+ /datum/round_event_control - byond
+
+
+
+
+
+
+this datum is used by the events controller to dictate how it selects events
Vars
+ earliest_start The earliest world.time that an event can start (round-duration in deciseconds) default: 20 mins
+ min_players The minimum amount of alive, non-AFK human players on server required to start the event.
+ name The human-readable name of the event
+ occurrences How many times this event has occurred
+ triggering admin cancellation
+ typepath The typepath of the event datum /datum/round_event
+ weight The weight this event has in the random-selection process.
+Higher weights are more likely to be picked.
+10 is the default weight. 20 is twice more likely; 5 is half as likely as this default.
+0 here does NOT disable the event, it just makes it extremely unlikely Procs
+ can_spawn_event Checks if the event can be spawned. Used by event controller. Admin-created events override this.
+ stop_random_event returns the component for the listener
+ Var Details earliest_start
+
+
+
+
+
+ The earliest world.time that an event can start (round-duration in deciseconds) default: 20 mins
min_players
+
+
+
+
+
+ The minimum amount of alive, non-AFK human players on server required to start the event.
name
+
+
+
+
+
+ The human-readable name of the event
occurrences
+
+
+
+
+
+ How many times this event has occurred
triggering
+
+
+
+
+
+ admin cancellation
typepath
+
+
+
+
+
+ The typepath of the event datum /datum/round_event
weight
+
+
+
+
+
+ The weight this event has in the random-selection process.
+Higher weights are more likely to be picked.
+10 is the default weight. 20 is twice more likely; 5 is half as likely as this default.
+0 here does NOT disable the event, it just makes it extremely unlikely
Proc Details can_spawn_event(players_amt, gamemode)
+
+
+
+
+
+ Checks if the event can be spawned. Used by event controller. Admin-created events override this.
stop_random_event()
+
+
+
+
+
+ returns the component for the listener
+
+
+
diff --git a/datum/screen_object_holder.html b/datum/screen_object_holder.html
new file mode 100644
index 000000000000..ec7534899f9e
--- /dev/null
+++ b/datum/screen_object_holder.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/screen_object_holder - byond
+
+
+
+
+
+
+A helper instance that will handle adding objects from the client's screen
+to easily remove from later.
Proc Details give_protected_screen_object(/atom /screen_object)
+
+
+
+
+
+ Gives the screen object to the client, but does not qdel it when it's cleared
give_screen_object(/atom /screen_object)
+
+
+
+
+
+ Gives the screen object to the client, qdel'ing it when it's cleared
+
+
+
diff --git a/datum/shape.html b/datum/shape.html
new file mode 100644
index 000000000000..bc60c6ac9bb0
--- /dev/null
+++ b/datum/shape.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /datum/shape - byond
+
+
+
+
+
+
+A simple geometric shape for testing collisions and intersections. This one is a single point.
Vars
+ bounds_x Distance from the shape's leftmost to rightmost extent.
+ bounds_y Distance from the shape's topmost to bottommost extent.
+ center_x Horizontal position of the shape's center point.
+ center_y Vertical position of the shape's center point. Procs
+ contains_atom Returns TRUE if the atom is in or on the shape, otherwise FALSE.
+ contains_coords Returns TRUE if the coord datum is in or on the shape, otherwise FALSE.
+ contains_xy Returns TRUE if the coordinates x, y are in or on the shape, otherwise FALSE.
+ intersects_aabb Returns TRUE if this shape's bounding box intersects the provided shape's bounding box, otherwise FALSE. Generally faster than a full intersection test.
+ intersects_rect Returns TRUE if this shape intersects the provided rectangle shape, otherwise FALSE.
+ set_shape Assign shape variables.
+ Var Details bounds_x
+
+
+
+
+
+ Distance from the shape's leftmost to rightmost extent.
bounds_y
+
+
+
+
+
+ Distance from the shape's topmost to bottommost extent.
center_x
+
+
+
+
+
+ Horizontal position of the shape's center point.
center_y
+
+
+
+
+
+ Vertical position of the shape's center point.
Proc Details contains_atom
+
+ Returns TRUE if the atom is in or on the shape, otherwise FALSE.
contains_coords(/datum /coords/coords)
+
+
+
+
+
+ Returns TRUE if the coord datum is in or on the shape, otherwise FALSE.
contains_xy(x, y)
+
+
+
+
+
+ Returns TRUE if the coordinates x, y are in or on the shape, otherwise FALSE.
intersects_aabb
+
+ Returns TRUE if this shape's bounding box intersects the provided shape's bounding box, otherwise FALSE. Generally faster than a full intersection test.
+ Returns TRUE if this shape intersects the provided rectangle shape, otherwise FALSE.
set_shape(center_x, center_y)
+
+
+
+
+
+ Assign shape variables.
+
+
+
diff --git a/datum/shape/ellipse.html b/datum/shape/ellipse.html
new file mode 100644
index 000000000000..17f71ddb8785
--- /dev/null
+++ b/datum/shape/ellipse.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/shape/ellipse - byond
+
+
+
+
+
+
+A simple geometric shape for testing collisions and intersections. This one is an axis-aligned ellipse.
Vars
+ height Distance from the shape's topmost to bottommost extent.
+ width Distance from the shape's leftmost to rightmost extent.
+ Var Details height
+
+
+
+
+
+ Distance from the shape's topmost to bottommost extent.
width
+
+
+
+
+
+ Distance from the shape's leftmost to rightmost extent.
+
+
+
diff --git a/datum/shape/ellipse/circle.html b/datum/shape/ellipse/circle.html
new file mode 100644
index 000000000000..9a7cf91d10b1
--- /dev/null
+++ b/datum/shape/ellipse/circle.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/shape/ellipse/circle - byond
+
+
+
+
+
+
+A simple geometric shape for testing collisions and intersections. This one is a circle.
Vars
+ radius Distance from the shape's center to edge.
+ Var Details radius
+
+
+
+
+
+ Distance from the shape's center to edge.
+
+
+
diff --git a/datum/shape/rectangle.html b/datum/shape/rectangle.html
new file mode 100644
index 000000000000..2689b68bb2d0
--- /dev/null
+++ b/datum/shape/rectangle.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/shape/rectangle - byond
+
+
+
+
+
+
+A simple geometric shape for testing collisions and intersections. This one is an axis-aligned rectangle.
Vars
+ height Distance from the shape's topmost to bottommost extent.
+ width Distance from the shape's leftmost to rightmost extent.
+ Var Details height
+
+
+
+
+
+ Distance from the shape's topmost to bottommost extent.
width
+
+
+
+
+
+ Distance from the shape's leftmost to rightmost extent.
+
+
+
diff --git a/datum/shape/rectangle/square.html b/datum/shape/rectangle/square.html
new file mode 100644
index 000000000000..6d86134837d1
--- /dev/null
+++ b/datum/shape/rectangle/square.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/shape/rectangle/square - byond
+
+
+
+
+
+
+A simple geometric shape for testing collisions and intersections. This one is an axis-aligned square.
Vars
+ length Distance between the shape's opposing extents.
+ Var Details length
+
+
+
+
+
+ Distance between the shape's opposing extents.
+
+
+
diff --git a/datum/shuttle/ferry/marine.html b/datum/shuttle/ferry/marine.html
new file mode 100644
index 000000000000..92b291edad6d
--- /dev/null
+++ b/datum/shuttle/ferry/marine.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/shuttle/ferry/marine - byond
+
+
+
+
+
+
+
+ Var Details automated_launch
+
+
+
+
+
+ Can the shuttle depart automatically?
automated_launch_delay
+
+
+
+
+
+ How many seconds past shuttle cooldown for the shuttle to automatically depart (if possible)
+
+
+
diff --git a/datum/shuttle/ferry/supply.html b/datum/shuttle/ferry/supply.html
new file mode 100644
index 000000000000..49615552940a
--- /dev/null
+++ b/datum/shuttle/ferry/supply.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/shuttle/ferry/supply - byond
+
+
+
+
+
+
+Vars
+ elevator_animation Used to mirrors the turfs (and their contents) on the elevator when raising/lowering, so they don't instantly teleport or vanish.
+ Var Details elevator_animation
+ – /obj /effect/elevator/animation_overlay
+
+
+
+
+ Used to mirrors the turfs (and their contents) on the elevator when raising/lowering, so they don't instantly teleport or vanish.
+
+
+
diff --git a/datum/skill.html b/datum/skill.html
new file mode 100644
index 000000000000..fb5d7636ee95
--- /dev/null
+++ b/datum/skill.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/skill - byond
+
+
+
+
+
+
+
+ Var Details max_skill_level
+
+
+
+
+
+ the max level this skill can be, used for tgui
readable_skill_name
+
+
+
+
+
+ used for the view UI
skill_level
+
+
+
+
+
+ Level of skill in this... skill
skill_name
+
+
+
+
+
+ Name of the skill
+
+
+
diff --git a/datum/skills.html b/datum/skills.html
new file mode 100644
index 000000000000..a5494ffeff7f
--- /dev/null
+++ b/datum/skills.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /datum/skills - byond
+
+
+
+
+
+
+Skill with an extra S at the end is a collection of multiple skills. Basically a skillSET
+This is to organize and provide a common interface to the huge heap of skills there are
Vars
+ name The name of the skillset
+ Var Details name
+
+
+
+
+
+ The name of the skillset
+
+
+
diff --git a/datum/soundOutput.html b/datum/soundOutput.html
new file mode 100644
index 000000000000..8c76249ada3b
--- /dev/null
+++ b/datum/soundOutput.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/soundOutput - byond
+
+
+
+
+
+
+
+ Var Details owner_environment
+
+
+
+
+
+ Currently applied environmental reverb.
Proc Details set_owner_environment(new_environment)
+
+
+
+
+
+ Pushes new_environment to owner and updates owner_environment var.
update_area_environment()
+
+
+
+
+
+ Pulls mob's area's sound_environment and applies if necessary and not overridden.
update_mob_environment_override()
+
+
+
+
+
+ Pulls mob's sound_environment_override and applies if necessary.
+
+
+
diff --git a/datum/space_level.html b/datum/space_level.html
new file mode 100644
index 000000000000..96e78f836df6
--- /dev/null
+++ b/datum/space_level.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/space_level - byond
+
+
+
+
+
+
+Vars
+ bounds Bounds at time of loading the map
+ Var Details bounds
+
+
+
+
+
+ Bounds at time of loading the map
+
+
+
diff --git a/datum/specialist_set.html b/datum/specialist_set.html
new file mode 100644
index 000000000000..b107a8203786
--- /dev/null
+++ b/datum/specialist_set.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/specialist_set - byond
+
+
+
+
+
+
+Vars
+ available_kit_num How many more of this spec set can be picked from /obj/item/spec_kit
+ available_vendor_num How many more of this spec set can be picked from spec vendors
+ incompatible_sets List of typepaths that are incompatible with this set, meaning it'll subtract 1 from their vendor/kit num as well
+ kit_typepath What typepath to spawn for the redeemer if from a kit
+ name Human-readable name for the specialist set
+ role_name What is the role title that should go on ID cards
+ skill_to_give What skill tier to give the person redeeming the set
+ trait_to_give What trait to give the person redeeming the set
+ Var Details available_kit_num
+
+
+
+
+
+ How many more of this spec set can be picked from /obj/item/spec_kit
available_vendor_num
+
+
+
+
+
+ How many more of this spec set can be picked from spec vendors
incompatible_sets
+
+
+
+
+
+ List of typepaths that are incompatible with this set, meaning it'll subtract 1 from their vendor/kit num as well
kit_typepath
+
+
+
+
+
+ What typepath to spawn for the redeemer if from a kit
name
+
+
+
+
+
+ Human-readable name for the specialist set
role_name
+
+
+
+
+
+ What is the role title that should go on ID cards
skill_to_give
+
+
+
+
+
+ What skill tier to give the person redeeming the set
trait_to_give
+
+
+
+
+
+ What trait to give the person redeeming the set
+
+
+
diff --git a/datum/species.html b/datum/species.html
new file mode 100644
index 000000000000..f55d97e5e658
--- /dev/null
+++ b/datum/species.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /datum/species - byond
+
+
+
+
+
+
+
+ Var Details group
+
+
+
+
+
+ Used for isx(y) checking of species groups
knock_down_reduction
+
+
+
+
+
+ Factor of reduction of KnockDown duration.
knock_out_reduction
+
+
+
+
+
+ Factor of reduction of KnockOut duration.
mob_inherent_traits
+
+
+
+
+
+ Status traits to give to the mob.
stun_reduction
+
+
+
+
+
+ Factor of reduction of Stun duration.
weed_slowdown_mult
+
+
+
+
+
+ If different from 1, a signal is registered on post_spawn().
Proc Details
+ Apply signals to the human
open_emote_panel()
+
+
+
+
+
+ Override to add an emote panel to a species
+
+
+
diff --git a/datum/species/synthetic/colonial/working_joe.html b/datum/species/synthetic/colonial/working_joe.html
new file mode 100644
index 000000000000..5a0c1b85e174
--- /dev/null
+++ b/datum/species/synthetic/colonial/working_joe.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/species/synthetic/colonial/working_joe - byond
+
+
+
+
+
+
+Vars
+ emote_panel_type Used to assign which variant of emote_panel to give to user Procs
+ open_emote_panel Open the WJ's emote panel, which allows them to use voicelines
+ Var Details emote_panel_type
+
+
+
+
+
+ Used to assign which variant of emote_panel to give to user
Proc Details open_emote_panel()
+
+
+
+
+
+ Open the WJ's emote panel, which allows them to use voicelines
+
+
+
diff --git a/datum/species/yautja.html b/datum/species/yautja.html
new file mode 100644
index 000000000000..e071b2c845c0
--- /dev/null
+++ b/datum/species/yautja.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/species/yautja - byond
+
+
+
+
+
+
+Procs
+ open_emote_panel Open the Yautja emote panel, which allows them to use their emotes easier.
Proc Details open_emote_panel()
+
+
+
+
+
+ Open the Yautja emote panel, which allows them to use their emotes easier.
+
+
+
diff --git a/datum/squad.html b/datum/squad.html
new file mode 100644
index 000000000000..250150ef49d3
--- /dev/null
+++ b/datum/squad.html
@@ -0,0 +1,241 @@
+
+
+
+
+
+
+ /datum/squad - byond
+
+
+
+
+
+
+Vars
+ access Which special access do we grant them
+ active Whether it is visible in overwatch
+ armor_alpha The alpha for the armor overlay used by equipment color
+ chat_color Color for the squad marines langchat
+ equipment_color Color for the squad marines gear overlays
+ faction Which faction the squad is in
+ lead_icon Squad leaders icon
+ max_engineers maximum # of engineers allowed in the squad
+ max_leaders maximum # of squad leaders allowed in the squad
+ max_medics maximum # of squad medics allowed in the squad
+ max_positions Maximum number allowed in a squad. Defaults to infinite
+ max_smartgun maximum # of smartgunners allowed in the squad
+ max_specialists maximum # of specs allowed in the squad
+ max_tl maximum # of fireteam leaders allowed in the suqad
+ name Name of the squad
+ omni_squad_vendor Can use any squad vendor regardless of squad connection
+ prepend_squad_name_to_assignment Should we add the name of our squad in front of their name? Ex: Alpha Hospital Corpsman
+ primary_objective Text strings, not HTML safe so don't use it without encoding
+ radio_freq Squad headsets default radio frequency
+ roundstart Whether this squad can be picked at roundstart
+ squad_type What will the assistant squad leader be called
+ tracking_id Squads ID that is set on New()
+ usable Whether this squad can be used by marines
+ use_stripe_overlay If uses the overlay Procs
+ assume_overwatch Sets an overwatch officer for the squad, returning TRUE on success
+ clear_ref_tracking Clear deletion signal as needed for mob - to call after removal
+ personnel_deleted Clear references in squad listing upon deletion. Zap also erases the kept records.
+NOTE: zap will be set true for a forced COMSIG_PARENT_QDELETING
+ release_overwatch Explicitely relinquish overwatch control
+ send_maptext Displays a message to squad members directly on the game map
+ send_message Displays a message to the squad members in chat
+ Var Details access
+
+
+
+
+
+ Which special access do we grant them
active
+
+
+
+
+
+ Whether it is visible in overwatch
armor_alpha
+
+
+
+
+
+ The alpha for the armor overlay used by equipment color
chat_color
+
+
+
+
+
+ Color for the squad marines langchat
equipment_color
+
+
+
+
+
+ Color for the squad marines gear overlays
faction
+
+
+
+
+
+ Which faction the squad is in
lead_icon
+
+
+
+
+
+ Squad leaders icon
max_engineers
+
+
+
+
+
+ maximum # of engineers allowed in the squad
max_leaders
+
+
+
+
+
+ maximum # of squad leaders allowed in the squad
max_medics
+
+
+
+
+
+ maximum # of squad medics allowed in the squad
max_positions
+
+
+
+
+
+ Maximum number allowed in a squad. Defaults to infinite
max_smartgun
+
+
+
+
+
+ maximum # of smartgunners allowed in the squad
max_specialists
+
+
+
+
+
+ maximum # of specs allowed in the squad
max_tl
+
+
+
+
+
+ maximum # of fireteam leaders allowed in the suqad
name
+
+
+
+
+
+ Name of the squad
omni_squad_vendor
+
+
+
+
+
+ Can use any squad vendor regardless of squad connection
prepend_squad_name_to_assignment
+
+
+
+
+
+ Should we add the name of our squad in front of their name? Ex: Alpha Hospital Corpsman
primary_objective
+
+
+
+
+
+ Text strings, not HTML safe so don't use it without encoding
radio_freq
+
+
+
+
+
+ Squad headsets default radio frequency
roundstart
+
+
+
+
+
+ Whether this squad can be picked at roundstart
squad_type
+
+
+
+
+
+ What will the assistant squad leader be called
tracking_id
+
+
+
+
+
+ Squads ID that is set on New()
usable
+
+
+
+
+
+ Whether this squad can be used by marines
use_stripe_overlay
+
+
+
+
+
+ If uses the overlay
Proc Details assume_overwatch
+
+ Sets an overwatch officer for the squad, returning TRUE on success
clear_ref_tracking
+
+ Clear deletion signal as needed for mob - to call after removal
personnel_deleted(/mob /M, zap)
+
+
+
+
+
+ Clear references in squad listing upon deletion. Zap also erases the kept records.
+NOTE: zap will be set true for a forced COMSIG_PARENT_QDELETING
release_overwatch()
+
+
+
+
+
+ Explicitely relinquish overwatch control
send_maptext(text, title_text, only_leader)
+
+
+
+
+
+ Displays a message to squad members directly on the game map
send_message(text, plus_name, only_leader)
+
+
+
+
+
+ Displays a message to the squad members in chat
+
+
+
diff --git a/datum/stack_canary.html b/datum/stack_canary.html
new file mode 100644
index 000000000000..7d6bf964af5a
--- /dev/null
+++ b/datum/stack_canary.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/stack_canary - byond
+
+
+
+
+
+
+Stack canary. Will go away if the stack it was primed by is ended by byond for return or stack overflow reasons.
Procs
+ use_variable empty proc to avoid warnings about unused variables. Call this proc on your canary in the stack it's watching.
Proc Details use_variable()
+
+
+
+
+
+ empty proc to avoid warnings about unused variables. Call this proc on your canary in the stack it's watching.
+
+
+
diff --git a/datum/stack_end_detector.html b/datum/stack_end_detector.html
new file mode 100644
index 000000000000..f2ba0e08a35c
--- /dev/null
+++ b/datum/stack_end_detector.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ /datum/stack_end_detector - byond
+
+
+
+
+
+
+Stack End Detector.
+Can detect if a given code stack has exited, used by the mc for stack overflow detection.
Procs
+ check Returns true if the stack is still going. Calling before the canary has been primed also returns true
+ prime_canary
Proc Details check()
+
+
+
+
+
+ Returns true if the stack is still going. Calling before the canary has been primed also returns true
prime_canary()
+
+
+
+
+
+
+Prime the stack overflow detector.
+Store the return value of this proc call in a proc level var.
+Can only be called once.
+
+
+
+
diff --git a/datum/static_light_source.html b/datum/static_light_source.html
new file mode 100644
index 000000000000..fa169b43f2c0
--- /dev/null
+++ b/datum/static_light_source.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+ /datum/static_light_source - byond
+
+
+
+
+
+
+Vars
+ applied Whether we have applied our light yet or not.
+ effect_str List used to store how much we're affecting corners.
+ light_color The colour of the light, string, decomposed by parse_light_color()
+ light_power Intensity of the emitter light.
+ light_range The range of the emitted light.
+ needs_update whether we are to be added to SSlighting's static_sources_queue list for an update
+ pixel_turf The turf the top_atom appears to over.
+ source_atom The atom that we belong to.
+ source_turf The turf under the source atom.
+ top_atom The atom we're emitting light from (for example a mob if we're from a flashlight that's being held). Procs
+ force_update Will force an update without checking if it's actually needed.
+ remove_lum This is the define used to calculate falloff.
+ update This proc will cause the light source to update the top atom, and add itself to the update queue.
+ vis_update Will cause the light source to recalculate turfs that were removed or added to visibility only.
+ Var Details applied
+
+
+
+
+
+ Whether we have applied our light yet or not.
effect_str
+ – /list/datum/static_lighting_corner
+
+
+
+
+ List used to store how much we're affecting corners.
light_color
+
+
+
+
+
+ The colour of the light, string, decomposed by parse_light_color()
light_power
+
+
+
+
+
+ Intensity of the emitter light.
light_range
+
+
+
+
+
+ The range of the emitted light.
needs_update
+
+
+
+
+
+ whether we are to be added to SSlighting's static_sources_queue list for an update
pixel_turf
+
+
+
+
+
+ The turf the top_atom appears to over.
source_atom
+
+
+
+
+
+ The atom that we belong to.
source_turf
+
+
+
+
+
+ The turf under the source atom.
top_atom
+
+
+
+
+
+ The atom we're emitting light from (for example a mob if we're from a flashlight that's being held).
Proc Details force_update()
+
+
+
+
+
+ Will force an update without checking if it's actually needed.
remove_lum()
+
+
+
+
+
+ This is the define used to calculate falloff.
update(/atom /new_top_atom)
+
+
+
+
+
+ This proc will cause the light source to update the top atom, and add itself to the update queue.
vis_update()
+
+
+
+
+
+ Will cause the light source to recalculate turfs that were removed or added to visibility only.
+
+
+
diff --git a/datum/static_lighting_corner.html b/datum/static_lighting_corner.html
new file mode 100644
index 000000000000..42769f6ba6ee
--- /dev/null
+++ b/datum/static_lighting_corner.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/static_lighting_corner - byond
+
+
+
+
+
+
+Vars
+ largest_color_luminosity the maximum of lum_r, lum_g, and lum_b. if this is > 1 then the three cached color values are divided by this
+ needs_update whether we are to be added to SSlighting's corners_queue list for an update
+ Var Details largest_color_luminosity
+
+
+
+
+
+ the maximum of lum_r, lum_g, and lum_b. if this is > 1 then the three cached color values are divided by this
needs_update
+
+
+
+
+
+ whether we are to be added to SSlighting's corners_queue list for an update
+
+
+
diff --git a/datum/static_lighting_object.html b/datum/static_lighting_object.html
new file mode 100644
index 000000000000..db498c8489aa
--- /dev/null
+++ b/datum/static_lighting_object.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/static_lighting_object - byond
+
+
+
+
+
+
+Vars
+ affected_turf the turf that our light is applied to
+ current_underlay the underlay we are currently applying to our turf to apply light
+ needs_update whether we are already in the SSlighting.objects_queue list
+ Var Details affected_turf
+
+
+
+
+
+ the turf that our light is applied to
current_underlay
+
+
+
+
+
+ the underlay we are currently applying to our turf to apply light
needs_update
+
+
+
+
+
+ whether we are already in the SSlighting.objects_queue list
+
+
+
diff --git a/datum/status_effect.html b/datum/status_effect.html
new file mode 100644
index 000000000000..f17981d276ab
--- /dev/null
+++ b/datum/status_effect.html
@@ -0,0 +1,288 @@
+
+
+
+
+
+
+ /datum/status_effect - byond
+
+
+
+
+
+
+Status effects are used to apply temporary or permanent effects to mobs.
+This file contains their code, plus code for applying and removing them.
Vars
+ alert_type The typepath to the alert thrown by the status effect when created.
+Status effect "name"s and "description"s are shown to the owner here.
+ duration When set initially / in on_creation, this is how long the status effect lasts in deciseconds.
+While processing, this becomes the world.time when the status effect will expire.
+-1 = infinite duration.
+ duration_set Truthy once duration is initialized
+ id The ID of the effect. ID is used in adding and removing effects to check for duplicates, among other things.
+ linked_alert The alert itself, created in [proc/on_creation] (if alert_type is specified).
+ on_remove_on_mob_delete If TRUE, we call [proc/on_remove] when owner is deleted. Otherwise, we call [proc/be_replaced].
+ owner The mob affected by the status effect.
+ processing_speed Used to define if the status effect should be using SSfasteffects or SSeffects
+ remove_on_fullheal Do we self-terminate when a fullheal is called? // CM note: this is rejuvenate
+ status_type How many of the effect can be on one mob, and/or what happens when you try to add a duplicate.
+ tick_interval When set initially / in on_creation, this is how long between [proc/tick] calls in deciseconds.
+Note that this cannot be faster than the processing subsystem you choose to fire the effect on. (See: [var/processing_speed])
+While processing, this becomes the world.time when the next tick will occur.
+-1 = will prevent ticks, and if duration is also unlimited (-1), stop processing wholesale.
+ timerid Timer ID for triggering the effect end precisely Procs
+ adjust_duration Updates the duration of the status effect to the given [amount] of deciseconds from its current set ending
+ be_replaced Called instead of on_remove when a status effect
+of status_type STATUS_EFFECT_REPLACE is replaced by itself,
+or when a status effect with on_remove_on_mob_delete
+set to FALSE has its mob deleted
+ before_remove Called before being fully removed (before on_remove)
+Returning FALSE will cancel removal
+ get_duration_left Get duration left on the effect
+ get_examine_text Gets and formats examine text associated with our status effect.
+Return 'null' to have no examine text appear (default behavior).
+ nextmove_adjust Adds nextmove adjustment additiviely to the owner while applied
+ nextmove_modifier Adds nextmove modifier multiplicatively to the owner while applied
+ on_apply Called when the effect is applied in on_created
+Returning FALSE will cause it to delete itself during creation instead.
+ on_creation Called from New() with any supplied status effect arguments.
+Not guaranteed to exist by the end.
+Returning FALSE from on_apply will stop on_creation and self-delete the effect.
+ on_remove Called whenever the buff expires or is removed (qdeleted)
+Note that at the point this is called, it is out of the
+owner's status_effects list, but owner is not yet null
+ refresh Called when a status effect of status_type STATUS_EFFECT_REFRESH
+has its duration refreshed in apply_status_effect - is passed New() args
+ remove_duration Remove [amount] of duration (in deciseconds) from the status effect. Compatibility handler with /tg/.
+ remove_effect_on_heal Signal proc for COMSIG_LIVING_REJUVENATED to remove us on fullheal
+ tick Called every tick from process().
+This is only called of tick_interval is not -1.
+ timer_callback Timer invocation callback to end the effect
+ update_duration Updates the duration of the status effect to the given [amount] of deciseconds from now, qdeling / ending if we eclipse the current world time.
+If increment is truthy, we only update if the resulting amount is higher.
+ update_particles Updates the particles for the status effects
+Should be handled by subtypes!
+ update_timer Updates the timer used for precisely ending the effect
+We force_refresh if the duration changed otherwise than ticking down
+ Var Details alert_type
+
+
+
+
+
+ The typepath to the alert thrown by the status effect when created.
+Status effect "name"s and "description"s are shown to the owner here.
duration
+
+
+
+
+
+ When set initially / in on_creation, this is how long the status effect lasts in deciseconds.
+While processing, this becomes the world.time when the status effect will expire.
+-1 = infinite duration.
duration_set
+
+
+
+
+
+ Truthy once duration is initialized
id
+
+
+
+
+
+ The ID of the effect. ID is used in adding and removing effects to check for duplicates, among other things.
+ The alert itself, created in [proc/on_creation] (if alert_type is specified).
on_remove_on_mob_delete
+
+
+
+
+
+ If TRUE, we call [proc/on_remove] when owner is deleted. Otherwise, we call [proc/be_replaced].
owner
+
+
+
+
+
+ The mob affected by the status effect.
processing_speed
+
+
+
+
+
+ Used to define if the status effect should be using SSfasteffects or SSeffects
remove_on_fullheal
+
+
+
+
+
+ Do we self-terminate when a fullheal is called? // CM note: this is rejuvenate
status_type
+
+
+
+
+
+ How many of the effect can be on one mob, and/or what happens when you try to add a duplicate.
tick_interval
+
+
+
+
+
+ When set initially / in on_creation, this is how long between [proc/tick] calls in deciseconds.
+Note that this cannot be faster than the processing subsystem you choose to fire the effect on. (See: [var/processing_speed])
+While processing, this becomes the world.time when the next tick will occur.
+-1 = will prevent ticks, and if duration is also unlimited (-1), stop processing wholesale.
timerid
+
+
+
+
+
+ Timer ID for triggering the effect end precisely
Proc Details adjust_duration(amount)
+
+
+
+
+
+ Updates the duration of the status effect to the given [amount] of deciseconds from its current set ending
be_replaced()
+
+
+
+
+
+ Called instead of on_remove when a status effect
+of status_type STATUS_EFFECT_REPLACE is replaced by itself,
+or when a status effect with on_remove_on_mob_delete
+set to FALSE has its mob deleted
before_remove()
+
+
+
+
+
+ Called before being fully removed (before on_remove)
+Returning FALSE will cancel removal
get_duration_left()
+
+
+
+
+
+ Get duration left on the effect
get_examine_text()
+
+
+
+
+
+ Gets and formats examine text associated with our status effect.
+Return 'null' to have no examine text appear (default behavior).
nextmove_adjust()
+
+
+
+
+
+ Adds nextmove adjustment additiviely to the owner while applied
nextmove_modifier()
+
+
+
+
+
+ Adds nextmove modifier multiplicatively to the owner while applied
on_apply()
+
+
+
+
+
+ Called when the effect is applied in on_created
+Returning FALSE will cause it to delete itself during creation instead.
on_creation
+
+ Called from New() with any supplied status effect arguments.
+Not guaranteed to exist by the end.
+Returning FALSE from on_apply will stop on_creation and self-delete the effect.
on_remove()
+
+
+
+
+
+ Called whenever the buff expires or is removed (qdeleted)
+Note that at the point this is called, it is out of the
+owner's status_effects list, but owner is not yet null
refresh(effect, ...)
+
+
+
+
+
+ Called when a status effect of status_type STATUS_EFFECT_REFRESH
+has its duration refreshed in apply_status_effect - is passed New() args
remove_duration(amount)
+
+
+
+
+
+ Remove [amount] of duration (in deciseconds) from the status effect. Compatibility handler with /tg/.
remove_effect_on_heal(/datum /source, heal_flags)
+
+
+
+
+
+ Signal proc for COMSIG_LIVING_REJUVENATED to remove us on fullheal
tick(seconds_between_ticks)
+
+
+
+
+
+ Called every tick from process().
+This is only called of tick_interval is not -1.
+Note that every tick =/= every processing cycle.
+
+seconds_between_ticks = This is how many SECONDS that elapse between ticks.
+This is a constant value based upon the initial tick interval set on the status effect.
+It is similar to seconds_per_tick, from processing itself, but adjusted to the status effect's tick interval.
+ timer_callback()
+
+
+
+
+
+ Timer invocation callback to end the effect
update_duration(amount, increment)
+
+
+
+
+
+ Updates the duration of the status effect to the given [amount] of deciseconds from now, qdeling / ending if we eclipse the current world time.
+If increment is truthy, we only update if the resulting amount is higher.
update_particles()
+
+
+
+
+
+ Updates the particles for the status effects
+Should be handled by subtypes!
update_timer(force_refresh)
+
+
+
+
+
+ Updates the timer used for precisely ending the effect
+We force_refresh if the duration changed otherwise than ticking down
+
+
+
diff --git a/datum/status_effect/grouped.html b/datum/status_effect/grouped.html
new file mode 100644
index 000000000000..4aaa8948041e
--- /dev/null
+++ b/datum/status_effect/grouped.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/status_effect/grouped - byond
+
+
+
+
+
+
+Status effect from multiple sources, when all sources are removed, so is the effect
Vars
+ sources A list of all sources applying this status effect. Sources are a list of keys
+ Var Details sources
+
+
+
+
+
+ A list of all sources applying this status effect. Sources are a list of keys
+
+
+
diff --git a/datum/status_effect/limited_buff.html b/datum/status_effect/limited_buff.html
new file mode 100644
index 000000000000..371b2951fe36
--- /dev/null
+++ b/datum/status_effect/limited_buff.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/status_effect/limited_buff - byond
+
+
+
+
+
+
+These effects reapply their on_apply() effect when refreshed while stacks < max_stacks.
Vars
+ max_stacks How many stacks we can have maximum
+ stacks How many stacks we currently have Procs
+ maxed_out Called whenever the buff is refreshed when there are more stacks than max_stacks.
+ Var Details max_stacks
+
+
+
+
+
+ How many stacks we can have maximum
stacks
+
+
+
+
+
+ How many stacks we currently have
Proc Details maxed_out()
+
+
+
+
+
+ Called whenever the buff is refreshed when there are more stacks than max_stacks.
+
+
+
diff --git a/datum/status_effect/stacking.html b/datum/status_effect/stacking.html
new file mode 100644
index 000000000000..1d5ab7189744
--- /dev/null
+++ b/datum/status_effect/stacking.html
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+ /datum/status_effect/stacking - byond
+
+
+
+
+
+
+Status effects that can stack.
Vars
+ consumed_on_threshold If TRUE, the status effect is consumed / removed when stack_threshold is met
+ delay_before_decay (first stack will be removed at this time plus tick_interval)
+ max_stacks The maximum number of stacks that can be applied
+ stack_decay How many stacks are lost per tick (decay trigger)
+ stack_threshold The threshold for having special effects occur when a certain stack number is reached
+ stacks How many stacks are currently accumulated.
+Also, the default stacks number given on application.
+ threshold_crossed Set to true once the stack_threshold is crossed, and false once it falls back below Procs
+ add_stacks Add (or remove) [stacks_added] stacks to our current stack count.
+ can_gain_stacks Whether the owner can currently gain stacks or not
+Return FALSE if the owner is not in a valid state, or TRUE otherwise
+ can_have_status Whether the owner can have the status effect.
+Return FALSE if the owner is not in a valid state (self-deletes the effect), or TRUE otherwise
+ fadeout_effect Effects that occur if the status is removed due to being under 1 remaining stack
+ on_threshold_cross Called when the stack_threshold is crossed (stacks go over the threshold)
+ on_threshold_drop Called when the stack_threshold is uncrossed / dropped (stacks go under the threshold after being over it)
+ stack_decay_effect Runs every time tick(), causes stacks to decay over time
+ stacks_consumed_effect Effects that occur if the status effect is removed due to the stack_threshold being crossed
+ threshold_cross_effect Effects that occur when the stack count crosses stack_threshold
+ Var Details consumed_on_threshold
+
+
+
+
+
+ If TRUE, the status effect is consumed / removed when stack_threshold is met
delay_before_decay
+
+
+
+
+
+ (first stack will be removed at this time plus tick_interval)
max_stacks
+
+
+
+
+
+ The maximum number of stacks that can be applied
stack_decay
+
+
+
+
+
+ How many stacks are lost per tick (decay trigger)
stack_threshold
+
+
+
+
+
+ The threshold for having special effects occur when a certain stack number is reached
stacks
+
+
+
+
+
+ How many stacks are currently accumulated.
+Also, the default stacks number given on application.
threshold_crossed
+
+
+
+
+
+ Set to true once the stack_threshold is crossed, and false once it falls back below
Proc Details add_stacks(stacks_added)
+
+
+
+
+
+ Add (or remove) [stacks_added] stacks to our current stack count.
can_gain_stacks()
+
+
+
+
+
+ Whether the owner can currently gain stacks or not
+Return FALSE if the owner is not in a valid state, or TRUE otherwise
can_have_status()
+
+
+
+
+
+ Whether the owner can have the status effect.
+Return FALSE if the owner is not in a valid state (self-deletes the effect), or TRUE otherwise
fadeout_effect()
+
+
+
+
+
+ Effects that occur if the status is removed due to being under 1 remaining stack
on_threshold_cross()
+
+
+
+
+
+ Called when the stack_threshold is crossed (stacks go over the threshold)
on_threshold_drop()
+
+
+
+
+
+ Called when the stack_threshold is uncrossed / dropped (stacks go under the threshold after being over it)
stack_decay_effect()
+
+
+
+
+
+ Runs every time tick(), causes stacks to decay over time
stacks_consumed_effect()
+
+
+
+
+
+ Effects that occur if the status effect is removed due to the stack_threshold being crossed
threshold_cross_effect()
+
+
+
+
+
+ Effects that occur when the stack count crosses stack_threshold
+
+
+
diff --git a/datum/strip_menu.html b/datum/strip_menu.html
new file mode 100644
index 000000000000..02cb9e90d453
--- /dev/null
+++ b/datum/strip_menu.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/strip_menu - byond
+
+
+
+
+
+
+A representation of the stripping UI
Vars
+ 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 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 000000000000..2e417f553a8e
--- /dev/null
+++ b/datum/strippable_item.html
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+ /datum/strippable_item - byond
+
+
+
+
+
+
+A representation of an item that can be stripped down
Vars
+ key The STRIPPABLE_ITEM_* key
+ warn_dangerous_clothing Should we warn about dangerous clothing? Procs
+ alternate_action Performs an alternative action on this strippable_item.
+has_alternate_action
needs to be TRUE.
+ 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_action 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_item Gets the item from the given source.
+ get_obscuring Returns a STRIPPABLE_OBSCURING_* define to report on whether or not this is obscured.
+ 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
warn_dangerous_clothing
+
+
+
+
+
+ Should we warn about dangerous clothing?
Proc Details alternate_action
+
+ Performs an alternative action on this strippable_item.
+has_alternate_action
needs to be TRUE.
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_action
+
+ 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_item
+
+ Gets the item from the given source.
get_obscuring
+
+ Returns a STRIPPABLE_OBSCURING_* define to report on whether or not this is obscured.
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/mob_item_slot.html b/datum/strippable_item/mob_item_slot.html
new file mode 100644
index 000000000000..c6d23c9f5a8a
--- /dev/null
+++ b/datum/strippable_item/mob_item_slot.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/strippable_item/mob_item_slot - byond
+
+
+
+
+
+
+A preset for equipping items onto mob slots
Vars
+ item_slot The ITEM_SLOT_* to equip to. Procs
+ finish_unequip_mob A utility function for /datum/strippable_item
s to finish unequipping an item from a mob.
+ start_unequip_mob A utility function for /datum/strippable_item
s to start unequipping an item from a mob.
+ Var Details item_slot
+
+
+
+
+
+ The ITEM_SLOT_* to equip to.
Proc Details finish_unequip_mob
+
+ A utility function for /datum/strippable_item
s to finish unequipping an item from a mob.
+ A utility function for /datum/strippable_item
s to start unequipping an item from a mob.
+
+
+
diff --git a/datum/supply_packs.html b/datum/supply_packs.html
new file mode 100644
index 000000000000..7ab6e14c6d0a
--- /dev/null
+++ b/datum/supply_packs.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /datum/supply_packs - byond
+
+
+
+
+
+
+Vars
+ containertype Determine the price of the crate. Give it a value between 7 and 100 to avoid breaking the game.
+If this variable is null (not if it's an empty list), and so is contains, it won't show up on the order computer.
+ contains If this variable is null (not if it's an empty list), and so is containertype, it won't show up on the order computer.
+ crate_heat How much "heat" this crate adds, too much heat will send an investigation. Only use for contraband.
+ dollar_cost How many W-Y dollars are deducted from the supply controller. Only use for contraband.
+ group Tell if the crate is a contraband value 1 or not 0.
+ randomised_num_contained Can this pack be bought? These packs don't show up at all - they have to be spawned externally (fe: DEFCON ASRS)
+ Var Details containertype
+
+
+
+
+
+ Determine the price of the crate. Give it a value between 7 and 100 to avoid breaking the game.
+If this variable is null (not if it's an empty list), and so is contains, it won't show up on the order computer.
contains
+
+
+
+
+
+ If this variable is null (not if it's an empty list), and so is containertype, it won't show up on the order computer.
crate_heat
+
+
+
+
+
+ How much "heat" this crate adds, too much heat will send an investigation. Only use for contraband.
dollar_cost
+
+
+
+
+
+ How many W-Y dollars are deducted from the supply controller. Only use for contraband.
group
+
+
+
+
+
+ Tell if the crate is a contraband value 1 or not 0.
randomised_num_contained
+
+
+
+
+
+ Can this pack be bought? These packs don't show up at all - they have to be spawned externally (fe: DEFCON ASRS)
+
+
+
diff --git a/datum/supply_packs_asrs.html b/datum/supply_packs_asrs.html
new file mode 100644
index 000000000000..ad21822f1234
--- /dev/null
+++ b/datum/supply_packs_asrs.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/supply_packs_asrs - byond
+
+
+
+
+
+
+Vars
+ cost How likely we are to select this pack over others
+ pool Which pool of ASRS automatically dispensed supplies this belongs to
+ reference_package What supply pack would this dispense
+ Var Details cost
+
+
+
+
+
+ How likely we are to select this pack over others
pool
+
+
+
+
+
+ Which pool of ASRS automatically dispensed supplies this belongs to
+ What supply pack would this dispense
+
+
+
diff --git a/datum/surgery.html b/datum/surgery.html
new file mode 100644
index 000000000000..e0f45bb37093
--- /dev/null
+++ b/datum/surgery.html
@@ -0,0 +1,146 @@
+
+
+
+
+
+
+ /datum/surgery - byond
+
+
+
+
+
+
+Base surgery datum and procs. There is an important distinction between surgery datums and surgery steps.
+The surgery is a separate instance for each individual operation; the steps are shared globally.
+datum/surgery and datum/surgery_step are intertwined. The surgery calls the step which modifies the surgery.
+Defines are in __DEFINES/human.dm and __DEFINES/surgery.dm.
Vars
+ affected_limb The limb the surgery is being performed on. If designing a surgery for a species without limbs, this var won't be usable.
+ invasiveness How deep the incision must be before this operation is a valid option.
+ location The location this instance of the surgery is being performed on.
+ lying_required Does the victim needs to be lying down? Surgeries that can be performed while standing aren't affected by the surface the patient is on.
+ pain_reduction_required How strong a level of anesthesia is needed to avoid risking pain causing a step to fail?
+ possible_locs List of possible locations the surgery can be performed on. This is target zones: DEFENSE_ZONES_LIVING lists all options. ALL_LIMBS doesn't include eyes/mouth.
+Note also that steps don't check this and it is possible to include a step that can't be performed on a target limb.
+ priority When initiating surgeries, this defines their order when listed in initiation selector or 'you can't use this tool for anything, but could x, y, or z' messages.
+ required_surgery_skill How much training is needed to do this surgery?
+ requires_bodypart TRUE if the surgery requires a non-destroyed limb; FALSE if it requires a destroyed one, or doesn't need a limb.
+ requires_bodypart_type Status flag(s) required on the target limb to perform an operation. NONE for any limb type. (FLAG|FLAG) is an OR check, granular this-but-not-this or this-and-this checks should be in can_start()
+ self_operable Can the surgery be performed on yourself?
+ status The step the surgery is currently on. When status > number of steps, the surgery ends.
+ steps List of steps in the surgery.
+ target_mobtypes What species can this be performed on? Procs
+ attempt_next_step Used on attackby and attackhand; TRUE means it stops the attack there, FALSE means it performs an item/open hand attack. CHECK OPENHAND ATTACK IS BLOCKED PROPERLY
+ can_start Catch-all proc for additional preconditions for starting the surgery. Return FALSE if the surgery can't be done.
+ Var Details affected_limb
+
+
+
+
+
+ The limb the surgery is being performed on. If designing a surgery for a species without limbs, this var won't be usable.
invasiveness
+
+
+
+
+
+ How deep the incision must be before this operation is a valid option.
location
+
+
+
+
+
+ The location this instance of the surgery is being performed on.
lying_required
+
+
+
+
+
+ Does the victim needs to be lying down? Surgeries that can be performed while standing aren't affected by the surface the patient is on.
pain_reduction_required
+
+
+
+
+
+ How strong a level of anesthesia is needed to avoid risking pain causing a step to fail?
possible_locs
+
+
+
+
+
+ List of possible locations the surgery can be performed on. This is target zones: DEFENSE_ZONES_LIVING lists all options. ALL_LIMBS doesn't include eyes/mouth.
+Note also that steps don't check this and it is possible to include a step that can't be performed on a target limb.
priority
+
+
+
+
+
+ When initiating surgeries, this defines their order when listed in initiation selector or 'you can't use this tool for anything, but could x, y, or z' messages.
required_surgery_skill
+
+
+
+
+
+ How much training is needed to do this surgery?
requires_bodypart
+
+
+
+
+
+ TRUE if the surgery requires a non-destroyed limb; FALSE if it requires a destroyed one, or doesn't need a limb.
requires_bodypart_type
+
+
+
+
+
+ Status flag(s) required on the target limb to perform an operation. NONE for any limb type. (FLAG|FLAG) is an OR check, granular this-but-not-this or this-and-this checks should be in can_start()
self_operable
+
+
+
+
+
+ Can the surgery be performed on yourself?
status
+
+
+
+
+
+ The step the surgery is currently on. When status > number of steps, the surgery ends.
steps
+
+
+
+
+
+ List of steps in the surgery.
target_mobtypes
+
+
+
+
+
+ What species can this be performed on?
Proc Details attempt_next_step
+
+ Used on attackby and attackhand; TRUE means it stops the attack there, FALSE means it performs an item/open hand attack. CHECK OPENHAND ATTACK IS BLOCKED PROPERLY
+ Catch-all proc for additional preconditions for starting the surgery. Return FALSE if the surgery can't be done.
+
+
+
diff --git a/datum/surgery_step.html b/datum/surgery_step.html
new file mode 100644
index 000000000000..15e110679ccc
--- /dev/null
+++ b/datum/surgery_step.html
@@ -0,0 +1,203 @@
+
+
+
+
+
+
+ /datum/surgery_step - byond
+
+
+
+
+
+
+Vars
+ accept_any_item Does the surgery step accept any item? If true, ignores tools.
+ accept_hand Does the surgery step accept an open hand? If true and the surgeon uses their hand, doesn't check for tools. If wanting to make a
+surgery where a hand can do it but tools are faster, give it a long default time and its tools modifiers above 100.
+ desc Description of the surgery used for need-different-tool messages,
+format: (You could/can't )["sever the bone in the patient's limb"]( with \the [tool], or )[next step desc]. Can't refer to outside vars as step datums are global.
+ failure_sound failure >:(
+ preop_sound preop means "in Progress" sound
+ repeat_step Whether this step continuously repeats as long as a criteria is met. If TRUE, consider setting skip_step_criteria() or using a failure() override to return TRUE to allow it to be canceled or skipped.
+ success_sound Sound of success
+ time How long does the step take as a baseline? Modified by the surgeon's skills, the tool used, and, if the parent surgery requires the patient
+to be lying down, the surface the patient is buckled to or resting on: surgery table, field surgical bed, rollerbed, table, open ground etc.
+ tools Associative list, tools and their step time multiplier. tools_typecache is assigned from from first to last, so if you have a
+more specific subtype and its parent in the same list, place the subtype last to override the general parent.
+Some are shared defines, some are set on the tool that uses them.
+ tools_cache Assoc. list. This is generated on init and is something like an inverse typecache. All types and subtypes of valid tools are in it, associated to the
+parent tool type. Example: for an item type /wxy/z, tool_check() returns tools_cache[/wxy/z]. If /wxy is in tools, this will == /wxy; otherwise it == NULL. Procs
+ attempt_step The proc that actually performs the step.
+ complete Finishes the surgery and removes it from the target's lists.
+ extra_checks obj/limb/hand ?
+does any extra checks that is is SUBTYPED to perform
+ failure This is used for failed-step narration and relevant failure changes, often damage etc. If it returns TRUE, the step succeeds anyway.
+tool_type may be a typepath or simply '1'. Note that a first step done on help-intent doesn't call failure(), it just ends harmlessly.
+ play_failure_sound Plays the failure sound
+ play_preop_sound Plays Preop Sounds
+ play_success_sound Plays the selected success sound
+ preop This is used for beginning-step narration. tool_type may be a typepath or simply '1'.
+ repeat_step_criteria Used by repeating steps to determine whether to keep looping. tool_type may be a typepath or simply '1'.
+ skip_step_criteria Whether this step is optional and can be skipped if it isn't the last step. There must be a step after it to skip to. As this may be used when
+initiating a surgery and deciding whether to skip the first step, it must be able to work without reference to the parent surgery's status,
+affected_limb, or location vars. Also, in that case there may be a wait between passing the check and beginning the step while the user picks a surgery.
+ success This is used for end-step narration and relevant success changes - whatever the step is meant to do, if it isn't just flavour. tool_type may be a typepath or simply '1'.
+ tool_check Checks the given tool, if any, against the step's tools list, and returns one of three options: the tool list key, TRUE, or FALSE to fail the surgery.
+ Var Details accept_any_item
+
+
+
+
+
+ Does the surgery step accept any item? If true, ignores tools.
accept_hand
+
+
+
+
+
+ Does the surgery step accept an open hand? If true and the surgeon uses their hand, doesn't check for tools. If wanting to make a
+surgery where a hand can do it but tools are faster, give it a long default time and its tools modifiers above 100.
desc
+
+
+
+
+
+ Description of the surgery used for need-different-tool messages,
+format: (You could/can't )["sever the bone in the patient's limb"]( with \the [tool], or )[next step desc]. Can't refer to outside vars as step datums are global.
failure_sound
+
+
+
+
+
+ failure >:(
preop_sound
+
+
+
+
+
+ preop means "in Progress" sound
repeat_step
+
+
+
+
+
+ Whether this step continuously repeats as long as a criteria is met. If TRUE, consider setting skip_step_criteria() or using a failure() override to return TRUE to allow it to be canceled or skipped.
success_sound
+
+
+
+
+
+ Sound of success
time
+
+
+
+
+
+ How long does the step take as a baseline? Modified by the surgeon's skills, the tool used, and, if the parent surgery requires the patient
+to be lying down, the surface the patient is buckled to or resting on: surgery table, field surgical bed, rollerbed, table, open ground etc.
+ Associative list, tools and their step time multiplier. tools_typecache is assigned from from first to last, so if you have a
+more specific subtype and its parent in the same list, place the subtype last to override the general parent.
+Some are shared defines, some are set on the tool that uses them.
+ Assoc. list. This is generated on init and is something like an inverse typecache. All types and subtypes of valid tools are in it, associated to the
+parent tool type. Example: for an item type /wxy/z, tool_check() returns tools_cache[/wxy/z]. If /wxy is in tools, this will == /wxy; otherwise it == NULL.
Proc Details attempt_step
+
+ The proc that actually performs the step.
complete
+
+ Finishes the surgery and removes it from the target's lists.
+ obj/limb/hand ?
+does any extra checks that is is SUBTYPED to perform
failure
+
+ This is used for failed-step narration and relevant failure changes, often damage etc. If it returns TRUE, the step succeeds anyway.
+tool_type may be a typepath or simply '1'. Note that a first step done on help-intent doesn't call failure(), it just ends harmlessly.
play_failure_sound
+
+ Plays the failure sound
play_preop_sound
+
+ Plays Preop Sounds
play_success_sound
+
+ Plays the selected success sound
preop
+
+ This is used for beginning-step narration. tool_type may be a typepath or simply '1'.
repeat_step_criteria
+
+ Used by repeating steps to determine whether to keep looping. tool_type may be a typepath or simply '1'.
skip_step_criteria
+
+ Whether this step is optional and can be skipped if it isn't the last step. There must be a step after it to skip to. As this may be used when
+initiating a surgery and deciding whether to skip the first step, it must be able to work without reference to the parent surgery's status,
+affected_limb, or location vars. Also, in that case there may be a wait between passing the check and beginning the step while the user picks a surgery.
success
+
+ This is used for end-step narration and relevant success changes - whatever the step is meant to do, if it isn't just flavour. tool_type may be a typepath or simply '1'.
+ Checks the given tool, if any, against the step's tools list, and returns one of three options: the tool list key, TRUE, or FALSE to fail the surgery.
+
+
+
diff --git a/datum/surgery_step/clamp_bleeders_step.html b/datum/surgery_step/clamp_bleeders_step.html
new file mode 100644
index 000000000000..59817681df7c
--- /dev/null
+++ b/datum/surgery_step/clamp_bleeders_step.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/surgery_step/clamp_bleeders_step - byond
+
+
+
+
+
+
+Vars
+ ligation_tools Tools used to stem bleeders by specifically tying them up. List used for specific messaging as there's two of these.
+ Var Details
+ Tools used to stem bleeders by specifically tying them up. List used for specific messaging as there's two of these.
+
+
+
diff --git a/datum/surgery_step/saw_off_limb.html b/datum/surgery_step/saw_off_limb.html
new file mode 100644
index 000000000000..1b91a639f69b
--- /dev/null
+++ b/datum/surgery_step/saw_off_limb.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/surgery_step/saw_off_limb - byond
+
+
+
+
+
+
+Vars
+ cannot_hack Tools which cannot instantly hack off a limb when amputating. Bayonet is for sawing, butcher/hatchet are smaller substitutes for machete/fire axe.
+ Var Details cannot_hack
+
+
+
+
+
+ Tools which cannot instantly hack off a limb when amputating. Bayonet is for sawing, butcher/hatchet are smaller substitutes for machete/fire axe.
+
+
+
diff --git a/datum/suture_handler.html b/datum/suture_handler.html
new file mode 100644
index 000000000000..2dd208878046
--- /dev/null
+++ b/datum/suture_handler.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ /datum/suture_handler - byond
+
+
+
+
+
+
+Handles sutures for this limb. Doesn't process, updates on limb damage and new suture attempts.
Procs
+ add_sutures Used to order a limb to add sutures. COMSIG_LIMB_ADD_SUTURES doesn't return something = no suture datum to answer.
+suture_brute = heals brute, boolean, also tracks fully-sutured state.
+suture_burn = ^ but for burns
+maximum_heal = total amount of each damage type that can be healed - IE TRUE/TRUE/10 = up to 10 brute AND up to 10 burns
+ check_sutures Determines how many sutures can be added up to the max of 10 per type. Modifies a list referenced as an arg.
+ remove_sutures Unregisters datum. The signals are the only references to this.
+ update_sutures Updates the amount of sutured damage remaining.
Proc Details add_sutures(/obj /limb /target_limb, suture_brute, suture_burn, maximum_heal)
+
+
+
+
+
+ Used to order a limb to add sutures. COMSIG_LIMB_ADD_SUTURES doesn't return something = no suture datum to answer.
+suture_brute = heals brute, boolean, also tracks fully-sutured state.
+suture_burn = ^ but for burns
+maximum_heal = total amount of each damage type that can be healed - IE TRUE/TRUE/10 = up to 10 brute AND up to 10 burns
check_sutures(/obj /limb /target_limb, suture_brute, suture_burn, repeat)
+
+
+
+
+
+ Determines how many sutures can be added up to the max of 10 per type. Modifies a list referenced as an arg.
remove_sutures
+
+ Unregisters datum. The signals are the only references to this.
update_sutures(/obj /limb /target_limb, is_ff, previous_brute, previous_burn, pre_add)
+
+
+
+
+
+ Updates the amount of sutured damage remaining.
+
+
+
diff --git a/datum/tacmap.html b/datum/tacmap.html
new file mode 100644
index 000000000000..b9f081a7c984
--- /dev/null
+++ b/datum/tacmap.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/tacmap - byond
+
+
+
+
+
+
+Vars
+ map_holder tacmap holder for holding the minimap
+ targeted_ztrait by default the ground map - this picks the first level matching the trait. if it exists
+ Var Details map_holder
+
+
+
+
+
+ tacmap holder for holding the minimap
targeted_ztrait
+
+
+
+
+
+ by default the ground map - this picks the first level matching the trait. if it exists
+
+
+
diff --git a/datum/tacmap/drawing.html b/datum/tacmap/drawing.html
new file mode 100644
index 000000000000..b999614b43d8
--- /dev/null
+++ b/datum/tacmap/drawing.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+ /datum/tacmap/drawing - byond
+
+
+
+
+
+
+
+ Var Details current_svg
+
+
+
+
+
+ current svg
last_update_time
+
+
+
+
+
+ The last time the map has been flattened - used as a key to trick react into updating the canvas
new_current_map
+ – /datum /flattened_tacmap
+
+
+
+
+ current flattend map
old_map
+ – /datum /flattened_tacmap
+
+
+
+
+ previous flattened map
tacmap_ready_time
+
+
+
+
+
+ A temporary lock out time before we can open the new canvas tab to allow the tacmap time to fire
+ color selection for the tactical map canvas, defaults to black.
updated_canvas
+
+
+
+
+
+ boolean value to keep track if the canvas has been updated or not, the value is used in tgui state.
wiki_map_fallback
+
+
+
+
+
+ A url that will point to the wiki map for the current map as a fall back image
Proc Details distribute_current_map_png(faction)
+
+
+
+
+
+ Flattens the current map and then distributes it for the specified faction as an unannounced map.
+Arguments:
+
+faction: Which faction to distribute the map to: FACTION_MARINE or XENO_HIVE_NORMAL
+Return:
+Returns a boolean value, TRUE if the operation was successful, FALSE if it was not (on cooldown generally).
+ on_tacmap_fire(faction)
+
+
+
+
+
+ Callback when timer indicates the tacmap is flattenable now
store_current_svg_coords(faction, svg_coords, ckey)
+
+
+
+
+
+ Globally stores svg coords for a given faction.
+Arguments:
+
+faction: which faction to save the data for: FACTION_MARINE or XENO_HIVE_NORMAL
+svg_coords: an array of coordinates corresponding to an svg.
+ckey: the ckey of the user who submitted this
+
+
+
+
diff --git a/datum/tacmap_admin_panel.html b/datum/tacmap_admin_panel.html
new file mode 100644
index 000000000000..8379ec6411fa
--- /dev/null
+++ b/datum/tacmap_admin_panel.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/tacmap_admin_panel - byond
+
+
+
+
+
+
+Vars
+ last_update_time The last time the map selection was changed - used as a key to trick react into updating the map
+ uscm_selection The index picked last for USCM (zero indexed), -1 will try to select latest if it exists
+ wiki_map_fallback A url that will point to the wiki map for the current map as a fall back image
+ xeno_selection The index picked last for Xenos (zero indexed), -1 will try to select latest if it exists
+ Var Details last_update_time
+
+
+
+
+
+ The last time the map selection was changed - used as a key to trick react into updating the map
uscm_selection
+
+
+
+
+
+ The index picked last for USCM (zero indexed), -1 will try to select latest if it exists
wiki_map_fallback
+
+
+
+
+
+ A url that will point to the wiki map for the current map as a fall back image
xeno_selection
+
+
+
+
+
+ The index picked last for Xenos (zero indexed), -1 will try to select latest if it exists
+
+
+
diff --git a/datum/tech.html b/datum/tech.html
new file mode 100644
index 000000000000..3dadd4aa6459
--- /dev/null
+++ b/datum/tech.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ /datum/tech - byond
+
+
+
+
+
+
+Procs
+ on_unlock Called when a tech is unlocked. Usually, benefits can be applied here
+however, the purchase can still be cancelled by returning FALSE
Proc Details on_unlock
+
+ Called when a tech is unlocked. Usually, benefits can be applied here
+however, the purchase can still be cancelled by returning FALSE
+If you sleep in this proc, you must call can_unlock after the sleep ends to make sure you can still purchase the tech in question
+
+
+
diff --git a/datum/tech/transitory.html b/datum/tech/transitory.html
new file mode 100644
index 000000000000..aab521776bfd
--- /dev/null
+++ b/datum/tech/transitory.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/tech/transitory - byond
+
+
+
+
+
+
+Procs
+ get_tier_overlay Due to calling parent, points will have already been spent by now.
Proc Details get_tier_overlay()
+
+
+
+
+
+ Due to calling parent, points will have already been spent by now.
+
+
+
diff --git a/datum/techtree.html b/datum/techtree.html
new file mode 100644
index 000000000000..3de287ae83a3
--- /dev/null
+++ b/datum/techtree.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /datum/techtree - byond
+
+
+
+
+
+
+Proc Details get_node(tech)
+
+
+
+
+
+ tech
: a typepath to a tech
get_unlocked_node(tech)
+
+
+
+
+
+ tech
: a typepath to a tech
on_tier_change
+
+ Triggered just after a tier change
+
+
+
diff --git a/datum/tgs_api/v5.html b/datum/tgs_api/v5.html
new file mode 100644
index 000000000000..9a910266ba7c
--- /dev/null
+++ b/datum/tgs_api/v5.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/tgs_api/v5 - byond
+
+
+
+
+
+
+Vars
+ intercepted_message_queue List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call
+ offline_message_queue List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call
+ Var Details intercepted_message_queue
+
+
+
+
+
+ List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call
offline_message_queue
+
+
+
+
+
+ List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call
+
+
+
diff --git a/datum/tgs_chat_channel.html b/datum/tgs_chat_channel.html
new file mode 100644
index 000000000000..26acfc886506
--- /dev/null
+++ b/datum/tgs_chat_channel.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/tgs_chat_channel - byond
+
+
+
+
+
+
+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 000000000000..e496cdfbc6ff
--- /dev/null
+++ b/datum/tgs_chat_command.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+ /datum/tgs_chat_command - byond
+
+
+
+
+
+
+User definable chat command. This abstract version MUST be overridden to be used.
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.
+MUST be implemented
+ 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.
+MUST be implemented
+
+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/field.html b/datum/tgs_chat_embed/field.html
new file mode 100644
index 000000000000..6e75aebbca2d
--- /dev/null
+++ b/datum/tgs_chat_embed/field.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/tgs_chat_embed/field - byond
+
+
+
+
+
+
+See https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure for details.
+ Var Details name
+
+
+
+
+
+ Must be set in New().
value
+
+
+
+
+
+ Must be set in New().
Proc Details New(name, value)
+
+
+
+
+
+ Create a /datum/tgs_chat_embed/field .
+
+
+
diff --git a/datum/tgs_chat_embed/footer.html b/datum/tgs_chat_embed/footer.html
new file mode 100644
index 000000000000..f8ac3418c017
--- /dev/null
+++ b/datum/tgs_chat_embed/footer.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/tgs_chat_embed/footer - byond
+
+
+
+
+
+
+See https://discord.com/developers/docs/resources/message#embed-object-embed-footer-structure for details.
+ Var Details text
+
+
+
+
+
+ Must be set in New().
Proc Details New(text)
+
+
+
+
+
+ Create a /datum/tgs_chat_embed/footer .
+
+
+
diff --git a/datum/tgs_chat_embed/media.html b/datum/tgs_chat_embed/media.html
new file mode 100644
index 000000000000..95ec3ffa1a7a
--- /dev/null
+++ b/datum/tgs_chat_embed/media.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/tgs_chat_embed/media - byond
+
+
+
+
+
+
+Common datum for similar Discord embed medias.
+ Var Details url
+
+
+
+
+
+ Must be set in New().
Proc Details New(url)
+
+
+
+
+
+ Create a /datum/tgs_chat_embed .
+
+
+
diff --git a/datum/tgs_chat_embed/provider/author.html b/datum/tgs_chat_embed/provider/author.html
new file mode 100644
index 000000000000..e6d2c879d51e
--- /dev/null
+++ b/datum/tgs_chat_embed/provider/author.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/tgs_chat_embed/provider/author - byond
+
+
+
+
+
+
+See https://discord.com/developers/docs/resources/message#embed-object-embed-author-structure for details. Must have name set in New().
Proc Details New(name)
+
+
+
+
+
+ Create a /datum/tgs_chat_embed/footer .
+
+
+
diff --git a/datum/tgs_chat_embed/structure.html b/datum/tgs_chat_embed/structure.html
new file mode 100644
index 000000000000..6b96f6ea9cc5
--- /dev/null
+++ b/datum/tgs_chat_embed/structure.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /datum/tgs_chat_embed/structure - byond
+
+
+
+
+
+
+User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/message#embed-object for details.
Vars
+ colour Colour must be #AARRGGBB or #RRGGBB hex string.
+ image See https://discord.com/developers/docs/resources/message#embed-object-embed-image-structure for details.
+ thumbnail See https://discord.com/developers/docs/resources/message#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/message#embed-object-embed-video-structure for details.
+ Var Details colour
+
+
+
+
+
+ Colour must be #AARRGGBB or #RRGGBB hex string.
+ See https://discord.com/developers/docs/resources/message#embed-object-embed-image-structure for details.
+ See https://discord.com/developers/docs/resources/message#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/message#embed-object-embed-video-structure for details.
+
+
+
diff --git a/datum/tgs_chat_user.html b/datum/tgs_chat_user.html
new file mode 100644
index 000000000000..d8996ff2cf55
--- /dev/null
+++ b/datum/tgs_chat_user.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/tgs_chat_user - byond
+
+
+
+
+
+
+
+ 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 000000000000..544f60dfd4ce
--- /dev/null
+++ b/datum/tgs_event_handler.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ /datum/tgs_event_handler - byond
+
+
+
+
+
+
+User definable handler for TGS events This abstract version SHOULD be overridden to be used.
+ 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_http_handler.html b/datum/tgs_http_handler.html
new file mode 100644
index 000000000000..cbe497dffa84
--- /dev/null
+++ b/datum/tgs_http_handler.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/tgs_http_handler - byond
+
+
+
+
+
+
+User definable handler for HTTP calls. This abstract version MUST be overridden to be used.
Procs
+ PerformGet User definable callback for executing HTTP GET requests.
+MUST perform BYOND sleeps while the request is in flight.
+MUST return a /datum/tgs_http_result .
+SHOULD log its own errors
Proc Details
+ User definable callback for executing HTTP GET requests.
+MUST perform BYOND sleeps while the request is in flight.
+MUST return a /datum/tgs_http_result .
+SHOULD log its own errors
+url - The full URL to execute the GET request for including query parameters.
+
+
+
diff --git a/datum/tgs_http_result.html b/datum/tgs_http_result.html
new file mode 100644
index 000000000000..8f2d54176b55
--- /dev/null
+++ b/datum/tgs_http_result.html
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+ /datum/tgs_http_result - byond
+
+
+
+
+
+
+Result of a /datum/tgs_http_handler call. MUST NOT be overridden.
+ Var Details response_text
+
+
+
+
+
+ HTTP response as text
success
+
+
+
+
+
+ Boolean request success flag. Set for any 2XX response code.
Proc Details New(response_text, success)
+
+
+
+
+
+ Create a /datum/tgs_http_result .
+
+response_text - HTTP response as text. Must be provided in New().
+success - Boolean request success flag. Set for any 2XX response code. Must be provided in New().
+
+
+
+
diff --git a/datum/tgs_message_content.html b/datum/tgs_message_content.html
new file mode 100644
index 000000000000..c3fc14802b1a
--- /dev/null
+++ b/datum/tgs_message_content.html
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+ /datum/tgs_message_content - byond
+
+
+
+
+
+
+User definable chat message. MUST NOT be overridden.
+ Var Details
+ The /datum/tgs_chat_embed to embed in the message. Not supported on all chat providers.
text
+
+
+
+
+
+ The string content of the message. Must be provided in New().
Proc Details New(text)
+
+
+
+
+
+ Create a /datum/tgs_message_content .
+
+text - The string content of the message.
+
+
+
+
diff --git a/datum/tgs_revision_information.html b/datum/tgs_revision_information.html
new file mode 100644
index 000000000000..7f2c2ee35fcf
--- /dev/null
+++ b/datum/tgs_revision_information.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/tgs_revision_information - byond
+
+
+
+
+
+
+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 000000000000..baa537885893
--- /dev/null
+++ b/datum/tgs_revision_information/test_merge.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /datum/tgs_revision_information/test_merge - byond
+
+
+
+
+
+
+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 000000000000..3dfad98edd57
--- /dev/null
+++ b/datum/tgs_version.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /datum/tgs_version - byond
+
+
+
+
+
+
+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 000000000000..e37227f533fc
--- /dev/null
+++ b/datum/tgui.html
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+ /datum/tgui - byond
+
+
+
+
+
+
+tgui datum (represents a UI).
+ Var Details 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.
mouse_hooked
+
+
+
+
+
+ Are byond mouse events beyond the window passed in to the 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 the 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_act_message(act_type, payload, state)
+
+
+
+
+
+ Wrapper for behavior to potentially wait until the next tick if the server is overloaded
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).
+return bool - TRUE if a new pooled window is opened, FALSE in all other situations including if a new pooled window didn't open because one already exists.
process(delta_time, 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
+return bool - true if an asset was actually sent
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_mouse_hook(value)
+
+
+
+
+
+ public
+Enable/disable passing through byond mouse events to the window
+required value bool Enable/disable hooking.
set_state
+
+ public
+Replace current ui.state with a new one.
+required state datum/ui_state/state Next state
+
+
+
diff --git a/datum/tgui_bug_report_form.html b/datum/tgui_bug_report_form.html
new file mode 100644
index 000000000000..541baeb31c17
--- /dev/null
+++ b/datum/tgui_bug_report_form.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/tgui_bug_report_form - byond
+
+
+
+
+
+
+Vars
+ admin_user client of the admin who is accessing the report, we don't want multiple admins unknowingly making changes at the same time.
+ awaiting_admin_approval value to determine if the bug report is submitted and awaiting admin approval, used for state purposes in tgui.
+ bug_report_data contains all the body text for the bug report.
+ initial_user client of the bug report author, needed to create the ticket
+ Var Details admin_user
+
+
+
+
+
+ client of the admin who is accessing the report, we don't want multiple admins unknowingly making changes at the same time.
awaiting_admin_approval
+
+
+
+
+
+ value to determine if the bug report is submitted and awaiting admin approval, used for state purposes in tgui.
bug_report_data
+
+
+
+
+
+ contains all the body text for the bug report.
initial_user
+
+
+
+
+
+ client of the bug report author, needed to create the ticket
+
+
+
diff --git a/datum/tgui_checkbox_input.html b/datum/tgui_checkbox_input.html
new file mode 100644
index 000000000000..2540dfa15174
--- /dev/null
+++ b/datum/tgui_checkbox_input.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+ /datum/tgui_checkbox_input - byond
+
+
+
+
+
+
+Window for tgui_input_checkboxes
Vars
+ choices List of selected items
+ closed Whether the input was closed
+ items List of items to display
+ max_checked Maximum number of checkboxes that can be checked
+ message Message to display
+ min_checked Minimum number of checkboxes that must be checked
+ start_time Time when the input was created
+ state The TGUI UI state that will be returned in ui_state(). Default: always_state
+ timeout Timeout for the input
+ title Title of the window
+ ui_theme String field for the theme to use Procs
+ wait Waits for a user's response to the tgui_checkbox_input's prompt before returning. Returns early if
+the window was closed by the user.
+ Var Details choices
+
+
+
+
+
+ List of selected items
closed
+
+
+
+
+
+ Whether the input was closed
items
+
+
+
+
+
+ List of items to display
max_checked
+
+
+
+
+
+ Maximum number of checkboxes that can be checked
message
+
+
+
+
+
+ Message to display
min_checked
+
+
+
+
+
+ Minimum number of checkboxes that must be checked
start_time
+
+
+
+
+
+ Time when the input was created
+ The TGUI UI state that will be returned in ui_state(). Default: always_state
timeout
+
+
+
+
+
+ Timeout for the input
title
+
+
+
+
+
+ Title of the window
ui_theme
+
+
+
+
+
+ String field for the theme to use
Proc Details wait()
+
+
+
+
+
+ Waits for a user's response to the tgui_checkbox_input's prompt before returning. Returns early if
+the window was closed by the user.
+
+
+
diff --git a/datum/tgui_checkbox_input/async.html b/datum/tgui_checkbox_input/async.html
new file mode 100644
index 000000000000..e939c6b7c688
--- /dev/null
+++ b/datum/tgui_checkbox_input/async.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/tgui_checkbox_input/async - byond
+
+
+
+
+
+
+An asynchronous version of tgui_checkbox_input to be used with callbacks instead of waiting on user responses.
Vars
+ callback The callback to be invoked by the tgui_modal upon having a choice made.
+ Var Details callback
+
+
+
+
+
+ The callback to be invoked by the tgui_modal upon having a choice made.
+
+
+
diff --git a/datum/tgui_input_number.html b/datum/tgui_input_number.html
new file mode 100644
index 000000000000..1c9a6b6efe1c
--- /dev/null
+++ b/datum/tgui_input_number.html
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+ /datum/tgui_input_number - byond
+
+
+
+
+
+
+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.
+ entry The entry that the user has return_typed in.
+ integer_only If the final value will be rounded
+ 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.
+ 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.
entry
+
+
+
+
+
+ The entry that the user has return_typed in.
integer_only
+
+
+
+
+
+ If the final value will be rounded
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.
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_number/async.html b/datum/tgui_input_number/async.html
new file mode 100644
index 000000000000..8b2c8398460a
--- /dev/null
+++ b/datum/tgui_input_number/async.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/tgui_input_number/async - byond
+
+
+
+
+
+
+An asynchronous version of tgui_input_number to be used with callbacks instead of waiting on user responses.
Vars
+ callback The callback to be invoked by the tgui_input_number upon having a choice made.
+ Var Details callback
+
+
+
+
+
+ The callback to be invoked by the tgui_input_number upon having a choice made.
+
+
+
diff --git a/datum/tgui_input_text.html b/datum/tgui_input_text.html
new file mode 100644
index 000000000000..2c3bef311752
--- /dev/null
+++ b/datum/tgui_input_text.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+ /datum/tgui_input_text - byond
+
+
+
+
+
+
+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.
+ 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
+ trim Whether to trim leading and trailing spaces 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.
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
trim
+
+
+
+
+
+ Whether to trim leading and trailing spaces
Proc Details set_entry(entry, trim)
+
+
+
+
+
+ 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 000000000000..e1f0f0933e2d
--- /dev/null
+++ b/datum/tgui_list_input.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+ /datum/tgui_list_input - byond
+
+
+
+
+
+
+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
+ buttons The list of buttons (responses) provided on the TGUI window. These will automatically all be strings
+ buttons_map Buttons (strings specifically) mapped to the actual value (e.g. a mob or a verb)
+ 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
+ invalid Whether the tgui list input is invalid or not (i.e. due to all list entries being null)
+ 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
+ ui_theme String field for the theme to use 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
+ The list of buttons (responses) provided on the TGUI window. These will automatically all be strings
+ Buttons (strings specifically) mapped to the actual value (e.g. a mob or a verb)
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
invalid
+
+
+
+
+
+ Whether the tgui list input is invalid or not (i.e. due to all list entries being null)
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
ui_theme
+
+
+
+
+
+ String field for the theme to use
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_list_input/async.html b/datum/tgui_list_input/async.html
new file mode 100644
index 000000000000..f77dc656be78
--- /dev/null
+++ b/datum/tgui_list_input/async.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/tgui_list_input/async - byond
+
+
+
+
+
+
+An asynchronous version of tgui_list_input to be used with callbacks instead of waiting on user responses.
Vars
+ callback The callback to be invoked by the tgui_modal upon having a choice made.
+ Var Details callback
+
+
+
+
+
+ The callback to be invoked by the tgui_modal upon having a choice made.
+
+
+
diff --git a/datum/tgui_modal.html b/datum/tgui_modal.html
new file mode 100644
index 000000000000..7ad88abe45b2
--- /dev/null
+++ b/datum/tgui_modal.html
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+ /datum/tgui_modal - byond
+
+
+
+
+
+
+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_modal was closed by the user.
+ message The textual body of the TGUI window
+ start_time The time at which the tgui_modal 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_modal, 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_modal'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_modal was closed by the user.
message
+
+
+
+
+
+ The textual body of the TGUI window
start_time
+
+
+
+
+
+ The time at which the tgui_modal 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_modal, 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_modal's prompt before returning. Returns early if
+the window was closed by the user.
+
+
+
diff --git a/datum/tgui_modal/async.html b/datum/tgui_modal/async.html
new file mode 100644
index 000000000000..7ab518c131da
--- /dev/null
+++ b/datum/tgui_modal/async.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/tgui_modal/async - byond
+
+
+
+
+
+
+An asynchronous version of tgui_modal to be used with callbacks instead of waiting on user responses.
Vars
+ callback The callback to be invoked by the tgui_modal upon having a choice made.
+ Var Details callback
+
+
+
+
+
+ The callback to be invoked by the tgui_modal upon having a choice made.
+
+
+
diff --git a/datum/tgui_panel.html b/datum/tgui_panel.html
new file mode 100644
index 000000000000..9e99d63d2d1e
--- /dev/null
+++ b/datum/tgui_panel.html
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+ /datum/tgui_panel - byond
+
+
+
+
+
+
+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 000000000000..7b291514a528
--- /dev/null
+++ b/datum/tgui_say.html
@@ -0,0 +1,210 @@
+
+
+
+
+
+
+ /datum/tgui_say - byond
+
+
+
+
+
+
+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
+ hurt_phrases Injury phrases to blurt out
+ max_length Max message length
+ 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.
+ alter_entry Alters text when players are injured.
+Adds text, trims left and right side
+ close Closes the window serverside. Closes any open chat bubbles
+regardless of preference. Logs the event.
+ delegate_speech No OOC leaks
+Random trimming for larger sentences
+Otherwise limit trim to just last letter
+Delegates the speech to the proper channel.
+ force_say Force say handler.
+Sends a message to the say modal to send its current value.
+ 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). Logs the event.
+ start_thinking Sets the mob as "thinking" - with indicator and variable thinking_IC
+ start_typing Handles the user typing. After a brief period of inactivity,
+signals the client mob to revert to the "thinking" icon.
+ stop_thinking 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
hurt_phrases
+
+
+
+
+
+ Injury phrases to blurt out
max_length
+
+
+
+
+
+ Max message length
+ 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.
alter_entry(payload)
+
+
+
+
+
+ Alters text when players are injured.
+Adds text, trims left and right side
+Arguments:
+payload - a string list containing entry & channel
+Returns:
+string - the altered entry
close()
+
+
+
+
+
+ Closes the window serverside. Closes any open chat bubbles
+regardless of preference. Logs the event.
delegate_speech(entry, channel)
+
+
+
+
+
+ No OOC leaks
+Random trimming for larger sentences
+Otherwise limit trim to just last letter
+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
force_say()
+
+
+
+
+
+ Force say handler.
+Sends a message to the say modal to send its current value.
handle_entry(type, payload)
+
+
+
+
+
+ Handles text entry and forced speech.
+Arguments:
+type - a string "entry" or "force" based on how this function is called
+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). Logs the event.
+Arguments:
+payload - A list containing the channel the window was opened in.
start_thinking()
+
+
+
+
+
+ Sets the mob as "thinking" - with indicator and variable thinking_IC
start_typing()
+
+
+
+
+
+ Handles the user typing. After a brief period of inactivity,
+signals the client mob to revert to the "thinking" icon.
stop_thinking()
+
+
+
+
+
+ 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 000000000000..f1b7cb6bbea7
--- /dev/null
+++ b/datum/tgui_window.html
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+ /datum/tgui_window - byond
+
+
+
+
+
+
+
+ Var Details byondToTguiEventMap
+
+
+
+
+
+ Static list used to map in macros that will then emit execute events to the tgui window
+A small disclaimer though I'm no tech wiz: I don't think it's possible to map in right or middle
+clicks in the current state, as they're keywords rather than modifiers.
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/timedevent.html b/datum/timedevent.html
new file mode 100644
index 000000000000..c30c22ecdefd
--- /dev/null
+++ b/datum/timedevent.html
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+ /datum/timedevent - byond
+
+
+
+
+
+
+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
+ timer_subsystem The timer subsystem this event is associated with
+ 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.
+ 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
+ The timer subsystem this event is associated with
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.
getcallingtype()
+
+
+
+
+
+ Returns a string of the type of the callback for this timer
+
+
+
diff --git a/datum/turf_reservation.html b/datum/turf_reservation.html
new file mode 100644
index 000000000000..f6a8e1434858
--- /dev/null
+++ b/datum/turf_reservation.html
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+ /datum/turf_reservation - byond
+
+
+
+
+
+
+Vars
+ bottom_left_turfs List of the bottom left turfs. Indexed by what their z index for this reservation is
+ cordon_turfs Turfs around the reservation for cordoning
+ height The height of the reservation
+ pre_cordon_distance Distance away from the cordon where we can put a "sort-cordon" and run some extra code (see make_repel). 0 makes nothing happen
+ pre_cordon_turfs Area of turfs next to the cordon to fill with pre_cordon_area's
+ reserved_turfs All turfs that we've reserved
+ top_right_turfs List of the top right turfs. Indexed by what their z index for this reservation is
+ turf_type The turf type the reservation is initially made with
+ width The width of the reservation
+ z_size The z stack size of the reservation. Note that reservations are ALWAYS reserved from the bottom up Procs
+ _reserve_area Internal proc which handles reserving the area for the reservation.
+ calculate_cordon_turfs Attempts to calaculate and store a list of turfs around the reservation for cordoning. Returns whether a valid cordon was calculated
+ calculate_turf_bounds_information Calculates the effective bounds information for the given turf. Returns a list of the information, or null if not applicable.
+ generate_cordon Actually generates the cordon around the reservation, and marking the cordon turfs as reserved
+ get_turf_above Gets the turf above the given target. Returns null if there is no turf above the target
+ get_turf_below Gets the turf below the given target. Returns null if there is no turf below the target
+ Var Details bottom_left_turfs
+
+
+
+
+
+ List of the bottom left turfs. Indexed by what their z index for this reservation is
cordon_turfs
+
+
+
+
+
+ Turfs around the reservation for cordoning
height
+
+
+
+
+
+ The height of the reservation
pre_cordon_distance
+
+
+
+
+
+ Distance away from the cordon where we can put a "sort-cordon" and run some extra code (see make_repel). 0 makes nothing happen
pre_cordon_turfs
+
+
+
+
+
+ Area of turfs next to the cordon to fill with pre_cordon_area's
reserved_turfs
+
+
+
+
+
+ All turfs that we've reserved
top_right_turfs
+
+
+
+
+
+ List of the top right turfs. Indexed by what their z index for this reservation is
turf_type
+
+
+
+
+
+ The turf type the reservation is initially made with
width
+
+
+
+
+
+ The width of the reservation
z_size
+
+
+
+
+
+ The z stack size of the reservation. Note that reservations are ALWAYS reserved from the bottom up
Proc Details _reserve_area(width, height, zlevel)
+
+
+
+
+
+ Internal proc which handles reserving the area for the reservation.
calculate_cordon_turfs
+
+ Attempts to calaculate and store a list of turfs around the reservation for cordoning. Returns whether a valid cordon was calculated
+ Calculates the effective bounds information for the given turf. Returns a list of the information, or null if not applicable.
generate_cordon()
+
+
+
+
+
+ Actually generates the cordon around the reservation, and marking the cordon turfs as reserved
get_turf_above
+
+ Gets the turf above the given target. Returns null if there is no turf above the target
get_turf_below
+
+ Gets the turf below the given target. Returns null if there is no turf below the target
+
+
+
diff --git a/datum/tutorial.html b/datum/tutorial.html
new file mode 100644
index 000000000000..be7733f9c11a
--- /dev/null
+++ b/datum/tutorial.html
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+ /datum/tutorial - byond
+
+
+
+
+
+
+A tutorial datum contains a set of instructions for a player tutorial, such as what to spawn, what's scripted to occur, and so on.
Vars
+ bottom_left_corner Ref to the bottom-left corner tile of the tutorial room
+ category What category the tutorial should be under
+ completion_marked If the tutorial has been completed. This doesn't need to be modified if you call end_tutorial() with a param of TRUE
+ desc A short 1-2 sentence description of the tutorial itself
+ icon_state What the tutorial's icon in the UI should look like
+ name What the tutorial is called, is player facing
+ parent_path What is the parent path of this, to exclude from the tutorial menu
+ player_bind_dict A dictionary of "bind_name" : "keybind_button". The inverse of key_bindings
on a client's prefs
+ reservation Ref to the turf reservation for this tutorial
+ tracking_atoms A dict of type:atom ref for some important junk that should be trackable
+ tutorial_ending If the tutorial will be ending soon
+ tutorial_id Internal ID of the tutorial, kept for save files. Format is "tutorialtype_specifictutorial_number". So, the first basic xeno tutorial would be "xeno_basic_1", and the 2nd marine medical tutorial would be "marine_medical_2"
+ tutorial_mob Ref to the player who is doing the tutorial
+ tutorial_template What map template should be used for the tutorial Procs
+ abort_tutorial Something went very, very wrong during load so let's abort
+ end_tutorial The proc used to end and clean up the tutorial
+ generate_binds Generate a dictionary of button : action for use of referencing what keys to press
+ init_map Initialize any objects that need to be in the tutorial area from the beginning.
+ init_mob Initialize the tutorial mob.
+ loc_from_corner Returns a turf offset by offset_x (left-to-right) and offset_y (up-to-down)
+ mark_completed When called, will make anything that ends the tutorial mark it as completed. Does not need to be called if end_tutorial(TRUE) is called instead
+ message_to_player Broadcast a message to the player's screen
+ on_ghost Handle the player ghosting out
+ on_logout Called whenever the tutorial_mob logs out
+ retrieve_bind Getter for player_bind_dict. Provide an action name like "North" or "quick_equip"
+ signal_end_tutorial A wrapper for signals to call end_tutorial()
+ start_tutorial The proc to begin doing everything related to the tutorial
+ tutorial_end_in Ends the tutorial after a certain amount of time.
+ update_objective Updates a player's objective in their status tab
+ verify_template_loaded Verify the template loaded fully and without error.
+ Var Details bottom_left_corner
+
+
+
+
+
+ Ref to the bottom-left corner tile of the tutorial room
category
+
+
+
+
+
+ What category the tutorial should be under
completion_marked
+
+
+
+
+
+ If the tutorial has been completed. This doesn't need to be modified if you call end_tutorial() with a param of TRUE
desc
+
+
+
+
+
+ A short 1-2 sentence description of the tutorial itself
icon_state
+
+
+
+
+
+ What the tutorial's icon in the UI should look like
name
+
+
+
+
+
+ What the tutorial is called, is player facing
parent_path
+
+
+
+
+
+ What is the parent path of this, to exclude from the tutorial menu
player_bind_dict
+
+
+
+
+
+ A dictionary of "bind_name" : "keybind_button". The inverse of key_bindings
on a client's prefs
+ Ref to the turf reservation for this tutorial
tracking_atoms
+
+
+
+
+
+ A dict of type:atom ref for some important junk that should be trackable
tutorial_ending
+
+
+
+
+
+ If the tutorial will be ending soon
tutorial_id
+
+
+
+
+
+ Internal ID of the tutorial, kept for save files. Format is "tutorialtype_specifictutorial_number". So, the first basic xeno tutorial would be "xeno_basic_1", and the 2nd marine medical tutorial would be "marine_medical_2"
tutorial_mob
+
+
+
+
+
+ Ref to the player who is doing the tutorial
tutorial_template
+
+
+
+
+
+ What map template should be used for the tutorial
Proc Details abort_tutorial()
+
+
+
+
+
+ Something went very, very wrong during load so let's abort
end_tutorial(completed)
+
+
+
+
+
+ The proc used to end and clean up the tutorial
generate_binds()
+
+
+
+
+
+ Generate a dictionary of button : action for use of referencing what keys to press
init_map()
+
+
+
+
+
+ Initialize any objects that need to be in the tutorial area from the beginning.
init_mob()
+
+
+
+
+
+ Initialize the tutorial mob.
loc_from_corner(offset_x, offset_y)
+
+
+
+
+
+ Returns a turf offset by offset_x (left-to-right) and offset_y (up-to-down)
mark_completed()
+
+
+
+
+
+ When called, will make anything that ends the tutorial mark it as completed. Does not need to be called if end_tutorial(TRUE) is called instead
message_to_player(message)
+
+
+
+
+
+ Broadcast a message to the player's screen
+ Handle the player ghosting out
on_logout
+
+ Called whenever the tutorial_mob logs out
retrieve_bind(action_name)
+
+
+
+
+
+ Getter for player_bind_dict. Provide an action name like "North" or "quick_equip"
signal_end_tutorial
+
+ A wrapper for signals to call end_tutorial()
start_tutorial(/mob /starting_mob)
+
+
+
+
+
+ The proc to begin doing everything related to the tutorial
tutorial_end_in(time, completed)
+
+
+
+
+
+ Ends the tutorial after a certain amount of time.
update_objective(message)
+
+
+
+
+
+ Updates a player's objective in their status tab
verify_template_loaded()
+
+
+
+
+
+ Verify the template loaded fully and without error.
+
+
+
diff --git a/datum/tutorial/marine/basic.html b/datum/tutorial/marine/basic.html
new file mode 100644
index 000000000000..e2d110a6c857
--- /dev/null
+++ b/datum/tutorial/marine/basic.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/tutorial/marine/basic - byond
+
+
+
+
+
+
+Vars
+ clothing_items_to_vend How many items need to be vended from the clothing vendor for the script to continue, if something vends 2 items (for example), increase this number by 2.
+ gun_items_to_vend How many items need to be vended from the gun vendor to continue Procs
+ on_magazine_empty Non-contiguous part of the script, called if the user manages to run out of ammo in the gun without the xeno dying
+ Var Details clothing_items_to_vend
+
+
+
+
+
+ How many items need to be vended from the clothing vendor for the script to continue, if something vends 2 items (for example), increase this number by 2.
gun_items_to_vend
+
+
+
+
+
+ How many items need to be vended from the gun vendor to continue
Proc Details on_magazine_empty
+
+ Non-contiguous part of the script, called if the user manages to run out of ammo in the gun without the xeno dying
+
+
+
diff --git a/datum/tutorial/marine/example.html b/datum/tutorial/marine/example.html
new file mode 100644
index 000000000000..3a5f9339ec9d
--- /dev/null
+++ b/datum/tutorial/marine/example.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/tutorial/marine/example - byond
+
+
+
+
+
+
+Procs
+ on_can_pickup We get these arguments from the signal's definition. If you have VSC, ctrl+click on COMSIG_MOB_PICKUP_ITEM above. When dealing with a signal proc, datum/source
is always the first argument, then any added ones
Proc Details on_can_pickup
+
+ We get these arguments from the signal's definition. If you have VSC, ctrl+click on COMSIG_MOB_PICKUP_ITEM above. When dealing with a signal proc, datum/source
is always the first argument, then any added ones
+
+
+
diff --git a/datum/tutorial/marine/reqs_line.html b/datum/tutorial/marine/reqs_line.html
new file mode 100644
index 000000000000..69e9239a1274
--- /dev/null
+++ b/datum/tutorial/marine/reqs_line.html
@@ -0,0 +1,231 @@
+
+
+
+
+
+
+ /datum/tutorial/marine/reqs_line - byond
+
+
+
+
+
+
+Simulates the Requisitions Line experience for newcomers
Vars
+ active_agent Active agent currently at the line
+ agents List of line 'agents', aka the dummies requesting items, sorted by line order
+During normal stages there is one per stage (except for Forgot stage),
+During Survival mode there would usually be two: one at the counter, and one moving.
+The agents are mapped to a list of item types requested.
+ confused_cooldown Cooldown of confusion if an incorrect item is presented
+ confused_types Crutch for confusion feedback to work with vending new()ing directly to table - only act surprised once per item type
+ hint_timer Current "hint" timer after which we display visual cues like highlights
+ loser_agent Specifically for TUTORIAL_REQS_LINE_STAGE_MIXED , the agent that forgot an item
+ max_survival_agents Max amount of agents per survival wave
+ remind_timer Current "remind" timer after which the agent will remind player of its request
+ stage Current step of the tutorial we're at
+ survival_difficulty Difficulty factor per survival wave, increasing both the amount of agents and requested items
+ survival_request_random_factor Max factor of additional items requested per agent in survival mode. 0.5 = 50% added maximum
+ survival_wave Current survival wave Procs
+ a_new_challenger_appears Called when an agent presents at the line window and needs to make a request
+ agent_step Makes agents move on processing tick if they can. They check surroundings to ensure proper movement flow.
+ clean_agent Cleanup when an agent reaches the exit
+ clean_items Cleanup the table and ground contents when an agent leaves the line
+ item_offered Triggered when an object is put on the table. The agent evaluates if that's something they want and reacts appropriately.
+ kill_timers Kills active timers to reset state
+ remind_request Called when we need to remind the user of what we want served
+ restock_one_vendor Refills a specific vendor to 99 items across the board
+ restock_vendors Refills all the vendors on stage updates so the player shouldn't run out of stock
+ scan_table_for_items Re-scan the table/trade turf for any present items. We have to do this because items vended to the table do not move onto it.
+ send_hints Displays appropriate hints for the user based on tutorial stage
+ spawn_agent Creates a new agent with the given request list to queue in the line
+ spawn_survival_agent Called to generate a single agent and request
+ spawn_survival_wave Called to generate a new survival wave of agents
+ user_in_position Called when the player is in position to start handling the line
+ verbalize_request Transforms the list of required items by the agent into a string request for the user
+ Var Details
+ Active agent currently at the line
agents
+ – /list/mob/living/carbon/human
+
+
+
+
+ List of line 'agents', aka the dummies requesting items, sorted by line order
+During normal stages there is one per stage (except for Forgot stage),
+During Survival mode there would usually be two: one at the counter, and one moving.
+The agents are mapped to a list of item types requested.
confused_cooldown
+
+
+
+
+
+ Cooldown of confusion if an incorrect item is presented
confused_types
+
+
+
+
+
+ Crutch for confusion feedback to work with vending new()ing directly to table - only act surprised once per item type
hint_timer
+
+
+
+
+
+ Current "hint" timer after which we display visual cues like highlights
+ Specifically for TUTORIAL_REQS_LINE_STAGE_MIXED , the agent that forgot an item
max_survival_agents
+
+
+
+
+
+ Max amount of agents per survival wave
remind_timer
+
+
+
+
+
+ Current "remind" timer after which the agent will remind player of its request
stage
+
+
+
+
+
+ Current step of the tutorial we're at
survival_difficulty
+
+
+
+
+
+ Difficulty factor per survival wave, increasing both the amount of agents and requested items
survival_request_random_factor
+
+
+
+
+
+ Max factor of additional items requested per agent in survival mode. 0.5 = 50% added maximum
survival_wave
+
+
+
+
+
+ Current survival wave
Proc Details a_new_challenger_appears
+
+ Called when an agent presents at the line window and needs to make a request
+ Makes agents move on processing tick if they can. They check surroundings to ensure proper movement flow.
clean_agent
+
+ Cleanup when an agent reaches the exit
clean_items()
+
+
+
+
+
+ Cleanup the table and ground contents when an agent leaves the line
item_offered
+
+ Triggered when an object is put on the table. The agent evaluates if that's something they want and reacts appropriately.
kill_timers()
+
+
+
+
+
+ Kills active timers to reset state
remind_request()
+
+
+
+
+
+ Called when we need to remind the user of what we want served
+ Refills a specific vendor to 99 items across the board
restock_vendors()
+
+
+
+
+
+ Refills all the vendors on stage updates so the player shouldn't run out of stock
scan_table_for_items
+
+ Re-scan the table/trade turf for any present items. We have to do this because items vended to the table do not move onto it.
send_hints()
+
+
+
+
+
+ Displays appropriate hints for the user based on tutorial stage
spawn_agent(/list/request, name_prefix)
+
+
+
+
+
+ Creates a new agent with the given request list to queue in the line
spawn_survival_agent(items_to_request)
+
+
+
+
+
+ Called to generate a single agent and request
spawn_survival_wave()
+
+
+
+
+
+ Called to generate a new survival wave of agents
user_in_position
+
+ Called when the player is in position to start handling the line
verbalize_request(/list/original_request)
+
+
+
+
+
+ Transforms the list of required items by the agent into a string request for the user
+
+
+
diff --git a/datum/tutorial/xenomorph.html b/datum/tutorial/xenomorph.html
new file mode 100644
index 000000000000..231c7b40e383
--- /dev/null
+++ b/datum/tutorial/xenomorph.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/tutorial/xenomorph - byond
+
+
+
+
+
+
+Vars
+ remove_all_actions If TRUE remove all actions from the tutorial xenomorph. If FALSE none will be removed. You can give actions back in the tutorial with give_action()
+ starting_xenomorph_type Starting xenomorph type (caste) of type /mob/living/carbon/xenomorph/...
+ xeno Reference to the actual xenomorph mob
+ Var Details remove_all_actions
+
+
+
+
+
+ If TRUE remove all actions from the tutorial xenomorph. If FALSE none will be removed. You can give actions back in the tutorial with give_action()
+ Starting xenomorph type (caste) of type /mob/living/carbon/xenomorph/...
+ Reference to the actual xenomorph mob
+
+
+
diff --git a/datum/tutorial/xenomorph/abomination.html b/datum/tutorial/xenomorph/abomination.html
new file mode 100644
index 000000000000..f8e35888fd69
--- /dev/null
+++ b/datum/tutorial/xenomorph/abomination.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/tutorial/xenomorph/abomination - byond
+
+
+
+
+
+
+
+ Var Details ending_marines_killed
+
+
+
+
+
+ How many marines in the kill_marines stage have been killed
Proc Details on_marine_early_death
+
+ In case a marine dies early to prevent softlocks
+
+
+
diff --git a/datum/tutorial_menu.html b/datum/tutorial_menu.html
new file mode 100644
index 000000000000..a85b3a379cd1
--- /dev/null
+++ b/datum/tutorial_menu.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/tutorial_menu - byond
+
+
+
+
+
+
+Vars
+ categories List of ["name" = name, "tutorials" = ["name" = name, "path" = "path", "id" = tutorial_id]]
+ Var Details categories
+
+
+
+
+
+ List of ["name" = name, "tutorials" = ["name" = name, "path" = "path", "id" = tutorial_id]]
+
+
+
diff --git a/datum/ui_state.html b/datum/ui_state.html
new file mode 100644
index 000000000000..d03d8717de20
--- /dev/null
+++ b/datum/ui_state.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ /datum/ui_state - byond
+
+
+
+
+
+
+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/unit_test.html b/datum/unit_test.html
new file mode 100644
index 000000000000..17826cf0f455
--- /dev/null
+++ b/datum/unit_test.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /datum/unit_test - byond
+
+
+
+
+
+
+Vars
+ priority The priority of the test, the larger it is the later it fires
+ run_loc_floor_bottom_left The bottom left floor turf of the testing zone
+ run_loc_floor_top_right The top right floor turf of the testing zone Procs
+ allocate Allocates an instance of the provided type, and places it somewhere in an available loc
+Instances allocated through this proc will be destroyed when the test is over
+ get_flat_icon_for_all_directions Helper for screenshot tests to take an image of an atom from all directions and insert it into one icon
+ log_for_test Logs a test message. Will use GitHub action syntax found at https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions
+ Var Details priority
+
+
+
+
+
+ The priority of the test, the larger it is the later it fires
run_loc_floor_bottom_left
+
+
+
+
+
+ The bottom left floor turf of the testing zone
run_loc_floor_top_right
+
+
+
+
+
+ The top right floor turf of the testing zone
Proc Details allocate(type, ...)
+
+
+
+
+
+ Allocates an instance of the provided type, and places it somewhere in an available loc
+Instances allocated through this proc will be destroyed when the test is over
get_flat_icon_for_all_directions(/atom /thing, no_anim)
+
+
+
+
+
+ Helper for screenshot tests to take an image of an atom from all directions and insert it into one icon
log_for_test(text, priority, file, line)
+
+
+
+
+
+ Logs a test message. Will use GitHub action syntax found at https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions
+
+
+
diff --git a/datum/unit_test/check_runtimes.html b/datum/unit_test/check_runtimes.html
new file mode 100644
index 000000000000..f73343e8f261
--- /dev/null
+++ b/datum/unit_test/check_runtimes.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/unit_test/check_runtimes - byond
+
+
+
+
+
+
+Vars
+ whitelisted_regex Regex patterns if we must satisfy checks with runtimes present
+ Var Details whitelisted_regex
+
+
+
+
+
+ Regex patterns if we must satisfy checks with runtimes present
+
+
+
diff --git a/datum/unit_test/missing_icons.html b/datum/unit_test/missing_icons.html
new file mode 100644
index 000000000000..b0ccfcca1e3c
--- /dev/null
+++ b/datum/unit_test/missing_icons.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ /datum/unit_test/missing_icons - byond
+
+
+
+
+
+
+Makes sure objects actually have icons that exist!
Vars
+ additional_icon_location additional_icon_location is for downstream modularity support.
+Make sure this location is also present in tools/deploy.sh
+If you need additional paths ontop of this second one, you can add another generate_possible_icon_states_list("your/folder/path/") below the if(additional_icon_location) block in Run(), and make sure to add that path to tools/deploy.sh as well.
+ Var Details additional_icon_location
+
+
+
+
+
+ additional_icon_location is for downstream modularity support.
+Make sure this location is also present in tools/deploy.sh
+If you need additional paths ontop of this second one, you can add another generate_possible_icon_states_list("your/folder/path/") below the if(additional_icon_location) block in Run(), and make sure to add that path to tools/deploy.sh as well.
+
+
+
diff --git a/datum/unit_test/stop_drop_and_roll.html b/datum/unit_test/stop_drop_and_roll.html
new file mode 100644
index 000000000000..4fa90ef02aa3
--- /dev/null
+++ b/datum/unit_test/stop_drop_and_roll.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/unit_test/stop_drop_and_roll - byond
+
+
+
+
+
+
+Procs
+ Run Test that stop, drop, and roll lowers fire stacks
Proc Details Run()
+
+
+
+
+
+ Test that stop, drop, and roll lowers fire stacks
+
+
+
diff --git a/datum/weather_event.html b/datum/weather_event.html
new file mode 100644
index 000000000000..ee2e2c9f5a6b
--- /dev/null
+++ b/datum/weather_event.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/weather_event - byond
+
+
+
+
+
+
+
+ Var Details fullscreen_type
+
+
+
+
+
+ Optional vars
name
+
+
+
+
+
+ MANDATORY vars
+
+
+
diff --git a/datum/world_topic.html b/datum/world_topic.html
new file mode 100644
index 000000000000..c2e5fe837251
--- /dev/null
+++ b/datum/world_topic.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/world_topic - byond
+
+
+
+
+
+
+Vars
+ anonymous can be used with anonymous authentication
+ key query key
+ Var Details anonymous
+
+
+
+
+
+ can be used with anonymous authentication
key
+
+
+
+
+
+ query key
+
+
+
diff --git a/datum/xeno_shield/vanguard.html b/datum/xeno_shield/vanguard.html
new file mode 100644
index 000000000000..16e010325a38
--- /dev/null
+++ b/datum/xeno_shield/vanguard.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/xeno_shield/vanguard - byond
+
+
+
+
+
+
+Procs
+ begin_decay Decay is suppressed for Vanguard Shield and triggered on hit
Proc Details begin_decay()
+
+
+
+
+
+ Decay is suppressed for Vanguard Shield and triggered on hit
+
+
+
diff --git a/datum/xeno_strain.html b/datum/xeno_strain.html
new file mode 100644
index 000000000000..460d7def47f9
--- /dev/null
+++ b/datum/xeno_strain.html
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+ /datum/xeno_strain - byond
+
+
+
+
+
+
+
+ Var Details actions_to_add
+
+
+
+
+
+ A list of action typepaths which should be added when a xeno takes the strain.
actions_to_remove
+
+
+
+
+
+ A list of action typepaths which should be removed when a xeno takes the strain.
behavior_delegate_type
+
+
+
+
+
+ Typepath of the /datum/behavior_delegate to add.
description
+
+
+
+
+
+ Description to be displayed on purchase.
flavor_description
+
+
+
+
+
+ (OPTIONAL) Flavor text to be shown on purchase. Semi-OOC
icon_state_prefix
+
+
+
+
+
+ (OPTIONAL) A custom icon state prefix for xenos who have taken the strain.
name
+
+
+
+
+
+ The name of the strain. Should be short but informative.
Proc Details
+ Add this strain to xeno
, replacing their actions and behavior holder.
+Returns a bool indicating if the strain was successfully applied.
+Override /datum/xeno_strain/proc/apply_strain , not this! (Unless you know what you're doing.)
+ Adds any special modifiers/changes from this strain to xeno
.
+Called when the strain is first added to the player.
+
+
+
diff --git a/datum/yautja_emote_panel.html b/datum/yautja_emote_panel.html
new file mode 100644
index 000000000000..e51ccee5d963
--- /dev/null
+++ b/datum/yautja_emote_panel.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/yautja_emote_panel - byond
+
+
+
+
+
+
+
+ Var Details panel_emote_cooldown
+
+
+
+
+
+ Panel allows you to spam, so a manual CD is added here
yautja_categories
+
+
+
+
+
+ Static list of categories
yautja_emotes
+
+
+
+
+
+ Static dict ("category" : (emotes)) of every yautja emote typepath
+
+
+
diff --git a/dmdoc.css b/dmdoc.css
new file mode 100644
index 000000000000..367f005d2a85
--- /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 000000000000..6bf31f7e9441
--- /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 000000000000..c190e8538b5c
Binary files /dev/null and b/git.png differ
diff --git a/global.html b/global.html
new file mode 100644
index 000000000000..8f0be2fee9e3
--- /dev/null
+++ b/global.html
@@ -0,0 +1,1624 @@
+
+
+
+
+
+
+ (global) - byond
+
+
+
+
+(global)
+
+
+
+
+
+Vars
+ Failsafe Failsafe
+ Master StonedMC
+ SSautomatedfire
+ SSescape_menu Subsystem for controlling anything related to the escape menu
+ SSinfluxdriver Sends collected statistics to an influxdb v2 backend periodically
+ SSinfluxstats Sends generic round running statistics to the InfluxDB backend
+ SSminimaps
+ SSpager_status Updates BYOND pager status periodically
+ SStgui tgui subsystem
+ SStimer Procs
+ CreateBans DEBUG
+ GUID returns a GUID like identifier (using a mostly made up record format)
+guids are not on their own suitable for access or security tokens, as most of their bits are predictable.
+(But may make a nice salt to one)
+ Get_Angle Calculate the angle between two atoms. Uses north-clockwise convention: NORTH = 0, EAST = 90, etc.
+ HandleUserlessProcCall Handles a userless proccall, used by circuits.
+ HandleUserlessSDQL Handles a userless sdql, used by TGS.
+ TurfBlockedNonWindow the actual dir between the start and target turf
+The direction that mover's path is being blocked by
+ WrapAdminProcCall Wrapper for proccalls where the datum is flagged as vareditted
+ ___TraitAdd DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
+ ___TraitRemove DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
+ ______qdel_list_wrapper the underscores are to encourage people not to use this directly.
+ _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.
+ _animate_filter Auxtools REALLY doesn't know how to handle filters as values;
+when passed as arguments to auxtools-called procs, they aren't simply treated as nulls -
+they don't even count towards the length of args.
+For example, calling some_proc([a filter], foo, bar) from auxtools
+is equivalent to calling some_proc(foo, bar). Thus, we can't use _animate directly on filters.
+Use this to perform animation steps on a filter. Consecutive steps on the same filter can be
+achieved by calling _animate with no target.
+ _pick_list Allow me to explain
+for some reason, if pick() is passed arglist(args) directly and args contains only one list
+it considers it to be a list of lists
+this means something like _pick(list) would fail
+need to do this instead
+ add_keybinding Adds an instanced keybinding to the global tracker
+ add_verb handles adding verbs and updating the stat panel browser
+ admin_ticket_log Use this proc when an admin takes action that may be related to an open ticket on what
+what can be a client, ckey, or mob
+player_message: If the message should be shown in the player ticket panel, fill this out
+log_in_blackbox: Whether or not this message with the blackbox system.
+If disabled, this message should be logged with a different proc call
+ anyprob chances are 1:value. anyprob(1) will always return true
+ at_least Takes a value, and a threshold it has to at least match
+returns the correctly signed value max'd to the threshold
+ baseturfs_string_list A wrapper for baseturf string lists, to offer support of non list values, and a stack_trace if we have major issues
+ big_number_to_text Formats a larger number to correct textual representation without losing data
+ bit_count counts the number of bits in Byond's 16-bit width field, in constant time and memory!
+ bitfield_to_list Converts a bitfield to a list of numbers (or words if a wordlist is provided)
+ capitalize_first_letters Finds the first letter of each word in the provided string and capitalize them
+ center_image Center's an image.
+Requires:
+The Image
+The x dimension of the icon file used in the image
+The y dimension of the icon file used in the image
+eg: center_image(image_to_center, 32,32)
+eg2: center_image(image_to_center, 96,96)
+ check_asay_links Checks a given message to see if any of the words are something we want to treat specially, as detailed below.
+ cmp_mob_deathtime_asc Compares mobs based on their timeofdeath value in ascending order
+ cmp_obs_larvaqueuetime_asc Compares observers based on their larva_queue_time value in ascending order
+Assumes the client on the observer is not null
+ color_matrix_from_string Converts a hex color string to a color matrix.
+ color_matrix_recolor_red Creates a matrix to re-paint a sprite, replacing shades of red with corresponding shades of a new color. In the base sprite, Hue must always be pure red.
+Saturation and Lightness can be anything. Arg is a hex string for a color. Proc is by Lummox JR, www.byond.com/forum/post/2209545
+color_matrix_recolor_rgb is more complex, but gives more precise control over the palette, at least if using 3 or fewer colours.
+ color_matrix_recolor_rgb Creates a matrix to re-paint a sprite, replacing pure red, green, and blue with 3 different shades. Doesn't work with mixed tones of RGB or whites or greys
+-- must be pure. R/G/B 255 becomes the new color, darker shades become correspondingly darker.
+The arg is a list of hex colours, for ex "list("#d4c218", "#b929f7", "#339933"".
+if you want variations of the same color, color_matrix_recolor_red() is simpler.
+ create_strippable_list Creates an assoc list of keys to /datum/strippable_item
+ debug_variable Get displayed variable in VV variable list
+ default_ui_state The sane defaults for a UI such as a computer or a machine.
+ delete_all_SS_and_recreate_master Delete all existing SS to basically start over
+ delta_to_angle Calculate the angle produced by a pair of x and y deltas. Uses north-clockwise convention: NORTH = 0, EAST = 90, etc.
+ deltimer Delete a timer
+ display_power Format a power value in W, kW, MW, or GW.
+ doview Version of oview() which ignores darkness
+ dview Version of view() which ignores darkness, because BYOND doesn't have it (I actually suggested it but it was tagged redundant, BUT HEARERS IS A T- /rant).
+ emissive_appearance Produces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EMISSIVE_COLOR .
+ emissive_blocker Produces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EM_BLOCK_COLOR .
+ end_cooldown Callback called by a timer to end an associative-list-indexed cooldown.
+ extend_line_to_radius gets a line from a x and y, to the offset x and y of length radius
+ flick_overlay_to_clients Add an image to a list of clients and calls a proc to remove it after a duration
+ 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
+ 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 extention.)
+ generate_autowiki_output When the AUTOWIKI
define is enabled, will generate an output file for tools/autowiki/autowiki.js to consume.
+Autowiki code intentionally still exists even without the define, to ensure developers notice
+when they break it immediately, rather than until CI or worse, call time.
+Returns a string of the autowiki output file
+ generate_bitfields Turns /datum/bitfield subtypes into a list for use in debugging
+ generate_lazy_template_map Iterates through all lazy template datums that exist and returns a list of them as an associative list of type -> instance.
+ getFlatIcon Create a single /icon from a given /atom or /image .
+ get_active_player_count Get active players who are playing in the round
+ get_alien_candidates Get a list of observers that can be alien candidates.
+ get_all_notes Returns all notes associated with a CKEY, structured as a list of strings.
+ get_bbox_of_atoms Get a bounding box of a list of atoms.
+ get_cardinal_dir Returns the nearest cardinal dir between two atoms. Favors NORTH/SOUTH on perfect diagonals. Consistent and reversible.
+ get_ceiling_protection_level Convert a turf protection level to a ceiling protection level
+ 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 start_atom
to end_atom
.
+ get_minimap_flag_for_faction Gets the MINIMAP_FLAG for the provided faction or hivenumber if one exists
+ get_pixel_position_x Gives X position on pixel grid of an object, accounting for offsets
+ get_pixel_position_y Gives Y position on pixel grid of an object, accounting for offsets
+ get_radios_in_view only gets FUNCTIONING radios
+ get_related_directions Given a direction, return the direction and the +-45 degree directions next to it
+ get_specialist_set Get a specialist set datum typepath given a mob, returns null if they aren't a spec or haven't chosen a kit.
+ get_tacmap_data_png Fetches the datum containing an announced flattend map png reference.
+ get_tacmap_data_svg Fetches the last set of svg coordinates for the tacmap drawing.
+ get_total_living_playtime Returns the total time in minutes a specific player ID has played for
+ get_turf_on_clickcatcher Helper proc that processes a clicked target, if the target is not black tiles, it will not change it. If they are it will return the turf of the black tiles. It will return null if the object is a screen object other than black tiles.
+ get_unannounced_tacmap_data_png Fetches the datum containing the latest unannounced flattend map png reference.
+ get_whitelisted_roles returns a list of strings containing the whitelists held by a specific ckey
+ getpois Returns a list of all items of interest with their name
+ give_action Gives an action to a mob and returns it
+ give_escape_menu_details Provides a singleton for the escape menu details screen.
+ give_escape_menu_title Provides a singleton for the escape menu details screen.
+ icon2html 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"
+but they pass both isicon() and isfile() checks. theyre the easiest case since stringifying them gives us the path we want
+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:
+ icon_exists Checks if the given iconstate exists in the given file, caching the result. Setting scream to TRUE will print a stack trace ONCE.
+ init_keybindings Creates and sorts all the keybinding datums
+ initiate_surgery_moment Does the surgery initiation. Returns TRUE if the triggering attack should be halted.
+ is_valid_dmi_file given a text string, returns whether it is a valid dmi icons folder path
+ is_valid_src Check if a datum has not been deleted and is a valid source
+ lisp_replace Replaces S and similar sounds with 'th' and such. Stolen from tg.
+ list_clear_nulls Removes any null entries from the list
+Returns TRUE if the list had nulls, FALSE otherwise
+ load_map Helper and recommened way to load a map file
+ log_mapping Logging for mapping errors
+ log_perf Logging for game performance
+ log_tgui Appends a tgui-related log entry. All arguments are optional.
+ make_tuple Returns the name of the mathematical tuple of same length as the number arg (rounded down).
+ map_pill_icons Pills.
+ md5asfile Save file as an external file then md5 it.
+Used because md5ing files stored in the rsc sometimes gives incorrect md5 results.
+ mergeListsSum Sums values in two associative lists, from mergee into result, in place
+ message_alien_candidates Messages observers that are currently candidates an update on the queue.
+ message_to_html Message-related procs
+ mutable_appearance Helper similar to image()
+ pick_n_take Pick a random element from the list and remove it from the list.
+ pick_weight Picks a random element from a list based on a weighting system.
+For example, given the following list:
+A = 6, B = 3, C = 1, D = 0
+A would have a 60% chance of being picked,
+B would have a 30% chance of being picked,
+C would have a 10% chance of being picked,
+and D would have a 0% chance of being picked.
+You should only pass integers in.
+ playsound_area Plays sound to all mobs that are map-level contents of an area
+ playsound_z Play sound for all on-map clients on a given Z-level. Good for ambient sounds.
+ qdel Should be treated as a replacement for the 'del' keyword.
+ 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
+ recursive_holder_check Will attempt to find what's holding this item if it's being contained by something, ie if it's in a satchel held by a human, this'll return the human
+ remove_image_from_client Removes an image from a client's .images
. Useful as a callback.
+ remove_images_from_clients Like remove_image_from_client, but will remove the image from a list of clients
+ remove_verb handles removing verb and sending it to browser to update, use this for removing verbs
+ replace_non_alphanumeric_plus Helper for only alphanumeric characters plus common punctuation, spaces, underscore and hyphen _ -.
+ resend_current_map_png Re-sends relevant flattened tacmaps to a single client.
+ reset_cooldown Proc used by stoppable timers to end a cooldown before the time has ran out.
+ return_generator_args returns the arguments given to a generator and manually extracts them from the internal byond object
+returns:
+ reverse_range replaces reverseList ~Carnie
+ send2adminchat Sends a message to TGS admin chat channels.
+ send2chat Asynchronously sends a message to TGS chat channels.
+ setup_hazard_joe_emotes Setup for Hazard joe emotes and category list, returns data for hj_emotes
+ setup_offset Sets the offset 2 lines above.
+ setup_working_joe_emotes Setup for Working joe emotes and category list, returns data for wj_emotes
+ shakeship Shakes the ship around
+ should_block_game_interaction Returns TRUE if the target is somewhere that the game should not interact with if possible
+In this case, admin Zs and tutorial areas
+ show_blurb *Shows a ticker reading out the given text on a client's screen.
+targets = mob or list of mobs to show it to.
+ show_blurb_uscm Shows operation start blurb to living marines. Slightly different for squad marines, pilots, and deploying ship crew/passengers.
+exempt_ztraits = trait or list of traits of zlevels where any marines don't see the message, ex. marine faction survivors colonyside
+shouldn't see the ship marines' drop message. Ex. ZTRAIT_GROUND by default.
+unit = the unit the marines are from. FF, Dust Raiders etc. Military crew see this.
+base = the base the marines are staging from. The ship, Whiskey Outpost etc. Noncombat crew see this.
+ show_location_blurb Reads out a description of game time, game date, main ship and current area. Originally for displaying roundstart messages on a conventional SS13 server.
+ shuffle_inplace same as shuffle, but returns nothing and acts on list in place
+ sort_list sort any value in a list
+ sort_list_dist Returns a list of atoms sorted by each entry's distance to target
.
+ stars_decode_html Summary: proc that parses an html input string and scrambles the non-html string contents.
+ string_list Caches lists with non-numeric stringify-able values (text or typepath).
+ string_starts_with Check if the string haystack
begins with the string needle
.
+ tgui_Topic Middleware for /client/Topic.
+ tgui_alert Creates a TGUI alert window and returns the user's response.
+ tgui_alert_async Creates an asynchronous TGUI alert window with an associated callback.
+ tgui_input_checkboxes
+ tgui_input_checkboxes_async
+ tgui_input_list Creates a TGUI input list window and returns the user's response.
+ tgui_input_list_async Creates an asynchronous TGUI input list window with an associated callback.
+ tgui_input_number Creates a TGUI window with a number input. Returns the user's response as num | null.
+ tgui_input_number_async Creates an asynchronous TGUI number input window with an associated callback.
+ tgui_input_real_number A clone of tgui_input_number that defaults to accepting negative inputs too.
+ tgui_input_text Creates a TGUI window with a text input. Returns the user's response.
+ timeleft Get the remaining deciseconds on a timer
+ 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.
+ ui_status_only_living Returns a UI status such that the dead will be able to watch, but not interact.
+ ui_status_user_is_abled Returns a UI status such that users with debilitating conditions, such as
+being dead or not having power for silicons, will not be able to interact.
+Being dead will disable UI, being incapacitated will continue updating it,
+and anything else will make it interactive.
+ ui_status_user_is_adjacent Returns a UI status such that users adjacent to source will be able to interact,
+far away users will be able to see, and anyone farther won't see anything.
+Dead users will receive updates no matter what, though you likely want to add
+a [ui_status_only_living
] check for finer observer interactions.
+ ui_status_user_is_advanced_tool_user Returns a UI status such that advanced tool users will be able to interact,
+but everyone else can only watch.
+ ui_status_user_strictly_adjacent Return UI_INTERACTIVE if the user is strictly adjacent to the target atom, whether they can see it or not.
+Return UI_CLOSE otherwise.
+ unique_list Return a list with no duplicate entries
+ unique_list_in_place same as unique_list, but returns nothing and acts on list in place (also handles associated values properly)
+ updatetimedelay Update the delay on an existing LOOPING timer
+Will come into effect on the next process
+ url2htmlloader Return html to load a url.
+for use inside of browse() calls to html assets that might be loaded on a cdn.
+ worldtime2text Returns the world time in english. Do not use to get date information - starts at 0 + a random time offset from 10 minutes to 24 hours.
+ Var Details Failsafe
+ – /static/datum /controller/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
+ Autofire Subsystem
+Maintains a timer-like system to handle autofiring. Much of this code is modeled
+after or adapted from TGMC's runechat subsytem.
+Note that this has the same structure for storing and queueing shooter component as the timer subsystem does
+for handling timers: the bucket_list is a list of autofire component, each of which are the head
+of a linked list. Any given index in bucket_list could be null, representing an empty bucket.
+Doesn't support any event scheduled for more than 100 ticks in the future, as it has no secondary queue by design
+ Subsystem for controlling anything related to the escape menu
+ Sends collected statistics to an influxdb v2 backend periodically
+ Sends generic round running statistics to the InfluxDB backend
+ Minimaps subsystem
+Handles updating and handling of the by-zlevel minimaps
+Minimaps are a low priority subsystem that fires relatively often
+the Initialize proc for this subsystem draws the maps as one of the last initializing subsystems
+Fire() for this subsystem doesn't actually update anything, and purely just reapplies the overlays that it already tracks
+actual updating of marker locations is handled by [/datum/controller/subsystem/minimaps/proc/on_move]
+and zlevel changes are handled in /datum/controller/subsystem/minimaps/proc/on_z_change
+tracking of the actual atoms you want to be drawn on is done by means of datums holding info pertaining to them with /datum/hud_displays
+ Updates BYOND pager status periodically
+ tgui subsystem
+Contains all tgui state and subsystem code.
+ 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.
Proc Details CreateBans()
+
+
+
+
+
+ DEBUG
GUID()
+
+
+
+
+
+ returns a GUID like identifier (using a mostly made up record format)
+guids are not on their own suitable for access or security tokens, as most of their bits are predictable.
+(But may make a nice salt to one)
Get_Angle
+
+ Calculate the angle between two atoms. Uses north-clockwise convention: NORTH = 0, EAST = 90, etc.
HandleUserlessProcCall(user, /datum /target, procname, /list/arguments)
+
+
+
+
+
+ Handles a userless proccall, used by circuits.
+Arguments:
+
+user - a string used to identify the user
+target - the target to proccall on
+proc - the proc to call
+arguments - any arguments
+ HandleUserlessSDQL(user, query_text)
+
+
+
+
+
+ Handles a userless sdql, used by TGS.
+Arguments:
+
+user - a string used to identify the user
+query_text - the query text
+ TurfBlockedNonWindow
+
+ the actual dir between the start and target turf
+The direction that mover's path is being blocked by
WrapAdminProcCall(/datum /target, procname, /list/arguments)
+
+
+
+
+
+ Wrapper for proccalls where the datum is flagged as vareditted
___TraitAdd(target, trait, source)
+
+
+
+
+
+ DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
___TraitRemove(target, trait, source)
+
+
+
+
+
+ DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
______qdel_list_wrapper(/list/L)
+
+
+
+
+
+ the underscores are to encourage people not to use this directly.
_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.
+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
+timer_subsystem the subsystem to insert this timer into
+ _animate_filter(/atom /target, filter_index, set_vars, time, loop, easing, flags)
+
+
+
+
+
+ Auxtools REALLY doesn't know how to handle filters as values;
+when passed as arguments to auxtools-called procs, they aren't simply treated as nulls -
+they don't even count towards the length of args.
+For example, calling some_proc([a filter], foo, bar) from auxtools
+is equivalent to calling some_proc(foo, bar). Thus, we can't use _animate directly on filters.
+Use this to perform animation steps on a filter. Consecutive steps on the same filter can be
+achieved by calling _animate with no target.
_pick_list(/list/pick_from)
+
+
+
+
+
+ Allow me to explain
+for some reason, if pick() is passed arglist(args) directly and args contains only one list
+it considers it to be a list of lists
+this means something like _pick(list) would fail
+need to do this instead
+I hate this timeline
add_keybinding(/datum /keybinding/instance)
+
+
+
+
+
+ Adds an instanced keybinding to the global tracker
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
+ admin_ticket_log(what, message, player_message, log_in_blackbox)
+
+
+
+
+
+ Use this proc when an admin takes action that may be related to an open ticket on what
+what can be a client, ckey, or mob
+player_message: If the message should be shown in the player ticket panel, fill this out
+log_in_blackbox: Whether or not this message with the blackbox system.
+If disabled, this message should be logged with a different proc call
anyprob(value)
+
+
+
+
+
+ chances are 1:value. anyprob(1) will always return true
at_least(new_value, threshold)
+
+
+
+
+
+ Takes a value, and a threshold it has to at least match
+returns the correctly signed value max'd to the threshold
baseturfs_string_list(/list/values, /turf /baseturf_holder)
+
+
+
+
+
+ A wrapper for baseturf string lists, to offer support of non list values, and a stack_trace if we have major issues
big_number_to_text(number)
+
+
+
+
+
+ Formats a larger number to correct textual representation without losing data
bit_count(bit_field)
+
+
+
+
+
+ counts the number of bits in Byond's 16-bit width field, in constant time and memory!
bitfield_to_list(bitfield, /list/wordlist)
+
+
+
+
+
+ Converts a bitfield to a list of numbers (or words if a wordlist is provided)
capitalize_first_letters(string)
+
+
+
+
+
+ Finds the first letter of each word in the provided string and capitalize them
center_image(/image /image_to_center, x_dimension, y_dimension)
+
+
+
+
+
+ Center's an image.
+Requires:
+The Image
+The x dimension of the icon file used in the image
+The y dimension of the icon file used in the image
+eg: center_image(image_to_center, 32,32)
+eg2: center_image(image_to_center, 96,96)
check_asay_links(msg)
+
+
+
+
+
+ Checks a given message to see if any of the words are something we want to treat specially, as detailed below.
+There are 3 cases where a word is something we want to act on
+
+Admin pings, like @adminckey. Pings the admin in question, text is not clickable
+Datum refs, like @0x2001169 or @mob_23. Clicking on the link opens up the VV for that datum
+Ticket refs, like #3. Displays the status and ahelper in the link, clicking on it brings up the ticket panel for it.
+Returns a list being used as a tuple. Index ASAY_LINK_NEW_MESSAGE_INDEX contains the new message text (with clickable links and such)
+while index ASAY_LINK_PINGED_ADMINS_INDEX contains a list of pinged admin clients, if there are any.
+
+Arguments:
+
+msg - the message being scanned
+ cmp_mob_deathtime_asc
+
+ Compares mobs based on their timeofdeath value in ascending order
+ Compares observers based on their larva_queue_time value in ascending order
+Assumes the client on the observer is not null
color_matrix_from_string(string)
+
+
+
+
+
+ Converts a hex color string to a color matrix.
color_matrix_recolor_red(new_color)
+
+
+
+
+
+ Creates a matrix to re-paint a sprite, replacing shades of red with corresponding shades of a new color. In the base sprite, Hue must always be pure red.
+Saturation and Lightness can be anything. Arg is a hex string for a color. Proc is by Lummox JR, www.byond.com/forum/post/2209545
+color_matrix_recolor_rgb is more complex, but gives more precise control over the palette, at least if using 3 or fewer colours.
color_matrix_recolor_rgb(/list/replacement_shades)
+
+
+
+
+
+ Creates a matrix to re-paint a sprite, replacing pure red, green, and blue with 3 different shades. Doesn't work with mixed tones of RGB or whites or greys
+-- must be pure. R/G/B 255 becomes the new color, darker shades become correspondingly darker.
+The arg is a list of hex colours, for ex "list("#d4c218", "#b929f7", "#339933"".
+if you want variations of the same color, color_matrix_recolor_red() is simpler.
create_strippable_list(types)
+
+
+
+
+
+ Creates an assoc list of keys to /datum/strippable_item
debug_variable(name, value, level, /datum /D, sanitize)
+
+
+
+
+
+ Get displayed variable in VV variable list
default_ui_state
+
+ The sane defaults for a UI such as a computer or a machine.
delete_all_SS_and_recreate_master()
+
+
+
+
+
+ Delete all existing SS to basically start over
delta_to_angle(dx, dy)
+
+
+
+
+
+ Calculate the angle produced by a pair of x and y deltas. Uses north-clockwise convention: NORTH = 0, EAST = 90, etc.
+ Delete a timer
+Arguments:
+
+id a timerid or a /datum/timedevent
+ display_power(powerused)
+
+
+
+
+
+ Format a power value in W, kW, MW, or GW.
doview(range, /atom /center, invis_flags)
+
+
+
+
+
+ Version of oview() which ignores darkness
dview(range, /atom /center, invis_flags)
+
+
+
+
+
+ Version of view() which ignores darkness, because BYOND doesn't have it (I actually suggested it but it was tagged redundant, BUT HEARERS IS A T- /rant).
emissive_appearance(icon, icon_state, layer, alpha, appearance_flags)
+
+
+
+
+
+ Produces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EMISSIVE_COLOR .
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 .
end_cooldown(/datum /source, index)
+
+
+
+
+
+ Callback called by a timer to end an associative-list-indexed cooldown.
+Arguments:
+
+source - datum storing the cooldown
+index - string index storing the cooldown on the cooldowns associative list
+
+This sends a signal reporting the cooldown end.
extend_line_to_radius(delta_x, delta_y, radius, offset_x, offset_y)
+
+
+
+
+
+ gets a line from a x and y, to the offset x and y of length radius
flick_overlay_to_clients(/image /image_to_show, /list/show_to, duration)
+
+
+
+
+
+ Add an image to a list of clients and calls a proc to remove it after a duration
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
generate_asset_name(file)
+
+
+
+
+
+ Generate a filename for this asset
+The same asset will always lead to the same asset name
+(Generated names do not include file extention.)
generate_autowiki_output()
+
+
+
+
+
+ When the AUTOWIKI
define is enabled, will generate an output file for tools/autowiki/autowiki.js to consume.
+Autowiki code intentionally still exists even without the define, to ensure developers notice
+when they break it immediately, rather than until CI or worse, call time.
+Returns a string of the autowiki output file
generate_bitfields()
+
+
+
+
+
+ Turns /datum/bitfield subtypes into a list for use in debugging
generate_lazy_template_map()
+
+
+
+
+
+ Iterates through all lazy template datums that exist and returns a list of them as an associative list of type -> instance.
getFlatIcon(/image /appearance, defdir, deficon, defstate, defblend, start, no_anim, appearance_flags)
+
+
+
+
+
+ Create a single /icon from a given /atom or /image .
+Very low-performance. Should usually only be used for HTML, where BYOND's
+appearance system (overlays/underlays, etc.) is not available.
+Only the first argument is required.
+appearance_flags indicates whether appearance_flags should be respected (at the cost of about 10-20% perf)
get_active_player_count(alive_check, afk_check, faction_check, faction)
+
+
+
+
+
+ Get active players who are playing in the round
get_alien_candidates
+
+ Get a list of observers that can be alien candidates.
+Arguments:
+
+hive - The hive we're filling a slot for to check if the player is banished
+sorted - Whether to sort by larva_queue_time (default TRUE) or leave unsorted
+ get_all_notes(player_ckey)
+
+
+
+
+
+ Returns all notes associated with a CKEY, structured as a list of strings.
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_cardinal_dir
+
+ Returns the nearest cardinal dir between two atoms. Favors NORTH/SOUTH on perfect diagonals. Consistent and reversible.
get_ceiling_protection_level(turf_protection_level)
+
+
+
+
+
+ Convert a turf protection level to a ceiling protection level
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 /start_atom, /atom /end_atom, include_start_atom)
+
+
+
+
+
+ Get a list of turfs in a line from start_atom
to end_atom
.
+Based on a linear interpolation method from Red Blob Games .
+Arguments:
+
+start_atom - starting point of the line
+end_atom - ending point of the line
+include_start_atom - when truthy includes start_atom in the list, default TRUE
+
+Returns:
+list - turfs from start_atom (in/exclusive) to end_atom (inclusive)
get_minimap_flag_for_faction(faction)
+
+
+
+
+
+ Gets the MINIMAP_FLAG for the provided faction or hivenumber if one exists
get_pixel_position_x(/atom /subject, relative)
+
+
+
+
+
+ Gives X position on pixel grid of an object, accounting for offsets
get_pixel_position_y(/atom /subject, relative)
+
+
+
+
+
+ Gives Y position on pixel grid of an object, accounting for offsets
get_radios_in_view(R, /atom /source)
+
+
+
+
+
+ only gets FUNCTIONING radios
+ Given a direction, return the direction and the +-45 degree directions next to it
get_specialist_set
+
+ Get a specialist set datum typepath given a mob, returns null if they aren't a spec or haven't chosen a kit.
get_tacmap_data_png(faction)
+
+
+
+
+
+ Fetches the datum containing an announced flattend map png reference.
+Arguments:
+
+faction: FACTION_MARINE or XENO_HIVE_NORMAL
+ get_tacmap_data_svg(faction)
+
+
+
+
+
+ Fetches the last set of svg coordinates for the tacmap drawing.
+Arguments:
+
+faction: which faction get the map for: FACTION_MARINE or XENO_HIVE_NORMAL
+ get_total_living_playtime(player_id)
+
+
+
+
+
+ Returns the total time in minutes a specific player ID has played for
get_turf_on_clickcatcher(/atom /target, /mob /user, params)
+
+
+
+
+
+ Helper proc that processes a clicked target, if the target is not black tiles, it will not change it. If they are it will return the turf of the black tiles. It will return null if the object is a screen object other than black tiles.
get_unannounced_tacmap_data_png(faction)
+
+
+
+
+
+ Fetches the datum containing the latest unannounced flattend map png reference.
+Arguments:
+
+faction: FACTION_MARINE or XENO_HIVE_NORMAL
+ get_whitelisted_roles(ckey)
+
+
+
+
+
+ returns a list of strings containing the whitelists held by a specific ckey
getpois(mobs_only, skip_mindless, specify_dead_role)
+
+
+
+
+
+ Returns a list of all items of interest with their name
give_action(/mob /L, action_path, ...)
+
+
+
+
+
+ Gives an action to a mob and returns it
+If mob already has the action, unhide it if it's hidden
+Can pass additional initialization args
+ Provides a singleton for the escape menu details screen.
+ Provides a singleton for the escape menu details screen.
icon2html(/atom /thing, /client /target, icon_state, dir, frame, moving, sourceonly, extra_classes, keyonly)
+
+
+
+
+
+ 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"
+but they pass both isicon() and isfile() checks. theyre the easiest case since stringifying them gives us the path we want
+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_clases - string of extra css classes to use when returning the icon string
+keyonly - if TRUE, only returns the asset key to use get_asset_url manually. Overrides sourceonly.
+ icon_exists(file, state, scream)
+
+
+
+
+
+ Checks if the given iconstate exists in the given file, caching the result. Setting scream to TRUE will print a stack trace ONCE.
init_keybindings()
+
+
+
+
+
+ Creates and sorts all the keybinding datums
initiate_surgery_moment
+
+ Does the surgery initiation. Returns TRUE if the triggering attack should be halted.
is_valid_dmi_file(icon_path)
+
+
+
+
+
+ given a text string, returns whether it is a valid dmi icons folder path
is_valid_src
+
+ Check if a datum has not been deleted and is a valid source
lisp_replace(message)
+
+
+
+
+
+ Replaces S and similar sounds with 'th' and such. Stolen from tg.
list_clear_nulls(/list/list_to_clear)
+
+
+
+
+
+ Removes any null entries from the list
+Returns TRUE if the list had nulls, FALSE otherwise
load_map(dmm_file, x_offset, y_offset, z_offset, crop_map, measure_only, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z, delete)
+
+
+
+
+
+ Helper and recommened way to load a map file
+
+dmm_file: The path to the map file
+x_offset: The x offset to load the map at
+y_offset: The y offset to load the map at
+z_offset: The z offset to load the map at
+crop_map: If true, the map will be cropped to the world bounds
+measure_only: If true, the map will not be loaded, but the bounds will be calculated
+no_changeturf: If true, the map will not call /turf/AfterChange
+x_lower: The minimum x coordinate to load
+x_upper: The maximum x coordinate to load
+y_lower: The minimum y coordinate to load
+y_upper: The maximum y coordinate to load
+z_lower: The minimum z coordinate to load
+z_upper: The maximum z coordinate to load
+place_on_top: Whether to use /turf/proc/PlaceOnTop rather than /turf/proc/ChangeTurf
+new_z: If true, a new z level will be created for the map
+delete: CM/TGMC addition, if we need to manually clear turf contents before spawning stuff
+ log_mapping(text, skip_world_log)
+
+
+
+
+
+ Logging for mapping errors
log_perf(/list/perf_info)
+
+
+
+
+
+ Logging for game performance
log_tgui
+
+ Appends a tgui-related log entry. All arguments are optional.
make_tuple(number)
+
+
+
+
+
+ Returns the name of the mathematical tuple of same length as the number arg (rounded down).
map_pill_icons()
+
+
+
+
+
+ Pills.
+Returns a list mapping pill icon classes to icon states
md5asfile(file)
+
+
+
+
+
+ Save file as an external file then md5 it.
+Used because md5ing files stored in the rsc sometimes gives incorrect md5 results.
mergeListsSum(/list/result, /list/mergee)
+
+
+
+
+
+ Sums values in two associative lists, from mergee into result, in place
message_alien_candidates(/list/candidates, dequeued, cache_only)
+
+
+
+
+
+ Messages observers that are currently candidates an update on the queue.
+Arguments:
+
+candidates - The list of observers from get_alien_candidates()
+dequeued - How many candidates to skip messaging because they were dequeued
+cache_only - Whether to not actually send a to_chat message and instead only update larva_queue_cached_message
+ 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
mutable_appearance(icon, icon_state, layer, plane, alpha, appearance_flags)
+
+
+
+
+
+ Helper similar to image()
pick_n_take(/list/L)
+
+
+
+
+
+ Pick a random element from the list and remove it from the list.
pick_weight(/list/list_to_pick)
+
+
+
+
+
+ Picks a random element from a list based on a weighting system.
+For example, given the following list:
+A = 6, B = 3, C = 1, D = 0
+A would have a 60% chance of being picked,
+B would have a 30% chance of being picked,
+C would have a 10% chance of being picked,
+and D would have a 0% chance of being picked.
+You should only pass integers in.
playsound_area(/area /A, soundin, vol, channel, status, vol_cat, /list/echo, y_s_offset, x_s_offset)
+
+
+
+
+
+ Plays sound to all mobs that are map-level contents of an area
playsound_z(z, soundin, volume, vol_cat, echo, y_s_offset, x_s_offset)
+
+
+
+
+
+ Play sound for all on-map clients on a given Z-level. Good for ambient sounds.
qdel(/datum /D, force, ...)
+
+
+
+
+
+ Should be treated as a replacement for the 'del' keyword.
+Datums passed to this will be given a chance to clean up references to allow the GC to collect them.
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
recursive_holder_check(/obj /item /held_item, recursion_limit)
+
+
+
+
+
+ Will attempt to find what's holding this item if it's being contained by something, ie if it's in a satchel held by a human, this'll return the human
remove_image_from_client
+
+ Removes an image from a client's .images
. Useful as a callback.
remove_images_from_clients(/image /image_to_remove, /list/show_to)
+
+
+
+
+
+ Like remove_image_from_client, but will remove the image from a list of clients
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
+ replace_non_alphanumeric_plus(text)
+
+
+
+
+
+ Helper for only alphanumeric characters plus common punctuation, spaces, underscore and hyphen _ -.
resend_current_map_png
+
+ Re-sends relevant flattened tacmaps to a single client.
+Arguments:
+
+user: The mob that is either an observer, marine, or xeno
+ reset_cooldown(/datum /source, index)
+
+
+
+
+
+ Proc used by stoppable timers to end a cooldown before the time has ran out.
+Arguments:
+
+source - datum storing the cooldown
+index - string index storing the cooldown on the cooldowns associative list
+
+This sends a signal reporting the cooldown end, passing the time left as an argument.
return_generator_args(/generator/target)
+
+
+
+
+
+ returns the arguments given to a generator and manually extracts them from the internal byond object
+returns:
+
+flat list of strings for args given to the generator.
+Note: this means things like "list(1,2,3)" will need to be processed
+ reverse_range(/list/inserted_list, start, end)
+
+
+
+
+
+ replaces reverseList ~Carnie
send2adminchat(category, message, embed_links)
+
+
+
+
+
+ Sends a message to TGS admin chat channels.
+category - The category of the mssage.
+message - The message to send.
send2chat
+
+ Asynchronously sends a message to TGS chat channels.
+message - The /datum/tgs_message_content to send.
+channel_tag - Required. If "", the message with be sent to all connected (Game-type for TGS3) channels. Otherwise, it will be sent to TGS4 channels with that tag (Delimited by ','s).
+admin_only - Determines if this communication can only be sent to admin only channels.
setup_hazard_joe_emotes()
+
+
+
+
+
+ Setup for Hazard joe emotes and category list, returns data for hj_emotes
setup_offset()
+
+
+
+
+
+ Sets the offset 2 lines above.
setup_working_joe_emotes()
+
+
+
+
+
+ Setup for Working joe emotes and category list, returns data for wj_emotes
shakeship(sstrength, stime, drop, osound)
+
+
+
+
+
+ Shakes the ship around
+Shakes the ship around and has the ship
+make sounds because of it, including
+warning klaxons it it's a big hit
+despite being in /almayer, this thing should work in any shipmap.
+Arguments:
+
+sstrength - How hard the camera shakes, and how hard the rocking on the ship is
+stime - For how long the camera shakes
+drop - If the shaking can make people fall, or be thrown away if sstrength is above 7
+osound - not included in the admin verb! Can be set to FALSE if you don't want it's original sounds to play in case you want something different
+ should_block_game_interaction
+
+ Returns TRUE if the target is somewhere that the game should not interact with if possible
+In this case, admin Zs and tutorial areas
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 = color of the text.
+blurb_key = a key used for specific blurb types so they are not shown repeatedly. Ex. someone who joins as CLF repeatedly only seeing the mission blurb the first time.
+ignore_key = used to skip key checks. Ex. a USCM ERT member shouldn't see the normal USCM drop message,
+but should see their own spawn message even if the player already dropped as USCM.*
show_blurb_uscm(/list/exempt_ztraits, unit, base)
+
+
+
+
+
+ Shows operation start blurb to living marines. Slightly different for squad marines, pilots, and deploying ship crew/passengers.
+exempt_ztraits = trait or list of traits of zlevels where any marines don't see the message, ex. marine faction survivors colonyside
+shouldn't see the ship marines' drop message. Ex. ZTRAIT_GROUND by default.
+unit = the unit the marines are from. FF, Dust Raiders etc. Military crew see this.
+base = the base the marines are staging from. The ship, Whiskey Outpost etc. Noncombat crew see this.
show_location_blurb(/list/mob/targets, /area /A, duration)
+
+
+
+
+
+ Reads out a description of game time, game date, main ship and current area. Originally for displaying roundstart messages on a conventional SS13 server.
shuffle_inplace(/list/inserted_list)
+
+
+
+
+
+ same as shuffle, but returns nothing and acts on list in place
sort_list(/list/list_to_sort, cmp)
+
+
+
+
+
+ sort any value in a list
sort_list_dist(/list/atom/list_to_sort, /atom /target)
+
+
+
+
+
+ Returns a list of atoms sorted by each entry's distance to target
.
stars_decode_html(message)
+
+
+
+
+
+ Summary: proc that parses an html input string and scrambles the non-html string contents.
+Arguments:
+
+message - an html string value to be parsed and modified.
+
+Return:
+returns the parsed and modified html output with the text content being partially scrambled with asteriks
string_list(/list/values)
+
+
+
+
+
+ Caches lists with non-numeric stringify-able values (text or typepath).
string_starts_with(haystack, needle)
+
+
+
+
+
+ Check if the string haystack
begins with the string needle
.
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.
+ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state
+ tgui_alert_async(/mob /user, message, title, /list/buttons, /datum /callback/callback, timeout, autofocus, ui_state)
+
+
+
+
+
+ Creates an asynchronous TGUI alert window with an associated callback.
+This proc should be used to create alerts that invoke a callback with the user's chosen option.
+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.
+callback - The callback to be invoked when a choice is made.
+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.
+ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state
+
+ tgui_input_checkbox
+Opens a window with a list of checkboxes and returns a list of selected choices.
+
+Arguments:
+user - The mob to display the window to
+message - The message inside the window
+title - The title of the window
+list/items - The list of items to display
+min_checked - The minimum number of checkboxes that must be checked (defaults to 1)
+max_checked - The maximum number of checkboxes that can be checked (optional)
+timeout - The timeout for the input (optional)
+theme - The ui theme to use for the TGUI window (optional).
+ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state
+
+ tgui_input_checkbox
+Opens a window with a list of checkboxes and returns a list of selected choices.
+
+Arguments:
+user - The mob to display the window to
+message - The message inside the window
+title - The title of the window
+list/items - The list of items to display
+min_checked - The minimum number of checkboxes that must be checked (defaults to 1)
+max_checked - The maximum number of checkboxes that can be checked (optional)
+callback - The callback to be invoked when a choice is made.
+timeout - The timeout for the input (optional)
+theme - The ui theme to use for the TGUI window (optional).
+ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state
+
+ 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 list input, 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 list input will close and qdel itself. Set to zero for no timeout.
+theme - The ui theme to use for the TGUI window.
+default - If an option is already preselected on the UI. Current values, etc.
+ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state
+
+ Creates an asynchronous TGUI input list window with an associated callback.
+This proc should be used to create inputs that invoke a callback with the user's chosen option.
+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 list input, 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.
+callback - The callback to be invoked when a choice is made.
+timeout - The timeout of the alert, after which the list_input will close and qdel itself. Set to zero for no timeout.
+theme - The ui theme to use for the TGUI window.
+default - If an option is already preselected on the UI. Current values, etc.
+ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state
+
+ 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.
+integer_only - whether the inputted number is rounded down into an integer.
+ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state
+
+ Creates an asynchronous TGUI number input window with an associated callback.
+This proc should be used to create number inputs that invoke a callback with the user's entry.
+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.
+callback - The callback to be invoked when a choice is made.
+timeout - The timeout of the number input, after which the modal will close and qdel itself. Set to zero for no timeout.
+integer_only - whether the inputted number is rounded down into an integer.
+ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state
+
+ A clone of tgui_input_number that defaults to accepting negative inputs too.
tgui_input_text(/mob /user, message, title, default, max_length, multiline, encode, timeout, trim, 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.
+trim - Whether or not to trim leading and trailing whitespace from your input. Defaults to TRUE
+ui_state - The TGUI UI state that will be returned in ui_state(). Default: always_state
+
+ Get the remaining deciseconds on a timer
+Arguments:
+
+id a timerid or a /datum/timedevent
+ to_chat(target, html, type, text, avoid_highlighting, handle_whitespace, trailing_newline, confidential)
+
+
+
+
+
+ Sends the message to the recipient (target).
+Recommended way to write to_chat calls:
+to_chat(client,
+ type = MESSAGE_TYPE_INFO,
+ html = "You have found <strong>[object]</strong>")
+
+ Circumvents the message queue and sends the message
+to the recipient (target) as soon as possible.
ui_status_only_living(/mob /user, source)
+
+
+
+
+
+ Returns a UI status such that the dead will be able to watch, but not interact.
ui_status_user_is_abled
+
+ Returns a UI status such that users with debilitating conditions, such as
+being dead or not having power for silicons, will not be able to interact.
+Being dead will disable UI, being incapacitated will continue updating it,
+and anything else will make it interactive.
ui_status_user_is_adjacent(/mob /user, /atom /source, allow_tk)
+
+
+
+
+
+ Returns a UI status such that users adjacent to source will be able to interact,
+far away users will be able to see, and anyone farther won't see anything.
+Dead users will receive updates no matter what, though you likely want to add
+a [ui_status_only_living
] check for finer observer interactions.
+ Returns a UI status such that advanced tool users will be able to interact,
+but everyone else can only watch.
ui_status_user_strictly_adjacent
+
+ Return UI_INTERACTIVE if the user is strictly adjacent to the target atom, whether they can see it or not.
+Return UI_CLOSE otherwise.
unique_list(/list/inserted_list)
+
+
+
+
+
+ Return a list with no duplicate entries
unique_list_in_place(/list/inserted_list)
+
+
+
+
+
+ same as unique_list, but returns nothing and acts on list in place (also handles associated values properly)
updatetimedelay
+
+ Update the delay on an existing LOOPING timer
+Will come into effect on the next process
+Arguments:
+
+id a timerid or a /datum/timedevent
+new_wait the new wait to give this looping timer
+ url2htmlloader(url)
+
+
+
+
+
+ Return html to load a url.
+for use inside of browse() calls to html assets that might be loaded on a cdn.
worldtime2text(format, time)
+
+
+
+
+
+ Returns the world time in english. Do not use to get date information - starts at 0 + a random time offset from 10 minutes to 24 hours.
+
+
+
diff --git a/image.html b/image.html
new file mode 100644
index 000000000000..18ee69824219
--- /dev/null
+++ b/image.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /image - byond
+
+
+
+
+
+
+Procs
+ minimap_on_move Simple proc, updates overlay position on the map when a atom moves
Proc Details minimap_on_move
+
+ Simple proc, updates overlay position on the map when a atom moves
+
+
+
diff --git a/index.html b/index.html
new file mode 100644
index 000000000000..d0ed772429e7
--- /dev/null
+++ b/index.html
@@ -0,0 +1,2005 @@
+
+
+
+
+
+
+ Index - byond
+
+
+
+
+
+
+
+byond
+
+
+
+Modules
+(417 modules,
+ 1401/8143 macros, 17.2%)
+
+ code
+ __DEFINES
+ __HELPERS
+ _byond_version_compat
+ _globalvars
+ _macros
+ _onclick/ hud
+ controllers
+ configuration
+ mc
+ subsystem
+
+ datums
+ game
+ area
+ jobs
+ machinery
+ objects
+ effects
+ items
+ prop
+ structures
+
+ runtimes - Shorthand of Static Initializer errors only, for use in STUI
+Full text of all Static Initializer + World Init errors, for log backfilling
+Truthy when init is done and we don't need these shenanigans anymore
+ sound
+ turfs
+
+ global
+ modules
+ admin
+ almayer
+ Asset cache system
+ autowiki
+ Buildmode
+ character_traits/ character_trait
+ client/ statbrowser_options
+ clothing/under/ marine_uniform
+ cm_marines
+ cm_preds
+ cm_tech/techs/abstract/ repeatable
+ decorators/ christmas
+ defenses/ sentry_computer
+ discord/ discord_embed
+ dropships
+ escape_menu
+ events/ _events
+ flufftext
+ gear_presets
+ holidays/ halloween
+ In-code keypress handling system - This whole system is heavily based off of forum_account's keyboard library.
+Thanks to forum_account for saving the day, the library can be found
+here !
+ lighting
+ logging
+ mapping
+ maptext_alerts/ text_blurbs
+ mob
+ nightmare
+ paperwork
+ power/ apc
+ projectiles
+ reagents
+ recycling/ disposal
+ shuttle
+ surgery
+ tents
+ tgchat
+ message
+ to_chat - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+ DMAPI Internals - This folder should be placed on its 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 - External tgui definitions, such as src_object APIs.
+ states - Base state and helpers for states. Just does some sanity checks,
+implement a proper state for in-depth checks.
+ admin - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ 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
+ default - 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
+ inventory - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ never - Copyright (c) 2021 Arm A. Hammer
+SPDX-License-Identifier: MIT
+ not_incapacitated - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ not_incapacitated_and_inventory - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ notcontained - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ observer - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ physical - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ reverse_contained - Not copyrighted, but magatsuchi made it.
+ self - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ zlevel - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+ status_composers
+ tgui - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ tgui-say/ modal
+ tgui_alert
+ tgui_input_list
+ tgui_number_input
+ tgui_window - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+ tgui_input
+ tgui_panel
+ audio - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ external - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ telemetry - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+ tgui_panel - Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
+
+ Unit Tests
+ vehicles
+
+
+ interface
+ maps/Nightmare/ doc
+ CM-SS13 Nightmare Design Notes - The Nightmare system is intended to be a replacement for legacy "Nightmare Creator". Its primary function is to change the game map, but is being expanded to encompass more dynamic round variations.
+ CM-SS13 Nightmare: Quick Start - Nightmare is a system used to introduce round variations. No two rounds should be same, beyond simply changing people and map. Unknowns and changes maintain the game fresh. This is primarily done by dynamically changing the game map.
+ CM-SS13 Nightmare Tech Notes - The Nightmare system was designed with flexibility in mind, but quickly became somewhat complicated due to a certain amount of technical issues with the concept and game tech stack.
+
+
+
+
+
+Types
+(660 detailed/882 documented/19902 total, 4.4%)
+
+ (global)
+ Unknown
+ almayer
+ misc/ CORDON - Cordon area surrounding turf reservations
+ Shuttle
+ strata
+ ag
+ exterior
+ paths/ South Of The Outpost - close to research
+ Outpost Decks - Research Station
+
+ interior
+ engi_shed AG parent - Engineering Terminals / Sheds, whatever. Map Power
+ Sorokyne Outpost - OUTPOST INTERIOR
+ Outpost Administration - OUTPOST ADMINISTRATION
+ Outpost Canteen - CANTEEN / GENERAL QUARTERS
+ Outpost Engineering - OUTPOST ENGINEERING
+ Outpost Maintenance - ALL MAINTENANCE AREAS
+ Outpost Medical - OUTPOST MEDICAL
+ Outpost Security - OUTPOST SECURITY
+
+ Relay - Telecomms
+
+
+ ug/ interior
+ Underground Jungle - /END OUTPOST DEFINES/
+DEEP JUNGLE
+ outpost/ Underground Jungle Structures - JUNGLE STRUCTURES - UNDERGROUND
+
+
+ Area Passthrough - Template noop (no operation) is used to skip a turf or area when the template is loaded this allows for template transparency
+ex. if a ship has gaps in it's design, you would use template_noop to fill these in so that when the ship moves z-level, any
+tiles these gaps land on will not be deleted and replaced with the ships (empty) tiles
+
+ atom
+ movable
+ emissive blocker - Internal atom that copies an appearance on to the blocker plane
+ lighting_mask
+ conical - Conical Light mask
+ flicker - Flickering lighting mask
+ rotating - Rotating Light mask
+ rotating_conical - rotating light mask, but only pointing in one direction
+
+ 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.
+ plane_masters_non_master - Exists for convienience when referencing all non-master render plates.
+This is the whole game and the UI, but not the escape menu.
+
+ screen - 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".
+ Alert
+ 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.
+ color_matrix_proxy_view
+ escape_menu/ home_button_text
+ fullscreen
+ gun
+ 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".
+ Minimap - Default HUD screen minimap object
+ plane_master
+ darkness plane master - Plane master handling byond internal blackness
+vars are set as to replicate behavior when rendering to other planes
+do not touch this unless you know what you are doing
+ emissive plane master - Handles emissive overlays and emissive blockers.
+ game world plane master - Contains most things in the game world
+ lighting plane master - Contains all lighting objects
+ default rendering plate
+ game rendering plate - renders general in charachter game objects
+ master rendering plate - this plate renders the final screen to show to the player
+ non-game rendering plate - render plate for OOC stuff like ghosts, hud-screen effects, etc
+
+ roof plane master - Plane master handling display of building roofs. They're meant to become invisible when inside a building.
+
+ queen locator
+ text/ screen_text
+
+ vis_obj - Used to display the xeno wounds/backpacks without rapidly switching overlays
+
+
+ client
+ datum - The absolute base class for everything
+ Generic Action
+ Adminhelp Ticket
+ Adminhelp Ticket Manager
+ admins
+ generic bullet
+ ares_console_admin
+ ares_datacore
+ ares_link
+ ares_record
+ ares_ticket
+ asset
+ simple - If you don't need anything complicated.
+ 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)
+
+
+ asset_cache_item - An internal datum containing info on items in the asset cache. Mainly used to cache md5 info for speed.
+ Simple browse_rsc asset transport - Base browse_rsc asset transport
+ authority/branch/ Role Authority
+ autoreply
+ admin/ handled - Admin Replies
+
+ autowiki - A representation of an automated wiki page.
+ beam
+ Set This
+ bioscan_data
+ bitfield - Specifies a bitfield for smarter debugging
+ cas_fire_envelope
+ Unnamed Firemission
+ cas_fire_mission_record - Defines firing patterns in Fire Missions, transverse to its firing direction
+ caste_datum
+ character_trait - Character traits
+Similar to the traits from Project Zomboid
+ character_trait_group - Character trait groups for constraints (if any)
+ chem_property
+ chemical_data
+ chemical_reaction
+ generated
+ alpha - Tier 1
+ iota - Tier 3
+ lambda - Tier 4
+ zeta - Tier 2
+
+ Sbiten - DRINKS THAT REQUIRED IMPROVED SPRITES BELOW:: -Agouri
+
+ An objective to complete
+ Component - The component datum
+ armor_link - Return the object that is the host of any UI's that this component has
+datum/component/ui_host()
+Allows a piece of clothing to have their armor values change based on the values of another piece of clothing
+Ex: Marine boots have their armor values change based on what type of armor you're wearing on your chest
+ automatedfire
+ bad_leg
+ bonus_damage_stack
+ camera_manager
+ cell
+ cluster_stack
+ connect_mob_behalf - This component behaves similar to connect_loc_behalf, but working off clients and mobs instead of loc
+To be clear, we hook into a signal on a tracked client's mob
+We retain the ability to react to that signal on a separate listener, which makes this quite powerful
+ crate_tag
+ disk_reader
+ footstep - Footstep component. Plays footsteps at parents location when it is appropriate.
+ label - The label component.
+ nmnode_cond - Applies to a /datum/nmnode to enforce scenario constraints
+ overlay_lighting - Movable atom overlay-based lighting component.
+ rename - The rename component.
+ temporary_mute
+ tent_powered_machine - Component to handle power requirements following removal of the tent
+ tent_supported_object - Component to handle destruction of objects following removal of the tent
+ tutorial_status
+ weed_food - A component that can be attached to a mob/living to be merged with weeds after a delay.
+Attempting to attach a new weed_food even if one already exists is equivalent to calling start().
+
+ computer/file/embedded_program/docking/ simple
+ config_entry
+ flag
+ ephemeral_map_mode - Force map bypassing configuration, and ignore map changes
+ log_timers_on_bucket_reset - logs all timers in buckets on automatic bucket reset (Useful for timer debugging)
+logs all timers in buckets on automatic bucket reset (Useful for timer debugging)
+
+ keyed_list/ connection_relay_ping - Relay Ping Browser configuration
+ number
+ extra_larva_per_burst - Used to determine how many extra larva you want per burst. Supports fractions. See /datum/hive_status/proc/increase_larva_after_burst()
+ influxdb_mcstats_period - How often to snapshot MC statistics
+ influxdb_send_period - How often to send queued influxdb statistics
+ influxdb_stats_period - How often to snapshot general game statistics to influxdb driver
+
+ str_list - List config entry, used for configuring a list of strings
+ string
+ centcom_ban_db - URL for the CentCom Galactic Ban DB API
+ ephemeral_ground_map - Map configuration file to use in ephemeral mode
+ influxdb_bucket - InfluxDB v2 Bucket to send staistics to
+ influxdb_host - InfluxDB v2 Host to connect to for sending statistics (over HTTP API)
+ influxdb_org - InfluxDB v2 Organization to access buckets of
+ influxdb_token - InfluxDB v2 API Token to access the organization and bucket
+ manager_url - Server to notify of game events
+ nightmare_path - Relative inclusion path for nightmare configuration files
+ webmap_host - Host of the webmap
+
+
+ generic structure
+ controller
+ coords/ qtplayer
+ crewmonitor
+ custom_hud
+ datacore
+ decorator
+ christmas/ food - Replaces marine food dispensers contents with more festive MREs
+ gamemode - Gamemode decorators allow us to make changes to edits on specific gamemodes,
+to assist in balancing varied gameplay in different modes
+
+ discord_embed - Documentation for the embed object and all of its variables can be found at
+https://discord.com/developers/docs/resources/channel#embed-object
+It is recommended to read the documentation on the discord website, as the information below could become outdated in the future.
+ disease/ Black Goo
+ door_controller
+ aggregate - Datum containing methods to allow for the control over multiple door groups.
+ single - Datum containing methods to allow for the control over a single door group.
+
+ dynamic_light_source
+ effect_system/ steam_trail_follow - Attach a steam trail to an object (eg. a reacting beaker) that will follow it
+ effects
+ element - A holder for simple behaviour that can be attached to many different types
+ name
+ Emote - Most of the text that's not someone talking is based off of this.
+ living
+ carbon/ human
+ giant_lizard - CLIENT EMOTES
+
+
+ entity
+ player
+ player_entity - Indeed list of /datum/entity/player_stats
+Indexed list of /datum/entity/statistic/death
+ player_note
+ player_stats/ human - indexed list of types /datum/entity/weapon_stats
+indexed list of types /datum/entity/job_stats
+reference to /datum/entity/weapon_stats (like tac-shotty)
+ weapon_stats - Indexed list of /datum/entity/statistic, "Total Reloads" = number
+Indexed list of /datum/entity/statistic, "jobname2" = number
+Indexed list of /datum/entity/statistic, "caste" = number
+
+ entity_meta/ stickyban
+ Preset
+ escape_menu
+ flaying_datum - Records status of flaying attempts and handles progress.
+ font - A font datum, it exists to define a custom font to use in a span style later.
+ game_decorator/ halloween
+ cobwebs - Cobweb decorator: adds more and more cobwebs as you go through the month
+ pumpkins - Pumpkins decorator: adds patches of carvable/wearable pumpkins around the ground level
+Amount of pumpkins to place
+Amount of pumpkins to remove per day to halloween
+Chance reduction per day before halloween
+
+ invalid
+ health_scan - vars reffing this on /mob/dead/observer, /obj/item/device/healthanalyzer, /obj/structure/machinery/cm_vending/sorted/medical, /obj/structure/machinery/body_scanconsole are called last_health_display
+ Normal Hive
+ http_request
+ hud
+ hud_displays - Holder datum for a zlevels data, concerning the overlays and the drawn level itself
+The individual image trackers have a raw and a normal list
+raw lists just store the images, while the normal ones are assoc list of [tracked_atom] = image
+the raw lists are to speed up the Fire() of the subsystem so we dont have to filter through
+WARNING!
+There is a byond bug: http://www.byond.com/forum/post/2661309
+That that forces us to use a separate list ref when accessing the lists of this datum
+Yea it hurts me too
+ interior
+ organ
+ item_storage_box
+ japanese_sound - a generic sound
+ final_syllable - a final_syllable sound, not used for much since the only one possible is N.
+ initial - an initial sound aka a consonant, contains a lot of data about stuff that only consonants can be
+ nucleus - a nucleus, aka a vowel sound
+
+ japanese_syllable - holds the syllable's sound itself and information such as if it has a null initial or final_syllable
+ job
+ keybinding/mob/ target
+ language/ Telepath Implant - Font size
+ launch_metadata
+ lazy_template - Datum used to designate certain areas that do not need to exist nor be loaded at world start
+but do want to be loaded under certain circumstances. Use this for stuff like the nukie base or wizden, aka stuff that only matters when their antag is rolled.
+ log_category - The main datum that contains all log entries for a category
+ backup_category_not_found - Backup log category to catch attempts to log to a category that doesn't exist
+
+ log_holder - Main datum to manage logging actions
+ looping_sound - A datum for sounds that need to loop, with a high amount of configurability.
+ map_config
+ map_preloader - Preloader datum
+ map_report - An error report generated by [parsed_map/check_for_errors].
+ Default Template Name
+ shuttle
+ Port door lifeboat - Port-door lifeboat, bow east
+ Starboard door lifeboat - Starboard-door lifeboat, bow east
+
+
+ minimap_updator - Holder datum to ease updating of atoms to update
+ mob_hud
+ movement_detector - A datum to handle the busywork of registering signals to handle in depth tracking of a movable
+ nanomanager
+ nanoui
+ context - Context within which we resolve nightmare actions
+ map - Context belonging to a map scope (ground map, ship map, etc)
+
+ nmnode - Decriptive nightmare config nodes loaded from config files
+ branch - Holding node for several child nodes
+ include - Same as branch, but load node data from another included file
+
+ mapload - Abstract config node designating a map insertion
+ landmark - Designates insert of a given map file at a specified landmark
+ Map Sprinkles - Similar to variations mode, but rolls all files individually rather
+than picking one, using name for landmark. The prefix number is used
+as a percentage chance.
+ Map Variations - Inserts a map file among a set of variations in a folder
+param: path: some/folder/, landmark
+files within should be named with a prefix indicating weighting:
+some/folder/20.destroyed.dmm
+some/folder/50.spaced.dmm
+using + instead of dot means to keep map contents, eg.
+some/folder/20+extras.dmm is added on top
+
+ picker - Same as branch, but selects a subset of the given nodes
+amount: how many items to pick
+choices: nested nodes to pick from
+each node should have a 'weight' key if you want to use weighted pick
+
+ abstract task - Nightmare task, executing game actions as part of context
+ mapload - Loads a chunk of map at the specified position
+ scheduler - Simple blocking executor to execute several tasks in a row
+ mapload scheduler - Handles map insertions sequentially and updating the game to match map insertions
+
+
+ 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
+ Base
+ parsed_map
+ particle_editor
+ paygrade
+ image - Picture metadata
+ player_details
+ player_info
+ preferences
+ qdel_item - Qdel Item: Holds statistics on each type that passes thru qdel
+Holds the type as a string for this type
+Total number of times it's passed thru qdel.
+Total amount of milliseconds spent processing this type's Destroy()
+Times it was queued for soft deletion but failed to soft delete.
+Different from failures because it also includes QDEL_HINT_HARDDEL deletions
+Total amount of milliseconds spent hard deleting this type.
+Highest time spent hard_deleting this in ms.
+Number of times hard deletes took longer than the configured threshold
+Number of times it's not respected force=TRUE
+Number of times it's not even bother to give a qdel hint
+Number of times it's slept in its destroy
+ quadtree
+ radar - generic parent that handles most of the process
+ lifeline - A program that tracks crew members via suit sensors
+
+ reagent
+ Ethanol
+ medical/antidepressant/ Methylphenidate - ANTIDEPRESSANTS
+
+ reagents
+ Redis callbacks - This datum is used for assigning callbacks that run
+when a message is received on a specific channel. Subtypes of this
+are automatically registered in SSredis initialization
+ Redis message - Used to hold redis messages created prior to the initialization of SSredis
+ Upgrade.
+ role_reserved_slots - special role slots datum. Stores category name, roles, amount of taken slots and total slots.
+ round_event
+ round_event_control - this datum is used by the events controller to dictate how it selects events
+ screen_object_holder - A helper instance that will handle adding objects from the client's screen
+to easily remove from later.
+ shape - A simple geometric shape for testing collisions and intersections. This one is a single point.
+ ellipse - A simple geometric shape for testing collisions and intersections. This one is an axis-aligned ellipse.
+ circle - A simple geometric shape for testing collisions and intersections. This one is a circle.
+
+ rectangle - A simple geometric shape for testing collisions and intersections. This one is an axis-aligned rectangle.
+ square - A simple geometric shape for testing collisions and intersections. This one is an axis-aligned square.
+
+
+ shuttle/ ferry
+ skill
+ skills - Skill with an extra S at the end is a collection of multiple skills. Basically a skillSET
+This is to organize and provide a common interface to the huge heap of skills there are
+ soundOutput
+ NAME MISSING
+ SMP - Space weapons it's self for ship to ship or PKO/Xeno PKO things
+ SMP - Ammo datum for space weapons
+ specialist_set
+ species
+ Human - The blood volume turned into a %, with BLOOD_VOLUME_NORMAL being 100%
+How much oxyloss will there be from the next time blood processes
+The limit of the oxyloss gained, ignoring oxyloss from the switch statement
+ synthetic/colonial/ Working Joe
+ Yautja
+
+ squad
+ stack_canary - Stack canary. Will go away if the stack it was primed by is ended by byond for return or stack overflow reasons.
+ stack_end_detector - Stack End Detector.
+Can detect if a given code stack has exited, used by the mc for stack overflow detection.
+ statbrowser_options - Handles the Statbrowser Options window for a given client
+ static_light_source
+ static_lighting_corner
+ static_lighting_object
+ status_effect - Status effects are used to apply temporary or permanent effects to mobs.
+This file contains their code, plus code for applying and removing them.
+ grouped - Status effect from multiple sources, when all sources are removed, so is the effect
+ incapacitating/ dazed - DAZED:
+This prevents talking as human or using abilities as Xenos, mainly
+ limited_buff - These effects reapply their on_apply() effect when refreshed while stacks < max_stacks.
+ stacking - Status effects that can stack.
+
+ strip_menu - A representation of the stripping UI
+ strippable_item - A representation of an item that can be stripped down
+ Basic supply pack.
+ supply_packs_asrs
+ surgery - Base surgery datum and procs. There is an important distinction between surgery datums and surgery steps.
+The surgery is a separate instance for each individual operation; the steps are shared globally.
+datum/surgery and datum/surgery_step are intertwined. The surgery calls the step which modifies the surgery.
+Defines are in __DEFINES/human.dm and __DEFINES/surgery.dm.
+ surgery_step
+ suture_handler - Handles sutures for this limb. Doesn't process, updates on limb damage and new suture attempts.
+ tacmap
+ Tacmap Panel
+ tech
+ Repeatable Tech - A tech that can be purchased multiple times
+ Transitory tech
+
+ Undefined
+ tgs_api/ v5
+ tgs_chat_channel - Represents a connected chat channel.
+ tgs_chat_command - User definable chat command. This abstract version MUST be overridden to be used.
+ tgs_chat_embed
+ field - See https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure for details.
+ footer - See https://discord.com/developers/docs/resources/message#embed-object-embed-footer-structure for details.
+ media - Common datum for similar Discord embed medias.
+ provider - See https://discord.com/developers/docs/resources/message#embed-object-embed-provider-structure for details.
+ author - See https://discord.com/developers/docs/resources/message#embed-object-embed-author-structure for details. Must have name set in New().
+
+ structure - User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/message#embed-object for details.
+
+ tgs_chat_user
+ tgs_event_handler - User definable handler for TGS events This abstract version SHOULD be overridden to be used.
+ tgs_http_handler - User definable handler for HTTP calls. This abstract version MUST be overridden to be used.
+ tgs_http_result - Result of a /datum/tgs_http_handler call. MUST NOT be overridden.
+ tgs_message_content - User definable chat message. MUST NOT be overridden.
+ tgs_revision_information - Represents git revision information.
+ test_merge - Represents a merge of a GitHub pull request.
+
+ tgs_version - Represents a version.
+ tgui - tgui datum (represents a UI).
+ tgui_bug_report_form
+ tgui_checkbox_input - Window for tgui_input_checkboxes
+ async tgui_checkbox_input - An asynchronous version of tgui_checkbox_input to be used with callbacks instead of waiting on user 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.
+ async tgui_input_number - An asynchronous version of tgui_input_number to be used with callbacks instead of waiting on user responses.
+
+ tgui_input_text - tgui_input_text
+ 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
+ async tgui_list_input - An asynchronous version of tgui_list_input to be used with callbacks instead of waiting on user responses.
+
+ tgui_modal - Datum used for instantiating and using a TGUI-controlled modal that prompts the user with
+a message and has buttons for responses.
+ async tgui_modal - An asynchronous version of tgui_modal to be used with callbacks instead of waiting on user responses.
+
+ tgui_panel - tgui_panel datum
+Hosts tgchat and other nice features.
+ tgui_say - The tgui say modal. This initializes an input window which hides until
+the user presses one of the speech hotkeys. Once something is entered, it will
+delegate the speech to the proper channel.
+ tgui_window
+ Timed Event - This is the actual timer, it contains the callback and necessary data to maintain
+the timer.
+ timelock
+ Drone and drone evolutions - counts drone caste evo time as well
+ Tier three castes - t3 and queen time
+
+ turf_reservation
+ Base - A tutorial datum contains a set of instructions for a player tutorial, such as what to spawn, what's scripted to occur, and so on.
+ tutorial_menu
+ ui_state
+ unit_test
+ autowiki - Tests that all autowikis generate something without runtiming
+ autowiki_include_template - Test that include_template
produces reasonable results
+ check_runtimes
+ create_and_destroy - Delete one of every type, sleep a while, then check to see if anything has gone fucky
+ emote_panels - Test that all emotes for Working Joes & Yautja have a category
+ focus_only - These tests perform no behavior of their own, and have their tests offloaded onto other procs.
+This is useful in cases like in build_appearance_list where we want to know if any fail,
+but is not useful to right a test for.
+This file exists so that you can change any of these to TEST_FOCUS and only check for that test.
+For example, change /datum/unit_test/focus_only/invalid_overlays to TEST_FOCUS(/datum/unit_test/focus_only/invalid_overlays),
+and you will only test the check for invalid overlays in appearance building.
+ invalid_overlays - Checks that every overlay passed into build_appearance_list exists in the icon
+ invalid_research_designs - Checks that every icon sent to the research_designs spritesheet is valid
+ invalid_vending_machine_icon_states - Checks that every icon sent to vending machines is valid
+ multiple_space_initialization - Checks that space does not initialize multiple times
+ sorted_smoothing_groups - Checks that smoothing_groups and canSmoothWith are properly sorted in /atom/Initialize
+
+ missing_icons - Makes sure objects actually have icons that exist!
+ spritesheets - Checks if spritesheet assets contain icon states with invalid names
+ stop_drop_and_roll
+ subsystem_init - Tests that all subsystems that need to properly initialize.
+ tgui_create_message - Test that TGUI_CREATE_MESSAGE
is correctly implemented
+
+ set this
+ weather_ss_map_holder/ Sorokyne Map Holder - Sorokyne's map holder
+ world_topic
+ xeno_shield/ vanguard
+ xeno_strain
+ yautja_emote_panel
+
+ image
+ mob
+ camera/ imaginary friend
+ dead/ ghost
+ Hologram
+ living
+ ProcCall Handler - Used to handle proccalls called indirectly by an admin (namely tgs).
+Has to be a mob because IsAdminAdvancedProcCall() checks usr, which is a mob variable.
+So usr is set to this for any proccalls that don't have any usr mob/client to refer to.
+
+ obj
+ docking_port
+ shuttle
+ crashable shuttle
+ Escape Pod
+ lifeboat - Generic Lifeboat definition
+ port-aft lifeboat - Port Aft Lifeboat (bottom-right, doors on its left side)
+ starboard-aft lifeboat - Starboard Aft Lifeboat (top-right, doors its right side)
+
+
+
+ dock
+ Lifeboat docking port - Generic lifeboat dock
+ Almayer Port Lifeboat Docking Port - Port Aft Lifeboat default dock
+ Almayer Starboard Lifeboat Docking Port - Port Aft Lifeboat default dock
+
+
+
+ effect
+ alien
+ equipment attach point - The bases onto which you attach dropship equipments.
+ decal
+ cleanable
+ blood/ tracks
+ cobweb2/ dynamic - Variant used for halloween - need to pass info in constructor as its turned in an overlay
+
+ strata_decals
+ a stain - INDOORS STUFF
+ some rocks - OUTDOOR STUFF
+
+
+ explosion
+ landmark
+ Unknown - LANDMARK CORPSE
+ Colony Division Manager - Officers
+ Colonial Liberation Front Soldier - Faction Specific Corpses
+ Colonist - CM specific jobs
+ Prisoner - Civilians
+
+ late join
+ structure spawner - Structure spawner, representing something that can be spawned by gameplay logic during round or at setup
+ abstract gamemode structure spawner - Setup spawners will all be evaluated by game mode on start, and deleted after
+ abstract distress spawner - Distress Signal Global Setup Structure spawners
+
+ abstract XvX hive spawner - XvX Hive Spawn Structures, spawning alongside a queen in the same area
+
+ special survivor spawner
+ tutorial/ reqs_line_cleaner
+ tutorial bottom left - Marks the bottom left of the tutorial zone.
+ unit test zone bottom left - Marks the bottom left of the testing zone.
+In landmarks.dm and not unit_test.dm so it is always active in the mapping tools.
+ unit test zone top right - Marks the top right of the testing zone.
+In landmarks.dm and not unit_test.dm so it is always active in the mapping tools.
+ yautja_teleport
+
+ lighting_mask_holder - Holder for lighting mask, this is done for ensuing correct render as a viscontents
+ particle_effect
+ ion trails - ///// Attach an Ion trail to any object, that spawns when it moves (like for the jetpack)
+just pass in the object to attach it to in set_up
+Then do start() to start it and stop() to stop it, obviously
+and don't call start() in a loop that will be repeated otherwise it'll get spammed!
+ smoke
+
+ projector - You will appear adjacent to the beacon
+ spawner
+ prop gun spawner
+ random/ Random Facepaint - If anyone wants to make custom sprites for this and the bala random spawner, be my guest.
+
+ step_trigger/ ARES Apollo Sensor
+ temp_visual
+ xenomorph
+ acid
+ ???
+ abduct_hook - This has a brown icon state and does not have a color overlay by default.
+ lash - This has a brown icon state and does not have a color overlay by default.
+
+
+
+ fire
+ item
+ alien embryo
+ generic ammo
+ revolver
+ Mateba speed loader (.454) - MATEBA REVOLVER
+ Plfager Katsuma stripper clip (.44) - COLONY REVOLVERS
+ Webley speed loader (.455) - WEBLEY REVOLVER
+
+
+ attachable item
+ book - Check if it has the possibility of being a FANCY present
+Checks if it might be one of the ULTRA fancy presents.
+Default, just in case
+ card/ identification holo-badge
+ circuitboard/ airlock electronics
+ clothing
+ coin/ marine equipment token
+ desk bell
+ device
+ evidence bag
+ explosive
+ grenade
+ HIRR baton slug - Baton slugs
+ CN20 canister grenade
+ G2 Electroshock grenade
+ primed - Damage equation: damage - (mob distance * falloff_dam_reduction_mult)
+Example: A marine is 3 tiles out, the distance (3) is multiplied by falloff_dam_reduction_mult to get falloff.
+The raw damage is minused by falloff to get actual damage
+
+
+ M20 Claymore anti-personnel mine - MINES
+
+ facepaint
+ malfunctioning robot head - A cameo of a real robotic head with limited gameplay functionality
+ flag/ plantable flag
+ folded abstract tent
+ paper dispenser - Relic from the days of cyborgs, kept for flavour, an handheld paper
+dispenser that was supposed to print pre-filled forms but never did.
+ WL-6 universal fuel cell
+ grab
+ PMC handheld distress beacon - handheld distress beacons used by goon chem retrieval team to call for PMC back up
+ CMB handheld distress beacon - CMB distress beacon held by CMB Marshal for signalling distress to Anchorpoint Station
+
+ hardpoint - Hardpoints are any items that attach to a base vehicle, such as wheels/treads, support systems and guns
+ experimental hoverpack
+ large_shrapnel/ unexploded anti-tank rocket
+ limb
+ K92 Maintenance Jack
+ 80mm mortar shell
+ organ
+ pamphlet
+ pipe
+ pizzabox/ mystery
+ prop
+ alien/ ???? - Xeno-specific props
+ geiger counter
+ helmetgarb
+ prop gun - The source, which the skin will be copied from
+The prop itself, which the skin will be copied to
+ replacer - A prop that acts as a replacement for another item, mimicking their looks.
+Mainly used in Reqs Tutorial to provide the full item selections without side effects.
+
+ Container
+ blood pack
+ Dropper - Droppers.
+ food - Droppers. END
+ Condiment Container - Condiments
+ drink - Drinks.
+ bottle - Alchohol bottles and juice mixers! -Agouri
+ beer/ Pendleton's Triple Star Lager - BEERS
+ Griffeater Gin - Alcohol bottles and their contents.
+ Orange Juice - JUICES AND STUFF
+
+ golden cup - Drinks. END
+ empty jar - jar
+ Space Milk - Drinks
+ shaker - drinkingglass and shaker
+
+ snacks
+ Aesir salad - FOOD END
+ meat/synthmeat/ synthetic flesh - Meat made from synthetics. Slightly toxic
+
+
+ glass - (Mixing) Glass
+ hypospray - HYPOSPRAY
+ pill/ antitox - Pills. END
+ spray bottle
+ syringe/ syringe (Inaprovaline) - Syringes. END
+
+ Research upgrade
+ restraint
+ 15 dollars
+ specialist kit
+ stack
+ stock part - Stock Parts
+ storage - This contains what previously was known as stored_start, stored_continue, and stored_end
+ backpack
+ belt
+ pistol belt - GUN BELTS
+ M103 pattern vehicle ammo rig - OTHER BELTS
+
+ box
+ M20 mine box - MARINES BOXES
+ pdt_kit/ advanced PDT/L Battle Buddy kit - THE ADVANCED VERSION... ADMIN SPAWN ONLY... USES TGUI RADAR...
+
+ Rifle Holster
+ abstract pouch
+ magazine pouch - MAGAZINE POUCHES
+ sidearm pouch - Pistol pouch.
+ command pouch - CO pouch. This pouch can hold only 1 of each type of item: 1 sidearm, 1 pair of binoculars, 1 CO tablet
+
+
+ engineer kit
+
+ tape
+ tool
+ toy
+ trash - Trash Parent
+ barcardine bar wrapper - Wrappers
+ candle - Misc
+ cigarette butt - Ciagarette Butts
+ Plate - Dishes
+
+ weapon
+
+ limb
+ Merge Conflict Marker - DO NOT USE
+ projectile
+ render_plane_relay - Render relay object assigned to a plane master to be able to relay it's render onto other planes that are not it's own
+ structure
+ airlock assembly
+ barricade
+ bed
+ blocker/ Tent Blocker - Invisible Blocker Walls, they link up with the main tent and collapse with it
+ power cable
+ closet
+ disposal pipe segment
+ disposalholder - Virtual disposal object, travels through pipes in lieu of actual items
+Contents will be items flushed by the disposal, this allows the gas flushed to be tracked
+ droppod
+ dropship_equipment - Dropship equipment, mainly weaponry but also utility implements
+ adv_comp - COMPUTERS
+ MTU-4B Door Gunner Hardpoint System - Holder for the dropship mannable machinegun system
+ A/A-32-P Sentry Defense System - Turret holder for dropship automated sentries
+ abstract weapon - CAS Dropship weaponry, used for aerial bombardment
+
+ flag/ flag - PLANTABLE FLAG
+ flora/ potted plant
+ a meat spike - Kitchen Spike
+ largecrate/ black_market
+ machinery
+ medilink supply port
+ M402 mortar
+ ob_ammo/ theoretical orbital ammo
+ pipes
+ vents/pump/no_boom/ Security Air Vent - Vents that are linked to ARES Security Protocols, allowing the ARES Interface to trigger security measures.
+
+ prop
+ patch of pumpkins - Patches of pumpkins spawned at roundstart from where marines can get their carvable pumpkins
+Whether there's still vines to display or not
+Amount of pumpkins currently in the patch
+Prefix to prepend to icon states, for corrupted pumpkins
+ restock cart
+ ship_ammo - Dropship weaponry ammunition
+ sink
+ surface/ table
+ tent - Structures serving as landmarks and providing a buff to its users.
+A notable code feature is that they use a separate roof image that phases out when you enter the tent.
+ big - Big Tent. It's just Big. Use it for shelter or organization!
+ cmd - Command tent, providing basics for field command: a phone, and an overwatch console
+ med - Medical tent, procures a buff to surgery speed
+
+ tent_curtain - Closeable curtains
+ toilet
+ telephone receiver
+ M707 spotting tripod
+ window
+
+ vehicle
+
+ particles
+ procpath - Represents a proc or verb path.
+ turf
+ closed
+ world border - Cordon turf marking z-level boundaries and surrounding reservations
+ debug turf - Used as placeholder turf when something went really wrong, as per /tg/ string lists handler
+
+ wall
+ hull
+ reinforced/ heavy reinforced hull - Acts like /turf/closed/wall/almayer/outer until post-hijack where it reverts to /turf/closed/wall/almayer/reinforced.
+
+ r_wall/ elevator - Destructible elevator walls, for when you want the elevator to act as a prop rather than an actual elevator
+
+
+ open/ floor
+ almayer/ empty space - Base type of the requisitions and vehicle bay elevator pits.
+ requisitions - Requisitions pit.
+ vehicle_bay - Vehicle bay pit.
+
+ plating/ catwalk - Visually like plating+catwalks but without overlaying or interactions - mainly for Reqs Elevator
+ tdome - Admin level thunderdome floor. Doesn't get damaged by explosions and such for pristine testing
+
+ Turf Passthrough - See above explanation
+
+ byond
+
+
+
+
+
+
+
diff --git a/interface/fonts.html b/interface/fonts.html
new file mode 100644
index 000000000000..1987b032efca
--- /dev/null
+++ b/interface/fonts.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ interface/fonts.dm - byond
+
+
+
+
+interface/fonts.dm
+
+
+
+
+ /datum/font A font datum, it exists to define a custom font to use in a span style later.
+
+
+
diff --git a/interface/license.html b/interface/license.html
new file mode 100644
index 000000000000..a2183ddc30df
--- /dev/null
+++ b/interface/license.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ interface/license.txt - byond
+
+
+
+
+interface/license.txt
+
+
+
+
+ VCR OSD Mono created by Riciery Leal/mrmanet. Website indicates 100% free, author confirms it's free for all to use.
+(https://www.dafont.com/font-comment.php?file=vcr_osd_mono)
+
+
+
+
diff --git a/maps/Nightmare/doc/Design.html b/maps/Nightmare/doc/Design.html
new file mode 100644
index 000000000000..dd13d989023d
--- /dev/null
+++ b/maps/Nightmare/doc/Design.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ maps/Nightmare/doc/Design.md - byond
+
+
+
+
+CM-SS13 Nightmare Design Notes maps/Nightmare/doc/Design.md
+
+
+
+
+ The Nightmare system is intended to be a replacement for legacy "Nightmare Creator". Its primary function is to change the game map, but is being expanded to encompass more dynamic round variations.
+Lifecycle
+Nightmare is resovled in three phases:
+
+The Scenario is resolved at game init
+The Main Configuration is resolved at game start
+The resulting Tasks to effect the game are then executed
+
+The Scenario
+By design, the scenario is initialized at game init to leave game staff the possibility to adjust it before game start.
+This makes it possible to override or tweak what Nightmare will do, for example for event running purposes.
+In addition, the Scenario is meant to provide a guard against overcomplex usage: the creator is expected to first use the scenario step to define pivotal elements (eg. LV-624 fog gap location), then act upon them with simplified logic.
+This means the scenario can only define logical flow, and the main configuration can only use it.
+Fencing such usage prevents logical loops or procedural logic to keep things as simple as possible
+Contexts and Scoping
+Because Nightmare's primary usage is to affect the game maps, each map is handled individually through a nmcontext
. Each context contains relevant information to resolve configured steps. This allows to take action upon loading everything on a map, or to have operations scoped to a Z-Level, etc...
+In addition to the contexts for ground and ship map, we also have a "global" context. It is meant for any dynamic actions that do not concern the maps directly : for example changing jobs, game mode, etc.
+
+
+
diff --git a/maps/Nightmare/doc/Quickstart.html b/maps/Nightmare/doc/Quickstart.html
new file mode 100644
index 000000000000..e58a0d28efc8
--- /dev/null
+++ b/maps/Nightmare/doc/Quickstart.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ maps/Nightmare/doc/Quickstart.md - byond
+
+
+
+
+CM-SS13 Nightmare: Quick Start maps/Nightmare/doc/Quickstart.md
+
+
+
+
+ Nightmare is a system used to introduce round variations. No two rounds should be same, beyond simply changing people and map. Unknowns and changes maintain the game fresh. This is primarily done by dynamically changing the game map.
+The Scenario
+The Scenario is a set of parameters that direct what Nightmare will do - for example, LV-624 fog gap location. On startup, the game will automatically generate a Scenario, which can then be edited by Admins while in the Lobby to fine-tune or for event running purposes.
+Configuration
+Nightmare works via configuration files. Each map is setup with a folder containing them, for example maps/Nightmare/maps/LV624/
. The two main files are scenario.json
which is used to generate the scenario, and nightmare.json
which describes the actual game setup.
+Format
+Configuration contains a list of "nodes", JSON objects that describe an action to perform. The type
defines what to do, chance
is probability of doing it, when
adds conditions to do it. Different types of nodes will also take extra arguments to work (for example, a map_insert
needs a path
to the map inserted)
+Adding map insertions
+The primary purpose of Nightmare is to change the round by "inserting" maps, which is replacing chunks of the game map by different ones. This can be done by adding to the nightmare files.
+Map Landmarks
+To know where to insert map files, we use a landmark object. This means placing /obj/effect/landmark/nightmare
on the main map to mark the location, with an insert_tag
to identify them.
+Example 1: Map Sprinkles
+The map_sprinkle
node is usually already configured on maps, with a folder such as maps/Nightmare/maps/BigRed/sprinkles
. It allows to randomly insert standalone map changes, by directly using map files.
+Each file will randomly be inserted depending on its name: 40.viro_open.dmm
for example has 40% chance to be included at viro_open
landmark. You can drop in extra files to take advantage of this.
+Example 2: Map Variations
+map_variations
work similarly, but only pick one file in the folder at random. For example, if you have three files:
+
+armory/10.cheese.dmm
+armory/10.extra.dmm
+armory/20.looted.dmm
+One of the map files will be inserted at armory
at random, weighted by the number in their name.
+
+Example 3: Custom inserts
+Sometimes you might want to do more complicated things, in which case you can edit the configuration files.
+Exact usage goes beyond this quick start guide, but to take an example:
+{
+ "type": "map_insert", # Insert a map
+ "landmark": "lv-rightsidepass", # at lv-rightsidepass
+ "chance": 0.7, # with 70% chance
+ "path": "standalone/rightsidepass.dmm", # from file standalone/rightsidepass.dmm
+ "when": { "mainpath": "right" } # when "mainpath" is "right"
+},
+
+
+
+
diff --git a/maps/Nightmare/doc/Tech.html b/maps/Nightmare/doc/Tech.html
new file mode 100644
index 000000000000..39a634c562b4
--- /dev/null
+++ b/maps/Nightmare/doc/Tech.html
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+ maps/Nightmare/doc/Tech.md - byond
+
+
+
+
+CM-SS13 Nightmare Tech Notes maps/Nightmare/doc/Tech.md
+
+
+
+
+ The Nightmare system was designed with flexibility in mind, but quickly became somewhat complicated due to a certain amount of technical issues with the concept and game tech stack.
+Overview
+The Nightmare system is comprised of several components:
+
+/datum/nmnode
describe entries in the configuration
+/datum/nmcontext
describe a context used for resolving nodes and tasks
+/datum/nmtask
describe tasks to act upon the rest of the game
+SSnightmare
handles parsing configuration JSON files, init, and startup
+
+Organisation
+To keep things as simple as possible in usage, each component is fenced to its specific usage:
+
+a nmnode
is instanciated with only its own JSON info
+a nmnode
is resolved in a nmcontext
and should have no outside effects
+a nmnode
from scenario may only affect the nmcontext
scenario
+a nmnode
from runtime config may only affect the nmcontext
tasks
+a nmtask
must be synchronous and independant from context and nodes
+
+The scheduling problem
+Nightmare occupies a weird blind spot in CM and /tg/ tooling because it performs tasks that would typically pertain to game and Master Controller initialization (notably map loading), but does so further in during lobby / game setup time to allow edition.
+After resolving all nmnode
s, nmcontext
s contain a list of tasks to be executed. These tasks may be long-running and include map loading, which sleeps to keep game running. We however, need to be able to know when they end. This brings very few practical solutions :
+Method 1: Mandatory Synchronicity
+This is the chosen method as of current. Basically, we assume that every task is executed sychronously and will be done by the time the call returns. This mean that any sleeping within the task will also sleep the caller thread. This does not allow for parallelism / juggling tasks. It also requires a global lock to monitor completion: in current implementation, this is done via SSnightmare.stat monitored by SSticker loop.
+Method 2: Supervised tasks
+This works similarly to above, but tasks can now run asynchronously. This means having a detachable invoke wrapper, to both know when the task sleeps, and when it hands. The result is picked up by either a callback or a waiting loop. Unfortunately, callback stacking deepens call stack much like a loop, and any task failing to properly return will cause everything to stop.
+Method 3: Cooperative scheduling
+The most complicated to implement is to use cooperative scheduling. We use a subsystem like SSnightmare to provide a ticker. Then every task must return to it without sleeping, with a status code: ok, error, continue execution, pause execution. Sleep can be handled by wrappers described above, or through the ticker loop checking for return. It provides many inconvenients of method 2, but a fine grained control over execution. The biggest drawback is that this is essentially making a mini-MC with tasks instead of subsystems...
+
+
+
diff --git a/mob.html b/mob.html
new file mode 100644
index 000000000000..8890b0d6d1c2
--- /dev/null
+++ b/mob.html
@@ -0,0 +1,461 @@
+
+
+
+
+
+
+ /mob - byond
+
+
+
+
+
+
+Vars
+ active_thinking_indicator the icon currently used for the thinking indicator's bubble
+ active_typing_indicator the icon currently used for the typing indicator's bubble
+ blinded bool that tracks if blind
+ client_color_matrices Color matrices to be applied to the client window. Assoc. list.
+ emotes_used Used for tracking last uses of emotes for cooldown purposes
+ eye_blind timer for blinding
+ eye_blurry Does the mob have blurry sight
+ fire_delay_next_fire An assoc list where the keys are fire delay group string defines
+and the keys are when the guns of the group can be fired again
+ listed_turf the current turf being examined in the stat panel
+ luminosity_sources List of active luminosity sources for handling of light stacking
+ mob_language_menu the mob's tgui player panel
+ mob_panel the mob's tgui player panel
+ next_click 1 decisecond click delay (above and beyond mob/next_move)
+ observers The list of people observing this mob.
+ persistent_ckey a ckey that persists client logout / ghosting, replaced when a client inhabits the mob
+ shot_cooldown People getting shot by a large amount of bullets in a very short period of time can lag them out, with chat messages being one cause, so a 1s cooldown per hit message is introduced to assuage that
+ 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)
+ tgui_open_uis global
+ thinking_IC User is thinking in character. Used to revert to thinking state after stop_typing
+ throw_buffer holds the buffer to allow for throwing two things before the cooldown effects throwing, reference /mob/proc/do_click()
+ throw_delay Holds the time when a mob can throw an item next, only applies after two throws, reference /mob/proc/do_click() Procs
+ Process_Spacemove Process_Spacemove
+Called by /client/Move()
+For moving in space
+Return 1 for movement 0 for none
+ add_client_color_matrix Adds a color matrix and updates the client. Priority is the order the matrices are applied, lowest first. Will replace an existing matrix of the same name, if one exists.
+ add_to_all_mob_huds MOB PROCS //////////////////////////////:
+ apply_effect Legacy wrapper for effects, DO NOT USE and migrate all code to USING THE STATUS PROCS DIRECTLY
+ can_resist Can this mob resist (default FALSE)
+ change_client_color_matrix_priority Changes a matrix package's priority and updates client.
+ check_improved_pointing Is this mob important enough to point with big arrows?
+ clear_client_color_matrices Removes all matrices and updates client.
+ create_thinking_indicator Creates a thinking indicator over the mob.
+ create_typing_indicator Creates a typing indicator over the mob.
+ examinate Examine a mob
+ get_client_color_matrix Returns the matrix of that name, if it exists.
+ get_status_tab_items Adds this list to the output to the stat browser
+ has_status_effect Checks if this mob has a status effect that shares the passed effect's ID
+ has_status_effect_from_source Checks if this mob has a status effect that shares the passed effect's ID
+and has the passed sources are in its list of sources (ONLY works for grouped efects!)
+ has_status_effect_list Returns a list of all status effects that share the passed effect type's ID
+ is_mob_incapacitated Returns if the mob is incapacitated and unable to perform general actions
+ 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:
+ play_screen_text proc for playing a screen_text on a mob.
+enqueues it if a screen text is running and plays i otherwise
+Arguments:
+ remove_all_indicators Removes any indicators and marks the mob as not speaking IC.
+ remove_client_color_matrix Can take either a single name or a list of several. Attempts to remove target matrix packages and update client.
+ remove_thinking_indicator Removes the thinking indicator over the mob.
+ remove_typing_indicator Removes the typing indicator over the mob.
+ select_body_zone Change the mob's selected body zone to target_zone
.
+ send_to_lobby Send src back to the lobby as a /mob/new_player()
+ shared_ui_interaction public
+ sync_lighting_plane_alpha Set the lighting plane hud alpha to the mobs lighting_alpha var
+ 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
+category is a text string. Each mob may only have one alert per category; the previous one will be replaced
+path is 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"
+new_master is optional and sets the alert's icon state to "template" in the ui_style icons with the master as an overlay.
+Clicks are forwarded to master
+Override makes it so the alert is not replaced until cleared by a clear_alert with clear_override, and it's used for hallucinations.
+ timed_typing Sets typing indicator for a couple seconds, for use with client-side comm verbs
+ timed_typing_clear Clears timed typing indicators
+ update_Login_details Handles setting lastKnownIP and computer_id for use by the ban systems
+ update_client_color_matrices Combines all color matrices and applies them to the client.
+Also used on login to give a client its new body's color matrices.
+Responsible for sorting the matrices.
+Transition is animated but instant by default.
+ Var Details active_thinking_indicator
+
+
+
+
+
+ the icon currently used for the thinking indicator's bubble
active_typing_indicator
+
+
+
+
+
+ the icon currently used for the typing indicator's bubble
blinded
+
+
+
+
+
+ bool that tracks if blind
client_color_matrices
+
+
+
+
+
+ Color matrices to be applied to the client window. Assoc. list.
emotes_used
+
+
+
+
+
+ Used for tracking last uses of emotes for cooldown purposes
eye_blind
+
+
+
+
+
+ timer for blinding
eye_blurry
+
+
+
+
+
+ Does the mob have blurry sight
fire_delay_next_fire
+
+
+
+
+
+ An assoc list where the keys are fire delay group string defines
+and the keys are when the guns of the group can be fired again
listed_turf
+
+
+
+
+
+ the current turf being examined in the stat panel
luminosity_sources
+
+
+
+
+
+ List of active luminosity sources for handling of light stacking
+ the mob's tgui player panel
mob_panel
+
+
+
+
+
+ the mob's tgui player panel
next_click
+
+
+
+
+
+ 1 decisecond click delay (above and beyond mob/next_move)
observers
+ – /list/mob/dead/observer
+
+
+
+
+ The list of people observing this mob.
persistent_ckey
+
+
+
+
+
+ a ckey that persists client logout / ghosting, replaced when a client inhabits the mob
shot_cooldown
+
+
+
+
+
+ People getting shot by a large amount of bullets in a very short period of time can lag them out, with chat messages being one cause, so a 1s cooldown per hit message is introduced to assuage that
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)
tgui_open_uis
+
+
+
+
+
+ global
+Tracks open UIs for a user.
thinking_IC
+
+
+
+
+
+ User is thinking in character. Used to revert to thinking state after stop_typing
throw_buffer
+
+
+
+
+
+ holds the buffer to allow for throwing two things before the cooldown effects throwing, reference /mob/proc/do_click()
throw_delay
+
+
+
+
+
+ Holds the time when a mob can throw an item next, only applies after two throws, reference /mob/proc/do_click()
Proc Details Process_Spacemove(check_drift)
+
+
+
+
+
+ Process_Spacemove
+Called by /client/Move()
+For moving in space
+Return 1 for movement 0 for none
add_client_color_matrix(name, priority, /list/params, time, easing)
+
+
+
+
+
+ Adds a color matrix and updates the client. Priority is the order the matrices are applied, lowest first. Will replace an existing matrix of the same name, if one exists.
add_to_all_mob_huds()
+
+
+
+
+
+ MOB PROCS //////////////////////////////:
apply_effect()
+
+
+
+
+
+ Legacy wrapper for effects, DO NOT USE and migrate all code to USING THE STATUS PROCS DIRECTLY
can_resist()
+
+
+
+
+
+ Can this mob resist (default FALSE)
change_client_color_matrix_priority(name, new_priority, time, easing)
+
+
+
+
+
+ Changes a matrix package's priority and updates client.
check_improved_pointing()
+
+
+
+
+
+ Is this mob important enough to point with big arrows?
clear_client_color_matrices(time, easing)
+
+
+
+
+
+ Removes all matrices and updates client.
create_thinking_indicator()
+
+
+
+
+
+ Creates a thinking indicator over the mob.
create_typing_indicator()
+
+
+
+
+
+ Creates a typing indicator over the mob.
examinate(/atom /examinify)
+
+
+
+
+
+ Examine a mob
+mob verbs are faster than object verbs. See
+this byond forum post
+for why this isn't atom/verb/examine()
get_client_color_matrix(name)
+
+
+
+
+
+ Returns the matrix of that name, if it exists.
get_status_tab_items()
+
+
+
+
+
+ Adds this list to the output to the stat browser
has_status_effect
+
+ Checks if this mob has a status effect that shares the passed effect's ID
+checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not it's typepath
+Returns an instance of a status effect, or NULL if none were found.
has_status_effect_from_source
+
+ Checks if this mob has a status effect that shares the passed effect's ID
+and has the passed sources are in its list of sources (ONLY works for grouped efects!)
+checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not it's typepath
+Returns an instance of a status effect, or NULL if none were found.
has_status_effect_list
+
+ Returns a list of all status effects that share the passed effect type's ID
+checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not it's typepath
+Returns a list
is_mob_incapacitated(ignore_restrained)
+
+
+
+
+
+ Returns if the mob is incapacitated and unable to perform general actions
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.
play_screen_text(text, alert_type, override_color)
+
+
+
+
+
+ proc for playing a screen_text on a mob.
+enqueues it if a screen text is running and plays i otherwise
+Arguments:
+
+text: text we want to be displayed
+alert_type: typepath for screen text type we want to play here
+override_color: the color of the text to use
+ remove_all_indicators()
+
+
+
+
+
+ Removes any indicators and marks the mob as not speaking IC.
remove_client_color_matrix(name_or_names, time, easing)
+
+
+
+
+
+ Can take either a single name or a list of several. Attempts to remove target matrix packages and update client.
remove_thinking_indicator()
+
+
+
+
+
+ Removes the thinking indicator over the mob.
remove_typing_indicator()
+
+
+
+
+
+ Removes the typing indicator over the mob.
select_body_zone(target_zone)
+
+
+
+
+
+ Change the mob's selected body zone to target_zone
.
send_to_lobby()
+
+
+
+
+
+ Send src back to the lobby as a /mob/new_player()
shared_ui_interaction(src_object)
+
+
+
+
+
+ public
+Standard interaction/sanity checks. Different mob types may have overrides.
+return UI_state The state of the UI.
sync_lighting_plane_alpha()
+
+
+
+
+
+ Set the lighting plane hud alpha to the mobs lighting_alpha var
throw_alert(category, type, severity, /obj /new_master, override)
+
+
+
+
+
+ Proc to create or update an alert. Returns the alert if the alert is new or updated, 0 if it was thrown already
+category is a text string. Each mob may only have one alert per category; the previous one will be replaced
+path is 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"
+new_master is optional and sets the alert's icon state to "template" in the ui_style icons with the master as an overlay.
+Clicks are forwarded to master
+Override makes it so the alert is not replaced until cleared by a clear_alert with clear_override, and it's used for hallucinations.
timed_typing()
+
+
+
+
+
+ Sets typing indicator for a couple seconds, for use with client-side comm verbs
timed_typing_clear()
+
+
+
+
+
+ Clears timed typing indicators
update_Login_details()
+
+
+
+
+
+ Handles setting lastKnownIP and computer_id for use by the ban systems
update_client_color_matrices(time, easing)
+
+
+
+
+
+ Combines all color matrices and applies them to the client.
+Also used on login to give a client its new body's color matrices.
+Responsible for sorting the matrices.
+Transition is animated but instant by default.
+
+
+
diff --git a/mob/camera/imaginary_friend.html b/mob/camera/imaginary_friend.html
new file mode 100644
index 000000000000..ebd6972db8a5
--- /dev/null
+++ b/mob/camera/imaginary_friend.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+ /mob/camera/imaginary_friend - byond
+
+
+
+
+
+
+Procs
+ deactivate logs the imaginary friend's removal, ghosts them and cleans up the friend
+ friend_talk shows langchat and speech text to the owner and friend, and sends speech text to dchat
+ get_xeno_appearance gets a directional icon for the xeno appearance
+ recall returns the friend to the owner
+ setup_friend gives the friend the correct name, gender and sets up their appearance
+ update_image makes the friend update their icon and appear to themselves and, if not hidden, the owner
Proc Details deactivate()
+
+
+
+
+
+ logs the imaginary friend's removal, ghosts them and cleans up the friend
friend_talk(message)
+
+
+
+
+
+ shows langchat and speech text to the owner and friend, and sends speech text to dchat
get_xeno_appearance()
+
+
+
+
+
+ gets a directional icon for the xeno appearance
recall()
+
+
+
+
+
+ returns the friend to the owner
setup_friend()
+
+
+
+
+
+ gives the friend the correct name, gender and sets up their appearance
update_image()
+
+
+
+
+
+ makes the friend update their icon and appear to themselves and, if not hidden, the owner
+
+
+
diff --git a/mob/dead/observer.html b/mob/dead/observer.html
new file mode 100644
index 000000000000..c762ebe11fac
--- /dev/null
+++ b/mob/dead/observer.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+ /mob/dead/observer - byond
+
+
+
+
+
+
+
+ Var Details admin_larva_protection
+
+
+
+
+
+ If the observer is an admin, are they excluded from the xeno queue?
bypass_time_of_death_checks
+
+
+
+
+
+ Used to bypass time of death checks such as when being selected for larva.
observe_target_client
+
+
+
+
+
+ The target client that the ghost is observing.
observe_target_mob
+
+
+
+
+
+ The target mob that the ghost is observing.
Proc Details clean_observe_target()
+
+
+
+
+
+ Removes all signals and data related to the observe target and resets observer's HUD/eye
do_observe
+
+ makes the ghost see the target hud and sets the eye at the target.
+ Format text and links to JuMP/FoLloW something
observe_target_ghosting(/mob /observer_target_mob)
+
+
+
+
+
+ When the observe target ghosts our observer disconnect from their screen updates
observe_target_login
+
+ When the observe target logs in our observer connect to the new client
observe_target_new_mind
+
+ When the observe target gets a new mind our observer connects to the new client's screens
observe_target_screen_add(observe_target_mob_client, screen_add)
+
+
+
+
+
+ When the observer target gets a screen, our observer gets a screen minus some game screens we don't want the observer to touch
observe_target_screen_remove(observe_target_mob_client, screen_remove)
+
+
+
+
+
+ When the observer target loses a screen, our observer loses it as well
observer_move_react()
+
+
+
+
+
+ When the observer moves we disconnect from the observe target if we aren't on the same turf
toggle_predator_action()
+
+
+
+
+
+ This proc is called when a predator round is toggled by the admin verb, as well as when a ghost logs in
+
+
+
diff --git a/mob/hologram.html b/mob/hologram.html
new file mode 100644
index 000000000000..f7c4b9e991bd
--- /dev/null
+++ b/mob/hologram.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/hologram - byond
+
+
+
+
+
+
+
+ Var Details motion_sensed
+
+
+
+
+
+ If can be detected on motion detectors.
+
+
+
diff --git a/mob/living.html b/mob/living.html
new file mode 100644
index 000000000000..f4b6d0de0957
--- /dev/null
+++ b/mob/living.html
@@ -0,0 +1,522 @@
+
+
+
+
+
+
+ /mob/living - byond
+
+
+
+
+
+
+Vars
+ active_surgeries Assoc. list - the operations being performed, by aim zone. Both boolean and link to that surgery.
+ blood_volume How much blood the mob has
+ body_position Variable to track the body position of a mob, regardgless of the actual angle of rotation (usually matching it, but not necessarily).
+ bubble_icon what icon the mob uses for speechbubbles
+ custom_slashed_sound Custom sound if the mob gets slashed by a xenomorph
+ dead_black_market_value This is what the value is changed to when the mob dies. Actual BMV definition in atom/movable.
+ incision_depths Assoc. list - incision depths, by aim zone. Set by initialize_incision_depths().
+ limit_blood How much blood the mob can have
+ 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.
+ lying_prev Value of lying lying_angle before last change. TODO: Remove the need for this.
+ max_blood How much blood the mob should ideally have
+ mobility_flags Flags that determine the potential of a mob to perform certain actions. Do not change this directly.
+ rest_cooldown Cooldown for manually toggling resting to avoid spamming
+ rotate_on_lying Does the mob rotate when lying
+ status_effects a list of all status effects the mob has
+ weed_food_icon icon for weed_food states
+ weed_food_states icon_states for weed_food (needs to be the same length as weed_food_states_flipped)
+ weed_food_states_flipped flipped icon_states for weed_food (needs to be the same length as weed_food_states) Procs
+ AdjustKnockDown Adds to remaining Knockdown duration
+ AdjustKnockOut Adds to remaining Knockout duration
+ AmountKnockDown How much time remains - scaled by GLOBAL_STATUS_MULTIPLIER (normally in multiples of legacy 2 seconds)
+ GetDazeDuration Overridable handler to adjust the numerical value of status effects. Expand as needed
+ GetKnockDownDuration Overridable handler to adjust the numerical value of status effects. Expand as needed
+ GetKnockOutDuration Overridable handler to adjust the numerical value of status effects. Expand as needed
+ GetRootDuration Overridable handler to adjust the numerical value of status effects. Expand as needed
+ GetStunDuration Overridable handler to adjust the numerical value of status effects. Expand as needed
+ KnockOut Sets Knockout duration to at least the amount provided
+ SetKnockDown Sets exact remaining KnockDown duration
+ SetKnockOut Sets exact remaining Knockout duration
+ add_splatter_floor add_splatter_floor
+ apply_status_effect Applies a given status effect to this mob.
+ cleanup_status_effects Clear all running status effects assuming deletion
+ create_thinking_indicator Overrides for overlay creation
+ health_scan legacy proc for to_chat messages on health analysers
+ lying_angle_on_movement Called by mob Move() when the lying_angle is different than zero, to better visually simulate crawling.
+ on_dazed_trait_gain Called when TRAIT_DAZED is added to the mob.
+ on_dazed_trait_loss Called when TRAIT_DAZED is removed from the mob.
+ on_fall Called when mob changes from a standing position into a prone while lacking the ability to stand up at the moment.
+ on_floored_end Proc to append behavior to the condition of being floored. Called when the condition ends.
+ on_floored_start Proc to append behavior to the condition of being floored. Called when the condition starts.
+ 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_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_incapacitated_trait_gain Called when TRAIT_INCAPACITATED is added to the mob.
+ on_incapacitated_trait_loss Called when TRAIT_INCAPACITATED 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_lying_down Proc to append behavior related to lying down.
+ on_standing_up Proc to append behavior related to lying down.
+ register_init_signals Called on /mob/living/Initialize(mapload) , for the mob to register to relevant signals.
+ remove_status_effect Removes all instances of a given status effect from this mob
+ resist_buckle The medical machines below are listed separately to allow easier changes to each process
+ set_body_position Changes the value of the [living/body_position] variable. Call this before set_lying_angle()
+ set_buckled Reports the event of the change in value of the buckled variable.
+ set_lying_angle Changes the inclination angle of a mob, used by humans and others to differentiate between standing up and prone positions.
+ set_lying_down Change the [body_position] to LYING_DOWN and update associated behavior.
+ set_resting Proc to hook behavior to the change of value in the resting variable.
+ shared_living_ui_distance public
+ shared_living_ui_in_view public
+ show_speech_bubble Shows custom speech bubbles for screaming, *warcry etc.
+ splat 'Splats' src, killing them. Mouses override this proc with their own unique splat.
+ undense_changed Called when TRAIT_UNDENSE is gained or lost
+ update_density Uses presence of TRAIT_UNDENSE to figure out what is the correct density state for the mob. Triggered by trait signal.
+ update_eye_blur Apply the blurry overlays to a mobs clients screen
+ update_layer Updates the layer the mob is on based on its current status. This can result in redundant updates. Replace by trait signals eventually
+ Var Details active_surgeries
+
+
+
+
+
+ Assoc. list - the operations being performed, by aim zone. Both boolean and link to that surgery.
blood_volume
+
+
+
+
+
+ How much blood the mob has
body_position
+
+
+
+
+
+ Variable to track the body position of a mob, regardgless of the actual angle of rotation (usually matching it, but not necessarily).
bubble_icon
+
+
+
+
+
+ what icon the mob uses for speechbubbles
custom_slashed_sound
+
+
+
+
+
+ Custom sound if the mob gets slashed by a xenomorph
dead_black_market_value
+
+
+
+
+
+ This is what the value is changed to when the mob dies. Actual BMV definition in atom/movable.
incision_depths
+
+
+
+
+
+ Assoc. list - incision depths, by aim zone. Set by initialize_incision_depths().
limit_blood
+
+
+
+
+
+ How much blood the mob can have
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.
lying_prev
+
+
+
+
+
+ Value of lying lying_angle before last change. TODO: Remove the need for this.
max_blood
+
+
+
+
+
+ How much blood the mob should ideally have
mobility_flags
+
+
+
+
+
+ Flags that determine the potential of a mob to perform certain actions. Do not change this directly.
rest_cooldown
+
+
+
+
+
+ Cooldown for manually toggling resting to avoid spamming
rotate_on_lying
+
+
+
+
+
+ Does the mob rotate when lying
status_effects
+
+
+
+
+
+ a list of all status effects the mob has
weed_food_icon
+
+
+
+
+
+ icon for weed_food states
weed_food_states
+
+
+
+
+
+ icon_states for weed_food (needs to be the same length as weed_food_states_flipped)
weed_food_states_flipped
+
+
+
+
+
+ flipped icon_states for weed_food (needs to be the same length as weed_food_states)
Proc Details AdjustKnockDown(amount, ignore_canstun)
+
+
+
+
+
+ Adds to remaining Knockdown duration
AdjustKnockOut(amount, ignore_canstun)
+
+
+
+
+
+ Adds to remaining Knockout duration
AmountKnockDown()
+
+
+
+
+
+ How much time remains - scaled by GLOBAL_STATUS_MULTIPLIER (normally in multiples of legacy 2 seconds)
GetDazeDuration(amount)
+
+
+
+
+
+ Overridable handler to adjust the numerical value of status effects. Expand as needed
GetKnockDownDuration(amount)
+
+
+
+
+
+ Overridable handler to adjust the numerical value of status effects. Expand as needed
GetKnockOutDuration(amount)
+
+
+
+
+
+ Overridable handler to adjust the numerical value of status effects. Expand as needed
GetRootDuration(amount)
+
+
+
+
+
+ Overridable handler to adjust the numerical value of status effects. Expand as needed
GetStunDuration(amount)
+
+
+
+
+
+ Overridable handler to adjust the numerical value of status effects. Expand as needed
KnockOut(amount)
+
+
+
+
+
+ Sets Knockout duration to at least the amount provided
SetKnockDown(amount, ignore_canstun)
+
+
+
+
+
+ Sets exact remaining KnockDown duration
SetKnockOut(amount, ignore_canstun)
+
+
+
+
+
+ Sets exact remaining Knockout duration
add_splatter_floor(/turf /T, small_drip, b_color)
+
+
+
+
+
+ add_splatter_floor
apply_status_effect
+
+ Applies a given status effect to this mob.
+new_effect - TYPEPATH of a status effect to apply.
+Additional status effect arguments can be passed.
+Returns the instance of the created effected, if successful.
+Returns 'null' if unsuccessful.
cleanup_status_effects()
+
+
+
+
+
+ Clear all running status effects assuming deletion
create_thinking_indicator()
+
+
+
+
+
+ Overrides for overlay creation
health_scan
+
+ legacy proc for to_chat messages on health analysers
lying_angle_on_movement(direct)
+
+
+
+
+
+ Called by mob Move() when the lying_angle is different than zero, to better visually simulate crawling.
on_dazed_trait_gain
+
+ Called when TRAIT_DAZED is added to the mob.
on_dazed_trait_loss
+
+ Called when TRAIT_DAZED is removed from the mob.
on_fall()
+
+
+
+
+
+ Called when mob changes from a standing position into a prone while lacking the ability to stand up at the moment.
on_floored_end()
+
+
+
+
+
+ Proc to append behavior to the condition of being floored. Called when the condition ends.
on_floored_start()
+
+
+
+
+
+ Proc to append behavior to the condition of being floored. Called when the condition starts.
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_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_incapacitated_trait_gain
+
+ Called when TRAIT_INCAPACITATED is added to the mob.
on_incapacitated_trait_loss
+
+ Called when TRAIT_INCAPACITATED 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_lying_down(new_lying_angle)
+
+
+
+
+
+ Proc to append behavior related to lying down.
on_standing_up()
+
+
+
+
+
+ Proc to append behavior related to lying down.
register_init_signals()
+
+
+
+
+
+ Called on /mob/living/Initialize(mapload) , for the mob to register to relevant signals.
remove_status_effect
+
+ Removes all instances of a given status effect from this mob
+removed_effect - TYPEPATH of a status effect to remove.
+Additional status effect arguments can be passed - these are passed into before_remove.
+Returns TRUE if at least one was removed.
resist_buckle()
+
+
+
+
+
+ The medical machines below are listed separately to allow easier changes to each process
set_body_position(new_value)
+
+
+
+
+
+ Changes the value of the [living/body_position] variable. Call this before set_lying_angle()
set_buckled(new_buckled)
+
+
+
+
+
+ Reports the event of the change in value of the buckled variable.
set_lying_angle(new_lying, on_movement)
+
+
+
+
+
+ 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.
set_lying_down(new_lying_angle)
+
+
+
+
+
+ Change the [body_position] to LYING_DOWN and update associated behavior.
set_resting(new_resting, silent, instant)
+
+
+
+
+
+ Proc to hook behavior to the change of value in the resting variable.
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.
shared_living_ui_in_view
+
+ public
+Check if in view. Can interact only if adjacent, updates within max distance, otherwise closes
+required src_object atom/movable The object which owns the UI.
+return UI_state The state of the UI.
show_speech_bubble(bubble_name, bubble_type)
+
+
+
+
+
+ Shows custom speech bubbles for screaming, *warcry etc.
splat(/mob /killer)
+
+
+
+
+
+ 'Splats' src, killing them. Mouses override this proc with their own unique splat.
undense_changed
+
+ Called when TRAIT_UNDENSE is gained or lost
update_density()
+
+
+
+
+
+ Uses presence of TRAIT_UNDENSE to figure out what is the correct density state for the mob. Triggered by trait signal.
update_eye_blur()
+
+
+
+
+
+ Apply the blurry overlays to a mobs clients screen
update_layer()
+
+
+
+
+
+ Updates the layer the mob is on based on its current status. This can result in redundant updates. Replace by trait signals eventually
+
+
+
diff --git a/mob/living/carbon.html b/mob/living/carbon.html
new file mode 100644
index 000000000000..91b8014a2ee1
--- /dev/null
+++ b/mob/living/carbon.html
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ /mob/living/carbon - byond
+
+
+
+
+
+
+
+ Var Details active_transfusions
+
+
+
+
+
+ list of active transfusions from blood bags or iv stands
Proc Details auto_observed
+
+ Called by /mob/dead/observer/proc/do_observe when a carbon mob is observed by a ghost with /datum/preferences/var/auto_observe enabled.
+Any HUD changes past this point are handled by /mob/dead/observer/proc/observe_target_screen_add
+and /mob/dead/observer/proc/observe_target_screen_remove .
+Override on subtype mobs if they have any extra HUD elements/behaviour.
get_sharp_obj_blocker
+
+ Checks if something prevents sharp objects from interacting with the mob (such as armor blocking surgical tools / surgery)
lying_angle_on_lying_down(new_lying_angle)
+
+
+
+
+
+ Special carbon interaction on lying down, to transform its sprite by a rotation.
+
+
+
diff --git a/mob/living/carbon/human.html b/mob/living/carbon/human.html
new file mode 100644
index 000000000000..404165040555
--- /dev/null
+++ b/mob/living/carbon/human.html
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+ /mob/living/carbon/human - byond
+
+
+
+
+
+
+Vars
+ bloody_footsteps The number of bloody foot steps left to make
+ criminal used to determine if precise taser will shoot. Security code is so convoluted it's the easiest way, sorry.
+ embedded_items A list of all the shrapnel currently embedded in the human
+ focused_fire_marker Stored image references associated with focus-fire.
+ grad_style Style used for the hair gradient.
+ icon_render_image_cache static associated list of limb key -> image to avoid unnecessary overlay generation
+ icon_render_keys associated list of body part zone -> currently active limb key
+ remembered_dropped_objects list of weakrefs of recently dropped objects
+ traits The list of traits a human has
+Store as typepaths Procs
+ attack_animal Reduces effects by armor value.
+ auto_observed Handles any storage containers that the human is looking inside when auto-observed.
+ drop_inv_item_on_ground Default delay
+Multiplier for how quickly the user can strip things.
+The total skill level of CQC & Police
+Delay then gets + 0.5s per skill level, so long as not dead or cuffed.
+Final result is overall delay * speed multiplier
+ force_say Makes the player force say what's in their current input box.
+ get_eye_protection get_eye_protection()
+Returns a number between -1 to 2
+ handle_hugger_attachment Human hugger handling
+ holster_verb For the holster hotkey
+ is_heart_broken Returns whether this person has a broken heart but is otherwise revivable
+ on_dazed_trait_gain Pain should override the SetEyeBlur(0) should the pain be painful enough to cause eyeblur in the first place. Also, peepers is essential to make sure eye damage isn't overridden.
+ update_damage_overlays Recalculates and reapplies damage overlays to every limb
+ update_headshot_overlay Handles headshot images. These render above hair and below hats/helmets. Must be given a headshot_state or it just removes the overlay.
+Applied by gun suicide and high impact bullet executions, removed by rejuvenate, since such people are otherwise unrevivable.
+ update_leg_status Updates TRAIT_FLOORED based on whether the mob has appropriate limbs to stand or not
+ Var Details
+ The number of bloody foot steps left to make
criminal
+
+
+
+
+
+ used to determine if precise taser will shoot. Security code is so convoluted it's the easiest way, sorry.
embedded_items
+
+
+
+
+
+ A list of all the shrapnel currently embedded in the human
focused_fire_marker
+
+
+
+
+
+ Stored image references associated with focus-fire.
grad_style
+
+
+
+
+
+ Style used for the hair gradient.
icon_render_image_cache
+
+
+
+
+
+ static associated list of limb key -> image to avoid unnecessary overlay generation
icon_render_keys
+
+
+
+
+
+ associated list of body part zone -> currently active limb key
remembered_dropped_objects
+
+
+
+
+
+ list of weakrefs of recently dropped objects
traits
+
+
+
+
+
+ The list of traits a human has
+Store as typepaths
Proc Details attack_animal
+
+ Reduces effects by armor value.
+ Handles any storage containers that the human is looking inside when auto-observed.
drop_inv_item_on_ground(/obj /item /I, nomoveupdate, force)
+
+
+
+
+
+ Default delay
+Multiplier for how quickly the user can strip things.
+The total skill level of CQC & Police
+Delay then gets + 0.5s per skill level, so long as not dead or cuffed.
+Final result is overall delay * speed multiplier
force_say()
+
+
+
+
+
+ Makes the player force say what's in their current input box.
get_eye_protection()
+
+
+
+
+
+ get_eye_protection()
+Returns a number between -1 to 2
+ Human hugger handling
holster_verb(unholster_number_offset)
+
+
+
+
+
+ For the holster hotkey
is_heart_broken()
+
+
+
+
+
+ Returns whether this person has a broken heart but is otherwise revivable
on_dazed_trait_gain
+
+ Pain should override the SetEyeBlur(0) should the pain be painful enough to cause eyeblur in the first place. Also, peepers is essential to make sure eye damage isn't overridden.
update_damage_overlays()
+
+
+
+
+
+ Recalculates and reapplies damage overlays to every limb
update_headshot_overlay(headshot_state)
+
+
+
+
+
+ Handles headshot images. These render above hair and below hats/helmets. Must be given a headshot_state or it just removes the overlay.
+Applied by gun suicide and high impact bullet executions, removed by rejuvenate, since such people are otherwise unrevivable.
update_leg_status()
+
+
+
+
+
+ Updates TRAIT_FLOORED based on whether the mob has appropriate limbs to stand or not
+
+
+
diff --git a/mob/living/carbon/human/professor_dummy.html b/mob/living/carbon/human/professor_dummy.html
new file mode 100644
index 000000000000..c873e4fa0f44
--- /dev/null
+++ b/mob/living/carbon/human/professor_dummy.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /mob/living/carbon/human/professor_dummy - byond
+
+
+
+
+
+
+Procs
+ Initialize Professor Dummy, used by CMOs and SEAs to teach new nurses/doctors
Proc Details Initialize()
+
+
+
+
+
+ Professor Dummy, used by CMOs and SEAs to teach new nurses/doctors
+
+
+
diff --git a/mob/living/carbon/xenomorph.html b/mob/living/carbon/xenomorph.html
new file mode 100644
index 000000000000..e7b0b16f922d
--- /dev/null
+++ b/mob/living/carbon/xenomorph.html
@@ -0,0 +1,315 @@
+
+
+
+
+
+
+ /mob/living/carbon/xenomorph - byond
+
+
+
+
+
+
+Vars
+ acid_blood_damage The damage dealt by a xeno whenever they take damage near someone
+ agility 0/FALSE - upright, 1/TRUE - all fours
+ ammo The ammo datum for our spit projectiles. We're born with this, it changes sometimes.
+ available_fruits List of placeable the xenomorph has access to.
+ base_actions List of actions (typepaths) that a
+xenomorph type is given upon spawn
+ cannot_slash If TRUE, the xeno cannot slash anything
+ current_fruits If we have current_fruits that are limited, e.g. fruits
+ devour_timer The world.time at which we will regurgitate our currently-vored victim
+ egg_planting_range tiles from self you can plant eggs.
+ extra_build_dist For drones/hivelords. Extends the maximum build range they have
+ max_placeable Limit to that amount
+ name ALL OLD SS13 VARS
+ organ_value value of organ in each caste, e.g. 10k is autodoc larva removal. runner is 500
+ selected_construction which special structure to build when we place constructions
+ selected_fruit the typepath of the placeable we wanna put down
+ selected_mark If leader what mark you will place when you make one
+ selected_resin Which resin structure to build when we secrete resin, defaults to null.
+ spit_delay Caste-based spit windup duration (if applicable)
+ spit_windup Caste-based spit windup
+ stealth for check on lurker invisibility
+ strain The xeno's strain, if they've taken one.
+ tracked_marker this is the resin mark that is currently being tracked by the xeno
+ xeno_inhand_item_offset How much to horizontally adjust the sprites of held item onmobs by. Based on icon size. Most xenos have hands about the same height as a human's. Procs
+ IsAdvancedToolUser This permits xenos with thumbs to fire guns and arm grenades. God help us all.
+ add_minimap_marker Adds a minimap marker for this xeno using the provided flags.
+If flags is 0, it will use get_minimap_flag_for_faction for this xeno
+ can_not_harm Returns true/false based on if the xenomorph can harm the passed carbon mob.
+ can_take_strain Is this xeno currently able to take a strain?
+ clear_debuffs snowflake proc to clear effects from research warcrimes
+ generate_and_set_nicknumber Generate a new unused nicknumber for the current hive, if hive doesn't exist return 0
+ get_eye_protection get_eye_protection()
+Returns a number between -1 to 2
+ get_strain_icon Returns the custom icon state from the xeno's strain, if it has one.
+ get_strain_name Returns the name of the xeno's strain, if it has one.
+ handle_screech_act Handle transferring things from the old Xeno if we have one in the case of evolve, devolve etc.
+ hive_status Holds Xeno verbs that don't belong anywhere else.
+ pull_power Called when pulling something and attacking yourself wth the pull (Z hotkey) override for caste specific behaviour
+ set_selected_ability Abilities used by multiple Xenos.
+README
+ throw_carbon Helper procedure for throwing other carbon based mobs around
+Pretty much a wrapper to [/atom/movable/proc/throw_atom] with extra handling
+ throw_carbon_end Handler callback to reset immobilization status after a successful /mob/living/carbon/xenomorph/proc/throw_carbon
+ Var Details acid_blood_damage
+
+
+
+
+
+ The damage dealt by a xeno whenever they take damage near someone
agility
+
+
+
+
+
+ 0/FALSE - upright, 1/TRUE - all fours
+ The ammo datum for our spit projectiles. We're born with this, it changes sometimes.
available_fruits
+
+
+
+
+
+ List of placeable the xenomorph has access to.
base_actions
+
+
+
+
+
+ List of actions (typepaths) that a
+xenomorph type is given upon spawn
cannot_slash
+
+
+
+
+
+ If TRUE, the xeno cannot slash anything
current_fruits
+
+
+
+
+
+ If we have current_fruits that are limited, e.g. fruits
devour_timer
+
+
+
+
+
+ The world.time at which we will regurgitate our currently-vored victim
egg_planting_range
+
+
+
+
+
+ tiles from self you can plant eggs.
+ For drones/hivelords. Extends the maximum build range they have
max_placeable
+
+
+
+
+
+ Limit to that amount
name
+
+
+
+
+
+ ALL OLD SS13 VARS
organ_value
+
+
+
+
+
+ value of organ in each caste, e.g. 10k is autodoc larva removal. runner is 500
selected_construction
+
+
+
+
+
+ which special structure to build when we place constructions
selected_fruit
+ – /obj /effect/alien/resin/fruit
+
+
+
+
+ the typepath of the placeable we wanna put down
selected_mark
+
+
+
+
+
+ If leader what mark you will place when you make one
selected_resin
+
+
+
+
+
+ Which resin structure to build when we secrete resin, defaults to null.
spit_delay
+
+
+
+
+
+ Caste-based spit windup duration (if applicable)
spit_windup
+
+
+
+
+
+ Caste-based spit windup
stealth
+
+
+
+
+
+ for check on lurker invisibility
+ The xeno's strain, if they've taken one.
tracked_marker
+ – /obj /effect/alien/resin/marker
+
+
+
+
+ this is the resin mark that is currently being tracked by the xeno
xeno_inhand_item_offset
+
+
+
+
+
+ How much to horizontally adjust the sprites of held item onmobs by. Based on icon size. Most xenos have hands about the same height as a human's.
Proc Details
+ This permits xenos with thumbs to fire guns and arm grenades. God help us all.
add_minimap_marker(flags)
+
+
+
+
+
+ Adds a minimap marker for this xeno using the provided flags.
+If flags is 0, it will use get_minimap_flag_for_faction for this xeno
can_not_harm
+
+ Returns true/false based on if the xenomorph can harm the passed carbon mob.
can_take_strain()
+
+
+
+
+
+ Is this xeno currently able to take a strain?
clear_debuffs()
+
+
+
+
+
+ snowflake proc to clear effects from research warcrimes
generate_and_set_nicknumber()
+
+
+
+
+
+ Generate a new unused nicknumber for the current hive, if hive doesn't exist return 0
get_eye_protection()
+
+
+
+
+
+ get_eye_protection()
+Returns a number between -1 to 2
get_strain_icon()
+
+
+
+
+
+ Returns the custom icon state from the xeno's strain, if it has one.
+If that can't be found, returns "Normal"
get_strain_name()
+
+
+
+
+
+ Returns the name of the xeno's strain, if it has one.
+If that can't be found, returns "Normal".
handle_screech_act
+
+ Handle transferring things from the old Xeno if we have one in the case of evolve, devolve etc.
hive_status()
+
+
+
+
+
+ Holds Xeno verbs that don't belong anywhere else.
pull_power
+
+ Called when pulling something and attacking yourself wth the pull (Z hotkey) override for caste specific behaviour
set_selected_ability
+
+ Abilities used by multiple Xenos.
+README
throw_carbon(/mob /living /carbon /target, direction, distance, speed, shake_camera, immobilize)
+
+
+
+
+
+ Helper procedure for throwing other carbon based mobs around
+Pretty much a wrapper to [/atom/movable/proc/throw_atom] with extra handling
+
+target - the target carbon mob that will be thrown
+direction - the direction the target will be thrown toward, or if null, infered from relative position with target
+distance - the total distance the throw will be made for
+speed - throw_atom relative speed of the throw, check [SPEED_AVERAGE] for details
+shake_camera - whether to shake the thrown mob camera on throw
+immobilize - if TRUE the mob will be immobilized during the throw, ensuring it doesn't move and break it
+ throw_carbon_end
+
+ Handler callback to reset immobilization status after a successful /mob/living/carbon/xenomorph/proc/throw_carbon
+
+
+
diff --git a/mob/living/carbon/xenomorph/carrier.html b/mob/living/carbon/xenomorph/carrier.html
new file mode 100644
index 000000000000..ee45f5cc7095
--- /dev/null
+++ b/mob/living/carbon/xenomorph/carrier.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /mob/living/carbon/xenomorph/carrier - byond
+
+
+
+
+
+
+Proc Details Initialize
+
+ Simplified image index change.
+
+
+
diff --git a/mob/living/carbon/xenomorph/facehugger.html b/mob/living/carbon/xenomorph/facehugger.html
new file mode 100644
index 000000000000..27407fa76f9e
--- /dev/null
+++ b/mob/living/carbon/xenomorph/facehugger.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /mob/living/carbon/xenomorph/facehugger - byond
+
+
+
+
+
+
+
+ Var Details next_facehug_goal
+
+
+
+
+
+ How many hugs the hugger needs to age
total_facehugs
+
+
+
+
+
+ The lifetime hugs from this hugger
+
+
+
diff --git a/mob/living/carbon/xenomorph/predalien.html b/mob/living/carbon/xenomorph/predalien.html
new file mode 100644
index 000000000000..d531b54505e4
--- /dev/null
+++ b/mob/living/carbon/xenomorph/predalien.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /mob/living/carbon/xenomorph/predalien - byond
+
+
+
+
+
+
+
+ Var Details should_announce_spawn
+
+
+
+
+
+ If the pred alert/player notif should happen when the predalien spawns
+
+
+
diff --git a/mob/living/carbon/xenomorph/warrior.html b/mob/living/carbon/xenomorph/warrior.html
new file mode 100644
index 000000000000..9c5028eb7cc6
--- /dev/null
+++ b/mob/living/carbon/xenomorph/warrior.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /mob/living/carbon/xenomorph/warrior - byond
+
+
+
+
+
+
+Procs
+ pull_power Warrior specific behaviour for increasing pull power, limb rip.
+ rip_limb Warrior Rip Limb - called by pull_power()
Proc Details pull_power
+
+ Warrior specific behaviour for increasing pull power, limb rip.
rip_limb
+
+ Warrior Rip Limb - called by pull_power()
+
+
+
diff --git a/mob/living/silicon.html b/mob/living/silicon.html
new file mode 100644
index 000000000000..6fbebc87bf8f
--- /dev/null
+++ b/mob/living/silicon.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /mob/living/silicon - byond
+
+
+
+
+
+
+Procs
+ get_ui_access Returns a UI status representing this silicon's capability to access
+the given source. Called by ui_status_silicon_has_access
.
Proc Details get_ui_access
+
+ Returns a UI status representing this silicon's capability to access
+the given source. Called by ui_status_silicon_has_access
.
+
+
+
diff --git a/mob/living/simple_animal.html b/mob/living/simple_animal.html
new file mode 100644
index 000000000000..dcb987a1a761
--- /dev/null
+++ b/mob/living/simple_animal.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /mob/living/simple_animal - byond
+
+
+
+
+
+
+Vars
+ affected_by_fire Will this mob be affected by fire/napalm? Set to FALSE for all mobs as the implications could be weird due to not being tested for all simple mobs.
+ cold_damage_per_tick same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
+ emote_hear Emotes that can be heard by other mobs.
+ 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.
+ heat_damage_per_tick amount of damage applied if animal's body temperature is higher than maxbodytemp
+ 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 1 this stops the animal from moving when someone is pulling it.
+ unsuitable_atoms_damage This damage is taken when atmos doesn't fit all the requirements above
+ wander Does the mob wander around when idle?
+ Var Details affected_by_fire
+
+
+
+
+
+ Will this mob be affected by fire/napalm? Set to FALSE for all mobs as the implications could be weird due to not being tested for all simple mobs.
cold_damage_per_tick
+
+
+
+
+
+ same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
emote_hear
+
+
+
+
+
+ Emotes that can be heard by other mobs.
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.
heat_damage_per_tick
+
+
+
+
+
+ amount of damage applied if animal's body temperature is higher than maxbodytemp
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 1 this stops the animal from moving when someone is pulling it.
unsuitable_atoms_damage
+
+
+
+
+
+ This damage is taken when atmos doesn't fit all the requirements above
wander
+
+
+
+
+
+ Does the mob wander around when idle?
+
+
+
diff --git a/mob/living/simple_animal/cat.html b/mob/living/simple_animal/cat.html
new file mode 100644
index 000000000000..daa40380f549
--- /dev/null
+++ b/mob/living/simple_animal/cat.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/cat - byond
+
+
+
+
+
+
+Vars
+ hunting_targets The mobs that src will track to hunt and kill.
+ movement_target The target src is moving towards during its hunt.
+ play_counter The cat will 'play' with dead hunted targets near it until this counter reaches a certain value.
+ Var Details hunting_targets
+
+
+
+
+
+ The mobs that src will track to hunt and kill.
movement_target
+
+
+
+
+
+ The target src is moving towards during its hunt.
play_counter
+
+
+
+
+
+ The cat will 'play' with dead hunted targets near it until this counter reaches a certain value.
+
+
+
diff --git a/mob/living/simple_animal/hostile/retaliate/giant_lizard.html b/mob/living/simple_animal/hostile/retaliate/giant_lizard.html
new file mode 100644
index 000000000000..73ab509a9ad0
--- /dev/null
+++ b/mob/living/simple_animal/hostile/retaliate/giant_lizard.html
@@ -0,0 +1,218 @@
+
+
+
+
+
+
+ /mob/living/simple_animal/hostile/retaliate/giant_lizard - byond
+
+
+
+
+
+
+Vars
+ acceptable_foods A list of foods the mob is interested in eating.
+ aggression_value If 0, moves the mob out of attacking into idle state. Used to prevent the mob from chasing down targets that did not mean to hurt it.
+ bleed_ticks How many times the mob is going bleed in the Life() proc.
+ calm_cooldown Cooldown for when the mob calms down, so the mob doesn't start attacking immediately after calming down.
+ chance_to_rest Chance of the mob laying down/getting up.
+ emote_cooldown Cooldown to stop generic emote spam.
+ food_cooldown Cooldown dictating how long the mob will wait between eating food.
+ food_target The food object that the mob is trying to eat.
+ growl_message Cooldown for the growl emote.
+ is_eating Is the mob currently eating the food_target?
+ is_ravaging Are we currently mauling a mob after pouncing them? Used to stop normal attacks on pounced targets.
+ is_retreating Is the mob currently running away from a target?
+ pet_emotes Emotes to play when being pet by a friend.
+ pounce_callbacks Collision callbacks for the pounce proc.
+ pounce_cooldown Cooldown for the pounce ability.
+ pounce_cooldown_length Length of the cooldown for pouncing.
+ retreat_attempts How many times have we attempted to retreat?
+ retreat_cooldown Tied directly to retreat_attempts. If our retreat fail, then we will completely stop trying to retreat for the length of this cooldown.
+ sleep_overlay Reference to the ZZzzz sleep overlay when resting. Procs
+ MoveTo Proc for moving to targets. walk_to() doesn't check for resting and status effects so we will do it ourselves.
+ check_food_loc Proc for checking if someone picked our food target.
+ find_target_on_trait_loss Proc for handling the AI post-status effect.
+ growl Proc for growling.
+ handle_food Proc for when the mob finds food and starts DEVOURING it.
+ process_attack_hand Proc for handling attacking the lizard with a hand for BOTH XENOS AND HUMANS.
+ ravagingattack Ravaging attack, used for when a mob gets pounced or is on the ground.
+ try_to_extinguish Proc that forces the mob to disengage and try to extinguish itself. Will not be called if the mob is already retreating.
+ Var Details acceptable_foods
+
+
+
+
+
+ A list of foods the mob is interested in eating.
aggression_value
+
+
+
+
+
+ If 0, moves the mob out of attacking into idle state. Used to prevent the mob from chasing down targets that did not mean to hurt it.
bleed_ticks
+
+
+
+
+
+ How many times the mob is going bleed in the Life() proc.
calm_cooldown
+
+
+
+
+
+ Cooldown for when the mob calms down, so the mob doesn't start attacking immediately after calming down.
chance_to_rest
+
+
+
+
+
+ Chance of the mob laying down/getting up.
emote_cooldown
+
+
+
+
+
+ Cooldown to stop generic emote spam.
food_cooldown
+
+
+
+
+
+ Cooldown dictating how long the mob will wait between eating food.
food_target
+
+
+
+
+
+ The food object that the mob is trying to eat.
growl_message
+
+
+
+
+
+ Cooldown for the growl emote.
is_eating
+
+
+
+
+
+ Is the mob currently eating the food_target?
is_ravaging
+
+
+
+
+
+ Are we currently mauling a mob after pouncing them? Used to stop normal attacks on pounced targets.
is_retreating
+
+
+
+
+
+ Is the mob currently running away from a target?
pet_emotes
+
+
+
+
+
+ Emotes to play when being pet by a friend.
pounce_callbacks
+
+
+
+
+
+ Collision callbacks for the pounce proc.
pounce_cooldown
+
+
+
+
+
+ Cooldown for the pounce ability.
pounce_cooldown_length
+
+
+
+
+
+ Length of the cooldown for pouncing.
retreat_attempts
+
+
+
+
+
+ How many times have we attempted to retreat?
retreat_cooldown
+
+
+
+
+
+ Tied directly to retreat_attempts. If our retreat fail, then we will completely stop trying to retreat for the length of this cooldown.
sleep_overlay
+
+
+
+
+
+ Reference to the ZZzzz sleep overlay when resting.
Proc Details MoveTo(target, distance, retreat, time, return_to_combat)
+
+
+
+
+
+ Proc for moving to targets. walk_to() doesn't check for resting and status effects so we will do it ourselves.
check_food_loc
+
+ Proc for checking if someone picked our food target.
find_target_on_trait_loss()
+
+
+
+
+
+ Proc for handling the AI post-status effect.
growl(target_mob, ignore_cooldown)
+
+
+
+
+
+ Proc for growling.
+ Proc for when the mob finds food and starts DEVOURING it.
process_attack_hand
+
+ Proc for handling attacking the lizard with a hand for BOTH XENOS AND HUMANS.
ravagingattack
+
+ Ravaging attack, used for when a mob gets pounced or is on the ground.
try_to_extinguish()
+
+
+
+
+
+ Proc that forces the mob to disengage and try to extinguish itself. Will not be called if the mob is already retreating.
+
+
+
diff --git a/mob/proccall_handler.html b/mob/proccall_handler.html
new file mode 100644
index 000000000000..61b5a7c37b0a
--- /dev/null
+++ b/mob/proccall_handler.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ /mob/proccall_handler - byond
+
+
+
+
+
+
+Used to handle proccalls called indirectly by an admin (namely tgs).
+Has to be a mob because IsAdminAdvancedProcCall() checks usr, which is a mob variable.
+So usr is set to this for any proccalls that don't have any usr mob/client to refer to.
Proc Details add_caller(caller_name)
+
+
+
+
+
+ Adds a caller.
remove_caller(caller_name)
+
+
+
+
+
+ Removes a caller.
+
+
+
diff --git a/obj.html b/obj.html
new file mode 100644
index 000000000000..e0f19dacc8bc
--- /dev/null
+++ b/obj.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ /obj - byond
+
+
+
+
+
+
+Vars
+ access_modified Whether or not this instance is using accesses different from initial code. Used for easy locating in map files.
+ buckle_lying Bed-like behaviour, forces mob.lying = buckle_lying if not set to NO_BUCKLE_LYING .
+ garbage set to true if the item is garbage and should be deleted after awhile
+ in_use If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING!
+ indestructible determines whether or not the object can be destroyed by an explosion
+ matter Used to store information about the contents of the object.
+ projectile_coverage an object's "projectile_coverage" var indicates the maximum probability of blocking a projectile, assuming density and throwpass. Used by barricades, tables and window frames
+ reliability Used by SOME devices to determine how reliable they are.
+ renamedByPlayer set when a player uses a pen on a renamable object
+ surgery_duration_multiplier Applied to surgery times for mobs buckled prone to it or lying on the same tile, if the surgery
+cares about surface conditions. The lowest multiplier of objects on the tile is used.
+ unacidable universal "unacidabliness" var, here so you can use it in any obj. Procs
+ get_applying_acid_time returns time or -1 if unmeltable
+ post_vendor_spawn_hook override for subtypes that require extra behaviour when spawned from a vendor
+ Var Details access_modified
+
+
+
+
+
+ Whether or not this instance is using accesses different from initial code. Used for easy locating in map files.
buckle_lying
+
+
+
+
+
+ Bed-like behaviour, forces mob.lying = buckle_lying if not set to NO_BUCKLE_LYING .
garbage
+
+
+
+
+
+ set to true if the item is garbage and should be deleted after awhile
in_use
+
+
+
+
+
+ If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING!
indestructible
+
+
+
+
+
+ determines whether or not the object can be destroyed by an explosion
matter
+
+
+
+
+
+ Used to store information about the contents of the object.
projectile_coverage
+
+
+
+
+
+ an object's "projectile_coverage" var indicates the maximum probability of blocking a projectile, assuming density and throwpass. Used by barricades, tables and window frames
reliability
+
+
+
+
+
+ Used by SOME devices to determine how reliable they are.
renamedByPlayer
+
+
+
+
+
+ set when a player uses a pen on a renamable object
surgery_duration_multiplier
+
+
+
+
+
+ Applied to surgery times for mobs buckled prone to it or lying on the same tile, if the surgery
+cares about surface conditions. The lowest multiplier of objects on the tile is used.
unacidable
+
+
+
+
+
+ universal "unacidabliness" var, here so you can use it in any obj.
Proc Details get_applying_acid_time()
+
+
+
+
+
+ returns time or -1 if unmeltable
post_vendor_spawn_hook
+
+ override for subtypes that require extra behaviour when spawned from a vendor
+
+
+
diff --git a/obj/docking_port.html b/obj/docking_port.html
new file mode 100644
index 000000000000..4067848bb851
--- /dev/null
+++ b/obj/docking_port.html
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+ /obj/docking_port - byond
+
+
+
+
+
+
+Vars
+ delete_after Delete this port after ship fly off.
+ dheight position relative to covered area, parallel to dir
+ dir this should point -away- from the dockingport door, ie towards the ship
+ dwidth position relative to covered area, perpendicular to dir
+ height size of covered area, parallel to dir
+ hidden are we invisible to shuttle navigation computers?
+ id The identifier of the port or ship.
+This will be used in numerous other places like the console,
+stationary ports and whatnot to tell them your ship's mobile
+port can be used in these places, or the docking port is compatible, etc.
+ port_destinations Possible destinations
+ registered are we registered in SSshuttles?
+ template_id The original template shuttle_id for this shuttle (so without a suffix identifier)
+ width size of covered area, perpendicular to dir Procs
+ register register to SSshuttles
+ return_number_of_turfs Return number of turfs
+ return_turfs returns turfs within our projected rectangle in no particular order
+ unregister unregister from SSshuttles
+ Var Details delete_after
+
+
+
+
+
+ Delete this port after ship fly off.
dheight
+
+
+
+
+
+ position relative to covered area, parallel to dir
dir
+
+
+
+
+
+ this should point -away- from the dockingport door, ie towards the ship
dwidth
+
+
+
+
+
+ position relative to covered area, perpendicular to dir
height
+
+
+
+
+
+ size of covered area, parallel to dir
hidden
+
+
+
+
+
+ are we invisible to shuttle navigation computers?
id
+
+
+
+
+
+ The identifier of the port or ship.
+This will be used in numerous other places like the console,
+stationary ports and whatnot to tell them your ship's mobile
+port can be used in these places, or the docking port is compatible, etc.
port_destinations
+
+
+
+
+
+ Possible destinations
registered
+
+
+
+
+
+ are we registered in SSshuttles?
template_id
+
+
+
+
+
+ The original template shuttle_id for this shuttle (so without a suffix identifier)
width
+
+
+
+
+
+ size of covered area, perpendicular to dir
Proc Details register()
+
+
+
+
+
+ register to SSshuttles
return_number_of_turfs()
+
+
+
+
+
+ Return number of turfs
return_turfs()
+
+
+
+
+
+ returns turfs within our projected rectangle in no particular order
unregister()
+
+
+
+
+
+ unregister from SSshuttles
+
+
+
diff --git a/obj/docking_port/mobile.html b/obj/docking_port/mobile.html
new file mode 100644
index 000000000000..e859c7b57bbf
--- /dev/null
+++ b/obj/docking_port/mobile.html
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ /obj/docking_port/mobile - byond
+
+
+
+
+
+
+Vars
+ ambience_flight Default shuttle audio ambience while flying
+ ambience_idle Default shuttle audio ambience while not flying Procs
+ calculate_docking_port_information Calculated and populates the information used for docking and some internal vars.
+This can also be used to calculate from shuttle_areas so that you can expand/shrink shuttles!
+ get_sound_ambience Requests the proper sound ambience to play in the shuttle based on its state
+ initiate_docking This is the main proc. It instantly moves our mobile port to stationary port new_dock
.
+ postregister Actions to be taken after shuttle is loaded and has been moved to its final location
+ preflight_check Both lists are associative with a turf:bitflag structure. (new_turfs bitflag space unused currently)
+The bitflag contains the data for what inhabitants of that coordinate should be moved to the new location
+The bitflags can be found in __DEFINES/shuttles.dm
+ update_ambience Update the sound ambience of ALL shuttle passengers
+ Var Details ambience_flight
+
+
+
+
+
+ Default shuttle audio ambience while flying
ambience_idle
+
+
+
+
+
+ Default shuttle audio ambience while not flying
Proc Details
+ Calculated and populates the information used for docking and some internal vars.
+This can also be used to calculate from shuttle_areas so that you can expand/shrink shuttles!
+Arguments:
+
+loading_from - The template that the shuttle was loaded from, if not given we iterate shuttle_areas to calculate information instead
+ get_sound_ambience()
+
+
+
+
+
+ Requests the proper sound ambience to play in the shuttle based on its state
initiate_docking
+
+ This is the main proc. It instantly moves our mobile port to stationary port new_dock
.
postregister(replace)
+
+
+
+
+
+ Actions to be taken after shuttle is loaded and has been moved to its final location
+Arguments:
+
+replace - TRUE if this shuttle is replacing an existing one. FALSE by default.
+ preflight_check(/list/old_turfs, /list/new_turfs, /list/areas_to_move, rotation)
+
+
+
+
+
+ Both lists are associative with a turf:bitflag structure. (new_turfs bitflag space unused currently)
+The bitflag contains the data for what inhabitants of that coordinate should be moved to the new location
+The bitflags can be found in __DEFINES/shuttles.dm
+Hiding turfs if necessary
+Unhiding turfs if necessary
update_ambience()
+
+
+
+
+
+ Update the sound ambience of ALL shuttle passengers
+
+
+
diff --git a/obj/docking_port/mobile/crashable.html b/obj/docking_port/mobile/crashable.html
new file mode 100644
index 000000000000..4baa9732048e
--- /dev/null
+++ b/obj/docking_port/mobile/crashable.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/docking_port/mobile/crashable - byond
+
+
+
+
+
+
+Vars
+ crash_land Whether or not this shuttle is crash landing
+ fires_on_crash Whether fires occur aboard the shuttle when crashing Procs
+ check_crash_point Checks for anything that may get in the way of a crash, returns FALSE if there is something in the way or is out of bounds
+ crash_check Returns whether or not the shuttle will crash after being sent
+ create_crash_point Sets up a valid crash point, fails after 10 tries
+ evac_launch Called when the shuttle is launched and checks for crash and creates a crash point
+ force_crash Forces the shuttle to crash, admin called
+ handle_fires Sets up and handles fires/explosions on crashing shuttles
+ kablooie Actually blows up the fire/explosion on crashing shuttles, used for effect delay
+ open_doors Handles opening the doors for the specific shuttle type upon arriving at the crash point
+ Var Details crash_land
+
+
+
+
+
+ Whether or not this shuttle is crash landing
fires_on_crash
+
+
+
+
+
+ Whether fires occur aboard the shuttle when crashing
Proc Details check_crash_point
+
+ Checks for anything that may get in the way of a crash, returns FALSE if there is something in the way or is out of bounds
crash_check()
+
+
+
+
+
+ Returns whether or not the shuttle will crash after being sent
create_crash_point()
+
+
+
+
+
+ Sets up a valid crash point, fails after 10 tries
evac_launch()
+
+
+
+
+
+ Called when the shuttle is launched and checks for crash and creates a crash point
force_crash()
+
+
+
+
+
+ Forces the shuttle to crash, admin called
handle_fires()
+
+
+
+
+
+ Sets up and handles fires/explosions on crashing shuttles
kablooie
+
+ Actually blows up the fire/explosion on crashing shuttles, used for effect delay
open_doors()
+
+
+
+
+
+ Handles opening the doors for the specific shuttle type upon arriving at the crash point
+
+
+
diff --git a/obj/docking_port/mobile/crashable/escape_shuttle.html b/obj/docking_port/mobile/crashable/escape_shuttle.html
new file mode 100644
index 000000000000..47586e3b222f
--- /dev/null
+++ b/obj/docking_port/mobile/crashable/escape_shuttle.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/docking_port/mobile/crashable/escape_shuttle - byond
+
+
+
+
+
+
+Vars
+ crash_land_chance The % chance of the escape pod crashing into the groundmap
+ early_crash_land_chance The % chance of the escape pod crashing into the groundmap before lifeboats leaving
+ max_capacity How many people can be in the escape pod before it crashes
+ Var Details crash_land_chance
+
+
+
+
+
+ The % chance of the escape pod crashing into the groundmap
early_crash_land_chance
+
+
+
+
+
+ The % chance of the escape pod crashing into the groundmap before lifeboats leaving
max_capacity
+
+
+
+
+
+ How many people can be in the escape pod before it crashes
+
+
+
diff --git a/obj/docking_port/stationary.html b/obj/docking_port/stationary.html
new file mode 100644
index 000000000000..c4f8702678f5
--- /dev/null
+++ b/obj/docking_port/stationary.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ /obj/docking_port/stationary - byond
+
+
+
+
+
+
+Procs
+ on_arrival Called when a new shuttle arrives
+ on_departure Called when a shuttle is about to complete undocking from this stationary dock (already physically gone)
+ on_dock_ignition Called when the docked shuttle ignites
+ on_prearrival Called when a new shuttle is about to arrive
Proc Details on_arrival
+
+ Called when a new shuttle arrives
on_departure
+
+ Called when a shuttle is about to complete undocking from this stationary dock (already physically gone)
on_dock_ignition
+
+ Called when the docked shuttle ignites
on_prearrival
+
+ Called when a new shuttle is about to arrive
+
+
+
diff --git a/obj/effect/alien/egg/carrier_egg.html b/obj/effect/alien/egg/carrier_egg.html
new file mode 100644
index 000000000000..75d7b0fb7f76
--- /dev/null
+++ b/obj/effect/alien/egg/carrier_egg.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/effect/alien/egg/carrier_egg - byond
+
+
+
+
+
+
+Vars
+ last_refreshed Time that the carrier was last within refresh range of the egg (14 tiles)
+ life_timer Timer holder for the maximum lifetime of the egg as defined CARRIER_EGG_MAXIMUM_LIFE
+ owner Owner of the fragile egg, must be a mob/living/carbon/xenomorph/carrier Procs
+ check_decay Check the last refreshed time and burst the egg if we're over the lifetime of the egg
+ set_owner Set the owner of the egg to the planter.
+ start_unstoppable_decay Burst the egg without hugger release after a 10 second timer & remove the life timer.
+ Var Details last_refreshed
+
+
+
+
+
+ Time that the carrier was last within refresh range of the egg (14 tiles)
life_timer
+
+
+
+
+
+ Timer holder for the maximum lifetime of the egg as defined CARRIER_EGG_MAXIMUM_LIFE
+ Owner of the fragile egg, must be a mob/living/carbon/xenomorph/carrier
Proc Details check_decay()
+
+
+
+
+
+ Check the last refreshed time and burst the egg if we're over the lifetime of the egg
+ Set the owner of the egg to the planter.
start_unstoppable_decay()
+
+
+
+
+
+ Burst the egg without hugger release after a 10 second timer & remove the life timer.
+
+
+
diff --git a/obj/effect/alien/resin/acid_pillar.html b/obj/effect/alien/resin/acid_pillar.html
new file mode 100644
index 000000000000..4bed1406abdf
--- /dev/null
+++ b/obj/effect/alien/resin/acid_pillar.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/effect/alien/resin/acid_pillar - byond
+
+
+
+
+
+
+Procs
+ process Is it a friendly xenomorph that is on fire
Proc Details process()
+
+
+
+
+
+ Is it a friendly xenomorph that is on fire
+
+
+
diff --git a/obj/effect/alien/resin/special.html b/obj/effect/alien/resin/special.html
new file mode 100644
index 000000000000..0d3587e3c402
--- /dev/null
+++ b/obj/effect/alien/resin/special.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/alien/resin/special - byond
+
+
+
+
+
+
+Vars
+ hijack_delete Tells the structure if they are being deleted because of hijack
+ Var Details hijack_delete
+
+
+
+
+
+ Tells the structure if they are being deleted because of hijack
+
+
+
diff --git a/obj/effect/alien/resin/special/pylon.html b/obj/effect/alien/resin/special/pylon.html
new file mode 100644
index 000000000000..8eb62faa5d54
--- /dev/null
+++ b/obj/effect/alien/resin/special/pylon.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/alien/resin/special/pylon - byond
+
+
+
+
+
+
+
+ Var Details lesser_drone_spawn_limit
+
+
+
+
+
+ The maximum amount of lesser drone spawns this pylon can hold
lesser_drone_spawns
+
+
+
+
+
+ How many lesser drone spawns this pylon is able to spawn currently
+
+
+
diff --git a/obj/effect/alien/resin/special/pylon/endgame.html b/obj/effect/alien/resin/special/pylon/endgame.html
new file mode 100644
index 000000000000..5bb55f86df62
--- /dev/null
+++ b/obj/effect/alien/resin/special/pylon/endgame.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/effect/alien/resin/special/pylon/endgame - byond
+
+
+
+
+
+
+Procs
+ comms_relay_connection Checks if all comms towers are connected and then starts end game content on all pylons if they are
+ give_larva Looped proc via timer to give larva after time
Proc Details comms_relay_connection()
+
+
+
+
+
+ Checks if all comms towers are connected and then starts end game content on all pylons if they are
give_larva()
+
+
+
+
+
+ Looped proc via timer to give larva after time
+
+
+
diff --git a/obj/effect/attach_point.html b/obj/effect/attach_point.html
new file mode 100644
index 000000000000..fc89047e771c
--- /dev/null
+++ b/obj/effect/attach_point.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/effect/attach_point - byond
+
+
+
+
+
+
+The bases onto which you attach dropship equipments.
Vars
+ attach_id Static numbered identifier for singular attach points
+ base_category What kind of equipment this base accepts
+ installed_equipment The currently installed equipment, if any
+ long Relative position alongside longitudinal axis
+ ship_tag Identifier used to refer to the dropship it belongs to
+ transverse Relative position of the attach_point alongside dropship transverse Procs
+ install_equipment Called when a real user with a powerloader attempts to install an equipment on the attach point
+ Var Details attach_id
+
+
+
+
+
+ Static numbered identifier for singular attach points
base_category
+
+
+
+
+
+ What kind of equipment this base accepts
installed_equipment
+ – /obj /structure/dropship_equipment
+
+
+
+
+ The currently installed equipment, if any
long
+
+
+
+
+
+ Relative position alongside longitudinal axis
ship_tag
+
+
+
+
+
+ Identifier used to refer to the dropship it belongs to
transverse
+
+
+
+
+
+ Relative position of the attach_point alongside dropship transverse
Proc Details install_equipment
+
+ Called when a real user with a powerloader attempts to install an equipment on the attach point
+
+
+
diff --git a/obj/effect/attach_point/weapon.html b/obj/effect/attach_point/weapon.html
new file mode 100644
index 000000000000..a2c0c16a2b3f
--- /dev/null
+++ b/obj/effect/attach_point/weapon.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/effect/attach_point/weapon - byond
+
+
+
+
+
+
+Weapon specific attachment point
Procs
+ get_offsets Get base allowed offsets for the attach point
Proc Details get_offsets()
+
+
+
+
+
+ Get base allowed offsets for the attach point
+
+
+
diff --git a/obj/effect/decal/cleanable.html b/obj/effect/decal/cleanable.html
new file mode 100644
index 000000000000..6266ce43df78
--- /dev/null
+++ b/obj/effect/decal/cleanable.html
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+ /obj/effect/decal/cleanable - byond
+
+
+
+
+
+
+Vars
+ cleanable_turf The turf that the cleanable is on,
+whether overlayed or physically on top of
+ cleaned_up Whether this cleanable has had its overlays and
+refs on turfs cleaned up
+ overlayed_image A reference to the image overlayed on a turf
+ targeted_by Used so cleanbots can't claim a mess.
+ Var Details cleanable_turf
+
+
+
+
+
+ The turf that the cleanable is on,
+whether overlayed or physically on top of
cleaned_up
+
+
+
+
+
+ Whether this cleanable has had its overlays and
+refs on turfs cleaned up
overlayed_image
+
+
+
+
+
+ A reference to the image overlayed on a turf
targeted_by
+ – /obj /structure/machinery/bot/cleanbot
+
+
+
+
+ Used so cleanbots can't claim a mess.
+
+
+
diff --git a/obj/effect/decal/cleanable/blood/tracks.html b/obj/effect/decal/cleanable/blood/tracks.html
new file mode 100644
index 000000000000..ff4a9b492c28
--- /dev/null
+++ b/obj/effect/decal/cleanable/blood/tracks.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/decal/cleanable/blood/tracks - byond
+
+
+
+
+
+
+Vars
+ transverse_amplitude Amount of pixels to shift either way in an attempt to make the tracks more organic
+ Var Details transverse_amplitude
+
+
+
+
+
+ Amount of pixels to shift either way in an attempt to make the tracks more organic
+
+
+
diff --git a/obj/effect/explosion.html b/obj/effect/explosion.html
new file mode 100644
index 000000000000..238acab7780c
--- /dev/null
+++ b/obj/effect/explosion.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/explosion - byond
+
+
+
+
+
+
+
+ Var Details reflected_power
+
+
+
+
+
+ used to amplify explosions in confined areas
reflection_amplification_limit
+
+
+
+
+
+ 1 = 100% increase
+
+
+
diff --git a/obj/effect/landmark/late_join.html b/obj/effect/landmark/late_join.html
new file mode 100644
index 000000000000..dd332a11db99
--- /dev/null
+++ b/obj/effect/landmark/late_join.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/landmark/late_join - byond
+
+
+
+
+
+
+Vars
+ job What job should latejoin on this landmark
+ Var Details job
+
+
+
+
+
+ What job should latejoin on this landmark
+
+
+
diff --git a/obj/effect/landmark/structure_spawner.html b/obj/effect/landmark/structure_spawner.html
new file mode 100644
index 000000000000..c966b28994f5
--- /dev/null
+++ b/obj/effect/landmark/structure_spawner.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/effect/landmark/structure_spawner - byond
+
+
+
+
+
+
+Structure spawner, representing something that can be spawned by gameplay logic during round or at setup
Vars
+ is_turf Truthy if a turf to use turf placement operations
+ mode_flags One of required gamemode flags for this to apply
+ path_to_spawn Typepath to effectively instanciate Procs
+ apply Actually spawn this if applicable
+ get_spawn_location Return effective location to spawn at
+ post_setup Post-Setup hook, mainly to delete unused landmarks. By default delete all non-applicable ones
+ validate Check validity of spawning this
+ Var Details is_turf
+
+
+
+
+
+ Truthy if a turf to use turf placement operations
mode_flags
+
+
+
+
+
+ One of required gamemode flags for this to apply
path_to_spawn
+
+
+
+
+
+ Typepath to effectively instanciate
Proc Details apply(/atom /target_location)
+
+
+
+
+
+ Actually spawn this if applicable
get_spawn_location()
+
+
+
+
+
+ Return effective location to spawn at
post_setup()
+
+
+
+
+
+ Post-Setup hook, mainly to delete unused landmarks. By default delete all non-applicable ones
validate()
+
+
+
+
+
+ Check validity of spawning this
+
+
+
diff --git a/obj/effect/landmark/survivor_spawner.html b/obj/effect/landmark/survivor_spawner.html
new file mode 100644
index 000000000000..39925d4bf15b
--- /dev/null
+++ b/obj/effect/landmark/survivor_spawner.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/landmark/survivor_spawner - byond
+
+
+
+
+
+
+Vars
+ hostile Whether or not the spawner is for an inherently hostile survivor subtype.
+ Var Details hostile
+
+
+
+
+
+ Whether or not the spawner is for an inherently hostile survivor subtype.
+
+
+
diff --git a/obj/effect/landmark/tutorial/reqs_line_cleaner.html b/obj/effect/landmark/tutorial/reqs_line_cleaner.html
new file mode 100644
index 000000000000..753cde4d8ab5
--- /dev/null
+++ b/obj/effect/landmark/tutorial/reqs_line_cleaner.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/effect/landmark/tutorial/reqs_line_cleaner - byond
+
+
+
+
+
+
+Procs
+ Crossed Deletes dummies coming onto it, purely and simply
Proc Details Crossed
+
+ Deletes dummies coming onto it, purely and simply
+
+
+
diff --git a/obj/effect/landmark/yautja_teleport.html b/obj/effect/landmark/yautja_teleport.html
new file mode 100644
index 000000000000..0bc66258b1b7
--- /dev/null
+++ b/obj/effect/landmark/yautja_teleport.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/landmark/yautja_teleport - byond
+
+
+
+
+
+
+Vars
+ desc_index The index we registered as in mainship_yautja_desc or yautja_teleport_descs
+ Var Details desc_index
+
+
+
+
+
+ The index we registered as in mainship_yautja_desc or yautja_teleport_descs
+
+
+
diff --git a/obj/effect/lighting_mask_holder.html b/obj/effect/lighting_mask_holder.html
new file mode 100644
index 000000000000..fce35aedca8d
--- /dev/null
+++ b/obj/effect/lighting_mask_holder.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/lighting_mask_holder - byond
+
+
+
+
+
+
+Holder for lighting mask, this is done for ensuing correct render as a viscontents
Vars
+ held_mask The movable mask this holder is holding in its vis contents
+ Var Details
+ The movable mask this holder is holding in its vis contents
+
+
+
diff --git a/obj/effect/particle_effect/smoke/miasma.html b/obj/effect/particle_effect/smoke/miasma.html
new file mode 100644
index 000000000000..95bbd9103c8b
--- /dev/null
+++ b/obj/effect/particle_effect/smoke/miasma.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/effect/particle_effect/smoke/miasma - byond
+
+
+
+
+
+
+
+ Var Details active_time
+
+
+
+
+
+ Time required for damage to actually apply
burn_damage
+
+
+
+
+
+ How much damage to deal per affect()
xeno_yautja_multiplier
+
+
+
+
+
+ Multiplier to burn_damage for xenos and yautja
+
+
+
diff --git a/obj/effect/particle_effect/smoke/xeno_weak.html b/obj/effect/particle_effect/smoke/xeno_weak.html
new file mode 100644
index 000000000000..ad0fdc6f7c56
--- /dev/null
+++ b/obj/effect/particle_effect/smoke/xeno_weak.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/particle_effect/smoke/xeno_weak - byond
+
+
+
+
+
+
+
+ Var Details neuro_dose
+
+
+
+
+
+ How much neuro is dosed per tick
+
+
+
diff --git a/obj/effect/spawner/prop_gun.html b/obj/effect/spawner/prop_gun.html
new file mode 100644
index 000000000000..2ee63c7a0aa4
--- /dev/null
+++ b/obj/effect/spawner/prop_gun.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/effect/spawner/prop_gun - byond
+
+
+
+
+
+
+
+ Var Details custom_gun_desc
+
+
+
+
+
+ if the prob will have a custom desc
custom_gun_name
+
+
+
+
+
+ if the prop will have a custom name
+ The typepath of the gun the prop will copy
spawn_prob
+
+
+
+
+
+ The probability of the prop gun spawning
Proc Details prepare_gun_skin()
+
+
+
+
+
+ Spawns the items and modifies source to set skin on prop
+
+
+
diff --git a/obj/effect/step_trigger/ares_alert.html b/obj/effect/step_trigger/ares_alert.html
new file mode 100644
index 000000000000..b8597c5ba396
--- /dev/null
+++ b/obj/effect/step_trigger/ares_alert.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/effect/step_trigger/ares_alert - byond
+
+
+
+
+
+
+
+ Var Details alert_id
+
+
+
+
+
+ Connect alerts to use same cooldowns
alert_message
+
+
+
+
+
+ Alert message to report unless area based.
area_based
+
+
+
+
+
+ Set to true if it should report area name and not specific alert.
cooldown_duration
+
+
+
+
+
+ Cooldown duration and next time.
+ Link alerts to ARES Link
pass_accesses
+
+
+
+
+
+ The accesses on an ID card to enter
pass_jobs
+
+
+
+
+
+ The job on a mob to enter
+
+
+
diff --git a/obj/effect/step_trigger/ares_alert/access_control.html b/obj/effect/step_trigger/ares_alert/access_control.html
new file mode 100644
index 000000000000..30d1b99f08a5
--- /dev/null
+++ b/obj/effect/step_trigger/ares_alert/access_control.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /obj/effect/step_trigger/ares_alert/access_control - byond
+
+
+
+
+
+
+Trigger will remove ACCESS_MARINE_AI_TEMP unless ACCESS_MARINE_AI is also present.
Procs
+ get_broadcast Removes the access from the ID and updates the ID's modification log.
+Updates the related access ticket.
Proc Details get_broadcast
+
+ Removes the access from the ID and updates the ID's modification log.
+Updates the related access ticket.
+
+
+
diff --git a/obj/effect/temp_visual.html b/obj/effect/temp_visual.html
new file mode 100644
index 000000000000..86ee54ea56e2
--- /dev/null
+++ b/obj/effect/temp_visual.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/effect/temp_visual - byond
+
+
+
+
+
+
+Vars
+ randomdir if true, will pick a random direction when created.
+ timerid id of the deletion timer
+ Var Details randomdir
+
+
+
+
+
+ if true, will pick a random direction when created.
timerid
+
+
+
+
+
+ id of the deletion timer
+
+
+
diff --git a/obj/effect/xenomorph/acid.html b/obj/effect/xenomorph/acid.html
new file mode 100644
index 000000000000..2d70277b8521
--- /dev/null
+++ b/obj/effect/xenomorph/acid.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/effect/xenomorph/acid - byond
+
+
+
+
+
+
+Vars
+ acid_delay Factor of duration between acid progression
+ acid_t Target the acid is melting
+ flare_damage How much fuel the acid drains from the flare every acid tick
+ remaining Duration left to next acid stage
+ ticks_left Acid stages left to complete melting
+ Var Details acid_delay
+
+
+
+
+
+ Factor of duration between acid progression
acid_t
+
+
+
+
+
+ Target the acid is melting
flare_damage
+
+
+
+
+
+ How much fuel the acid drains from the flare every acid tick
remaining
+
+
+
+
+
+ Duration left to next acid stage
ticks_left
+
+
+
+
+
+ Acid stages left to complete melting
+
+
+
diff --git a/obj/effect/xenomorph/xeno_telegraph.html b/obj/effect/xenomorph/xeno_telegraph.html
new file mode 100644
index 000000000000..ee8e837ecc8e
--- /dev/null
+++ b/obj/effect/xenomorph/xeno_telegraph.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/effect/xenomorph/xeno_telegraph - byond
+
+
+
+
+
+
+Procs
+ New Icon is by default a white sprite, provide an rgb hex code #RRGGBB argument to change.
Proc Details New(loc, ttl, color)
+
+
+
+
+
+ Icon is by default a white sprite, provide an rgb hex code #RRGGBB argument to change.
+
+
+
diff --git a/obj/flamer_fire.html b/obj/flamer_fire.html
new file mode 100644
index 000000000000..ab47b8749666
--- /dev/null
+++ b/obj/flamer_fire.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/flamer_fire - byond
+
+
+
+
+
+
+Vars
+ initial_burst After the fire is created, for 0.5 seconds this variable will be TRUE.
+ Var Details initial_burst
+
+
+
+
+
+ After the fire is created, for 0.5 seconds this variable will be TRUE.
+
+
+
diff --git a/obj/item.html b/obj/item.html
new file mode 100644
index 000000000000..338646c28a54
--- /dev/null
+++ b/obj/item.html
@@ -0,0 +1,458 @@
+
+
+
+
+
+
+ /obj/item - byond
+
+
+
+
+
+
+Vars
+ actions list of /datum/action's that this item has.
+ actions_types list of paths of action datums to give to the item on New().
+ allowed suit storage stuff.
+ appearance_flags taken from blood.dm
+ attack_verb Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]"
+ blood_color color of the blood on us if there's any.
+ blood_overlay this saves our blood splatter overlay, which will be processed not to go over the edges of the sprite
+ contained_sprite When set to true, every single sprite can be found in the one icon .dmi, rather than being spread into onmobs, inhands, and objects
+ demolition_mod A multiplier to an object's force when used against a stucture.
+ drop_sound Sound to be played when item is dropped
+ drop_vary Whether the drop sound will vary in pitch/frequency
+ dropvol Volume of drop sound
+ edge whether this item is more likely to dismember
+ equip_sounds Sounds played when this item is equipped
+ fire_intensity_resistance Used for stepping onto flame and seeing how much dmg you take and if you're ignited.
+ flags_armor_protection see setup.dm for appropriate bit flags
+ flags_cold_protection flags which determine which body parts are protected from cold. Use the HEAD, UPPER_TORSO, LOWER_TORSO, etc. flags. See setup.dm
+ flags_equip_slot This is used to determine on which slots an item can fit.
+ flags_heat_protection flags which determine which body parts are protected from heat. Use the HEAD, UPPER_TORSO, LOWER_TORSO, etc. flags. See setup.dm
+ flags_inv_hide This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc.
+ flags_inventory This flag is used for various clothing/equipment item stuff
+ flags_item flags for item stuff that isn't clothing/equipping specific.
+ gas_transfer_coefficient for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets)
+ ground_offset_x How much to offset the item randomly either way alongside X visually
+ ground_offset_y How much to offset the item randomly either way alongside Y visually
+ has_special_table_placement checks if the item will be specially placed on the table
+ heat_source whether this item is a source of heat, and how hot it is (in Kelvin).
+ hitsound Play this when you thwack someone with the item
+ hud_offset Adjusts the item's position in the HUD, currently only by guns with stock/barrel attachments.
+ icon_override Used to override hardcoded ON-MOB clothing dmis in human clothing proc (i.e. not the icon_state sprites).
+ inhand_x_dimension Allows for bigger than 32x32 sprites, these govern inhand sprites. (Like a longer sword that's normal-sized on your back)
+ is_objective lets us know if the item is an objective or not
+ item_state_slots overrides the default
+ locked_to_mob If the item uses flag MOB_LOCK_ON_PICKUP, this is the mob owner reference.
+ max_heat_protection_temperature Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by flags_heat_protection flags
+ min_cold_protection_temperature Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by flags_cold_protection flags
+ permeability_coefficient for chemicals/diseases
+ pickup_sound Sound to be played when item is picked up
+ pickup_vary Whether the pickup sound will vary in pitch/frequency
+ pickupvol Volume of pickup sound
+ preferred_storage Special storages this item prioritizes
+ pry_capable whether this item can be used to pry things open.
+ sharp whether this item cuts
+ siemens_coefficient for electrical admittance/conductance (electrocution checks and shit)
+ slowdown How much clothing is slowing you down. Negative values speeds you up
+ table_setup checks if the item is set up in the table or not
+ time_to_equip set to ticks it takes to equip a worn suit.
+ time_to_unequip set to ticks it takes to unequip a worn suit.
+ unequip_sounds Sounds played when this item is unequipped
+ uniform_restricted Need to wear this uniform to equip this
+ vision_impair Vision impairing effect if worn on head/mask/glasses.
+ worn_x_dimension Allows for bigger than 32x32 sprites.
+ zoom 1 if item is actively being used to zoom. For scoped guns and binoculars.
+ zoom_initial_mob_dir the initial dir the mob faces when it zooms in
+ zoomdevicename name used for message when binoculars/scope is used Procs
+ MouseDrop Grab item when its placed on table
+ dig_out_shrapnel_check For digging shrapnel out of OTHER people, not yourself. Triggered by human/attackby() so target is definitely human. User might not be.
+ hands_swapped Called by /mob/living/carbon/swap_hand() when hands are swapped
+ is_valid_slot Checks if an item can be put in a slot (string) based on their slot flags (bit flags)
+ set_to_table Set the item up on a table.
+@param target: table which is being used to host the item.
+ teardown Called to reset the state of the item to not be settled on the table.
+ Var Details actions
+
+
+
+
+
+ list of /datum/action's that this item has.
actions_types
+
+
+
+
+
+ list of paths of action datums to give to the item on New().
allowed
+
+
+
+
+
+ suit storage stuff.
appearance_flags
+
+
+
+
+
+ taken from blood.dm
attack_verb
+
+
+
+
+
+ Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]"
blood_color
+
+
+
+
+
+ color of the blood on us if there's any.
blood_overlay
+
+
+
+
+
+ this saves our blood splatter overlay, which will be processed not to go over the edges of the sprite
contained_sprite
+
+
+
+
+
+ When set to true, every single sprite can be found in the one icon .dmi, rather than being spread into onmobs, inhands, and objects
demolition_mod
+
+
+
+
+
+ A multiplier to an object's force when used against a stucture.
drop_sound
+
+
+
+
+
+ Sound to be played when item is dropped
drop_vary
+
+
+
+
+
+ Whether the drop sound will vary in pitch/frequency
dropvol
+
+
+
+
+
+ Volume of drop sound
edge
+
+
+
+
+
+ whether this item is more likely to dismember
equip_sounds
+
+
+
+
+
+ Sounds played when this item is equipped
fire_intensity_resistance
+
+
+
+
+
+ Used for stepping onto flame and seeing how much dmg you take and if you're ignited.
flags_armor_protection
+
+
+
+
+
+ see setup.dm for appropriate bit flags
flags_cold_protection
+
+
+
+
+
+ flags which determine which body parts are protected from cold. Use the HEAD, UPPER_TORSO, LOWER_TORSO, etc. flags. See setup.dm
flags_equip_slot
+
+
+
+
+
+ This is used to determine on which slots an item can fit.
flags_heat_protection
+
+
+
+
+
+ flags which determine which body parts are protected from heat. Use the HEAD, UPPER_TORSO, LOWER_TORSO, etc. flags. See setup.dm
flags_inv_hide
+
+
+
+
+
+ This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc.
flags_inventory
+
+
+
+
+
+ This flag is used for various clothing/equipment item stuff
flags_item
+
+
+
+
+
+ flags for item stuff that isn't clothing/equipping specific.
gas_transfer_coefficient
+
+
+
+
+
+ for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets)
ground_offset_x
+
+
+
+
+
+ How much to offset the item randomly either way alongside X visually
ground_offset_y
+
+
+
+
+
+ How much to offset the item randomly either way alongside Y visually
has_special_table_placement
+
+
+
+
+
+ checks if the item will be specially placed on the table
heat_source
+
+
+
+
+
+ whether this item is a source of heat, and how hot it is (in Kelvin).
hitsound
+
+
+
+
+
+ Play this when you thwack someone with the item
hud_offset
+
+
+
+
+
+ Adjusts the item's position in the HUD, currently only by guns with stock/barrel attachments.
icon_override
+
+
+
+
+
+ Used to override hardcoded ON-MOB clothing dmis in human clothing proc (i.e. not the icon_state sprites).
inhand_x_dimension
+
+
+
+
+
+ Allows for bigger than 32x32 sprites, these govern inhand sprites. (Like a longer sword that's normal-sized on your back)
is_objective
+
+
+
+
+
+ lets us know if the item is an objective or not
item_state_slots
+
+
+
+
+
+ overrides the default
+ If the item uses flag MOB_LOCK_ON_PICKUP, this is the mob owner reference.
max_heat_protection_temperature
+
+
+
+
+
+ Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by flags_heat_protection flags
min_cold_protection_temperature
+
+
+
+
+
+ Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by flags_cold_protection flags
permeability_coefficient
+
+
+
+
+
+ for chemicals/diseases
pickup_sound
+
+
+
+
+
+ Sound to be played when item is picked up
pickup_vary
+
+
+
+
+
+ Whether the pickup sound will vary in pitch/frequency
pickupvol
+
+
+
+
+
+ Volume of pickup sound
preferred_storage
+
+
+
+
+
+ Special storages this item prioritizes
pry_capable
+
+
+
+
+
+ whether this item can be used to pry things open.
sharp
+
+
+
+
+
+ whether this item cuts
siemens_coefficient
+
+
+
+
+
+ for electrical admittance/conductance (electrocution checks and shit)
slowdown
+
+
+
+
+
+ How much clothing is slowing you down. Negative values speeds you up
table_setup
+
+
+
+
+
+ checks if the item is set up in the table or not
time_to_equip
+
+
+
+
+
+ set to ticks it takes to equip a worn suit.
time_to_unequip
+
+
+
+
+
+ set to ticks it takes to unequip a worn suit.
unequip_sounds
+
+
+
+
+
+ Sounds played when this item is unequipped
+ Need to wear this uniform to equip this
vision_impair
+
+
+
+
+
+ Vision impairing effect if worn on head/mask/glasses.
worn_x_dimension
+
+
+
+
+
+ Allows for bigger than 32x32 sprites.
zoom
+
+
+
+
+
+ 1 if item is actively being used to zoom. For scoped guns and binoculars.
zoom_initial_mob_dir
+
+
+
+
+
+ the initial dir the mob faces when it zooms in
zoomdevicename
+
+
+
+
+
+ name used for message when binoculars/scope is used
Proc Details MouseDrop(over_object)
+
+
+
+
+
+ Grab item when its placed on table
+ For digging shrapnel out of OTHER people, not yourself. Triggered by human/attackby() so target is definitely human. User might not be.
hands_swapped
+
+ Called by /mob/living/carbon/swap_hand() when hands are swapped
is_valid_slot(slot, ignore_non_flags)
+
+
+
+
+
+ Checks if an item can be put in a slot (string) based on their slot flags (bit flags)
set_to_table(/obj /structure/surface/target)
+
+
+
+
+
+ Set the item up on a table.
+@param target: table which is being used to host the item.
teardown()
+
+
+
+
+
+ Called to reset the state of the item to not be settled on the table.
+
+
+
diff --git a/obj/item/alien_embryo.html b/obj/item/alien_embryo.html
new file mode 100644
index 000000000000..9c391a877c0b
--- /dev/null
+++ b/obj/item/alien_embryo.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ /obj/item/alien_embryo - byond
+
+
+
+
+
+
+Vars
+ hugger_ckey The ckey of any player hugger that made this embryo
+ per_stage_hugged_time The total time the person is hugged divided by stages until burst Procs
+ become_larva We look for a candidate. If found, we spawn the candidate as a larva
+Order of priority is bursted individual (if xeno is enabled), then player hugger, then random candidate, and then it's up for grabs and spawns braindead
+ Var Details hugger_ckey
+
+
+
+
+
+ The ckey of any player hugger that made this embryo
per_stage_hugged_time
+
+
+
+
+
+ The total time the person is hugged divided by stages until burst
Proc Details become_larva()
+
+
+
+
+
+ We look for a candidate. If found, we spawn the candidate as a larva
+Order of priority is bursted individual (if xeno is enabled), then player hugger, then random candidate, and then it's up for grabs and spawns braindead
+
+
+
diff --git a/obj/item/ammo_magazine.html b/obj/item/ammo_magazine.html
new file mode 100644
index 000000000000..6b876a2586fe
--- /dev/null
+++ b/obj/item/ammo_magazine.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/ammo_magazine - byond
+
+
+
+
+
+
+Vars
+ ammo_band_color If this and ammo_band_icon aren't null, run update_ammo_band(). Is the color of the band, such as green on AP.
+ ammo_band_icon If this and ammo_band_color aren't null, run update_ammo_band() Is the greyscale icon used for the ammo band.
+ ammo_band_icon_empty Is the greyscale icon used for the ammo band when it's empty of bullets. Procs
+ inherent_reload Proc to reload the current_ammo using the items existing inherent ammo, used for Sentry Post
+ Var Details ammo_band_color
+
+
+
+
+
+ If this and ammo_band_icon aren't null, run update_ammo_band(). Is the color of the band, such as green on AP.
ammo_band_icon
+
+
+
+
+
+ If this and ammo_band_color aren't null, run update_ammo_band() Is the greyscale icon used for the ammo band.
ammo_band_icon_empty
+
+
+
+
+
+ Is the greyscale icon used for the ammo band when it's empty of bullets.
Proc Details inherent_reload
+
+ Proc to reload the current_ammo using the items existing inherent ammo, used for Sentry Post
+
+
+
diff --git a/obj/item/attachable.html b/obj/item/attachable.html
new file mode 100644
index 000000000000..a10f5270a0af
--- /dev/null
+++ b/obj/item/attachable.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ /obj/item/attachable - byond
+
+
+
+
+
+
+Vars
+ gun_traits List of traits to be given to the gun itself.
+ traits_to_give An assoc list in the format list(/datum/element/bullet_trait_to_give = list(...args))
+that will be given to a projectile with the current ammo datum Procs
+ unload_attachment Returns TRUE if its functionality is successfully used, FALSE if gun's own unloading should proceed instead.
+ Var Details gun_traits
+
+
+
+
+
+ List of traits to be given to the gun itself.
traits_to_give
+
+
+
+
+
+ An assoc list in the format list(/datum/element/bullet_trait_to_give = list(...args))
+that will be given to a projectile with the current ammo datum
Proc Details unload_attachment(/mob /user, reload_override, drop_override, loc_override)
+
+
+
+
+
+ Returns TRUE if its functionality is successfully used, FALSE if gun's own unloading should proceed instead.
+
+
+
diff --git a/obj/item/attachable/attached_gun.html b/obj/item/attachable/attached_gun.html
new file mode 100644
index 000000000000..496182a27d79
--- /dev/null
+++ b/obj/item/attachable/attached_gun.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ /obj/item/attachable/attached_gun - byond
+
+
+
+
+
+
+Vars
+ ammo Ammo to fire the attachment with
+ target Current target we're firing at
+ traits_to_give_attached An assoc list in the format list(/datum/element/bullet_trait_to_give = list(...args))
+that will be given to the projectiles of the attached gun Procs
+ clean_target Set the target to its turf, so we keep shooting even when it was qdeled
+ set_target setter for target
+ Var Details ammo
+
+
+
+
+
+ Ammo to fire the attachment with
target
+
+
+
+
+
+ Current target we're firing at
traits_to_give_attached
+
+
+
+
+
+ An assoc list in the format list(/datum/element/bullet_trait_to_give = list(...args))
+that will be given to the projectiles of the attached gun
Proc Details clean_target()
+
+
+
+
+
+ Set the target to its turf, so we keep shooting even when it was qdeled
set_target
+
+ setter for target
+
+
+
diff --git a/obj/item/attachable/bipod.html b/obj/item/attachable/bipod.html
new file mode 100644
index 000000000000..b98e32648572
--- /dev/null
+++ b/obj/item/attachable/bipod.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/attachable/bipod - byond
+
+
+
+
+
+
+Vars
+ heavy_bipod If this should anchor the user while in use
+ Var Details heavy_bipod
+
+
+
+
+
+ If this should anchor the user while in use
+
+
+
diff --git a/obj/item/attachable/scope.html b/obj/item/attachable/scope.html
new file mode 100644
index 000000000000..e491b27fac7d
--- /dev/null
+++ b/obj/item/attachable/scope.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/attachable/scope - byond
+
+
+
+
+
+
+Procs
+ handle_attachment_recalc Due to the bipod's interesting way of handling stat modifications, this is necessary to prevent exploits.
Proc Details handle_attachment_recalc
+
+ Due to the bipod's interesting way of handling stat modifications, this is necessary to prevent exploits.
+
+
+
diff --git a/obj/item/attachable/vulture_scope.html b/obj/item/attachable/vulture_scope.html
new file mode 100644
index 000000000000..da69665ebf6f
--- /dev/null
+++ b/obj/item/attachable/vulture_scope.html
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+ /obj/item/attachable/vulture_scope - byond
+
+
+
+
+
+
+Vars
+ adjust_delay How much time it takes to adjust the position of the scope. Adjusting the offset will take half of this time
+ breath_cooldown_time How long the cooldown for holding your breath is, only starts after breath_time finishes
+ breath_time How long you can hold your breath for
+ darkness_view How much to increase darkness view by
+ hold_breath_cd Cooldown for after holding your breath
+ holding_breath If the user is currently holding their breath
+ max_scope_range The maximum distance the scope can be from the player
+ min_scope_range The bare minimum distance the scope can be from the player
+ perpendicular_scope_range How far in the perpendicular axis the scope can move in either direction
+ scope_drift If the gun should experience scope drift
+ scope_drift_max How far in any given direction the scope can drift
+ scope_element Ref to the scope screen element
+ scope_interact_cd Cooldown for interacting with the scope's adjustment or position
+ scope_offset_x The current X position of the scope within the sniper's view box. 0 is center
+ scope_offset_y The current Y position of the scope within the sniper's view box. 0 is center
+ scope_user Weakref to the user of the scope
+ scope_user_initial_dir The initial dir of the scope user when scoping in
+ scope_viewsize How far in each direction the scope should see. Default human view size is 7
+ scope_x The current X coord position of the scope camera
+ scope_y The current Y coord position of the scope camera
+ scoping If the scope is currently in use
+ slow_use If the scope should use do_afters for adjusting and moving the sight
+ spotted_drift_chance % chance for the scope to drift on process with a spotter using their scope
+ spotter_spotting If there is currently a spotter using the linked spotting scope
+ start_scope_range How far out the player should see by default
+ unspotted_drift_chance % chance for the scope to drift on process without a spotter using their scope Procs
+ adjust_offset Adjusts the position of the reticle by a tile in a given direction
+ adjust_position Adjusts the position of the scope by a tile in a given direction
+ axis_math Figures out which direction the scope should move based on user direction and their input
+ get_adjust_dirs Gets a list of valid directions to be able to adjust the reticle in
+ get_breath_recharge Returns a % of how much time until the user can still their breath again
+ get_scope_drift_chance Returns a number between 0 and 100 for the chance of the scope drifting on process()
+ get_time_to_fire Returns how many deciseconds until the gun is able to fire again
+ get_viewed_turf Returns the turf that the sniper scope + reticle is currently focused on
+ hold_breath Lets the user start holding their breath, stopping gun sway for a short time
+ on_mob_move_look Handler for if the mob moves or changes look direction
+ on_scope Handler for when the user begins scoping
+ on_unscope Handler for when the scope is deleted, dropped, etc.
+ recalculate_scope_offset Recalculates where the reticle should be inside the scope
+ recalculate_scope_pos Recalculates where the scope should be in relation to the user
+ scope_drift Causes the scope to drift in a random direction by 1 tile
+ stop_holding_breath Stops the user from holding their breath, starting the cooldown
+ tick_down_breath_scope Slowly empties out the crosshair as the user's breath runs out
+ Var Details adjust_delay
+
+
+
+
+
+ How much time it takes to adjust the position of the scope. Adjusting the offset will take half of this time
breath_cooldown_time
+
+
+
+
+
+ How long the cooldown for holding your breath is, only starts after breath_time finishes
breath_time
+
+
+
+
+
+ How long you can hold your breath for
darkness_view
+
+
+
+
+
+ How much to increase darkness view by
hold_breath_cd
+
+
+
+
+
+ Cooldown for after holding your breath
holding_breath
+
+
+
+
+
+ If the user is currently holding their breath
max_scope_range
+
+
+
+
+
+ The maximum distance the scope can be from the player
min_scope_range
+
+
+
+
+
+ The bare minimum distance the scope can be from the player
perpendicular_scope_range
+
+
+
+
+
+ How far in the perpendicular axis the scope can move in either direction
scope_drift
+
+
+
+
+
+ If the gun should experience scope drift
scope_drift_max
+
+
+
+
+
+ How far in any given direction the scope can drift
scope_element
+
+
+
+
+
+ Ref to the scope screen element
scope_interact_cd
+
+
+
+
+
+ Cooldown for interacting with the scope's adjustment or position
scope_offset_x
+
+
+
+
+
+ The current X position of the scope within the sniper's view box. 0 is center
scope_offset_y
+
+
+
+
+
+ The current Y position of the scope within the sniper's view box. 0 is center
scope_user
+
+
+
+
+
+ Weakref to the user of the scope
scope_user_initial_dir
+
+
+
+
+
+ The initial dir of the scope user when scoping in
scope_viewsize
+
+
+
+
+
+ How far in each direction the scope should see. Default human view size is 7
scope_x
+
+
+
+
+
+ The current X coord position of the scope camera
scope_y
+
+
+
+
+
+ The current Y coord position of the scope camera
scoping
+
+
+
+
+
+ If the scope is currently in use
slow_use
+
+
+
+
+
+ If the scope should use do_afters for adjusting and moving the sight
spotted_drift_chance
+
+
+
+
+
+ % chance for the scope to drift on process with a spotter using their scope
spotter_spotting
+
+
+
+
+
+ If there is currently a spotter using the linked spotting scope
start_scope_range
+
+
+
+
+
+ How far out the player should see by default
unspotted_drift_chance
+
+
+
+
+
+ % chance for the scope to drift on process without a spotter using their scope
Proc Details adjust_offset(direction)
+
+
+
+
+
+ Adjusts the position of the reticle by a tile in a given direction
adjust_position(direction)
+
+
+
+
+
+ Adjusts the position of the scope by a tile in a given direction
axis_math(/mob /user, perpendicular_axis, modifying_axis, direction)
+
+
+
+
+
+ Figures out which direction the scope should move based on user direction and their input
get_adjust_dirs()
+
+
+
+
+
+ Gets a list of valid directions to be able to adjust the reticle in
get_breath_recharge()
+
+
+
+
+
+ Returns a % of how much time until the user can still their breath again
get_scope_drift_chance()
+
+
+
+
+
+ Returns a number between 0 and 100 for the chance of the scope drifting on process()
get_time_to_fire()
+
+
+
+
+
+ Returns how many deciseconds until the gun is able to fire again
get_viewed_turf()
+
+
+
+
+
+ Returns the turf that the sniper scope + reticle is currently focused on
hold_breath()
+
+
+
+
+
+ Lets the user start holding their breath, stopping gun sway for a short time
on_mob_move_look(/mob /living /mover, actually_moving, direction, specific_direction)
+
+
+
+
+
+ Handler for if the mob moves or changes look direction
on_scope()
+
+
+
+
+
+ Handler for when the user begins scoping
on_unscope()
+
+
+
+
+
+ Handler for when the scope is deleted, dropped, etc.
recalculate_scope_offset(old_x, old_y)
+
+
+
+
+
+ Recalculates where the reticle should be inside the scope
recalculate_scope_pos()
+
+
+
+
+
+ Recalculates where the scope should be in relation to the user
scope_drift(forced_dir)
+
+
+
+
+
+ Causes the scope to drift in a random direction by 1 tile
stop_holding_breath()
+
+
+
+
+
+ Stops the user from holding their breath, starting the cooldown
tick_down_breath_scope()
+
+
+
+
+
+ Slowly empties out the crosshair as the user's breath runs out
+
+
+
diff --git a/obj/item/book.html b/obj/item/book.html
new file mode 100644
index 000000000000..ac27fc9fac22
--- /dev/null
+++ b/obj/item/book.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ /obj/item/book - byond
+
+
+
+
+
+
+Check if it has the possibility of being a FANCY present
+Checks if it might be one of the ULTRA fancy presents.
+Default, just in case
Vars
+ author Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
+ carved Has the book been hollowed out for use as a secret storage item?
+ dat Actual page content
+ due_date Game time in 1/10th seconds
+ store What's in the book?
+ title The real name of the book.
+ unique 0 - Normal book, 1 - Should not be treated as normal book, unable to be copied, unable to be modified
+ w_class upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever)
+ Var Details author
+
+
+
+
+
+ Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
carved
+
+
+
+
+
+ Has the book been hollowed out for use as a secret storage item?
dat
+
+
+
+
+
+ Actual page content
due_date
+
+
+
+
+
+ Game time in 1/10th seconds
store
+
+
+
+
+
+ What's in the book?
title
+
+
+
+
+
+ The real name of the book.
unique
+
+
+
+
+
+ 0 - Normal book, 1 - Should not be treated as normal book, unable to be copied, unable to be modified
w_class
+
+
+
+
+
+ upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever)
+
+
+
diff --git a/obj/item/book/manual.html b/obj/item/book/manual.html
new file mode 100644
index 000000000000..30d79c857b68
--- /dev/null
+++ b/obj/item/book/manual.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/book/manual - byond
+
+
+
+
+
+
+Vars
+ due_date Game time in 1/10th seconds
+ unique 0 - Normal book, 1 - Should not be treated as normal book, unable to be copied, unable to be modified
+ Var Details due_date
+
+
+
+
+
+ Game time in 1/10th seconds
unique
+
+
+
+
+
+ 0 - Normal book, 1 - Should not be treated as normal book, unable to be copied, unable to be modified
+
+
+
diff --git a/obj/item/card/id.html b/obj/item/card/id.html
new file mode 100644
index 000000000000..e2feb71e2247
--- /dev/null
+++ b/obj/item/card/id.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/item/card/id - byond
+
+
+
+
+identification holo-badge
+
+
+
+
+
+
+ Var Details assignment
+
+
+
+
+
+ can be alt title or the actual job
claimedgear
+
+
+
+
+
+ For medics and engineers to 'claim' a locker
paygrade
+
+
+
+
+
+ Marine's paygrade
+ whether the id's onmob overlay only appear when wearing a uniform
rank
+
+
+
+
+
+ actual job
registered_name
+
+
+
+
+
+ The name registered_name on the card
Proc Details handle_ares_access(logged_in, /mob /user)
+
+
+
+
+
+ set ticket back to pending
+
+
+
diff --git a/obj/item/circuitboard/airlock.html b/obj/item/circuitboard/airlock.html
new file mode 100644
index 000000000000..f3092d3590e9
--- /dev/null
+++ b/obj/item/circuitboard/airlock.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/circuitboard/airlock - byond
+
+
+
+
+
+
+Vars
+ one_access if set to 1, door would receive req_one_access instead of req_access
+ Var Details one_access
+
+
+
+
+
+ if set to 1, door would receive req_one_access instead of req_access
+
+
+
diff --git a/obj/item/clothing.html b/obj/item/clothing.html
new file mode 100644
index 000000000000..6b834ae16446
--- /dev/null
+++ b/obj/item/clothing.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /obj/item/clothing - byond
+
+
+
+
+
+
+Proc Details
+ Attach accessory A to src
+user is the user doing the attaching. Can be null, such as when attaching
+items on spawn
+
+
+
diff --git a/obj/item/clothing/accessory.html b/obj/item/clothing/accessory.html
new file mode 100644
index 000000000000..8224d7b69752
--- /dev/null
+++ b/obj/item/clothing/accessory.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/accessory - byond
+
+
+
+
+
+
+Vars
+ jumpsuit_hide_states Jumpsuit flags that cause the accessory to be hidden. format: "x" OR "(x|y|z)" (w/o quote marks). Procs
+ additional_examine_text Extra text to append when attached to another clothing item and the host clothing is examined.
+ Var Details jumpsuit_hide_states
+
+
+
+
+
+ Jumpsuit flags that cause the accessory to be hidden. format: "x" OR "(x|y|z)" (w/o quote marks).
Proc Details additional_examine_text()
+
+
+
+
+
+ Extra text to append when attached to another clothing item and the host clothing is examined.
+
+
+
diff --git a/obj/item/clothing/accessory/health.html b/obj/item/clothing/accessory/health.html
new file mode 100644
index 000000000000..57da2278251f
--- /dev/null
+++ b/obj/item/clothing/accessory/health.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/accessory/health - byond
+
+
+
+
+
+
+Vars
+ is_armor is it armor or something different & irrelevant and always passes damage & doesnt take damage to itself?
+ Var Details is_armor
+
+
+
+
+
+ is it armor or something different & irrelevant and always passes damage & doesnt take damage to itself?
+
+
+
diff --git a/obj/item/clothing/accessory/health/research_plate.html b/obj/item/clothing/accessory/health/research_plate.html
new file mode 100644
index 000000000000..e20ae0ace786
--- /dev/null
+++ b/obj/item/clothing/accessory/health/research_plate.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/accessory/health/research_plate - byond
+
+
+
+
+
+
+Vars
+ recyclable_value can the plate be recycled after X condition? 0 means it cannot be recycled, otherwise put in the biomass points to refund.
+ Var Details recyclable_value
+
+
+
+
+
+ can the plate be recycled after X condition? 0 means it cannot be recycled, otherwise put in the biomass points to refund.
+
+
+
diff --git a/obj/item/clothing/accessory/health/research_plate/emergency_injector.html b/obj/item/clothing/accessory/health/research_plate/emergency_injector.html
new file mode 100644
index 000000000000..c2908526ec6e
--- /dev/null
+++ b/obj/item/clothing/accessory/health/research_plate/emergency_injector.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/accessory/health/research_plate/emergency_injector - byond
+
+
+
+
+
+
+Vars
+ warning_type 1 means the player overdosed with OD_OFF mode. 2 means the plate adjusted the chemicals injected.
+ Var Details warning_type
+
+
+
+
+
+ 1 means the player overdosed with OD_OFF mode. 2 means the plate adjusted the chemicals injected.
+
+
+
diff --git a/obj/item/clothing/accessory/limb/skeleton.html b/obj/item/clothing/accessory/limb/skeleton.html
new file mode 100644
index 000000000000..89e86d0e1577
--- /dev/null
+++ b/obj/item/clothing/accessory/limb/skeleton.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/accessory/limb/skeleton - byond
+
+
+
+
+
+
+Vars
+ polished Has it been cleaned by a polishing rag?
+ Var Details polished
+
+
+
+
+
+ Has it been cleaned by a polishing rag?
+
+
+
diff --git a/obj/item/clothing/glasses.html b/obj/item/clothing/glasses.html
new file mode 100644
index 000000000000..85e802a64852
--- /dev/null
+++ b/obj/item/clothing/glasses.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/glasses - byond
+
+
+
+
+
+
+Vars
+ lighting_alpha The amount of nightvision these glasses have. This should be a number between 0 and 1.
+ Var Details lighting_alpha
+
+
+
+
+
+ The amount of nightvision these glasses have. This should be a number between 0 and 1.
+
+
+
diff --git a/obj/item/clothing/glasses/disco_fever.html b/obj/item/clothing/glasses/disco_fever.html
new file mode 100644
index 000000000000..a9af64a57a92
--- /dev/null
+++ b/obj/item/clothing/glasses/disco_fever.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/item/clothing/glasses/disco_fever - byond
+
+
+
+
+
+
+Procs
+ apply_discovision Handles disco-vision. Normal client color matrix handling isn't set up for a continuous animation like this, so this is applied afterwards.
+ apply_discovision_handler Ends existing animations in preparation for the funny. Looping animations don't seem to properly end if a new one is started on the same tick.
Proc Details apply_discovision
+
+ Handles disco-vision. Normal client color matrix handling isn't set up for a continuous animation like this, so this is applied afterwards.
apply_discovision_handler
+
+ Ends existing animations in preparation for the funny. Looping animations don't seem to properly end if a new one is started on the same tick.
+
+
+
diff --git a/obj/item/clothing/gloves/marine.html b/obj/item/clothing/gloves/marine.html
new file mode 100644
index 000000000000..28a9aa51c29f
--- /dev/null
+++ b/obj/item/clothing/gloves/marine.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/gloves/marine - byond
+
+
+
+
+
+
+
+ Var Details squad_overlay_icon
+
+
+
+
+
+ The dmi where the grayscale squad overlays are contained
+
+
+
diff --git a/obj/item/clothing/gloves/yautja.html b/obj/item/clothing/gloves/yautja.html
new file mode 100644
index 000000000000..4b98c546288e
--- /dev/null
+++ b/obj/item/clothing/gloves/yautja.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /obj/item/clothing/gloves/yautja - byond
+
+
+
+
+
+
+
+ Var Details charge_cooldown
+
+
+
+
+
+ Cooldown on draining power from APC
charge_rate
+
+
+
+
+
+ The amount charged per process
cloak_alpha
+
+
+
+
+
+ Determines the alpha level of the cloaking device.
minimap_icon
+
+
+
+
+
+ What minimap icon this bracer should have
true_cloak
+
+
+
+
+
+ If TRUE will change the mob invisibility level, providing 100% invisibility. Exclusively for events.
Proc Details attempt_toggle_lock(/mob /user, force_lock)
+
+
+
+
+
+ Handles all the locking and unlocking of bracers.
decloak()
+
+
+
+
+
+ handles decloaking only on HUNTER gloves
toggle_lock_internal(/mob /wearer, force_lock)
+
+
+
+
+
+ The actual unlock/lock function.
update_minimap_icon()
+
+
+
+
+
+ Called to update the minimap icon of the predator
+
+
+
diff --git a/obj/item/clothing/gloves/yautja/hunter.html b/obj/item/clothing/gloves/yautja/hunter.html
new file mode 100644
index 000000000000..19c35886b66b
--- /dev/null
+++ b/obj/item/clothing/gloves/yautja/hunter.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/clothing/gloves/yautja/hunter - byond
+
+
+
+
+
+
+Vars
+ bracer_actions A list of all intrinsic bracer actions Procs
+ cloaker The item itself, to be referenced so Yautja know what to look for.
+ toggle_lock Verb to let Yautja attempt the unlocking.
+ Var Details bracer_actions
+
+
+
+
+
+ A list of all intrinsic bracer actions
Proc Details cloaker()
+
+
+
+
+
+ The item itself, to be referenced so Yautja know what to look for.
toggle_lock()
+
+
+
+
+
+ Verb to let Yautja attempt the unlocking.
+
+
+
diff --git a/obj/item/clothing/head/hardhat.html b/obj/item/clothing/head/hardhat.html
new file mode 100644
index 000000000000..09e1a7d14c93
--- /dev/null
+++ b/obj/item/clothing/head/hardhat.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/head/hardhat - byond
+
+
+
+
+
+
+
+ Var Details breaking_sound
+
+
+
+
+
+ The sound it makes when broken by a xenomorph.
can_be_broken
+
+
+
+
+
+ Can it be be broken by xenomorphs?
+
+
+
diff --git a/obj/item/clothing/head/helmet/marine.html b/obj/item/clothing/head/helmet/marine.html
new file mode 100644
index 000000000000..74c0b1cae621
--- /dev/null
+++ b/obj/item/clothing/head/helmet/marine.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/item/clothing/head/helmet/marine - byond
+
+
+
+
+
+
+Vars
+ active_visor The current active visor that is shown
+ built_in_visors Any visors built into the helmet
+ helmet_overlay_icon The dmi where the grayscale squad overlays are contained
+ inserted_visors Any visors that have been added into the helmet
+ max_inserted_visors Max amount of inserted visors
+ start_down_visor_type Designates a visor type that should start down when initialized Procs
+ cycle_huds Cycles the active HUD to the next between built_in_visors and inserted_visors, nullifies if at end and removes all HUDs
+ recalculate_visors Recalculates and sets the proper visor effects
+ toggle_visor Toggles the specified visor, if nothing specified then the active visor, if the visor is the active visor and the helmet is on the user's head it will turn on, if it is not the active visor it will turn off
+ turn_off_visors Attempts to turn off all visors
+ Var Details
+ The current active visor that is shown
built_in_visors
+
+
+
+
+
+ Any visors built into the helmet
helmet_overlay_icon
+
+
+
+
+
+ The dmi where the grayscale squad overlays are contained
inserted_visors
+
+
+
+
+
+ Any visors that have been added into the helmet
max_inserted_visors
+
+
+
+
+
+ Max amount of inserted visors
start_down_visor_type
+
+
+
+
+
+ Designates a visor type that should start down when initialized
Proc Details cycle_huds
+
+ Cycles the active HUD to the next between built_in_visors and inserted_visors, nullifies if at end and removes all HUDs
recalculate_visors
+
+ Recalculates and sets the proper visor effects
toggle_visor
+
+ Toggles the specified visor, if nothing specified then the active visor, if the visor is the active visor and the helmet is on the user's head it will turn on, if it is not the active visor it will turn off
turn_off_visors
+
+ Attempts to turn off all visors
+
+
+
diff --git a/obj/item/clothing/mask/cigarette.html b/obj/item/clothing/mask/cigarette.html
new file mode 100644
index 000000000000..f05ddd4a6481
--- /dev/null
+++ b/obj/item/clothing/mask/cigarette.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/mask/cigarette - byond
+
+
+
+
+
+
+Vars
+ icon_on Note - these are in masks.dmi not in cigarette.dmi
+ Var Details icon_on
+
+
+
+
+
+ Note - these are in masks.dmi not in cigarette.dmi
+
+
+
diff --git a/obj/item/clothing/mask/cigarette/pipe.html b/obj/item/clothing/mask/cigarette/pipe.html
new file mode 100644
index 000000000000..cf808bcc74cc
--- /dev/null
+++ b/obj/item/clothing/mask/cigarette/pipe.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/mask/cigarette/pipe - byond
+
+
+
+
+
+
+Vars
+ icon_on Note - these are in masks.dmi Procs
+ attack_self Refills the pipe. Can be changed to an attackby later, if loose tobacco is added to vendors or something.
+ Var Details icon_on
+
+
+
+
+
+ Note - these are in masks.dmi
Proc Details attack_self
+
+ Refills the pipe. Can be changed to an attackby later, if loose tobacco is added to vendors or something.
+
+
+
diff --git a/obj/item/clothing/mask/cigarette/pipe/cobpipe.html b/obj/item/clothing/mask/cigarette/pipe/cobpipe.html
new file mode 100644
index 000000000000..15b3d70bfcdd
--- /dev/null
+++ b/obj/item/clothing/mask/cigarette/pipe/cobpipe.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/mask/cigarette/pipe/cobpipe - byond
+
+
+
+
+
+
+Vars
+ icon_on Note - these are in masks.dmi
+ Var Details icon_on
+
+
+
+
+
+ Note - these are in masks.dmi
+
+
+
diff --git a/obj/item/clothing/mask/facehugger.html b/obj/item/clothing/mask/facehugger.html
new file mode 100644
index 000000000000..f170054e0876
--- /dev/null
+++ b/obj/item/clothing/mask/facehugger.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ /obj/item/clothing/mask/facehugger - byond
+
+
+
+
+
+
+Vars
+ jump_timer The timer for the hugger to jump
+at the nearest human
+ jumps_left How many times the hugger will try to jump at
+the nearest human before dying
+ time_between_jumps Delay of time between the hugger jumping
+at the nearest human
+ Var Details jump_timer
+
+
+
+
+
+ The timer for the hugger to jump
+at the nearest human
jumps_left
+
+
+
+
+
+ How many times the hugger will try to jump at
+the nearest human before dying
time_between_jumps
+
+
+
+
+
+ Delay of time between the hugger jumping
+at the nearest human
+
+
+
diff --git a/obj/item/clothing/mask/gas/yautja.html b/obj/item/clothing/mask/gas/yautja.html
new file mode 100644
index 000000000000..c222109b3393
--- /dev/null
+++ b/obj/item/clothing/mask/gas/yautja.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/mask/gas/yautja - byond
+
+
+
+
+
+
+parent type
+ Var Details mask_actions
+
+
+
+
+
+ A list of all intrinsic mask actions
+
+
+
diff --git a/obj/item/clothing/shoes.html b/obj/item/clothing/shoes.html
new file mode 100644
index 000000000000..c6ddbfe96579
--- /dev/null
+++ b/obj/item/clothing/shoes.html
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+ /obj/item/clothing/shoes - byond
+
+
+
+
+
+
+Vars
+ allowed_items_typecache List of item types that can be inserted.
+ spawn_item_type An item which should be inserted when the shoes are spawned.
+ stored_item The currently inserted item. Procs
+ _insert_item Insert item_to_insert
directly into the shoes without bothering with any checks.
+(In the majority of cases [/obj/item/clothing/shoes/proc/attempt_insert_item()] should be used instead of this.)
+ attempt_insert_item Try to insert item_to_insert
into the shoes.
+ can_be_inserted Returns a boolean indicating if item_to_insert
can be inserted into the shoes.
+ remove_item Remove stored_item
from the shoes, and place it into the user
's active hand.
+ Var Details allowed_items_typecache
+
+
+
+
+
+ List of item types that can be inserted.
spawn_item_type
+
+
+
+
+
+ An item which should be inserted when the shoes are spawned.
stored_item
+
+
+
+
+
+ The currently inserted item.
Proc Details _insert_item
+
+ Insert item_to_insert
directly into the shoes without bothering with any checks.
+(In the majority of cases [/obj/item/clothing/shoes/proc/attempt_insert_item()] should be used instead of this.)
attempt_insert_item
+
+ Try to insert item_to_insert
into the shoes.
+Returns TRUE
if it succeeded, or FALSE
if /obj/item/clothing/shoes/proc/can_be_inserted failed, or user
couldn't drop the item.
can_be_inserted
+
+ Returns a boolean indicating if item_to_insert
can be inserted into the shoes.
remove_item
+
+ Remove stored_item
from the shoes, and place it into the user
's active hand.
+
+
+
diff --git a/obj/item/clothing/suit/storage/marine.html b/obj/item/clothing/suit/storage/marine.html
new file mode 100644
index 000000000000..bd3ac544cb10
--- /dev/null
+++ b/obj/item/clothing/suit/storage/marine.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ /obj/item/clothing/suit/storage/marine - byond
+
+
+
+
+
+
+Vars
+ squad_overlay_icon The dmi where the grayscale squad overlays are contained Procs
+ set_armor_style Updates the armor's icon_state
to the style represented by new_style
.
+ Var Details squad_overlay_icon
+
+
+
+
+
+ The dmi where the grayscale squad overlays are contained
Proc Details set_armor_style(new_style)
+
+
+
+
+
+ Updates the armor's icon_state
to the style represented by new_style
.
+Arguments:
+
+new_style - The new armor style. May only be one of GLOB.armor_style_list
's keys, or "Random"
.
+
+
+
+
diff --git a/obj/item/clothing/suit/storage/marine/M35.html b/obj/item/clothing/suit/storage/marine/M35.html
new file mode 100644
index 000000000000..e1c930069ba1
--- /dev/null
+++ b/obj/item/clothing/suit/storage/marine/M35.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/clothing/suit/storage/marine/M35 - byond
+
+
+
+
+
+
+Proc Details fire_shield_is_on
+
+ This proc is solely so that IgniteMob() fails
+
+
+
diff --git a/obj/item/clothing/suit/storage/marine/medium/rto/intel.html b/obj/item/clothing/suit/storage/marine/medium/rto/intel.html
new file mode 100644
index 000000000000..7ae1747c50dc
--- /dev/null
+++ b/obj/item/clothing/suit/storage/marine/medium/rto/intel.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/suit/storage/marine/medium/rto/intel - byond
+
+
+
+
+
+
+
+ Var Details actions_types
+
+
+
+
+
+ XM4 Integral Motion Detector Ability
+
+
+
diff --git a/obj/item/clothing/under.html b/obj/item/clothing/under.html
new file mode 100644
index 000000000000..53f55790ff20
--- /dev/null
+++ b/obj/item/clothing/under.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/under - byond
+
+
+
+
+
+
+Vars
+ flags_jumpsuit Stores whether sleeves can be rolled, cut etc. and whether they currently are.
+ Var Details flags_jumpsuit
+
+
+
+
+
+ Stores whether sleeves can be rolled, cut etc. and whether they currently are.
+
+
+
diff --git a/obj/item/clothing/under/marine.html b/obj/item/clothing/under/marine.html
new file mode 100644
index 000000000000..e2e48548fd2d
--- /dev/null
+++ b/obj/item/clothing/under/marine.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/clothing/under/marine - byond
+
+
+
+
+
+
+Vars
+ map_variants_roll_accessories List of map variants that use sleeve rolling on something else, like snow uniforms rolling the collar, and therefore shouldn't hide patches etc when rolled.
+ specialty Makes it so that we can see the right name in the vendor.
+ Var Details map_variants_roll_accessories
+
+
+
+
+
+ List of map variants that use sleeve rolling on something else, like snow uniforms rolling the collar, and therefore shouldn't hide patches etc when rolled.
specialty
+
+
+
+
+
+ Makes it so that we can see the right name in the vendor.
+
+
+
diff --git a/obj/item/clothing/under/marine/cbrn.html b/obj/item/clothing/under/marine/cbrn.html
new file mode 100644
index 000000000000..ad4d74c4b1de
--- /dev/null
+++ b/obj/item/clothing/under/marine/cbrn.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/clothing/under/marine/cbrn - byond
+
+
+
+
+
+
+
+ Var Details hood_enabled
+
+
+
+
+
+ Whether the hood and gas mask were worn through the hood toggle verb
hood_type
+
+
+
+
+
+ Typepath of the attached hood
linked_hood
+
+
+
+
+
+ The head clothing that the suit uses as a hood
supports_fire_protection
+
+
+
+
+
+ Whether enabling the hood protects you from fire
+
+
+
diff --git a/obj/item/coin/marine.html b/obj/item/coin/marine.html
new file mode 100644
index 000000000000..441dd2342d54
--- /dev/null
+++ b/obj/item/coin/marine.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/coin/marine - byond
+
+
+
+
+
+
+
+ Var Details token_type
+
+
+
+
+
+ What is the token for?
+
+
+
diff --git a/obj/item/desk_bell.html b/obj/item/desk_bell.html
new file mode 100644
index 000000000000..75a751d767e0
--- /dev/null
+++ b/obj/item/desk_bell.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/item/desk_bell - byond
+
+
+
+
+
+
+Vars
+ 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. Procs
+ check_clapper Check if the clapper breaks, and if it does, break it. Chance to break is 1% for every 100 rings of the bell.
+ ring_bell Ring the bell.
+ Var Details 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. Chance to break is 1% for every 100 rings of the bell.
ring_bell
+
+ Ring the bell.
+
+
+
diff --git a/obj/item/device/binoculars.html b/obj/item/device/binoculars.html
new file mode 100644
index 000000000000..8ec6ef577e34
--- /dev/null
+++ b/obj/item/device/binoculars.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/device/binoculars - byond
+
+
+
+
+
+
+Vars
+ uses_camo If FALSE won't change icon_state to a camo marine bino.
+ Var Details uses_camo
+
+
+
+
+
+ If FALSE won't change icon_state to a camo marine bino.
+
+
+
diff --git a/obj/item/device/binoculars/range.html b/obj/item/device/binoculars/range.html
new file mode 100644
index 000000000000..8384500efb0a
--- /dev/null
+++ b/obj/item/device/binoculars/range.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/device/binoculars/range - byond
+
+
+
+
+
+
+Vars
+ range_laser_overlay Normally used for the small green dot signifying coordinations-obtaining mode.
+ Var Details range_laser_overlay
+
+
+
+
+
+ Normally used for the small green dot signifying coordinations-obtaining mode.
+
+
+
diff --git a/obj/item/device/binoculars/range/designator.html b/obj/item/device/binoculars/range/designator.html
new file mode 100644
index 000000000000..9a2d94837c32
--- /dev/null
+++ b/obj/item/device/binoculars/range/designator.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/device/binoculars/range/designator - byond
+
+
+
+
+
+
+
+ Var Details cas_laser_overlay
+
+
+
+
+
+ Normally used for the red CAS dot overlay.
+
+
+
diff --git a/obj/item/device/binoculars/range/designator/spotter.html b/obj/item/device/binoculars/range/designator/spotter.html
new file mode 100644
index 000000000000..284754b1c1ba
--- /dev/null
+++ b/obj/item/device/binoculars/range/designator/spotter.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/device/binoculars/range/designator/spotter - byond
+
+
+
+
+
+
+Vars
+ spot_laser_overlay The yellow dot overlay that shows up if the binoculars are spotting.
+ spotter_band The off-white band that covers the binoculars.
+ Var Details spot_laser_overlay
+
+
+
+
+
+ The yellow dot overlay that shows up if the binoculars are spotting.
spotter_band
+
+
+
+
+
+ The off-white band that covers the binoculars.
+
+
+
diff --git a/obj/item/device/defibrillator.html b/obj/item/device/defibrillator.html
new file mode 100644
index 000000000000..e565d20adafb
--- /dev/null
+++ b/obj/item/device/defibrillator.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/device/defibrillator - byond
+
+
+
+
+
+
+
+ Var Details max_heart_damage_dealt
+
+
+
+
+
+ Max damage defib deals to victims' heart
min_heart_damage_dealt
+
+
+
+
+
+ Min damage defib deals to victims' heart
+
+
+
diff --git a/obj/item/device/flashlight/flare.html b/obj/item/device/flashlight/flare.html
new file mode 100644
index 000000000000..1452ff4a31f4
--- /dev/null
+++ b/obj/item/device/flashlight/flare.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/device/flashlight/flare - byond
+
+
+
+
+
+
+Vars
+ flame_base_tint Color correction, added to the whole flame overlay
+ flame_tint Tint for the greyscale flare flame
+ show_flame Whether to use flame overlays for this flare type
+ Var Details flame_base_tint
+
+
+
+
+
+ Color correction, added to the whole flame overlay
flame_tint
+
+
+
+
+
+ Tint for the greyscale flare flame
show_flame
+
+
+
+
+
+ Whether to use flame overlays for this flare type
+
+
+
diff --git a/obj/item/device/helmet_visor.html b/obj/item/device/helmet_visor.html
new file mode 100644
index 000000000000..ef6a22973b65
--- /dev/null
+++ b/obj/item/device/helmet_visor.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/item/device/helmet_visor - byond
+
+
+
+
+
+
+Vars
+ action_icon_string The icon name for our helmet's action, in 'icons/obj/items/clothing/helmet_visors.dmi'
+ helmet_overlay The overlay name for when our visor is active, in 'icons/mob/humans/onmob/helmet_garb.dmi'
+ hud_type The type of HUD our visor shows
+ toggle_off_sound The sound when toggling off the visor
+ toggle_on_sound The sound when toggling on the visor Procs
+ activate_visor Called by toggle_visor() to activate the visor's effects
+ can_toggle Called to see if the user can even use this visor
+ deactivate_visor Called by toggle_visor() to deactivate the visor's effects
+ get_helmet_examine_text Called by /obj/item/clothing/head/helmet/marine/get_examine_text(mob/user) to get extra examine text for this visor
+ toggle_visor Called to see if this visor is a special non-HUD visor
+ Var Details action_icon_string
+
+
+
+
+
+ The icon name for our helmet's action, in 'icons/obj/items/clothing/helmet_visors.dmi'
helmet_overlay
+
+
+
+
+
+ The overlay name for when our visor is active, in 'icons/mob/humans/onmob/helmet_garb.dmi'
hud_type
+
+
+
+
+
+ The type of HUD our visor shows
toggle_off_sound
+
+
+
+
+
+ The sound when toggling off the visor
toggle_on_sound
+
+
+
+
+
+ The sound when toggling on the visor
Proc Details
+ Called by toggle_visor() to activate the visor's effects
+ Called to see if the user can even use this visor
+ Called by toggle_visor() to deactivate the visor's effects
get_helmet_examine_text()
+
+
+
+
+
+ Called by /obj/item/clothing/head/helmet/marine/get_examine_text(mob/user) to get extra examine text for this visor
+ Called to see if this visor is a special non-HUD visor
+
+
+
diff --git a/obj/item/device/helmet_visor/night_vision.html b/obj/item/device/helmet_visor/night_vision.html
new file mode 100644
index 000000000000..e5bd01bc18c0
--- /dev/null
+++ b/obj/item/device/helmet_visor/night_vision.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/device/helmet_visor/night_vision - byond
+
+
+
+
+
+
+Vars
+ lighting_alpha The alpha of darkness we set to for the mob while the visor is on, not completely fullbright but see-able
+ on_light A slight glowing green light while the NVG is activated, is initialized as in the attached_helmet's contents
+ power_cell The internal battery for the visor
+ power_use About 5 minutes active use charge (hypothetically)
+ visor_glows Whether or not the sight uses on_light and produces light
+ Var Details lighting_alpha
+
+
+
+
+
+ The alpha of darkness we set to for the mob while the visor is on, not completely fullbright but see-able
on_light
+
+
+
+
+
+ A slight glowing green light while the NVG is activated, is initialized as in the attached_helmet's contents
power_cell
+
+
+
+
+
+ The internal battery for the visor
power_use
+
+
+
+
+
+ About 5 minutes active use charge (hypothetically)
visor_glows
+
+
+
+
+
+ Whether or not the sight uses on_light and produces light
+
+
+
diff --git a/obj/item/device/internal_implant/rejuv.html b/obj/item/device/internal_implant/rejuv.html
new file mode 100644
index 000000000000..64dfab58f497
--- /dev/null
+++ b/obj/item/device/internal_implant/rejuv.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/device/internal_implant/rejuv - byond
+
+
+
+
+
+
+Vars
+ stimulant_to_inject Assoc list where the keys are the reagent ids of the reagents to be injected and the values are the amount to be injected
+ Var Details stimulant_to_inject
+
+
+
+
+
+ Assoc list where the keys are the reagent ids of the reagents to be injected and the values are the amount to be injected
+
+
+
diff --git a/obj/item/device/m56d_gun.html b/obj/item/device/m56d_gun.html
new file mode 100644
index 000000000000..9de1f59a9e48
--- /dev/null
+++ b/obj/item/device/m56d_gun.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/device/m56d_gun - byond
+
+
+
+
+
+
+Vars
+ defense_check_range The distance this has to be away from other m56d_hmg and m56d_post to be placed.
+ has_mount Indicates whether the M56D will come with its folding mount already attached
+ rounds How many rounds are in the weapon. This is useful if we break down our guns.
+ Var Details defense_check_range
+
+
+
+
+
+ The distance this has to be away from other m56d_hmg and m56d_post to be placed.
has_mount
+
+
+
+
+
+ Indicates whether the M56D will come with its folding mount already attached
rounds
+
+
+
+
+
+ How many rounds are in the weapon. This is useful if we break down our guns.
+
+
+
diff --git a/obj/item/device/m56d_post.html b/obj/item/device/m56d_post.html
new file mode 100644
index 000000000000..dbf49fe92701
--- /dev/null
+++ b/obj/item/device/m56d_post.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/device/m56d_post - byond
+
+
+
+
+
+
+Proc Details attack_self
+
+ Causes the tripod to unfold
+
+
+
diff --git a/obj/item/device/mmi/radio_enabled.html b/obj/item/device/mmi/radio_enabled.html
new file mode 100644
index 000000000000..5c143ed30f6b
--- /dev/null
+++ b/obj/item/device/mmi/radio_enabled.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/device/mmi/radio_enabled - byond
+
+
+
+
+
+
+Proc Details Toggle_Broadcasting()
+
+
+
+
+
+ Allows the brain to toggle the radio functions.
+
+
+
diff --git a/obj/item/device/motiondetector/xm4.html b/obj/item/device/motiondetector/xm4.html
new file mode 100644
index 000000000000..d39d47f07a1a
--- /dev/null
+++ b/obj/item/device/motiondetector/xm4.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/device/motiondetector/xm4 - byond
+
+
+
+
+
+
+Procs
+ get_user Forces the blue blip to appear around the detected mob
Proc Details get_user()
+
+
+
+
+
+ Forces the blue blip to appear around the detected mob
+
+
+
diff --git a/obj/item/device/portable_vendor.html b/obj/item/device/portable_vendor.html
new file mode 100644
index 000000000000..6bbeb9cd372e
--- /dev/null
+++ b/obj/item/device/portable_vendor.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/device/portable_vendor - byond
+
+
+
+
+
+
+
+ Var Details req_role
+
+
+
+
+
+ to be compared with assigned_role to only allow those to use that machine.
special_prod_time_lock
+
+
+
+
+
+ needs to be a time define
special_prods
+
+
+
+
+
+ list of typepaths
+
+
+
diff --git a/obj/item/device/professor_dummy_tablet.html b/obj/item/device/professor_dummy_tablet.html
new file mode 100644
index 000000000000..d72df7fa858e
--- /dev/null
+++ b/obj/item/device/professor_dummy_tablet.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ /obj/item/device/professor_dummy_tablet - byond
+
+
+
+
+
+
+
+ Var Details dust_on_hijack
+
+
+
+
+
+ Should the dummy be destroyed on hijack?
Proc Details is_adjacent_to_dummy
+
+ Checks if the user is adjacent to the dummy
+Returns TRUE if the user is adjacent to the dummy, FALSE otherwise
+
+
+
+
diff --git a/obj/item/device/radio.html b/obj/item/device/radio.html
new file mode 100644
index 000000000000..af43385b7674
--- /dev/null
+++ b/obj/item/device/radio.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/device/radio - byond
+
+
+
+
+
+
+Vars
+ subspace_switchable If true, subspace_transmission can be toggled at will.
+ use_volume if false it will just default to RADIO_VOLUME_QUIET every time
+ Var Details subspace_switchable
+
+
+
+
+
+ If true, subspace_transmission can be toggled at will.
use_volume
+
+
+
+
+
+ if false it will just default to RADIO_VOLUME_QUIET every time
+
+
+
diff --git a/obj/item/device/radio/headset.html b/obj/item/device/radio/headset.html
new file mode 100644
index 000000000000..25ab3f049ebe
--- /dev/null
+++ b/obj/item/device/radio/headset.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/device/radio/headset - byond
+
+
+
+
+
+
+
+ Var Details minimap_type
+
+
+
+
+
+ The type of minimap this headset is added to
Proc Details set_dead_on_minimap(z_level, marker_flags)
+
+
+
+
+
+ Change the minimap icon to a dead icon
set_undefibbable_on_minimap(z_level, marker_flags)
+
+
+
+
+
+ Change the minimap icon to a undefibbable icon
+
+
+
diff --git a/obj/item/device/radio/listening_bug.html b/obj/item/device/radio/listening_bug.html
new file mode 100644
index 000000000000..76e3d48f1d4a
--- /dev/null
+++ b/obj/item/device/radio/listening_bug.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/device/radio/listening_bug - byond
+
+
+
+
+
+
+
+ Var Details
+ The ID tag of the device, for identification.
prevent_snooping
+
+
+
+
+
+ Whether or not the bug can be used to listen to its own channel.
ready_to_disguise
+
+
+
+
+
+ If the bug is disguised or not.
+
+
+
diff --git a/obj/item/device/sentry_computer.html b/obj/item/device/sentry_computer.html
new file mode 100644
index 000000000000..3a86693529f5
--- /dev/null
+++ b/obj/item/device/sentry_computer.html
@@ -0,0 +1,188 @@
+
+
+
+
+
+
+ /obj/item/device/sentry_computer - byond
+
+
+
+
+
+
+Sentry gun computer which links to defensive structures.
Vars
+ camera_map_name asset name for the game map
+ cell battery in the laptop
+ current defensive structure which has the camera active
+ last_camera_turf The turf where the camera was last updated.
+ on if the laptop is turned on and powered
+ open if the laptop has been opened (the model not tgui)
+ paired_sentry list of paired defences
+ power_consumption multiplier for how much power to drain per linked device
+ silent if the laptop should announce events on radio, for live server testing Procs
+ handle_empty_ammo Handler for when a linked sentry has no ammo.
+@param sentrygun: sentry gun which has ran out of ammo.
+ handle_engaged Handler for when a linked sentry gun engages a target.
+@param sentrygun: gun which has fired.
+ handle_low_ammo Handler for when a linked sentry has low ammo.
+@param sentrygun: gun which is low on ammo.
+ pair_sentry Links the target sentry gun to this laptop, linking signals and storing data.
+@params target: defensive structure to link.
+ register Run checks and register a sentry gun to this sentry computer.
+@param tool: tool which was used to link.
+@param user: mob which initiated the link.
+@param defensive_structure: defensive structure which is to be linked.
+ send_message Broadcast a message to those nearby and on sentry radio.
+@param message: message to broadcast.
+ sentry_destroyed Handler for when a linked sentry gun is destroyed.
+@param sentry_gun: sentry gun which is currently being destroyed.
+ teardown Called to reset the state of the laptop to closed and inactive.
+ unpair_sentry Unlinks the target sentry gun from this laptop, unlinking signals and removing from internal storage lists.
+@params target: defensive structure to unlink
+ unregister Run checks and unregister a sentry gun from this sentry computer.
+@param tool: tool which was used to unlink.
+@param user: mob which initiated the unlink.
+@param defensive_structure: defensive structure which is to be unlinked.
+ Var Details camera_map_name
+
+
+
+
+
+ asset name for the game map
cell
+
+
+
+
+
+ battery in the laptop
+ defensive structure which has the camera active
last_camera_turf
+
+
+
+
+
+ The turf where the camera was last updated.
on
+
+
+
+
+
+ if the laptop is turned on and powered
open
+
+
+
+
+
+ if the laptop has been opened (the model not tgui)
paired_sentry
+
+
+
+
+
+ list of paired defences
power_consumption
+
+
+
+
+
+ multiplier for how much power to drain per linked device
silent
+
+
+
+
+
+ if the laptop should announce events on radio, for live server testing
Proc Details
+ Handler for when a linked sentry has no ammo.
+@param sentrygun: sentry gun which has ran out of ammo.
+ Handler for when a linked sentry gun engages a target.
+@param sentrygun: gun which has fired.
+ Handler for when a linked sentry has low ammo.
+@param sentrygun: gun which is low on ammo.
+ Links the target sentry gun to this laptop, linking signals and storing data.
+@params target: defensive structure to link.
register(tool, /mob /user, defensive_structure)
+
+
+
+
+
+ Run checks and register a sentry gun to this sentry computer.
+@param tool: tool which was used to link.
+@param user: mob which initiated the link.
+@param defensive_structure: defensive structure which is to be linked.
send_message(message)
+
+
+
+
+
+ Broadcast a message to those nearby and on sentry radio.
+@param message: message to broadcast.
sentry_destroyed(sentry_gun)
+
+
+
+
+
+ Handler for when a linked sentry gun is destroyed.
+@param sentry_gun: sentry gun which is currently being destroyed.
teardown()
+
+
+
+
+
+ Called to reset the state of the laptop to closed and inactive.
+ Unlinks the target sentry gun from this laptop, unlinking signals and removing from internal storage lists.
+@params target: defensive structure to unlink
unregister(tool, /mob /user, sentry_gun)
+
+
+
+
+
+ Run checks and unregister a sentry gun from this sentry computer.
+@param tool: tool which was used to unlink.
+@param user: mob which initiated the unlink.
+@param defensive_structure: defensive structure which is to be unlinked.
+
+
+
diff --git a/obj/item/device/taperecorder.html b/obj/item/device/taperecorder.html
new file mode 100644
index 000000000000..d818e0e26a59
--- /dev/null
+++ b/obj/item/device/taperecorder.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/device/taperecorder - byond
+
+
+
+
+
+
+Vars
+ time_left_warning Seconds under which to warn that the tape is almost up.
+ time_warned Whether we've warned during this recording session that the tape is almost up.
+ Var Details time_left_warning
+
+
+
+
+
+ Seconds under which to warn that the tape is almost up.
time_warned
+
+
+
+
+
+ Whether we've warned during this recording session that the tape is almost up.
+
+
+
diff --git a/obj/item/device/vulture_spotter_scope.html b/obj/item/device/vulture_spotter_scope.html
new file mode 100644
index 000000000000..0e583559ec3e
--- /dev/null
+++ b/obj/item/device/vulture_spotter_scope.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/device/vulture_spotter_scope - byond
+
+
+
+
+
+
+
+ Var Details bound_rifle
+
+
+
+
+
+ A weakref to the corresponding rifle
+
+
+
diff --git a/obj/item/device/working_joe_pda.html b/obj/item/device/working_joe_pda.html
new file mode 100644
index 000000000000..b4d2ee510806
--- /dev/null
+++ b/obj/item/device/working_joe_pda.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/device/working_joe_pda - byond
+
+
+
+
+
+
+
+ Var Details
+ The datacore storing all the information.
last_login
+
+
+
+
+
+ The last person to login.
+ The ID used to link all devices.
notify_sounds
+
+
+
+
+
+ Notification sound
+
+
+
diff --git a/obj/item/evidencebag.html b/obj/item/evidencebag.html
new file mode 100644
index 000000000000..28aa669771fc
--- /dev/null
+++ b/obj/item/evidencebag.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/evidencebag - byond
+
+
+
+
+
+
+Procs
+ attack_self save the offset of the item
+then remove it so it'll stay within the evidence bag
+take a snapshot. (necessary to stop the underlays appearing under our inventory-HUD slots) ~Carn
+and then return it
+should look nicer for transparent stuff. not really that important, but hey.
Proc Details attack_self
+
+ save the offset of the item
+then remove it so it'll stay within the evidence bag
+take a snapshot. (necessary to stop the underlays appearing under our inventory-HUD slots) ~Carn
+and then return it
+should look nicer for transparent stuff. not really that important, but hey.
+
+
+
diff --git a/obj/item/explosive.html b/obj/item/explosive.html
new file mode 100644
index 000000000000..202275456686
--- /dev/null
+++ b/obj/item/explosive.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/explosive - byond
+
+
+
+
+
+
+Vars
+ allow_star_shape Whether a star shape is possible when the intensity meets CHEM_FIRE_STAR_THRESHOLD
+ Var Details allow_star_shape
+
+
+
+
+
+ Whether a star shape is possible when the intensity meets CHEM_FIRE_STAR_THRESHOLD
+
+
+
diff --git a/obj/item/explosive/grenade/nerve_gas.html b/obj/item/explosive/grenade/nerve_gas.html
new file mode 100644
index 000000000000..0b264b294e76
--- /dev/null
+++ b/obj/item/explosive/grenade/nerve_gas.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/explosive/grenade/nerve_gas - byond
+
+
+
+
+
+
+
+ Var Details nerve_gas
+ – /datum /effect_system/smoke_spread/cn20
+
+
+
+
+ The nerve gas datum
nerve_gas_radius
+
+
+
+
+
+ The radius the gas will reach
nerve_gas_type
+
+
+
+
+
+ The typepath of the nerve gas
+
+
+
diff --git a/obj/item/explosive/grenade/sebb.html b/obj/item/explosive/grenade/sebb.html
new file mode 100644
index 000000000000..7b94175b2484
--- /dev/null
+++ b/obj/item/explosive/grenade/sebb.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/explosive/grenade/sebb - byond
+
+
+
+
+
+
+
+ Var Details damage
+
+
+
+
+
+ Maximum possible damage before falloff.
falloff_dam_reduction_mult
+
+
+
+
+
+ Factor to mutiply the effect range has on damage.
human_stam_dam_factor
+
+
+
+
+
+ Post falloff calc damage is multipled by this to get human stamina damage
range
+
+
+
+
+
+ Maximum range of effect
xeno_slowdown_numerator
+
+
+
+
+
+ Post falloff calc damage is divided by this to get xeno slowdown
+
+
+
diff --git a/obj/item/facepaint.html b/obj/item/facepaint.html
new file mode 100644
index 000000000000..d70925c7c94e
--- /dev/null
+++ b/obj/item/facepaint.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/facepaint - byond
+
+
+
+
+
+
+
+ Var Details open
+
+
+
+
+
+ for lipstick
+
+
+
diff --git a/obj/item/flag/plantable.html b/obj/item/flag/plantable.html
new file mode 100644
index 000000000000..0cf7ea0bbd44
--- /dev/null
+++ b/obj/item/flag/plantable.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/item/flag/plantable - byond
+
+
+
+
+
+
+Vars
+ allies_required How many nearby allies do we need for the stronger warcry to be played?
+ faction Used to check if nearby mobs belong to a faction when calculating for the stronger warcry.
+ flag_type The typepath of the flag structure that gets spawned when the flag is planted.
+ play_warcry Does the flag play a unique warcry when planted? (Only while on harm intent.)
+ warcry_cooldown_item Used to limit the spam of the warcry_extra_sound
+ warcry_extra_sound When there are more than 14 allies nearby, play this stronger warcry.
+ warcry_sound The warcry's sound path. Procs
+ plant_flag Proc for turning the flag item into a structure.
+ Var Details allies_required
+
+
+
+
+
+ How many nearby allies do we need for the stronger warcry to be played?
faction
+
+
+
+
+
+ Used to check if nearby mobs belong to a faction when calculating for the stronger warcry.
flag_type
+
+
+
+
+
+ The typepath of the flag structure that gets spawned when the flag is planted.
play_warcry
+
+
+
+
+
+ Does the flag play a unique warcry when planted? (Only while on harm intent.)
warcry_cooldown_item
+
+
+
+
+
+ Used to limit the spam of the warcry_extra_sound
+ When there are more than 14 allies nearby, play this stronger warcry.
warcry_sound
+
+
+
+
+
+ The warcry's sound path.
Proc Details plant_flag(/mob /living /user, play_warcry, warcry_sound, warcry_extra_sound, faction)
+
+
+
+
+
+ Proc for turning the flag item into a structure.
+
+
+
diff --git a/obj/item/folded_tent.html b/obj/item/folded_tent.html
new file mode 100644
index 000000000000..c96c8b74ebcc
--- /dev/null
+++ b/obj/item/folded_tent.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/folded_tent - byond
+
+
+
+
+
+
+
+ Var Details dim_x
+
+
+
+
+
+ Required cleared area along X axis
dim_y
+
+
+
+
+
+ Required cleared area along Y axis
+ Map template datum used for tent
template_preset
+
+
+
+
+
+ Tents map template typepath
unrestricted_deployment
+
+
+
+
+
+ If this tent can be deployed anywhere
Proc Details check_area(/turf /ref_turf, /mob /message_receiver, display_error)
+
+
+
+
+
+ Check an area is clear for deployment of the tent
+
+
+
diff --git a/obj/item/fuel_cell.html b/obj/item/fuel_cell.html
new file mode 100644
index 000000000000..7fe58b7713f6
--- /dev/null
+++ b/obj/item/fuel_cell.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/fuel_cell - byond
+
+
+
+
+WL-6 universal fuel cell
+
+
+
+
+
+
+ Var Details fuel_amount
+
+
+
+
+
+ How much fuel is in the reactor
max_fuel_amount
+
+
+
+
+
+ Max amount that the cell can hold
new_cell
+
+
+
+
+
+ If the fuel cell has been used since last recharge
Proc Details get_fuel_percent()
+
+
+
+
+
+ Percentage of fuel left in the cell
is_regenerated()
+
+
+
+
+
+ Whether the fuel cell is full
modify_fuel(amount)
+
+
+
+
+
+ increase or decrease fuel, making sure it cannot go above the max
+
+
+
diff --git a/obj/item/grab.html b/obj/item/grab.html
new file mode 100644
index 000000000000..6919e9d42ebd
--- /dev/null
+++ b/obj/item/grab.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /obj/item/grab - byond
+
+
+
+
+
+
+Procs
+ progress_passive Amazing what you can do with a bit of dexterity.
+Strong mobs can lift above their own weight.
Proc Details
+ Amazing what you can do with a bit of dexterity.
+Strong mobs can lift above their own weight.
+
+
+
diff --git a/obj/item/handheld_distress_beacon.html b/obj/item/handheld_distress_beacon.html
new file mode 100644
index 000000000000..997594af44aa
--- /dev/null
+++ b/obj/item/handheld_distress_beacon.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/handheld_distress_beacon - byond
+
+
+
+
+
+
+handheld distress beacons used by goon chem retrieval team to call for PMC back up
Vars
+ active Whether beacon can be used, or has already been used
+ beacon_type The beacons faction that will be sent in message_admins
+ ert_paths The name of the ERT that will be passed to get_specific_call
+ ert_short_names The clickable version that will be sent in message_admins
+ recipient Tells the user who the beacon will be sent to IC
+ Var Details active
+
+
+
+
+
+ Whether beacon can be used, or has already been used
beacon_type
+
+
+
+
+
+ The beacons faction that will be sent in message_admins
ert_paths
+
+
+
+
+
+ The name of the ERT that will be passed to get_specific_call
ert_short_names
+
+
+
+
+
+ The clickable version that will be sent in message_admins
recipient
+
+
+
+
+
+ Tells the user who the beacon will be sent to IC
+
+
+
diff --git a/obj/item/hardpoint.html b/obj/item/hardpoint.html
new file mode 100644
index 000000000000..7e1008c8f996
--- /dev/null
+++ b/obj/item/hardpoint.html
@@ -0,0 +1,430 @@
+
+
+
+
+
+
+ /obj/item/hardpoint - byond
+
+
+
+
+
+
+Hardpoints are any items that attach to a base vehicle, such as wheels/treads, support systems and guns
Vars
+ activatable Whether hardpoint has activatable ability like shooting or zooming.
+ activation_sounds Sounds to play when the module activated/fired.
+ allowed_seat Which seat can use this module.
+ ammo Currently loaded ammo that we shoot from.
+ auto_firing If the gun is currently auto firing.
+ autofire_slow_mult The multiplier for how much slower this should fire in automatic mode. 1 is normal, 1.2 is 20% slower, 2 is 100% slower, etc. Protected due to it never needing to be edited.
+ backup_clips Spare magazines that we can reload from.
+ being_repaired Used to prevent welder click spam.
+ burst_amount How many shots can the weapon shoot in burst? Anything less than 2 and you cannot toggle burst. Use modify_burst_amount and set_burst_amount instead of modifying this
+ burst_delay The delay in between shots. Lower = less delay = faster. Use modify_burst_delay and set_burst_delay instead of modifying this
+ burst_firing If the gun is currently burst firing.
+ damage_multiplier Determines how much of any incoming damage is actually taken.
+ extra_delay When burst-firing, this number is extra time before the weapon can fire again.
+ fire_cooldown Delay before a new firing sequence can start.
+ fire_delay For regular shots, how long to wait before firing again. Use modify_fire_delay and set_fire_delay instead of modifying this on the fly
+ firing_arc The firing arc of this hardpoint.
+ gun_firemode Current selected firemode of the gun.
+ gun_firemode_list List of allowed firemodes.
+ hdpt_layer Visual layer of hardpoint when on vehicle.
+ max_clips Maximum amount of spare mags.
+ muzzle_flash_pos List of offsets for where to place the muzzle flash for each direction.
+ origins Origin coords of the hardpoint relative to the vehicle.
+ owner The vehicle this hardpoint is installed on.
+ projectile_type The type of projectile to fire
+ px_offsets List of pixel offsets for each direction.
+ scatter How much the bullet scatters when fired, in degrees.
+ shots_fired How many bullets the gun fired while burst firing/auto firing.
+ slot Which slot is this hardpoint in. Purely to check for conflicting hardpoints.
+ target Currently selected target to fire at. Set with set_target().
+ traits_to_give An assoc list in the format list(/datum/element/bullet_trait_to_give = list(...args))
+that will be given to a projectile fired from the hardpoint. Procs
+ apply_buff Applying passive buffs like damage type resistance, speed, accuracy, cooldowns.
+ can_be_removed Proc to be overridden if you want to have special conditions preventing the removal of the hardpoint. Add chat messages in this proc if you want to tell the player why
+ change_target Update the target if you dragged your mouse.
+ clean_target Set the target to its turf, so we keep shooting even when it was qdeled.
+ click_empty Plays 'click' noise and announced to chat. Usually called when weapon empty.
+ display_ammo Print how much ammo is left to chat.
+ fire_wrapper Wrapper proc for the autofire system to ensure the important args aren't null.
+ get_origin_turf Get turf at hardpoint origin offset, used as the muzzle.
+ handle_fire Actually fires the gun, sets up the projectile and fires it.
+ in_firing_arc Determines whether something is in firing arc of a hardpoint.
+ on_install Apply hardpoint effects to vehicle and self.
+ on_uninstall Remove hardpoint effects from vehicle and self.
+ play_firing_sounds Selects and plays a firing sound from the list.
+ recalculate_hardpoint_bonuses Recalculates hardpoint values based on vehicle modifiers.
+ remove_buff Removing passive buffs like damage type resistance, speed, accuracy, cooldowns.
+ reset_fire Clean all firing references.
+ set_auto_firing Setter proc for the automatic firing flag.
+ set_bullet_traits Populate traits_to_give in this proc
+ set_burst_delay Setter for burst_delay.
+ set_burst_firing Setter proc for the burst firing flag.
+ set_fire_cooldown Start cooldown to respect delay of firemode.
+ set_fire_delay Setter for fire_delay.
+ set_target Set the target and take care of hard delete.
+ simulate_scatter Adjust target based on random scatter angle.
+ start_fire Check if the gun can fire and add it to bucket autofire system if needed, or just fire the gun if not.
+ stop_fire Reset variables used in firing and remove the gun from the autofire system.
+ try_fire Tests if firing should be interrupted, otherwise fires.
+ Var Details activatable
+
+
+
+
+
+ Whether hardpoint has activatable ability like shooting or zooming.
activation_sounds
+
+
+
+
+
+ Sounds to play when the module activated/fired.
allowed_seat
+
+
+
+
+
+ Which seat can use this module.
+ Currently loaded ammo that we shoot from.
auto_firing
+
+
+
+
+
+ If the gun is currently auto firing.
autofire_slow_mult
+
+
+
+
+
+ The multiplier for how much slower this should fire in automatic mode. 1 is normal, 1.2 is 20% slower, 2 is 100% slower, etc. Protected due to it never needing to be edited.
backup_clips
+
+
+
+
+
+ Spare magazines that we can reload from.
being_repaired
+
+
+
+
+
+ Used to prevent welder click spam.
burst_amount
+
+
+
+
+
+ How many shots can the weapon shoot in burst? Anything less than 2 and you cannot toggle burst. Use modify_burst_amount and set_burst_amount instead of modifying this
burst_delay
+
+
+
+
+
+ The delay in between shots. Lower = less delay = faster. Use modify_burst_delay and set_burst_delay instead of modifying this
burst_firing
+
+
+
+
+
+ If the gun is currently burst firing.
damage_multiplier
+
+
+
+
+
+ Determines how much of any incoming damage is actually taken.
+ When burst-firing, this number is extra time before the weapon can fire again.
fire_cooldown
+
+
+
+
+
+ Delay before a new firing sequence can start.
fire_delay
+
+
+
+
+
+ For regular shots, how long to wait before firing again. Use modify_fire_delay and set_fire_delay instead of modifying this on the fly
firing_arc
+
+
+
+
+
+ The firing arc of this hardpoint.
gun_firemode
+
+
+
+
+
+ Current selected firemode of the gun.
gun_firemode_list
+
+
+
+
+
+ List of allowed firemodes.
hdpt_layer
+
+
+
+
+
+ Visual layer of hardpoint when on vehicle.
max_clips
+
+
+
+
+
+ Maximum amount of spare mags.
muzzle_flash_pos
+
+
+
+
+
+ List of offsets for where to place the muzzle flash for each direction.
origins
+
+
+
+
+
+ Origin coords of the hardpoint relative to the vehicle.
+ The vehicle this hardpoint is installed on.
projectile_type
+
+
+
+
+
+ The type of projectile to fire
px_offsets
+
+
+
+
+
+ List of pixel offsets for each direction.
scatter
+
+
+
+
+
+ How much the bullet scatters when fired, in degrees.
shots_fired
+
+
+
+
+
+ How many bullets the gun fired while burst firing/auto firing.
slot
+
+
+
+
+
+ Which slot is this hardpoint in. Purely to check for conflicting hardpoints.
target
+
+
+
+
+
+ Currently selected target to fire at. Set with set_target().
traits_to_give
+
+
+
+
+
+ An assoc list in the format list(/datum/element/bullet_trait_to_give = list(...args))
+that will be given to a projectile fired from the hardpoint.
Proc Details
+ Applying passive buffs like damage type resistance, speed, accuracy, cooldowns.
can_be_removed(/mob /remover)
+
+
+
+
+
+ Proc to be overridden if you want to have special conditions preventing the removal of the hardpoint. Add chat messages in this proc if you want to tell the player why
change_target(/datum /source, /atom /src_object, /atom /over_object, /turf /src_location, /turf /over_location, src_control, over_control, params)
+
+
+
+
+
+ Update the target if you dragged your mouse.
clean_target()
+
+
+
+
+
+ Set the target to its turf, so we keep shooting even when it was qdeled.
click_empty
+
+ Plays 'click' noise and announced to chat. Usually called when weapon empty.
display_ammo
+
+ Print how much ammo is left to chat.
fire_wrapper
+
+ Wrapper proc for the autofire system to ensure the important args aren't null.
get_origin_turf()
+
+
+
+
+
+ Get turf at hardpoint origin offset, used as the muzzle.
handle_fire
+
+ Actually fires the gun, sets up the projectile and fires it.
in_firing_arc
+
+ Determines whether something is in firing arc of a hardpoint.
+ Apply hardpoint effects to vehicle and self.
+ Remove hardpoint effects from vehicle and self.
play_firing_sounds()
+
+
+
+
+
+ Selects and plays a firing sound from the list.
recalculate_hardpoint_bonuses()
+
+
+
+
+
+ Recalculates hardpoint values based on vehicle modifiers.
+ Removing passive buffs like damage type resistance, speed, accuracy, cooldowns.
reset_fire()
+
+
+
+
+
+ Clean all firing references.
set_auto_firing(auto)
+
+
+
+
+
+ Setter proc for the automatic firing flag.
set_bullet_traits()
+
+
+
+
+
+ Populate traits_to_give in this proc
set_burst_delay(value)
+
+
+
+
+
+ Setter for burst_delay.
set_burst_firing(burst)
+
+
+
+
+
+ Setter proc for the burst firing flag.
set_fire_cooldown(firemode)
+
+
+
+
+
+ Start cooldown to respect delay of firemode.
set_fire_delay(value)
+
+
+
+
+
+ Setter for fire_delay.
set_target
+
+ Set the target and take care of hard delete.
simulate_scatter
+
+ Adjust target based on random scatter angle.
start_fire(/datum /source, /atom /object, /turf /location, control, params)
+
+
+
+
+
+ Check if the gun can fire and add it to bucket autofire system if needed, or just fire the gun if not.
stop_fire(/datum /source, /atom /object, /turf /location, control, params)
+
+
+
+
+
+ Reset variables used in firing and remove the gun from the autofire system.
try_fire
+
+ Tests if firing should be interrupted, otherwise fires.
+
+
+
diff --git a/obj/item/hardpoint/primary/arc_sentry.html b/obj/item/hardpoint/primary/arc_sentry.html
new file mode 100644
index 000000000000..1074796570af
--- /dev/null
+++ b/obj/item/hardpoint/primary/arc_sentry.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/hardpoint/primary/arc_sentry - byond
+
+
+
+
+
+
+Vars
+ faction_group What factions this sentry is aligned with
+ sentry_target The currently focused sentry target
+ targets Potential targets the turret can shoot at
+ turret_range The range that this turret can shoot at the furthest
+ Var Details faction_group
+
+
+
+
+
+ What factions this sentry is aligned with
sentry_target
+
+
+
+
+
+ The currently focused sentry target
targets
+
+
+
+
+
+ Potential targets the turret can shoot at
turret_range
+
+
+
+
+
+ The range that this turret can shoot at the furthest
+
+
+
diff --git a/obj/item/hardpoint/primary/minigun.html b/obj/item/hardpoint/primary/minigun.html
new file mode 100644
index 000000000000..994ed158851f
--- /dev/null
+++ b/obj/item/hardpoint/primary/minigun.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/item/hardpoint/primary/minigun - byond
+
+
+
+
+
+
+
+ Var Details last_fired
+
+
+
+
+
+ When it was last fired, related to world.time.
spin_stage
+
+
+
+
+
+ Index of stage_rate.
spindown_grace_time
+
+
+
+
+
+ Grace period before losing spin_stage.
spindown_time
+
+
+
+
+
+ Cooldown time to reach min spin_stage.
spinup_time
+
+
+
+
+
+ Active firing time to reach max spin_stage.
stage_delay_mult
+
+
+
+
+
+ Fire delay multiplier for current spin_stage.
stage_rate
+
+
+
+
+
+ Shots fired per fire_delay at a particular spin_stage.
+
+
+
diff --git a/obj/item/hardpoint/support/arc_antenna.html b/obj/item/hardpoint/support/arc_antenna.html
new file mode 100644
index 000000000000..e72580f95f64
--- /dev/null
+++ b/obj/item/hardpoint/support/arc_antenna.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/hardpoint/support/arc_antenna - byond
+
+
+
+
+
+
+Vars
+ deploy_animation_time How long the antenna deploy/retract animation is, keep accurate to the sprite in the dmi
+ deploying If the antenna is already deploying
+ Var Details deploy_animation_time
+
+
+
+
+
+ How long the antenna deploy/retract animation is, keep accurate to the sprite in the dmi
deploying
+
+
+
+
+
+ If the antenna is already deploying
+
+
+
diff --git a/obj/item/hoverpack.html b/obj/item/hoverpack.html
new file mode 100644
index 000000000000..e7a1721c66be
--- /dev/null
+++ b/obj/item/hoverpack.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/hoverpack - byond
+
+
+
+
+
+
+Vars
+ can_hover If you can use it, used for cooldowns.
+ max_distance How many tiles you can leap to at once.
+ reservoir Reservoir that stores the reagents that fuel the propellant for the hoverpack. Or something like that..
+ speed How quick you will fly
+ Var Details can_hover
+
+
+
+
+
+ If you can use it, used for cooldowns.
max_distance
+
+
+
+
+
+ How many tiles you can leap to at once.
reservoir
+
+
+
+
+
+ Reservoir that stores the reagents that fuel the propellant for the hoverpack. Or something like that..
speed
+
+
+
+
+
+ How quick you will fly
+
+
+
diff --git a/obj/item/large_shrapnel/at_rocket_dud.html b/obj/item/large_shrapnel/at_rocket_dud.html
new file mode 100644
index 000000000000..1c260d3bb868
--- /dev/null
+++ b/obj/item/large_shrapnel/at_rocket_dud.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/large_shrapnel/at_rocket_dud - byond
+
+
+
+
+
+
+Vars
+ drop_sensitivity % chance of it detonating when dropped. THIS ALSO TRIGGERS WHEN PUTTING IT IN A BAG.
+ impact_sensitivity % chance of it detonating when thrown and hitting an atom.
+ matter same as custom warhead
+ Var Details drop_sensitivity
+
+
+
+
+
+ % chance of it detonating when dropped. THIS ALSO TRIGGERS WHEN PUTTING IT IN A BAG.
impact_sensitivity
+
+
+
+
+
+ % chance of it detonating when thrown and hitting an atom.
matter
+
+
+
+
+
+ same as custom warhead
+
+
+
diff --git a/obj/item/limb.html b/obj/item/limb.html
new file mode 100644
index 000000000000..8518172ade5f
--- /dev/null
+++ b/obj/item/limb.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/limb - byond
+
+
+
+
+
+
+Vars
+ bone_type What bone would be in this limb?
+ flayed Predators can flay limbs to eventually turn them into bones for their armor
+ Var Details bone_type
+
+
+
+
+
+ What bone would be in this limb?
flayed
+
+
+
+
+
+ Predators can flay limbs to eventually turn them into bones for their armor
+
+
+
diff --git a/obj/item/maintenance_jack.html b/obj/item/maintenance_jack.html
new file mode 100644
index 000000000000..61b6667c120d
--- /dev/null
+++ b/obj/item/maintenance_jack.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/item/maintenance_jack - byond
+
+
+
+
+
+
+
+ Var Details crowbar_mode
+
+
+
+
+
+ Whether the Maintenance Jack is on crowbar or wrench mode
prying_time
+
+
+
+
+
+ How long it takes (in seconds) to pry open an airlock
requires_skills_unbolt
+
+
+
+
+
+ Whether you get the speed penalty from not having engi 3
requires_superstrength_pry
+
+
+
+
+
+ Whether you need the "super strength" trait to pry open doors
resin_prying_time
+
+
+
+
+
+ How long it takes (in seconds) to pry open a resin door
unbolt_time
+
+
+
+
+
+ How long it takes (in seconds) to unbolt an airlock
unskilled_unbolt_time
+
+
+
+
+
+ How long extra will it take (in seconds) people who do not have engi 3 (if requires_skills_unbolt is true)
+
+
+
diff --git a/obj/item/mortar_shell.html b/obj/item/mortar_shell.html
new file mode 100644
index 000000000000..829864157f47
--- /dev/null
+++ b/obj/item/mortar_shell.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/mortar_shell - byond
+
+
+
+
+
+
+Vars
+ burning is it currently on fire and about to explode?
+ Var Details burning
+
+
+
+
+
+ is it currently on fire and about to explode?
+
+
+
diff --git a/obj/item/organ.html b/obj/item/organ.html
new file mode 100644
index 000000000000..a8d9bcfc5370
--- /dev/null
+++ b/obj/item/organ.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/item/organ - byond
+
+
+
+
+
+
+Vars
+ dead_icon Icon used when the organ dies.
+ fresh Squirts of blood left in it.
+ health Process() ticks before death.
+ organ_data Stores info when removed.
+ organ_tag What slot does it go in?
+ organ_type Used to spawn the relevant organ data when produced via a machine or spawn().
+ robotic Is the limb prosthetic?
+ Var Details dead_icon
+
+
+
+
+
+ Icon used when the organ dies.
fresh
+
+
+
+
+
+ Squirts of blood left in it.
health
+
+
+
+
+
+ Process() ticks before death.
+ Stores info when removed.
organ_tag
+
+
+
+
+
+ What slot does it go in?
organ_type
+
+
+
+
+
+ Used to spawn the relevant organ data when produced via a machine or spawn().
robotic
+
+
+
+
+
+ Is the limb prosthetic?
+
+
+
diff --git a/obj/item/organ/xeno.html b/obj/item/organ/xeno.html
new file mode 100644
index 000000000000..406107bb181e
--- /dev/null
+++ b/obj/item/organ/xeno.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/organ/xeno - byond
+
+
+
+
+
+
+Vars
+ caste_origin the caste in a string, which is used in a xenoanalyzer
+ research_value value of the organ in the recycler, heavily varies from size and tier
+ Var Details caste_origin
+
+
+
+
+
+ the caste in a string, which is used in a xenoanalyzer
research_value
+
+
+
+
+
+ value of the organ in the recycler, heavily varies from size and tier
+
+
+
diff --git a/obj/item/pamphlet/skill/powerloader.html b/obj/item/pamphlet/skill/powerloader.html
new file mode 100644
index 000000000000..d998dff23029
--- /dev/null
+++ b/obj/item/pamphlet/skill/powerloader.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/pamphlet/skill/powerloader - byond
+
+
+
+
+
+
+
+ Var Details bypass_pamphlet_limit
+
+
+
+
+
+ it's really not necessary to stop people from learning powerloader skill
+
+
+
diff --git a/obj/item/pamphlet/trait.html b/obj/item/pamphlet/trait.html
new file mode 100644
index 000000000000..c862b67c0075
--- /dev/null
+++ b/obj/item/pamphlet/trait.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/pamphlet/trait - byond
+
+
+
+
+
+
+
+ Var Details trait_to_give
+
+
+
+
+
+ What trait to give the user
+
+
+
diff --git a/obj/item/pipe.html b/obj/item/pipe.html
new file mode 100644
index 000000000000..a400ef8dccc2
--- /dev/null
+++ b/obj/item/pipe.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /obj/item/pipe - byond
+
+
+
+
+
+
+Procs
+ afterattack Z-Level stuff
+Z-Level stuff
+Supply and scrubbers pipes
+Z-Level stuff
+Z-Level stuff
+Supply and scrubbers pipes
Proc Details afterattack(/turf /open/floor/target, /mob /user, proximity)
+
+
+
+
+
+ Z-Level stuff
+Z-Level stuff
+Supply and scrubbers pipes
+Z-Level stuff
+Z-Level stuff
+Supply and scrubbers pipes
+
+
+
diff --git a/obj/item/pizzabox/mystery.html b/obj/item/pizzabox/mystery.html
new file mode 100644
index 000000000000..dbc804ccf4ea
--- /dev/null
+++ b/obj/item/pizzabox/mystery.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/pizzabox/mystery - byond
+
+
+
+
+
+
+Procs
+ Initialize Mystery Pizza, made with random ingredients!
Proc Details Initialize(mapload, ...)
+
+
+
+
+
+ Mystery Pizza, made with random ingredients!
+
+
+
diff --git a/obj/item/prop/geiger_counter.html b/obj/item/prop/geiger_counter.html
new file mode 100644
index 000000000000..957ea09ca6e2
--- /dev/null
+++ b/obj/item/prop/geiger_counter.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/prop/geiger_counter - byond
+
+
+
+
+
+
+
+ Var Details battery
+
+
+
+
+
+ Battery inside geiger counter
disabled_state
+
+
+
+
+
+ Iconstate of geiger counter when off
enabled_state
+
+
+
+
+
+ Iconstate of geiger counter when on
starting_battery
+
+
+
+
+
+ New battery it will spawn with
toggled_on
+
+
+
+
+
+ Whether the geiger counter is on or off
+
+
+
diff --git a/obj/item/prop/helmetgarb/family_photo.html b/obj/item/prop/helmetgarb/family_photo.html
new file mode 100644
index 000000000000..c959fdc75eb2
--- /dev/null
+++ b/obj/item/prop/helmetgarb/family_photo.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/prop/helmetgarb/family_photo - byond
+
+
+
+
+
+
+Vars
+ owner The human who spawns with the photo
+ owner_faction The belonging human faction
+ owner_name The belonging human name
+ scribble Text written on the back Procs
+ set_owner Sets the owner of the family photo to the human it spawns with, needs var/source for signals
+ Var Details owner
+
+
+
+
+
+ The human who spawns with the photo
owner_faction
+
+
+
+
+
+ The belonging human faction
owner_name
+
+
+
+
+
+ The belonging human name
scribble
+
+
+
+
+
+ Text written on the back
Proc Details set_owner
+
+ Sets the owner of the family photo to the human it spawns with, needs var/source for signals
+
+
+
diff --git a/obj/item/prop/helmetgarb/helmet_nvg.html b/obj/item/prop/helmetgarb/helmet_nvg.html
new file mode 100644
index 000000000000..d3d0559b3785
--- /dev/null
+++ b/obj/item/prop/helmetgarb/helmet_nvg.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/prop/helmetgarb/helmet_nvg - byond
+
+
+
+
+
+
+Vars
+ cell_max_charge How much charge the cell should have at most. -1 is infinite
+ Var Details cell_max_charge
+
+
+
+
+
+ How much charge the cell should have at most. -1 is infinite
+
+
+
diff --git a/obj/item/prop/prop_gun.html b/obj/item/prop/prop_gun.html
new file mode 100644
index 000000000000..74b112bee902
--- /dev/null
+++ b/obj/item/prop/prop_gun.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/prop/prop_gun - byond
+
+
+
+
+
+
+The source, which the skin will be copied from
+The prop itself, which the skin will be copied to
Procs
+ set_gun_skin Makes the gun look similar to the source, using the source as an atom reference
Proc Details set_gun_skin
+
+ Makes the gun look similar to the source, using the source as an atom reference
+
+
+
diff --git a/obj/item/prop/replacer.html b/obj/item/prop/replacer.html
new file mode 100644
index 000000000000..8dc7bf8c8979
--- /dev/null
+++ b/obj/item/prop/replacer.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /obj/item/prop/replacer - byond
+
+
+
+
+
+
+A prop that acts as a replacement for another item, mimicking their looks.
+Mainly used in Reqs Tutorial to provide the full item selections without side effects.
Vars
+ original_type The type that this object is taking the place of
+ Var Details original_type
+
+
+
+
+
+ The type that this object is taking the place of
+
+
+
diff --git a/obj/item/reagent_container.html b/obj/item/reagent_container.html
new file mode 100644
index 000000000000..738c905be465
--- /dev/null
+++ b/obj/item/reagent_container.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /obj/item/reagent_container - byond
+
+
+
+
+
+
+
+ Var Details amount_per_transfer_from_this
+
+
+
+
+
+ How many units of reagent get transfered out of the container at a time
has_set_transfer_action
+
+
+
+
+
+ Whether the container can have the set transfer amount action at all
possible_transfer_amounts
+
+
+
+
+
+ A list of possible amounts that can be transferred
reagent_desc_override
+
+
+
+
+
+ Does it have a special examining mechanic that should override the normal /reagent_containers examine proc?
transparent
+
+
+
+
+
+ Can we see what's in it?
volume
+
+
+
+
+
+ The maximum volume the container can hold
Proc Details display_contents
+
+ Shows the reagent amount if the examining user is sufficiently skilled
get_reagent_list_text()
+
+
+
+
+
+ Returns a string listing all reagents (and their volume) in the container
show_reagent_info
+
+ Whether the user can see the amount or reagents inside
+
+
+
diff --git a/obj/item/reagent_container/blood.html b/obj/item/reagent_container/blood.html
new file mode 100644
index 000000000000..45b0415a2a24
--- /dev/null
+++ b/obj/item/reagent_container/blood.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/reagent_container/blood - byond
+
+
+
+
+
+
+Procs
+ bad_disconnect Used to standardize effects of a blood bag disconnecting improperly
Proc Details bad_disconnect()
+
+
+
+
+
+ Used to standardize effects of a blood bag disconnecting improperly
+
+
+
diff --git a/obj/item/reagent_container/food.html b/obj/item/reagent_container/food.html
new file mode 100644
index 000000000000..1514dc63ca6e
--- /dev/null
+++ b/obj/item/reagent_container/food.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ /obj/item/reagent_container/food - byond
+
+
+
+
+
+
+Droppers. END
+Food.
+
+
+
diff --git a/obj/item/reagent_container/food/drinks/bottle.html b/obj/item/reagent_container/food/drinks/bottle.html
new file mode 100644
index 000000000000..b914f18b8401
--- /dev/null
+++ b/obj/item/reagent_container/food/drinks/bottle.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/reagent_container/food/drinks/bottle - byond
+
+
+
+
+
+
+Alchohol bottles and juice mixers! -Agouri
Vars
+ isGlass This excludes all the juices and dairy in cartons that are also defined in this file. Procs
+ smash Audio/visual bottle breaking effects start here
+ Var Details isGlass
+
+
+
+
+
+ This excludes all the juices and dairy in cartons that are also defined in this file.
Proc Details smash
+
+ Audio/visual bottle breaking effects start here
+
+
+
diff --git a/obj/item/reagent_container/spray.html b/obj/item/reagent_container/spray.html
new file mode 100644
index 000000000000..6dc39e64dca1
--- /dev/null
+++ b/obj/item/reagent_container/spray.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/reagent_container/spray - byond
+
+
+
+
+
+
+Vars
+ last_use The world.time it was last used
+ safety Whether you can spray the bottle
+ spray_size How many tiles the spray will move
+ spray_sizes The spray_size based on the transfer amount
+ use_delay The delay between uses
+ Var Details last_use
+
+
+
+
+
+ The world.time it was last used
safety
+
+
+
+
+
+ Whether you can spray the bottle
spray_size
+
+
+
+
+
+ How many tiles the spray will move
spray_sizes
+
+
+
+
+
+ The spray_size based on the transfer amount
use_delay
+
+
+
+
+
+ The delay between uses
+
+
+
diff --git a/obj/item/research_upgrades.html b/obj/item/research_upgrades.html
new file mode 100644
index 000000000000..a1b35c35a508
--- /dev/null
+++ b/obj/item/research_upgrades.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/research_upgrades - byond
+
+
+
+
+
+
+Vars
+ value technology stored on this disk, goes through one to whatever levels of upgrades there are.
+ Var Details value
+
+
+
+
+
+ technology stored on this disk, goes through one to whatever levels of upgrades there are.
+
+
+
diff --git a/obj/item/restraint.html b/obj/item/restraint.html
new file mode 100644
index 000000000000..ad789aceae85
--- /dev/null
+++ b/obj/item/restraint.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/restraint - byond
+
+
+
+
+
+
+Vars
+ breakouttime How long to break out
+ cuff_delay how many deciseconds it takes to cuff someone
+ manual If can be applied to people manually
+ single_use determines if handcuffs will be deleted on removal
+ target_zone SLOT_HANDS or SLOT_LEGS, for handcuffs or legcuffs
+ Var Details breakouttime
+
+
+
+
+
+ How long to break out
cuff_delay
+
+
+
+
+
+ how many deciseconds it takes to cuff someone
manual
+
+
+
+
+
+ If can be applied to people manually
single_use
+
+
+
+
+
+ determines if handcuffs will be deleted on removal
target_zone
+
+
+
+
+
+ SLOT_HANDS or SLOT_LEGS, for handcuffs or legcuffs
+
+
+
diff --git a/obj/item/spacecash.html b/obj/item/spacecash.html
new file mode 100644
index 000000000000..8f0e71b640dc
--- /dev/null
+++ b/obj/item/spacecash.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/spacecash - byond
+
+
+
+
+
+
+Vars
+ counterfeit 'Counterfeit' bills cannot be inserted into the black market for dosh. Their worth is also quartered when entered into an ATM.
+ Var Details counterfeit
+
+
+
+
+
+ 'Counterfeit' bills cannot be inserted into the black market for dosh. Their worth is also quartered when entered into an ATM.
+
+
+
diff --git a/obj/item/spec_kit.html b/obj/item/spec_kit.html
new file mode 100644
index 000000000000..4f5750497d1d
--- /dev/null
+++ b/obj/item/spec_kit.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/spec_kit - byond
+
+
+
+
+
+
+
+ Var Details squad_assignment_update
+
+
+
+
+
+ Used for cryo specs who already have "foxtrot" appended to their ID assignments
+
+
+
diff --git a/obj/item/stack.html b/obj/item/stack.html
new file mode 100644
index 000000000000..7e8aab92ab24
--- /dev/null
+++ b/obj/item/stack.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/stack - byond
+
+
+
+
+
+
+Vars
+ amount_sprites does it have sprites for extra amount, like metal, plasteel, or wood
+ display_maptext does it show amount on top of the icon
+ max_amount also see stack recipes initialisation, param "max_res_amount" must be equal to this max_amount
+ stack_id used to determine if two stacks are of the same kind.
+ Var Details amount_sprites
+
+
+
+
+
+ does it have sprites for extra amount, like metal, plasteel, or wood
display_maptext
+
+
+
+
+
+ does it show amount on top of the icon
max_amount
+
+
+
+
+
+ also see stack recipes initialisation, param "max_res_amount" must be equal to this max_amount
stack_id
+
+
+
+
+
+ used to determine if two stacks are of the same kind.
+
+
+
diff --git a/obj/item/storage.html b/obj/item/storage.html
new file mode 100644
index 000000000000..586c73c53c3f
--- /dev/null
+++ b/obj/item/storage.html
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+ /obj/item/storage - byond
+
+
+
+
+
+
+This contains what previously was known as stored_start, stored_continue, and stored_end
Vars
+ can_hold_skill Whether to use map-variant skins.
+Special can_holds that require a skill to insert, it is an associated list of typepath = list(skilltype, skilllevel)
+ can_hold_skill_only Dictates whether or not we only check for items in can_hold_skill rather than can_hold or free usage
+ required_skill_for_nest_opening The required skill for opening this storage if it is inside another storage type
+ required_skill_level_for_nest_opening The required level of a skill for opening this storage if it is inside another storage type Procs
+ _item_insertion Inserts the item. Separate proc because handle_item_insertion isn't guaranteed to insert
+and it therefore isn't safe to override it before calling parent. Updates icon when done.
+Can be called directly but only if the item was spawned inside src - handle_item_insertion is safer.
+W is always an item. stop_warning prevents messaging. user may be null.
+ _item_removal Separate proc because remove_from_storage isn't guaranteed to finish. Can be called directly if the target atom exists and is an item. Updates icon when done.
+ handle_item_insertion Handler for inserting items. It does not perform any checks of whether an item can or can't be inserted into the storage item.
+That's done by can_be_inserted(). Its checks are whether the item exists, is an item, and (if it's held by a mob) the mob can drop it.
+The stop_warning parameter will stop the insertion message from being displayed. It is intended for cases where you are inserting multiple
+items at once, such as when picking up all the items on a tile with one click.
+user can be null, it refers to the potential mob doing the insertion.
+ has_room Returns TRUE if there is room for the given item. W_class_override allows checking for just a generic W_class, meant for checking shotgun handfuls without having to spawn and delete one just to check.
+ hide_from Used to hide the storage's inventory screen.
+ post_skin_selection Things to be done after selecting a map skin (if any) and before adding inventory and updating icon for the first time. Most likely saving basic icon state.
+ remove_from_storage Call this proc to handle the removal of an item from the storage item. The item will be moved to the atom sent as new_target.
+ storage_close Used to close the storage item. Used a lot - if tying it to special effects, use a content_watchers check to make sure it's closed properly and no-one's looking inside.
+ Var Details can_hold_skill
+
+
+
+
+
+ Whether to use map-variant skins.
+Special can_holds that require a skill to insert, it is an associated list of typepath = list(skilltype, skilllevel)
can_hold_skill_only
+
+
+
+
+
+ Dictates whether or not we only check for items in can_hold_skill rather than can_hold or free usage
required_skill_for_nest_opening
+
+
+
+
+
+ The required skill for opening this storage if it is inside another storage type
required_skill_level_for_nest_opening
+
+
+
+
+
+ The required level of a skill for opening this storage if it is inside another storage type
Proc Details _item_insertion
+
+ Inserts the item. Separate proc because handle_item_insertion isn't guaranteed to insert
+and it therefore isn't safe to override it before calling parent. Updates icon when done.
+Can be called directly but only if the item was spawned inside src - handle_item_insertion is safer.
+W is always an item. stop_warning prevents messaging. user may be null.
_item_removal
+
+ Separate proc because remove_from_storage isn't guaranteed to finish. Can be called directly if the target atom exists and is an item. Updates icon when done.
handle_item_insertion(/obj /item /new_item, prevent_warning, /mob /user)
+
+
+
+
+
+ Handler for inserting items. It does not perform any checks of whether an item can or can't be inserted into the storage item.
+That's done by can_be_inserted(). Its checks are whether the item exists, is an item, and (if it's held by a mob) the mob can drop it.
+The stop_warning parameter will stop the insertion message from being displayed. It is intended for cases where you are inserting multiple
+items at once, such as when picking up all the items on a tile with one click.
+user can be null, it refers to the potential mob doing the insertion.
has_room(/obj /item /new_item, W_class_override)
+
+
+
+
+
+ Returns TRUE if there is room for the given item. W_class_override allows checking for just a generic W_class, meant for checking shotgun handfuls without having to spawn and delete one just to check.
hide_from
+
+ Used to hide the storage's inventory screen.
post_skin_selection()
+
+
+
+
+
+ Things to be done after selecting a map skin (if any) and before adding inventory and updating icon for the first time. Most likely saving basic icon state.
remove_from_storage
+
+ Call this proc to handle the removal of an item from the storage item. The item will be moved to the atom sent as new_target.
storage_close
+
+ Used to close the storage item. Used a lot - if tying it to special effects, use a content_watchers check to make sure it's closed properly and no-one's looking inside.
+
+
+
diff --git a/obj/item/storage/backpack/marine/satchel/rto.html b/obj/item/storage/backpack/marine/satchel/rto.html
new file mode 100644
index 000000000000..cca9d06036b4
--- /dev/null
+++ b/obj/item/storage/backpack/marine/satchel/rto.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/storage/backpack/marine/satchel/rto - byond
+
+
+
+
+
+
+Procs
+ autoset_phone_id Automatically sets the phone_id based on the current or updated user
Proc Details autoset_phone_id
+
+ Automatically sets the phone_id based on the current or updated user
+
+
+
diff --git a/obj/item/storage/belt.html b/obj/item/storage/belt.html
new file mode 100644
index 000000000000..d7c1820fd579
--- /dev/null
+++ b/obj/item/storage/belt.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/storage/belt - byond
+
+
+
+
+
+
+Vars
+ flap TRUE Means that it closes a flap over its contents, and therefore update_icon should lift that flap when opened. If it doesn't have _half and _full iconstates, this doesn't matter either way.
+ Var Details flap
+
+
+
+
+
+ TRUE Means that it closes a flap over its contents, and therefore update_icon should lift that flap when opened. If it doesn't have _half and _full iconstates, this doesn't matter either way.
+
+
+
diff --git a/obj/item/storage/belt/gun.html b/obj/item/storage/belt/gun.html
new file mode 100644
index 000000000000..f6c4e458c0ce
--- /dev/null
+++ b/obj/item/storage/belt/gun.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/storage/belt/gun - byond
+
+
+
+
+
+
+GUN BELTS
Vars
+ base_icon Used to get flap overlay states as inserting a gun changes icon state.
+ holster_slots Array of holster slots and stats to use for them. First layer is "1", "2" etc. Guns are stored in both the slot and the holstered_guns list which keeps track of which was last inserted.
+ Var Details base_icon
+
+
+
+
+
+ Used to get flap overlay states as inserting a gun changes icon state.
holster_slots
+ – /list/obj/item/weapon/gun
+
+
+
+
+ Array of holster slots and stats to use for them. First layer is "1", "2" etc. Guns are stored in both the slot and the holstered_guns list which keeps track of which was last inserted.
+
+
+
diff --git a/obj/item/storage/large_holster.html b/obj/item/storage/large_holster.html
new file mode 100644
index 000000000000..08ac4aeba352
--- /dev/null
+++ b/obj/item/storage/large_holster.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/storage/large_holster - byond
+
+
+
+
+
+
+Vars
+ base_icon Icon/item states change based on contents; this stores base icon state.
+ Var Details base_icon
+
+
+
+
+
+ Icon/item states change based on contents; this stores base icon state.
+
+
+
diff --git a/obj/item/storage/large_holster/m39.html b/obj/item/storage/large_holster/m39.html
new file mode 100644
index 000000000000..689f7938ea52
--- /dev/null
+++ b/obj/item/storage/large_holster/m39.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/storage/large_holster/m39 - byond
+
+
+
+
+
+
+Vars
+ gun_offset Guns have a hud offset that throws the vis_contents alignment off.
+ gun_scaling Whether the gun had pixel scaling set before being holstered.
+ Var Details gun_offset
+
+
+
+
+
+ Guns have a hud offset that throws the vis_contents alignment off.
gun_scaling
+
+
+
+
+
+ Whether the gun had pixel scaling set before being holstered.
+
+
+
diff --git a/obj/item/storage/pouch.html b/obj/item/storage/pouch.html
new file mode 100644
index 000000000000..85ba1a6fb376
--- /dev/null
+++ b/obj/item/storage/pouch.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/storage/pouch - byond
+
+
+
+
+
+
+Vars
+ flap If it closes a flap over its contents, and therefore update_icon should lift that flap when opened. If it doesn't have _half and _full iconstates, this doesn't matter either way.
+ Var Details flap
+
+
+
+
+
+ If it closes a flap over its contents, and therefore update_icon should lift that flap when opened. If it doesn't have _half and _full iconstates, this doesn't matter either way.
+
+
+
diff --git a/obj/item/storage/pouch/pistol.html b/obj/item/storage/pouch/pistol.html
new file mode 100644
index 000000000000..746bb87ed9a8
--- /dev/null
+++ b/obj/item/storage/pouch/pistol.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/storage/pouch/pistol - byond
+
+
+
+
+
+
+Pistol pouch.
Vars
+ current_gun Display code pulled from belt.dm gun belt. Can shave quite a lot off because this pouch can only hold one item at a time.
+ Var Details
+ Display code pulled from belt.dm gun belt. Can shave quite a lot off because this pouch can only hold one item at a time.
+
+
+
diff --git a/obj/item/storage/toolkit.html b/obj/item/storage/toolkit.html
new file mode 100644
index 000000000000..9f69db8df77f
--- /dev/null
+++ b/obj/item/storage/toolkit.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/storage/toolkit - byond
+
+
+
+
+
+
+Vars
+ icon_full icon state to use when kit is full
+ Var Details icon_full
+
+
+
+
+
+ icon state to use when kit is full
+
+
+
diff --git a/obj/item/tape.html b/obj/item/tape.html
new file mode 100644
index 000000000000..d47f103aad00
--- /dev/null
+++ b/obj/item/tape.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/tape - byond
+
+
+
+
+
+
+Vars
+ flipped_name used to store the tape's name for one side and the other side
+ initial_icon_state Because we can't expect God to do all the work.
+ storedinfo Numbered list of chat messages the recorder has heard with spans and prepended timestamps. Used for playback and transcription.
+ timestamp Numbered list of seconds the messages in the previous list appear at on the tape. Used by playback to get the timing right.
+ Var Details flipped_name
+
+
+
+
+
+ used to store the tape's name for one side and the other side
initial_icon_state
+
+
+
+
+
+ Because we can't expect God to do all the work.
storedinfo
+
+
+
+
+
+ Numbered list of chat messages the recorder has heard with spans and prepended timestamps. Used for playback and transcription.
timestamp
+
+
+
+
+
+ Numbered list of seconds the messages in the previous list appear at on the tape. Used by playback to get the timing right.
+
+
+
diff --git a/obj/item/tool/extinguisher/mini.html b/obj/item/tool/extinguisher/mini.html
new file mode 100644
index 000000000000..4cf67ea41538
--- /dev/null
+++ b/obj/item/tool/extinguisher/mini.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tool/extinguisher/mini - byond
+
+
+
+
+
+
+Vars
+ hitsound it is much lighter, after all.
+ Var Details hitsound
+
+
+
+
+
+ it is much lighter, after all.
+
+
+
diff --git a/obj/item/tool/extinguisher/pyro/atmos_tank.html b/obj/item/tool/extinguisher/pyro/atmos_tank.html
new file mode 100644
index 000000000000..f911f101ffde
--- /dev/null
+++ b/obj/item/tool/extinguisher/pyro/atmos_tank.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tool/extinguisher/pyro/atmos_tank - byond
+
+
+
+
+
+
+Vars
+ max_water so it never runs out, theoretically
+ Var Details max_water
+
+
+
+
+
+ so it never runs out, theoretically
+
+
+
diff --git a/obj/item/tool/hand_labeler.html b/obj/item/tool/hand_labeler.html
new file mode 100644
index 000000000000..5a29252d50d8
--- /dev/null
+++ b/obj/item/tool/hand_labeler.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ /obj/item/tool/hand_labeler - byond
+
+
+
+
+
+
+Vars
+ mode off or on. Procs
+ attackby Allow the user to refill the labeller
+@I what is the item trying to be used
+@user what is using paper on the handler
+ Var Details mode
+
+
+
+
+
+ off or on.
Proc Details attackby
+
+ Allow the user to refill the labeller
+@I what is the item trying to be used
+@user what is using paper on the handler
+
+
+
diff --git a/obj/item/tool/kitchen/tray.html b/obj/item/tool/kitchen/tray.html
new file mode 100644
index 000000000000..97d3371bddc0
--- /dev/null
+++ b/obj/item/tool/kitchen/tray.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tool/kitchen/tray - byond
+
+
+
+
+
+
+Vars
+ cooldown shield bash cooldown. based on world.time
+ Var Details cooldown
+
+
+
+
+
+ shield bash cooldown. based on world.time
+
+
+
diff --git a/obj/item/tool/kitchen/utensil.html b/obj/item/tool/kitchen/utensil.html
new file mode 100644
index 000000000000..74546b64734a
--- /dev/null
+++ b/obj/item/tool/kitchen/utensil.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tool/kitchen/utensil - byond
+
+
+
+
+
+
+Vars
+ loaded Descriptive string for currently loaded food object.
+ Var Details loaded
+
+
+
+
+
+ Descriptive string for currently loaded food object.
+
+
+
diff --git a/obj/item/tool/pen.html b/obj/item/tool/pen.html
new file mode 100644
index 000000000000..fe7c01ff11cc
--- /dev/null
+++ b/obj/item/tool/pen.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tool/pen - byond
+
+
+
+
+
+
+
+ Var Details pen_color
+
+
+
+
+
+ what color the ink is!
+
+
+
diff --git a/obj/item/tool/pen/fountain.html b/obj/item/tool/pen/fountain.html
new file mode 100644
index 000000000000..7d5445282f0b
--- /dev/null
+++ b/obj/item/tool/pen/fountain.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/tool/pen/fountain - byond
+
+
+
+
+
+
+Procs
+ set_owner Sets the owner of the pen to who it spawns with, requires var/source for signals
Proc Details set_owner
+
+ Sets the owner of the pen to who it spawns with, requires var/source for signals
+
+
+
diff --git a/obj/item/tool/pickaxe.html b/obj/item/tool/pickaxe.html
new file mode 100644
index 000000000000..ffaf8b2aec0b
--- /dev/null
+++ b/obj/item/tool/pickaxe.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tool/pickaxe - byond
+
+
+
+
+
+
+Vars
+ digspeed moving the delay to an item var so R&D can make improved picks. --NEO
+ Var Details digspeed
+
+
+
+
+
+ moving the delay to an item var so R&D can make improved picks. --NEO
+
+
+
diff --git a/obj/item/tool/pickaxe/diamonddrill.html b/obj/item/tool/pickaxe/diamonddrill.html
new file mode 100644
index 000000000000..ce64530080e1
--- /dev/null
+++ b/obj/item/tool/pickaxe/diamonddrill.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tool/pickaxe/diamonddrill - byond
+
+
+
+
+
+
+Vars
+ digspeed Digs through walls, girders, and can dig up sand
+ Var Details digspeed
+
+
+
+
+
+ Digs through walls, girders, and can dig up sand
+
+
+
diff --git a/obj/item/tool/pickaxe/drill.html b/obj/item/tool/pickaxe/drill.html
new file mode 100644
index 000000000000..6946cb13c29d
--- /dev/null
+++ b/obj/item/tool/pickaxe/drill.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tool/pickaxe/drill - byond
+
+
+
+
+
+
+Vars
+ name Can dig sand as well!
+ Var Details name
+
+
+
+
+
+ Can dig sand as well!
+
+
+
diff --git a/obj/item/tool/pickaxe/jackhammer.html b/obj/item/tool/pickaxe/jackhammer.html
new file mode 100644
index 000000000000..2cee7ff9903a
--- /dev/null
+++ b/obj/item/tool/pickaxe/jackhammer.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tool/pickaxe/jackhammer - byond
+
+
+
+
+
+
+Vars
+ digspeed faster than drill, but cannot dig
+ Var Details digspeed
+
+
+
+
+
+ faster than drill, but cannot dig
+
+
+
diff --git a/obj/item/tool/pickaxe/plasmacutter.html b/obj/item/tool/pickaxe/plasmacutter.html
new file mode 100644
index 000000000000..258a6762be41
--- /dev/null
+++ b/obj/item/tool/pickaxe/plasmacutter.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/tool/pickaxe/plasmacutter - byond
+
+
+
+
+
+
+Vars
+ digspeed Can slice though normal walls, all girders, or be used in reinforced wall deconstruction/ light thermite on fire
+ w_class it is smaller than the pickaxe
+ Var Details digspeed
+
+
+
+
+
+ Can slice though normal walls, all girders, or be used in reinforced wall deconstruction/ light thermite on fire
w_class
+
+
+
+
+
+ it is smaller than the pickaxe
+
+
+
diff --git a/obj/item/tool/shovel.html b/obj/item/tool/shovel.html
new file mode 100644
index 000000000000..67691b73a696
--- /dev/null
+++ b/obj/item/tool/shovel.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tool/shovel - byond
+
+
+
+
+
+
+Vars
+ dirt_type 0 for no dirt, 1 for brown dirt, 2 for snow, 3 for big red.
+ Var Details dirt_type
+
+
+
+
+
+ 0 for no dirt, 1 for brown dirt, 2 for snow, 3 for big red.
+
+
+
diff --git a/obj/item/tool/surgery.html b/obj/item/tool/surgery.html
new file mode 100644
index 000000000000..6315fddf1b89
--- /dev/null
+++ b/obj/item/tool/surgery.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tool/surgery - byond
+
+
+
+
+
+
+
+ Var Details attack_speed
+
+
+
+
+
+ reduced
+
+
+
diff --git a/obj/item/tool/surgery/bonegel.html b/obj/item/tool/surgery/bonegel.html
new file mode 100644
index 000000000000..b278d1a683a7
--- /dev/null
+++ b/obj/item/tool/surgery/bonegel.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/item/tool/surgery/bonegel - byond
+
+
+
+
+
+
+
+ Var Details base_icon_state
+
+
+
+
+
+ base icon state for update_icon() to reference, fixes bonegel/empty
fracture_fix_cost
+
+
+
+
+
+ How much bone gel is needed to fix a fracture
mend_bones_fix_cost
+
+
+
+
+
+ How much bone gel is needed to mend bones
refilling
+
+
+
+
+
+ if the bone gel is actively being refilled
remaining_gel
+
+
+
+
+
+ percent of gel remaining in container
time_per_refill
+
+
+
+
+
+ Time it takes per 10% of gel refilled
unlimited_gel
+
+
+
+
+
+ If gel is used when doing bone surgery
+
+
+
diff --git a/obj/item/tool/surgery/scalpel/laser.html b/obj/item/tool/surgery/scalpel/laser.html
new file mode 100644
index 000000000000..03d5b6d0c140
--- /dev/null
+++ b/obj/item/tool/surgery/scalpel/laser.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tool/surgery/scalpel/laser - byond
+
+
+
+
+
+
+Vars
+ bloodlessprob The likelihood an incision made with this will be bloodless.
+ Var Details bloodlessprob
+
+
+
+
+
+ The likelihood an incision made with this will be bloodless.
+
+
+
diff --git a/obj/item/tool/weldingtool.html b/obj/item/tool/weldingtool.html
new file mode 100644
index 000000000000..2d4e7a221d31
--- /dev/null
+++ b/obj/item/tool/weldingtool.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/tool/weldingtool - byond
+
+
+
+
+
+
+Vars
+ max_fuel The max amount of fuel the welder can hold
+ weld_tick Used to slowly deplete the fuel when the tool is left on.
+ welding Whether or not the blowtorch is off(0), on(1) or currently welding(2)
+ Var Details max_fuel
+
+
+
+
+
+ The max amount of fuel the welder can hold
weld_tick
+
+
+
+
+
+ Used to slowly deplete the fuel when the tool is left on.
welding
+
+
+
+
+
+ Whether or not the blowtorch is off(0), on(1) or currently welding(2)
+
+
+
diff --git a/obj/item/tool/weldpack.html b/obj/item/tool/weldpack.html
new file mode 100644
index 000000000000..2f5953f48fa0
--- /dev/null
+++ b/obj/item/tool/weldpack.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/tool/weldpack - byond
+
+
+
+
+
+
+Vars
+ health More robust liner I guess
+ max_fuel Because the marine backpack can carry 260, and still allows you to take items, there should be a reason to still use this one.
+ original_health placeholder value to be replaced in init
+ Var Details health
+
+
+
+
+
+ More robust liner I guess
max_fuel
+
+
+
+
+
+ Because the marine backpack can carry 260, and still allows you to take items, there should be a reason to still use this one.
original_health
+
+
+
+
+
+ placeholder value to be replaced in init
+
+
+
diff --git a/obj/item/tool/weldpack/minitank.html b/obj/item/tool/weldpack/minitank.html
new file mode 100644
index 000000000000..faa725a88e59
--- /dev/null
+++ b/obj/item/tool/weldpack/minitank.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tool/weldpack/minitank - byond
+
+
+
+
+
+
+Vars
+ max_fuel Just barely enough to be better than the satchel
+ Var Details max_fuel
+
+
+
+
+
+ Just barely enough to be better than the satchel
+
+
+
diff --git a/obj/item/toy/crayon.html b/obj/item/toy/crayon.html
new file mode 100644
index 000000000000..f1ba41b6c549
--- /dev/null
+++ b/obj/item/toy/crayon.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/toy/crayon - byond
+
+
+
+
+
+
+Vars
+ uses 0 for unlimited uses
+ Var Details uses
+
+
+
+
+
+ 0 for unlimited uses
+
+
+
diff --git a/obj/item/toy/plush/random_plushie.html b/obj/item/toy/plush/random_plushie.html
new file mode 100644
index 000000000000..770036e97bae
--- /dev/null
+++ b/obj/item/toy/plush/random_plushie.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/toy/plush/random_plushie - byond
+
+
+
+
+
+
+Vars
+ plush_list Standard plushies for the spawner to pick from
+ therapy_plush_list Therapy plushies left separately to not flood the entire list Procs
+ create_plushie The randomizer picking and spawning a plushie on either the ground or in the humans backpack. Needs var/source due to signals
+ Var Details plush_list
+
+
+
+
+
+ Standard plushies for the spawner to pick from
therapy_plush_list
+
+
+
+
+
+ Therapy plushies left separately to not flood the entire list
Proc Details create_plushie
+
+ The randomizer picking and spawning a plushie on either the ground or in the humans backpack. Needs var/source due to signals
+
+
+
diff --git a/obj/item/toy/plush/runner.html b/obj/item/toy/plush/runner.html
new file mode 100644
index 000000000000..736cf5d1a0e4
--- /dev/null
+++ b/obj/item/toy/plush/runner.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/toy/plush/runner - byond
+
+
+
+
+
+
+Vars
+ beret If the runner is wearing a beret
+ Var Details beret
+
+
+
+
+
+ If the runner is wearing a beret
+
+
+
diff --git a/obj/item/toy/plush/therapy/random_color.html b/obj/item/toy/plush/therapy/random_color.html
new file mode 100644
index 000000000000..9963a2f33bf0
--- /dev/null
+++ b/obj/item/toy/plush/therapy/random_color.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/toy/plush/therapy/random_color - byond
+
+
+
+
+
+
+
+ Var Details hexadecimal
+
+
+
+
+
+ Hexadecimal 0-F (0-15)
+
+
+
diff --git a/obj/item/weapon/gun.html b/obj/item/weapon/gun.html
new file mode 100644
index 000000000000..86d703a324e9
--- /dev/null
+++ b/obj/item/weapon/gun.html
@@ -0,0 +1,754 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun - byond
+
+
+
+
+
+
+Vars
+ PB_burst_bullets_fired When PB burst firing and handing off to /fire after a target moves out of range, this is how many bullets have been fired.
+ accuracy_mult Multiplier. Increased and decreased through attachments. Multiplies the projectile's accuracy by this number.
+ accuracy_mult_unwielded Multiplier. Increased and decreased through attachments. Multiplies the projectile's accuracy when unwielded by this number.
+ active_attachable This will link to one of the attachments, or remain null.
+ aim_slowdown Self explanatory. How much does aiming (wielding the gun) slow you
+ ammo How the bullet will behave once it leaves the gun, also used for basic bullet damage and effects, etc.
+Ammo will be replaced on New() for things that do not use mags.
+ attachable_allowed Must be the exact path to the attachment present in the list. Empty list for a default.
+ attachable_offset Is a list, see examples of from the other files. Initiated on New() because lists don't initial() properly.
+ attachable_overlays List of overlays so we can switch them in an out, instead of using Cut() on overlays.
+ attachments List of all current attachments on the gun.
+ autofire_slow_mult The multiplier for how much slower this should fire in automatic mode. 1 is normal, 1.2 is 20% slower, 2 is 100% slower, etc. Protected due to it never needing to be edited.
+ automatic Used to determine if you can target multiple people.
+ base_gun_icon the default gun icon_state. change to reskin the gun
+ burst_amount How many shots can the weapon shoot in burst? Anything less than 2 and you cannot toggle burst. Use modify_burst_amount and set_burst_amount instead of modifying this
+ burst_delay The delay in between shots. Lower = less delay = faster. Use modify_burst_delay and set_burst_delay instead of modifying this
+ burst_scatter_mult Multiplier. Increases or decreases how much bonus scatter is added with each bullet during burst fire (wielded only).
+ caliber Determines what kind of bullet is created when the gun is unloaded - used to match rounds to magazines. Set automatically when reloading.
+ cock_cooldown world.time value, to prevent COCK COCK COCK COCK
+ cock_delay Delay before we can cock again, in tenths of seconds
+ damage_buildup_mult Multiplier. Increased and decreased through attachments. Multiplies the projectile's damage bleed (buildup) by this number.
+ damage_falloff_mult Multiplier. Increased and decreased through attachments. Multiplies the projectile's damage bleed (falloff) by this number.
+ damage_mult Multiplier. Increased and decreased through attachments. Multiplies the projectile's damage by this number.
+ delay_style Determines what happens when you fire a gun before its wield or pull time has finished. This one is extra scatter and an acc. malus.
+ effective_range_max What maximum range the weapon deals full damage, tapers off using damage_falloff after hitting this value. 0 for no maximum.
+ effective_range_min What minimum range the weapon deals full damage, builds up the closer you get. 0 for no minimum.
+ extra_delay When burst-firing, this number is extra time before the weapon can fire again. Depends on number of rounds fired.
+ fa_firing Whether or not the gun is firing full-auto
+ fa_max_scatter How bad does the scatter get on full auto?
+ fa_params Click parameters to use when firing full-auto
+ fa_scatter_peak How many full-auto shots to get to max scatter?
+ fire_delay For regular shots, how long to wait before firing again. Use modify_fire_delay and set_fire_delay instead of modifying this on the fly
+ fire_delay_group The group or groups of the gun where a fire delay is applied and the delays applied to each group when the gun is dropped
+after being fired
+ fire_rattle Does our gun have a unique empty mag sound? If so use instead of pitch shifting.
+ fire_sounds If fire_sound is null, it will pick a sound from the list here instead.
+ guaranteed_delay_time Storing value for guaranteed delay
+ gun_category Only guns of the same category can be fired together while dualwielding.
+ gun_firemode Current selected firemode of the gun.
+ gun_firemode_list List of allowed firemodes.
+ gun_user Current user (holding) of the gun. Set with set_gun_user()
+ has_empty_icon whether gun has icon state of (base_gun_icon)_e
+ has_open_icon whether gun has icon state of (base_gun_icon)_o
+ in_chamber What is currently in the chamber. Most guns will want something in the chamber upon creation.
+ last_fired When it was last fired, related to world.time.
+ last_moved_mob Used to fire faster at more than one person.
+ movement_onehanded_acc_penalty_mult Multiplier. Increased and decreased through attachments. Multiplies the accuracy/scatter penalty of the projectile when firing onehanded while moving.
+ muzzle_flash_color Color of the muzzle flash light effect.
+ muzzle_flash_lum muzzle flash brightness
+ projectile_type The type of projectile that this gun should shoot
+ pull_time Storing value for how long pulling a gun takes before you can use it
+ random_muzzle_chance Chance for random spawn to give this gun a muzzle attachment.
+ random_rail_chance Chance for random spawn to give this gun a rail attachment.
+ random_spawn_chance Chance for random attachments to spawn in general.
+ random_spawn_muzzle Used when a gun will have a chance to spawn with attachments.
+ random_spawn_stock Used when a gun will have a chance to spawn with attachments.
+ random_spawn_under Used when a gun will have a chance to spawn with attachments.
+ random_stock_chance Chance for random spawn to give this gun a stock attachment.
+ random_under_chance Chance for random spawn to give this gun a underbarrel attachment.
+ recoil Screen shake when the weapon is fired.
+ recoil_buildup The recoil on a dynamic recoil gun
+ recoil_buildup_limit The limit at which the recoil on a gun can reach. Usually the maximum value
+ recoil_loss_per_second How much recoil_buildup is lost per second. Builds up as time passes, and is set to 0 when a single shot is fired
+ recoil_unwielded Multiplier. Increased and decreased through attachments. Multiplies the gun's recoil when unwielded by this number.
+ scatter How much the bullet scatters when fired.
+ scatter_unwielded Multiplier. Increased and decreased through attachments. Multiplies the projectile's scatter when the gun is unwielded by this number.
+ shots_fired How many bullets the gun fired while bursting/auto firing
+ start_automatic If this gun should spawn with automatic fire. Protected due to it never needing to be edited.
+ start_semiauto If this gun should spawn with semi-automatic fire. Protected due to it never needing to be edited.
+ starting_attachment_types What attachments this gun starts with THAT CAN BE REMOVED. Important to avoid nuking the attachments on restocking! Added on New()
+ target Currently selected target to fire at. Set with set_target()
+ told_cant_shoot So that it doesn't spam them with the fact they cannot hit them.
+ traits_to_give
+ velocity_add Added velocity to fired bullet.
+ wield_delay How long between wielding and firing in tenths of seconds
+ wield_time Storing value for wield delay. Procs
+ add_bullet_traits @bullet_trait_entries: A list of bullet trait entries
+ change_target Update the target if you draged your mouse
+ clean_target Set the target to its turf, so we keep shooting even when it was qdeled
+ fire_wrapper Wrapper proc for the autofire subsystem to ensure the important args aren't null
+ force_light If this gun has a relevant flashlight attachable attached, (de)activate it
+ get_fire_delay getter for fire_delay
+ get_gun_user Getter for gun_user
+ has_ammunition Returns TRUE if the weapon is loaded. Separate proc because there's no single way to check this for all weapons: chamber isn't always loaded,
+not all weapons use normal magazines etc. load_into_chamber() itself is designed to be called immediately before firing, and isn't suitable.
+ is_civilian_usable Returns one of the two override values if either are null, preferring the argument value.
+Otherwise, returns TRUE if it is in a civilian usable category (Handguns or SMGs), FALSE if it is not.
+ light_sources check if the gun contains any light source that is currently turned on.
+ load_into_chamber load_into_chamber(), reload_into_chamber(), and clear_jam() do all of the heavy lifting.
+If you need to change up how a gun fires, just change these procs for that subtype
+and you're good to go.
+ modify_burst_amount adder for burst_amount
+ modify_burst_delay Adder for burst_delay
+ modify_fire_delay adder for fire_delay
+ remove_bullet_traits @bullet_traits: A list of bullet trait typepaths or ids
+ reset_fire Clean all references
+ reset_light_range called by a timer to remove the light range from muzzle flash
+ set_auto_firing Setter proc for fa_firing
+ set_bullet_traits Populate traits_to_give in this proc
+ set_burst_amount setter for burst_amount
+ set_burst_delay Setter for burst_delay
+ set_bursting Setter proc to toggle burst firing
+ set_fire_delay setter for fire_delay
+ set_target Set the target and take care of hard delete
+ start_fire Check if the gun can fire and add it to bucket auto_fire system if needed, or just fire the gun if not
+ turn_off_light This function actually turns the lights on the gun off
+ unload_chamber Unload a chambered round, if one exists, and empty the chamber.
+ Var Details PB_burst_bullets_fired
+
+
+
+
+
+ When PB burst firing and handing off to /fire after a target moves out of range, this is how many bullets have been fired.
accuracy_mult
+
+
+
+
+
+ Multiplier. Increased and decreased through attachments. Multiplies the projectile's accuracy by this number.
accuracy_mult_unwielded
+
+
+
+
+
+ Multiplier. Increased and decreased through attachments. Multiplies the projectile's accuracy when unwielded by this number.
+ This will link to one of the attachments, or remain null.
aim_slowdown
+
+
+
+
+
+ Self explanatory. How much does aiming (wielding the gun) slow you
ammo
+
+
+
+
+
+ How the bullet will behave once it leaves the gun, also used for basic bullet damage and effects, etc.
+Ammo will be replaced on New() for things that do not use mags.
attachable_allowed
+
+
+
+
+
+ Must be the exact path to the attachment present in the list. Empty list for a default.
attachable_offset
+
+
+
+
+
+ Is a list, see examples of from the other files. Initiated on New() because lists don't initial() properly.
attachable_overlays
+
+
+
+
+
+ List of overlays so we can switch them in an out, instead of using Cut() on overlays.
attachments
+
+
+
+
+
+ List of all current attachments on the gun.
autofire_slow_mult
+
+
+
+
+
+ The multiplier for how much slower this should fire in automatic mode. 1 is normal, 1.2 is 20% slower, 2 is 100% slower, etc. Protected due to it never needing to be edited.
automatic
+
+
+
+
+
+ Used to determine if you can target multiple people.
base_gun_icon
+
+
+
+
+
+ the default gun icon_state. change to reskin the gun
burst_amount
+
+
+
+
+
+ How many shots can the weapon shoot in burst? Anything less than 2 and you cannot toggle burst. Use modify_burst_amount and set_burst_amount instead of modifying this
burst_delay
+
+
+
+
+
+ The delay in between shots. Lower = less delay = faster. Use modify_burst_delay and set_burst_delay instead of modifying this
burst_scatter_mult
+
+
+
+
+
+ Multiplier. Increases or decreases how much bonus scatter is added with each bullet during burst fire (wielded only).
caliber
+
+
+
+
+
+ Determines what kind of bullet is created when the gun is unloaded - used to match rounds to magazines. Set automatically when reloading.
cock_cooldown
+
+
+
+
+
+ world.time value, to prevent COCK COCK COCK COCK
cock_delay
+
+
+
+
+
+ Delay before we can cock again, in tenths of seconds
damage_buildup_mult
+
+
+
+
+
+ Multiplier. Increased and decreased through attachments. Multiplies the projectile's damage bleed (buildup) by this number.
damage_falloff_mult
+
+
+
+
+
+ Multiplier. Increased and decreased through attachments. Multiplies the projectile's damage bleed (falloff) by this number.
damage_mult
+
+
+
+
+
+ Multiplier. Increased and decreased through attachments. Multiplies the projectile's damage by this number.
delay_style
+
+
+
+
+
+ Determines what happens when you fire a gun before its wield or pull time has finished. This one is extra scatter and an acc. malus.
effective_range_max
+
+
+
+
+
+ What maximum range the weapon deals full damage, tapers off using damage_falloff after hitting this value. 0 for no maximum.
effective_range_min
+
+
+
+
+
+ What minimum range the weapon deals full damage, builds up the closer you get. 0 for no minimum.
+ When burst-firing, this number is extra time before the weapon can fire again. Depends on number of rounds fired.
fa_firing
+
+
+
+
+
+ Whether or not the gun is firing full-auto
fa_max_scatter
+
+
+
+
+
+ How bad does the scatter get on full auto?
fa_params
+
+
+
+
+
+ Click parameters to use when firing full-auto
fa_scatter_peak
+
+
+
+
+
+ How many full-auto shots to get to max scatter?
fire_delay
+
+
+
+
+
+ For regular shots, how long to wait before firing again. Use modify_fire_delay and set_fire_delay instead of modifying this on the fly
fire_delay_group
+
+
+
+
+
+ The group or groups of the gun where a fire delay is applied and the delays applied to each group when the gun is dropped
+after being fired
+Guns with this var set will apply the gun's remaining fire delay to any other guns in the same group
+Set as null (does not apply any fire delays to any other gun group) or a list of fire delay groups (string defines)
+matched with the corresponding fire delays applied
fire_rattle
+
+
+
+
+
+ Does our gun have a unique empty mag sound? If so use instead of pitch shifting.
fire_sounds
+
+
+
+
+
+ If fire_sound is null, it will pick a sound from the list here instead.
guaranteed_delay_time
+
+
+
+
+
+ Storing value for guaranteed delay
gun_category
+
+
+
+
+
+ Only guns of the same category can be fired together while dualwielding.
gun_firemode
+
+
+
+
+
+ Current selected firemode of the gun.
gun_firemode_list
+
+
+
+
+
+ List of allowed firemodes.
gun_user
+
+
+
+
+
+ Current user (holding) of the gun. Set with set_gun_user()
has_empty_icon
+
+
+
+
+
+ whether gun has icon state of (base_gun_icon)_e
has_open_icon
+
+
+
+
+
+ whether gun has icon state of (base_gun_icon)_o
+ What is currently in the chamber. Most guns will want something in the chamber upon creation.
last_fired
+
+
+
+
+
+ When it was last fired, related to world.time.
last_moved_mob
+
+
+
+
+
+ Used to fire faster at more than one person.
movement_onehanded_acc_penalty_mult
+
+
+
+
+
+ Multiplier. Increased and decreased through attachments. Multiplies the accuracy/scatter penalty of the projectile when firing onehanded while moving.
muzzle_flash_color
+
+
+
+
+
+ Color of the muzzle flash light effect.
muzzle_flash_lum
+
+
+
+
+
+ muzzle flash brightness
projectile_type
+
+
+
+
+
+ The type of projectile that this gun should shoot
pull_time
+
+
+
+
+
+ Storing value for how long pulling a gun takes before you can use it
random_muzzle_chance
+
+
+
+
+
+ Chance for random spawn to give this gun a muzzle attachment.
random_rail_chance
+
+
+
+
+
+ Chance for random spawn to give this gun a rail attachment.
random_spawn_chance
+
+
+
+
+
+ Chance for random attachments to spawn in general.
random_spawn_muzzle
+
+
+
+
+
+ Used when a gun will have a chance to spawn with attachments.
random_spawn_stock
+
+
+
+
+
+ Used when a gun will have a chance to spawn with attachments.
random_spawn_under
+
+
+
+
+
+ Used when a gun will have a chance to spawn with attachments.
random_stock_chance
+
+
+
+
+
+ Chance for random spawn to give this gun a stock attachment.
random_under_chance
+
+
+
+
+
+ Chance for random spawn to give this gun a underbarrel attachment.
recoil
+
+
+
+
+
+ Screen shake when the weapon is fired.
recoil_buildup
+
+
+
+
+
+ The recoil on a dynamic recoil gun
recoil_buildup_limit
+
+
+
+
+
+ The limit at which the recoil on a gun can reach. Usually the maximum value
recoil_loss_per_second
+
+
+
+
+
+ How much recoil_buildup is lost per second. Builds up as time passes, and is set to 0 when a single shot is fired
recoil_unwielded
+
+
+
+
+
+ Multiplier. Increased and decreased through attachments. Multiplies the gun's recoil when unwielded by this number.
scatter
+
+
+
+
+
+ How much the bullet scatters when fired.
scatter_unwielded
+
+
+
+
+
+ Multiplier. Increased and decreased through attachments. Multiplies the projectile's scatter when the gun is unwielded by this number.
shots_fired
+
+
+
+
+
+ How many bullets the gun fired while bursting/auto firing
start_automatic
+
+
+
+
+
+ If this gun should spawn with automatic fire. Protected due to it never needing to be edited.
start_semiauto
+
+
+
+
+
+ If this gun should spawn with semi-automatic fire. Protected due to it never needing to be edited.
starting_attachment_types
+
+
+
+
+
+ What attachments this gun starts with THAT CAN BE REMOVED. Important to avoid nuking the attachments on restocking! Added on New()
target
+
+
+
+
+
+ Currently selected target to fire at. Set with set_target()
told_cant_shoot
+
+
+
+
+
+ So that it doesn't spam them with the fact they cannot hit them.
traits_to_give
+
+
+
+
+
+
+An assoc list in the format list(/datum/element/bullet_trait_to_give = list(...args))
+that will be given to a projectile with the current ammo datum*
+ velocity_add
+
+
+
+
+
+ Added velocity to fired bullet.
wield_delay
+
+
+
+
+
+ How long between wielding and firing in tenths of seconds
wield_time
+
+
+
+
+
+ Storing value for wield delay.
Proc Details add_bullet_traits(/list/list/bullet_trait_entries)
+
+
+
+
+
+ @bullet_trait_entries: A list of bullet trait entries
change_target(/datum /source, /atom /src_object, /atom /over_object, /turf /src_location, /turf /over_location, src_control, over_control, params)
+
+
+
+
+
+ Update the target if you draged your mouse
clean_target()
+
+
+
+
+
+ Set the target to its turf, so we keep shooting even when it was qdeled
fire_wrapper
+
+ Wrapper proc for the autofire subsystem to ensure the important args aren't null
force_light(on)
+
+
+
+
+
+ If this gun has a relevant flashlight attachable attached, (de)activate it
get_fire_delay(value)
+
+
+
+
+
+ getter for fire_delay
get_gun_user()
+
+
+
+
+
+ Getter for gun_user
has_ammunition()
+
+
+
+
+
+ Returns TRUE if the weapon is loaded. Separate proc because there's no single way to check this for all weapons: chamber isn't always loaded,
+not all weapons use normal magazines etc. load_into_chamber() itself is designed to be called immediately before firing, and isn't suitable.
is_civilian_usable(/mob /user, arg_override)
+
+
+
+
+
+ Returns one of the two override values if either are null, preferring the argument value.
+Otherwise, returns TRUE if it is in a civilian usable category (Handguns or SMGs), FALSE if it is not.
light_sources()
+
+
+
+
+
+ check if the gun contains any light source that is currently turned on.
load_into_chamber
+
+ load_into_chamber(), reload_into_chamber(), and clear_jam() do all of the heavy lifting.
+If you need to change up how a gun fires, just change these procs for that subtype
+and you're good to go.
modify_burst_amount(value, /mob /user)
+
+
+
+
+
+ adder for burst_amount
modify_burst_delay(value, /mob /user)
+
+
+
+
+
+ Adder for burst_delay
modify_fire_delay(value)
+
+
+
+
+
+ adder for fire_delay
remove_bullet_traits(/list/bullet_traits)
+
+
+
+
+
+ @bullet_traits: A list of bullet trait typepaths or ids
reset_fire()
+
+
+
+
+
+ Clean all references
reset_light_range(lightrange)
+
+
+
+
+
+ called by a timer to remove the light range from muzzle flash
set_auto_firing(auto)
+
+
+
+
+
+ Setter proc for fa_firing
set_bullet_traits()
+
+
+
+
+
+ Populate traits_to_give in this proc
set_burst_amount(value, /mob /user)
+
+
+
+
+
+ setter for burst_amount
set_burst_delay(value, /mob /user)
+
+
+
+
+
+ Setter for burst_delay
set_bursting(bursting)
+
+
+
+
+
+ Setter proc to toggle burst firing
set_fire_delay(value)
+
+
+
+
+
+ setter for fire_delay
set_target
+
+ Set the target and take care of hard delete
start_fire(/datum /source, /atom /object, /turf /location, control, params, bypass_checks)
+
+
+
+
+
+ Check if the gun can fire and add it to bucket auto_fire system if needed, or just fire the gun if not
turn_off_light(/mob /bearer)
+
+
+
+
+
+ This function actually turns the lights on the gun off
unload_chamber
+
+ Unload a chambered round, if one exists, and empty the chamber.
+
+
+
diff --git a/obj/item/weapon/gun/boltaction.html b/obj/item/weapon/gun/boltaction.html
new file mode 100644
index 000000000000..c9780e3764fb
--- /dev/null
+++ b/obj/item/weapon/gun/boltaction.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/boltaction - byond
+
+
+
+
+
+
+
+ Var Details has_openbolt_icon
+
+
+
+
+
+ If this gun should change icon states when the bolt is open
+
+
+
diff --git a/obj/item/weapon/gun/boltaction/vulture.html b/obj/item/weapon/gun/boltaction/vulture.html
new file mode 100644
index 000000000000..1106a6cab2dc
--- /dev/null
+++ b/obj/item/weapon/gun/boltaction/vulture.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/boltaction/vulture - byond
+
+
+
+
+
+
+Vars
+ bypass_trait If the gun should bypass the trait requirement
+ fire_message_range How far out people can tell the direction of the shot Procs
+ break_arm The code that takes care of breaking a person's firing arm
+ fired_without_bipod Someone tried to fire this without using a bipod, so we break their arm along with sending them flying backwards
+ Var Details bypass_trait
+
+
+
+
+
+ If the gun should bypass the trait requirement
fire_message_range
+
+
+
+
+
+ How far out people can tell the direction of the shot
Proc Details
+ The code that takes care of breaking a person's firing arm
fired_without_bipod
+
+ Someone tried to fire this without using a bipod, so we break their arm along with sending them flying backwards
+
+
+
diff --git a/obj/item/weapon/gun/energy/taser.html b/obj/item/weapon/gun/energy/taser.html
new file mode 100644
index 000000000000..95d12559aa34
--- /dev/null
+++ b/obj/item/weapon/gun/energy/taser.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/energy/taser - byond
+
+
+
+
+
+
+Vars
+ mode Determines if the taser will hit any target, or if it checks for wanted status. Default is wanted only. Procs
+ change_mode Changes between targetting wanted persons or any persons. Originally used by unique_action, made own proc to allow for use in action button too.
+ Var Details mode
+
+
+
+
+
+ Determines if the taser will hit any target, or if it checks for wanted status. Default is wanted only.
Proc Details change_mode
+
+ Changes between targetting wanted persons or any persons. Originally used by unique_action, made own proc to allow for use in action button too.
+
+
+
diff --git a/obj/item/weapon/gun/energy/yautja/plasmapistol.html b/obj/item/weapon/gun/energy/yautja/plasmapistol.html
new file mode 100644
index 000000000000..f6d2aa00925f
--- /dev/null
+++ b/obj/item/weapon/gun/energy/yautja/plasmapistol.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/energy/yautja/plasmapistol - byond
+
+
+
+
+
+
+Vars
+ charge_time Max amount of shots
+ mode standard (sc = 1) or incendiary (sc = 5)
+ shot_cost Amount of charge_time drained per shot
+ Var Details charge_time
+
+
+
+
+
+ Max amount of shots
mode
+
+
+
+
+
+ standard (sc = 1) or incendiary (sc = 5)
shot_cost
+
+
+
+
+
+ Amount of charge_time drained per shot
+
+
+
diff --git a/obj/item/weapon/gun/launcher.html b/obj/item/weapon/gun/launcher.html
new file mode 100644
index 000000000000..768489258d0b
--- /dev/null
+++ b/obj/item/weapon/gun/launcher.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/launcher - byond
+
+
+
+
+
+
+Vars
+ GL_has_empty_icon gun update_icon doesn't detect that guns with no magazine are loaded or not, and will always append _o or _e if possible.
+ GL_has_open_icon gun update_icon doesn't detect that guns with no magazine are loaded or not, and will always append _o or _e if possible.
+ cylinder Internal storage item used as magazine. Must be initialised to work! Set parameters by variables or it will inherit standard numbers from storage.dm. Got to call it something and 'magazine' or w/e would be confusing.
+ direct_draw Whether clicking a held weapon with an empty hand will open its inventory or draw a munition out.
+ has_cylinder Variable that initializes the above.
+ internal_max_w_class how big an item can be inserted.
+ internal_slots How many items can be inserted. "Null" = backpack-style size-based inventory. You'll have to set max_storage_space too if you do that, and arrange any initial contents. Iff you arrange to put in more items than the storage can hold, they can be taken out but not replaced.
+ preload What single item to fill the storage with, if any. This does not respect w_class.
+ use_sound the sfx played when the storage is opened.
+ Var Details GL_has_empty_icon
+
+
+
+
+
+ gun update_icon doesn't detect that guns with no magazine are loaded or not, and will always append _o or _e if possible.
GL_has_open_icon
+
+
+
+
+
+ gun update_icon doesn't detect that guns with no magazine are loaded or not, and will always append _o or _e if possible.
cylinder
+
+
+
+
+
+ Internal storage item used as magazine. Must be initialised to work! Set parameters by variables or it will inherit standard numbers from storage.dm. Got to call it something and 'magazine' or w/e would be confusing.
direct_draw
+
+
+
+
+
+ Whether clicking a held weapon with an empty hand will open its inventory or draw a munition out.
has_cylinder
+
+
+
+
+
+ Variable that initializes the above.
internal_max_w_class
+
+
+
+
+
+ how big an item can be inserted.
internal_slots
+
+
+
+
+
+ How many items can be inserted. "Null" = backpack-style size-based inventory. You'll have to set max_storage_space too if you do that, and arrange any initial contents. Iff you arrange to put in more items than the storage can hold, they can be taken out but not replaced.
preload
+
+
+
+
+
+ What single item to fill the storage with, if any. This does not respect w_class.
use_sound
+
+
+
+
+
+ the sfx played when the storage is opened.
+
+
+
diff --git a/obj/item/weapon/gun/launcher/grenade.html b/obj/item/weapon/gun/launcher/grenade.html
new file mode 100644
index 000000000000..a3acfc74e62f
--- /dev/null
+++ b/obj/item/weapon/gun/launcher/grenade.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/launcher/grenade - byond
+
+
+
+
+
+
+Vars
+ disallowed_grenade_types Verboten munitions. This is a blacklist. Anything in this list isn't loadable.
+ is_lobbing Does it launch its grenades in a low arc or a high? Do they strike people in their path, or fly beyond?
+ open_chamber Can you access the storage by clicking it, put things into it, or take things out? Meant for break-actions mostly but useful for any state where you want access to be toggleable. Make sure to call cylinder.close(user) so they don't still have the screen open!
+ valid_munitions What is this weapon permitted to fire? This is a whitelist. Anything in this list can be fired. Anything.
+ Var Details disallowed_grenade_types
+
+
+
+
+
+ Verboten munitions. This is a blacklist. Anything in this list isn't loadable.
is_lobbing
+
+
+
+
+
+ Does it launch its grenades in a low arc or a high? Do they strike people in their path, or fly beyond?
open_chamber
+
+
+
+
+
+ Can you access the storage by clicking it, put things into it, or take things out? Meant for break-actions mostly but useful for any state where you want access to be toggleable. Make sure to call cylinder.close(user) so they don't still have the screen open!
valid_munitions
+
+
+
+
+
+ What is this weapon permitted to fire? This is a whitelist. Anything in this list can be fired. Anything.
+
+
+
diff --git a/obj/item/weapon/gun/pistol/highpower.html b/obj/item/weapon/gun/pistol/highpower.html
new file mode 100644
index 000000000000..abb90c8317a8
--- /dev/null
+++ b/obj/item/weapon/gun/pistol/highpower.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/pistol/highpower - byond
+
+
+
+
+
+
+Vars
+ manually_slided This weapon needs to be manually racked every time a new magazine is loaded. I tried and failed to touch gun shitcode so this will do.
+ Var Details manually_slided
+
+
+
+
+
+ This weapon needs to be manually racked every time a new magazine is loaded. I tried and failed to touch gun shitcode so this will do.
+
+
+
diff --git a/obj/item/weapon/gun/rifle/sniper.html b/obj/item/weapon/gun/rifle/sniper.html
new file mode 100644
index 000000000000..e42e0403b8a8
--- /dev/null
+++ b/obj/item/weapon/gun/rifle/sniper.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/rifle/sniper - byond
+
+
+
+
+
+
+
+ Var Details enable_aimed_shot_icon_alt
+
+
+
+
+
+ Variables for Focus Fire and alternate icons for lockon and laser.
+
+
+
diff --git a/obj/item/weapon/gun/shotgun/double/twobore.html b/obj/item/weapon/gun/shotgun/double/twobore.html
new file mode 100644
index 000000000000..325a18e530fb
--- /dev/null
+++ b/obj/item/weapon/gun/shotgun/double/twobore.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/shotgun/double/twobore - byond
+
+
+
+
+
+
+Procs
+ unbrace Returns TRUE if the gun was braced.
Proc Details
+ Returns TRUE if the gun was braced.
+
+
+
diff --git a/obj/item/weapon/gun/smartgun.html b/obj/item/weapon/gun/smartgun.html
new file mode 100644
index 000000000000..65b948a3deed
--- /dev/null
+++ b/obj/item/weapon/gun/smartgun.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/smartgun - byond
+
+
+
+
+
+
+
+ Var Details requires_battery
+
+
+
+
+
+ Whether the smartgun requires a battery
requires_harness
+
+
+
+
+
+ Whether the smartgun requires a harness to use
requires_power
+
+
+
+
+
+ Whether the smartgun drains the battery (Ignored if requires_battery is false)
+
+
+
diff --git a/obj/item/weapon/gun/smartgun/dirty.html b/obj/item/weapon/gun/smartgun/dirty.html
new file mode 100644
index 000000000000..42e197262103
--- /dev/null
+++ b/obj/item/weapon/gun/smartgun/dirty.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/smartgun/dirty - byond
+
+
+
+
+
+
+
+ Var Details flags_gun_features
+
+
+
+
+
+ Toggled ammo type
+
+
+
diff --git a/obj/item/weapon/gun/smartgun/rmc.html b/obj/item/weapon/gun/smartgun/rmc.html
new file mode 100644
index 000000000000..e327c86b5097
--- /dev/null
+++ b/obj/item/weapon/gun/smartgun/rmc.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/weapon/gun/smartgun/rmc - byond
+
+
+
+
+
+
+
+ Var Details flags_gun_features
+
+
+
+
+
+ Toggled ammo type
+
+
+
diff --git a/obj/item/weapon/straight_razor.html b/obj/item/weapon/straight_razor.html
new file mode 100644
index 000000000000..418ad6aab468
--- /dev/null
+++ b/obj/item/weapon/straight_razor.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/weapon/straight_razor - byond
+
+
+
+
+
+
+
+ Var Details disabled_icon
+
+
+
+
+
+ Icon state for closed razor
enabled_icon
+
+
+
+
+
+ Icon state for opened razor
interaction_time
+
+
+
+
+
+ Time taken to open/close the razor
razor_opened
+
+
+
+
+
+ If the razor is able to be used
Proc Details can_fit_in_shoe(source, /mob /user, slot)
+
+
+
+
+
+ Check if the item can fit as a boot knife, var/source for signals
change_razor_state(opening)
+
+
+
+
+
+ Changes all the vars for the straight razor
+
+
+
diff --git a/obj/item/weapon/twohanded/lungemine.html b/obj/item/weapon/twohanded/lungemine.html
new file mode 100644
index 000000000000..387e8b8fd20c
--- /dev/null
+++ b/obj/item/weapon/twohanded/lungemine.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/weapon/twohanded/lungemine - byond
+
+
+
+
+
+
+Vars
+ detonation_force This controls how strong the explosion will be on the lunge mine. Higher is better.
+ Var Details detonation_force
+
+
+
+
+
+ This controls how strong the explosion will be on the lunge mine. Higher is better.
+
+
+
diff --git a/obj/item/weapon/yautja/combistick.html b/obj/item/weapon/yautja/combistick.html
new file mode 100644
index 000000000000..ca02be775d73
--- /dev/null
+++ b/obj/item/weapon/yautja/combistick.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/item/weapon/yautja/combistick - byond
+
+
+
+
+
+
+Vars
+ chain Ref to the tether effect when thrown
+ linked_to The mob the chain is linked to Procs
+ cleanup_chain Clean up the chain, deleting/nulling/unregistering as needed
+ on_move The chain normally breaks if it's put into a container, so let's yank it back if that's the case
+ recall recall the combistick to the pred's hands or to be at their feet
+ Var Details chain
+ – /datum /effects/tethering
+
+
+
+
+ Ref to the tether effect when thrown
linked_to
+
+
+
+
+
+ The mob the chain is linked to
Proc Details cleanup_chain()
+
+
+
+
+
+ Clean up the chain, deleting/nulling/unregistering as needed
on_move
+
+ The chain normally breaks if it's put into a container, so let's yank it back if that's the case
recall()
+
+
+
+
+
+ recall the combistick to the pred's hands or to be at their feet
+
+
+
diff --git a/obj/limb.html b/obj/limb.html
new file mode 100644
index 000000000000..5d752b4a6abd
--- /dev/null
+++ b/obj/limb.html
@@ -0,0 +1,242 @@
+
+
+
+
+
+
+ /obj/limb - byond
+
+
+
+
+
+
+Vars
+ body_size body size of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()]
+ body_type body muscularity of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()]
+ cavity Name of internal cavity.
+ encased Name of bones encasing the limb.
+ hidden Surgically implanted item.
+ implants Embedded or implanter implanted items.
+ limb_gender defines which sprite the limb should use if dimorphic, set in [/obj/limb/proc/update_limb()]
+ skin_color skin color of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()]
+ species species of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()] Procs
+ add_bleeding Adds bleeding to the limb. Damage_amount lets you apply an amount worth of bleeding, otherwise it uses the given wound's damage.
+ bandage bandages brute wounds and removes bleeding. Returns WOUNDS_BANDAGED if at least one wound was bandaged. Returns WOUNDS_ALREADY_TREATED
+if a relevant wound exists but none were treated. Skips wounds that are already bandaged.
+treat_sutured var tells it to apply to sutured but unbandaged wounds, for trauma kits that heal damage directly.
+ get_active_limb_surgeries Returns a description of active surgeries.
+ get_damage Returns total damage, or, if broken, the minimum fracture threshold, whichever is higher.
+ get_incision_depth Returns a description of opened incisions.
+ get_limb_icon generates a list of overlays that should be applied to the owner
+ get_limb_icon_key generates a key for the purpose of caching the icon to avoid duplicate generations
+ is_bandaged Checks for bandageable wounds (type = CUT or type = BRUISE). Returns TRUE if all are bandaged, FALSE if not.
+ is_salved Checks for salveable wounds (type = BURN). Returns TRUE if all are salved, FALSE if not.
+ limb_delimb Special delimbs for different limbs
+ remove_wound_bleeding Checks if there's any external limb wounds, removes bleeding if there isn't.
+ reset_limb_surgeries called when limb is removed or robotized, any ongoing surgery and related vars are reset unless set otherwise.
+ salve salves burn wounds. Returns WOUNDS_BANDAGED if at least one wound was salved. Returns WOUNDS_ALREADY_TREATED if a relevant wound exists but none were treated.
+Skips wounds that are already salved.
+treat_grafted var tells it to apply to grafted but unsalved wounds, for burn kits that heal damage directly.
+ take_damage Describes how limbs (body parts) of human mobs get damage applied.
+ update_limb updates the various internal variables of the limb from the owner
+ Var Details body_size
+
+
+
+
+
+ body size of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()]
body_type
+
+
+
+
+
+ body muscularity of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()]
cavity
+
+
+
+
+
+ Name of internal cavity.
encased
+
+
+
+
+
+ Name of bones encasing the limb.
hidden
+
+
+
+
+
+ Surgically implanted item.
implants
+
+
+
+
+
+ Embedded or implanter implanted items.
limb_gender
+
+
+
+
+
+ defines which sprite the limb should use if dimorphic, set in [/obj/limb/proc/update_limb()]
skin_color
+
+
+
+
+
+ skin color of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()]
+ species of the owner, used for limb appearance, set in [/obj/limb/proc/update_limb()]
Proc Details add_bleeding(/datum /wound/W, internal, damage_amount)
+
+
+
+
+
+ Adds bleeding to the limb. Damage_amount lets you apply an amount worth of bleeding, otherwise it uses the given wound's damage.
bandage(treat_sutured)
+
+
+
+
+
+ bandages brute wounds and removes bleeding. Returns WOUNDS_BANDAGED if at least one wound was bandaged. Returns WOUNDS_ALREADY_TREATED
+if a relevant wound exists but none were treated. Skips wounds that are already bandaged.
+treat_sutured var tells it to apply to sutured but unbandaged wounds, for trauma kits that heal damage directly.
get_active_limb_surgeries()
+
+
+
+
+
+ Returns a description of active surgeries.
get_damage()
+
+
+
+
+
+ Returns total damage, or, if broken, the minimum fracture threshold, whichever is higher.
get_incision_depth()
+
+
+
+
+
+ Returns a description of opened incisions.
get_limb_icon()
+
+
+
+
+
+ generates a list of overlays that should be applied to the owner
get_limb_icon_key()
+
+
+
+
+
+ generates a key for the purpose of caching the icon to avoid duplicate generations
is_bandaged()
+
+
+
+
+
+ Checks for bandageable wounds (type = CUT or type = BRUISE). Returns TRUE if all are bandaged, FALSE if not.
is_salved()
+
+
+
+
+
+ Checks for salveable wounds (type = BURN). Returns TRUE if all are salved, FALSE if not.
limb_delimb(damage_source)
+
+
+
+
+
+ Special delimbs for different limbs
remove_wound_bleeding()
+
+
+
+
+
+ Checks if there's any external limb wounds, removes bleeding if there isn't.
reset_limb_surgeries()
+
+
+
+
+
+ called when limb is removed or robotized, any ongoing surgery and related vars are reset unless set otherwise.
salve(treat_grafted)
+
+
+
+
+
+ salves burn wounds. Returns WOUNDS_BANDAGED if at least one wound was salved. Returns WOUNDS_ALREADY_TREATED if a relevant wound exists but none were treated.
+Skips wounds that are already salved.
+treat_grafted var tells it to apply to grafted but unsalved wounds, for burn kits that heal damage directly.
take_damage(brute, burn, sharp, edge, used_weapon, /list/forbidden_limbs, no_limb_loss, damage_source, /mob /attack_source, brute_reduced_by, burn_reduced_by)
+
+
+
+
+
+ Describes how limbs (body parts) of human mobs get damage applied.
+Any damage past the limb maximum health is transfered onto the next limb up the line, by
+calling this proc recursively. When a hand is too damaged it is passed to the arm,
+then to the chest and so on.
+Since parent limbs usually have more armor than their children, just passing the damage
+directly would allow the attacker to effectively bypass all of that armor. A lurker
+with 35 slash damage repeatedly slashing a hand protected by marine combat gloves
+(20 armor) would do 20 damage to the hand, then would start doing the same 20 to
+the arm, and then the chest. But if the lurker slashes the arm direclty it would only
+do 16 damage, assuming the marine is wearing medium armor which has armor value of 30.
+Thus we have to apply armor damage reduction on each limb to which the damage is
+transfered. When this proc is called recursively for the first damage transfer to the
+parent, we set reduced_by variables to be the armor of the original limb hit. Then we
+compare the parent limb armor with the applicable reduced_by and if it's higher we reduce
+the damage by the difference between the two. Then we set reduced_by to
+the current(parent) limb armor value.
+This generally works ok because our armor calculations are mostly distributive in
+practice: reducing the damage by 20 and then by 10 would generally give the same result
+as reducing by 30. But this is not strictly true, the lower the damage is, the more it
+gets reduced. As an extreme example, a lurker doing his first 35 damage slash on a combat
+gloves covered marine hand would do 30 damage to the hand, transfer 5 to the arm and
+those 5 would get mitigated to 0 by the marine medium armor.
+One problem that still exists here, is that we currently don't have any code
+that allows us to increase the damage when the parent limb armor is lower than the
+initial child limb armor.
+One practical example where this would happen is when a human is wearing a set of armor
+that does not protect legs, like the UPP officer. If a xeno keeps slashing his foot,
+the damage would eventually get transfered to the leg, which has 0 armor. But this damage
+has been already reduced by the boot armor even before this proc got first called.
+So, assuming 35 damage slash, the leg would only be damaged by 21 even though it has
+0 armor. Fixing this would require a new proc that would be able to unapply armor
+from the damage.
+Organ damage and bone break have their own armor damage reduction calculations. Since
+armor is already applied at least once outside of this proc, this means that damage is always
+reduced twice, hence the formulas for those looks so weird.
+Currently all brute damage is reduced by ARMOR_MELEE and GLOB.marine_melee,
+while burn damage is reduced by ARMOR_BIO and GLOB.marine_fire, which may not be correct
+for all cases.
update_limb()
+
+
+
+
+
+ updates the various internal variables of the limb from the owner
+
+
+
diff --git a/obj/merge_conflict_marker.html b/obj/merge_conflict_marker.html
new file mode 100644
index 000000000000..935313a8fecf
--- /dev/null
+++ b/obj/merge_conflict_marker.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/merge_conflict_marker - byond
+
+
+
+
+
+
+Procs
+ Initialize 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.
Proc Details Initialize(mapload)
+
+
+
+
+
+ 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/obj/projectile.html b/obj/projectile.html
new file mode 100644
index 000000000000..cc650c1e7193
--- /dev/null
+++ b/obj/projectile.html
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ /obj/projectile - byond
+
+
+
+
+
+
+Vars
+ accuracy_range_falloff How much to make the bullet fall off by accuracy-wise when closer than the ideal range
+ angle Direct angle at firing time, in degrees from BYOND NORTH, used for visual updates and path extension
+ bonus_projectile_check Is this a lone (0), original (1), or bonus (2) projectile. Used in gun.dm and fire_bonus_projectiles() currently.
+ bound_beam The beam linked to the projectile. Can be utilized for things like grappling hooks, harpoon guns, tripwire guns, etc..
+ damage_boosted Was this projectile affected by damage_boost.dm? If so, what was the last modifier?
+ hit_effect_color The flicker that plays when a bullet hits a target. Usually red. Can be nulled so it doesn't show up at all.
+ last_atom_signaled What atom did this last receive a registered signal from? Used by damage_boost.dm
+ process_start_turf Starting point of projectile before each flight.
+ projectile_flags Flags for behaviors of the projectile itself
+ projectile_override_flags Additional ammo flags applied to the projectile
+ runtime_iff_group This is the iff_group
+ speed How many turfs per 1ds the projectile travels
+ time_carry How much time has the projectile carried for fractional movement, in seconds (delta_time format)
+ vis_source Origin point for tracing and visual updates
+ vis_travelled Turfs traveled so far, for use in visual updates, in conjunction with angle for projection Procs
+ animate_flight Animates the projectile across the process'ed flight.
+ fly Flies the projectile forward one single turf
+ Var Details accuracy_range_falloff
+
+
+
+
+
+ How much to make the bullet fall off by accuracy-wise when closer than the ideal range
angle
+
+
+
+
+
+ Direct angle at firing time, in degrees from BYOND NORTH, used for visual updates and path extension
bonus_projectile_check
+
+
+
+
+
+ Is this a lone (0), original (1), or bonus (2) projectile. Used in gun.dm and fire_bonus_projectiles() currently.
bound_beam
+
+
+
+
+
+ The beam linked to the projectile. Can be utilized for things like grappling hooks, harpoon guns, tripwire guns, etc..
damage_boosted
+
+
+
+
+
+ Was this projectile affected by damage_boost.dm? If so, what was the last modifier?
hit_effect_color
+
+
+
+
+
+ The flicker that plays when a bullet hits a target. Usually red. Can be nulled so it doesn't show up at all.
last_atom_signaled
+
+
+
+
+
+ What atom did this last receive a registered signal from? Used by damage_boost.dm
process_start_turf
+
+
+
+
+
+ Starting point of projectile before each flight.
projectile_flags
+
+
+
+
+
+ Flags for behaviors of the projectile itself
projectile_override_flags
+
+
+
+
+
+ Additional ammo flags applied to the projectile
runtime_iff_group
+
+
+
+
+
+ This is the iff_group
speed
+
+
+
+
+
+ How many turfs per 1ds the projectile travels
time_carry
+
+
+
+
+
+ How much time has the projectile carried for fractional movement, in seconds (delta_time format)
vis_source
+
+
+
+
+
+ Origin point for tracing and visual updates
vis_travelled
+
+
+
+
+
+ Turfs traveled so far, for use in visual updates, in conjunction with angle for projection
Proc Details animate_flight(/turf /start_turf, start_pixel_x, start_pixel_y, delta_time)
+
+
+
+
+
+ Animates the projectile across the process'ed flight.
fly()
+
+
+
+
+
+ Flies the projectile forward one single turf
+
+
+
diff --git a/obj/projectile/vulture.html b/obj/projectile/vulture.html
new file mode 100644
index 000000000000..0374f9ca4eed
--- /dev/null
+++ b/obj/projectile/vulture.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/projectile/vulture - byond
+
+
+
+
+
+
+Vars
+ xeno_shortrange_chance The odds of hitting a xeno in less than your gun's range. Doesn't apply to humans. Procs
+ on_onehand Handler for when the user one-hands the firing gun
+ Var Details xeno_shortrange_chance
+
+
+
+
+
+ The odds of hitting a xeno in less than your gun's range. Doesn't apply to humans.
Proc Details on_onehand
+
+ Handler for when the user one-hands the firing gun
+
+
+
diff --git a/obj/structure/airlock_assembly.html b/obj/structure/airlock_assembly.html
new file mode 100644
index 000000000000..cd8f90d14bf7
--- /dev/null
+++ b/obj/structure/airlock_assembly.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/airlock_assembly - byond
+
+
+
+
+
+
+
+ Var Details width
+
+
+
+
+
+ Used for multitile assemblies
Proc Details update_collision_box()
+
+
+
+
+
+ Used for overloading proc in multi_tile
+
+
+
diff --git a/obj/structure/barricade.html b/obj/structure/barricade.html
new file mode 100644
index 000000000000..204e04899f2d
--- /dev/null
+++ b/obj/structure/barricade.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /obj/structure/barricade - byond
+
+
+
+
+
+
+Vars
+ crusher_resistant Whether a crusher can ram through it.
+ destroyed_stack_amount to specify a non-zero amount of stack to drop when destroyed
+ force_level_absorption How much force an item needs to even damage it at all.
+ stack_amount The amount of stack dropped when disassembled at full health
+ stack_type The type of stack the barricade dropped when disassembled if any.
+ starting_maxhealth Used for calculating some stuff related to maxhealth as it constantly changes due to e.g. barbed wire. set to 100 to avoid possible divisions by zero
+ throwpass You can throw objects over this, despite its density.
+ welder_lower_damage_limit Lower limit of damage beyond which the barricade cannot be fixed by welder. Compared to damage_state. If null it can be repaired at any damage_state.
+ wire_icon ! Icon file used for the wiring
+ Var Details crusher_resistant
+
+
+
+
+
+ Whether a crusher can ram through it.
destroyed_stack_amount
+
+
+
+
+
+ to specify a non-zero amount of stack to drop when destroyed
force_level_absorption
+
+
+
+
+
+ How much force an item needs to even damage it at all.
stack_amount
+
+
+
+
+
+ The amount of stack dropped when disassembled at full health
stack_type
+
+
+
+
+
+ The type of stack the barricade dropped when disassembled if any.
starting_maxhealth
+
+
+
+
+
+ Used for calculating some stuff related to maxhealth as it constantly changes due to e.g. barbed wire. set to 100 to avoid possible divisions by zero
throwpass
+
+
+
+
+
+ You can throw objects over this, despite its density.
welder_lower_damage_limit
+
+
+
+
+
+ Lower limit of damage beyond which the barricade cannot be fixed by welder. Compared to damage_state. If null it can be repaired at any damage_state.
wire_icon
+
+
+
+
+
+ ! Icon file used for the wiring
+
+
+
diff --git a/obj/structure/barricade/plasteel.html b/obj/structure/barricade/plasteel.html
new file mode 100644
index 000000000000..b9ac1ad68312
--- /dev/null
+++ b/obj/structure/barricade/plasteel.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/barricade/plasteel - byond
+
+
+
+
+
+
+Vars
+ busy Standard busy check
+ tool_cooldown Delay to apply tools to prevent spamming
+ Var Details busy
+
+
+
+
+
+ Standard busy check
+ Delay to apply tools to prevent spamming
+
+
+
diff --git a/obj/structure/bed.html b/obj/structure/bed.html
new file mode 100644
index 000000000000..7eccd07e0340
--- /dev/null
+++ b/obj/structure/bed.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/bed - byond
+
+
+
+
+
+
+
+ Var Details buckling_sound
+
+
+
+
+
+ Sound when buckled to a bed/chair/stool
+
+
+
diff --git a/obj/structure/blocker/tent.html b/obj/structure/blocker/tent.html
new file mode 100644
index 000000000000..ef4bcd0ce5ad
--- /dev/null
+++ b/obj/structure/blocker/tent.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/blocker/tent - byond
+
+
+
+
+
+
+Invisible Blocker Walls, they link up with the main tent and collapse with it
Vars
+ linked_tent The tent this blocker relates to, will be destroyed along with it
+ Var Details
+ The tent this blocker relates to, will be destroyed along with it
+
+
+
diff --git a/obj/structure/cable.html b/obj/structure/cable.html
new file mode 100644
index 000000000000..2a18fd9c7e69
--- /dev/null
+++ b/obj/structure/cable.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/cable - byond
+
+
+
+
+
+
+Procs
+ get_connections Z-Level Stuff
+Z-Level Stuff
+Z-Level Stuff
+Z-Level Stuff
+ shock Z-Level Stuff
+Z-Level Stuff
Proc Details get_connections()
+
+
+
+
+
+ Z-Level Stuff
+Z-Level Stuff
+Z-Level Stuff
+Z-Level Stuff
shock(/mob /user, prb, siemens_coeff)
+
+
+
+
+
+ Z-Level Stuff
+Z-Level Stuff
+
+
+
diff --git a/obj/structure/closet/bodybag.html b/obj/structure/closet/bodybag.html
new file mode 100644
index 000000000000..455b7fae4120
--- /dev/null
+++ b/obj/structure/closet/bodybag.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/structure/closet/bodybag - byond
+
+
+
+
+
+
+Vars
+ buckle_offset How many extra pixels to offset the bag by when buckled, since rollerbeds are set up to offset a centered horizontal human sprite.
+ drag_delay slightly easier than to drag the body directly.
+ layer To layer above rollerbeds.
+ open_cooldown the active var that tracks the cooldown for opening and closing
+ roller_buckled the roller bed this bodybag is attached to.
+ Var Details buckle_offset
+
+
+
+
+
+ How many extra pixels to offset the bag by when buckled, since rollerbeds are set up to offset a centered horizontal human sprite.
drag_delay
+
+
+
+
+
+ slightly easier than to drag the body directly.
layer
+
+
+
+
+
+ To layer above rollerbeds.
open_cooldown
+
+
+
+
+
+ the active var that tracks the cooldown for opening and closing
roller_buckled
+
+
+
+
+
+ the roller bed this bodybag is attached to.
+
+
+
diff --git a/obj/structure/closet/bodybag/cryobag.html b/obj/structure/closet/bodybag/cryobag.html
new file mode 100644
index 000000000000..da8563394497
--- /dev/null
+++ b/obj/structure/closet/bodybag/cryobag.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/closet/bodybag/cryobag - byond
+
+
+
+
+
+
+Vars
+ last_use remembers the value of used, to delay crostasis start.
+ max_uses 15 mins of usable cryostasis
+ stasis_mob the mob in stasis
+ Var Details last_use
+
+
+
+
+
+ remembers the value of used, to delay crostasis start.
max_uses
+
+
+
+
+
+ 15 mins of usable cryostasis
+ the mob in stasis
+
+
+
diff --git a/obj/structure/closet/bodybag/tarp.html b/obj/structure/closet/bodybag/tarp.html
new file mode 100644
index 000000000000..7410134e4071
--- /dev/null
+++ b/obj/structure/closet/bodybag/tarp.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/closet/bodybag/tarp - byond
+
+
+
+
+
+
+Vars
+ toggle_delay used to implement a delay before tarp can be entered again after opened (anti-exploit)
+ Var Details toggle_delay
+
+
+
+
+
+ used to implement a delay before tarp can be entered again after opened (anti-exploit)
+
+
+
diff --git a/obj/structure/closet/crate.html b/obj/structure/closet/crate.html
new file mode 100644
index 000000000000..7cb5e4c9396b
--- /dev/null
+++ b/obj/structure/closet/crate.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/closet/crate - byond
+
+
+
+
+
+
+
+ Var Details crate_customizing_types
+
+
+
+
+
+ Types this crate can be made into
+
+
+
diff --git a/obj/structure/disposalconstruct.html b/obj/structure/disposalconstruct.html
new file mode 100644
index 000000000000..b9a99ca9223b
--- /dev/null
+++ b/obj/structure/disposalconstruct.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/disposalconstruct - byond
+
+
+
+
+
+
+Procs
+ attackby Z-Level stuff
+Z-Level stuff
+ hide Z-Level stuff
+Z-Level stuff
+Z-Level stuff
+Z-Level stuff
Proc Details attackby
+
+ Z-Level stuff
+Z-Level stuff
hide(intact)
+
+
+
+
+
+ Z-Level stuff
+Z-Level stuff
+Z-Level stuff
+Z-Level stuff
+
+
+
diff --git a/obj/structure/droppod.html b/obj/structure/droppod.html
new file mode 100644
index 000000000000..d1a96344c3d8
--- /dev/null
+++ b/obj/structure/droppod.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/droppod - byond
+
+
+
+
+
+
+
+ Var Details special_structure_damage
+
+
+
+
+
+ Amount of damage structures will take on landing
special_structures_to_damage
+
+
+
+
+
+ List of special structures drop pod will give damage to
+
+
+
diff --git a/obj/structure/droppod/supply.html b/obj/structure/droppod/supply.html
new file mode 100644
index 000000000000..b3da2937ce15
--- /dev/null
+++ b/obj/structure/droppod/supply.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/droppod/supply - byond
+
+
+
+
+
+
+Vars
+ package The contained parimary object, used as a replacer for the droppod icon
+ Var Details package
+
+
+
+
+
+ The contained parimary object, used as a replacer for the droppod icon
+
+
+
diff --git a/obj/structure/dropship_equipment/weapon.html b/obj/structure/dropship_equipment/weapon.html
new file mode 100644
index 000000000000..5c637f72ad3d
--- /dev/null
+++ b/obj/structure/dropship_equipment/weapon.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/dropship_equipment/weapon - byond
+
+
+
+
+
+
+CAS Dropship weaponry, used for aerial bombardment
Vars
+ fire_mission_only True if this weapon can only be fired in Fire Missions (not Direct)
+ firing_delay Delay between firing, in deciseconds
+ last_fired Time last fired, for weapon firing cooldown
+ Var Details fire_mission_only
+
+
+
+
+
+ True if this weapon can only be fired in Fire Missions (not Direct)
firing_delay
+
+
+
+
+
+ Delay between firing, in deciseconds
last_fired
+
+
+
+
+
+ Time last fired, for weapon firing cooldown
+
+
+
diff --git a/obj/structure/flag/plantable.html b/obj/structure/flag/plantable.html
new file mode 100644
index 000000000000..069d9fe9b400
--- /dev/null
+++ b/obj/structure/flag/plantable.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/flag/plantable - byond
+
+
+
+
+
+
+PLANTABLE FLAG
Vars
+ flag_type The typepath for the flag item that gets spawned when the flag is taken down.
+ warcry_cooldown_struc Used to limit the spam of the warcry_extra_sound Procs
+ demolish Proc for when the flag gets forcefully dismantled (due to general damage, explosions, etc.)
+ disassemble Proc for dismantling the flag into an item that can be picked up.
+ Var Details flag_type
+
+
+
+
+
+ The typepath for the flag item that gets spawned when the flag is taken down.
warcry_cooldown_struc
+
+
+
+
+
+ Used to limit the spam of the warcry_extra_sound
Proc Details demolish(flag_type)
+
+
+
+
+
+ Proc for when the flag gets forcefully dismantled (due to general damage, explosions, etc.)
disassemble(/mob /user, flag_type)
+
+
+
+
+
+ Proc for dismantling the flag into an item that can be picked up.
+
+
+
diff --git a/obj/structure/flora/pottedplant.html b/obj/structure/flora/pottedplant.html
new file mode 100644
index 000000000000..345f55931f08
--- /dev/null
+++ b/obj/structure/flora/pottedplant.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/flora/pottedplant - byond
+
+
+
+
+
+
+Vars
+ blocked_atoms For things that might affect someone/everyone's round if hidden.
+ Var Details blocked_atoms
+
+
+
+
+
+ For things that might affect someone/everyone's round if hidden.
+
+
+
diff --git a/obj/structure/largecrate/black_market.html b/obj/structure/largecrate/black_market.html
new file mode 100644
index 000000000000..fd71d26562be
--- /dev/null
+++ b/obj/structure/largecrate/black_market.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/largecrate/black_market - byond
+
+
+
+
+
+
+Vars
+ points_wipe Wipes points from objects inside to avoid infinite farming.
+ Var Details points_wipe
+
+
+
+
+
+ Wipes points from objects inside to avoid infinite farming.
+
+
+
diff --git a/obj/structure/largecrate/black_market/clf_supplies.html b/obj/structure/largecrate/black_market/clf_supplies.html
new file mode 100644
index 000000000000..6125ff7a7033
--- /dev/null
+++ b/obj/structure/largecrate/black_market/clf_supplies.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/largecrate/black_market/clf_supplies - byond
+
+
+
+
+
+
+Vars
+ forced_rng If you want to use this in mapping, you can force-set the contents via this.
+ Var Details forced_rng
+
+
+
+
+
+ If you want to use this in mapping, you can force-set the contents via this.
+
+
+
diff --git a/obj/structure/machinery/ares.html b/obj/structure/machinery/ares.html
new file mode 100644
index 000000000000..086312fafae0
--- /dev/null
+++ b/obj/structure/machinery/ares.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/machinery/ares - byond
+
+
+
+
+
+
+set ticket back to pending
Procs
+ link_systems Handles linking and de-linking the ARES systems.
Proc Details link_systems
+
+ Handles linking and de-linking the ARES systems.
+
+
+
diff --git a/obj/structure/machinery/autodispenser.html b/obj/structure/machinery/autodispenser.html
new file mode 100644
index 000000000000..0dde060189b2
--- /dev/null
+++ b/obj/structure/machinery/autodispenser.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ /obj/structure/machinery/autodispenser - byond
+
+
+
+
+
+
+Vars
+ error Error status message
+ input_container Contains vials for our program
+ linked_storage Where we take chemicals from
+ output_container Our output beaker
+ program_amount how much to dispense with each program item, 1 = memory, 2 = box
+ programs the program of chem datums to dispense, 1 = memory, 2 = box
+ stage Remember where we are
+ stage_missing How much we have left to dispense, if we didn't have enough
+ status 0 = idle, <0 = stuck, 1 = finished, 2 = running
+ tgui_friendly_program_list snowflake list for tgui, 1 = memory, 2 = box
+ Var Details error
+
+
+
+
+
+ Error status message
+ Contains vials for our program
+ Where we take chemicals from
+ Our output beaker
program_amount
+
+
+
+
+
+ how much to dispense with each program item, 1 = memory, 2 = box
programs
+
+
+
+
+
+ the program of chem datums to dispense, 1 = memory, 2 = box
stage
+
+
+
+
+
+ Remember where we are
stage_missing
+
+
+
+
+
+ How much we have left to dispense, if we didn't have enough
status
+
+
+
+
+
+ 0 = idle, <0 = stuck, 1 = finished, 2 = running
tgui_friendly_program_list
+
+
+
+
+
+ snowflake list for tgui, 1 = memory, 2 = box
+
+
+
diff --git a/obj/structure/machinery/autodoc_console.html b/obj/structure/machinery/autodoc_console.html
new file mode 100644
index 000000000000..7a4c51646d42
--- /dev/null
+++ b/obj/structure/machinery/autodoc_console.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/machinery/autodoc_console - byond
+
+
+
+
+
+
+Vars
+ upgrades What kind of upgrade do we have in this console? used by research upgrades. 1 is IB. 2 is bone frac. 3 is organ damage. 4 is larva removal
+ Var Details upgrades
+
+
+
+
+
+ What kind of upgrade do we have in this console? used by research upgrades. 1 is IB. 2 is bone frac. 3 is organ damage. 4 is larva removal
+
+
+
diff --git a/obj/structure/machinery/autolathe.html b/obj/structure/machinery/autolathe.html
new file mode 100644
index 000000000000..1e559a18573c
--- /dev/null
+++ b/obj/structure/machinery/autolathe.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/machinery/autolathe - byond
+
+
+
+
+
+
+
+ Var Details currently_making_data
+
+
+
+
+
+ the item the autolathe is currently printing. Used for tgui
queue
+
+
+
+
+
+ queue of items to be printed after the current one is done
queue_max
+
+
+
+
+
+ max length of the queue
tgui_theme
+
+
+
+
+
+ theme for tgui
+
+
+
diff --git a/obj/structure/machinery/brig_cell.html b/obj/structure/machinery/brig_cell.html
new file mode 100644
index 000000000000..1dfb1fc94042
--- /dev/null
+++ b/obj/structure/machinery/brig_cell.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/structure/machinery/brig_cell - byond
+
+
+
+
+
+
+Vars
+ active_report The report currently ticking down the clock.
+ id id of door it controls.
+ incident_reports The incident reports currently inserted into this machine.
+ picture_state icon_state of alert picture, if not displaying text/numbers
+ targets A list of World objects this machine controls.
+ viewed_report The report currently being viewed.
+ Var Details active_report
+
+
+
+
+
+ The report currently ticking down the clock.
id
+
+
+
+
+
+ id of door it controls.
incident_reports
+ – /list/obj/item/paper/incident
+
+
+
+
+ The incident reports currently inserted into this machine.
picture_state
+
+
+
+
+
+ icon_state of alert picture, if not displaying text/numbers
targets
+ – /list/obj/structure/machinery
+
+
+
+
+ A list of World objects this machine controls.
viewed_report
+
+
+
+
+
+ The report currently being viewed.
+
+
+
diff --git a/obj/structure/machinery/camera.html b/obj/structure/machinery/camera.html
new file mode 100644
index 000000000000..199623d08f3c
--- /dev/null
+++ b/obj/structure/machinery/camera.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/machinery/camera - byond
+
+
+
+
+
+
+
+ Var Details autoname
+
+
+
+
+
+ Autonaming
emp_proof
+
+
+
+
+
+ If this camera should have innate EMP-proofing
+
+
+
diff --git a/obj/structure/machinery/chem_dispenser.html b/obj/structure/machinery/chem_dispenser.html
new file mode 100644
index 000000000000..ba503df2fa45
--- /dev/null
+++ b/obj/structure/machinery/chem_dispenser.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/machinery/chem_dispenser - byond
+
+
+
+
+
+
+
+ Var Details hacked_check
+
+
+
+
+
+ Has it been hacked
hacked_reagents
+
+
+
+
+
+ Additional reagents gotten when it is hacked
+
+
+
diff --git a/obj/structure/machinery/cm_vending.html b/obj/structure/machinery/cm_vending.html
new file mode 100644
index 000000000000..49cbea8f5ce1
--- /dev/null
+++ b/obj/structure/machinery/cm_vending.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ /obj/structure/machinery/cm_vending - byond
+
+
+
+
+
+
+
+ Var Details listed_products
+
+
+
+
+
+ The actual inventory for this vendor as a list of lists
+1: name 2: amount 3: type 4: flag
partial_product_stacks
+
+
+
+
+
+ Partial stacks to hold on to as an associated list of type : amount
vend_dir
+
+
+
+
+
+ Vending direction from adjacent users, if not using vend_x_offset or vend_y_offset
vend_dir_whitelist
+
+
+
+
+
+ Direction to adjacent user from which we're allowed to do offset vending
vend_x_offset
+
+
+
+
+
+ X Offset to vend to
vend_y_offset
+
+
+
+
+
+ Y Offset to vend to
Proc Details get_listed_products
+
+ If we want to redeem a token
redeem_token
+
+ Handles redeeming coin tokens.
+
+
+
diff --git a/obj/structure/machinery/cm_vending/sorted.html b/obj/structure/machinery/cm_vending/sorted.html
new file mode 100644
index 000000000000..402add752e80
--- /dev/null
+++ b/obj/structure/machinery/cm_vending/sorted.html
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+ /obj/structure/machinery/cm_vending/sorted - byond
+
+
+
+
+
+
+Vars
+ being_restocked indicates someone is performing a restock that isn't instant
+ corresponding_types_list this here is made to provide ability to restock vendors with different subtypes of same object, like handmade and manually filled ammo boxes.
+ dynamic_stock_multipliers If using VEND_STOCK_DYNAMIC , assoc list of product entry to list of (1.0 scale product multiplier, awarded objects) - as seen in /obj/structure/machinery/cm_vending/sorted/proc/populate_product_list
+This allows us to backtrack and refill the stocks when new players latejoin. Procs
+ additional_restock_checks additional restocking checks for individual vendor subtypes. Parse in item, do checks, return FALSE to fail. Include error message.
+ populate_product_list this proc, well, populates product list based on roundstart amount of players
+do not rely on scale here if you use VEND_STOCK_DYNAMIC because it's already taken into account
+this is here for historical reasons and should ONLY be called by populate_product_list_and_boxes if you want dynamic stocks and ammoboxes to work
+ populate_product_list_and_boxes this proc, well, populates product list based on roundstart amount of players
+ update_dynamic_stock Updates the vendor stock when the [/datum/game_mode/var/marine_tally] has changed and we're using VEND_STOCK_DYNAMIC
+Assumes the scale can only increase!!! Don't take their items away!
+ Var Details being_restocked
+
+
+
+
+
+ indicates someone is performing a restock that isn't instant
corresponding_types_list
+
+
+
+
+
+ this here is made to provide ability to restock vendors with different subtypes of same object, like handmade and manually filled ammo boxes.
dynamic_stock_multipliers
+
+
+
+
+
+ If using VEND_STOCK_DYNAMIC , assoc list of product entry to list of (1.0 scale product multiplier, awarded objects) - as seen in /obj/structure/machinery/cm_vending/sorted/proc/populate_product_list
+This allows us to backtrack and refill the stocks when new players latejoin.
+If NOT using VEND_STOCK_DYNAMIC , assoc list of product entry to list of (estimated 1.0 scale product multiplier, scaled product multiplier) - as seen in /obj/structure/machinery/cm_vending/sorted/proc/populate_product_list
+This allows us to know the original amounts to know if the vendor is full of an item.
+The 1.0 scale is estimated because it is a divided by the scale rather than repopulating the list at 1.0 scale - anything that is a fixed amount won't necessarily be correct.
Proc Details additional_restock_checks(/obj /item /item_to_stock, /mob /user, /list/vendspec)
+
+
+
+
+
+ additional restocking checks for individual vendor subtypes. Parse in item, do checks, return FALSE to fail. Include error message.
populate_product_list(scale)
+
+
+
+
+
+ this proc, well, populates product list based on roundstart amount of players
+do not rely on scale here if you use VEND_STOCK_DYNAMIC because it's already taken into account
+this is here for historical reasons and should ONLY be called by populate_product_list_and_boxes if you want dynamic stocks and ammoboxes to work
populate_product_list_and_boxes(scale)
+
+
+
+
+
+ this proc, well, populates product list based on roundstart amount of players
update_dynamic_stock(new_scale)
+
+
+
+
+
+ Updates the vendor stock when the [/datum/game_mode/var/marine_tally] has changed and we're using VEND_STOCK_DYNAMIC
+Assumes the scale can only increase!!! Don't take their items away!
+
+
+
diff --git a/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial.html b/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial.html
new file mode 100644
index 000000000000..9a0608967a7d
--- /dev/null
+++ b/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/machinery/cm_vending/sorted/cargo_guns/squad_prep/tutorial - byond
+
+
+
+
+
+
+Procs
+ load_ammo Called if the tutorial mob somehow uses an entire magazine without the xeno dying
Proc Details load_ammo()
+
+
+
+
+
+ Called if the tutorial mob somehow uses an entire magazine without the xeno dying
+
+
+
diff --git a/obj/structure/machinery/cm_vending/sorted/medical.html b/obj/structure/machinery/cm_vending/sorted/medical.html
new file mode 100644
index 000000000000..e72e84cd93a5
--- /dev/null
+++ b/obj/structure/machinery/cm_vending/sorted/medical.html
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+ /obj/structure/machinery/cm_vending/sorted/medical - byond
+
+
+
+
+
+
+Vars
+ allow_supply_link_restock Whether the vendor can use a medlink to be able to resupply automatically
+ chem_refill A list of item types that allow reagent refilling
+ chem_refill_volume The starting volume of the chem refill tank
+ chem_refill_volume_max The maximum volume of the chem refill tank
+ healthscan Whether this vendor supports health scanning the user via mouse drop Procs
+ cart_restock Performs automatic restocking via medical cart - will set being_restocked true during the action
+ get_supply_link checks if there is a supply link in our location and we are anchored to it
+ random_unstock Randomly removes amounts of listed_products and reagents
+ restock_reagents Refills reagents towards chem_refill_volume_max
+Returns the quantity of reagents added
+ restock_supplies Randomly (based on prob_to_skip) adjusts all amounts of listed_products towards their desired values by 1
+Returns the quantity of items added
+ try_deduct_chem Attempts to consume our reagents needed for the container (doesn't actually change the container)
+Will return TRUE if reagents were deducated or no reagents were needed
+ Var Details allow_supply_link_restock
+
+
+
+
+
+ Whether the vendor can use a medlink to be able to resupply automatically
chem_refill
+
+
+
+
+
+ A list of item types that allow reagent refilling
chem_refill_volume
+
+
+
+
+
+ The starting volume of the chem refill tank
chem_refill_volume_max
+
+
+
+
+
+ The maximum volume of the chem refill tank
healthscan
+
+
+
+
+
+ Whether this vendor supports health scanning the user via mouse drop
Proc Details
+ Performs automatic restocking via medical cart - will set being_restocked true during the action
get_supply_link()
+
+
+
+
+
+ checks if there is a supply link in our location and we are anchored to it
random_unstock()
+
+
+
+
+
+ Randomly removes amounts of listed_products and reagents
restock_reagents(additional_volume)
+
+
+
+
+
+ Refills reagents towards chem_refill_volume_max
+Returns the quantity of reagents added
restock_supplies(prob_to_skip, can_remove)
+
+
+
+
+
+ Randomly (based on prob_to_skip) adjusts all amounts of listed_products towards their desired values by 1
+Returns the quantity of items added
+ Attempts to consume our reagents needed for the container (doesn't actually change the container)
+Will return TRUE if reagents were deducated or no reagents were needed
+
+
+
diff --git a/obj/structure/machinery/colony_floodlight.html b/obj/structure/machinery/colony_floodlight.html
new file mode 100644
index 000000000000..95ff10066ae8
--- /dev/null
+++ b/obj/structure/machinery/colony_floodlight.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/machinery/colony_floodlight - byond
+
+
+
+
+
+
+Vars
+ damaged Whether it has been smashed by xenos
+ fswitch Reverse lookup for power grabbing in area
+ is_lit Whether the floodlight is switched to on or off. Does not necessarily mean it emits light.
+ power_tick The power each floodlight takes up per process
+ Var Details damaged
+
+
+
+
+
+ Whether it has been smashed by xenos
+ Reverse lookup for power grabbing in area
is_lit
+
+
+
+
+
+ Whether the floodlight is switched to on or off. Does not necessarily mean it emits light.
power_tick
+
+
+
+
+
+ The power each floodlight takes up per process
+
+
+
diff --git a/obj/structure/machinery/colony_floodlight_switch.html b/obj/structure/machinery/colony_floodlight_switch.html
new file mode 100644
index 000000000000..fe7e94998ee3
--- /dev/null
+++ b/obj/structure/machinery/colony_floodlight_switch.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/machinery/colony_floodlight_switch - byond
+
+
+
+
+
+
+Vars
+ floodlist All floodlights under our control
+ Var Details floodlist
+
+
+
+
+
+ All floodlights under our control
+
+
+
diff --git a/obj/structure/machinery/computer/almayer_control.html b/obj/structure/machinery/computer/almayer_control.html
new file mode 100644
index 000000000000..3624fb241651
--- /dev/null
+++ b/obj/structure/machinery/computer/almayer_control.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/almayer_control - byond
+
+
+
+
+
+
+
+ Var Details cooldown_central
+
+
+
+
+
+ messaging HC (admins)
cooldown_destruct
+
+
+
+
+
+ requesting evac
cooldown_message
+
+
+
+
+
+ making a ship announcement
cooldown_request
+
+
+
+
+
+ requesting a distress beacon
+
+
+
diff --git a/obj/structure/machinery/computer/ares_console.html b/obj/structure/machinery/computer/ares_console.html
new file mode 100644
index 000000000000..553b2bcafb7f
--- /dev/null
+++ b/obj/structure/machinery/computer/ares_console.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/ares_console - byond
+
+
+
+
+
+
+Vars
+ datacore The datacore storing all the information.
+ deleted_1to1 The current deleted chat log of 1:1 conversations being read.
+ last_login The last person to login.
+ link The ID used to link all devices.
+ sudo_holder The person pretending to be last_login
+ Var Details
+ The datacore storing all the information.
deleted_1to1
+
+
+
+
+
+ The current deleted chat log of 1:1 conversations being read.
last_login
+
+
+
+
+
+ The last person to login.
+ The ID used to link all devices.
sudo_holder
+
+
+
+
+
+ The person pretending to be last_login
+
+
+
diff --git a/obj/structure/machinery/computer/cameras.html b/obj/structure/machinery/computer/cameras.html
new file mode 100644
index 000000000000..08ef2c5b3da9
--- /dev/null
+++ b/obj/structure/machinery/computer/cameras.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/cameras - byond
+
+
+
+
+
+
+
+ Var Details last_camera_turf
+
+
+
+
+
+ The turf where the camera was last updated.
+
+
+
diff --git a/obj/structure/machinery/computer/crew.html b/obj/structure/machinery/computer/crew.html
new file mode 100644
index 000000000000..14885cef8f80
--- /dev/null
+++ b/obj/structure/machinery/computer/crew.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/crew - byond
+
+
+
+
+
+
+
+ Var Details crewmonitor_type
+
+
+
+
+
+ What type of /datum/crewmonitor this will create
+
+
+
diff --git a/obj/structure/machinery/computer/dropship_weapons.html b/obj/structure/machinery/computer/dropship_weapons.html
new file mode 100644
index 000000000000..3b0d30cb0c98
--- /dev/null
+++ b/obj/structure/machinery/computer/dropship_weapons.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/dropship_weapons - byond
+
+
+
+
+
+
+
+ Var Details camera_area_equipment
+ – /obj /structure/dropship_equipment
+
+
+
+
+ Tracks equipment with a camera that is deployed and we are viewing
+
+
+
diff --git a/obj/structure/machinery/computer/objective.html b/obj/structure/machinery/computer/objective.html
new file mode 100644
index 000000000000..15833dbfae42
--- /dev/null
+++ b/obj/structure/machinery/computer/objective.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/objective - byond
+
+
+
+
+
+
+Procs
+ ex_act Disabled explosions due to issues with the Objectives UI should it be destroyed.
Proc Details ex_act(severity)
+
+
+
+
+
+ Disabled explosions due to issues with the Objectives UI should it be destroyed.
+
+
+
diff --git a/obj/structure/machinery/computer/overwatch.html b/obj/structure/machinery/computer/overwatch.html
new file mode 100644
index 000000000000..3b59875a0597
--- /dev/null
+++ b/obj/structure/machinery/computer/overwatch.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/overwatch - byond
+
+
+
+
+
+
+
+ Var Details saved_coordinates
+
+
+
+
+
+ List of saved coordinates, format of ["x", "y", "comment"]
ui_theme
+
+
+
+
+
+ Currently selected UI theme
Proc Details handle_supplydrop()
+
+
+
+
+
+ Project ARES interface log.
+
+
+
diff --git a/obj/structure/machinery/computer/overwatch/tent.html b/obj/structure/machinery/computer/overwatch/tent.html
new file mode 100644
index 000000000000..67271212f408
--- /dev/null
+++ b/obj/structure/machinery/computer/overwatch/tent.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/overwatch/tent - byond
+
+
+
+
+
+
+Proc Details Initialize(mapload, ...)
+
+
+
+
+
+ Groundside console
+
+
+
diff --git a/obj/structure/machinery/computer/railgun.html b/obj/structure/machinery/computer/railgun.html
new file mode 100644
index 000000000000..146f27e9b252
--- /dev/null
+++ b/obj/structure/machinery/computer/railgun.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/railgun - byond
+
+
+
+
+
+
+Vars
+ locked Computer and Railgun can only be used if this variable is cleared
+ Var Details locked
+
+
+
+
+
+ Computer and Railgun can only be used if this variable is cleared
+
+
+
diff --git a/obj/structure/machinery/computer/shuttle/ert.html b/obj/structure/machinery/computer/shuttle/ert.html
new file mode 100644
index 000000000000..cc8ce66c9f8c
--- /dev/null
+++ b/obj/structure/machinery/computer/shuttle/ert.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/shuttle/ert - byond
+
+
+
+
+
+
+Vars
+ mission_accomplished if the ERT that used this shuttle has returned home
+ must_launch_home if this shuttle only has the option to return home
+ spooling this interface is busy - used in [/obj/structure/machinery/computer/shuttle/ert/proc/launch_home] as this can take a second
+ Var Details mission_accomplished
+
+
+
+
+
+ if the ERT that used this shuttle has returned home
must_launch_home
+
+
+
+
+
+ if this shuttle only has the option to return home
spooling
+
+
+
+
+
+ this interface is busy - used in [/obj/structure/machinery/computer/shuttle/ert/proc/launch_home] as this can take a second
+
+
+
diff --git a/obj/structure/machinery/computer/shuttle/lifeboat.html b/obj/structure/machinery/computer/shuttle/lifeboat.html
new file mode 100644
index 000000000000..2116ca9e1def
--- /dev/null
+++ b/obj/structure/machinery/computer/shuttle/lifeboat.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/shuttle/lifeboat - byond
+
+
+
+
+
+
+Vars
+ launch_initiated If true, the lifeboat is in the process of launching, and so the code will not allow another launch.
+ override_being_removed If true, the lifeboat is in the process of having the xeno override removed by the pilot.
+ remaining_time How long it takes to unlock the console
+ Var Details launch_initiated
+
+
+
+
+
+ If true, the lifeboat is in the process of launching, and so the code will not allow another launch.
override_being_removed
+
+
+
+
+
+ If true, the lifeboat is in the process of having the xeno override removed by the pilot.
remaining_time
+
+
+
+
+
+ How long it takes to unlock the console
+
+
+
diff --git a/obj/structure/machinery/computer/shuttle_control.html b/obj/structure/machinery/computer/shuttle_control.html
new file mode 100644
index 000000000000..2979900969a6
--- /dev/null
+++ b/obj/structure/machinery/computer/shuttle_control.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/shuttle_control - byond
+
+
+
+
+
+
+Vars
+ disabled Has it been admin-disabled?
+ Var Details disabled
+
+
+
+
+
+ Has it been admin-disabled?
+
+
+
diff --git a/obj/structure/machinery/computer/supplycomp.html b/obj/structure/machinery/computer/supplycomp.html
new file mode 100644
index 000000000000..1f4a9183d08d
--- /dev/null
+++ b/obj/structure/machinery/computer/supplycomp.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/supplycomp - byond
+
+
+
+
+
+
+Procs
+ lock_black_market Prevents use of black market, even if it is otherwise enabled. If any computer has black market locked out, it applies across all of the currently established ones.
Proc Details lock_black_market(market_locked)
+
+
+
+
+
+ Prevents use of black market, even if it is otherwise enabled. If any computer has black market locked out, it applies across all of the currently established ones.
+
+
+
diff --git a/obj/structure/machinery/computer/working_joe.html b/obj/structure/machinery/computer/working_joe.html
new file mode 100644
index 000000000000..d65ba52bd4e7
--- /dev/null
+++ b/obj/structure/machinery/computer/working_joe.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/working_joe - byond
+
+
+
+
+
+
+set ticket back to pending
+ Var Details
+ The datacore storing all the information.
last_login
+
+
+
+
+
+ The last person to login.
+ The ID used to link all devices.
notify_sounds
+
+
+
+
+
+ Notification sound
+
+
+
diff --git a/obj/structure/machinery/cryopod/evacuation.html b/obj/structure/machinery/cryopod/evacuation.html
new file mode 100644
index 000000000000..e8d98067e01f
--- /dev/null
+++ b/obj/structure/machinery/cryopod/evacuation.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/machinery/cryopod/evacuation - byond
+
+
+
+
+
+
+Vars
+ injector_name The name of the mob who injected the occupant into the pod. If it does not match the occupant, the occupant can leave.
+ Var Details injector_name
+
+
+
+
+
+ The name of the mob who injected the occupant into the pod. If it does not match the occupant, the occupant can leave.
+
+
+
diff --git a/obj/structure/machinery/defenses.html b/obj/structure/machinery/defenses.html
new file mode 100644
index 000000000000..9437c2a29d62
--- /dev/null
+++ b/obj/structure/machinery/defenses.html
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+ /obj/structure/machinery/defenses - byond
+
+
+
+
+
+
+Vars
+ linked_laptop laptop which is currently linked to the sentry
+ nickname Defence Laptop Procs
+ handle_iff Update the IFF status of this structure.
+@param selection: faction selection string.
+ update_choice Update state category for this structure.
+@param user: user who has initiated this change.
+@param category: category of change.
+@param selection: configuration value for category.
+ Var Details
+ laptop which is currently linked to the sentry
nickname
+
+
+
+
+
+ Defence Laptop
Proc Details handle_iff(selection)
+
+
+
+
+
+ Update the IFF status of this structure.
+@param selection: faction selection string.
update_choice(/mob /user, category, selection)
+
+
+
+
+
+ Update state category for this structure.
+@param user: user who has initiated this change.
+@param category: category of change.
+@param selection: configuration value for category.
+
+
+
diff --git a/obj/structure/machinery/defenses/sentry.html b/obj/structure/machinery/defenses/sentry.html
new file mode 100644
index 000000000000..9b241b777cc5
--- /dev/null
+++ b/obj/structure/machinery/defenses/sentry.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+ /obj/structure/machinery/defenses/sentry - byond
+
+
+
+
+
+
+Vars
+ choice_categories action list is configurable for all subtypes, this is just an example
+ engaged_timer timer triggered when sentry gun shoots at a target to not spam the laptop
+ low_ammo_timer timer triggered when sentry gun is low on ammo to not spam the laptop
+ luminosity_strength Light strength when turned on
+ sent_empty_ammo timer triggered when sentry gun is out of ammo to not spam the laptop
+ upgraded Check if they have been upgraded or not, used for sentry post Procs
+ handle_rof Update the rate of fire in the sentry gun.
+@param level: level of rate of fire, typically single, burst or full auto.
+ Var Details choice_categories
+
+
+
+
+
+ action list is configurable for all subtypes, this is just an example
engaged_timer
+
+
+
+
+
+ timer triggered when sentry gun shoots at a target to not spam the laptop
low_ammo_timer
+
+
+
+
+
+ timer triggered when sentry gun is low on ammo to not spam the laptop
luminosity_strength
+
+
+
+
+
+ Light strength when turned on
sent_empty_ammo
+
+
+
+
+
+ timer triggered when sentry gun is out of ammo to not spam the laptop
upgraded
+
+
+
+
+
+ Check if they have been upgraded or not, used for sentry post
Proc Details handle_rof(level)
+
+
+
+
+
+ Update the rate of fire in the sentry gun.
+@param level: level of rate of fire, typically single, burst or full auto.
+
+
+
diff --git a/obj/structure/machinery/defenses/sentry/launchable.html b/obj/structure/machinery/defenses/sentry/launchable.html
new file mode 100644
index 000000000000..a8fd0adb623c
--- /dev/null
+++ b/obj/structure/machinery/defenses/sentry/launchable.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/machinery/defenses/sentry/launchable - byond
+
+
+
+
+
+
+
+ Var Details health_upgrade
+
+
+
+
+
+ Amount of bonus health they get from upgrade
upgrade_cost
+
+
+
+
+
+ Cost to give sentry extra health
+
+
+
diff --git a/obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone.html b/obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone.html
new file mode 100644
index 000000000000..6d704dad2671
--- /dev/null
+++ b/obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/machinery/defenses/sentry/premade/deployable/colony/landing_zone - byond
+
+
+
+
+
+
+Vars
+ battery_duration How long the battery for this turret lasts. Will warn low at 70% and critical at 90% use.
+ battery_state The current battery state
+ Var Details battery_duration
+
+
+
+
+
+ How long the battery for this turret lasts. Will warn low at 70% and critical at 90% use.
battery_state
+
+
+
+
+
+ The current battery state
+
+
+
diff --git a/obj/structure/machinery/disposal.html b/obj/structure/machinery/disposal.html
new file mode 100644
index 000000000000..5150be8a3bdc
--- /dev/null
+++ b/obj/structure/machinery/disposal.html
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+ /obj/structure/machinery/disposal - byond
+
+
+
+
+
+
+Vars
+ active_power_usage The pneumatic pump power. 3 HP ~ 2200W
+ broken Used for cosmetic broken disposal units.
+ flush True if flush handle is pulled
+ flush_after_ticks After 10 ticks it will look whether it is ready to flush
+ flush_count This var adds 1 once per tick. When it reaches flush_after_ticks it resets and tries to flush.
+ flushing True if flushing in progress
+ mode Item mode 0=off 1=charging 2=charged
+ narrow_tube Whether the disposals tube is too narrow for a mob to fit into.
+ trunk The attached pipe trunk Procs
+ Initialize Create a new disposal, find the attached trunk (if present) and init gas resvr.
+ MouseDrop_T Amazing what you can do with a bit of dexterity.
+Strong mobs can lift above their own weight.
+Mouse drop another mob or self
+ attack_hand Human interact with machine
+ attackby Attack by item places it in to disposal
+ eject Eject the contents of the disposal unit
+ ex_act Pipe affected by explosion
+ expel Called when holder is expelled from a disposal, should usually only occur if the pipe network is modified
+ flush Perform a flush
+ go_out Leave the disposal
+ power_change Called when area power changes
+ process Timed process, charge the gas reservoir and perform flush if ready
+ relaymove Attempt to move while inside
+ update Update the icon & overlays to reflect mode & status
+ Var Details active_power_usage
+
+
+
+
+
+ The pneumatic pump power. 3 HP ~ 2200W
broken
+
+
+
+
+
+ Used for cosmetic broken disposal units.
flush
+
+
+
+
+
+ True if flush handle is pulled
flush_after_ticks
+
+
+
+
+
+ After 10 ticks it will look whether it is ready to flush
flush_count
+
+
+
+
+
+ This var adds 1 once per tick. When it reaches flush_after_ticks it resets and tries to flush.
flushing
+
+
+
+
+
+ True if flushing in progress
mode
+
+
+
+
+
+ Item mode 0=off 1=charging 2=charged
narrow_tube
+
+
+
+
+
+ Whether the disposals tube is too narrow for a mob to fit into.
trunk
+ – /obj /structure/disposalpipe/trunk
+
+
+
+
+ The attached pipe trunk
Proc Details Initialize(mapload, ...)
+
+
+
+
+
+ Create a new disposal, find the attached trunk (if present) and init gas resvr.
MouseDrop_T
+
+ Amazing what you can do with a bit of dexterity.
+Strong mobs can lift above their own weight.
+Mouse drop another mob or self
attack_hand
+
+ Human interact with machine
attackby
+
+ Attack by item places it in to disposal
eject()
+
+
+
+
+
+ Eject the contents of the disposal unit
ex_act(severity)
+
+
+
+
+
+ Pipe affected by explosion
expel(/obj /structure/disposalholder/H)
+
+
+
+
+
+ Called when holder is expelled from a disposal, should usually only occur if the pipe network is modified
flush(forced)
+
+
+
+
+
+ Perform a flush
go_out
+
+ Leave the disposal
power_change()
+
+
+
+
+
+ Called when area power changes
process()
+
+
+
+
+
+ Timed process, charge the gas reservoir and perform flush if ready
relaymove
+
+ Attempt to move while inside
update()
+
+
+
+
+
+ Update the icon & overlays to reflect mode & status
+
+
+
diff --git a/obj/structure/machinery/door.html b/obj/structure/machinery/door.html
new file mode 100644
index 000000000000..9d578ccd2952
--- /dev/null
+++ b/obj/structure/machinery/door.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /obj/structure/machinery/door - byond
+
+
+
+
+
+
+
+ Var Details filler_turfs
+
+
+
+
+
+ Fixes multi_tile doors opacity issues.
heavy
+
+
+
+
+
+ Stops it being forced open through normal means (Hunters/Zombies/Aliens).
masterkey_resist
+
+
+
+
+
+ Resistance to masterkey
normalspeed
+
+
+
+
+
+ If FALSE it speeds up the autoclosing timing.
openspeed
+
+
+
+
+
+ Time to open/close airlock, default is 1 second.
Proc Details autoclose()
+
+
+
+
+
+ Used for overriding in airlocks
change_filler_opacity(new_opacity)
+
+
+
+
+
+ Also refreshes filler_turfs list.
handle_multidoor()
+
+
+
+
+
+ Updates collision box and opacity of multi_tile airlocks.
locate_filler_turfs()
+
+
+
+
+
+ Finds turfs which should be filler ones.
+
+
+
diff --git a/obj/structure/machinery/door/airlock.html b/obj/structure/machinery/door/airlock.html
new file mode 100644
index 000000000000..6d7f733bef19
--- /dev/null
+++ b/obj/structure/machinery/door/airlock.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/machinery/door/airlock - byond
+
+
+
+
+
+
+Proc Details get_examine_text
+
+ DAMAGE CODE
+
+
+
diff --git a/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor.html b/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor.html
new file mode 100644
index 000000000000..515739d1c492
--- /dev/null
+++ b/obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor - byond
+
+
+
+
+
+
+External airlock that is part of the lifeboat dock
Vars
+ linked_dock ID of the related stationary docking port operating this
+ Var Details linked_dock
+
+
+
+
+
+ ID of the related stationary docking port operating this
+
+
+
diff --git a/obj/structure/machinery/door/airlock/sandstone/runed.html b/obj/structure/machinery/door/airlock/sandstone/runed.html
new file mode 100644
index 000000000000..ced5092a24eb
--- /dev/null
+++ b/obj/structure/machinery/door/airlock/sandstone/runed.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/machinery/door/airlock/sandstone/runed - byond
+
+
+
+
+
+
+Procs
+ bumpopen Stops the door being interacted with, without wristblades.
Proc Details bumpopen
+
+ Stops the door being interacted with, without wristblades.
+
+
+
diff --git a/obj/structure/machinery/faxmachine.html b/obj/structure/machinery/faxmachine.html
new file mode 100644
index 000000000000..59930d340232
--- /dev/null
+++ b/obj/structure/machinery/faxmachine.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/machinery/faxmachine - byond
+
+
+
+
+
+
+
+ Var Details department
+
+
+
+
+
+ Our department
fax_cooldown
+
+
+
+
+
+ storer var for cooldown on sending faxes
network
+
+
+
+
+
+ Fluff network shown by fax machine when logged in
target_department
+
+
+
+
+
+ Target department
+
+
+
diff --git a/obj/structure/machinery/floodlight.html b/obj/structure/machinery/floodlight.html
new file mode 100644
index 000000000000..982c09fcf71a
--- /dev/null
+++ b/obj/structure/machinery/floodlight.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/machinery/floodlight - byond
+
+
+
+
+
+
+Vars
+ base_icon_state base state
+ on_light_range How far the light will go when the floodlight is on
+ toggleable Whether or not the floodlight can be toggled on or off
+ turned_on Whether or not the floodlight is turned on, disconnected from whether it has power or is lit
+ Var Details base_icon_state
+
+
+
+
+
+ base state
on_light_range
+
+
+
+
+
+ How far the light will go when the floodlight is on
toggleable
+
+
+
+
+
+ Whether or not the floodlight can be toggled on or off
turned_on
+
+
+
+
+
+ Whether or not the floodlight is turned on, disconnected from whether it has power or is lit
+
+
+
diff --git a/obj/structure/machinery/fuelcell_recycler.html b/obj/structure/machinery/fuelcell_recycler.html
new file mode 100644
index 000000000000..f34da77fad4b
--- /dev/null
+++ b/obj/structure/machinery/fuelcell_recycler.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/machinery/fuelcell_recycler - byond
+
+
+
+
+
+
+
+ Var Details
+ A fuel cell in the recycler
+ A fuel cell in the recycler
recharge_amount
+
+
+
+
+
+ How much to recharge the cells per process
+
+
+
diff --git a/obj/structure/machinery/gibber.html b/obj/structure/machinery/gibber.html
new file mode 100644
index 000000000000..1eb036085055
--- /dev/null
+++ b/obj/structure/machinery/gibber.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /obj/structure/machinery/gibber - byond
+
+
+
+
+
+
+Procs
+ eject If synth is getting gibbed, we will 'soft gib' them, but this is still pretty LRP so let admin know.
+If someone's being LRP and doing funny chef shit, this lets admins know. This shouldn't flag preds, though.
Proc Details eject()
+
+
+
+
+
+ If synth is getting gibbed, we will 'soft gib' them, but this is still pretty LRP so let admin know.
+If someone's being LRP and doing funny chef shit, this lets admins know. This shouldn't flag preds, though.
+
+
+
diff --git a/obj/structure/machinery/keycard_auth/lockdown.html b/obj/structure/machinery/keycard_auth/lockdown.html
new file mode 100644
index 000000000000..3e926a4981f0
--- /dev/null
+++ b/obj/structure/machinery/keycard_auth/lockdown.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/machinery/keycard_auth/lockdown - byond
+
+
+
+
+
+
+Procs
+ broadcast_request We are the SECOND keycard device used (our event_source has already been set)
Proc Details broadcast_request()
+
+
+
+
+
+ We are the SECOND keycard device used (our event_source has already been set)
+
+
+
diff --git a/obj/structure/machinery/m56d_hmg.html b/obj/structure/machinery/m56d_hmg.html
new file mode 100644
index 000000000000..dfd2e33c1c5f
--- /dev/null
+++ b/obj/structure/machinery/m56d_hmg.html
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+ /obj/structure/machinery/m56d_hmg - byond
+
+
+
+
+
+
+
+ Var Details autofire_slow_mult
+
+
+
+
+
+ A multiplier for how slow this gun should fire in automatic as opposed to burst. 1 is normal, 1.2 is 20% slower, 0.8 is 20% faster, etc.
burst_amount
+
+
+
+
+
+ How many rounds are fired per burst
burst_fire_delay
+
+
+
+
+
+ How much time should pass in between burst fire shots
burst_firing
+
+
+
+
+
+ If the gun is currently burst firing
display_ammo
+
+
+
+
+
+ If the gun should display its ammo count
fire_delay
+
+
+
+
+
+ How much time should pass in between full auto shots, slightly higher than burst due to click delay and similar things that slow firing down
gun_firemode
+
+
+
+
+
+ What firemode the gun is currently in
gun_firemodes
+
+
+
+
+
+ What firemodes this gun has
semiauto_cooldown_time
+
+
+
+
+
+ How long between semi-auto shots this should wait, to reduce possible spam
semiauto_fire_cooldown
+
+
+
+
+
+ Semi auto cooldown
shoot_degree
+
+
+
+
+
+ How many degrees in each direction the gun should be able to fire
shots_fired
+
+
+
+
+
+ How many rounds have been fired in the current burst/auto
Proc Details change_target(/datum /source, /atom /src_object, /atom /over_object, /turf /src_location, /turf /over_location, src_control, over_control, params)
+
+
+
+
+
+ Update the target if you draged your mouse
clean_target()
+
+
+
+
+
+ Set the target to its turf, so we keep shooting even when it was qdeled
display_ammo()
+
+
+
+
+
+ Print how much ammo is left to chat
do_toggle_firemode(/mob /user, new_firemode)
+
+
+
+
+
+ Toggles the gun's firemode one down the list
get_burst_firing()
+
+
+
+
+
+ Getter for burst_firing
get_fire_delay(value)
+
+
+
+
+
+ getter for fire_delay
reset_fire()
+
+
+
+
+
+ Clean up the target, shots fired, and other things related to when you stop firing
set_burst_amount(value, /mob /user)
+
+
+
+
+
+ setter for burst_amount
set_burst_fire_delay(value, /mob /user)
+
+
+
+
+
+ Setter for burst_delay
set_burst_firing(bursting)
+
+
+
+
+
+ Setter for burst_firing
set_fire_delay(value)
+
+
+
+
+
+ setter for fire_delay
set_target
+
+ Set the target and take care of hard delete
start_fire(/datum /source, /atom /object, /turf /location, control, params, bypass_checks)
+
+
+
+
+
+ Check if the gun can fire and add it to bucket auto_fire system if needed, or just fire the gun if not
+
+
+
diff --git a/obj/structure/machinery/m56d_post.html b/obj/structure/machinery/m56d_post.html
new file mode 100644
index 000000000000..88578c853cd7
--- /dev/null
+++ b/obj/structure/machinery/m56d_post.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/machinery/m56d_post - byond
+
+
+
+
+
+
+
+ Var Details gun_health
+
+
+
+
+
+ Health of the mounted gun
gun_mounted
+
+
+
+
+
+ Whether a gun is mounted
gun_rounds
+
+
+
+
+
+ Ammo amount of the mounted gun
+
+
+
diff --git a/obj/structure/machinery/medical_pod.html b/obj/structure/machinery/medical_pod.html
new file mode 100644
index 000000000000..6dc25b9c6821
--- /dev/null
+++ b/obj/structure/machinery/medical_pod.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/structure/machinery/medical_pod - byond
+
+
+
+
+
+
+Vars
+ entry_timer do_after on entry via the move_inside verb
+ exit_stun stun on exiting, IN SECONDS BY DEFAULT, DO NOT PUT "SECONDS" AFTER IT
+ go_in_timer do_after on entry via the go_in proc
+ occupant the person in the pod
+ push_in_timer do_after on entry via being put in by another person
+ skilllock surgical skill lock on putting people in Procs
+ go_in the putter is the guy putting the person in the pod
+ go_out who is doing the work of putting/going in the scanner
+ Var Details entry_timer
+
+
+
+
+
+ do_after on entry via the move_inside verb
exit_stun
+
+
+
+
+
+ stun on exiting, IN SECONDS BY DEFAULT, DO NOT PUT "SECONDS" AFTER IT
go_in_timer
+
+
+
+
+
+ do_after on entry via the go_in proc
+ the person in the pod
push_in_timer
+
+
+
+
+
+ do_after on entry via being put in by another person
skilllock
+
+
+
+
+
+ surgical skill lock on putting people in
Proc Details go_in
+
+ the putter is the guy putting the person in the pod
go_out()
+
+
+
+
+
+ who is doing the work of putting/going in the scanner
+
+
+
diff --git a/obj/structure/machinery/medical_pod/sleeper.html b/obj/structure/machinery/medical_pod/sleeper.html
new file mode 100644
index 000000000000..293f3906a085
--- /dev/null
+++ b/obj/structure/machinery/medical_pod/sleeper.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/machinery/medical_pod/sleeper - byond
+
+
+
+
+
+
+Vars
+ upgraded is it already upgraded by research disc and do we have upgraded chemicals?
+ Var Details upgraded
+
+
+
+
+
+ is it already upgraded by research disc and do we have upgraded chemicals?
+
+
+
diff --git a/obj/structure/machinery/photocopier.html b/obj/structure/machinery/photocopier.html
new file mode 100644
index 000000000000..f1513c5fd309
--- /dev/null
+++ b/obj/structure/machinery/photocopier.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/machinery/photocopier - byond
+
+
+
+
+
+
+Normal Photocopier, made by Seegson
Vars
+ animate_state the flick state to use when inserting paper into the machine
+ copies how many copies to print!
+ maxcopies how many copies can be copied at once- idea shamelessly stolen from bs12's copier!
+ toner how much toner is left! woooooo~
+ Var Details animate_state
+
+
+
+
+
+ the flick state to use when inserting paper into the machine
copies
+
+
+
+
+
+ how many copies to print!
maxcopies
+
+
+
+
+
+ how many copies can be copied at once- idea shamelessly stolen from bs12's copier!
toner
+
+
+
+
+
+ how much toner is left! woooooo~
+
+
+
diff --git a/obj/structure/machinery/pipedispenser.html b/obj/structure/machinery/pipedispenser.html
new file mode 100644
index 000000000000..ef13af716548
--- /dev/null
+++ b/obj/structure/machinery/pipedispenser.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /obj/structure/machinery/pipedispenser - byond
+
+
+
+
+
+
+Procs
+ Topic Z-Level stuff
+Z-Level stuff
Proc Details Topic(href, href_list)
+
+
+
+
+
+ Z-Level stuff
+Z-Level stuff
+
+
+
diff --git a/obj/structure/machinery/pipedispenser/disposal.html b/obj/structure/machinery/pipedispenser/disposal.html
new file mode 100644
index 000000000000..200ff09879b5
--- /dev/null
+++ b/obj/structure/machinery/pipedispenser/disposal.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /obj/structure/machinery/pipedispenser/disposal - byond
+
+
+
+
+
+
+Procs
+ Topic Z-Level stuff
+Z-Level stuff
Proc Details Topic(href, href_list)
+
+
+
+
+
+ Z-Level stuff
+Z-Level stuff
+
+
+
diff --git a/obj/structure/machinery/power.html b/obj/structure/machinery/power.html
new file mode 100644
index 000000000000..0932104d8930
--- /dev/null
+++ b/obj/structure/machinery/power.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /obj/structure/machinery/power - byond
+
+
+
+
+
+
+Proc Details get_connections()
+
+
+
+
+
+ Z-Level Stuff
+Z-Level Stuff
+
+
+
diff --git a/obj/structure/machinery/power/reactor.html b/obj/structure/machinery/power/reactor.html
new file mode 100644
index 000000000000..6ae661f1e057
--- /dev/null
+++ b/obj/structure/machinery/power/reactor.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /obj/structure/machinery/power/reactor - byond
+
+
+
+
+
+
+
+ Var Details buildstate
+
+
+
+
+
+ How damaged the reactor is
cur_tick
+
+
+
+
+
+ How many ticks since last fail check
fail_check_ticks
+
+
+
+
+
+ How often the reactor checks if it can fail
fail_rate
+
+
+
+
+
+ % chance of the reactor failing every check_failure
+ The reactors fuel cell, fail rate increases if empty
is_on
+
+
+
+
+
+ Whether the reactor is functional
is_ship_reactor
+
+
+
+
+
+ Whether the reactor is on the ship
original_fail_rate
+
+
+
+
+
+ Original fail rate of the reactor
overloaded
+
+
+
+
+
+ If the generator is overloaded
power_gen_percent
+
+
+
+
+
+ % of power produced, increases to 100% over time
power_generation_max
+
+
+
+
+
+ How much the reactor will generate at max power_gen_percent
power_percent_states
+
+
+
+
+
+ All icon states split by power_gen_percent
require_fusion_cell
+
+
+
+
+
+ Whether the reactor requires a fusion cell
+
+
+
diff --git a/obj/structure/machinery/prop/almayer/CICmap.html b/obj/structure/machinery/prop/almayer/CICmap.html
new file mode 100644
index 000000000000..f951953c0fc4
--- /dev/null
+++ b/obj/structure/machinery/prop/almayer/CICmap.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/machinery/prop/almayer/CICmap - byond
+
+
+
+
+
+
+Vars
+ faction The faction that is intended to use this structure (determines type of tacmap used)
+ minimap_type flags that we want to be shown when you interact with this table
+ Var Details faction
+
+
+
+
+
+ The faction that is intended to use this structure (determines type of tacmap used)
minimap_type
+
+
+
+
+
+ flags that we want to be shown when you interact with this table
+
+
+
diff --git a/obj/structure/machinery/recharge_station.html b/obj/structure/machinery/recharge_station.html
new file mode 100644
index 000000000000..5ae066c22968
--- /dev/null
+++ b/obj/structure/machinery/recharge_station.html
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ /obj/structure/machinery/recharge_station - byond
+
+
+
+
+
+
+
+ Var Details charging_cap_active
+
+
+
+
+
+ Active Cap - When cyborg is inside
charging_cap_passive
+
+
+
+
+
+ Passive Cap - Recharging internal capacitor when no cyborg is inside
current_internal_charge
+
+
+
+
+
+ Starts charged, to prevent power surges on round start
exit_stun
+
+
+
+
+
+ stun time upon exiting, if at all
icon_update_tick
+
+
+
+
+
+ Used to update icon only once every 10 ticks
known_implants
+
+
+
+
+
+ implants to not remove
max_internal_charge
+
+
+
+
+
+ Two charged borgs in a row with default cell
occupant
+
+
+
+
+
+ the borg inside
+
+
+
diff --git a/obj/structure/machinery/recycler.html b/obj/structure/machinery/recycler.html
new file mode 100644
index 000000000000..827361ca9407
--- /dev/null
+++ b/obj/structure/machinery/recycler.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/machinery/recycler - byond
+
+
+
+
+
+
+Vars
+ crate_reward Amount of metal refunded per crate, by default about 2 metal sheets (building one takes 5)
+ sheets_per_batch Amount of sheets to stack before outputting a stack
+ Var Details crate_reward
+
+
+
+
+
+ Amount of metal refunded per crate, by default about 2 metal sheets (building one takes 5)
sheets_per_batch
+
+
+
+
+
+ Amount of sheets to stack before outputting a stack
+
+
+
diff --git a/obj/structure/machinery/sensortower.html b/obj/structure/machinery/sensortower.html
new file mode 100644
index 000000000000..2c923f434a6b
--- /dev/null
+++ b/obj/structure/machinery/sensortower.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/machinery/sensortower - byond
+
+
+
+
+
+
+Vars
+ minimap_added weakrefs of xenos temporarily added to the marine minimap
+ Var Details minimap_added
+
+
+
+
+
+ weakrefs of xenos temporarily added to the marine minimap
+
+
+
diff --git a/obj/structure/machinery/shower.html b/obj/structure/machinery/shower.html
new file mode 100644
index 000000000000..290940658e77
--- /dev/null
+++ b/obj/structure/machinery/shower.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/structure/machinery/shower - byond
+
+
+
+
+
+
+Vars
+ ismist needs a var so we can make it linger~
+ mobpresent true if there is a mob on the shower's loc, this is to ease process()
+ watertemp freezing, normal, or boiling
+ Var Details ismist
+
+
+
+
+
+ needs a var so we can make it linger~
mobpresent
+
+
+
+
+
+ true if there is a mob on the shower's loc, this is to ease process()
watertemp
+
+
+
+
+
+ freezing, normal, or boiling
+
+
+
diff --git a/obj/structure/machinery/smartfridge.html b/obj/structure/machinery/smartfridge.html
new file mode 100644
index 000000000000..c3090e5eed73
--- /dev/null
+++ b/obj/structure/machinery/smartfridge.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/machinery/smartfridge - byond
+
+
+
+
+
+
+Assoc list of names -> list(items)
Proc Details delete_contents
+
+ Deletes given object in contents of the smartfridge
+
+
+
diff --git a/obj/structure/machinery/telecomms/relay/preset/tower/mapcomms.html b/obj/structure/machinery/telecomms/relay/preset/tower/mapcomms.html
new file mode 100644
index 000000000000..38230d132cc2
--- /dev/null
+++ b/obj/structure/machinery/telecomms/relay/preset/tower/mapcomms.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/structure/machinery/telecomms/relay/preset/tower/mapcomms - byond
+
+
+
+
+
+
+Vars
+ corrupted Tower has been taken over by xenos, is not usable
+ corruption_delay Holds the delay for when a cluster can recorrupt the comms tower after a pylon has been destroyed
+ corruption_image Held image for the current overlay on the tower from xeno corruption Procs
+ handle_xeno_acquisition Handles xenos corrupting the tower when weeds touch the turf it is located on
+ register_with_turf Handles re-registering signals on new turfs if changed
+ switch_to_idle_corruption Handles moving the overlay from growing to idle
+ uncorrupt Handles removing corruption effects from the comms relay
+ Var Details corrupted
+
+
+
+
+
+ Tower has been taken over by xenos, is not usable
corruption_delay
+
+
+
+
+
+ Holds the delay for when a cluster can recorrupt the comms tower after a pylon has been destroyed
corruption_image
+
+
+
+
+
+ Held image for the current overlay on the tower from xeno corruption
Proc Details handle_xeno_acquisition(/turf /weeded_turf)
+
+
+
+
+
+ Handles xenos corrupting the tower when weeds touch the turf it is located on
register_with_turf()
+
+
+
+
+
+ Handles re-registering signals on new turfs if changed
switch_to_idle_corruption()
+
+
+
+
+
+ Handles moving the overlay from growing to idle
uncorrupt(/datum /deleting_datum)
+
+
+
+
+
+ Handles removing corruption effects from the comms relay
+
+
+
diff --git a/obj/structure/machinery/vending.html b/obj/structure/machinery/vending.html
new file mode 100644
index 000000000000..602dc605a13c
--- /dev/null
+++ b/obj/structure/machinery/vending.html
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+ /obj/structure/machinery/vending - byond
+
+
+
+
+
+
+
+ Var Details active
+
+
+
+
+
+ if false, the vendor will not send sales pitches
check_accounts
+
+
+
+
+
+ if true, checks the relevant account has enough money before vending
delay_product_spawn
+
+
+
+
+
+ if set, uses sleep() in product spawn proc (mostly for seeds to retrieve correct names).
extended_inventory
+
+
+
+
+
+ can we access the hidden inventory?
hacking_safety
+
+
+
+
+
+ if true, will never shoot inventory or allow all access
icon_deny
+
+
+
+
+
+ icon_state when failing to vend
icon_vend
+
+
+
+
+
+ icon_state when vending
last_slogan
+
+
+
+
+
+ when did we last pitch?
panel_open
+
+
+
+
+
+ if the vendor is currently being hacked
product_ads
+
+
+
+
+
+ string of small ad messages in the vending screen - random chance
product_slogans
+
+
+
+
+
+ string of slogans separated by semicolons, optional
product_type
+
+
+
+
+
+ Used to increase prices of a specific type of vendor.
seconds_electrified
+
+
+
+
+
+ shock customers like an airlock.
shoot_inventory
+
+
+
+
+
+ fire items at customers! We're broken!
shut_up
+
+
+
+
+
+ stop spouting those godawful pitches!
slogan_delay
+
+
+
+
+
+ how long until we can pitch again?
vend_delay
+
+
+
+
+
+ time delay between items can be vended
vend_ready
+
+
+
+
+
+ if the vendor can vend an item
vend_reply
+
+
+
+
+
+ sent after vending an item
Proc Details checking_id()
+
+
+
+
+
+ Returns TRUE if this vending machine is scanning for IDs.
+
+
+
diff --git a/obj/structure/machinery/xenoanalyzer.html b/obj/structure/machinery/xenoanalyzer.html
new file mode 100644
index 000000000000..4f16a996cb6d
--- /dev/null
+++ b/obj/structure/machinery/xenoanalyzer.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/machinery/xenoanalyzer - byond
+
+
+
+
+
+
+Vars
+ technology_purchased assoc list containing the path to every upgrade followed by a number representing times this tech was bought. used by price inflation mechanic to increase/decrease price depending on the amount of times you bought it.
+ Var Details technology_purchased
+
+
+
+
+
+ assoc list containing the path to every upgrade followed by a number representing times this tech was bought. used by price inflation mechanic to increase/decrease price depending on the amount of times you bought it.
+
+
+
diff --git a/obj/structure/medical_supply_link.html b/obj/structure/medical_supply_link.html
new file mode 100644
index 000000000000..d180427d0791
--- /dev/null
+++ b/obj/structure/medical_supply_link.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/structure/medical_supply_link - byond
+
+
+
+
+
+
+Procs
+ do_clamp_animation Performs the clamping animation when a structure is anchored in our loc
+ do_unclamp_animation Performs the unclamping animation when a structure is unanchored in our loc
Proc Details do_clamp_animation()
+
+
+
+
+
+ Performs the clamping animation when a structure is anchored in our loc
do_unclamp_animation()
+
+
+
+
+
+ Performs the unclamping animation when a structure is unanchored in our loc
+
+
+
diff --git a/obj/structure/mortar.html b/obj/structure/mortar.html
new file mode 100644
index 000000000000..30db0e872afc
--- /dev/null
+++ b/obj/structure/mortar.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /obj/structure/mortar - byond
+
+
+
+
+
+
+Vars
+ firing Used for deconstruction and aiming sanity
+ fixed If set to 1, can't unanchor and move the mortar, used for map spawns and WO
+ offset_per_turfs Number of turfs to offset from target by 1
+ ship_side if true, blows up the shell immediately
+ travel_time Constant, assuming perfect parabolic trajectory. ONLY THE DELAY BEFORE INCOMING WARNING WHICH ADDS 45 TICKS
+ Var Details firing
+
+
+
+
+
+ Used for deconstruction and aiming sanity
fixed
+
+
+
+
+
+ If set to 1, can't unanchor and move the mortar, used for map spawns and WO
offset_per_turfs
+
+
+
+
+
+ Number of turfs to offset from target by 1
ship_side
+
+
+
+
+
+ if true, blows up the shell immediately
travel_time
+
+
+
+
+
+ Constant, assuming perfect parabolic trajectory. ONLY THE DELAY BEFORE INCOMING WARNING WHICH ADDS 45 TICKS
+
+
+
diff --git a/obj/structure/ob_ammo/warhead.html b/obj/structure/ob_ammo/warhead.html
new file mode 100644
index 000000000000..dac98c83bda9
--- /dev/null
+++ b/obj/structure/ob_ammo/warhead.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/ob_ammo/warhead - byond
+
+
+
+
+
+
+Procs
+ handle_ob_shake proc designed for handling ob camera shakes, takes the target location as input and calculates camera shake based off user location.
Proc Details handle_ob_shake(/turf /epicenter)
+
+
+
+
+
+ proc designed for handling ob camera shakes, takes the target location as input and calculates camera shake based off user location.
+
+
+
diff --git a/obj/structure/pipes.html b/obj/structure/pipes.html
new file mode 100644
index 000000000000..02e7639d39c7
--- /dev/null
+++ b/obj/structure/pipes.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ /obj/structure/pipes - byond
+
+
+
+
+
+
+Vars
+ explodey Whether or not the pipe will explode (when on the Almayer) during hijack
+ exploding_types The grenade subtypes that pipes will use when they explode Procs
+ kablooie Makes the pipe go boom.
+ warning_explode Makes a warning telegraph appear and, after a certain duration, explodes.
+ Var Details explodey
+
+
+
+
+
+ Whether or not the pipe will explode (when on the Almayer) during hijack
exploding_types
+
+
+
+
+
+ The grenade subtypes that pipes will use when they explode
Proc Details kablooie()
+
+
+
+
+
+ Makes the pipe go boom.
warning_explode(time_till)
+
+
+
+
+
+ Makes a warning telegraph appear and, after a certain duration, explodes.
+Params:
+time_till: required, the time until the explosion occurs. The sound file lasts 5 seconds.
+
+
+
diff --git a/obj/structure/prop/brazier.html b/obj/structure/prop/brazier.html
new file mode 100644
index 000000000000..f25cc907e14b
--- /dev/null
+++ b/obj/structure/prop/brazier.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/prop/brazier - byond
+
+
+
+
+
+
+Vars
+ frame_type What obj this becomes when it gets to its next stage of construction / ignition
+ state What is used to progress to the next stage
+ Var Details frame_type
+
+
+
+
+
+ What obj this becomes when it gets to its next stage of construction / ignition
state
+
+
+
+
+
+ What is used to progress to the next stage
+
+
+
diff --git a/obj/structure/prop/brazier/campfire.html b/obj/structure/prop/brazier/campfire.html
new file mode 100644
index 000000000000..3d74dec84178
--- /dev/null
+++ b/obj/structure/prop/brazier/campfire.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/structure/prop/brazier/campfire - byond
+
+
+
+
+
+
+
+ Var Details extinguishable
+
+
+
+
+
+ If the fire can be manually put out
fuel_stage_time
+
+
+
+
+
+ Time for it to burn through fuel
heating_range
+
+
+
+
+
+ How many tiles the heating and sound goes
quiet
+
+
+
+
+
+ Make no noise
remaining_fuel
+
+
+
+
+
+ How much fuel it has
time_to_sound
+
+
+
+
+
+ time between sounds
+
+
+
diff --git a/obj/structure/prop/invuln/joey.html b/obj/structure/prop/invuln/joey.html
new file mode 100644
index 000000000000..a4903816be0a
--- /dev/null
+++ b/obj/structure/prop/invuln/joey.html
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ /obj/structure/prop/invuln/joey - byond
+
+
+
+
+
+
+Vars
+ damage_delay delay between attack voicelines. Short but done for anti-spam
+ damaged list of voicelines to use when damaged
+ quip_delay delay between Quips. Slightly randomized with quip_delay_minimum plus a random number
+ quip_delay_minimum converted into minutes when used to determine cooldown timer between quips
+ quips list of quip emotes, taken from Working Joe Procs
+ attacked A terrible way of handling being hit. If signals would work it should be used.
+ emote SAY THE LINE JOE
+ Var Details damage_delay
+
+
+
+
+
+ delay between attack voicelines. Short but done for anti-spam
damaged
+
+
+
+
+
+ list of voicelines to use when damaged
quip_delay
+
+
+
+
+
+ delay between Quips. Slightly randomized with quip_delay_minimum plus a random number
quip_delay_minimum
+
+
+
+
+
+ converted into minutes when used to determine cooldown timer between quips
quips
+
+
+
+
+
+ list of quip emotes, taken from Working Joe
Proc Details attacked()
+
+
+
+
+
+ A terrible way of handling being hit. If signals would work it should be used.
+ SAY THE LINE JOE
+
+
+
diff --git a/obj/structure/prop/wooden_cross.html b/obj/structure/prop/wooden_cross.html
new file mode 100644
index 000000000000..e7aad5da3bca
--- /dev/null
+++ b/obj/structure/prop/wooden_cross.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/prop/wooden_cross - byond
+
+
+
+
+
+
+Vars
+ engraved This is for cross engraving/writing.
+ tagged This is for cross dogtags.
+ Var Details engraved
+
+
+
+
+
+ This is for cross engraving/writing.
tagged
+
+
+
+
+
+ This is for cross dogtags.
+
+
+
diff --git a/obj/structure/restock_cart.html b/obj/structure/restock_cart.html
new file mode 100644
index 000000000000..33846c3e7503
--- /dev/null
+++ b/obj/structure/restock_cart.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/structure/restock_cart - byond
+
+
+
+
+
+
+
+ Var Details attacked_sound
+
+
+
+
+
+ The sound to play when attacked
destroyed_loot
+
+
+
+
+
+ Random loot to spawn if destroyed as assoc list of type_path = max_quantity
destroyed_sound
+
+
+
+
+
+ The sound to play when destroyed
supplies_max
+
+
+
+
+
+ The max quantity of things this can restock
supplies_remaining
+
+
+
+
+
+ The quantity of things this can restock
supply_descriptor
+
+
+
+
+
+ The descriptor for the kind of things being restocked
+
+
+
diff --git a/obj/structure/ship_ammo.html b/obj/structure/ship_ammo.html
new file mode 100644
index 000000000000..bc06d18e5fcc
--- /dev/null
+++ b/obj/structure/ship_ammo.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+ /obj/structure/ship_ammo - byond
+
+
+
+
+
+
+Dropship weaponry ammunition
+ Var Details accuracy_range
+
+
+
+
+
+ How many tiles the ammo can deviate from the laser target
ammo_count
+
+
+
+
+
+ Ammunition count remaining
ammo_name
+
+
+
+
+
+ What to call the ammo in the ammo transferring message
ammo_used_per_firing
+
+
+
+
+
+ Ammunition expended each time this is fired
equipment_type
+ – /obj /structure/dropship_equipment
+
+
+
+
+ Type of dropship equipment that accepts this type of ammo.
fire_mission_delay
+
+
+
+
+
+ Delay between firing steps
max_ammo_count
+
+
+
+
+
+ Maximal ammunition count
max_inaccuracy
+
+
+
+
+
+ Maximum deviation allowed when the ammo is not longer guided by a laser
point_cost
+
+
+
+
+
+ Cost to build in the fabricator, zero means unbuildable
source_mob
+
+
+
+
+
+ Mob that fired this ammunition (the pilot pressing the trigger)
transferable_ammo
+
+
+
+
+
+ Whether the ammo inside this magazine can be transferred to another magazine.
travelling_time
+
+
+
+
+
+ Time to impact in deciseconds
warning_sound
+
+
+
+
+
+ Sound played mere seconds before impact
warning_sound_volume
+
+
+
+
+
+ Volume of the sound played before impact
+
+
+
diff --git a/obj/structure/ship_ammo/sentry.html b/obj/structure/ship_ammo/sentry.html
new file mode 100644
index 000000000000..f6ae02e1be7d
--- /dev/null
+++ b/obj/structure/ship_ammo/sentry.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/ship_ammo/sentry - byond
+
+
+
+
+
+
+
+ Var Details breakeable_structures
+
+
+
+
+
+ Special structures it needs to break with drop pod
+
+
+
diff --git a/obj/structure/sink.html b/obj/structure/sink.html
new file mode 100644
index 000000000000..6bcff24e0f0f
--- /dev/null
+++ b/obj/structure/sink.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/sink - byond
+
+
+
+
+
+
+Vars
+ busy if something's being washed at the moment
+ Var Details busy
+
+
+
+
+
+ if something's being washed at the moment
+
+
+
diff --git a/obj/structure/surface/table.html b/obj/structure/surface/table.html
new file mode 100644
index 000000000000..8732757729f4
--- /dev/null
+++ b/obj/structure/surface/table.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/structure/surface/table - byond
+
+
+
+
+
+
+Procs
+ flip Flip a table along a certain direction. By default checks whether table is flippable along axis perpendicular to flip direction.
+ straight_table_check Checks whether a table is a straight line along a given axis
Proc Details flip(direction, skip_straight_check)
+
+
+
+
+
+ Flip a table along a certain direction. By default checks whether table is flippable along axis perpendicular to flip direction.
straight_table_check(direction)
+
+
+
+
+
+ Checks whether a table is a straight line along a given axis
+
+
+
diff --git a/obj/structure/tent.html b/obj/structure/tent.html
new file mode 100644
index 000000000000..f61d00a57d96
--- /dev/null
+++ b/obj/structure/tent.html
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+ /obj/structure/tent - byond
+
+
+
+
+
+
+Structures serving as landmarks and providing a buff to its users.
+A notable code feature is that they use a separate roof image that phases out when you enter the tent.
Vars
+ cold_protection_factor How much cold protection to add to entering humans - Full body clothing means complete (1) protection
+ roof_image Roof image displayed on the roof plane
+ roof_state Roof display icon_state or null to disable
+ x_dim Turf dimensions along the X axis, beginning from left, at ground level
+ y_dim Turf dimensions along the Y axis, beginning from bottom, at ground level
+ Var Details cold_protection_factor
+
+
+
+
+
+ How much cold protection to add to entering humans - Full body clothing means complete (1) protection
roof_image
+
+
+
+
+
+ Roof image displayed on the roof plane
roof_state
+
+
+
+
+
+ Roof display icon_state or null to disable
x_dim
+
+
+
+
+
+ Turf dimensions along the X axis, beginning from left, at ground level
y_dim
+
+
+
+
+
+ Turf dimensions along the Y axis, beginning from bottom, at ground level
+
+
+
diff --git a/obj/structure/toilet.html b/obj/structure/toilet.html
new file mode 100644
index 000000000000..5c785bdc2aba
--- /dev/null
+++ b/obj/structure/toilet.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/toilet - byond
+
+
+
+
+
+
+Vars
+ cistern if the cistern bit is open
+ open if the lid is up
+ swirlie the mob being given a swirlie
+ w_items the combined w_class of all the items in the cistern
+ Var Details cistern
+
+
+
+
+
+ if the cistern bit is open
open
+
+
+
+
+
+ if the lid is up
swirlie
+
+
+
+
+
+ the mob being given a swirlie
w_items
+
+
+
+
+
+ the combined w_class of all the items in the cistern
+
+
+
diff --git a/obj/structure/transmitter.html b/obj/structure/transmitter.html
new file mode 100644
index 000000000000..d33f4024ebc1
--- /dev/null
+++ b/obj/structure/transmitter.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/transmitter - byond
+
+
+
+
+
+
+Vars
+ do_not_disturb Whether or not the phone is receiving calls or not. Varies between on/off or forcibly on/off.
+ last_caller The Phone_ID of the last person to call this telephone.
+ Var Details do_not_disturb
+
+
+
+
+
+ Whether or not the phone is receiving calls or not. Varies between on/off or forcibly on/off.
last_caller
+
+
+
+
+
+ The Phone_ID of the last person to call this telephone.
+
+
+
diff --git a/obj/structure/vulture_spotter_tripod.html b/obj/structure/vulture_spotter_tripod.html
new file mode 100644
index 000000000000..03573af9f8b7
--- /dev/null
+++ b/obj/structure/vulture_spotter_tripod.html
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+ /obj/structure/vulture_spotter_tripod - byond
+
+
+
+
+
+
+Vars
+ bound_rifle Weakref to the associated rifle
+ darkness_view How much to increase the user's dark vision by
+ max_sniper_distance The maximum distance this can be from the sniper scope
+ scope_attached If the tripod has an attached spotting scope
+ scope_user Weakref to the scope user, if any
+ scope_using If the scope is currently being used
+ scope_zoom How far out the scope zooms
+ skillless If this requires the vulture_user trait to use
+ unscope_action Ref to the action to give the user of the scope Procs
+ do_unscope Handler for when the user should be unscoping
+ fold_up Handler for user folding up the tripod, picking it up
+ get_vulture_scope Getter for the vulture scope on the sniper
+ on_scope_attach Handler for when the scope is being attached to the tripod
+ on_screwdriver Handler for when the scope is being detached from the tripod by screwdriver
+ on_vulture_move Handler for when the vulture spotter scope moves
+ on_vulture_unscope Handler for when the sniper unscopes
+ rotate Rotates the tripod 90* counter-clockwise
+ set_scope_loc Sets the scope's sight location to the same as the sniper's
+ try_scope Checks if the user is able to use the scope, uses it if so
+ unscope Unscopes the user, cleaning up everything related
+ update_pixels Updates the direction the operator should be facing, and their pixel offset
+ Var Details bound_rifle
+
+
+
+
+
+ Weakref to the associated rifle
darkness_view
+
+
+
+
+
+ How much to increase the user's dark vision by
max_sniper_distance
+
+
+
+
+
+ The maximum distance this can be from the sniper scope
scope_attached
+
+
+
+
+
+ If the tripod has an attached spotting scope
scope_user
+
+
+
+
+
+ Weakref to the scope user, if any
scope_using
+
+
+
+
+
+ If the scope is currently being used
scope_zoom
+
+
+
+
+
+ How far out the scope zooms
skillless
+
+
+
+
+
+ If this requires the vulture_user trait to use
+ Ref to the action to give the user of the scope
Proc Details do_unscope()
+
+
+
+
+
+ Handler for when the user should be unscoping
fold_up
+
+ Handler for user folding up the tripod, picking it up
get_vulture_scope()
+
+
+
+
+
+ Getter for the vulture scope on the sniper
+ Handler for when the scope is being attached to the tripod
on_screwdriver
+
+ Handler for when the scope is being detached from the tripod by screwdriver
on_vulture_move
+
+ Handler for when the vulture spotter scope moves
on_vulture_unscope
+
+ Handler for when the sniper unscopes
rotate
+
+ Rotates the tripod 90* counter-clockwise
+ Sets the scope's sight location to the same as the sniper's
+ Checks if the user is able to use the scope, uses it if so
unscope()
+
+
+
+
+
+ Unscopes the user, cleaning up everything related
update_pixels(mounting)
+
+
+
+
+
+ Updates the direction the operator should be facing, and their pixel offset
+
+
+
diff --git a/obj/structure/window.html b/obj/structure/window.html
new file mode 100644
index 000000000000..83e8ce8ff7b2
--- /dev/null
+++ b/obj/structure/window.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/window - byond
+
+
+
+
+
+
+Procs
+ Initialize fixes up layering on northern and southern windows, breaks fulltile windows, those shouldn't be used in the first place regardless.
Proc Details Initialize()
+
+
+
+
+
+ fixes up layering on northern and southern windows, breaks fulltile windows, those shouldn't be used in the first place regardless.
+
+
+
diff --git a/obj/vehicle.html b/obj/vehicle.html
new file mode 100644
index 000000000000..a8006205569f
--- /dev/null
+++ b/obj/vehicle.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/vehicle - byond
+
+
+
+
+
+
+Vars
+ charge_use set this to adjust the amount of power the vehicle uses per move
+ move_delay set this to limit the speed of the vehicle
+ open Maint panel
+ powered set if vehicle is powered and should use fuel when moving
+ Var Details charge_use
+
+
+
+
+
+ set this to adjust the amount of power the vehicle uses per move
move_delay
+
+
+
+
+
+ set this to limit the speed of the vehicle
open
+
+
+
+
+
+ Maint panel
powered
+
+
+
+
+
+ set if vehicle is powered and should use fuel when moving
+
+
+
diff --git a/obj/vehicle/multitile.html b/obj/vehicle/multitile.html
new file mode 100644
index 000000000000..9dda77e976c6
--- /dev/null
+++ b/obj/vehicle/multitile.html
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+ /obj/vehicle/multitile - byond
+
+
+
+
+
+
+Proc Details crew_mousedown(/datum /source, /atom /object, /turf /location, control, params)
+
+
+
+
+
+ Checks for special control keybinds, else relays crew mouse press to active hardpoint.
crew_mousedrag(/datum /source, /atom /src_object, /atom /over_object, /turf /src_location, /turf /over_location, src_control, over_control, params)
+
+
+
+
+
+ Relays crew mouse movement to active hardpoint.
crew_mouseup(/datum /source, /atom /object, /turf /location, control, params)
+
+
+
+
+
+ Relays crew mouse release to active hardpoint.
get_mob_hp
+
+ Get active hardpoint of crewmember.
get_mob_seat
+
+ Get seat of crewmember.
get_seat_mob(seat)
+
+
+
+
+
+ Get crewmember of seat.
+
+
+
diff --git a/obj/vehicle/multitile/apc/command.html b/obj/vehicle/multitile/apc/command.html
new file mode 100644
index 000000000000..751fc45b7273
--- /dev/null
+++ b/obj/vehicle/multitile/apc/command.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/vehicle/multitile/apc/command - byond
+
+
+
+
+
+
+Vars
+ minimap_added weakrefs of xenos temporarily added to the marine minimap
+ Var Details minimap_added
+
+
+
+
+
+ weakrefs of xenos temporarily added to the marine minimap
+
+
+
diff --git a/obj/vehicle/multitile/arc.html b/obj/vehicle/multitile/arc.html
new file mode 100644
index 000000000000..05df3e84dfdb
--- /dev/null
+++ b/obj/vehicle/multitile/arc.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/vehicle/multitile/arc - byond
+
+
+
+
+
+
+Vars
+ antenna_deployed If the ARC has its antenna up, making it unable to move but enabling the turret and sensor wallhack
+ antenna_toggle_time How long it takes to deploy or retract the antenna
+ minimap_added weakrefs of xenos temporarily added to the marine minimap
+ sensor_radius Range of the ARC's xenomorph wallhacks
+ Var Details antenna_deployed
+
+
+
+
+
+ If the ARC has its antenna up, making it unable to move but enabling the turret and sensor wallhack
antenna_toggle_time
+
+
+
+
+
+ How long it takes to deploy or retract the antenna
minimap_added
+
+
+
+
+
+ weakrefs of xenos temporarily added to the marine minimap
sensor_radius
+
+
+
+
+
+ Range of the ARC's xenomorph wallhacks
+
+
+
diff --git a/particles.html b/particles.html
new file mode 100644
index 000000000000..bfea557f5cb5
--- /dev/null
+++ b/particles.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /particles - byond
+
+
+
+
+
+
+Proc Details return_ui_representation
+
+ returns ui_data values for the particle editor
+
+
+
diff --git a/procpath.html b/procpath.html
new file mode 100644
index 000000000000..f9d294c28238
--- /dev/null
+++ b/procpath.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /procpath - byond
+
+
+
+
+
+
+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 000000000000..ed376af08646
--- /dev/null
+++ b/turf.html
@@ -0,0 +1,164 @@
+
+
+
+
+
+
+ /turf - byond
+
+
+
+
+/turf
+
+
+
+
+
+Vars
+ ceiling_debrised Whether we've broken through the ceiling yet
+ cleanables Associative list of cleanable types (strings) mapped to
+cleanable objects
+ directional_opacity List of light sources affecting this turf.
+Which directions does this turf block the vision of, taking into account both the turf's opacity and the movable opacity_sources.
+ dynamic_lumcount Lumcount added by sources other than lighting datum objects, such as the overlay lighting component.
+ hybrid_lights_affecting hybrid lights affecting this turf
+ lighting_corner_NE Lighting Corner datums.
+ opacity_sources Lazylist of movable atoms providing opacity sources. Procs
+ GetAllTurfStrictContents Returns list of contents of a turf recursively, much like GetAllContents
+We only get containing atoms in the turf, excluding multitiles bordering on it
+ add_opacity_source Proc to add movable sources of opacity on the turf and let it handle lighting code.
+ change_area Call to move a turf from its current area to a new one
+ empty Remove all atoms except observers, landmarks, docking ports - clearing up the turf contents
+ load_on_top Places a turf on top - for map loading
+ on_change_area Allows for reactions to an area change without inherently requiring change_area() be called (I hate maploading)
+ recalculate_directional_opacity Calculate on which directions this turfs block view.
+ reconsider_lights Causes any affecting light sources to be queued for a visibility update, for example a door got opened.
+ remove_opacity_source Proc to remove movable sources of opacity on the turf and let it handle lighting code.
+ static_lighting_build_overlay Builds a lighting object for us, but only if our area is dynamic.
+ transfer_area_lighting Transfer the lighting of one area to another
+ Var Details ceiling_debrised
+
+
+
+
+
+ Whether we've broken through the ceiling yet
cleanables
+ – /list/obj/effect/decal/cleanable
+
+
+
+
+ Associative list of cleanable types (strings) mapped to
+cleanable objects
+The cleanable object does not necessarily need to be
+on the turf, it can simply be for handling how the
+overlays or placing new cleanables of the same type work
directional_opacity
+
+
+
+
+
+ List of light sources affecting this turf.
+Which directions does this turf block the vision of, taking into account both the turf's opacity and the movable opacity_sources.
dynamic_lumcount
+
+
+
+
+
+ Lumcount added by sources other than lighting datum objects, such as the overlay lighting component.
hybrid_lights_affecting
+ – /tmp/list/atom/movable/lighting_mask
+
+
+
+
+ hybrid lights affecting this turf
+ Lighting Corner datums.
opacity_sources
+
+
+
+
+
+ Lazylist of movable atoms providing opacity sources.
Proc Details GetAllTurfStrictContents(searchDepth, /list/toReturn)
+
+
+
+
+
+ Returns list of contents of a turf recursively, much like GetAllContents
+We only get containing atoms in the turf, excluding multitiles bordering on it
add_opacity_source
+
+ Proc to add movable sources of opacity on the turf and let it handle lighting code.
change_area
+
+ Call to move a turf from its current area to a new one
empty(turf_type, baseturf_type, /list/ignore_typecache, flags)
+
+
+
+
+
+ Remove all atoms except observers, landmarks, docking ports - clearing up the turf contents
load_on_top(/turf /added_layer, flags)
+
+
+
+
+
+ Places a turf on top - for map loading
on_change_area
+
+ Allows for reactions to an area change without inherently requiring change_area() be called (I hate maploading)
recalculate_directional_opacity()
+
+
+
+
+
+ Calculate on which directions this turfs block view.
reconsider_lights()
+
+
+
+
+
+ Causes any affecting light sources to be queued for a visibility update, for example a door got opened.
remove_opacity_source
+
+ Proc to remove movable sources of opacity on the turf and let it handle lighting code.
static_lighting_build_overlay
+
+ Builds a lighting object for us, but only if our area is dynamic.
transfer_area_lighting
+
+ Transfer the lighting of one area to another
+
+
+
diff --git a/turf/closed/wall.html b/turf/closed/wall.html
new file mode 100644
index 000000000000..a2f71c38e1e8
--- /dev/null
+++ b/turf/closed/wall.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /turf/closed/wall - byond
+
+
+
+
+
+
+Vars
+ acided_hole the acid hole inside the wall
+ damage_cap Wall will break down to girders if damage reaches this point
+ hull 1 = Can't be deconstructed by tools or thermite. Used for Sulaco walls
+ junctiontype when walls smooth with one another, the type of junction each wall is.
+ Var Details acided_hole
+
+
+
+
+
+ the acid hole inside the wall
damage_cap
+
+
+
+
+
+ Wall will break down to girders if damage reaches this point
hull
+
+
+
+
+
+ 1 = Can't be deconstructed by tools or thermite. Used for Sulaco walls
junctiontype
+
+
+
+
+
+ when walls smooth with one another, the type of junction each wall is.
+
+
+
diff --git a/turf/closed/wall/almayer.html b/turf/closed/wall/almayer.html
new file mode 100644
index 000000000000..dcd06e5b00c6
--- /dev/null
+++ b/turf/closed/wall/almayer.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /turf/closed/wall/almayer - byond
+
+
+
+
+
+
+Vars
+ decoration_type The type of wall decoration we use, to avoid the wall changing icon all the time
+ Var Details decoration_type
+
+
+
+
+
+ The type of wall decoration we use, to avoid the wall changing icon all the time
+
+
+
diff --git a/turf/open/floor/almayer/empty.html b/turf/open/floor/almayer/empty.html
new file mode 100644
index 000000000000..0543d6035606
--- /dev/null
+++ b/turf/open/floor/almayer/empty.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /turf/open/floor/almayer/empty - byond
+
+
+
+
+
+
+Base type of the requisitions and vehicle bay elevator pits.
Procs
+ get_depths_turfs Returns a list of turfs to be used as a destination for anyone unfortunate enough to fall into the pit.
Proc Details get_depths_turfs()
+
+
+
+
+
+ Returns a list of turfs to be used as a destination for anyone unfortunate enough to fall into the pit.
+
+
+
diff --git a/world.html b/world.html
new file mode 100644
index 000000000000..d14101c8cabf
--- /dev/null
+++ b/world.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /world - byond
+
+
+
+
+byond
+
+
+
+
+
+Procs
+ increase_max_x Handles incresing the world's maxx var and intializing the new turfs and assigning them to the global area.
+If map_load_z_cutoff is passed in, it will only load turfs up to that z level, inclusive.
+This is because maploading will handle the turfs it loads itself.
+ prof_init
Proc Details increase_max_x(new_maxx, map_load_z_cutoff)
+
+
+
+
+
+ Handles incresing the world's maxx var and intializing the new turfs and assigning them to the global area.
+If map_load_z_cutoff is passed in, it will only load turfs up to that z level, inclusive.
+This is because maploading will handle the turfs it loads itself.
prof_init()
+
+
+
+
+
+
+For initializing and starting byond-tracy when BYOND_TRACY is defined
+byond-tracy is a useful profiling tool that allows the user to view the CPU usage and execution time of procs as they run.
+
+
+
+