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..718e228fbc86
--- /dev/null
+++ b/area.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /area - byond
+
+
+
+
+Unknown
+
+
+
+
+
+Vars
+ ambience_exterior Default sound to play as ambience for clients entering the area
+ flags_area Bitfield of special area features
+ 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 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
flags_area
+
+
+
+
+
+ Bitfield of special area features
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
Proc Details get_sound_ambience
+
+ Returns the correct ambience sound track for a client in this area
+
+
+
diff --git a/area/shuttle.html b/area/shuttle.html
new file mode 100644
index 000000000000..d3566c122baf
--- /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..28526b2ac460
--- /dev/null
+++ b/atom.html
@@ -0,0 +1,221 @@
+
+
+
+
+
+
+ /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.
+ minimap_color The color this atom will be if we choose to draw it on the minimap
+ orbit_target Reference to atom being orbited
+ reagents Chemistry. Procs
+ 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
+ attack_alien *The parent proc, will default to UnarmedAttack behaviour unless overriden
+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_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.
+ setDir Hook for running code when a dir change occurs
+ transfer_label_component //////////////////// Hand Labeler ////////////////////////////////
+meant for use with qdelling/newing things to transfer labels between them
+ 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.
minimap_color
+
+
+
+
+
+ The color this atom will be if we choose to draw it on the minimap
orbit_target
+
+
+
+
+
+ Reference to atom being orbited
+ Chemistry.
Proc Details 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
attack_alien
+
+ *The parent proc, will default to UnarmedAttack behaviour unless overriden
+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_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.
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)
transfer_label_component
+
+ //////////////////// Hand Labeler ////////////////////////////////
+meant for use with qdelling/newing things to transfer labels between them
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..ef445a887008
--- /dev/null
+++ b/atom/movable.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /atom/movable - byond
+
+
+
+
+
+
+Vars
+ black_market_value How much this mob|object is worth when lowered into the ASRS pit while the black market is unlocked. 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.
+ 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
+ Var Details black_market_value
+
+
+
+
+
+ How much this mob|object is worth when lowered into the ASRS pit while the black market is unlocked.
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
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
+
+
+
diff --git a/atom/movable/plane_master_controller.html b/atom/movable/plane_master_controller.html
new file mode 100644
index 000000000000..d2331605b8d4
--- /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, time, /list/new_params, 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..bf91c3fba05b
--- /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/color_matrix_proxy_view.html b/atom/movable/screen/color_matrix_proxy_view.html
new file mode 100644
index 000000000000..4838333b90c7
--- /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..6c981ccefb4e
--- /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/plane_master.html b/atom/movable/screen/plane_master.html
new file mode 100644
index 000000000000..f0ca8c41bbfb
--- /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..f4f2203ab796
--- /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/text/screen_text.html b/atom/movable/screen/text/screen_text.html
new file mode 100644
index 000000000000..5f30a810e316
--- /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/client.html b/client.html
new file mode 100644
index 000000000000..85d71da91c78
--- /dev/null
+++ b/client.html
@@ -0,0 +1,520 @@
+
+
+
+
+
+
+ /client - byond
+
+
+
+
+
+
+Vars
+ admin_music_volume Admin music volume, from 0 to 1.
+ 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.
+ larva_queue_time The descriminator for larva queue ordering: Generally set to timeofdeath except for facehuggers/admin z-level play
+ 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.
+ 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.
+ 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_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.
+ reset_held_keys Manually clears any held keys, in case due to lag or other undefined behavior a key gets stuck.
+ 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.
+ uiclose verb
+ update_special_keybinds Updates the keybinds for special keys
+ who Can remove notes from anyone other than yourself, unless you're the host. So long as you have deletion access anyway.
+ Var Details admin_music_volume
+
+
+
+
+
+ Admin music volume, from 0 to 1.
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.
larva_queue_time
+
+
+
+
+
+ The descriminator for larva queue ordering: Generally set to timeofdeath except for facehuggers/admin z-level play
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.
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.
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_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.
reset_held_keys()
+
+
+
+
+
+ Manually clears any held keys, in case due to lag or other undefined behavior a key gets stuck.
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.
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
+ who()
+
+
+
+
+
+ Can remove notes from anyone other than yourself, unless you're the host. So long as you have deletion access anyway.
+
+
+
diff --git a/code/__DEFINES/ARES.html b/code/__DEFINES/ARES.html
new file mode 100644
index 000000000000..00bc437f972d
--- /dev/null
+++ b/code/__DEFINES/ARES.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ code/__DEFINES/ARES.dm - byond
+
+
+
+
+code/__DEFINES/ARES.dm
+
+
+
+Define Details
+APOLLO_ACCESS_REQUEST
+
+
+
+ Access levels specifically for Working Joe management console
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. Unlikely to stay in a full merge.
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
TICKET_PENDING
+
+
+
+ Ticket statuses, both for Access and Maintenance
+
+
+
diff --git a/code/__DEFINES/MC.html b/code/__DEFINES/MC.html
new file mode 100644
index 000000000000..079032507d91
--- /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..1cee9249bb33
--- /dev/null
+++ b/code/__DEFINES/__game.html
@@ -0,0 +1,210 @@
+
+
+
+
+
+
+ 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..40eaa19db7c5
--- /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..92423e3953c9
--- /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..a842cac536ce
--- /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..a923f144d211
--- /dev/null
+++ b/code/__DEFINES/_macros.html
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+ 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, or a cached version of it
+This allows us to cache \ref creation, which ensures it'll only ever happen once per datum, saving string tree time
+It is slightly less optimal then a []'d datum, but the cost is massively outweighed by the potential savings
+It will only work for datums mind, for datum reasons
+: because of the embedded typecheck
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, or a cached version of it
+This allows us to cache \ref creation, which ensures it'll only ever happen once per datum, saving string tree time
+It is slightly less optimal then a []'d datum, but the cost is massively outweighed by the potential savings
+It will only work for datums mind, for datum reasons
+: because of the embedded typecheck
+
+
+
diff --git a/code/__DEFINES/_math.html b/code/__DEFINES/_math.html
new file mode 100644
index 000000000000..0e3523603819
--- /dev/null
+++ b/code/__DEFINES/_math.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ 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
Define Details
+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..0acb905468d4
--- /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..1f17895ad6a2
--- /dev/null
+++ b/code/__DEFINES/access.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/__DEFINES/access.dm - byond
+
+
+
+
+code/__DEFINES/access.dm
+
+
+
+Define Details
+ACCESS_ARES_DEBUG
+
+
+
+ Used to access Maintenance Protocols on ARES Interface.
ACCESS_MARINE_AI
+
+
+
+ Used as dedicated access to ARES Core.
ACCESS_MARINE_AI_TEMP
+
+
+
+ Used in temporary passes
+
+
+
diff --git a/code/__DEFINES/admin.html b/code/__DEFINES/admin.html
new file mode 100644
index 000000000000..5472772e55fa
--- /dev/null
+++ b/code/__DEFINES/admin.html
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+ 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_COMMANDER
+
+
+
+ These notes are used by respective whitelist councils for record keeping.
NOTE_MERIT
+
+
+
+ This note is used by staff for positive record keeping.
+
+
+
diff --git a/code/__DEFINES/atmospherics.html b/code/__DEFINES/atmospherics.html
new file mode 100644
index 000000000000..c315316924ef
--- /dev/null
+++ b/code/__DEFINES/atmospherics.html
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+ 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.
+ /var/MAX_EXPLOSION_RANGE
+ This was a define, but I changed it to a variable so it can be changed in-game.(kept the all-caps definition because... code...) -Errorage
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.
+
+
+
diff --git a/code/__DEFINES/autolathe.html b/code/__DEFINES/autolathe.html
new file mode 100644
index 000000000000..759a7505dcc0
--- /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..7b2e478cd35e
--- /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..53a2a1a71b64
--- /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..d859508e6b19
--- /dev/null
+++ b/code/__DEFINES/chemistry.html
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+ code/__DEFINES/chemistry.dm - byond
+
+
+
+
+code/__DEFINES/chemistry.dm
+
+
+
+
+ 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
+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..6a3a74935de5
--- /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/colours.html b/code/__DEFINES/colours.html
new file mode 100644
index 000000000000..d57c775a62b7
--- /dev/null
+++ b/code/__DEFINES/colours.html
@@ -0,0 +1,195 @@
+
+
+
+
+
+
+ code/__DEFINES/colours.dm - byond
+
+
+
+
+code/__DEFINES/colours.dm
+
+
+
+
+ ADMIN_COLOUR_PRIORITY Only used by rare effects like greentext colouring mobs and when admins varedit color
+ TEMPORARY_COLOUR_PRIORITY e.g. purple effect of the revenant on a mob, black effect when mob electrocuted
+ WASHABLE_COLOUR_PRIORITY Colour splashed onto an atom (e.g. paint on turf)
+ FIXED_COLOUR_PRIORITY Colour inherent to the atom (e.g. blob color)
+ COLOUR_PRIORITY_AMOUNT how many color priority levels there are.
+ COLOUR_SAMPLE_YELLOW Colours for xenobiology vatgrowing
+ COLOUR_THEME_MIDNIGHT Main colours for UI themes
+ COLOUR_PERIWINKLEE Colours for eigenstates
+ LIGHT_COLOUR_GREEN Some defines to generalise colours used in lighting.
+ LIGHT_COLOUR_ELECTRIC_GREEN Electric green. rgb(0, 255, 0)
+ LIGHT_COLOUR_BLUE Cold, diluted blue. rgb(100, 150, 250)
+ LIGHT_COLOUR_BLUEGREEN Light blueish green. rgb(125, 225, 175)
+ LIGHT_COLOUR_CYAN Diluted cyan. rgb(125, 225, 225)
+ LIGHT_COLOUR_ELECTRIC_CYAN Electric cyan rgb(0, 255, 255)
+ LIGHT_COLOUR_LIGHT_CYAN More-saturated cyan. rgb(64, 206, 255)
+ LIGHT_COLOUR_DARK_BLUE Saturated blue. rgb(51, 117, 248)
+ LIGHT_COLOUR_PINK Diluted, mid-warmth pink. rgb(225, 125, 225)
+ LIGHT_COLOUR_YELLOW Dimmed yellow, leaning kaki. rgb(225, 225, 125)
+ LIGHT_COLOUR_BROWN Clear brown, mostly dim. rgb(150, 100, 50)
+ LIGHT_COLOUR_ORANGE Mostly pure orange. rgb(250, 150, 50)
+ LIGHT_COLOUR_PURPLE Light Purple. rgb(149, 44, 244)
+ LIGHT_COLOUR_LAVENDER Less-saturated light purple. rgb(155, 81, 255)
+ LIGHT_COLOUR_HOLY_MAGIC slightly desaturated bright yellow.
+ LIGHT_COLOUR_BLOOD_MAGIC deep crimson
+ LIGHT_COLOUR_FIRE Warm orange color, leaning strongly towards yellow. rgb(250, 160, 25)
+ LIGHT_COLOUR_LAVA Very warm yellow, leaning slightly towards orange. rgb(196, 138, 24)
+ LIGHT_COLOUR_FLARE Bright, non-saturated red. Leaning slightly towards pink for visibility. rgb(250, 100, 75)
+ LIGHT_COLOUR_SLIME_LAMP Weird color, between yellow and green, very slimy. rgb(175, 200, 75)
+ LIGHT_COLOUR_TUNGSTEN Extremely diluted yellow, close to skin color (for some reason). rgb(250, 225, 175)
+ LIGHT_COLOUR_HALOGEN Barely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250)
+ DEFAULT_ASAY_COLOUR 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
Define Details
+ADMIN_COLOUR_PRIORITY
+
+
+
+ Only used by rare effects like greentext colouring mobs and when admins varedit color
AMBIENT_OCCLUSION
+
+
+
+ Icon filter that creates ambient occlusion
COLOUR_PERIWINKLEE
+
+
+
+ Colours for eigenstates
COLOUR_PRIORITY_AMOUNT
+
+
+
+ how many color priority levels there are.
COLOUR_SAMPLE_YELLOW
+
+
+
+ Colours for xenobiology vatgrowing
COLOUR_THEME_MIDNIGHT
+
+
+
+ Main colours for UI themes
DEFAULT_ASAY_COLOUR
+
+
+
+ The default color for admin say, used as a fallback when the preference is not enabled
FIXED_COLOUR_PRIORITY
+
+
+
+ Colour inherent to the atom (e.g. blob color)
GAUSSIAN_BLUR
+
+
+
+
+ Icon filter that creates gaussian blur
LIGHT_COLOUR_BLOOD_MAGIC
+
+
+
+ deep crimson
LIGHT_COLOUR_BLUE
+
+
+
+ Cold, diluted blue. rgb(100, 150, 250)
LIGHT_COLOUR_BLUEGREEN
+
+
+
+ Light blueish green. rgb(125, 225, 175)
LIGHT_COLOUR_BROWN
+
+
+
+ Clear brown, mostly dim. rgb(150, 100, 50)
LIGHT_COLOUR_CYAN
+
+
+
+ Diluted cyan. rgb(125, 225, 225)
LIGHT_COLOUR_DARK_BLUE
+
+
+
+ Saturated blue. rgb(51, 117, 248)
LIGHT_COLOUR_ELECTRIC_CYAN
+
+
+
+ Electric cyan rgb(0, 255, 255)
LIGHT_COLOUR_ELECTRIC_GREEN
+
+
+
+ Electric green. rgb(0, 255, 0)
LIGHT_COLOUR_FIRE
+
+
+
+ Warm orange color, leaning strongly towards yellow. rgb(250, 160, 25)
LIGHT_COLOUR_FLARE
+
+
+
+ Bright, non-saturated red. Leaning slightly towards pink for visibility. rgb(250, 100, 75)
LIGHT_COLOUR_GREEN
+
+
+
+ Some defines to generalise colours used in lighting.
+Important note: colours can end up significantly different from the basic html picture, especially when saturated
+Bright but quickly dissipating neon green. rgb(100, 200, 100)
LIGHT_COLOUR_HALOGEN
+
+
+
+ Barely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250)
LIGHT_COLOUR_HOLY_MAGIC
+
+
+
+ slightly desaturated bright yellow.
LIGHT_COLOUR_LAVA
+
+
+
+ Very warm yellow, leaning slightly towards orange. rgb(196, 138, 24)
LIGHT_COLOUR_LAVENDER
+
+
+
+ Less-saturated light purple. rgb(155, 81, 255)
LIGHT_COLOUR_LIGHT_CYAN
+
+
+
+ More-saturated cyan. rgb(64, 206, 255)
LIGHT_COLOUR_ORANGE
+
+
+
+ Mostly pure orange. rgb(250, 150, 50)
LIGHT_COLOUR_PINK
+
+
+
+ Diluted, mid-warmth pink. rgb(225, 125, 225)
LIGHT_COLOUR_PURPLE
+
+
+
+ Light Purple. rgb(149, 44, 244)
LIGHT_COLOUR_SLIME_LAMP
+
+
+
+ Weird color, between yellow and green, very slimy. rgb(175, 200, 75)
LIGHT_COLOUR_TUNGSTEN
+
+
+
+ Extremely diluted yellow, close to skin color (for some reason). rgb(250, 225, 175)
LIGHT_COLOUR_YELLOW
+
+
+
+ Dimmed yellow, leaning kaki. rgb(225, 225, 125)
TEMPORARY_COLOUR_PRIORITY
+
+
+
+ e.g. purple effect of the revenant on a mob, black effect when mob electrocuted
WASHABLE_COLOUR_PRIORITY
+
+
+
+ Colour splashed onto an atom (e.g. paint on turf)
+
+
+
diff --git a/code/__DEFINES/conflict.html b/code/__DEFINES/conflict.html
new file mode 100644
index 000000000000..51379638b108
--- /dev/null
+++ b/code/__DEFINES/conflict.html
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+ 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
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
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 IFF
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 after throwing something to throw again
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..79f844e2d61a
--- /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..8f3a0ea8f4ec
--- /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..a328f4acdb21
--- /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..7e568ed18cbb
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/mob/living/signals_human.html
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+ 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/item/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_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_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..3cf16641ed2a
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/mob/living/signals_living.html
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+ 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_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_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_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..84a1e2f27c2b
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/mob/living/signals_xeno.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ 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_MOVEMENT_DELAY
+
+
+
+ from /mob/living/carbon/xenomorph/movement_delay()
COMSIG_XENO_POST_SPIT
+
+
+
+ From ../xeno_action/activable/xeno_spit/use_ability
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_STOP_MOMENTUM
+
+
+
+ Called whenever xeno should stop momentum (when charging)
+
+
+
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..fdca38d7124c
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/mob/signals_mob.html
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/atom/mob/signals_mob.dm
+
+
+
+Define Details
+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_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_GETTING_UP
+
+
+
+ From /mob/proc/update_canmove()
COMSIG_MOB_GRAB_UPGRADE
+
+
+
+ From /obj/item/grab/attack_self(mob/user)
COMSIG_MOB_ITEM_UNEQUIPPED
+
+
+
+ From /obj/item/proc/unequipped()
COMSIG_MOB_KNOCKED_DOWN
+
+
+
+ From /mob/proc/update_canmove()
COMSIG_MOB_LOGIN
+
+
+
+ from base of /mob/Login(): ()
COMSIG_MOB_LOGOUT
+
+
+
+ from base of /mob/Logout(): ()
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_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..84fb42a65d39
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/signals_atom.html
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ 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_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_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_item.html b/code/__DEFINES/dcs/signals/atom/signals_item.html
new file mode 100644
index 000000000000..38e2c5552ca9
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/signals_item.html
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ 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_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..6fd347b8ac6d
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/signals_movable.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ 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_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..b132c0779972
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/signals_obj.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/atom/signals_obj.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/atom/signals_obj.dm
+
+
+
+Define Details
+COMSIG_SHUTTLE_SETMODE
+
+
+
+ shuttle mode change
COMSIG_TRANSMITTER_UPDATE_ICON
+
+
+
+ from /obj/structure/transmitter/update_icon()
COMSIG_WEEDNODE_CANNOT_EXPAND_FURTHER
+
+
+
+ From /obj/effect/alien/weeds/proc/on_weed_expand()
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..d1a6368d1791
--- /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/item/projectile/handle_mob(): (mob/living/target)
COMSIG_BULLET_POST_HANDLE_OBJ
+
+
+
+ From /obj/item/projectile/handle_obj(): (obj/target, did_hit)
COMSIG_BULLET_POST_HANDLE_TURF
+
+
+
+ From /obj/item/projectile/scan_a_turf(): (turf/target)
COMSIG_BULLET_PRE_HANDLE_MOB
+
+
+
+ From /obj/item/projectile/handle_mob(): (mob/living/target)
COMSIG_BULLET_PRE_HANDLE_OBJ
+
+
+
+ From /obj/item/projectile/handle_obj(): (obj/target)
COMSIG_BULLET_PRE_HANDLE_TURF
+
+
+
+ From /obj/item/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..3b1dab53f826
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/atom/signals_turf.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ 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_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..6f05bdcec460
--- /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..3a79a50dda71
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_client.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/signals_client.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/signals_client.dm
+
+
+
+Define Details
+COMSIG_CLIENT_MOB_LOGIN
+
+
+
+ Called after a client logs into a mob: (mob)
COMSIG_CLIENT_PRE_CLICK
+
+
+
+ from /mob/do_click(): (atom/A, list/mods)
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..813b5edc7012
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_datum.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+ code/__DEFINES/dcs/signals/signals_datum.dm - byond
+
+
+
+
+code/__DEFINES/dcs/signals/signals_datum.dm
+
+
+
+Define Details
+COMPONENT_NO_AFTERATTACK
+
+
+
+ Return this in response if you don't want afterattack to be called
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_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..d015089797b1
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_global.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ 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_DS_FIRST_LANDED
+
+
+
+ from /datum/game_mode/proc/ds_first_landed
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_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_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
+
+
+
diff --git a/code/__DEFINES/dcs/signals/signals_subsystem.html b/code/__DEFINES/dcs/signals/signals_subsystem.html
new file mode 100644
index 000000000000..8361c050e68d
--- /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..77044dce12fa
--- /dev/null
+++ b/code/__DEFINES/equipment.html
@@ -0,0 +1,402 @@
+
+
+
+
+
+
+ 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 icon state.
+ 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
+ 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.
+ NOTABLEMERGE The item goes on top of tables, instead of into them with the overlay system
+ IGNITING_ITEM Has heat source but isn't 'on fire' and thus can be stored
+ 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)
+ 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)
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.
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)
NOTABLEMERGE
+
+
+
+ The item goes on top of tables, instead of into them with the overlay system
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 icon state.
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
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..cd8a79ad4b67
--- /dev/null
+++ b/code/__DEFINES/flags.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+ 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
+
+
+
diff --git a/code/__DEFINES/fonts.html b/code/__DEFINES/fonts.html
new file mode 100644
index 000000000000..e19cacdb158d
--- /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/hud.html b/code/__DEFINES/hud.html
new file mode 100644
index 000000000000..bab8f5474841
--- /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..38a1ee2bcac8
--- /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..c316b45ab7ca
--- /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..603f55c407de
--- /dev/null
+++ b/code/__DEFINES/layers.html
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+ 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
+ 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_CRIT_LAYER in critical
+ AREAS_LAYER for areas, so they appear above everything else on map file.
+ 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
+ ROOF_PLANE Roof plane, disappearing when entering buildings
+ BLACKNESS_PLANE To keep from conflicts with SEE_BLACKNESS internals
+ RUNECHAT_PLANE Popup Chat Messages
+ HUD_PLANE HUD layer defines
+ PLANE_MASTERS_GAME Plane master controller keys
Define Details
+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.
BELOW_FULLSCREEN_LAYER
+
+
+
+ blip from motion detector
BELOW_OBJ_LAYER
+
+
+
+ just below all 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
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_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
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
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/maps.html b/code/__DEFINES/maps.html
new file mode 100644
index 000000000000..b038a3159ada
--- /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)
+ CAN_BE_DIRTY_1 If a turf can be made dirty at roundstart. This is also used in areas.
Define Details
+CAN_BE_DIRTY_1
+
+
+
+ If a turf can be made dirty at roundstart. This is also used in areas.
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
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..8173a64d761c
--- /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..02e8f09429f7
--- /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..d04bb0ae2813
--- /dev/null
+++ b/code/__DEFINES/misc.html
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+ 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
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/mode.html b/code/__DEFINES/mode.html
new file mode 100644
index 000000000000..a31332a67154
--- /dev/null
+++ b/code/__DEFINES/mode.html
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+ code/__DEFINES/mode.dm - byond
+
+
+
+
+code/__DEFINES/mode.dm
+
+
+
+Define Details
+APC_SCORE_INTERVAL
+
+
+
+ Misc. defines for objectives
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_COUNCIL_LEGACY
+
+
+
+ Old holders of COMMANDER_COUNCIL for 3 months
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..e6ae0cad054e
--- /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..9eb43f0e1243
--- /dev/null
+++ b/code/__DEFINES/objects.html
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+ code/__DEFINES/objects.dm - byond
+
+
+
+
+code/__DEFINES/objects.dm
+
+
+
+
+ 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
+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?
+
+
+
diff --git a/code/__DEFINES/procpath.html b/code/__DEFINES/procpath.html
new file mode 100644
index 000000000000..707b48ca2c0a
--- /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..0c7cdf7e405b
--- /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..0efe1b4bcb86
--- /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/subsystems.html b/code/__DEFINES/subsystems.html
new file mode 100644
index 000000000000..bab61768ba87
--- /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 guarenteed 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 overriden. 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/surgery.html b/code/__DEFINES/surgery.html
new file mode 100644
index 000000000000..a8380c94fc58
--- /dev/null
+++ b/code/__DEFINES/surgery.html
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+ 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_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_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..5c76f2025d5b
--- /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..6f2d683d5b27
--- /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..1cdd5dae62ca
--- /dev/null
+++ b/code/__DEFINES/tgs.html
@@ -0,0 +1,207 @@
+
+
+
+
+
+
+ code/__DEFINES/tgs.dm - byond
+
+
+
+
+code/__DEFINES/tgs.dm
+
+
+
+
+ TGS_EVENT_REBOOT_MODE_CHANGE Create this define if you want to do TGS configuration outside of this file.
+Before a reboot mode change, extras parameters are the current and new reboot mode enums.
+ TGS_EVENT_PORT_SWAP Before a port change is about to happen, extra parameters is new port.
+ TGS_EVENT_INSTANCE_RENAMED Before the instance is renamed, extra parameter is the new name.
+ TGS_EVENT_WATCHDOG_REATTACH After the watchdog reattaches to DD, extra parameter is the new /datum/tgs_version of the server.
+ TGS_EVENT_HEALTH_CHECK When the watchdog sends a health check to DD. No parameters.
+ TGS_EVENT_REPO_RESET_ORIGIN When the repository is reset to its origin reference. Parameters: Reference name, Commit SHA.
+ TGS_EVENT_REPO_CHECKOUT When the repository performs a checkout. Parameters: Checkout git object.
+ TGS_EVENT_REPO_FETCH When the repository performs a fetch operation. No parameters.
+ TGS_EVENT_REPO_MERGE_PULL_REQUEST When the repository test merges. Parameters: PR Number, PR Sha, (Nullable) Comment made by TGS user.
+ TGS_EVENT_REPO_PRE_SYNCHRONIZE Before the repository makes a sychronize operation. Parameters: Absolute repostiory path.
+ TGS_EVENT_BYOND_INSTALL_START Before a BYOND install operation begins. Parameters: /datum/tgs_version of the installing BYOND.
+ TGS_EVENT_BYOND_INSTALL_FAIL When a BYOND install operation fails. Parameters: Error message
+ TGS_EVENT_BYOND_ACTIVE_VERSION_CHANGE When the active BYOND version changes. Parameters: (Nullable) /datum/tgs_version of the current BYOND, /datum/tgs_version of the new BYOND.
+ 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, byond version.
+ 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_TOPIC Put this at the start of [/world/proc/Topic].
+ /datum/tgs_revision_information Represents git revision information.
+ /datum/tgs_version Represents a version.
+ /datum/tgs_revision_information/test_merge Represents a merge of a GitHub pull request.
+ /datum/tgs_chat_channel Represents a connected chat channel.
+ /datum/tgs_event_handler User definable handler for TGS events.
+ /datum/tgs_chat_command User definable chat command.
+ /datum/tgs_message_content User definable chat message.
+ /datum/tgs_chat_embed/structure User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/channel#embed-object-embed-structure for details.
+ /datum/tgs_chat_embed/media Common datum for similar discord embed medias.
+ /datum/tgs_chat_embed/footer See https://discord.com/developers/docs/resources/channel#embed-object-embed-footer-structure for details.
+ /datum /tgs_chat_embed/provider See https://discord.com/developers/docs/resources/channel#embed-object-embed-provider-structure for details.
+ /datum /tgs_chat_embed/provider/author See https://discord.com/developers/docs/resources/channel#embed-object-embed-author-structure for details. Must have name set in New().
+ /datum /tgs_chat_embed/field See https://discord.com/developers/docs/resources/channel#embed-object-embed-field-structure for details. Must have name and value set in New().
Define Details
+TGS_EVENT_BYOND_ACTIVE_VERSION_CHANGE
+
+
+
+ When the active BYOND version changes. Parameters: (Nullable) /datum/tgs_version of the current BYOND, /datum/tgs_version of the new BYOND.
TGS_EVENT_BYOND_INSTALL_FAIL
+
+
+
+ When a BYOND install operation fails. Parameters: Error message
TGS_EVENT_BYOND_INSTALL_START
+
+
+
+ Before a BYOND install operation begins. Parameters: /datum/tgs_version of the installing BYOND.
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_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, byond version.
TGS_EVENT_REBOOT_MODE_CHANGE
+
+
+
+ Create this define if you want to do TGS configuration outside of this file.
+Before a reboot mode change, extras parameters are the current and new reboot mode enums.
TGS_EVENT_REPO_CHECKOUT
+
+
+
+ When the repository performs a checkout. Parameters: Checkout git object.
TGS_EVENT_REPO_FETCH
+
+
+
+ When the repository performs a fetch operation. No parameters.
TGS_EVENT_REPO_MERGE_CONFLICT
+
+
+
+ When the repository encounters a merge conflict: Parameters: Base SHA, target SHA, base reference, target reference.
TGS_EVENT_REPO_MERGE_PULL_REQUEST
+
+
+
+ When the repository test merges. Parameters: PR Number, PR Sha, (Nullable) Comment made by TGS user.
TGS_EVENT_REPO_PRE_SYNCHRONIZE
+
+
+
+ Before the repository makes a sychronize operation. Parameters: Absolute repostiory path.
TGS_EVENT_REPO_RESET_ORIGIN
+
+
+
+ When the repository is reset to its origin reference. Parameters: Reference name, Commit SHA.
TGS_EVENT_REPO_SUBMODULE_UPDATE
+
+
+
+ After a single submodule update is performed. Parameters: Updated submodule name.
TGS_EVENT_WATCHDOG_DETACH
+
+
+
+ Before the watchdog detaches for a TGS update/restart. No parameters.
TGS_EVENT_WATCHDOG_REATTACH
+
+
+
+ After the watchdog reattaches to DD, extra parameter is the new /datum/tgs_version of the server.
TGS_EVENT_WATCHDOG_SHUTDOWN
+
+
+
+ Before the watchdog shuts down. Not sent for graceful shutdowns. No parameters.
TGS_EVENT_WORLD_PRIME
+
+
+
+ Watchdog event when TgsInitializationComplete() is called. No parameters.
TGS_REBOOT_MODE_NORMAL
+
+
+
+ The server will reboot normally.
TGS_REBOOT_MODE_RESTART
+
+
+
+ The watchdog will restart on reboot.
TGS_REBOOT_MODE_SHUTDOWN
+
+
+
+ The server will stop running on reboot.
TGS_SECURITY_SAFE
+
+
+
+ DreamDaemon Safe security level.
TGS_SECURITY_TRUSTED
+
+
+
+ DreamDaemon Trusted security level.
TGS_SECURITY_ULTRASAFE
+
+
+
+ DreamDaemon Ultrasafe security level.
TGS_TOPIC
+
+
+
+ Put this at the start of [/world/proc/Topic].
+
+
+
diff --git a/code/__DEFINES/tgui.html b/code/__DEFINES/tgui.html
new file mode 100644
index 000000000000..c2f032647cf5
--- /dev/null
+++ b/code/__DEFINES/tgui.html
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+ code/__DEFINES/tgui.dm - byond
+
+
+
+
+code/__DEFINES/tgui.dm
+
+
+
+Define Details
+TGUI_CREATE_MESSAGE
+
+
+
+
+ Creates a message packet for sending via output()
TGUI_PING_TIMEOUT
+
+
+
+ Maximum ping timeout allowed to detect zombie windows
TGUI_REFRESH_FULL_UPDATE_COOLDOWN
+
+
+
+ Used for rate-limiting to prevent DoS by excessively refreshing a TGUI window
TGUI_WINDOW_CLOSED
+
+
+
+ Window does not exist
TGUI_WINDOW_HARD_LIMIT
+
+
+
+ Maximum number of open windows
TGUI_WINDOW_ID
+
+
+
+
+ Get a window id based on the provided pool index
TGUI_WINDOW_INDEX
+
+
+
+
+ Get a pool index of the provided window id
TGUI_WINDOW_LOADING
+
+
+
+ Window was just opened, but is still not ready to be sent data
TGUI_WINDOW_READY
+
+
+
+ Window is free and ready to receive data
TGUI_WINDOW_SOFT_LIMIT
+
+
+
+ Maximum number of windows that can be suspended/reused
UI_CLOSE
+
+
+
+ UI Should close
UI_DISABLED
+
+
+
+ Red eye; disabled, does not update
UI_INTERACTIVE
+
+
+
+ Green eye; fully interactive
UI_UPDATE
+
+
+
+ Orange eye; updates but is not interactive
+
+
+
diff --git a/code/__DEFINES/traits.html b/code/__DEFINES/traits.html
new file mode 100644
index 000000000000..02c0135c5e48
--- /dev/null
+++ b/code/__DEFINES/traits.html
@@ -0,0 +1,258 @@
+
+
+
+
+
+
+ code/__DEFINES/traits.dm - byond
+
+
+
+
+code/__DEFINES/traits.dm
+
+
+
+Define Details
+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_CHARGING
+
+
+
+ If the mob is currently charging (xeno only)
TRAIT_CRAWLER
+
+
+
+ If the mob can crawl through pipes equipped
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_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_HOLDS_CANE
+
+
+
+ If the mob is holding a cane.
TRAIT_INFILTRATOR_SYNTH
+
+
+
+ Masked synthetic biology. Basic medHUDs will percieve the mob as human. (Infiltrator Synths)
TRAIT_INTENT_EYES
+
+
+
+ Eye color changes on intent. (G1 Synths)
TRAIT_LEADERSHIP
+
+
+
+ If the mob has leadership abilities (giving orders).
TRAIT_LISPING
+
+
+
+ Replace s with th in talking
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 overriden for some hives). Does not occur naturally. Must be applied in events.
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_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_INHERENT
+
+
+
+ Example trait source
TRAIT_SOURCE_ITEM
+
+
+
+ Status trait coming from generic items
TRAIT_SOURCE_JOB
+
+
+
+ Status trait coming from their job
TRAIT_SOURCE_QUIRK
+
+
+
+ Status trait coming from roundstart quirks (that don't exist yet). Unremovable by REMOVE_TRAIT
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_WEAPON
+
+
+
+ Status trait from weapons?? buh
TRAIT_SOURCE_XENO_ACTION_CHARGE
+
+
+
+ Status trait forced by the xeno action charge
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_TWOBORE_TRAINING
+
+
+
+ If the mob can handle the superheavy two-bore rifle and speaks its fluff lines when landing hits with it.
TRAIT_USING_WHEELCHAIR
+
+
+
+ If the mob is buckled to a wheelchair.
TRAIT_XENONID
+
+
+
+ If the Hive is a Xenonid Hive
TRAIT_YAUTJA_TECH
+
+
+
+ Example trait
+Knowledge of Yautja technology
+
+
+
diff --git a/code/__DEFINES/turf_flags.html b/code/__DEFINES/turf_flags.html
new file mode 100644
index 000000000000..2a46a4b792c1
--- /dev/null
+++ b/code/__DEFINES/turf_flags.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/__DEFINES/turf_flags.dm - byond
+
+
+
+
+code/__DEFINES/turf_flags.dm
+
+
+
+
+ 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
+ TURF_ORGANIC Marks a turf as organic. Used for alien wall and membranes.
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
TURF_ORGANIC
+
+
+
+ Marks a turf as organic. Used for alien wall and membranes.
+
+
+
diff --git a/code/__DEFINES/unit_tests.html b/code/__DEFINES/unit_tests.html
new file mode 100644
index 000000000000..0dfb7fb46f0d
--- /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..c1b797d78f10
--- /dev/null
+++ b/code/__DEFINES/vehicle.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ code/__DEFINES/vehicle.dm - byond
+
+
+
+
+code/__DEFINES/vehicle.dm
+
+
+
+Define Details
+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/weapon_stats.html b/code/__DEFINES/weapon_stats.html
new file mode 100644
index 000000000000..f21f1e5a82ae
--- /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..e0bef75d6a7b
--- /dev/null
+++ b/code/__DEFINES/xeno.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+ code/__DEFINES/xeno.dm - byond
+
+
+
+
+code/__DEFINES/xeno.dm
+
+
+
+Define Details
+BUILD_TIME_MULT_XENO
+
+
+
+ Multiplier for time taken for a xeno to place down a resin structure
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_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_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..7a97624c63b0
--- /dev/null
+++ b/code/__HELPERS/#maths.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ code/__HELPERS/#maths.dm - byond
+
+
+
+
+code/__HELPERS/#maths.dm
+
+
+
+
+ /proc/display_power
+ Format a power value in W, kW, MW, or GW.
+ /proc/get_angle
+ Calculate the angle between two movables and the west|east coordinate
+ /proc/get_angle_raw
+ Angle between two arbitrary points and horizontal line same as /proc/get_angle
+ /proc/get_pixel_angle
+ for getting the angle when animating something's pixel_x and pixel_y
+ /proc/get_line
+ Get a list of turfs in a line from starting_atom
to ending_atom
.
+ /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..56742c92a94a
--- /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..7d4654a65f5b
--- /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/chat.html b/code/__HELPERS/chat.html
new file mode 100644
index 000000000000..1defb768bd28
--- /dev/null
+++ b/code/__HELPERS/chat.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ code/__HELPERS/chat.dm - byond
+
+
+
+
+code/__HELPERS/chat.dm
+
+
+
+
+ /proc/send2chat
+ 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..e52514e2b1e6
--- /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..6cbabbf35e5f
--- /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..c31a2b69b85e
--- /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..9af203e27304
--- /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..d319105ef683
--- /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..c84acec553e5
--- /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..7262648cc77f
--- /dev/null
+++ b/code/__HELPERS/icons.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/__HELPERS/icons.dm - byond
+
+
+
+
+code/__HELPERS/icons.dm
+
+
+
+
+ /proc/getFlatIcon
+ Create a single /icon from a given /atom or /image .
+ /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/lists.html b/code/__HELPERS/lists.html
new file mode 100644
index 000000000000..c15b68f4acaa
--- /dev/null
+++ b/code/__HELPERS/lists.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ 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/reverse_range
+ replaces reverseList ~Carnie
+
+
+
diff --git a/code/__HELPERS/logging.html b/code/__HELPERS/logging.html
new file mode 100644
index 000000000000..b00822a06cd9
--- /dev/null
+++ b/code/__HELPERS/logging.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ 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.
+
+
+
diff --git a/code/__HELPERS/matrices.html b/code/__HELPERS/matrices.html
new file mode 100644
index 000000000000..92cc27487eee
--- /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..2756bf4b3ed6
--- /dev/null
+++ b/code/__HELPERS/nameof.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ 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.
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.
+
+
+
diff --git a/code/__HELPERS/qdel.html b/code/__HELPERS/qdel.html
new file mode 100644
index 000000000000..95afc634cf11
--- /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/text.html b/code/__HELPERS/text.html
new file mode 100644
index 000000000000..5c5e7171aa5d
--- /dev/null
+++ b/code/__HELPERS/text.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/__HELPERS/text.dm - byond
+
+
+
+
+code/__HELPERS/text.dm
+
+
+
+
+
+
+
diff --git a/code/__HELPERS/type2type.html b/code/__HELPERS/type2type.html
new file mode 100644
index 000000000000..8d28fc89e4a5
--- /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..3fa9eb39fd3f
--- /dev/null
+++ b/code/__HELPERS/unsorted.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ 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/TurfBlockedNonWindow
+ the actual dir between the start and target turf
+The direction that mover's path is being blocked by
+ VARSET_WEAK_CALLBACK Same as VARSET_CALLBACK, but uses a weakref to the datum.
+Use this if the timer is exceptionally long.
+ /proc/getpois
+ Returns a list of all items of interest with their name
Define Details
+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..390f72254e31
--- /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..50ea9bc3499c
--- /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..7f54f2eb2d09
--- /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/lists/keybindings.html b/code/_globalvars/lists/keybindings.html
new file mode 100644
index 000000000000..470edf1310c9
--- /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..560a48f91ef6
--- /dev/null
+++ b/code/_globalvars/misc.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/_globalvars/misc.dm - byond
+
+
+
+
+code/_globalvars/misc.dm
+
+
+
+
+
+
+
diff --git a/code/_macros.html b/code/_macros.html
new file mode 100644
index 000000000000..f8f5fb46e46b
--- /dev/null
+++ b/code/_macros.html
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+ 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
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
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..95beef5b35f9
--- /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..d230f7dd76e3
--- /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..fa84f8753fb2
--- /dev/null
+++ b/code/_onclick/hud/rendering/plane_master.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/_onclick/hud/rendering/plane_master.dm - byond
+
+
+
+
+code/_onclick/hud/rendering/plane_master.dm
+
+
+
+
+
+
+
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..3f0ea6ed5794
--- /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..007add18d910
--- /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..db37e69a2527
--- /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..cf894dc421a1
--- /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..920bca03300b
--- /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..63eddcc299f6
--- /dev/null
+++ b/code/controllers/configuration/entries/general.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ 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
+
+
+
diff --git a/code/controllers/mc/failsafe.html b/code/controllers/mc/failsafe.html
new file mode 100644
index 000000000000..9bec8f7978c1
--- /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..8bceec68e6e4
--- /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..0af8a7285901
--- /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/chat.html b/code/controllers/subsystem/chat.html
new file mode 100644
index 000000000000..347647bb655f
--- /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/garbage.html b/code/controllers/subsystem/garbage.html
new file mode 100644
index 000000000000..ff54dd438229
--- /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..64faf1e052e2
--- /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..aa7f7b89f8e4
--- /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/init/earlyruntimes.html b/code/controllers/subsystem/init/earlyruntimes.html
new file mode 100644
index 000000000000..74108a589042
--- /dev/null
+++ b/code/controllers/subsystem/init/earlyruntimes.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/init/earlyruntimes.dm - byond
+
+
+
+
+code/controllers/subsystem/init/earlyruntimes.dm
+
+
+
+
+ /var/SSearlyruntimes
+ Just messages the unwary coder to tell them there are errors that likely escaped their debugguer.
+
+
+
diff --git a/code/controllers/subsystem/minimap.html b/code/controllers/subsystem/minimap.html
new file mode 100644
index 000000000000..0c947b5a49e9
--- /dev/null
+++ b/code/controllers/subsystem/minimap.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ 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 seperate 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
+ /atom /movable /screen /minimap Default HUD screen minimap object
+ /datum/action/minimap Action that gives the owner access to the minimap pool
+
+
+
diff --git a/code/controllers/subsystem/pager_status.html b/code/controllers/subsystem/pager_status.html
new file mode 100644
index 000000000000..b7296ecd63d9
--- /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..17fd3d0b1f64
--- /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..ca891df5a116
--- /dev/null
+++ b/code/controllers/subsystem/shuttles.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/controllers/subsystem/shuttles.dm - byond
+
+
+
+
+code/controllers/subsystem/shuttles.dm
+
+
+
+Define Details
+SHUTTLE_SPAWN_BUFFER
+
+
+
+ Give a shuttle 10 "fires" (~10 seconds) to spawn before it can be cleaned up.
+
+
+
diff --git a/code/controllers/subsystem/statpanel.html b/code/controllers/subsystem/statpanel.html
new file mode 100644
index 000000000000..937de50aa6c8
--- /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/stats_collector.html b/code/controllers/subsystem/stats_collector.html
new file mode 100644
index 000000000000..4531bcefd922
--- /dev/null
+++ b/code/controllers/subsystem/stats_collector.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/controllers/subsystem/stats_collector.dm - byond
+
+
+
+
+code/controllers/subsystem/stats_collector.dm
+
+
+
+
+
+
+
diff --git a/code/controllers/subsystem/tgui.html b/code/controllers/subsystem/tgui.html
new file mode 100644
index 000000000000..5639a6ad2842
--- /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..e8d07d22d1a8
--- /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..e2fa5f0a6da8
--- /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..8ca5644612e9
--- /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..b865b96cce1d
--- /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..c2b60f9d7efe
--- /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..312606449d6a
--- /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..6d5fadc79998
--- /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..96cc346be15d
--- /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..1642e90af10c
--- /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..fb2adcd50ae0
--- /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 seperate 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..5c223cbb6a00
--- /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..d8fab8dfb7f7
--- /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/rename.html b/code/datums/components/rename.html
new file mode 100644
index 000000000000..c2e6cde1a13c
--- /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/datum.html b/code/datums/datum.html
new file mode 100644
index 000000000000..3551ce64f3e8
--- /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/elements/_element.html b/code/datums/elements/_element.html
new file mode 100644
index 000000000000..fbaaa409bd6e
--- /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..13f12c137c04
--- /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/item/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/item/projectile))
+ return ELEMENT_INCOMPATIBLE
+
+ [handling here]
+
+
+
+
diff --git a/code/datums/elements/suturing.html b/code/datums/elements/suturing.html
new file mode 100644
index 000000000000..b99a7c08b2f0
--- /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..e8934cf89d40
--- /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..0c657a1e57dd
--- /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..8ac804a8467a
--- /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..06f7373df7c5
--- /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/looping_sounds/_looping_sound.html b/code/datums/looping_sounds/_looping_sound.html
new file mode 100644
index 000000000000..3db08af80588
--- /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..861e364a4052
--- /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..6862799191d1
--- /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/redis/callbacks/_redis_callback.html b/code/datums/redis/callbacks/_redis_callback.html
new file mode 100644
index 000000000000..b9162504ceaa
--- /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..e604a3debd5c
--- /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.html b/code/datums/skills.html
new file mode 100644
index 000000000000..05ebbb7b9fc7
--- /dev/null
+++ b/code/datums/skills.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/datums/skills.dm - byond
+
+
+
+
+code/datums/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/weather/weather_map_holders/sorokyne.html b/code/datums/weather/weather_map_holders/sorokyne.html
new file mode 100644
index 000000000000..9a099b7f95a5
--- /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..5b2c354cd191
--- /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..7a49bd39ef87
--- /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/access.html b/code/game/jobs/access.html
new file mode 100644
index 000000000000..7e1cf6cff8b3
--- /dev/null
+++ b/code/game/jobs/access.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ code/game/jobs/access.dm - byond
+
+
+
+
+code/game/jobs/access.dm
+
+
+
+
+
+
+
diff --git a/code/game/jobs/job/antag/antag.html b/code/game/jobs/job/antag/antag.html
new file mode 100644
index 000000000000..ae5107c9b564
--- /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..e9dbcd8d6333
--- /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..0e037e757ebd
--- /dev/null
+++ b/code/game/machinery/ARES/ARES.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/machinery/ARES/ARES.dm - byond
+
+
+
+
+code/game/machinery/ARES/ARES.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..ac28493151e5
--- /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..f41034274451
--- /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/pipe/construction.html b/code/game/machinery/pipe/construction.html
new file mode 100644
index 000000000000..e03024da668c
--- /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..02d97b01c092
--- /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/decals/cleanable/misc.html b/code/game/objects/effects/decals/cleanable/misc.html
new file mode 100644
index 000000000000..3a6087761d08
--- /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..3634377a6c84
--- /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..94db799e8327
--- /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..6657731bafac
--- /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 noticable 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..562659ab558f
--- /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..e76e14c83611
--- /dev/null
+++ b/code/game/objects/effects/landmarks/landmarks.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ 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.
+
+
+
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..2febc719c967
--- /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..5b153dfe04bb
--- /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..1b00c1351be1
--- /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..c969b76d1ff8
--- /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/random.html b/code/game/objects/effects/spawners/random.html
new file mode 100644
index 000000000000..4d5fc0e7c33d
--- /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..248008fe63c2
--- /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/circuitboards/mecha.html b/code/game/objects/items/circuitboards/mecha.html
new file mode 100644
index 000000000000..ea0023722c83
--- /dev/null
+++ b/code/game/objects/items/circuitboards/mecha.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/circuitboards/mecha.dm - byond
+
+
+
+
+code/game/objects/items/circuitboards/mecha.dm
+
+
+
+
+ /obj /item /circuitboard/mecha Circuitboards
+
+
+
diff --git a/code/game/objects/items/devices/flashlight.html b/code/game/objects/items/devices/flashlight.html
new file mode 100644
index 000000000000..b86227bc2f41
--- /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..14f7a48c5a9a
--- /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..99d7e6106a2d
--- /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..0c5369f2f063
--- /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/devices/radio/radio.html b/code/game/objects/items/devices/radio/radio.html
new file mode 100644
index 000000000000..dc3da2f636ed
--- /dev/null
+++ b/code/game/objects/items/devices/radio/radio.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/devices/radio/radio.dm - byond
+
+
+
+
+code/game/objects/items/devices/radio/radio.dm
+
+
+
+
+
+
+
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..9aa2551733d3
--- /dev/null
+++ b/code/game/objects/items/explosives/grenades/marines.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/explosives/grenades/marines.dm - byond
+
+
+
+
+code/game/objects/items/explosives/grenades/marines.dm
+
+
+
+
+ /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..96dc1a868b0d
--- /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/fulton.html b/code/game/objects/items/fulton.html
new file mode 100644
index 000000000000..61c00051b033
--- /dev/null
+++ b/code/game/objects/items/fulton.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/game/objects/items/fulton.dm - byond
+
+
+
+
+code/game/objects/items/fulton.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..8f385cd2bbe0
--- /dev/null
+++ b/code/game/objects/items/handheld_distress_beacon.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/handheld_distress_beacon.dm - byond
+
+
+
+
+code/game/objects/items/handheld_distress_beacon.dm
+
+
+
+
+ /obj /item /handheld_distress_beacon handheld distress beacons used by goon chem retrieval team to call for PMC back up
+
+
+
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..1df5fc22de73
--- /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
+
+
+
+
+ /obj /item /reagent_container/dropper Droppers.
+
+
+
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..c652b337dee0
--- /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..2f900f2d963b
--- /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..b658037a53ea
--- /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..d4922863f879
--- /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..0b459af78670
--- /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..d5b3265d3460
--- /dev/null
+++ b/code/game/objects/items/reagent_containers/food/snacks.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ 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/glass.html b/code/game/objects/items/reagent_containers/glass.html
new file mode 100644
index 000000000000..4597f62ba0ea
--- /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
+
+
+
+
+ /obj /item /reagent_container/glass (Mixing) Glass
+
+
+
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..1f38455471f5
--- /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
+
+
+
+
+ /obj /item /reagent_container/hypospray HYPOSPRAY
+
+
+
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..4334a3744947
--- /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/syringes.html b/code/game/objects/items/reagent_containers/syringes.html
new file mode 100644
index 000000000000..3786c040ae0d
--- /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/robot/robot_parts.html b/code/game/objects/items/robot/robot_parts.html
new file mode 100644
index 000000000000..27400c1f72a8
--- /dev/null
+++ b/code/game/objects/items/robot/robot_parts.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/items/robot/robot_parts.dm - byond
+
+
+
+
+code/game/objects/items/robot/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/stock_parts.html b/code/game/objects/items/stock_parts.html
new file mode 100644
index 000000000000..f765e586fe57
--- /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..5dad1d270d8f
--- /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..26450a4e1318
--- /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..deedc10fb5e6
--- /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..d8034765adf4
--- /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/trash.html b/code/game/objects/items/trash.html
new file mode 100644
index 000000000000..5a8856c5430c
--- /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..651d57586957
--- /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..beedc4129d75
--- /dev/null
+++ b/code/game/objects/prop.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/game/objects/prop.dm - byond
+
+
+
+
+code/game/objects/prop.dm
+
+
+
+
+ /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..6d30206ae1f5
--- /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/props.html b/code/game/objects/structures/props.html
new file mode 100644
index 000000000000..a3194e5ee9aa
--- /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..159ad12f6b1b
--- /dev/null
+++ b/code/game/runtimes.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ 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
+Count of runtimes that occured before logging is ready, for in-game reporting
+
+
+
diff --git a/code/game/sound.html b/code/game/sound.html
new file mode 100644
index 000000000000..2f2ba803de5f
--- /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/floor_types.html b/code/game/turfs/floor_types.html
new file mode 100644
index 000000000000..7476b49e16aa
--- /dev/null
+++ b/code/game/turfs/floor_types.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ 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
+
+
+
diff --git a/code/game/turfs/walls/r_wall.html b/code/game/turfs/walls/r_wall.html
new file mode 100644
index 000000000000..9ce9f585d118
--- /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/global.html b/code/global.html
new file mode 100644
index 000000000000..acd6ac956780
--- /dev/null
+++ b/code/global.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ code/global.dm - byond
+
+
+
+
+code/global.dm
+
+
+
+Define Details
+R_EVERYTHING
+
+
+
+ The sum of all other rank permissions.
shuttle_time_in_station
+
+
+
+ 3 minutes in the station.
shuttle_time_to_arrive
+
+
+
+ 10 minutes to arrive.
+
+
+
diff --git a/code/modules/admin/NewBan.html b/code/modules/admin/NewBan.html
new file mode 100644
index 000000000000..a4de7d19c877
--- /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..382da94296e4
--- /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..e903606c3f49
--- /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..eb2293b8d887
--- /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_wrappers.html b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.html
new file mode 100644
index 000000000000..b36f82e992c5
--- /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..673879d91098
--- /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..c2868459e7e6
--- /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..6ab5456ff84c
--- /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..36e0f15428ce
--- /dev/null
+++ b/code/modules/almayer/weaponhits.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/almayer/weaponhits.dm - byond
+
+
+
+
+code/modules/almayer/weaponhits.dm
+
+
+
+
+ /proc/weaponhits
+ Proc called to hit the ship with weapons
+
+
+
diff --git a/code/modules/asset_cache.html b/code/modules/asset_cache.html
new file mode 100644
index 000000000000..971c5de4c130
--- /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..6a77ad48d8ac
--- /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..1fed320d3f14
--- /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..26ce95ac32aa
--- /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..ee9a312e44b0
--- /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/buildmode.html b/code/modules/buildmode.html
new file mode 100644
index 000000000000..17bf329d02ab
--- /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..39ba458922f5
--- /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..586869e82ff8
--- /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..29a2ef91edc0
--- /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..fd3d9e6e1d38
--- /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..db1a7b3f8dd1
--- /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..102ede964cf8
--- /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 equipments, 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..62bbcb1959ef
--- /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..f8fd04a7310e
--- /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/vehicle_part_fabricator.html b/code/modules/cm_marines/vehicle_part_fabricator.html
new file mode 100644
index 000000000000..947e37a7ae00
--- /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..437dd87e8df7
--- /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..5ef2508f4ee0
--- /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/implements/adv_weapon.html b/code/modules/cm_tech/implements/adv_weapon.html
new file mode 100644
index 000000000000..adb423092665
--- /dev/null
+++ b/code/modules/cm_tech/implements/adv_weapon.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/cm_tech/implements/adv_weapon.dm - byond
+
+
+
+
+code/modules/cm_tech/implements/adv_weapon.dm
+
+
+
+
+ /obj /item /techtree_advanced_weapon_kit Crates are anchored when launched to avoid pushing them while launching and this created issues with them being anchored when they landed groundside.
+This unanchors them before moving them out to make sure that crates are able to be moved when groundside.
+
+
+
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..d30048a2da4b
--- /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..8be27cf70ae9
--- /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/decorators/halloween.html b/code/modules/decorators/halloween.html
new file mode 100644
index 000000000000..41a474b27498
--- /dev/null
+++ b/code/modules/decorators/halloween.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/decorators/halloween.dm - byond
+
+
+
+
+code/modules/decorators/halloween.dm
+
+
+
+
+
+
+
diff --git a/code/modules/defenses/sentry_computer.html b/code/modules/defenses/sentry_computer.html
new file mode 100644
index 000000000000..81dcca9bff3a
--- /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..5f375805ebf2
--- /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..15f3105d7d61
--- /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..f2d67135f097
--- /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..e3f4ccec39c1
--- /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..3f9d354fa70a
--- /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..d348c2e10a30
--- /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..2f3e196320ff
--- /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..f35ec9b93bc0
--- /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..802ddfb63de3
--- /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..2946a62ab5d5
--- /dev/null
+++ b/code/modules/gear_presets/corpses.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/gear_presets/corpses.dm - byond
+
+
+
+
+code/modules/gear_presets/corpses.dm
+
+
+
+
+
+
+
diff --git a/code/modules/gear_presets/forcon_survivors.html b/code/modules/gear_presets/forcon_survivors.html
new file mode 100644
index 000000000000..1ec532ce5634
--- /dev/null
+++ b/code/modules/gear_presets/forcon_survivors.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ code/modules/gear_presets/forcon_survivors.dm - byond
+
+
+
+
+code/modules/gear_presets/forcon_survivors.dm
+
+
+
+
+
+
+
diff --git a/code/modules/keybindings.html b/code/modules/keybindings.html
new file mode 100644
index 000000000000..cc92bfe3b3df
--- /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/logging/log_category.html b/code/modules/logging/log_category.html
new file mode 100644
index 000000000000..b0c897c0e8fe
--- /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..a9c03bc7a511
--- /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..2dbb581c844a
--- /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..00c3d97a75c3
--- /dev/null
+++ b/code/modules/mapping/preloader.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ code/modules/mapping/preloader.dm - byond
+
+
+
+
+code/modules/mapping/preloader.dm
+
+
+
+
+ /datum /map_preloader Preloader datum
+ /area /template_noop Area passthrough: do not instanciate a new area, reuse the current one
+ /turf /template_noop Turf passthrough: do not instanciate a new turf, reuse the current one
+
+
+
diff --git a/code/modules/mapping/reader.html b/code/modules/mapping/reader.html
new file mode 100644
index 000000000000..e0ad4ad94b59
--- /dev/null
+++ b/code/modules/mapping/reader.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mapping/reader.dm - byond
+
+
+
+
+code/modules/mapping/reader.dm
+
+
+
+
+ /proc/load_map
+ Shortcut function to parse a map and apply it to the world.
+
+
+
diff --git a/code/modules/mapping/verify.html b/code/modules/mapping/verify.html
new file mode 100644
index 000000000000..a3633e76348f
--- /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..a07a4710daa1
--- /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/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..310d67073de9
--- /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/general_abilities.html b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.html
new file mode 100644
index 000000000000..1836cc614e24
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/xenomorph/abilities/general_abilities.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/xenomorph/abilities/general_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..0fddb1bbc985
--- /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..f92477b6c0a6
--- /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/mutators/strains/drone/healer.html b/code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/healer.html
new file mode 100644
index 000000000000..7ad756da3638
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/healer.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/healer.dm - byond
+
+
+
+
+code/modules/mob/living/carbon/xenomorph/mutators/strains/drone/healer.dm
+
+
+
+
+ /datum /behavior_delegate /drone_healer Tiny xenos (Larva and Facehuggers), don't need as much health so don't cost as much.
+
+
+
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..40317f7dca84
--- /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..dd3189040163
--- /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/mob_helpers.html b/code/modules/mob/mob_helpers.html
new file mode 100644
index 000000000000..6b8c9f25a65a
--- /dev/null
+++ b/code/modules/mob/mob_helpers.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ code/modules/mob/mob_helpers.dm - byond
+
+
+
+
+code/modules/mob/mob_helpers.dm
+
+
+
+
+ /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..49dc892e47f1
--- /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..fbd6386b4b41
--- /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..5bab970b01d8
--- /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..53b04f8701b3
--- /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. You can add extra text with an underscore.
+
+
+
diff --git a/code/modules/nightmare/nmnodes/nmnode.html b/code/modules/nightmare/nmnodes/nmnode.html
new file mode 100644
index 000000000000..40b00bcf1851
--- /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..4a59f73fe5b4
--- /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..003b5c12a05b
--- /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..ab3bdb82205b
--- /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..94ba6ee4ef3a
--- /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/power/apc.html b/code/modules/power/apc.html
new file mode 100644
index 000000000000..1c71e6594f00
--- /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/magazines/revolvers.html b/code/modules/projectiles/magazines/revolvers.html
new file mode 100644
index 000000000000..121ce4f6fd82
--- /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..168e68eb4dcb
--- /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..887dd5a82d15
--- /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..04477bb9d5e6
--- /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..c5055fcb20d2
--- /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..baf0ea1bd7a2
--- /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/lifeboats.html b/code/modules/shuttle/lifeboats.html
new file mode 100644
index 000000000000..cbd258e6a466
--- /dev/null
+++ b/code/modules/shuttle/lifeboats.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ code/modules/shuttle/lifeboats.dm - byond
+
+
+
+
+code/modules/shuttle/lifeboats.dm
+
+
+
+
+
+
+
diff --git a/code/modules/shuttle/shuttles.html b/code/modules/shuttle/shuttles.html
new file mode 100644
index 000000000000..b053df921d51
--- /dev/null
+++ b/code/modules/shuttle/shuttles.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ 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.
+
+
+
diff --git a/code/modules/surgery/surgery_initiator.html b/code/modules/surgery/surgery_initiator.html
new file mode 100644
index 000000000000..9ce797bb6412
--- /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..045c73f107b1
--- /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..b65326387bac
--- /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..8d050d7ca403
--- /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..8a79e28f1a73
--- /dev/null
+++ b/code/modules/tents/equipment.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ code/modules/tents/equipment.dm - byond
+
+
+
+
+code/modules/tents/equipment.dm
+
+
+
+
+ /datum /component /tent_powered_machine Component to handle power requirements following removal of the tent
+ /datum /component /tent_supported_object Component to handle destruction of objects following removal of the tent
+ /obj /structure/transmitter/tent Telephone
+ /obj /structure/machinery/computer/ordercomp/tent ASRS request console
+ /obj /structure/machinery/cm_vending/sorted/medical/wall_med/tent NanoMED
+ /obj /structure/tent_curtain Closeable curtains
+
+
+
diff --git a/code/modules/tgchat/message.html b/code/modules/tgchat/message.html
new file mode 100644
index 000000000000..002da410c69b
--- /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..8bd443b30bf5
--- /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..c05e55f2b166
--- /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 it's own inside a codebase that wishes to use the TGS DMAPI. Warranty void if modified.
+
+includes.dm is the file that should be included by DM code, it handles including the rest.
+The core folder includes all code not directly part of any API version.
+The other versioned folders contain code for the different DMAPI versions.
+
+v3210 contains the final TGS3 API.
+v4 is the legacy DMAPI 4 (Used in TGS 4.0.X versions).
+v5 is the current DMAPI version used by TGS >=4.1.
+
+
+LICENSE is the MIT license for the DMAPI.
+
+APIs communicate with TGS in two ways. All versions implement TGS -> DM communication using /world/Topic. DM -> TGS communication, called the bridge method, is different for each version.
+
+
+
diff --git a/code/modules/tgs/core.html b/code/modules/tgs/core.html
new file mode 100644
index 000000000000..73bfe950b0bd
--- /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.
+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..bd044a771299
--- /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..3af663070a09
--- /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..c125d50937e7
--- /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..083078a1587a
--- /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..621c84789708
--- /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..2c2e78dccf51
--- /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..2472f3d64b88
--- /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..d1ba74c856aa
--- /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..e68a07c66d54
--- /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..37f74223e561
--- /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..a6549400d38e
--- /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..4cea32340815
--- /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..3372f5aecd17
--- /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..5b868745d291
--- /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..a907cf6197d0
--- /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..5b0fd47c8a2f
--- /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..776643460bfd
--- /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..544e90f74248
--- /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..e57cf793d225
--- /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..2756a1d47411
--- /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..cb289c66060e
--- /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..257ca0f1a2ab
--- /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..b363a4aa63f2
--- /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..0895e19b659e
--- /dev/null
+++ b/code/modules/tgui/status_composers.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ 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_is_conscious_and_lying_down
+ Returns UI_INTERACTIVE if the user is conscious and lying down.
+Returns UI_UPDATE otherwise.
+ /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..687a7d36f240
--- /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..2931e825c689
--- /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..b8a428c6e62a
--- /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..e85dc9184c00
--- /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..5fd06a3d2aee
--- /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..29e130b20b0f
--- /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/text.html b/code/modules/tgui_input/text.html
new file mode 100644
index 000000000000..890572ad2d88
--- /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..67a4984e7e8f
--- /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..8123e4e40395
--- /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..7f0ce458be8a
--- /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..357685768d57
--- /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..98a765a0532f
--- /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..3d2e5fdf5b2d
--- /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 noticable 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 noticable 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/create_and_destroy.html b/code/modules/unit_tests/create_and_destroy.html
new file mode 100644
index 000000000000..a981e4adaa2b
--- /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/focus_only_tests.html b/code/modules/unit_tests/focus_only_tests.html
new file mode 100644
index 000000000000..59408d960eef
--- /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..4225dcf73d3c
--- /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..44f31df8a478
--- /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..751ac98df699
--- /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..1aa6db1d3c57
--- /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/interior/interactable/vendors.html b/code/modules/vehicles/interior/interactable/vendors.html
new file mode 100644
index 000000000000..9bc7f79953c5
--- /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
+
+
+
+
+ /obj /structure/machinery/cm_vending/sorted/vehicle_supply/tent Modified Restockable APC-based vendor for use by Req in the deployable tent
+
+
+
diff --git a/code/modules/vehicles/interior/interior.html b/code/modules/vehicles/interior/interior.html
new file mode 100644
index 000000000000..63766342e109
--- /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..424fb4740edb
--- /dev/null
+++ b/datum.html
@@ -0,0 +1,429 @@
+
+
+
+
+
+
+ /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
+ active_timers Active timers with this datum as the target
+ cached_ref A cached version of our \ref
+The brunt of \ref costs are in creating entries in the string tree (a tree of immutable strings)
+This avoids doing that more then once per datum by ensuring ref strings always have a reference to them after they're first pulled
+ 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
+ status_traits Status traits attached.
+ 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
+ p_they NAMEOF that actually works in static definitions because src::type requires src to be defined
+ 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.
+ 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 active_timers
+
+
+
+
+
+ Active timers with this datum as the target
cached_ref
+
+
+
+
+
+ A cached version of our \ref
+The brunt of \ref costs are in creating entries in the string tree (a tree of immutable strings)
+This avoids doing that more then once per datum by ensuring ref strings always have a reference to them after they're first pulled
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
status_traits
+
+
+
+
+
+ Status traits attached.
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
p_they(capitalized, temp_gender)
+
+
+
+
+
+ NAMEOF that actually works in static definitions because src::type requires src to be defined
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
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..979f23eb93ea
--- /dev/null
+++ b/datum/action.html
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+ /datum/action - byond
+
+
+
+
+
+
+Vars
+ hidden Whether the action is hidden from its owner
+Useful for when you want to preserve action state while preventing
+a mob from using said action
+ listen_signal A signal on the mob that will cause the action to activate 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
+Useful for when you want to preserve action state while preventing
+a mob from using said action
listen_signal
+
+
+
+
+
+ A signal on the mob that will cause the action to activate
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..00f0a4409a69
--- /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/specialist/aimed_shot.html b/datum/action/item_action/specialist/aimed_shot.html
new file mode 100644
index 000000000000..cd02188d7005
--- /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..f6aafbc06923
--- /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..11ee3ad7be34
--- /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..2feec1e8cf73
--- /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/xeno_action.html b/datum/action/xeno_action.html
new file mode 100644
index 000000000000..c868b25612a3
--- /dev/null
+++ b/datum/action/xeno_action.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /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
+ verb_coerce_resin Check if the target is a resin door and open or close it
+ 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
verb_coerce_resin()
+
+
+
+
+
+ Check if the target is a resin door and open or close it
+
+
+
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..8fcabd5d3081
--- /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
+
+ Trapper boiler powers
+
+
+
diff --git a/datum/action/xeno_action/activable/fortify.html b/datum/action/xeno_action/activable/fortify.html
new file mode 100644
index 000000000000..fb3f94cde53c
--- /dev/null
+++ b/datum/action/xeno_action/activable/fortify.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/activable/fortify - byond
+
+
+
+
+
+
+
+ Var Details frontal_armor
+
+
+
+
+
+ Extra armor when fortified and facing bullets.
steelcrest_frontal_armor
+
+
+
+
+
+ Extra armor when steelcrest, 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..416ff00cab6a
--- /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..1a858af52154
--- /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/tail_jab.html b/datum/action/xeno_action/activable/tail_jab.html
new file mode 100644
index 000000000000..07cac9c51d29
--- /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..9594bf671680
--- /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..6dfbb0c4d964
--- /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..d0eb9a992f2f
--- /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..c343ecfbfdf2
--- /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..b17613b84493
--- /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..784357027153
--- /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
+
+ 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..a53a57b0a945
--- /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..2e436201f27f
--- /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/dump_acid.html b/datum/action/xeno_action/onclick/dump_acid.html
new file mode 100644
index 000000000000..0a087420b9af
--- /dev/null
+++ b/datum/action/xeno_action/onclick/dump_acid.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/onclick/dump_acid - byond
+
+
+
+
+
+
+Vars
+ action_types_to_cd List of types of actions to place on 20-second CD,if you ever want to subtype this for a strain or whatever, just change this var on the subtype Procs
+ remove_speed_buff 0.7 seconds
+ Var Details action_types_to_cd
+
+
+
+
+
+ List of types of actions to place on 20-second CD,if you ever want to subtype this for a strain or whatever, just change this var on the subtype
Proc Details remove_speed_buff()
+
+
+
+
+
+ 0.7 seconds
+
+
+
diff --git a/datum/action/xeno_action/onclick/empower.html b/datum/action/xeno_action/onclick/empower.html
new file mode 100644
index 000000000000..bfa0e7ab6394
--- /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/plant_weeds.html b/datum/action/xeno_action/onclick/plant_weeds.html
new file mode 100644
index 000000000000..b2f9e6b57cf6
--- /dev/null
+++ b/datum/action/xeno_action/onclick/plant_weeds.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/action/xeno_action/onclick/plant_weeds - byond
+
+
+
+
+
+
+Abilities used by multiple Xenos.
+README
Proc Details use_ability
+
+ Powers used by multiple Xenomorphs.
+
+
+
diff --git a/datum/action/xeno_action/onclick/soak.html b/datum/action/xeno_action/onclick/soak.html
new file mode 100644
index 000000000000..9cc5f2bf4efb
--- /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..786976d733ec
--- /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/toggle_long_range.html b/datum/action/xeno_action/onclick/toggle_long_range.html
new file mode 100644
index 000000000000..1db9b12eb263
--- /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/admin_help.html b/datum/admin_help.html
new file mode 100644
index 000000000000..7c95f3b2e1c5
--- /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..733a155f072e
--- /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..f185842d8f96
--- /dev/null
+++ b/datum/admins.html
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+ /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
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
get_tgui_say_roles()
+
+
+
+
+
+ gets the role dependant data for tgui-say
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..2c2dee7bcae7
--- /dev/null
+++ b/datum/ammo.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ /datum/ammo - byond
+
+
+
+
+generic bullet
+
+
+
+
+
+Vars
+ apply_delegate Does this apply xenomorph behaviour delegate?
+ 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.
+ 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 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 apply_delegate
+
+
+
+
+
+ Does this apply xenomorph behaviour delegate?
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.
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
+
+ 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/xeno.html b/datum/ammo/xeno.html
new file mode 100644
index 000000000000..7739d84b3022
--- /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..9988e3851138
--- /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_link.html b/datum/ares_link.html
new file mode 100644
index 000000000000..0807647dbc66
--- /dev/null
+++ b/datum/ares_link.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/ares_link - byond
+
+
+
+
+
+
+
+ Var Details apollo_log
+
+
+
+
+
+ The chat log of the apollo link. Timestamped.
linked_alerts
+
+
+
+
+
+ All motion triggers for the link
linked_systems
+
+
+
+
+
+ All machinery for the link
tickets_maintenance
+
+
+
+
+
+ Working Joe stuff
+
+
+
diff --git a/datum/ares_record.html b/datum/ares_record.html
new file mode 100644
index 000000000000..8e6c5f838a20
--- /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_ticket.html b/datum/ares_ticket.html
new file mode 100644
index 000000000000..9392c0946509
--- /dev/null
+++ b/datum/ares_ticket.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /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_name
+
+
+
+
+
+ The name of the ticket.
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..750038c79688
--- /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..53957ced354b
--- /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..4da31f4c91bd
--- /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..33b03e72acce
--- /dev/null
+++ b/datum/asset_cache_item.html
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+ /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
+ 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
+
+
+
diff --git a/datum/asset_transport.html b/datum/asset_transport.html
new file mode 100644
index 000000000000..1ece606aeaa9
--- /dev/null
+++ b/datum/asset_transport.html
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+ /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
+asset_name - the identifier of the asset
+asset - the actual asset file (or an asset_cache_item datum)
+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)
+
+
+
+
+
+ Register a browser asset with the asset cache system
+asset_name - the identifier of the asset
+asset - the actual asset file (or an asset_cache_item datum)
+returns a /datum/asset_cache_item.
+mutiple calls to register the same asset under the same asset_name return the same datum
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..9bb596a4071b
--- /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/evacuation.html b/datum/authority/branch/evacuation.html
new file mode 100644
index 000000000000..a29ae5cdb4fc
--- /dev/null
+++ b/datum/authority/branch/evacuation.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /datum/authority/branch/evacuation - byond
+
+
+
+
+
+
+Procs
+ get_affected_zlevels This proc returns the ship's z level list (or whatever specified),
+when an evac/self-destruct happens.
Proc Details get_affected_zlevels()
+
+
+
+
+
+ This proc returns the ship's z level list (or whatever specified),
+when an evac/self-destruct happens.
+
+
+
diff --git a/datum/authority/branch/role.html b/datum/authority/branch/role.html
new file mode 100644
index 000000000000..17dfd42db2ea
--- /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..04cf0cbd9451
--- /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/beam.html b/datum/beam.html
new file mode 100644
index 000000000000..192b9384f1c4
--- /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..33a869402305
--- /dev/null
+++ b/datum/behavior_delegate.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /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_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_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/crusher_base.html b/datum/behavior_delegate/crusher_base.html
new file mode 100644
index 000000000000..ef587e998bdf
--- /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/praetorian_base.html b/datum/behavior_delegate/praetorian_base.html
new file mode 100644
index 000000000000..d0ab1eb53cb5
--- /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..9eec7de83109
--- /dev/null
+++ b/datum/bioscan_data.html
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+ /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.
+ can_ares_bioscan This will do something after Project ARES.
+ 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.
can_ares_bioscan()
+
+
+
+
+
+ This will do something after Project ARES.
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..040759b91640
--- /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_mission.html b/datum/cas_fire_mission.html
new file mode 100644
index 000000000000..f04841e26632
--- /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..2e21d4ec25d3
--- /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..409c43db4488
--- /dev/null
+++ b/datum/caste_datum.html
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+ /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
+ 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
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..418c328d921d
--- /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..9e1cd3ca932f
--- /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..887d51215d52
--- /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..54c47b8def93
--- /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..bff6282e6eb2
--- /dev/null
+++ b/datum/chem_property.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/chem_property - byond
+
+
+
+
+
+
+Vars
+ volatile Should reagent with this property explode/start fire when mixed more than overdose threshold at once?
+ Var Details volatile
+
+
+
+
+
+ Should reagent with this property explode/start fire when mixed more than overdose threshold at once?
+
+
+
diff --git a/datum/cm_objective.html b/datum/cm_objective.html
new file mode 100644
index 000000000000..a87e0e09fecc
--- /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..b2414473850f
--- /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..c9a6e1190448
--- /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/bad_leg.html b/datum/component/bad_leg.html
new file mode 100644
index 000000000000..662d92ea2838
--- /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..a9908d131a8b
--- /dev/null
+++ b/datum/component/bonus_damage_stack.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /datum/component/bonus_damage_stack - byond
+
+
+
+
+
+
+
+ Var Details bonus_damage_cap
+
+
+
+
+
+ extra damage multiplier, divided by 1000
bonus_damage_stacks
+
+
+
+
+
+ extra damage multiplier, divided by 1000
last_stack
+
+
+
+
+
+ Last world.time that the afflicted was hit by a holo-targeting round.
+
+
+
diff --git a/datum/component/cluster_stack.html b/datum/component/cluster_stack.html
new file mode 100644
index 000000000000..b87f3c71386a
--- /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..dc4c64edca36
--- /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 seperate listener, which makes this quite powerful
Vars
+ connections An assoc list of signal -> procpath to register to the mob our client "owns"
+ tracked The master client we're working with
+ tracked_mob The mob we're currently tracking
+ Var Details connections
+
+
+
+
+
+ An assoc list of signal -> procpath to register to the mob our client "owns"
tracked
+
+
+
+
+
+ The master client we're working with
tracked_mob
+
+
+
+
+
+ The mob we're currently tracking
+
+
+
diff --git a/datum/component/footstep.html b/datum/component/footstep.html
new file mode 100644
index 000000000000..71318e8ed21d
--- /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..8a6f2f790df0
--- /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..5915d8e6b8cd
--- /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/rename.html b/datum/component/rename.html
new file mode 100644
index 000000000000..02f0e0b964cb
--- /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/computer/file/embedded_program/docking/simple.html b/datum/computer/file/embedded_program/docking/simple.html
new file mode 100644
index 000000000000..4510ce301315
--- /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..2b6a15c33da1
--- /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/nest.html b/datum/construction_template/xenomorph/nest.html
new file mode 100644
index 000000000000..249a759a8904
--- /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..f0c2a65b6d9f
--- /dev/null
+++ b/datum/controller/global_vars.html
@@ -0,0 +1,377 @@
+
+
+
+
+
+
+ /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.
blurb_witnesses
+
+
+
+
+
+ List of ckeys that have seen a blurb of a given key.
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.
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.
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.
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.
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.
xeno_datum_list
+ – /static/list/datum/caste_datum
+
+
+
+
+ Xeno caste datums
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..ff373bcdc721
--- /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..d09b22fecc28
--- /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 overriden 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 overriden 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..c6a448e85b62
--- /dev/null
+++ b/datum/controller/subsystem/atoms.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/atoms - byond
+
+
+
+
+
+
+Vars
+ initialized_changed A count of how many initalize changes we've made. We want to prevent old_initialize being overriden 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 overriden. It keeps happening and it's cheesing me off
+ Var Details initialized_changed
+
+
+
+
+
+ A count of how many initalize changes we've made. We want to prevent old_initialize being overriden by some other value, breaking init code
Proc Details CreateAtoms(/list/atoms)
+
+
+
+
+
+ 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 overriden. It keeps happening and it's cheesing me off
+
+
+
diff --git a/datum/controller/subsystem/database_query_manager.html b/datum/controller/subsystem/database_query_manager.html
new file mode 100644
index 000000000000..2547ad32357d
--- /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..8c8084fdcbdb
--- /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 occuring 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 occuring 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/influxdriver.html b/datum/controller/subsystem/influxdriver.html
new file mode 100644
index 000000000000..a2af503bff2d
--- /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..93a25751bc9d
--- /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/mapping.html b/datum/controller/subsystem/mapping.html
new file mode 100644
index 000000000000..af96e6cd1331
--- /dev/null
+++ b/datum/controller/subsystem/mapping.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/mapping - byond
+
+
+
+
+
+
+Procs
+ get_main_ship_name Gets a name for the marine ship as per the enabled ship map configuration
Proc Details get_main_ship_name()
+
+
+
+
+
+ Gets a name for the marine ship as per the enabled ship map configuration
+
+
+
diff --git a/datum/controller/subsystem/minimaps.html b/datum/controller/subsystem/minimaps.html
new file mode 100644
index 000000000000..3dc46c20357e
--- /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 on 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 on 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..4017c3309c61
--- /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..c5aa90c724e4
--- /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..805630e0ba38
--- /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..bfc9d47090d0
--- /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..2482598775b2
--- /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/obj/item/projectile
+
+
+
+
+ List of projectiles handled this controller firing
projectiles
+ – /list/obj/item/projectile
+
+
+
+
+ List of projectiles handled by the subsystem
sleepers
+ – /list/obj/item/projectile
+
+
+
+
+ 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..e93c49a71713
--- /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..7026f4b02357
--- /dev/null
+++ b/datum/controller/subsystem/shuttle.html
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/shuttle - byond
+
+
+
+
+
+
+
+ Var Details assoc_mobile
+
+
+
+
+
+ For ID generation
assoc_stationary
+
+
+
+
+
+ For ID generation
loading_shuttle
+
+
+
+
+
+ safety to stop shuttles loading over each other
Proc Details moveShuttle(shuttleId, dockId, timed)
+
+
+
+
+
+ Moves a shuttle to a new location
+Arguments:
+
+shuttle_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.
+
+
+
+
diff --git a/datum/controller/subsystem/statpanels.html b/datum/controller/subsystem/statpanels.html
new file mode 100644
index 000000000000..f8b171beafbd
--- /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/tgui.html b/datum/controller/subsystem/tgui.html
new file mode 100644
index 000000000000..344a72954487
--- /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..36310e518137
--- /dev/null
+++ b/datum/controller/subsystem/ticker.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/controller/subsystem/ticker - byond
+
+
+
+
+
+
+Vars
+ 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 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..a4bd1561e191
--- /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..b165dbf667b1
--- /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..976b49a1af22
--- /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..ab946d0f5fbe
--- /dev/null
+++ b/datum/controller/supply.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/controller/supply - byond
+
+
+
+
+
+
+Vars
+ black_market_enabled If the black market is enabled.
+ 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 recieved. 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.
+ Var Details black_market_enabled
+
+
+
+
+
+ If the black market is enabled.
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 recieved. 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.
+
+
+
diff --git a/datum/coords/qtplayer.html b/datum/coords/qtplayer.html
new file mode 100644
index 000000000000..3255b62133ef
--- /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..e518ec8dfa2e
--- /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..da97dd1f0718
--- /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/decorator/halloween/cobwebs.html b/datum/decorator/halloween/cobwebs.html
new file mode 100644
index 000000000000..e4ca7f08e15e
--- /dev/null
+++ b/datum/decorator/halloween/cobwebs.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/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/discord_embed.html b/datum/discord_embed.html
new file mode 100644
index 000000000000..cc3e2e675650
--- /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/effects/acid.html b/datum/effects/acid.html
new file mode 100644
index 000000000000..157a39b30118
--- /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/boiler_trap.html b/datum/effects/boiler_trap.html
new file mode 100644
index 000000000000..a8b43f92af68
--- /dev/null
+++ b/datum/effects/boiler_trap.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/effects/boiler_trap - byond
+
+
+
+
+
+
+Vars
+ freezer Ghetto flag indicating whether we actually placed the freeze or not, until we have an actual effects system
+ Var Details freezer
+
+
+
+
+
+ Ghetto flag indicating whether we actually placed the freeze or not, until we have an actual effects system
+
+
+
diff --git a/datum/effects/neurotoxin.html b/datum/effects/neurotoxin.html
new file mode 100644
index 000000000000..bf75c186b416
--- /dev/null
+++ b/datum/effects/neurotoxin.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ /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. Procs
+ hallucination_fakecas_sequence area of the victim for areachecks
+ 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.
Proc Details hallucination_fakecas_sequence
+
+ area of the victim for areachecks
+
+
+
diff --git a/datum/element.html b/datum/element.html
new file mode 100644
index 000000000000..15bb3932b587
--- /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..f7229db6263b
--- /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..135a140d7f5e
--- /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..01d44537a2b2
--- /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..823e0d263c15
--- /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/suturing.html b/datum/element/suturing.html
new file mode 100644
index 000000000000..6e768aad9b8a
--- /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/upp.html b/datum/emergency_call/upp.html
new file mode 100644
index 000000000000..de640daf98eb
--- /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..db5970a52095
--- /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..02f7ee42ae8a
--- /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/entity/player_note.html b/datum/entity/player_note.html
new file mode 100644
index 000000000000..7688d0a46713
--- /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/equipment_preset.html b/datum/equipment_preset.html
new file mode 100644
index 000000000000..0668a21e1a01
--- /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/grenadier.html b/datum/equipment_preset/survivor/forecon/grenadier.html
new file mode 100644
index 000000000000..32fe53bb10b3
--- /dev/null
+++ b/datum/equipment_preset/survivor/forecon/grenadier.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ /datum/equipment_preset/survivor/forecon/grenadier - byond
+
+
+
+
+
+
+
+
+
+
diff --git a/datum/equipment_preset/survivor/forecon/marksman.html b/datum/equipment_preset/survivor/forecon/marksman.html
new file mode 100644
index 000000000000..db74ea14b7e4
--- /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..3cee8c24b0c8
--- /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/tech.html b/datum/equipment_preset/survivor/forecon/tech.html
new file mode 100644
index 000000000000..1e9e2c468c9b
--- /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/escape_menu.html b/datum/escape_menu.html
new file mode 100644
index 000000000000..86130a6598e1
--- /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..8ae15d8a1551
--- /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..fb6116ec1c5b
--- /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_mode.html b/datum/game_mode.html
new file mode 100644
index 000000000000..8d6a0aeab577
--- /dev/null
+++ b/datum/game_mode.html
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+ /datum/game_mode - byond
+
+
+
+
+
+
+Vars
+ 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.
+ 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.
+ Var Details 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()
+
+
+
+
+
+ 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.
pick_queen_spawn(/datum /mind/ghost_mind, 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.
+
+
+
diff --git a/datum/game_mode/colonialmarines.html b/datum/game_mode/colonialmarines.html
new file mode 100644
index 000000000000..92434c7f5f92
--- /dev/null
+++ b/datum/game_mode/colonialmarines.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /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.
+ shake_ship Makes the mainship shake, along with playing a klaxon sound effect.
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.
shake_ship()
+
+
+
+
+
+ Makes the mainship shake, along with playing a klaxon sound effect.
+
+
+
diff --git a/datum/health_scan.html b/datum/health_scan.html
new file mode 100644
index 000000000000..5088c276d51d
--- /dev/null
+++ b/datum/health_scan.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /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.
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.
+
+
+
diff --git a/datum/hive_status.html b/datum/hive_status.html
new file mode 100644
index 000000000000..5f4625d01701
--- /dev/null
+++ b/datum/hive_status.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ /datum/hive_status - byond
+
+
+
+
+
+
+Vars
+ allow_queen_evolve Set to true 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
+ hugger_timelock When can huggers join the round
+ latejoin_burrowed Set to false if you want to prevent getting burrowed larva from latejoin marines
+ 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
+ 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_free_slots Assoc list of free slots currently used by specific castes Procs
+ increase_larva_after_burst Called by /obj/item/alien_embryo when a host is bursting to determine extra larva per burst
+ Var Details allow_queen_evolve
+
+
+
+
+
+ Set to true 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
hugger_timelock
+
+
+
+
+
+ When can huggers join the round
latejoin_burrowed
+
+
+
+
+
+ Set to false if you want to prevent getting burrowed larva from latejoin marines
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
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_free_slots
+
+
+
+
+
+ Assoc list of free slots currently used by specific castes
Proc Details increase_larva_after_burst()
+
+
+
+
+
+ Called by /obj/item/alien_embryo when a host is bursting to determine extra larva per burst
+
+
+
diff --git a/datum/http_request.html b/datum/http_request.html
new file mode 100644
index 000000000000..55969e0d5f7d
--- /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..6a691f8b1c07
--- /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..5795b12150c4
--- /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 seperate 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..b509076c7464
--- /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
+ – /datum /map_template/interior
+
+
+
+
+ the map template associated with this interior
reservation
+ – /datum /turf_reservation/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..9e22515affb9
--- /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..66193d0a4a03
--- /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 item_storage_box_cache
+ Var Details index
+
+
+
+
+
+ The index that indentifies me inside item_storage_box_cache
+
+
+
diff --git a/datum/japanese_sound.html b/datum/japanese_sound.html
new file mode 100644
index 000000000000..a5da2e1fae72
--- /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..8ebc48c196b9
--- /dev/null
+++ b/datum/job.html
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+ /datum/job - byond
+
+
+
+
+
+
+Vars
+ 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.
+ Var Details 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.
+
+
+
diff --git a/datum/job/civilian/doctor.html b/datum/job/civilian/doctor.html
new file mode 100644
index 000000000000..2f05986f65c4
--- /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..b9ac78c6e1ca
--- /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/launch_metadata.html b/datum/launch_metadata.html
new file mode 100644
index 000000000000..30699ff6d4e7
--- /dev/null
+++ b/datum/launch_metadata.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/launch_metadata - byond
+
+
+
+
+
+
+
+ Var Details end_throw_callbacks
+
+
+
+
+
+ A list of callbacks to invoke when the throw completes successfully
+
+
+
diff --git a/datum/log_category.html b/datum/log_category.html
new file mode 100644
index 000000000000..3e23cc973b83
--- /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..d3dd9eed51e2
--- /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..b1d1f9435ec0
--- /dev/null
+++ b/datum/looping_sound.html
@@ -0,0 +1,242 @@
+
+
+
+
+
+
+ /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.
+ 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.
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..1ab56f1593ea
--- /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 overriden 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 overriden 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..692c978d63cc
--- /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/minimap_updator.html b/datum/minimap_updator.html
new file mode 100644
index 000000000000..e62f1cbe1a4d
--- /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/movement_detector.html b/datum/movement_detector.html
new file mode 100644
index 000000000000..433506703e78
--- /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..3f14b237f0ec
--- /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..2cf14090ca30
--- /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..dd1a603f4fdb
--- /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..bfe6a26531cf
--- /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..faa9a55027f1
--- /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..f624bc1625f5
--- /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..2e0083c4395b
--- /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..2223898733bf
--- /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. You can add extra text with an underscore.
+Example:
+some/folder/10.something_funny.dmm
+would have 10% chance to insert at 'something' landmark
+
+
+
diff --git a/datum/nmtask.html b/datum/nmtask.html
new file mode 100644
index 000000000000..2fd37977bc96
--- /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..dcd2f699532b
--- /dev/null
+++ b/datum/nmtask/mapload.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /datum/nmtask/mapload - byond
+
+
+
+
+
+
+Loads a chunk of map at the specified position
Proc Details initialize_boundary_contents()
+
+
+
+
+
+ Initialize atoms/areas in bounds
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..df4a378479e5
--- /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..6b9779f560d1
--- /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..308090d4e0cc
--- /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..e7411dcaf220
--- /dev/null
+++ b/datum/parsed_map.html
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+ /datum/parsed_map - byond
+
+
+
+
+
+
+Vars
+ bounds Offset bounds. Same as parsed_bounds until load().
+ parsed_bounds Unoffset bounds. Null on parse failure. Procs
+ New Parse a map, possibly cropping it.
+ check_for_errors Check a parsed but not yet loaded map for errors.
+ load Load the parsed map into the world. See /proc/load_map for arguments.
+ Var Details bounds
+
+
+
+
+
+ Offset bounds. Same as parsed_bounds until load().
parsed_bounds
+
+
+
+
+
+ Unoffset bounds. Null on parse failure.
Proc Details New(tfile, x_lower, x_upper, y_lower, y_upper, measureOnly)
+
+
+
+
+
+ Parse a map, possibly cropping it.
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.
load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, delete)
+
+
+
+
+
+ Load the parsed map into the world. See /proc/load_map for arguments.
+
+
+
diff --git a/datum/particle_editor.html b/datum/particle_editor.html
new file mode 100644
index 000000000000..0ae75843a924
--- /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..05fe5fe89eb4
--- /dev/null
+++ b/datum/paygrade.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/paygrade - byond
+
+
+
+
+
+
+Vars
+ fprefix Factional prefix, currently only used by PMCs. In essence, a pre-prefix.
+ pay_multiplier Actually gives you the fucking money from your paygrade in your ATM account. Multiplier of 1 equals PFC pay.
+ Var Details fprefix
+
+
+
+
+
+ Factional prefix, currently only used by PMCs. In essence, a pre-prefix.
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_info.html b/datum/player_info.html
new file mode 100644
index 000000000000..637bc576583c
--- /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..780634ccbd92
--- /dev/null
+++ b/datum/preferences.html
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+ /datum/preferences - byond
+
+
+
+
+
+
+Vars
+ 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
+ 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
+ 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.
+ Var Details 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
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 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.
+
+
+
diff --git a/datum/quadtree.html b/datum/quadtree.html
new file mode 100644
index 000000000000..8f24326dbc09
--- /dev/null
+++ b/datum/quadtree.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/quadtree - byond
+
+
+
+
+
+
+Vars
+ final Don't divide further when truthy
+ Var Details final
+
+
+
+
+
+ Don't divide further when truthy
+
+
+
diff --git a/datum/radar.html b/datum/radar.html
new file mode 100644
index 000000000000..ff2f03824680
--- /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..b10a66797b7c
--- /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..a788e41a110e
--- /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..ca0dbf25c88f
--- /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..1e3133e7fef4
--- /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..369884ca6657
--- /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/role_reserved_slots.html b/datum/role_reserved_slots.html
new file mode 100644
index 000000000000..6536edfa3cb1
--- /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..f1d23e5cc3de
--- /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..08c78b6cd376
--- /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..32d9628678cb
--- /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 occured
+ 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 occured
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..78c151e253b4
--- /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/shuttle/ferry/marine.html b/datum/shuttle/ferry/marine.html
new file mode 100644
index 000000000000..552a405af5ce
--- /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..284b8501c096
--- /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..0a3abe5f8b67
--- /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..d6e152b14b5a
--- /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/species.html b/datum/species.html
new file mode 100644
index 000000000000..586788c95f31
--- /dev/null
+++ b/datum/species.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /datum/species - byond
+
+
+
+
+
+
+
+ Var Details group
+
+
+
+
+
+ Used for isx(y) checking of species groups
mob_inherent_traits
+
+
+
+
+
+ Status traits to give to the mob.
weed_slowdown_mult
+
+
+
+
+
+ If different from 1, a signal is registered on post_spawn().
Proc Details
+ Apply signals to the human
+
+
+
diff --git a/datum/squad.html b/datum/squad.html
new file mode 100644
index 000000000000..7d21cbe138c1
--- /dev/null
+++ b/datum/squad.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+ /datum/squad - byond
+
+
+
+
+
+
+Vars
+ locked Whether this squad can be picked at roundstart
+ max_engineers Can use any squad vendor regardless of squad connection
+ primary_objective Text strings, not HTML safe so don't use it without encoding
+ squad_type Squad Type Specifics
+ usable Variables for showing up in various places 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 locked
+
+
+
+
+
+ Whether this squad can be picked at roundstart
max_engineers
+
+
+
+
+
+ Can use any squad vendor regardless of squad connection
primary_objective
+
+
+
+
+
+ Text strings, not HTML safe so don't use it without encoding
squad_type
+
+
+
+
+
+ Squad Type Specifics
usable
+
+
+
+
+
+ Variables for showing up in various places
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..29fe8b028bee
--- /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..65f7b880fa19
--- /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/supply_packs.html b/datum/supply_packs.html
new file mode 100644
index 000000000000..2b6c9a69abab
--- /dev/null
+++ b/datum/supply_packs.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ /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.
+ 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.
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/surgery.html b/datum/surgery.html
new file mode 100644
index 000000000000..8f9319b588c8
--- /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..fe86f1379b71
--- /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..b5df5bf6f423
--- /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..63c8bbb6a036
--- /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..45904ce17a25
--- /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..b65c990f4667
--- /dev/null
+++ b/datum/tacmap.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/tacmap - byond
+
+
+
+
+
+
+Vars
+ targeted_ztrait by default the ground map - this picks the first level matching the trait. if it exists
+ Var Details targeted_ztrait
+
+
+
+
+
+ by default the ground map - this picks the first level matching the trait. if it exists
+
+
+
diff --git a/datum/tech.html b/datum/tech.html
new file mode 100644
index 000000000000..f5697cb64c63
--- /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/techtree.html b/datum/techtree.html
new file mode 100644
index 000000000000..33933728a2c8
--- /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_chat_channel.html b/datum/tgs_chat_channel.html
new file mode 100644
index 000000000000..97cc9c5c6570
--- /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..04355e4c8a7e
--- /dev/null
+++ b/datum/tgs_chat_command.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ /datum/tgs_chat_command - byond
+
+
+
+
+
+
+User definable chat command.
Vars
+ admin_only If this command should be available to game administrators only.
+ help_text The help text displayed for this command.
+ ignore_type A subtype of /datum/tgs_chat_command that is ignored when enumerating available commands. Use this to create shared base /datums for commands.
+ name The string to trigger this command on a chat bot. e.g @bot name ...
or !tgs name ...
. Procs
+ Run Process command activation. Should return a /datum/tgs_message_content to respond to the issuer with.
+ Var Details admin_only
+
+
+
+
+
+ If this command should be available to game administrators only.
help_text
+
+
+
+
+
+ The help text displayed for this command.
ignore_type
+
+
+
+
+
+ A subtype of /datum/tgs_chat_command that is ignored when enumerating available commands. Use this to create shared base /datums for commands.
name
+
+
+
+
+
+ The string to trigger this command on a chat bot. e.g @bot name ...
or !tgs name ...
.
Proc Details
+ Process command activation. Should return a /datum/tgs_message_content to respond to the issuer with.
+sender - The /datum/tgs_chat_user who issued the command.
+params - The trimmed string following the command `/datum/tgs_chat_command/var/name].
+
+
+
diff --git a/datum/tgs_chat_embed/footer.html b/datum/tgs_chat_embed/footer.html
new file mode 100644
index 000000000000..0412f1628739
--- /dev/null
+++ b/datum/tgs_chat_embed/footer.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/tgs_chat_embed/footer - byond
+
+
+
+
+
+
+See https://discord.com/developers/docs/resources/channel#embed-object-embed-footer-structure for details.
Vars
+ text Must be set in New().
+ Var Details text
+
+
+
+
+
+ Must be set in New().
+
+
+
diff --git a/datum/tgs_chat_embed/media.html b/datum/tgs_chat_embed/media.html
new file mode 100644
index 000000000000..a32a03941ab4
--- /dev/null
+++ b/datum/tgs_chat_embed/media.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /datum/tgs_chat_embed/media - byond
+
+
+
+
+
+
+Common datum for similar discord embed medias.
Vars
+ url Must be set in New().
+ Var Details url
+
+
+
+
+
+ Must be set in New().
+
+
+
diff --git a/datum/tgs_chat_embed/structure.html b/datum/tgs_chat_embed/structure.html
new file mode 100644
index 000000000000..4c790a68b568
--- /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/channel#embed-object-embed-structure for details.
Vars
+ colour Colour must be #AARRGGBB or #RRGGBB hex string.
+ image See https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure for details.
+ thumbnail See https://discord.com/developers/docs/resources/channel#embed-object-embed-thumbnail-structure for details.
+ timestamp Timestamp must be encoded as: time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss"). Use the active timezone.
+ video See https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure for details.
+ Var Details colour
+
+
+
+
+
+ Colour must be #AARRGGBB or #RRGGBB hex string.
+ See https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure for details.
+ See https://discord.com/developers/docs/resources/channel#embed-object-embed-thumbnail-structure for details.
timestamp
+
+
+
+
+
+ Timestamp must be encoded as: time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss"). Use the active timezone.
+ See https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure for details.
+
+
+
diff --git a/datum/tgs_chat_user.html b/datum/tgs_chat_user.html
new file mode 100644
index 000000000000..a76698e6ef95
--- /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..6c5ca45742b0
--- /dev/null
+++ b/datum/tgs_event_handler.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+ /datum/tgs_event_handler - byond
+
+
+
+
+
+
+User definable handler for TGS events.
+ Var Details receive_health_checks
+
+
+
+
+
+ If the handler receieves TGS_EVENT_HEALTH_CHECK events.
Proc Details HandleEvent(event_code, ...)
+
+
+
+
+
+ User definable callback for handling TGS events.
+event_code - One of the TGS_EVENT_ defines. Extra parameters will be documented in each.
+
+
+
diff --git a/datum/tgs_message_content.html b/datum/tgs_message_content.html
new file mode 100644
index 000000000000..9d7ab03d74bf
--- /dev/null
+++ b/datum/tgs_message_content.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/tgs_message_content - byond
+
+
+
+
+
+
+User definable chat message.
Vars
+ embed The /datum/tgs_chat_embed to embed in the message. Not supported on all chat providers.
+ text The tring content of the message. Must be provided in New().
+ Var Details
+ The /datum/tgs_chat_embed to embed in the message. Not supported on all chat providers.
text
+
+
+
+
+
+ The tring content of the message. Must be provided in New().
+
+
+
diff --git a/datum/tgs_revision_information.html b/datum/tgs_revision_information.html
new file mode 100644
index 000000000000..90b37aa0df6a
--- /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..3b9b0f019730
--- /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..f3cf24b62a2f
--- /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..7c37fdc823a3
--- /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 te UI.
user
+
+
+
+
+
+ The mob who opened/is using the UI.
+ The window_id for browse() and onclose().
window_key
+
+
+
+
+
+ Key that is used for remembering the window geometry.
window_size
+
+
+
+
+
+ Deprecated: Window size.
Proc Details New(/mob /user, /datum /src_object, interface, title, ui_x, ui_y)
+
+
+
+
+
+ public
+Create a new UI.
+required user mob The mob who opened/is using the UI.
+required src_object datum The object or datum which owns the UI.
+required interface string The interface used to render the UI.
+optional title string The title of the UI.
+optional ui_x int Deprecated: Window width.
+optional ui_y int Deprecated: Window height.
+return datum/tgui The requested UI.
close(can_be_suspended)
+
+
+
+
+
+ public
+Close the UI.
+optional can_be_suspended bool
get_payload(custom_data, with_data, with_static_data)
+
+
+
+
+
+ private
+Package the data to send to the UI, as JSON.
+return list
on_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_input_number.html b/datum/tgui_input_number.html
new file mode 100644
index 000000000000..e2d8b86de752
--- /dev/null
+++ b/datum/tgui_input_number.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+ /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.
+ 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.
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..f633bceba5e4
--- /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..ec6143f67b1e
--- /dev/null
+++ b/datum/tgui_input_text.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+ /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.
+ timeout The lifespan of the text input, after which the window will close and delete itself.
+ title The title of the TGUI window Procs
+ set_entry Sets the return value for the tgui text proc.
+If html encoding is enabled, the text will be encoded.
+This can sometimes result in a string that is longer than the max length.
+If the string is longer than the max length, it will be clipped.
+ wait Waits for a user's response to the tgui_input_text's prompt before returning. Returns early if
+the window was closed by the user.
+ Var Details closed
+
+
+
+
+
+ Boolean field describing if the tgui_input_text was closed by the user.
default
+
+
+
+
+
+ The default (or current) value, shown as a default.
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.
timeout
+
+
+
+
+
+ The lifespan of the text input, after which the window will close and delete itself.
title
+
+
+
+
+
+ The title of the TGUI window
Proc Details set_entry(entry)
+
+
+
+
+
+ Sets the return value for the tgui text proc.
+If html encoding is enabled, the text will be encoded.
+This can sometimes result in a string that is longer than the max length.
+If the string is longer than the max length, it will be clipped.
wait()
+
+
+
+
+
+ Waits for a user's response to the tgui_input_text's prompt before returning. Returns early if
+the window was closed by the user.
+
+
+
diff --git a/datum/tgui_list_input.html b/datum/tgui_list_input.html
new file mode 100644
index 000000000000..4b76a580137b
--- /dev/null
+++ b/datum/tgui_list_input.html
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+ /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_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.
+ timeout The lifespan of the tgui_modal, 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_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.
timeout
+
+
+
+
+
+ The lifespan of the tgui_modal, 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..f3684acb034a
--- /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..51d098d36cd0
--- /dev/null
+++ b/datum/tgui_modal.html
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+ /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
+ 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.
+ 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
+ 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.
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..caa8a2c21b54
--- /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..fee4f4aafad5
--- /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..2f2dfc2238f0
--- /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..15b15d9d5c4d
--- /dev/null
+++ b/datum/tgui_window.html
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+ /datum/tgui_window - byond
+
+
+
+
+
+
+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..65437dbd5af8
--- /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/ui_state.html b/datum/ui_state.html
new file mode 100644
index 000000000000..4045415dba94
--- /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..b2bc15f6cfc3
--- /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..365ae4494408
--- /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..fd2e436fda7b
--- /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..d5ae000300ae
--- /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..a4d9388b5e7b
--- /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..3cc339c00612
--- /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_mutator.html b/datum/xeno_mutator.html
new file mode 100644
index 000000000000..3e8f289288a9
--- /dev/null
+++ b/datum/xeno_mutator.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /datum/xeno_mutator - byond
+
+
+
+
+
+
+
+ Var Details mutator_actions_to_add
+
+
+
+
+
+ A list of PATHS of actions to be ADDED when the Xeno takes the mutator.
mutator_actions_to_remove
+
+
+
+
+
+ A list of PATHS of actions that need to be removed when a xeno takes the mutator.
+
+
+
diff --git a/datum/xeno_shield/vanguard.html b/datum/xeno_shield/vanguard.html
new file mode 100644
index 000000000000..107b9ffe5bb9
--- /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/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..a7236cf8a26d
--- /dev/null
+++ b/global.html
@@ -0,0 +1,1387 @@
+
+
+
+
+
+
+ (global) - byond
+
+
+
+
+(global)
+
+
+
+
+
+Vars
+ Failsafe Failsafe
+ MAX_EXPLOSION_RANGE This was a define, but I changed it to a variable so it can be changed in-game.(kept the all-caps definition because... code...) -Errorage
+ Master StonedMC
+ SSearlyruntimes Just messages the unwary coder to tell them there are errors that likely escaped their debugguer.
+ 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
+ SSstats_collector Collects simple round statistics periodically
+ SStgui tgui subsystem
+ SStimer
+ deployed_fultons A list of fultons currently airborne.
+ fallen_list_cross This is for dogtags placed on crosses- they will show up at the end-round memorial.
+ 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.
+ secret_force_mode If this is anything but "secret", the secret rotation will forceably choose this mode. 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)
+ 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
+ ______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
+ 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.
+ 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
+ deltimer Delete a timer
+ display_power Format a power value in W, kW, MW, or GW.
+ end_cooldown Callback called by a timer to end an associative-list-indexed cooldown.
+ flick_overlay_to_clients Add an image to a list of clients and calls a proc to remove it after a duration
+ 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_bitfields Turns /datum/bitfield subtypes into a list for use in debugging
+ 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, optionally sorted by larva_queue_time
+ get_all_main_access Grants standard access for all factions, does not include high restrictions like COs office.
+ get_all_marine_access Includes restricted accesses
+ get_all_notes Returns all notes associated with a CKEY, structured as a list of strings.
+ get_angle Calculate the angle between two movables and the west|east coordinate
+ get_angle_raw Angle between two arbitrary points and horizontal line same as /proc/get_angle
+ get_antagonist_access CLF & UPP, UPP Commandos have global.
+ get_bbox_of_atoms Get a bounding box of a list of atoms.
+ get_civil_ert_access Pizza and Souto
+ get_friendly_ert_access This is only used by USCM ERTs at present
+ get_global_access Grants access to EVERYWHERE
+ get_line Get a list of turfs in a line from starting_atom
to ending_atom
.
+ get_main_marine_access All Almayer accesses other than the highly restricted ones, such as CO's office.
+ get_pixel_angle for getting the angle when animating something's pixel_x and pixel_y
+ 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_total_living_playtime Returns the total time in minutes a specific player ID has played for
+ get_weyland_pmc_access Used by PMCs and elite mercs.
+ 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.
+ 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_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 Shortcut function to parse a map and apply it to the world.
+ 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
+ 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 Sends a message to TGS chat channels.
+ setup_offset Sets the offset 2 lines above.
+ shakeship Shakes the ship around
+ 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
+ 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_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_is_conscious_and_lying_down Returns UI_INTERACTIVE if the user is conscious and lying down.
+Returns UI_UPDATE otherwise.
+ 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.
+ weaponhits Proc called to hit the ship with weapons
+ 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.
MAX_EXPLOSION_RANGE
+
+
+
+
+
+ This was a define, but I changed it to a variable so it can be changed in-game.(kept the all-caps definition because... code...) -Errorage
+ 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
SSearlyruntimes
+
+
+
+
+
+ Just messages the unwary coder to tell them there are errors that likely escaped their debugguer.
+ 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
SSstats_collector
+
+
+
+
+
+ Collects simple round statistics 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.
deployed_fultons
+
+
+
+
+
+ A list of fultons currently airborne.
fallen_list_cross
+
+
+
+
+
+ This is for dogtags placed on crosses- they will show up at the end-round memorial.
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.
secret_force_mode
+
+
+
+
+
+ If this is anything but "secret", the secret rotation will forceably choose this mode.
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)
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
______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
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.
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
+ Delete a timer
+Arguments:
+
+id a timerid or a /datum/timedevent
+ display_power(powerused)
+
+
+
+
+
+ Format a power value in W, kW, MW, or GW.
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.
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_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_bitfields()
+
+
+
+
+
+ Turns /datum/bitfield subtypes into a list for use in debugging
getFlatIcon(/image /A, defdir, deficon, defstate, defblend, start, no_anim)
+
+
+
+
+
+ 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.
get_active_player_count(alive_check, afk_check, faction_check, faction)
+
+
+
+
+
+ Get active players who are playing in the round
get_alien_candidates(sorted)
+
+
+
+
+
+ Get a list of observers that can be alien candidates, optionally sorted by larva_queue_time
get_all_main_access()
+
+
+
+
+
+ Grants standard access for all factions, does not include high restrictions like COs office.
get_all_marine_access()
+
+
+
+
+
+ Includes restricted accesses
get_all_notes(player_ckey)
+
+
+
+
+
+ Returns all notes associated with a CKEY, structured as a list of strings.
+ Calculate the angle between two movables and the west|east coordinate
get_angle_raw(start_x, start_y, start_pixel_x, start_pixel_y, end_x, end_y, end_pixel_x, end_pixel_y)
+
+
+
+
+
+ Angle between two arbitrary points and horizontal line same as /proc/get_angle
get_antagonist_access()
+
+
+
+
+
+ CLF & UPP, UPP Commandos have global.
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_civil_ert_access()
+
+
+
+
+
+ Pizza and Souto
get_friendly_ert_access()
+
+
+
+
+
+ This is only used by USCM ERTs at present
get_global_access()
+
+
+
+
+
+ Grants access to EVERYWHERE
get_line(/atom /starting_atom, /atom /ending_atom)
+
+
+
+
+
+ Get a list of turfs in a line from starting_atom
to ending_atom
.
+Uses the ultra-fast Bresenham Line-Drawing Algorithm .
get_main_marine_access()
+
+
+
+
+
+ All Almayer accesses other than the highly restricted ones, such as CO's office.
get_pixel_angle(y, x)
+
+
+
+
+
+ for getting the angle when animating something's pixel_x and pixel_y
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
get_total_living_playtime(player_id)
+
+
+
+
+
+ Returns the total time in minutes a specific player ID has played for
get_weyland_pmc_access()
+
+
+
+
+
+ Used by PMCs and elite mercs.
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.
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_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, cropMap, measureOnly, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop)
+
+
+
+
+
+ Shortcut function to parse a map and apply it to the world.
+
+dmm_file
: A .dmm file to load (Required).
+x_offset
, y_offset
, z_offset
: Positions representign where to load the map (Optional).
+cropMap
: When true, the map will be cropped to fit the existing world dimensions (Optional).
+measureOnly
: When true, no changes will be made to the world (Optional).
+no_changeturf
: When true, turf/AfterChange won't be called on loaded turfs
+x_lower
, x_upper
, y_lower
, y_upper
: Coordinates (relative to the map) to crop to (Optional).
+placeOnTop
: Whether to use turf/PlaceOnTop rather than turf/ChangeTurf (Optional).
+ 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
+ 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(message, channel_tag, admin_only)
+
+
+
+
+
+ Sends a message to TGS chat channels.
+message - The message 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_offset()
+
+
+
+
+
+ Sets the offset 2 lines above.
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
+ 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
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)
+
+
+
+
+
+ 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.
+ tgui_alert_async(/mob /user, message, title, /list/buttons, /datum /callback/callback, timeout)
+
+
+
+
+
+ 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.
+
+ 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 alert to.
+message - The content of the alert, 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.
+
+ 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 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.
+theme - The ui theme to use for the TGUI window.
+
+ 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.
+
+ 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.
+
+ 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)
+
+
+
+
+
+ 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.
+
+ 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_is_conscious_and_lying_down
+
+ Returns UI_INTERACTIVE if the user is conscious and lying down.
+Returns UI_UPDATE otherwise.
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.
weaponhits(weaponused, location, point_defense, salvo)
+
+
+
+
+
+ Proc called to hit the ship with weapons
+Hits the ship with the weapon of choice
+Calling Shakeship acoording to the weapon used
+All sounds that should happen when they hit are in here already.
+Probably doesn't work in other shipmaps.
+Arguments:
+
+weaponused - chooses the weapon through a switchcase. 1 for missiles, 2 for railguns, 3 for particle cannons.
+location - location in the ship where the explosion will be created.
+point_defense - If you want the Almayer to attempt taking down the incoming fire
+salvo - identifies it as a salvo or not.
+ 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..a44ad54393cb
--- /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..96025d8041a6
--- /dev/null
+++ b/index.html
@@ -0,0 +1,1500 @@
+
+
+
+
+
+
+ Index - byond
+
+
+
+
+
+
+
+byond
+
+
+
+Modules
+(337 modules,
+ 903/7287 macros, 12.4%)
+
+ 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
+Count of runtimes that occured before logging is ready, for in-game reporting
+ sound
+ turfs
+
+ global
+ modules
+ admin
+ almayer
+ Asset cache system
+ Buildmode
+ character_traits/ character_trait
+ client/ statbrowser_options
+ clothing/under/ marine_uniform
+ cm_marines
+ cm_preds
+ cm_tech
+ decorators
+ defenses/ sentry_computer
+ discord/ discord_embed
+ dropships
+ escape_menu
+ events/ _events
+ flufftext
+ gear_presets
+ 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 !
+ logging
+ mapping
+ maptext_alerts/ text_blurbs
+ mob
+ nightmare
+ power/ apc
+ projectiles/magazines/ revolvers
+ 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 it's own inside a codebase that wishes to use the TGS DMAPI. Warranty void if modified.
+ Core DMAPI functions - This folder contains all DMAPI code not directly involved in an API.
+ DMAPI V3 - This DMAPI implements bridge using file output which TGS monitors for.
+ DMAPI V4 - This DMAPI implements bridge requests using file output which TGS monitors for. It has a safe mode restriction.
+ DMAPI V5 - This DMAPI implements bridge requests using HTTP GET requests to TGS. It has no security restrictions.
+
+ tgui
+ external - 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/ text
+ 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/ interior
+
+
+ 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
+(419 detailed/611 documented/16573 total, 3.7%)
+
+ (global)
+ Unknown
+ 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 - Area passthrough: do not instanciate a new area, reuse the current one
+
+ 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.
+ 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".
+ 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
+ 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
+ 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.
+
+ 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_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
+ autoreply
+ admin/ handled - Admin Replies
+
+ beam
+ Set This
+ bioscan_data
+ bitfield - Specifies a bitfield for smarter debugging
+ 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_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
+ bad_leg
+ bonus_damage_stack
+ 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 seperate listener, which makes this quite powerful
+ 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
+ rename - The rename component.
+ 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
+
+ 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)
+
+ 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
+ decorator
+ christmas/ food - Replaces marine food dispensers contents with more festive MREs
+ halloween/ cobwebs - Cobweb decorator: adds more and more cobwebs as you go through the month
+ ship - Ship specific cobweb decorator
+
+
+ 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.
+ 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.
+
+ 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
+ emergency_call/ UPP Naval Infantry (Squad)
+ Emote - Most of the text that's not someone talking is based off of this.
+ entity/ player_note
+ Preset
+ corpse
+ Corpse - Staff Officer - Officers
+ Corpse - Colonist - Actually specific colonists
+
+ survivor/ forecon - LV-522 Force Recon Survivors **************************
+
+ 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.
+ 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 seperate 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
+ launch_metadata
+ 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].
+ map_template/ 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
+ 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. You can add extra text with an underscore.
+ 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
+ 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
+ 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.
+ 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
+ species
+ 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
+ Basic supply pack.
+ 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
+ tech
+ Repeatable Tech - A tech that can be purchased multiple times
+
+ Undefined
+ tgs_chat_channel - Represents a connected chat channel.
+ tgs_chat_command - User definable chat command.
+ tgs_chat_embed
+ field - See https://discord.com/developers/docs/resources/channel#embed-object-embed-field-structure for details. Must have name and value set in New().
+ footer - See https://discord.com/developers/docs/resources/channel#embed-object-embed-footer-structure for details.
+ media - Common datum for similar discord embed medias.
+ provider - See https://discord.com/developers/docs/resources/channel#embed-object-embed-provider-structure for details.
+ author - See https://discord.com/developers/docs/resources/channel#embed-object-embed-author-structure for details. Must have name set in New().
+
+ structure - User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/channel#embed-object-embed-structure for details.
+
+ tgs_chat_user
+ tgs_event_handler - User definable handler for TGS events.
+ tgs_message_content - User definable chat message.
+ tgs_revision_information - Represents git revision information.
+ test_merge - Represents a merge of a GitHub pull request.
+
+ tgs_version - Represents a version.
+ tgui - tgui datum (represents a UI).
+ 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
+
+ ui_state
+ unit_test
+ check_runtimes
+ create_and_destroy - Delete one of every type, sleep a while, then check to see if anything has gone fucky
+ 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
+ Mutator name
+ xeno_shield/ vanguard
+
+ image
+ mob
+ camera/ imaginary friend
+ dead/ ghost
+ 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
+ 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/resin/ acid pillar
+ equipment attach point - The bases onto which you attach dropship equipments.
+ decal
+ cleanable
+ 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
+ Staff Officer - Officers
+ Colonial Liberation Front Soldier - Faction Specific Corpses
+ Colonist - CM specific jobs
+ Prisoner - Civilians
+
+ 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
+
+ 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.
+
+ 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/ xeno_weak
+
+ projector - You will appear adjacent to the beacon
+ 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
+ ARES Access Control Sensor - Trigger will remove ACCESS_MARINE_AI_TEMP unless ACCESS_MARINE_AI is also present.
+
+ temp_visual
+ xenomorph/ acid
+
+ 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
+ clothing
+ device
+ evidence bag
+ explosive
+ grenade/ HIRR baton slug - Baton slugs
+ M20 Claymore anti-personnel mine - MINES
+
+ facepaint
+ malfunctioning robot head - A cameo of a real robotic head with limited gameplay functionality
+ Folded Abstract Tent
+ grab
+ handcuffs
+ handheld distress beacon - handheld distress beacons used by goon chem retrieval team to call for PMC back up
+ hardpoint
+ experimental hoverpack
+ large_shrapnel/ unexploded anti-tank rocket
+ limb
+ K92 Maintenance Jack
+ pamphlet/skill/ powerloader instructional pamphlet
+ pipe
+ pizzabox/ mystery
+ projectile
+ prop/alien/ ???? - Xeno-specific props
+ reagent_container
+ BloodPack
+ 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
+ roburger/ unsafe - Vanilla roburger - the nanites turn people into cyborgs
+
+
+ glass - (Mixing) Glass
+ hypospray - HYPOSPRAY
+ pill/ antitox - Pills. END
+ syringe/ syringe (Inaprovaline) - Syringes. END
+
+ 15 dollars
+ specialist kit
+ stock part - Stock Parts
+ storage
+ backpack/ G8-A general utility pouch - G-8-a general pouch belt
+ 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
+
+
+
+ tape
+ advanced weapon kit - Crates are anchored when launched to avoid pushing them while launching and this created issues with them being anchored when they landed groundside.
+This unanchors them before moving them out to make sure that crates are able to be moved when groundside.
+ tool
+ trash - Trash Parent
+ barcardine bar wrapper - Wrappers
+ candle - Misc
+ cigarette butt - Ciagarette Butts
+ Plate - Dishes
+
+ weapon
+
+ limb
+ 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
+ barricade
+ bed
+ blocker/ Tent Blocker - Invisible Blocker Walls, they link up with the main tent and collapse with it
+ power cable
+ closet/ body bag
+ 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 equipments, mainly weaponry but also utility implements
+ adv_comp - COMPUTERS
+ machine gun deployment system - Holder for the dropship mannable machinegun system
+ sentry deployment system - Turret holder for dropship automated sentries
+ abstract weapon - CAS Dropship weaponry, used for aerial bombardment
+
+ flora/ potted plant
+ a meat spike - Kitchen Spike
+ large crate
+ machinery
+ M402 mortar
+ pipes
+ prop
+ ship_ammo - Dropship weaponry ammunition
+ 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
+ transmitter/ tent - Telephone
+ window
+
+ vehicle/multitile/apc/ M577-CMD Armored Personnel Carrier
+
+ particles
+ procpath - Represents a proc or verb path.
+ 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
+ open/floor/plating/ catwalk - Visually like plating+catwalks but without overlaying or interactions - mainly for Reqs Elevator
+ Turf Passthrough - Turf passthrough: do not instanciate a new turf, reuse the current one
+
+ byond
+
+
+
+
+
+
+
diff --git a/interface/fonts.html b/interface/fonts.html
new file mode 100644
index 000000000000..acf2a5196bdd
--- /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..b9b057c09577
--- /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..320eb741a37a
--- /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..dca8f5423139
--- /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.
+
+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..4abcfc20f04c
--- /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..092d95392a36
--- /dev/null
+++ b/mob.html
@@ -0,0 +1,383 @@
+
+
+
+
+
+
+ /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)
+ persistent_ckey a ckey that persists client logout / ghosting, replaced when a client inhabits the mob
+ 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 //////////////////////////////:
+ 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
+ freeze Sets freeze if possible and wasn't already set, returning success
+ 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
+ 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.
+ shared_ui_interaction public
+ sync_lighting_plane_alpha Set the lighting plane hud alpha to the mobs lighting_alpha var
+ timed_typing Sets typing indicator for a couple seconds, for use with client-side comm verbs
+ timed_typing_clear Clears timed typing indicators
+ unfreeze Attempts to unfreeze mob, returning success
+ 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.
+ update_eye_blur Apply the blurry overlays to a mobs clients screen
+ 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)
persistent_ckey
+
+
+
+
+
+ a ckey that persists client logout / ghosting, replaced when a client inhabits the mob
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 //////////////////////////////:
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()
freeze()
+
+
+
+
+
+ Sets freeze if possible and wasn't already set, returning success
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
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.
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
timed_typing()
+
+
+
+
+
+ Sets typing indicator for a couple seconds, for use with client-side comm verbs
timed_typing_clear()
+
+
+
+
+
+ Clears timed typing indicators
unfreeze()
+
+
+
+
+
+ Attempts to unfreeze mob, returning success
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.
update_eye_blur()
+
+
+
+
+
+ Apply the blurry overlays to a mobs clients screen
+
+
+
diff --git a/mob/camera/imaginary_friend.html b/mob/camera/imaginary_friend.html
new file mode 100644
index 000000000000..ea2504977aa1
--- /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
+ show 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
show()
+
+
+
+
+
+ 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..f44b09bca705
--- /dev/null
+++ b/mob/dead/observer.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ /mob/dead/observer - byond
+
+
+
+
+
+
+Procs
+ do_observe makes the ghost see the target hud and sets the eye at the target.
+ format_jump Format text and links to JuMP/FoLloW something
+ 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
Proc Details do_observe(/mob /target)
+
+
+
+
+
+ makes the ghost see the target hud and sets the eye at the target.
+ Format text and links to JuMP/FoLloW something
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/living.html b/mob/living.html
new file mode 100644
index 000000000000..75c1f74aa92a
--- /dev/null
+++ b/mob/living.html
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+ /mob/living - byond
+
+
+
+
+
+
+
+ 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
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
max_blood
+
+
+
+
+
+ How much blood the mob should ideally have
Proc Details add_splatter_floor(/turf /T, small_drip, b_color)
+
+
+
+
+
+ add_splatter_floor
create_thinking_indicator()
+
+
+
+
+
+ Overrides for overlay creation
health_scan
+
+ for checking if limbs are robot limbs
+legacy proc for to_chat messages on health analysers
resist_buckle()
+
+
+
+
+
+ The medical machines below are listed separately to allow easier changes to each process
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.
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.
+
+
+
diff --git a/mob/living/carbon.html b/mob/living/carbon.html
new file mode 100644
index 000000000000..80b8c1b462eb
--- /dev/null
+++ b/mob/living/carbon.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /mob/living/carbon - byond
+
+
+
+
+
+
+Vars
+ active_transfusions list of active transfusions from blood bags or iv stands Procs
+ get_sharp_obj_blocker Checks if something prevents sharp objects from interacting with the mob (such as armor blocking surgical tools / surgery)
+ Var Details active_transfusions
+
+
+
+
+
+ list of active transfusions from blood bags or iv stands
Proc Details get_sharp_obj_blocker
+
+ Checks if something prevents sharp objects from interacting with the mob (such as armor blocking surgical tools / surgery)
+
+
+
diff --git a/mob/living/carbon/human.html b/mob/living/carbon/human.html
new file mode 100644
index 000000000000..f2803a686cd6
--- /dev/null
+++ b/mob/living/carbon/human.html
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+ /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
+ grad_style Style used for the hair gradient.
+ 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.
+ check_status_effects 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 overriden.
+ 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
+ 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.
+ 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
grad_style
+
+
+
+
+
+ Style used for the hair gradient.
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.
check_status_effects()
+
+
+
+
+
+ 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 overriden.
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
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.
+
+
+
diff --git a/mob/living/carbon/xenomorph.html b/mob/living/carbon/xenomorph.html
new file mode 100644
index 000000000000..e1ba00c6b153
--- /dev/null
+++ b/mob/living/carbon/xenomorph.html
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+ /mob/living/carbon/xenomorph - byond
+
+
+
+
+
+
+Vars
+ acid_blood_damage The damage dealt by a xeno whenever they take damage near someone
+ base_actions List of actions (typepaths) that a
+xenomorph type is given upon spawn
+ name ALL OLD SS13 VARS
+ spit_delay Caste-based spit windup duration (if applicable)
+ spit_windup Caste-based spit windup
+ tracked_marker this is the resin mark that is currently being tracked by the xeno Procs
+ can_not_harm Returns true/false based on if the xenomorph can harm the passed carbon mob.
+ get_eye_protection get_eye_protection()
+Returns a number between -1 to 2
+ hive_status Holds Xeno verbs that don't belong anywhere else.
+ Var Details acid_blood_damage
+
+
+
+
+
+ The damage dealt by a xeno whenever they take damage near someone
base_actions
+
+
+
+
+
+ List of actions (typepaths) that a
+xenomorph type is given upon spawn
name
+
+
+
+
+
+ ALL OLD SS13 VARS
spit_delay
+
+
+
+
+
+ Caste-based spit windup duration (if applicable)
spit_windup
+
+
+
+
+
+ Caste-based spit windup
tracked_marker
+ – /obj /effect/alien/resin/marker
+
+
+
+
+ this is the resin mark that is currently being tracked by the xeno
Proc Details can_not_harm
+
+ Returns true/false based on if the xenomorph can harm the passed carbon mob.
get_eye_protection()
+
+
+
+
+
+ get_eye_protection()
+Returns a number between -1 to 2
hive_status()
+
+
+
+
+
+ Holds Xeno verbs that don't belong anywhere else.
+
+
+
diff --git a/mob/living/carbon/xenomorph/facehugger.html b/mob/living/carbon/xenomorph/facehugger.html
new file mode 100644
index 000000000000..5462747ce79f
--- /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/hivelord.html b/mob/living/carbon/xenomorph/hivelord.html
new file mode 100644
index 000000000000..775c00d4dd94
--- /dev/null
+++ b/mob/living/carbon/xenomorph/hivelord.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /mob/living/carbon/xenomorph/hivelord - byond
+
+
+
+
+
+
+Procs
+ on_weeds This check mainly exists because of the new resin node ability for resin whisperer.
Proc Details on_weeds()
+
+
+
+
+
+ This check mainly exists because of the new resin node ability for resin whisperer.
+
+
+
diff --git a/mob/living/silicon.html b/mob/living/silicon.html
new file mode 100644
index 000000000000..02612a163096
--- /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/cat.html b/mob/living/simple_animal/cat.html
new file mode 100644
index 000000000000..eac9a2fe66e8
--- /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/proccall_handler.html b/mob/proccall_handler.html
new file mode 100644
index 000000000000..4aec4873c57b
--- /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..5c6e56b3e971
--- /dev/null
+++ b/obj.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+ /obj - byond
+
+
+
+
+
+
+Vars
+ 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 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..6d1f8471da67
--- /dev/null
+++ b/obj/docking_port.html
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+ /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?
+ 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?
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..0340b38395e9
--- /dev/null
+++ b/obj/docking_port/mobile.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ /obj/docking_port/mobile - byond
+
+
+
+
+
+
+Vars
+ ambience_flight Default shuttle audio ambience while flying
+ ambience_idle Default shuttle audio ambience while not flying Procs
+ 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
.
+ 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 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
.
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/stationary.html b/obj/docking_port/stationary.html
new file mode 100644
index 000000000000..4b8141a63c41
--- /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/resin/acid_pillar.html b/obj/effect/alien/resin/acid_pillar.html
new file mode 100644
index 000000000000..ff4781396119
--- /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/attach_point.html b/obj/effect/attach_point.html
new file mode 100644
index 000000000000..9d66b69ec3d4
--- /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..540b1a0d7ec9
--- /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..60353ac7705f
--- /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/explosion.html b/obj/effect/explosion.html
new file mode 100644
index 000000000000..ad14f2e08622
--- /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/structure_spawner.html b/obj/effect/landmark/structure_spawner.html
new file mode 100644
index 000000000000..58eb4c0d128a
--- /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/particle_effect/smoke/xeno_weak.html b/obj/effect/particle_effect/smoke/xeno_weak.html
new file mode 100644
index 000000000000..84bcaa82f173
--- /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/step_trigger/ares_alert.html b/obj/effect/step_trigger/ares_alert.html
new file mode 100644
index 000000000000..fb41e87b5a5d
--- /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/temp_visual.html b/obj/effect/temp_visual.html
new file mode 100644
index 000000000000..8c10fbafdfb2
--- /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..0cf282f59b23
--- /dev/null
+++ b/obj/effect/xenomorph/acid.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/effect/xenomorph/acid - byond
+
+
+
+
+
+
+Vars
+ flare_damage How much fuel the acid drains from the flare every acid tick
+ Var Details flare_damage
+
+
+
+
+
+ How much fuel the acid drains from the flare every acid tick
+
+
+
diff --git a/obj/flamer_fire.html b/obj/flamer_fire.html
new file mode 100644
index 000000000000..8e6a5cc3d648
--- /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..54c610cdeacc
--- /dev/null
+++ b/obj/item.html
@@ -0,0 +1,423 @@
+
+
+
+
+
+
+ /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
+ 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)
+ 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
+ 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.
+ 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
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)
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
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.
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..e9b0d79179c8
--- /dev/null
+++ b/obj/item/alien_embryo.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/alien_embryo - byond
+
+
+
+
+
+
+Vars
+ hugger_ckey The ckey of any player hugger that made this embryo
+ Var Details hugger_ckey
+
+
+
+
+
+ The ckey of any player hugger that made this embryo
+
+
+
diff --git a/obj/item/ammo_magazine.html b/obj/item/ammo_magazine.html
new file mode 100644
index 000000000000..a543c4b463f3
--- /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..87cbef9667ef
--- /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..ac26449b9285
--- /dev/null
+++ b/obj/item/attachable/attached_gun.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /obj/item/attachable/attached_gun - byond
+
+
+
+
+
+
+Vars
+ ammo Ammo to fire the attachment with
+ 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
+ Var Details ammo
+
+
+
+
+
+ Ammo to fire the attachment with
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
+
+
+
diff --git a/obj/item/book.html b/obj/item/book.html
new file mode 100644
index 000000000000..eb4ea5054959
--- /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..1c73029d97d2
--- /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..267ba792ea2c
--- /dev/null
+++ b/obj/item/card/id.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /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
+
+
+
diff --git a/obj/item/circuitboard/airlock.html b/obj/item/circuitboard/airlock.html
new file mode 100644
index 000000000000..d5b71ba0ed3d
--- /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..fcc92d59fa9e
--- /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..cd1d2d1793c1
--- /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/limb/skeleton.html b/obj/item/clothing/accessory/limb/skeleton.html
new file mode 100644
index 000000000000..a88b4d4222d1
--- /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..70406c141717
--- /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..7d7ee42948b2
--- /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/yautja.html b/obj/item/clothing/gloves/yautja.html
new file mode 100644
index 000000000000..9e33312e2854
--- /dev/null
+++ b/obj/item/clothing/gloves/yautja.html
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ /obj/item/clothing/gloves/yautja - byond
+
+
+
+
+
+
+Vars
+ cloak_alpha Determines the alpha level of the cloaking device.
+ true_cloak If TRUE will change the mob invisibility level, providing 100% invisibility. Exclusively for events. Procs
+ decloak handles decloaking only on HUNTER gloves
+ Var Details cloak_alpha
+
+
+
+
+
+ Determines the alpha level of the cloaking device.
true_cloak
+
+
+
+
+
+ If TRUE will change the mob invisibility level, providing 100% invisibility. Exclusively for events.
Proc Details decloak()
+
+
+
+
+
+ handles decloaking only on HUNTER gloves
+
+
+
diff --git a/obj/item/clothing/gloves/yautja/hunter.html b/obj/item/clothing/gloves/yautja/hunter.html
new file mode 100644
index 000000000000..7ffb3af55989
--- /dev/null
+++ b/obj/item/clothing/gloves/yautja/hunter.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/item/clothing/gloves/yautja/hunter - byond
+
+
+
+
+
+
+Procs
+ translate ...Try putting it in our inactive hand.
Proc Details translate()
+
+
+
+
+
+ ...Try putting it in our inactive hand.
+
+
+
diff --git a/obj/item/clothing/head/hardhat.html b/obj/item/clothing/head/hardhat.html
new file mode 100644
index 000000000000..c48ece36787c
--- /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/tech.html b/obj/item/clothing/head/helmet/marine/tech.html
new file mode 100644
index 000000000000..e3bddb4c7a13
--- /dev/null
+++ b/obj/item/clothing/head/helmet/marine/tech.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/clothing/head/helmet/marine/tech - byond
+
+
+
+
+
+
+Vars
+ base_icon_state To remember the helmet's map variant-adjusted icon state
+ Var Details base_icon_state
+
+
+
+
+
+ To remember the helmet's map variant-adjusted icon state
+
+
+
diff --git a/obj/item/clothing/mask/cigarette.html b/obj/item/clothing/mask/cigarette.html
new file mode 100644
index 000000000000..3c93bcced2e1
--- /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..a62ce9bad62a
--- /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..56ccfcb9424d
--- /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..c4fdf7ad809b
--- /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/suit/storage/marine/M35.html b/obj/item/clothing/suit/storage/marine/M35.html
new file mode 100644
index 000000000000..9c9fd622a336
--- /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/under.html b/obj/item/clothing/under.html
new file mode 100644
index 000000000000..aa1d7a644c15
--- /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..6c93a7b5714b
--- /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/device/binoculars.html b/obj/item/device/binoculars.html
new file mode 100644
index 000000000000..75b5287f547a
--- /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..11c9a024f2e1
--- /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..e994ecfef17a
--- /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..d5141bb84df8
--- /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/flashlight/flare.html b/obj/item/device/flashlight/flare.html
new file mode 100644
index 000000000000..68bc1234eb6f
--- /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/internal_implant/rejuv.html b/obj/item/device/internal_implant/rejuv.html
new file mode 100644
index 000000000000..a9582cc1fb81
--- /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_post.html b/obj/item/device/m56d_post.html
new file mode 100644
index 000000000000..3d6044a5b752
--- /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..f5d4d1c6ad99
--- /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/portable_vendor.html b/obj/item/device/portable_vendor.html
new file mode 100644
index 000000000000..384ed058ba79
--- /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/radio.html b/obj/item/device/radio.html
new file mode 100644
index 000000000000..a412a7e45135
--- /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..6fb4038d37a0
--- /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/sentry_computer.html b/obj/item/device/sentry_computer.html
new file mode 100644
index 000000000000..d787d4ce695a
--- /dev/null
+++ b/obj/item/device/sentry_computer.html
@@ -0,0 +1,223 @@
+
+
+
+
+
+
+ /obj/item/device/sentry_computer - byond
+
+
+
+
+
+
+Sentry gun computer which links to defensive structures.
Vars
+ cam_background camera screen which shows a blank error
+ cam_screen camera screen which renders the world
+ cell battery in the laptop
+ current defensive structure which has the camera active
+ last_camera_turf The turf where the camera was last updated.
+ map_name asset name for the game map
+ 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
+ range_turfs All turfs within range of the currently active camera
+ 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.
+ show_camera_static Set the displayed camera to the static not-connected.
+ 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.
+ update_active_camera Update camera settings and redraw camera on the current variable.
+ Var Details cam_background
+
+
+
+
+
+ camera screen which shows a blank error
cam_screen
+
+
+
+
+
+ camera screen which renders the world
cell
+
+
+
+
+
+ battery in the laptop
+ defensive structure which has the camera active
last_camera_turf
+
+
+
+
+
+ The turf where the camera was last updated.
map_name
+
+
+
+
+
+ asset name for the game map
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
range_turfs
+
+
+
+
+
+ All turfs within range of the currently active camera
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.
show_camera_static()
+
+
+
+
+
+ Set the displayed camera to the static not-connected.
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.
update_active_camera()
+
+
+
+
+
+ Update camera settings and redraw camera on the current variable.
+
+
+
diff --git a/obj/item/device/taperecorder.html b/obj/item/device/taperecorder.html
new file mode 100644
index 000000000000..fc783ff48d7b
--- /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/evidencebag.html b/obj/item/evidencebag.html
new file mode 100644
index 000000000000..e79652916b08
--- /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/facepaint.html b/obj/item/facepaint.html
new file mode 100644
index 000000000000..1cfe5e6342e8
--- /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/folded_tent.html b/obj/item/folded_tent.html
new file mode 100644
index 000000000000..bd30fbe22853
--- /dev/null
+++ b/obj/item/folded_tent.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ /obj/item/folded_tent - byond
+
+
+
+
+
+
+Vars
+ dim_x Required cleared area along X axis
+ dim_y Required cleared area along Y axis
+ off_x Deployment X offset
+ off_y Deployment Y offset
+ template Map Template to use for the tent Procs
+ check_area Check an area is clear for deployment of the tent
+ Var Details dim_x
+
+
+
+
+
+ Required cleared area along X axis
dim_y
+
+
+
+
+
+ Required cleared area along Y axis
off_x
+
+
+
+
+
+ Deployment X offset
off_y
+
+
+
+
+
+ Deployment Y offset
template
+
+
+
+
+
+ Map Template to use for the tent
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/grab.html b/obj/item/grab.html
new file mode 100644
index 000000000000..992fad256c71
--- /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 progress_passive
+
+ Amazing what you can do with a bit of dexterity.
+Strong mobs can lift above their own weight.
+
+
+
diff --git a/obj/item/handcuffs.html b/obj/item/handcuffs.html
new file mode 100644
index 000000000000..311368f02672
--- /dev/null
+++ b/obj/item/handcuffs.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/handcuffs - byond
+
+
+
+
+
+
+Vars
+ cuff_delay how many deciseconds it takes to cuff someone
+ single_use determines if handcuffs will be deleted on removal
+ Var Details cuff_delay
+
+
+
+
+
+ how many deciseconds it takes to cuff someone
single_use
+
+
+
+
+
+ determines if handcuffs will be deleted on removal
+
+
+
diff --git a/obj/item/hardpoint.html b/obj/item/hardpoint.html
new file mode 100644
index 000000000000..1a8df5ff33a1
--- /dev/null
+++ b/obj/item/hardpoint.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ /obj/item/hardpoint - byond
+
+
+
+
+
+
+Vars
+ 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
+ set_bullet_traits Populate traits_to_give in this proc
+ Var Details 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 set_bullet_traits()
+
+
+
+
+
+ Populate traits_to_give in this proc
+
+
+
diff --git a/obj/item/hoverpack.html b/obj/item/hoverpack.html
new file mode 100644
index 000000000000..07bec9cc6862
--- /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
+ – /obj /item /reagent_container/glass/beaker/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..01efd79b1774
--- /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..fb04f6492f06
--- /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..c5df66d440de
--- /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/pamphlet/skill/powerloader.html b/obj/item/pamphlet/skill/powerloader.html
new file mode 100644
index 000000000000..8c608f9b30ad
--- /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/pipe.html b/obj/item/pipe.html
new file mode 100644
index 000000000000..055d338dc316
--- /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..49ceff2b53f6
--- /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/projectile.html b/obj/item/projectile.html
new file mode 100644
index 000000000000..dcb487ccfaa3
--- /dev/null
+++ b/obj/item/projectile.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+ /obj/item/projectile - byond
+
+
+
+
+
+
+Vars
+ angle Direct angle at firing time, in degrees from BYOND NORTH, used for visual updates and path extension
+ bound_beam The beam linked to the projectile. Can be utilized for things like grappling hooks, harpoon guns, tripwire guns, 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.
+ 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
+ fly Flies the projectile forward one single turf
+ Var Details angle
+
+
+
+
+
+ Direct angle at firing time, in degrees from BYOND NORTH, used for visual updates and path extension
bound_beam
+
+
+
+
+
+ The beam linked to the projectile. Can be utilized for things like grappling hooks, harpoon guns, tripwire guns, 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.
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 fly()
+
+
+
+
+
+ Flies the projectile forward one single turf
+
+
+
diff --git a/obj/item/reagent_container/blood.html b/obj/item/reagent_container/blood.html
new file mode 100644
index 000000000000..486f6137f1e7
--- /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..f33739d509de
--- /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..1ef4007e2231
--- /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/spacecash.html b/obj/item/spacecash.html
new file mode 100644
index 000000000000..dd9167622fae
--- /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..530a5a544e46
--- /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/storage.html b/obj/item/storage.html
new file mode 100644
index 000000000000..a938725b2470
--- /dev/null
+++ b/obj/item/storage.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+ /obj/item/storage - byond
+
+
+
+
+
+
+Procs
+ MouseDrop Whether to use map-variant skins.
+ _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.
Proc Details MouseDrop(/obj /over_object)
+
+
+
+
+
+ Whether to use map-variant skins.
_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.
+
+
+
diff --git a/obj/item/storage/belt.html b/obj/item/storage/belt.html
new file mode 100644
index 000000000000..c519b97b3ffd
--- /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..01bed2c5f318
--- /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..e634cf9d4b07
--- /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..1a4c227446d8
--- /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..36a80816cc45
--- /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..ab1c704baeaf
--- /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/tape.html b/obj/item/tape.html
new file mode 100644
index 000000000000..b48a85d58924
--- /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..f463667d52e3
--- /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..4fd62727e811
--- /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..f703de30a6af
--- /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..ac1a610c5f39
--- /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..333d2b540ef1
--- /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..313c2ee94013
--- /dev/null
+++ b/obj/item/tool/pen.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/item/tool/pen - byond
+
+
+
+
+
+
+
+ Var Details pen_colour
+
+
+
+
+
+ what color the ink is!
+
+
+
diff --git a/obj/item/tool/pickaxe.html b/obj/item/tool/pickaxe.html
new file mode 100644
index 000000000000..dce27ce366b5
--- /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..6025f60506d5
--- /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..7eb1480ab1d5
--- /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..00012ec002d8
--- /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..7663b7f47c25
--- /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..559c3b12fb2f
--- /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..f956eaaa96c6
--- /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/scalpel/laser.html b/obj/item/tool/surgery/scalpel/laser.html
new file mode 100644
index 000000000000..0bc0826f65ec
--- /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/surgery/synthgraft.html b/obj/item/tool/surgery/synthgraft.html
new file mode 100644
index 000000000000..f4a62a7f0734
--- /dev/null
+++ b/obj/item/tool/surgery/synthgraft.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/item/tool/surgery/synthgraft - byond
+
+
+
+
+
+
+Vars
+ color Placeholder, to distinguish from surgical line.
+ icon_state Placeholder.
+ Var Details color
+
+
+
+
+
+ Placeholder, to distinguish from surgical line.
icon_state
+
+
+
+
+
+ Placeholder.
+
+
+
diff --git a/obj/item/tool/weldingtool.html b/obj/item/tool/weldingtool.html
new file mode 100644
index 000000000000..352f1ac51321
--- /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..96a6b7f71df7
--- /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..a1881c892ec3
--- /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/weapon/gun.html b/obj/item/weapon/gun.html
new file mode 100644
index 000000000000..57a0fe12fc43
--- /dev/null
+++ b/obj/item/weapon/gun.html
@@ -0,0 +1,586 @@
+
+
+
+
+
+
+ /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.
+ 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.
+ burst_delay The delay in between shots. Lower = less delay = faster.
+ 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_delay The delay when firing full-auto
+ 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?
+ fa_shots How many shots have been fired using full-auto. Used to figure out scatter
+ fa_target The atom we're shooting at while full-autoing
+ fire_delay For regular shots, how long to wait before firing again.
+ 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.
+ 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_lum muzzle flash brightness
+ 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.
+ 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 List of who yer targeting.
+ 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
+ disconnect_light_from_mob This function disconnects the luminosity from the mob and back to the gun
+ 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.
+ 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.
+ remove_bullet_traits @bullet_traits: A list of bullet trait typepaths or ids
+ set_bullet_traits Populate traits_to_give in this proc
+ 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.
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.
burst_delay
+
+
+
+
+
+ The delay in between shots. Lower = less delay = faster.
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_delay
+
+
+
+
+
+ The delay when firing full-auto
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?
fa_shots
+
+
+
+
+
+ How many shots have been fired using full-auto. Used to figure out scatter
fa_target
+
+
+
+
+
+ The atom we're shooting at while full-autoing
fire_delay
+
+
+
+
+
+ For regular shots, how long to wait before firing again.
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.
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_lum
+
+
+
+
+
+ muzzle flash brightness
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.
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
+
+
+
+
+
+ List of who yer targeting.
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
disconnect_light_from_mob(/mob /bearer)
+
+
+
+
+
+ This function disconnects the luminosity from the mob and back to the gun
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.
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.
remove_bullet_traits(/list/bullet_traits)
+
+
+
+
+
+ @bullet_traits: A list of bullet trait typepaths or ids
set_bullet_traits()
+
+
+
+
+
+ Populate traits_to_give in this proc
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/energy/taser.html b/obj/item/weapon/gun/energy/taser.html
new file mode 100644
index 000000000000..e0cfcbceaa90
--- /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/launcher.html b/obj/item/weapon/gun/launcher.html
new file mode 100644
index 000000000000..ad9365d68675
--- /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..e1d84c3b8cee
--- /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..e917e7b9ca2c
--- /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/shotgun/double/twobore.html b/obj/item/weapon/gun/shotgun/double/twobore.html
new file mode 100644
index 000000000000..50c374869cdf
--- /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..01213fdacfd0
--- /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..68cb74087df3
--- /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/twohanded/lungemine.html b/obj/item/weapon/twohanded/lungemine.html
new file mode 100644
index 000000000000..54ff876bed7f
--- /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/limb.html b/obj/limb.html
new file mode 100644
index 000000000000..15791ba4bb50
--- /dev/null
+++ b/obj/limb.html
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+ /obj/limb - byond
+
+
+
+
+
+
+Vars
+ cavity Name of internal cavity.
+ encased Name of bones encasing the limb.
+ hidden Surgically implanted item.
+ implants Embedded or implanter implanted items. 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.
+ 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.
+ Var Details cavity
+
+
+
+
+
+ Name of internal cavity.
encased
+
+
+
+
+
+ Name of bones encasing the limb.
hidden
+
+
+
+
+
+ Surgically implanted item.
implants
+
+
+
+
+
+ Embedded or implanter implanted items.
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.
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.
+
+
+
diff --git a/obj/limb/head.html b/obj/limb/head.html
new file mode 100644
index 000000000000..859f4d8a7a36
--- /dev/null
+++ b/obj/limb/head.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/limb/head - byond
+
+
+
+
+
+
+Procs
+ update_overlays Specifically, damage overlays. Severed limb gore effects are applied elsewhere.
Proc Details update_overlays()
+
+
+
+
+
+ Specifically, damage overlays. Severed limb gore effects are applied elsewhere.
+
+
+
diff --git a/obj/structure/barricade.html b/obj/structure/barricade.html
new file mode 100644
index 000000000000..74c97f71503f
--- /dev/null
+++ b/obj/structure/barricade.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/barricade - byond
+
+
+
+
+
+
+Vars
+ 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
+ Var Details 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
+
+
+
diff --git a/obj/structure/bed.html b/obj/structure/bed.html
new file mode 100644
index 000000000000..22d90ade9eb6
--- /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/bed/nest.html b/obj/structure/bed/nest.html
new file mode 100644
index 000000000000..cfbfb8e58e6c
--- /dev/null
+++ b/obj/structure/bed/nest.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/bed/nest - byond
+
+
+
+
+
+
+
+ Var Details buckled_mob_density
+
+
+
+
+
+ saves the density of the buckled_mob
buckling_x
+
+
+
+
+
+ counterpart to buckling_y --> offsets the buckled mob when it buckles
+
+
+
diff --git a/obj/structure/blocker/tent.html b/obj/structure/blocker/tent.html
new file mode 100644
index 000000000000..fba59964e83e
--- /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..0310356a3c26
--- /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..8c974e224864
--- /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..6da23eb68fd7
--- /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..80f6f6b43dbc
--- /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/disposalconstruct.html b/obj/structure/disposalconstruct.html
new file mode 100644
index 000000000000..8ecc7605a55f
--- /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..917d28b59bf6
--- /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/dropship_equipment/weapon.html b/obj/structure/dropship_equipment/weapon.html
new file mode 100644
index 000000000000..42f3dc6393c4
--- /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/flora/pottedplant.html b/obj/structure/flora/pottedplant.html
new file mode 100644
index 000000000000..5f08b7e8367a
--- /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.html b/obj/structure/largecrate.html
new file mode 100644
index 000000000000..62ec4eed4be9
--- /dev/null
+++ b/obj/structure/largecrate.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ /obj/structure/largecrate - byond
+
+
+
+
+
+
+Procs
+ move_to_bottom Store the reference of the crate material
+Custom proc to move an object to the bottom of the turf's contents
Proc Details move_to_bottom(/obj /moving_down, /turf /current_turf)
+
+
+
+
+
+ Store the reference of the crate material
+Custom proc to move an object to the bottom of the turf's contents
+
+
+
diff --git a/obj/structure/largecrate/black_market.html b/obj/structure/largecrate/black_market.html
new file mode 100644
index 000000000000..45f0c311a657
--- /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..ec20b553fc6e
--- /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..7bc2335be3e6
--- /dev/null
+++ b/obj/structure/machinery/ares.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/machinery/ares - byond
+
+
+
+
+
+
+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..525015afe265
--- /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
linked_storage
+ – /obj /structure/machinery/smartfridge/chemistry
+
+
+
+
+ Where we take chemicals from
output_container
+ – /obj /item /reagent_container/glass
+
+
+
+
+ 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/autolathe.html b/obj/structure/machinery/autolathe.html
new file mode 100644
index 000000000000..f83df234280b
--- /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..8a307500bd5b
--- /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/computer/ares_console.html b/obj/structure/machinery/computer/ares_console.html
new file mode 100644
index 000000000000..447820e7735a
--- /dev/null
+++ b/obj/structure/machinery/computer/ares_console.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/ares_console - byond
+
+
+
+
+
+
+
+ Var Details access_list
+
+
+
+
+
+ A record of who logged in and when.
deleted_1to1
+
+
+
+
+
+ The current deleted chat log of 1:1 conversations being read.
last_login
+
+
+
+
+
+ The last person to login.
link_id
+
+
+
+
+
+ The ID used to link all devices.
nuke_available
+
+
+
+
+
+ Is nuke request usable or not? (Nuke request is not currently coded to work.)
records_announcement
+
+
+
+
+
+ Holds all (/datum/ares_record/announcement)s and (/datum/ares_record/security/security_alert)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_security
+
+
+
+
+
+ Holds all (/datum/ares_record/security)s and (/datum/ares_record/antiair)s
records_talking
+
+
+
+
+
+ Holds all (/datum/ares_record/talk_log)s
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..898d4997d6b0
--- /dev/null
+++ b/obj/structure/machinery/computer/cameras.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/cameras - byond
+
+
+
+
+
+
+
+ Var Details last_camera_turf
+
+
+
+
+
+ The turf where the camera was last updated.
range_turfs
+
+
+
+
+
+ All turfs within range of the currently active camera
+
+
+
diff --git a/obj/structure/machinery/computer/objective.html b/obj/structure/machinery/computer/objective.html
new file mode 100644
index 000000000000..18119dcc0382
--- /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..2b734f43517f
--- /dev/null
+++ b/obj/structure/machinery/computer/overwatch.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/overwatch - byond
+
+
+
+
+
+
+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..9217e4431850
--- /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..f0b9a581ff4c
--- /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_control.html b/obj/structure/machinery/computer/shuttle_control.html
new file mode 100644
index 000000000000..67d9e8eef3fd
--- /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..4c86e258f65e
--- /dev/null
+++ b/obj/structure/machinery/computer/supplycomp.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/supplycomp - byond
+
+
+
+
+
+
+Proc Details is_buyable
+
+ For code readability.
+
+
+
diff --git a/obj/structure/machinery/computer/working_joe.html b/obj/structure/machinery/computer/working_joe.html
new file mode 100644
index 000000000000..dfd4d183599e
--- /dev/null
+++ b/obj/structure/machinery/computer/working_joe.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /obj/structure/machinery/computer/working_joe - byond
+
+
+
+
+
+
+
+ Var Details last_login
+
+
+
+
+
+ The last person to login.
link_id
+
+
+
+
+
+ The ID used to link all devices.
login_list
+
+
+
+
+
+ A record of who logged in and when.
ticket_console
+
+
+
+
+
+ If this is used to create AI Core access tickets
+
+
+
diff --git a/obj/structure/machinery/defenses.html b/obj/structure/machinery/defenses.html
new file mode 100644
index 000000000000..da6f7a25794c
--- /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..3a1f5fe0d1a3
--- /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..1d224880cf5f
--- /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/disposal.html b/obj/structure/machinery/disposal.html
new file mode 100644
index 000000000000..44cf0b7eb4f9
--- /dev/null
+++ b/obj/structure/machinery/disposal.html
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+ /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
+ trunk The attached pipe trunk Procs
+ Initialize Create a new disposal, find the attached trunk (if present) and init gas resvr.
+ MouseDrop_T 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
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
+
+ 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()
+
+
+
+
+
+ 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..06085d754442
--- /dev/null
+++ b/obj/structure/machinery/door.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ /obj/structure/machinery/door - byond
+
+
+
+
+
+
+Vars
+ heavy Stops it being forced open through normal means (Hunters/Zombies/Aliens).
+ masterkey_resist Resistance to masterkey
+ Var Details heavy
+
+
+
+
+
+ Stops it being forced open through normal means (Hunters/Zombies/Aliens).
masterkey_resist
+
+
+
+
+
+ Resistance to masterkey
+
+
+
diff --git a/obj/structure/machinery/door/airlock.html b/obj/structure/machinery/door/airlock.html
new file mode 100644
index 000000000000..b4d94acb8de8
--- /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..2d13d000beb4
--- /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..2db3a371c0eb
--- /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..bf052aa4e0e0
--- /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/gibber.html b/obj/structure/machinery/gibber.html
new file mode 100644
index 000000000000..1d69ff7e253b
--- /dev/null
+++ b/obj/structure/machinery/gibber.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ /obj/structure/machinery/gibber - byond
+
+
+
+
+
+
+Procs
+ eject If someone's being LRP and doing funny chef shit, this lets admins know. This shouldn't flag preds, though.
Proc Details eject()
+
+
+
+
+
+ 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..dcf904b3cf0c
--- /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/medical_pod.html b/obj/structure/machinery/medical_pod.html
new file mode 100644
index 000000000000..177ad1e4080f
--- /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/newscaster.html b/obj/structure/machinery/newscaster.html
new file mode 100644
index 000000000000..b240f1d25413
--- /dev/null
+++ b/obj/structure/machinery/newscaster.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ /obj/structure/machinery/newscaster - byond
+
+
+
+
+
+
+Procs
+ newsAlert obj/structure/machinery/newscaster/process() //Was thinking of doing the icon update through process, but multiple iterations per second does not
+ scan_user helper procs
Proc Details newsAlert(channel)
+
+
+
+
+
+ obj/structure/machinery/newscaster/process() //Was thinking of doing the icon update through process, but multiple iterations per second does not
scan_user
+
+ helper procs
+
+
+
diff --git a/obj/structure/machinery/pipedispenser.html b/obj/structure/machinery/pipedispenser.html
new file mode 100644
index 000000000000..2bbb19586fbf
--- /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..6fe66937eaed
--- /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..300c8c5b0e57
--- /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/prop/almayer/CICmap.html b/obj/structure/machinery/prop/almayer/CICmap.html
new file mode 100644
index 000000000000..b41cafa19bf0
--- /dev/null
+++ b/obj/structure/machinery/prop/almayer/CICmap.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+ /obj/structure/machinery/prop/almayer/CICmap - byond
+
+
+
+
+
+
+Vars
+ map flags that we want to be shown when you interact with this table
+ Var Details
+ flags that we want to be shown when you interact with this table
+
+
+
diff --git a/obj/structure/machinery/sensortower.html b/obj/structure/machinery/sensortower.html
new file mode 100644
index 000000000000..94ef6b2d76da
--- /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/vending.html b/obj/structure/machinery/vending.html
new file mode 100644
index 000000000000..4dd4a90cbdd7
--- /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/mortar.html b/obj/structure/mortar.html
new file mode 100644
index 000000000000..abba3a65094d
--- /dev/null
+++ b/obj/structure/mortar.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ /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
+ 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
travel_time
+
+
+
+
+
+ Constant, assuming perfect parabolic trajectory. ONLY THE DELAY BEFORE INCOMING WARNING WHICH ADDS 45 TICKS
+
+
+
diff --git a/obj/structure/pipes.html b/obj/structure/pipes.html
new file mode 100644
index 000000000000..4c4e31853aeb
--- /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/wooden_cross.html b/obj/structure/prop/wooden_cross.html
new file mode 100644
index 000000000000..98c2e3fb1912
--- /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/ship_ammo.html b/obj/structure/ship_ammo.html
new file mode 100644
index 000000000000..9f6b541600ed
--- /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 transfering message
ammo_used_per_firing
+
+
+
+
+
+ Ammunition expended each time this is fired
equipment_type
+
+
+
+
+
+ Type of equipment that accept 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 transfered 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..c3fc750259e8
--- /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/surface/table.html b/obj/structure/surface/table.html
new file mode 100644
index 000000000000..6ee70295022b
--- /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..90955ef0dc0b
--- /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/window.html b/obj/structure/window.html
new file mode 100644
index 000000000000..415ae884c390
--- /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/multitile/apc/command.html b/obj/vehicle/multitile/apc/command.html
new file mode 100644
index 000000000000..32b0b118e3a8
--- /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/particles.html b/particles.html
new file mode 100644
index 000000000000..3548105d2880
--- /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..15af471727c4
--- /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..af3745be64b6
--- /dev/null
+++ b/turf.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+ /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 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
+ empty Remove all atoms except observers, landmarks, docking ports - clearing up the turf contents
+ 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
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
empty(turf_type, baseturf_type, /list/ignore_typecache, flags)
+
+
+
+
+
+ Remove all atoms except observers, landmarks, docking ports - clearing up the turf contents
+
+
+
diff --git a/world.html b/world.html
new file mode 100644
index 000000000000..031cd03b1d02
--- /dev/null
+++ b/world.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ /world - byond
+
+
+
+
+byond
+
+
+
+
+
+Proc Details 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.
+
+
+
+