These two vars allow for multiple unique areas to be linked to a master area
+and share some functionalities such as APC powernet nodes, fire alarms etc, without sacrificing
+their own flags, statuses, variables and more snowflakes.
+Friendly reminder: no map edited areas.
Alarm type to count of sources. Not usable for ^ because we handle fires differently
alarm_manager
We use this just for fire alarms, because they're area based right now so one alarm going poof shouldn't prevent you from clearing your alarms listing
always_unpowered
This gets overridden to 1 for space in area/Initialize(mapload).
areasize
Size of the area in open turfs, only calculated for indoors areas.
beauty
Beauty average per open turf in the area
beauty_threshold
If a room is too big it doesn't have beauty.
clockwork_warp_allowed
whether servants can warp into this area from Reebe
clockwork_warp_fail
Message to display when the clockwork warp fails
considered_hull_exterior
Considered space for hull shielding
dirt_buildup_allowed
Dirty flooring allowed
fire
Do we have an active fire alarm?
flora_allowed
If flora are allowed to spawn in this area randomly through tunnel generation
hidden
Hides area from player Teleport function.
map_generator
This datum, if set, allows terrain generation behavior to be ran on Initialize()
map_name
CIT SPECIFIC VARS
+Set in New(); preserves the name set by the map maker, even if renamed by the Blueprints.
megafauna_spawn_allowed
If megafauna can be spawned by natural random generation
minimap_color
Color on minimaps, if it's null (which is default) it makes one at random.
mob_spawn_allowed
if mobs can be spawned by natural random generation
mood_bonus
Bonus mood for being in this area
mood_message
Mood message for being here, only shows up if mood_bonus != 0
outdoors
For space, the asteroid, lavaland, etc. Used with blueprints or with weather to determine if we are adding a new area (vs editing a station room)
parallax_move_angle
Parallax move dir - degrees clockwise from north
parallax_move_speed
Parallax move speed - 0 to disable
parallax_moving
Parallax moving?
persistent_debris_allowed
Persistent debris alowed
requires_power
Will objects this area be needing power?
safe
Is the area teleport-safe: no space / radiation / aggresive mobs / other dangers
sound_environment
Used to decide what kind of reverb the area makes sound have
sub_areas
These two vars allow for multiple unique areas to be linked to a master area
+and share some functionalities such as APC powernet nodes, fire alarms etc, without sacrificing
+their own flags, statuses, variables and more snowflakes.
+Friendly reminder: no map edited areas.
totalbeauty
All beauty in this area combined, only includes indoor area.
triggered_firealarms
How many fire alarm sources do we have?
tunnel_allowed
If mining tunnel generation is allowed in this area
valid_malf_hack
malf ais can hack this
Proc Details
Destroy
Destroy an area and clean it up
+
Removes the area from GLOB.areas_by_type and also stops it processing on SSobj
+
This is despite the fact that no code appears to put it on SSobj, but
+who am I to argue with old coders
Entered
Call back when an atom enters an area
+
Sends signals COMSIG_AREA_ENTERED and COMSIG_ENTER_AREA (to the atom)
+
If the area has ambience, then it plays some ambience music to the ambience channel
Exited
Called when an atom exits an area
+
Sends signals COMSIG_AREA_EXITED and COMSIG_EXIT_AREA (to the atom)
Initialize
Initalize this area
+
intializes the dynamic area lighting and also registers the area with the z level via
+reg_in_areas_in_z
+
returns INITIALIZE_HINT_LATELOAD
LateInitialize
Sets machine power levels in the area
ModifyFiredoors
Try to close all the firedoors in the area
New
Called when an area loads
+
Adds the item to the GLOB.areas_by_type list based on area type
reg_in_areas_in_z
Register this area as belonging to a z level
+
Ensures the item is added to the SSmapping.areas_in_z list for this z
update_beauty
Divides total beauty in the room by roomsize to allow us to get an average beauty per tile.
update_icon_state
Update the icon state of the area
+
Im not sure what the heck this does, somethign to do with weather being able to set icon
+states on areas?? where the heck would that even display?
\ No newline at end of file
diff --git a/area/space.html b/area/space.html
new file mode 100644
index 000000000000..b4a0a8ad4322
--- /dev/null
+++ b/area/space.html
@@ -0,0 +1 @@
+/area/space - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Update the icon of the area (overridden to always be null for space
Proc Details
update_icon_state
Update the icon of the area (overridden to always be null for space
\ No newline at end of file
diff --git a/atom.html b/atom.html
new file mode 100644
index 000000000000..fd6165db7b3e
--- /dev/null
+++ b/atom.html
@@ -0,0 +1,167 @@
+/atom - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
atom
The base type for nearly all physical objects in SS13
+
Lots and lots of functionality lives here, although in general we are striving to move
+as much as possible to the components/elements system
The custom materials this atom is made of, used by a lot of things like furniture, walls, and floors (if I finish the functionality, that is.)
+The list referenced by this var can be shared by multiple objects and should not be directly modified. Instead, use set_custom_materials.
Creates a "Type-B" contextual screentip interaction.
+When a user hovers over this, this proc will be called in order
+to provide context for contextual screentips.
+You must call register_context() in order for this to be registered.
+A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm)
+that map to the action as text.
+If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.
+source can, in all cases, be replaced with src, and only exists because this proc directly connects to a signal.
Create a "Type-B" contextual screentip interaction, registering to add_context().
+This will run add_context() when the atom is hovered over by an item for context.
+add_context() will not be called unless this is run.
+This is not necessary for Type-B interactions, as you can just apply the flag and register to the signal yourself.
Builds a list of overlays for the atom, this will not apply them.
+If you need to update overlays, use [update_icon(UPDATE_OVERLAYS)],
+This proc is intended to be overridden.
its inherent color, the colored paint applied on it, special color effect etc...
attack_hand_is_action
Should we set last action for attack hand? This implies that attack_hands to this atom should flush to clickdelay buffers instead of discarding.
attack_hand_speed
Amount of time to check for from a mob's last attack to allow an attack_hand().
attack_hand_unwieldlyness
Amount of time to hard stagger (no clicking at all) the mob post attack_hand(). Lower = better
base_icon_state
Used for changing icon states for different base sprites.
base_pixel_x
Default pixel x shifting for the atom's icon.
base_pixel_y
Default pixel y shifting for the atom's icon.
chat_color
Last color calculated for the the chatmessage overlays
chat_color_darkened
A luminescence-shifted value of the last color calculated for chatmessage overlays
chat_color_name
Last name used to calculate a color for the chatmessage overlays
custom_materials
The custom materials this atom is made of, used by a lot of things like furniture, walls, and floors (if I finish the functionality, that is.)
+The list referenced by this var can be shared by multiple objects and should not be directly modified. Instead, use set_custom_materials.
custom_premium_price
Price of an item in a vending machine, overriding the premium vending machine price. Define in terms of paycheck defines as opposed to raw numbers.
custom_price
Price of an item in a vending machine, overriding the base vending machine price. Define in terms of paycheck defines as opposed to raw numbers.
explosion_block
Value used to increment ex_act() if reactionary_explosions is on
explosion_flags
Flags for explosions
fingerprintslast
Last fingerprints to touch this atom
flags_1
First atom flags var
hud_list
This atom's HUD (med/sec, etc) images. Associative list.
hud_possible
HUD images that this atom can provide.
interaction_flags_atom
Intearaction flags
managed_overlays
overlays managed by update_overlays to prevent removing overlays that weren't added by the same proc
managed_vis_overlays
vis overlays managed by SSvis_overlays to automaticaly turn them like other overlays
material_flags
Bitfield for how the atom handles materials.
material_modifier
Modifier that raises/lowers the effect of the amount of a material, prevents small and easy to get items from being death machines.
orbit_target
Reference to atom being orbited
pass_flags_self
pass_flags that we are. If any of this matches a pass_flag on a moving thing, by default, we let them through.
proximity_monitor
Proximity monitor associated with this atom
rad_insulation
Radiation insulation types
reagents
Reagents holder
realized_overlays
List of overlay "keys" (info about the appearance) -> mutable versions of static appearances
+Drawn from the overlays list
realized_underlays
List of underlay "keys" (info about the appearance) -> mutable versions of static appearances
+Drawn from the underlays list
remove_overlays
a very temporary list of overlays to remove
ricochet_chance_mod
When a projectile tries to ricochet off this atom, the projectile ricochet chance is multiplied by this
ricochet_damage_mod
When a projectile ricochets off this atom, it deals the normal damage * this modifier to this atom
targeted_by
Mobs that are currently do_after'ing this atom, to be cleared from on Destroy()
wave_explosion_block
Amount to decrease wave explosions by
wave_explosion_multiply
Amount to multiply wave explosions by
Proc Details
AltClickNoInteract
Use this instead of [/mob/proc/AltClickOn] where you only want turf content listing without additional atom alt-click interaction
CanAllowThrough
Returns true or false to allow the mover to move through src
Removes alternate apperances from huds that see them
+
qdels the reagent holder from atoms if it exists
+
clears the orbiters list
+
clears overlays and priority overlays
+
clears the light object
+
Initialize
The primary method that objects are setup in SS13 with
+
we don't use New as we have better control over when this is called and we can choose
+to delay calls or hook other logic in and so forth
+
During roundstart map parsing, atoms are queued for intialization in the base atom/New(),
+After the map has loaded, then Initalize is called on all atoms one by one. NB: this
+is also true for loading map templates as well, so they don't Initalize until all objects
+in the map file are parsed and present in the world
+
If you're creating an object at any point after SSInit has run then this proc will be
+immediately be called from New.
+
mapload: This parameter is true if the atom being loaded is either being intialized during
+the Atom subsystem intialization, or if the atom is being loaded from the map template.
+If the item is being created at runtime any time after the Atom subsystem is intialized then
+it's false.
+
You must always call the parent of this proc, otherwise failures will occur as the item
+will not be seen as initalized (this can lead to all sorts of strange behaviour, like
+the item being completely unclickable)
+
You must not sleep in this proc, or any subprocs
+
Any parameters from new are passed through (excluding loc), naturally if you're loading from a map
+there are no other arguments
Late Intialization, for code that should run after all atoms have run Intialization
+
To have your LateIntialize proc be called, your atoms Initalization
+proc must return the hint
+INITIALIZE_HINT_LATELOAD otherwise you will never be called.
+
useful for doing things like finding other machines on GLOB.machines because you can guarantee
+that all atoms will actually exist in the "WORLD" at this time and that all their Intialization
+code has been run
New
Called when an atom is created in byond (built in engine proc)
+
Not a lot happens here in SS13 code, as we offload most of the work to the
+Intialization proc, mostly we run the preloader
+if the preloader is being used and then call InitAtom of which the ultimate
+result is that the Intialize proc is called.
+
We also generate a tag here if the DF_USE_TAG flag is set on the atom
Shake
Perform a shake on an atom, resets its position afterwards
_contents
Wrapper to return a copy of contents, as SDQL2 can't tell an internal list from a normal list.
add_context
Creates a "Type-B" contextual screentip interaction.
+When a user hovers over this, this proc will be called in order
+to provide context for contextual screentips.
+You must call register_context() in order for this to be registered.
+A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm)
+that map to the action as text.
+If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.
+source can, in all cases, be replaced with src, and only exists because this proc directly connects to a signal.
audible_message
Show a message to all mobs in earshot of this atom
+
Use for objects performing audible actions
+
vars:
+
+
message is the message output to anyone who can hear.
+
deaf_message (optional) is what deaf people will see.
+
hearing_distance (optional) is the range, how many tiles away the message can be heard.
+
ignored_mobs (optional) doesn't show any message to any given mob in the list.
+
runechat_popup (optional) if TRUE, will display a runechat popup using rune_msg if set otherwise it will use message and self_message accordingly.
+
rune_msg (optional) is the message to display in the runechat popup.
+
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.
bullet_act
React to a hit by a projectile object
+
Default behaviour is to send the COMSIG_ATOM_BULLET_ACT and then call [on_hit][/obj/item/projectile/proc/on_hit] on the projectile
+
@params
+P - projectile
+def_zone - zone hit
+piercing_hit - is this hit piercing or normal?
check_projectile_ricochet
Checks if a projectile should ricochet off of us. Projectiles get final say.
+[__DEFINES/projectiles.dm] for return values.
connect_to_shuttle
Called after a shuttle is loaded from map template initially.
+
@params
+
+
port - Mobile port/shuttle
+
dock - Stationary dock the shuttle's at
+
idnum - ID number of the shuttle
+
examine_more
Called when a mob examines (shift click or verb) this atom twice (or more) within EXAMINE_MORE_TIME (default 1.5 seconds)
+
This is where you can put extra information on something that may be superfluous or not important in critical gameplay
+moments, while allowing people to manually double-examine to take a closer look
Generate the full examine string of this atom (including icon for goonchat)
get_filter_index
Returns the indice in filters of the given filter name.
+If it is not found, returns null.
has_gravity
Returns true if this atom has gravity for the passed in turf
+
Sends signals COMSIG_ATOM_HAS_GRAVITY and COMSIG_TURF_HAS_GRAVITY, both can force gravity with
+the forced gravity var
+
Gravity situations:
+
+
No gravity if you're not in a turf
+
No gravity if this atom is in is a space turf
+
Gravity if the area it's in always has gravity
+
Gravity if there's a gravity generator on the z level
+
Gravity if the Z level has an SSMappingTrait for ZTRAIT_GRAVITY
+
otherwise no gravity
+
hitby
React to being hit by a thrown object
+
Default behaviour is to call hitby_react on ourselves after 2 seconds if we are dense
+and under normal gravity.
+
Im not sure why this the case, maybe to prevent lots of hitby's if the thrown object is
+deleted shortly after hitting something (during explosions or other massive events that
+throw lots of items around - singularity being a notable example)
hitby_react
We have have actually hit the passed in atom
+
Default behaviour is to move back from the item that hit us
mat_update_desc
This proc is called when a material updates an object's description
mech_melee_attack
Called when a mech melee attacks an atom
ninjadrain_act
Atom level proc for space ninja's glove interactions.
+
Proc which only occurs when space ninja uses his gloves on an atom.
+Does nothing by default, but effects will vary.
+Arguments:
+
+
ninja_suit - The offending space ninja's suit.
+
ninja - The human mob wearing the suit.
+
ninja_gloves - The offending space ninja's gloves.
+
onAwayMission
Is the atom in an away mission
+
Must be in the away mission z-level to return TRUE
+
Also used in gamemode code for win conditions
onCentCom
Is this atom currently located on centcom
+
Specifically, is it on the z level and within the centcom areas
+
You can also be in a shuttleshuttle during endgame transit
+
Used in gamemode to identify mobs who have escaped and for some other areas of the code
+who don't want atoms where they shouldn't be
onSyndieBase
Is the atom in any of the centcom syndicate areas
+
Either in the syndie base on centcom, or any of their shuttles
+
Also used in gamemode code for win conditions
realize_overlays
Takes the atoms's existing overlays and underlays, and makes them mutable so they can be properly vv'd in the realized_overlays/underlays list
register_context
Create a "Type-B" contextual screentip interaction, registering to add_context().
+This will run add_context() when the atom is hovered over by an item for context.
+add_context() will not be called unless this is run.
+This is not necessary for Type-B interactions, as you can just apply the flag and register to the signal yourself.
rust_heretic_act
Causes effects when the atom gets hit by a rust effect from heretics
+
Override this if you want custom behaviour in whatever gets hit by the rust
setClosed
Used to set something as 'closed' if it's being used as a supplypod
+
Override this if you want an atom to be usable as a supplypod.
setOpened
Used to set something as 'open' if it's being used as a supplypod
+
Override this if you want an atom to be usable as a supplypod.
set_custom_materials
Sets the custom materials for an item.
set_light_color
Setter for the light color of this atom.
set_light_range
Setter for the light range of this atom.
shuttleRotate
Base proc
update_appearance
Updates the appearence of the icon
+
Mostly delegates to update_name, update_desc, and update_icon
+
Arguments:
+
+
updates: A set of bitflags dictating what should be updated. Defaults to [ALL]
+
update_desc
Updates the description of the atom
update_icon
Updates the icon of the atom
update_icon_state
Updates the icon state of the atom
update_name
Updates the name of the atom
update_overlays
Builds a list of overlays for the atom, this will not apply them.
+If you need to update overlays, use [update_icon(UPDATE_OVERLAYS)],
+This proc is intended to be overridden.
visible_message
Generate a visible message from this atom
+
Show a message to all player mobs who sees this atom
+
Show a message to the src mob (if the src is a mob)
+
Use for atoms performing visible actions
+
message is output to anyone who can see, e.g. "The [src] does something!"
+
Vars:
+
+
self_message (optional) is what the src mob sees e.g. "You do something!"
+
blind_message (optional) is what blind people will hear e.g. "You hear something!"
+
vision_distance (optional) define how many tiles away the message can be seen.
+
ignored_mobs (optional) doesn't show any message to any given mob in the list.
+
target (optional) is the other mob involved with the visible message. For example, the attacker in many combat messages.
+
target_message (optional) is what the target mob will see e.g. "[src] does something to you!"
+
omni (optional) if TRUE, will show to users no matter what.
+
runechat_popup (optional) if TRUE, will display a runechat popup using rune_msg if set otherwise it will use message and self_message accordingly.
+
rune_msg (optional) is the message to display in the runechat popup.
+
wave_ex_act
Called when a wave explosion hits this atom.
+
Returns explosion power to "allow through". Standard handling and flag overrides in [wave_explode()].
wave_explode
Called when a wave explosion hits this atom. Do not override this.
+
Returns explosion power to "allow through".
zap_act
Respond to a electric bolt action on our item
+
Default behaviour is to return, we define here to allow for cleaner code later on
\ No newline at end of file
diff --git a/atom/movable.html b/atom/movable.html
new file mode 100644
index 000000000000..5c355be2ce91
--- /dev/null
+++ b/atom/movable.html
@@ -0,0 +1,30 @@
+/atom/movable - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
In case you have multiple types, you automatically use the most useful one.
+IE: Skating on ice, flippers on water, flying over chasm/space, etc.
+I reccomend you use the movetype_handler system and not modify this directly, especially for living mobs.
Called whenever an object moves and by mobs when they attempt to move themselves through space
+And when an object or action applies a force on src, see newtonian_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()
Copies all languages into the supplied atom/language holder. Source should be overridden when you
+do not want the language overwritten by later atom updates or want to avoid blocked languages.
If set, will return a list for the tooltip (that will also be put together in a Join())
+However, if returning null, the tooltip will not be shown as #14942 changed it.
called when this atom is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called.
Empties out the atom specific languages and updates them according to the current atoms language holder.
+As a side effect, it also creates missing language holders in the process.
Internal holder for emissive blocker object, do not use directly use blocks_emissive
floating_need_update
If we were without gravity and another animation happened, the bouncing will stop, and we need to restart it in next life().
generic_canpass
If false makes CanPass call CanPassThrough on this type instead of using default behaviour
last_yell
last time we yelled
movement_type
In case you have multiple types, you automatically use the most useful one.
+IE: Skating on ice, flippers on water, flying over chasm/space, etc.
+I reccomend you use the movetype_handler system and not modify this directly, especially for living mobs.
pass_flags
Things we can pass through while moving. If any of this matches the thing we're trying to pass's [pass_flags_self], then we can pass through.
tooltips
Should we use tooltips, if the thing does not have the code implemented get_tooltip_data(), it will default to examine(src)
yell_power
How loudly we yell
Proc Details
CanPassThrough
Returns true or false to allow src to move through the blocker, mover has final say
Process_Spacemove
Called whenever an object moves and by mobs when they attempt to move themselves through space
+And when an object or action applies a force on src, see newtonian_move
+
return FALSE to have src start/keep drifting in a no-grav area and 1 to stop/not start drifting
+
Mobs should return TRUE if they should be able to move of their own volition, see [/client/proc/Move]
+
Arguments:
+
+
movement_dir - 0 when stopping or any dir when trying to move
+
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()
add_blocked_language
Adds a language to the blocked language list. Use this over remove_language in cases where you will give languages back later.
admin_teleport
Proc to hook user-enacted teleporting behavior and keep logging of the event.
can_speak_language
Checks if atom can speak the language.
copy_languages
Copies all languages into the supplied atom/language holder. Source should be overridden when you
+do not want the language overwritten by later atom updates or want to avoid blocked languages.
could_speak_language
Returns the result of tongue specific limitations on spoken languages.
forceMove
FORCED MOVEMENT
get_language_holder
Gets or creates the relevant language holder. For mindless atoms, gets the local one. For atom with mind, gets the mind one.
get_random_spoken_language
Gets a random spoken language, useful for forced speech and such.
get_random_understood_language
Gets a random understood language, useful for hallucinations and such.
get_selected_language
Returns selected language, if it can be spoken, or finds, sets and returns a new selected language if possible.
get_tooltip_data
If set, will return a list for the tooltip (that will also be put together in a Join())
+However, if returning null, the tooltip will not be shown as #14942 changed it.
+
Though no tooltips will be created for atoms that have tooltips = FALSE
grant_all_languages
Grants every language.
grant_language
Grants the supplied language and sets omnitongue true.
has_language
Checks if atom has the language. If spoken is true, only checks if atom can speak the language.
mouse_buckle_handling
Does some typechecks and then calls user_buckle_mob
+
Arguments:
+M - The mob being buckled to src
+user - The mob buckling M to src
newtonian_move
Only moves the object if it's under no gravity
on_enter_storage
called when this atom is added into a storage item, which is passed on as S. The loc variable is already set to the storage item.
on_exit_storage
called when this atom is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called.
point_at
Point at an atom
+
Intended to enable and standardise the pointing animation for all atoms
+
Not intended as a replacement for the mob verb
quoteless_say_quote
Quirky citadel proc for our custom sayverbs to strip the verb out. Snowflakey as hell, say rewrite 3.0 when?
recursive_pulled_glidesize_update
Recursively set glide size for atom's pulled things
remove_all_languages
Removes every language and sets omnitongue false.
remove_blocked_language
Removes a language from the blocked language list.
remove_language
Removes a single language.
say_emphasis
Scans the input sentence for speech emphasis modifiers, notably |italics|, +bold+, and underline -mothblocks
setGrabState
Updates the grab state of the movable
+
This exists to act as a hook for behaviour
setMovetype
Proc to modify the movement_type and hook behavior associated with it changing.
set_anchored
Sets the anchored var and returns if it was sucessfully changed or not.
set_bark
Sets the vocal bark for the atom, using the bark's ID
set_pulledby
Reports the event of the change in value of the pulledby variable.
throw_at
If this returns FALSE then callback will not be called.
update_atom_languages
Empties out the atom specific languages and updates them according to the current atoms language holder.
+As a side effect, it also creates missing language holders in the process.
\ No newline at end of file
diff --git a/atom/movable/emissive_blocker.html b/atom/movable/emissive_blocker.html
new file mode 100644
index 000000000000..9419fa8e1a23
--- /dev/null
+++ b/atom/movable/emissive_blocker.html
@@ -0,0 +1,5 @@
+/atom/movable/emissive_blocker - SPLURT Station 13SPLURT Station 13 - Modules - Types
emissive_blocker
Internal atom that copies an appearance on to the blocker plane
+
Copies an appearance vis render_target and render_source on to the emissive blocking plane.
+This means that the atom in question will block any emissive sprites.
+This should only be used internally. If you are directly creating more of these, you're
+almost guaranteed to be doing something wrong.
\ No newline at end of file
diff --git a/atom/movable/fov_holder.html b/atom/movable/fov_holder.html
new file mode 100644
index 000000000000..4dd63eef7abc
--- /dev/null
+++ b/atom/movable/fov_holder.html
@@ -0,0 +1,2 @@
+/atom/movable/fov_holder - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
fov_holder
The shadow cone's mask and visual images holder which can't locate inside the mob,
+lest they inherit the mob opacity and cause a lot of hindrance
Prevents people from moving these after creation, because they shouldn't be.
Proc Details
Destroy
Last but not least, these shouldn't be deleted by anything but the component itself
forceMove
Prevents people from moving these after creation, because they shouldn't be.
\ No newline at end of file
diff --git a/atom/movable/screen.html b/atom/movable/screen.html
new file mode 100644
index 000000000000..70b7a719549d
--- /dev/null
+++ b/atom/movable/screen.html
@@ -0,0 +1,11 @@
+/atom/movable/screen - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Sets screen_loc of this screen object, in form of point coordinates,
+with optional pixel offset (px, py).
Var Details
assigned_map
Map name assigned to this object.
+Automatically set by /client/proc/add_obj_to_map.
del_on_map_removal
Mark this object as garbage-collectible after you clean the map
+it was registered on.
+
This could probably be changed to be a proc, for conditional removal.
+But for now, this works.
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
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
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.
\ No newline at end of file
diff --git a/atom/movable/screen/action_landing.html b/atom/movable/screen/action_landing.html
new file mode 100644
index 000000000000..7771f9938364
--- /dev/null
+++ b/atom/movable/screen/action_landing.html
@@ -0,0 +1 @@
+/atom/movable/screen/action_landing - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
action_landing
Exists so you have a place to put your buttons when you move them around
\ No newline at end of file
diff --git a/atom/movable/screen/admin_popup.html b/atom/movable/screen/admin_popup.html
new file mode 100644
index 000000000000..154db68f97f7
--- /dev/null
+++ b/atom/movable/screen/admin_popup.html
@@ -0,0 +1 @@
+/atom/movable/screen/admin_popup - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The world.time when the last color update occurred.
Var Details
last_color_index
The last color chosen in the animation, sourced from the static list colors.
last_update_time
The world.time when the last color update occurred.
\ No newline at end of file
diff --git a/atom/movable/screen/alert.html b/atom/movable/screen/alert.html
new file mode 100644
index 000000000000..39ede1740b05
--- /dev/null
+++ b/atom/movable/screen/alert.html
@@ -0,0 +1 @@
+/atom/movable/screen/alert - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Boolean. If TRUE, the Click() proc will attempt to Click() on the master first if there is a master.
Var Details
click_master
Boolean. If TRUE, the Click() proc will attempt to Click() on the master first if there is a master.
\ No newline at end of file
diff --git a/atom/movable/screen/alert/give.html b/atom/movable/screen/alert/give.html
new file mode 100644
index 000000000000..0758fb05d2fa
--- /dev/null
+++ b/atom/movable/screen/alert/give.html
@@ -0,0 +1,9 @@
+/atom/movable/screen/alert/give - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
An overrideable proc used simply to hand over the item when claimed, this is a proc so that high-fives can override them since nothing is actually transferred
Handles assigning most of the variables for the alert that pops up when an item is offered
Proc Details
check_in_range
Simply checks if the other person is still in range
handle_transfer
An overrideable proc used simply to hand over the item when claimed, this is a proc so that high-fives can override them since nothing is actually transferred
setup
Handles assigning most of the variables for the alert that pops up when an item is offered
+
Handles setting the name, description and icon of the alert and tracking the person giving
+and the item being offered, also registers a signal that removes the alert from anyone who moves away from the offerer
+Arguments:
+
+
taker - The person receiving the alert
+
offerer - The person giving the alert and item
+
receiving - The item being given by the offerer
+
\ No newline at end of file
diff --git a/atom/movable/screen/alert/give/highfive.html b/atom/movable/screen/alert/give/highfive.html
new file mode 100644
index 000000000000..e0fdbbf63125
--- /dev/null
+++ b/atom/movable/screen/alert/give/highfive.html
@@ -0,0 +1 @@
+/atom/movable/screen/alert/give/highfive - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
If someone examine_more's the offerer while they're trying to pull a too-slow, it'll tip them off to the offerer's trickster ways
too_slow_p1
If the person who offered the high five no longer has it when we try to accept it, we get pranked hard
too_slow_p2
Part two of the ultimate prank
\ No newline at end of file
diff --git a/atom/movable/screen/alert/status_effect/pregnancy.html b/atom/movable/screen/alert/status_effect/pregnancy.html
new file mode 100644
index 000000000000..665e0f547ea8
--- /dev/null
+++ b/atom/movable/screen/alert/status_effect/pregnancy.html
@@ -0,0 +1,4 @@
+/atom/movable/screen/alert/status_effect/pregnancy - SPLURT Station 13SPLURT Station 13 - Modules - Types
pregnancy
Who is the liar but he who denies that Jesus is the Christ? This is the antichrist, he who denies the Father and the Son.
+
+
John 2:22
+
\ No newline at end of file
diff --git a/atom/movable/screen/button_palette.html b/atom/movable/screen/button_palette.html
new file mode 100644
index 000000000000..aff99acca444
--- /dev/null
+++ b/atom/movable/screen/button_palette.html
@@ -0,0 +1 @@
+/atom/movable/screen/button_palette - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Id of any currently running timers that set our color matrix
Var Details
color_timer_id
Id of any currently running timers that set our color matrix
\ No newline at end of file
diff --git a/atom/movable/screen/combattoggle.html b/atom/movable/screen/combattoggle.html
new file mode 100644
index 000000000000..8af7ac738f91
--- /dev/null
+++ b/atom/movable/screen/combattoggle.html
@@ -0,0 +1 @@
+/atom/movable/screen/combattoggle - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Wheter combat mode is enabled or not, so we don't have to store a reference.
Proc Details
Click
Wheter combat mode is enabled or not, so we don't have to store a reference.
\ No newline at end of file
diff --git a/atom/movable/screen/fullscreen.html b/atom/movable/screen/fullscreen.html
new file mode 100644
index 000000000000..5815635a9f98
--- /dev/null
+++ b/atom/movable/screen/fullscreen.html
@@ -0,0 +1 @@
+/atom/movable/screen/fullscreen - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/atom/movable/screen/fullscreen/scaled.html b/atom/movable/screen/fullscreen/scaled.html
new file mode 100644
index 000000000000..b596daf401be
--- /dev/null
+++ b/atom/movable/screen/fullscreen/scaled.html
@@ -0,0 +1 @@
+/atom/movable/screen/fullscreen/scaled - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/atom/movable/screen/inventory.html b/atom/movable/screen/inventory.html
new file mode 100644
index 000000000000..3535273cdb76
--- /dev/null
+++ b/atom/movable/screen/inventory.html
@@ -0,0 +1 @@
+/atom/movable/screen/inventory - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The identifier for the slot. It has nothing to do with ID cards.
Var Details
icon_empty
Icon when empty. For now used only by humans.
icon_full
Icon when contains an item. For now used only by humans.
object_overlay
The overlay when hovering over with an item in your hand
slot_id
The identifier for the slot. It has nothing to do with ID cards.
\ No newline at end of file
diff --git a/atom/movable/screen/lobby.html b/atom/movable/screen/lobby.html
new file mode 100644
index 000000000000..a2a2bcd2f024
--- /dev/null
+++ b/atom/movable/screen/lobby.html
@@ -0,0 +1 @@
+/atom/movable/screen/lobby - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Whether this HUD element can be hidden from the client's "screen" (moved off-screen) or not
Proc Details
SlowInit
Run sleeping actions after initialize
collapse_button
Animates moving the button off-screen
expand_button
Animates moving the button back into place
\ No newline at end of file
diff --git a/atom/movable/screen/lobby/button.html b/atom/movable/screen/lobby/button.html
new file mode 100644
index 000000000000..bc8d3023b152
--- /dev/null
+++ b/atom/movable/screen/lobby/button.html
@@ -0,0 +1 @@
+/atom/movable/screen/lobby/button - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Updates the button's status: TRUE to enable interaction with the button, FALSE to disable
Var Details
enabled
Is the button currently enabled?
highlighted
Is the button currently being hovered over with the mouse?
owner
The ref of the mob that owns this button. Only the owner can click on it.
Proc Details
set_button_status
Updates the button's status: TRUE to enable interaction with the button, FALSE to disable
\ No newline at end of file
diff --git a/atom/movable/screen/lobby/button/bottom/poll.html b/atom/movable/screen/lobby/button/bottom/poll.html
new file mode 100644
index 000000000000..0e1e28173b7b
--- /dev/null
+++ b/atom/movable/screen/lobby/button/bottom/poll.html
@@ -0,0 +1 @@
+/atom/movable/screen/lobby/button/bottom/poll - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Whether the button should have a New Poll notification overlay
Var Details
new_poll
Whether the button should have a New Poll notification overlay
\ No newline at end of file
diff --git a/atom/movable/screen/lobby/button/collapse.html b/atom/movable/screen/lobby/button/collapse.html
new file mode 100644
index 000000000000..f03386820b48
--- /dev/null
+++ b/atom/movable/screen/lobby/button/collapse.html
@@ -0,0 +1,5 @@
+/atom/movable/screen/lobby/button/collapse - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Extends the button back to its usual spot
+Sends a signal on the hud for the menu hud elements to listen to
Proc Details
collapse_menu
Moves the button to the top of the screen, leaving only the screen part in view
+Sends a signal on the hud for the menu hud elements to listen to
expand_menu
Extends the button back to its usual spot
+Sends a signal on the hud for the menu hud elements to listen to
\ No newline at end of file
diff --git a/atom/movable/screen/lobby/button/ready.html b/atom/movable/screen/lobby/button/ready.html
new file mode 100644
index 000000000000..cfddd26dee84
--- /dev/null
+++ b/atom/movable/screen/lobby/button/ready.html
@@ -0,0 +1 @@
+/atom/movable/screen/lobby/button/ready - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/atom/movable/screen/lobby/shutter.html b/atom/movable/screen/lobby/shutter.html
new file mode 100644
index 000000000000..7d939f200f32
--- /dev/null
+++ b/atom/movable/screen/lobby/shutter.html
@@ -0,0 +1 @@
+/atom/movable/screen/lobby/shutter - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Sets up the shutter pulling down and up. It's the same animation for both collapsing and expanding the menu.
Proc Details
setup_shutter_animation
Sets up the shutter pulling down and up. It's the same animation for both collapsing and expanding the menu.
\ No newline at end of file
diff --git a/atom/movable/screen/movable.html b/atom/movable/screen/movable.html
new file mode 100644
index 000000000000..0bc7b831ca50
--- /dev/null
+++ b/atom/movable/screen/movable.html
@@ -0,0 +1 @@
+/atom/movable/screen/movable - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Takes mouse parmas as input, returns a string representing the appropriate mouse position
Proc Details
mouse_params_to_position
Takes mouse parmas as input, returns a string representing the appropriate mouse position
\ No newline at end of file
diff --git a/atom/movable/screen/movable/action_button.html b/atom/movable/screen/movable/action_button.html
new file mode 100644
index 000000000000..a6695483dd0b
--- /dev/null
+++ b/atom/movable/screen/movable/action_button.html
@@ -0,0 +1,3 @@
+/atom/movable/screen/movable/action_button - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Where we are currently placed on the hud. SCRN_OBJ_DEFAULT asks the linked action what it thinks
Var Details
id
A unique bitflag, combined with the name of our linked action this lets us persistently remember any user changes to our position
last_hovored_ref
A weakref of the last thing we hovered over
+God I hate how dragging works
location
Where we are currently placed on the hud. SCRN_OBJ_DEFAULT asks the linked action what it thinks
\ No newline at end of file
diff --git a/atom/movable/screen/palette_scroll.html b/atom/movable/screen/palette_scroll.html
new file mode 100644
index 000000000000..564049b80112
--- /dev/null
+++ b/atom/movable/screen/palette_scroll.html
@@ -0,0 +1,3 @@
+/atom/movable/screen/palette_scroll - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
How should we move the palette's actions?
+Positive scrolls down the list, negative scrolls back
Var Details
scroll_direction
How should we move the palette's actions?
+Positive scrolls down the list, negative scrolls back
\ No newline at end of file
diff --git a/atom/movable/screen/parallax_layer.html b/atom/movable/screen/parallax_layer.html
new file mode 100644
index 000000000000..8774d324a4bb
--- /dev/null
+++ b/atom/movable/screen/parallax_layer.html
@@ -0,0 +1 @@
+/atom/movable/screen/parallax_layer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Return "natural" overlays, as we're goin to do some fuckery to overlays above.
Var Details
absolute
absolute - always determine shift x/y as a function of real x/y instead of allowing for relative scroll.
center_x
normal centered x
center_y
normal centered y
dynamic_self_tile
dynamic self tile - tile to our view size. set this to false for static parallax layers.
map_id
map id
offset_x
current cached offset x
offset_y
current cached offset y
parallax_intensity
parallax level required to see this
queued_animation
queued animation timerid
speed
pixel x/y shift per real x/y
view_current
current view we're adapted to
Proc Details
GetOverlays
Return "natural" overlays, as we're goin to do some fuckery to overlays above.
\ No newline at end of file
diff --git a/atom/movable/screen/storage/volumetric_box/center.html b/atom/movable/screen/storage/volumetric_box/center.html
new file mode 100644
index 000000000000..8ea300d10364
--- /dev/null
+++ b/atom/movable/screen/storage/volumetric_box/center.html
@@ -0,0 +1 @@
+/atom/movable/screen/storage/volumetric_box/center - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Sets the size of this box screen object and regenerates its left/right borders. This includes the actual border's size!
Proc Details
set_pixel_size
Sets the size of this box screen object and regenerates its left/right borders. This includes the actual border's size!
\ No newline at end of file
diff --git a/atom/movable/screen/wanted.html b/atom/movable/screen/wanted.html
new file mode 100644
index 000000000000..3422714d96ac
--- /dev/null
+++ b/atom/movable/screen/wanted.html
@@ -0,0 +1 @@
+/atom/movable/screen/wanted - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Wanted level, affects the hud icon. Level 0 is default, and the level 0 icon is blank, so in case of no families gamemode (and thus no wanted level), this HUD element will never appear.
Var Details
cops_arrived
Boolean, have the cops arrived? If so, the icon stops changing and remains the same.
level
Wanted level, affects the hud icon. Level 0 is default, and the level 0 icon is blank, so in case of no families gamemode (and thus no wanted level), this HUD element will never appear.
\ No newline at end of file
diff --git a/atom/movable/summon_weapon_effect.html b/atom/movable/summon_weapon_effect.html
new file mode 100644
index 000000000000..283640461f52
--- /dev/null
+++ b/atom/movable/summon_weapon_effect.html
@@ -0,0 +1 @@
+/atom/movable/summon_weapon_effect - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/client.html b/client.html
new file mode 100644
index 000000000000..95d0adc4167a
--- /dev/null
+++ b/client.html
@@ -0,0 +1,51 @@
+/client - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
moused over objects, currently capped at 7. this is awful, and should be replaced with a component to track it using signals for parrying at some point.
These next two vars are to apply movement for keypresses and releases made while move delayed.
+Because discarding that input makes the game less responsive.
+On next move, add this dir to the move that would otherwise be done
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
Fully returns a player to lobby, allowing them to bypass all respawn restrictions
+Works on ghosts or new players (lobby players)
+If a lobby player is selected, their restrictions are removed.
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.
Redirect proc that makes it easier to call the unlock achievement proc. Achievement type is the typepath to the award, user is the mob getting the award, and value is an optional variable used for leaderboard value increments
Autoclick variable referencing the associated item.
admin_music_volume
Admin music volume, from 0 to 1.
autobunker_last_try
last time they tried to do an autobunker auth
block_parry_hinted
Should go in persistent round player data sometime. This tracks what items have already warned the user on pickup that they can block/parry.
click_catcher
Click catcher
click_intercept_time
Time when the click was intercepted
clicklimiter
Used for limiting the rate of clicks sends by the client to avoid abuse
client_keysend_amount
Amount of keydowns in the last keysend checking interval
completed_asset_jobs
List of all completed blocking send jobs awaiting acknowledgement by send_asset
credits
lazy list of all credit object bound to this client
cryo_warned
When was the last time we warned them about not cryoing without an ahelp, set to -5 minutes so that rounstart cryo still warns
holder
Contains admin info. Null if client is not an admin.
keys_held
Keys currently held
keysend_tripped
When set to true, user will be autokicked if they trip the keysends in a second limit again
last_activity
AFK tracking
last_asset_job
Last asset send job id.
last_click
Last time we Click()ed. No clicking twice in one tick!
last_macro_fix
Last time they used fix macros
mouseParams
Used in MouseDrag to preserve the original mouse click parameters
mouse_location_ref
Used in MouseDrag to preserve the last mouse-entered location. Weakref
mouse_object_ref
Used in MouseDrag to preserve the last mouse-entered object. Weakref
mouse_override_icon
used to override the mouse cursor so it doesnt get reset
moused_over_objects
moused over objects, currently capped at 7. this is awful, and should be replaced with a component to track it using signals for parrying at some point.
movement_keys
custom movement keys for this client
navigation_images
Images of the path created by navigate().
next_keysend_reset
World tick time where client_keysend_amount will reset
next_keysend_trip_reset
World tick time where keysend_tripped will reset back to false
next_mousemove
The next point in time at which the client is allowed to send a mousemove() or mousedrag()
next_move_dir_add
These next two vars are to apply movement for keypresses and releases made while move delayed.
+Because discarding that input makes the game less responsive.
+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
panel_tabs
list of all tabs
parallax_holder
Parallax holder
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.
Autoclick list of two elements, first being the clicked thing, second being the parameters.
show_verb_panel
hides the byond verb panel as we use our own custom version
spell_tabs
list of tabs containing spells and abilities
stat_tab
our current tab
statbrowser_ready
whether our browser is ready or not yet
tgui_cache_reloaded
global
+
TRUE if cache was reloaded by tgui dev server at least once.
tgui_windows
global
+
Tracks open windows for a user.
tip_timer
Timers are now handled by clients, not by doing a mess on the item and multiple people overwriting a single timer on the object, have fun.
total_count_reset
Next tick to reset the total message counter
total_message_count
How many messages sent in the last 10 seconds
verb_tabs
list of tabs containing verbs
view_size
viewsize datum for holding our view size
Proc Details
ForceAllKeysUp
Keyup's all keys held down.
NONSENSICAL_VERB_THAT_DOES_NOTHING
*sigh
Process_Grab
Process_Grab(): checks for grab, attempts to break if so. Return TRUE to prevent movement.
Process_Incorpmove
Process_Incorpmove
+Called by client/Move()
+Allows mobs to run though walls
admin_cmd_remove_ghost_respawn_timer
Allows a ghost to bypass respawn delay without lifting respawn restrictions
admin_cmd_respawn_return_to_lobby
Fully returns a player to lobby, allowing them to bypass all respawn restrictions
+Works on ghosts or new players (lobby players)
+If a lobby player is selected, their restrictions are removed.
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.
award_heart
Redirect proc that makes it easier to get the status of an achievement. Achievement type is the typepath to the award.
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.
+
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.
close_popup
Closes a popup.
create_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.
fix_tgui_panel
tgui panel / chat troubleshooting verb
forceEvent
Allows an admin to force an event
get_award_status
Redirect proc that makes it easier to get the status of an achievement. Achievement type is the typepath to the award.
give_award
Redirect proc that makes it easier to call the unlock achievement proc. Achievement type is the typepath to the award, user is the mob getting the award, and value is an optional variable used for leaderboard value increments
handle_popup_close
When the popup closes in any way (player or proc call) it calls this.
init_verbs
compiles a full list of verbs and sends it to the browser
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.
send_resources
Send resources to the client.
+Sends both game resources and browser assets.
set_tab
verbs that send information from the browser UI
setup_popup
Create the popup, and get it ready for generic use by giving
+it a background.
+
Width and height are multiplied by 64 by default.
uiclose
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_clickcatcher
Makes a clickcatcher if necessary, and ensures it's fit to our size.
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
+
+
Returns list of special keybind in key = Mod1Mod2Mod3Key format, NOT Mod1+Mod2+Mod3+Key format.
\ No newline at end of file
diff --git a/code/__DEFINES/DNA.html b/code/__DEFINES/DNA.html
new file mode 100644
index 000000000000..d599bc201499
--- /dev/null
+++ b/code/__DEFINES/DNA.html
@@ -0,0 +1,3 @@
+code/__DEFINES/DNA.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Used for determining which wounds are applicable to this species.
+if we have flesh (can suffer slash/piercing/burn wounds, requires they don't have NOBLOOD)
Used for determining which wounds are applicable to this species.
+if we have flesh (can suffer slash/piercing/burn wounds, requires they don't have NOBLOOD)
STANDARD_ORGAN_THRESHOLD
organ defines
\ No newline at end of file
diff --git a/code/__DEFINES/MC.html b/code/__DEFINES/MC.html
new file mode 100644
index 000000000000..fb7ea191ff9a
--- /dev/null
+++ b/code/__DEFINES/MC.html
@@ -0,0 +1,20 @@
+code/__DEFINES/MC.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
code/__DEFINES/MC.dm
SubSystem flags (Please design any new flags so that the default is off, to make adding flags to subsystems easier)
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
Treat wait as a tick count, not DS, run every wait ticks.
+(also forces it to run first in the tick (unless SS_BACKGROUND))
+(implies all runlevels because of how it works)
+This is designed for basically anything that works as a mini-mc (like SStimer)
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.
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
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_NO_TICK_CHECK
subsystem does not tick check, and should not run unless there is enough time (or its running behind (unless background))
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))
+(implies all runlevels because of how it works)
+This is designed for basically anything that works as a mini-mc (like SStimer)
\ No newline at end of file
diff --git a/code/__DEFINES/_flags/_flags.html b/code/__DEFINES/_flags/_flags.html
new file mode 100644
index 000000000000..a2aa3d412459
--- /dev/null
+++ b/code/__DEFINES/_flags/_flags.html
@@ -0,0 +1,3 @@
+code/__DEFINES/_flags/_flags.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
33554431 (2^24 - 1) is the maximum value our bitflags can reach.
Define Details
ABDUCTOR_PROOF
If Abductors are unable to teleport in with their observation console
ADMIN_SPAWNED_1
was this spawned by an admin? used for stat tracking stuff.
BLOBS_ALLOWED
If blobs can spawn there and if it counts towards their score.
BLOCK_FACE_ATOM_1
Early returns mob.face_atom()
BLOCK_SUICIDE
If people are allowed to suicide in it. Mostly for OOC stuff like minigames
CAN_BE_DIRTY_1
If a turf can be made dirty at roundstart. This is also used in areas.
CAVES_ALLOWED
If mining tunnel generation is allowed in this area
CHECK_MOBILITY
any flag
CONDUCT_1
Conducts electricity (metal etc.).
CRAWLING
Applied if you're crawling around on the ground/resting.
CULTMAGIC_BYPASS
If cultists can use abilities in this area but the area is not on station.
CULT_PERMITTED
If blood cultists can draw runes or build structures on this AREA.
DEFAULT_RICOCHET_1
Projectiles will use default chance-based ricochet handling on things with this.
DIRFLIP
Turns the dir by 180 degrees
EWCOMPONENT
True if the dir is east/west, false otherwise
EWDIRFLIP
Flips the dir for east/west directions
EXCITED_CLEANUP_1
Should this tile be cleaned up and reinserted into an excited group?
FLORA_ALLOWED
If flora are allowed to spawn in this area randomly through tunnel generation
HAS_CONTEXTUAL_SCREENTIPS_1
Whether or not this atom has contextual screentips when hovered OVER
HEAR_1
This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not.
HIDDEN_AREA
Hides area from player Teleport function.
INITIALIZED_1
Whether /atom/Initialize() has already run for the object.
ISDIAGONALDIR
Returns true if the dir is diagonal, false otherwise
LETPASSTHROW
Let thrown things past us. ONLY MEANINGFUL ON pass_flags_self!
MAX_BITFLAG_DIGITS
33554431 (2^24 - 1) is the maximum value our bitflags can reach.
MEGAFAUNA_SPAWN_ALLOWED
If megafauna can be spawned by natural random generation
MOBILITY_HOLD
can hold non-nodropped items voluntarily
MOBILITY_MOVE
can move
MOBILITY_PICKUP
can pickup items
MOBILITY_PULL
can pull things
MOBILITY_RESIST
Can resist out of buckling, grabs, cuffs, etc, in the usual order (buckle --> cuffs --> grab)
MOBILITY_STAND
can, and is, standing up.
MOBILITY_STORAGE
can use storage item
MOBILITY_UI
can use interfaces like consoles
MOBILITY_USE
can use items and interact with world objects like opening closets/etc
MOB_SPAWN_ALLOWED
If mobs can be spawned by natural random generation
NODECONSTRUCT_1
For machines and structures that should not break into parts, eg, holodeck stuff.
NOTELEPORT
Are you forbidden from teleporting to the area? (centcom, mobs, wizard, hand teleporter)
NO_ALERTS
If an area should be hidden from power consoles, power/atmosphere alerts, etc.
NO_LAVA_GEN_1
Blocks lava rivers being generated on the turf
NO_RUINS_1
Blocks ruins spawning on the turf
NO_SCREENTIPS_1
Whether or not this atom shows screentips when hovered over
NSCOMPONENT
True if the dir is north or south, false therwise
NSDIRFLIP
Flips the dir for north/south directions
ON_BORDER_1
Item has priority to check when entering or leaving.
OVERLAY_QUEUED_1
Atom queued to SSoverlay.
PHASING
When moving, will Bump()/Cross()/Uncross() everything, but won't stop or Bump() anything.
PREVENT_CLICK_UNDER_1
Prevent clicking things below it on the same turf eg. doors/ fulltile windows.
PREVENT_CONTENTS_EXPLOSION_1
should not get harmed if this gets caught by an explosion?
RICOCHET_HARD
If the thing can reflect matter (bullets/bomb shrapnel)
RICOCHET_SHINY
If the thing can reflect light (lasers/energy)
SHOCKED_1
Prevents mobs from getting chainshocked by teslas and the supermatter.
UNIQUE_AREA
If false, loading multiple maps with this area type will create multiple instances.
VALID_TERRITORY
/////////////Area flags\\\\\\\
+If it's a valid territory for cult summoning or the CRAB-17 phone to spawn
XENOBIOLOGY_COMPATIBLE
Can the Xenobio management console transverse this area by default?
\ No newline at end of file
diff --git a/code/__DEFINES/_flags/do_after.html b/code/__DEFINES/_flags/do_after.html
new file mode 100644
index 000000000000..dd78230fc04c
--- /dev/null
+++ b/code/__DEFINES/_flags/do_after.html
@@ -0,0 +1 @@
+code/__DEFINES/_flags/do_after.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Can do the action even if the mob is incapacitated (ex. handcuffed)
Define Details
IGNORE_HELD_ITEM
Can do the action even if the item is no longer being held
IGNORE_INCAPACITATED
Can do the action even if the mob is incapacitated (ex. handcuffed)
IGNORE_TARGET_IN_DOAFTERS
Can do the action even if target is not added to doafters
IGNORE_TARGET_LOC_CHANGE
Can do the action even if the target moves location
IGNORE_USER_LOC_CHANGE
Can do the action even if mob moves location
\ No newline at end of file
diff --git a/code/__DEFINES/_flags/item_flags.html b/code/__DEFINES/_flags/item_flags.html
new file mode 100644
index 000000000000..f598512507e5
--- /dev/null
+++ b/code/__DEFINES/_flags/item_flags.html
@@ -0,0 +1 @@
+code/__DEFINES/_flags/item_flags.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
This item can be used in the directional blocking system. Only a basic check used to determine if we should proceed with directional block handling at all.
Define Details
ABSTRACT
for all things that are technically items but used for various different stuff
DROPDEL
When dropped, it calls qdel on itself
FORCE_STRING_OVERRIDE
used for tooltips
IMMUTABLE_SLOW
When players should not be able to change the slowdown of the item (Speed potions, ect)
IN_INVENTORY
is this item equipped into an inventory slot or hand of a mob? used for tooltips
ITEM_CAN_BLOCK
This item can be used in the directional blocking system. Only a basic check used to determine if we should proceed with directional block handling at all.
ITEM_CAN_PARRY
This item can be used to parry. Only a basic check used to determine if we should proceed with parry chain at all.
NEEDS_PERMIT
Used by security bots to determine if this item is safe for public use.
NOBLUDGEON
when an item has this it produces no "X has been hit by Y with Z" message in the default attackby()
NO_MAT_REDEMPTION
Stops you from putting things like an RCD or other items into an ORM or protolathe for materials.
NO_UNIFORM_REQUIRED
Can be worn on certain slots (currently belt and id) that would otherwise require an uniform.
SURGICAL_TOOL
Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes)
\ No newline at end of file
diff --git a/code/__DEFINES/_flags/obj_flags.html b/code/__DEFINES/_flags/obj_flags.html
new file mode 100644
index 000000000000..26de492dab05
--- /dev/null
+++ b/code/__DEFINES/_flags/obj_flags.html
@@ -0,0 +1 @@
+code/__DEFINES/_flags/obj_flags.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Flags for the pod_flags var on /obj/structure/closet/supplypod
Define Details
CLOTHING_PRISTINE
Integrity defines for clothing (not flags but close enough)
EXAMINE_SKIP
Makes the Examine proc not read out this item.
FIRST_SOUNDS
Flags for the pod_flags var on /obj/structure/closet/supplypod
ITEM_HAS_CONTEXTUAL_SCREENTIPS
Has contextual screentips when HOVERING OVER OTHER objects
\ No newline at end of file
diff --git a/code/__DEFINES/_flags/return_values.html b/code/__DEFINES/_flags/return_values.html
new file mode 100644
index 000000000000..425a3a6ae70d
--- /dev/null
+++ b/code/__DEFINES/_flags/return_values.html
@@ -0,0 +1,5 @@
+code/__DEFINES/_flags/return_values.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
This attack should discard last_action instead of flushing (storing) it). You should probably know what you're doing if you use this considering this is how clickdelay is enforced.
There are a number of "safety nets" intended to default-handle clickdelay. Return this flag to bypass ALL of them. Be sure
+you know EXACTLY what you are doing!
dropped() relocated this item, return FALSE for doUnEquip.
Define Details
ATTACK_IGNORE_ACTION
Attack should not set next action even if the atom wants it to be an action
ATTACK_IGNORE_CLICKDELAY
Attack should not at all check last_action/attack_hand_speed even if the atom wants to
ATTACK_IS_PARRY_COUNTERATTACK
This attack is from a parry counterattack
DISCARD_LAST_ACTION
This attack should discard last_action instead of flushing (storing) it). You should probably know what you're doing if you use this considering this is how clickdelay is enforced.
INTERRUPT_UNARMED_ATTACK
Only used with UnarmedAttack(). Interrupts unarmed attack from progressing.
ITEM_RELOCATED_BY_DROPPED
dropped() relocated this item, return FALSE for doUnEquip.
NO_AUTO_CLICKDELAY_HANDLING
There are a number of "safety nets" intended to default-handle clickdelay. Return this flag to bypass ALL of them. Be sure
+you know EXACTLY what you are doing!
STOP_ATTACK_PROC_CHAIN
//////// ATTACKCHAIN_FLAGS ////////////
+Stop the attack chain if still in melee_attack_chain()
\ No newline at end of file
diff --git a/code/__DEFINES/_flags/shields.html b/code/__DEFINES/_flags/shields.html
new file mode 100644
index 000000000000..50a71537d17c
--- /dev/null
+++ b/code/__DEFINES/_flags/shields.html
@@ -0,0 +1 @@
+code/__DEFINES/_flags/shields.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
You can shieldbash target someone on the ground for ground slam
SHIELD_BASH_GROUND_SLAM_DISARM
Shield bashing someone on the ground will disarm
SHIELD_BASH_WALL_DISARM
Shield bash disarm on wall hit
SHIELD_BASH_WALL_KNOCKDOWN
Shield bash knockdown on wall hit
SHIELD_CAN_BASH
Can shield bash
SHIELD_DISABLER_DISRUPTED
Disabler and other stamina based energy weapons boost the damage done to the sheld
SHIELD_ENERGY_STRONG
Strong against energy, weak against kinetic
SHIELD_ENERGY_WEAK
Flammable, takes more damage from fire
SHIELD_KINETIC_STRONG
Strong against kinetic, weak against energy
SHIELD_KINETIC_WEAK
Fragile, takes more damage from brute
SHIELD_NO_MELEE
Doesn't block melee attacks whatsoever
SHIELD_NO_RANGED
Doesn't block ranged attacks whatsoever
SHIELD_TRANSPARENT
Transparent, let beams pass
\ No newline at end of file
diff --git a/code/__DEFINES/_helpers.html b/code/__DEFINES/_helpers.html
new file mode 100644
index 000000000000..fa741480bfeb
--- /dev/null
+++ b/code/__DEFINES/_helpers.html
@@ -0,0 +1,5 @@
+code/__DEFINES/_helpers.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
A null statement to guard against EmptyBlock lint without necessitating the use of pass()
+Used to avoid proc-call overhead. But use sparingly. Probably pointless in most places.
Define Details
EMPTY_BLOCK_GUARD
A null statement to guard against EmptyBlock lint without necessitating the use of pass()
+Used to avoid proc-call overhead. But use sparingly. Probably pointless in most places.
SLEEP_NOT_DEL
Sleep if we haven't been deleted
+Otherwise, return
STRINGIFY
Stringifies whatever you put into it.
UNTIL
Until a condition is true, sleep
subtypesof
subtypesof(), typesof() without the parent path
text_ref
Takes a datum as input, returns its ref string
\ No newline at end of file
diff --git a/code/__DEFINES/_tick.html b/code/__DEFINES/_tick.html
new file mode 100644
index 000000000000..b94573b9ef12
--- /dev/null
+++ b/code/__DEFINES/_tick.html
@@ -0,0 +1 @@
+code/__DEFINES/_tick.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
runs stoplag if tick_usage is above 95, for high priority usage
Define Details
CHECK_TICK
runs stoplag if tick_usage is above the limit
CHECK_TICK_HIGH_PRIORITY
runs stoplag if tick_usage is above 95, for high priority usage
MAPTICK_MC_MIN_RESERVE
Percentage of tick to leave for master controller to run
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
\ No newline at end of file
diff --git a/code/__DEFINES/admin.html b/code/__DEFINES/admin.html
new file mode 100644
index 000000000000..78c535ac41bb
--- /dev/null
+++ b/code/__DEFINES/admin.html
@@ -0,0 +1 @@
+code/__DEFINES/admin.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
for asay pings, this is the index in the return list for /proc/check_admin_pings that contains the message modified with underlines for the spotted names
Define Details
ADMINSAY_PING_UNDERLINE_NAME_INDEX
for asay pings, this is the index in the return list for /proc/check_admin_pings that contains the message modified with underlines for the spotted names
\ No newline at end of file
diff --git a/code/__DEFINES/admin/keybindings.html b/code/__DEFINES/admin/keybindings.html
new file mode 100644
index 000000000000..c800a9201393
--- /dev/null
+++ b/code/__DEFINES/admin/keybindings.html
@@ -0,0 +1 @@
+code/__DEFINES/admin/keybindings.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Max keys that can be held down at once by a client
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
SKIN_MACROSET_CLASSIC_HOTKEYS
Macroset name of classic hotkey mode
SKIN_MACROSET_CLASSIC_INPUT
Macroset name of classic input mode
SKIN_MACROSET_HOTKEYS
Macroset name of hotkeys/keybind only/modern mode
\ No newline at end of file
diff --git a/code/__DEFINES/alarm.html b/code/__DEFINES/alarm.html
new file mode 100644
index 000000000000..346ff05155c5
--- /dev/null
+++ b/code/__DEFINES/alarm.html
@@ -0,0 +1 @@
+code/__DEFINES/alarm.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Sent by motion detecting cameras when they well, detect motion
Define Details
ALARM_ATMOS
Sent by air alarms, indecates something wrong with thier attached atmosphere
ALARM_BURGLAR
Sent by display cases when they're broken into
ALARM_CAMERA
Sent by cameras when they're disabled in some manner
ALARM_FIRE
Sent by fire alarms when they are toggled
ALARM_MOTION
Sent by motion detecting cameras when they well, detect motion
ALARM_POWER
Sent by apcs when their power starts to fail
\ No newline at end of file
diff --git a/code/__DEFINES/antagonists.html b/code/__DEFINES/antagonists.html
new file mode 100644
index 000000000000..34c2f729537b
--- /dev/null
+++ b/code/__DEFINES/antagonists.html
@@ -0,0 +1,5 @@
+code/__DEFINES/antagonists.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
The normal cost of an uplink implant; used for calcuating how many
+TC to charge someone if they get a free implant through choice or
+because they have nothing else that supports an implant.
The dimensions of the antagonist preview icon. Will be scaled to this size.
Define Details
ANTAGONIST_PREVIEW_ICON_SIZE
The dimensions of the antagonist preview icon. Will be scaled to this size.
IS_MALF_AI
Checks if the given mob is a malf ai.
TELECRYSTALS_DEFAULT
How many telecrystals a normal traitor starts with
TELECRYSTALS_PRELOADED_IMPLANT
How many telecrystals mapper/admin only "precharged" uplink implant
UPLINK_IMPLANT_TELECRYSTAL_COST
The normal cost of an uplink implant; used for calcuating how many
+TC to charge someone if they get a free implant through choice or
+because they have nothing else that supports an implant.
\ No newline at end of file
diff --git a/code/__DEFINES/callbacks.html b/code/__DEFINES/callbacks.html
new file mode 100644
index 000000000000..63a889416f00
--- /dev/null
+++ b/code/__DEFINES/callbacks.html
@@ -0,0 +1 @@
+code/__DEFINES/callbacks.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__DEFINES/cargo.html b/code/__DEFINES/cargo.html
new file mode 100644
index 000000000000..4b177646633d
--- /dev/null
+++ b/code/__DEFINES/cargo.html
@@ -0,0 +1 @@
+code/__DEFINES/cargo.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
The baseline unit for cargo crates. Adjusting this will change the cost of all in-game shuttles, crate export values, bounty rewards, and all supply pack import values, as they use this as their unit of measurement.
Define Details
CARGO_CRATE_VALUE
The baseline unit for cargo crates. Adjusting this will change the cost of all in-game shuttles, crate export values, bounty rewards, and all supply pack import values, as they use this as their unit of measurement.
\ No newline at end of file
diff --git a/code/__DEFINES/color/colors.html b/code/__DEFINES/color/colors.html
new file mode 100644
index 000000000000..ae2072d6ed54
--- /dev/null
+++ b/code/__DEFINES/color/colors.html
@@ -0,0 +1,7 @@
+code/__DEFINES/color/colors.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
=== LGBT Colors Start ===
+Black and white colors will not be covered for the flags that do have them. We'll just use COLOR_WHITE and COLOR_BLACK.
+Colors for pride
=== LGBT Colors Start ===
+Black and white colors will not be covered for the flags that do have them. We'll just use COLOR_WHITE and COLOR_BLACK.
+Colors for pride
COLOR_SAMPLE_YELLOW
Colors for xenobiology vatgrowing
COLOR_THEME_MIDNIGHT
Main colors for UI themes
COLOR_TRANS_BLUE
Colors for transgender flag
LIGHT_COLOR_BLOOD_MAGIC
deep crimson
LIGHT_COLOR_BLUE
Cold, diluted blue. rgb(100, 150, 250)
LIGHT_COLOR_BLUEGREEN
Light blueish green. rgb(125, 225, 175)
LIGHT_COLOR_BROWN
Clear brown, mostly dim. rgb(150, 100, 50)
LIGHT_COLOR_CYAN
Diluted cyan. rgb(125, 225, 225)
LIGHT_COLOR_DARK_BLUE
Saturated blue. rgb(51, 117, 248)
LIGHT_COLOR_ELECTRIC_CYAN
Electric cyan rgb(0, 255, 255)
LIGHT_COLOR_ELECTRIC_GREEN
Electric green. rgb(0, 255, 0)
LIGHT_COLOR_FIRE
Warm orange color, leaning strongly towards yellow. rgb(250, 160, 25)
LIGHT_COLOR_FLARE
Bright, non-saturated red. Leaning slightly towards pink for visibility. rgb(250, 100, 75)
LIGHT_COLOR_GREEN
Some defines to generalise colours used in lighting.
+
Important note: colors can end up significantly different from the basic html picture, especially when saturated
+Bright but quickly dissipating neon green. rgb(100, 200, 100)
LIGHT_COLOR_HALOGEN
Barely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250)
LIGHT_COLOR_HOLY_MAGIC
slightly desaturated bright yellow.
LIGHT_COLOR_LAVA
Very warm yellow, leaning slightly towards orange. rgb(196, 138, 24)
LIGHT_COLOR_LAVENDER
Less-saturated light purple. rgb(155, 81, 255)
LIGHT_COLOR_LIGHT_CYAN
More-saturated cyan. rgb(64, 206, 255)
LIGHT_COLOR_ORANGE
Mostly pure orange. rgb(250, 150, 50)
LIGHT_COLOR_PINK
Diluted, mid-warmth pink. rgb(225, 125, 225)
LIGHT_COLOR_PURPLE
Light Purple. rgb(149, 44, 244)
LIGHT_COLOR_SLIME_LAMP
Weird color, between yellow and green, very slimy. rgb(175, 200, 75)
LIGHT_COLOR_TUNGSTEN
Extremely diluted yellow, close to skin color (for some reason). rgb(250, 225, 175)
LIGHT_COLOR_YELLOW
Dimmed yellow, leaning kaki. rgb(225, 225, 125)
\ No newline at end of file
diff --git a/code/__DEFINES/color/lum.html b/code/__DEFINES/color/lum.html
new file mode 100644
index 000000000000..9be267c042eb
--- /dev/null
+++ b/code/__DEFINES/color/lum.html
@@ -0,0 +1 @@
+code/__DEFINES/color/lum.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__DEFINES/combat.html b/code/__DEFINES/combat.html
new file mode 100644
index 000000000000..7d85717ff382
--- /dev/null
+++ b/code/__DEFINES/combat.html
@@ -0,0 +1,3 @@
+code/__DEFINES/combat.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
should the current-attack-damage be lower than the item force multiplied by this value,
+a "inefficiently" prefix will be added to the message.
Define Details
AUTOFIRE_STAT_ALERT
Gun is active and in the user hands. Wait until user does a valid click.
AUTOFIRE_STAT_FIRING
Gun is shooting.
AUTOFIRE_STAT_IDLE
Compatible firemode is in the gun. Wait until it's held in the user hands.
COMBAT_FLAGS_DEFAULT
Default combat flags for those affected by sprinting (combat mode has been made into its own component)
COMBAT_FLAGS_SPRINT_EXEMPT
Default combat flags for everyone else (so literally everyone but humans).
COMBAT_FLAGS_STAMINA_COMBAT
Default combat flags for those in stamina combat system
COMBAT_FLAG_ACTIVE_BLOCKING
This mob is currently actively blocking
COMBAT_FLAG_ACTIVE_BLOCK_STARTING
This mob is currently starting an active block
COMBAT_FLAG_ATTEMPTING_CRAWL
Currently attempting to crawl under someone
COMBAT_FLAG_BLOCK_CAPABLE
This mob is capable of using the active blocking system.
COMBAT_FLAG_HARD_STAMCRIT
Currently stamcritted
COMBAT_FLAG_INTENTIONALLY_RESTING
Intentionally resting
COMBAT_FLAG_PARRY_CAPABLE
This mob is capable of using the active parrying system.
COMBAT_FLAG_RESISTING_REST
Currently attempting to resist up from the ground
COMBAT_FLAG_SPRINT_ACTIVE
Sprint is currently active
COMBAT_FLAG_SPRINT_FORCED
Force sprint mode on at all times, overrides everything including sprint disable traits.
COMBAT_FLAG_SPRINT_TOGGLED
The user wants sprint mode on
COMBAT_FLAG_STAMINA_BUFFER
This mob requires stamina buffer to do things that require stamina buffer. Not having this exempts the mob from stamina combat.
COMBAT_FLAG_UNARMED_PARRY
This mob is capable of unarmed parrying
FEEBLE_ATTACK_MSG_THRESHOLD
should the current-attack-damage be lower than the item force multiplied by this value,
+a "inefficiently" prefix will be added to the message.
GUN_AIMING_TIME
Time to spend without clicking on other things required for your shots to become accurate.
SHOVE_OFFBALANCE_DURATION
how long they're off balance for
SHOVE_STAGGER_DURATION
how long they're staggered for
STAMINA_CRIT
crit for stamina damage. forces a rest, and stops movement until stamina goes back to stamina softcrit
STAMINA_CRIT_REMOVAL_THRESHOLD
Threshold for leaving stamina critical
STAMINA_NO_OVERDRAW_THRESHOLD
Threshold under for which you are unable to draw from stamina health to replace stamina buffer
SUPPRESSED_QUIET
standard suppressed
SUPPRESSED_VERY
no message
\ No newline at end of file
diff --git a/code/__DEFINES/combat/attack_types.html b/code/__DEFINES/combat/attack_types.html
new file mode 100644
index 000000000000..edcb73b0f4dd
--- /dev/null
+++ b/code/__DEFINES/combat/attack_types.html
@@ -0,0 +1 @@
+code/__DEFINES/combat/attack_types.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Attack was from a parry counterattack. Do not attempt to parry-this!
Define Details
ATTACK_TYPE_MELEE
Attack was melee, whether or not armed.
ATTACK_TYPE_PARRY_COUNTERATTACK
Attack was from a parry counterattack. Do not attempt to parry-this!
ATTACK_TYPE_PROJECTILE
Attack was with a gun or something that should count as a gun (but not if a gun shouldn't count for a gun, crazy right?)
ATTACK_TYPE_TACKLE
Attack was a bodyslam/leap/tackle. See: Xenomorph leap tackles.
ATTACK_TYPE_THROWN
Attack was a thrown atom hitting the victim.
ATTACK_TYPE_UNARMED
Attack was unarmed.. this usually means hand to hand combat.
\ No newline at end of file
diff --git a/code/__DEFINES/combat/block.html b/code/__DEFINES/combat/block.html
new file mode 100644
index 000000000000..60c2f867217f
--- /dev/null
+++ b/code/__DEFINES/combat/block.html
@@ -0,0 +1,11 @@
+code/__DEFINES/combat/block.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Check whether or not we can block, without "triggering" a block. Basically run checks without effects like depleting shields.
+Wrapper for do_run_block(). The arguments on that means the same as for this.
Runs a block "sequence", effectively checking and then doing effects if necessary.
+Wrapper for do_run_block(). The arguments on that means the same as for this.
Bitflags for check_block() and handle_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS.
+Attack was not blocked
The below are for "metadata" on "how" the attack was blocked.
+Attack was and should be redirected according to list argument REDIRECT_METHOD (NOTE: the SHOULD here is important, as it says "the thing blocking isn't handling the reflecting for you so do it yourself"!)
Meta-flag for run_block/do_run_block : By default, BLOCK_SUCCESS tells do_run_block() to assume the attack is completely blocked and not continue the block chain. If this is present, it will continue to check other items in the chain rather than stopping.
These keys are generally only applied to the list if real_attack is FALSE. Used incase we want to make "smarter" mob AI in the future or something.
+Tells the caller how likely from 0 (none) to 100 (always) we are to reflect energy projectiles
Always set to 100 by run_block() if BLOCK_SUCCESS is in return value. Otherwise, defaults to mitigation percent if not set. Used by projectile/proc/on_hit().
Block priorities. Higher means it's checked sooner.
Define Details
BLOCK_CONTINUE_CHAIN
Meta-flag for run_block/do_run_block : By default, BLOCK_SUCCESS tells do_run_block() to assume the attack is completely blocked and not continue the block chain. If this is present, it will continue to check other items in the chain rather than stopping.
BLOCK_NONE
Bitflags for check_block() and handle_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS.
+Attack was not blocked
BLOCK_PHYSICAL_EXTERNAL
Attack was blocked by something like a shield.
BLOCK_PHYSICAL_INTERNAL
Attack was blocked by something worn on you.
BLOCK_PRIORITY_ACTIVE_BLOCK
Block priorities. Higher means it's checked sooner.
BLOCK_REDIRECTED
Attack was redirected (whether by us or by SHOULD_REDIRECT flagging for automatic handling)
BLOCK_RETURN_ACTIVE_BLOCK
Tells the caller we got blocked by active directional block.
BLOCK_RETURN_ACTIVE_BLOCK_DAMAGE_MITIGATED
Tells the caller our damage mitigation for their attack.
BLOCK_RETURN_BLOCK_CAPACITY
Tells the caller about how many hits we can soak on average before our blocking fails.
BLOCK_RETURN_FORCE_NO_PARRY_COUNTERATTACK
Used internally by run_parry proc, use on an on_active_parry() proc to prevent counterattacks
Tells the caller how likely we are to block attacks from 0 to 100 in general
BLOCK_RETURN_OVERRIDE_PARRY_EFFICIENCY
Used internally by run_parry proc, use on an on_active_parry() proc to override parrying efficiency.
BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE
Always set to 100 by run_block() if BLOCK_SUCCESS is in return value. Otherwise, defaults to mitigation percent if not set. Used by projectile/proc/on_hit().
BLOCK_RETURN_REDIRECT_METHOD
For keys in associative list/block_return as we don't want to saturate our (somewhat) limited flags.
BLOCK_RETURN_REFLECT_PROJECTILE_CHANCE
These keys are generally only applied to the list if real_attack is FALSE. Used incase we want to make "smarter" mob AI in the future or something.
+Tells the caller how likely from 0 (none) to 100 (always) we are to reflect energy projectiles
BLOCK_RETURN_SET_DAMAGE_TO
For [BLOCK_CHANGE_DAMAGE]. Set damage to this.
BLOCK_SHOULD_CHANGE_DAMAGE
Attack should change the amount of damage incurred. This means something calling run_block() has to handle it!
BLOCK_SHOULD_PARTIAL_MITIGATE
Attack should scale by this percent, 0 for no block and 100 for full blocked
BLOCK_SHOULD_REDIRECT
The below are for "metadata" on "how" the attack was blocked.
+Attack was and should be redirected according to list argument REDIRECT_METHOD (NOTE: the SHOULD here is important, as it says "the thing blocking isn't handling the reflecting for you so do it yourself"!)
BLOCK_SUCCESS
Attack was blocked, do not do damage. THIS FLAG MUST BE THERE FOR DAMAGE/EFFECT PREVENTION!
BLOCK_TARGET_DODGED
Attack outright missed because the target dodged. Should usually be combined with redirection passthrough or something (see martial arts)
DEFAULT_REDIRECT_METHOD_PROJECTILE
Default if the above isn't set in the list.
REDIRECT_METHOD_DEFLECT
Deflect at randomish angle
REDIRECT_METHOD_PASSTHROUGH
Pass through victim
REDIRECT_METHOD_REFLECT
reverse 180 angle, basically (as opposed to "realistic" wall reflections)
REDIRECT_METHOD_RETURN_TO_SENDER
"do not taser the bad man with the desword" - actually aims at the firer/attacker rather than just reversing
mob_check_block
Check whether or not we can block, without "triggering" a block. Basically run checks without effects like depleting shields.
+Wrapper for do_run_block(). The arguments on that means the same as for this.
mob_run_block
Runs a block "sequence", effectively checking and then doing effects if necessary.
+Wrapper for do_run_block(). The arguments on that means the same as for this.
\ No newline at end of file
diff --git a/code/__DEFINES/combat/block_parry.html b/code/__DEFINES/combat/block_parry.html
new file mode 100644
index 000000000000..576f2cd6d713
--- /dev/null
+++ b/code/__DEFINES/combat/block_parry.html
@@ -0,0 +1,3 @@
+code/__DEFINES/combat/block_parry.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Parry effects.
+Automatically melee attacks back normally, LMB equivalent action of an harm intent attack. List association should be defaulting to 1, being the attack damage multiplier for said counterattack
Set to TRUE in list association to ignore adjacency checks
Define Details
ACTIVE_BLOCK_STARTING_INTERRUPT
If this is the value of active_block_starting it signals we want to interrupt the start
NOT_PARRYING
Parry phase we're in
PARRY_COUNTERATTACK_IGNORE_ADJACENCY
Set to TRUE in list association to ignore adjacency checks
PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN
Parry effects.
+Automatically melee attacks back normally, LMB equivalent action of an harm intent attack. List association should be defaulting to 1, being the attack damage multiplier for said counterattack
PARRY_DAZE_ATTACKER
List association should be amount of time to daze attacker.
PARRY_DEFAULT_HANDLE_FEEDBACK
Default handling for audio/visual feedback
PARRY_DISARM_ATTACKER
List association should be TRUE.
PARRY_KNOCKDOWN_ATTACKER
List association should be duration or null for just plain knockdown.
PARRY_LOCK_ATTACKING
Lock attacking while parrying
PARRY_LOCK_SPRINTING
Lock sprinting while parrying
PARRY_STAGGER_ATTACKER
List association should be duration.
UNARMED_PARRY
""types"" of parry "items"
\ No newline at end of file
diff --git a/code/__DEFINES/combat/stamina_combat.html b/code/__DEFINES/combat/stamina_combat.html
new file mode 100644
index 000000000000..717d5b1d1578
--- /dev/null
+++ b/code/__DEFINES/combat/stamina_combat.html
@@ -0,0 +1 @@
+code/__DEFINES/combat/stamina_combat.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Usage for shoving yourself off the ground instantly
STAM_COST_W_CLASS_MULT
Base stamina cost for an item of a certain w_class without total_mass set.
\ No newline at end of file
diff --git a/code/__DEFINES/configuration.html b/code/__DEFINES/configuration.html
new file mode 100644
index 000000000000..66bc16b28b55
--- /dev/null
+++ b/code/__DEFINES/configuration.html
@@ -0,0 +1 @@
+code/__DEFINES/configuration.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
displayed to prisoners on spawn, overriding the default if set
Define Details
CONFIG_CACHE_ENTRY_AND_FETCH_VALUE
Caches an entry in the proc
CONFIG_GET_ENTRY
Gets the datum of the object, for when editing a const define.
POLICYCONFIG_ELITE_SENTIENCE
displayed to lavaland elites on sentience potion, overriding the default if set
POLICYCONFIG_ELITE_SPAWN
displayed to lavaland elites on spawn, overriding the default if set
POLICYCONFIG_ELITE_WIN
displayed to lavaland elites on winning the fight, overriding the default if set
POLICYCONFIG_JOB_PRISONER
displayed to prisoners on spawn, overriding the default if set
POLICYCONFIG_ON_CLONE
Displayed to cloned patients
POLICYCONFIG_ON_DEFIB_INTACT
Displayed to defibbed/revival surgery'd patients before the memory loss time threshold
POLICYCONFIG_ON_DEFIB_LATE
Displayed to defibbed/revival surgery'd patients after the memory loss time threshold
POLICYCONFIG_ON_PYROCLASTIC_SENTIENT
Displayed to pyroclastic slimes on spawn
POLICYCONFIG_PAI
Displayed to pAIs on spawn
\ No newline at end of file
diff --git a/code/__DEFINES/cooldowns.html b/code/__DEFINES/cooldowns.html
new file mode 100644
index 000000000000..055a4468943a
--- /dev/null
+++ b/code/__DEFINES/cooldowns.html
@@ -0,0 +1 @@
+code/__DEFINES/cooldowns.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/flags.html b/code/__DEFINES/dcs/flags.html
new file mode 100644
index 000000000000..16ebc41b4f34
--- /dev/null
+++ b/code/__DEFINES/dcs/flags.html
@@ -0,0 +1,9 @@
+code/__DEFINES/dcs/flags.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
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
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
/ Identification ////
+Delete on successful broad identification (so the main way we "uncover" how an object works, since this won't be on it to obfuscate it)
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
ID_COMPONENT_DECONSTRUCTOR_DEEPSCANNED
We've already been successfully deepscanned by a deconstructive analyzer
ID_COMPONENT_DEL_ON_IDENTIFY
/ Identification ////
+Delete on successful broad identification (so the main way we "uncover" how an object works, since this won't be on it to obfuscate it)
ID_COMPONENT_EFFECT_NO_ACTIONS
Block user from getting actions if they don't know how to use this. Triggered on equip.
ID_COMPONENT_IDENTIFY_WITH_DECONSTRUCTOR
Can be identified in a deconstructive analyzer
ID_COMPONENT_KNOWLEDGE_FULL
Has full knowledge
ID_COMPONENT_KNOWLEDGE_NONE
Has no knowledge, default
UPDATE_DESC
Update the atom's desc
UPDATE_GREYSCALE
Update the atom's greyscaling
UPDATE_ICON
Update the atom's icon
UPDATE_ICON_STATE
Update the atom's icon state
UPDATE_NAME
Update the atom's name
UPDATE_OVERLAYS
Update the atom's overlays
UPDATE_SMOOTHING
Update the atom's smoothing. (More accurately, queue it for an update)
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/helpers.html b/code/__DEFINES/dcs/helpers.html
new file mode 100644
index 000000000000..fd2464c0ee3d
--- /dev/null
+++ b/code/__DEFINES/dcs/helpers.html
@@ -0,0 +1,11 @@
+code/__DEFINES/dcs/helpers.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
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
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
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.
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/signals.html b/code/__DEFINES/dcs/signals.html
new file mode 100644
index 000000000000..39a53fcb9642
--- /dev/null
+++ b/code/__DEFINES/dcs/signals.html
@@ -0,0 +1,5 @@
+code/__DEFINES/dcs/signals.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
called after an explosion happened : (epicenter, devastation_range, heavy_impact_range, light_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range)
sent from clicking while you have no equipment selected. Sent before cooldown and adjacency checks, so you can use this for infinite range things if you want.
From base of atom/wave_ex_act(): (datum/wave_explosion/explosion, args)
COMSIG_BLOCK_EYECONTACT
return this if you want to block printing this message to this person, if you want to print your own (does not affect the other person's message)
COMSIG_CARBON_ATTACH_LIMB
from base of /obj/item/bodypart/proc/attach_limb(): (new_limb, special) allows you to fail limb attachment
COMSIG_COMPONENT_ADDED
when a component is added to a datum: (/datum/component)
COMSIG_COMPONENT_REGISTER_PARENT
sent to the component itself when registered to a parent
COMSIG_COMPONENT_REMOVING
before a component is removed from a datum because of RemoveComponent: (/datum/component)
COMSIG_COMPONENT_UNREGISTER_PARENT
sent to the component itself when unregistered from a parent
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_GLOB_EXPLOSION
called after an explosion happened : (epicenter, devastation_range, heavy_impact_range, light_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range)
COMSIG_GLOB_JOB_AFTER_LATEJOIN_SPAWN
job datum has been called to deal with the aftermath of a latejoin spawn
COMSIG_GLOB_JOB_AFTER_SPAWN
job subsystem has spawned and equipped a new mob
COMSIG_GLOB_LIVING_SAY_SPECIAL
global living say plug - use sparingly: (mob/speaker , message)
COMSIG_GLOB_MOB_CREATED
mob was created somewhere : (mob)
COMSIG_GLOB_MOB_DEATH
mob died somewhere : (mob , gibbed)
COMSIG_GLOB_NEW_GAS
called by auxgm add_gas: (gas_id)
COMSIG_GLOB_NEW_Z
from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args)
COMSIG_GLOB_PLAY_CINEMATIC
called by datum/cinematic/play() : (datum/cinematic/new_cinematic)
COMSIG_GLOB_VAR_EDIT
called after a successful var edit somewhere in the world: (list/args)
Called when an item is being offered, from [/obj/item/proc/on_offered(mob/living/carbon/offerer)]
COMSIG_ITEM_OFFER_TAKEN
Called when an someone tries accepting an offered item, from [/obj/item/proc/on_offer_taken(mob/living/carbon/offer, mob/living/carbon/taker)]
COMSIG_LIVING_PREDEATH
from base of mob/living/death(): (gibbed)
COMSIG_MACHINERY_BROKEN
from /obj/machinery/obj_break(damage_flag): (damage_flag)
COMSIG_MACHINERY_POWER_LOST
from base power_change() when power is lost
COMSIG_MACHINERY_POWER_RESTORED
from base power_change() when power is restored
COMSIG_MECHA_EQUIPMENT_CLICK
sent from clicking while you have equipment selected.
COMSIG_MECHA_MELEE_CLICK
sent from clicking while you have no equipment selected. Sent before cooldown and adjacency checks, so you can use this for infinite range things if you want.
COMSIG_MINE_TRIGGERED
from [/obj/effect/mine/proc/triggermine]:
COMSIG_MOB_ALTCLICKON
from base of mob/AltClickOn(): (atom/A)
COMSIG_MOB_CLIENT_LOGIN
sent when a mob/login() finishes: (client)
COMSIG_MOB_EYECONTACT
from /mob/living/handle_eye_contact(): (mob/living/other_mob)
COMSIG_MOB_UNEQUIPPED_ITEM
A mob has just unequipped an item.
COMSIG_MOVABLE_PRE_MOVE
from base of atom/movable/Moved(): (/atom)
COMSIG_NANITE_CHECK_CONSOLE_LOCK
Checks if a nanite component is able to be controlled by console
COMSIG_NANITE_CHECK_HOST_LOCK
Checks if a nanite component is able to be interfaced with by a host with innate nanite control
COMSIG_NANITE_CHECK_VIRAL_PREVENTION
Checks if a nanite component is able to be overwritten by viral replica
COMSIG_ON_MULTIPLE_LIVES_RESPAWN
from base of [/datum/component/multiple_lives/proc/respawn]: (mob/respawned_mob, gibbed, lives_left)
COMSIG_PARENT_EXAMINE_MORE
from base of atom/examine_more(): (/mob)
COMSIG_PARENT_PREQDELETED
before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation
COMSIG_PARENT_QDELETING
just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called
COMSIG_PROJECTILE_FIRE
from the base of /obj/item/projectile/proc/fire(): ()
COMSIG_PROJECTILE_ON_HIT
from base of /obj/item/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle, hit_limb)
COMSIG_PROJECTILE_PREHIT
sent to targets during the process_hit proc of projectiles
COMSIG_PROJECTILE_SELF_ON_HIT
from base of /obj/item/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle, hit_limb)
COMSIG_SECURITY_LEVEL_CHANGED
from SSsecurity_level when the security level changes : (new_level)
COMSIG_SUN_MOVED
from SSsun when the sun changes position : (primary_sun, suns)
COMSIG_SUPERMATTER_DELAM_ALARM
from /obj/machinery/power/supermatter_crystal/process_atmos(); when the SM sounds an audible alarm
COMSIG_SUPERMATTER_DELAM_START_ALARM
from /obj/machinery/power/supermatter_crystal/process_atmos(); when the SM delam reaches the point of sounding alarms
COMSIG_SUPPLYPOD_LANDED
from [/obj/structure/closet/supplypod/proc/endlaunch]:
COMSIG_THREAT_CALC
from SSactivity for things that add threat but aren't "global" (e.g. phylacteries)
COMSIG_TOPIC
generic topic handler (usr, href_list)
COMSIG_TURF_CHANGE
from base of turf/ChangeTurf(): (path, list/new_baseturfs, flags, list/transferring_comps)
COMSIG_TURF_HAS_GRAVITY
from base of atom/has_gravity(): (atom/asker, list/forced_gravities)
COMSIG_TURF_IS_WET
Component Specific Signals
COMSIG_TURF_MULTIZ_DEL
from base of turf/multiz_turf_del(): (turf/source, direction)
COMSIG_TURF_MULTIZ_NEW
from base of turf/multiz_turf_new: (turf/source, direction)
COMSIG_TWITCH_PLAYS_MOVEMENT_DATA
Returns direction: (wipe_votes)
COMSIG_UI_ACT
from datum ui_act (usr, action)
COMSIG_UI_FALLBACK
from datum tgui_fallback (payload)
COMSIG_VOID_MASK_ACT
Mask of Madness
COMSIG_WEATHER_TELEGRAPH
a weather event of some kind occured
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/signals/signals_action.html b/code/__DEFINES/dcs/signals/signals_action.html
new file mode 100644
index 000000000000..ab0df83735aa
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_action.html
@@ -0,0 +1 @@
+code/__DEFINES/dcs/signals/signals_action.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
From base of /datum/action/cooldown/proc/PreActivate(), sent to the action owner: (datum/action/cooldown/finished)
Define Details
COMPONENT_BLOCK_ABILITY_START
Return to block the ability from starting / activating
COMSIG_MOB_ABILITY_FINISHED
From base of /datum/action/cooldown/proc/PreActivate(), sent to the action owner: (datum/action/cooldown/finished)
COMSIG_MOB_ABILITY_STARTED
From base of /datum/action/cooldown/proc/PreActivate(), sent to the action owner: (datum/action/cooldown/activated)
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.html b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.html
new file mode 100644
index 000000000000..913d3063b9b2
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.html
@@ -0,0 +1 @@
+code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
from base of atom/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
Define Details
COMSIG_ATOM_HITBY
from base of atom/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.html b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.html
new file mode 100644
index 000000000000..ab07c67fca91
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.html
@@ -0,0 +1 @@
+code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
from base of atom/MouseDrop_T: (/atom/from, /mob/user)
Define Details
COMPONENT_ALLOW_EXAMINATE
Allows the user to examinate regardless of client.eye.
COMPONENT_DENY_EXAMINATE
Higher priority compared to the above one
COMSIG_CLICK
from base of atom/Click(): (atom/location, control, params, mob/user)
COMSIG_CLICK_ALT
from base of atom/AltClick(): (/mob)
COMSIG_CLICK_CTRL
from base of atom/CtrlClickOn(): (/mob)
COMSIG_CLICK_CTRL_SHIFT
from base of atom/CtrlShiftClick(/mob)
COMSIG_CLICK_SHIFT
from base of atom/ShiftClick(): (/mob)
COMSIG_CLIENT_CLICK
from base of client/Click(): (atom/target, atom/location, control, params, mob/user)
COMSIG_MOUSEDROPPED_ONTO
from base of atom/MouseDrop_T: (/atom/from, /mob/user)
COMSIG_MOUSEDROP_ONTO
from base of atom/MouseDrop(): (/atom/over, /mob/user)
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.html b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.html
new file mode 100644
index 000000000000..faae296d80d3
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.html
@@ -0,0 +1,3 @@
+code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Called from /mob/living/PushAM -- Called when this mob is about to push a movable, but before it moves
+(aotm/movable/being_pushed)
Define Details
COMSIG_LIVING_PUSHING_MOVABLE
Called from /mob/living/PushAM -- Called when this mob is about to push a movable, but before it moves
+(aotm/movable/being_pushed)
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/signals/signals_global.html b/code/__DEFINES/dcs/signals/signals_global.html
new file mode 100644
index 000000000000..f097bc8a7388
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_global.html
@@ -0,0 +1 @@
+code/__DEFINES/dcs/signals/signals_global.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
a person somewhere has thrown something : (mob/living/carbon/carbon_thrower, target)
Define Details
COMSIG_GLOB_CARBON_THROW_THING
a person somewhere has thrown something : (mob/living/carbon/carbon_thrower, target)
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/signals/signals_hud.html b/code/__DEFINES/dcs/signals/signals_hud.html
new file mode 100644
index 000000000000..69acb4b6f826
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_hud.html
@@ -0,0 +1 @@
+code/__DEFINES/dcs/signals/signals_hud.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Sent from /atom/movable/screen/lobby/button/collapse/proc/expand_buttons() : ()
Define Details
COMSIG_HUD_LOBBY_COLLAPSED
Sent from /atom/movable/screen/lobby/button/collapse/proc/collapse_buttons() : ()
COMSIG_HUD_LOBBY_EXPANDED
Sent from /atom/movable/screen/lobby/button/collapse/proc/expand_buttons() : ()
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/signals/signals_medical.html b/code/__DEFINES/dcs/signals/signals_medical.html
new file mode 100644
index 000000000000..32109c4e8990
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_medical.html
@@ -0,0 +1 @@
+code/__DEFINES/dcs/signals/signals_medical.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
From /datum/surgery/can_start(): (mob/source, datum/surgery/surgery, mob/living/patient)
Define Details
COMSIG_DEFIBRILLATOR_SUCCESS
From /obj/item/shockpaddles/proc/do_success(): (obj/item/shockpaddles/source)
COMSIG_MOB_SURGERY_STARTED
From /datum/surgery/New(): (datum/surgery/surgery, surgery_location (body zone), obj/item/bodypart/targeted_limb)
COMSIG_MOB_SURGERY_STEP_SUCCESS
From /datum/surgery_step/success(): (datum/surgery_step/step, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results)
COMSIG_SURGERY_STARTING
From /datum/surgery/can_start(): (mob/source, datum/surgery/surgery, mob/living/patient)
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.html b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.html
new file mode 100644
index 000000000000..8ec600407593
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.html
@@ -0,0 +1 @@
+code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.html b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.html
new file mode 100644
index 000000000000..12504a55d530
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.html
@@ -0,0 +1 @@
+code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/signals/signals_mod.html b/code/__DEFINES/dcs/signals/signals_mod.html
new file mode 100644
index 000000000000..d128307307a4
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_mod.html
@@ -0,0 +1 @@
+code/__DEFINES/dcs/signals/signals_mod.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Called when a module activates, after all checks have passed and cooldown started.
COMSIG_MODULE_DEACTIVATED
Called when a module deactivates, after all checks have passed.
COMSIG_MODULE_TRIGGERED
Called when a module attempts to activate, however it does. At the end of checks so you can add some yourself, or work on trigger behavior (mob/user)
COMSIG_MODULE_USED
Called when a module is used, after all checks have passed and cooldown started.
COMSIG_MOD_ACTIVATE
Called when a MOD activation is called from toggle_activate(mob/user)
COMSIG_MOD_DEPLOYED
Called when a MOD deploys one or more of its parts.
COMSIG_MOD_MODULE_ADDED
Called when a MOD finishes having a module added to it.
COMSIG_MOD_MODULE_REMOVAL
Called when a MOD is having modules removed from crowbar_act(mob/user, obj/crowbar)
COMSIG_MOD_MODULE_REMOVED
Called when a MOD finishes having a module removed from it.
COMSIG_MOD_MODULE_SELECTED
Called when a module is selected to be the active one from on_select(obj/item/mod/module/module)
COMSIG_MOD_RETRACTED
Called when a MOD retracts one or more of its parts.
COMSIG_MOD_TOGGLED
Called when a MOD is finished toggling itself.
COMSIG_MOD_WEARER_SET
Called when the MODsuit wearer is set.
COMSIG_MOD_WEARER_UNSET
Called when the MODsuit wearer is unset.
MOD_ABORT_USE
Cancels activation, with no message. Include feedback on your cancel.
MOD_CANCEL_ACTIVATE
Cancels the suit's activation
MOD_CANCEL_REMOVAL
Cancels the removal of modules
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/signals/signals_movable.html b/code/__DEFINES/dcs/signals/signals_movable.html
new file mode 100644
index 000000000000..6e33cfb0cb0d
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_movable.html
@@ -0,0 +1 @@
+code/__DEFINES/dcs/signals/signals_movable.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
from base of atom/experience_pressure_difference(): (pressure_difference, direction, pressure_resistance_prob_delta)
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/signals/signals_painting.html b/code/__DEFINES/dcs/signals/signals_painting.html
new file mode 100644
index 000000000000..bb542345c35d
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_painting.html
@@ -0,0 +1 @@
+code/__DEFINES/dcs/signals/signals_painting.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
from base of /item/proc/set_painting_tool_color(): (chosen_color)
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/signals/signals_reagent.html b/code/__DEFINES/dcs/signals/signals_reagent.html
new file mode 100644
index 000000000000..b605e9639dcd
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_reagent.html
@@ -0,0 +1 @@
+code/__DEFINES/dcs/signals/signals_reagent.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Sent by /datum/reagents/proc/reaction, used for /obj/item/mod/module/springlock
Define Details
COMSIG_ATOM_EXPOSE_REAGENTS
Sent by /datum/reagents/proc/reaction, used for /obj/item/mod/module/springlock
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/signals/signals_screentips.html b/code/__DEFINES/dcs/signals/signals_screentips.html
new file mode 100644
index 000000000000..080e1d5a431a
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_screentips.html
@@ -0,0 +1,31 @@
+code/__DEFINES/dcs/signals/signals_screentips.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
A "Type-A" contextual screentip interaction.
+These are used for items that are defined by their behavior. They define their contextual text within themselves,
+not in their targets.
+Examples include syringes (LMB to inject, RMB to draw) and health analyzers (LMB to scan health/wounds, RMB for chems)
+Items can override add_item_context(), and call register_item_context() in order to easily connect to this.
+Called on /obj/item with a mutable screentip context list, the hovered target, and the mob hovering.
+A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm)
+that map to the action as text.
+If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.
A "Type-B" contextual screentip interaction.
+These are atoms that are defined by what happens to them. These should define contextual text within themselves, and
+not in their operating tools.
+Examples include construction objects (LMB with glass to put in screen for computers).
+Called on /atom with a mutable screentip context list, the item being used, and the mob hovering.
+A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm)
+that map to the action as text.
+If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.
Tells the contextual screentips system that the list context was mutated.
Define Details
COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM
A "Type-B" contextual screentip interaction.
+These are atoms that are defined by what happens to them. These should define contextual text within themselves, and
+not in their operating tools.
+Examples include construction objects (LMB with glass to put in screen for computers).
+Called on /atom with a mutable screentip context list, the item being used, and the mob hovering.
+A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm)
+that map to the action as text.
+If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.
COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET
A "Type-A" contextual screentip interaction.
+These are used for items that are defined by their behavior. They define their contextual text within themselves,
+not in their targets.
+Examples include syringes (LMB to inject, RMB to draw) and health analyzers (LMB to scan health/wounds, RMB for chems)
+Items can override add_item_context(), and call register_item_context() in order to easily connect to this.
+Called on /obj/item with a mutable screentip context list, the hovered target, and the mob hovering.
+A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm)
+that map to the action as text.
+If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.
CONTEXTUAL_SCREENTIP_SET
Tells the contextual screentips system that the list context was mutated.
\ No newline at end of file
diff --git a/code/__DEFINES/dcs/signals/signals_subsystem.html b/code/__DEFINES/dcs/signals/signals_subsystem.html
new file mode 100644
index 000000000000..4456a44d8b4f
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_subsystem.html
@@ -0,0 +1,3 @@
+code/__DEFINES/dcs/signals/signals_subsystem.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_removed : (atom/old_poi)
Define Details
COMSIG_ADDED_POINT_OF_INTEREST
Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_added : (atom/new_poi)
COMSIG_REMOVED_POINT_OF_INTEREST
Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_removed : (atom/old_poi)
COMSIG_SUBSYSTEM_POST_INITIALIZE
Subsystem signals
+From base of datum/controller/subsystem/Initialize: (start_timeofday)
COMSIG_TICKER_ENTER_PREGAME
Called when the ticker enters the pre-game phase
COMSIG_TICKER_ENTER_SETTING_UP
Called when the ticker sets up the game for start
COMSIG_TICKER_ERROR_SETTING_UP
Called when the ticker fails to set up the game for start
COMSIG_TICKER_ROUND_STARTING
Called when the round has started, but before GAME_STATE_PLAYING
\ No newline at end of file
diff --git a/code/__DEFINES/dynamic.html b/code/__DEFINES/dynamic.html
new file mode 100644
index 000000000000..994872d5a67b
--- /dev/null
+++ b/code/__DEFINES/dynamic.html
@@ -0,0 +1 @@
+code/__DEFINES/dynamic.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
This cycle, a round event was hijacked when the next midround event is too soon.
Define Details
HIGH_IMPACT_RULESET
Only one ruleset with this flag will be picked.
HIJACKED_NOTHING
No round event was hijacked this cycle
HIJACKED_TOO_RECENT
This cycle, a round event was hijacked when the last midround event was too recent.
HIJACKED_TOO_SOON
This cycle, a round event was hijacked when the next midround event is too soon.
LONE_RULESET
This ruleset can only be picked once. Anything that does not have a scaling_cost MUST have this.
ONLY_RULESET
This is the only ruleset that should be picked this round, used by admins and should not be on rulesets in code.
\ No newline at end of file
diff --git a/code/__DEFINES/economy.html b/code/__DEFINES/economy.html
new file mode 100644
index 000000000000..3cf53773094b
--- /dev/null
+++ b/code/__DEFINES/economy.html
@@ -0,0 +1 @@
+code/__DEFINES/economy.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Probability of using letters of envelope sprites on all letters.
Define Details
FULL_CRATE_LETTER_ODDS
Probability of using letters of envelope sprites on all letters.
MAX_MAIL_PER_MINUTE
How much mail the Economy SS will create per minute, regardless of firing time.
STARTING_PAYCHECKS
Number of paychecks jobs start with at the creation of a new bank account for a player (So at shift-start or game join, but not a blank new account.)
\ No newline at end of file
diff --git a/code/__DEFINES/events.html b/code/__DEFINES/events.html
new file mode 100644
index 000000000000..ab73af610cfa
--- /dev/null
+++ b/code/__DEFINES/events.html
@@ -0,0 +1 @@
+code/__DEFINES/events.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Return from admin setup to stop the event from triggering entirely.
Define Details
ADMIN_CANCEL_EVENT
Return from admin setup to stop the event from triggering entirely.
EVENT_CATEGORY_AI
Events that mess with or create artificial intelligences, such as vending machines and the AI itself
EVENT_CATEGORY_ANOMALIES
Events that spawn anomalies, which might be the source of anomaly cores
EVENT_CATEGORY_BUREAUCRATIC
Events pertaining cargo, messages incoming to the station and job slots
EVENT_CATEGORY_ENGINEERING
Events that cause breakages and malfunctions that could be fixed by engineers
EVENT_CATEGORY_ENTITIES
Events that spawn creatures with simple desires, such as to hunt
EVENT_CATEGORY_FRIENDLY
Events that should have no harmful effects, and might be useful to the crew
EVENT_CATEGORY_HEALTH
Events that affect the body and mind
EVENT_CATEGORY_HOLIDAY
Events reserved for special occassions
EVENT_CATEGORY_INVASION
Events with enemy groups with a more complex plan
EVENT_CATEGORY_JANITORIAL
Events that make a mess
EVENT_CATEGORY_SPACE
Events that summon meteors and other debris, and stationwide waves of harmful space weather
EVENT_CATEGORY_WIZARD
Events summoned by a wizard
\ No newline at end of file
diff --git a/code/__DEFINES/exosuit_fabs.html b/code/__DEFINES/exosuit_fabs.html
new file mode 100644
index 000000000000..5b94a7c8db8d
--- /dev/null
+++ b/code/__DEFINES/exosuit_fabs.html
@@ -0,0 +1 @@
+code/__DEFINES/exosuit_fabs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Module is compatible with "Medical" Exosuit modelsm - Odysseus
Define Details
BORG_MODULE_ENGINEERING
Module is compatible with Engineering Cyborg models
BORG_MODULE_JANITOR
Module is compatible with Janitor Cyborg models
BORG_MODULE_MEDICAL
Module is compatible with Medical Cyborg models
BORG_MODULE_MINER
Module is compatible with Miner Cyborg models
BORG_MODULE_SECURITY
Module is compatible with Security Cyborg models
EXOSUIT_MODULE_COMBAT
Module is compatible with "Combat" Exosuit models - Gygax, H.O.N.K, Durand and Phazon
EXOSUIT_MODULE_DURAND
Module is compatible with Durand Exosuit models
EXOSUIT_MODULE_FIREFIGHTER
Module is compatible with Clarke Exosuit models. Rebranded to firefighter because tg nerfed it to this.
EXOSUIT_MODULE_GYGAX
Module is compatible with Gygax Exosuit models
EXOSUIT_MODULE_GYGAX_MED
Module is compatable with N models
EXOSUIT_MODULE_HONK
Module is compatible with H.O.N.K Exosuit models
EXOSUIT_MODULE_MEDICAL
Module is compatible with "Medical" Exosuit modelsm - Odysseus
EXOSUIT_MODULE_ODYSSEUS
Module is compatible with Odyseeus Exosuit models
EXOSUIT_MODULE_PHAZON
Module is compatible with Phazon Exosuit models
EXOSUIT_MODULE_RIPLEY
Module is compatible with Ripley Exosuit models
EXOSUIT_MODULE_SAVANNAH
Module is compatible with Savannah Exosuit models - SPLURT ADDITION
EXOSUIT_MODULE_WORKING
Module is compatible with "Working" Exosuit models - Ripley and Clarke
\ No newline at end of file
diff --git a/code/__DEFINES/explosion.html b/code/__DEFINES/explosion.html
new file mode 100644
index 000000000000..8b78b46b3e69
--- /dev/null
+++ b/code/__DEFINES/explosion.html
@@ -0,0 +1 @@
+code/__DEFINES/explosion.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Explosion power to object damage for hard obstacles
EXPLOSION_POWER_STANDARD_SCALE_MOB_DAMAGE
Default brute damage to do to living things
EXPLOSION_POWER_STANDARD_SCALE_OBJECT_DAMAGE
Explosion power to object damage (without taking into consideration armor)
EXPLOSION_POWER_STANDARD_SCALE_WINDOW_DAMAGE
Explosion power to object damage for windows
\ No newline at end of file
diff --git a/code/__DEFINES/fonts.html b/code/__DEFINES/fonts.html
new file mode 100644
index 000000000000..a0f6082859fa
--- /dev/null
+++ b/code/__DEFINES/fonts.html
@@ -0,0 +1 @@
+code/__DEFINES/fonts.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Include leading A width and trailing C width in GetWidth() or in DrawText()
Define Details
INCLUDE_AC
Include leading A width and trailing C width in GetWidth() or in DrawText()
\ No newline at end of file
diff --git a/code/__DEFINES/hud.html b/code/__DEFINES/hud.html
new file mode 100644
index 000000000000..709dc88de73a
--- /dev/null
+++ b/code/__DEFINES/hud.html
@@ -0,0 +1 @@
+code/__DEFINES/hud.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Used in show_hud(); Please ensure this is the same as the maximum index.
SCRN_OBJ_DEFAULT
Whatever the base action datum thinks is best
SCRN_OBJ_FLOATING
Floating somewhere on the hud, not in any predefined place
SCRN_OBJ_IN_LIST
In the list of buttons stored at the top of the screen
SCRN_OBJ_IN_PALETTE
In the collapseable palette
\ No newline at end of file
diff --git a/code/__DEFINES/instruments.html b/code/__DEFINES/instruments.html
new file mode 100644
index 000000000000..501b8e8a0d78
--- /dev/null
+++ b/code/__DEFINES/instruments.html
@@ -0,0 +1 @@
+code/__DEFINES/instruments.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Minimum volume for when the sound is considered dead.
Define Details
CHANNELS_PER_INSTRUMENT
Max number of playing notes per instrument.
INSTRUMENT_DISTANCE_FALLOFF_BUFF
Distance multiplier that makes us not be impacted by 3d sound as much. This is a multiplier so lower it is the closer we will pretend to be to people.
INSTRUMENT_DISTANCE_NO_FALLOFF
How many tiles instruments have no falloff for
INSTRUMENT_EXP_FALLOFF_MIN
These are per decisecond.
INSTRUMENT_MAX_TOTAL_SUSTAIN
Maximum length a note should ever go for
INSTRUMENT_MIN_SUSTAIN_DROPOFF
Minimum volume for when the sound is considered dead.
\ No newline at end of file
diff --git a/code/__DEFINES/inventory.html b/code/__DEFINES/inventory.html
new file mode 100644
index 000000000000..dab2f8dcddef
--- /dev/null
+++ b/code/__DEFINES/inventory.html
@@ -0,0 +1 @@
+code/__DEFINES/inventory.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
The index of the entry in 'afk_thefts' with the time it happened
Define Details
AFK_THEFT_FORGET_DETAILS_TIME
If someone logs back in and there are entries older than this, just tell them they can't remember who it was or when
AFK_THEFT_MAX_MESSAGES
How many messages you can remember while logged out before you stop remembering new ones
AFK_THEFT_MESSAGE
The index of the entry in 'afk_thefts' with the text
AFK_THEFT_NAME
The index of the entry in 'afk_thefts' with the person's visible name at the time
AFK_THEFT_TIME
The index of the entry in 'afk_thefts' with the time it happened
ITEM_SLOT_ACCESSORY
To attach to a jumpsuit
ITEM_SLOT_BACK
Back slot
ITEM_SLOT_BACKPACK
Inside of a character's backpack
ITEM_SLOT_BELT
Belt slot
ITEM_SLOT_DEX_STORAGE
Dextrous simplemob "hands" (used for Drones and Dextrous Guardians)
ITEM_SLOT_EARS_LEFT
Ear slot (radios, earmuffs)
ITEM_SLOT_EARS_RIGHT
Right ear slot
ITEM_SLOT_EYES
Glasses slot
ITEM_SLOT_FEET
Shoe slot
ITEM_SLOT_GLOVES
Glove slot
ITEM_SLOT_HANDCUFFED
Handcuff slot
ITEM_SLOT_HANDS
A character's hand slots
ITEM_SLOT_HEAD
Head slot (helmets, hats, etc.)
ITEM_SLOT_ICLOTHING
Jumpsuit slot
ITEM_SLOT_ID
ID slot
ITEM_SLOT_LEGCUFFED
Legcuff slot (bolas, beartraps)
ITEM_SLOT_LPOCKET
Left Pocket slot
ITEM_SLOT_MASK
Mask slot
ITEM_SLOT_NECK
Neck slot (ties, bedsheets, scarves)
ITEM_SLOT_OCLOTHING
Suit slot (armors, costumes, space suits, etc.)
ITEM_SLOT_RPOCKET
Right Pocket slot
ITEM_SLOT_SHIRT
Shirt slot
ITEM_SLOT_SOCKS
Socks slot
ITEM_SLOT_SUITSTORE
Suit Storage slot
ITEM_SLOT_UNDERWEAR
Underwear slot
ITEM_SLOT_WRISTS
Wrist slot
SLOTS_AMT
Total amount of slots
\ No newline at end of file
diff --git a/code/__DEFINES/is_helpers.html b/code/__DEFINES/is_helpers.html
new file mode 100644
index 000000000000..9c8e01e70874
--- /dev/null
+++ b/code/__DEFINES/is_helpers.html
@@ -0,0 +1 @@
+code/__DEFINES/is_helpers.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Checks if something is a BYOND object datatype rather than a primitive, or whatever's closest to one.
Define Details
is_object_datatype
Checks if something is a BYOND object datatype rather than a primitive, or whatever's closest to one.
\ No newline at end of file
diff --git a/code/__DEFINES/layers_planes.html b/code/__DEFINES/layers_planes.html
new file mode 100644
index 000000000000..a68be2dba268
--- /dev/null
+++ b/code/__DEFINES/layers_planes.html
@@ -0,0 +1,3 @@
+code/__DEFINES/layers_planes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Plane for balloon text (text that fades up)
+It's over lighting and every other crap because this is nearly as important as hud content and only visible to the user.
Plane for balloon text (text that fades up)
+It's over lighting and every other crap because this is nearly as important as hud content and only visible to the user.
BELOW_OPEN_DOOR_LAYER
Layers most often used by atoms of plane equal or higher than GAME_PLANE
CATWALK_LAYER
catwalk overlay of /turf/open/floor/plating/plating_catwalk
LOBBY_BELOW_MENU_LAYER
Layer for lobby menu collapse button
LOBBY_BOTTOM_BUTTON_LAYER
Layer for lobby menu buttons that are hanging away from and lower than the main panel
LOBBY_MENU_LAYER
Layer for lobby menu background image and main buttons (Join/Ready, Observe, Charater Prefs)
LOBBY_SHUTTER_LAYER
Layer for lobby menu shutter, which covers up the menu to collapse/expand it
SCREENTIP_LAYER
Layer for screentips
SPACE_LAYER
Layers most often used by atoms of plane lower than GAME_PLANE
\ No newline at end of file
diff --git a/code/__DEFINES/lighting.html b/code/__DEFINES/lighting.html
new file mode 100644
index 000000000000..f5afffef9a05
--- /dev/null
+++ b/code/__DEFINES/lighting.html
@@ -0,0 +1 @@
+code/__DEFINES/lighting.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Uses vis_overlays to leverage caching so that very few new items need to be made for the overlay. For anything that doesn't change outline or opaque area much or at all.
Uses a dedicated render_target object to copy the entire appearance in real time to the blocking layer. For things that can change in appearance a lot from the base state, like humans.
The color matrix used to mask out emissive blockers on the emissive plane. Alpha should default to zero, be solely dependent on the RGB value of EMISSIVE_COLOR, and be independant of the RGB value of EM_BLOCK_COLOR.
Parse the hexadecimal color into lumcounts of each perspective.
Define Details
EMISSIVE_BLOCK_GENERIC
Uses vis_overlays to leverage caching so that very few new items need to be made for the overlay. For anything that doesn't change outline or opaque area much or at all.
EMISSIVE_BLOCK_UNIQUE
Uses a dedicated render_target object to copy the entire appearance in real time to the blocking layer. For things that can change in appearance a lot from the base state, like humans.
EMISSIVE_COLOR
The color matrix applied to all emissive overlays. Should be solely dependent on alpha and not have RGB overlap with EM_BLOCK_COLOR.
EM_BLOCK_COLOR
The color matrix applied to all emissive blockers. Should be solely dependent on alpha and not have RGB overlap with EMISSIVE_COLOR.
EM_MASK_MATRIX
The color matrix used to mask out emissive blockers on the emissive plane. Alpha should default to zero, be solely dependent on the RGB value of EMISSIVE_COLOR, and be independant of the RGB value of EM_BLOCK_COLOR.
GETBLUEPART
Returns the blue part of a #RRGGBB hex sequence as number
GETGREENPART
Returns the green part of a #RRGGBB hex sequence as number
GETREDPART
Returns the red part of a #RRGGBB hex sequence as number
PARSE_LIGHT_COLOR
Parse the hexadecimal color into lumcounts of each perspective.
\ No newline at end of file
diff --git a/code/__DEFINES/maps.html b/code/__DEFINES/maps.html
new file mode 100644
index 000000000000..a45251296ba6
--- /dev/null
+++ b/code/__DEFINES/maps.html
@@ -0,0 +1 @@
+code/__DEFINES/maps.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__DEFINES/material/worth.html b/code/__DEFINES/material/worth.html
new file mode 100644
index 000000000000..1efe387cdcee
--- /dev/null
+++ b/code/__DEFINES/material/worth.html
@@ -0,0 +1 @@
+code/__DEFINES/material/worth.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__DEFINES/materials.html b/code/__DEFINES/materials.html
new file mode 100644
index 000000000000..086165cc9f3a
--- /dev/null
+++ b/code/__DEFINES/materials.html
@@ -0,0 +1 @@
+code/__DEFINES/materials.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Flag for atoms, this flag ensures it isn't re-colored by materials. Useful for snowflake icons such as default toolboxes.
Define Details
MATERIAL_COLOR
Flag for atoms, this flag ensures it isn't re-colored by materials. Useful for snowflake icons such as default toolboxes.
MAT_CATEGORY_BASE_RECIPES
Use this flag on TRUE if you want the basic recipes
MAT_CATEGORY_ORE
Is the material from an ore? currently unused but exists atm for categorizations sake
MAT_CATEGORY_RIGID
Hard materials, such as iron or metal
\ No newline at end of file
diff --git a/code/__DEFINES/maths.html b/code/__DEFINES/maths.html
new file mode 100644
index 000000000000..d28b55c08536
--- /dev/null
+++ b/code/__DEFINES/maths.html
@@ -0,0 +1,7 @@
+code/__DEFINES/maths.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Gets shift x that would be required the bitflag (1<<x)
+We need the round because log has floating-point inaccuracy, and if we undershoot at all on list indexing we'll get the wrong index.
Converts a probability/second chance to probability/delta_time chance
+For example, if you want an event to happen with a 10% per second chance, but your proc only runs every 5 seconds, do if(prob(100*DT_PROB_RATE(0.1, 5)))
Gives the number of pixels in an orthogonal line of tiles.
Define Details
DT_PROB
Like DT_PROB_RATE but easier to use, simply put if(DT_PROB(10, 5))
DT_PROB_RATE
Converts a probability/second chance to probability/delta_time chance
+For example, if you want an event to happen with a 10% per second chance, but your proc only runs every 5 seconds, do if(prob(100*DT_PROB_RATE(0.1, 5)))
FORCE_BOOLEAN
Make sure something is a boolean TRUE/FALSE 1/0 value, since things like bitfield & bitflag doesn't always give 1s and 0s.
LOGISTIC_FUNCTION
A function that exponentially approaches a maximum value of L
+k is the rate at which is approaches L, x_0 is the point where the function = 0
MANHATTAN_DISTANCE
Taxicab distance--gets you the actual time it takes to get from one turf to another due to how we calculate diagonal movement
TILES_TO_PIXELS
Gives the number of pixels in an orthogonal line of tiles.
TOBITSHIFT
Gets shift x that would be required the bitflag (1<<x)
+We need the round because log has floating-point inaccuracy, and if we undershoot at all on list indexing we'll get the wrong index.
\ No newline at end of file
diff --git a/code/__DEFINES/mecha.html b/code/__DEFINES/mecha.html
new file mode 100644
index 000000000000..4b0b092ce922
--- /dev/null
+++ b/code/__DEFINES/mecha.html
@@ -0,0 +1 @@
+code/__DEFINES/mecha.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__DEFINES/misc.html b/code/__DEFINES/misc.html
new file mode 100644
index 000000000000..84c23f134271
--- /dev/null
+++ b/code/__DEFINES/misc.html
@@ -0,0 +1 @@
+code/__DEFINES/misc.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
yeah yeah i'm a lazy asshole who can't debug yeah yeah
PIXELS
world.icon_size
\ No newline at end of file
diff --git a/code/__DEFINES/mobs.html b/code/__DEFINES/mobs.html
new file mode 100644
index 000000000000..a1c150bd9ee2
--- /dev/null
+++ b/code/__DEFINES/mobs.html
@@ -0,0 +1 @@
+code/__DEFINES/mobs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Define for spawning megafauna instead of a mob for cave gen
Define Details
MOB_NANITES
Mobs that otherwise support nanites
SPAWN_MEGAFAUNA
Define for spawning megafauna instead of a mob for cave gen
\ No newline at end of file
diff --git a/code/__DEFINES/mobs/innate_abilities.html b/code/__DEFINES/mobs/innate_abilities.html
new file mode 100644
index 000000000000..52f30a0f4068
--- /dev/null
+++ b/code/__DEFINES/mobs/innate_abilities.html
@@ -0,0 +1,3 @@
+code/__DEFINES/mobs/innate_abilities.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Full customization and transformation of mutantparts/hair/sprite accessories/etc - excludes name by default
INNATE_ABILITY_LIMB_REGROWTH
limb regrowth
INNATE_ABILITY_SLIME_BLOBFORM
Slime blobform
PROPERTY_BLOBFORM_COLOR
Blobform color
PROPERTY_CUSTOMIZATION_SILENT
ability properties
+is this silent?
PROPERTY_LIMB_REGROWTH_USAGE_TYPE
limb regrowth usage type
REGROWTH_USES_BLOOD
blood
\ No newline at end of file
diff --git a/code/__DEFINES/mobs/slowdowns.html b/code/__DEFINES/mobs/slowdowns.html
new file mode 100644
index 000000000000..b935279ae87c
--- /dev/null
+++ b/code/__DEFINES/mobs/slowdowns.html
@@ -0,0 +1 @@
+code/__DEFINES/mobs/slowdowns.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
How much someone is slowed from fireman carrying a human
PIGGYBACK_CARRY_SLOWDOWN
How much someone is slowed by piggybacking a human
PULL_PRONE_SLOWDOWN
How much someone is slowed from pulling a prone human
SOFTCRIT_ADD_SLOWDOWN
slowdown when in softcrit. Note that crawling slowdown will also apply at the same time!
\ No newline at end of file
diff --git a/code/__DEFINES/mod.html b/code/__DEFINES/mod.html
new file mode 100644
index 000000000000..d406435b8f93
--- /dev/null
+++ b/code/__DEFINES/mod.html
@@ -0,0 +1 @@
+code/__DEFINES/mod.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Actively usable module, you may only have one selected at a time.
Define Details
DEFAULT_CHARGE_DRAIN
Default cell drain per process on MODsuits
DEFAULT_MAX_COMPLEXITY
Default value for the max_complexity var on MODsuits
MODULE_ACTIVE
Actively usable module, you may only have one selected at a time.
MODULE_PASSIVE
Passive module, just acts when put in naturally.
MODULE_TOGGLE
Toggle module, you turn it on/off and it does stuff.
MODULE_USABLE
Usable module, does something when you press a button.
MOD_ACTIVATION_STEP_TIME
Default time for a part to seal
\ No newline at end of file
diff --git a/code/__DEFINES/movement.html b/code/__DEFINES/movement.html
new file mode 100644
index 000000000000..c570cea3e364
--- /dev/null
+++ b/code/__DEFINES/movement.html
@@ -0,0 +1,15 @@
+code/__DEFINES/movement.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
The maximum for glide_size to be clamped to.
+This shouldn't be higher than the icon size, and generally you shouldn't be changing this, but it's here just in case.
Broken down, here's what this does:
+divides the world icon_size (32) by delay divided by ticklag to get the number of pixels something should be moving each tick.
+The division result is given a min value of 1 to prevent obscenely slow glide sizes from being set
+Then that's multiplied by the global glide size multiplier. 1.25 by default feels pretty close to spot on. This is just to try to get byond to behave.
+The whole result is then clamped to within the range above.
+Not very readable but it works
Enables smooth movement
+Set appearance flags in vars
Define Details
DELAY_TO_GLIDE_SIZE
Broken down, here's what this does:
+divides the world icon_size (32) by delay divided by ticklag to get the number of pixels something should be moving each tick.
+The division result is given a min value of 1 to prevent obscenely slow glide sizes from being set
+Then that's multiplied by the global glide size multiplier. 1.25 by default feels pretty close to spot on. This is just to try to get byond to behave.
+The whole result is then clamped to within the range above.
+Not very readable but it works
MAX_GLIDE_SIZE
The maximum for glide_size to be clamped to.
+This shouldn't be higher than the icon size, and generally you shouldn't be changing this, but it's here just in case.
MIN_GLIDE_SIZE
The minimum for glide_size to be clamped to.
SET_APPEARANCE_FLAGS
Enables smooth movement
+Set appearance flags in vars
\ No newline at end of file
diff --git a/code/__DEFINES/nanites.html b/code/__DEFINES/nanites.html
new file mode 100644
index 000000000000..c832ad98132c
--- /dev/null
+++ b/code/__DEFINES/nanites.html
@@ -0,0 +1 @@
+code/__DEFINES/nanites.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Nanite Extra Settings - Note that these will also be the names displayed in the UI
Define Details
NANITE_PROTOCOL_REPLICATION
Nanite Protocol types
NESTYPE_TEXT
Nanite extra settings types: used to help uis know what type an extra setting is
NES_SENT_CODE
Nanite Extra Settings - Note that these will also be the names displayed in the UI
\ No newline at end of file
diff --git a/code/__DEFINES/overlays.html b/code/__DEFINES/overlays.html
new file mode 100644
index 000000000000..0261c172afe9
--- /dev/null
+++ b/code/__DEFINES/overlays.html
@@ -0,0 +1 @@
+code/__DEFINES/overlays.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Checks if an atom has reached the overlay limit, and make a loud error if it does.
Define Details
VALIDATE_OVERLAY_LIMIT
Checks if an atom has reached the overlay limit, and make a loud error if it does.
\ No newline at end of file
diff --git a/code/__DEFINES/pinpointers.html b/code/__DEFINES/pinpointers.html
new file mode 100644
index 000000000000..298d7c7aa09a
--- /dev/null
+++ b/code/__DEFINES/pinpointers.html
@@ -0,0 +1 @@
+code/__DEFINES/pinpointers.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Performs any operations that ought to run after an appearance change
Define Details
TRACK_NUKE_DISK
Performs any operations that ought to run after an appearance change
\ No newline at end of file
diff --git a/code/__DEFINES/power.html b/code/__DEFINES/power.html
new file mode 100644
index 000000000000..07400d5bf079
--- /dev/null
+++ b/code/__DEFINES/power.html
@@ -0,0 +1 @@
+code/__DEFINES/power.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__DEFINES/procpath.html b/code/__DEFINES/procpath.html
new file mode 100644
index 000000000000..cfcc76a2fdb5
--- /dev/null
+++ b/code/__DEFINES/procpath.html
@@ -0,0 +1 @@
+code/__DEFINES/procpath.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/__DEFINES/projectiles.html b/code/__DEFINES/projectiles.html
new file mode 100644
index 000000000000..04c59d1f68e9
--- /dev/null
+++ b/code/__DEFINES/projectiles.html
@@ -0,0 +1 @@
+code/__DEFINES/projectiles.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
This atom should force a projectile ricochet from its inherent properties.
Define Details
PROJECTILE_PIERCE_HIT
Hit the thing but go through without deleting. Causes on_hit to be called with pierced = TRUE
PROJECTILE_PIERCE_NONE
Default behavior: hit and delete self
PROJECTILE_PIERCE_PHASE
Entirely phase through the thing without ever hitting.
PROJECTILE_RICOCHET_FORCE
This atom should force a projectile ricochet from its inherent properties.
PROJECTILE_RICOCHET_NO
This atom should not be ricocheted off of from its inherent properties.
PROJECTILE_RICOCHET_PREVENT
This atom should prevent any kind of projectile ricochet from its inherent properties.
PROJECTILE_RICOCHET_YES
This atom should be ricocheted off of from its inherent properties using standard % chance handling.
\ No newline at end of file
diff --git a/code/__DEFINES/qdel.html b/code/__DEFINES/qdel.html
new file mode 100644
index 000000000000..736e0d603bfc
--- /dev/null
+++ b/code/__DEFINES/qdel.html
@@ -0,0 +1,2 @@
+code/__DEFINES/qdel.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
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.
\ No newline at end of file
diff --git a/code/__DEFINES/reagents.html b/code/__DEFINES/reagents.html
new file mode 100644
index 000000000000..34432270c72e
--- /dev/null
+++ b/code/__DEFINES/reagents.html
@@ -0,0 +1,5 @@
+code/__DEFINES/reagents.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Standard reagents value defines.
+Take a grain of salt, only "rare" reagents should have a decent value here, for balance reasons.
+TL;DR Think of it also like general market request price more than rarity.
Define Details
REAGENT_VALUE_NONE
Standard reagents value defines.
+Take a grain of salt, only "rare" reagents should have a decent value here, for balance reasons.
+TL;DR Think of it also like general market request price more than rarity.
\ No newline at end of file
diff --git a/code/__DEFINES/research/anomalies.html b/code/__DEFINES/research/anomalies.html
new file mode 100644
index 000000000000..0236ebaa3d0b
--- /dev/null
+++ b/code/__DEFINES/research/anomalies.html
@@ -0,0 +1 @@
+code/__DEFINES/research/anomalies.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__DEFINES/research/stock_parts.html b/code/__DEFINES/research/stock_parts.html
new file mode 100644
index 000000000000..1672a81047ef
--- /dev/null
+++ b/code/__DEFINES/research/stock_parts.html
@@ -0,0 +1 @@
+code/__DEFINES/research/stock_parts.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Efficiency scaling for stock part level to ore factor. All code concerning lathing and production from raw ores to raw material sheets should be using this.
Define Details
STANDARD_PART_LEVEL_LATHE_COEFFICIENT
Efficiency scaling for stock part level to material usage. All code concerning lathing and production from raw material sheet should be using this.
STANDARD_PART_LEVEL_ORE_COEFFICIENT
Efficiency scaling for stock part level to ore factor. All code concerning lathing and production from raw ores to raw material sheets should be using this.
\ No newline at end of file
diff --git a/code/__DEFINES/robots.html b/code/__DEFINES/robots.html
new file mode 100644
index 000000000000..4eddab77481b
--- /dev/null
+++ b/code/__DEFINES/robots.html
@@ -0,0 +1 @@
+code/__DEFINES/robots.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Defines for whether or not module slots are broken.
Define Details
BORG_MODULE_ALL_DISABLED
Defines for whether or not module slots are broken.
\ No newline at end of file
diff --git a/code/__DEFINES/rust_g.html b/code/__DEFINES/rust_g.html
new file mode 100644
index 000000000000..d7d928c71ad1
--- /dev/null
+++ b/code/__DEFINES/rust_g.html
@@ -0,0 +1,157 @@
+code/__DEFINES/rust_g.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Generates a spritesheet at: [file_path][spritesheet_name]_[size_id].png
+The resulting spritesheet arranges icons in a random order, with the position being denoted in the "sprites" return value.
+All icons have the same y coordinate, and their x coordinate is equal to icon_width * position.
Takes in a set of hashes, generate inputs, and DMI filepaths, and compares them to determine cache validity.
+input_hash: xxh64 hash of "sprites" from the cache.
+dmi_hashes: xxh64 hashes of the DMIs in a spritesheet, given by rustg_iconforge_generate with hash_icons enabled. From the cache.
+sprites: The new input that will be passed to rustg_iconforge_generate().
+Returns a CacheResult with the following structure: list(
+"result": "1" (if cache is valid) or "0" (if cache is invalid)
+"fail_reason": "" (emtpy string if valid, otherwise a string containing the invalidation reason or an error with ERROR: prefixed.)
+)
+In the case of an unrecoverable panic from within Rust, this function ONLY returns a string containing the error.
Register a list of nodes into a rust library. This list of nodes must have been serialized in a json.
+Node {// Index of this node in the list of nodes
+unique_id: usize,
+// Position of the node in byond
+x: usize,
+y: usize,
+z: usize,
+// Indexes of nodes connected to this one
+connected_nodes_id: Vec}
+It is important that the node with the unique_id 0 is the first in the json, unique_id 1 right after that, etc.
+It is also important that all unique ids follow. {0, 1, 2, 4} is not a correct list and the registering will fail
+Nodes should not link across z levels.
+A node cannot link twice to the same node and shouldn't link itself either
Add a new node to the static list of nodes. Same rule as registering_nodes applies.
+This node unique_id must be equal to the current length of the static list of nodes
This proc generates a noise grid using worley noise algorithm
Define Details
rustg_acreplace
Run the specified replacement engine with the provided haystack text to replace, returning replaced text.
+
Arguments:
+
+
key - The key for the automaton
+
text - Text to run replacements on
+
rustg_acreplace_with_replacements
Run the specified replacement engine with the provided haystack text to replace, returning replaced text.
+
Arguments:
+
+
key - The key for the automaton
+
text - Text to run replacements on
+
replacements - Replacements for this call. Must be the same length as the set-up patterns
+
rustg_add_node_astar
Add a new node to the static list of nodes. Same rule as registering_nodes applies.
+This node unique_id must be equal to the current length of the static list of nodes
rustg_cnoise_generate
This proc generates a cellular automata noise grid which can be used in procedural generation methods.
+
Returns a single string that goes row by row, with values of 1 representing an alive cell, and a value of 0 representing a dead cell.
+
Arguments:
+
+
percentage: The chance of a turf starting closed
+
smoothing_iterations: The amount of iterations the cellular automata simulates before returning the results
+
birth_limit: If the number of neighboring cells is higher than this amount, a cell is born
+
death_limit: If the number of neighboring cells is lower than this amount, a cell dies
+
width: The width of the grid.
+
height: The height of the grid.
+
rustg_dbp_generate
This proc generates a grid of perlin-like noise
+
Returns a single string that goes row by row, with values of 1 representing an turned on cell, and a value of 0 representing a turned off cell.
+
Arguments:
+
+
seed: seed for the function
+
accuracy: how close this is to the original perlin noise, as accuracy approaches infinity, the noise becomes more and more perlin-like
+
stamp_size: Size of a singular stamp used by the algorithm, think of this as the same stuff as frequency in perlin noise
+
world_size: size of the returned grid.
+
lower_range: lower bound of values selected for. (inclusive)
+
upper_range: upper bound of values selected for. (exclusive)
+
rustg_decode_base64
Decode a given base64 string
rustg_dmi_icon_states
input: must be a path, not an /icon; you have to do your own handling if it is one, as icon objects can't be directly passed to rustg.
+
output: json_encode'd list. json_decode to get a flat list with icon states in the order they're in inside the .dmi
rustg_encode_base64
Encode a given string into base64
rustg_generate_path_astar
Compute the shortest path between start_node and goal_node using A*. Heuristic used is simple geometric distance
rustg_git_commit_date
Returns the date of the given revision in the format YYYY-MM-DD.
+Returns null if the revision is invalid.
rustg_git_revparse
Returns the git hash of the given revision, ex. "HEAD".
rustg_iconforge_cache_valid
Takes in a set of hashes, generate inputs, and DMI filepaths, and compares them to determine cache validity.
+input_hash: xxh64 hash of "sprites" from the cache.
+dmi_hashes: xxh64 hashes of the DMIs in a spritesheet, given by rustg_iconforge_generate with hash_icons enabled. From the cache.
+sprites: The new input that will be passed to rustg_iconforge_generate().
+Returns a CacheResult with the following structure: list(
+"result": "1" (if cache is valid) or "0" (if cache is invalid)
+"fail_reason": "" (emtpy string if valid, otherwise a string containing the invalidation reason or an error with ERROR: prefixed.)
+)
+In the case of an unrecoverable panic from within Rust, this function ONLY returns a string containing the error.
rustg_iconforge_cache_valid_async
Returns a job_id for use with rustg_iconforge_check()
rustg_iconforge_check
Returns the status of an async job_id, or its result if it is completed. See RUSTG_JOB DEFINEs.
rustg_iconforge_cleanup
Clears all cached DMIs and images, freeing up memory.
+This should be used after spritesheets are done being generated.
rustg_iconforge_generate
Generates a spritesheet at: [file_path][spritesheet_name]_[size_id].png
+The resulting spritesheet arranges icons in a random order, with the position being denoted in the "sprites" return value.
+All icons have the same y coordinate, and their x coordinate is equal to icon_width * position.
+
hash_icons is a boolean (0 or 1), and determines if the generator will spend time creating hashes for the output field dmi_hashes.
+These hashes can be heplful for 'smart' caching (see rustg_iconforge_cache_valid), but require extra computation.
+
Spritesheet will contain all sprites listed within "sprites".
+"sprites" format:
+list(
+"sprite_name" = list( // <--- this list is a [SPRITE_OBJECT]
+icon_file = 'icons/path_to/an_icon.dmi',
+icon_state = "some_icon_state",
+dir = SOUTH,
+frame = 1,
+transform = list([TRANSFORM_OBJECT], ...)
+),
+...,
+)
+TRANSFORM_OBJECT format:
+list("type" = RUSTG_ICONFORGE_BLEND_COLOR, "color" = "#ff0000", "blend_mode" = ICON_MULTIPLY)
+list("type" = RUSTG_ICONFORGE_BLEND_ICON, "icon" = [SPRITE_OBJECT], "blend_mode" = ICON_OVERLAY)
+list("type" = RUSTG_ICONFORGE_SCALE, "width" = 32, "height" = 32)
+list("type" = RUSTG_ICONFORGE_CROP, "x1" = 1, "y1" = 1, "x2" = 32, "y2" = 32) // (BYOND icons index from 1,1 to the upper bound, inclusive)
+
Returns a SpritesheetResult as JSON, containing fields:
+list(
+"sizes" = list("32x32", "64x64", ...),
+"sprites" = list("sprite_name" = list("size_id" = "32x32", "position" = 0), ...),
+"dmi_hashes" = list("icons/path_to/an_icon.dmi" = "d6325c5b4304fb03", ...),
+"sprites_hash" = "a2015e5ff403fb5c", // This is the xxh64 hash of the INPUT field "sprites".
+"error" = "[A string, empty if there were no errors.]"
+)
+In the case of an unrecoverable panic from within Rust, this function ONLY returns a string containing the error.
rustg_iconforge_generate_async
Returns a job_id for use with rustg_iconforge_check()
rustg_redis_connect_rq
Connects to a given redis server.
+
Arguments:
+
+
addr - The address of the server, for example "redis://127.0.0.1/"
+
rustg_redis_lpop
https://redis.io/commands/lpop/
+
Arguments
+
+
key (string) - The key to use
+
count (string|null) - The amount to pop off the list, pass null to omit (thus just 1)
+
+
Note: count was added in Redis version 6.2.0
rustg_redis_lpush
https://redis.io/commands/lpush/
+
Arguments
+
+
key (string) - The key to use
+
elements (list) - The elements to push, use a list even if there's only one element.
+
rustg_redis_lrange
https://redis.io/commands/lrange/
+
Arguments
+
+
key (string) - The key to use
+
start (string) - The zero-based index to start retrieving at
+
stop (string) - The zero-based index to stop retrieving at (inclusive)
+
rustg_register_nodes_astar
Register a list of nodes into a rust library. This list of nodes must have been serialized in a json.
+Node {// Index of this node in the list of nodes
+unique_id: usize,
+// Position of the node in byond
+x: usize,
+y: usize,
+z: usize,
+// Indexes of nodes connected to this one
+connected_nodes_id: Vec}
+It is important that the node with the unique_id 0 is the first in the json, unique_id 1 right after that, etc.
+It is also important that all unique ids follow. {0, 1, 2, 4} is not a correct list and the registering will fail
+Nodes should not link across z levels.
+A node cannot link twice to the same node and shouldn't link itself either
rustg_remove_node_astar
Remove every link to the node with unique_id. Replace that node by null
rustg_setup_acreplace
Sets up the Aho-Corasick automaton with its default options.
+
The search patterns list and the replacements must be of the same length when replace is run, but an empty replacements list is allowed if replacements are supplied with the replace call
+Arguments:
+
+
key - The key for the automaton, to be used with subsequent rustg_acreplace/rustg_acreplace_with_replacements calls
+
patterns - A non-associative list of strings to search for
+
replacements - Default replacements for this automaton, used with rustg_acreplace
+
rustg_setup_acreplace_with_options
Sets up the Aho-Corasick automaton using supplied options.
+
The search patterns list and the replacements must be of the same length when replace is run, but an empty replacements list is allowed if replacements are supplied with the replace call
+Arguments:
+
+
key - The key for the automaton, to be used with subsequent rustg_acreplace/rustg_acreplace_with_replacements calls
+
options - An associative list like list("anchored" = 0, "ascii_case_insensitive" = 0, "match_kind" = "Standard"). The values shown on the example are the defaults, and default values may be omitted. See the identically named methods at https://docs.rs/aho-corasick/latest/aho_corasick/struct.AhoCorasickBuilder.html to see what the options do.
+
patterns - A non-associative list of strings to search for
+
replacements - Default replacements for this automaton, used with rustg_acreplace
+
rustg_worley_generate
This proc generates a noise grid using worley noise algorithm
+
Returns a single string that goes row by row, with values of 1 representing an alive cell, and a value of 0 representing a dead cell.
+
Arguments:
+
+
region_size: The size of regions
+
threshold: the value that determines wether a cell is dead or alive
+
node_per_region_chance: chance of a node existiing in a region
+
size: size of the returned grid
+
node_min: minimum amount of nodes in a region (after the node_per_region_chance is applied)
+
node_max: maximum amount of nodes in a region
+
\ No newline at end of file
diff --git a/code/__DEFINES/screentips.html b/code/__DEFINES/screentips.html
new file mode 100644
index 000000000000..a5d7d65612e5
--- /dev/null
+++ b/code/__DEFINES/screentips.html
@@ -0,0 +1 @@
+code/__DEFINES/screentips.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Screentips are only enabled when they have context
SCREENTIP_PREFERENCE_DISABLED
Screentips are always disabled
SCREENTIP_PREFERENCE_ENABLED
Screentips are always enabled
SCREENTIP_PREFERENCE_NO_CONTEXT
Screentips enabled, no context
\ No newline at end of file
diff --git a/code/__DEFINES/skills/defines.html b/code/__DEFINES/skills/defines.html
new file mode 100644
index 000000000000..b2e08a104499
--- /dev/null
+++ b/code/__DEFINES/skills/defines.html
@@ -0,0 +1 @@
+code/__DEFINES/skills/defines.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Categories of skills, these will be displayed alphabetically.
Define Details
MODIFIER_SKILL_BODYBOUND
Makes it untransferred by mind.transfer_to()
MODIFIER_SKILL_HANDICAP
Does the opposite of the above. combining both effectively results in the skill being locked to the specified value.
MODIFIER_SKILL_MULT
makes the skill modifier a multiplier, not an addendum.
MODIFIER_SKILL_ORIGIN_DIFF
Adds the difference of the current value and the value stored at the time the modifier was added to the result.
MODIFIER_SKILL_PRIORITY_LOW
Ascending priority defines.
MODIFIER_SKILL_VALUE
Skill modifier defines and flags.
MODIFIER_SKILL_VIRTUE
Sets the skill to the defined value if lower than that. Highly reccomended you don't use it with MODIFIER_SKILL_MULT.
MODIFIER_USE_THRESHOLDS
Will this skill use competency thresholds instead of preset values
SKILL_PROGRESSION_BINARY
true/false
SKILL_PROGRESSION_ENUM
Enum
SKILL_PROGRESSION_LEVEL
Levels
SKILL_PROGRESSION_NUMERICAL
numerical
SKILL_UI_CAT_ENG
Categories of skills, these will be displayed alphabetically.
SKILL_USE_TOOL
Items skill_traits and other defines
STD_XP_LVL_UP
Level/Experience skills defines.
THRESHOLD_UNTRAINED
competency_threshold defines
\ No newline at end of file
diff --git a/code/__DEFINES/skills/helpers.html b/code/__DEFINES/skills/helpers.html
new file mode 100644
index 000000000000..dc7234107465
--- /dev/null
+++ b/code/__DEFINES/skills/helpers.html
@@ -0,0 +1,5 @@
+code/__DEFINES/skills/helpers.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
A simple universal comsig for body bound skill modifiers.
+Technically they are still bound to the mind, but other signal procs will take care of adding and removing the modifier
+from/to new/old minds.
Macro used when adding generic singleton skill modifiers.
Define Details
ADD_SINGLETON_SKILL_MODIFIER
Macro used when adding generic singleton skill modifiers.
ADD_SKILL_MODIFIER_BODY
A simple universal comsig for body bound skill modifiers.
+Technically they are still bound to the mind, but other signal procs will take care of adding and removing the modifier
+from/to new/old minds.
GET_SKILL_MOD_ID
Simple generic identifier macro.
REMOVE_SKILL_MODIFIER_BODY
Same as above but to remove the skill modifier.
SANITIZE_SKILL_LEVEL
Doesn't automatically round the value.
\ No newline at end of file
diff --git a/code/__DEFINES/sound.html b/code/__DEFINES/sound.html
new file mode 100644
index 000000000000..859eb042238e
--- /dev/null
+++ b/code/__DEFINES/sound.html
@@ -0,0 +1 @@
+code/__DEFINES/sound.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
default extra range for sounds considered to be quieter
SILENCED_SOUND_EXTRARANGE
The range deducted from sound range for things that are considered silent / sneaky
SOUND_DEFAULT_DISTANCE_MULTIPLIER
Default distance multiplier for sounds
SOUND_DEFAULT_FALLOFF_DISTANCE
Percentage of sound's range where no falloff is applied
SOUND_DEFAULT_MULTIPLIER_EFFECT_RANGE
Default range at which sound distance multiplier applies
SOUND_FALLOFF_EXPONENT
The default exponent of sound falloff
SOUND_RANGE
Default range of a sound.
\ No newline at end of file
diff --git a/code/__DEFINES/spaceman_dmm.html b/code/__DEFINES/spaceman_dmm.html
new file mode 100644
index 000000000000..b3dfd54a54ee
--- /dev/null
+++ b/code/__DEFINES/spaceman_dmm.html
@@ -0,0 +1,30 @@
+code/__DEFINES/spaceman_dmm.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
If set, will enable a diagnostic on children of the proc it is set on which do
+not contain any ..() parent calls. This can help with finding situations
+where a signal or other important handling in the parent proc is being skipped.
+Child procs may set this setting to 0 instead to override the check.
If set, raise a warning for any child procs that override this one,
+regardless of if it calls parent or not.
+This functions in a similar way to the final keyword in some languages.
+This cannot be disabled by child overrides.
If set, raise a warning if the proc or one of the sub-procs it calls
+uses a blocking call, such as sleep() or input() without using set waitfor = 0
+This cannot be disabled by child overrides.
If set, ensure a proc is 'pure', such that it does not make any changes
+outside itself or output. This also checks to make sure anything using
+this proc doesn't invoke it without making use of the return value.
+This cannot be disabled by child overrides.
Protected vars can only be called by things of the same type or subtypes.
Define Details
PRIVATE_PROC
Private procs can only be called by things of exactly the same type.
PROTECTED_PROC
Protected procs can only be call by things of the same type or subtypes.
RETURN_TYPE
Sets a return type expression for a proc. The return type can take the forms:
+
/typepath - a raw typepath. The return type of the proc is the type named.
+
param - a typepath given as a parameter, for procs which return an instance of the passed-in type.
+
param.type - the static type of a passed-in parameter, for procs which
+return their input or otherwise another value of the same type.
+
param[_].type - the static type of a passed-in parameter, with one level
+of /list stripped, for procs which select one item from a list. The [_]
+may be repeated to strip more levels of /list.
SHOULD_BE_PURE
If set, ensure a proc is 'pure', such that it does not make any changes
+outside itself or output. This also checks to make sure anything using
+this proc doesn't invoke it without making use of the return value.
+This cannot be disabled by child overrides.
SHOULD_CALL_PARENT
If set, will enable a diagnostic on children of the proc it is set on which do
+not contain any ..() parent calls. This can help with finding situations
+where a signal or other important handling in the parent proc is being skipped.
+Child procs may set this setting to 0 instead to override the check.
SHOULD_NOT_OVERRIDE
If set, raise a warning for any child procs that override this one,
+regardless of if it calls parent or not.
+This functions in a similar way to the final keyword in some languages.
+This cannot be disabled by child overrides.
SHOULD_NOT_SLEEP
If set, raise a warning if the proc or one of the sub-procs it calls
+uses a blocking call, such as sleep() or input() without using set waitfor = 0
+This cannot be disabled by child overrides.
UNLINT
If set, will not lint.
VAR_FINAL
If set, overriding their value isn't permitted by types that inherit it.
VAR_PRIVATE
Private vars can only be called by things of exactly the same type.
VAR_PROTECTED
Protected vars can only be called by things of the same type or subtypes.
\ No newline at end of file
diff --git a/code/__DEFINES/station.html b/code/__DEFINES/station.html
new file mode 100644
index 000000000000..957d00302696
--- /dev/null
+++ b/code/__DEFINES/station.html
@@ -0,0 +1 @@
+code/__DEFINES/station.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
The data file that future station traits are stored in
Define Details
FUTURE_STATION_TRAITS_FILE
The data file that future station traits are stored in
\ No newline at end of file
diff --git a/code/__DEFINES/status_effects.html b/code/__DEFINES/status_effects.html
new file mode 100644
index 000000000000..0ad36de57293
--- /dev/null
+++ b/code/__DEFINES/status_effects.html
@@ -0,0 +1 @@
+code/__DEFINES/status_effects.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
If the incapacitated status effect will ignore a mob in stasis (stasis beds)
Define Details
IGNORE_STASIS
If the incapacitated status effect will ignore a mob in stasis (stasis beds)
STATUS_EFFECT_DAZED
The affected is unable to use or pickup items
STATUS_EFFECT_OFF_BALANCE
shoves inflict this to indicate the next shove while this is in effect should disarm guns
STATUS_EFFECT_STAGGERED
Blocks sprint
STATUS_EFFECT_STUN
The affected is unable to move, or to use, hold, or pickup items.
\ No newline at end of file
diff --git a/code/__DEFINES/storage/_storage.html b/code/__DEFINES/storage/_storage.html
new file mode 100644
index 000000000000..13f1beff7329
--- /dev/null
+++ b/code/__DEFINES/storage/_storage.html
@@ -0,0 +1 @@
+code/__DEFINES/storage/_storage.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Use the new volume system. Will automatically force rendering to use the new volume/baystation scaling UI so this is kind of incompatible with stuff like stack storage etc etc.
Essentially means it cannot be picked up or placed in an inventory, ex: Mech Parts, Safe - Can not fit in Boh
Define Details
MAXIMUM_VOLUMETRIC_ITEMS
Maximum number of objects that will be allowed to be displayed using the volumetric display system. Arbitrary number to prevent server lockups.
MINIMUM_PIXELS_PER_ITEM
Minimum pixels an item must have in volumetric scaled storage UI
STORAGE_LIMIT_COMBINED_W_CLASS
Check max_combined_w_class.
STORAGE_LIMIT_MAX_ITEMS
Check max_items and contents.len when trying to insert
STORAGE_LIMIT_MAX_W_CLASS
Use max_w_class
STORAGE_LIMIT_VOLUME
Use the new volume system. Will automatically force rendering to use the new volume/baystation scaling UI so this is kind of incompatible with stuff like stack storage etc etc.
VOLUMETRIC_STORAGE_BOX_BORDER_SIZE
Size of EACH left/right border icon for volumetric boxes
VOLUMETRIC_STORAGE_BOX_ICON_SIZE
Size of volumetric box icon
VOLUMETRIC_STORAGE_EDGE_PADDING
How much padding to give to edges
VOLUMETRIC_STORAGE_ITEM_PADDING
How much padding to give between items
WEIGHT_CLASS_BULKY
Items that can be weilded or equipped but not stored in a normal bag, ex: Defibrillator, Backpack, Space Suits
WEIGHT_CLASS_GIGANTIC
Essentially means it cannot be picked up or placed in an inventory, ex: Mech Parts, Safe - Can not fit in Boh
WEIGHT_CLASS_HUGE
Usually represents objects that require two hands to operate, ex: Shotgun, Two Handed Melee Weapons - Can not fit in Boh
WEIGHT_CLASS_NORMAL
Standard backpacks can carry tiny, small & normal items, ex: Fire extinguisher, Stunbaton, Gas Mask, Metal Sheets
WEIGHT_CLASS_SMALL
Pockets can hold small and tiny items, ex: Flashlight, Multitool, Grenades, GPS Device
WEIGHT_CLASS_TINY
Usually items smaller then a human hand, ex: Playing Cards, Lighter, Scalpel, Coins/Money
\ No newline at end of file
diff --git a/code/__DEFINES/storage/volumetrics.html b/code/__DEFINES/storage/volumetrics.html
new file mode 100644
index 000000000000..a67854fb98f3
--- /dev/null
+++ b/code/__DEFINES/storage/volumetrics.html
@@ -0,0 +1 @@
+code/__DEFINES/storage/volumetrics.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
volume for a shotgun stripper clip holding 4 shells
Define Details
AUTO_SCALE_STORAGE_VOLUME
Macro for automatically getting the volume of a storage item from its max_w_class and max_combined_w_class.
AUTO_SCALE_VOLUME
Macro for automatically getting the volume of an item from its w_class.
ITEM_VOLUME_DISK
volume for a data disk
ITEM_VOLUME_STRIPPER_CLIP
volume for a shotgun stripper clip holding 4 shells
\ No newline at end of file
diff --git a/code/__DEFINES/strippable.html b/code/__DEFINES/strippable.html
new file mode 100644
index 000000000000..fe834a5bfc80
--- /dev/null
+++ b/code/__DEFINES/strippable.html
@@ -0,0 +1 @@
+code/__DEFINES/strippable.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
This slot is completely obscured, and cannot be accessed.
STRIPPABLE_OBSCURING_HIDDEN
This slot can't be seen, but can be accessed.
STRIPPABLE_OBSCURING_NONE
This slot is not obscured.
\ No newline at end of file
diff --git a/code/__DEFINES/subsystems.html b/code/__DEFINES/subsystems.html
new file mode 100644
index 000000000000..702d46bede8e
--- /dev/null
+++ b/code/__DEFINES/subsystems.html
@@ -0,0 +1,36 @@
+code/__DEFINES/subsystems.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
code/__DEFINES/subsystems.dm
Defines for subsystems and overlays
+
Lots of important stuff in here, make sure you have your brain switched on
+when editing this file
make sure you add an update to the schema_version stable in the db changelog
DB_MINOR_VERSION
DB minor schema version
+
Update this whenever the db schema changes
+
make sure you add an update to the schema_version stable in the db changelog
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_IMMEDIATE
type and all subtypes should always immediately call Initialize in New()
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
+
+
+
\ No newline at end of file
diff --git a/code/__DEFINES/text.html b/code/__DEFINES/text.html
new file mode 100644
index 000000000000..e63234fa1840
--- /dev/null
+++ b/code/__DEFINES/text.html
@@ -0,0 +1,18 @@
+code/__DEFINES/text.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Macro from Lummox used to get height from a MeasureText proc.
+resolves the MeasureText() return value once, then resolves the height, then sets return_var to that.
Define Details
FOURSPACES
Does 4 spaces. Used as a makeshift tabulator.
MAPTEXT
Standard maptext
+Prepares a text to be used for maptext. Use this so it doesn't look hideous.
MAPTEXT_GRAND9K
Standard size (ie: normal runechat) - Size options: 6pt 12pt 18pt.
MAPTEXT_PIXELLARI
Pixel-perfect scaled fonts for use in the MAP element as defined in skin.dmf
+
Four sizes to choose from, use the sizes as mentioned below.
+Between the variations and a step there should be an option that fits your use case.
+BYOND uses pt sizing, different than px used in TGUI. Using px will make it look blurry due to poor antialiasing.
+
Default sizes are prefilled in the macro for ease of use and a consistent visual look.
+To use a step other than the default in the macro, specify it in a span style.
+For example: MAPTEXT_PIXELLARI("Some large maptext here")
+Large size (ie: context tooltips) - Size options: 12pt 24pt.
Prepares a text to be used for maptext, using a variable size font.
+
More flexible but doesn't scale pixel perfect to BYOND icon resolutions.
+(May be blurry.) Can use any size in pt or px.
+
You MUST Specify the size when using the macro
+For example: MAPTEXT_VCR_OSD_MONO("Some large maptext here")
+Prepares a text to be used for maptext, using a variable size font.
+Variable size font. More flexible but doesn't scale pixel perfect to BYOND icon resolutions. (May be blurry.) Can use any size in pt or px.
WXH_TO_HEIGHT
Macro from Lummox used to get height from a MeasureText proc.
+resolves the MeasureText() return value once, then resolves the height, then sets return_var to that.
\ No newline at end of file
diff --git a/code/__DEFINES/tgs.html b/code/__DEFINES/tgs.html
new file mode 100644
index 000000000000..90b0c299fd63
--- /dev/null
+++ b/code/__DEFINES/tgs.html
@@ -0,0 +1 @@
+code/__DEFINES/tgs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
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.
See https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure for details.
Define Details
TGS_ENGINE_TYPE_BYOND
The Build Your Own Net Dream engine.
TGS_ENGINE_TYPE_OPENDREAM
The OpenDream engine.
TGS_EVENT_COMPILE_CANCELLED
When a compile is cancelled. No parameters.
TGS_EVENT_COMPILE_COMPLETE
When a compile operation completes. Note, this event fires before the new .dmb is loaded into the watchdog. Consider using the TGS_EVENT_DEPLOYMENT_COMPLETE instead. Parameters: Game directory path.
TGS_EVENT_COMPILE_FAILURE
When a compile fails. Parameters: Game directory path, [TRUE]/[FALSE] based on if the cause for failure was DMAPI validation.
TGS_EVENT_COMPILE_START
When the compiler starts running. Parameters: Game directory path, origin commit SHA.
TGS_EVENT_DEPLOYMENT_CLEANUP
Whenever a deployment folder is deleted from disk. Parameters: Game directory path.
TGS_EVENT_DEPLOYMENT_COMPLETE
When a deployment completes. No Parameters.
TGS_EVENT_ENGINE_ACTIVE_VERSION_CHANGE
When the active engine version changes. Parameters: (Nullable) Version string of the current engine, version string of the new engine.
TGS_EVENT_ENGINE_INSTALL_FAIL
When a engine install operation fails. Parameters: Error message
TGS_EVENT_ENGINE_INSTALL_START
Before a engine install operation begins. Parameters: Version string of the installing engine.
TGS_EVENT_HEALTH_CHECK
When the watchdog sends a health check to DD. No parameters.
TGS_EVENT_INSTANCE_AUTO_UPDATE_START
When an automatic update for the current instance begins. No parameters.
TGS_EVENT_INSTANCE_RENAMED
Before the instance is renamed, extra parameter is the new name.
TGS_EVENT_PORT_SWAP
Before a port change is about to happen, extra parameters is new port.
TGS_EVENT_PRE_DREAM_MAKER
After CodeModifications are applied, before DreamMaker is run. Parameters: Game directory path, origin commit sha, version string of the used engine.
TGS_EVENT_REBOOT_MODE_CHANGE
Before a reboot mode change, extras parameters are the current and new reboot mode enums.
TGS_EVENT_REPO_CHECKOUT
When the repository performs a checkout. Parameters: Checkout git object.
TGS_EVENT_REPO_FETCH
When the repository performs a fetch operation. No parameters.
TGS_EVENT_REPO_MERGE_CONFLICT
When the repository encounters a merge conflict: Parameters: Base SHA, target SHA, base reference, target reference.
TGS_EVENT_REPO_MERGE_PULL_REQUEST
When the repository test merges. Parameters: PR Number, PR Sha, (Nullable) Comment made by TGS user.
TGS_EVENT_REPO_PRE_SYNCHRONIZE
Before the repository makes a sychronize operation. Parameters: Absolute repostiory path.
TGS_EVENT_REPO_RESET_ORIGIN
When the repository is reset to its origin reference. Parameters: Reference name, Commit SHA.
TGS_EVENT_REPO_SUBMODULE_UPDATE
After a single submodule update is performed. Parameters: Updated submodule name.
TGS_EVENT_WATCHDOG_DETACH
Before the watchdog detaches for a TGS update/restart. No parameters.
TGS_EVENT_WATCHDOG_REATTACH
After the watchdog reattaches to DD, extra parameter is the new /datum/tgs_version of the server.
TGS_EVENT_WATCHDOG_SHUTDOWN
Before the watchdog shuts down. Not sent for graceful shutdowns. No parameters.
TGS_EVENT_WORLD_PRIME
Watchdog event when TgsInitializationComplete() is called. No parameters.
TGS_FILE2TEXT_NATIVE
Consumers SHOULD create this define if you want to do TGS configuration outside of this file.
TGS_REBOOT_MODE_NORMAL
The server will reboot normally.
TGS_REBOOT_MODE_RESTART
The watchdog will restart on reboot.
TGS_REBOOT_MODE_SHUTDOWN
The server will stop running on reboot.
TGS_SECURITY_SAFE
DreamDaemon Safe security level.
TGS_SECURITY_TRUSTED
DreamDaemon Trusted security level.
TGS_SECURITY_ULTRASAFE
DreamDaemon Ultrasafe security level.
TGS_TOPIC
Consumers MUST run this macro at the start of [/world/proc/Topic].
TGS_VISIBILITY_INVISIBLE
DreamDaemon invisible visibility level.
TGS_VISIBILITY_PRIVATE
DreamDaemon private visibility level.
TGS_VISIBILITY_PUBLIC
DreamDaemon public visibility level.
\ No newline at end of file
diff --git a/code/__DEFINES/tgui.html b/code/__DEFINES/tgui.html
new file mode 100644
index 000000000000..89540845fe5a
--- /dev/null
+++ b/code/__DEFINES/tgui.html
@@ -0,0 +1 @@
+code/__DEFINES/tgui.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
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
\ No newline at end of file
diff --git a/code/__DEFINES/traits.html b/code/__DEFINES/traits.html
new file mode 100644
index 000000000000..c6a433091d7a
--- /dev/null
+++ b/code/__DEFINES/traits.html
@@ -0,0 +1,3 @@
+code/__DEFINES/traits.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
This trait is added by the active directional block system.
ACTIVE_PARRY_TRAIT
This trait is added by the parry system.
LIPSTICK_TRAIT
Trait granted by lipstick
MAFIA_TRAIT
Trait associated with mafia
MAPPING_HELPER_TRAIT
obtained from mapping helper
MOD_TRAIT
Trait applied by MODsuits.
STATION_TRAIT_BANANIUM_SHIPMENTS
Traits given by station traits
TRAIT_ANTIMAGIC_NO_SELFBLOCK
Like antimagic, but doesn't block the user from casting
TRAIT_BEING_CARRIED
Used for fireman carry to have mobe not be dropped when passing by a prone individual.
TRAIT_COMBAT_MODE_LOCKED
COMBAT MODE/SPRINT MODE TRAITS
+Prevents combat mode from being active.
TRAIT_HANDS_BLOCKED
Prevents usage of manipulation appendages (picking, holding or using items, manipulating storage).
TRAIT_HUMAN_NO_RENDER
forces us to not render our overlays
TRAIT_IMMOBILIZED
Prevents voluntary movement.
TRAIT_KEEP_TOGETHER
Used for managing KEEP_TOGETHER in [appearance_flags]
TRAIT_KISS_OF_DEATH
Blowing kisses that actually do damage to the victim
TRAIT_LAVA_IMMUNE
Weather immunities, also protect mobs inside them.
TRAIT_LIVING_NO_DENSITY
forces update_density to make us not dense
TRAIT_MESON_VISION
Gives us turf vision through walls and slight night vision
TRAIT_MOBILITY_NOMOVE
Disallow movement
TRAIT_MOBILITY_NOPICKUP
Disallow pickup
TRAIT_MOBILITY_NOREST
Disallow resting/unresting
TRAIT_MOBILITY_NOUSE
Disallow item use
TRAIT_NO_STAMINA_BUFFER_REGENERATION
Prevents stamina buffer regeneration
TRAIT_NO_STAMINA_REGENERATION
Prevents stamina regeneration
TRAIT_REAGENT_SCANNER
Lets us scan reagents
TRAIT_SPRINT_LOCKED
Prevents sprinting from being active.
TRAIT_THERMAL_VISION
Gives us mob vision through walls and slight night vision
TRAIT_TRUE_NIGHT_VISION
Gives us Night vision
TRAIT_XRAY_VISION
Gives us turf, mob and object vision through walls
TURF_Z_TRANSPARENT_TRAIT
Turf trait for when a turf is transparent
\ No newline at end of file
diff --git a/code/__DEFINES/traits/sources.html b/code/__DEFINES/traits/sources.html
new file mode 100644
index 000000000000..a503bda0935b
--- /dev/null
+++ b/code/__DEFINES/traits/sources.html
@@ -0,0 +1 @@
+code/__DEFINES/traits/sources.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__DEFINES/uplink.html b/code/__DEFINES/uplink.html
new file mode 100644
index 000000000000..1974791ed79d
--- /dev/null
+++ b/code/__DEFINES/uplink.html
@@ -0,0 +1 @@
+code/__DEFINES/uplink.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__DEFINES/vehicles.html b/code/__DEFINES/vehicles.html
new file mode 100644
index 000000000000..08615d0fba7e
--- /dev/null
+++ b/code/__DEFINES/vehicles.html
@@ -0,0 +1 @@
+code/__DEFINES/vehicles.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
ez define for giving a single pilot mech all the flags it needs.
VEHICLE_CONTROL_DRIVE
controls the vehicles movement
VEHICLE_CONTROL_EQUIPMENT
using equipment/weapons on the vehicle
VEHICLE_CONTROL_KIDNAPPED
Can't leave vehicle voluntarily, has to resist.
VEHICLE_CONTROL_MELEE
melee attacks/shoves a vehicle may have
VEHICLE_CONTROL_SETTINGS
changing around settings and the like.
\ No newline at end of file
diff --git a/code/__DEFINES/voreconstants.html b/code/__DEFINES/voreconstants.html
new file mode 100644
index 000000000000..d9f3f899db7e
--- /dev/null
+++ b/code/__DEFINES/voreconstants.html
@@ -0,0 +1 @@
+code/__DEFINES/voreconstants.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Change this whenever you add a vore flag, must be largest vore flag*2-1
Define Details
ABSORBABLE
Can get absorbed?
MAX_VORE_FLAG
Change this whenever you add a vore flag, must be largest vore flag*2-1
MOBVORE
Can get simplemob vored?
SMELLABLE
Can be smelled?
\ No newline at end of file
diff --git a/code/__DEFINES/wounds.html b/code/__DEFINES/wounds.html
new file mode 100644
index 000000000000..9c3c0750db69
--- /dev/null
+++ b/code/__DEFINES/wounds.html
@@ -0,0 +1 @@
+code/__DEFINES/wounds.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
below here, your skin is almost entirely falling off and your limb locks up more frequently. You are within a stone's throw of septic paralysis and losing the limb
dead people don't bleed, but they can clot! this is the minimum amount of clotting per tick on dead people, so even critical cuts will slowly clot in dead people
If this wound marks the limb as being allowed to have gauze applied
Define Details
ACCEPTS_GAUZE
If this wound marks the limb as being allowed to have gauze applied
BIO_FLESH_BONE
standard humanoids, can suffer all wounds, needs mangled bone and flesh to dismember
BIO_INORGANIC
golems and androids, cannot suffer any wounds
BIO_JUST_BONE
skeletons and plasmemes, can only suffer bone wounds, only needs mangled bone to be able to dismember
BIO_JUST_FLESH
nothing right now, maybe slimepeople in the future, can only suffer slashing, piercing, and burn wounds
BONE_WOUND
If this wound requires having the HAS_BONE flag for humanaoids
CANT_WOUND
set wound_bonus on an item or attack to this to disable checking wounding for the attack
DISMEMBER_MINIMUM_DAMAGE
an attack must do this much damage after armor in order to be eliigible to dismember a suitably mushed bodypart
FLESH_WOUND
If this wound requires having the HAS_FLESH flag for humanoids
MANGLES_BONE
If having this wound counts as mangled bone for dismemberment
MANGLES_FLESH
If having this wound counts as mangled flesh for dismemberment
SCAR_CURRENT_VERSION
saved scars with a version lower than this will be discarded
SCAR_SAVE_DESC
The description we're loading
SCAR_SAVE_LENGTH
how many fields there are above (NOT INCLUDING THIS OBVIOUSLY)
SCAR_SAVE_PRECISE_LOCATION
The precise location we're loading
SCAR_SAVE_SEVERITY
The severity the scar had
SCAR_SAVE_VERS
The version number of the scar we're saving
SCAR_SAVE_ZONE
The body_zone we're applying to on granting
WOUND_BLUNT
any brute weapon/attack that doesn't have sharpness. rolls for blunt bone wounds
WOUND_BONE_HEAD_TIME_VARIANCE
if we suffer a bone wound to the head that creates brain traumas, the timer for the trauma cycle is +/- by this percent (0-100)
WOUND_BURN
any concentrated burn attack (lasers really). rolls for burning wounds
WOUND_BURN_SANITIZATION_RATE
how quickly sanitization removes infestation and decays per tick
WOUND_DETERMINATION_MAX
the max amount of determination you can have
WOUND_INFECTION_CRITICAL
then below here, your limb occasionally locks up from damage and infection and briefly becomes disabled. Things are getting really bad
WOUND_INFECTION_MODERATE
below this has no ill effects from infection
WOUND_INFECTION_SEPTIC
below here, your skin is almost entirely falling off and your limb locks up more frequently. You are within a stone's throw of septic paralysis and losing the limb
WOUND_INFECTION_SEVERE
then below here, you ooze some pus and suffer minor tox damage, but nothing serious
WOUND_MAX_CONSIDERED_DAMAGE
any damage dealt over this is ignored for damage rolls unless the target has the frail quirk (35^1.4=145)
WOUND_MINIMUM_DAMAGE
an attack must do this much damage after armor in order to roll for being a wound (incremental pressure damage need not apply)
WOUND_PIERCE
any brute weapon/attack with sharpness = SHARP_POINTY. rolls for piercing wounds
WOUND_SLASH
any brute weapon/attack with sharpness = SHARP_EDGED. rolls for slash wounds
WOUND_SLASH_DEAD_CLOT_MIN
dead people don't bleed, but they can clot! this is the minimum amount of clotting per tick on dead people, so even critical cuts will slowly clot in dead people
WOUND_SLASH_MAX_BLOODFLOW
how much blood you can lose per tick per slash max. 8 is a LOT of blood for one cut so don't worry about hitting it easily
\ No newline at end of file
diff --git a/code/__HELPERS/_lists.html b/code/__HELPERS/_lists.html
new file mode 100644
index 000000000000..d09b512d0b1a
--- /dev/null
+++ b/code/__HELPERS/_lists.html
@@ -0,0 +1,14 @@
+code/__HELPERS/_lists.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
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)
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)
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.
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
LAZYACCESS
returns L[I] if L exists and I is a valid index of L, runtimes if L is not a list
LAZYADDASSOC
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)
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)
LAZYLISTDUPLICATE
Like LAZYCOPY - copies an input list if the list has entries, If it doesn't the assigned list is nulled
LAZYORASSOCLIST
Performs an insertion on the given lazy list with the given key and value. If the value already exists, a new one will not be made.
LIST_VALUE_WRAP_LISTS
If value is a list, wrap it in a list so it can be used with list add/remove operations
UNTYPED_LIST_ADD
Add an untyped item to a list, taking care to handle list items by wrapping them in a list to remove the footgun
UNTYPED_LIST_REMOVE
Remove an untyped item to a list, taking care to handle list items by wrapping them in a list to remove the footgun
\ No newline at end of file
diff --git a/code/__HELPERS/_logging.html b/code/__HELPERS/_logging.html
new file mode 100644
index 000000000000..8cc58cdac61c
--- /dev/null
+++ b/code/__HELPERS/_logging.html
@@ -0,0 +1,2 @@
+code/__HELPERS/_logging.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Writes to a special log file if the log_suspicious_login config flag is set,
+which is intended to contain all logins that failed under suspicious circumstances.
Appends a tgui-related log entry. All arguments are optional.
\ No newline at end of file
diff --git a/code/__HELPERS/areas.html b/code/__HELPERS/areas.html
new file mode 100644
index 000000000000..cbe18fc55905
--- /dev/null
+++ b/code/__HELPERS/areas.html
@@ -0,0 +1,7 @@
+code/__HELPERS/areas.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Returns either null, or a list containing every sub area associated with our base area.
+If include_base is TRUE, the base area will also be added to the return list.
Proc used for purposes similar to get_areas_turfs(), but aimed to include associated areas.
+Only accepts area instances and paths for the first arg, no text strings.
+Returns a list of all turfs found in the sub areas (including the base's if include_base is TRUE)
+and located in a z level matching target_z, or anywhere if target_z is 0
Simple proc that returns a sum of all contents from every sub area,
+Think of the above but for all contents, not just turfs, and without target z.
\ No newline at end of file
diff --git a/code/__HELPERS/chat.html b/code/__HELPERS/chat.html
new file mode 100644
index 000000000000..505b5b6a0d05
--- /dev/null
+++ b/code/__HELPERS/chat.html
@@ -0,0 +1 @@
+code/__HELPERS/chat.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Handles text formatting for item use hints in examine text
Define Details
EXAMINE_HINT
Handles text formatting for item use hints in examine text
\ No newline at end of file
diff --git a/code/__HELPERS/clients.html b/code/__HELPERS/clients.html
new file mode 100644
index 000000000000..2edeffdc809e
--- /dev/null
+++ b/code/__HELPERS/clients.html
@@ -0,0 +1 @@
+code/__HELPERS/clients.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Returns whether or not a player is a guest using their ckey as an input
\ No newline at end of file
diff --git a/code/__HELPERS/files.html b/code/__HELPERS/files.html
new file mode 100644
index 000000000000..4e35e94dea4d
--- /dev/null
+++ b/code/__HELPERS/files.html
@@ -0,0 +1,2 @@
+code/__HELPERS/files.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Save file as an external file then md5 it.
+Used because md5ing files stored in the rsc sometimes gives incorrect md5 results.
\ No newline at end of file
diff --git a/code/__HELPERS/game.html b/code/__HELPERS/game.html
new file mode 100644
index 000000000000..57f7b5221027
--- /dev/null
+++ b/code/__HELPERS/game.html
@@ -0,0 +1 @@
+code/__HELPERS/game.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Send a message in common radio when a player arrives
Define Details
GET_ERROR_ROOM
Returns either the error landmark or the location of the room. Needless to say, if this is used, it means things have gone awry.
\ No newline at end of file
diff --git a/code/__HELPERS/global_lists.html b/code/__HELPERS/global_lists.html
new file mode 100644
index 000000000000..1ee58a8b38c2
--- /dev/null
+++ b/code/__HELPERS/global_lists.html
@@ -0,0 +1 @@
+code/__HELPERS/global_lists.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/__HELPERS/icons.html b/code/__HELPERS/icons.html
new file mode 100644
index 000000000000..cbc6750e8326
--- /dev/null
+++ b/code/__HELPERS/icons.html
@@ -0,0 +1,5 @@
+code/__HELPERS/icons.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Converts an icon to base64. Operates by putting the icon in the iconCache savefile,
+exporting it as text, and then parsing the base64 from that.
+(This relies on byond automatically storing icons in savefiles as base64)
\ No newline at end of file
diff --git a/code/__HELPERS/lighting.html b/code/__HELPERS/lighting.html
new file mode 100644
index 000000000000..bf3d62fd460d
--- /dev/null
+++ b/code/__HELPERS/lighting.html
@@ -0,0 +1 @@
+code/__HELPERS/lighting.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Produces a mutable appearance glued to the [EMISSIVE_PLANE] dyed to be the EMISSIVE_COLOR.
\ No newline at end of file
diff --git a/code/__HELPERS/matrices/color_matrix.html b/code/__HELPERS/matrices/color_matrix.html
new file mode 100644
index 000000000000..949428acc947
--- /dev/null
+++ b/code/__HELPERS/matrices/color_matrix.html
@@ -0,0 +1,2 @@
+code/__HELPERS/matrices/color_matrix.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Moves all colors angle degrees around the color wheel while maintaining intensity of the color and not affecting whites
+TODO: Need a version that only affects one color (ie shift red to blue but leave greens and blues alone)
\ No newline at end of file
diff --git a/code/__HELPERS/matrices/transform_matrix.html b/code/__HELPERS/matrices/transform_matrix.html
new file mode 100644
index 000000000000..068d10e9ec6e
--- /dev/null
+++ b/code/__HELPERS/matrices/transform_matrix.html
@@ -0,0 +1 @@
+code/__HELPERS/matrices/transform_matrix.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
constructs a transform matrix, defaulting to identity
\ No newline at end of file
diff --git a/code/__HELPERS/mobs.html b/code/__HELPERS/mobs.html
new file mode 100644
index 000000000000..ed8e577ec793
--- /dev/null
+++ b/code/__HELPERS/mobs.html
@@ -0,0 +1,3 @@
+code/__HELPERS/mobs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Gets the client of the mob, allowing for mocking of the client.
+You only need to use this if you know you're going to be mocking clients somewhere else.
Define Details
GET_CLIENT
Gets the client of the mob, allowing for mocking of the client.
+You only need to use this if you know you're going to be mocking clients somewhere else.
\ No newline at end of file
diff --git a/code/__HELPERS/nameof.html b/code/__HELPERS/nameof.html
new file mode 100644
index 000000000000..d4e7b14819bd
--- /dev/null
+++ b/code/__HELPERS/nameof.html
@@ -0,0 +1,5 @@
+code/__HELPERS/nameof.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
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.
\ No newline at end of file
diff --git a/code/__HELPERS/path.html b/code/__HELPERS/path.html
new file mode 100644
index 000000000000..ac451c199b11
--- /dev/null
+++ b/code/__HELPERS/path.html
@@ -0,0 +1,7 @@
+code/__HELPERS/path.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
This file contains the stuff you need for using JPS (Jump Point Search) pathing, an alternative to A* that skips
+over large numbers of uninteresting tiles resulting in much quicker pathfinding solutions. Mind that diagonals
+cost the same as cardinal moves currently, so paths may look a bit strange, but should still be optimal.
A helper macro to see if it's possible to step from the first turf into the second one, minding things like door access and directional windows.
+Note that this can only be used inside the [datum/pathfind][pathfind datum] since it uses variables from said datum.
+If you really want to optimize things, optimize this, cuz this gets called a lot.
The datum used to handle the JPS pathfinding, completely self-contained
Define Details
CAN_STEP
A helper macro to see if it's possible to step from the first turf into the second one, minding things like door access and directional windows.
+Note that this can only be used inside the [datum/pathfind][pathfind datum] since it uses variables from said datum.
+If you really want to optimize things, optimize this, cuz this gets called a lot.
STEP_NOT_HERE_BUT_THERE
Another helper macro for JPS, for telling when a node has forced neighbors that need expanding
\ No newline at end of file
diff --git a/code/__HELPERS/priority_announce.html b/code/__HELPERS/priority_announce.html
new file mode 100644
index 000000000000..c66c82b9c15e
--- /dev/null
+++ b/code/__HELPERS/priority_announce.html
@@ -0,0 +1 @@
+code/__HELPERS/priority_announce.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/__HELPERS/radio.html b/code/__HELPERS/radio.html
new file mode 100644
index 000000000000..897453f09a8e
--- /dev/null
+++ b/code/__HELPERS/radio.html
@@ -0,0 +1 @@
+code/__HELPERS/radio.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
returns a random unused frequency between MIN_FREE_FREQ & MAX_FREE_FREQ if free = TRUE, and MIN_FREQ & MAX_FREQ if FALSE
\ No newline at end of file
diff --git a/code/__HELPERS/sanitize_values.html b/code/__HELPERS/sanitize_values.html
new file mode 100644
index 000000000000..8871b2214922
--- /dev/null
+++ b/code/__HELPERS/sanitize_values.html
@@ -0,0 +1 @@
+code/__HELPERS/sanitize_values.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Makes sure the input color is text with a # at the start followed by 6 hexadecimal characters. Examples: "#ff1234", "#A38321", COLOR_GREEN_GRAY
\ No newline at end of file
diff --git a/code/__HELPERS/screen_objs.html b/code/__HELPERS/screen_objs.html
new file mode 100644
index 000000000000..71ec15c757f3
--- /dev/null
+++ b/code/__HELPERS/screen_objs.html
@@ -0,0 +1,7 @@
+code/__HELPERS/screen_objs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Takes a screen loc string in the format
+"+-left-offset:+-pixel,+-bottom-offset:+-pixel"
+Where the :pixel is optional, and returns
+A list in the format (x_offset, y_offset)
+We require context to get info out of screen locs that contain relative info, so NORTH, SOUTH, etc
Takes a list in the form (x_offset, y_offset)
+And converts it to a screen loc string
+Accepts an optional view string/size to force the screen_loc around, so it can't go out of scope
Takes a screen_loc string and cut out any directions like NORTH or SOUTH
\ No newline at end of file
diff --git a/code/__HELPERS/text.html b/code/__HELPERS/text.html
new file mode 100644
index 000000000000..02357571b76c
--- /dev/null
+++ b/code/__HELPERS/text.html
@@ -0,0 +1 @@
+code/__HELPERS/text.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Removes all non-alphanumerics from the text, keep in mind this can lead to id conflicts
\ No newline at end of file
diff --git a/code/__HELPERS/type2type.html b/code/__HELPERS/type2type.html
new file mode 100644
index 000000000000..ffa9c07a8d99
--- /dev/null
+++ b/code/__HELPERS/type2type.html
@@ -0,0 +1,2 @@
+code/__HELPERS/type2type.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Return html to load a url.
+for use inside of browse() calls to html assets that might be loaded on a cdn.
\ No newline at end of file
diff --git a/code/__HELPERS/unsorted.html b/code/__HELPERS/unsorted.html
new file mode 100644
index 000000000000..5eaf4fc0c9f3
--- /dev/null
+++ b/code/__HELPERS/unsorted.html
@@ -0,0 +1,4 @@
+code/__HELPERS/unsorted.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Returns the top-most atom sitting on the turf.
+For example, using this on a disk, which is in a bag, on a mob,
+will return the mob because it's on the turf.
DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
\ No newline at end of file
diff --git a/code/__HELPERS/verbs.html b/code/__HELPERS/verbs.html
new file mode 100644
index 000000000000..922b70355575
--- /dev/null
+++ b/code/__HELPERS/verbs.html
@@ -0,0 +1 @@
+code/__HELPERS/verbs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
handles removing verb and sending it to browser to update, use this for removing verbs
\ No newline at end of file
diff --git a/code/__HELPERS/view.html b/code/__HELPERS/view.html
new file mode 100644
index 000000000000..84e7eb728044
--- /dev/null
+++ b/code/__HELPERS/view.html
@@ -0,0 +1 @@
+code/__HELPERS/view.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Takes a string or num view, and converts it to pixel width/height in a list(pixel_width, pixel_height)
\ No newline at end of file
diff --git a/code/__HELPERS/weakref.html b/code/__HELPERS/weakref.html
new file mode 100644
index 000000000000..5e04a8d587f1
--- /dev/null
+++ b/code/__HELPERS/weakref.html
@@ -0,0 +1 @@
+code/__HELPERS/weakref.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Checks if potential_weakref is a weakref of thing.
Define Details
IS_WEAKREF_OF
Checks if potential_weakref is a weakref of thing.
\ No newline at end of file
diff --git a/code/__SANDCODE/DEFINES/chat.html b/code/__SANDCODE/DEFINES/chat.html
new file mode 100644
index 000000000000..95c96c26e135
--- /dev/null
+++ b/code/__SANDCODE/DEFINES/chat.html
@@ -0,0 +1 @@
+code/__SANDCODE/DEFINES/chat.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
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.
\ No newline at end of file
diff --git a/code/__SANDCODE/DEFINES/dcs/signals/lewd.html b/code/__SANDCODE/DEFINES/dcs/signals/lewd.html
new file mode 100644
index 000000000000..bc222356068e
--- /dev/null
+++ b/code/__SANDCODE/DEFINES/dcs/signals/lewd.html
@@ -0,0 +1 @@
+code/__SANDCODE/DEFINES/dcs/signals/lewd.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
From /mob/living/cum(): (mob/source, mob/living/partner, target_orifice)
Define Details
COMSIG_MOB_POST_CAME
From /mob/living/cum(): (mob/source, mob/living/partner, target_orifice)
\ No newline at end of file
diff --git a/code/__SANDCODE/DEFINES/lewd.html b/code/__SANDCODE/DEFINES/lewd.html
new file mode 100644
index 000000000000..97134d19dbc0
--- /dev/null
+++ b/code/__SANDCODE/DEFINES/lewd.html
@@ -0,0 +1 @@
+code/__SANDCODE/DEFINES/lewd.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__SANDCODE/DEFINES/loadout.html b/code/__SANDCODE/DEFINES/loadout.html
new file mode 100644
index 000000000000..b94c2cd9c47d
--- /dev/null
+++ b/code/__SANDCODE/DEFINES/loadout.html
@@ -0,0 +1,3 @@
+code/__SANDCODE/DEFINES/loadout.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
LOADOUT STUFF
+The category for all underwear, includes underwear, shirt and socks
LOADOUT_CATEGORY_WRISTS
Category for wrist items
LOADOUT_SUBCATEGORY_SHIRT
Subcategory for shirts
LOADOUT_SUBCATEGORY_SOCKS
Subcategory for socks
LOADOUT_SUBCATEGORY_UNDERWEAR
Subcategory for underwear
LOADOUT_SUBCATEGORY_WATCHES
Subcategory for watches
\ No newline at end of file
diff --git a/code/__SANDCODE/DEFINES/medical_defines.html b/code/__SANDCODE/DEFINES/medical_defines.html
new file mode 100644
index 000000000000..201ba1470d0c
--- /dev/null
+++ b/code/__SANDCODE/DEFINES/medical_defines.html
@@ -0,0 +1 @@
+code/__SANDCODE/DEFINES/medical_defines.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__SANDCODE/DEFINES/misc.html b/code/__SANDCODE/DEFINES/misc.html
new file mode 100644
index 000000000000..068c219408a6
--- /dev/null
+++ b/code/__SANDCODE/DEFINES/misc.html
@@ -0,0 +1 @@
+code/__SANDCODE/DEFINES/misc.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
A shorthand for ternary operators to simulate a null-coalescing operator. Returns the first argument if its defined, otherwise, second.
Define Details
NULL_COALESCE
A shorthand for ternary operators to simulate a null-coalescing operator. Returns the first argument if its defined, otherwise, second.
UTF8HEADER
Adds an utf-8 header...? only ever used on circuitry so when wiremod arrives...
\ No newline at end of file
diff --git a/code/__SANDCODE/DEFINES/mobs.html b/code/__SANDCODE/DEFINES/mobs.html
new file mode 100644
index 000000000000..e32fef3d5047
--- /dev/null
+++ b/code/__SANDCODE/DEFINES/mobs.html
@@ -0,0 +1 @@
+code/__SANDCODE/DEFINES/mobs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__SANDCODE/DEFINES/signals.html b/code/__SANDCODE/DEFINES/signals.html
new file mode 100644
index 000000000000..3cf8e313ece1
--- /dev/null
+++ b/code/__SANDCODE/DEFINES/signals.html
@@ -0,0 +1 @@
+code/__SANDCODE/DEFINES/signals.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__SANDCODE/DEFINES/status_effects.html b/code/__SANDCODE/DEFINES/status_effects.html
new file mode 100644
index 000000000000..cc4179185b38
--- /dev/null
+++ b/code/__SANDCODE/DEFINES/status_effects.html
@@ -0,0 +1 @@
+code/__SANDCODE/DEFINES/status_effects.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__SANDCODE/DEFINES/strippable.html b/code/__SANDCODE/DEFINES/strippable.html
new file mode 100644
index 000000000000..f293a98e7eae
--- /dev/null
+++ b/code/__SANDCODE/DEFINES/strippable.html
@@ -0,0 +1,3 @@
+code/__SANDCODE/DEFINES/strippable.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Modular file strippable items, we do have extra slots only here.
+Right ear strippable slot
STRIPPABLE_ITEM_SOCKS
Socks strippable slot
STRIPPABLE_ITEM_UNDERSHIRT
Undershirt strippable slot
STRIPPABLE_ITEM_UNDERWEAR
Underwear strippable slot
STRIPPABLE_ITEM_WRISTS
Wrists strippable slot
\ No newline at end of file
diff --git a/code/__SANDCODE/DEFINES/traits.html b/code/__SANDCODE/DEFINES/traits.html
new file mode 100644
index 000000000000..dcce94ad5a3d
--- /dev/null
+++ b/code/__SANDCODE/DEFINES/traits.html
@@ -0,0 +1 @@
+code/__SANDCODE/DEFINES/traits.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Estrous traits, used for mammalian seasonal arousal systems
Define Details
TRAIT_DNC_ORDER
DNC trait, used to prevent cloning
TRAIT_ESTROUS_ACTIVE
Estrous traits, used for mammalian seasonal arousal systems
TRAIT_INFERTILE
Define for the quirk "infertile", self explanatory. Please make this a preference on the Content Preferences Tab.
TRAIT_NOTHIRST
Prevents the player from getting thirsty at all, usually paired with TRAIT_NOHUNGER.
TRAIT_PAINKILLER
Painkiller trait, used for self-surgeries.
TRAIT_SHELTERED
Define for the quirk "sheltered", the player does not start with Galactic Common language.
\ No newline at end of file
diff --git a/code/__SANDCODE/DEFINES/wires.html b/code/__SANDCODE/DEFINES/wires.html
new file mode 100644
index 000000000000..392645533976
--- /dev/null
+++ b/code/__SANDCODE/DEFINES/wires.html
@@ -0,0 +1,3 @@
+code/__SANDCODE/DEFINES/wires.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Immediately triggers the alarm on the fire alarm, only used for pulsing.
Define Details
WIRE_FIRE_DETECT
Toggles whether the fire alarm will trigger if there is a fire or is hit.
WIRE_FIRE_TOGGLE
Fire alarms have wires now.
+Toggles the fire alarm's alarm on/off.
WIRE_FIRE_TRIGGER
Immediately triggers the alarm on the fire alarm, only used for pulsing.
\ No newline at end of file
diff --git a/code/__SPLURTCODE/DEFINES/colors.html b/code/__SPLURTCODE/DEFINES/colors.html
new file mode 100644
index 000000000000..7759ae9d6b97
--- /dev/null
+++ b/code/__SPLURTCODE/DEFINES/colors.html
@@ -0,0 +1 @@
+code/__SPLURTCODE/DEFINES/colors.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__SPLURTCODE/DEFINES/configuration.html b/code/__SPLURTCODE/DEFINES/configuration.html
new file mode 100644
index 000000000000..60de91b5344f
--- /dev/null
+++ b/code/__SPLURTCODE/DEFINES/configuration.html
@@ -0,0 +1 @@
+code/__SPLURTCODE/DEFINES/configuration.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__SPLURTCODE/DEFINES/dcs/signals.html b/code/__SPLURTCODE/DEFINES/dcs/signals.html
new file mode 100644
index 000000000000..f00c14fe6084
--- /dev/null
+++ b/code/__SPLURTCODE/DEFINES/dcs/signals.html
@@ -0,0 +1 @@
+code/__SPLURTCODE/DEFINES/dcs/signals.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
from /obj/machinery/set_occupant(atom/movable/O): (new_occupant)
Define Details
COMSIG_ITEM_POST_UNEQUIP
called on /obj/item AFTER unequip from base of [mob/proc/doUnEquip]: (force, atom/newloc, no_move, invdrop, silent)
COMSIG_MACHINERY_SET_OCCUPANT
from /obj/machinery/set_occupant(atom/movable/O): (new_occupant)
\ No newline at end of file
diff --git a/code/__SPLURTCODE/DEFINES/signals.html b/code/__SPLURTCODE/DEFINES/signals.html
new file mode 100644
index 000000000000..86a68b66439d
--- /dev/null
+++ b/code/__SPLURTCODE/DEFINES/signals.html
@@ -0,0 +1 @@
+code/__SPLURTCODE/DEFINES/signals.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/__byond_version_compat.html b/code/__byond_version_compat.html
new file mode 100644
index 000000000000..6a147372523b
--- /dev/null
+++ b/code/__byond_version_compat.html
@@ -0,0 +1 @@
+code/__byond_version_compat.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Call by name proc reference, checks if the proc is existing global proc
Define Details
GLOBAL_PROC_REF
Call by name proc reference, checks if the proc is existing global proc
PROC_REF
Call by name proc reference, checks if the proc exists on this type or as a global proc
TYPE_PROC_REF
Call by name proc reference, checks if the proc exists on 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.
\ No newline at end of file
diff --git a/code/_globalvars/bitfields.html b/code/_globalvars/bitfields.html
new file mode 100644
index 000000000000..b901452e275f
--- /dev/null
+++ b/code/_globalvars/bitfields.html
@@ -0,0 +1 @@
+code/_globalvars/bitfields.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Turns /datum/bitfield subtypes into a list for use in debugging
\ No newline at end of file
diff --git a/code/_globalvars/lists/keybindings.html b/code/_globalvars/lists/keybindings.html
new file mode 100644
index 000000000000..bc5f2c19b659
--- /dev/null
+++ b/code/_globalvars/lists/keybindings.html
@@ -0,0 +1 @@
+code/_globalvars/lists/keybindings.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Adds an instanced keybinding to the global tracker
\ No newline at end of file
diff --git a/code/_globalvars/lists/typecache.html b/code/_globalvars/lists/typecache.html
new file mode 100644
index 000000000000..d9b9c844aada
--- /dev/null
+++ b/code/_globalvars/lists/typecache.html
@@ -0,0 +1 @@
+code/_globalvars/lists/typecache.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/_onclick/hud/action_button.html b/code/_onclick/hud/action_button.html
new file mode 100644
index 000000000000..27b36bf31bf6
--- /dev/null
+++ b/code/_onclick/hud/action_button.html
@@ -0,0 +1 @@
+code/_onclick/hud/action_button.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Exists so you have a place to put your buttons when you move them around
\ No newline at end of file
diff --git a/code/_onclick/hud/alert.html b/code/_onclick/hud/alert.html
new file mode 100644
index 000000000000..24e496e2fcff
--- /dev/null
+++ b/code/_onclick/hud/alert.html
@@ -0,0 +1 @@
+code/_onclick/hud/alert.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/_onclick/hud/map_popups.html b/code/_onclick/hud/map_popups.html
new file mode 100644
index 000000000000..d12973ed844a
--- /dev/null
+++ b/code/_onclick/hud/map_popups.html
@@ -0,0 +1,4 @@
+code/_onclick/hud/map_popups.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
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.
\ No newline at end of file
diff --git a/code/_onclick/hud/new_player.html b/code/_onclick/hud/new_player.html
new file mode 100644
index 000000000000..82254ed4b825
--- /dev/null
+++ b/code/_onclick/hud/new_player.html
@@ -0,0 +1 @@
+code/_onclick/hud/new_player.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/_onclick/hud/plane_master.html b/code/_onclick/hud/plane_master.html
new file mode 100644
index 000000000000..b55c4fb6cf5d
--- /dev/null
+++ b/code/_onclick/hud/plane_master.html
@@ -0,0 +1,7 @@
+code/_onclick/hud/plane_master.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
This system works by exploiting BYONDs color matrix filter to use layers to handle emissive blockers.
+
Emissive overlays are pasted with an atom color that converts them to be entirely some specific color.
+Emissive blockers are pasted with an atom color that converts them to be entirely some different color.
+Emissive overlays and emissive blockers are put onto the same plane.
+The layers for the emissive overlays and emissive blockers cause them to mask eachother similar to normal BYOND objects.
+A color matrix filter is applied to the emissive plane to mask out anything that isn't whatever the emissive color is.
+This is then used to alpha mask the lighting plane.
\ No newline at end of file
diff --git a/code/_rendering/atom_huds/alternate_appearance.html b/code/_rendering/atom_huds/alternate_appearance.html
new file mode 100644
index 000000000000..e9109742a4b5
--- /dev/null
+++ b/code/_rendering/atom_huds/alternate_appearance.html
@@ -0,0 +1 @@
+code/_rendering/atom_huds/alternate_appearance.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
The base type for nearly all physical objects in SS13
\ No newline at end of file
diff --git a/code/_rendering/parallax/parallax.html b/code/_rendering/parallax/parallax.html
new file mode 100644
index 000000000000..908d23f9756b
--- /dev/null
+++ b/code/_rendering/parallax/parallax.html
@@ -0,0 +1 @@
+code/_rendering/parallax/parallax.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/_rendering/parallax/parallax_holder.html b/code/_rendering/parallax/parallax_holder.html
new file mode 100644
index 000000000000..9f84bd9b53a6
--- /dev/null
+++ b/code/_rendering/parallax/parallax_holder.html
@@ -0,0 +1 @@
+code/_rendering/parallax/parallax_holder.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Holds all the information about a client's parallax
\ No newline at end of file
diff --git a/code/controllers/configuration/config_entry.html b/code/controllers/configuration/config_entry.html
new file mode 100644
index 000000000000..3553b111b582
--- /dev/null
+++ b/code/controllers/configuration/config_entry.html
@@ -0,0 +1 @@
+code/controllers/configuration/config_entry.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
List config entry, used for configuring a list of strings
\ No newline at end of file
diff --git a/code/controllers/configuration/entries/admin.html b/code/controllers/configuration/entries/admin.html
new file mode 100644
index 000000000000..2475a4527635
--- /dev/null
+++ b/code/controllers/configuration/entries/admin.html
@@ -0,0 +1 @@
+code/controllers/configuration/entries/admin.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Gives the ability to send players a maptext popup.
\ No newline at end of file
diff --git a/code/controllers/configuration/entries/comms.html b/code/controllers/configuration/entries/comms.html
new file mode 100644
index 000000000000..3c1dc550c710
--- /dev/null
+++ b/code/controllers/configuration/entries/comms.html
@@ -0,0 +1 @@
+code/controllers/configuration/entries/comms.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/controllers/configuration/entries/debris.html b/code/controllers/configuration/entries/debris.html
new file mode 100644
index 000000000000..931d36783c68
--- /dev/null
+++ b/code/controllers/configuration/entries/debris.html
@@ -0,0 +1 @@
+code/controllers/configuration/entries/debris.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/controllers/configuration/entries/general.html b/code/controllers/configuration/entries/general.html
new file mode 100644
index 000000000000..6edcc9d1350a
--- /dev/null
+++ b/code/controllers/configuration/entries/general.html
@@ -0,0 +1,2 @@
+code/controllers/configuration/entries/general.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Enables the FoV component, which hides objects and mobs behind the parent from their sight, unless they turn around, duh.
+Camera mobs, AIs, ghosts and some other are of course exempt from this. This also doesn't influence simplemob AI, for the best.
\ No newline at end of file
diff --git a/code/controllers/configuration/entries/logging.html b/code/controllers/configuration/entries/logging.html
new file mode 100644
index 000000000000..3ec9ef199436
--- /dev/null
+++ b/code/controllers/configuration/entries/logging.html
@@ -0,0 +1 @@
+code/controllers/configuration/entries/logging.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
How long to wait between messaging admins about occurrences of a unique error
\ No newline at end of file
diff --git a/code/controllers/configuration/entries/movespeed.html b/code/controllers/configuration/entries/movespeed.html
new file mode 100644
index 000000000000..e937ca24ebcc
--- /dev/null
+++ b/code/controllers/configuration/entries/movespeed.html
@@ -0,0 +1 @@
+code/controllers/configuration/entries/movespeed.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/controllers/configuration/entries/persistence.html b/code/controllers/configuration/entries/persistence.html
new file mode 100644
index 000000000000..d5311afd8880
--- /dev/null
+++ b/code/controllers/configuration/entries/persistence.html
@@ -0,0 +1 @@
+code/controllers/configuration/entries/persistence.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/controllers/configuration/entries/policy.html b/code/controllers/configuration/entries/policy.html
new file mode 100644
index 000000000000..1bc6d2448ab2
--- /dev/null
+++ b/code/controllers/configuration/entries/policy.html
@@ -0,0 +1 @@
+code/controllers/configuration/entries/policy.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Seconds for CMD on defib-with-memory-loss policy config to display instead of defib-intact config
\ No newline at end of file
diff --git a/code/controllers/configuration/entries/respawns.html b/code/controllers/configuration/entries/respawns.html
new file mode 100644
index 000000000000..937ae1989292
--- /dev/null
+++ b/code/controllers/configuration/entries/respawns.html
@@ -0,0 +1 @@
+code/controllers/configuration/entries/respawns.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Gamemode config tags that are banned from respawning
\ No newline at end of file
diff --git a/code/controllers/configuration/entries/stamina_combat.html b/code/controllers/configuration/entries/stamina_combat.html
new file mode 100644
index 000000000000..8513180f927e
--- /dev/null
+++ b/code/controllers/configuration/entries/stamina_combat.html
@@ -0,0 +1 @@
+code/controllers/configuration/entries/stamina_combat.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Factor to multiply by for stamina usage past buffer into health
\ No newline at end of file
diff --git a/code/controllers/configuration/entries/vote.html b/code/controllers/configuration/entries/vote.html
new file mode 100644
index 000000000000..46f74955748c
--- /dev/null
+++ b/code/controllers/configuration/entries/vote.html
@@ -0,0 +1,4 @@
+code/controllers/configuration/entries/vote.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
maximum extensions until the round autoends.
+Set to 0 to force automatic crew transfer after the 'vote_autotransfer_initial' elapsed.
+Set to -1 to disable the maximum extensions cap.
\ No newline at end of file
diff --git a/code/controllers/failsafe.html b/code/controllers/failsafe.html
new file mode 100644
index 000000000000..47790e1d62ed
--- /dev/null
+++ b/code/controllers/failsafe.html
@@ -0,0 +1 @@
+code/controllers/failsafe.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/controllers/hooks.html b/code/controllers/hooks.html
new file mode 100644
index 000000000000..905f570f014e
--- /dev/null
+++ b/code/controllers/hooks.html
@@ -0,0 +1,2 @@
+code/controllers/hooks.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
@file hooks.dm
+Implements hooks, a simple way to run code on pre-defined events.
\ No newline at end of file
diff --git a/code/controllers/master.html b/code/controllers/master.html
new file mode 100644
index 000000000000..859d20284082
--- /dev/null
+++ b/code/controllers/master.html
@@ -0,0 +1 @@
+code/controllers/master.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/controllers/subsystem.html b/code/controllers/subsystem.html
new file mode 100644
index 000000000000..ef81c37e418c
--- /dev/null
+++ b/code/controllers/subsystem.html
@@ -0,0 +1 @@
+code/controllers/subsystem.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/controllers/subsystem/chat.html b/code/controllers/subsystem/chat.html
new file mode 100644
index 000000000000..09a1774c6383
--- /dev/null
+++ b/code/controllers/subsystem/chat.html
@@ -0,0 +1,2 @@
+code/controllers/subsystem/chat.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/controllers/subsystem/chat.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/controllers/subsystem/garbage.html b/code/controllers/subsystem/garbage.html
new file mode 100644
index 000000000000..3495c87bf4cd
--- /dev/null
+++ b/code/controllers/subsystem/garbage.html
@@ -0,0 +1,14 @@
+code/controllers/subsystem/garbage.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
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.
Should be treated as a replacement for the 'del' keyword.
\ No newline at end of file
diff --git a/code/controllers/subsystem/jukeboxes.html b/code/controllers/subsystem/jukeboxes.html
new file mode 100644
index 000000000000..19a5bb199518
--- /dev/null
+++ b/code/controllers/subsystem/jukeboxes.html
@@ -0,0 +1 @@
+code/controllers/subsystem/jukeboxes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/controllers/subsystem/materials.html b/code/controllers/subsystem/materials.html
new file mode 100644
index 000000000000..941e09ebaa2f
--- /dev/null
+++ b/code/controllers/subsystem/materials.html
@@ -0,0 +1,3 @@
+code/controllers/subsystem/materials.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/controllers/subsystem/materials.dm
How material datums work
+Materials are now instanced datums, with an associative list of them being kept in SSmaterials. We only instance the materials once and then re-use these instances for everything.
+
These materials call on_applied() on whatever item they are applied to, common effects are adding components, changing color and changing description. This allows us to differentiate items based on the material they are made out of.area
\ No newline at end of file
diff --git a/code/controllers/subsystem/overlays.html b/code/controllers/subsystem/overlays.html
new file mode 100644
index 000000000000..57b9d25771ca
--- /dev/null
+++ b/code/controllers/subsystem/overlays.html
@@ -0,0 +1,4 @@
+code/controllers/subsystem/overlays.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Converts an overlay list into text for debug printing
+Of note: overlays aren't actually mutable appearances, they're just appearances
+Don't have access to that type tho, so this is the best you're gonna get
Takes two appearances as args, prints out, logs, and returns a text representation of their differences
+Including suboverlays
\ No newline at end of file
diff --git a/code/controllers/subsystem/persistence/_persistence.html b/code/controllers/subsystem/persistence/_persistence.html
new file mode 100644
index 000000000000..f7397c33bdd3
--- /dev/null
+++ b/code/controllers/subsystem/persistence/_persistence.html
@@ -0,0 +1 @@
+code/controllers/subsystem/persistence/_persistence.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/controllers/subsystem/runechat.html b/code/controllers/subsystem/runechat.html
new file mode 100644
index 000000000000..d8fddaa19164
--- /dev/null
+++ b/code/controllers/subsystem/runechat.html
@@ -0,0 +1 @@
+code/controllers/subsystem/runechat.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Controls how many buckets should be kept, each representing a tick. (30 seconds worth)
BUCKET_LIMIT
Gets the maximum time at which messages will be handled in buckets, used for deferring to secondary queue
BUCKET_POS
Helper for getting the correct bucket for a given chatmessage
\ No newline at end of file
diff --git a/code/controllers/subsystem/tgui.html b/code/controllers/subsystem/tgui.html
new file mode 100644
index 000000000000..f2fe2a996553
--- /dev/null
+++ b/code/controllers/subsystem/tgui.html
@@ -0,0 +1,2 @@
+code/controllers/subsystem/tgui.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/controllers/subsystem/tgui.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/controllers/subsystem/timer.html b/code/controllers/subsystem/timer.html
new file mode 100644
index 000000000000..5e57f81acafd
--- /dev/null
+++ b/code/controllers/subsystem/timer.html
@@ -0,0 +1,3 @@
+code/controllers/subsystem/timer.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
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.
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
\ No newline at end of file
diff --git a/code/datums/achievements/_achievement_data.html b/code/datums/achievements/_achievement_data.html
new file mode 100644
index 000000000000..a7a4b6d88333
--- /dev/null
+++ b/code/datums/achievements/_achievement_data.html
@@ -0,0 +1 @@
+code/datums/achievements/_achievement_data.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/achievements/_awards.html b/code/datums/achievements/_awards.html
new file mode 100644
index 000000000000..0cffb7cc70fe
--- /dev/null
+++ b/code/datums/achievements/_awards.html
@@ -0,0 +1 @@
+code/datums/achievements/_awards.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Scores are for leaderboarded things, such as killcount of a specific boss
\ No newline at end of file
diff --git a/code/datums/achievements/mafia_achievements.html b/code/datums/achievements/mafia_achievements.html
new file mode 100644
index 000000000000..3ede83c089d9
--- /dev/null
+++ b/code/datums/achievements/mafia_achievements.html
@@ -0,0 +1 @@
+code/datums/achievements/mafia_achievements.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/achievements/misc_scores.html b/code/datums/achievements/misc_scores.html
new file mode 100644
index 000000000000..fa3401876314
--- /dev/null
+++ b/code/datums/achievements/misc_scores.html
@@ -0,0 +1 @@
+code/datums/achievements/misc_scores.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/alarm.html b/code/datums/alarm.html
new file mode 100644
index 000000000000..e7ab8f571225
--- /dev/null
+++ b/code/datums/alarm.html
@@ -0,0 +1 @@
+code/datums/alarm.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Represents a single source of alarms, one alarm handler will only ever count for one alarm per listener
\ No newline at end of file
diff --git a/code/datums/announcers/_announcer.html b/code/datums/announcers/_announcer.html
new file mode 100644
index 000000000000..671e5f98b6c1
--- /dev/null
+++ b/code/datums/announcers/_announcer.html
@@ -0,0 +1 @@
+code/datums/announcers/_announcer.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Data holder for the announcers that can be used in a game, this can be used to have alternative announcements outside of the default e.g.the intern
\ No newline at end of file
diff --git a/code/datums/brain_damage/split_personality.html b/code/datums/brain_damage/split_personality.html
new file mode 100644
index 000000000000..971367b179f2
--- /dev/null
+++ b/code/datums/brain_damage/split_personality.html
@@ -0,0 +1 @@
+code/datums/brain_damage/split_personality.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/browser.html b/code/datums/browser.html
new file mode 100644
index 000000000000..70022e028ff3
--- /dev/null
+++ b/code/datums/browser.html
@@ -0,0 +1 @@
+code/datums/browser.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/callback.html b/code/datums/callback.html
new file mode 100644
index 000000000000..6d403a847682
--- /dev/null
+++ b/code/datums/callback.html
@@ -0,0 +1 @@
+code/datums/callback.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Runs a list of callbacks asyncronously, returning only when all have finished
\ No newline at end of file
diff --git a/code/datums/chatmessage.html b/code/datums/chatmessage.html
new file mode 100644
index 000000000000..3a4003668119
--- /dev/null
+++ b/code/datums/chatmessage.html
@@ -0,0 +1 @@
+code/datums/chatmessage.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
The number of z-layer 'slices' usable by the chat message layering
CHAT_LAYER_Z_STEP
Maximum precision of float before rounding errors occur (in this context)
CHAT_MESSAGE_APPROX_LHEIGHT
Approximate height in pixels of an 'average' line, used for height decay
CHAT_MESSAGE_EOL_FADE
How long the chat message's end of life fading animation will occur for
CHAT_MESSAGE_EXP_DECAY
Factor of how much the message index (number of messages) will account to exponential decay
CHAT_MESSAGE_HEIGHT_DECAY
Factor of how much height will account to exponential decay
CHAT_MESSAGE_ICON_SIZE
The dimensions of the chat message icons
CHAT_MESSAGE_LIFESPAN
How long the chat message will exist prior to any exponential decay
CHAT_MESSAGE_MAX_LENGTH
Max length of chat message in characters
CHAT_MESSAGE_SPAWN_TIME
How long the chat message's spawn-in animation will occur for
CHAT_MESSAGE_WIDTH
Max width of chat message in pixels
\ No newline at end of file
diff --git a/code/datums/components.html b/code/datums/components.html
new file mode 100644
index 000000000000..d3d8052bb313
--- /dev/null
+++ b/code/datums/components.html
@@ -0,0 +1,4 @@
+code/datums/components/README.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
Datum Component System (DCS)
Concept
+
Loosely adapted from /vg/. This is an entity component system for adding behaviours to datums when inheritance doesn't quite cut it. By using signals and events instead of direct inheritance, you can inject behaviours without hacky overloads. It requires a different method of thinking, but is not hard to use correctly. If a behaviour can have application across more than one thing. Make it generic, make it a component. Atom/mob/obj event? Give it a signal, and forward it's arguments with a SendSignal() call. Now every component that want's to can also know about this happening.
+
See this thread for an introduction to the system as a whole.
\ No newline at end of file
diff --git a/code/datums/components/_component.html b/code/datums/components/_component.html
new file mode 100644
index 000000000000..97f02c1239d0
--- /dev/null
+++ b/code/datums/components/_component.html
@@ -0,0 +1 @@
+code/datums/components/_component.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/components/admin_popup.html b/code/datums/components/admin_popup.html
new file mode 100644
index 000000000000..bdb15e3ce994
--- /dev/null
+++ b/code/datums/components/admin_popup.html
@@ -0,0 +1,3 @@
+code/datums/components/admin_popup.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Tries to give the target an admin popup.
+If it fails, will send the error to the passed admin.
\ No newline at end of file
diff --git a/code/datums/components/area_sound_manager.html b/code/datums/components/area_sound_manager.html
new file mode 100644
index 000000000000..4c237ac7048f
--- /dev/null
+++ b/code/datums/components/area_sound_manager.html
@@ -0,0 +1 @@
+code/datums/components/area_sound_manager.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Allows you to set a theme for a set of areas without tying them to looping sounds explicitly
\ No newline at end of file
diff --git a/code/datums/components/butchering.html b/code/datums/components/butchering.html
new file mode 100644
index 000000000000..bd603409804e
--- /dev/null
+++ b/code/datums/components/butchering.html
@@ -0,0 +1 @@
+code/datums/components/butchering.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Special snowflake component only used for the recycler.
\ No newline at end of file
diff --git a/code/datums/components/combat_mode.html b/code/datums/components/combat_mode.html
new file mode 100644
index 000000000000..63d4c54a48b7
--- /dev/null
+++ b/code/datums/components/combat_mode.html
@@ -0,0 +1,3 @@
+code/datums/components/combat_mode.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Combat mode component. It makes the user face whichever atom the mouse pointer is hovering,
+amongst other things designed outside of this file, namely PvP and PvE stuff, hence the name.
+Can be toggled on and off by clicking the screen hud object or by pressing the assigned hotkey (default 'C')
\ No newline at end of file
diff --git a/code/datums/components/crafting/glassware/glassware.html b/code/datums/components/crafting/glassware/glassware.html
new file mode 100644
index 000000000000..7b4a26ee6ce1
--- /dev/null
+++ b/code/datums/components/crafting/glassware/glassware.html
@@ -0,0 +1 @@
+code/datums/components/crafting/glassware/glassware.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.html b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.html
new file mode 100644
index 000000000000..168cbb2fbc86
--- /dev/null
+++ b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.html
@@ -0,0 +1 @@
+code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/components/dejavu.html b/code/datums/components/dejavu.html
new file mode 100644
index 000000000000..717694e19cb2
--- /dev/null
+++ b/code/datums/components/dejavu.html
@@ -0,0 +1 @@
+code/datums/components/dejavu.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
A component to reset the parent to its previous state after some time passes
\ No newline at end of file
diff --git a/code/datums/components/edible.html b/code/datums/components/edible.html
new file mode 100644
index 000000000000..04752090d1b2
--- /dev/null
+++ b/code/datums/components/edible.html
@@ -0,0 +1,10 @@
+code/datums/components/edible.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/datums/components/edible.dm
This component makes it possible to make things edible. What this means is that you can take a bite or force someone to take a bite (in the case of items).
+These items take a specific time to eat, and can do most of the things our original food items could.
+Behavior that's still missing from this component that original food items had that should either be put into seperate components or somewhere else:
+Components:
+Drying component (jerky etc)
+Customizable component (custom pizzas etc)
+Processable component (Slicing and cooking behavior essentialy, making it go from item A to B when conditions are met.)
+Dunkable component (Dunking things into reagent containers to absorb a specific amount of reagents)
+Misc:
+Something for cakes (You can store things inside)
\ No newline at end of file
diff --git a/code/datums/components/explodable.html b/code/datums/components/explodable.html
new file mode 100644
index 000000000000..c0a582182c95
--- /dev/null
+++ b/code/datums/components/explodable.html
@@ -0,0 +1 @@
+code/datums/components/explodable.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Component specifically for explosion sensetive things, currently only applies to heat based explosions but can later perhaps be used for things that are dangerous to handle carelessly like nitroglycerin.
\ No newline at end of file
diff --git a/code/datums/components/fantasy/suffixes.html b/code/datums/components/fantasy/suffixes.html
new file mode 100644
index 000000000000..3c68a66f612b
--- /dev/null
+++ b/code/datums/components/fantasy/suffixes.html
@@ -0,0 +1 @@
+code/datums/components/fantasy/suffixes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/components/field_of_vision.html b/code/datums/components/field_of_vision.html
new file mode 100644
index 000000000000..30507b85bac4
--- /dev/null
+++ b/code/datums/components/field_of_vision.html
@@ -0,0 +1,8 @@
+code/datums/components/field_of_vision.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Byond doc is not entirely correct on the integrated arctan() proc.
+When both x and y are negative, the output is also negative, cycling clockwise instead of counter-clockwise.
+That's also why I am extensively using the SIMPLIFY_DEGREES macro here.
The shadow cone's mask and visual images holder which can't locate inside the mob,
+lest they inherit the mob opacity and cause a lot of hindrance
Define Details
FOV_ANGLE_CHECK
Byond doc is not entirely correct on the integrated arctan() proc.
+When both x and y are negative, the output is also negative, cycling clockwise instead of counter-clockwise.
+That's also why I am extensively using the SIMPLIFY_DEGREES macro here.
+
Overall this is the main macro that calculates wheter a target is within the shadow cone angle or not.
\ No newline at end of file
diff --git a/code/datums/components/footstep.html b/code/datums/components/footstep.html
new file mode 100644
index 000000000000..31189ac82038
--- /dev/null
+++ b/code/datums/components/footstep.html
@@ -0,0 +1 @@
+code/datums/components/footstep.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Footstep component. Plays footsteps at parents location when it is appropriate.
\ No newline at end of file
diff --git a/code/datums/components/fried.html b/code/datums/components/fried.html
new file mode 100644
index 000000000000..30416150eabb
--- /dev/null
+++ b/code/datums/components/fried.html
@@ -0,0 +1,2 @@
+code/datums/components/fried.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/datums/components/fried.dm
This component essentially encapsulates frying and utilizes the edible component
+This means fried items can work like regular ones, and generally the code is far less messy
\ No newline at end of file
diff --git a/code/datums/components/gps.html b/code/datums/components/gps.html
new file mode 100644
index 000000000000..10f929e802b6
--- /dev/null
+++ b/code/datums/components/gps.html
@@ -0,0 +1 @@
+code/datums/components/gps.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
GPS component subtype. Only gps/item's can be used to open the UI.
\ No newline at end of file
diff --git a/code/datums/components/identification.html b/code/datums/components/identification.html
new file mode 100644
index 000000000000..121b8d174772
--- /dev/null
+++ b/code/datums/components/identification.html
@@ -0,0 +1 @@
+code/datums/components/identification.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/components/killerqueen.html b/code/datums/components/killerqueen.html
new file mode 100644
index 000000000000..8bc3cda1a659
--- /dev/null
+++ b/code/datums/components/killerqueen.html
@@ -0,0 +1 @@
+code/datums/components/killerqueen.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/components/label.html b/code/datums/components/label.html
new file mode 100644
index 000000000000..df9e142dd770
--- /dev/null
+++ b/code/datums/components/label.html
@@ -0,0 +1 @@
+code/datums/components/label.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/components/material_container.html b/code/datums/components/material_container.html
new file mode 100644
index 000000000000..4ff06805dac0
--- /dev/null
+++ b/code/datums/components/material_container.html
@@ -0,0 +1,7 @@
+code/datums/components/material_container.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/datums/components/material_container.dm
This datum should be used for handling mineral contents of machines and whatever else is supposed to hold minerals and make use of them.
+
Variables:
+amount - raw amount of the mineral this container is holding, calculated by the defined value MINERAL_MATERIAL_AMOUNT=2000.
+max_amount - max raw amount of mineral this container can hold.
+sheet_type - type of the mineral sheet the container handles, used for output.
+parent - object that this container is being used by, used for output.
+MAX_STACK_SIZE - size of a stack of mineral sheets. Constant.
\ No newline at end of file
diff --git a/code/datums/components/multiple_lives.html b/code/datums/components/multiple_lives.html
new file mode 100644
index 000000000000..7519ad55dd3a
--- /dev/null
+++ b/code/datums/components/multiple_lives.html
@@ -0,0 +1,2 @@
+code/datums/components/multiple_lives.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
A simple component that spawns a mob of the same type and transfers itself to it when parent dies.
+For more complex behaviors, use the COMSIG_ON_MULTIPLE_LIVES_RESPAWN comsig.
\ No newline at end of file
diff --git a/code/datums/components/nanites.html b/code/datums/components/nanites.html
new file mode 100644
index 000000000000..39fda6221b8f
--- /dev/null
+++ b/code/datums/components/nanites.html
@@ -0,0 +1 @@
+code/datums/components/nanites.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Subtype that doesn't erase itself from running out
\ No newline at end of file
diff --git a/code/datums/components/omen.html b/code/datums/components/omen.html
new file mode 100644
index 000000000000..6f331180d1b5
--- /dev/null
+++ b/code/datums/components/omen.html
@@ -0,0 +1 @@
+code/datums/components/omen.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
omen.dm: For when you want someone to have a really bad day
\ No newline at end of file
diff --git a/code/datums/components/plumbing/_plumbing.html b/code/datums/components/plumbing/_plumbing.html
new file mode 100644
index 000000000000..0f15fba40db7
--- /dev/null
+++ b/code/datums/components/plumbing/_plumbing.html
@@ -0,0 +1 @@
+code/datums/components/plumbing/_plumbing.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/components/plumbing/filter.html b/code/datums/components/plumbing/filter.html
new file mode 100644
index 000000000000..4eddec789262
--- /dev/null
+++ b/code/datums/components/plumbing/filter.html
@@ -0,0 +1 @@
+code/datums/components/plumbing/filter.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
The magical plumbing component used by the chemical filters. The different supply connects behave differently depending on the filters set on the chemical filter
\ No newline at end of file
diff --git a/code/datums/components/riding.html b/code/datums/components/riding.html
new file mode 100644
index 000000000000..4a60ab3538f1
--- /dev/null
+++ b/code/datums/components/riding.html
@@ -0,0 +1 @@
+code/datums/components/riding.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/components/storage/concrete/tcg.html b/code/datums/components/storage/concrete/tcg.html
new file mode 100644
index 000000000000..90f95a1f333c
--- /dev/null
+++ b/code/datums/components/storage/concrete/tcg.html
@@ -0,0 +1 @@
+code/datums/components/storage/concrete/tcg.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
A storage component to be used on card piles, for use as hands/decks/discard piles. Don't use on something that's not a card pile!
\ No newline at end of file
diff --git a/code/datums/components/tackle.html b/code/datums/components/tackle.html
new file mode 100644
index 000000000000..11fae930ca0f
--- /dev/null
+++ b/code/datums/components/tackle.html
@@ -0,0 +1 @@
+code/datums/components/tackle.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/components/twitch_plays.html b/code/datums/components/twitch_plays.html
new file mode 100644
index 000000000000..62ba5b16a675
--- /dev/null
+++ b/code/datums/components/twitch_plays.html
@@ -0,0 +1 @@
+code/datums/components/twitch_plays.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/components/twohanded.html b/code/datums/components/twohanded.html
new file mode 100644
index 000000000000..7bc9be2de3d9
--- /dev/null
+++ b/code/datums/components/twohanded.html
@@ -0,0 +1 @@
+code/datums/components/twohanded.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/components/uplink.html b/code/datums/components/uplink.html
new file mode 100644
index 000000000000..36be1e594f6d
--- /dev/null
+++ b/code/datums/components/uplink.html
@@ -0,0 +1 @@
+code/datums/components/uplink.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/components/virtual_reality.html b/code/datums/components/virtual_reality.html
new file mode 100644
index 000000000000..21284b0eecca
--- /dev/null
+++ b/code/datums/components/virtual_reality.html
@@ -0,0 +1,6 @@
+code/datums/components/virtual_reality.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
The virtual reality turned component.
+Originally created to overcome issues of mob polymorphing locking the player inside virtual reality
+and allow for a more "immersive" virtual reality in a virtual reality experience.
+It relies on comically complex order of logic, expect things to break if procs such as mind/transfer_to() are revamped.
+In short, a barebone not so hardcoded VR framework.
+If you plan to add more devices that make use of this component, remember to isolate their code outta here where possible.
\ No newline at end of file
diff --git a/code/datums/datum.html b/code/datums/datum.html
new file mode 100644
index 000000000000..bbbcd62be35d
--- /dev/null
+++ b/code/datums/datum.html
@@ -0,0 +1 @@
+code/datums/datum.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Proc used by stoppable timers to end a cooldown before the time has ran out.
\ No newline at end of file
diff --git a/code/datums/dna.html b/code/datums/dna.html
new file mode 100644
index 000000000000..a94b7a8ba184
--- /dev/null
+++ b/code/datums/dna.html
@@ -0,0 +1 @@
+code/datums/dna.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/ductnet.html b/code/datums/ductnet.html
new file mode 100644
index 000000000000..12eafbcbfc7f
--- /dev/null
+++ b/code/datums/ductnet.html
@@ -0,0 +1 @@
+code/datums/ductnet.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
We handle the unity part of plumbing. We track who is connected to who.
\ No newline at end of file
diff --git a/code/datums/elements/_element.html b/code/datums/elements/_element.html
new file mode 100644
index 000000000000..7e0b6adf2592
--- /dev/null
+++ b/code/datums/elements/_element.html
@@ -0,0 +1 @@
+code/datums/elements/_element.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
A holder for simple behaviour that can be attached to many different types
\ No newline at end of file
diff --git a/code/datums/elements/bed_tucking.html b/code/datums/elements/bed_tucking.html
new file mode 100644
index 000000000000..d1b32670e6b2
--- /dev/null
+++ b/code/datums/elements/bed_tucking.html
@@ -0,0 +1 @@
+code/datums/elements/bed_tucking.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Tucking element, for things that can be tucked into bed.
\ No newline at end of file
diff --git a/code/datums/elements/connect_loc.html b/code/datums/elements/connect_loc.html
new file mode 100644
index 000000000000..28bf95e2de95
--- /dev/null
+++ b/code/datums/elements/connect_loc.html
@@ -0,0 +1,2 @@
+code/datums/elements/connect_loc.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
This element hooks a signal onto the loc the current object is on.
+When the object moves, it will unhook the signal and rehook it to the new object.
\ No newline at end of file
diff --git a/code/datums/elements/dwarfism.html b/code/datums/elements/dwarfism.html
new file mode 100644
index 000000000000..b9b4b1af9643
--- /dev/null
+++ b/code/datums/elements/dwarfism.html
@@ -0,0 +1 @@
+code/datums/elements/dwarfism.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Very similar to squish, but for dwarves and shorties
\ No newline at end of file
diff --git a/code/datums/elements/firestacker.html b/code/datums/elements/firestacker.html
new file mode 100644
index 000000000000..3637eb5cdca2
--- /dev/null
+++ b/code/datums/elements/firestacker.html
@@ -0,0 +1 @@
+code/datums/elements/firestacker.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Can be applied to /atom/movable subtypes to make them apply fire stacks to things they hit
\ No newline at end of file
diff --git a/code/datums/elements/item_scaling.html b/code/datums/elements/item_scaling.html
new file mode 100644
index 000000000000..5cca907ecf84
--- /dev/null
+++ b/code/datums/elements/item_scaling.html
@@ -0,0 +1 @@
+code/datums/elements/item_scaling.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Element for scaling item appearances in the overworld or in inventory/storage.
\ No newline at end of file
diff --git a/code/datums/elements/screentips.html b/code/datums/elements/screentips.html
new file mode 100644
index 000000000000..62b3ec3e214a
--- /dev/null
+++ b/code/datums/elements/screentips.html
@@ -0,0 +1,92 @@
+code/datums/elements/screentips/README.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
Contextual screentips (and when to not use this folder)
Contextual screentips provide information in the form of text at the top of your screen to inform you of the possibilities of an item. The "contextual" here refers to this being handled entirely through code, what it displays and when is completely up to you.
+
The elements (and this folder)
+
This folder provides several useful shortcuts to be able to handle 95% of situations.
+
/datum/element/contextual_screentip_bare_hands
+
This element is used to display screentips when the user hovers over the object with nothing in their active hand.
+
It takes parameters in the form of both non-combat mode and, optionally, combat mode.
This will display "LMB: Turn on | RMB: Turn off" when the user hovers over a fire alarm with an empty active hand.
+
/datum/element/contextual_screentip_tools
+
This element takes a map of tool behaviors to context lists. These will be displayed when the user hovers over the object with an item that has the tool behavior.
This will display "LMB: Craft bola" when the user hovers over cable restraints with metal in their hand.
+
The basic system (and when to not use this folder)
+
The basic system acknowledges the following two interactions:
+
Self-defining items (Type A)
+
These are items that are defined by their behavior. These should define their contextual text within themselves, and not in their targets.
+
+
Stun batons (LMB to stun, RMB to harm)
+
Syringes (LMB to inject, RMB to draw)
+
Health analyzers (LMB to scan for health/wounds [another piece of context], RMB to scans for chemicals)
+
+
Receiving action defining objects (Type B)
+
These are objects (not necessarily items) that are defined by what happens to them. These should define their contextual text within themselves, and not in their operating tools.
+
+
Tables (RMB with wrench to deconstruct)
+
Construction objects (LMB with glass to put in screen for computers)
+
Carbon copies (RMB to take a copy)
+
+
+
Both of these are supported, and can be hooked to through several means.
+
Note that you must return CONTEXTUAL_SCREENTIP_SET if you change the contextual screentip at all, otherwise you may not see it.
+
COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET
+
This signal is registered on items, and receives the hovering object, provided in the form of obj/item/source, list/context, atom/target, mob/living/user.
+
/atom/proc/register_item_context(), and /atom/proc/add_item_context()
+
/atom/proc/add_item_context() is a proc intended to be overridden to easily create Type-B interactions (ones where atoms are hovered over by items). It receives the exact same arguments as COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET: obj/item/source, list/context, atom/target, mob/living/user.
+
In order for your add_item_context() method to be run, you must call register_item_context().
+
COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM
+
This signal is registered on atoms, and receives what the user is hovering with, provided in the form of atom/source, list/context, obj/item/held_item, mob/living/user.
+
/atom/proc/register_context(), and /atom/proc/add_context()
+
/atom/proc/add_context() is a proc intended to be overridden to easily create Type-B interactions (ones where atoms are hovered over by items). It receives the exact same arguments as COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM: atom/source, list/context, obj/item/held_item, mob/living/user.
+
In order for your add_context() method to be run, you must call register_context().
+
+
When using any of these methods, you will receive a mutable context list.
+
Context lists
+
Context lists are lists with keys mapping from SCREENTIP_CONTEXT_* to a string. You can find these keys in code/__DEFINES/screentips.dm.
+
The signals and add_context() variants mutate the list directly, while shortcut elements will just have you pass them in directly.
\ No newline at end of file
diff --git a/code/datums/elements/screentips/contextual_screentip_bare_hands.html b/code/datums/elements/screentips/contextual_screentip_bare_hands.html
new file mode 100644
index 000000000000..6bcc79f31a7b
--- /dev/null
+++ b/code/datums/elements/screentips/contextual_screentip_bare_hands.html
@@ -0,0 +1,3 @@
+code/datums/elements/screentips/contextual_screentip_bare_hands.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Apply basic contextual screentips when the user hovers over this item with an empty hand.
+A "Type B" interaction.
+This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
\ No newline at end of file
diff --git a/code/datums/elements/screentips/contextual_screentip_item_typechecks.html b/code/datums/elements/screentips/contextual_screentip_item_typechecks.html
new file mode 100644
index 000000000000..ec9180506eb8
--- /dev/null
+++ b/code/datums/elements/screentips/contextual_screentip_item_typechecks.html
@@ -0,0 +1,3 @@
+code/datums/elements/screentips/contextual_screentip_item_typechecks.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Apply basic contextual screentips when the user hovers over this item with a provided item.
+A "Type B" interaction.
+This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
\ No newline at end of file
diff --git a/code/datums/elements/screentips/contextual_screentip_sharpness.html b/code/datums/elements/screentips/contextual_screentip_sharpness.html
new file mode 100644
index 000000000000..6598a08ba072
--- /dev/null
+++ b/code/datums/elements/screentips/contextual_screentip_sharpness.html
@@ -0,0 +1,3 @@
+code/datums/elements/screentips/contextual_screentip_sharpness.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Apply basic contextual screentips when the user hovers over this item with an item of the given tool behavior.
+A "Type B" interaction.
+This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
\ No newline at end of file
diff --git a/code/datums/elements/screentips/contextual_screentip_tools.html b/code/datums/elements/screentips/contextual_screentip_tools.html
new file mode 100644
index 000000000000..e1185bcdc83c
--- /dev/null
+++ b/code/datums/elements/screentips/contextual_screentip_tools.html
@@ -0,0 +1,3 @@
+code/datums/elements/screentips/contextual_screentip_tools.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Apply basic contextual screentips when the user hovers over this item with an item of the given tool behavior.
+A "Type B" interaction.
+This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
\ No newline at end of file
diff --git a/code/datums/elements/series.html b/code/datums/elements/series.html
new file mode 100644
index 000000000000..8e52b7aa45d5
--- /dev/null
+++ b/code/datums/elements/series.html
@@ -0,0 +1 @@
+code/datums/elements/series.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/elements/strippable.html b/code/datums/elements/strippable.html
new file mode 100644
index 000000000000..0eacd57b9f27
--- /dev/null
+++ b/code/datums/elements/strippable.html
@@ -0,0 +1 @@
+code/datums/elements/strippable.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Creates an assoc list of keys to /datum/strippable_item
\ No newline at end of file
diff --git a/code/datums/elements/swimming.html b/code/datums/elements/swimming.html
new file mode 100644
index 000000000000..4e106e86d635
--- /dev/null
+++ b/code/datums/elements/swimming.html
@@ -0,0 +1 @@
+code/datums/elements/swimming.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/elements/weather_listener.html b/code/datums/elements/weather_listener.html
new file mode 100644
index 000000000000..aae9c9efec71
--- /dev/null
+++ b/code/datums/elements/weather_listener.html
@@ -0,0 +1 @@
+code/datums/elements/weather_listener.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
This element just handles creating and destroying an area sound manager that's hooked into weather stuff
\ No newline at end of file
diff --git a/code/datums/explosion2.html b/code/datums/explosion2.html
new file mode 100644
index 000000000000..dea8daf7916a
--- /dev/null
+++ b/code/datums/explosion2.html
@@ -0,0 +1 @@
+code/datums/explosion2.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
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..c25d463bd0dc
--- /dev/null
+++ b/code/datums/helper_datums/stack_end_detector.html
@@ -0,0 +1,2 @@
+code/datums/helper_datums/stack_end_detector.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Stack canary. Will go away if the stack it was primed by is ended by byond for return or stack overflow reasons.
\ No newline at end of file
diff --git a/code/datums/mapgen/_MapGenerator.html b/code/datums/mapgen/_MapGenerator.html
new file mode 100644
index 000000000000..783c3d541197
--- /dev/null
+++ b/code/datums/mapgen/_MapGenerator.html
@@ -0,0 +1 @@
+code/datums/mapgen/_MapGenerator.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
This type is responsible for any map generation behavior that is done in areas, override this to allow for area-specific map generation. This generation is ran by areas in initialize.
\ No newline at end of file
diff --git a/code/datums/mapgen/biomes/_biome.html b/code/datums/mapgen/biomes/_biome.html
new file mode 100644
index 000000000000..e5bd582d1fce
--- /dev/null
+++ b/code/datums/mapgen/biomes/_biome.html
@@ -0,0 +1 @@
+code/datums/mapgen/biomes/_biome.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
This datum handles the transitioning from a turf to a specific biome, and handles spawning decorative structures and mobs.
\ No newline at end of file
diff --git a/code/datums/martial/cqc.html b/code/datums/martial/cqc.html
new file mode 100644
index 000000000000..d0f708191667
--- /dev/null
+++ b/code/datums/martial/cqc.html
@@ -0,0 +1 @@
+code/datums/martial/cqc.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/materials/_material.html b/code/datums/materials/_material.html
new file mode 100644
index 000000000000..78a0bf84751a
--- /dev/null
+++ b/code/datums/materials/_material.html
@@ -0,0 +1,2 @@
+code/datums/materials/_material.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/datums/materials/_material.dm
Material datum
+
Simple datum which is instanced once per type and is used for every object of said material. It has a variety of variables that define behavior. Subtyping from this makes it easier to create your own materials.
\ No newline at end of file
diff --git a/code/datums/materials/basemats.html b/code/datums/materials/basemats.html
new file mode 100644
index 000000000000..42e1691e3d9d
--- /dev/null
+++ b/code/datums/materials/basemats.html
@@ -0,0 +1 @@
+code/datums/materials/basemats.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/materials/meat.html b/code/datums/materials/meat.html
new file mode 100644
index 000000000000..f365f261b6e9
--- /dev/null
+++ b/code/datums/materials/meat.html
@@ -0,0 +1 @@
+code/datums/materials/meat.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
It's gross, gets the name of it's owner, and is all kinds of fucked up
\ No newline at end of file
diff --git a/code/datums/mocking/client.html b/code/datums/mocking/client.html
new file mode 100644
index 000000000000..a346355fb7e1
--- /dev/null
+++ b/code/datums/mocking/client.html
@@ -0,0 +1 @@
+code/datums/mocking/client.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
This should match the interface of /client wherever necessary.
\ No newline at end of file
diff --git a/code/datums/mutations/sight.html b/code/datums/mutations/sight.html
new file mode 100644
index 000000000000..88676230c152
--- /dev/null
+++ b/code/datums/mutations/sight.html
@@ -0,0 +1 @@
+code/datums/mutations/sight.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/outfit.html b/code/datums/outfit.html
new file mode 100644
index 000000000000..17925b1b30ba
--- /dev/null
+++ b/code/datums/outfit.html
@@ -0,0 +1,2 @@
+code/datums/outfit.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
This is a clean system of applying outfits to mobs, if you need to equip someone in a uniform
+this is the way to do it cleanly and properly.
\ No newline at end of file
diff --git a/code/datums/ruins/maint.html b/code/datums/ruins/maint.html
new file mode 100644
index 000000000000..f390460121ad
--- /dev/null
+++ b/code/datums/ruins/maint.html
@@ -0,0 +1 @@
+code/datums/ruins/maint.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/skills/_skill.html b/code/datums/skills/_skill.html
new file mode 100644
index 000000000000..6a7373eb0f40
--- /dev/null
+++ b/code/datums/skills/_skill.html
@@ -0,0 +1 @@
+code/datums/skills/_skill.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Classing r p g styled skills, tiered by lvl, and current/nextlvl experience.
\ No newline at end of file
diff --git a/code/datums/skills/_skill_holder.html b/code/datums/skills/_skill_holder.html
new file mode 100644
index 000000000000..ef88247f95ea
--- /dev/null
+++ b/code/datums/skills/_skill_holder.html
@@ -0,0 +1,2 @@
+code/datums/skills/_skill_holder.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Skill holder datums
+All procs are tied to the mind, since they are always expected to have a skill holder anyway.
\ No newline at end of file
diff --git a/code/datums/skills/_skill_modifier.html b/code/datums/skills/_skill_modifier.html
new file mode 100644
index 000000000000..b98edd197e35
--- /dev/null
+++ b/code/datums/skills/_skill_modifier.html
@@ -0,0 +1,2 @@
+code/datums/skills/_skill_modifier.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Base skill modifier datum, used to modify a player skills without directly touching their values, levels and affinity
+and cause lots of edge cases. These are fairly simple overall... make a subtype though, don't use this one.
\ No newline at end of file
diff --git a/code/datums/skills/modifiers/job.html b/code/datums/skills/modifiers/job.html
new file mode 100644
index 000000000000..1b42959abb66
--- /dev/null
+++ b/code/datums/skills/modifiers/job.html
@@ -0,0 +1 @@
+code/datums/skills/modifiers/job.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/soullink.html b/code/datums/soullink.html
new file mode 100644
index 000000000000..e81ab2ce855c
--- /dev/null
+++ b/code/datums/soullink.html
@@ -0,0 +1 @@
+code/datums/soullink.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/station_traits/_station_trait.html b/code/datums/station_traits/_station_trait.html
new file mode 100644
index 000000000000..f41b938145f5
--- /dev/null
+++ b/code/datums/station_traits/_station_trait.html
@@ -0,0 +1 @@
+code/datums/station_traits/_station_trait.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Base class of station traits. These are used to influence rounds in one way or the other by influencing the levers of the station.
\ No newline at end of file
diff --git a/code/datums/status_effects/debuffs.html b/code/datums/status_effects/debuffs.html
new file mode 100644
index 000000000000..cc3fbafb97cd
--- /dev/null
+++ b/code/datums/status_effects/debuffs.html
@@ -0,0 +1 @@
+code/datums/status_effects/debuffs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
The damage healed per tick while sleeping without any modifiers
Define Details
HEALING_SLEEP_DEFAULT
The damage healed per tick while sleeping without any modifiers
\ No newline at end of file
diff --git a/code/datums/status_effects/status_effect.html b/code/datums/status_effects/status_effect.html
new file mode 100644
index 000000000000..b6a8e32de7cf
--- /dev/null
+++ b/code/datums/status_effects/status_effect.html
@@ -0,0 +1 @@
+code/datums/status_effects/status_effect.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Status effect from multiple sources, when all sources are removed, so is the effect
\ No newline at end of file
diff --git a/code/datums/status_effects/wound_effects.html b/code/datums/status_effects/wound_effects.html
new file mode 100644
index 000000000000..f3ccbfd8fa94
--- /dev/null
+++ b/code/datums/status_effects/wound_effects.html
@@ -0,0 +1 @@
+code/datums/status_effects/wound_effects.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/view.html b/code/datums/view.html
new file mode 100644
index 000000000000..051652480093
--- /dev/null
+++ b/code/datums/view.html
@@ -0,0 +1 @@
+code/datums/view.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/datums/weather/weather.html b/code/datums/weather/weather.html
new file mode 100644
index 000000000000..2f47e55d12e9
--- /dev/null
+++ b/code/datums/weather/weather.html
@@ -0,0 +1 @@
+code/datums/weather/weather.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Causes weather to occur on a z level in certain area types
\ No newline at end of file
diff --git a/code/datums/wounds/_scars.html b/code/datums/wounds/_scars.html
new file mode 100644
index 000000000000..e81a6c011380
--- /dev/null
+++ b/code/datums/wounds/_scars.html
@@ -0,0 +1,2 @@
+code/datums/wounds/_scars.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
scars are cosmetic datums that are assigned to bodyparts once they recover from wounds. Each wound type and severity have their own descriptions for what the scars
+look like, and then each body part has a list of "specific locations" like your elbow or wrist or wherever the scar can appear, to make it more interesting than "right arm"
\ No newline at end of file
diff --git a/code/game/area/areas.html b/code/game/area/areas.html
new file mode 100644
index 000000000000..6868b7d0e2be
--- /dev/null
+++ b/code/game/area/areas.html
@@ -0,0 +1 @@
+code/game/area/areas.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Generate a list of turfs you can teleport to from the areas list
\ No newline at end of file
diff --git a/code/game/area/areas/edina.html b/code/game/area/areas/edina.html
new file mode 100644
index 000000000000..1fb526a53703
--- /dev/null
+++ b/code/game/area/areas/edina.html
@@ -0,0 +1 @@
+code/game/area/areas/edina.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/area/areas/mining.html b/code/game/area/areas/mining.html
new file mode 100644
index 000000000000..0f86db9bf3fa
--- /dev/null
+++ b/code/game/area/areas/mining.html
@@ -0,0 +1 @@
+code/game/area/areas/mining.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/area/areas/shuttles.html b/code/game/area/areas/shuttles.html
new file mode 100644
index 000000000000..759928c5bb8a
--- /dev/null
+++ b/code/game/area/areas/shuttles.html
@@ -0,0 +1,2 @@
+code/game/area/areas/shuttles.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/atoms.html b/code/game/atoms.html
new file mode 100644
index 000000000000..07c14799e820
--- /dev/null
+++ b/code/game/atoms.html
@@ -0,0 +1 @@
+code/game/atoms.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
log_wound() is for when someone is attacked and suffers a wound. Note that this only captures wounds from damage, so smites/forced wounds aren't logged, as well as demotions like cuts scabbing over
\ No newline at end of file
diff --git a/code/game/gamemodes/dynamic.html b/code/game/gamemodes/dynamic.html
new file mode 100644
index 000000000000..392420b4070f
--- /dev/null
+++ b/code/game/gamemodes/dynamic.html
@@ -0,0 +1,186 @@
+code/game/gamemodes/dynamic/readme.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
Dynamic Mode
Roundstart
+
Dynamic rolls threat based on a special sauce formula:
This threat is split into two separate budgets--round_start_budget and mid_round_budget. For example, a round with 50 threat might be split into a 30 roundstart budget, and a 20 midround budget. The roundstart budget is used to apply antagonists applied on readied players when the roundstarts (/datum/dynamic_ruleset/roundstart). The midround budget is used for two types of rulesets:
+
+
/datum/dynamic_ruleset/midround - Rulesets that apply to either existing alive players, or to ghosts. Think Blob or Space Ninja, which poll ghosts asking if they want to play as these roles.
+
/datum/dynamic_ruleset/latejoin - Rulesets that apply to the next player that joins. Think Syndicate Infiltrator, which converts a player just joining an existing round into traitor.
+
+
This split is done with a similar method, known as the "lorentz distribution", exists to create a bell curve that ensures that while most rounds will have a threat level around ~50, chaotic and tame rounds still exist for variety.
+
The process of creating these numbers occurs in /datum/game_mode/dynamic/proc/generate_threat (for creating the threat level) and /datum/game_mode/dynamic/proc/generate_budgets (for splitting the threat level into budgets).
+
Deciding roundstart threats
+
In /datum/game_mode/dynamic/proc/roundstart() (called when no admin chooses the rulesets explicitly), Dynamic uses the available roundstart budget to pick threats. This is done through the following system:
+
+
All roundstart rulesets (remember, /datum/dynamic_ruleset/roundstart) are put into an associative list with their weight as the values (drafted_rules).
+
Until there is either no roundstart budget left, or until there is no ruleset we can choose from with the available threat, a pickweight is done based on the drafted_rules. If the same threat is picked twice, it will "scale up". The meaning of this depends on the ruleset itself, using the scaled_times variable; traitors for instance will create more the higher they scale.
+
+
If a ruleset is chosen with the HIGH_IMPACT_RULESET in its flags, then all other HIGH_IMPACT_RULESETs will be removed from drafted_rules. This is so that only one can ever be chosen.
+
If a ruleset has LONE_RULESET in its flags, then it will be removed from drafted_rules. This is to ensure it will only ever be picked once. An example of this in use is Wizard, to avoid creating multiple wizards.
+
+
+
After all roundstart threats are chosen, /datum/dynamic_ruleset/proc/picking_roundstart_rule is called for each, passing in the ruleset and the number of times it is scaled.
+
+
In this stage, pre_execute is called, which is the function that will determine what players get what antagonists. If this function returns FALSE for whatever reason (in the case of an error), then its threat is refunded.
+
+
+
+
After this process is done, any leftover roundstart threat will be given to the existing midround budget (done in /datum/game_mode/dynamic/pre_setup()).
+
Deciding midround threats
+
Latejoin and midround injection cooldowns are set using exponential distribution between
+
+
5 minutes and 25 for latejoin (configurable as latejoin_delay_min and latejoin_delay_max)
+
15 minutes and 35 for midround (configurable as midround_delay_min and midround_delay_max)
+
+
this value is then added to world.time and assigned to the injection cooldown variables.
+
rigged_roundstart is called instead if there are forced rules (an admin set the mode)
Calls rule_process on every rule which is in the current_rules list.
+Every sixty seconds, update_playercounts()
+Midround injection time is checked against world.time to see if an injection should happen.
+If midround injection time is lower than world.time, it updates playercounts again, then tries to inject and generates a new cooldown regardless of whether a rule is picked.
+
Latejoin
+
make_antag_chance(newPlayer) -> (For each latespawn rule...)
+-> acceptable(living players, threat_level) -> trim_candidates() -> ready(forced=FALSE)
+**If true, add to drafted rules
+**NOTE that acceptable uses threat_level not threat!
+**NOTE Latejoin timer is ONLY reset if at least one rule was drafted.
+**NOTE the new_player.dm AttemptLateSpawn() calls OnPostSetup for all roles (unless assigned role is MODE)
For latejoin, it simply sets forced_latejoin_rule
+make_antag_chance(newPlayer) -> trim_candidates() -> ready(forced=TRUE) **NOTE no acceptable() call
+
For midround, calls the below proc with forced = TRUE
+picking_specific_rule(ruletype,forced) -> forced OR acceptable(living_players, threat_level) -> trim_candidates() -> ready(forced) -> spend threat -> execute()
+**NOTE specific rule can be called by RS traitor->MR autotraitor w/ forced=FALSE
+**NOTE that due to short circuiting acceptable() need not be called if forced.
+
Ruleset
+
acceptable(population,threat) just checks if enough threat_level for population indice.
+**NOTE that we currently only send threat_level as the second arg, not threat.
+ready(forced) checks if enough candidates and calls the map's map_ruleset(dynamic_ruleset) at the parent level
+
trim_candidates() varies significantly according to the ruleset type
+Roundstart: All candidates are new_player mobs. Check them for standard stuff: connected, desire role, not banned, etc.
+**NOTE Roundstart deals with both candidates (trimmed list of valid players) and mode.candidates (everyone readied up). Don't confuse them!
+Latejoin: Only one candidate, the latejoiner. Standard checks.
+Midround: Instead of building a single list candidates, candidates contains four lists: living, dead, observing, and living antags. Standard checks in trim_list(list).
+
Midround - Rulesets have additional types
+/from_ghosts: execute() -> send_applications() -> review_applications() -> finish_setup(mob/newcharacter, index) -> setup_role(role)
+**NOTE: execute() here adds dead players and observers to candidates list
+
Configuration and variables
Configuration
+
Configuration can be done through a config/dynamic.json file. One is provided as example in the codebase. This config file, loaded in /datum/game_mode/dynamic/pre_setup(), directly overrides the values in the codebase, and so is perfect for making some rulesets harder/easier to get, turning them off completely, changing how much they cost, etc.
+
The format of this file is:
+
{
+ "Dynamic": {
+ /* Configuration in here will directly override `/datum/game_mode/dynamic` itself. */
+ /* Keys are variable names, values are their new values. */
+ },
+
+ "Roundstart": {
+ /* Configuration in here will apply to `/datum/dynamic_ruleset/roundstart` instances. */
+ /* Keys are the ruleset names, values are another associative list with keys being variable names and values being new values. */
+ "Wizard": {
+ /* I, a head admin, have died to wizard, and so I made it cost a lot more threat than it does in the codebase. */
+ "cost": 80
+ }
+ },
+
+ "Midround": {
+ /* Same as "Roundstart", but for `/datum/dynamic_ruleset/midround` instead. */
+ },
+
+ "Latejoin": {
+ /* Same as "Roundstart", but for `/datum/dynamic_ruleset/latejoin` instead. */
+ }
+}
+
+
Note: Comments are not possible in this format, and are just in this document for the sake of readability.
+
Rulesets
+
Rulesets have the following variables notable to developers and those interested in tuning.
+
+
required_candidates - The number of people that must be willing (in their preferences) to be an antagonist with this ruleset. If the candidates do not meet this requirement, then the ruleset will not bother to be drafted.
+
antag_cap - Judges the amount of antagonists to apply, for both solo and teams. Note that some antagonists (such as traitors, lings, heretics, etc) will add more based on how many times they've been scaled. Written as a linear equation--ceil(x/denominator) + offset, or as a fixed constant. If written as a linear equation, will be in the form of list("denominator" = denominator, "offset" = offset).
+
+
Examples include:
+
+
Traitor: antag_cap = list("denominator" = 24). This means that for every 24 players, 1 traitor will be added (assuming no scaling).
+
Nuclear Emergency: antag_cap = list("denominator" = 18, "offset" = 1). For every 18 players, 1 nuke op will be added. Starts at 1, meaning at 30 players, 3 nuke ops will be created, rather than 2.
+
Revolution: antag_cap = 3. There will always be 3 rev-heads, no matter what.
+
+
+
+
+
minimum_required_age - The minimum age in order to apply for the ruleset.
+
weight - How likely this ruleset is to be picked. A higher weight results in a higher chance of drafting.
+
cost - The initial cost of the ruleset. This cost is taken from either the roundstart or midround budget, depending on the ruleset.
+
scaling_cost - Cost for every additional application of this ruleset.
+
+
Suppose traitors has a cost of 8, and a scaling_cost of 5. This means that buying 1 application of the traitor ruleset costs 8 threat, but buying two costs 13 (8 + 5). Buying it a third time is 18 (8 + 5 + 5), etc.
+
+
+
pop_per_requirement - The range of population each value in requirements represents. By default, this is 6.
+
+
If the value is five the range is 0-4, 5-9, 10-14, 15-19, 20-24, 25-29, 30-34, 35-39, 40-54, 45+.
+
If it is six the range is 0-5, 6-11, 12-17, 18-23, 24-29, 30-35, 36-41, 42-47, 48-53, 54+.
+
If it is seven the range is 0-6, 7-13, 14-20, 21-27, 28-34, 35-41, 42-48, 49-55, 56-62, 63+.
+
+
+
requirements - A list that represents, per population range (see: pop_per_requirement), how much threat is required to consider this ruleset. This is independent of how much it'll actually cost. This uses threat level, not the budget--meaning if a round has 50 threat level, but only 10 points of round start threat, a ruleset with a requirement of 40 can still be picked if it can be bought.
+
+
Suppose wizard has a requirements of list(90,90,70,40,30,20,10,10,10,10). This means that, at 0-5 and 6-11 players, A station must have 90 threat in order for a wizard to be possible. At 12-17, 70 threat is required instead, etc.
+
+
+
restricted_roles - A list of jobs that can't be drafted by this ruleset. For example, cyborgs cannot be changelings, and so are in the restricted_roles.
+
protected_roles - Serves the same purpose of restricted_roles, except it can be turned off through configuration (protect_roles_from_antagonist). For example, security officers shouldn't be made traitor, so they are in Traitor's protected_roles.
+
+
When considering putting a role in protected_roles or restricted_roles, the rule of thumb is if it is technically infeasible to support that job in that role. There's no technical reason a security officer can't be a traitor, and so they are simply in protected_roles. There are technical reasons a cyborg can't be a changeling, so they are in restricted_roles instead.
+
+
+
+
Dynamic
+
The "Dynamic" key has the following configurable values:
+
+
pop_per_requirement - The default value of pop_per_requirement for any ruleset that does not explicitly set it. Defaults to 6.
+
latejoin_delay_min, latejoin_delay_max - The time range, in deciseconds (take your seconds, and multiply by 10), for a latejoin to attempt rolling. Once this timer is finished, a new one will be created within the same range.
+
+
Suppose you have a latejoin_delay_min of 600 (60 seconds, 1 minute) and a latejoin_delay_max of 1800 (180 seconds, 3 minutes). Once the round starts, a random number in this range will be picked--let's suppose 1.5 minutes. After 1.5 minutes, Dynamic will decide if a latejoin threat should be created (a probability of /datum/game_mode/dynamic/proc/get_injection_chance()). Regardless of its decision, a new timer will be started within the range of 1 to 3 minutes, repeatedly.
+
+
+
midround_delay_min, midround_delay_max - Same as latejoin_delay_min and latejoin_delay_max, except for midround threats instead of latejoin ones.
+
higher_injection_chance, higher_injection_chance_minimum_threat - Manipulates the injection chance (/datum/game_mode/dynamic/proc/get_injection_chance()). If the current midround budget is above higher_injection_chance_minimum_threat, then this chance will be increased by higher_injection_chance.
+
+
For example: suppose you have a higher_injection_chance_minimum_threat of 70, and a higher_injection_chance of 15. This means that, if when a midround threat is trying to roll, there is 75 midround budget left, then the injection chance will go up 15%.
+
+
+
lower_injection_chance, lower_injection_chance_minimum_threat - The inverse of the higher_injection_chance variables. If the current midround budget is belowlower_injection_chance, then the chance is lowered by lower_injection_chance_minimum_threat.
+
+
For example: suppose you have a lower_injection_chance_minimum_threat of 30, and a lower_injection_chance of 15. This means if there is 20 midround budget left, then the chance will lower by 15%.
+
+
+
threat_curve_centre - A number between -5 and +5. A negative value will give a more peaceful round and a positive value will give a round with higher threat.
+
threat_curve_width - A number between 0.5 and 4. Higher value will favour extreme rounds and lower value rounds closer to the average.
+
roundstart_split_curve_centre - A number between -5 and +5. Equivalent to threat_curve_centre, but for the budget split. A negative value will weigh towards midround rulesets, and a positive value will weight towards roundstart ones.
+
roundstart_split_curve_width - A number between 0.5 and 4. Equivalent to threat_curve_width, but for the budget split. Higher value will favour more variance in splits and lower value rounds closer to the average.
+
random_event_hijack_minimum - The minimum amount of time for antag random events to be hijacked. (See Random Event Hijacking)
+
random_event_hijack_maximum - The maximum amount of time for antag random events to be hijacked. (See Random Event Hijacking)
+
hijacked_random_event_injection_chance - The amount of injection chance to give to Dynamic when a random event is hijacked. (See Random Event Hijacking)
+
+
Random Event "Hijacking"
+
Random events have the potential to be hijacked by Dynamic to keep the pace of midround injections, while also allowing greenshifts to contain some antagonists.
+
/datum/round_event_control/dynamic_should_hijack is a variable to random events to allow Dynamic to hijack them, and defaults to FALSE. This is set to TRUE for random events that spawn antagonists.
+
In /datum/game_mode/dynamic/on_pre_random_event (in dynamic_hijacking.dm), Dynamic hooks to random events. If the dynamic_should_hijack variable is TRUE, the following sequence of events occurs:
+
+
n is a random value between random_event_hijack_minimum and random_event_hijack_maximum. Injection chance, should it need to be raised, is increased by hijacked_random_event_injection_chance.
\ No newline at end of file
diff --git a/code/game/gamemodes/dynamic/dynamic_logging.html b/code/game/gamemodes/dynamic/dynamic_logging.html
new file mode 100644
index 000000000000..5c20f6ceacf2
--- /dev/null
+++ b/code/game/gamemodes/dynamic/dynamic_logging.html
@@ -0,0 +1,2 @@
+code/game/gamemodes/dynamic/dynamic_logging.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.html b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.html
new file mode 100644
index 000000000000..27685a26e2ee
--- /dev/null
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.html
@@ -0,0 +1 @@
+code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Probability the AI going malf will be accompanied by an ion storm announcement and some ion laws.
REPLACE_LAW_WITH_ION_PROB
The probability to replace an existing law with an ion law instead of adding a new ion law.
\ No newline at end of file
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.html b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.html
new file mode 100644
index 000000000000..fc7bb9b4e4be
--- /dev/null
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.html
@@ -0,0 +1,2 @@
+code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Probability the AI going malf will be accompanied by an ion storm announcement and some ion laws.
+The probability to replace an existing law with an ion law instead of adding a new ion law.
\ No newline at end of file
diff --git a/code/game/machinery/civilian_bountys.html b/code/game/machinery/civilian_bountys.html
new file mode 100644
index 000000000000..2fbc905bef7d
--- /dev/null
+++ b/code/game/machinery/civilian_bountys.html
@@ -0,0 +1 @@
+code/game/machinery/civilian_bountys.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Upon completion of a civilian bounty, one of these is created. It is sold to cargo to give the cargo budget bounty money, and the person who completed it cash.
Beacon to launch a new bounty setup when activated.
\ No newline at end of file
diff --git a/code/game/machinery/computer/dna_console.html b/code/game/machinery/computer/dna_console.html
new file mode 100644
index 000000000000..30d5e033cc87
--- /dev/null
+++ b/code/game/machinery/computer/dna_console.html
@@ -0,0 +1 @@
+code/game/machinery/computer/dna_console.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Flag for the mutation ref search system. Search will include advanced injector mutations
Define Details
INJECTOR_TIMEOUT
Base timeout for creating mutation activators and other injectors
JOKER_TIMEOUT
Timeout for using the Joker feature to solve a gene in DNA Console
JOKER_UPGRADE
How much time DNA Scanner upgrade tiers remove from JOKER_TIMEOUT
NUMBER_OF_BUFFERS
Maximum number of genetic makeup storage slots in DNA Console
RADIATION_ACCURACY_MULTIPLIER
Large values reduce pulse accuracy and may pulse other enzymes than selected
RADIATION_DURATION_MAX
Maximum value for the radiation pulse duration when pulsing enzymes
RADIATION_IRRADIATION_MULTIPLIER
Multiplier for how much radiation received from DNA Console functionality
RADIATION_STRENGTH_MAX
Maximum value for radiaton strength when pulsing enzymes
RADIATION_STRENGTH_MULTIPLIER
Larger multipliers will affect the range of values when pulsing enzymes
SCRAMBLE_TIMEOUT
Timeout for DNA Scramble in DNA Consoles
SEARCH_ADV_INJ
Flag for the mutation ref search system. Search will include advanced injector mutations
SEARCH_DISKETTE
Flag for the mutation ref search system. Search will include diskette storage
SEARCH_OCCUPANT
Flag for the mutation ref search system. Search will include scanner occupant
SEARCH_STORED
Flag for the mutation ref search system. Search will include console storage
STATUS_TRANSFORMING
Special status indicating a scanner occupant is transforming eg. from monkey to human
\ No newline at end of file
diff --git a/code/game/machinery/cryopod.html b/code/game/machinery/cryopod.html
new file mode 100644
index 000000000000..caabadfe7b52
--- /dev/null
+++ b/code/game/machinery/cryopod.html
@@ -0,0 +1 @@
+code/game/machinery/cryopod.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/machinery/deployable.html b/code/game/machinery/deployable.html
new file mode 100644
index 000000000000..c65c2a0e894b
--- /dev/null
+++ b/code/game/machinery/deployable.html
@@ -0,0 +1 @@
+code/game/machinery/deployable.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/machinery/lightswitch.html b/code/game/machinery/lightswitch.html
new file mode 100644
index 000000000000..7af6977813c9
--- /dev/null
+++ b/code/game/machinery/lightswitch.html
@@ -0,0 +1 @@
+code/game/machinery/lightswitch.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/machinery/limbgrower.html b/code/game/machinery/limbgrower.html
new file mode 100644
index 000000000000..38e5b2e36fbe
--- /dev/null
+++ b/code/game/machinery/limbgrower.html
@@ -0,0 +1,2 @@
+code/game/machinery/limbgrower.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
The limbgrower. Makes organd and limbs with synthflesh and chems.
+See [limbgrower_designs.dm] for everything we can make.
\ No newline at end of file
diff --git a/code/game/machinery/porta_turret/portable_turret_cover.html b/code/game/machinery/porta_turret/portable_turret_cover.html
new file mode 100644
index 000000000000..713c07f6bbfc
--- /dev/null
+++ b/code/game/machinery/porta_turret/portable_turret_cover.html
@@ -0,0 +1 @@
+code/game/machinery/porta_turret/portable_turret_cover.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/machinery/shieldgen.html b/code/game/machinery/shieldgen.html
new file mode 100644
index 000000000000..ad886c0c79d1
--- /dev/null
+++ b/code/game/machinery/shieldgen.html
@@ -0,0 +1 @@
+code/game/machinery/shieldgen.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/machinery/slotmachine.html b/code/game/machinery/slotmachine.html
new file mode 100644
index 000000000000..f3cfc8c9016e
--- /dev/null
+++ b/code/game/machinery/slotmachine.html
@@ -0,0 +1,9 @@
+code/game/machinery/slotmachine.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
*
+| Slot Machines |
+| Original code by Glloyd |
+| Tgstation port by Miauw |
+*
Define Details
SPIN_PRICE
*
+| Slot Machines |
+| Original code by Glloyd |
+| Tgstation port by Miauw |
+*
\ No newline at end of file
diff --git a/code/game/machinery/status_display.html b/code/game/machinery/status_display.html
new file mode 100644
index 000000000000..543b08d4cd10
--- /dev/null
+++ b/code/game/machinery/status_display.html
@@ -0,0 +1 @@
+code/game/machinery/status_display.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/machinery/syndicatebomb.html b/code/game/machinery/syndicatebomb.html
new file mode 100644
index 000000000000..aff37129108c
--- /dev/null
+++ b/code/game/machinery/syndicatebomb.html
@@ -0,0 +1 @@
+code/game/machinery/syndicatebomb.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/machinery/telecomms/broadcasting.html b/code/game/machinery/telecomms/broadcasting.html
new file mode 100644
index 000000000000..dbf63739371a
--- /dev/null
+++ b/code/game/machinery/telecomms/broadcasting.html
@@ -0,0 +1,2 @@
+code/game/machinery/telecomms/broadcasting.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Here is the big, bad function that broadcasts a message given the appropriate
+parameters.
\ No newline at end of file
diff --git a/code/game/objects/effects/effect_system/effects_other.html b/code/game/objects/effects/effect_system/effects_other.html
new file mode 100644
index 000000000000..de3734f24817
--- /dev/null
+++ b/code/game/objects/effects/effect_system/effects_other.html
@@ -0,0 +1,4 @@
+code/game/objects/effects/effect_system/effects_other.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
///// Attach a trail to any object, that spawns when it moves (like for the jetpack)
+just pass in the object to attach it to in set_up
+Then do start() to start it and stop() to stop it, obviously
+and don't call start() in a loop that will be repeated otherwise it'll get spammed!
\ No newline at end of file
diff --git a/code/game/objects/effects/effect_system/effects_smoke.html b/code/game/objects/effects/effect_system/effects_smoke.html
new file mode 100644
index 000000000000..b511055bfc36
--- /dev/null
+++ b/code/game/objects/effects/effect_system/effects_smoke.html
@@ -0,0 +1 @@
+code/game/objects/effects/effect_system/effects_smoke.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/effects/forcefields.html b/code/game/objects/effects/forcefields.html
new file mode 100644
index 000000000000..b13e7222bbb5
--- /dev/null
+++ b/code/game/objects/effects/forcefields.html
@@ -0,0 +1 @@
+code/game/objects/effects/forcefields.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/effects/overlays.html b/code/game/objects/effects/overlays.html
new file mode 100644
index 000000000000..c91eb1f4cbc7
--- /dev/null
+++ b/code/game/objects/effects/overlays.html
@@ -0,0 +1 @@
+code/game/objects/effects/overlays.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/effects/spawners/lootdrop.html b/code/game/objects/effects/spawners/lootdrop.html
new file mode 100644
index 000000000000..c3485a718332
--- /dev/null
+++ b/code/game/objects/effects/spawners/lootdrop.html
@@ -0,0 +1 @@
+code/game/objects/effects/spawners/lootdrop.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Mail loot spawner. Some sort of random and rare surgical tool. Alien tech found here.
\ No newline at end of file
diff --git a/code/game/objects/items/AI_modules.html b/code/game/objects/items/AI_modules.html
new file mode 100644
index 000000000000..3b31447595a6
--- /dev/null
+++ b/code/game/objects/items/AI_modules.html
@@ -0,0 +1 @@
+code/game/objects/items/AI_modules.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/items/cigs_lighters.html b/code/game/objects/items/cigs_lighters.html
new file mode 100644
index 000000000000..a1ff66f9093a
--- /dev/null
+++ b/code/game/objects/items/cigs_lighters.html
@@ -0,0 +1 @@
+code/game/objects/items/cigs_lighters.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/items/crayons.html b/code/game/objects/items/crayons.html
new file mode 100644
index 000000000000..67a1ccdda500
--- /dev/null
+++ b/code/game/objects/items/crayons.html
@@ -0,0 +1 @@
+code/game/objects/items/crayons.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/items/defib.html b/code/game/objects/items/defib.html
new file mode 100644
index 000000000000..21af4faf0318
--- /dev/null
+++ b/code/game/objects/items/defib.html
@@ -0,0 +1 @@
+code/game/objects/items/defib.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/items/devices/multitool.html b/code/game/objects/items/devices/multitool.html
new file mode 100644
index 000000000000..3e4c1085904c
--- /dev/null
+++ b/code/game/objects/items/devices/multitool.html
@@ -0,0 +1 @@
+code/game/objects/items/devices/multitool.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Multitool -- A multitool is used for hacking electronic devices.
\ No newline at end of file
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..fcc2a39e3129
--- /dev/null
+++ b/code/game/objects/items/devices/radio/radio.html
@@ -0,0 +1 @@
+code/game/objects/items/devices/radio/radio.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/items/devices/scanners.html b/code/game/objects/items/devices/scanners.html
new file mode 100644
index 000000000000..f2f085a8029c
--- /dev/null
+++ b/code/game/objects/items/devices/scanners.html
@@ -0,0 +1 @@
+code/game/objects/items/devices/scanners.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Displays wounds with extended information on their status vs medscanners
\ No newline at end of file
diff --git a/code/game/objects/items/dice.html b/code/game/objects/items/dice.html
new file mode 100644
index 000000000000..c474b19f1500
--- /dev/null
+++ b/code/game/objects/items/dice.html
@@ -0,0 +1 @@
+code/game/objects/items/dice.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/items/granters.html b/code/game/objects/items/granters.html
new file mode 100644
index 000000000000..ed4aa083ec0c
--- /dev/null
+++ b/code/game/objects/items/granters.html
@@ -0,0 +1 @@
+code/game/objects/items/granters.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/items/grenades/chem_grenade.html b/code/game/objects/items/grenades/chem_grenade.html
new file mode 100644
index 000000000000..490a06213695
--- /dev/null
+++ b/code/game/objects/items/grenades/chem_grenade.html
@@ -0,0 +1 @@
+code/game/objects/items/grenades/chem_grenade.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/items/grenades/plastic.html b/code/game/objects/items/grenades/plastic.html
new file mode 100644
index 000000000000..05c6a4a004e3
--- /dev/null
+++ b/code/game/objects/items/grenades/plastic.html
@@ -0,0 +1 @@
+code/game/objects/items/grenades/plastic.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/items/hand_items.html b/code/game/objects/items/hand_items.html
new file mode 100644
index 000000000000..209d6c6db47b
--- /dev/null
+++ b/code/game/objects/items/hand_items.html
@@ -0,0 +1 @@
+code/game/objects/items/hand_items.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/items/mail.html b/code/game/objects/items/mail.html
new file mode 100644
index 000000000000..ea29a6c9e30a
--- /dev/null
+++ b/code/game/objects/items/mail.html
@@ -0,0 +1,2 @@
+code/game/objects/items/mail.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/items/manuals.html b/code/game/objects/items/manuals.html
new file mode 100644
index 000000000000..a5ccb084b124
--- /dev/null
+++ b/code/game/objects/items/manuals.html
@@ -0,0 +1 @@
+code/game/objects/items/manuals.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/items/melee/energy.html b/code/game/objects/items/melee/energy.html
new file mode 100644
index 000000000000..fdb6bf47ce7c
--- /dev/null
+++ b/code/game/objects/items/melee/energy.html
@@ -0,0 +1 @@
+code/game/objects/items/melee/energy.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Tatortot NEB /////////////// (same stats as regular esword)
\ No newline at end of file
diff --git a/code/game/objects/items/robot/ai_upgrades.html b/code/game/objects/items/robot/ai_upgrades.html
new file mode 100644
index 000000000000..496e60d67bcc
--- /dev/null
+++ b/code/game/objects/items/robot/ai_upgrades.html
@@ -0,0 +1 @@
+code/game/objects/items/robot/ai_upgrades.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/items/robot/robot_items.html b/code/game/objects/items/robot/robot_items.html
new file mode 100644
index 000000000000..c49d286b9491
--- /dev/null
+++ b/code/game/objects/items/robot/robot_items.html
@@ -0,0 +1,2 @@
+code/game/objects/items/robot/robot_items.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Dogborg stuff
+Mere cosmetic dogborg items, remnants of what were once the most annoying cyborg modules.
\ No newline at end of file
diff --git a/code/game/objects/items/stacks/sheets/leather.html b/code/game/objects/items/stacks/sheets/leather.html
new file mode 100644
index 000000000000..924c7551444d
--- /dev/null
+++ b/code/game/objects/items/stacks/sheets/leather.html
@@ -0,0 +1 @@
+code/game/objects/items/stacks/sheets/leather.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/items/storage/boxes.html b/code/game/objects/items/storage/boxes.html
new file mode 100644
index 000000000000..b4d30727c487
--- /dev/null
+++ b/code/game/objects/items/storage/boxes.html
@@ -0,0 +1 @@
+code/game/objects/items/storage/boxes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/items/summon.html b/code/game/objects/items/summon.html
new file mode 100644
index 000000000000..0a62ae97d8d8
--- /dev/null
+++ b/code/game/objects/items/summon.html
@@ -0,0 +1 @@
+code/game/objects/items/summon.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/game/objects/items/toy_mechs.html b/code/game/objects/items/toy_mechs.html
new file mode 100644
index 000000000000..42e50d95b778
--- /dev/null
+++ b/code/game/objects/items/toy_mechs.html
@@ -0,0 +1,3 @@
+code/game/objects/items/toy_mechs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Mech prizes + MECHA COMBAT!!
+Mech battle special attack types.
\ No newline at end of file
diff --git a/code/game/objects/items/weaponry.html b/code/game/objects/items/weaponry.html
new file mode 100644
index 000000000000..dadcfdd79f3a
--- /dev/null
+++ b/code/game/objects/items/weaponry.html
@@ -0,0 +1 @@
+code/game/objects/items/weaponry.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/structures/beds_chairs/chair.html b/code/game/objects/structures/beds_chairs/chair.html
new file mode 100644
index 000000000000..beb36530ae5a
--- /dev/null
+++ b/code/game/objects/structures/beds_chairs/chair.html
@@ -0,0 +1 @@
+code/game/objects/structures/beds_chairs/chair.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/structures/girders.html b/code/game/objects/structures/girders.html
new file mode 100644
index 000000000000..b1e795bc1ecd
--- /dev/null
+++ b/code/game/objects/structures/girders.html
@@ -0,0 +1 @@
+code/game/objects/structures/girders.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/structures/industrial_lift.html b/code/game/objects/structures/industrial_lift.html
new file mode 100644
index 000000000000..92250fa2ab36
--- /dev/null
+++ b/code/game/objects/structures/industrial_lift.html
@@ -0,0 +1 @@
+code/game/objects/structures/industrial_lift.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/structures/kitchen_spike.html b/code/game/objects/structures/kitchen_spike.html
new file mode 100644
index 000000000000..86de73a5a26d
--- /dev/null
+++ b/code/game/objects/structures/kitchen_spike.html
@@ -0,0 +1 @@
+code/game/objects/structures/kitchen_spike.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/game/objects/structures/loom.html b/code/game/objects/structures/loom.html
new file mode 100644
index 000000000000..5b73772654b3
--- /dev/null
+++ b/code/game/objects/structures/loom.html
@@ -0,0 +1 @@
+code/game/objects/structures/loom.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
This is a loom. It's usually made out of wood and used to weave fabric like durathread or cotton into their respective cloth types.
\ No newline at end of file
diff --git a/code/game/objects/structures/manned_turret.html b/code/game/objects/structures/manned_turret.html
new file mode 100644
index 000000000000..5948e4bd0fcb
--- /dev/null
+++ b/code/game/objects/structures/manned_turret.html
@@ -0,0 +1 @@
+code/game/objects/structures/manned_turret.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/structures/safe.html b/code/game/objects/structures/safe.html
new file mode 100644
index 000000000000..9735da414aa2
--- /dev/null
+++ b/code/game/objects/structures/safe.html
@@ -0,0 +1 @@
+code/game/objects/structures/safe.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/game/objects/structures/statues.html b/code/game/objects/structures/statues.html
new file mode 100644
index 000000000000..9c74969e7923
--- /dev/null
+++ b/code/game/objects/structures/statues.html
@@ -0,0 +1,2 @@
+code/game/objects/structures/statues.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/objects/structures/tables_racks.html b/code/game/objects/structures/tables_racks.html
new file mode 100644
index 000000000000..806286e2f5a9
--- /dev/null
+++ b/code/game/objects/structures/tables_racks.html
@@ -0,0 +1 @@
+code/game/objects/structures/tables_racks.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/say.html b/code/game/say.html
new file mode 100644
index 000000000000..5901df8a70d4
--- /dev/null
+++ b/code/game/say.html
@@ -0,0 +1 @@
+code/game/say.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/game/sound.html b/code/game/sound.html
new file mode 100644
index 000000000000..4ad6b3614de7
--- /dev/null
+++ b/code/game/sound.html
@@ -0,0 +1,27 @@
+code/game/sound.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/game/sound.dm
playsound
+
playsound is a proc used to play a 3D sound in a specific range. This uses SOUND_RANGE + extra_range to determine that.
+
source - Origin of sound
+soundin - Either a file, or a string that can be used to get an SFX
+vol - The volume of the sound, excluding falloff and pressure affection.
+vary - bool that determines if the sound changes pitch every time it plays
+extrarange - modifier for sound range. This gets added on top of SOUND_RANGE
+falloff_exponent - Rate of falloff for the audio. Higher means quicker drop to low volume. Should generally be over 1 to indicate a quick dive to 0 rather than a slow dive.
+frequency - playback speed of audio
+channel - The channel the sound is played at
+pressure_affected - Whether or not difference in pressure affects the sound (E.g. if you can hear in space)
+ignore_walls - Whether or not the sound can pass through walls.
+falloff_distance - Distance at which falloff begins. Sound is at peak volume (in regards to falloff) aslong as it is in this range.
+
playsound
+
playsound_local is a proc used to play a sound directly on a mob from a specific turf.
+This is called by playsound to send sounds to players, in which case it also gets the max_distance of that sound.
+
turf_source - Origin of sound
+soundin - Either a file, or a string that can be used to get an SFX
+vol - The volume of the sound, excluding falloff
+vary - bool that determines if the sound changes pitch every time it plays
+frequency - playback speed of audio
+falloff_exponent - Rate of falloff for the audio. Higher means quicker drop to low volume. Should generally be over 1 to indicate a quick dive to 0 rather than a slow dive.
+channel - The channel the sound is played at
+pressure_affected - Whether or not difference in pressure affects the sound (E.g. if you can hear in space)
+max_distance - The peak distance of the sound, if this is a 3D sound
+falloff_distance - Distance at which falloff begins, if this is a 3D sound
+distance_multiplier - Can be used to multiply the distance at which the sound is heard
\ No newline at end of file
diff --git a/code/game/turfs/open/floor/catwalk_plating.html b/code/game/turfs/open/floor/catwalk_plating.html
new file mode 100644
index 000000000000..d86c0462e8ce
--- /dev/null
+++ b/code/game/turfs/open/floor/catwalk_plating.html
@@ -0,0 +1 @@
+code/game/turfs/open/floor/catwalk_plating.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/turfs/simulated/floor/plating/asteroid.html b/code/game/turfs/simulated/floor/plating/asteroid.html
new file mode 100644
index 000000000000..332fc003e600
--- /dev/null
+++ b/code/game/turfs/simulated/floor/plating/asteroid.html
@@ -0,0 +1 @@
+code/game/turfs/simulated/floor/plating/asteroid.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Surface. The surface is warm, but survivable without a suit. Internals are required. The floors break to chasms, which drop you into the underground.
\ No newline at end of file
diff --git a/code/game/turfs/simulated/lava.html b/code/game/turfs/simulated/lava.html
new file mode 100644
index 000000000000..f2e8712e1579
--- /dev/null
+++ b/code/game/turfs/simulated/lava.html
@@ -0,0 +1 @@
+code/game/turfs/simulated/lava.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Burns the target and makes the turf process (depending on the return value of do_burn()).
Define Details
LAVA_BE_BURNING
Burns the target and makes the turf process (depending on the return value of do_burn()).
LAVA_BE_IGNORING
Generic return value of the can_burn_stuff() proc. Does nothing.
LAVA_BE_PROCESSING
Another. Won't burn the target but will make the turf start processing.
\ No newline at end of file
diff --git a/code/game/turfs/simulated/minerals.html b/code/game/turfs/simulated/minerals.html
new file mode 100644
index 000000000000..683fdd7cf4a0
--- /dev/null
+++ b/code/game/turfs/simulated/minerals.html
@@ -0,0 +1 @@
+code/game/turfs/simulated/minerals.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/turfs/simulated/wall/mineral_walls.html b/code/game/turfs/simulated/wall/mineral_walls.html
new file mode 100644
index 000000000000..048770283d7a
--- /dev/null
+++ b/code/game/turfs/simulated/wall/mineral_walls.html
@@ -0,0 +1 @@
+code/game/turfs/simulated/wall/mineral_walls.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/turfs/simulated/wall/reinf_walls.html b/code/game/turfs/simulated/wall/reinf_walls.html
new file mode 100644
index 000000000000..3477eeb00d0d
--- /dev/null
+++ b/code/game/turfs/simulated/wall/reinf_walls.html
@@ -0,0 +1 @@
+code/game/turfs/simulated/wall/reinf_walls.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/game/turfs/turf.html b/code/game/turfs/turf.html
new file mode 100644
index 000000000000..860a9ce14ba2
--- /dev/null
+++ b/code/game/turfs/turf.html
@@ -0,0 +1 @@
+code/game/turfs/turf.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Any floor or wall. What makes up the station and the rest of the map.
\ No newline at end of file
diff --git a/code/modules/actionspeed/_actionspeed_modifier.html b/code/modules/actionspeed/_actionspeed_modifier.html
new file mode 100644
index 000000000000..7b90b452d80a
--- /dev/null
+++ b/code/modules/actionspeed/_actionspeed_modifier.html
@@ -0,0 +1,19 @@
+code/modules/actionspeed/_actionspeed_modifier.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/actionspeed/_actionspeed_modifier.dm
Actionspeed modification datums.
+
How action speed for mobs works
+
+
Action speed is now calculated by using modifier datums which are added to mobs. Some of them (nonvariable ones) are globally cached, the variable ones are instanced and changed based on need.
+
This gives us the ability to have multiple sources of actionspeed, reliabily keep them applied and remove them when they should be
+
THey can have unique sources and a bunch of extra fancy flags that control behaviour
+
Previously trying to update action speed was a shot in the dark that usually meant mobs got stuck going faster or slower
+
Actionspeed modification list is a simple key = datum system. Key will be the datum's ID if it is overridden to not be null, or type if it is not.
+
DO NOT override datum IDs unless you are going to have multiple types that must overwrite each other. It's more efficient to use types, ID functionality is only kept for cases where dynamic creation of modifiers need to be done.
+
When update actionspeed is called, the list of items is iterated, according to flags priority and a bunch of conditions
+this spits out a final calculated value which is used as a modifer to last_move + modifier for calculating when a mob
+can next move
Grabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO!
Used for variable slowdowns like hunger/health loss/etc, works somewhat like the old list-based modification adds. Returns the modifier datum if successful
+How this SHOULD work is:
+1. Ensures type_id_datum one way or another refers to a /variable datum. This makes sure it can't be cached. This includes if it's already in the modification list.
+2. Instantiate a new datum if type_id_datum isn't already instantiated + in the list, using the type. Obviously, wouldn't work for ID only.
+3. Add the datum if necessary using the regular add proc
+4. If any of the rest of the args are not null (see: multiplicative slowdown), modify the datum
+5. Update if necessary
Checks if a action speed modifier is valid and not missing any data
\ No newline at end of file
diff --git a/code/modules/admin/NewBan.html b/code/modules/admin/NewBan.html
new file mode 100644
index 000000000000..25e36a19ce21
--- /dev/null
+++ b/code/modules/admin/NewBan.html
@@ -0,0 +1 @@
+code/modules/admin/NewBan.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/callproc/callproc.html b/code/modules/admin/callproc/callproc.html
new file mode 100644
index 000000000000..40493ec83725
--- /dev/null
+++ b/code/modules/admin/callproc/callproc.html
@@ -0,0 +1 @@
+code/modules/admin/callproc/callproc.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Wrapper for proccalls where the datum is flagged as vareditted
\ No newline at end of file
diff --git a/code/modules/admin/force_event.html b/code/modules/admin/force_event.html
new file mode 100644
index 000000000000..b5dd04b54633
--- /dev/null
+++ b/code/modules/admin/force_event.html
@@ -0,0 +1 @@
+code/modules/admin/force_event.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/berforate.html b/code/modules/admin/smites/berforate.html
new file mode 100644
index 000000000000..cade14ca962e
--- /dev/null
+++ b/code/modules/admin/smites/berforate.html
@@ -0,0 +1 @@
+code/modules/admin/smites/berforate.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/bloodless.html b/code/modules/admin/smites/bloodless.html
new file mode 100644
index 000000000000..49a35c01bba3
--- /dev/null
+++ b/code/modules/admin/smites/bloodless.html
@@ -0,0 +1 @@
+code/modules/admin/smites/bloodless.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/boneless.html b/code/modules/admin/smites/boneless.html
new file mode 100644
index 000000000000..0f5536abad15
--- /dev/null
+++ b/code/modules/admin/smites/boneless.html
@@ -0,0 +1 @@
+code/modules/admin/smites/boneless.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/bonk.html b/code/modules/admin/smites/bonk.html
new file mode 100644
index 000000000000..c0f097399846
--- /dev/null
+++ b/code/modules/admin/smites/bonk.html
@@ -0,0 +1 @@
+code/modules/admin/smites/bonk.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/bookify.html b/code/modules/admin/smites/bookify.html
new file mode 100644
index 000000000000..2ad4e48edb5a
--- /dev/null
+++ b/code/modules/admin/smites/bookify.html
@@ -0,0 +1 @@
+code/modules/admin/smites/bookify.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/brain_damage.html b/code/modules/admin/smites/brain_damage.html
new file mode 100644
index 000000000000..f9a072ec91d2
--- /dev/null
+++ b/code/modules/admin/smites/brain_damage.html
@@ -0,0 +1 @@
+code/modules/admin/smites/brain_damage.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/bread.html b/code/modules/admin/smites/bread.html
new file mode 100644
index 000000000000..6114f7f68e59
--- /dev/null
+++ b/code/modules/admin/smites/bread.html
@@ -0,0 +1 @@
+code/modules/admin/smites/bread.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/bsa.html b/code/modules/admin/smites/bsa.html
new file mode 100644
index 000000000000..b8afdc876801
--- /dev/null
+++ b/code/modules/admin/smites/bsa.html
@@ -0,0 +1 @@
+code/modules/admin/smites/bsa.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/cluwne.html b/code/modules/admin/smites/cluwne.html
new file mode 100644
index 000000000000..6c1c95ea208a
--- /dev/null
+++ b/code/modules/admin/smites/cluwne.html
@@ -0,0 +1 @@
+code/modules/admin/smites/cluwne.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/custompie.html b/code/modules/admin/smites/custompie.html
new file mode 100644
index 000000000000..c0ced47d8d38
--- /dev/null
+++ b/code/modules/admin/smites/custompie.html
@@ -0,0 +1 @@
+code/modules/admin/smites/custompie.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/dock_pay.html b/code/modules/admin/smites/dock_pay.html
new file mode 100644
index 000000000000..74dc8abe4f99
--- /dev/null
+++ b/code/modules/admin/smites/dock_pay.html
@@ -0,0 +1 @@
+code/modules/admin/smites/dock_pay.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/fake_bwoink.html b/code/modules/admin/smites/fake_bwoink.html
new file mode 100644
index 000000000000..5dcf874f5f66
--- /dev/null
+++ b/code/modules/admin/smites/fake_bwoink.html
@@ -0,0 +1 @@
+code/modules/admin/smites/fake_bwoink.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/finalmessage.html b/code/modules/admin/smites/finalmessage.html
new file mode 100644
index 000000000000..fef9bc0927ef
--- /dev/null
+++ b/code/modules/admin/smites/finalmessage.html
@@ -0,0 +1 @@
+code/modules/admin/smites/finalmessage.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/fireball.html b/code/modules/admin/smites/fireball.html
new file mode 100644
index 000000000000..0f8b122ec8a7
--- /dev/null
+++ b/code/modules/admin/smites/fireball.html
@@ -0,0 +1 @@
+code/modules/admin/smites/fireball.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/fry.html b/code/modules/admin/smites/fry.html
new file mode 100644
index 000000000000..59bf683b584a
--- /dev/null
+++ b/code/modules/admin/smites/fry.html
@@ -0,0 +1 @@
+code/modules/admin/smites/fry.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/gib.html b/code/modules/admin/smites/gib.html
new file mode 100644
index 000000000000..a45038c9a41e
--- /dev/null
+++ b/code/modules/admin/smites/gib.html
@@ -0,0 +1 @@
+code/modules/admin/smites/gib.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/immerse.html b/code/modules/admin/smites/immerse.html
new file mode 100644
index 000000000000..0421e67a481a
--- /dev/null
+++ b/code/modules/admin/smites/immerse.html
@@ -0,0 +1 @@
+code/modules/admin/smites/immerse.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
"Fully immerses" the player, making them manually breathe and blink
\ No newline at end of file
diff --git a/code/modules/admin/smites/knot_shoes.html b/code/modules/admin/smites/knot_shoes.html
new file mode 100644
index 000000000000..fab9a849e3a9
--- /dev/null
+++ b/code/modules/admin/smites/knot_shoes.html
@@ -0,0 +1 @@
+code/modules/admin/smites/knot_shoes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/lightning.html b/code/modules/admin/smites/lightning.html
new file mode 100644
index 000000000000..9cad8e940575
--- /dev/null
+++ b/code/modules/admin/smites/lightning.html
@@ -0,0 +1 @@
+code/modules/admin/smites/lightning.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
this is the actual bolt effect and damage, made into its own proc because it is used elsewhere
\ No newline at end of file
diff --git a/code/modules/admin/smites/nugget.html b/code/modules/admin/smites/nugget.html
new file mode 100644
index 000000000000..f40ea0ebdba7
--- /dev/null
+++ b/code/modules/admin/smites/nugget.html
@@ -0,0 +1 @@
+code/modules/admin/smites/nugget.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/phobia_ocky_icky.html b/code/modules/admin/smites/phobia_ocky_icky.html
new file mode 100644
index 000000000000..351c3cf5f109
--- /dev/null
+++ b/code/modules/admin/smites/phobia_ocky_icky.html
@@ -0,0 +1 @@
+code/modules/admin/smites/phobia_ocky_icky.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
"Immerses" the player, making them unable to use some OOC terms IC
\ No newline at end of file
diff --git a/code/modules/admin/smites/pickle.html b/code/modules/admin/smites/pickle.html
new file mode 100644
index 000000000000..3aca20f355fc
--- /dev/null
+++ b/code/modules/admin/smites/pickle.html
@@ -0,0 +1 @@
+code/modules/admin/smites/pickle.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/pie.html b/code/modules/admin/smites/pie.html
new file mode 100644
index 000000000000..76c054231a96
--- /dev/null
+++ b/code/modules/admin/smites/pie.html
@@ -0,0 +1 @@
+code/modules/admin/smites/pie.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/puzzle.html b/code/modules/admin/smites/puzzle.html
new file mode 100644
index 000000000000..ac1133d92a27
--- /dev/null
+++ b/code/modules/admin/smites/puzzle.html
@@ -0,0 +1 @@
+code/modules/admin/smites/puzzle.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/rod.html b/code/modules/admin/smites/rod.html
new file mode 100644
index 000000000000..e2d5176fb440
--- /dev/null
+++ b/code/modules/admin/smites/rod.html
@@ -0,0 +1 @@
+code/modules/admin/smites/rod.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/scarify.html b/code/modules/admin/smites/scarify.html
new file mode 100644
index 000000000000..8a5299f60887
--- /dev/null
+++ b/code/modules/admin/smites/scarify.html
@@ -0,0 +1 @@
+code/modules/admin/smites/scarify.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/shoes.html b/code/modules/admin/smites/shoes.html
new file mode 100644
index 000000000000..fa5d57e7de61
--- /dev/null
+++ b/code/modules/admin/smites/shoes.html
@@ -0,0 +1 @@
+code/modules/admin/smites/shoes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/smites/smite.html b/code/modules/admin/smites/smite.html
new file mode 100644
index 000000000000..07561b42437b
--- /dev/null
+++ b/code/modules/admin/smites/smite.html
@@ -0,0 +1 @@
+code/modules/admin/smites/smite.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
A smite, used by admins to punish players, or for their own amusement
\ No newline at end of file
diff --git a/code/modules/admin/smites/supply_pod.html b/code/modules/admin/smites/supply_pod.html
new file mode 100644
index 000000000000..d83116619196
--- /dev/null
+++ b/code/modules/admin/smites/supply_pod.html
@@ -0,0 +1 @@
+code/modules/admin/smites/supply_pod.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Throws a supply pod at the target, with no item inside
\ No newline at end of file
diff --git a/code/modules/admin/smites/supply_pod_quick.html b/code/modules/admin/smites/supply_pod_quick.html
new file mode 100644
index 000000000000..4d5de2e938e0
--- /dev/null
+++ b/code/modules/admin/smites/supply_pod_quick.html
@@ -0,0 +1 @@
+code/modules/admin/smites/supply_pod_quick.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Quickly throws a supply pod at the target, optionally with an item
\ No newline at end of file
diff --git a/code/modules/admin/smites/tabletide.html b/code/modules/admin/smites/tabletide.html
new file mode 100644
index 000000000000..5a488f4a0e56
--- /dev/null
+++ b/code/modules/admin/smites/tabletide.html
@@ -0,0 +1 @@
+code/modules/admin/smites/tabletide.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/tag.html b/code/modules/admin/tag.html
new file mode 100644
index 000000000000..867ec8cb6398
--- /dev/null
+++ b/code/modules/admin/tag.html
@@ -0,0 +1 @@
+code/modules/admin/tag.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
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..ab5371e2ddd1
--- /dev/null
+++ b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.html
@@ -0,0 +1 @@
+code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/verbs/adminhelp.html b/code/modules/admin/verbs/adminhelp.html
new file mode 100644
index 000000000000..efa4401db005
--- /dev/null
+++ b/code/modules/admin/verbs/adminhelp.html
@@ -0,0 +1 @@
+code/modules/admin/verbs/adminhelp.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Checks a given message to see if any of the words contain an active admin's ckey with an @ before it
\ No newline at end of file
diff --git a/code/modules/admin/verbs/pray.html b/code/modules/admin/verbs/pray.html
new file mode 100644
index 000000000000..40407ceac7e0
--- /dev/null
+++ b/code/modules/admin/verbs/pray.html
@@ -0,0 +1 @@
+code/modules/admin/verbs/pray.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Used by communications consoles to request the nuclear launch codes
\ No newline at end of file
diff --git a/code/modules/admin/verbs/randomverbs.html b/code/modules/admin/verbs/randomverbs.html
new file mode 100644
index 000000000000..b091803ac0f4
--- /dev/null
+++ b/code/modules/admin/verbs/randomverbs.html
@@ -0,0 +1 @@
+code/modules/admin/verbs/randomverbs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
"Immerse", or how I made the entire playerbase quit the game.
\ No newline at end of file
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..97f8d8121f43
--- /dev/null
+++ b/code/modules/admin/view_variables/debug_variables.html
@@ -0,0 +1 @@
+code/modules/admin/view_variables/debug_variables.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/admin/view_variables/view_variables.html b/code/modules/admin/view_variables/view_variables.html
new file mode 100644
index 000000000000..b035f60ef203
--- /dev/null
+++ b/code/modules/admin/view_variables/view_variables.html
@@ -0,0 +1 @@
+code/modules/admin/view_variables/view_variables.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
this dmi has null-named icon_state, allowing it to show a sprite on vv editor.
Define Details
ICON_STATE_CHECKED
this dmi is checked. We don't check this one anymore.
ICON_STATE_NULL
this dmi has null-named icon_state, allowing it to show a sprite on vv editor.
\ No newline at end of file
diff --git a/code/modules/antagonists/_common/antag_spawner.html b/code/modules/antagonists/_common/antag_spawner.html
new file mode 100644
index 000000000000..f61952762f27
--- /dev/null
+++ b/code/modules/antagonists/_common/antag_spawner.html
@@ -0,0 +1 @@
+code/modules/antagonists/_common/antag_spawner.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_powers.html b/code/modules/antagonists/bloodsucker/bloodsucker_powers.html
new file mode 100644
index 000000000000..c363bc2ad5b3
--- /dev/null
+++ b/code/modules/antagonists/bloodsucker/bloodsucker_powers.html
@@ -0,0 +1 @@
+code/modules/antagonists/bloodsucker/bloodsucker_powers.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/antagonists/changeling/changeling.html b/code/modules/antagonists/changeling/changeling.html
new file mode 100644
index 000000000000..9cbfdd437328
--- /dev/null
+++ b/code/modules/antagonists/changeling/changeling.html
@@ -0,0 +1 @@
+code/modules/antagonists/changeling/changeling.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Helper to format the text that gets thrown onto the chem hud element.
Define Details
FORMAT_CHEM_CHARGES_TEXT
Helper to format the text that gets thrown onto the chem hud element.
\ No newline at end of file
diff --git a/code/modules/antagonists/changeling/powers/mutations.html b/code/modules/antagonists/changeling/powers/mutations.html
new file mode 100644
index 000000000000..84521b9915ab
--- /dev/null
+++ b/code/modules/antagonists/changeling/powers/mutations.html
@@ -0,0 +1,13 @@
+code/modules/antagonists/changeling/powers/mutations.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/antagonists/cult/cult_comms.html b/code/modules/antagonists/cult/cult_comms.html
new file mode 100644
index 000000000000..80649e7924fa
--- /dev/null
+++ b/code/modules/antagonists/cult/cult_comms.html
@@ -0,0 +1 @@
+code/modules/antagonists/cult/cult_comms.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/antagonists/devil/imp/imp.html b/code/modules/antagonists/devil/imp/imp.html
new file mode 100644
index 000000000000..088f2ad2c209
--- /dev/null
+++ b/code/modules/antagonists/devil/imp/imp.html
@@ -0,0 +1 @@
+code/modules/antagonists/devil/imp/imp.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/antagonists/disease/disease_abilities.html b/code/modules/antagonists/disease/disease_abilities.html
new file mode 100644
index 000000000000..ab5c7d526d65
--- /dev/null
+++ b/code/modules/antagonists/disease/disease_abilities.html
@@ -0,0 +1 @@
+code/modules/antagonists/disease/disease_abilities.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/antagonists/eldritch_cult/eldritch_effects.html b/code/modules/antagonists/eldritch_cult/eldritch_effects.html
new file mode 100644
index 000000000000..44726a0cc13c
--- /dev/null
+++ b/code/modules/antagonists/eldritch_cult/eldritch_effects.html
@@ -0,0 +1 @@
+code/modules/antagonists/eldritch_cult/eldritch_effects.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/antagonists/eldritch_cult/eldritch_knowledge.html b/code/modules/antagonists/eldritch_cult/eldritch_knowledge.html
new file mode 100644
index 000000000000..2fa65db31078
--- /dev/null
+++ b/code/modules/antagonists/eldritch_cult/eldritch_knowledge.html
@@ -0,0 +1 @@
+code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/antagonists/eldritch_cult/eldritch_monster_antag.html b/code/modules/antagonists/eldritch_cult/eldritch_monster_antag.html
new file mode 100644
index 000000000000..4b09a55b600a
--- /dev/null
+++ b/code/modules/antagonists/eldritch_cult/eldritch_monster_antag.html
@@ -0,0 +1 @@
+code/modules/antagonists/eldritch_cult/eldritch_monster_antag.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.html b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.html
new file mode 100644
index 000000000000..1d8c653ca48b
--- /dev/null
+++ b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.html
@@ -0,0 +1 @@
+code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/antagonists/gang/handler.html b/code/modules/antagonists/gang/handler.html
new file mode 100644
index 000000000000..a8bd1510c7f5
--- /dev/null
+++ b/code/modules/antagonists/gang/handler.html
@@ -0,0 +1 @@
+code/modules/antagonists/gang/handler.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
A special datum used by the families gamemode and dynamic rulesets to centralize code. "Family" and "gang" used interchangeably in code.
\ No newline at end of file
diff --git a/code/modules/antagonists/gang/themes.html b/code/modules/antagonists/gang/themes.html
new file mode 100644
index 000000000000..98fdc462350b
--- /dev/null
+++ b/code/modules/antagonists/gang/themes.html
@@ -0,0 +1 @@
+code/modules/antagonists/gang/themes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Gang themes for the Families gamemode. Used to determine the RP theme of the round, what gangs are present, and what their objectives are.
\ No newline at end of file
diff --git a/code/modules/antagonists/revolution/revolution.html b/code/modules/antagonists/revolution/revolution.html
new file mode 100644
index 000000000000..2c7b23dcebea
--- /dev/null
+++ b/code/modules/antagonists/revolution/revolution.html
@@ -0,0 +1 @@
+code/modules/antagonists/revolution/revolution.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
"Enemy of the Revolutionary", given to heads and security when the revolution wins
\ No newline at end of file
diff --git a/code/modules/antagonists/slaughter/slaughter.html b/code/modules/antagonists/slaughter/slaughter.html
new file mode 100644
index 000000000000..2a81a481441c
--- /dev/null
+++ b/code/modules/antagonists/slaughter/slaughter.html
@@ -0,0 +1 @@
+code/modules/antagonists/slaughter/slaughter.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/antagonists/swarmer/swarmer.html b/code/modules/antagonists/swarmer/swarmer.html
new file mode 100644
index 000000000000..bfcd00c6e141
--- /dev/null
+++ b/code/modules/antagonists/swarmer/swarmer.html
@@ -0,0 +1 @@
+code/modules/antagonists/swarmer/swarmer.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/antagonists/traitor/equipment/contractor.html b/code/modules/antagonists/traitor/equipment/contractor.html
new file mode 100644
index 000000000000..c9159c91508e
--- /dev/null
+++ b/code/modules/antagonists/traitor/equipment/contractor.html
@@ -0,0 +1 @@
+code/modules/antagonists/traitor/equipment/contractor.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Team for storing both the contractor and their support unit - only really for the HUD and admin logging.
\ No newline at end of file
diff --git a/code/modules/antagonists/wizard/equipment/artefact.html b/code/modules/antagonists/wizard/equipment/artefact.html
new file mode 100644
index 000000000000..cd8579a426e4
--- /dev/null
+++ b/code/modules/antagonists/wizard/equipment/artefact.html
@@ -0,0 +1 @@
+code/modules/antagonists/wizard/equipment/artefact.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/antagonists/wizard/equipment/soulstone.html b/code/modules/antagonists/wizard/equipment/soulstone.html
new file mode 100644
index 000000000000..6c3a20b514a2
--- /dev/null
+++ b/code/modules/antagonists/wizard/equipment/soulstone.html
@@ -0,0 +1 @@
+code/modules/antagonists/wizard/equipment/soulstone.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/assembly/infrared.html b/code/modules/assembly/infrared.html
new file mode 100644
index 000000000000..062ef19ec99d
--- /dev/null
+++ b/code/modules/assembly/infrared.html
@@ -0,0 +1 @@
+code/modules/assembly/infrared.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/asset_cache.html b/code/modules/asset_cache.html
new file mode 100644
index 000000000000..d7c731021e24
--- /dev/null
+++ b/code/modules/asset_cache.html
@@ -0,0 +1,17 @@
+code/modules/asset_cache/readme.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
Asset cache system
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.
\ No newline at end of file
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..c66537764f29
--- /dev/null
+++ b/code/modules/asset_cache/asset_cache_item.html
@@ -0,0 +1 @@
+code/modules/asset_cache/asset_cache_item.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
An internal datum containing info on items in the asset cache. Mainly used to cache md5 info for speed.
\ No newline at end of file
diff --git a/code/modules/asset_cache/asset_list.html b/code/modules/asset_cache/asset_list.html
new file mode 100644
index 000000000000..17746c0f4ce6
--- /dev/null
+++ b/code/modules/asset_cache/asset_list.html
@@ -0,0 +1,5 @@
+code/modules/asset_cache/asset_list.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
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)
\ No newline at end of file
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..80409cacf4d2
--- /dev/null
+++ b/code/modules/asset_cache/transports/asset_transport.html
@@ -0,0 +1 @@
+code/modules/asset_cache/transports/asset_transport.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
When sending mutiple assets, how many before we give the client a quaint little sending resources message
\ No newline at end of file
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..f87846a27339
--- /dev/null
+++ b/code/modules/asset_cache/transports/webroot_transport.html
@@ -0,0 +1 @@
+code/modules/asset_cache/transports/webroot_transport.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.html b/code/modules/atmospherics/gasmixtures/gas_mixture.html
new file mode 100644
index 000000000000..6e2fa85d9da4
--- /dev/null
+++ b/code/modules/atmospherics/gasmixtures/gas_mixture.html
@@ -0,0 +1,2 @@
+code/modules/atmospherics/gasmixtures/gas_mixture.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Releases gas from src to output air. This means that it can not transfer air to gas mixture with higher pressure.
+a global proc due to rustmos
\ No newline at end of file
diff --git a/code/modules/atmospherics/multiz.html b/code/modules/atmospherics/multiz.html
new file mode 100644
index 000000000000..27d470440eae
--- /dev/null
+++ b/code/modules/atmospherics/multiz.html
@@ -0,0 +1 @@
+code/modules/atmospherics/multiz.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
This is an atmospherics pipe which can relay air up/down a deck.
\ No newline at end of file
diff --git a/code/modules/awaymissions/corpse.html b/code/modules/awaymissions/corpse.html
new file mode 100644
index 000000000000..fa120bb26b51
--- /dev/null
+++ b/code/modules/awaymissions/corpse.html
@@ -0,0 +1 @@
+code/modules/awaymissions/corpse.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/awaymissions/gateway.html b/code/modules/awaymissions/gateway.html
new file mode 100644
index 000000000000..f8f5558ee5a7
--- /dev/null
+++ b/code/modules/awaymissions/gateway.html
@@ -0,0 +1 @@
+code/modules/awaymissions/gateway.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/awaymissions/mission_code/snowdin.html b/code/modules/awaymissions/mission_code/snowdin.html
new file mode 100644
index 000000000000..524f4321bcfe
--- /dev/null
+++ b/code/modules/awaymissions/mission_code/snowdin.html
@@ -0,0 +1 @@
+code/modules/awaymissions/mission_code/snowdin.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/awaymissions/mission_code/wildwest.html b/code/modules/awaymissions/mission_code/wildwest.html
new file mode 100644
index 000000000000..b3fa17d53c58
--- /dev/null
+++ b/code/modules/awaymissions/mission_code/wildwest.html
@@ -0,0 +1 @@
+code/modules/awaymissions/mission_code/wildwest.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/balloon_alert/balloon_alert.html b/code/modules/balloon_alert/balloon_alert.html
new file mode 100644
index 000000000000..eecc17f7d5c4
--- /dev/null
+++ b/code/modules/balloon_alert/balloon_alert.html
@@ -0,0 +1 @@
+code/modules/balloon_alert/balloon_alert.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
The amount of characters needed before this increase takes into effect
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
\ No newline at end of file
diff --git a/code/modules/buildmode.html b/code/modules/buildmode.html
new file mode 100644
index 000000000000..ea08e4ce3648
--- /dev/null
+++ b/code/modules/buildmode.html
@@ -0,0 +1,204 @@
+code/modules/buildmode/README.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
Buildmode
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.
+
+
+
+
+
Map Generator
+
Description:
+
Fills rectangular regions with algorithmically generated content. Right click during region selection to cancel.
+
See the procedural_mapping module for the generators themselves.
+
Controls:
+
+
+
Right-click on the mode selector:
+
Select a map generator from all the generators present in the codebase.
+
+
+
Left click two corners of an area:
+
Use the generator to populate the region.
+
+
+
Right click during region selection:
+
Cancel region selection.
+
+
+
+
+
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.
+
+
+
+
\ No newline at end of file
diff --git a/code/modules/cargo/packs/armory.html b/code/modules/cargo/packs/armory.html
new file mode 100644
index 000000000000..61d0868ab2a7
--- /dev/null
+++ b/code/modules/cargo/packs/armory.html
@@ -0,0 +1 @@
+code/modules/cargo/packs/armory.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/cargo/packs/costumes_toys.html b/code/modules/cargo/packs/costumes_toys.html
new file mode 100644
index 000000000000..6bd8c7128296
--- /dev/null
+++ b/code/modules/cargo/packs/costumes_toys.html
@@ -0,0 +1 @@
+code/modules/cargo/packs/costumes_toys.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/cargo/packs/emergency.html b/code/modules/cargo/packs/emergency.html
new file mode 100644
index 000000000000..05c2b50b2b8b
--- /dev/null
+++ b/code/modules/cargo/packs/emergency.html
@@ -0,0 +1 @@
+code/modules/cargo/packs/emergency.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/cargo/packs/engine.html b/code/modules/cargo/packs/engine.html
new file mode 100644
index 000000000000..e2b11a92a230
--- /dev/null
+++ b/code/modules/cargo/packs/engine.html
@@ -0,0 +1 @@
+code/modules/cargo/packs/engine.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/cargo/packs/engineering.html b/code/modules/cargo/packs/engineering.html
new file mode 100644
index 000000000000..5748509db981
--- /dev/null
+++ b/code/modules/cargo/packs/engineering.html
@@ -0,0 +1 @@
+code/modules/cargo/packs/engineering.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/cargo/packs/livestock.html b/code/modules/cargo/packs/livestock.html
new file mode 100644
index 000000000000..336074f79e1e
--- /dev/null
+++ b/code/modules/cargo/packs/livestock.html
@@ -0,0 +1 @@
+code/modules/cargo/packs/livestock.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/cargo/packs/materials.html b/code/modules/cargo/packs/materials.html
new file mode 100644
index 000000000000..129c7dc6d64c
--- /dev/null
+++ b/code/modules/cargo/packs/materials.html
@@ -0,0 +1 @@
+code/modules/cargo/packs/materials.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/cargo/packs/medical.html b/code/modules/cargo/packs/medical.html
new file mode 100644
index 000000000000..0c90db6b6ba4
--- /dev/null
+++ b/code/modules/cargo/packs/medical.html
@@ -0,0 +1 @@
+code/modules/cargo/packs/medical.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/cargo/packs/misc.html b/code/modules/cargo/packs/misc.html
new file mode 100644
index 000000000000..0aec3fd89516
--- /dev/null
+++ b/code/modules/cargo/packs/misc.html
@@ -0,0 +1 @@
+code/modules/cargo/packs/misc.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Special supply crate that generates random syndicate gear up to a determined TC value
\ No newline at end of file
diff --git a/code/modules/cargo/packs/organic.html b/code/modules/cargo/packs/organic.html
new file mode 100644
index 000000000000..507fbc80fecb
--- /dev/null
+++ b/code/modules/cargo/packs/organic.html
@@ -0,0 +1 @@
+code/modules/cargo/packs/organic.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/cargo/packs/science.html b/code/modules/cargo/packs/science.html
new file mode 100644
index 000000000000..aeee0996807c
--- /dev/null
+++ b/code/modules/cargo/packs/science.html
@@ -0,0 +1 @@
+code/modules/cargo/packs/science.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/cargo/packs/security.html b/code/modules/cargo/packs/security.html
new file mode 100644
index 000000000000..66c1663ddbea
--- /dev/null
+++ b/code/modules/cargo/packs/security.html
@@ -0,0 +1 @@
+code/modules/cargo/packs/security.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/cargo/packs/service.html b/code/modules/cargo/packs/service.html
new file mode 100644
index 000000000000..737d085b8938
--- /dev/null
+++ b/code/modules/cargo/packs/service.html
@@ -0,0 +1 @@
+code/modules/cargo/packs/service.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/cargo/packs/vending.html b/code/modules/cargo/packs/vending.html
new file mode 100644
index 000000000000..6941e4be28a6
--- /dev/null
+++ b/code/modules/cargo/packs/vending.html
@@ -0,0 +1 @@
+code/modules/cargo/packs/vending.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/clothing/masks/boxing.html b/code/modules/clothing/masks/boxing.html
new file mode 100644
index 000000000000..155256376d12
--- /dev/null
+++ b/code/modules/clothing/masks/boxing.html
@@ -0,0 +1 @@
+code/modules/clothing/masks/boxing.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
This makes it so that your name shows up as unknown when wearing the mask.
\ No newline at end of file
diff --git a/code/modules/clothing/masks/miscellaneous.html b/code/modules/clothing/masks/miscellaneous.html
new file mode 100644
index 000000000000..aa7c826176f5
--- /dev/null
+++ b/code/modules/clothing/masks/miscellaneous.html
@@ -0,0 +1 @@
+code/modules/clothing/masks/miscellaneous.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/clothing/spacesuits/hardsuit.html b/code/modules/clothing/spacesuits/hardsuit.html
new file mode 100644
index 000000000000..0a97214bad1f
--- /dev/null
+++ b/code/modules/clothing/spacesuits/hardsuit.html
@@ -0,0 +1 @@
+code/modules/clothing/spacesuits/hardsuit.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/events/holiday/halloween.html b/code/modules/events/holiday/halloween.html
new file mode 100644
index 000000000000..e9e652a964ab
--- /dev/null
+++ b/code/modules/events/holiday/halloween.html
@@ -0,0 +1 @@
+code/modules/events/holiday/halloween.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/events/stray_cargo.html b/code/modules/events/stray_cargo.html
new file mode 100644
index 000000000000..797c8dfe5aff
--- /dev/null
+++ b/code/modules/events/stray_cargo.html
@@ -0,0 +1 @@
+code/modules/events/stray_cargo.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
A rare variant that drops a crate containing syndicate uplink items
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/drinks/drinks.html b/code/modules/food_and_drinks/drinks/drinks.html
new file mode 100644
index 000000000000..5ed7067ccc35
--- /dev/null
+++ b/code/modules/food_and_drinks/drinks/drinks.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/drinks/drinks.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.html b/code/modules/food_and_drinks/drinks/drinks/bottle.html
new file mode 100644
index 000000000000..6e1a2100566d
--- /dev/null
+++ b/code/modules/food_and_drinks/drinks/drinks/bottle.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/drinks/drinks/bottle.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food.html b/code/modules/food_and_drinks/food.html
new file mode 100644
index 000000000000..176235c98382
--- /dev/null
+++ b/code/modules/food_and_drinks/food.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/food.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food/condiment.html b/code/modules/food_and_drinks/food/condiment.html
new file mode 100644
index 000000000000..895352c9e0d0
--- /dev/null
+++ b/code/modules/food_and_drinks/food/condiment.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/food/condiment.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food/customizables.html b/code/modules/food_and_drinks/food/customizables.html
new file mode 100644
index 000000000000..af9eb6bf96fd
--- /dev/null
+++ b/code/modules/food_and_drinks/food/customizables.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/food/customizables.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food/snacks.html b/code/modules/food_and_drinks/food/snacks.html
new file mode 100644
index 000000000000..0a4ba93a7536
--- /dev/null
+++ b/code/modules/food_and_drinks/food/snacks.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/food/snacks.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
All the food items that can store an item inside itself, like bread or cake.
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food/snacks/dough.html b/code/modules/food_and_drinks/food/snacks/dough.html
new file mode 100644
index 000000000000..eeebc9ecb511
--- /dev/null
+++ b/code/modules/food_and_drinks/food/snacks/dough.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/food/snacks/dough.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food/snacks/meat.html b/code/modules/food_and_drinks/food/snacks/meat.html
new file mode 100644
index 000000000000..6251557e1134
--- /dev/null
+++ b/code/modules/food_and_drinks/food/snacks/meat.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/food/snacks/meat.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food/snacks_egg.html b/code/modules/food_and_drinks/food/snacks_egg.html
new file mode 100644
index 000000000000..565edcb9731c
--- /dev/null
+++ b/code/modules/food_and_drinks/food/snacks_egg.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/food/snacks_egg.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food/snacks_meat.html b/code/modules/food_and_drinks/food/snacks_meat.html
new file mode 100644
index 000000000000..908127610324
--- /dev/null
+++ b/code/modules/food_and_drinks/food/snacks_meat.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/food/snacks_meat.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food/snacks_other.html b/code/modules/food_and_drinks/food/snacks_other.html
new file mode 100644
index 000000000000..2799eb4d48f2
--- /dev/null
+++ b/code/modules/food_and_drinks/food/snacks_other.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/food/snacks_other.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food/snacks_pastry.html b/code/modules/food_and_drinks/food/snacks_pastry.html
new file mode 100644
index 000000000000..f16515c7fb3c
--- /dev/null
+++ b/code/modules/food_and_drinks/food/snacks_pastry.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/food/snacks_pastry.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food/snacks_pizza.html b/code/modules/food_and_drinks/food/snacks_pizza.html
new file mode 100644
index 000000000000..8bdb9ff59136
--- /dev/null
+++ b/code/modules/food_and_drinks/food/snacks_pizza.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/food/snacks_pizza.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food/snacks_salad.html b/code/modules/food_and_drinks/food/snacks_salad.html
new file mode 100644
index 000000000000..9892ed395805
--- /dev/null
+++ b/code/modules/food_and_drinks/food/snacks_salad.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/food/snacks_salad.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food/snacks_sushi.html b/code/modules/food_and_drinks/food/snacks_sushi.html
new file mode 100644
index 000000000000..b80b32bd7994
--- /dev/null
+++ b/code/modules/food_and_drinks/food/snacks_sushi.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/food/snacks_sushi.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/food/snacks_vend.html b/code/modules/food_and_drinks/food/snacks_vend.html
new file mode 100644
index 000000000000..8b18d243ec41
--- /dev/null
+++ b/code/modules/food_and_drinks/food/snacks_vend.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/food/snacks_vend.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/drinks_recipes.html b/code/modules/food_and_drinks/recipes/drinks_recipes.html
new file mode 100644
index 000000000000..a9aac6df328d
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/drinks_recipes.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/drinks_recipes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/food_mixtures.html b/code/modules/food_and_drinks/recipes/food_mixtures.html
new file mode 100644
index 000000000000..738bb55e5b7e
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/food_mixtures.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/food_mixtures.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.html
new file mode 100644
index 000000000000..25d9f6c8920f
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.html
new file mode 100644
index 000000000000..c1e35e461a57
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.html
new file mode 100644
index 000000000000..e5d3514eb54c
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.html
new file mode 100644
index 000000000000..4df12662b5ef
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.html
new file mode 100644
index 000000000000..a2cfca51a475
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.html
new file mode 100644
index 000000000000..16eb55e42553
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.html
new file mode 100644
index 000000000000..6e32adfe7702
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.html
new file mode 100644
index 000000000000..8c51ce4184fb
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.html
new file mode 100644
index 000000000000..890dbce4290b
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.html
new file mode 100644
index 000000000000..0c7a7b737ee9
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pies_sweets.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pies_sweets.html
new file mode 100644
index 000000000000..ef0f5b641caf
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pies_sweets.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_pies_sweets.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.html
new file mode 100644
index 000000000000..9bdf791ada07
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.html
new file mode 100644
index 000000000000..ba485587c214
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.html
new file mode 100644
index 000000000000..f48226ba259a
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.html
new file mode 100644
index 000000000000..776de1c77855
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.html
new file mode 100644
index 000000000000..1ff05c454f7e
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.html b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.html
new file mode 100644
index 000000000000..a097232fcf5a
--- /dev/null
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.html
@@ -0,0 +1 @@
+code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/games/unum.html b/code/modules/games/unum.html
new file mode 100644
index 000000000000..7e223182aa0a
--- /dev/null
+++ b/code/modules/games/unum.html
@@ -0,0 +1 @@
+code/modules/games/unum.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/holiday/halloween/jacqueen.html b/code/modules/holiday/halloween/jacqueen.html
new file mode 100644
index 000000000000..17586c2706f3
--- /dev/null
+++ b/code/modules/holiday/halloween/jacqueen.html
@@ -0,0 +1 @@
+code/modules/holiday/halloween/jacqueen.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/hydroponics/grown/towercap.html b/code/modules/hydroponics/grown/towercap.html
new file mode 100644
index 000000000000..909665a280e8
--- /dev/null
+++ b/code/modules/hydroponics/grown/towercap.html
@@ -0,0 +1 @@
+code/modules/hydroponics/grown/towercap.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/hydroponics/seed_extractor.html b/code/modules/hydroponics/seed_extractor.html
new file mode 100644
index 000000000000..b857957e58d5
--- /dev/null
+++ b/code/modules/hydroponics/seed_extractor.html
@@ -0,0 +1 @@
+code/modules/hydroponics/seed_extractor.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/instruments/instrument_data/_instrument_data.html b/code/modules/instruments/instrument_data/_instrument_data.html
new file mode 100644
index 000000000000..73f3844aeba9
--- /dev/null
+++ b/code/modules/instruments/instrument_data/_instrument_data.html
@@ -0,0 +1 @@
+code/modules/instruments/instrument_data/_instrument_data.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/instruments/songs/_song.html b/code/modules/instruments/songs/_song.html
new file mode 100644
index 000000000000..19aa9f94a58d
--- /dev/null
+++ b/code/modules/instruments/songs/_song.html
@@ -0,0 +1,2 @@
+code/modules/instruments/songs/_song.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
These are the actual backend behind instruments.
+They attach to an atom and provide the editor + playback functionality.
\ No newline at end of file
diff --git a/code/modules/jobs/access.html b/code/modules/jobs/access.html
new file mode 100644
index 000000000000..54bb4aae2e04
--- /dev/null
+++ b/code/modules/jobs/access.html
@@ -0,0 +1 @@
+code/modules/jobs/access.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Gets the job title, if the job name is an alt title, locates the original title using a prebuilt cache
\ No newline at end of file
diff --git a/code/modules/keybindings.html b/code/modules/keybindings.html
new file mode 100644
index 000000000000..00f0f5970308
--- /dev/null
+++ b/code/modules/keybindings.html
@@ -0,0 +1,34 @@
+code/modules/keybindings/readme.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
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!
+
.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.
\ No newline at end of file
diff --git a/code/modules/language/language_holder.html b/code/modules/language/language_holder.html
new file mode 100644
index 000000000000..f8094348f8bc
--- /dev/null
+++ b/code/modules/language/language_holder.html
@@ -0,0 +1,35 @@
+code/modules/language/language_holder.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/language/language_holder.dm
Language holders will either exist in an atom/movable or a mind. Creation of language holders happens
+automatically when they are needed, for example when something tries to speak.
+Where a mind is available, the mind language holder will be the one "in charge". The mind holder
+will update its languages based on the atom holder, and will get updated as part of
+transformations and other events that cause new languages to become available.
+Every language holder has three lists of languages (and sources for each of them):
+
+
understood_languages
+
spoken_languages
+
blocked_languages
+Understood languages let you understand them, spoken languages lets you speak them
+(if your tongue is compatible), and blocked languages will let you do neither no matter
+what the source of the language is.
+Language holders are designed to mostly only ever require the use the helpers in atom/movable
+to achieve your goals, but it is also possible to work on them directly if needed. Any adding
+and removing of languages and sources should only happen through the procs, as directly changing
+these will mess something up somewhere down the line.
+All atom movables have the initial_language_holder var which allows you to set the default language
+holder to create. For example, /datum/language_holder/alien will give you xenocommon and a block for
+galactic common. Human species also have a default language holder var that will be updated on
+species change, initial_species_holder.
+Key procs
\ No newline at end of file
diff --git a/code/modules/lighting/emissive_blocker.html b/code/modules/lighting/emissive_blocker.html
new file mode 100644
index 000000000000..057a14d2bcb5
--- /dev/null
+++ b/code/modules/lighting/emissive_blocker.html
@@ -0,0 +1 @@
+code/modules/lighting/emissive_blocker.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Internal atom that copies an appearance on to the blocker plane
\ No newline at end of file
diff --git a/code/modules/mafia/_defines.html b/code/modules/mafia/_defines.html
new file mode 100644
index 000000000000..295a72f16328
--- /dev/null
+++ b/code/modules/mafia/_defines.html
@@ -0,0 +1 @@
+code/modules/mafia/_defines.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
signal sent to roles when the game is confirmed ending
Define Details
COMSIG_MAFIA_GAME_END
signal sent to roles when the game is confirmed ending
COMSIG_MAFIA_NIGHT_ACTION_PHASE
most night actions now resolve
COMSIG_MAFIA_NIGHT_END
now undoing states like protection, actions that must happen last, etc. right before shutters raise and the day begins
COMSIG_MAFIA_NIGHT_KILL_PHASE
now killing happens from the roles that do that. the reason this is post action phase is to ensure doctors can protect and lawyers can block
COMSIG_MAFIA_NIGHT_START
after the 45 second wait, for actions that must go first
COMSIG_MAFIA_SUNDOWN
when the shutters fall, before the 45 second wait and night event resolution
MAFIA_MAX_PLAYER_COUNT
how many people can play mafia without issues (running out of spawns, procs not expecting more than this amount of people, etc)
MAFIA_REGULAR
normal vote kill changelings
MAFIA_SPECIAL
every other changeling role that has extra abilities
NEUTRAL_DISRUPT
role that upsets the game aka obsessed, usually worse for town than mafia but they can vote against mafia
NEUTRAL_KILL
role that wins solo that nobody likes
ROLE_CAN_KILL
has the ability to kill at night and thus, blocks the game from ending with other teams alive.
ROLE_REVEALED
role is public to all other players in the game.
ROLE_ROLEBLOCKED
cannot perform any actions that night, preselected actions fail
ROLE_UNDETECTABLE
to all forms of detection, shows themselves as an assistant.
ROLE_UNIQUE
can only be one in a randomly generated game
ROLE_VULNERABLE
can not be defended, protected, or any other form of protection. all kills succeed no matter what.
TOWN_INVEST
roles that learn info about others in the game (chaplain, detective, psych)
TOWN_KILLING
roles that are only there to kill bad guys.
TOWN_OVERFLOW
Add this if you don't want a role to be a choice in the selection
TOWN_PROTECT
roles that keep other roles safe (doctor, sec officer, and weirdly enough lawyer counts)
TOWN_SUPPORT
roles that don't fit into anything else (hop)
\ No newline at end of file
diff --git a/code/modules/mafia/controller.html b/code/modules/mafia/controller.html
new file mode 100644
index 000000000000..cf5a3e6894ed
--- /dev/null
+++ b/code/modules/mafia/controller.html
@@ -0,0 +1,2 @@
+code/modules/mafia/controller.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Creates the global datum for playing mafia games, destroys the last if that's required and returns the new.
\ No newline at end of file
diff --git a/code/modules/mafia/roles.html b/code/modules/mafia/roles.html
new file mode 100644
index 000000000000..c30e061288a9
--- /dev/null
+++ b/code/modules/mafia/roles.html
@@ -0,0 +1 @@
+code/modules/mafia/roles.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
SOLO ROLES/// they range from anomalous factors to deranged killers that try to win alone.
\ No newline at end of file
diff --git a/code/modules/mapping.html b/code/modules/mapping.html
new file mode 100644
index 000000000000..15ed6cc3473a
--- /dev/null
+++ b/code/modules/mapping.html
@@ -0,0 +1,53 @@
+code/modules/mapping/README.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
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.
+
\ No newline at end of file
diff --git a/code/modules/mapping/mapping_helpers/_mapping_helpers.html b/code/modules/mapping/mapping_helpers/_mapping_helpers.html
new file mode 100644
index 000000000000..eb3beaf52b76
--- /dev/null
+++ b/code/modules/mapping/mapping_helpers/_mapping_helpers.html
@@ -0,0 +1 @@
+code/modules/mapping/mapping_helpers/_mapping_helpers.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Fetches an external dmi and applies to the target object
\ No newline at end of file
diff --git a/code/modules/mapping/mapping_helpers/network_builder/power_cables.html b/code/modules/mapping/mapping_helpers/network_builder/power_cables.html
new file mode 100644
index 000000000000..982f976e79c2
--- /dev/null
+++ b/code/modules/mapping/mapping_helpers/network_builder/power_cables.html
@@ -0,0 +1 @@
+code/modules/mapping/mapping_helpers/network_builder/power_cables.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Automatically links on init to power cables and other cable builder helpers. Only supports cardinals.
\ No newline at end of file
diff --git a/code/modules/mapping/preloader.html b/code/modules/mapping/preloader.html
new file mode 100644
index 000000000000..0fd117f56ec6
--- /dev/null
+++ b/code/modules/mapping/preloader.html
@@ -0,0 +1 @@
+code/modules/mapping/preloader.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mapping/reader.html b/code/modules/mapping/reader.html
new file mode 100644
index 000000000000..c0df9accef64
--- /dev/null
+++ b/code/modules/mapping/reader.html
@@ -0,0 +1 @@
+code/modules/mapping/reader.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Shortcut function to parse a map and apply it to the world.
\ No newline at end of file
diff --git a/code/modules/mapping/verify.html b/code/modules/mapping/verify.html
new file mode 100644
index 000000000000..e78525397e30
--- /dev/null
+++ b/code/modules/mapping/verify.html
@@ -0,0 +1 @@
+code/modules/mapping/verify.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/aux_base.html b/code/modules/mining/aux_base.html
new file mode 100644
index 000000000000..1932b4b04120
--- /dev/null
+++ b/code/modules/mining/aux_base.html
@@ -0,0 +1 @@
+code/modules/mining/aux_base.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/modules/mining/equipment/explorer_gear.html b/code/modules/mining/equipment/explorer_gear.html
new file mode 100644
index 000000000000..c3a91770f3e4
--- /dev/null
+++ b/code/modules/mining/equipment/explorer_gear.html
@@ -0,0 +1 @@
+code/modules/mining/equipment/explorer_gear.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/equipment/kinetic_crusher.html b/code/modules/mining/equipment/kinetic_crusher.html
new file mode 100644
index 000000000000..6b1a7ce4234c
--- /dev/null
+++ b/code/modules/mining/equipment/kinetic_crusher.html
@@ -0,0 +1 @@
+code/modules/mining/equipment/kinetic_crusher.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/equipment/lazarus_injector.html b/code/modules/mining/equipment/lazarus_injector.html
new file mode 100644
index 000000000000..24ebe324c577
--- /dev/null
+++ b/code/modules/mining/equipment/lazarus_injector.html
@@ -0,0 +1 @@
+code/modules/mining/equipment/lazarus_injector.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/equipment/mineral_scanner.html b/code/modules/mining/equipment/mineral_scanner.html
new file mode 100644
index 000000000000..cc1dac0eb6cf
--- /dev/null
+++ b/code/modules/mining/equipment/mineral_scanner.html
@@ -0,0 +1 @@
+code/modules/mining/equipment/mineral_scanner.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/equipment/mining_tools.html b/code/modules/mining/equipment/mining_tools.html
new file mode 100644
index 000000000000..5799ee873a03
--- /dev/null
+++ b/code/modules/mining/equipment/mining_tools.html
@@ -0,0 +1 @@
+code/modules/mining/equipment/mining_tools.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/equipment/regenerative_core.html b/code/modules/mining/equipment/regenerative_core.html
new file mode 100644
index 000000000000..a44252105aa3
--- /dev/null
+++ b/code/modules/mining/equipment/regenerative_core.html
@@ -0,0 +1 @@
+code/modules/mining/equipment/regenerative_core.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/equipment/resonator.html b/code/modules/mining/equipment/resonator.html
new file mode 100644
index 000000000000..2c55c278043c
--- /dev/null
+++ b/code/modules/mining/equipment/resonator.html
@@ -0,0 +1 @@
+code/modules/mining/equipment/resonator.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/equipment/survival_pod.html b/code/modules/mining/equipment/survival_pod.html
new file mode 100644
index 000000000000..9304757a5b81
--- /dev/null
+++ b/code/modules/mining/equipment/survival_pod.html
@@ -0,0 +1 @@
+code/modules/mining/equipment/survival_pod.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/equipment/vendor_items.html b/code/modules/mining/equipment/vendor_items.html
new file mode 100644
index 000000000000..6f981e79cb38
--- /dev/null
+++ b/code/modules/mining/equipment/vendor_items.html
@@ -0,0 +1 @@
+code/modules/mining/equipment/vendor_items.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/equipment/wormhole_jaunter.html b/code/modules/mining/equipment/wormhole_jaunter.html
new file mode 100644
index 000000000000..5013643d908b
--- /dev/null
+++ b/code/modules/mining/equipment/wormhole_jaunter.html
@@ -0,0 +1 @@
+code/modules/mining/equipment/wormhole_jaunter.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/laborcamp/laborstacker.html b/code/modules/mining/laborcamp/laborstacker.html
new file mode 100644
index 000000000000..e6db744e9c76
--- /dev/null
+++ b/code/modules/mining/laborcamp/laborstacker.html
@@ -0,0 +1 @@
+code/modules/mining/laborcamp/laborstacker.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/lavaland/ash_flora.html b/code/modules/mining/lavaland/ash_flora.html
new file mode 100644
index 000000000000..e86cbb5d4c7f
--- /dev/null
+++ b/code/modules/mining/lavaland/ash_flora.html
@@ -0,0 +1 @@
+code/modules/mining/lavaland/ash_flora.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/lavaland/necropolis_chests.html b/code/modules/mining/lavaland/necropolis_chests.html
new file mode 100644
index 000000000000..f40d7a0bc3dc
--- /dev/null
+++ b/code/modules/mining/lavaland/necropolis_chests.html
@@ -0,0 +1 @@
+code/modules/mining/lavaland/necropolis_chests.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/machine_processing.html b/code/modules/mining/machine_processing.html
new file mode 100644
index 000000000000..5698be6ebe2e
--- /dev/null
+++ b/code/modules/mining/machine_processing.html
@@ -0,0 +1 @@
+code/modules/mining/machine_processing.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/machine_redemption.html b/code/modules/mining/machine_redemption.html
new file mode 100644
index 000000000000..882e907440c5
--- /dev/null
+++ b/code/modules/mining/machine_redemption.html
@@ -0,0 +1 @@
+code/modules/mining/machine_redemption.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/machine_stacking.html b/code/modules/mining/machine_stacking.html
new file mode 100644
index 000000000000..49711c4ee32d
--- /dev/null
+++ b/code/modules/mining/machine_stacking.html
@@ -0,0 +1 @@
+code/modules/mining/machine_stacking.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/machine_unloading.html b/code/modules/mining/machine_unloading.html
new file mode 100644
index 000000000000..d61fc71d4b69
--- /dev/null
+++ b/code/modules/mining/machine_unloading.html
@@ -0,0 +1 @@
+code/modules/mining/machine_unloading.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/machine_vending.html b/code/modules/mining/machine_vending.html
new file mode 100644
index 000000000000..b5ad85875209
--- /dev/null
+++ b/code/modules/mining/machine_vending.html
@@ -0,0 +1 @@
+code/modules/mining/machine_vending.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/mine_items.html b/code/modules/mining/mine_items.html
new file mode 100644
index 000000000000..c530adb78484
--- /dev/null
+++ b/code/modules/mining/mine_items.html
@@ -0,0 +1 @@
+code/modules/mining/mine_items.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/minebot.html b/code/modules/mining/minebot.html
new file mode 100644
index 000000000000..3f81620e7c96
--- /dev/null
+++ b/code/modules/mining/minebot.html
@@ -0,0 +1 @@
+code/modules/mining/minebot.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/modules/mining/money_bag.html b/code/modules/mining/money_bag.html
new file mode 100644
index 000000000000..b55752923977
--- /dev/null
+++ b/code/modules/mining/money_bag.html
@@ -0,0 +1 @@
+code/modules/mining/money_bag.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/ores_coins.html b/code/modules/mining/ores_coins.html
new file mode 100644
index 000000000000..f9831afb218c
--- /dev/null
+++ b/code/modules/mining/ores_coins.html
@@ -0,0 +1 @@
+code/modules/mining/ores_coins.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mining/satchel_ore_boxdm.html b/code/modules/mining/satchel_ore_boxdm.html
new file mode 100644
index 000000000000..6781d715d04a
--- /dev/null
+++ b/code/modules/mining/satchel_ore_boxdm.html
@@ -0,0 +1 @@
+code/modules/mining/satchel_ore_boxdm.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/clickdelay.html b/code/modules/mob/clickdelay.html
new file mode 100644
index 000000000000..b11b052c92c2
--- /dev/null
+++ b/code/modules/mob/clickdelay.html
@@ -0,0 +1,3 @@
+code/modules/mob/clickdelay.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
CLICKDELAY HANDLING SYSTEM
+How this works is mobs can never do actions until their next_action is at or below world.time, but things can specify extra cooldown
+to check for either from the time of last_action or from the end of next_action.
\ No newline at end of file
diff --git a/code/modules/mob/dead/new_player/new_player.html b/code/modules/mob/dead/new_player/new_player.html
new file mode 100644
index 000000000000..13d1ed9d6185
--- /dev/null
+++ b/code/modules/mob/dead/new_player/new_player.html
@@ -0,0 +1 @@
+code/modules/mob/dead/new_player/new_player.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.html b/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.html
new file mode 100644
index 000000000000..8ba980ffcc2f
--- /dev/null
+++ b/code/modules/mob/dead/new_player/sprite_accessories/alienpeople.html
@@ -0,0 +1 @@
+code/modules/mob/dead/new_player/sprite_accessories/alienpeople.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/body_markings.html b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.html
new file mode 100644
index 000000000000..6721f02afced
--- /dev/null
+++ b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.html
@@ -0,0 +1 @@
+code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ears.html b/code/modules/mob/dead/new_player/sprite_accessories/ears.html
new file mode 100644
index 000000000000..c4e31585edc7
--- /dev/null
+++ b/code/modules/mob/dead/new_player/sprite_accessories/ears.html
@@ -0,0 +1 @@
+code/modules/mob/dead/new_player/sprite_accessories/ears.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.html b/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.html
new file mode 100644
index 000000000000..6767ce957f36
--- /dev/null
+++ b/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.html
@@ -0,0 +1 @@
+code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.html b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.html
new file mode 100644
index 000000000000..d151c284053a
--- /dev/null
+++ b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.html
@@ -0,0 +1 @@
+code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/snouts.html b/code/modules/mob/dead/new_player/sprite_accessories/snouts.html
new file mode 100644
index 000000000000..3b7ba106c468
--- /dev/null
+++ b/code/modules/mob/dead/new_player/sprite_accessories/snouts.html
@@ -0,0 +1,7 @@
+code/modules/mob/dead/new_player/sprite_accessories/snouts.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.html b/code/modules/mob/dead/new_player/sprite_accessories/tails.html
new file mode 100644
index 000000000000..80d4732c4b44
--- /dev/null
+++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.html
@@ -0,0 +1 @@
+code/modules/mob/dead/new_player/sprite_accessories/tails.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/living/blood.html b/code/modules/mob/living/blood.html
new file mode 100644
index 000000000000..ac6325d9a8e2
--- /dev/null
+++ b/code/modules/mob/living/blood.html
@@ -0,0 +1 @@
+code/modules/mob/living/blood.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.html b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.html
new file mode 100644
index 000000000000..407e4b4fcee1
--- /dev/null
+++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.html
@@ -0,0 +1 @@
+code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/carbon_stripping.html b/code/modules/mob/living/carbon/carbon_stripping.html
new file mode 100644
index 000000000000..3aedc3701903
--- /dev/null
+++ b/code/modules/mob/living/carbon/carbon_stripping.html
@@ -0,0 +1 @@
+code/modules/mob/living/carbon/carbon_stripping.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/dummy.html b/code/modules/mob/living/carbon/human/dummy.html
new file mode 100644
index 000000000000..88f1a4d84cd1
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/dummy.html
@@ -0,0 +1 @@
+code/modules/mob/living/carbon/human/dummy.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Provides a dummy that is consistently bald, white, naked, etc.
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/human_defines.html b/code/modules/mob/living/carbon/human/human_defines.html
new file mode 100644
index 000000000000..3e388f1cac3b
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/human_defines.html
@@ -0,0 +1 @@
+code/modules/mob/living/carbon/human/human_defines.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/species.html b/code/modules/mob/living/carbon/human/species.html
new file mode 100644
index 000000000000..96cf795952b1
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/species.html
@@ -0,0 +1 @@
+code/modules/mob/living/carbon/human/species.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Generates species available to choose in character setup at roundstart
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.html b/code/modules/mob/living/carbon/human/species_types/jellypeople.html
new file mode 100644
index 000000000000..b762d6a57882
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.html
@@ -0,0 +1 @@
+code/modules/mob/living/carbon/human/species_types/jellypeople.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/living/living.html b/code/modules/mob/living/living.html
new file mode 100644
index 000000000000..697209d3a473
--- /dev/null
+++ b/code/modules/mob/living/living.html
@@ -0,0 +1,3 @@
+code/modules/mob/living/living.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/mob/living/living.dm
Proc that actually does the grab resisting. Return TRUE if successful. Does not check that a grab exists! Use attempt_resist_grab() instead of this in general!
+Forced is if something other than the user mashing movement keys/pressing resist button did it, silent is if it makes messages (like "attempted to resist" and "broken free").
+Forced does NOT force success!
\ No newline at end of file
diff --git a/code/modules/mob/living/living_active_parry.html b/code/modules/mob/living/living_active_parry.html
new file mode 100644
index 000000000000..5410cc4288df
--- /dev/null
+++ b/code/modules/mob/living/living_active_parry.html
@@ -0,0 +1 @@
+code/modules/mob/living/living_active_parry.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/living/living_block.html b/code/modules/mob/living/living_block.html
new file mode 100644
index 000000000000..4bc0efc1fb65
--- /dev/null
+++ b/code/modules/mob/living/living_block.html
@@ -0,0 +1 @@
+code/modules/mob/living/living_block.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Considers a block return_list and calculates damage to use from that.
\ No newline at end of file
diff --git a/code/modules/mob/living/living_blocking_parrying.html b/code/modules/mob/living/living_blocking_parrying.html
new file mode 100644
index 000000000000..850e3b508880
--- /dev/null
+++ b/code/modules/mob/living/living_blocking_parrying.html
@@ -0,0 +1 @@
+code/modules/mob/living/living_blocking_parrying.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Carries data like list data that would be a waste of memory if we initialized the list on every /item as we can cache datums easier.
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/robot/robot.html b/code/modules/mob/living/silicon/robot/robot.html
new file mode 100644
index 000000000000..427366f63811
--- /dev/null
+++ b/code/modules/mob/living/silicon/robot/robot.html
@@ -0,0 +1 @@
+code/modules/mob/living/silicon/robot/robot.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
This is the subtype that gets created by robot suits. It's needed so that those kind of borgs don't have a useless cell in them
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/constructs.html b/code/modules/mob/living/simple_animal/constructs.html
new file mode 100644
index 000000000000..3e1aae70ad05
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/constructs.html
@@ -0,0 +1 @@
+code/modules/mob/living/simple_animal/constructs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.html b/code/modules/mob/living/simple_animal/guardian/guardian.html
new file mode 100644
index 000000000000..dec6577dcb26
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/guardian/guardian.html
@@ -0,0 +1 @@
+code/modules/mob/living/simple_animal/guardian/guardian.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/illusion.html b/code/modules/mob/living/simple_animal/hostile/illusion.html
new file mode 100644
index 000000000000..355247d1608f
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/illusion.html
@@ -0,0 +1 @@
+code/modules/mob/living/simple_animal/hostile/illusion.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.html b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.html
new file mode 100644
index 000000000000..a48c8c63701a
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.html
@@ -0,0 +1 @@
+code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.html b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.html
new file mode 100644
index 000000000000..7f7557aa9d13
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.html
@@ -0,0 +1 @@
+code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.html b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.html
new file mode 100644
index 000000000000..81dc410bdedc
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.html
@@ -0,0 +1,3 @@
+code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
A stronger, faster variation of the goliath. Has the ability to spawn baby goliaths, which it can later detonate at will.
+When it's health is below half, tendrils will spawn randomly around it. When it is below a quarter of health, this effect is doubled.
+It's attacks are as follows:
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.html b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.html
new file mode 100644
index 000000000000..b98c018e1e45
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.html
@@ -0,0 +1,3 @@
+code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
A slow-moving projectile user with a few tricks up it's sleeve. Less unga-bunga than Colossus, with more cleverness in it's fighting style.
+As it's health gets lower, the amount of projectiles fired per-attack increases.
+It's attacks are as follows:
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.html b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.html
new file mode 100644
index 000000000000..6532394f5858
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.html
@@ -0,0 +1,3 @@
+code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
A towering skeleton, embodying the power of Legion.
+As it's health gets lower, the head does more damage.
+It's attacks are as follows:
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.html b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.html
new file mode 100644
index 000000000000..78063bdd30a7
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.html
@@ -0,0 +1,3 @@
+code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
A box with a similar design to the Hierophant which trades large, single attacks for more frequent smaller ones.
+As it's health gets lower, the time between it's attacks decrease.
+It's attacks are as follows:
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobsterosity.html b/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobsterosity.html
new file mode 100644
index 000000000000..218fb8e1447f
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobsterosity.html
@@ -0,0 +1 @@
+code/modules/mob/living/simple_animal/hostile/mining_mobs/lobsterosity.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/plaguerat.html b/code/modules/mob/living/simple_animal/hostile/plaguerat.html
new file mode 100644
index 000000000000..882e8c7bcd08
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/plaguerat.html
@@ -0,0 +1 @@
+code/modules/mob/living/simple_animal/hostile/plaguerat.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Creates a chance to spawn more trash or gibs to repopulate. Otherwise, spawns a corpse or dirt.
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/regalrat.html b/code/modules/mob/living/simple_animal/hostile/regalrat.html
new file mode 100644
index 000000000000..6dad1623c6be
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/regalrat.html
@@ -0,0 +1 @@
+code/modules/mob/living/simple_animal/hostile/regalrat.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
This action checks all nearby mice, and converts them into hostile rats. If no mice are nearby, creates a new one.
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/space_dragon.html b/code/modules/mob/living/simple_animal/hostile/space_dragon.html
new file mode 100644
index 000000000000..8f8c983beb5e
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/space_dragon.html
@@ -0,0 +1 @@
+code/modules/mob/living/simple_animal/hostile/space_dragon.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
The portals Space Dragon summons to bring carp onto the station.
Define Details
CHARGE_COMPLETED
The carp rift is now fully charged.
CHARGE_FINALWARNING
The carp rift is currently charging and has output a final warning.
CHARGE_ONGOING
The carp rift is currently charging.
DARKNESS_THRESHOLD
The darkness threshold for space dragon when choosing a color
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.html b/code/modules/mob/living/simple_animal/hostile/syndicate.html
new file mode 100644
index 000000000000..e5108893f75b
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/syndicate.html
@@ -0,0 +1 @@
+code/modules/mob/living/simple_animal/hostile/syndicate.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.html b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.html
new file mode 100644
index 000000000000..177dfac02e4b
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.html
@@ -0,0 +1 @@
+code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/mob_helpers.html b/code/modules/mob/mob_helpers.html
new file mode 100644
index 000000000000..e2607c3ce614
--- /dev/null
+++ b/code/modules/mob/mob_helpers.html
@@ -0,0 +1 @@
+code/modules/mob/mob_helpers.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/say_vr.html b/code/modules/mob/say_vr.html
new file mode 100644
index 000000000000..b3dd3e60e92b
--- /dev/null
+++ b/code/modules/mob/say_vr.html
@@ -0,0 +1 @@
+code/modules/mob/say_vr.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mob/typing_indicator.html b/code/modules/mob/typing_indicator.html
new file mode 100644
index 000000000000..fce51bec773e
--- /dev/null
+++ b/code/modules/mob/typing_indicator.html
@@ -0,0 +1 @@
+code/modules/mob/typing_indicator.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mod/mod_control.html b/code/modules/mod/mod_control.html
new file mode 100644
index 000000000000..41c9267d1aa6
--- /dev/null
+++ b/code/modules/mod/mod_control.html
@@ -0,0 +1 @@
+code/modules/mod/mod_control.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mod/mod_theme.html b/code/modules/mod/mod_theme.html
new file mode 100644
index 000000000000..9e1324a630e3
--- /dev/null
+++ b/code/modules/mod/mod_theme.html
@@ -0,0 +1 @@
+code/modules/mod/mod_theme.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
MODsuit theme, instanced once and then used by MODsuits to grab various statistics.
\ No newline at end of file
diff --git a/code/modules/mod/modules/modules_engineering.html b/code/modules/mod/modules/modules_engineering.html
new file mode 100644
index 000000000000..524fba8812b4
--- /dev/null
+++ b/code/modules/mod/modules/modules_engineering.html
@@ -0,0 +1 @@
+code/modules/mod/modules/modules_engineering.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mod/modules/modules_general.html b/code/modules/mod/modules/modules_general.html
new file mode 100644
index 000000000000..c344b53a4f87
--- /dev/null
+++ b/code/modules/mod/modules/modules_general.html
@@ -0,0 +1,3 @@
+code/modules/mod/modules/modules_general.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Longfall
+Thermal Regulator - Naw.
+DNA Lock - Prevents people without the set DNA from activating the suit.
\ No newline at end of file
diff --git a/code/modules/mod/modules/modules_maint.html b/code/modules/mod/modules/modules_maint.html
new file mode 100644
index 000000000000..c164819a5130
--- /dev/null
+++ b/code/modules/mod/modules/modules_maint.html
@@ -0,0 +1,4 @@
+code/modules/mod/modules/modules_maint.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Stamper - Extends a stamp that can switch between accept/deny modes.
\ No newline at end of file
diff --git a/code/modules/mod/modules/modules_medical.html b/code/modules/mod/modules/modules_medical.html
new file mode 100644
index 000000000000..31013253e070
--- /dev/null
+++ b/code/modules/mod/modules/modules_medical.html
@@ -0,0 +1,5 @@
+code/modules/mod/modules/modules_medical.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Injector - No piercing syringes, replace another time
+Organ Thrower
+Patrient Transport
+Defibrillator - Gives the suit an extendable pair of shock paddles.
Thread Ripper
+Surgical Processor - Lets you do advanced surgeries portably.
Define Details
HEALTH_SCAN
Atrocinator - Perhaps another time
\ No newline at end of file
diff --git a/code/modules/mod/modules/modules_science.html b/code/modules/mod/modules/modules_science.html
new file mode 100644
index 000000000000..a6ea21d7200f
--- /dev/null
+++ b/code/modules/mod/modules/modules_science.html
@@ -0,0 +1 @@
+code/modules/mod/modules/modules_science.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Teleporter - Lets the user teleport to a nearby location.
\ No newline at end of file
diff --git a/code/modules/mod/modules/modules_security.html b/code/modules/mod/modules/modules_security.html
new file mode 100644
index 000000000000..81fbe8b0a233
--- /dev/null
+++ b/code/modules/mod/modules/modules_security.html
@@ -0,0 +1,2 @@
+code/modules/mod/modules/modules_security.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mod/modules/modules_service.html b/code/modules/mod/modules/modules_service.html
new file mode 100644
index 000000000000..4dff05d6012b
--- /dev/null
+++ b/code/modules/mod/modules/modules_service.html
@@ -0,0 +1,5 @@
+code/modules/mod/modules/modules_service.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mod/modules/modules_supply.html b/code/modules/mod/modules/modules_supply.html
new file mode 100644
index 000000000000..f2288c2222c4
--- /dev/null
+++ b/code/modules/mod/modules/modules_supply.html
@@ -0,0 +1 @@
+code/modules/mod/modules/modules_supply.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/mod/modules/modules_visor.html b/code/modules/mod/modules/modules_visor.html
new file mode 100644
index 000000000000..60d4d489edcf
--- /dev/null
+++ b/code/modules/mod/modules/modules_visor.html
@@ -0,0 +1 @@
+code/modules/mod/modules/modules_visor.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Base Visor - Adds a specific HUD and traits to you.
\ No newline at end of file
diff --git a/code/modules/modular_computers/computers/item/tablet.html b/code/modules/modular_computers/computers/item/tablet.html
new file mode 100644
index 000000000000..b2db59e4e691
--- /dev/null
+++ b/code/modules/modular_computers/computers/item/tablet.html
@@ -0,0 +1 @@
+code/modules/modular_computers/computers/item/tablet.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/modular_computers/documentation.html b/code/modules/modular_computers/documentation.html
new file mode 100644
index 000000000000..611bf9076949
--- /dev/null
+++ b/code/modules/modular_computers/documentation.html
@@ -0,0 +1,62 @@
+code/modules/modular_computers/documentation.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
Modular computer programs
How module computer programs work
+
Ok. so a quick rundown on how to make a program. This is kind of a shitty documentation, but oh well I was asked to.
+
Base setup
+
This is how the base program is setup. the rest is mostly tgui stuff. I'll use the ntnetmonitor as a base
+
/datum/computer_file/program/ntnetmonitor
+ /// This is obviously the name of the file itself. not much to be said
+ filename = "ntmonitor"
+
+ /// This is sort of the official name. it's what shows up on the main menu
+ filedesc = "NTNet Diagnostics and Monitoring"
+
+ /// This is what the screen will look like when the program is active
+ program_icon_state = "comm_monitor"
+
+ /// This is a sort of a description, visible when looking on the ntnet
+ extended_desc = "This program is a dummy."
+
+ /// size of the program. Big programs need more hard drive space. Don't
+ /// make it too big though.
+ size = 12
+
+ /// If this is set, the program will not run without an ntnet connection,
+ /// and will close if the connection is lost. Mainly for primarily online
+ /// programs.
+ requires_ntnet = 1
+
+ /// This is access required to run the program itself. ONLY SET THIS FOR
+ /// SUPER SECURE SHIT. This also acts as transfer_access as well.
+ required_access = access_network
+
+ /// This is the access needed to download from ntnet or host on the ptp
+ /// program. This is what you want to use most of the time.
+ transfer_access = access_change_ids
+
+ /// If it's available to download on ntnet. pretty self explanatory.
+ available_on_ntnet = 1
+
+ /// ditto but on emagged syndie net. Use this for antag programs
+ available_on_syndinet = 0
+
+ /// Bitflags (PROGRAM_CONSOLE, PROGRAM_LAPTOP, PROGRAM_TABLET combination)
+ /// or PROGRAM_ALL. Use this to limit what kind of machines can run the
+ /// program. For example, comms program should be limited to consoles and laptops.
+ usage_flags = PROGRAM_ALL
+
+ /// This one is kinda cool. If you have the program minimized, this will
+ /// show up in the header of the computer screen. You can even have the
+ /// program change what the header is based on the situation! See `alarm.dm`
+ /// for an example.
+ var/ui_header = "downloader_finished.gif"
+
+
Preinstalls
+
Now. for pre-installing stuff.
+
Primarily done for consoles, there's an install_programs() proc in the console presets file in the machines folder.
Basically, you want to do cpu.hard_drive.store_file(new/program path here()) and put it in the subtype's install_programs().
+Probably pretty self explanatory, but just in case.
+
Will probably be expanded when new features come around or I get asked to mention something.
\ No newline at end of file
diff --git a/code/modules/modular_computers/file_system/programs/jobmanagement.html b/code/modules/modular_computers/file_system/programs/jobmanagement.html
new file mode 100644
index 000000000000..d4b3158832e8
--- /dev/null
+++ b/code/modules/modular_computers/file_system/programs/jobmanagement.html
@@ -0,0 +1 @@
+code/modules/modular_computers/file_system/programs/jobmanagement.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/modular_computers/file_system/programs/ntdownloader.html b/code/modules/modular_computers/file_system/programs/ntdownloader.html
new file mode 100644
index 000000000000..7c5b2cbf1f77
--- /dev/null
+++ b/code/modules/modular_computers/file_system/programs/ntdownloader.html
@@ -0,0 +1 @@
+code/modules/modular_computers/file_system/programs/ntdownloader.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
This app only lists programs normally found in the emagged section of the normal downloader app
\ No newline at end of file
diff --git a/code/modules/modular_computers/file_system/programs/portrait_printer.html b/code/modules/modular_computers/file_system/programs/portrait_printer.html
new file mode 100644
index 000000000000..daa903a85474
--- /dev/null
+++ b/code/modules/modular_computers/file_system/programs/portrait_printer.html
@@ -0,0 +1 @@
+code/modules/modular_computers/file_system/programs/portrait_printer.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
how much paper it takes from the printer to create a canvas.
\ No newline at end of file
diff --git a/code/modules/modular_computers/file_system/programs/radar.html b/code/modules/modular_computers/file_system/programs/radar.html
new file mode 100644
index 000000000000..c13ab0f07417
--- /dev/null
+++ b/code/modules/modular_computers/file_system/programs/radar.html
@@ -0,0 +1 @@
+code/modules/modular_computers/file_system/programs/radar.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
A program that tracks nukes and nuclear accessories
\ No newline at end of file
diff --git a/code/modules/modular_computers/hardware/hard_drive.html b/code/modules/modular_computers/hardware/hard_drive.html
new file mode 100644
index 000000000000..20e9e6fee004
--- /dev/null
+++ b/code/modules/modular_computers/hardware/hard_drive.html
@@ -0,0 +1 @@
+code/modules/modular_computers/hardware/hard_drive.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/modular_computers/hardware/recharger.html b/code/modules/modular_computers/hardware/recharger.html
new file mode 100644
index 000000000000..7db320c02922
--- /dev/null
+++ b/code/modules/modular_computers/hardware/recharger.html
@@ -0,0 +1,2 @@
+code/modules/modular_computers/hardware/recharger.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
This recharger exists only in borg built-in tablets. I would have tied it to the borg's cell but
+the program that displays laws should always be usable, and the exceptions were starting to pile.
\ No newline at end of file
diff --git a/code/modules/movespeed/_movespeed_modifier.html b/code/modules/movespeed/_movespeed_modifier.html
new file mode 100644
index 000000000000..2f70ff153922
--- /dev/null
+++ b/code/modules/movespeed/_movespeed_modifier.html
@@ -0,0 +1,26 @@
+code/modules/movespeed/_movespeed_modifier.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/movespeed/_movespeed_modifier.dm
Movespeed modification datums.
+
How move speed for mobs works
+
+
Move speed is now calculated by using modifier datums which are added to mobs. Some of them (nonvariable ones) are globally cached, the variable ones are instanced and changed based on need.
+
This gives us the ability to have multiple sources of movespeed, reliabily keep them applied and remove them when they should be
+
THey can have unique sources and a bunch of extra fancy flags that control behaviour
+
Previously trying to update move speed was a shot in the dark that usually meant mobs got stuck going faster or slower
+
Movespeed modification list is a simple key = datum system. Key will be the datum's ID if it is overridden to not be null, or type if it is not.
+
DO NOT override datum IDs unless you are going to have multiple types that must overwrite each other. It's more efficient to use types, ID functionality is only kept for cases where dynamic creation of modifiers need to be done.
+
When update movespeed is called, the list of items is iterated, according to flags priority and a bunch of conditions
+this spits out a final calculated value which is used as a modifer to last_move + modifier for calculating when a mob
+can next move
Grabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO!
Used for variable slowdowns like hunger/health loss/etc, works somewhat like the old list-based modification adds. Returns the modifier datum if successful
+How this SHOULD work is:
+1. Ensures type_id_datum one way or another refers to a /variable datum. This makes sure it can't be cached. This includes if it's already in the modification list.
+2. Instantiate a new datum if type_id_datum isn't already instantiated + in the list, using the type. Obviously, wouldn't work for ID only.
+3. Add the datum if necessary using the regular add proc
+4. If any of the rest of the args are not null (see: multiplicative slowdown), modify the datum
+5. Update if necessary
Checks if a move speed modifier is valid and not missing any data
\ No newline at end of file
diff --git a/code/modules/newscaster/news_network.html b/code/modules/newscaster/news_network.html
new file mode 100644
index 000000000000..b96a8e2ba47d
--- /dev/null
+++ b/code/modules/newscaster/news_network.html
@@ -0,0 +1 @@
+code/modules/newscaster/news_network.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Contains all the news datum of a newscaster system.
\ No newline at end of file
diff --git a/code/modules/ninja/energy_katana.html b/code/modules/ninja/energy_katana.html
new file mode 100644
index 000000000000..662a2e479bc2
--- /dev/null
+++ b/code/modules/ninja/energy_katana.html
@@ -0,0 +1 @@
+code/modules/ninja/energy_katana.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ninja/ninja_explosive.html b/code/modules/ninja/ninja_explosive.html
new file mode 100644
index 000000000000..0835e7f514c3
--- /dev/null
+++ b/code/modules/ninja/ninja_explosive.html
@@ -0,0 +1,3 @@
+code/modules/ninja/ninja_explosive.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
A unique version of c4 possessed only by the space ninja. Has a stronger blast radius.
+Can only be detonated by space ninjas with the bombing objective. Can only be set up where the objective says it can.
+When it primes, the space ninja responsible will have their objective set to complete.
\ No newline at end of file
diff --git a/code/modules/ninja/suit/gloves.html b/code/modules/ninja/suit/gloves.html
new file mode 100644
index 000000000000..5c7d1f0b13f6
--- /dev/null
+++ b/code/modules/ninja/suit/gloves.html
@@ -0,0 +1 @@
+code/modules/ninja/suit/gloves.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Space ninja's gloves. Gives access to a number of special interactions.
\ No newline at end of file
diff --git a/code/modules/ninja/suit/head.html b/code/modules/ninja/suit/head.html
new file mode 100644
index 000000000000..d4e5f36baee0
--- /dev/null
+++ b/code/modules/ninja/suit/head.html
@@ -0,0 +1 @@
+code/modules/ninja/suit/head.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Space ninja's hood. Provides armor and blocks AI tracking.
\ No newline at end of file
diff --git a/code/modules/ninja/suit/mask.html b/code/modules/ninja/suit/mask.html
new file mode 100644
index 000000000000..7305fcd9fdb2
--- /dev/null
+++ b/code/modules/ninja/suit/mask.html
@@ -0,0 +1 @@
+code/modules/ninja/suit/mask.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Space ninja's mask. Makes you sound like a real anime girl. Barely able to be considered a real upside.
\ No newline at end of file
diff --git a/code/modules/ninja/suit/ninja_equipment_actions/energy_net_nets.html b/code/modules/ninja/suit/ninja_equipment_actions/energy_net_nets.html
new file mode 100644
index 000000000000..892df1cd46bd
--- /dev/null
+++ b/code/modules/ninja/suit/ninja_equipment_actions/energy_net_nets.html
@@ -0,0 +1 @@
+code/modules/ninja/suit/ninja_equipment_actions/energy_net_nets.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Energy net which ensnares prey until it is destroyed. Used by space ninjas.
\ No newline at end of file
diff --git a/code/modules/ninja/suit/ninja_equipment_actions/ninja_stars.html b/code/modules/ninja/suit/ninja_equipment_actions/ninja_stars.html
new file mode 100644
index 000000000000..67c52bcda5e1
--- /dev/null
+++ b/code/modules/ninja/suit/ninja_equipment_actions/ninja_stars.html
@@ -0,0 +1 @@
+code/modules/ninja/suit/ninja_equipment_actions/ninja_stars.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
a throwing star which specifically makes sure you know it came from a real ninja.
\ No newline at end of file
diff --git a/code/modules/ninja/suit/shoes.html b/code/modules/ninja/suit/shoes.html
new file mode 100644
index 000000000000..e4057758c504
--- /dev/null
+++ b/code/modules/ninja/suit/shoes.html
@@ -0,0 +1 @@
+code/modules/ninja/suit/shoes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ninja/suit/suit.html b/code/modules/ninja/suit/suit.html
new file mode 100644
index 000000000000..4ba9f82f67f4
--- /dev/null
+++ b/code/modules/ninja/suit/suit.html
@@ -0,0 +1 @@
+code/modules/ninja/suit/suit.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Space ninja's suit. Provides him with most of his powers.
\ No newline at end of file
diff --git a/code/modules/paperwork/clipboard.html b/code/modules/paperwork/clipboard.html
new file mode 100644
index 000000000000..167245c9afcb
--- /dev/null
+++ b/code/modules/paperwork/clipboard.html
@@ -0,0 +1 @@
+code/modules/paperwork/clipboard.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/paperwork/paper.html b/code/modules/paperwork/paper.html
new file mode 100644
index 000000000000..f03e619675fa
--- /dev/null
+++ b/code/modules/paperwork/paper.html
@@ -0,0 +1,6 @@
+code/modules/paperwork/paper.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Paper is now using markdown (like in github pull notes) for ALL rendering
+so we do loose a bit of functionality but we gain in easy of use of
+paper and getting rid of that crashing bug
lipstick wiping is in code/game/objects/items/weapons/cosmetics.dm!
\ No newline at end of file
diff --git a/code/modules/paperwork/paper_premade.html b/code/modules/paperwork/paper_premade.html
new file mode 100644
index 000000000000..4fc84ec9f2f9
--- /dev/null
+++ b/code/modules/paperwork/paper_premade.html
@@ -0,0 +1 @@
+code/modules/paperwork/paper_premade.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/paperwork/photocopier.html b/code/modules/paperwork/photocopier.html
new file mode 100644
index 000000000000..2b4c7e40cae3
--- /dev/null
+++ b/code/modules/paperwork/photocopier.html
@@ -0,0 +1 @@
+code/modules/paperwork/photocopier.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
The maximum amount of copies you can make with one press of the copy button.
Define Details
ASS_TONER_USE
How much toner is used for making a copy of an ass.
DOCUMENT_TONER_USE
How much toner is used for making a copy of a document.
MAX_COPIES_AT_ONCE
The maximum amount of copies you can make with one press of the copy button.
PAPER_TONER_USE
How much toner is used for making a copy of a paper.
PHOTO_COLOR
For use with the color_mode var. Photos will be printed in full color while the var has this value.
PHOTO_GREYSCALE
For use with the color_mode var. Photos will be printed in greyscale while the var has this value.
PHOTO_TONER_USE
How much toner is used for making a copy of a photo.
\ No newline at end of file
diff --git a/code/modules/plumbing/ducts.html b/code/modules/plumbing/ducts.html
new file mode 100644
index 000000000000..e02c5dda48d7
--- /dev/null
+++ b/code/modules/plumbing/ducts.html
@@ -0,0 +1 @@
+code/modules/plumbing/ducts.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
has a total of 5 layers and doesnt give a shit about color. its also dumb so doesnt autoconnect.
\ No newline at end of file
diff --git a/code/modules/plumbing/plumbers/_plumb_machinery.html b/code/modules/plumbing/plumbers/_plumb_machinery.html
new file mode 100644
index 000000000000..549e40963b8e
--- /dev/null
+++ b/code/modules/plumbing/plumbers/_plumb_machinery.html
@@ -0,0 +1,4 @@
+code/modules/plumbing/plumbers/_plumb_machinery.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Basic plumbing object.
+It doesn't really hold anything special, YET.
+Objects that are plumbing but not a subtype are as of writing liquid pumps and the reagent_dispenser tank
+Also please note that the plumbing component is toggled on and off by the component using a signal from default_unfasten_wrench, so dont worry about it
We can fill beakers in here and everything. we dont inheret from input because it has nothing that we need
\ No newline at end of file
diff --git a/code/modules/plumbing/plumbers/acclimator.html b/code/modules/plumbing/plumbers/acclimator.html
new file mode 100644
index 000000000000..ccead1b13880
--- /dev/null
+++ b/code/modules/plumbing/plumbers/acclimator.html
@@ -0,0 +1 @@
+code/modules/plumbing/plumbers/acclimator.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/plumbing/plumbers/filter.html b/code/modules/plumbing/plumbers/filter.html
new file mode 100644
index 000000000000..c4423533b7dc
--- /dev/null
+++ b/code/modules/plumbing/plumbers/filter.html
@@ -0,0 +1 @@
+code/modules/plumbing/plumbers/filter.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
chemical plumbing filter. If it's not filtered by left and right, it goes straight.
\ No newline at end of file
diff --git a/code/modules/plumbing/plumbers/pill_press.html b/code/modules/plumbing/plumbers/pill_press.html
new file mode 100644
index 000000000000..25d9ff7764c1
--- /dev/null
+++ b/code/modules/plumbing/plumbers/pill_press.html
@@ -0,0 +1 @@
+code/modules/plumbing/plumbers/pill_press.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
We take a constant input of reagents, and produce a pill once a set volume is reached
\ No newline at end of file
diff --git a/code/modules/plumbing/plumbers/pumps.html b/code/modules/plumbing/plumbers/pumps.html
new file mode 100644
index 000000000000..060e8c1ae5f2
--- /dev/null
+++ b/code/modules/plumbing/plumbers/pumps.html
@@ -0,0 +1 @@
+code/modules/plumbing/plumbers/pumps.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
We pump liquids from activated(plungerated) geysers to a plumbing outlet. We don't need to be wired.
\ No newline at end of file
diff --git a/code/modules/plumbing/plumbers/reaction_chamber.html b/code/modules/plumbing/plumbers/reaction_chamber.html
new file mode 100644
index 000000000000..caa249485b22
--- /dev/null
+++ b/code/modules/plumbing/plumbers/reaction_chamber.html
@@ -0,0 +1 @@
+code/modules/plumbing/plumbers/reaction_chamber.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
a reaction chamber for plumbing. pretty much everything can react, but this one keeps the reagents seperated and only reacts under your given terms
\ No newline at end of file
diff --git a/code/modules/plumbing/plumbers/splitters.html b/code/modules/plumbing/plumbers/splitters.html
new file mode 100644
index 000000000000..2eb669326310
--- /dev/null
+++ b/code/modules/plumbing/plumbers/splitters.html
@@ -0,0 +1 @@
+code/modules/plumbing/plumbers/splitters.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
it splits the reagents however you want. So you can "every 60 units, 45 goes left and 15 goes straight". The side direction is EAST, you can change this in the component
\ No newline at end of file
diff --git a/code/modules/plumbing/plumbers/synthesizer.html b/code/modules/plumbing/plumbers/synthesizer.html
new file mode 100644
index 000000000000..f32ac93b6b51
--- /dev/null
+++ b/code/modules/plumbing/plumbers/synthesizer.html
@@ -0,0 +1 @@
+code/modules/plumbing/plumbers/synthesizer.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
A single machine that produces a single chem. Can be placed in unison with others through plumbing to create chemical factories
\ No newline at end of file
diff --git a/code/modules/power/apc.html b/code/modules/power/apc.html
new file mode 100644
index 000000000000..2748cb1b3951
--- /dev/null
+++ b/code/modules/power/apc.html
@@ -0,0 +1 @@
+code/modules/power/apc.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
How long it takes an ethereal to drain or charge APCs. Also used as a spam limiter.
APC_ELECTRONICS_INSTALLED
The electronics are installed but not secured.
APC_ELECTRONICS_MISSING
There are no electronics in the APC.
APC_ELECTRONICS_SECURED
The electronics are installed and secured.
APC_FULLY_CHARGED
The APC is fully charged.
APC_HAS_POWER
The APCs external powernet has enough power to charge the APC.
APC_LOW_POWER
The APCs external powernet does not have enough power to charge the APC.
APC_NOT_CHARGING
The APC is not charging.
APC_NO_POWER
The APC either isn't attached to a powernet or there is no power on the external powernet.
APC_POWER_GAIN
How much power ethereals gain/drain from APCs.
APC_RESET_EMP
The wire value used to reset the APCs wires after one's EMPed.
AUTOSET_FORCE_OFF
The APC turns automated and manual power channels off.
AUTOSET_OFF
The APC turns automated power channels off.
AUTOSET_ON
The APC turns automated power channels on.
UPOVERLAY_CHARGING_SHIFT
Bit shift for the charging status of the APC.
UPOVERLAY_ENVIRON_SHIFT
Bit shift for the environment channel status of the APC.
UPOVERLAY_EQUIPMENT_SHIFT
Bit shift for the equipment status of the APC.
UPOVERLAY_HIJACKED
Update for hijack overlays
UPOVERLAY_LIGHTING_SHIFT
Bit shift for the lighting channel status of the APC.
UPOVERLAY_LOCKED
Bitflag indicating that the APCs locked status overlay should be shown.
UPOVERLAY_OPERATING
Bitflag indicating that the APCs operating status overlay should be shown.
UPSTATE_BLUESCREEN
The APC is emagged or malfed.
UPSTATE_BROKE
The APC is broken or damaged.
UPSTATE_CELL_IN
The APC has a power cell.
UPSTATE_COVER_SHIFT
The bit shift for the APCs cover status.
UPSTATE_MAINT
The APC is undergoing maintenance.
UPSTATE_OPENED1
The bitflag representing the APCs cover being open for icon purposes.
UPSTATE_OPENED2
The bitflag representing the APCs cover being missing for icon purposes.
UPSTATE_WIREEXP
The APCs wires are exposed.
\ No newline at end of file
diff --git a/code/modules/power/reactor/rbmk.html b/code/modules/power/reactor/rbmk.html
new file mode 100644
index 000000000000..9c740509fe60
--- /dev/null
+++ b/code/modules/power/reactor/rbmk.html
@@ -0,0 +1,28 @@
+code/modules/power/reactor/rbmk.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
What is this?
+Moderators list (Not gonna keep this accurate forever):
+Fuel Type:
+Oxygen: Power production multiplier. Allows you to run a low plasma, high oxy mix, and still get a lot of power.
+Plasma: Power production gas. More plasma -> more power, but it enriches your fuel and makes the reactor much, much harder to control.
+Tritium: Extremely efficient power production gas. Will cause chernobyl if used improperly.
+Moderation Type:
+N2: Helps you regain control of the reaction by increasing control rod effectiveness, will massively boost the rad production of the reactor.
+CO2: Super effective shutdown gas for runaway reactions. MASSIVE RADIATION PENALTY!
+Pluoxium: Same as N2, but no cancer-rads!
+Permeability Type:
+BZ: Increases your reactor's ability to transfer its heat to the coolant, thus letting you cool it down faster (but your output will get hotter)
+Water Vapour: More efficient permeability modifier
+Hyper Noblium: Extremely efficient permeability increase. (10x as efficient as bz)
+Depletion type:
+Nitryl: When you need weapons grade plutonium yesterday. Causes your fuel to deplete much, much faster. Not a huge amount of use outside of sabotage.
+Sabotage:
+Meltdown:
+Flood reactor moderator with plasma, they won't be able to mitigate the reaction with control rods.
+Shut off coolant entirely. Raise control rods.
+Swap all fuel out with spent fuel, as it's way stronger.
+Blowout:
+Shut off exit valve for quick overpressure.
+Cause a pipefire in the coolant line (LETHAL).
+Tack heater onto coolant line (can also cause straight meltdown)
+Tips:
+Be careful to not exhaust your plasma supply. I recommend you DON'T max out the moderator input when youre running plasma + o2, or you're at a tangible risk of running out of those gasses from atmos.
+The reactor CHEWS through moderator. It does not do this slowly. Be very careful with that!
\ No newline at end of file
diff --git a/code/modules/power/singularity/generator.html b/code/modules/power/singularity/generator.html
new file mode 100644
index 000000000000..34f2294b73e1
--- /dev/null
+++ b/code/modules/power/singularity/generator.html
@@ -0,0 +1 @@
+code/modules/power/singularity/generator.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/power/supermatter/supermatter.html b/code/modules/power/supermatter/supermatter.html
new file mode 100644
index 000000000000..39302894d605
--- /dev/null
+++ b/code/modules/power/supermatter/supermatter.html
@@ -0,0 +1 @@
+code/modules/power/supermatter/supermatter.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/modules/projectiles/guns/ballistic/magweapon.html b/code/modules/projectiles/guns/ballistic/magweapon.html
new file mode 100644
index 000000000000..3080ef1ae536
--- /dev/null
+++ b/code/modules/projectiles/guns/ballistic/magweapon.html
@@ -0,0 +1 @@
+code/modules/projectiles/guns/ballistic/magweapon.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/projectiles/guns/ballistic/pistol.html b/code/modules/projectiles/guns/ballistic/pistol.html
new file mode 100644
index 000000000000..8c8af655cc0d
--- /dev/null
+++ b/code/modules/projectiles/guns/ballistic/pistol.html
@@ -0,0 +1 @@
+code/modules/projectiles/guns/ballistic/pistol.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/projectiles/guns/energy/laser.html b/code/modules/projectiles/guns/energy/laser.html
new file mode 100644
index 000000000000..67cda6ab0e5f
--- /dev/null
+++ b/code/modules/projectiles/guns/energy/laser.html
@@ -0,0 +1 @@
+code/modules/projectiles/guns/energy/laser.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/projectiles/guns/misc/medbeam.html b/code/modules/projectiles/guns/misc/medbeam.html
new file mode 100644
index 000000000000..475f9153e01b
--- /dev/null
+++ b/code/modules/projectiles/guns/misc/medbeam.html
@@ -0,0 +1 @@
+code/modules/projectiles/guns/misc/medbeam.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/projectiles/projectile.html b/code/modules/projectiles/projectile.html
new file mode 100644
index 000000000000..cba72cc20325
--- /dev/null
+++ b/code/modules/projectiles/projectile.html
@@ -0,0 +1,2 @@
+code/modules/projectiles/projectile.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
//// MISC HELPERS ////////
+Is this atom reflectable with ""standardized"" reflection methods like you know eshields and deswords and similar
Define Details
MINIMUM_PIXELS_TO_ANIMATE
Minimum projectile pixels to move before it animate()S, below this it's a direct set.
PROJECTILE_FIRING_INSTANT_TRAVEL_AMOUNT
Pixels to instantly travel on firing.
\ No newline at end of file
diff --git a/code/modules/reagents/chemistry.html b/code/modules/reagents/chemistry.html
new file mode 100644
index 000000000000..00ffa94c9e4e
--- /dev/null
+++ b/code/modules/reagents/chemistry.html
@@ -0,0 +1,243 @@
+code/modules/reagents/chemistry/readme.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/reagents/chemistry/readme.md
NOTE: IF YOU UPDATE THE REAGENT-SYSTEM, ALSO UPDATE THIS README.
+
Structure: /////////////////// //////////////////////////
+ // Mob or object // -------> // Reagents var (datum) // Is a reference to the datum that holds the reagents.
+ /////////////////// //////////////////////////
+ | |
+ The object that holds everything. V
+ reagent_list var (list) A List of datums, each datum is a reagent.
+
+ | | |
+ V V V
+
+ reagents (datums) Reagents. I.e. Water , cryoxadone or mercury.
+
+
Random important notes:
+
An objects on_reagent_change will be called every time the objects reagents change. Useful if you want to update the objects icon etc.
+
About the Holder:
+
The holder (reagents datum) is the datum that holds a list of all reagents currently in the object.It also has all the procs needed to manipulate reagents
+
remove_any(var/amount)
+ This proc removes reagents from the holder until the passed amount
+ is matched. It'll try to remove some of ALL reagents contained.
+
+ remove_all(var/amount)
+ This proc removes reagents from the holder equally.
+
+ trans_to(var/obj/target, var/amount)
+ This proc equally transfers the contents of the holder to another
+ objects holder. You need to pass it the object (not the holder) you want
+ to transfer to and the amount you want to transfer. Its return value is the
+ actual amount transfered (if one of the objects is full/empty)
+
+ trans_id_to(var/obj/target, var/reagent, var/amount)
+ Same as above but only for a specific reagent in the reagent list.
+ If the specified amount is greater than what is available, it will use
+ the amount of the reagent that is available. If no reagent exists, returns null.
+
+ metabolize(var/mob/living/carbon/C)
+ This proc is called by the mobs life proc. It simply calls on_mob_life for
+ all contained reagents. You shouldnt have to use this one directly.
+
+ handle_reactions()
+ This proc check all recipes and, on a match, uses them.
+ It will also call the recipe's on_reaction proc (for explosions or w/e).
+ Currently, this proc is automatically called by trans_to.
+
+ isolate_reagent(var/reagent)
+ Pass it a reagent id and it will remove all reagents but that one.
+ It's that simple.
+
+ del_reagent(var/reagent)
+ Completely remove the reagent with the matching id.
+
+ reaction_fire(exposed_temp)
+ Simply calls the reaction_fire procs of all contained reagents.
+
+ update_total()
+ This one simply updates the total volume of the holder.
+ (the volume of all reagents added together)
+
+ clear_reagents()
+ This proc removes ALL reagents from the holder.
+
+ reaction(var/atom/A, var/method=TOUCH, var/volume_modifier=0)
+ This proc calls the appropriate reaction procs of the reagents.
+ I.e. if A is an object, it will call the reagents reaction_obj
+ proc. The method var is used for reaction on mobs. It simply tells
+ us if the mob TOUCHed the reagent, if it INGESTed the reagent, if the reagent
+ was VAPORIZEd on them, if the reagent was INJECTed, or transfered via a PATCH to them.
+ Since the volume can be checked in a reagents proc, you might want to
+ use the volume_modifier var to modifiy the passed value without actually
+ changing the volume of the reagents.
+ If you're not sure if you need to use this the answer is very most likely 'No'.
+ You'll want to use this proc whenever an atom first comes in
+ contact with the reagents of a holder. (in the 'splash' part of a beaker i.e.)
+ More on the reaction in the reagent part of this readme.
+
+ add_reagent(var/reagent, var/amount, var/data)
+ Attempts to add X of the matching reagent to the holder.
+ You wont use this much. Mostly in new procs for pre-filled
+ objects.
+
+ remove_reagent(var/reagent, var/amount)
+ The exact opposite of the add_reagent proc.
+
+ has_reagent(var/reagent, var/amount)
+ Returns 1 if the holder contains this reagent.
+ Or 0 if not.
+ If you pass it an amount it will additionally check
+ if the amount is matched. This is optional.
+
+ get_reagent_amount(var/reagent)
+ Returns the amount of the matching reagent inside the
+ holder. Returns 0 if the reagent is missing.
+
+ Important variables:
+
+ total_volume
+ This variable contains the total volume of all reagents in this holder.
+
+ reagent_list
+ This is a list of all contained reagents. More specifically, references
+ to the reagent datums.
+
+ maximum_volume
+ This is the maximum volume of the holder.
+
+ my_atom
+ This is the atom the holder is 'in'. Useful if you need to find the location.
+ (i.e. for explosions)
+
+
About Reagents:
+
Reagents are all the things you can mix and fille in bottles etc. This can be anything from rejuvs over water to ... iron. Each reagent also has a few procs - i'll explain those below.
+
reaction_mob(var/mob/living/L, var/method=TOUCH)
+ This is called by the holder's reation proc.
+ This version is only called when the reagent
+ reacts with a mob. The method var can be either
+ TOUCH or INGEST. You'll want to put stuff like
+ acid-facemelting in here.
+
+ reaction_obj(var/obj/O)
+ This is called by the holder's reation proc.
+ This version is called when the reagents reacts
+ with an object. You'll want to put stuff like
+ object melting in here ... or something. i dunno.
+
+ reaction_turf(var/turf/T)
+ This is called by the holder's reation proc.
+ This version is called when the reagents reacts
+ with a turf. You'll want to put stuff like extra
+ slippery floors for lube or something in here.
+
+ on_mob_life(var/mob/living/L)
+ This proc is called everytime the mobs life proc executes.
+ This is the place where you put damage for toxins ,
+ drowsyness for sleep toxins etc etc.
+ You'll want to call the parents proc by using ..() .
+ If you dont, the chemical will stay in the mob forever -
+ unless you write your own piece of code to slowly remove it.
+ (Should be pretty easy, 1 line of code)
+
+
Important variables:
+
holder
+ This variable contains a reference to the holder the chemical is 'in'
+
+ volume
+ This is the volume of the reagent.
+
+ id
+ The id of the reagent
+
+ name
+ The name of the reagent.
+
+ data
+ This var can be used for whatever the fuck you want. I used it for the sleep
+ toxins to make them work slowly instead of instantly. You could also use this
+ for DNA in a blood reagent or ... well whatever you want.
+
+ color
+ This is a hexadecimal color that represents the reagent outside of containers,
+ you define it as "#RRGGBB", or, red green blue. You can also define it using the
+ rgb() proc, which returns a hexadecimal value too. The color is black by default.
+
+
A good website for color calculations: http://www.psyclops.com/tools/rgb/
+
About Recipes:
+
Recipes are simple datums that contain a list of required reagents and a result. They also have a proc that is called when the recipe is matched.
+
on_reaction(var/datum/reagents/holder, var/created_volume)
+ This proc is called when the recipe is matched.
+ You'll want to add explosions etc here.
+ To find the location you'll have to do something
+ like get_turf(holder.my_atom)
+
+ name & id
+ Should be pretty obvious.
+
+ results
+ This var contains a list of the id(s) of the resulting reagents and their result amounts.
+ I recommend you set this to the total volume of all required reagent.
+
+ required_reagents
+ This is a list of ids of the required reagents.
+ Each id also needs an associated value that gives us the minimum required amount
+ of that reagent. The handle_reaction proc can detect mutiples of the same recipes
+ so for most cases you want to set the required amount to 1.
+
+ required_catalysts
+ This is a list of the ids of the required catalysts.
+ Functionally similar to required_reagents, it is a list of reagents that are required
+ for the reaction. However, unlike required_reagents, catalysts are NOT consumed.
+ They mearly have to be present in the container.
+
+ required_container
+ The container the recipe has to take place in in order to happen. Leave this blank/null
+ if you want the reaction to happen anywhere.
+
+ required_other
+ Basically like a reagent's data variable. You can set extra requirements for a
+ reaction with this.
+
+ required_temp
+ This is the required temperature.
+
+
About the Tools:
+
By default, all atom have a reagents var - but its empty. if you want to use an object for the chem. system you'll need to add something like this in its new proc:
+
var/datum/reagents/R = new/datum/reagents(100) <<<<< create a new datum , 100 is the maximum_volume of the new holder datum.
+ reagents = R <<<<< assign the new datum to the objects reagents var
+ R.my_atom = src <<<<< set the holders my_atom to src so that we know where we are.
+
+ This can also be done by calling a convenience proc:
+ atom/proc/create_reagents(var/max_volume)
+
+
Other important stuff:
+
amount_per_transfer_from_this var
+ This var is mostly used by beakers and bottles.
+ It simply tells us how much to transfer when
+ 'pouring' our reagents into something else.
+
+ atom/proc/is_open_container()
+ Checks atom/var/reagents.reagents_holder_flags & OPENCONTAINER.
+ If this returns 1 , you can use syringes, beakers etc
+ to manipulate the contents of this object.
+ If it's 0, you'll need to write your own custom reagent
+ transfer code since you will not be able to use the standard
+ tools to manipulate it.
+
+ atom/proc/is_injectable()
+ Checks if something can be injected to.
+ If this returns 1, you can use syringes and droppers
+ to draw from and add to the contents of this object.
+
+ atom/proc/is_drawable()
+ Checks if something can be drawn from.
+ If this returns 1, you can use syringes and droppers
+ to draw from the contents of this object.
+
+
GOON CHEMS README:
+
Credit goes to Cogwerks, and all the other goonstation coders for the original idea and implementation of this over at goonstation.
+
+
THE REQUESTED DON'T PORT LIST: IF YOU PORT THESE THE GOONS WILL MURDER US IN OUR SLEEP SO PLEASE DON'T KTHX - Iamgoofball
+
Any of the Secret Chems
+
Goon in-joke chems (Eg. Cat Drugs, Hairgrownium)
+
Liquid Electricity
+
Rajajajah
+
\ No newline at end of file
diff --git a/code/modules/reagents/chemistry/fermi.html b/code/modules/reagents/chemistry/fermi.html
new file mode 100644
index 000000000000..5fc19a3536fe
--- /dev/null
+++ b/code/modules/reagents/chemistry/fermi.html
@@ -0,0 +1,17 @@
+code/modules/reagents/chemistry/fermi/readme.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/reagents/chemistry/fermi/readme.md
How to code fermichem reactions:
+First off, probably read though the readme for standard reagent mechanisms, this builds on top of that.
+
#bitflags
+for datum/reagent/ you have the following options with var/chemical_flags:
+
REAGENT_DEAD_PROCESS calls on_mob_dead() if present in a dead body
+REAGENT_DONOTSPLIT Do not split the chem at all during processing
+REAGENT_ONLYINVERSE Only invert chem, no splitting
+REAGENT_ONMOBMERGE Call on_mob_life proc when reagents are merging.
+REAGENT_INVISIBLE Doesn't appear on handheld health analyzers.
+REAGENT_FORCEONNEW Forces a on_new() call without a data overhead
+REAGENT_SNEAKYNAME When inverted, the inverted chem uses the name of the original chem
+REAGENT_SPLITRETAINVOL Retains initial volume of chem when splitting
+
+
for datum/chemical_reaction/ under var/clear_conversion
+
REACTION_CLEAR_IMPURE Convert into impure/pure on reaction completion
+REACTION_CLEAR_INVERSE Convert into inverse on reaction completion when purity is low enough
+
\ No newline at end of file
diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.html b/code/modules/reagents/chemistry/machinery/chem_dispenser.html
new file mode 100644
index 000000000000..309802d2998a
--- /dev/null
+++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.html
@@ -0,0 +1 @@
+code/modules/reagents/chemistry/machinery/chem_dispenser.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
An unique, less efficient model found in the medbay apothecary room.
\ No newline at end of file
diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.html b/code/modules/reagents/chemistry/reagents/alcohol_reagents.html
new file mode 100644
index 000000000000..6a17b8f259bf
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.html
@@ -0,0 +1 @@
+code/modules/reagents/chemistry/reagents/alcohol_reagents.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
I don't know who made this header before I refactored alcohols but I'm going to fucking strangle them because it was so ugly, holy Christ
\ No newline at end of file
diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.html b/code/modules/reagents/chemistry/reagents/drink_reagents.html
new file mode 100644
index 000000000000..6e3216ae0d41
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/drink_reagents.html
@@ -0,0 +1 @@
+code/modules/reagents/chemistry/reagents/drink_reagents.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
DRINKS BELOW, Beer is up there though, along with cola. Cap'n Pete's Cuban Spiced Rum
\ No newline at end of file
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.html b/code/modules/reagents/chemistry/reagents/food_reagents.html
new file mode 100644
index 000000000000..f11aed62de76
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.html
@@ -0,0 +1 @@
+code/modules/reagents/chemistry/reagents/food_reagents.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.html b/code/modules/reagents/chemistry/reagents/other_reagents.html
new file mode 100644
index 000000000000..86321d9bfcd4
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.html
@@ -0,0 +1 @@
+code/modules/reagents/chemistry/reagents/other_reagents.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.html b/code/modules/reagents/chemistry/reagents/toxin_reagents.html
new file mode 100644
index 000000000000..8fba3761a450
--- /dev/null
+++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.html
@@ -0,0 +1 @@
+code/modules/reagents/chemistry/reagents/toxin_reagents.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/reagents/chemistry/recipes/others.html b/code/modules/reagents/chemistry/recipes/others.html
new file mode 100644
index 000000000000..b991ec8cde97
--- /dev/null
+++ b/code/modules/reagents/chemistry/recipes/others.html
@@ -0,0 +1 @@
+code/modules/reagents/chemistry/recipes/others.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/pill.html b/code/modules/reagents/reagent_containers/pill.html
new file mode 100644
index 000000000000..d6ef537e19c4
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/pill.html
@@ -0,0 +1 @@
+code/modules/reagents/reagent_containers/pill.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/spray.html b/code/modules/reagents/reagent_containers/spray.html
new file mode 100644
index 000000000000..2776271d077d
--- /dev/null
+++ b/code/modules/reagents/reagent_containers/spray.html
@@ -0,0 +1 @@
+code/modules/reagents/reagent_containers/spray.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/recycling/disposal/multiz.html b/code/modules/recycling/disposal/multiz.html
new file mode 100644
index 000000000000..ba09913ab102
--- /dev/null
+++ b/code/modules/recycling/disposal/multiz.html
@@ -0,0 +1 @@
+code/modules/recycling/disposal/multiz.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
Set the multiz direction of your trunk. 1 = up, 2 = down
Define Details
MULTIZ_PIPE_DOWN
Defines for determining which way a multiz disposal element should travel
MULTIZ_PIPE_UP
Defines for determining which way a multiz disposal element should travel
\ No newline at end of file
diff --git a/code/modules/research/anomaly/explosive_compressor.html b/code/modules/research/anomaly/explosive_compressor.html
new file mode 100644
index 000000000000..5fa880968d75
--- /dev/null
+++ b/code/modules/research/anomaly/explosive_compressor.html
@@ -0,0 +1 @@
+code/modules/research/anomaly/explosive_compressor.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
The explosive compressor machine used in anomaly core production.
\ No newline at end of file
diff --git a/code/modules/research/anomaly/raw_anomaly.html b/code/modules/research/anomaly/raw_anomaly.html
new file mode 100644
index 000000000000..4da36807c0b0
--- /dev/null
+++ b/code/modules/research/anomaly/raw_anomaly.html
@@ -0,0 +1 @@
+code/modules/research/anomaly/raw_anomaly.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
The current precursor to anomaly cores, these are manufactured into 'finished' anomaly cores for use in research, items, and more.
\ No newline at end of file
diff --git a/code/modules/research/designs.html b/code/modules/research/designs.html
new file mode 100644
index 000000000000..6d2f7c392c94
--- /dev/null
+++ b/code/modules/research/designs.html
@@ -0,0 +1 @@
+code/modules/research/designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/AI_module_designs.html b/code/modules/research/designs/AI_module_designs.html
new file mode 100644
index 000000000000..1c82eb50f9cc
--- /dev/null
+++ b/code/modules/research/designs/AI_module_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/AI_module_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/autobotter_designs.html b/code/modules/research/designs/autobotter_designs.html
new file mode 100644
index 000000000000..02d9d4d21a00
--- /dev/null
+++ b/code/modules/research/designs/autobotter_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/autobotter_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.html b/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.html
new file mode 100644
index 000000000000..4d81aa5fadc0
--- /dev/null
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.html
@@ -0,0 +1 @@
+code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.html b/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.html
new file mode 100644
index 000000000000..a5daaaeb72e3
--- /dev/null
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.html
@@ -0,0 +1 @@
+code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.html b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.html
new file mode 100644
index 000000000000..cdb703fa6fc5
--- /dev/null
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.html
@@ -0,0 +1 @@
+code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.html b/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.html
new file mode 100644
index 000000000000..d697f9d7acda
--- /dev/null
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.html
@@ -0,0 +1 @@
+code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.html b/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.html
new file mode 100644
index 000000000000..4e184b2307de
--- /dev/null
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.html
@@ -0,0 +1 @@
+code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.html b/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.html
new file mode 100644
index 000000000000..1750fc20a0c5
--- /dev/null
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.html
@@ -0,0 +1 @@
+code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/biogenerator_designs.html b/code/modules/research/designs/biogenerator_designs.html
new file mode 100644
index 000000000000..c9cdc238cca3
--- /dev/null
+++ b/code/modules/research/designs/biogenerator_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/biogenerator_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/bluespace_designs.html b/code/modules/research/designs/bluespace_designs.html
new file mode 100644
index 000000000000..3d02805043dd
--- /dev/null
+++ b/code/modules/research/designs/bluespace_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/bluespace_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.html b/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.html
new file mode 100644
index 000000000000..f897176fc175
--- /dev/null
+++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.html
@@ -0,0 +1 @@
+code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo.html b/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo.html
new file mode 100644
index 000000000000..c61f7cd1d5f4
--- /dev/null
+++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo.html
@@ -0,0 +1 @@
+code/modules/research/designs/comp_board_designs/comp_board_designs_cargo.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_engi.html b/code/modules/research/designs/comp_board_designs/comp_board_designs_engi.html
new file mode 100644
index 000000000000..35518d0b970a
--- /dev/null
+++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_engi.html
@@ -0,0 +1 @@
+code/modules/research/designs/comp_board_designs/comp_board_designs_engi.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_medical.html b/code/modules/research/designs/comp_board_designs/comp_board_designs_medical.html
new file mode 100644
index 000000000000..f129576d692d
--- /dev/null
+++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_medical.html
@@ -0,0 +1 @@
+code/modules/research/designs/comp_board_designs/comp_board_designs_medical.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_sci.html b/code/modules/research/designs/comp_board_designs/comp_board_designs_sci.html
new file mode 100644
index 000000000000..1ba6284d81fc
--- /dev/null
+++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_sci.html
@@ -0,0 +1 @@
+code/modules/research/designs/comp_board_designs/comp_board_designs_sci.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_sec.html b/code/modules/research/designs/comp_board_designs/comp_board_designs_sec.html
new file mode 100644
index 000000000000..be9a13b5b7f8
--- /dev/null
+++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_sec.html
@@ -0,0 +1 @@
+code/modules/research/designs/comp_board_designs/comp_board_designs_sec.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/computer_part_designs.html b/code/modules/research/designs/computer_part_designs.html
new file mode 100644
index 000000000000..d6f236545a76
--- /dev/null
+++ b/code/modules/research/designs/computer_part_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/computer_part_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/electronics_designs.html b/code/modules/research/designs/electronics_designs.html
new file mode 100644
index 000000000000..9fc6971dae8c
--- /dev/null
+++ b/code/modules/research/designs/electronics_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/electronics_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/limbgrower_designs.html b/code/modules/research/designs/limbgrower_designs.html
new file mode 100644
index 000000000000..4d363fe5063f
--- /dev/null
+++ b/code/modules/research/designs/limbgrower_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/limbgrower_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/machine_desings/machine_designs_all_misc.html b/code/modules/research/designs/machine_desings/machine_designs_all_misc.html
new file mode 100644
index 000000000000..107cf6ae75fe
--- /dev/null
+++ b/code/modules/research/designs/machine_desings/machine_designs_all_misc.html
@@ -0,0 +1 @@
+code/modules/research/designs/machine_desings/machine_designs_all_misc.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/machine_desings/machine_designs_cargo.html b/code/modules/research/designs/machine_desings/machine_designs_cargo.html
new file mode 100644
index 000000000000..c07da3c76f1c
--- /dev/null
+++ b/code/modules/research/designs/machine_desings/machine_designs_cargo.html
@@ -0,0 +1 @@
+code/modules/research/designs/machine_desings/machine_designs_cargo.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/machine_desings/machine_designs_engi.html b/code/modules/research/designs/machine_desings/machine_designs_engi.html
new file mode 100644
index 000000000000..066e384bca27
--- /dev/null
+++ b/code/modules/research/designs/machine_desings/machine_designs_engi.html
@@ -0,0 +1 @@
+code/modules/research/designs/machine_desings/machine_designs_engi.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/machine_desings/machine_designs_medical.html b/code/modules/research/designs/machine_desings/machine_designs_medical.html
new file mode 100644
index 000000000000..036f7adbca1f
--- /dev/null
+++ b/code/modules/research/designs/machine_desings/machine_designs_medical.html
@@ -0,0 +1 @@
+code/modules/research/designs/machine_desings/machine_designs_medical.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/machine_desings/machine_designs_sci.html b/code/modules/research/designs/machine_desings/machine_designs_sci.html
new file mode 100644
index 000000000000..af4573fd0676
--- /dev/null
+++ b/code/modules/research/designs/machine_desings/machine_designs_sci.html
@@ -0,0 +1 @@
+code/modules/research/designs/machine_desings/machine_designs_sci.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/machine_desings/machine_designs_service.html b/code/modules/research/designs/machine_desings/machine_designs_service.html
new file mode 100644
index 000000000000..be43f76adaad
--- /dev/null
+++ b/code/modules/research/designs/machine_desings/machine_designs_service.html
@@ -0,0 +1 @@
+code/modules/research/designs/machine_desings/machine_designs_service.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/mecha_designs.html b/code/modules/research/designs/mecha_designs.html
new file mode 100644
index 000000000000..d37e7fc9a471
--- /dev/null
+++ b/code/modules/research/designs/mecha_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/mecha_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/mechfabricator_designs.html b/code/modules/research/designs/mechfabricator_designs.html
new file mode 100644
index 000000000000..fa1d3b71539f
--- /dev/null
+++ b/code/modules/research/designs/mechfabricator_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/mechfabricator_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/medical_designs.html b/code/modules/research/designs/medical_designs.html
new file mode 100644
index 000000000000..747d3c6b0068
--- /dev/null
+++ b/code/modules/research/designs/medical_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/medical_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/mining_designs.html b/code/modules/research/designs/mining_designs.html
new file mode 100644
index 000000000000..3e366d8aee59
--- /dev/null
+++ b/code/modules/research/designs/mining_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/mining_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/misc_designs.html b/code/modules/research/designs/misc_designs.html
new file mode 100644
index 000000000000..537af1521cc6
--- /dev/null
+++ b/code/modules/research/designs/misc_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/misc_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/nanite_designs.html b/code/modules/research/designs/nanite_designs.html
new file mode 100644
index 000000000000..eba512b9330c
--- /dev/null
+++ b/code/modules/research/designs/nanite_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/nanite_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/power_designs.html b/code/modules/research/designs/power_designs.html
new file mode 100644
index 000000000000..ae7568f6e31c
--- /dev/null
+++ b/code/modules/research/designs/power_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/power_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/smelting_designs.html b/code/modules/research/designs/smelting_designs.html
new file mode 100644
index 000000000000..66b080aa597b
--- /dev/null
+++ b/code/modules/research/designs/smelting_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/smelting_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/stock_parts_designs.html b/code/modules/research/designs/stock_parts_designs.html
new file mode 100644
index 000000000000..4759c162d8e7
--- /dev/null
+++ b/code/modules/research/designs/stock_parts_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/stock_parts_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/telecomms_designs.html b/code/modules/research/designs/telecomms_designs.html
new file mode 100644
index 000000000000..23c7e5c06e01
--- /dev/null
+++ b/code/modules/research/designs/telecomms_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/telecomms_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/tool_designs.html b/code/modules/research/designs/tool_designs.html
new file mode 100644
index 000000000000..b14ea9810c6f
--- /dev/null
+++ b/code/modules/research/designs/tool_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/tool_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/designs/weapon_designs.html b/code/modules/research/designs/weapon_designs.html
new file mode 100644
index 000000000000..35c60834a696
--- /dev/null
+++ b/code/modules/research/designs/weapon_designs.html
@@ -0,0 +1 @@
+code/modules/research/designs/weapon_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/experimentor.html b/code/modules/research/experimentor.html
new file mode 100644
index 000000000000..6f774d5b6b0d
--- /dev/null
+++ b/code/modules/research/experimentor.html
@@ -0,0 +1 @@
+code/modules/research/experimentor.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/nanites/nanite_programs.html b/code/modules/research/nanites/nanite_programs.html
new file mode 100644
index 000000000000..c58f3b9a5837
--- /dev/null
+++ b/code/modules/research/nanites/nanite_programs.html
@@ -0,0 +1 @@
+code/modules/research/nanites/nanite_programs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
A nanite program containing a behaviour protocol. Only one protocol of each class can be active at once.
\ No newline at end of file
diff --git a/code/modules/research/techweb/nodes/alien_nodes.html b/code/modules/research/techweb/nodes/alien_nodes.html
new file mode 100644
index 000000000000..60268d3ae463
--- /dev/null
+++ b/code/modules/research/techweb/nodes/alien_nodes.html
@@ -0,0 +1 @@
+code/modules/research/techweb/nodes/alien_nodes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/techweb/nodes/bepis_nodes.html b/code/modules/research/techweb/nodes/bepis_nodes.html
new file mode 100644
index 000000000000..32d86b834112
--- /dev/null
+++ b/code/modules/research/techweb/nodes/bepis_nodes.html
@@ -0,0 +1 @@
+code/modules/research/techweb/nodes/bepis_nodes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/techweb/nodes/biotech_nodes.html b/code/modules/research/techweb/nodes/biotech_nodes.html
new file mode 100644
index 000000000000..43323d2dde69
--- /dev/null
+++ b/code/modules/research/techweb/nodes/biotech_nodes.html
@@ -0,0 +1 @@
+code/modules/research/techweb/nodes/biotech_nodes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/techweb/nodes/bluespace_nodes.html b/code/modules/research/techweb/nodes/bluespace_nodes.html
new file mode 100644
index 000000000000..4e3d7b6c0845
--- /dev/null
+++ b/code/modules/research/techweb/nodes/bluespace_nodes.html
@@ -0,0 +1 @@
+code/modules/research/techweb/nodes/bluespace_nodes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/techweb/nodes/computer_hud_nodes.html b/code/modules/research/techweb/nodes/computer_hud_nodes.html
new file mode 100644
index 000000000000..e76232a678c8
--- /dev/null
+++ b/code/modules/research/techweb/nodes/computer_hud_nodes.html
@@ -0,0 +1 @@
+code/modules/research/techweb/nodes/computer_hud_nodes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/techweb/nodes/engineering_nodes.html b/code/modules/research/techweb/nodes/engineering_nodes.html
new file mode 100644
index 000000000000..88c73d8a69fc
--- /dev/null
+++ b/code/modules/research/techweb/nodes/engineering_nodes.html
@@ -0,0 +1 @@
+code/modules/research/techweb/nodes/engineering_nodes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/techweb/nodes/mecha_nodes.html b/code/modules/research/techweb/nodes/mecha_nodes.html
new file mode 100644
index 000000000000..3f1a67d0963e
--- /dev/null
+++ b/code/modules/research/techweb/nodes/mecha_nodes.html
@@ -0,0 +1 @@
+code/modules/research/techweb/nodes/mecha_nodes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/techweb/nodes/medical_nodes.html b/code/modules/research/techweb/nodes/medical_nodes.html
new file mode 100644
index 000000000000..dd033484d570
--- /dev/null
+++ b/code/modules/research/techweb/nodes/medical_nodes.html
@@ -0,0 +1 @@
+code/modules/research/techweb/nodes/medical_nodes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/techweb/nodes/misc_nodes.html b/code/modules/research/techweb/nodes/misc_nodes.html
new file mode 100644
index 000000000000..c2e81c1f79e4
--- /dev/null
+++ b/code/modules/research/techweb/nodes/misc_nodes.html
@@ -0,0 +1 @@
+code/modules/research/techweb/nodes/misc_nodes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/techweb/nodes/nanites_nodes.html b/code/modules/research/techweb/nodes/nanites_nodes.html
new file mode 100644
index 000000000000..ac675c2cdb1d
--- /dev/null
+++ b/code/modules/research/techweb/nodes/nanites_nodes.html
@@ -0,0 +1 @@
+code/modules/research/techweb/nodes/nanites_nodes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/techweb/nodes/robotics_nodes.html b/code/modules/research/techweb/nodes/robotics_nodes.html
new file mode 100644
index 000000000000..edb728fa5294
--- /dev/null
+++ b/code/modules/research/techweb/nodes/robotics_nodes.html
@@ -0,0 +1 @@
+code/modules/research/techweb/nodes/robotics_nodes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/techweb/nodes/tools_nodes.html b/code/modules/research/techweb/nodes/tools_nodes.html
new file mode 100644
index 000000000000..fb732ce8d3cc
--- /dev/null
+++ b/code/modules/research/techweb/nodes/tools_nodes.html
@@ -0,0 +1 @@
+code/modules/research/techweb/nodes/tools_nodes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/techweb/nodes/weaponry_nodes.html b/code/modules/research/techweb/nodes/weaponry_nodes.html
new file mode 100644
index 000000000000..1fd3174ca8df
--- /dev/null
+++ b/code/modules/research/techweb/nodes/weaponry_nodes.html
@@ -0,0 +1 @@
+code/modules/research/techweb/nodes/weaponry_nodes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/xenobiology/crossbreeding/__corecross.html b/code/modules/research/xenobiology/crossbreeding/__corecross.html
new file mode 100644
index 000000000000..6e53289fd89e
--- /dev/null
+++ b/code/modules/research/xenobiology/crossbreeding/__corecross.html
@@ -0,0 +1 @@
+code/modules/research/xenobiology/crossbreeding/__corecross.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.html b/code/modules/research/xenobiology/crossbreeding/_status_effects.html
new file mode 100644
index 000000000000..28f1988ea9de
--- /dev/null
+++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.html
@@ -0,0 +1 @@
+code/modules/research/xenobiology/crossbreeding/_status_effects.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/xenobiology/crossbreeding/charged.html b/code/modules/research/xenobiology/crossbreeding/charged.html
new file mode 100644
index 000000000000..faba54ad4c52
--- /dev/null
+++ b/code/modules/research/xenobiology/crossbreeding/charged.html
@@ -0,0 +1 @@
+code/modules/research/xenobiology/crossbreeding/charged.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/research/xenobiology/xenobiology.html b/code/modules/research/xenobiology/xenobiology.html
new file mode 100644
index 000000000000..591f8a70298e
--- /dev/null
+++ b/code/modules/research/xenobiology/xenobiology.html
@@ -0,0 +1 @@
+code/modules/research/xenobiology/xenobiology.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/icemoonruin_code/hotsprings.html b/code/modules/ruins/icemoonruin_code/hotsprings.html
new file mode 100644
index 000000000000..5bc9f7b622ba
--- /dev/null
+++ b/code/modules/ruins/icemoonruin_code/hotsprings.html
@@ -0,0 +1 @@
+code/modules/ruins/icemoonruin_code/hotsprings.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/lavaland_ruin_code.html b/code/modules/ruins/lavaland_ruin_code.html
new file mode 100644
index 000000000000..801e8d8eb3d3
--- /dev/null
+++ b/code/modules/ruins/lavaland_ruin_code.html
@@ -0,0 +1 @@
+code/modules/ruins/lavaland_ruin_code.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/lavalandruin_code/biodome_clown_planet.html b/code/modules/ruins/lavalandruin_code/biodome_clown_planet.html
new file mode 100644
index 000000000000..dc9e5bae2728
--- /dev/null
+++ b/code/modules/ruins/lavalandruin_code/biodome_clown_planet.html
@@ -0,0 +1 @@
+code/modules/ruins/lavalandruin_code/biodome_clown_planet.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/lavalandruin_code/sloth.html b/code/modules/ruins/lavalandruin_code/sloth.html
new file mode 100644
index 000000000000..297e4db9b11d
--- /dev/null
+++ b/code/modules/ruins/lavalandruin_code/sloth.html
@@ -0,0 +1 @@
+code/modules/ruins/lavalandruin_code/sloth.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/lavalandruin_code/surface.html b/code/modules/ruins/lavalandruin_code/surface.html
new file mode 100644
index 000000000000..bf7dc888774e
--- /dev/null
+++ b/code/modules/ruins/lavalandruin_code/surface.html
@@ -0,0 +1 @@
+code/modules/ruins/lavalandruin_code/surface.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/spaceruin_code/DJstation.html b/code/modules/ruins/spaceruin_code/DJstation.html
new file mode 100644
index 000000000000..bd6cf684e85d
--- /dev/null
+++ b/code/modules/ruins/spaceruin_code/DJstation.html
@@ -0,0 +1 @@
+code/modules/ruins/spaceruin_code/DJstation.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/spaceruin_code/TheDerelict.html b/code/modules/ruins/spaceruin_code/TheDerelict.html
new file mode 100644
index 000000000000..33a9d44e2b30
--- /dev/null
+++ b/code/modules/ruins/spaceruin_code/TheDerelict.html
@@ -0,0 +1 @@
+code/modules/ruins/spaceruin_code/TheDerelict.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Airlock that can't be deconstructed, broken or hacked.
\ No newline at end of file
diff --git a/code/modules/ruins/spaceruin_code/asteroid4.html b/code/modules/ruins/spaceruin_code/asteroid4.html
new file mode 100644
index 000000000000..a6c4329058f5
--- /dev/null
+++ b/code/modules/ruins/spaceruin_code/asteroid4.html
@@ -0,0 +1 @@
+code/modules/ruins/spaceruin_code/asteroid4.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/spaceruin_code/bigderelict1.html b/code/modules/ruins/spaceruin_code/bigderelict1.html
new file mode 100644
index 000000000000..5179b4ce5429
--- /dev/null
+++ b/code/modules/ruins/spaceruin_code/bigderelict1.html
@@ -0,0 +1 @@
+code/modules/ruins/spaceruin_code/bigderelict1.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/spaceruin_code/clericsden.html b/code/modules/ruins/spaceruin_code/clericsden.html
new file mode 100644
index 000000000000..fe422d56bed4
--- /dev/null
+++ b/code/modules/ruins/spaceruin_code/clericsden.html
@@ -0,0 +1 @@
+code/modules/ruins/spaceruin_code/clericsden.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/spaceruin_code/crashedclownship.html b/code/modules/ruins/spaceruin_code/crashedclownship.html
new file mode 100644
index 000000000000..fc40ee725ad1
--- /dev/null
+++ b/code/modules/ruins/spaceruin_code/crashedclownship.html
@@ -0,0 +1 @@
+code/modules/ruins/spaceruin_code/crashedclownship.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/spaceruin_code/deepstorage.html b/code/modules/ruins/spaceruin_code/deepstorage.html
new file mode 100644
index 000000000000..4848cbdb2028
--- /dev/null
+++ b/code/modules/ruins/spaceruin_code/deepstorage.html
@@ -0,0 +1 @@
+code/modules/ruins/spaceruin_code/deepstorage.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/spaceruin_code/listeningstation.html b/code/modules/ruins/spaceruin_code/listeningstation.html
new file mode 100644
index 000000000000..9395f364b8cd
--- /dev/null
+++ b/code/modules/ruins/spaceruin_code/listeningstation.html
@@ -0,0 +1 @@
+code/modules/ruins/spaceruin_code/listeningstation.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/spaceruin_code/miracle.html b/code/modules/ruins/spaceruin_code/miracle.html
new file mode 100644
index 000000000000..e6bd976ea92a
--- /dev/null
+++ b/code/modules/ruins/spaceruin_code/miracle.html
@@ -0,0 +1 @@
+code/modules/ruins/spaceruin_code/miracle.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/spaceruin_code/oldstation.html b/code/modules/ruins/spaceruin_code/oldstation.html
new file mode 100644
index 000000000000..adc6a54f369f
--- /dev/null
+++ b/code/modules/ruins/spaceruin_code/oldstation.html
@@ -0,0 +1 @@
+code/modules/ruins/spaceruin_code/oldstation.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/spaceruin_code/originalcontent.html b/code/modules/ruins/spaceruin_code/originalcontent.html
new file mode 100644
index 000000000000..89ba298c2e87
--- /dev/null
+++ b/code/modules/ruins/spaceruin_code/originalcontent.html
@@ -0,0 +1 @@
+code/modules/ruins/spaceruin_code/originalcontent.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/spaceruin_code/skelter.html b/code/modules/ruins/spaceruin_code/skelter.html
new file mode 100644
index 000000000000..48c16b509bda
--- /dev/null
+++ b/code/modules/ruins/spaceruin_code/skelter.html
@@ -0,0 +1 @@
+code/modules/ruins/spaceruin_code/skelter.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/spaceruin_code/spacehotel.html b/code/modules/ruins/spaceruin_code/spacehotel.html
new file mode 100644
index 000000000000..fa0a39e59203
--- /dev/null
+++ b/code/modules/ruins/spaceruin_code/spacehotel.html
@@ -0,0 +1 @@
+code/modules/ruins/spaceruin_code/spacehotel.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/ruins/spaceruin_code/whiteshipruin_box.html b/code/modules/ruins/spaceruin_code/whiteshipruin_box.html
new file mode 100644
index 000000000000..112aaacaaa55
--- /dev/null
+++ b/code/modules/ruins/spaceruin_code/whiteshipruin_box.html
@@ -0,0 +1 @@
+code/modules/ruins/spaceruin_code/whiteshipruin_box.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/shielding/helpers.html b/code/modules/shielding/helpers.html
new file mode 100644
index 000000000000..a1ff6efbfe71
--- /dev/null
+++ b/code/modules/shielding/helpers.html
@@ -0,0 +1,7 @@
+code/modules/shielding/helpers.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
HELPER FILE FOR SHIELDING
+Gets hull exterior adjacent tiles of a certain area
+Area method.
+EXPENSIVE.
+If the area itself is already considered exterior, it'll find all tiles inside it that's next to an interior area.
Gets hull adjacent exterior tiles of an entire zlevel
+EXPENSIVE.
+Gets the tiles in the exterior area touching to a non-exterior area
\ No newline at end of file
diff --git a/code/modules/shuttle/supply.html b/code/modules/shuttle/supply.html
new file mode 100644
index 000000000000..50dcadaf782c
--- /dev/null
+++ b/code/modules/shuttle/supply.html
@@ -0,0 +1 @@
+code/modules/shuttle/supply.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
How many goody orders we can fit in a lockbox before we upgrade to a crate
\ No newline at end of file
diff --git a/code/modules/spells/spell_types/cone_spells.html b/code/modules/spells/spell_types/cone_spells.html
new file mode 100644
index 000000000000..d06f0af81922
--- /dev/null
+++ b/code/modules/spells/spell_types/cone_spells.html
@@ -0,0 +1 @@
+code/modules/spells/spell_types/cone_spells.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
This type of cone gradually affects each level of the cone instead of affecting the entire area at once.
\ No newline at end of file
diff --git a/code/modules/spells/spell_types/construct_spells.html b/code/modules/spells/spell_types/construct_spells.html
new file mode 100644
index 000000000000..7c386dcf3077
--- /dev/null
+++ b/code/modules/spells/spell_types/construct_spells.html
@@ -0,0 +1 @@
+code/modules/spells/spell_types/construct_spells.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/surgery/bone_mending.html b/code/modules/surgery/bone_mending.html
new file mode 100644
index 000000000000..64d513ef2fe6
--- /dev/null
+++ b/code/modules/surgery/bone_mending.html
@@ -0,0 +1,2 @@
+code/modules/surgery/bone_mending.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/surgery/burn_dressing.html b/code/modules/surgery/burn_dressing.html
new file mode 100644
index 000000000000..3890585fd301
--- /dev/null
+++ b/code/modules/surgery/burn_dressing.html
@@ -0,0 +1,2 @@
+code/modules/surgery/burn_dressing.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/surgery/healing.html b/code/modules/surgery/healing.html
new file mode 100644
index 000000000000..197f0bf578a5
--- /dev/null
+++ b/code/modules/surgery/healing.html
@@ -0,0 +1 @@
+code/modules/surgery/healing.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/surgery/limb_augmentation.html b/code/modules/surgery/limb_augmentation.html
new file mode 100644
index 000000000000..2b99f2a24818
--- /dev/null
+++ b/code/modules/surgery/limb_augmentation.html
@@ -0,0 +1 @@
+code/modules/surgery/limb_augmentation.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/surgery/organs/eyes.html b/code/modules/surgery/organs/eyes.html
new file mode 100644
index 000000000000..155c58010bec
--- /dev/null
+++ b/code/modules/surgery/organs/eyes.html
@@ -0,0 +1 @@
+code/modules/surgery/organs/eyes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/surgery/organs/vocal_cords.html b/code/modules/surgery/organs/vocal_cords.html
new file mode 100644
index 000000000000..4428b1e5a963
--- /dev/null
+++ b/code/modules/surgery/organs/vocal_cords.html
@@ -0,0 +1 @@
+code/modules/surgery/organs/vocal_cords.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
anything above this requires adminbus, to prevent a cultist from stacking chaplain + cult + specific listener = 8x, which is enough to instantly kill someone with damage.
max healing we can do in one "blast" to a listener
VOG_MAX_STANDARD_POWER
anything above this requires adminbus, to prevent a cultist from stacking chaplain + cult + specific listener = 8x, which is enough to instantly kill someone with damage.
\ No newline at end of file
diff --git a/code/modules/surgery/repair_puncture.html b/code/modules/surgery/repair_puncture.html
new file mode 100644
index 000000000000..2b7136f632ad
--- /dev/null
+++ b/code/modules/surgery/repair_puncture.html
@@ -0,0 +1 @@
+code/modules/surgery/repair_puncture.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/code/modules/surgery/robot_healing.html b/code/modules/surgery/robot_healing.html
new file mode 100644
index 000000000000..3a7e6cdee7e7
--- /dev/null
+++ b/code/modules/surgery/robot_healing.html
@@ -0,0 +1 @@
+code/modules/surgery/robot_healing.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/tgchat/message.html b/code/modules/tgchat/message.html
new file mode 100644
index 000000000000..40b3055a9da1
--- /dev/null
+++ b/code/modules/tgchat/message.html
@@ -0,0 +1 @@
+code/modules/tgchat/message.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/tgchat/to_chat.html b/code/modules/tgchat/to_chat.html
new file mode 100644
index 000000000000..980abbe027b1
--- /dev/null
+++ b/code/modules/tgchat/to_chat.html
@@ -0,0 +1,3 @@
+code/modules/tgchat/to_chat.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgchat/to_chat.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgs.html b/code/modules/tgs.html
new file mode 100644
index 000000000000..38c962b5156a
--- /dev/null
+++ b/code/modules/tgs.html
@@ -0,0 +1,14 @@
+code/modules/tgs/README.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
DMAPI Internals
This folder should be placed on its own inside a codebase that wishes to use the TGS DMAPI. Warranty void if modified.
+
+
includes.dm is the file that should be included by DM code, it handles including the rest.
+
The core folder includes all code not directly part of any API version.
+
The other versioned folders contain code for the different DMAPI versions.
+
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.
\ No newline at end of file
diff --git a/code/modules/tgs/core.html b/code/modules/tgs/core.html
new file mode 100644
index 000000000000..f330040ab155
--- /dev/null
+++ b/code/modules/tgs/core.html
@@ -0,0 +1,8 @@
+code/modules/tgs/core/README.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
Core DMAPI functions
This folder contains all DMAPI code not directly involved in an API.
+
+
_definitions.dm contains defines needed across DMAPI internals.
+
byond_world_export.dm contains the default /datum/tgs_http_handler implementation which uses world.Export().
+
core.dm contains the implementations of the /world/proc/TgsXXX() procs. Many map directly to the /datum/tgs_api functions. It also contains the /datum selection and setup code.
+
datum.dm contains the /datum/tgs_api declarations that all APIs must implement.
+
tgs_version.dm contains the /datum/tgs_version definition
+
\ No newline at end of file
diff --git a/code/modules/tgs/v3210.html b/code/modules/tgs/v3210.html
new file mode 100644
index 000000000000..ee1d3019f492
--- /dev/null
+++ b/code/modules/tgs/v3210.html
@@ -0,0 +1,5 @@
+code/modules/tgs/v3210/README.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
DMAPI V3
This DMAPI implements bridge using file output which TGS monitors for.
commands.dm contains functions relating to /datum/tgs_chat_commands.
+
\ No newline at end of file
diff --git a/code/modules/tgs/v4.html b/code/modules/tgs/v4.html
new file mode 100644
index 000000000000..758b49600a4a
--- /dev/null
+++ b/code/modules/tgs/v4.html
@@ -0,0 +1,5 @@
+code/modules/tgs/v4/README.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
DMAPI V4
This DMAPI implements bridge requests using file output which TGS monitors for. It has a safe mode restriction.
commands.dm contains functions relating to /datum/tgs_chat_commands.
+
\ No newline at end of file
diff --git a/code/modules/tgs/v5.html b/code/modules/tgs/v5.html
new file mode 100644
index 000000000000..69ba9b09c9b9
--- /dev/null
+++ b/code/modules/tgs/v5.html
@@ -0,0 +1,12 @@
+code/modules/tgs/v5/README.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
DMAPI V5
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.
\ No newline at end of file
diff --git a/code/modules/tgui/external.html b/code/modules/tgui/external.html
new file mode 100644
index 000000000000..d49a04ae3b19
--- /dev/null
+++ b/code/modules/tgui/external.html
@@ -0,0 +1,3 @@
+code/modules/tgui/external.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/external.dm
External tgui definitions, such as src_object APIs.
+
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states.html b/code/modules/tgui/states.html
new file mode 100644
index 000000000000..5cd3e2f4925e
--- /dev/null
+++ b/code/modules/tgui/states.html
@@ -0,0 +1,4 @@
+code/modules/tgui/states.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
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
\ No newline at end of file
diff --git a/code/modules/tgui/states/admin.html b/code/modules/tgui/states/admin.html
new file mode 100644
index 000000000000..ba54d5f94a7c
--- /dev/null
+++ b/code/modules/tgui/states/admin.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/admin.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/admin.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/always.html b/code/modules/tgui/states/always.html
new file mode 100644
index 000000000000..87394b3a4ee9
--- /dev/null
+++ b/code/modules/tgui/states/always.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/always.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/always.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/conscious.html b/code/modules/tgui/states/conscious.html
new file mode 100644
index 000000000000..bf0c1b7a8436
--- /dev/null
+++ b/code/modules/tgui/states/conscious.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/conscious.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/conscious.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/contained.html b/code/modules/tgui/states/contained.html
new file mode 100644
index 000000000000..4bac9f234a5d
--- /dev/null
+++ b/code/modules/tgui/states/contained.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/contained.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/contained.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/deep_inventory.html b/code/modules/tgui/states/deep_inventory.html
new file mode 100644
index 000000000000..9ece21562cf5
--- /dev/null
+++ b/code/modules/tgui/states/deep_inventory.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/deep_inventory.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/deep_inventory.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/default.html b/code/modules/tgui/states/default.html
new file mode 100644
index 000000000000..4c48d36c6637
--- /dev/null
+++ b/code/modules/tgui/states/default.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/default.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/default.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/fun.html b/code/modules/tgui/states/fun.html
new file mode 100644
index 000000000000..feac1336c939
--- /dev/null
+++ b/code/modules/tgui/states/fun.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/fun.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/fun.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/hands.html b/code/modules/tgui/states/hands.html
new file mode 100644
index 000000000000..17add1abb735
--- /dev/null
+++ b/code/modules/tgui/states/hands.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/hands.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/hands.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/human_adjacent.html b/code/modules/tgui/states/human_adjacent.html
new file mode 100644
index 000000000000..4be2514d8f06
--- /dev/null
+++ b/code/modules/tgui/states/human_adjacent.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/human_adjacent.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/human_adjacent.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/inventory.html b/code/modules/tgui/states/inventory.html
new file mode 100644
index 000000000000..d5480b458298
--- /dev/null
+++ b/code/modules/tgui/states/inventory.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/inventory.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/inventory.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/language_menu.html b/code/modules/tgui/states/language_menu.html
new file mode 100644
index 000000000000..88c3fdc523d2
--- /dev/null
+++ b/code/modules/tgui/states/language_menu.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/language_menu.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/language_menu.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/never.html b/code/modules/tgui/states/never.html
new file mode 100644
index 000000000000..f9df16ca2e9d
--- /dev/null
+++ b/code/modules/tgui/states/never.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/never.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/never.dm
Copyright (c) 2021 Arm A. Hammer
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/not_incapacitated.html b/code/modules/tgui/states/not_incapacitated.html
new file mode 100644
index 000000000000..07d67a49a5b8
--- /dev/null
+++ b/code/modules/tgui/states/not_incapacitated.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/not_incapacitated.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/not_incapacitated.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/notcontained.html b/code/modules/tgui/states/notcontained.html
new file mode 100644
index 000000000000..8949dcc139aa
--- /dev/null
+++ b/code/modules/tgui/states/notcontained.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/notcontained.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/notcontained.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/observer.html b/code/modules/tgui/states/observer.html
new file mode 100644
index 000000000000..071322058c8e
--- /dev/null
+++ b/code/modules/tgui/states/observer.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/observer.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/observer.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/physical.html b/code/modules/tgui/states/physical.html
new file mode 100644
index 000000000000..5a99c760f707
--- /dev/null
+++ b/code/modules/tgui/states/physical.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/physical.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/physical.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/self.html b/code/modules/tgui/states/self.html
new file mode 100644
index 000000000000..b3372d734365
--- /dev/null
+++ b/code/modules/tgui/states/self.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/self.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/self.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/states/zlevel.html b/code/modules/tgui/states/zlevel.html
new file mode 100644
index 000000000000..0d731c8d3bdc
--- /dev/null
+++ b/code/modules/tgui/states/zlevel.html
@@ -0,0 +1,2 @@
+code/modules/tgui/states/zlevel.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/states/zlevel.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/status_composers.html b/code/modules/tgui/status_composers.html
new file mode 100644
index 000000000000..c1787bb544c2
--- /dev/null
+++ b/code/modules/tgui/status_composers.html
@@ -0,0 +1,13 @@
+code/modules/tgui/status_composers.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
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 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.
Returns a UI status such that silicons will be able to interact with whatever
+they would have access to if this was a machine. For example, AIs can
+interact if there's cameras with wireless control is enabled.
Return UI_INTERACTIVE if the user is strictly adjacent to the target atom, whether they can see it or not.
+Return UI_CLOSE otherwise.
\ No newline at end of file
diff --git a/code/modules/tgui/tgui.html b/code/modules/tgui/tgui.html
new file mode 100644
index 000000000000..50b812d15dd1
--- /dev/null
+++ b/code/modules/tgui/tgui.html
@@ -0,0 +1,2 @@
+code/modules/tgui/tgui.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/tgui.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui/tgui_window.html b/code/modules/tgui/tgui_window.html
new file mode 100644
index 000000000000..81339e31937b
--- /dev/null
+++ b/code/modules/tgui/tgui_window.html
@@ -0,0 +1,2 @@
+code/modules/tgui/tgui_window.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui/tgui_window.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui_input/alert.html b/code/modules/tgui_input/alert.html
new file mode 100644
index 000000000000..7e1e61ba11ae
--- /dev/null
+++ b/code/modules/tgui_input/alert.html
@@ -0,0 +1,2 @@
+code/modules/tgui_input/alert.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
An asynchronous version of tgui_modal to be used with callbacks instead of waiting on user responses.
\ No newline at end of file
diff --git a/code/modules/tgui_input/list.html b/code/modules/tgui_input/list.html
new file mode 100644
index 000000000000..aa379c4d9426
--- /dev/null
+++ b/code/modules/tgui_input/list.html
@@ -0,0 +1,2 @@
+code/modules/tgui_input/list.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
An asynchronous version of tgui_list_input to be used with callbacks instead of waiting on user responses.
\ No newline at end of file
diff --git a/code/modules/tgui_input/number.html b/code/modules/tgui_input/number.html
new file mode 100644
index 000000000000..ffe37a9d5c35
--- /dev/null
+++ b/code/modules/tgui_input/number.html
@@ -0,0 +1,2 @@
+code/modules/tgui_input/number.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
An asynchronous version of tgui_text_input to be used with callbacks instead of waiting on user responses.
\ No newline at end of file
diff --git a/code/modules/tgui_input/text.html b/code/modules/tgui_input/text.html
new file mode 100644
index 000000000000..680a4f29d4c1
--- /dev/null
+++ b/code/modules/tgui_input/text.html
@@ -0,0 +1 @@
+code/modules/tgui_input/text.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
An asynchronous version of tgui_text_input to be used with callbacks instead of waiting on user responses.
\ No newline at end of file
diff --git a/code/modules/tgui_panel/audio.html b/code/modules/tgui_panel/audio.html
new file mode 100644
index 000000000000..cf427224f5d0
--- /dev/null
+++ b/code/modules/tgui_panel/audio.html
@@ -0,0 +1,2 @@
+code/modules/tgui_panel/audio.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui_panel/audio.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui_panel/external.html b/code/modules/tgui_panel/external.html
new file mode 100644
index 000000000000..1ca7ff5527ca
--- /dev/null
+++ b/code/modules/tgui_panel/external.html
@@ -0,0 +1,2 @@
+code/modules/tgui_panel/external.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui_panel/external.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
\ No newline at end of file
diff --git a/code/modules/tgui_panel/telemetry.html b/code/modules/tgui_panel/telemetry.html
new file mode 100644
index 000000000000..7055d54ea1ba
--- /dev/null
+++ b/code/modules/tgui_panel/telemetry.html
@@ -0,0 +1,4 @@
+code/modules/tgui_panel/telemetry.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
code/modules/tgui_panel/telemetry.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
Maximum time allocated for sending a telemetry packet.
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.
\ No newline at end of file
diff --git a/code/modules/tgui_panel/tgui_panel.html b/code/modules/tgui_panel/tgui_panel.html
new file mode 100644
index 000000000000..d755d5e1cb84
--- /dev/null
+++ b/code/modules/tgui_panel/tgui_panel.html
@@ -0,0 +1,3 @@
+code/modules/tgui_panel/tgui_panel.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
code/modules/tgui_panel/tgui_panel.dm
Copyright (c) 2020 Aleksej Komarov
+SPDX-License-Identifier: MIT
tgui_panel datum
+Hosts tgchat and other nice features.
\ No newline at end of file
diff --git a/code/modules/unit_tests.html b/code/modules/unit_tests.html
new file mode 100644
index 000000000000..66327fde42e5
--- /dev/null
+++ b/code/modules/unit_tests.html
@@ -0,0 +1,45 @@
+code/modules/unit_tests/README.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
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 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).
+
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_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.
+
\ No newline at end of file
diff --git a/code/modules/unit_tests/_unit_tests.html b/code/modules/unit_tests/_unit_tests.html
new file mode 100644
index 000000000000..fbbbef19081e
--- /dev/null
+++ b/code/modules/unit_tests/_unit_tests.html
@@ -0,0 +1,11 @@
+code/modules/unit_tests/_unit_tests.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
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)
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.
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_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
\ No newline at end of file
diff --git a/code/modules/unit_tests/character_saving.html b/code/modules/unit_tests/character_saving.html
new file mode 100644
index 000000000000..0d981c31c5ea
--- /dev/null
+++ b/code/modules/unit_tests/character_saving.html
@@ -0,0 +1 @@
+code/modules/unit_tests/character_saving.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
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..058f49eb2c00
--- /dev/null
+++ b/code/modules/unit_tests/create_and_destroy.html
@@ -0,0 +1 @@
+code/modules/unit_tests/create_and_destroy.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Delete one of every type, sleep a while, then check to see if anything has gone fucky
\ No newline at end of file
diff --git a/code/modules/unit_tests/dynamic_ruleset_sanity.html b/code/modules/unit_tests/dynamic_ruleset_sanity.html
new file mode 100644
index 000000000000..0bf27d52c916
--- /dev/null
+++ b/code/modules/unit_tests/dynamic_ruleset_sanity.html
@@ -0,0 +1 @@
+code/modules/unit_tests/dynamic_ruleset_sanity.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Verifies that dynamic rulesets have unique antag_flag.
\ No newline at end of file
diff --git a/code/modules/unit_tests/spawn_mobs.html b/code/modules/unit_tests/spawn_mobs.html
new file mode 100644
index 000000000000..9b800db1b10e
--- /dev/null
+++ b/code/modules/unit_tests/spawn_mobs.html
@@ -0,0 +1 @@
+code/modules/unit_tests/spawn_mobs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Unit test that spawns all mobs that can be spawned by golden slimes
\ No newline at end of file
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..aeef644b99b0
--- /dev/null
+++ b/code/modules/unit_tests/tgui_create_message.html
@@ -0,0 +1 @@
+code/modules/unit_tests/tgui_create_message.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Test that TGUI_CREATE_MESSAGE is correctly implemented
\ No newline at end of file
diff --git a/code/modules/uplink/uplink_items.html b/code/modules/uplink/uplink_items.html
new file mode 100644
index 000000000000..dba4cd451f61
--- /dev/null
+++ b/code/modules/uplink/uplink_items.html
@@ -0,0 +1 @@
+code/modules/uplink/uplink_items.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/vehicles/mecha/_mecha.html b/code/modules/vehicles/mecha/_mecha.html
new file mode 100644
index 000000000000..d7dd8d047a3f
--- /dev/null
+++ b/code/modules/vehicles/mecha/_mecha.html
@@ -0,0 +1 @@
+code/modules/vehicles/mecha/_mecha.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/vehicles/mecha/combat/durand.html b/code/modules/vehicles/mecha/combat/durand.html
new file mode 100644
index 000000000000..98fed2234c57
--- /dev/null
+++ b/code/modules/vehicles/mecha/combat/durand.html
@@ -0,0 +1,6 @@
+code/modules/vehicles/mecha/combat/durand.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Shield processing
+*An object to take the hit for us when using the Durand's defense mode.
+It is spawned in during the durand's initilization, and always stays on the same tile.
+Normally invisible, until defense mode is actvated. When the durand detects an attack that should be blocked, the
+attack is passed to the shield. The shield takes the damage, uses it to calculate charge cost, and then sets its
+own integrity back to max. Shield is automatically dropped if we run out of power or the user gets out.
\ No newline at end of file
diff --git a/code/modules/vehicles/mecha/equipment/tools/medical_tools.html b/code/modules/vehicles/mecha/equipment/tools/medical_tools.html
new file mode 100644
index 000000000000..90fd7edcb8ee
--- /dev/null
+++ b/code/modules/vehicles/mecha/equipment/tools/medical_tools.html
@@ -0,0 +1 @@
+code/modules/vehicles/mecha/equipment/tools/medical_tools.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/vehicles/mecha/equipment/tools/other_tools.html b/code/modules/vehicles/mecha/equipment/tools/other_tools.html
new file mode 100644
index 000000000000..f4de80575191
--- /dev/null
+++ b/code/modules/vehicles/mecha/equipment/tools/other_tools.html
@@ -0,0 +1 @@
+code/modules/vehicles/mecha/equipment/tools/other_tools.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/vehicles/mecha/mecha_actions.html b/code/modules/vehicles/mecha/mecha_actions.html
new file mode 100644
index 000000000000..543530e51b7a
--- /dev/null
+++ b/code/modules/vehicles/mecha/mecha_actions.html
@@ -0,0 +1 @@
+code/modules/vehicles/mecha/mecha_actions.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/vehicles/mecha/mecha_construction_paths.html b/code/modules/vehicles/mecha/mecha_construction_paths.html
new file mode 100644
index 000000000000..00ca87acf8d4
--- /dev/null
+++ b/code/modules/vehicles/mecha/mecha_construction_paths.html
@@ -0,0 +1 @@
+code/modules/vehicles/mecha/mecha_construction_paths.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/vehicles/mecha/mecha_parts.html b/code/modules/vehicles/mecha/mecha_parts.html
new file mode 100644
index 000000000000..81bc16ccbca9
--- /dev/null
+++ b/code/modules/vehicles/mecha/mecha_parts.html
@@ -0,0 +1 @@
+code/modules/vehicles/mecha/mecha_parts.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/vehicles/mecha/mecha_wreckage.html b/code/modules/vehicles/mecha/mecha_wreckage.html
new file mode 100644
index 000000000000..5383dd3a4d80
--- /dev/null
+++ b/code/modules/vehicles/mecha/mecha_wreckage.html
@@ -0,0 +1 @@
+code/modules/vehicles/mecha/mecha_wreckage.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/code/modules/vending/_vending.html b/code/modules/vending/_vending.html
new file mode 100644
index 000000000000..a83e8be27618
--- /dev/null
+++ b/code/modules/vending/_vending.html
@@ -0,0 +1 @@
+code/modules/vending/_vending.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Captalism in the year 2525, everything in a vending machine, even love
\ No newline at end of file
diff --git a/code/world.html b/code/world.html
new file mode 100644
index 000000000000..287d96214bbd
--- /dev/null
+++ b/code/world.html
@@ -0,0 +1 @@
+code/world.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Two possibilities exist: either we are alone in the Universe or we are not. Both are equally terrifying. ~ Arthur C. Clarke
\ No newline at end of file
diff --git a/datum.html b/datum.html
new file mode 100644
index 000000000000..b2ca0dc8e129
--- /dev/null
+++ b/datum.html
@@ -0,0 +1,142 @@
+/datum - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
datum
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
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
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
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 an 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
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
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
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.
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
Lazy associated list in the structure of signals:proctype that are run when the datum receives that signal
status_traits
Status traits attached to this datum
tgui_shared_states
global
+
Associative list of JSON-encoded shared states that were set by
+tgui clients.
weak_reference
A weak reference to another datum
Proc Details
Destroy
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
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
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
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
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 recieve 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
/datum/target the target to move the components to
+
UnregisterSignal
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
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 an 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
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
+Will runtime if used on datums with an empty component list
+Use the SEND_SIGNAL define instead
deserialize_json
Deserializes from JSON. Does not parse type.
deserialize_list
Accepts a LIST from deserialize_datum. Should return src or another datum.
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.
+
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
serialize_json
Serializes into JSON. Does not encode type.
serialize_list
Return a LIST for serialize_datum to encode! Not the actual json!
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_fallback
public
+
Called on a UI when the UI crashed.
+
required payload list A list of the payload supposed to be set on the regular UI.
ui_host
private
+
The UI's host object (usually src_object).
+This allows modules/datums to have the UI attached to them,
+and be a part of another object.
ui_interact
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_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.
ui_update
public
+
Causes the UI to update to viewers on the next process.
+Better than calling SStgui.update if this is callable by the user,
+since it calls on process rather than instantly which handles spamming.
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
\ No newline at end of file
diff --git a/datum/SDQL2_query.html b/datum/SDQL2_query.html
new file mode 100644
index 000000000000..d02a51244e0e
--- /dev/null
+++ b/datum/SDQL2_query.html
@@ -0,0 +1,7 @@
+/datum/SDQL2_query - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Recursively prints out an object to text list for SDQL2 output to admins, with VV links and all.
+Recursion limit: 50
+Limit imposed by callers should be around 10000 objects
+Seriously, if you hit those limits, you're doing something wrong.
Proc Details
SDQL_print
Recursively prints out an object to text list for SDQL2 output to admins, with VV links and all.
+Recursion limit: 50
+Limit imposed by callers should be around 10000 objects
+Seriously, if you hit those limits, you're doing something wrong.
\ No newline at end of file
diff --git a/datum/abductor_gear.html b/datum/abductor_gear.html
new file mode 100644
index 000000000000..3910aeea73e3
--- /dev/null
+++ b/datum/abductor_gear.html
@@ -0,0 +1 @@
+/datum/abductor_gear - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/achievement_data.html b/datum/achievement_data.html
new file mode 100644
index 000000000000..8c52a0e06060
--- /dev/null
+++ b/datum/achievement_data.html
@@ -0,0 +1 @@
+/datum/achievement_data - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Unlocks an achievement of a specific type. achievement type is a typepath to the award, user is the mob getting the award, and value is an optional value to be used for defining a score to add to the leaderboard
Var Details
data
Up to date list of all achievements and their info.
initialized
Have we done our set-up yet?
original_cached_data
Original status of achievement.
owner_ckey
Ckey of this achievement data's owner
Proc Details
get_achievement_status
Getter for the status/score of an achievement
get_changed_data
Gets list of changed rows in MassInsert format
get_data
Updates local cache with db data for the given achievement type if it wasn't loaded yet.
reset
Resets an achievement to default values.
unlock
Unlocks an achievement of a specific type. achievement type is a typepath to the award, user is the mob getting the award, and value is an optional value to be used for defining a score to add to the leaderboard
\ No newline at end of file
diff --git a/datum/action.html b/datum/action.html
new file mode 100644
index 000000000000..176b7ae9f6dc
--- /dev/null
+++ b/datum/action.html
@@ -0,0 +1,16 @@
+/datum/action - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
This is the icon state state for the BACKGROUND underlay icon of the button
+(If set to ACTION_BUTTON_DEFAULT_BACKGROUND, uses the hud's default background)
This is who currently owns the action, and most often, this is who is using the action if it is triggered
+This can be the same as "target" but is not ALWAYS the same - this is set and unset with Grant() and Remove()
The target the action is attached to. If the target datum is deleted, the action is as well.
+Set in New() via the proc link_to(). PLEASE set a target if you're making an action
Signal proc that clears any references based on the owner or target deleting
+If the owner's deleted, we will simply remove from them, but if the target's deleted, we will self-delete
A general use signal proc that reacts to an event and updates JUST our button's status
Var Details
background_icon_state
This is the icon state state for the BACKGROUND underlay icon of the button
+(If set to ACTION_BUTTON_DEFAULT_BACKGROUND, uses the hud's default background)
button_icon
This is the file for the BACKGROUND underlay icon of the button
button_icon_state
This is the icon state for the icon that appears on the button
buttontooltipstyle
The style the button's tooltips appear to be
check_flags
Flags that will determine of the owner / user of the action can... use the action
default_button_position
Where any buttons we create should be by default. Accepts screen_loc and location defines
desc
The description of what the action does, shown in button tooltips
icon_icon
This is the file for the icon that appears on the button
name
The name of the action
owner
This is who currently owns the action, and most often, this is who is using the action if it is triggered
+This can be the same as "target" but is not ALWAYS the same - this is set and unset with Grant() and Remove()
target
The target the action is attached to. If the target datum is deleted, the action is as well.
+Set in New() via the proc link_to(). PLEASE set a target if you're making an action
transparent_when_unavailable
Whether the button becomes transparent when it can't be used, or just reddened
viewers
List of all mobs that are viewing our action button -> A unique movable for them to view.
Proc Details
GiveAction
Gives our action to the passed viewer.
+Puts our action in their actions list and shows them the button.
HideFrom
Removes our action from the passed viewer.
IsAvailable
Whether our action is currently available to use or not
+
+
silent - If false this is being called to check if we have any messages to show to the owner
+
ShowTo
Adds our action button to the screen of the passed viewer.
Trigger
Actually triggers the effects of the action.
+Called when the on-screen button is clicked, for example.
clear_ref
Signal proc that clears any references based on the owner or target deleting
+If the owner's deleted, we will simply remove from them, but if the target's deleted, we will self-delete
update_status_on_signal
A general use signal proc that reacts to an event and updates JUST our button's status
\ No newline at end of file
diff --git a/datum/action/cooldown.html b/datum/action/cooldown.html
new file mode 100644
index 000000000000..48c2dbed61f9
--- /dev/null
+++ b/datum/action/cooldown.html
@@ -0,0 +1 @@
+/datum/action/cooldown - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Starts a cooldown time for this ability only, will use default cooldown time if an override is not specified
Proc Details
Activate
To be implemented by subtypes
InterceptClickOn
Intercepts client owner clicks to activate the ability
PreActivate
For signal calling
StartCooldown
Starts a cooldown time to be shared with similar abilities, will use default cooldown time if an override is not specified
StartCooldownSelf
Starts a cooldown time for this ability only, will use default cooldown time if an override is not specified
\ No newline at end of file
diff --git a/datum/action/cooldown/bloodsucker.html b/datum/action/cooldown/bloodsucker.html
new file mode 100644
index 000000000000..f23da76a5f10
--- /dev/null
+++ b/datum/action/cooldown/bloodsucker.html
@@ -0,0 +1 @@
+/datum/action/cooldown/bloodsucker - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Cooldown you'll have to wait between each use, decreases depending on level.
Var Details
background_icon_state_off
Background icon when the Power is NOT active.
background_icon_state_on
Background icon when the Power is active.
cooldown_time
Cooldown you'll have to wait between each use, decreases depending on level.
\ No newline at end of file
diff --git a/datum/action/cooldown/bloodsucker/targeted/haste.html b/datum/action/cooldown/bloodsucker/targeted/haste.html
new file mode 100644
index 000000000000..e852f7720393
--- /dev/null
+++ b/datum/action/cooldown/bloodsucker/targeted/haste.html
@@ -0,0 +1 @@
+/datum/action/cooldown/bloodsucker/targeted/haste - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
If set, uses this speed in deciseconds instead of world.tick_lag
Var Details
speed_override
If set, uses this speed in deciseconds instead of world.tick_lag
\ No newline at end of file
diff --git a/datum/action/cooldown/riot.html b/datum/action/cooldown/riot.html
new file mode 100644
index 000000000000..cb2b67d3d2c7
--- /dev/null
+++ b/datum/action/cooldown/riot.html
@@ -0,0 +1 @@
+/datum/action/cooldown/riot - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
riot
This action checks all nearby mice, and converts them into hostile rats. If no mice are nearby, creates a new one.
Checks to see if there are any nearby mice. Does not count Rats.
Proc Details
Activate
Checks to see if there are any nearby mice. Does not count Rats.
\ No newline at end of file
diff --git a/datum/action/cooldown/spawn_induction_package.html b/datum/action/cooldown/spawn_induction_package.html
new file mode 100644
index 000000000000..a2b9cb47b77f
--- /dev/null
+++ b/datum/action/cooldown/spawn_induction_package.html
@@ -0,0 +1 @@
+/datum/action/cooldown/spawn_induction_package - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The family antagonist datum of the "owner" of this action.
Var Details
my_gang_datum
The family antagonist datum of the "owner" of this action.
\ No newline at end of file
diff --git a/datum/action/innate/ability/humanoid_customization.html b/datum/action/innate/ability/humanoid_customization.html
new file mode 100644
index 000000000000..8979231f9b35
--- /dev/null
+++ b/datum/action/innate/ability/humanoid_customization.html
@@ -0,0 +1,5 @@
+/datum/action/innate/ability/humanoid_customization - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
// NOTICE: This currently doens't support skin tone - if anyone wants to add this to non slimes, it's up to YOU to do this.
+/ (someone should also add genital color switching, more mutant color selection)
+maybe just make this entire thing tgui based. maybe.
Proc Details
change_form
// NOTICE: This currently doens't support skin tone - if anyone wants to add this to non slimes, it's up to YOU to do this.
+/ (someone should also add genital color switching, more mutant color selection)
+maybe just make this entire thing tgui based. maybe.
\ No newline at end of file
diff --git a/datum/action/innate/cult/blood_spell.html b/datum/action/innate/cult/blood_spell.html
new file mode 100644
index 000000000000..d208a9bb02a5
--- /dev/null
+++ b/datum/action/innate/cult/blood_spell.html
@@ -0,0 +1 @@
+/datum/action/innate/cult/blood_spell - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Have we already been positioned into our starting location?
Var Details
positioned
Have we already been positioned into our starting location?
\ No newline at end of file
diff --git a/datum/action/innate/rune_shatter.html b/datum/action/innate/rune_shatter.html
new file mode 100644
index 000000000000..cc92b4cf454b
--- /dev/null
+++ b/datum/action/innate/rune_shatter.html
@@ -0,0 +1 @@
+/datum/action/innate/rune_shatter - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/action/item_action/mod.html b/datum/action/item_action/mod.html
new file mode 100644
index 000000000000..dd8bc6b1a1e7
--- /dev/null
+++ b/datum/action/item_action/mod.html
@@ -0,0 +1 @@
+/datum/action/item_action/mod - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Whether this action is intended for the AI. Stuff breaks a lot if this is done differently.
Var Details
ai_action
Whether this action is intended for the AI. Stuff breaks a lot if this is done differently.
\ No newline at end of file
diff --git a/datum/action/item_action/stickmen.html b/datum/action/item_action/stickmen.html
new file mode 100644
index 000000000000..74348ebc68c0
--- /dev/null
+++ b/datum/action/item_action/stickmen.html
@@ -0,0 +1,7 @@
+/datum/action/item_action/stickmen - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Rallies your army of stickmen to whichever target the user is pointing.
+Should the user be on harm intent and the target be a living mob that's not the user or a fellow stickman,
+said target will be added to a list of foes which the stickmen will gladly dispose regardless of faction.
+This is designed so stickmen will move toward whatever you point at even when you don't want to, that's the downside.
Proc Details
rally
Rallies your army of stickmen to whichever target the user is pointing.
+Should the user be on harm intent and the target be a living mob that's not the user or a fellow stickman,
+said target will be added to a list of foes which the stickmen will gladly dispose regardless of faction.
+This is designed so stickmen will move toward whatever you point at even when you don't want to, that's the downside.
\ No newline at end of file
diff --git a/datum/action/vehicle/ridden/scooter/skateboard/ollie.html b/datum/action/vehicle/ridden/scooter/skateboard/ollie.html
new file mode 100644
index 000000000000..7d397478a283
--- /dev/null
+++ b/datum/action/vehicle/ridden/scooter/skateboard/ollie.html
@@ -0,0 +1 @@
+/datum/action/vehicle/ridden/scooter/skateboard/ollie - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/action/vehicle/sealed/mecha/ivanov_strike.html b/datum/action/vehicle/sealed/mecha/ivanov_strike.html
new file mode 100644
index 000000000000..f6055b97fd59
--- /dev/null
+++ b/datum/action/vehicle/sealed/mecha/ivanov_strike.html
@@ -0,0 +1,12 @@
+/datum/action/vehicle/sealed/mecha/ivanov_strike - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Called via intercepted clicks when the missile ability is active
+Spawns a droppod and starts the cooldown of the missile strike ability
+arguments:
+
+
target_turf: turf of the atom that was clicked on
+
end_missile_targeting
end_missile_targeting
+
Called by the ivanov strike datum action or other actions that would end targetting
+Unhooks signals into clicking to call drop_missile plus other flavor like the overlay
on_equipment_click
signal called from clicking with equipment
on_melee_click
signal called from clicking with no equipment
reset_button_icon
reset_button_icon
+
called after an addtimer when the cooldown is finished with the ivanov strike, resets the icon
start_missile_targeting
start_missile_targeting
+
Called by the ivanov strike datum action, hooks signals into clicking to call drop_missile
+Plus other flavor like the overlay
\ No newline at end of file
diff --git a/datum/action/vehicle/sealed/mecha/skyfall.html b/datum/action/vehicle/sealed/mecha/skyfall.html
new file mode 100644
index 000000000000..7b517c0eb052
--- /dev/null
+++ b/datum/action/vehicle/sealed/mecha/skyfall.html
@@ -0,0 +1,10 @@
+/datum/action/vehicle/sealed/mecha/skyfall - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
skyfall builds up in charges every 2 seconds, when it reaches 5 charges the ability actually starts
skyfall_cooldown_time
cooldown time between skyfall uses
Proc Details
abort_skyfall
abort_skyfall
+
Called by skyfall_charge_loop if the charging is interrupted.
+Applies cooldown and resets charge level
begin_landing
begin_landing
+
Called by skyfall_charge_loop after some time if it reaches full charge level.
+it's just the animations of the mecha coming down + another timer for the final landing effect
land
land
+
Called by skyfall_charge_loop after some time if it reaches full charge level.
+it's just the animations of the mecha coming down + another timer for the final landing effect
reset_button_icon
reset_button_icon
+
called after an addtimer when the cooldown is finished with the skyfall, resets the icon
skyfall_charge_loop
skyfall_charge_loop
+
The actual skyfall loop itself. Repeatedly calls itself after a do_after, so any interruptions will call abort_skyfall and end the loop
+the other way the loop ends is if charge level (var it's ticking up) gets to SKYFALL_CHARGELEVEL_LAUNCH, in which case it ends the loop and does the ability.
\ No newline at end of file
diff --git a/datum/action_group.html b/datum/action_group.html
new file mode 100644
index 000000000000..d6c920507af7
--- /dev/null
+++ b/datum/action_group.html
@@ -0,0 +1,7 @@
+/datum/action_group - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Returns the amount of objects we're storing at the moment
Var Details
actions
The actions we're managing
column_max
Max amount of buttons we can have per row
+Indexes at 1
landing
Our landing screen object
location
The screen location we go by
max_rows
How many rows of actions we can have at max before we just stop hiding
+Indexes at 1
north_offset
The initial vertical offset of our action buttons
owner
The hud we're owned by
pixel_north_offset
The pixel vertical offset of our action buttons
row_offset
How far "ahead" of the first row we start. Lets us "scroll" our rows
+Indexes at 1
Proc Details
ButtonNumberToScreenCoords
Accepts a number represeting our position in the group, indexes at 0 to make the math nicer
clear_landing
Clears any landing objects we may currently have
generate_landing
Generates a landing object that can be dropped on to join this group
size
Returns the amount of objects we're storing at the moment
\ No newline at end of file
diff --git a/datum/actionspeed_modifier.html b/datum/actionspeed_modifier.html
new file mode 100644
index 000000000000..2ae1bfe86167
--- /dev/null
+++ b/datum/actionspeed_modifier.html
@@ -0,0 +1 @@
+/datum/actionspeed_modifier - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Unique ID. You can never have different modifications with the same ID. By default, this SHOULD NOT be set. Only set it for cases where you're dynamically making modifiers/need to have two types overwrite each other. If unset, uses path (converted to text) as ID.
Higher ones override lower priorities. This is NOT used for ID, ID must be unique, if it isn't unique the newer one overwrites automatically if overriding.
Whether or not this is a variable modifier. Variable modifiers can NOT be ever auto-cached. ONLY CHECKED VIA INITIAL(), EFFECTIVELY READ ONLY (and for very good reason)
Var Details
conflicts_with
Other modification datums this conflicts with.
id
Unique ID. You can never have different modifications with the same ID. By default, this SHOULD NOT be set. Only set it for cases where you're dynamically making modifiers/need to have two types overwrite each other. If unset, uses path (converted to text) as ID.
multiplicative_slowdown
Multiplicative slowdown
priority
Higher ones override lower priorities. This is NOT used for ID, ID must be unique, if it isn't unique the newer one overwrites automatically if overriding.
variable
Whether or not this is a variable modifier. Variable modifiers can NOT be ever auto-cached. ONLY CHECKED VIA INITIAL(), EFFECTIVELY READ ONLY (and for very good reason)
\ No newline at end of file
diff --git a/datum/admin_help.html b/datum/admin_help.html
new file mode 100644
index 000000000000..2f66f19075e0
--- /dev/null
+++ b/datum/admin_help.html
@@ -0,0 +1 @@
+/datum/admin_help - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/admins.html b/datum/admins.html
new file mode 100644
index 000000000000..3f0829235bf8
--- /dev/null
+++ b/datum/admins.html
@@ -0,0 +1,10 @@
+/datum/admins - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
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
+
restart
admins2.dm merge
show_player_panel
Panels
spawn_atom
ADMIN HELPER PROCS
station_traits_panel
Opens the station traits admin panel
\ No newline at end of file
diff --git a/datum/ai_laws.html b/datum/ai_laws.html
new file mode 100644
index 000000000000..167f2bdef5b3
--- /dev/null
+++ b/datum/ai_laws.html
@@ -0,0 +1,7 @@
+/datum/ai_laws - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Generates a list of all laws on this datum, including rendered HTML tags if required
Proc Details
get_law_list
Generates a list of all laws on this datum, including rendered HTML tags if required
+
Arguments:
+
+
include_zeroth - Operator that controls if law 0 or law 666 is returned in the set
+
show_numbers - Operator that controls if law numbers are prepended to the returned laws
+
render_html - Operator controlling if HTML tags are rendered on the returned laws
+
\ No newline at end of file
diff --git a/datum/alarm_handler.html b/datum/alarm_handler.html
new file mode 100644
index 000000000000..7d07683f2d6e
--- /dev/null
+++ b/datum/alarm_handler.html
@@ -0,0 +1,5 @@
+/datum/alarm_handler - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
alarm_handler
Represents a single source of alarms, one alarm handler will only ever count for one alarm per listener
Sends an alarm to any interested things, does some checks to prevent unneeded work
+Important to note is that source_atom is not held as a ref, we're used as a proxy to prevent hard deletes
+optional_camera should only be used when you have one camera you want to pass along to alarm listeners, most of the time you should have no use for it
Var Details
sent_alarms
A list of alarm type -> list of areas we currently have alarms in
source_atom
Our source atom
Proc Details
clear_alarm
Clears an alarm from any interested listeners
clear_alarm_from_area
Exists so we can request that the alarms from an area are cleared, even if our source atom is no longer in that area
send_alarm
Sends an alarm to any interested things, does some checks to prevent unneeded work
+Important to note is that source_atom is not held as a ref, we're used as a proxy to prevent hard deletes
+optional_camera should only be used when you have one camera you want to pass along to alarm listeners, most of the time you should have no use for it
\ No newline at end of file
diff --git a/datum/alarm_listener.html b/datum/alarm_listener.html
new file mode 100644
index 000000000000..437a546ced10
--- /dev/null
+++ b/datum/alarm_listener.html
@@ -0,0 +1,5 @@
+/datum/alarm_listener - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Adds an alarm to our alarms list, you shouldn't be calling this manually
+It should all be handled by the signal listening we do, unless you want to only send an alarm to one listener
Removes an alarm to our alarms list, you probably shouldn't be calling this manually
+It should all be handled by the signal listening we do, unless you want to only remove an alarm to one listener
Does what it says on the tin, exists for signal hooking
Var Details
accepting_alarm_changes
Should we allow alarm changes to go through or not
alarms
List of alarm type -> list of area name -> list(area, ref to area's cameras, list(sources))
allowed_areas
List of allowed areas. if this is null it's ignored
allowed_z_levels
List of valid source z levels, ignored if null
Proc Details
New
Accepts a list of alarm types to pay attention to, a list of valid z levels, and a list of valid areas. areas and zlevels are ignored if null
add_alarm
Adds an alarm to our alarms list, you shouldn't be calling this manually
+It should all be handled by the signal listening we do, unless you want to only send an alarm to one listener
allow_alarm_changes
Does what it says on the tin, exists for signal hooking
clear_alarm
Removes an alarm to our alarms list, you probably shouldn't be calling this manually
+It should all be handled by the signal listening we do, unless you want to only remove an alarm to one listener
clear_camera_ref
Used to manually clear camera refs if one is ref'd directly
prevent_alarm_changes
Does what it says on the tin, exists for signal hooking
\ No newline at end of file
diff --git a/datum/antagonist.html b/datum/antagonist.html
new file mode 100644
index 000000000000..4e21f603e541
--- /dev/null
+++ b/datum/antagonist.html
@@ -0,0 +1,32 @@
+/datum/antagonist - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
String dialogue that is added to the player's in-round notes and memories regarding specifics of that antagonist, eg. the nuke code for nuke ops, or your unlock code for traitors.
This will hide adding this antag type in antag panel, use only for internal subtypes that shouldn't be added directly but still show if possessed by mind
Proc that sends fluff or instructional messages to the player when they lose this antag datum.
+Use this proc for playing sounds, sending alerts, or otherwise informing the player that they're no longer a specific antagonist type.
Given an icon, will crop it to be consistent of those in the preferences menu.
+Not necessary, and in fact will look bad if it's anything other than a human.
Proc that will return the team this antagonist belongs to, when called. Helpful with antagonists that may belong to multiple potential teams in a single round, like families.
Proc that sends fluff or instructional messages to the player when they are given this antag datum.
+Use this proc for playing sounds, sending alerts, or helping to setup non-gameplay influencing aspects of the antagonist type.
Gets how fast we can hijack the shuttle, return FALSE for can not hijack.
+Defaults to hijack_speed var, override for custom stuff like buffing hijack speed for hijack objectives or something.
Called by the transfer_to() mind proc after the mind (mind.current and new_character.mind) has moved but before the player (key and client) is transfered.
Creates an icon from the preview outfit.
+Custom implementors of get_preview_icon should use this, as the
+result of get_preview_icon is expected to be the completed version.
Proc that sends string information for the end-round report window to the server.
+This runs on every instance of every antagonist that exists at the end of the round.
+This is the body of the message, sandwiched between roundend_report_header and roundend_report_footer.
Proc that sends string data for the round-end report.
+Displayed after roundend_report and roundend_report_footer.
+Appears at the end of the roundend_catagory section.
Proc that sends string data for the round-end report.
+Displayed before roundend_report and roundend_report_footer.
+Appears at start of roundend_catagory section.
What is the configuration of this antagonist's hud icon, such as it's screen position and style, so thatit doesn't break other in-game hud icons.
antag_memory
String dialogue that is added to the player's in-round notes and memories regarding specifics of that antagonist, eg. the nuke code for nuke ops, or your unlock code for traitors.
antag_moodlet
typepath of moodlet that the mob will gain when granted this antagonist type.
antagpanel_category
Antagpanel will display these together, REQUIRED
blacklisted_quirks
Quirks that will be removed upon gaining this antag. Pacifist and mute are default.
can_coexist_with_others
Whether or not the person will be able to have more than one datum
hijack_speed
If above 0, this is the multiplier for the speed at which we hijack the shuttle. Do not directly read, use hijack_speed().
info_button
button to access antag interface
job_rank
The define string we use to identify the role for bans/player polls to spawn a random new one in.
name
Public name for this antagonist. Appears for player prompts and round-end reports.
objectives
List of the objective datums that this role currently has, completing all objectives at round-end will cause this antagonist to greentext.
owner
Mind that owns this datum
prevent_roundtype_conversion
If false, the roundtype will still convert with this antag active
preview_outfit
The typepath for the outfit to show in the preview for the preferences menu.
replace_banned
Should replace jobbanned player with ghosts if granted.
requested_objective_changes
Lazy list for antagonists to request the admins objectives.
roundend_category
Section of roundend report, datums with same category will be displayed together, also default header for the section
show_in_antagpanel
This will hide adding this antag type in antag panel, use only for internal subtypes that shouldn't be added directly but still show if possessed by mind
show_in_roundend
Set to false to hide the antagonists from roundend report
show_name_in_check_antagonists
Will append antagonist name in admin listings - use for categories that share more than one antag type
show_to_ghosts
Should this antagonist be shown as antag to ghosts? Shouldn't be used for stealthy antagonists like traitors
silent
Silent will prevent the gain/lose texts to show
soft_antag
If set to true, the antag will not be added to the living antag list.
suicide_cry
The battlecry this antagonist shouts when suiciding with C4/X4.
threat
Amount of threat this antag poses, for dynamic mode
typecache_datum_blacklist
List of datums this type can't coexist with
ui_name
name of the UI that will try to open, right now having nothing means this won't exist but in the future all should.
Proc Details
antag_panel_data
Additional data to display in the antagonist panel section.
+For example, nuke disk code, genome count, etc
clean_request_from_del_objective
Clears change requests from deleted objectives to avoid broken references.
clear_antag_moodies
Proc that removes this antagonist's ascribed moodlet from the player.
farewell
Proc that sends fluff or instructional messages to the player when they lose this antag datum.
+Use this proc for playing sounds, sending alerts, or otherwise informing the player that they're no longer a specific antagonist type.
finish_preview_icon
Given an icon, will crop it to be consistent of those in the preferences menu.
+Not necessary, and in fact will look bad if it's anything other than a human.
get_admin_commands
List of ["Command"] = CALLBACK(), user will be appeneded to callback arguments on execution
get_objectives
generic helper to send objectives as data through tgui. supports smart objectives too!
get_preview_icon
Returns the icon to show on the preferences menu.
get_team
Proc that will return the team this antagonist belongs to, when called. Helpful with antagonists that may belong to multiple potential teams in a single round, like families.
give_antag_moodies
Proc that assigns this antagonist's ascribed moodlet to the player.
greet
Proc that sends fluff or instructional messages to the player when they are given this antag datum.
+Use this proc for playing sounds, sending alerts, or helping to setup non-gameplay influencing aspects of the antagonist type.
handle_clown_mutation
Handles adding and removing the clumsy mutation from clown antags. Gets called in apply/remove_innate_effects
hijack_speed
Gets how fast we can hijack the shuttle, return FALSE for can not hijack.
+Defaults to hijack_speed var, override for custom stuff like buffing hijack speed for hijack objectives or something.
is_banned
Proc that checks the sent mob aganst the banlistfor this antagonist.
+Returns FALSE if no mob is sent, or the mob is not found to be banned.
+
+
mob/M: The mob that you are looking for on the banlist.
+
on_body_transfer
Called by the transfer_to() mind proc after the mind (mind.current and new_character.mind) has moved but before the player (key and client) is transfered.
on_gain
Called by the add_antag_datum() mind proc after the instanced datum is added to the mind's antag_datums list.
on_mindshield
This is called when the antagonist is successfully mindshielded.
on_removal
Called by the remove_antag_datum() and remove_all_antag_datums() mind procs for the antag datum to handle its own removal and deletion.
pre_mindshield
This is called when the antagonist is being mindshielded.
remove_blacklisted_quirks
Removes invalid quirks.
render_preview_outfit
Creates an icon from the preview outfit.
+Custom implementors of get_preview_icon should use this, as the
+result of get_preview_icon is expected to be the completed version.
replace_banned_player
Proc that replaces a player who cannot play a specific antagonist due to being banned via a poll, and alerts the player of their being on the banlist.
roundend_report
Proc that sends string information for the end-round report window to the server.
+This runs on every instance of every antagonist that exists at the end of the round.
+This is the body of the message, sandwiched between roundend_report_header and roundend_report_footer.
roundend_report_footer
Proc that sends string data for the round-end report.
+Displayed after roundend_report and roundend_report_footer.
+Appears at the end of the roundend_catagory section.
roundend_report_header
Proc that sends string data for the round-end report.
+Displayed before roundend_report and roundend_report_footer.
+Appears at start of roundend_catagory section.
threat
Gets our threat level. Override this proc for custom functionality/dynamic threat level.
ui_interact
ANTAGONIST UI STUFF
\ No newline at end of file
diff --git a/datum/antagonist/changeling.html b/datum/antagonist/changeling.html
new file mode 100644
index 000000000000..ab2cfefb26e6
--- /dev/null
+++ b/datum/antagonist/changeling.html
@@ -0,0 +1,5 @@
+/datum/antagonist/changeling - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Gives a changeling a list of all possible dnas in their profiles to choose from and returns profile containing their chosen dna
Var Details
hostile_absorbed
did we get succed by another changeling
Proc Details
check_menu
Checks if we are allowed to interact with a radial menu
+
Arguments:
+
+
user The carbon mob interacting with the menu
+
select_dna
Gives a changeling a list of all possible dnas in their profiles to choose from and returns profile containing their chosen dna
\ No newline at end of file
diff --git a/datum/antagonist/gang.html b/datum/antagonist/gang.html
new file mode 100644
index 000000000000..5bc07366e9b7
--- /dev/null
+++ b/datum/antagonist/gang.html
@@ -0,0 +1 @@
+/datum/antagonist/gang - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
A reference to the handler datum that manages the families gamemode. In case of no handler (admin-spawned during round), this will be null; this is fine.
Gives a gangster their equipment in their backpack and / or pockets.
Var Details
acceptable_clothes
The list of clothes that are acceptable to show allegiance to this family.
free_clothes
The list of clothes that are given to family members upon induction into the family.
gang_id
The abbreviation of the family corresponding to this family member datum.
gang_name
The name of the family corresponding to this family member datum.
gang_team_type
Type of team to create when creating the gang in the first place. Used for renames.
handler
A reference to the handler datum that manages the families gamemode. In case of no handler (admin-spawned during round), this will be null; this is fine.
my_gang
The overarching family that the owner of this datum is a part of. Family teams are generic and imprinted upon by the per-person antagonist datums.
original_name
The gangster's original real name. Used for renaming stuff, kept between gang switches.
package_spawner
The action used to spawn family induction packages.
starter_gangster
Whether or not this family member is the first of their family.
Proc Details
equip_gangster_in_inventory
Gives a gangster their equipment in their backpack and / or pockets.
\ No newline at end of file
diff --git a/datum/antagonist/heretic.html b/datum/antagonist/heretic.html
new file mode 100644
index 000000000000..9c7e3b73a4c5
--- /dev/null
+++ b/datum/antagonist/heretic.html
@@ -0,0 +1 @@
+/datum/antagonist/heretic - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
What happens to the heretic once he dies, used to remove any custom perks
Proc Details
on_death
What happens to the heretic once he dies, used to remove any custom perks
\ No newline at end of file
diff --git a/datum/antagonist/ninja.html b/datum/antagonist/ninja.html
new file mode 100644
index 000000000000..051184f83910
--- /dev/null
+++ b/datum/antagonist/ninja.html
@@ -0,0 +1,9 @@
+/datum/antagonist/ninja - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Proc that equips the space ninja outfit on a given individual. By default this is the owner of the antagonist datum.
Var Details
give_equipment
Whether or not this ninja receives the standard equipment
give_objectives
Whether or not this ninja will obtain objectives
Proc Details
addMemories
Proc that adds the proper memories to the antag datum
+
Proc that adds the ninja starting memories to the owner of the antagonist datum.
addObjectives
Proc that adds all the ninja's objectives to the antag datum.
+
Proc that adds all the ninja's objectives to the antag datum. Called when the datum is gained.
equip_space_ninja
Proc that equips the space ninja outfit on a given individual. By default this is the owner of the antagonist datum.
+
Proc that equips the space ninja outfit on a given individual. By default this is the owner of the antagonist datum.
+Arguments:
+
+
ninja - The human to receive the gear
+
Returns a proc call on the given human which will equip them with all the gear.
+
\ No newline at end of file
diff --git a/datum/antagonist/rev.html b/datum/antagonist/rev.html
new file mode 100644
index 000000000000..594e1d73e7cb
--- /dev/null
+++ b/datum/antagonist/rev.html
@@ -0,0 +1 @@
+/datum/antagonist/rev - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Checks if the revolution succeeded, and lets them know.
Var Details
deconversion_reason
when this antagonist is being de-antagged, this is why
victory_message
What message should the player receive when they are being demoted, and the revolution has won?
Proc Details
announce_victorious
Checks if the revolution succeeded, and lets them know.
\ No newline at end of file
diff --git a/datum/antagonist/traitor.html b/datum/antagonist/traitor.html
new file mode 100644
index 000000000000..b0941492fe42
--- /dev/null
+++ b/datum/antagonist/traitor.html
@@ -0,0 +1 @@
+/datum/antagonist/traitor - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Outputs this shift's codewords and responses to the antag's chat and copies them to their memory.
Var Details
traitor_kind
special datum about what kind of employer the trator has
uplink
reference to the uplink this traitor was given, if they were.
Proc Details
contractor_round_end
Proc detailing contract kit buys/completed contracts/additional info
forge_traitor_objectives
Generates a complete set of traitor objectives up to the traitor objective limit, including non-generic objectives such as martyr and hijack.
give_codewords
Outputs this shift's codewords and responses to the antag's chat and copies them to their memory.
\ No newline at end of file
diff --git a/datum/antagonist/traitor/contractor_support.html b/datum/antagonist/traitor/contractor_support.html
new file mode 100644
index 000000000000..85a82e7cccef
--- /dev/null
+++ b/datum/antagonist/traitor/contractor_support.html
@@ -0,0 +1 @@
+/datum/antagonist/traitor/contractor_support - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
contractor_support
Support unit gets it's own very basic antag datum for admin logging.
We're already adding them in to the contractor's roundend.
should_equip
Not a proper/full antag.
show_in_antagpanel
We give them their own custom objective.
\ No newline at end of file
diff --git a/datum/asset.html b/datum/asset.html
new file mode 100644
index 000000000000..592c142f2ff9
--- /dev/null
+++ b/datum/asset.html
@@ -0,0 +1 @@
+/datum/asset - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/asset/simple.html b/datum/asset/simple.html
new file mode 100644
index 000000000000..6b141bb8caf3
--- /dev/null
+++ b/datum/asset/simple.html
@@ -0,0 +1,7 @@
+/datum/asset/simple - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
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?
\ No newline at end of file
diff --git a/datum/asset/simple/namespaced.html b/datum/asset/simple/namespaced.html
new file mode 100644
index 000000000000..63464eb56cf8
--- /dev/null
+++ b/datum/asset/simple/namespaced.html
@@ -0,0 +1,9 @@
+/datum/asset/simple/namespaced - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
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)
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.
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
Get a html string that will load a html asset.
+Needed because byond doesn't allow you to browse() to a url.
\ No newline at end of file
diff --git a/datum/asset/spritesheet.html b/datum/asset/spritesheet.html
new file mode 100644
index 000000000000..75be41e1d296
--- /dev/null
+++ b/datum/asset/spritesheet.html
@@ -0,0 +1,9 @@
+/datum/asset/spritesheet - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Returns the size class (ex design32x32) for a given sprite's icon
Proc Details
ModifyInserted
A simple proc handing the Icon for you to modify before it gets turned into an asset.
+
Arguments:
+
+
I: icon being turned into an asset
+
icon_size_id
Returns the size class (ex design32x32) for a given sprite's icon
+
Arguments:
+
+
sprite_name - The sprite to get the size of
+
\ No newline at end of file
diff --git a/datum/asset/spritesheet/decals.html b/datum/asset/spritesheet/decals.html
new file mode 100644
index 000000000000..457698dbd1cc
--- /dev/null
+++ b/datum/asset/spritesheet/decals.html
@@ -0,0 +1,11 @@
+/datum/asset/spritesheet/decals - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
The associated decal painter type to grab decals, colors, etc from.
preview_floor_icon
The floor icon used for blend_preview_floor()
preview_floor_state
The floor icon state used for blend_preview_floor()
Proc Details
blend_preview_floor
Underlay an example floor for preview purposes, and return the new icon.
+
Arguments:
+
+
decal - the decal to place over the example floor tile
+
insert_state
Insert a specific state into the spritesheet.
+
Arguments:
+
+
decal - the given decal base state.
+
dir - the given direction.
+
color - the given color.
+
\ No newline at end of file
diff --git a/datum/asset_cache_item.html b/datum/asset_cache_item.html
new file mode 100644
index 000000000000..5fb1cbcb2005
--- /dev/null
+++ b/datum/asset_cache_item.html
@@ -0,0 +1,9 @@
+/datum/asset_cache_item - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
asset_cache_item
An internal datum containing info on items in the asset cache. Mainly used to cache md5 info for speed.
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)
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
\ No newline at end of file
diff --git a/datum/asset_transport.html b/datum/asset_transport.html
new file mode 100644
index 000000000000..70be46efd235
--- /dev/null
+++ b/datum/asset_transport.html
@@ -0,0 +1,25 @@
+/datum/asset_transport - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
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.
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 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
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.
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
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
\ No newline at end of file
diff --git a/datum/asset_transport/webroot.html b/datum/asset_transport/webroot.html
new file mode 100644
index 000000000000..846e017247eb
--- /dev/null
+++ b/datum/asset_transport/webroot.html
@@ -0,0 +1,11 @@
+/datum/asset_transport/webroot - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
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 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.
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.
\ No newline at end of file
diff --git a/datum/award.html b/datum/award.html
new file mode 100644
index 000000000000..427a1c0cbc05
--- /dev/null
+++ b/datum/award.html
@@ -0,0 +1 @@
+/datum/award - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Name of the achievement, If null it won't show up in the achievement browser. (Handy for inheritance trees)
Proc Details
get_changed_rows
This saves the changed data to the hub.
get_raw_value
Get raw numerical achievement value from the database
load
This proc loads the achievement data from the hub.
on_unlock
Can be overriden for achievement specific events
\ No newline at end of file
diff --git a/datum/bank_account.html b/datum/bank_account.html
new file mode 100644
index 000000000000..8adf80019d96
--- /dev/null
+++ b/datum/bank_account.html
@@ -0,0 +1 @@
+/datum/bank_account - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Performs house-cleaning on variables when a civilian bounty is replaced, or, when a bounty is claimed.
Proc Details
bounty_num
Returns the required item count, or required chemical units required to submit a bounty.
bounty_text
Returns a string with the civilian bounty's description on it.
bounty_value
Produces the value of the account's civilian bounty reward, if able.
reset_bounty
Performs house-cleaning on variables when a civilian bounty is replaced, or, when a bounty is claimed.
\ No newline at end of file
diff --git a/datum/biome.html b/datum/biome.html
new file mode 100644
index 000000000000..0406ecaac876
--- /dev/null
+++ b/datum/biome.html
@@ -0,0 +1 @@
+/datum/biome - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
biome
This datum handles the transitioning from a turf to a specific biome, and handles spawning decorative structures and mobs.
This proc handles the creation of a turf of a specific biome type
Var Details
fauna_density
Chance of having a mob from the fauna types list spawn
fauna_types
list of type paths of mobs that can be spawned when the turf spawns fauna
flora_density
Chance of having a structure from the flora types list spawn
flora_types
list of type paths of objects that can be spawned when the turf spawns flora
turf_type
Type of turf this biome creates
Proc Details
generate_turf
This proc handles the creation of a turf of a specific biome type
\ No newline at end of file
diff --git a/datum/bitfield.html b/datum/bitfield.html
new file mode 100644
index 000000000000..3b1c098f606f
--- /dev/null
+++ b/datum/bitfield.html
@@ -0,0 +1 @@
+/datum/bitfield - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
An associative list of the readable flag and its true value
variable
The variable name that contains the bitfield
\ No newline at end of file
diff --git a/datum/block_parry_data.html b/datum/block_parry_data.html
new file mode 100644
index 000000000000..9e89a4ca15cf
--- /dev/null
+++ b/datum/block_parry_data.html
@@ -0,0 +1,20 @@
+/datum/block_parry_data - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
block_parry_data
Carries data like list data that would be a waste of memory if we initialized the list on every /item as we can cache datums easier.
Default damage-to-stamina coefficient, higher is better. This is based on amount of damage BLOCKED, not initial damage, to prevent damage from "double dipping".
//////// BLOCKING ////////////
+NOTE: FOR ATTACK_TYPE_DEFINE, you MUST wrap it in "[DEFINE_HERE]"! The defines are bitflags, and therefore, NUMBERS!
+See defines. Point of reference is someone facing north.
//////// PARRYING ////////////
+Priority for mob/do_run_block() while we're being used to parry.
+Parry doesn't work if you aren't able to otherwise attack due to clickdelay
Generates a HTML render of this datum for self-documentation
+Maybe make this tgui-next someday haha god this is ugly as sin.
+Does NOT include the popout or title or anything. Just the variables and explanations..
Var Details
autoparry_cooldown_absolute
Hard autoparry cooldown
autoparry_mouse_delay_maximum
ADVANCED - Autoparry requirement for time since last moused over for a specific object
autoparry_sequence_simulation
Autoparry : Simulate a parry sequence starting at a certain tick, or simply simulate a single attack parry?
autoparry_sequence_start_time
Decisecond of sequence to start on. -1 to start to 0th tick of active parry window.
autoparry_single_efficiency
Single attack autoparry - efficiency
autoparry_single_efficiency_override
Single attack autoparry - efficiency overrides by attack type, see above
block_active_priority
The priority we get in mob/do_run_block() while we're being used to parry.
block_automatic_directions
Directions that you can autoblock in. Null to default to normal directions.
block_automatic_enabled
Can this item automatically block?
block_automatic_mitigation_multiplier
Effectiveness multiplier for automated block. Only applies to efficiency, absorption and limits stay the same!
block_automatic_stamina_multiplier
Stamina cost multiplier for automated block
block_damage_absorption
Amount of "free" damage blocking absorbs
block_damage_absorption_override
Override absorption, list("[ATTACK_TYPE_DEFINE]" = absorption), see [block_damage_absorption]
block_damage_limit
Upper bound of damage block, anything above this will go right through.
block_damage_limit_override
Override upper bound of damage block, list("[ATTACK_TYPE_DEFINE]" = absorption), see [block_damage_limit]
block_damage_multiplier
Ratio of damage to allow through above absorption and below limit. Multiplied by damage to determine how much to let through. Lower is better.
block_damage_multiplier_override
Override damage overrun efficiency, list("[ATTACK_TYPE_DEFINE]" = absorption), see [block_damage_efficiency]
block_end_click_cd_add
Clickdelay added to user after block ends
block_lock_attacking
Disallow attacking during block
block_lock_sprinting
Disallow sprinting during block
block_no_stambuffer_regeneration
Prevent stamina buffer regeneration while block?
block_no_stamina_regeneration
Prevent stamina regeneration while block?
block_projectile_mitigation
The blocked variable of on_hit() on projectiles is impacted by this. Higher is better, 0 to 100, percentage.
block_resting_attack_types_anydir
Bitfield for attack types that we can block while down. This will work in any direction.
block_resting_attack_types_directional
Bitfield for attack types that we can block while down but only in our normal directions.
block_resting_stamina_penalty_multiplier
Multiplier to stamina damage taken for attacks blocked while downed.
block_resting_stamina_penalty_multiplier_override
Override list for multiplier to stamina damage taken for attacks blocked while down. list("[ATTACK_TYPE_DEFINE]" = multiplier_number)
block_slowdown
Our slowdown added while blocking
block_sounds
Sounds for blocking
block_stamina_buffer_ratio
Ratio of stamina incurred by chest (so after [block_stamina_limb_ratio] runs) that is buffered.
block_stamina_cost_per_second
Stamina dealt directly via UseStaminaBuffer() per SECOND of block.
block_stamina_efficiency
Default damage-to-stamina coefficient, higher is better. This is based on amount of damage BLOCKED, not initial damage, to prevent damage from "double dipping".
block_stamina_efficiency_override
Override damage-to-stamina coefficient, see [block_efficiency], this should be list("[ATTACK_TYPE_DEFINE]" = coefficient_number)
block_stamina_limb_ratio
Ratio of stamina incurred by blocking that goes to the arm holding the object instead of the chest. Has no effect if this is not held in hand.
block_start_delay
Windup before we have our blocking active.
can_block_attack_types
Attacks we can block
can_block_directions
//////// BLOCKING ////////////
+NOTE: FOR ATTACK_TYPE_DEFINE, you MUST wrap it in "[DEFINE_HERE]"! The defines are bitflags, and therefore, NUMBERS!
+See defines. Point of reference is someone facing north.
parry_allow_repeated_counterattacks
Allow multiple counterattacks per parry sequence. Bad idea.
parry_attack_types
Attack types we can block
parry_automatic_enabled
Can this data automatically parry? This is off by default because this is something that requires thought to balance.
parry_cooldown
Parrying cooldown, separate of clickdelay. It must be this much deciseconds since their last parry for them to parry with this object.
parry_data
Parry effect data.
parry_effect_icon_state
Visual icon state override for parrying
parry_efficiency_considered_successful
Efficiency must be at least this to be considered successful
parry_efficiency_perfect
Efficiency in percent on perfect parry.
parry_efficiency_perfect_override
Override for attack types, list("[ATTACK_TYPE_DEFINE]" = perecntage) for perfect efficiency.
parry_efficiency_to_counterattack
Efficiency must be at least this to run automatic counterattack
parry_failed_clickcd_duration
Clickdelay duration post-parry if you fail to parry an attack
parry_failed_cooldown_duration
Parry cooldown post-parry if failed. This is ADDED to parry_cooldown!!!
parry_failed_stagger_duration
Stagger duration post-parry if you fail to parry an attack
parry_flags
Parry flags
parry_imperfect_falloff_percent
Parry "efficiency" falloff in percent per decisecond once perfect window is over.
parry_imperfect_falloff_percent_override
[parry_imperfect_falloff_percent] override for attack types, list("[ATTACK_TYPE_DEFINE]" = deciseconds)
parry_max_attacks
Maximum attacks to parry successfully or unsuccessfully (but not efficiency < 0) during active period, hitting this immediately ends the sequence.
parry_respect_clickdelay
//////// PARRYING ////////////
+Priority for mob/do_run_block() while we're being used to parry.
+Parry doesn't work if you aren't able to otherwise attack due to clickdelay
parry_sounds
Sounds for parrying
parry_stamina_cost
Parry stamina cost
parry_start_sound
Parry start sound
parry_time_active
Main parry window in deciseconds. This is between [parry_time_windup] and [parry_time_spindown]
parry_time_active_visual_override
If set, overrides visual duration of active period
parry_time_perfect
Perfect parry window in deciseconds from the start of the main window. 3 with main 5 = perfect on third decisecond of main window.
parry_time_perfect_leeway
Time on both sides of perfect parry that still counts as part of the perfect window.
parry_time_perfect_leeway_override
[parry_time_perfect_leeway] override for attack types, list("[ATTACK_TYPE_DEFINE]" = deciseconds)
parry_time_spindown
Parry spindown duration in deciseconds. main stage end to this is the spindown stage, afterwards the parry fully ends.
parry_time_spindown_visual_override
If set, overrides visual duration of spindown
parry_time_windup
Parry windup duration in deciseconds. 0 to this is windup, afterwards is main stage.
parry_time_windup_visual_override
If set, overrides visual duration of windup
perfect_parry_block_return_flags
Flags added to return value
perfect_parry_block_return_list
List appended to block return
Proc Details
attack_type_list_scan
Quirky proc to get average of flags in list that are in attack_type because why is attack_type a flag.
get_parry_efficiency
Gets the percentage efficiency of our parry.
+
Returns a percentage in normal 0 to 100 scale, but not clamped to just 0 to 100.
+This is a proc to allow for overriding.
+@params
+
+
attack_type - int, bitfield of the attack type(s)
+
parry_time - deciseconds since start of the parry.
+
render_html_readout
Generates a HTML render of this datum for self-documentation
+Maybe make this tgui-next someday haha god this is ugly as sin.
+Does NOT include the popout or title or anything. Just the variables and explanations..
\ No newline at end of file
diff --git a/datum/callback.html b/datum/callback.html
new file mode 100644
index 000000000000..face97b33213
--- /dev/null
+++ b/datum/callback.html
@@ -0,0 +1,36 @@
+/datum/callback - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Callback Datums
A datum that holds a proc to be called on another object, used to track proccalls to other objects
+
USAGE
+
var/datum/callback/C = new(object|null, GLOBAL_PROC_REF(type/path|"procstring"), arg1, arg2, ... argn)
+var/timerid = addtimer(C, time, timertype)
+you can also use the compiler define shorthand
+var/timerid = addtimer(CALLBACK(object|null, PROC_REF(procname), arg1, arg2, ... argn), time, timertype)
+
+
Note: proc strings can only be given for datum proc calls, global procs must be proc paths
+
Also proc strings are strongly advised against because they don't compile error if the proc stops existing
+
In some cases you can provide a shortform of the procname, see the proc typepath shortcuts documentation below
+
INVOKING THE CALLBACK
+
var/result = C.Invoke(args, to, add) additional args are added after the ones given when the callback was created
+
var/result = C.InvokeAsync(args, to, add) Asyncronous - returns . on the first sleep then continues on in the background
+after the sleep/block ends, otherwise operates normally.
+
PROC TYPEPATH SHORTCUTS
+
(these operate on paths, not types, so to these shortcuts, datum is NOT a parent of atom, etc...)
+
proc defined on current(src) object OR overridden at src or any of it's parents:
A weak reference to the user who triggered this callback
Proc Details
Invoke
Invoke this callback
+
Calls the registered proc on the registered object, if the user ref
+can be resolved it also inclues that as an arg
+
If the datum being called on is varedited, the call is wrapped via WrapAdminProcCall
InvokeAsync
Invoke this callback async (waitfor=false)
+
Calls the registered proc on the registered object, if the user ref
+can be resolved it also inclues that as an arg
+
If the datum being called on is varedited, the call is wrapped via WrapAdminProcCall
New
Create a new callback datum
+
Arguments
+
+
thingtocall the object to call the proc on
+
proctocall the proc to call on the target object
+
... an optional list of extra arguments to pass to the proc
+
\ No newline at end of file
diff --git a/datum/centcom_announcer.html b/datum/centcom_announcer.html
new file mode 100644
index 000000000000..790512e15f5f
--- /dev/null
+++ b/datum/centcom_announcer.html
@@ -0,0 +1 @@
+/datum/centcom_announcer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
centcom_announcer
Data holder for the announcers that can be used in a game, this can be used to have alternative announcements outside of the default e.g.the intern
Override this to have a custom message to show instead of the normal priority announcement
event_sounds
Event audio, can be used for specific event announcements and is assoc key - sound. If no sound is found the default is used.area
welcome_sounds
Roundshift start audio
\ No newline at end of file
diff --git a/datum/changelingprofile.html b/datum/changelingprofile.html
new file mode 100644
index 000000000000..4d1cea8791bf
--- /dev/null
+++ b/datum/changelingprofile.html
@@ -0,0 +1 @@
+/datum/changelingprofile - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/chatmessage.html b/datum/chatmessage.html
new file mode 100644
index 000000000000..2c613056376b
--- /dev/null
+++ b/datum/chatmessage.html
@@ -0,0 +1,37 @@
+/datum/chatmessage - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Calls qdel on the chatmessage when its parent is deleted, used to register qdel signal
Var Details
approx_lines
Contains the approximate amount of lines for height decay
current_z_idx
The current index used for adjusting the layer of each sequential chat message such that recent messages will overlay older ones
eol_complete
Contains the time that the EOL for the message will be complete, used for qdel scheduling
message
The visual element of the chat messsage
message_loc
The location in which the message is appearing
next
Contains the reference to the next chatmessage in the bucket, used by runechat subsystem
owned_by
The client who heard this message
prev
Contains the reference to the previous chatmessage in the bucket, used by runechat subsystem
scheduled_destruction
Contains the scheduled destruction time, used for scheduling EOL
Proc Details
New
Constructs a chat message overlay
+
Arguments:
+
+
text - The text content of the overlay
+
target - The target atom to display the overlay at
+
owner - The mob that owns this overlay, only this mob will be able to view it
+
language - The language this message was spoken in
+
extra_classes - Extra classes to apply to the span that holds the text
+
lifespan - The lifespan of the message in deciseconds
+
colorize_string
Gets a color for a name, will return the same color for a given string consistently within a round.atom
+
Note that this proc aims to produce pastel-ish colors using the HSL colorspace. These seem to be favorable for displaying on the map.
+
Arguments:
+
+
name - The name to generate a color for
+
sat_shift - A value between 0 and 1 that will be multiplied against the saturation
+
lum_shift - A value between 0 and 1 that will be multiplied against the luminescence
+
end_of_life
Applies final animations to overlay CHAT_MESSAGE_EOL_FADE deciseconds prior to message deletion
+Arguments:
+
+
fadetime - The amount of time to animate the message's fadeout for
+
enter_subsystem
Enters the runechat subsystem with this chatmessage, inserting it into the end-of-life queue
+
This will also account for a chatmessage already being registered, and in which case
+the position will be updated to remove it from the previous location if necessary
+
Arguments:
+
+
new_sched_destruction Optional, when provided is used to update an existing message with the new specified time
+
generate_image
Generates a chat message image representation
+
Arguments:
+
+
text - The text content of the overlay
+
target - The target atom to display the overlay at
+
owner - The mob that owns this overlay, only this mob will be able to view it
+
language - The language this message was spoken in
+
extra_classes - Extra classes to apply to the span that holds the text
+
lifespan - The lifespan of the message in deciseconds
+
leave_subsystem
Removes this chatmessage datum from the runechat subsystem
on_parent_qdel
Calls qdel on the chatmessage when its parent is deleted, used to register qdel signal
\ No newline at end of file
diff --git a/datum/chemical_reaction.html b/datum/chemical_reaction.html
new file mode 100644
index 000000000000..f7145b327097
--- /dev/null
+++ b/datum/chemical_reaction.html
@@ -0,0 +1 @@
+/datum/chemical_reaction - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Higher is higher priority, determines which order reactions are checked.
Var Details
priority
Higher is higher priority, determines which order reactions are checked.
\ No newline at end of file
diff --git a/datum/client_interface.html b/datum/client_interface.html
new file mode 100644
index 000000000000..82dd6359c920
--- /dev/null
+++ b/datum/client_interface.html
@@ -0,0 +1 @@
+/datum/client_interface - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
client_interface
This should match the interface of /client wherever necessary.
The view of the client, similar to /client/var/view.
Var Details
prefs
Player preferences datum for the client
view
The view of the client, similar to /client/var/view.
\ No newline at end of file
diff --git a/datum/component.html b/datum/component.html
new file mode 100644
index 000000000000..a3eb3b2191ca
--- /dev/null
+++ b/datum/component.html
@@ -0,0 +1,46 @@
+/datum/component - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Component
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
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
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
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
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
Return the object that is the host of any UI's that this component has
Var Details
can_transfer
Only set to true if you are able to properly transfer this component
+At a minimum RegisterWithParent and UnregisterFromParent should be used
+Make sure you also implement PostTransfer for any post transfer handling
dupe_mode
Defines how duplicate existing components are handled when added to a datum
+See COMPONENT_DUPE_* definitions for available options
dupe_type
The type to check for duplication
+null means exact match on type (default)
+Any other type means that and all subtypes
parent
The datum this components belongs to
Proc Details
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
Properly removes the component from parent and cleans up references
+
Arguments:
+
+
force - makes it not check for and remove the component from the parent
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
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
Internal proc to create a list of our type and all parent types
_JoinParent
Internal proc to handle behaviour of components when joining a parent
_RemoveFromParent
Internal proc to handle behaviour when being removed from a parent
ui_host
Return the object that is the host of any UI's that this component has
\ No newline at end of file
diff --git a/datum/component/admin_popup.html b/datum/component/admin_popup.html
new file mode 100644
index 000000000000..f04c8c03afe7
--- /dev/null
+++ b/datum/component/admin_popup.html
@@ -0,0 +1,4 @@
+/datum/component/admin_popup - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
admin_popup
Applied to clients when they receive an admin popup, alerting them to
+their ticket.
The user's most active ticket. If this is resolved, closed, or replied to,
+then the component will delete itself.
Var Details
ticket
The user's most active ticket. If this is resolved, closed, or replied to,
+then the component will delete itself.
\ No newline at end of file
diff --git a/datum/component/area_sound_manager.html b/datum/component/area_sound_manager.html
new file mode 100644
index 000000000000..e5ff9f590410
--- /dev/null
+++ b/datum/component/area_sound_manager.html
@@ -0,0 +1 @@
+/datum/component/area_sound_manager - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
area_sound_manager
Allows you to set a theme for a set of areas without tying them to looping sounds explicitly
The timer id of our current start delay, if it exists
Var Details
accepted_zs
A list of "acceptable" z levels to be on. If you leave this, we're gonna delete ourselves
area_to_looping_type
area -> looping sound type
our_loop
Current sound loop
timerid
The timer id of our current start delay, if it exists
\ No newline at end of file
diff --git a/datum/component/bodycamera_holder.html b/datum/component/bodycamera_holder.html
new file mode 100644
index 000000000000..0674a45ef1fc
--- /dev/null
+++ b/datum/component/bodycamera_holder.html
@@ -0,0 +1,2 @@
+/datum/component/bodycamera_holder - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
bodycamera_holder
Bodycamera component
+
Allows anything to have a body camera inserted into it
The clothing part this needs to be on. This could possibly just be done by checking the clothing's slot
Proc Details
on_attackby
When items are used on it. Bodycamera/ID card
on_examine_more
When examining
on_screwdriver_act
When a screwdriver is used on it
on_unequip
When the camera holder is unequipped
\ No newline at end of file
diff --git a/datum/component/combat_mode.html b/datum/component/combat_mode.html
new file mode 100644
index 000000000000..421fa2da9d27
--- /dev/null
+++ b/datum/component/combat_mode.html
@@ -0,0 +1,3 @@
+/datum/component/combat_mode - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
combat_mode
Combat mode component. It makes the user face whichever atom the mouse pointer is hovering,
+amongst other things designed outside of this file, namely PvP and PvE stuff, hence the name.
+Can be toggled on and off by clicking the screen hud object or by pressing the assigned hotkey (default 'C')
Toggles whether the user is intentionally in combat mode. THIS should be the proc you generally use! Has built in visual/to other player feedback, as well as an audible cue to ourselves.
Proc Details
check_flags
Returns a field of flags that are contained in both the second arg and our bitfield variable.
disable_combat_mode
Disables combat mode. Please use 'safe_disable_combat_mode' instead, if you wish to also disable the toggle flag.
enable_combat_mode
Enables combat mode. Please use 'safe_enable_combat_mode' instead, if you wish to also enable the toggle flag.
onMouseMove
Changes the user direction to (try) match the pointer.
on_death
Disables combat mode upon death.
on_logout
Disables combat mode upon logout
on_mob_hud_created
Creates the hud screen object.
on_move
Changes the user direction to (try) keep match the pointer.
safe_disable_combat_mode
Disables intentionally being in combat mode. Please try to use the COMSIG_COMBAT_MODE_CHECK signal for feedback when possible.
safe_enable_combat_mode
Enables intentionally being in combat mode. Please try to use the COMSIG_COMBAT_MODE_CHECK signal for feedback when possible.
update_combat_lock
Combat mode can be locked out, forcibly disabled by a status trait.
user_toggle_intentional_combat_mode
Toggles whether the user is intentionally in combat mode. THIS should be the proc you generally use! Has built in visual/to other player feedback, as well as an audible cue to ourselves.
\ No newline at end of file
diff --git a/datum/component/construction/mecha/powerarmor.html b/datum/component/construction/mecha/powerarmor.html
new file mode 100644
index 000000000000..a41fed287dfa
--- /dev/null
+++ b/datum/component/construction/mecha/powerarmor.html
@@ -0,0 +1 @@
+/datum/component/construction/mecha/powerarmor - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Better than writing all of that new crap for something that's not even a mech.
Proc Details
get_steps
Better than writing all of that new crap for something that's not even a mech.
\ No newline at end of file
diff --git a/datum/component/container_item.html b/datum/component/container_item.html
new file mode 100644
index 000000000000..b248d47753e2
--- /dev/null
+++ b/datum/component/container_item.html
@@ -0,0 +1 @@
+/datum/component/container_item - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
container_item
Container item, an item which can be stored by specialized containers.
\ No newline at end of file
diff --git a/datum/component/dejavu.html b/datum/component/dejavu.html
new file mode 100644
index 000000000000..803fe9e5dc97
--- /dev/null
+++ b/datum/component/dejavu.html
@@ -0,0 +1,5 @@
+/datum/component/dejavu - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
dejavu
A component to reset the parent to its previous state after some time passes
The starting value of toxin loss at the beginning of the effect
Var Details
brain_loss
The starting value of brain loss at the beginning of the effect
brute_loss
The starting value of brute loss at the beginning of the effect
+This only applies to simple animals
clone_loss
The starting value of clone loss at the beginning of the effect
integrity
The starting value of integrity at the beginning of the effect
+This only applies to objects
oxy_loss
The starting value of oxygen loss at the beginning of the effect
rewind_interval
How long to wait between each rewind
rewind_type
Determined by the type of the parent so different behaviours can happen per type
rewinds_remaining
How many rewinds will happen before the effect ends
saved_bodyparts
A list of body parts saved at the beginning of the effect
starting_turf
The turf the parent was on when this components was applied, they get moved back here after the duration
tox_loss
The starting value of toxin loss at the beginning of the effect
\ No newline at end of file
diff --git a/datum/component/edible.html b/datum/component/edible.html
new file mode 100644
index 000000000000..8077143b0fb9
--- /dev/null
+++ b/datum/component/edible.html
@@ -0,0 +1 @@
+/datum/component/edible - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Check foodtypes to see if we should send a moodlet
Var Details
after_eat
Callback to be ran for when you take a bite of something
bite_consumption
Amount of reagents taken per bite
bitecount
Amount of bites taken so far
eat_time
Amount of seconds it takes to eat this food
eatverbs
Message to send when eating
food_flags
Flags for food
foodtypes
Bitfield of the types of this food
junkiness
Defines how much it lowers someones satiety (Need to eat, essentialy)
last_check_time
Last time we checked for food likes
Proc Details
CanConsume
Checks whether or not the eater can actually consume the food
On_Consume
Delete the item when it is fully eaten
TakeBite
This function lets the eater take a bite and transfers the reagents to the eater.
TryToEat
All the checks for the act of eating itself and
UseByAnimal
Ability to feed food to puppers
checkLiked
Check foodtypes to see if we should send a moodlet
\ No newline at end of file
diff --git a/datum/component/embedded.html b/datum/component/embedded.html
new file mode 100644
index 000000000000..e68bba37884a
--- /dev/null
+++ b/datum/component/embedded.html
@@ -0,0 +1,8 @@
+/datum/component/embedded - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
This proc handles if something knocked the invisible item loose from the turf somehow (probably an explosion). Just make it visible and say it fell loose, then get outta here.
Called every time a carbon with a harmful embed moves, rolling a chance for the item to cause pain. The chance is halved if the carbon is crawling or walking.
Items embedded/stuck to carbons both check whether they randomly fall out (if applicable), as well as if the target mob and limb still exists.
+Items harmfully embedded in carbons have an additional check for random pain (if applicable)
Called when a carbon with an object embedded/stuck to them inspects themselves and clicks the appropriate link to begin ripping the item out. This handles the ripping attempt, descriptors, and dealing damage, then calls safe_remove()
This proc handles the final step and actual removal of an embedded/stuck item from a carbon, whether or not it was actually removed safely.
+Pass TRUE for to_hands if we want it to go to the victim's hands when they pull it out
Var Details
harmful
if both our pain multiplier and jostle pain multiplier are 0, we're harmless and can omit most of the damage related stuff
Proc Details
Topic
Someone is ripping out the item from the turf by hand
byeItemCarbon
Something deleted or moved our weapon while it was embedded, how rude!
fallOutCarbon
Called when then item randomly falls out of a carbon. This handles the damage and descriptors, then calls safe_remove()
initCarbon
//////////HUMAN PROCS////////////////
+
Set up an instance of embedding for a carbon. This is basically an extension of Initialize() so not much to say
initTurf
///////////TURF PROCS////////////////
+
Turfs are much lower maintenance, since we don't care if they're in pain, but since they don't bleed or scream, we draw an overlay to show their status.
+The only difference pointy/sticky items make here is text descriptors and pointy objects making a spark shower on impact.
itemMoved
This proc handles if something knocked the invisible item loose from the turf somehow (probably an explosion). Just make it visible and say it fell loose, then get outta here.
jostleCheck
Called every time a carbon with a harmful embed moves, rolling a chance for the item to cause pain. The chance is halved if the carbon is crawling or walking.
processCarbon
Items embedded/stuck to carbons both check whether they randomly fall out (if applicable), as well as if the target mob and limb still exists.
+Items harmfully embedded in carbons have an additional check for random pain (if applicable)
ripOutCarbon
Called when a carbon with an object embedded/stuck to them inspects themselves and clicks the appropriate link to begin ripping the item out. This handles the ripping attempt, descriptors, and dealing damage, then calls safe_remove()
safeRemoveCarbon
This proc handles the final step and actual removal of an embedded/stuck item from a carbon, whether or not it was actually removed safely.
+Pass TRUE for to_hands if we want it to go to the victim's hands when they pull it out
\ No newline at end of file
diff --git a/datum/component/explodable.html b/datum/component/explodable.html
new file mode 100644
index 000000000000..c9d29aecaf32
--- /dev/null
+++ b/datum/component/explodable.html
@@ -0,0 +1 @@
+/datum/component/explodable - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
explodable
Component specifically for explosion sensetive things, currently only applies to heat based explosions but can later perhaps be used for things that are dangerous to handle carelessly like nitroglycerin.
Checks if we're hitting the zone this component is covering
Proc Details
detonate
Expldoe and remove the object
explodable_attack
Called when you use this object to attack sopmething
explodable_attack_zone
Called when you attack a specific body part of the thing this is equipped on. Useful for exploding pants.
is_hitting_zone
Checks if we're hitting the zone this component is covering
\ No newline at end of file
diff --git a/datum/component/field_of_vision.html b/datum/component/field_of_vision.html
new file mode 100644
index 000000000000..87298598551c
--- /dev/null
+++ b/datum/component/field_of_vision.html
@@ -0,0 +1,16 @@
+/datum/component/field_of_vision - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
field_of_vision
Field of Vision component. Does totally what you probably think it does,
+ergo preventing players from seeing what's behind them.
A circle image used to somewhat uncover the adjacent portion of the shadow cone, making mobs and objects behind us somewhat visible.
+The owner mask is still required for those mob going over the default 32x32 px size btw.
An image whose render_source is kept up to date to prevent the mob (or the topmost movable holding it) from being hidden by the mask.
+Will make it use vis_contents instead once a few byonds bugs with images and vis contents are fixed.
A static list of offsets based on icon width and height, because render sources are centered unlike most other visuals,
+and that gives us some problems when the icon is larger or smaller than world.icon_size
Generates the holder and images (if not generated yet) and adds them to client.images.
+Run when the component is registered to a player mob, or upon login.
Resizes the shadow to match the current screen size.
+Run when the client view size is changed, or if the player has a viewsize different than "15x15" on login/comp registration.
A circle image used to somewhat uncover the adjacent portion of the shadow cone, making mobs and objects behind us somewhat visible.
+The owner mask is still required for those mob going over the default 32x32 px size btw.
angle
How much is the cone rotated clockwise, purely backend. Please use rotate_shadow_cone() if you must.
current_fov_size
The current screen size this field of vision is meant to fit for.
fov
That special invisible, almost neigh indestructible movable
+that holds both shadow cone mask and image and follows the player around.
nested_locs
A list of nested locations the mob is in, to ensure the above image works correctly.
owner_mask
An image whose render_source is kept up to date to prevent the mob (or the topmost movable holding it) from being hidden by the mask.
+Will make it use vis_contents instead once a few byonds bugs with images and vis contents are fixed.
rot_scale
Used to scale the shadow cone when rotating it to fit over the edges of the screen.
shadow_angle
The inner angle of this cone, right hardset to 90, 180, or 270 degrees, until someone figures out a way to make it dynamic.
shadow_mask
The mask portion of the cone, placed on a * render target plane so while not visible it still applies the filter.
visual_shadow
The visual portion of the cone, placed on the highest layer of the wall plane
width_n_height_offsets
A static list of offsets based on icon width and height, because render sources are centered unlike most other visuals,
+and that gives us some problems when the icon is larger or smaller than world.icon_size
Proc Details
generate_fov_holder
Generates the holder and images (if not generated yet) and adds them to client.images.
+Run when the component is registered to a player mob, or upon login.
hide_fov
Hides the shadow, other visibility comsig procs will take it into account. Called when the mob dies.
manual_centered_render_source
A hacky comsig proc for things that somehow decide to change icon on the go. may make a change_icon_file() proc later but...
on_change_view
Called when the client view size is changed.
on_loc_moved
Pretty much like the above, but meant for other movables the mob is stored in (bodybags, boxes, mechs etc).
on_mob_moved
Called when the owner mob moves around. Used to keep shadow located right behind us,
+As well as modify the owner mask to match the topmost item.
on_reset_perspective
Hides the shadow when looking through other items, shows it otherwise.
resize_fov
Resizes the shadow to match the current screen size.
+Run when the client view size is changed, or if the player has a viewsize different than "15x15" on login/comp registration.
rotate_shadow_cone
Rotates the shadow cone to a certain degree. Backend shenanigans.
show_fov
Shows the shadow. Called when the mob is revived.
\ No newline at end of file
diff --git a/datum/component/footstep.html b/datum/component/footstep.html
new file mode 100644
index 000000000000..5bcb6ba626ed
--- /dev/null
+++ b/datum/component/footstep.html
@@ -0,0 +1 @@
+/datum/component/footstep - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
footstep
Footstep component. Plays footsteps at parents location when it is appropriate.
Prepares a footstep. Determines if it should get played. Returns the turf it should get played on. Note that it is always a /turf/open
Var Details
e_range
e_range stands for extra range - aka how far the sound can be heard. This is added to the base value and ignored if there isn't a base value.
footstep_sounds
This can be a list OR a soundfile OR null. Determines whatever sound gets played.
footstep_type
footstep_type is a define which determines what kind of sounds should get chosen.
steps
How many steps the parent has taken since the last time a footstep was played
volume
volume determines the extra volume of the footstep. This is multiplied by the base volume, should there be one.
Proc Details
prepare_step
Prepares a footstep. Determines if it should get played. Returns the turf it should get played on. Note that it is always a /turf/open
\ No newline at end of file
diff --git a/datum/component/glory_kill.html b/datum/component/glory_kill.html
new file mode 100644
index 000000000000..3180c681c8e4
--- /dev/null
+++ b/datum/component/glory_kill.html
@@ -0,0 +1 @@
+/datum/component/glory_kill - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Multiply crusher drop chance by (only for asteroid mobs)
health_given
Health to give to our executioner
messages_crusher
SAME AS ABOVE BUT CRUSHER
messages_pka
SAME AS ABOVE THE ABOVE BUT PKA
messages_pka_bayonet
SAME AS ABOVE BUT WITH A HONKING KNIFE ON THE FUCKING THING
messages_unarmed
WHAT THE FUCK ARE THE MESSAGES SAID BY THIS FUCK WHEN HE'S GLORY KILLED WITH AN EMPTY HAND?
ready
Is this ready to be glory killed
threshold
With how much health our sate shall be sealed
\ No newline at end of file
diff --git a/datum/component/gps/item.html b/datum/component/gps/item.html
new file mode 100644
index 000000000000..1cce56436c42
--- /dev/null
+++ b/datum/component/gps/item.html
@@ -0,0 +1 @@
+/datum/component/gps/item - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
item
GPS component subtype. Only gps/item's can be used to open the UI.
Restarts the GPS after getting turned off by an EMP.
toggletracking
Toggles the tracking for the gps
\ No newline at end of file
diff --git a/datum/component/identification.html b/datum/component/identification.html
new file mode 100644
index 000000000000..cd1d96463696
--- /dev/null
+++ b/datum/component/identification.html
@@ -0,0 +1 @@
+/datum/component/identification - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
If this is set, show this on examine to the examiner if they know how to use it.
deconstructor_reveal_text
Added to deconstructive analyzer say on success if set
identification_effect_flags
General flags for what we should do.
identification_flags
General flags for how we should work.
identification_method_flags
General flags for how we can be identified.
\ No newline at end of file
diff --git a/datum/component/identification/syndicate.html b/datum/component/identification/syndicate.html
new file mode 100644
index 000000000000..05663dff99a3
--- /dev/null
+++ b/datum/component/identification/syndicate.html
@@ -0,0 +1,2 @@
+/datum/component/identification/syndicate - SPLURT Station 13SPLURT Station 13 - Modules - Types
syndicate
Identification component subtype - Syndicate
+
Checks if the user is a traitor.
\ No newline at end of file
diff --git a/datum/component/interaction_menu_granter.html b/datum/component/interaction_menu_granter.html
new file mode 100644
index 000000000000..4e9659d1f7b2
--- /dev/null
+++ b/datum/component/interaction_menu_granter.html
@@ -0,0 +1 @@
+/datum/component/interaction_menu_granter - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
interaction_menu_granter
The menu itself, only var is target which is the mob you are interacting with
The one interacting is clicker, the interacted is clicked.
Proc Details
on_target_deleted
Such a shame
open_menu
The one interacting is clicker, the interacted is clicked.
\ No newline at end of file
diff --git a/datum/component/killerqueen.html b/datum/component/killerqueen.html
new file mode 100644
index 000000000000..e145f91b5d01
--- /dev/null
+++ b/datum/component/killerqueen.html
@@ -0,0 +1,3 @@
+/datum/component/killerqueen - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
killerqueen
KILLER QUEEN
+
Simple contact bomb component
+Blows up the first person to touch it.
callback to invoke with (parent, victim) before standard detonation - useful for losing a reference to this component or implementing custom behavior. return FALSE to prevent explosion.
Var Details
dev
dev explosion radius
ex_strength
strength of explosion on the touch-er. 0 to disable. usually only used if the normal explosion is disabled (this is the default).
examine_message
examine message
exploded
did we explode
failure
callback to invoke with (parent) when deleting without an explosion
flame
flame explosion radius
heavy
heavy explosion radius
light
light explosion radius
living_only
only triggered by living mobs
pre_explode
callback to invoke with (parent, victim) before standard detonation - useful for losing a reference to this component or implementing custom behavior. return FALSE to prevent explosion.
\ No newline at end of file
diff --git a/datum/component/knockback.html b/datum/component/knockback.html
new file mode 100644
index 000000000000..82674cdc99e0
--- /dev/null
+++ b/datum/component/knockback.html
@@ -0,0 +1,7 @@
+/datum/component/knockback - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
whether this can throw anchored targets (tables, etc)
throw_distance
distance the atom will be thrown
throw_gentle
whether this is a gentle throw (default false means people thrown into walls are stunned / take damage)
Proc Details
do_knockback
Throw a target in a direction
+
Arguments:
+
+
target - Target atom to throw
+
thrower - Thing that caused this atom to be thrown
+
throw_dir - Direction to throw the atom
+
hostile_attackingtarget
triggered after a hostile simplemob attacks something
item_afterattack
triggered after an item attacks something
projectile_hit
triggered after a projectile hits something
\ No newline at end of file
diff --git a/datum/component/label.html b/datum/component/label.html
new file mode 100644
index 000000000000..d5f825c39170
--- /dev/null
+++ b/datum/component/label.html
@@ -0,0 +1,24 @@
+/datum/component/label - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
label
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.
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.
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.
The name of the label the player is applying to the parent.
Proc Details
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.
+
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
\ No newline at end of file
diff --git a/datum/component/material_container.html b/datum/component/material_container.html
new file mode 100644
index 000000000000..40ecdfe6d9e0
--- /dev/null
+++ b/datum/component/material_container.html
@@ -0,0 +1,11 @@
+/datum/component/material_container - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
For consuming a dictionary of materials. mats is the map of materials to use and the corresponding amounts, example: list(M/datum/material/glass =100, datum/material/iron=200)
A callback invoked after materials are inserted into this container
allowed_materials
The list of materials that this material container can accept
last_inserted_id
The last main material that was inserted into this container
materials
Map of material ref -> amount
max_amount
The maximum amount of materials this material container can contain
precise_insertion
Whether or not this material container allows specific amounts from sheets to be inserted
precondition
A callback invoked before materials are inserted into this container
total_amount
The total amount of materials this material container contains
Proc Details
Initialize
Sets up the proper signals and fills the list of materials with the appropriate references.
amount2sheet
Turns a material amount into the amount of sheets it should output
can_hold_material
The default check for whether we can add materials to this material container.
+
Arguments:
+
+
mat: The material we are checking for insertability.
+
can_insert_amount_mat
Proc for checking if there is room in the component, returning the amount or else the amount lacking.
get_categories
Returns all the categories in a recipe.
get_item_material_amount
returns the amount of material relevant to this container; if this container does not support glass, any glass in 'I' will not be taken into account
get_material_amount
Returns the amount of a specific material in this container.
has_enough_of_category
Returns TRUE if you have enough of a specified material category (Which could be multiple materials)
has_enough_of_material
Returns TRUE if you have enough of the specified material.
has_materials
Checks if its possible to afford a certain amount of materials. Takes a dictionary of materials.
has_space
Proc that returns TRUE if the container has space
insert_amount_mat
For inserting an amount of material
insert_item
Proc specifically for inserting items, returns the amount of materials entered.
insert_item_materials
Inserts the relevant materials from an item into this material container.
+
Arguments:
+
+
source: The source of the materials we are inserting.
+
multiplier: The multiplier for the materials being inserted.
+
breakdown_flags: The breakdown bitflags that will be used to retrieve the materials from the source
+
on_attackby
Proc that allows players to fill the parent with mats
retrieve_all
Proc to get all the materials and dump them as sheets
retrieve_sheets
For spawning mineral sheets at a specific location. Used by machines to output sheets.
sheet2amount
Turns an amount of sheets into the amount of material amount it should output
transer_amt_to
Proc for transfering materials to another container.
use_amount_mat
Uses an amount of a specific material, effectively removing it.
use_materials
For consuming a dictionary of materials. mats is the map of materials to use and the corresponding amounts, example: list(M/datum/material/glass =100, datum/material/iron=200)
user_insert
Proc used for when player inserts materials
\ No newline at end of file
diff --git a/datum/component/mood.html b/datum/component/mood.html
new file mode 100644
index 000000000000..208ee25537e3
--- /dev/null
+++ b/datum/component/mood.html
@@ -0,0 +1 @@
+/datum/component/mood - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Causes direct drain of someone's sanity, call it with a numerical value corresponding how badly you want to hurt their sanity
on_revive
Called when parent is revived.
update_mood
Called after moodevent/s have been added/removed.
\ No newline at end of file
diff --git a/datum/component/multiple_lives.html b/datum/component/multiple_lives.html
new file mode 100644
index 000000000000..a7f52e9cef1a
--- /dev/null
+++ b/datum/component/multiple_lives.html
@@ -0,0 +1,2 @@
+/datum/component/multiple_lives - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
multiple_lives
A simple component that spawns a mob of the same type and transfers itself to it when parent dies.
+For more complex behaviors, use the COMSIG_ON_MULTIPLE_LIVES_RESPAWN comsig.
\ No newline at end of file
diff --git a/datum/component/nanites.html b/datum/component/nanites.html
new file mode 100644
index 000000000000..d1185dcaa75e
--- /dev/null
+++ b/datum/component/nanites.html
@@ -0,0 +1,12 @@
+/datum/component/nanites - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Adds a nanite program, replacing existing unique programs of the same type. A source program can be specified to copy its programming onto the new one.
Syncs the nanite component to another, making it so programs are the same with the same programming (except activation status)
Var Details
can_be_deleted
Allow deletion
emp_desync_mod
EMP severity div for cloudsync reset chance
emp_flat_deletion_lower
EMP flat deletion lower
emp_flat_deletion_upper
EMP flat deletion upper
emp_percent_deletion_lower
EMP percent deletion lower
emp_percent_deletion_upper
EMP percent deletion upper
emp_severity_mod
EMP severity multiplier, capping to 0 to 100
minor_shock_deletion_lower
minor shock deletion lower
minor_shock_deletion_upper
minor shock deletion upper
permanent_programs
Permanent programs - can never be deleted. does not count towards max_programs.
qdel_self_on_depletion
Delete ourselves when we're depleted.
requires_cloud_sync
Whether or not we can survive no cloud syncing without errors
shock_flat_deletion_lower
Shock flat deletion lower
shock_flat_deletion_upper
Shock flat deletion upper
shock_percent_deletion_lower
Shock percent deletion lower
shock_percent_deletion_upper
Shock percent deletion upper
start_time
Separate list of protocol programs, to avoid looping through the whole programs list when checking for conflicts
stealth
Timestamp to when the nanites were first inserted in the host
Proc Details
add_permanent_program
Adds permanent programs
+
WARNING: Has no sanity checks. Make sure you know what you are doing! (make sure programs do not conflict)
add_program
Adds a nanite program, replacing existing unique programs of the same type. A source program can be specified to copy its programming onto the new one.
adjust_nanites
Modifies the current nanite volume, then checks if the nanites are depleted or exceeding the maximum amount
check_console_locking
Checks if we can block out console modification
check_host_lockout
Checks if we can lock out host internal conscious modification
check_viral_prevention
Checks if we can block out viral replica
cloud_sync
Syncs the nanites to their assigned cloud copy, if it is available. If it is not, there is a small chance of a software error instead.
delete_nanites
Used to rid ourselves
+Deletes nanites!
nanites_depleted
Called when nanites are depleted.
+Deletes ourselves by default.
reject_excess_nanites
Handles how nanites leave the host's body if they find out that they're currently exceeding the maximum supported amount
+
+
IC explanation:
+Normally nanites simply discard excess volume by slowing replication or 'sweating' it out in imperceptible amounts,
+but if there is a large excess volume, likely due to a programming change that leaves them unable to support their current volume,
+the nanites attempt to leave the host as fast as necessary to prevent nanite poisoning. This can range from minor oozing to nanites
+rapidly bursting out from every possible pathway, causing temporary inconvenience to the host.
set_nanite_bar
Updates the nanite volume bar visible in diagnostic HUDs
sync
Syncs the nanite component to another, making it so programs are the same with the same programming (except activation status)
\ No newline at end of file
diff --git a/datum/component/omen.html b/datum/component/omen.html
new file mode 100644
index 000000000000..09b9f7b9aadc
--- /dev/null
+++ b/datum/component/omen.html
@@ -0,0 +1,6 @@
+/datum/component/omen - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
omen
omen.dm: For when you want someone to have a really bad day
+
When you attach an omen component to someone, they start running the risk of all sorts of bad environmental injuries, like nearby vending machines randomly falling on you,
+or hitting your head really hard when you slip and fall, or... well, for now those two are all I have. More will come.
+
Omens are removed once the victim is either maimed by one of the possible injuries, or if they receive a blessing (read: bashing with a bible) from the chaplain.
Whatever's causing the omen, if there is one. Destroying the vessel won't stop the omen, but we destroy the vessel (if one exists) upon the omen ending
If we get knocked down, see if we have a really bad slip and bash our head hard
Var Details
vessel
Whatever's causing the omen, if there is one. Destroying the vessel won't stop the omen, but we destroy the vessel (if one exists) upon the omen ending
Proc Details
check_accident
check_accident() is called each step we take
+
While we're walking around, roll to see if there's any environmental hazards (currently only vending machines) on one of the adjacent tiles we can trigger.
+We do the prob() at the beginning to A. add some tension for /when/ it will strike, and B. (more importantly) ameliorate the fact that we're checking up to 5 turfs's contents each time
check_bless
Hijack the mood system to see if we get the blessing mood event to cancel the omen
check_slip
If we get knocked down, see if we have a really bad slip and bash our head hard
\ No newline at end of file
diff --git a/datum/component/pellet_cloud.html b/datum/component/pellet_cloud.html
new file mode 100644
index 000000000000..7c7db278d90e
--- /dev/null
+++ b/datum/component/pellet_cloud.html
@@ -0,0 +1,8 @@
+/datum/component/pellet_cloud - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
How many shrapnel projectiles are we responsible for tracking? May be reduced for grenades if someone dives on top of it. Defined by ammo casing for casings, derived from magnitude otherwise
For grenades, tracking how many pellets are removed due to martyrs and how many pellets are added due to the last person to touch it being on top of it
create_blast_pellets() is for when we have a central point we want to shred the surroundings of with a ring of shrapnel, namely frag grenades and landmines.
handle_martyrs() is used for grenades that shoot shrapnel to check if anyone threw themselves/were thrown on top of the grenade, thus absorbing a good chunk of the shrapnel
One of our pellets disappeared due to hitting their max range (or just somehow got qdel'd), remove it from our list and check if we're done (terminated == num_pellets)
How many shrapnel projectiles are we responsible for tracking? May be reduced for grenades if someone dives on top of it. Defined by ammo casing for casings, derived from magnitude otherwise
pellet_delta
For grenades, tracking how many pellets are removed due to martyrs and how many pellets are added due to the last person to touch it being on top of it
pellets
The list of pellets we're responsible for tracking, once these are all accounted for, we finalize.
projectile_type
What's the projectile path of the shrapnel we're shooting?
purple_hearts
For grenades, tracking people who die covering a grenade for achievement purposes, see [/datum/component/pellet_cloud/proc/handle_martyrs()]
queued_delete
If the parent tried deleting and we're not done yet, we send it to nullspace then delete it after
radius
For grenades/landmines, how big is the radius of turfs we're targeting? Note this does not effect the projectiles range, only how many we generate
shooter
for if we're an ammo casing being fired
targets_hit
An associated list with the atom hit as the key and how many pellets they've eaten for the value, for printing aggregate messages
terminated
how many pellets ranged out without hitting anything
wound_info_by_part
Another associated list for hit bodyparts on carbons so we can track how much wounding potential we have for each bodypart
Proc Details
create_blast_pellets
create_blast_pellets() is for when we have a central point we want to shred the surroundings of with a ring of shrapnel, namely frag grenades and landmines.
+
Note that grenades have extra handling for someone throwing themselves/being thrown on top of it, while landmines do not (obviously, it's a landmine!). See [/datum/component/pellet_cloud/proc/handle_martyrs()]
create_casing_pellets
create_casing_pellets() is for directed pellet clouds for ammo casings that have multiple pellets (buckshot and scatter lasers for instance)
+
Honestly this is mostly just a rehash of [/obj/item/ammo_casing/proc/fire_casing()] for pellet counts > 1, except this lets us tamper with the pellets and hook onto them for tracking purposes.
+The arguments really don't matter, this proc is triggered by COMSIG_PELLET_CLOUD_INIT which is only for this really, it's just a big mess of the state vars we need for doing the stuff over here.
finalize
All of our pellets are accounted for, time to go target by target and tell them how many things they got hit by.
grenade_armed
Look alive, we're armed! Now we start watching to see if anyone's covering us
grenade_dropped
Someone dropped the grenade, so set them to the shooter in case they're on top of it when it goes off
grenade_moved
Our grenade has moved, reset var/list/bodies so we're "on top" of any mobs currently on the tile
grenade_uncrossed
Someone who was originally "under" the grenade has moved off the tile and is now eligible for being a martyr and "covering" it
handle_martyrs
handle_martyrs() is used for grenades that shoot shrapnel to check if anyone threw themselves/were thrown on top of the grenade, thus absorbing a good chunk of the shrapnel
+
Between the time the grenade is armed and the actual detonation, we set var/list/bodies to the list of mobs currently on the new tile, as if the grenade landed on top of them, tracking if any of them move off the tile and removing them from the "under" list
+Once the grenade detonates, handle_martyrs() is called and gets all the new mobs on the tile, and add the ones not in var/list/bodies to var/list/martyrs
+We then iterate through the martyrs and reduce the shrapnel magnitude for each mob on top of it, shredding each of them with some of the shrapnel they helped absorb. This can snuff out all of the shrapnel if there's enough bodies
+
Note we track anyone who's alive and client'd when they get shredded in var/list/purple_hearts, for achievement checking later
nullspace_parent
Our grenade or landmine or caseless shell or whatever tried deleting itself, so we intervene and nullspace it until we're done here
on_target_qdel
Someone who was originally "under" the grenade has moved off the tile and is now eligible for being a martyr and "covering" it
pellet_hit
One of our pellets hit something, record what it was and check if we're done (terminated == num_pellets)
pellet_range
One of our pellets disappeared due to hitting their max range (or just somehow got qdel'd), remove it from our list and check if we're done (terminated == num_pellets)
pew
Minor convenience function for creating each shrapnel piece with circle explosions, mostly stolen from the MIRV component
\ No newline at end of file
diff --git a/datum/component/personal_crafting.html b/datum/component/personal_crafting.html
new file mode 100644
index 000000000000..d391040c8448
--- /dev/null
+++ b/datum/component/personal_crafting.html
@@ -0,0 +1,4 @@
+/datum/component/personal_crafting - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Check that the contents of the recipe meet the requirements.
Proc Details
check_contents
Check that the contents of the recipe meet the requirements.
+
user: The /mob that initated the crafting.
+R: The /datum/crafting_recipe being attempted.
+contents: List of items to search for R's reqs.
\ No newline at end of file
diff --git a/datum/component/plumbing.html b/datum/component/plumbing.html
new file mode 100644
index 000000000000..7d3aa8432c65
--- /dev/null
+++ b/datum/component/plumbing.html
@@ -0,0 +1,3 @@
+/datum/component/plumbing - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Toggle our machinery on or off. This is called by a hook from default_unfasten_wrench with anchored as only param, so we dont have to copypaste this on every object that can move
We update our connects only when we settle down by taking our current and original direction to find our new connects
+If someone wants it to fucking spin while connected to something go actually knock yourself out
Var Details
active
FALSE to pretty much just not exist in the plumbing world so we can be moved, TRUE to go plumbo mode
demand_connects
direction in wich we act as a demander
ducterlays
We can't just cut all of the parents' overlays, so we'll track them here
ducts
Index with "1" = /datum/ductnet/theductpointingnorth etc. "1" being the num2text from NORTH define
reagents
shortcut to our parents' reagent holder
supply_connects
directions in wich we act as a supplier
turn_connects
if TRUE connects will spin with the parent object visually and codually, so you can have it work in any direction. FALSE if you want it to be static
use_overlays
TRUE if we wanna add proper pipe outless under our parent object. this is pretty good if i may so so myself
Proc Details
can_add
Can we be added to the ductnet?
can_give
returns TRUE when they can give the specified amount and reagent. called by process request
create_overlays
We create our luxurious piping overlays/underlays, to indicate where we do what. only called once if use_overlays = TRUE in Initialize()
disable
we stop acting like a plumbing thing and disconnect if we are, so we can safely be moved and stuff
enable
settle wherever we are, and start behaving like a piece of plumbing
get_original_direction
Give the direction of a pipe, and it'll return wich direction it originally was when it's object pointed SOUTH
process_request
check who can give us what we want, and how many each of them will give us
send_request
called from in process(). only calls process_request(), but can be overwritten for children with special behaviour
toggle_active
Toggle our machinery on or off. This is called by a hook from default_unfasten_wrench with anchored as only param, so we dont have to copypaste this on every object that can move
transfer_to
this is where the reagent is actually transferred and is thus the finish point of our process()
update_dir
We update our connects only when we settle down by taking our current and original direction to find our new connects
+If someone wants it to fucking spin while connected to something go actually knock yourself out
\ No newline at end of file
diff --git a/datum/component/plumbing/acclimator.html b/datum/component/plumbing/acclimator.html
new file mode 100644
index 000000000000..ab8638e0423a
--- /dev/null
+++ b/datum/component/plumbing/acclimator.html
@@ -0,0 +1 @@
+/datum/component/plumbing/acclimator - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
We're overriding process and not send_request, because all process does is do the requests, so we might aswell cut out the middle man and save some code from running
Proc Details
process
We're overriding process and not send_request, because all process does is do the requests, so we might aswell cut out the middle man and save some code from running
\ No newline at end of file
diff --git a/datum/component/plumbing/filter.html b/datum/component/plumbing/filter.html
new file mode 100644
index 000000000000..9a33c37df5c5
--- /dev/null
+++ b/datum/component/plumbing/filter.html
@@ -0,0 +1 @@
+/datum/component/plumbing/filter - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
filter
The magical plumbing component used by the chemical filters. The different supply connects behave differently depending on the filters set on the chemical filter
We check if the direction and reagent are valid to give. Needed for filters since different outputs have different behaviours
Proc Details
can_give_in_direction
We check if the direction and reagent are valid to give. Needed for filters since different outputs have different behaviours
\ No newline at end of file
diff --git a/datum/component/pregnancy.html b/datum/component/pregnancy.html
new file mode 100644
index 000000000000..fc40ab8bd39c
--- /dev/null
+++ b/datum/component/pregnancy.html
@@ -0,0 +1 @@
+/datum/component/pregnancy - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
whether the pregnancy is revealed or not, scanners will reveal this no matter what
Var Details
baby_type
type of baby the mother will plop out - needs to be subtype of /mob/living
oviposition
this boolean is for identifying whether this preg is in the egg state or not
pregnancy_breast_growth
breast growth
pregnancy_inflation
this boolean is for saving whether or not we should inflate the belly if appropriate
revealed
whether the pregnancy is revealed or not, scanners will reveal this no matter what
\ No newline at end of file
diff --git a/datum/component/pricetag.html b/datum/component/pricetag.html
new file mode 100644
index 000000000000..cceaaa5d9d1b
--- /dev/null
+++ b/datum/component/pricetag.html
@@ -0,0 +1 @@
+/datum/component/pricetag - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
List of bank accounts this pricetag pays out to. Format is payees[bank_account] = profit_ratio.
Var Details
default_profit_ratio
Payee gets 100% of the value if no ratio has been set.
payees
List of bank accounts this pricetag pays out to. Format is payees[bank_account] = profit_ratio.
\ No newline at end of file
diff --git a/datum/component/squeak.html b/datum/component/squeak.html
new file mode 100644
index 000000000000..60864ce9fa4f
--- /dev/null
+++ b/datum/component/squeak.html
@@ -0,0 +1 @@
+/datum/component/squeak - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
sound exponent for squeak. Defaults to 10 as squeaking is loud and annoying enough.
Var Details
cross_squeak_delay_chance
chance we'll be stopped from squeaking by cooldown when something crossing us squeaks
sound_extra_range
extra-range for this component's sound
sound_falloff_distance
when sounds start falling off for the squeak
sound_falloff_exponent
sound exponent for squeak. Defaults to 10 as squeaking is loud and annoying enough.
\ No newline at end of file
diff --git a/datum/component/storage.html b/datum/component/storage.html
new file mode 100644
index 000000000000..6c52b31eeeed
--- /dev/null
+++ b/datum/component/storage.html
@@ -0,0 +1,5 @@
+/datum/component/storage - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Check if we should trigger on_found()
+If this returns TRUE, it means an on_found() returned TRUE and immediately broke the chain.
+In most contexts, this should mean to stop.
Storage flags, including what kinds of limiters we use for how many items we can hold
ui_by_mob
Ui objects by person. mob = list(objects)
Proc Details
_process_numerical_display
Generates a list of numbered_display datums for the numerical display system.
check_on_found
Check if we should trigger on_found()
+If this returns TRUE, it means an on_found() returned TRUE and immediately broke the chain.
+In most contexts, this should mean to stop.
get_max_volume
Gets our max volume
get_ui_boxes
Gets our ui_boxes, making it if it doesn't exist.
get_ui_close
Gets our ui_close, making it if it doesn't exist.
get_ui_continuous
Gets our ui_continuous, making it if it doesn't exist.
get_ui_left
Gets our ui_left, making it if it doesn't exist.
on_logout
Proc triggered by signal to ensure logging out clients don't linger.
orient2hud_legacy
Orients all objects in legacy mode, and returns the objects to show to the user.
orient2hud_volumetric
Orients all objects in .. volumetric mode. Does not support numerical display!
ui_hide
Hides our UI from a mob
ui_show
Shows our UI to a mob.
volumetric_ui
Returns TRUE if we are using volumetric UI instead of box UI
vv_edit_var
VV hooked to ensure no lingering screen objects.
\ No newline at end of file
diff --git a/datum/component/storage/concrete/tcg.html b/datum/component/storage/concrete/tcg.html
new file mode 100644
index 000000000000..9792053b1fb3
--- /dev/null
+++ b/datum/component/storage/concrete/tcg.html
@@ -0,0 +1 @@
+/datum/component/storage/concrete/tcg - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
tcg
A storage component to be used on card piles, for use as hands/decks/discard piles. Don't use on something that's not a card pile!
The deck that the card pile is using for FAIR PLAY.
Proc Details
can_be_inserted
The deck that the card pile is using for FAIR PLAY.
\ No newline at end of file
diff --git a/datum/component/tackler.html b/datum/component/tackler.html
new file mode 100644
index 000000000000..aae4203e8b95
--- /dev/null
+++ b/datum/component/tackler.html
@@ -0,0 +1,47 @@
+/datum/component/tackler - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
tackler
#tackle.dm
+
For when you want to throw a person at something and have fun stuff happen
+
This component is made for carbon mobs (really, humans), and allows its parent to throw themselves and perform tackles. This is done by enabling throw mode, then clicking on your
+intended target with an empty hand. You will then launch toward your target. If you hit a carbon, you'll roll to see how hard you hit them. If you hit a solid non-mob, you'll
+roll to see how badly you just messed yourself up. If, along your journey, you hit a table, you'll slam onto it and send up to MAX_TABLE_MESSES (8) /obj/items on the table flying,
+and take a bit of extra damage and stun for each thing launched.
+
There are 2 """skill rolls""" involved here, which are handled and explained in sack() and rollTackle() (for roll 1, carbons), and splat() (for roll 2, walls and solid objects)
Some gloves, generally ones that increase mobility, may have a minimum distance to fly. Rocket gloves are especially dangerous with this, be sure you'll hit your target or have a clear background if you miss, or else!
A flat modifier to your roll against your target, as described in rollTackle(). Slightly misleading, skills aren't relevant here, this is a matter of what type of gloves (or whatever) is granting you the ability to tackle.
How fast you sail through the air. Standard tackles are 1 speed, but gloves that throw you faster come at a cost: higher speeds make it more likely you'll be badly injured if you fly into a non-mob obstacle.
Launching a tackle calls Knockdown on you for this long, so this is your cooldown. Once you stand back up, you can tackle again.
min_distance
Some gloves, generally ones that increase mobility, may have a minimum distance to fly. Rocket gloves are especially dangerous with this, be sure you'll hit your target or have a clear background if you miss, or else!
range
Your max range for how far you can tackle.
skill_mod
A flat modifier to your roll against your target, as described in rollTackle(). Slightly misleading, skills aren't relevant here, this is a matter of what type of gloves (or whatever) is granting you the ability to tackle.
speed
How fast you sail through the air. Standard tackles are 1 speed, but gloves that throw you faster come at a cost: higher speeds make it more likely you'll be badly injured if you fly into a non-mob obstacle.
stamina_cost
How much stamina it takes to launch a tackle
tackle
The throwdatum we're currently dealing with, if we need it
Proc Details
checkObstacle
Check to see if we hit a table, and if so, make a big mess!
checkTackle
See if we can tackle or not. If we can, leap!
registerTackle
Store the thrownthing datum for later use
rollTackle
rollTackle()
+
This handles all of the modifiers for the actual carbon-on-carbon tackling, and gets its own proc because of how many there are (with plenty more in mind!)
+
The base roll is between (-3, 3), with negative numbers favoring the target, and positive numbers favoring the tackler. The target and the tackler are both assessed for
+how easy they are to knock over, with clumsiness and dwarfiness being strong maluses for each, and gigantism giving a bonus for each. These numbers and ideas
+are absolutely subject to change.
+
In addition, after subtracting the defender's mod and adding the attacker's mod to the roll, the component's base (skill) mod is added as well. Some sources of tackles
+are better at taking people down, like the bruiser and rocket gloves, while the dolphin gloves have a malus in exchange for better mobility.
sack
sack()
+
sack() is called when you actually smack into something, assuming we're mid-tackle. First it deals with smacking into non-carbons, in two cases:
+
+
If it's a non-carbon mob, we don't care, get out of here and do normal thrown-into-mob stuff
+
Else, if it's something dense (walls, machinery, structures, most things other than the floor), go to splat() and get ready for some high grade shit
+
+
If it's a carbon we hit, we'll call rollTackle() which rolls a die and calculates modifiers for both the tackler and target, then gives us a number. Negatives favor the target, while positives favor the tackler.
+Check rollTackle() for a more thorough explanation on the modifiers at play.
+
Then, we figure out what effect we want, and we get to work! Note that with standard gripper gloves and no modifiers, the range of rolls is (-3, 3). The results are as follows, based on what we rolled:
+
+
-inf to -5: Seriously botched tackle, tackler suffers a concussion, brute damage, and a 3 second paralyze, target suffers nothing
+
-4 to -2: weak tackle, tackler gets 3 second knockdown, target gets shove slowdown but is otherwise fine
+
-1 to 0: decent tackle, tackler gets up a bit quicker than the target
+
1: solid tackle, tackler has more of an advantage getting up quicker
+
2 to 4: expert tackle, tackler has sizeable advantage and lands on their feet with a free passive grab
+
5 to inf: MONSTER tackle, tackler gets up immediately and gets a free aggressive grab, target takes sizeable stamina damage from the hit and is paralyzed for one and a half seconds and knocked down for three seconds
+
+
Finally, we return a bitflag to [COMSIG_MOVABLE_IMPACT] that forces the hitpush to false so that we don't knock them away.
splat
splat()
+
This is where we handle diving into dense atoms, generally with effects ranging from bad to REALLY bad. This works as a percentile roll that is modified in two steps as detailed below. The higher
+the roll, the more severe the result.
+
Mod 1: Speed
+* Base tackle speed is 1, which is what normal gripper gloves use. For other sources with higher speed tackles, like dolphin and ESPECIALLY rocket gloves, we obey Newton's laws and hit things harder.
+* For every unit of speed above 1, move the lower bound of the roll up by 15. Unlike Mod 2, this only serves to raise the lower bound, so it can't be directly counteracted by anything you can control.
+
Mod 2: Misc
+-Flat modifiers, these take whatever you rolled and add/subtract to it, with the end result capped between the minimum from Mod 1 and 100. Note that since we can't roll higher than 100 to start with,
+wearing a helmet should be enough to remove any chance of permanently paralyzing yourself and dramatically lessen knocking yourself unconscious, even with rocket gloves. Will expand on maybe
+* Wearing a helmet: -6
+* Wearing armor: -6
+* Clumsy: +6
+
Effects: Below are the outcomes based off your roll, in order of increasing severity
+* 1-63: Knocked down for a few seconds and a bit of brute and stamina damage
+* 64-83: Knocked silly, gain some confusion as well as the above
+* 84-93: Cranial trauma, get a concussion and more confusion, plus more damage
+* 94-98: Knocked unconscious, significant chance to get a random mild brain trauma, as well as a fair amount of damage
+* 99-100: Break your spinal cord, get paralyzed, take a bunch of damage too. Very unlucky!
splatWindow
A special case for splatting for handling windows
\ No newline at end of file
diff --git a/datum/component/twitch_plays.html b/datum/component/twitch_plays.html
new file mode 100644
index 000000000000..e858a6a1f7ad
--- /dev/null
+++ b/datum/component/twitch_plays.html
@@ -0,0 +1 @@
+/datum/component/twitch_plays - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/component/twitch_plays/simple_movement.html b/datum/component/twitch_plays/simple_movement.html
new file mode 100644
index 000000000000..3ba567714827
--- /dev/null
+++ b/datum/component/twitch_plays/simple_movement.html
@@ -0,0 +1 @@
+/datum/component/twitch_plays/simple_movement - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/component/two_handed.html b/datum/component/two_handed.html
new file mode 100644
index 000000000000..40c06da3ae3c
--- /dev/null
+++ b/datum/component/two_handed.html
@@ -0,0 +1,25 @@
+/datum/component/two_handed - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
two_handed
Two Handed Component
+
When applied to an item it will make it two handed
The multiplier applied to force when wielded, does not work with force_wielded, and force_unwielded
icon_wielded
Does it have to be held in both hands
offhand_item
The icon that will be used when wielded
require_twohands
Play sound on attack when wielded
sharpened_increase
Reference to the offhand created for the item
unwieldsound
Play sound when wielded
wieldsound
The force of the item when unweilded
Proc Details
Initialize
The amount of increase recived from sharpening the item
+Two Handed component
+
vars:
+
+
require_twohands (optional) Does the item need both hands to be carried
+
wieldsound (optional) The sound to play when wielded
+
unwieldsound (optional) The sound to play when unwielded
+
attacksound (optional) The sound to play when wielded and attacking
+
force_multiplier (optional) The force multiplier when wielded, do not use with force_wielded, and force_unwielded
+
force_wielded (optional) The force setting when the item is wielded, do not use with force_multiplier
+
force_unwielded (optional) The force setting when the item is unwielded, do not use with force_multiplier
+
icon_wielded (optional) The icon to be used when wielded
+
on_attack
on_attack triggers on attack with the parent item
on_attack_self
Triggered on attack self of the item containing the component
on_drop
Triggered on drop of item containing the component
on_equip
Triggered on equip of the item containing the component
on_moved
on_moved Triggers on item moved
on_sharpen
on_sharpen Triggers on usage of a sharpening stone on the item
on_swap_hands
on_swap_hands Triggers on swapping hands, blocks swap if the other hand is busy
on_update_icon
on_update_icon triggers on call to update parent items icon
+
Updates the icon using icon_wielded if set
unwield
Unwield the two handed item
+
vars:
+
+
user The mob/living/carbon that is unwielding the item
+
show_message (option) show a message to chat on unwield
+
wield
Wield the two handed item in both hands
+
vars:
+
+
user The mob/living/carbon that is wielding the item
+
\ No newline at end of file
diff --git a/datum/component/uplink.html b/datum/component/uplink.html
new file mode 100644
index 000000000000..a5edf888324c
--- /dev/null
+++ b/datum/component/uplink.html
@@ -0,0 +1,4 @@
+/datum/component/uplink - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
uplink
Uplinks
+
All /obj/item(s) have a hidden_uplink var. By default it's null. Give the item one with 'new(src') (it must be in it's contents). Then add 'uses.'
+Use whatever conditionals you want to check that the user has an uplink, and then call interact() on their uplink.
+You might also want the uplink menu to open if active. Check if the uplink is 'active' and then interact() with it.
Instructions on how to access the uplink based on location
Var Details
unlock_text
Instructions on how to access the uplink based on location
\ No newline at end of file
diff --git a/datum/component/virtual_reality.html b/datum/component/virtual_reality.html
new file mode 100644
index 000000000000..8b8c4d9322fb
--- /dev/null
+++ b/datum/component/virtual_reality.html
@@ -0,0 +1,31 @@
+/datum/component/virtual_reality - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
virtual_reality
The virtual reality turned component.
+Originally created to overcome issues of mob polymorphing locking the player inside virtual reality
+and allow for a more "immersive" virtual reality in a virtual reality experience.
+It relies on comically complex order of logic, expect things to break if procs such as mind/transfer_to() are revamped.
+In short, a barebone not so hardcoded VR framework.
+If you plan to add more devices that make use of this component, remember to isolate their code outta here where possible.
Takes care of moving the component from a mob to another when their mind or ckey is transferred.
+The very reason this component even exists (else one would be stuck playing as a monky if monkyified)
Called when someone or something else is somewhat about to replace the mastermind's mob key somehow.
+And potentially lock the player in a broken virtual reality plot. Not really something to be proud of.
Called to stop the player mind from being transferred should the new mob happen to be one of our masterminds'.
+Since the target's mind.current is going to be null'd in the mind transfer process,
+This has to be done in a different signal proc than on_player_transfer(), by then the mastermind.current will be null.
Takes care of deleting itself, moving the player back to the mastermind's current and queueing the parent for deletion.
+It supports nested virtual realities by recursively calling vr_in_a_vr(), which in turns calls quit(),
+up to the deepest level, where the ckey will be transferred back to our mastermind's mob instead.
+The above operation is skipped when session_paused is TRUE (ergo no player in control of the current mob).
+vars:
Called when the mastermind mind is transferred to another mob.
+This is pretty much just going to simply quit the session until machineries support polymorphed occupants etcetera.
emag_act() hook. Makes the game deadlier, killing the mastermind mob too should the parent die.
Proc Details
PostTransfer
Required for the component to be transferable from mob to mob.
action_trigger
The following procs simply acts as hooks for quit(), since components do not use callbacks anymore
connect
Called when attempting to connect a mob to a virtual reality mob.
+This will return FALSE if the mob is without player or dead. TRUE otherwise
on_player_transfer
Takes care of moving the component from a mob to another when their mind or ckey is transferred.
+The very reason this component even exists (else one would be stuck playing as a monky if monkyified)
player_hijacked
Called when someone or something else is somewhat about to replace the mastermind's mob key somehow.
+And potentially lock the player in a broken virtual reality plot. Not really something to be proud of.
pre_player_transfer
Called to stop the player mind from being transferred should the new mob happen to be one of our masterminds'.
+Since the target's mind.current is going to be null'd in the mind transfer process,
+This has to be done in a different signal proc than on_player_transfer(), by then the mastermind.current will be null.
quit
Takes care of deleting itself, moving the player back to the mastermind's current and queueing the parent for deletion.
+It supports nested virtual realities by recursively calling vr_in_a_vr(), which in turns calls quit(),
+up to the deepest level, where the ckey will be transferred back to our mastermind's mob instead.
+The above operation is skipped when session_paused is TRUE (ergo no player in control of the current mob).
+vars:
+
+
deathcheck is used to kill the master, you want this FALSE unless for stuff that doesn't involve emagging.
+
cleanup is used to queue the parent for the next vr_clean_master's run, where they'll be deleted should they be dead.
+
mob/override is used for the recursive virtual reality explained above and shouldn't be used outside of vr_in_a_vr().
+
switch_player
Called when the mastermind mind is transferred to another mob.
+This is pretty much just going to simply quit the session until machineries support polymorphed occupants etcetera.
vr_in_a_vr
Used for recursive virtual realities shenanigeans and should be called by the above proc.
you_only_live_once
emag_act() hook. Makes the game deadlier, killing the mastermind mob too should the parent die.
\ No newline at end of file
diff --git a/datum/computer_file/program.html b/datum/computer_file/program.html
new file mode 100644
index 000000000000..8a26f56b59f5
--- /dev/null
+++ b/datum/computer_file/program.html
@@ -0,0 +1,31 @@
+/datum/computer_file/program - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Whether to highlight our program in the main screen. Intended for alerts, but loosely available for any need to notify of changed conditions. Think Windows task bar highlighting. Available even if alerts are muted.
NTNet status, updated every tick by computer running this program. Don't use this for checks if NTNet works, computers do that. Use this for calculations, etc.
Optional, if above is set to 1 checks for specific function of NTNet (currently NTNET_SOFTWAREDOWNLOAD, NTNET_PEERTOPEER, NTNET_SYSTEMCONTROL and NTNET_COMMUNICATION)
Example: "something.gif" - a header image that will be rendered in computer's UI when this program is running at background. Images are taken from /icons/program_icons. Be careful not to use too large images!
Check if the user can run program. Only humans can operate computer. Automatically called in run_program()
+ID must be inserted into a card slot to be read. If the program is not currently installed (as is the case when
+NT Software Hub is checking available software), a list can be given to be used instead.
+Arguments:
+user is a ref of the mob using the device.
+loud is a bool deciding if this proc should use to_chats
+access_to_check is an access level that will be checked against the ID
+transfer, if TRUE and access_to_check is null, will tell this proc to use the program's transfer_access in place of access_to_check
+access can contain a list of access numbers to check against. If access is not empty, it will be used istead of checking any inserted ID.
Runs when the device is used to attack an atom in non-combat mode.
Var Details
alert_able
Whether this program can send alerts while minimized or closed. Used to show a mute button per program in the file manager
alert_pending
Whether to highlight our program in the main screen. Intended for alerts, but loosely available for any need to notify of changed conditions. Think Windows task bar highlighting. Available even if alerts are muted.
alert_silenced
Whether the user has muted this program's ability to send alerts.
available_on_ntnet
Whether the program can be downloaded from NTNet. Set to FALSE to disable.
available_on_syndinet
Whether the program can be downloaded from SyndiNet (accessible via emagging the computer). Set to TRUE to enable.
category
Category in the NTDownloader.
computer
Device that runs this program.
extended_desc
Short description of this program's function.
filedesc
User-friendly name of this program.
filename
File name. FILE NAME MUST BE UNIQUE IF YOU WANT THE PROGRAM TO BE DOWNLOADABLE FROM NTNET!
ntnet_status
NTNet status, updated every tick by computer running this program. Don't use this for checks if NTNet works, computers do that. Use this for calculations, etc.
program_icon
Font Awesome icon to use as this program's icon in the modular computer main menu. Defaults to a basic program maximize window icon if not overridden.
program_icon_state
Program-specific screen icon state
program_state
PROGRAM_STATE_KILLED or PROGRAM_STATE_BACKGROUND or PROGRAM_STATE_ACTIVE - specifies whether this program is running.
required_access
List of required accesses to run the program.
requires_ntnet
Set to 1 for program to require nonstop NTNet connection to run. If NTNet connection is lost program crashes.
requires_ntnet_feature
Optional, if above is set to 1 checks for specific function of NTNet (currently NTNET_SOFTWAREDOWNLOAD, NTNET_PEERTOPEER, NTNET_SYSTEMCONTROL and NTNET_COMMUNICATION)
tgui_id
Name of the tgui interface
transfer_access
List of required access to download or file host the program
ui_header
Example: "something.gif" - a header image that will be rendered in computer's UI when this program is running at background. Images are taken from /icons/program_icons. Be careful not to use too large images!
usage_flags
Bitflags (PROGRAM_CONSOLE, PROGRAM_LAPTOP, PROGRAM_TABLET combination) or PROGRAM_ALL
Proc Details
can_run
Check if the user can run program. Only humans can operate computer. Automatically called in run_program()
+ID must be inserted into a card slot to be read. If the program is not currently installed (as is the case when
+NT Software Hub is checking available software), a list can be given to be used instead.
+Arguments:
+user is a ref of the mob using the device.
+loud is a bool deciding if this proc should use to_chats
+access_to_check is an access level that will be checked against the ID
+transfer, if TRUE and access_to_check is null, will tell this proc to use the program's transfer_access in place of access_to_check
+access can contain a list of access numbers to check against. If access is not empty, it will be used istead of checking any inserted ID.
run_emag
Called by the device when it is emagged.
+
Emagging the device allows certain programs to unlock new functions. However, the program will
+need to be downloaded first, and then handle the unlock on their own in their run_emag() proc.
+The device will allow an emag to be run multiple times, so the user can re-emag to run the
+override again, should they download something new. The run_emag() proc should return TRUE if
+the emagging affected anything, and FALSE if no change was made (already emagged, or has no
+emag functions).
tap
Runs when the device is used to attack an atom in non-combat mode.
+
Simulates using the device to read or scan something. Tap is called by the computer during pre_attack
+and sends us all of the related info. If we return TRUE, the computer will stop the attack process
+there. What we do with the info is up to us, but we should only return TRUE if we actually perform
+an action of some sort.
+Arguments:
+A is the atom being tapped
+user is the person making the attack action
+params is anything the pre_attack() proc had in the same-named variable.
\ No newline at end of file
diff --git a/datum/computer_file/program/aidiag.html b/datum/computer_file/program/aidiag.html
new file mode 100644
index 000000000000..8f1ba54134bb
--- /dev/null
+++ b/datum/computer_file/program/aidiag.html
@@ -0,0 +1 @@
+/datum/computer_file/program/aidiag - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Variable dictating if we are in the process of restoring the AI in the inserted intellicard
Var Details
restoring
Variable dictating if we are in the process of restoring the AI in the inserted intellicard
\ No newline at end of file
diff --git a/datum/computer_file/program/alarm_monitor.html b/datum/computer_file/program/alarm_monitor.html
new file mode 100644
index 000000000000..2e395cf3332b
--- /dev/null
+++ b/datum/computer_file/program/alarm_monitor.html
@@ -0,0 +1 @@
+/datum/computer_file/program/alarm_monitor - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/computer_file/program/arcade.html b/datum/computer_file/program/arcade.html
new file mode 100644
index 000000000000..9de8f4463686
--- /dev/null
+++ b/datum/computer_file/program/arcade.html
@@ -0,0 +1 @@
+/datum/computer_file/program/arcade - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
This disables buttom actions from having any impact if TRUE. Resets to FALSE when the player is allowed to make an action again.
Var Details
boss_id
Determines which boss image to use on the UI.
game_active
Returns TRUE if the game is being played.
heads_up
Shows what text is shown on the app, usually showing the log of combat actions taken by the player.
pause_state
This disables buttom actions from having any impact if TRUE. Resets to FALSE when the player is allowed to make an action again.
\ No newline at end of file
diff --git a/datum/computer_file/program/borg_monitor.html b/datum/computer_file/program/borg_monitor.html
new file mode 100644
index 000000000000..4401e9890419
--- /dev/null
+++ b/datum/computer_file/program/borg_monitor.html
@@ -0,0 +1 @@
+/datum/computer_file/program/borg_monitor - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
This proc is used to determin if a borg should be shown in the list (based on the borg's scrambledcodes var). Syndicate version overrides this to show only syndicate borgs.
Var Details
DL_progress
reference of a borg if we're downloading a log, or null if not.
DL_source
A list to copy a borg's IC log list into
loglist
Bool of if this app has already been emagged
Proc Details
Destroy
Progress of current download, 0 to 100, -1 for no current download
checkID
Gets the ID's name, if one is inserted into the device. This is a seperate proc solely to be overridden by the syndicate version of the app.
evaluate_borg
This proc is used to determin if a borg should be shown in the list (based on the borg's scrambledcodes var). Syndicate version overrides this to show only syndicate borgs.
\ No newline at end of file
diff --git a/datum/computer_file/program/budgetorders.html b/datum/computer_file/program/budgetorders.html
new file mode 100644
index 000000000000..1f65665ae8ce
--- /dev/null
+++ b/datum/computer_file/program/budgetorders.html
@@ -0,0 +1 @@
+/datum/computer_file/program/budgetorders - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The name of the shuttle template being used as the cargo shuttle. 'supply' is default and contains critical code. Don't change this unless you know what you're doing.
If this console can loan the cargo shuttle. Set to false to disable.
Var Details
blockade_warning
If you're being raided by pirates, what do you tell the crew?
can_approve_requests
Can this console approve purchase requests?
cargo_account
The account this console processes and displays. Independent from the account the shuttle processes.
cargo_shuttle
The name of the shuttle template being used as the cargo shuttle. 'supply' is default and contains critical code. Don't change this unless you know what you're doing.
contraband
Can the tablet see or buy illegal stuff?
docking_away
The docking port called when leaving the station.
docking_home
The docking port called when returning to the station.
requestonly
Are you actually placing orders with it?
safety_warning
What do we say when the shuttle moves with living beings on it.
self_paid
Is it being bought from a personal account, or is it being done via a budget/cargo?
stationcargo
If this console can loan the cargo shuttle. Set to false to disable.
\ No newline at end of file
diff --git a/datum/computer_file/program/card_mod.html b/datum/computer_file/program/card_mod.html
new file mode 100644
index 000000000000..f9d2c80667f6
--- /dev/null
+++ b/datum/computer_file/program/card_mod.html
@@ -0,0 +1 @@
+/datum/computer_file/program/card_mod - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Which departments this computer has access to. Defined as access regions. null = all departments
Var Details
target_dept
Which departments this computer has access to. Defined as access regions. null = all departments
\ No newline at end of file
diff --git a/datum/computer_file/program/portrait_printer.html b/datum/computer_file/program/portrait_printer.html
new file mode 100644
index 000000000000..d4434235161f
--- /dev/null
+++ b/datum/computer_file/program/portrait_printer.html
@@ -0,0 +1,3 @@
+/datum/computer_file/program/portrait_printer - SPLURT Station 13SPLURT Station 13 - Modules - Types
portrait_printer
portrait printer!
+
Program that lets the curator browse all of the portraits in the database
+They are free to print them out as they please.
\ No newline at end of file
diff --git a/datum/computer_file/program/radar.html b/datum/computer_file/program/radar.html
new file mode 100644
index 000000000000..79530e57e5f0
--- /dev/null
+++ b/datum/computer_file/program/radar.html
@@ -0,0 +1,22 @@
+/datum/computer_file/program/radar - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Used by the tgui interface, themed NT or Syndicate.
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.
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.
\ No newline at end of file
diff --git a/datum/computer_file/program/robocontrol.html b/datum/computer_file/program/robocontrol.html
new file mode 100644
index 000000000000..3aad772d24c1
--- /dev/null
+++ b/datum/computer_file/program/robocontrol.html
@@ -0,0 +1 @@
+/datum/computer_file/program/robocontrol - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Used to find the location of the user for the purposes of summoning robots.
Var Details
botcount
Number of simple robots on-station.
current_access
Access granted by the used to summon robots.
current_user
Used to find the location of the user for the purposes of summoning robots.
\ No newline at end of file
diff --git a/datum/computer_file/program/robotact.html b/datum/computer_file/program/robotact.html
new file mode 100644
index 000000000000..38043f6b5d95
--- /dev/null
+++ b/datum/computer_file/program/robotact.html
@@ -0,0 +1,3 @@
+/datum/computer_file/program/robotact - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Forces a full update of the UI, if currently open.
Var Details
tablet
A typed reference to the computer, specifying the borg tablet type
Proc Details
force_full_update
Forces a full update of the UI, if currently open.
+
Forces an update that includes refreshing ui_static_data. Called by
+law changes and borg log additions.
\ No newline at end of file
diff --git a/datum/computer_file/program/secureye.html b/datum/computer_file/program/secureye.html
new file mode 100644
index 000000000000..e4fdbe75af5d
--- /dev/null
+++ b/datum/computer_file/program/secureye.html
@@ -0,0 +1 @@
+/datum/computer_file/program/secureye - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/computer_file/program/signaler.html b/datum/computer_file/program/signaler.html
new file mode 100644
index 000000000000..aecf06d61ba4
--- /dev/null
+++ b/datum/computer_file/program/signaler.html
@@ -0,0 +1 @@
+/datum/computer_file/program/signaler - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/computer_file/program/supermatter_monitor.html b/datum/computer_file/program/supermatter_monitor.html
new file mode 100644
index 000000000000..0f4fd0e09d68
--- /dev/null
+++ b/datum/computer_file/program/supermatter_monitor.html
@@ -0,0 +1,14 @@
+/datum/computer_file/program/supermatter_monitor - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Sets up the signal listener for Supermatter delaminations.
Proc Details
clear_signals
Removes the signal listener for Supermatter delaminations from the selected supermatter.
+
Pretty much does what it says.
send_alert
Sends an SM delam alert to the computer.
+
Triggered by a signal from the selected supermatter, this proc sends a notification
+to the computer if the program is either closed or minimized. We do not send these
+notifications to the comptuer if we're the active program, because engineers fixing
+the supermatter probably don't need constant beeping to distract them.
send_start_alert
Sends an SM delam start alert to the computer.
+
Triggered by a signal from the selected supermatter at the start of a delamination,
+this proc sends a notification to the computer if this program is the active one.
+We do this so that people carrying a tablet with NT CIMS open but with the NTOS window
+closed will still get one audio alert. This is not sent to computers with the program
+minimized or closed to avoid double-notifications.
set_signals
Sets up the signal listener for Supermatter delaminations.
+
Unregisters any old listners for SM delams, and then registers one for the SM refered
+to in the active variable. This proc is also used with no active SM to simply clear
+the signal and exit.
\ No newline at end of file
diff --git a/datum/config_entry.html b/datum/config_entry.html
new file mode 100644
index 000000000000..3e3dd202a225
--- /dev/null
+++ b/datum/config_entry.html
@@ -0,0 +1 @@
+/datum/config_entry - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Read-only default value for this config entry, used for resetting value to defaults when necessary. This is what config_entry_value is initially set to
Returns the value of the configuration datum to its default, used for resetting a config value. Note this also sets the protection back to default.
Var Details
abstract_type
Do not instantiate if type matches this
config_entry_value
The configured value for this entry. This shouldn't be initialized in code, instead set default
default
Read-only default value for this config entry, used for resetting value to defaults when necessary. This is what config_entry_value is initially set to
default_protection
Stores the original protection configuration, used for set_default()
deprecated_by
The config name of a configuration type that depricates this, if it exists
dupes_allowed
Controls if error is thrown when duplicate configuration values for this entry type are encountered
modified
Set to TRUE if the default has been overridden by a config entry
name
Read-only, this is determined by the last portion of the derived entry type
postload_required
Requires running OnPostload()
protection
The /datum/config_entry type that supercedes this one
resident_file
The file which this was loaded from, if any
vv_VAS
Force validate and set on VV. VAS proccall guard will run regardless.
Proc Details
set_default
Returns the value of the configuration datum to its default, used for resetting a config value. Note this also sets the protection back to default.
\ No newline at end of file
diff --git a/datum/config_entry/keyed_list.html b/datum/config_entry/keyed_list.html
new file mode 100644
index 000000000000..4d3b0f91a8f8
--- /dev/null
+++ b/datum/config_entry/keyed_list.html
@@ -0,0 +1 @@
+/datum/config_entry/keyed_list - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
whether the key names will be lowercased on ValidateAndSet or not.
Var Details
lowercase_key
whether the key names will be lowercased on ValidateAndSet or not.
\ No newline at end of file
diff --git a/datum/config_entry/str_list.html b/datum/config_entry/str_list.html
new file mode 100644
index 000000000000..46cb24893ecf
--- /dev/null
+++ b/datum/config_entry/str_list.html
@@ -0,0 +1 @@
+/datum/config_entry/str_list - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
str_list
List config entry, used for configuring a list of strings
whether the string elements will be lowercased on ValidateAndSet or not.
Var Details
lowercase
whether the string elements will be lowercased on ValidateAndSet or not.
\ No newline at end of file
diff --git a/datum/config_entry/string.html b/datum/config_entry/string.html
new file mode 100644
index 000000000000..6c59e29a0777
--- /dev/null
+++ b/datum/config_entry/string.html
@@ -0,0 +1 @@
+/datum/config_entry/string - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
whether the string will be lowercased on ValidateAndSet or not.
Var Details
lowercase
whether the string will be lowercased on ValidateAndSet or not.
\ No newline at end of file
diff --git a/datum/controller/configuration.html b/datum/controller/configuration.html
new file mode 100644
index 000000000000..8d22bc6eaf12
--- /dev/null
+++ b/datum/controller/configuration.html
@@ -0,0 +1 @@
+/datum/controller/configuration - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/controller/global_vars.html b/datum/controller/global_vars.html
new file mode 100644
index 000000000000..998d906e1ad1
--- /dev/null
+++ b/datum/controller/global_vars.html
@@ -0,0 +1,32 @@
+/datum/controller/global_vars - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Log associated with [/proc/log_suspicious_login()] - Intended to hold all logins that failed due to suspicious circumstances such as ban detection, CID randomisation etc.
Global GPS_list. All GPS components get saved in here for easy reference.
acid_overlay
ACID
adamantine_recipes
Others
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.
announcer_keys
Global list of all of our announcer keys.
areas_by_type
An association from typepath to area instance. Only includes areas with unique set.
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.
current_living_antags
All alive antags with clients.
current_observers_list
All observers with clients that joined as observers.
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.
dummySave
Save file used in icon2base64. Used for converting icons to base64.
em_block_color
A globaly cached version of EM_BLOCK_COLOR for quick access.
em_mask_matrix
A globaly cached version of EM_MASK_MATRIX for quick access.
emissive_color
A globaly cached version of EMISSIVE_COLOR for quick access.
families_override_theme
Forces the Families theme to be the one in this variable via variable editing. Used for debugging.
focused_tests
A list of every test that is currently focused.
+Use the PERFORM_ALL_TESTS macro instead.
fun_state
tgui state: fun_state
+
Checks that the user has the fun privilige.
gateway_destinations
List of possible gateway destinations.
glide_size_multiplier
Compensating for time dialation
hands_state
tgui state: hands_state
+
Checks that the src_object is in the user's hands.
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.
language_menu_state
tgui state: language_menu_state
living_heart_cache
Heretics --
mafia_bad_signup
list of ghosts who want to play mafia that have since disconnected. They are kept in the lobby, but not counted for starting a game.
mafia_game
the current global mafia game running.
mafia_signup
list of ghosts who want to play mafia, every time someone enters the list it checks to see if enough are in
marker_beacon_colors
Marker Beacons
megafauna_spawn_list
Global list of megafauna spawns on cave gen
mod_themes
Global list of all /datum/mod_theme
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_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.
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.
picture_log_directory
Picture logging
random_zlevels_generated
Away missions, VR, random z levels stuff.
reality_smash_track
We want reality_smash_tracker to exist only once and be accesable from anywhere.
req_console_assistance
Requests Console
+
Originally written by errorage, updated by: Carn, needs more work though. I just added some security fixes
screentip_context_icons
Stores the cursor hint icons for screentip context.
self_state
tgui state: self_state
+
Only checks that the user and src_object are the same.
slavers_ransom_values
Price table for when trying to set slave prices automatically
subsystem_log
cit logging
teleportlocs
A list of teleport locations
+
Adding a wizard area teleport list because motherfucking lag -- Urist
+I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game
the_gateway
Station home gateway
trait_name_map
value -> trait name, generated on use from trait_by_type global
typing_indicator_overlays
state = overlay/image/object/type/whatever add_overlay will accept
ui_vorepanel_state
tgui state: vorepanel_state
+
Only checks that the user and src_object are the same.
world_suspicious_login_log
Log associated with [/proc/log_suspicious_login()] - Intended to hold all logins that failed due to suspicious circumstances such as ban detection, CID randomisation etc.
z_state
tgui state: z_state
+
Only checks that the Z-level of the user and src_object are the same.
\ No newline at end of file
diff --git a/datum/controller/master.html b/datum/controller/master.html
new file mode 100644
index 000000000000..070b45c4ea6a
--- /dev/null
+++ b/datum/controller/master.html
@@ -0,0 +1,3 @@
+/datum/controller/master - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
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_runlevel
for scheduling different subsystems for different stages of the round
current_ticklimit
current tick limit, assigned before running a subsystem.
+used by CHECK_TICK as well so that the procs subsystems call can obey that SS's tick limits
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
map_loading
Are we loading in a new map?
processing
Are we processing (higher values increase the processing delay by n ticks)
queue_head
Start of queue linked list
queue_tail
End of queue linked list (used for appending to the list)
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().
Proc Details
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.
\ No newline at end of file
diff --git a/datum/controller/subsystem.html b/datum/controller/subsystem.html
new file mode 100644
index 000000000000..77dc7aa2ff43
--- /dev/null
+++ b/datum/controller/subsystem.html
@@ -0,0 +1,8 @@
+/datum/controller/subsystem - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
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
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)
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.
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
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
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.
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.
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_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
OnConfigLoad
Called after the config has been loaded or reloaded.
PreInit
datum/controller/subsystem/New()
postpone
Causes the next "cycle" fires to be missed. Effect is accumulative but can reset by calling update_nextfire(reset_time = TRUE)
update_nextfire
+
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)
+
\ No newline at end of file
diff --git a/datum/controller/subsystem/achievements.html b/datum/controller/subsystem/achievements.html
new file mode 100644
index 000000000000..adef759d2b2b
--- /dev/null
+++ b/datum/controller/subsystem/achievements.html
@@ -0,0 +1 @@
+/datum/controller/subsystem/achievements - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/controller/subsystem/atoms.html b/datum/controller/subsystem/atoms.html
new file mode 100644
index 000000000000..63f9d4d1fb9a
--- /dev/null
+++ b/datum/controller/subsystem/atoms.html
@@ -0,0 +1 @@
+/datum/controller/subsystem/atoms - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Prepares an atom to be deleted once the atoms SS is initialized.
Var Details
queued_deletions
Atoms that will be deleted once the subsystem is initialized
Proc Details
InitAtom
Init this specific atom
prepare_deletion
Prepares an atom to be deleted once the atoms SS is initialized.
\ No newline at end of file
diff --git a/datum/controller/subsystem/communications.html b/datum/controller/subsystem/communications.html
new file mode 100644
index 000000000000..d2f277b9ff23
--- /dev/null
+++ b/datum/controller/subsystem/communications.html
@@ -0,0 +1,14 @@
+/datum/controller/subsystem/communications - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Should only really happen during april fools.
+Checks to see that it's been at least 5 minutes since the last emergency meeting call.
+Arguments:
+
+
user - Mob who called the meeting
+
emergency_meeting
Call an emergency meeting
+
Communications subsystem wrapper for the call_emergency_meeting world proc.
+Checks to make sure the proc can be called, and handles
+relevant logging and timing. See that proc definition for more detail.
+Arguments:
+
+
user - Mob who called the meeting
+
\ No newline at end of file
diff --git a/datum/controller/subsystem/discord.html b/datum/controller/subsystem/discord.html
new file mode 100644
index 000000000000..208390b4d261
--- /dev/null
+++ b/datum/controller/subsystem/discord.html
@@ -0,0 +1,61 @@
+/datum/controller/subsystem/discord - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Generate a timebound token for discord verification
+
This uses the common word list to generate a six word random token, this token can then be fed to a discord bot that has access
+to the same database, and it can use it to link a ckey to a discord id, with minimal user effort
+
It returns the token to the calling proc, after inserting an entry into the discord_link table of the following form
+
(unique_id, ckey, null, the current time, the one time token generated)
+the null value will be filled out with the discord id by the integrated discord bot when a user verifies
+
+
Notes:
+
+
The token is guaranteed to unique during it's validity period
+
The validity period is currently set at 4 hours
+
a token may not be unique outside it's validity window (to reduce conflicts)
+
+
Arguments:
+
+
ckey_for a string representing the ckey this token is for
+
+
Returns a string representing the one time token
lookup_ckey
Given a discord id as a string, look up the ckey attached to that account, if any
+
This gets the most recent entry from the discord_link table that is associated with this discord id snowflake
+
Arguments:
+
+
lookup_id The discord id as a string
+
lookup_id
Given a ckey, look up the discord user id attached to the user, if any
+
This gets the most recent entry from the discord link table that is associated with the given ckey
+
Arguments:
+
+
lookup_ckey A string representing the ckey to search on
+
\ No newline at end of file
diff --git a/datum/controller/subsystem/economy.html b/datum/controller/subsystem/economy.html
new file mode 100644
index 000000000000..5baac755842b
--- /dev/null
+++ b/datum/controller/subsystem/economy.html
@@ -0,0 +1,3 @@
+/datum/controller/subsystem/economy - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The modifier multiplied to the value of cargo pack prices.
Var Details
bounty_modifier
The modifier multiplied to the value of bounties paid out.
export_total
Contains the message to send to newscasters about earnings, updated on price_update()
+Total value of exported materials.
import_total
Total value of imported goods.
mail_waiting
Number of mail items generated.
pack_price_modifier
The modifier multiplied to the value of cargo pack prices.
\ No newline at end of file
diff --git a/datum/controller/subsystem/input.html b/datum/controller/subsystem/input.html
new file mode 100644
index 000000000000..42a57c1d1621
--- /dev/null
+++ b/datum/controller/subsystem/input.html
@@ -0,0 +1 @@
+/datum/controller/subsystem/input - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
New hotkey mode macro set. All input goes into map, game keeps incessently setting your focus to map, we can use ANY all we want here; we don't care about the input bar, the user has to force the input bar every time they want to type.
Sets up the key list for classic mode for when badmins screw up vv's.
Var Details
all_macrosets
KEEP THIS UP TO DATE!
hotkey_mode_macros
Macro set for hotkeys
input_mode_macros
Macro set for classic.
macroset_classic_hotkey
Classic mode map focused macro set. Manually set because it needs to be clientside and go to macroset_classic_input.
macroset_classic_input
Classic mode input focused macro set. Manually set because we can't define ANY or ANY+UP for classic.
macroset_hotkey
New hotkey mode macro set. All input goes into map, game keeps incessently setting your focus to map, we can use ANY all we want here; we don't care about the input bar, the user has to force the input bar every time they want to type.
Proc Details
setup_macrosets
Sets up the key list for classic mode for when badmins screw up vv's.
\ No newline at end of file
diff --git a/datum/controller/subsystem/interactions.html b/datum/controller/subsystem/interactions.html
new file mode 100644
index 000000000000..1b2bc85c060f
--- /dev/null
+++ b/datum/controller/subsystem/interactions.html
@@ -0,0 +1 @@
+/datum/controller/subsystem/interactions - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Makes the interactions, they're also a global list because having it as a list and just hanging around there is stupid
Proc Details
prepare_blacklisted_mobs
Blacklisting!
prepare_interactions
Makes the interactions, they're also a global list because having it as a list and just hanging around there is stupid
\ No newline at end of file
diff --git a/datum/controller/subsystem/job.html b/datum/controller/subsystem/job.html
new file mode 100644
index 000000000000..271ea63651ae
--- /dev/null
+++ b/datum/controller/subsystem/job.html
@@ -0,0 +1,5 @@
+/datum/controller/subsystem/job - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Returns a list of jobs that we are allowed to fuck with during random events
Var Details
real_job_name
Stores an associative list of job name -> its "real" counterpart. Built to handle alt titles
Proc Details
DivideOccupations
+
Proc DivideOccupations
+
fills var "assigned_role" for all ready players.
+
This proc must not have any side effect besides of modifying "assigned_role".
+
get_valid_overflow_jobs
Returns a list of jobs that we are allowed to fuck with during random events
\ No newline at end of file
diff --git a/datum/controller/subsystem/jukeboxes.html b/datum/controller/subsystem/jukeboxes.html
new file mode 100644
index 000000000000..55329cc1d5ce
--- /dev/null
+++ b/datum/controller/subsystem/jukeboxes.html
@@ -0,0 +1 @@
+/datum/controller/subsystem/jukeboxes - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Creates audio channels for jukeboxes to use, run first to prevent init failing to fill this
Proc Details
init_channels
Creates audio channels for jukeboxes to use, run first to prevent init failing to fill this
\ No newline at end of file
diff --git a/datum/controller/subsystem/mapping.html b/datum/controller/subsystem/mapping.html
new file mode 100644
index 000000000000..51ee95b901c3
--- /dev/null
+++ b/datum/controller/subsystem/mapping.html
@@ -0,0 +1,3 @@
+/datum/controller/subsystem/mapping - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Generates an obfuscated but constant id for an original id for cases where you don't want players codediving for an id.
+WARNING: MAKE SURE PLAYERS ARE NOT ABLE TO ACCESS THIS. To save performance, it's just secret + an incrementing number. Very guessable if you know what the secret is.
Get a list of all z which have the specified trait
Var Details
biomes
All possible biomes in assoc list as type || instance
obfuscation_next_id
next id for separating obfuscated ids.
obfuscation_secret
"secret" key
random_generated_ids_by_original
Lookup list for random generated IDs.
z_to_station_z_index
Lookup for zlevel to station z. text = num.
Proc Details
get_obfuscated_id
Generates an obfuscated but constant id for an original id for cases where you don't want players codediving for an id.
+WARNING: MAKE SURE PLAYERS ARE NOT ABLE TO ACCESS THIS. To save performance, it's just secret + an incrementing number. Very guessable if you know what the secret is.
get_station_center
Prefer not to use this one too often
get_turf_above
Attempt to get the turf above the provided one according to Z traits
get_turf_below
Attempt to get the turf below the provided one according to Z traits
initialize_biomes
Initialize all biomes, assoc as type || instance
level_has_all_traits
Check if levels[z] has all of the specified traits
level_has_any_trait
Check if levels[z] has any of the specified traits
level_trait
Look up levels[z].traits[trait]
levels_by_any_trait
Get a list of all z which have any of the specified traits
levels_by_trait
Get a list of all z which have the specified trait
\ No newline at end of file
diff --git a/datum/controller/subsystem/materials.html b/datum/controller/subsystem/materials.html
new file mode 100644
index 000000000000..29bd0fb54cfd
--- /dev/null
+++ b/datum/controller/subsystem/materials.html
@@ -0,0 +1 @@
+/datum/controller/subsystem/materials - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Ran on initialize, populated the materials and materials_by_category dictionaries with their appropiate vars (See these variables for more info)
Var Details
base_stack_recipes
List of stackcrafting recipes for materials using base recipes
material_combos
A cache of all material combinations that have been used
materials
Dictionary of material.type || material ref
materials_by_category
Dictionary of category || list of material refs
materialtypes_by_category
Dictionary of category || list of material types, mostly used by rnd machines like autolathes.
rigid_stack_recipes
List of stackcrafting recipes for materials using rigid recipes
Proc Details
FindOrCreateMaterialCombo
Returns a list to be used as an object's custom_materials. Lists will be cached and re-used based on the parameters.
InitializeMaterials
Ran on initialize, populated the materials and materials_by_category dictionaries with their appropiate vars (See these variables for more info)
\ No newline at end of file
diff --git a/datum/controller/subsystem/min_spawns.html b/datum/controller/subsystem/min_spawns.html
new file mode 100644
index 000000000000..5ffa0aa87f21
--- /dev/null
+++ b/datum/controller/subsystem/min_spawns.html
@@ -0,0 +1 @@
+/datum/controller/subsystem/min_spawns - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
this hot steaming pile of garbage makes sure theres a minimum of tendrils scattered around
Var Details
init_order
this hot steaming pile of garbage makes sure theres a minimum of tendrils scattered around
\ No newline at end of file
diff --git a/datum/controller/subsystem/npcpool.html b/datum/controller/subsystem/npcpool.html
new file mode 100644
index 000000000000..db54139a5864
--- /dev/null
+++ b/datum/controller/subsystem/npcpool.html
@@ -0,0 +1 @@
+/datum/controller/subsystem/npcpool - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/controller/subsystem/parallax.html b/datum/controller/subsystem/parallax.html
new file mode 100644
index 000000000000..931ec820afe3
--- /dev/null
+++ b/datum/controller/subsystem/parallax.html
@@ -0,0 +1,5 @@
+/datum/controller/subsystem/parallax - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Returns null or list(speed, dir deg clockwise from north, windup, turnrate)
+THE RETURNED LIST MUST BE A 4-TUPLE, OR PARALLAX WILL CRASH.
+DO NOT SCREW WITH THIS UNLESS YOU KNOW WHAT YOU ARE DOING.
+
This will override area motion
get_parallax_type
Gets parallax type for zlevel.
get_parallax_vis_contents
Gets parallax added vis contents for zlevel
reset_clients_on_z
resets all parallax for clients on a z
update_clients_on_z
updates all parallax for clients on a z
update_z_motion
updates motion of all clients on z
\ No newline at end of file
diff --git a/datum/controller/subsystem/persistence.html b/datum/controller/subsystem/persistence.html
new file mode 100644
index 000000000000..74d87453ddb7
--- /dev/null
+++ b/datum/controller/subsystem/persistence.html
@@ -0,0 +1,4 @@
+/datum/controller/subsystem/persistence - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
persistence
Persistence for cleanable debris.
+
Stores recently played gamemodes, maps, etc.
+
Secret satchel persistence - allows storing of items in underfloor satchels that's loaded later.
tracks if we already loaded debris. Unlike everything else, this can actually be a major problem if some badmin procs it twice.
station_persistence_save_disabled
Marks if persistence save should be disabled
station_was_destroyed
Marks if the station got horribly destroyed
Proc Details
get_map_persistence_path
Gets the persistence path of the current map.
\ No newline at end of file
diff --git a/datum/controller/subsystem/processing/dcs.html b/datum/controller/subsystem/processing/dcs.html
new file mode 100644
index 000000000000..bec17eea0c79
--- /dev/null
+++ b/datum/controller/subsystem/processing/dcs.html
@@ -0,0 +1,7 @@
+/datum/controller/subsystem/processing/dcs - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
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
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
\ No newline at end of file
diff --git a/datum/controller/subsystem/processing/instruments.html b/datum/controller/subsystem/processing/instruments.html
new file mode 100644
index 000000000000..e868776aa827
--- /dev/null
+++ b/datum/controller/subsystem/processing/instruments.html
@@ -0,0 +1 @@
+/datum/controller/subsystem/processing/instruments - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Deciseconds between hearchecks. Too high and instruments seem to lag when people are moving around in terms of who can hear it. Too low and the server lags from this.
Single cached list for synthesizer instrument ids, so you don't have to have a new list with every synthesizer.
Var Details
current_instrument_channels
Current number of channels allocated for instruments
instrument_data
List of all instrument data, associative id = datum
max_instrument_channels
Maximum instrument channels total instruments are allowed to use. This is so you don't have instruments deadlocking all sound channels.
musician_hearcheck_mindelay
Deciseconds between hearchecks. Too high and instruments seem to lag when people are moving around in terms of who can hear it. Too low and the server lags from this.
musician_maxlinechars
Max characters per line in songs
musician_maxlines
Max lines in songs
songs
List of all song datums.
synthesizer_instrument_ids
Single cached list for synthesizer instrument ids, so you don't have to have a new list with every synthesizer.
\ No newline at end of file
diff --git a/datum/controller/subsystem/processing/station.html b/datum/controller/subsystem/processing/station.html
new file mode 100644
index 000000000000..27a308a3653e
--- /dev/null
+++ b/datum/controller/subsystem/processing/station.html
@@ -0,0 +1 @@
+/datum/controller/subsystem/processing/station - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Creates a given trait of a specific type, while also removing any blacklisted ones from the future pool.
Var Details
announcer
Currently active announcer. Starts as a type but gets initialized after traits are selected
selectable_traits_by_types
Assoc list of trait type || assoc list of traits with weighted value. Used for picking traits from a specific category.
station_traits
A list of currently active station traits
Proc Details
pick_traits
Picks traits of a specific category (e.g. bad or good) and a specified amount, then initializes them and adds them to the list of traits.
setup_trait
Creates a given trait of a specific type, while also removing any blacklisted ones from the future pool.
\ No newline at end of file
diff --git a/datum/controller/subsystem/research.html b/datum/controller/subsystem/research.html
new file mode 100644
index 000000000000..a0dcd26a8e2d
--- /dev/null
+++ b/datum/controller/subsystem/research.html
@@ -0,0 +1 @@
+/datum/controller/subsystem/research - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The global list of raw anomaly types that have been refined, for hard limits.
Var Details
anomaly_hard_limit_by_type
The hard limits of cores created for each anomaly type. For faster code lookup without switch statements.
created_anomaly_types
The global list of raw anomaly types that have been refined, for hard limits.
\ No newline at end of file
diff --git a/datum/controller/subsystem/runechat.html b/datum/controller/subsystem/runechat.html
new file mode 100644
index 000000000000..2efe4f11b5ad
--- /dev/null
+++ b/datum/controller/subsystem/runechat.html
@@ -0,0 +1 @@
+/datum/controller/subsystem/runechat - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Queue used for storing messages that are scheduled for deletion too far in the future for the buckets
Var Details
bucket_count
How many messages are in the buckets
bucket_list
List of buckets, each bucket holds every message that has to be killed that byond tick
bucket_resolution
world.tick_lag the bucket was designed for
head_offset
world.time of the first entry in the bucket list, effectively the 'start time' of the current buckets
practical_offset
Index of the first non-empty bucket
second_queue
Queue used for storing messages that are scheduled for deletion too far in the future for the buckets
\ No newline at end of file
diff --git a/datum/controller/subsystem/security_level.html b/datum/controller/subsystem/security_level.html
new file mode 100644
index 000000000000..e09935a20e03
--- /dev/null
+++ b/datum/controller/subsystem/security_level.html
@@ -0,0 +1,6 @@
+/datum/controller/subsystem/security_level - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
This is how everything should change the security level.
+
Arguments:
+
+
new_level - The new security level that will become our current level
+
\ No newline at end of file
diff --git a/datum/controller/subsystem/shuttle.html b/datum/controller/subsystem/shuttle.html
new file mode 100644
index 000000000000..cecaa55f9a8e
--- /dev/null
+++ b/datum/controller/subsystem/shuttle.html
@@ -0,0 +1,3 @@
+/datum/controller/subsystem/shuttle - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Check if we can call the evac shuttle.
+Returns TRUE if we can. Otherwise, returns a string detailing the problem.
Proc Details
canEvac
Check if we can call the evac shuttle.
+Returns TRUE if we can. Otherwise, returns a string detailing the problem.
\ No newline at end of file
diff --git a/datum/controller/subsystem/sounds.html b/datum/controller/subsystem/sounds.html
new file mode 100644
index 000000000000..cdb27d54fde2
--- /dev/null
+++ b/datum/controller/subsystem/sounds.html
@@ -0,0 +1 @@
+/datum/controller/subsystem/sounds - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
lower iteration position - Incremented and looped to get "random" sound channels for normal sounds. The channel at this index is returned when asking for a random channel.
higher reserve position - decremented and incremented to reserve sound channels, anything above this is reserved. The channel at this index is the highest unreserved channel.
Amount of channels to reserve for random usage rather than reservations being allowed to reserve all channels. Also a nice safeguard for when someone screws up.
NO AUTOMATIC CLEANUP - If you use this, you better manually free it later! Returns an integer for channel.
Var Details
channel_list
List of all channels as numbers
channel_random_low
lower iteration position - Incremented and looped to get "random" sound channels for normal sounds. The channel at this index is returned when asking for a random channel.
channel_reserve_high
higher reserve position - decremented and incremented to reserve sound channels, anything above this is reserved. The channel at this index is the highest unreserved channel.
random_channels_min
Amount of channels to reserve for random usage rather than reservations being allowed to reserve all channels. Also a nice safeguard for when someone screws up.
reserved_channels
Associative list of all reserved channels associated to their position. "[channel_number]" = index as number
using_channels
Assoc list, "[channel]" = either the datum using it or TRUE for an unsafe-reserved (datumless reservation) channel
using_channels_by_datum
Assoc list datum = list(channel1, channel2, ...) for what channels something reserved.
Proc Details
available_channels_left
How many channels we have left.
free_channel
Frees a channel and updates the datastructure. Private proc.
free_datum_channels
Frees all the channels a datum is using.
free_datumless_channels
Frees all datumless channels
free_sound_channel
Removes a channel from using list.
random_available_channel
Random available channel, returns number
random_available_channel_text
Random available channel, returns text.
reserve_channel
Reserves a channel and updates the datastructure. Private proc.
reserve_sound_channel
Reserves a channel for a datum. Automatic cleanup only when the datum is deleted. Returns an integer for channel.
reserve_sound_channel_datumless
NO AUTOMATIC CLEANUP - If you use this, you better manually free it later! Returns an integer for channel.
\ No newline at end of file
diff --git a/datum/controller/subsystem/sun.html b/datum/controller/subsystem/sun.html
new file mode 100644
index 000000000000..109c0d7a5f99
--- /dev/null
+++ b/datum/controller/subsystem/sun.html
@@ -0,0 +1 @@
+/datum/controller/subsystem/sun - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
\ No newline at end of file
diff --git a/datum/controller/subsystem/tgui.html b/datum/controller/subsystem/tgui.html
new file mode 100644
index 000000000000..945a74805851
--- /dev/null
+++ b/datum/controller/subsystem/tgui.html
@@ -0,0 +1,49 @@
+/datum/controller/subsystem/tgui - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
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
public
+
Force closes the tgui window by window_id.
+
required user mob
+required window_id string
get_all_open_uis
public
+
Gets all open UIs on a src object
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.
\ No newline at end of file
diff --git a/datum/controller/subsystem/ticker.html b/datum/controller/subsystem/ticker.html
new file mode 100644
index 000000000000..fff67a8601d8
--- /dev/null
+++ b/datum/controller/subsystem/ticker.html
@@ -0,0 +1,6 @@
+/datum/controller/subsystem/ticker - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Generate a report for how much money is on station, as well as the richest crewmember on the station.
Var Details
emergency_swap
If the gamemode fails to be run too many times, we swap to a preset gamemode, this should give admins time to set their preferred one
Proc Details
HandleRandomHardcoreScore
Handles random hardcore point rewarding if it applies.
hardcore_random_report
Generate a report for all players who made it out alive with a hardcore random character and prints their final score
log_roundend_report
Log the round-end report as an HTML file
+
Composits the roundend report, and saves it in two locations.
+The report is first saved along with the round's logs
+Then, the report is copied to a fixed directory specifically for
+housing the server's last roundend report. In this location,
+the file will be overwritten at the end of each shift.
market_report
Generate a report for how much money is on station, as well as the richest crewmember on the station.
\ No newline at end of file
diff --git a/datum/controller/subsystem/timer.html b/datum/controller/subsystem/timer.html
new file mode 100644
index 000000000000..2f246df7888d
--- /dev/null
+++ b/datum/controller/subsystem/timer.html
@@ -0,0 +1 @@
+/datum/controller/subsystem/timer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
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_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
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
\ No newline at end of file
diff --git a/datum/controller/subsystem/vote.html b/datum/controller/subsystem/vote.html
new file mode 100644
index 000000000000..f4ea47e92398
--- /dev/null
+++ b/datum/controller/subsystem/vote.html
@@ -0,0 +1,3 @@
+/datum/controller/subsystem/vote - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
List of choice = object for statclick objects for statpanel voting
+statclick rework? 2: list("name"="id")
Var Details
choice_statclicks
List of choice = object for statclick objects for statpanel voting
+statclick rework? 2: list("name"="id")
\ No newline at end of file
diff --git a/datum/crafting_recipe.html b/datum/crafting_recipe.html
new file mode 100644
index 000000000000..7b073a238611
--- /dev/null
+++ b/datum/crafting_recipe.html
@@ -0,0 +1,3 @@
+/datum/crafting_recipe - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
user: The /mob that initiated the crafting
+collected_requirements: A list of lists of /obj/item instances that satisfy reqs. Top level list is keyed by requirement path.
\ No newline at end of file
diff --git a/datum/crafting_recipe/bloodsucker/blackcoffin.html b/datum/crafting_recipe/bloodsucker/blackcoffin.html
new file mode 100644
index 000000000000..e47d87803172
--- /dev/null
+++ b/datum/crafting_recipe/bloodsucker/blackcoffin.html
@@ -0,0 +1,3 @@
+/datum/crafting_recipe/bloodsucker/blackcoffin - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/crafting_recipe/silver_stake.html b/datum/crafting_recipe/silver_stake.html
new file mode 100644
index 000000000000..312b2da7c94c
--- /dev/null
+++ b/datum/crafting_recipe/silver_stake.html
@@ -0,0 +1,3 @@
+/datum/crafting_recipe/silver_stake - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/data/vending_product.html b/datum/data/vending_product.html
new file mode 100644
index 000000000000..a4b5ed23188d
--- /dev/null
+++ b/datum/data/vending_product.html
@@ -0,0 +1 @@
+/datum/data/vending_product - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
vending record datum
A datum that represents a product that is vendable
Typepath of the product that is created when this record "sells"
Var Details
age_restricted
Whether spessmen with an ID with an age below AGE_MINOR (20 by default) can buy this item
amount
How many of this product we currently have
colorable
Whether the product can be recolored by the GAGS system
custom_premium_price
Does the item have a custom premium price override
custom_price
Does the item have a custom price override
max_amount
How many we can store at maximum
product_path
Typepath of the product that is created when this record "sells"
\ No newline at end of file
diff --git a/datum/datacore.html b/datum/datacore.html
new file mode 100644
index 000000000000..2237fca3d751
--- /dev/null
+++ b/datum/datacore.html
@@ -0,0 +1 @@
+/datum/datacore - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
This list tracks characters spawned in the world and cannot be modified in-game. Currently referenced by respawn_character().
Var Details
locked
This list tracks characters spawned in the world and cannot be modified in-game. Currently referenced by respawn_character().
\ No newline at end of file
diff --git a/datum/design.html b/datum/design.html
new file mode 100644
index 000000000000..3da9c65039b4
--- /dev/null
+++ b/datum/design.html
@@ -0,0 +1,3 @@
+/datum/design - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
minimum and security levels the design can be printed on. Currently only available for rnd production machinery and mechfab.
Var Details
min_security_level
minimum and security levels the design can be printed on. Currently only available for rnd production machinery and mechfab.
\ No newline at end of file
diff --git a/datum/design/apc_board.html b/datum/design/apc_board.html
new file mode 100644
index 000000000000..bd61325adfd6
--- /dev/null
+++ b/datum/design/apc_board.html
@@ -0,0 +1,2 @@
+/datum/design/apc_board - SPLURT Station 13SPLURT Station 13 - Modules - Types
apc_board
///////Autolathe Designs /////
+
Electronics
\ No newline at end of file
diff --git a/datum/design/beanbag_slug.html b/datum/design/beanbag_slug.html
new file mode 100644
index 000000000000..335c2c19a484
--- /dev/null
+++ b/datum/design/beanbag_slug.html
@@ -0,0 +1,2 @@
+/datum/design/beanbag_slug - SPLURT Station 13SPLURT Station 13 - Modules - Types
beanbag_slug
//////Autolathe Designs /////
+
Secgear
\ No newline at end of file
diff --git a/datum/design/bucket.html b/datum/design/bucket.html
new file mode 100644
index 000000000000..d0e8b4b338d9
--- /dev/null
+++ b/datum/design/bucket.html
@@ -0,0 +1,2 @@
+/datum/design/bucket - SPLURT Station 13SPLURT Station 13 - Modules - Types
bucket
//////Autolathe Designs//////
+
Tools
\ No newline at end of file
diff --git a/datum/design/kitchen_knife.html b/datum/design/kitchen_knife.html
new file mode 100644
index 000000000000..fd1286e32159
--- /dev/null
+++ b/datum/design/kitchen_knife.html
@@ -0,0 +1,2 @@
+/datum/design/kitchen_knife - SPLURT Station 13SPLURT Station 13 - Modules - Types
kitchen_knife
//////Autolathe Designs /////
+
Dinnerware
\ No newline at end of file
diff --git a/datum/design/rods.html b/datum/design/rods.html
new file mode 100644
index 000000000000..2c1129d6d276
--- /dev/null
+++ b/datum/design/rods.html
@@ -0,0 +1,2 @@
+/datum/design/rods - SPLURT Station 13SPLURT Station 13 - Modules - Types
rods
///////Autolathe Designs/////
+
Construction
\ No newline at end of file
diff --git a/datum/design/signaler.html b/datum/design/signaler.html
new file mode 100644
index 000000000000..b0018f236ef9
--- /dev/null
+++ b/datum/design/signaler.html
@@ -0,0 +1,2 @@
+/datum/design/signaler - SPLURT Station 13SPLURT Station 13 - Modules - Types
signaler
//////Autolathe Designs /////
+
T-Comms
\ No newline at end of file
diff --git a/datum/discord_link_record.html b/datum/discord_link_record.html
new file mode 100644
index 000000000000..bc2162b49d34
--- /dev/null
+++ b/datum/discord_link_record.html
@@ -0,0 +1,11 @@
+/datum/discord_link_record - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
discord_link_record
Represents a record from the discord link table in a nicer format
This is only used by SSdiscord wrapper functions for now, so you can reference the fields
+slightly easier
+
Arguments:
+
+
ckey Ckey as a string
+
discord_id Discord id as a string
+
one_time_token as a string
+
timestamp as a string
+
valid as a number of 0 or 1
+
\ No newline at end of file
diff --git a/datum/ductnet.html b/datum/ductnet.html
new file mode 100644
index 000000000000..7557a38a2cfb
--- /dev/null
+++ b/datum/ductnet.html
@@ -0,0 +1 @@
+/datum/ductnet - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
ductnet
We handle the unity part of plumbing. We track who is connected to who.
Remove a duct from our network and commit suicide, because this is probably easier than to check who that duct was connected to and what part of us was lost
remove a plumber. we dont delete ourselves because ductnets dont persist through plumbing objects
Proc Details
add_duct
Add a duct to our network
add_plumber
add a plumbing object to either demanders or suppliers
assimilate
we combine ductnets. this occurs when someone connects to seperate sets of fluid ducts
destroy_network
destroy the network and tell all our ducts and plumbers we are gone
remove_duct
Remove a duct from our network and commit suicide, because this is probably easier than to check who that duct was connected to and what part of us was lost
remove_plumber
remove a plumber. we dont delete ourselves because ductnets dont persist through plumbing objects
\ No newline at end of file
diff --git a/datum/dynamic_ruleset.html b/datum/dynamic_ruleset.html
new file mode 100644
index 000000000000..41d1c98b67b1
--- /dev/null
+++ b/datum/dynamic_ruleset.html
@@ -0,0 +1,43 @@
+/datum/dynamic_ruleset - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Judges the amount of antagonists to apply, for both solo and teams.
+Note that some antagonists (such as traitors, lings, heretics, etc) will add more based on how many times they've been scaled.
+Written as a linear equation--ceil(x/denominator) + offset, or as a fixed constant.
+If written as a linear equation, will be in the form of `list("denominator" = denominator, "offset" = offset).
Base probability used in scaling. The higher it is, the more likely to scale. Kept as a var to allow for config editing._SendSignal(sigtype, list/arguments)
Delay for when execute will get called from the time of post_setup (roundstart) or process (midround/latejoin).
+Make sure your ruleset works with execute being called during the game when using this, and that the clean_up proc reverts it properly in case of faliure.
If set, there needs to be a certain amount of players doing those roles (among the players who won't be drafted) for the rule to be drafted IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS.
If set, rule will only accept candidates from those roles. If on a roundstart ruleset, requires the player to have the correct antag pref enabled and any of the possible roles enabled.
If enemy_roles was set, this is the amount of enemy job workers needed per threat_level range (0-10,10-20,etc) IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS.
Requirements are the threat level requirements per pop range.
+With the default values, The rule will never get drafted below 10 threat level (aka: "peaceful extended"), and it requires a higher threat level at lower pops.
By default, a rule is acceptable if it satisfies the threat level/population requirements.
+If your rule has extra checks, such as counting security officers, do that in ready() instead
Runs from gamemode process() if ruleset fails to start, like delayed rulesets not getting valid candidates.
+This one only handles refunding the threat, override in ruleset to clean up the rest.
Called on post_setup on roundstart and when the rule executes on midround and latejoin.
+Give your candidates or assignees equipment and antag datum here.
Gets weight of the ruleset
+Note that this decreases weight if repeatable is TRUE and repeatable_weight_decrease is higher than 0
+Note: If you don't want repeatable rulesets to decrease their weight use the weight variable directly
Here you can perform any additional checks you want. (such as checking the map etc)
+Remember that on roundstart no one knows what their job is at this point.
+IMPORTANT: If ready() returns TRUE, that means pre_execute() or execute() should never fail!
When picking rulesets, if dynamic picks the same one multiple times, it will "scale up".
+However, doing this blindly would result in lowpop rounds (think under 10 people) where over 80% of the crew is antags!
+This function is here to ensure the antag ratio is kept under control while scaling up.
+Returns how much threat to actually spend in the end.
Here you can remove candidates that do not meet your requirements.
+This means if their job is not correct or they have disconnected you can remove them from candidates here.
+Usually this does not need to be changed unless you need some specific requirements from your candidates.
Var Details
antag_cap
Judges the amount of antagonists to apply, for both solo and teams.
+Note that some antagonists (such as traitors, lings, heretics, etc) will add more based on how many times they've been scaled.
+Written as a linear equation--ceil(x/denominator) + offset, or as a fixed constant.
+If written as a linear equation, will be in the form of `list("denominator" = denominator, "offset" = offset).
antag_datum
The antagonist datum that is assigned to the mobs mind on ruleset execution.
antag_flag
Preferences flag such as ROLE_WIZARD that need to be turned on for players to be antag
antag_flag_override
If a role is to be considered another for the purpose of banning.
assigned
List of players that were selected for this rule
base_prob
Base probability used in scaling. The higher it is, the more likely to scale. Kept as a var to allow for config editing._SendSignal(sigtype, list/arguments)
blocking_rules
If a ruleset type which is in this list has been executed, then the ruleset will not be executed.
candidates
List of players that are being drafted for this rule
cost
Threat cost for this rule, this is decreased from the mode's threat when the rule is executed.
delay
Delay for when execute will get called from the time of post_setup (roundstart) or process (midround/latejoin).
+Make sure your ruleset works with execute being called during the game when using this, and that the clean_up proc reverts it properly in case of faliure.
enemy_roles
If set, there needs to be a certain amount of players doing those roles (among the players who won't be drafted) for the rule to be drafted IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS.
exclusive_roles
If set, rule will only accept candidates from those roles. If on a roundstart ruleset, requires the player to have the correct antag pref enabled and any of the possible roles enabled.
flags
A flag that determines how the ruleset is handled. Check __DEFINES/dynamic.dm for an explanation of the accepted values.
indice_pop
Calculated during acceptable(), used in scaling and team sizes.
maximum_players
The maximum amount of players required for the rule to be considered.
+Anything below zero or exactly zero is ignored.
minimum_players
The minimum amount of players required for the rule to be considered.
minimum_required_age
The required minimum account age for this ruleset.
mode
Reference to the mode, use this instead of SSticker.mode.
name
For admin logging and round end screen.
persistent
If set to TRUE, the rule won't be discarded after being executed, and dynamic will call rule_process() every time it ticks.
pop_per_requirement
Pop range per requirement. If zero defaults to mode's pop_per_requirement.
protected_roles
If set, and config flag protect_roles_from_antagonist is false, then the rule will not pick players from these roles.
repeatable
If set to TRUE, dynamic mode will be able to draft this ruleset again later on. (doesn't apply for roundstart rules)
repeatable_weight_decrease
If set higher than 0 decreases weight by itself causing the ruleset to appear less often the more it is repeated.
required_candidates
The rule needs this many candidates (post-trimming) to be executed (example: Cult needs 4 players at round start)
required_enemies
If enemy_roles was set, this is the amount of enemy job workers needed per threat_level range (0-10,10-20,etc) IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS.
requirements
Requirements are the threat level requirements per pop range.
+With the default values, The rule will never get drafted below 10 threat level (aka: "peaceful extended"), and it requires a higher threat level at lower pops.
restricted_roles
If set, rule will deny candidates from those roles always.
ruletype
For admin logging and round end screen, do not change this unless making a new rule type.
scaled_times
How many times a rule has scaled up upon getting picked.
scaling_cost
Cost per level the rule scales up.
total_cost
Used for the roundend report
weight
0 -> 9, probability for this rule to be picked against other rules. If zero this will effectively disable the rule.
Proc Details
acceptable
By default, a rule is acceptable if it satisfies the threat level/population requirements.
+If your rule has extra checks, such as counting security officers, do that in ready() instead
clean_up
Runs from gamemode process() if ruleset fails to start, like delayed rulesets not getting valid candidates.
+This one only handles refunding the threat, override in ruleset to clean up the rest.
execute
Called on post_setup on roundstart and when the rule executes on midround and latejoin.
+Give your candidates or assignees equipment and antag datum here.
get_antag_cap
Returns what the antag cap with the given population is.
get_weight
Gets weight of the ruleset
+Note that this decreases weight if repeatable is TRUE and repeatable_weight_decrease is higher than 0
+Note: If you don't want repeatable rulesets to decrease their weight use the weight variable directly
pre_execute
Called on game mode pre_setup for roundstart rulesets.
+Do everything you need to do before job is assigned here.
+IMPORTANT: ASSIGN special_role HERE
ready
Here you can perform any additional checks you want. (such as checking the map etc)
+Remember that on roundstart no one knows what their job is at this point.
+IMPORTANT: If ready() returns TRUE, that means pre_execute() or execute() should never fail!
round_result
Set mode result and news report here.
+Only called if ruleset is flagged as HIGH_IMPACT_RULESET
rule_process
This is called if persistent variable is true everytime SSTicker ticks.
scale_up
When picking rulesets, if dynamic picks the same one multiple times, it will "scale up".
+However, doing this blindly would result in lowpop rounds (think under 10 people) where over 80% of the crew is antags!
+This function is here to ensure the antag ratio is kept under control while scaling up.
+Returns how much threat to actually spend in the end.
trim_candidates
Here you can remove candidates that do not meet your requirements.
+This means if their job is not correct or they have disconnected you can remove them from candidates here.
+Usually this does not need to be changed unless you need some specific requirements from your candidates.
\ No newline at end of file
diff --git a/datum/dynamic_ruleset/latejoin/provocateur.html b/datum/dynamic_ruleset/latejoin/provocateur.html
new file mode 100644
index 000000000000..701b0e87b945
--- /dev/null
+++ b/datum/dynamic_ruleset/latejoin/provocateur.html
@@ -0,0 +1 @@
+/datum/dynamic_ruleset/latejoin/provocateur - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Checks for revhead loss conditions and other antag datums.
Var Details
revs_win_threat_injection
How much threat should be injected when the revolution wins?
Proc Details
check_eligible
Checks for revhead loss conditions and other antag datums.
\ No newline at end of file
diff --git a/datum/dynamic_ruleset/midround.html b/datum/dynamic_ruleset/midround.html
new file mode 100644
index 000000000000..2fddcd15b748
--- /dev/null
+++ b/datum/dynamic_ruleset/midround.html
@@ -0,0 +1 @@
+/datum/dynamic_ruleset/midround - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
If the ruleset should be restricted from ghost roles.
Var Details
required_type
What mob type the ruleset is restricted to.
restrict_ghost_roles
If the ruleset should be restricted from ghost roles.
\ No newline at end of file
diff --git a/datum/dynamic_ruleset/midround/autotraitor.html b/datum/dynamic_ruleset/midround/autotraitor.html
new file mode 100644
index 000000000000..3d4f6943db3f
--- /dev/null
+++ b/datum/dynamic_ruleset/midround/autotraitor.html
@@ -0,0 +1,3 @@
+/datum/dynamic_ruleset/midround/autotraitor - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Whether or not this instance of sleeper agent should be randomly acceptable.
+If TRUE, then this has a threat level% chance to succeed.
Var Details
has_failure_chance
Whether or not this instance of sleeper agent should be randomly acceptable.
+If TRUE, then this has a threat level% chance to succeed.
\ No newline at end of file
diff --git a/datum/dynamic_ruleset/midround/families.html b/datum/dynamic_ruleset/midround/families.html
new file mode 100644
index 000000000000..8e4bc242f92f
--- /dev/null
+++ b/datum/dynamic_ruleset/midround/families.html
@@ -0,0 +1 @@
+/datum/dynamic_ruleset/midround/families - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
A reference to the handler that is used to run pre_execute(), execute(), etc..
Var Details
handler
A reference to the handler that is used to run pre_execute(), execute(), etc..
\ No newline at end of file
diff --git a/datum/dynamic_ruleset/midround/from_ghosts.html b/datum/dynamic_ruleset/midround/from_ghosts.html
new file mode 100644
index 000000000000..7a2a2872acd7
--- /dev/null
+++ b/datum/dynamic_ruleset/midround/from_ghosts.html
@@ -0,0 +1,3 @@
+/datum/dynamic_ruleset/midround/from_ghosts - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
This sends a poll to ghosts if they want to be a ghost spawn from a ruleset.
Var Details
makeBody
Whether the ruleset should call generate_ruleset_body or not.
required_applicants
The rule needs this many applicants to be properly executed.
Proc Details
attempt_replacement
Fired when there are no valid candidates. Will try to roll again in a minute.
review_applications
Here is where you can check if your ghost applicants are valid for the ruleset.
+Called by send_applications().
send_applications
This sends a poll to ghosts if they want to be a ghost spawn from a ruleset.
\ No newline at end of file
diff --git a/datum/dynamic_ruleset/roundstart.html b/datum/dynamic_ruleset/roundstart.html
new file mode 100644
index 000000000000..30a1de6cca10
--- /dev/null
+++ b/datum/dynamic_ruleset/roundstart.html
@@ -0,0 +1,3 @@
+/datum/dynamic_ruleset/roundstart - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Checks if candidates are connected and if they are banned or don't want to be the antagonist.
Proc Details
ready
Do your checks if the ruleset is ready to be executed here.
+Should ignore certain checks if forced is TRUE
trim_candidates
Checks if candidates are connected and if they are banned or don't want to be the antagonist.
\ No newline at end of file
diff --git a/datum/dynamic_ruleset/roundstart/families.html b/datum/dynamic_ruleset/roundstart/families.html
new file mode 100644
index 000000000000..d5dab66456f0
--- /dev/null
+++ b/datum/dynamic_ruleset/roundstart/families.html
@@ -0,0 +1 @@
+/datum/dynamic_ruleset/roundstart/families - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
A reference to the handler that is used to run pre_execute(), execute(), etc..
Var Details
handler
A reference to the handler that is used to run pre_execute(), execute(), etc..
\ No newline at end of file
diff --git a/datum/dynamic_ruleset/roundstart/revs.html b/datum/dynamic_ruleset/roundstart/revs.html
new file mode 100644
index 000000000000..bf5e1f204b66
--- /dev/null
+++ b/datum/dynamic_ruleset/roundstart/revs.html
@@ -0,0 +1 @@
+/datum/dynamic_ruleset/roundstart/revs - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Checks for revhead loss conditions and other antag datums.
Var Details
revs_win_threat_injection
How much threat should be injected when the revolution wins?
Proc Details
check_eligible
Checks for revhead loss conditions and other antag datums.
\ No newline at end of file
diff --git a/datum/dynamic_snapshot.html b/datum/dynamic_snapshot.html
new file mode 100644
index 000000000000..1e21f72660fd
--- /dev/null
+++ b/datum/dynamic_snapshot.html
@@ -0,0 +1,2 @@
+/datum/dynamic_snapshot - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
dynamic_snapshot
A "snapshot" of dynamic at an important point in time.
+Exported to JSON in the dynamic.json log file.
\ No newline at end of file
diff --git a/datum/dynamic_snapshot_ruleset.html b/datum/dynamic_snapshot_ruleset.html
new file mode 100644
index 000000000000..07b46d799da3
--- /dev/null
+++ b/datum/dynamic_snapshot_ruleset.html
@@ -0,0 +1 @@
+/datum/dynamic_snapshot_ruleset - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
If it is a round start ruleset, how much it was scaled by
Var Details
assigned
The number of assigned antags
name
The name of the ruleset chosen
scaled
If it is a round start ruleset, how much it was scaled by
\ No newline at end of file
diff --git a/datum/eldritch_knowledge.html b/datum/eldritch_knowledge.html
new file mode 100644
index 000000000000..7748395ed0e8
--- /dev/null
+++ b/datum/eldritch_knowledge.html
@@ -0,0 +1,13 @@
+/datum/eldritch_knowledge - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
eldritch_knowledge
#Eldritch Knowledge
+
Datum that makes eldritch cultist interesting.
+
Eldritch knowledge aren't instantiated anywhere roundstart, and are initalized and destroyed as the round goes on.
What knowledge is incompatible with this. This will simply make it impossible to research knowledges that are in banned_knowledge once this gets researched.
What knowledge is incompatible with this. This will simply make it impossible to research knowledges that are in banned_knowledge once this gets researched.
cost
Cost of knowledge in souls
desc
Description of the knowledge
gain_text
What shows up
name
Name of the knowledge
next_knowledge
Next knowledge in the research tree
required_atoms
Used with rituals, how many items this needs
result_atoms
What do we get out of this
route
What path is this on defaults to "Side"
sacs_needed
Required sacrifices to unlock
Proc Details
cleanup_atoms
Used atom cleanup
+
Overide this proc if you dont want ALL ATOMS to be destroyed. useful in many situations.
on_death
A proc that handles the code when the mob dies
+
This proc is primarily used to end any soundloops when the heretic dies
on_eldritch_blade
Sickly blade act
+
Gives addtional effects to sickly blade weapon
on_finished_recipe
What happens once the recipe is succesfully finished
+
By default this proc creates atoms from result_atoms list. Override this is you want something else to happen.
on_gain
What happens when this is assigned to an antag datum
+
This proc is called whenever a new eldritch knowledge is added to an antag datum
on_life
What happens every tick
+
This proc is called on SSprocess in eldritch cultist antag datum. SSprocess happens roughly every second
on_lose
What happens when you loose this
+
This proc is called whenever antagonist looses his antag datum, put cleanup code in here
If you are adding a more complex summoning or something that requires a special check that parses through all the atoms in an area override this.
\ No newline at end of file
diff --git a/datum/eldritch_knowledge/final_eldritch/void_final.html b/datum/eldritch_knowledge/final_eldritch/void_final.html
new file mode 100644
index 000000000000..67a9b758ac44
--- /dev/null
+++ b/datum/eldritch_knowledge/final_eldritch/void_final.html
@@ -0,0 +1 @@
+/datum/eldritch_knowledge/final_eldritch/void_final - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Reference to the ongoing voidstorm that surrounds the heretic
Var Details
sound_loop
soundloop for the void theme
storm
Reference to the ongoing voidstorm that surrounds the heretic
\ No newline at end of file
diff --git a/datum/element.html b/datum/element.html
new file mode 100644
index 000000000000..7e7e335b036e
--- /dev/null
+++ b/datum/element.html
@@ -0,0 +1,5 @@
+/datum/element - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
element
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.
Activates the functionality defined by the element on the given target datum
Detach
Deactivates the functionality defines by the element on the given datum
\ No newline at end of file
diff --git a/datum/element/bed_tuckable.html b/datum/element/bed_tuckable.html
new file mode 100644
index 000000000000..b72b6e37889d
--- /dev/null
+++ b/datum/element/bed_tuckable.html
@@ -0,0 +1,5 @@
+/datum/element/bed_tuckable - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
bed_tuckable
Tucking element, for things that can be tucked into bed.
If we rotate our object, then we need to un-rotate it when it's picked up
Var Details
rotation_degree
our rotation degree - how much the item turns when in bed (+degrees turns it more parallel)
x_offset
our pixel_x offset - how much the item moves x when in bed (+x is closer to the pillow)
y_offset
our pixel_y offset - how much the item move y when in bed (-y is closer to the middle)
Proc Details
tuck_into_bed
Tuck our object into bed.
+
tucked - the object being tucked
+target_bed - the bed we're tucking them into
+tucker - the guy doing the tucking
untuck
If we rotate our object, then we need to un-rotate it when it's picked up
+
tucked - the object that is tucked
\ No newline at end of file
diff --git a/datum/element/connect_loc.html b/datum/element/connect_loc.html
new file mode 100644
index 000000000000..132404f7ee43
--- /dev/null
+++ b/datum/element/connect_loc.html
@@ -0,0 +1,2 @@
+/datum/element/connect_loc - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
connect_loc
This element hooks a signal onto the loc the current object is on.
+When the object moves, it will unhook the signal and rehook it to the new object.
An assoc list of signal -> procpath to register to the loc this object is on.
Var Details
connections
An assoc list of signal -> procpath to register to the loc this object is on.
\ No newline at end of file
diff --git a/datum/element/contextual_screentip_bare_hands.html b/datum/element/contextual_screentip_bare_hands.html
new file mode 100644
index 000000000000..a9d59275ad78
--- /dev/null
+++ b/datum/element/contextual_screentip_bare_hands.html
@@ -0,0 +1,3 @@
+/datum/element/contextual_screentip_bare_hands - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
contextual_screentip_bare_hands
Apply basic contextual screentips when the user hovers over this item with an empty hand.
+A "Type B" interaction.
+This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
If set, the text to show for RMB when in combat mode. Otherwise, defaults to rmb_text.
Var Details
lmb_text
If set, the text to show for LMB
lmb_text_combat_mode
If set, the text to show for LMB when in combat mode. Otherwise, defaults to lmb_text.
rmb_text
If set, the text to show for RMB
rmb_text_combat_mode
If set, the text to show for RMB when in combat mode. Otherwise, defaults to rmb_text.
\ No newline at end of file
diff --git a/datum/element/contextual_screentip_item_typechecks.html b/datum/element/contextual_screentip_item_typechecks.html
new file mode 100644
index 000000000000..ae0f2cff1a9b
--- /dev/null
+++ b/datum/element/contextual_screentip_item_typechecks.html
@@ -0,0 +1,3 @@
+/datum/element/contextual_screentip_item_typechecks - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
contextual_screentip_item_typechecks
Apply basic contextual screentips when the user hovers over this item with a provided item.
+A "Type B" interaction.
+This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
\ No newline at end of file
diff --git a/datum/element/contextual_screentip_sharpness.html b/datum/element/contextual_screentip_sharpness.html
new file mode 100644
index 000000000000..70b192591288
--- /dev/null
+++ b/datum/element/contextual_screentip_sharpness.html
@@ -0,0 +1,3 @@
+/datum/element/contextual_screentip_sharpness - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
contextual_screentip_sharpness
Apply basic contextual screentips when the user hovers over this item with an item of the given tool behavior.
+A "Type B" interaction.
+This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
\ No newline at end of file
diff --git a/datum/element/contextual_screentip_tools.html b/datum/element/contextual_screentip_tools.html
new file mode 100644
index 000000000000..f495d8743111
--- /dev/null
+++ b/datum/element/contextual_screentip_tools.html
@@ -0,0 +1,3 @@
+/datum/element/contextual_screentip_tools - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
contextual_screentip_tools
Apply basic contextual screentips when the user hovers over this item with an item of the given tool behavior.
+A "Type B" interaction.
+This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
\ No newline at end of file
diff --git a/datum/element/embed.html b/datum/element/embed.html
new file mode 100644
index 000000000000..a39e2b1b00b9
--- /dev/null
+++ b/datum/element/embed.html
@@ -0,0 +1,9 @@
+/datum/element/embed - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
whether we can skip assigning all the vars (since these are bespoke elements, we don't have to reset the vars every time we attach to something, we already know what we are!)
whether we can skip assigning all the vars (since these are bespoke elements, we don't have to reset the vars every time we attach to something, we already know what we are!)
Proc Details
checkEmbedMob
Checking to see if we're gonna embed into a human
checkEmbedOther
We need the hit_zone if we're embedding into a human, so this proc only handles if we're embedding into a turf
checkEmbedProjectile
checkEmbedProjectile() is what we get when a projectile with a defined shrapnel_type impacts a target.
+
If we hit a valid target (carbon or closed turf), we create the shrapnel_type object and immediately call tryEmbed() on it, targeting what we impacted. That will lead
+it to call tryForceEmbed() on its own embed element (it's out of our hands here, our projectile is done), where it will run through all the checks it needs to.
detachFromWeapon
If we don't want to be embeddable anymore (deactivating an e-dagger for instance)
examined
Someone inspected our embeddable item
severancePackage
A different embed element has been attached, so we'll detach and let them handle things
tryForceEmbed
Arguments:
+
+
I- the item we're trying to insert into the target
+
target- what we're trying to shish-kabob, either a bodypart or a carbon
+
hit_zone- if our target is a carbon, try to hit them in this zone, if we don't have one, pick a random one. If our target is a bodypart, we already know where we're hitting.
+
forced- if we want this to succeed 100%
+
\ No newline at end of file
diff --git a/datum/element/firestacker.html b/datum/element/firestacker.html
new file mode 100644
index 000000000000..03103f88691d
--- /dev/null
+++ b/datum/element/firestacker.html
@@ -0,0 +1 @@
+/datum/element/firestacker - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
firestacker
Can be applied to /atom/movable subtypes to make them apply fire stacks to things they hit
\ No newline at end of file
diff --git a/datum/element/flavor_text.html b/datum/element/flavor_text.html
new file mode 100644
index 000000000000..4320f442d75f
--- /dev/null
+++ b/datum/element/flavor_text.html
@@ -0,0 +1 @@
+/datum/element/flavor_text - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
For preference/DNA saving/loading. Null to prevent. Prefs are only loaded from obviously if it exists in preferences.features.
Var Details
examine_full_view
Examine FULLY views. Overrides examine_no_preview
examine_no_preview
Do not attempt to render a preview on examine. If this is on, it will display as [flavor_name]
save_key
For preference/DNA saving/loading. Null to prevent. Prefs are only loaded from obviously if it exists in preferences.features.
\ No newline at end of file
diff --git a/datum/element/item_scaling.html b/datum/element/item_scaling.html
new file mode 100644
index 000000000000..08eee5cc739d
--- /dev/null
+++ b/datum/element/item_scaling.html
@@ -0,0 +1,41 @@
+/datum/element/item_scaling - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
item_scaling
Element for scaling item appearances in the overworld or in inventory/storage.
+
This bespoke element allows for items to have varying sizes depending on their location.
+The overworld simply refers to items being on a turf. Inventory includes HUD item slots,
+and storage is anywhere a storage component is used.
+Scaling should affect the item's icon and all attached overlays (such as blood decals).
Scaling value when the attached item is in the overworld (on a turf).
storage_scaling
Scaling value when the attached item is in a storage component or inventory slot.
Proc Details
Attach
Attach proc for the item_scaling element
+
The proc checks the target's type before attaching. It then initializes
+the target to overworld scaling. The target should then rescale if it is placed
+in inventory/storage on initialization. Relevant signals are registered to listen
+for pickup/drop or storage events. Scaling values of 1 will result in items
+returning to their original size.
+Arguments:
+
+
target - Datum to attach the element to.
+
overworld_scaling - Integer or float to scale the item in the overworld.
+
storage_scaling - Integer or float to scale the item in storage/inventory.
+
Detach
Detach proc for the item_scaling element.
+
All registered signals are unregistered, and the attached element is removed from the target datum.
+Arguments:
+
+
target - Datum which the element is attached to.
+
scale
Scales the attached item's matrix.
+
The proc first narrows the type of the source to (datums do not have a transform matrix).
+It then creates an identity matrix, M, which is transformed by the scaling value.
+The object's transform variable (matrix) is then set to the resulting value of M.
+Arguments:
+
+
source - Source datum which sent the signal.
+
scaling - Integer or float to scale the item's matrix.
+
scale_overworld
Shrinks when inworld
+
Longer detailed paragraph about the proc
+including any relevant detail
+Arguments:
+
+
source - Source datum which sent the signal.
+
scale_storage
Enlarges when inhand or in storage.
+
Longer detailed paragraph about the proc
+including any relevant detail
+Arguments:
+
+
source - Source datum which sent the signal.
+
\ No newline at end of file
diff --git a/datum/element/mob_holder/micro.html b/datum/element/mob_holder/micro.html
new file mode 100644
index 000000000000..cc7c19b41037
--- /dev/null
+++ b/datum/element/mob_holder/micro.html
@@ -0,0 +1 @@
+/datum/element/mob_holder/micro - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Do not inherit from /mob_holder, interactions are different.
Proc Details
on_requesting_context_from_item
Do not inherit from /mob_holder, interactions are different.
\ No newline at end of file
diff --git a/datum/element/object_reskinning.html b/datum/element/object_reskinning.html
new file mode 100644
index 000000000000..b1589888c93a
--- /dev/null
+++ b/datum/element/object_reskinning.html
@@ -0,0 +1,6 @@
+/datum/element/object_reskinning - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Checks if we are allowed to interact with a radial menu for reskins
Proc Details
check_reskin_menu
Checks if we are allowed to interact with a radial menu for reskins
+
Arguments:
+
+
user The mob interacting with the menu
+
obj The obj to be checking against
+
\ No newline at end of file
diff --git a/datum/element/photosynthesis.html b/datum/element/photosynthesis.html
new file mode 100644
index 000000000000..543a962c2d36
--- /dev/null
+++ b/datum/element/photosynthesis.html
@@ -0,0 +1 @@
+/datum/element/photosynthesis - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
the maximum lum count under which the target damage is inversely adjusted.
Var Details
attached_atoms
List of atoms this element is attached to. Doubles as a multiplier if the same element is attached multiple times to a target multiple times.
bonus_lum
the minimum lum count over which where the target damage is adjusted.
light_bruteheal
how much brute damage (or integrity, for objects) is healed (taken if positive) at maximum luminosity. (if lum_minus were 0)
light_burnheal
how much burn damage is restored/taken at maximum luminosity. Mobs only.
light_nutrition_gain
how nutrition recovery/expenses factor, not affected by bonus_lum and malus_lum. Mobs only.
light_oxyheal
how much oxy damage is restored/taken at maximum luminosity. Mobs only.
light_toxheal
how much tox damage is restored/taken at maximum luminosity. Mobs only.
lum_minus
A value subtracted to the lum count, which allows targets to wilt or heal in the darkness.
malus_lum
the maximum lum count under which the target damage is inversely adjusted.
\ No newline at end of file
diff --git a/datum/element/scavenging.html b/datum/element/scavenging.html
new file mode 100644
index 000000000000..3f3f2cc17793
--- /dev/null
+++ b/datum/element/scavenging.html
@@ -0,0 +1 @@
+/datum/element/scavenging - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
This proc has to be asynced (cough cough, do_after) in order to return the comsig values in time to stop the attack chain.
Proc Details
scavenge
This proc has to be asynced (cough cough, do_after) in order to return the comsig values in time to stop the attack chain.
\ No newline at end of file
diff --git a/datum/element/series.html b/datum/element/series.html
new file mode 100644
index 000000000000..d89c86a9cafb
--- /dev/null
+++ b/datum/element/series.html
@@ -0,0 +1,3 @@
+/datum/element/series - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
series
series element!
+
bespoke element that assigns a series number to toys on examine, and shows their series name!
+used for mechas and rare collectable hats, should totally be used for way more ;)
\ No newline at end of file
diff --git a/datum/element/skirt_peeking.html b/datum/element/skirt_peeking.html
new file mode 100644
index 000000000000..31697cb37cb9
--- /dev/null
+++ b/datum/element/skirt_peeking.html
@@ -0,0 +1 @@
+/datum/element/skirt_peeking - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Alright, they've peeked us and everything, did we notice it though?
Proc Details
try_notice
Alright, they've peeked us and everything, did we notice it though?
\ No newline at end of file
diff --git a/datum/element/strippable.html b/datum/element/strippable.html
new file mode 100644
index 000000000000..6a4fe77f1ff9
--- /dev/null
+++ b/datum/element/strippable.html
@@ -0,0 +1,5 @@
+/datum/element/strippable - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
strippable
An element for atoms that, when dragged and dropped onto a mob, opens a strip panel.
A proc path that returns TRUE/FALSE if we should show the strip panel for this entity.
+If it does not exist, the strip menu will always show.
+Will be called with (mob/user).
A proc path that returns TRUE/FALSE if we should show the strip panel for this entity.
+If it does not exist, the strip menu will always show.
+Will be called with (mob/user).
strip_menus
An existing strip menus
\ No newline at end of file
diff --git a/datum/element/turf_z_transparency.html b/datum/element/turf_z_transparency.html
new file mode 100644
index 000000000000..8d90cd59f1b8
--- /dev/null
+++ b/datum/element/turf_z_transparency.html
@@ -0,0 +1 @@
+/datum/element/turf_z_transparency - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
This proc sets up the signals to handle updating viscontents when turfs above/below update. Handle plane and layer here too so that they don't cover other obs/turfs in Dream Maker
Updates the viscontents or underlays below this tile.
Proc Details
Attach
This proc sets up the signals to handle updating viscontents when turfs above/below update. Handle plane and layer here too so that they don't cover other obs/turfs in Dream Maker
show_bottom_level
Called when there is no real turf below this turf
update_multiz
Updates the viscontents or underlays below this tile.
\ No newline at end of file
diff --git a/datum/font.html b/datum/font.html
new file mode 100644
index 000000000000..e178e921c721
--- /dev/null
+++ b/datum/font.html
@@ -0,0 +1,9 @@
+/datum/font - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
font
A font datum, it exists to define a custom font to use in a span style later.
Font features and metrics
+Generated by Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
+list of font size/spacing metrics
Get font metrics
+From Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
Var Details
ascent
distance above baseline (including whitespace)
average_width
average character width
default_character
default character (for undefined chars)
descent
distance below baseline
end
last character in metrics
ex_leading
external leading vertical space, just plain blank
font_family
The font file we link to.
height
total height of a line
in_leading
internal leading vertical space, for accent marks
max_width
maximum character width
metrics
Font features and metrics
+Generated by Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
+list of font size/spacing metrics
name
Font name, just so people know what to put in their span style.
overhang
extra width, such as from italics, for a line
start
first character in metrics
Proc Details
get_metrics
Get font metrics
+From Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
\ No newline at end of file
diff --git a/datum/game_mode.html b/datum/game_mode.html
new file mode 100644
index 000000000000..4db34b10bafc
--- /dev/null
+++ b/datum/game_mode.html
@@ -0,0 +1 @@
+/datum/game_mode - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Associative list of current players, in order: living players, living antagonists, dead players and observers.
Proc Details
admin_panel
Mode specific admin panel.
can_start
Checks to see if the game can be setup and ran with the current number of players or whatnot.
convert_roundtype
Allows rounds to basically be "rerolled" should the initial premise fall through. Also known as mulligan antags.
ghost_info
Mode specific info for ghost game_info
make_antag_chance
Handles late-join antag assignments
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
Attempts to select players for special roles the mode might have.
process
Called by the gameSSticker
\ No newline at end of file
diff --git a/datum/game_mode/dynamic.html b/datum/game_mode/dynamic.html
new file mode 100644
index 000000000000..8a213e09a0f6
--- /dev/null
+++ b/datum/game_mode/dynamic.html
@@ -0,0 +1,43 @@
+/datum/game_mode/dynamic - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
A number between -5 and +5.
+Equivalent to threat_curve_centre, but for the budget split.
+A negative value will weigh towards midround rulesets, and a positive
+value will weight towards roundstart ones.
A number between 0.5 and 4.
+Equivalent to threat_curve_width, but for the budget split.
+Higher value will favour more variance in splits and
+lower value rounds closer to the average.
The last drafted midround rulesets (without the current one included).
+Used for choosing different midround injections.
current_rules
Rules that are processed, rule_process is called on the rules in this list.
executed_rules
List of executed rulesets.
forced_injection
When TRUE GetInjectionChance returns 100.
forced_latejoin_rule
Forced ruleset to be executed for the next latejoin.
high_impact_ruleset_executed
If a high impact ruleset was executed. Only one will run at a time in most circumstances.
higher_injection_chance
The chance of injection increase when above higher_injection_chance_minimum_threat
higher_injection_chance_minimum_threat
If above this threat, increase the chance of injection
hijacked_random_event_injection_chance
The amount to inject when a round event is hijacked
initial_round_start_budget
The initial round start budget for logging purposes, set once at the beginning of the round.
last_midround_injection_attempt
The time when the last midround injection was attempted, whether or not it was successful
latejoin_delay_max
The maximum time the recurring latejoin ruleset timer is allowed to be.
latejoin_delay_min
The minimum time the recurring latejoin ruleset timer is allowed to be.
latejoin_injection_cooldown
When world.time is over this number the mode tries to inject a latejoin ruleset.
latejoin_rules
List of latejoin rules used for selecting the rules.
lower_injection_chance
The chance of injection decrease when above lower_injection_chance_minimum_threat
lower_injection_chance_minimum_threat
If below this threat, decrease the chance of injection
mid_round_budget
Set at the beginning of the round. Spent by midrounds and latejoins.
midround_delay_max
The maximum time the recurring midround ruleset timer is allowed to be.
midround_delay_min
The minimum time the recurring midround ruleset timer is allowed to be.
midround_injection_cooldown
When world.time is over this number the mode tries to inject a midround ruleset.
midround_injection_timer_id
The timer ID for the cancellable midround rule injection
midround_rules
List of midround rules used for selecting the rules.
only_ruleset_executed
If a only ruleset has been executed.
peaceful_percentage
How many percent of the rounds are more peaceful.
pop_per_requirement
+
Pop range per requirement.
+
* If the value is five the range is:
+* 0-4, 5-9, 10-14, 15-19, 20-24, 25-29, 30-34, 35-39, 40-54, 45+
+* If it is six the range is:
+* 0-5, 6-11, 12-17, 18-23, 24-29, 30-35, 36-41, 42-47, 48-53, 54+
+* If it is seven the range is:
+* 0-6, 7-13, 14-20, 21-27, 28-34, 35-41, 42-48, 49-55, 56-62, 63+
+
+
+
random_event_hijack_maximum
The maximum amount of time for antag random events to be hijacked.
random_event_hijack_minimum
The minimum amount of time for antag random events to be hijacked.
random_event_hijacked
Whether or not a random event has been hijacked this midround cycle
round_start_budget
Set at the beginning of the round. Spent by the mode to "purchase" rules. Everything else goes in the postround budget.
roundstart_pop_ready
Number of players who were ready on roundstart.
roundstart_split_curve_centre
A number between -5 and +5.
+Equivalent to threat_curve_centre, but for the budget split.
+A negative value will weigh towards midround rulesets, and a positive
+value will weight towards roundstart ones.
roundstart_split_curve_width
A number between 0.5 and 4.
+Equivalent to threat_curve_width, but for the budget split.
+Higher value will favour more variance in splits and
+lower value rounds closer to the average.
shown_threat
The amount of threat shown on the piece of paper.
+Can differ from the actual threat amount.
snapshots
A list of recorded "snapshots" of the round, stored in the dynamic.json log
threat_curve_centre
A number between -5 and +5.
+A negative value will give a more peaceful round and
+a positive value will give a round with higher threat.
threat_curve_width
A number between 0.5 and 4.
+Higher value will favour extreme rounds and
+lower value rounds closer to the average.
threat_level
The "threat cap", threat shouldn't normally go above this and is used in ruleset calculations
threat_log
Running information about the threat. Can store text or datum entries.
Proc Details
admin_cancel_midround
Fired when an admin cancels the current midround injection.
admin_different_midround
Fired when an admin requests a different midround injection.
check_blocking
Checks if a type in blocking_list is in rule_list.
configure_ruleset
Apply configurations to rule.
create_threat
Generate threat and increase the threat_level if it goes beyond, capped at 100
dynamic_log
Log to messages and to the game
execute_midround_latejoin_rule
Mainly here to facilitate delayed rulesets. All midround/latejoin rulesets are executed with a timered callback to this proc.
execute_midround_rule
Fired after admins do not cancel a midround injection.
execute_roundstart_rule
Mainly here to facilitate delayed rulesets. All roundstart rulesets are executed with a timered callback to this proc.
generate_budgets
Generates the midround and roundstart budgets
generate_threat
Generates the threat level using lorentz distribution and assigns peaceful_percentage.
get_injection_chance
Gets the chance for latejoin injection, the dry_run argument is only used for forced injection.
get_midround_injection_chance
Gets the chance for midround injection, the dry_run argument is only used for forced injection.
+Usually defers to the latejoin injection chance.
init_rulesets
Returns a list of the provided rulesets.
+Configures their variables to match config.
lorentz_to_amount
Turns the value generated by lorentz distribution to number between 0 and 100.
+Used for threat level and splitting the budgets.
new_snapshot
Creates a new snapshot with the given rulesets chosen, and writes to the JSON output.
pick_latejoin_rule
Executes a random latejoin ruleset from the list of drafted rules.
pick_midround_rule
Executes a random midround ruleset from the list of drafted rules.
pick_ruleset
From a list of rulesets, returns one based on weight and availability.
+Mutates the list that is passed into it to remove invalid rules.
picking_roundstart_rule
Initializes the round start ruleset provided to it. Returns how much threat to spend.
picking_specific_rule
An experimental proc to allow admins to call rules on the fly or have rules call other rules.
refund_threat
Refund threat, but no more than threat_level.
remove_from_list
Removes type from the list
rigged_roundstart
A simple roundstart proc used when dynamic_forced_roundstart_ruleset has rules in it.
setup_rulesets
Initializes the internal ruleset variables
spend_midround_budget
Expend midround threat, can't fall under 0.
spend_roundstart_budget
Expend round start threat, can't fall under 0.
update_log
Updates the log for the current snapshots.
\ No newline at end of file
diff --git a/datum/game_mode/gang.html b/datum/game_mode/gang.html
new file mode 100644
index 000000000000..2a6b7cfc7c92
--- /dev/null
+++ b/datum/game_mode/gang.html
@@ -0,0 +1 @@
+/datum/game_mode/gang - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
A reference to the handler that is used to run pre_setup(), post_setup(), etc..
Var Details
handler
A reference to the handler that is used to run pre_setup(), post_setup(), etc..
\ No newline at end of file
diff --git a/datum/gang_handler.html b/datum/gang_handler.html
new file mode 100644
index 000000000000..a91ab897bba2
--- /dev/null
+++ b/datum/gang_handler.html
@@ -0,0 +1,61 @@
+/datum/gang_handler - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Families gamemode / dynamic ruleset handler
A special datum used by the families gamemode and dynamic rulesets to centralize code. "Family" and "gang" used interchangeably in code.
+
This datum centralizes code used for the families gamemode / dynamic rulesets. Families incorporates a significant
+amount of unique processing; without this datum, that could would be duplicated. To ensure the maintainability
+of the families gamemode / rulesets, the code was moved to this datum. The gamemode / rulesets instance this
+datum, pass it lists (lists are passed by reference; removing candidates here removes candidates in the gamemode),
+and call its procs. Additionally, the families antagonist datum and families induction package also
+contain vars that reference this datum, allowing for new families / family members to add themselves
+to this datum's lists thereof (primarily used for point calculation). Despite this, the basic team mechanics
+themselves should function regardless of this datum's instantiation, should a player have the gang or cop
+antagonist datum added to them through methods external to the families gamemode / rulesets.
List of all eligible starting family members / undercover cops. Set externally (passed by reference) by gamemode / ruleset; used internally. Note that dynamic uses a list of mobs to handle candidates while game_modes use lists of minds! Don't be fooled!
Keeps track of the amount of deaths since the calling of pre_setup_analogue() if this is a midround handler. Used to prevent a high wanted level due to a large amount of deaths during the shift prior to the activation of this handler / the midround ruleset.
List of all family member minds. Used internally; added to internally, and externally by /obj/item/gang_induction_package when used to induct a new family member.
Internal. Checks if our wanted level has changed; calls update_wanted_level. Only updates wanted level post the initial announcement and until the cops show up. After that, it's locked.
Internal. Polls ghosts and sends in a team of space cops according to the wanted level, accompanied by an announcement. Will let the shuttle leave 10 minutes after sending. Freezes the wanted level.
Internal. Updates the icon states for everyone, and calls procs that send out announcements / change the end_time if the wanted level has changed.
Var Details
antag_candidates
List of all eligible starting family members / undercover cops. Set externally (passed by reference) by gamemode / ruleset; used internally. Note that dynamic uses a list of mobs to handle candidates while game_modes use lists of minds! Don't be fooled!
check_counter
A counter used to minimize the overhead of computationally intensive, periodic family point gain checks. Used and set internally.
cops_arrived
Whether the space cops have arrived. Set internally; used internally, and for updating the wanted HUD.
current_theme
The current chosen gamemode theme. Decides the available Gangs, objectives, and equipment.
deaths_during_shift_at_beginning
Keeps track of the amount of deaths since the calling of pre_setup_analogue() if this is a midround handler. Used to prevent a high wanted level due to a large amount of deaths during the shift prior to the activation of this handler / the midround ruleset.
end_time
The time, in deciseconds, that the space cops will arrive at. Calculated based on wanted level and start_time. Used and set internally.
gang_balance_cap
The number of family members more that a family may have over other active families. Can be set externally; used internally.
gangbangers
List of all family member minds. Used internally; added to internally, and externally by /obj/item/gang_induction_package when used to induct a new family member.
gangs
List of all /datum/team/gang. Used internally; added to externally by /datum/antagonist/gang when it generates a new /datum/team/gang.
gangs_to_generate
The number of families (and 1:1 corresponding undercover cops) that should be generated. Can be set externally; used internally.
midround_ruleset
Whether the handler corresponds to a ruleset that does not trigger at round start. Should be set externally only if applicable; used internally.
restricted_jobs
List of jobs not eligible for starting family member / undercover cop. Set externally (passed by reference) by gamemode / ruleset; used internally.
sent_announcement
Whether the gamemode-announcing announcement has been sent. Used and set internally.
sent_second_announcement
Whether the "5 minute warning" announcement has been sent. Used and set internally.
start_time
The time, in deciseconds, that the datum's pre_setup() occured at. Used in end_time. Used and set internally.
undercover_cops
List of all undercover cop minds. Used and set internally.
use_dynamic_timing
Whether we want to use the 30 to 15 minute timer instead of the 60 to 30 minute timer, for Dynamic.
wanted_level
The current wanted level. Set internally; used internally, and for updating the wanted HUD.
Proc Details
New
Sets antag_candidates and restricted_jobs.
+
Sets the antag_candidates and restricted_jobs lists to the equivalent
+lists of its instantiating game_mode / dynamic_ruleset datum. As lists
+are passed by reference, the variable set in this datum and the passed list
+list used to set it are literally the same; changes to one affect the other.
+Like all New() procs, called when the datum is first instantiated.
+There's an annoying caveat here, though -- dynamic rulesets don't have
+lists of minds for candidates, they have lists of mobs. Ghost mobs, before
+the round has started. But we still want to preserve the structure of the candidates
+list by not duplicating it and making sure to remove the candidates as we use them.
+So there's a little bit of boilerplate throughout to preserve the sanctity of this reference.
+Arguments:
+
+
given_candidates - The antag_candidates list or equivalent of the datum instantiating this one.
+
revised_restricted - The restricted_jobs list or equivalent of the datum instantiating this one.
+
announce_gang_locations
Internal. Announces the presence of families to the entire station and sets sent_announcement to true to allow other checks to occur.
check_wanted_level
Internal. Checks if our wanted level has changed; calls update_wanted_level. Only updates wanted level post the initial announcement and until the cops show up. After that, it's locked.
on_gain_wanted_level
Internal. Updates the end_time and sends out an announcement if the wanted level has increased. Called by update_wanted_level().
on_lower_wanted_level
Internal. Updates the end_time and sends out an announcement if the wanted level has decreased. Called by update_wanted_level().
post_setup_analogue
post_setup() or execute() equivalent.
+
This proc is always called externally, by the instantiating game_mode / dynamic_ruleset.
+This is done during the post_setup() or execute() phase, after the pre_setup() / pre_execute() phase.
+It is intended to take the place of the code that would normally occupy the pre_setup()
+or pre_execute() proc. As such, it ensures that all prospective starting family members /
+undercover cops are eligible, and picks replacements if there were ineligible cops / family members.
+It then assigns gear to the finalized family members and undercover cops, adding them to its lists,
+and sets the families announcement proc (that does the announcing) to trigger in five minutes.
+Additionally, if given the argument TRUE, it will return FALSE if there are no eligible starting family members.
+This is only to be done if the instantiating datum is a dynamic_ruleset, as these require returns
+while a game_mode is not expected to return early during this phase.
+Arguments:
+
+
return_if_no_gangs - Boolean that determines if the proc should return FALSE should it find no eligible family members. Should be used for dynamic only.
+
pre_setup_analogue
pre_setup() or pre_execute() equivalent.
+
This proc is always called externally, by the instantiating game_mode / dynamic_ruleset.
+This is done during the pre_setup() or pre_execute() phase, after first instantiation
+and the modification of gangs_to_generate, gang_balance_cap, and midround_ruleset.
+It is intended to take the place of the code that would normally occupy the pre_setup()
+or pre_execute() proc, were the code localized to the game_mode or dynamic_ruleset datum respectively
+as opposed to this handler. As such, it picks players to be chosen for starting familiy members
+or undercover cops prior to assignment to jobs. Sets start_time, default end_time,
+and the current value of deaths_during_shift, to ensure the wanted level only cares about
+the deaths since this proc has been called.
+Takes no arguments.
process_analogue
process() or rule_process() equivalent.
+
This proc is always called externally, by the instantiating game_mode / dynamic_ruleset.
+This is done during the process() or rule_process() phase, after post_setup() or
+execute() and at regular intervals thereafter. process() and rule_process() are optional
+for a game_mode / dynamic_ruleset, but are important for this gamemode. It is of central
+importance to the gamemode's flow, calculating wanted level updates, family point gain,
+and announcing + executing the arrival of the space cops, achieved through calling internal procs.
+Takes no arguments.
send_in_the_fuzz
Internal. Polls ghosts and sends in a team of space cops according to the wanted level, accompanied by an announcement. Will let the shuttle leave 10 minutes after sending. Freezes the wanted level.
set_round_result_analogue
set_round_result() or round_result() equivalent.
+
This proc is always called externally, by the instantiating game_mode / dynamic_ruleset.
+This is done by the set_round_result() or round_result() procs, at roundend.
+Sets the ticker subsystem to the correct result based off of the relative populations
+of space cops and family members.
+Takes no arguments.
update_wanted_level
Internal. Updates the icon states for everyone, and calls procs that send out announcements / change the end_time if the wanted level has changed.
\ No newline at end of file
diff --git a/datum/gang_theme.html b/datum/gang_theme.html
new file mode 100644
index 000000000000..ad2a300f9d8c
--- /dev/null
+++ b/datum/gang_theme.html
@@ -0,0 +1 @@
+/datum/gang_theme - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
gang_theme
Gang themes for the Families gamemode. Used to determine the RP theme of the round, what gangs are present, and what their objectives are.
How many gangsters should each gang start with? Recommend to keep this in the ballpark of ensuring 9-10 total gangsters spawn.
Var Details
bonus_first_gangster_items
Stuff given to the starting gangster at roundstart. Assoc list, type = list(item_type)
bonus_items
Stuff given to every gangster in this theme.
description
The radio announcement played after 5 minutes.
everyone_objective
If this isn't null, everyone gets this objective.
gang_objectives
The objectives for the gangs. Associative list, type = "objective"
involved_gangs
All gangs in the theme, typepaths of gangs.
name
The name of the theme.
starting_gangsters
How many gangsters should each gang start with? Recommend to keep this in the ballpark of ensuring 9-10 total gangsters spawn.
\ No newline at end of file
diff --git a/datum/gas_mixture.html b/datum/gas_mixture.html
new file mode 100644
index 000000000000..d045fd2f3fb6
--- /dev/null
+++ b/datum/gas_mixture.html
@@ -0,0 +1 @@
+/datum/gas_mixture - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Never ever set this variable, hooked into vv_get_var for view variables viewing.
Var Details
gas_list_view_only
Never ever set this variable, hooked into vv_get_var for view variables viewing.
\ No newline at end of file
diff --git a/datum/gateway_destination.html b/datum/gateway_destination.html
new file mode 100644
index 000000000000..44189a4457e3
--- /dev/null
+++ b/datum/gateway_destination.html
@@ -0,0 +1,2 @@
+/datum/gateway_destination - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
gateway_destination
Corresponds to single entry in gateway control.
+
Will NOT be added automatically to GLOB.gateway_destinations list.
How long after roundstart this destination becomes active
hidden
If disabled, the destination won't be available
Proc Details
is_available
Will not show on gateway controls at all.
\ No newline at end of file
diff --git a/datum/gateway_destination/gateway.html b/datum/gateway_destination/gateway.html
new file mode 100644
index 000000000000..75a401dadcb0
--- /dev/null
+++ b/datum/gateway_destination/gateway.html
@@ -0,0 +1 @@
+/datum/gateway_destination/gateway - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/gateway_destination/point.html b/datum/gateway_destination/point.html
new file mode 100644
index 000000000000..bb357c16b3b4
--- /dev/null
+++ b/datum/gateway_destination/point.html
@@ -0,0 +1 @@
+/datum/gateway_destination/point - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/http_request.html b/datum/http_request.html
new file mode 100644
index 000000000000..7a5bb58ce66c
--- /dev/null
+++ b/datum/http_request.html
@@ -0,0 +1 @@
+/datum/http_request - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
If present response body will be saved to this file.
Var Details
output_file
If present response body will be saved to this file.
\ No newline at end of file
diff --git a/datum/hud.html b/datum/hud.html
new file mode 100644
index 000000000000..9a5bdfa6be78
--- /dev/null
+++ b/datum/hud.html
@@ -0,0 +1,18 @@
+/datum/hud - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Whether or not screentips are enabled.
+This is updated by the preference for cheaper reads than would be
+had with a proc call, especially on one of the hottest procs in the
+game (MouseEntered).
+The color to use for the screentips.
+This is updated by the preference for cheaper reads than would be
+had with a proc call, especially on one of the hottest procs in the
+game (MouseEntered).
This is a silly proc used in hud code code to determine what icon and icon state we should be using
+for hud elements (such as action buttons) that don't have their own icon and icon state set.
Ensures all of our buttons are properly within the bounds of our client's view, moves them if they're not
Var Details
extra_inventory
Equipped item screens that don't show up even if using the initial toggle
extra_shown
Extra inventory slots visible?
hunger
UI element for hunger
screentip_text
UI for screentips that appear when you mouse over things
thirst
UI element for thirst
toggle_palette
Whether or not screentips are enabled.
+This is updated by the preference for cheaper reads than would be
+had with a proc call, especially on one of the hottest procs in the
+game (MouseEntered).
+The color to use for the screentips.
+This is updated by the preference for cheaper reads than would be
+had with a proc call, especially on one of the hottest procs in the
+game (MouseEntered).
Proc Details
build_action_groups
Generates and fills new action groups with our mob's current actions
generate_landings
Generates visual landings for all groups that the button is not a memeber of
get_action_buttons_icons
This is a silly proc used in hud code code to determine what icon and icon state we should be using
+for hud elements (such as action buttons) that don't have their own icon and icon state set.
+
It returns a list, which is pretty much just a struct of info
hide_action
Removes the passed in action from its current position on the screen
hide_landings
Clears all currently visible landings
view_audit_buttons
Ensures all of our buttons are properly within the bounds of our client's view, moves them if they're not
\ No newline at end of file
diff --git a/datum/hud/new_player.html b/datum/hud/new_player.html
new file mode 100644
index 000000000000..7b29a123b87b
--- /dev/null
+++ b/datum/hud/new_player.html
@@ -0,0 +1 @@
+/datum/hud/new_player - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Whether the menu is currently on the client's screen or not
Var Details
menu_hud_status
Whether the menu is currently on the client's screen or not
\ No newline at end of file
diff --git a/datum/instrument.html b/datum/instrument.html
new file mode 100644
index 000000000000..41174d86154a
--- /dev/null
+++ b/datum/instrument.html
@@ -0,0 +1 @@
+/datum/instrument - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Write here however many samples, follow this syntax: "%note num%"='%sample file%' eg. "27"='synthesizer/e2.ogg'. Key must never be lower than 0 and higher than 127
Volume multiplier. Synthesized instruments are quite loud and I don't like to cut off potential detail via editing. (someone correct me if this isn't a thing)
Var Details
HIGHEST_KEY
Don't touch this
LOWEST_KEY
Don't touch this x2
abstract_type
Used for categorization subtypes
admin_only
Oh no - For truly troll instruments.
category
Category
id
Uniquely identifies this instrument so runtime changes are possible as opposed to paths. If this is unset, things will use path instead.
instrument_flags
See __DEFINES/flags/instruments.dm
legacy_instrument_ext
For legacy instruments, our file extension
legacy_instrument_path
For legacy instruments, the path to our notes
name
Name of the instrument
real_samples
Write here however many samples, follow this syntax: "%note num%"='%sample file%' eg. "27"='synthesizer/e2.ogg'. Key must never be lower than 0 and higher than 127
samples
assoc list key = /datum/instrument_key. do not fill this yourself!
songs_using
What songs are using us
volume_multiplier
Volume multiplier. Synthesized instruments are quite loud and I don't like to cut off potential detail via editing. (someone correct me if this isn't a thing)
\ No newline at end of file
diff --git a/datum/interaction.html b/datum/interaction.html
new file mode 100644
index 000000000000..cfc450b3830c
--- /dev/null
+++ b/datum/interaction.html
@@ -0,0 +1 @@
+/datum/interaction - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
After the interaction, the base only plays the sound and only if it has one
Var Details
additional_details
Refuses to accept more than one entry for some reason, fix sometime
Proc Details
display_interaction
Display the message
do_action
Actually doing the action, has a few checks to see if it's valid, usually overwritten to be make things actually happen and what-not
evaluate_target
Same as evaluate_user, but for target
evaluate_user
Checks if user can do an interaction, action_check is for whether you're actually doing it or not (useful for the menu and not removing the buttons)
post_interaction
After the interaction, the base only plays the sound and only if it has one
\ No newline at end of file
diff --git a/datum/interaction/lewd.html b/datum/interaction/lewd.html
new file mode 100644
index 000000000000..f99884b1f812
--- /dev/null
+++ b/datum/interaction/lewd.html
@@ -0,0 +1 @@
+/datum/interaction/lewd - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/job.html b/datum/job.html
new file mode 100644
index 000000000000..83257e91c222
--- /dev/null
+++ b/datum/job.html
@@ -0,0 +1,11 @@
+/datum/job - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Should this job be allowed to be picked for the bureaucratic error event?
always_can_respawn_as
Can you always join as this job even while respawning (should probably only be on for assistant)
considered_combat_role
Is this job considered a combat role for respawning? (usually sec/command)
departments
Bitfield of departments this job belongs wit
exclusive_mail_goodies
If this job's mail goodies compete with generic goodies.
family_heirlooms
List of family heirlooms this job can get with the family heirloom quirk. List of types.
mail_goodies
Goodies that can be received via the mail system.
+Keep the _job definition for this empty and use /obj/item/mail to define general gifts.
random_spawns_possible
Is this job affected by weird spawns like the ones from station traits
starting_modifiers
Starting skill modifiers.
Proc Details
after_latejoin_spawn
Called after a successful latejoin spawn.
+Client is in the mob.
+This happens after after_spawn()
after_roundstart_spawn
Called after a successful roundstart spawn.
+Client is not yet in the mob.
+This happens after after_spawn()
get_default_roundstart_spawn_point
Handles finding and picking a valid roundstart effect landmark spawn point, in case no uncommon different spawning events occur.
get_latejoin_spawn_point
Finds a valid latejoin spawn point, checking for events and special conditions.
get_mail_goodies
An overridable getter for more dynamic goodies.
get_roundstart_spawn_point
Returns an atom where the mob should spawn in.
map_check
Checks if we should be created on a certain map
process_map_overrides
Processes map specific overrides
\ No newline at end of file
diff --git a/datum/job/mining.html b/datum/job/mining.html
new file mode 100644
index 000000000000..3c0c6072f003
--- /dev/null
+++ b/datum/job/mining.html
@@ -0,0 +1 @@
+/datum/job/mining - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Not necessarily easy itself, but it can be trivial to make lot of cash on this job.
Var Details
paycheck_department
Not necessarily easy itself, but it can be trivial to make lot of cash on this job.
\ No newline at end of file
diff --git a/datum/jps_node.html b/datum/jps_node.html
new file mode 100644
index 000000000000..2693f9765bec
--- /dev/null
+++ b/datum/jps_node.html
@@ -0,0 +1 @@
+/datum/jps_node - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
jps_node
The JPS Node datum represents a turf that we find interesting enough to add to the open list and possibly search for new tiles from
How many steps it's taken to get here from the start (currently pulling double duty as steps taken & cost to get here, since all moves incl diagonals cost 1 rn)
The A* node weight (f_value = number_of_tiles + heuristic)
heuristic
The A* node heuristic (a rough estimate of how far we are from the goal)
jumps
How many steps it took to get here from the last node
node_goal
Nodes store the endgoal so they can process their heuristic without a reference to the pathfind datum
number_tiles
How many steps it's taken to get here from the start (currently pulling double duty as steps taken & cost to get here, since all moves incl diagonals cost 1 rn)
previous_node
The node we just came from
tile
The turf associated with this node
\ No newline at end of file
diff --git a/datum/keybinding.html b/datum/keybinding.html
new file mode 100644
index 000000000000..5860a912b664
--- /dev/null
+++ b/datum/keybinding.html
@@ -0,0 +1 @@
+/datum/keybinding - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Special - Needs to update special keys on update. clientside implis special.
Var Details
clientside
Is this a clientside verb trigger? If so, this should be set to the name of the verb.
special
Special - Needs to update special keys on update. clientside implis special.
\ No newline at end of file
diff --git a/datum/keybinding/living.html b/datum/keybinding/living.html
new file mode 100644
index 000000000000..b8551901347a
--- /dev/null
+++ b/datum/keybinding/living.html
@@ -0,0 +1 @@
+/datum/keybinding/living - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Technically you shouldn't be doing any actions if you were sleeping either but...
Proc Details
can_use
Technically you shouldn't be doing any actions if you were sleeping either but...
\ No newline at end of file
diff --git a/datum/language_holder.html b/datum/language_holder.html
new file mode 100644
index 000000000000..5a64d0382c5f
--- /dev/null
+++ b/datum/language_holder.html
@@ -0,0 +1,3 @@
+/datum/language_holder - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Copies all languages from the supplied atom/language holder. Source should be overridden when you
+do not want the language overwritten by later atom updates or want to avoid blocked languages.
Empties out the atom specific languages and updates them according to the supplied atoms language holder.
Var Details
blocked_languages
A list of blocked languages. Used to prevent understanding and speaking certain languages, ie for certain mobs, mutations etc.
language_menu
Handles displaying the language menu UI.
omnitongue
If true, overrides tongue limitations.
owner
Tracks the entity that owns the holder.
selected_language
Currently spoken language
spoken_languages
A list of languages that can be spoken. Tongue organ may also set limits beyond this list.
understood_languages
Understood languages.
Proc Details
New
Initializes, and copies in the languages from the current atom if available.
add_blocked_language
Adds a single language or list of languages to the blocked language list.
can_speak_language
Checks if you can speak the language. Tongue limitations should be supplied as an argument.
copy_languages
Copies all languages from the supplied atom/language holder. Source should be overridden when you
+do not want the language overwritten by later atom updates or want to avoid blocked languages.
get_atom
Gets the atom, since we some times need to check if the tongue has limitations.
get_random_spoken_language
Gets a random spoken language, useful for forced speech and such.
get_random_understood_language
Gets a random understood language, useful for hallucinations and such.
get_selected_language
Returns selected language if it can be spoken, or decides, sets and returns a new selected language if possible.
grant_all_languages
Grants every language to understood and spoken, and gives omnitongue.
grant_language
Grants the supplied language.
has_language
Checks if you have the language. If spoken is true, only checks if you can speak the language.
open_language_menu
Opens a language menu reading from the language holder.
remove_all_languages
Removes every language and optionally sets omnitongue false. If a non default source is supplied, only removes that source.
remove_blocked_language
Removes a single language or list of languages from the blocked language list.
remove_language
Removes a single language or source, removing all sources returns the pre-removal state of the language.
update_atom_languages
Empties out the atom specific languages and updates them according to the supplied atoms language holder.
\ No newline at end of file
diff --git a/datum/lift_master.html b/datum/lift_master.html
new file mode 100644
index 000000000000..e710db4cbea9
--- /dev/null
+++ b/datum/lift_master.html
@@ -0,0 +1,15 @@
+/datum/lift_master - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Moves the lift UP or DOWN, this is what users invoke with their hand.
+This is a SAFE proc, ensuring every part of the lift moves SANELY.
+It also locks controls for the (miniscule) duration of the movement, so the elevator cannot be broken by spamming.
+Arguments:
+going - UP or DOWN directions, where the lift should go. Keep in mind by this point checks of whether it should go up or down have already been done.
+user - Whomever made the lift movement.
Moves the lift, this is what users invoke with their hand.
+This is a SAFE proc, ensuring every part of the lift moves SANELY.
+It also locks controls for the (miniscule) duration of the movement, so the elevator cannot be broken by spamming.
Sets all lift parts's controls_locked variable. Used to prevent moving mid movement, or cooldowns.
Proc Details
Check_lift_move
Check destination turfs
MoveLift
Moves the lift UP or DOWN, this is what users invoke with their hand.
+This is a SAFE proc, ensuring every part of the lift moves SANELY.
+It also locks controls for the (miniscule) duration of the movement, so the elevator cannot be broken by spamming.
+Arguments:
+going - UP or DOWN directions, where the lift should go. Keep in mind by this point checks of whether it should go up or down have already been done.
+user - Whomever made the lift movement.
MoveLiftHorizontal
Moves the lift, this is what users invoke with their hand.
+This is a SAFE proc, ensuring every part of the lift moves SANELY.
+It also locks controls for the (miniscule) duration of the movement, so the elevator cannot be broken by spamming.
Rebuild_lift_plaform
Collect all bordered platforms
set_controls
Sets all lift parts's controls_locked variable. Used to prevent moving mid movement, or cooldowns.
\ No newline at end of file
diff --git a/datum/lighting_object.html b/datum/lighting_object.html
new file mode 100644
index 000000000000..c233b7fc85f0
--- /dev/null
+++ b/datum/lighting_object.html
@@ -0,0 +1 @@
+/datum/lighting_object - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
whether we are already in the SSlighting.objects_queue list
Var Details
affected_turf
the turf that our light is applied to
current_underlay
the underlay we are currently applying to our turf to apply light
needs_update
whether we are already in the SSlighting.objects_queue list
\ No newline at end of file
diff --git a/datum/looping_sound.html b/datum/looping_sound.html
new file mode 100644
index 000000000000..e75843db3d85
--- /dev/null
+++ b/datum/looping_sound.html
@@ -0,0 +1 @@
+/datum/looping_sound - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/mafia_controller.html b/datum/mafia_controller.html
new file mode 100644
index 000000000000..9cdad4469648
--- /dev/null
+++ b/datum/mafia_controller.html
@@ -0,0 +1,138 @@
+/datum/mafia_controller - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
mafia_controller
The mafia controller handles the mafia minigame in progress.
+It is first created when the first ghost signs up to play.
used for debugging in testing (doesn't put people out of the game, some other shit i forgot, who knows just don't set this in live) honestly kinda deprecated
and these (judgement_innocent_votes, judgement_abstain_votes and judgement_guilty_votes) are the judgement phase votes, aka people sorting themselves into guilty and innocent, and "eh, i don't really care" lists. whichever has more inno or guilty wins!
Helper proc that adds a random role of a type to a setup. if it doesn't exist in the setup, it adds the path to the list and otherwise bumps the path in the list up one. unique roles can only get added once.
Called when the game is setting up, AFTER map is loaded but BEFORE the phase timers start. Creates and places each role's body and gives the correct player key
Triggers at beginning of the game when there is a confirmed list of valid, ready players.
+Creates a 100% ready game that has NOT started (no players in bodies)
+Followed by start game
The actual start of night for players. Mostly info is given at the start of the night as the end of the night is when votes and actions are submitted and tried.
The end of the game is in two procs, because we want a bit of time for players to see eachothers roles.
+Because of how check_victory works, the game is halted in other places by this point.
Proc that goes off when players vote for something with their mafia panel.
Var Details
all_roles
all roles in the game, dead or alive. check their game status if you only want living or dead.
current_map
template picked when the game starts. used for the name and desc reading
current_setup_text
Readable list of roles in current game, sent to the tgui panel for roles list > list("Psychologist x1", "Clown x2")
custom_setup
for debugging and testing a full game, or adminbuse. If this is not empty, it will use this as a setup. clears when game is over
day_phase_period
talk with others about the last night
debug
used for debugging in testing (doesn't put people out of the game, some other shit i forgot, who knows just don't set this in live) honestly kinda deprecated
first_day_phase_period
first day has no voting, and thus is shorter
judgement_abstain_votes
and these (judgement_innocent_votes, judgement_abstain_votes and judgement_guilty_votes) are the judgement phase votes, aka people sorting themselves into guilty and innocent, and "eh, i don't really care" lists. whichever has more inno or guilty wins!
judgement_lynch_period
guilty or innocent, we want a bit of time for players to process the outcome of the vote
judgement_phase_period
defend yourself! don't get lynched! sometimes skipped if nobody votes.
landmarks
spawn points for players, each one has a house
low_pop_mode
Prioritizes clients to have cool antag roles
map_deleter
map generation tool that deletes the current map after the game finishes
max_player
Max player count
next_phase_timer
current timer for phase
night_phase_period
mafia talk at night and pick someone to kill, some town roles use their actions, etc etc.
on_trial
current role on trial for the judgement phase, will die if guilty is greater than innocent
phase
what part of the game you're playing in. day phases, night phases, judgement phases, etc.
player_outfit
starting outfit for all mafia players. it's just a grey jumpsuit.
player_role_lookup
exists to speed up role retrieval, it's a dict. player_role_lookup[player ckey] will give you the role they play
required_player
Required player count
spectators
list of observers that should get game updates.
speed_up
if enabled, the game has fallen under half pop and is sped up
town_center_landmark
town center for when people get put on trial
turn
how long the game has gone on for, changes with every sunrise. day one, night one, day two, etc.
victory_lap_period
like the lynch period, players need to see what the other players in the game's roles were
votes
group voting on one person, like putting people to trial or choosing who to kill as mafia
voting_phase_period
vote someone to get put on trial
Proc Details
add_setup_role
Helper proc that adds a random role of a type to a setup. if it doesn't exist in the setup, it adds the path to the list and otherwise bumps the path in the list up one. unique roles can only get added once.
award_role
Lets the game award roles with all their checks and sanity, prevents achievements given out for debug games
+
Arguments:
+
+
award: path of the award
+
role: mafia_role datum to reward.
+
basic_setup
Called when enough players have signed up to fill a setup. DOESN'T NECESSARILY MEAN THE GAME WILL START.
+
Checks for a custom setup, if so gets the required players from that and if not it sets the player requirement to MAFIA_MAX_PLAYER_COUNT and generates one IF basic setup starts a game.
+Checks if everyone signed up is an observer, and is still connected. If people aren't, they're removed from the list.
+If there aren't enough players post sanity, it aborts. otherwise, it selects enough people for the game and starts preparing the game for real.
check_signups
Filters inactive player into a different list until they reconnect, and removes players who are no longer ghosts.
+
If a disconnected player gets a non-ghost mob and reconnects, they will be first put back into mafia_signup then filtered by that.
check_trial
Players have voted someone up, and now the person must defend themselves while the town votes innocent or guilty.
+
What players do in this phase:
+
+
Vote innocent or guilty, if they are not on trial.
+
Defend themselves and wait for judgement, if they are.
+
Leads to the lynch phase.
+Arguments:
+
verbose: boolean, announces whether there were votes or not. after judgement it goes back here with no voting period to end the day.
+
check_victory
Checks to see if a faction (or solo antagonist) has won.
+
Calculates in this order:
+
+
counts up town, mafia, and solo
+
solos can count as town members for the purposes of mafia winning
+
sends the amount of living people to the solo antagonists, and see if they won OR block the victory of the teams
+
checks if solos won from above, then if town, then if mafia
+
starts the end of the game if a faction won
+
returns TRUE if someone won the game, halting other procs from continuing in the case of a victory
+
create_bodies
Called when the game is setting up, AFTER map is loaded but BEFORE the phase timers start. Creates and places each role's body and gives the correct player key
+
Notably:
+
+
Toggles godmode so the mafia players cannot kill themselves
+
Adds signals for voting overlays, see display_votes proc
+
gives mafia panel
+
sends the greeting text (goals, role name, etc)
+
display_votes
Adds mutable appearances to people who get publicly voted on (so not night votes) showing how many people are picking them
+Arguments:
+
+
source: the body of the role getting the overlays
+
overlay_list: signal var passing the overlay list of the mob
+
end_game
Cleans up the game, resetting variables back to the beginning and removing the map with the generator.
generate_random_setup
Returns a semirandom setup with 12 roles. balance not guaranteed!
+
please check the variables at the top of the proc to see how much of each role types it picks
get_random_voter
Returns a random person who voted for whatever vote (day vote, night kill vote)
+Arguments:
+
+
vote_type: vote type (getting a random day voter, or mafia night voter)
+
get_vote_count
Returns how many people voted for the role, in whatever vote (day vote, night kill vote)
+Arguments:
+
+
role: the mafia role the proc tries to get the amount of votes for
+
vote_type: the vote type (getting how many day votes were for the role, or mafia night votes for the role)
+
get_vote_winner
Returns whichever role got the most votes, in whatever vote (day vote, night kill vote)
+returns null if no votes
+Arguments:
+
+
vote_type: the vote type (getting the role that got the most day votes, or the role that got the most mafia votes)
+
lockdown
After the voting and judgement phases, the game goes to night shutting the windows and beginning night with a proc.
lynch
Players have voted innocent or guilty on the person on trial, and that person is now killed or returned home.
+
What players do in this phase:
+
+
r/watchpeopledie
+
If the accused is killed, their true role is revealed to the rest of the players.
+
prepare_game
Triggers at beginning of the game when there is a confirmed list of valid, ready players.
+Creates a 100% ready game that has NOT started (no players in bodies)
+Followed by start game
+
Does the following:
+
+
Picks map, and loads it
+
Grabs landmarks if it is the first time it's loading
+
Sets up the role list
+
Puts players in each role randomly
+Arguments:
+
setup_list: list of all the datum setups (fancy list of roles) that would work for the game
+
ready_players: list of filtered, sane players (so not playing or disconnected) for the game to put into roles
+
reset_votes
Clears out the votes of a certain type (day votes, mafia kill votes) while leaving others untouched
resolve_night
The end of the night, and a series of signals for the order of events on a night.
+
Order of events, and what they mean:
+
+
Start of resolve (NIGHT_START) is for activating night abilities that MUST go first
+
Action phase (NIGHT_ACTION_PHASE) is for non-lethal day abilities
+
Mafia then tallies votes and kills the highest voted person (note: one random voter visits that person for the purposes of roleblocking)
+
Killing phase (NIGHT_KILL_PHASE) is for lethal night abilities
+
End of resolve (NIGHT_END) is for cleaning up abilities that went off and i guess doing some that must go last
+
Finally opens the curtains and calls the start of day phase, completing the cycle until check victory returns TRUE
+
send_home
Teenie helper proc to move players back to their home.
+Used in the above, but also used in the debug button "send all players home"
+Arguments:
+
+
role: mafia role that is getting sent back to the game.
+
start_day
How every day starts.
+
What players do in this phase:
+
+
If day one, just a small starting period to see who is in the game and check role, leading to the night phase.
+
Otherwise, it's a longer period used to discuss events that happened during the night, leading to the voting phase.
+
start_game
The game by this point is now all set up, and so we can put people in their bodies and start the first phase.
+
Does the following:
+
+
Creates bodies for all of the roles with the first proc
+
Starts the first day manually (so no timer) with the second proc
+
start_night
The actual start of night for players. Mostly info is given at the start of the night as the end of the night is when votes and actions are submitted and tried.
+
What players do in this phase:
+
+
Mafia are told to begin voting on who to kill
+
Powers that are picked during the day announce themselves right now
+
start_the_end
The end of the game is in two procs, because we want a bit of time for players to see eachothers roles.
+Because of how check_victory works, the game is halted in other places by this point.
+
What players do in this phase:
+
+
See everyone's role postgame
+
See who won the game
+Arguments:
+
message: string, if non-null it sends it to all players. used to announce team victories while solos are handled in check victory
+
start_voting_phase
Players have finished the discussion period, and now must put up someone to the chopping block.
+
What players do in this phase:
+
+
Vote on which player to put up for lynching, leading to the judgement phase.
+
If no votes are case, the judgement phase is skipped, leading to the night phase.
+
toggle_night_curtains
Shuts poddoors attached to mafia.
+Arguments:
+
+
close: boolean, the state you want the curtains in.
+
try_autostart
Called when someone signs up, and sees if there are enough people in the signup list to begin.
+
Only checks if everyone is actually valid to start (still connected and an observer) if there are enough players (basic_setup)
vote_for
Proc that goes off when players vote for something with their mafia panel.
+
If teams, it hides the tally overlay and only sends the vote messages to the team that is voting
+Arguments:
+
+
voter: the mafia role that is trying to vote for...
+
target: the mafia role that is getting voted for
+
vote_type: type of vote submitted (is this the day vote? is this the mafia night vote?)
+
teams: see mafia team defines for what to put in, makes the messages only send to a specific team (so mafia night votes only sending messages to mafia at night)
+
\ No newline at end of file
diff --git a/datum/mafia_role.html b/datum/mafia_role.html
new file mode 100644
index 000000000000..ff87eeceeef6
--- /dev/null
+++ b/datum/mafia_role.html
@@ -0,0 +1,3 @@
+/datum/mafia_role - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Tests kill immunities, if nothing prevents the kill, kills this role.
Var Details
actions
action = uses
game_status
so mafia have to also kill them to have a majority
hud_icon
icon state in the mafia dmi of the hud of the role, used in the mafia ui
revealed_icon
icon state in the mafia dmi of the hud of the role, used in the mafia ui
revealed_outfit
what they get equipped with when they are revealed
role_flags
role flags (special status of roles like detection immune)
role_type
how the random setup chooses which roles get put in
special_theme
set this to something cool for antagonists and their window will look different
vote_potential
how many votes your role COULD count for, now or later. used in checking victory
vote_power
how many votes submitted when you vote. used in voting, but not victory
winner_award
what the role gets when it wins a game
Proc Details
can_action
Tests if a visitor can actually perform an action on this role. Verbose on purpose!
+
Will return false if: Your visit is roleblocked, they have perished, or your visit was interrupted
kill
Tests kill immunities, if nothing prevents the kill, kills this role.
+
Does not count as visiting, see visit proc.
\ No newline at end of file
diff --git a/datum/map_config.html b/datum/map_config.html
new file mode 100644
index 000000000000..c798db3fda32
--- /dev/null
+++ b/datum/map_config.html
@@ -0,0 +1 @@
+/datum/map_config - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Jobs blacklist - if this is not empty, jobs in this aren't allowed.
job_override_spawn_positions
Job spawn position mod - type = number
job_override_total_positions
Job total position mod - type = number
job_whitelist
Jobs whitelist - if this is not empty, ONLY these jobs are allowed. Overrides blacklist.
orientation
Orientation to load in by default.
persistence_key
Persistence key: Defaults to ckey(map_name). If set to "NO_PERSIST", this map will have NO persistence.
Proc Details
WriteNextMap
badmin moments. Keep up to date with LoadConfig()!
\ No newline at end of file
diff --git a/datum/map_generator.html b/datum/map_generator.html
new file mode 100644
index 000000000000..eef11ecca1e3
--- /dev/null
+++ b/datum/map_generator.html
@@ -0,0 +1 @@
+/datum/map_generator - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
map_generator
This type is responsible for any map generation behavior that is done in areas, override this to allow for area-specific map generation. This generation is ran by areas in initialize.
This proc will be ran by areas on Initialize, and provides the areas turfs as argument to allow for generation.
Proc Details
generate_terrain
This proc will be ran by areas on Initialize, and provides the areas turfs as argument to allow for generation.
\ No newline at end of file
diff --git a/datum/map_generator/cave_generator.html b/datum/map_generator/cave_generator.html
new file mode 100644
index 000000000000..536ae82428c5
--- /dev/null
+++ b/datum/map_generator/cave_generator.html
@@ -0,0 +1 @@
+/datum/map_generator/cave_generator - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
How much neighbours does a dead cell need to become alive
closed_turf_types
Weighted list of the types that spawns if the turf is closed
death_limit
How little neighbours does a alive cell need to die
feature_spawn_chance
Base chance of spawning features
feature_spawn_list
Weighted list of extra features that can spawn in the area, such as geysers.
flora_spawn_chance
Base chance of spawning flora
flora_spawn_list
Weighted list of flora that can spawn in the area.
initial_closed_chance
Chance of cells starting closed
mob_spawn_chance
Base chance of spawning a mob
mob_spawn_list
Weighted list of mobs that can spawn in the area.
open_turf_types
Weighted list of the types that spawns if the turf is open
smoothing_iterations
Amount of smoothing iterations
string_gen
Unique ID for this spawner
\ No newline at end of file
diff --git a/datum/map_generator/jungle_generator.html b/datum/map_generator/jungle_generator.html
new file mode 100644
index 000000000000..0abd173a83ad
--- /dev/null
+++ b/datum/map_generator/jungle_generator.html
@@ -0,0 +1 @@
+/datum/map_generator/jungle_generator - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Seeds the rust-g perlin noise with a random number.
Var Details
perlin_zoom
Used to select "zoom" level into the perlin noise, higher numbers result in slower transitions
possible_biomes
2D list of all biomes based on heat and humidity combos.
Proc Details
generate_terrain
Seeds the rust-g perlin noise with a random number.
\ No newline at end of file
diff --git a/datum/map_report.html b/datum/map_report.html
new file mode 100644
index 000000000000..b48700eec12e
--- /dev/null
+++ b/datum/map_report.html
@@ -0,0 +1 @@
+/datum/map_report - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
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.
\ No newline at end of file
diff --git a/datum/map_template.html b/datum/map_template.html
new file mode 100644
index 000000000000..019fb2bbcab5
--- /dev/null
+++ b/datum/map_template.html
@@ -0,0 +1,10 @@
+/datum/map_template - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Takes in a type path, locates an instance of that type in the cached map, and calculates its offset from the origin of the map, returns this offset in the form list(x, y).
Proc to trigger a load at a specific area. Calls on_map_loaded(T.z, loaded_bounds) afterwards.
Proc Details
discover_offset
Takes in a type path, locates an instance of that type in the cached map, and calculates its offset from the origin of the map, returns this offset in the form list(x, y).
load
Proc to trigger a load at a specific area. Calls on_map_loaded(T.z, loaded_bounds) afterwards.
+
@params
+
+
turf/T - Turf to load at
+
centered - Center at T or load with the bottomright corner being at T
+
orientation - SOUTH is default, anything else rotates the map to face it with the point of reference being the map itself is facing south by default. Cardinals only, don't be a 4head and put in multiple flags. It won't work or be pretty if you try.
+
annihilate - Should we destroy stuff in our bounds while loading
+
force_cache - Should we force the parsed shuttle to cache instead of being GC'd post loading if it wasn't going to be cached by default
+
rotate_placement_to_orientation - Has no effect if centered. Should we rotate where we load it around the turf we're loading at? Used for stuff like engine submaps when the station is rotated.
+
\ No newline at end of file
diff --git a/datum/map_template/shuttle.html b/datum/map_template/shuttle.html
new file mode 100644
index 000000000000..3abae49ac689
--- /dev/null
+++ b/datum/map_template/shuttle.html
@@ -0,0 +1 @@
+/datum/map_template/shuttle - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
How much does this shuttle cost the cargo budget to purchase? Put in terms of CARGO_CRATE_VALUE to properly scale the cost with the current balance of cargo's income.
If set, overrides default movement_force on shuttle
Var Details
can_be_bought
Can the be legitimately purchased by the station? Used by hardcoded or pre-mapped shuttles like the lavaland or cargo shuttle.
credit_cost
How much does this shuttle cost the cargo budget to purchase? Put in terms of CARGO_CRATE_VALUE to properly scale the cost with the current balance of cargo's income.
movement_force
If set, overrides default movement_force on shuttle
\ No newline at end of file
diff --git a/datum/map_template/shuttle/emergency/narnar.html b/datum/map_template/shuttle/emergency/narnar.html
new file mode 100644
index 000000000000..867028bb27ae
--- /dev/null
+++ b/datum/map_template/shuttle/emergency/narnar.html
@@ -0,0 +1 @@
+/datum/map_template/shuttle/emergency/narnar - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/martial_art.html b/datum/martial_art.html
new file mode 100644
index 000000000000..9d95862fd665
--- /dev/null
+++ b/datum/martial_art.html
@@ -0,0 +1 @@
+/datum/martial_art - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Set this variable to something not null, this'll be the preferred unarmed parry in most cases if [can_martial_parry] is TRUE. YOU MUST RUN [get_block_parry_data(this)] INSTEAD OF DIRECTLY ACCESSING!
Gets called when a projectile hits the owner. Returning anything other than BULLET_ACT_HIT will stop the projectile from hitting the mob.
Var Details
block_parry_data
Set this variable to something not null, this'll be the preferred unarmed parry in most cases if [can_martial_parry] is TRUE. YOU MUST RUN [get_block_parry_data(this)] INSTEAD OF DIRECTLY ACCESSING!
can_martial_parry
Can we be used to unarmed parry?
Proc Details
active_parry_reflex_counter
Called when an attack is parried and block_parra_data indicates to use a proc to handle counterattack.
on_active_parry
Called when an attack is parried using this, whether or not the parry was successful.
on_projectile_hit
Gets called when a projectile hits the owner. Returning anything other than BULLET_ACT_HIT will stop the projectile from hitting the mob.
\ No newline at end of file
diff --git a/datum/martial_art/cqc/blueshield.html b/datum/martial_art/cqc/blueshield.html
new file mode 100644
index 000000000000..2fbc88c47e77
--- /dev/null
+++ b/datum/martial_art/cqc/blueshield.html
@@ -0,0 +1 @@
+/datum/martial_art/cqc/blueshield - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Prevents use if the Blueshit is not on the bridge or the captain'soffice .
Proc Details
can_use
Prevents use if the Blueshit is not on the bridge or the captain'soffice .
\ No newline at end of file
diff --git a/datum/martial_art/cqc/under_siege.html b/datum/martial_art/cqc/under_siege.html
new file mode 100644
index 000000000000..31486864176c
--- /dev/null
+++ b/datum/martial_art/cqc/under_siege.html
@@ -0,0 +1 @@
+/datum/martial_art/cqc/under_siege - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/martial_art/the_sleeping_carp.html b/datum/martial_art/the_sleeping_carp.html
new file mode 100644
index 000000000000..3b8dc3312de2
--- /dev/null
+++ b/datum/martial_art/the_sleeping_carp.html
@@ -0,0 +1 @@
+/datum/martial_art/the_sleeping_carp - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Gnashing Teeth: Harm Harm, high force punch on every second harm punch, has a chance to crit for near triple damage
\ No newline at end of file
diff --git a/datum/material.html b/datum/material.html
new file mode 100644
index 000000000000..87ab5c5315df
--- /dev/null
+++ b/datum/material.html
@@ -0,0 +1,41 @@
+/datum/material - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Bitflags that influence how SSmaterials handles this material.
+Materials "Traits". its a map of key = category | Value = Bool. Used to define what it can be used for
Base alpha of the material, is used for greyscale icons.
armor_modifiers
Armor modifiers, multiplies an items normal armor vars by these amounts.
beauty_modifier
How beautiful is this material per unit.
cached_texture_filter
a cached icon for the texture filter
categories
Bitflags that influence how SSmaterials handles this material.
+Materials "Traits". its a map of key = category | Value = Bool. Used to define what it can be used for
color
Base color of the material, is used for greyscale. Item isn't changed in color if this is null.
desc
A short description of the material. Not used anywhere, yet...
id
What the material is indexed by in the SSmaterials.materials list. Defaults to the type of the material.
integrity_modifier
This is a modifier for integrity, and resembles the strength of the material
item_sound_override
Can be used to override the sound items make, lets add some SLOSHing.
name
What the material is referred to as IC.
shard_type
What type of shard the material will shatter to
sheet_type
The type of sheet this material creates. This should be replaced as soon as possible by greyscale sheets
strength_modifier
This is a modifier for force, and resembles the strength of the material
texture_layer_icon_state
what texture icon state to overlay
turf_sound_override
Can be used to override the stepsound a turf makes. MORE SLOOOSH
value_per_unit
This is the amount of value per 1 unit of the material
Proc Details
Initialize
+
+
Handles initializing the material.
+
+
+
Arugments:
+
+
+
+
_id: The ID the material should use. Overrides the existing ID.
+
+
+
on_accidental_mat_consumption
This proc is called when the mat is found in an item that's consumed by accident. see /obj/item/proc/on_accidental_consumption.
+Arguments
+
+
M - person consuming the mat
+
S - (optional) item the mat is contained in (NOT the item with the mat itself)
+
on_applied
This proc is called when the material is added to an object.
on_applied_obj
This proc is called when the material is added to an object specifically.
on_removed
This proc is called when the material is removed from an object.
on_removed_obj
This proc is called when the material is removed from an object specifically.
return_composition
+
+
Returns the composition of this material.
+
+
+
Mostly used for alloys when breaking down materials.
+
+
+
Arguments:
+
+
+
+
amount: The amount of the material to break down.
+
+
+
+
+
breakdown_flags: Some flags dictating how exactly this material is being broken down.
+
+
+
\ No newline at end of file
diff --git a/datum/mind.html b/datum/mind.html
new file mode 100644
index 000000000000..fcaba3d6a71a
--- /dev/null
+++ b/datum/mind.html
@@ -0,0 +1,29 @@
+/datum/mind - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Lazy list for antagonists to set goals they wish to achieve, to be shown at the round-end report.
has_ever_been_ai
has this mind ever been an AI
original_character
Weakref to the character we spawned in as- either at roundstart or latejoin, so we know for persistent scars if we ended as the same person or not
skill_holder
Our skill holder.
special_statuses
A lazy list of statuses to add next to this mind in the traitor panel
Proc Details
action_skill_mod
Generic value modifier proc that uses one skill.
+Args:
+
+
value : the value to modify, may be a delay, damage, probability.
+
threshold : The difficulty of the action, in short. Refer to __DEFINES/skills/defines.dm for the defines.
+
modifier_is_multiplier : wheter the modifier is a multiplier or a divisor.
+
auto_gain_experience
Automatic skill increase, multiplied by skill affinity if existing.
+Only works if skill is numerical or levelled..
boost_skill_value_to
Boosts a skill to a value if not aobve
equip_traitor
give_uplink
+
A mind proc for giving anyone an uplink.
+arguments:
+
+
silent: if this should send a message to the mind getting the uplink. traitors do not use this silence, but the silence var on their antag datum.
+
antag_datum: the antag datum of the uplink owner, for storing it in antag memory. optional!
+
get_hijack_speed
Sets our can_hijack to the fastest speed our antag datums allow.
get_skill_affinity
Grabs our affinity for a skill. !!This is a multiplier!!
get_skill_level
Grabs the level of a skill. Only supported by skills with tiers or levels.
get_skill_value
Grabs the value of a skill.
item_action_skills_mod
Generic value modifier proc that uses several skills, intended for items.
+Args:
+
+
item/I : the item used in this action. its used_skills list variable contains the skills exercised with it.
+
value : the value to modify, may be a delay, damage, probability.
+
traits : the required traits each skill (either in I.used_skills or the skill datum skill_traits) must have to influence
+
+
the value.
+
+
+
bad_traits : the opposite of the above.
+
modifier_is_multiplier : wheter the modifier is a multiplier or a divisor.
+
remove_antags_for_borging
Remove the antagonists that should not persist when being borged
set_skill_value
Sets the value of a skill.
\ No newline at end of file
diff --git a/datum/mod_theme.html b/datum/mod_theme.html
new file mode 100644
index 000000000000..b1b61077f7e0
--- /dev/null
+++ b/datum/mod_theme.html
@@ -0,0 +1 @@
+/datum/mod_theme - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
mod_theme
MODsuit theme, instanced once and then used by MODsuits to grab various statistics.
How much battery power the MOD uses by just being on
complexity_max
How much modules can the MOD carry without malfunctioning.
default_skin
Default skin of the MOD.
desc
Description added to the MOD.
extended_desc
Extended description on examine_more
inbuilt_modules
List of inbuilt modules. These are different from the pre-equipped suits, you should mainly use these for unremovable modules with 0 complexity.
max_heat_protection_temperature
Max heat protection shared across the MOD pieces.
min_cold_protection_temperature
Max cold protection shared across the MOD pieces.
module_blacklist
Modules blacklisted from the MOD.
name
Theme name for the MOD.
permeability_coefficient
Permeability shared across the MOD pieces.
resistance_flags
Resistance flags shared across the MOD pieces.
siemens_coefficient
Siemens shared across the MOD pieces.
skins
List of skins with their appropriate clothing flags.
slowdown_active
Slowdown of the MOD when active.
slowdown_inactive
Slowdown of the MOD when not active.
ui_theme
Theme used by the MOD TGUI.
\ No newline at end of file
diff --git a/datum/mood_event.html b/datum/mood_event.html
new file mode 100644
index 000000000000..35c2501eb8dd
--- /dev/null
+++ b/datum/mood_event.html
@@ -0,0 +1 @@
+/datum/mood_event - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
For descriptions, use the span classes bold nicegreen, nicegreen, none, warning and boldwarning in order from great to horrible.
Var Details
mood_change
For descriptions, use the span classes bold nicegreen, nicegreen, none, warning and boldwarning in order from great to horrible.
\ No newline at end of file
diff --git a/datum/movespeed_modifier.html b/datum/movespeed_modifier.html
new file mode 100644
index 000000000000..ee0a97655554
--- /dev/null
+++ b/datum/movespeed_modifier.html
@@ -0,0 +1 @@
+/datum/movespeed_modifier - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Unique ID. You can never have different modifications with the same ID. By default, this SHOULD NOT be set. Only set it for cases where you're dynamically making modifiers/need to have two types overwrite each other. If unset, uses path (converted to text) as ID.
Whether or not this is a variable modifier. Variable modifiers can NOT be ever auto-cached. ONLY CHECKED VIA INITIAL(), EFFECTIVELY READ ONLY (and for very good reason)
Returns new multiplicative movespeed after modification.
Var Details
absolute_max_tiles_per_second
Absolute max tiles we can boost to
blacklisted_movetypes
Movetypes this never applies to
complex_calculation
Next two variables depend on this: Should we do advanced calculations?
conflicts_with
Other modification datums this conflicts with.
id
Unique ID. You can never have different modifications with the same ID. By default, this SHOULD NOT be set. Only set it for cases where you're dynamically making modifiers/need to have two types overwrite each other. If unset, uses path (converted to text) as ID.
max_tiles_per_second_boost
Max tiles per second we can boost
movetypes
Movetypes this applies to
multiplicative_slowdown
Multiplicative slowdown
priority
Determines order. Lower priorities are applied first.
variable
Whether or not this is a variable modifier. Variable modifiers can NOT be ever auto-cached. ONLY CHECKED VIA INITIAL(), EFFECTIVELY READ ONLY (and for very good reason)
Proc Details
apply_multiplicative
Returns new multiplicative movespeed after modification.
\ No newline at end of file
diff --git a/datum/movespeed_modifier/sprinting.html b/datum/movespeed_modifier/sprinting.html
new file mode 100644
index 000000000000..2316a2e4d015
--- /dev/null
+++ b/datum/movespeed_modifier/sprinting.html
@@ -0,0 +1 @@
+/datum/movespeed_modifier/sprinting - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/mutation/human/hulk.html b/datum/mutation/human/hulk.html
new file mode 100644
index 000000000000..cee501c28bde
--- /dev/null
+++ b/datum/mutation/human/hulk.html
@@ -0,0 +1,6 @@
+/datum/mutation/human/hulk - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Checks damage of a hulk's arm and applies bone wounds as necessary.
Proc Details
break_an_arm
Checks damage of a hulk's arm and applies bone wounds as necessary.
+
Called by specific atoms being attacked, such as walls. If an atom
+does not call this proc, than punching that atom will not cause
+arm breaking (even if the atom deals recoil damage to hulks).
+Arguments:
+arg1 is the arm to evaluate damage of and possibly break.
\ No newline at end of file
diff --git a/datum/nanite_program.html b/datum/nanite_program.html
new file mode 100644
index 000000000000..a51e03c25717
--- /dev/null
+++ b/datum/nanite_program.html
@@ -0,0 +1,3 @@
+/datum/nanite_program - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
You can override this if you need to have special behavior after setting certain settings.
Var Details
corruptable
Corruptable - able to have code/configuration changed
error_flicking
error flicking - able to be randomly toggled by errors
extra_settings
Don't ever override this or I will come to your house and stand menacingly behind a bush
immutable
immutable - cannot be overwritten by other programs
Proc Details
copy_extra_settings_to
Copy of the list instead of direct reference for obvious reasons
get_extra_setting_value
You probably shouldn't be overriding this one, but I'm not a cop.
get_extra_settings_frontend
Used for getting information about the extra settings to the frontend
is_permanent
Checks if we're a permanent program
register_extra_settings
Register extra settings by overriding this.
+extra_settings[name] = new typepath() for each extra setting
self_destruct
Attempts to destroy ourselves
set_extra_setting
You can override this if you need to have special behavior after setting certain settings.
\ No newline at end of file
diff --git a/datum/ntnet_conversation.html b/datum/ntnet_conversation.html
new file mode 100644
index 000000000000..9aa290881381
--- /dev/null
+++ b/datum/ntnet_conversation.html
@@ -0,0 +1 @@
+/datum/ntnet_conversation - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/objective/door_jack.html b/datum/objective/door_jack.html
new file mode 100644
index 000000000000..3f4aa0aeed5b
--- /dev/null
+++ b/datum/objective/door_jack.html
@@ -0,0 +1 @@
+/datum/objective/door_jack - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
How many doors that need to be opened using the gloves to pass the objective
Var Details
doors_required
How many doors that need to be opened using the gloves to pass the objective
\ No newline at end of file
diff --git a/datum/objective/hijack.html b/datum/objective/hijack.html
new file mode 100644
index 000000000000..5a598644b8d0
--- /dev/null
+++ b/datum/objective/hijack.html
@@ -0,0 +1 @@
+/datum/objective/hijack - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Overrides the hijack speed of any antagonist datum it is on ONLY, no other datums are impacted.
Var Details
hijack_speed_override
Overrides the hijack speed of any antagonist datum it is on ONLY, no other datums are impacted.
\ No newline at end of file
diff --git a/datum/outfit.html b/datum/outfit.html
new file mode 100644
index 000000000000..03048214659a
--- /dev/null
+++ b/datum/outfit.html
@@ -0,0 +1,34 @@
+/datum/outfit - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Outfit datums
This is a clean system of applying outfits to mobs, if you need to equip someone in a uniform
+this is the way to do it cleanly and properly.
+
You can also specify an outfit datum on a job to have it auto equipped to the mob on join
+
/mob/living/carbon/human/proc/equipOutfit(outfit) is the mob level proc to equip an outfit
+and you pass it the relevant datum outfit
+
outfits can also be saved as json blobs downloadable by a client and then can be uploaded
+by that user to recreate the outfit, this is used by admins to allow for custom event outfits
+that can be restored at a later date
Prompt the passed in mob client to download this outfit as a json blob
Var Details
accessory
Any clothing accessory item
back
Type path of item to go in back slot
backpack_contents
list of items that should go in the backpack of the user
+
Format of this list should be: list(path=count,otherpath=count)
belt
Type path of item to go in belt slot
box
Internals box. Will be inserted at the start of backpack_contents
chameleon_extras
extra types for chameleon outfit changes, mostly guns
+
Format of this list is (typepath, typepath, typepath)
+
These are all added and returns in the list for get_chamelon_diguise_info proc
ears
Type path of item to go in ears slot
ears_extra
Slot for the opposite ear.
glasses
Type path of item to go in the glasses slot
gloves
Type path of item to go in gloves slot
head
Type path of item to go in head slot
id
Type path of item to go in the idcard slot
implants
Any implants the mob should start implanted with
+
Format of this list is (typepath, typepath, typepath)
internals_slot
ID of the slot containing a gas tank
l_hand
Type path of item to go in the right hand
l_pocket
Type path of item for left pocket slot
mask
Type path of item to go in mask slot
name
Name of the outfit (shows up in the equip admin verb)
neck
Type path of item to go in neck slot
r_pocket
Type path of item for right pocket slot
shirt
Slot for the undershirt (which is quite a foreign concept to me) or bras
shoes
Type path of item to go in shoes slot
socks
Slot for socks, yes, the thing that usually goes before your shoes
suit
Type path of item to go in suit slot
suit_store
Type path of item to go in suit storage slot
+
(make sure it's valid for that suit)
toggle_helmet
Should the toggle helmet proc be called on the helmet during equip
underwear
Slot for underwear like boxers and panties
uniform
Type path of item to go in uniform slot
wrists
Slot for the part of your arms that isn't quite hands yet.
Proc Details
apply_fingerprints
Apply a fingerprint from the passed in human to all items in the outfit
+
Used for forensics setup when the mob is first equipped at roundstart
+essentially calls add_fingerprint to every defined item on the human
copy_from
Copy most vars from another outfit to this one
equip
Equips all defined types and paths to the mob passed in
+
Extra Arguments
+
+
visualsOnly true if this is only for display (in the character setup screen)
+
+
If visualsOnly is true, you can omit any work that doesn't visually appear on the character sprite
get_chameleon_disguise_info
Return a list of all the types that are required to disguise as this outfit type
get_json_data
Return a json list of this outfit
load_from
Create an outfit datum from a list of json data
post_equip
Called after the equip proc has finished
+
All items are on the mob at this point, use this proc to toggle internals
+fiddle with id bindings and accesses etc
+
Extra Arguments
+
+
visualsOnly true if this is only for display (in the character setup screen)
+
+
If visualsOnly is true, you can omit any work that doesn't visually appear on the character sprite
pre_equip
Called at the start of the equip proc
+
Override to change the value of the slots depending on client prefs, species and
+other such sources of change
+
Extra Arguments
+
+
visualsOnly true if this is only for display (in the character setup screen)
+
+
If visualsOnly is true, you can omit any work that doesn't visually appear on the character sprite
save_to_file
Prompt the passed in mob client to download this outfit as a json blob
\ No newline at end of file
diff --git a/datum/parallax.html b/datum/parallax.html
new file mode 100644
index 000000000000..7d080b23554d
--- /dev/null
+++ b/datum/parallax.html
@@ -0,0 +1 @@
+/datum/parallax - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Gets a new version of the objects inside - used when applying to a holder.
Var Details
layers
Parallax layers
objects
List of parallax objects - these are cloned to a parallax holder using Clone on each.
Proc Details
GetObjects
Gets a new version of the objects inside - used when applying to a holder.
\ No newline at end of file
diff --git a/datum/parallax_holder.html b/datum/parallax_holder.html
new file mode 100644
index 000000000000..68559b762b34
--- /dev/null
+++ b/datum/parallax_holder.html
@@ -0,0 +1,15 @@
+/datum/parallax_holder - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Parallax holders
Holds all the information about a client's parallax
+
Not on mob because parallax is area based, not mob based.
+
How parallax works:
+
+
Layers - normal layers, scroll with movement to relative position, can scroll
+
Absolute - absolute layers, scroll with movement to absolute position, cannot scroll
+
Vis - vis_contents-like model - things in this are directly applied and get no processing whatsoever. Things like overmap ships can use this.
current scroll turn - applied after angle. if angle is 0 (picture moving north) and turn is 90, it would be like if you turned your viewport 90 deg clockwise.
Eye we were last anchored to - used to detect eye changes
forced_eye
force this eye as the "real" eye - useful for secondary maps
last
last turf loc
last_area
last area - for parallax scrolling/loop animations
layers
all layers
owner
Client that owns us
parallax
The parallax object we're currently rendering
planemaster_override
override planemaster we manipulate for turning and other effects
scroll_speed
current scroll speed in DS per scroll
scroll_turn
current scroll turn - applied after angle. if angle is 0 (picture moving north) and turn is 90, it would be like if you turned your viewport 90 deg clockwise.
scrolling
currently scrolling?
secondary_map
are we not on the main map? if so, put map id here
vis
vis contents
vis_holder
Holder object for vis
Proc Details
Animation
Runs a modifier to parallax as an animation.
+
@params
+speed - ds per loop
+turn - angle clockwise from north to turn the motion to
+windup - ds to spend on windups. 0 for immediate.
+turn_speed - ds to spend on turning. 0 for immediate.
Eye
Gets the eye we should be centered on
GetPlaneMaster
Gets the base parallax planemaster for things like turning
HardResetAnimations
fully resets animation state
StopScrolling
Smoothly stops the animation, turning to a certain angle as needed.
Sync
Syncs us to our parallax objects. Does NOT check if we should have those objects, that's Reset()'s job.
+
Doesn't move/update positions/screen locs either.
+
Also ensures movedirs are correct for the eye's pos.
UpdateMotion
Updates motion if needed
\ No newline at end of file
diff --git a/datum/parsed_map.html b/datum/parsed_map.html
new file mode 100644
index 000000000000..be2bbbaa35e9
--- /dev/null
+++ b/datum/parsed_map.html
@@ -0,0 +1,8 @@
+/datum/parsed_map - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Parse a map, possibly cropping it.
+Do not use the crop function unless strictly necessary.
+WARNING: Crop function crops based on the tiles you'd see in the map editor. If you're planning to load it in in a different orientation later, you better have done the math.
+It's recommended that you do not crop using this at all.
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
Parse a map, possibly cropping it.
+Do not use the crop function unless strictly necessary.
+WARNING: Crop function crops based on the tiles you'd see in the map editor. If you're planning to load it in in a different orientation later, you better have done the math.
+It's recommended that you do not crop using this at all.
Load the parsed map into the world. See /proc/load_map for arguments.
\ No newline at end of file
diff --git a/datum/pathfind.html b/datum/pathfind.html
new file mode 100644
index 000000000000..608403c0704a
--- /dev/null
+++ b/datum/pathfind.html
@@ -0,0 +1,21 @@
+/datum/pathfind - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
pathfind
The datum used to handle the JPS pathfinding, completely self-contained
Called when we've hit the goal with the node that represents the last tile, then sets the path var to that path so it can be returned by datum/pathfind/proc/search
Var Details
avoid
A specific turf we're avoiding, like if a mulebot is being blocked by someone t-posing in a doorway we're trying to get through
caller
The thing that we're actually trying to path for
end
The turf we're trying to path to (note that this won't track a moving target)
id
An ID card representing what access we have and what doors we can open. Its location relative to the pathing atom is irrelevant
max_distance
I don't know what this does vs , but they limit how far we can search before giving up on a path
mintargetdist
How far away we have to get to the end target before we can call it quits
open
The open list/stack we pop nodes out from (TODO: make this a normal list and macro-ize the heap operations to reduce proc overhead)
path
The list we compile at the end if successful to pass back
simulated_only
Space is big and empty, if this is TRUE then we ignore pathing through unsimulated tiles
sources
An assoc list that serves as the closed list & tracks what turfs came from where. Key is the turf, and the value is what turf it came from
start
The turf where we started at
Proc Details
diag_scan_spec
For performing diagonal scans from a given starting turf.
+
Unlike lateral scans, these only are called from the main search loop, so we don't need to worry about returning anything,
+though we do need to handle the return values of our lateral subscans of course.
+
Arguments:
+
+
original_turf: What turf did we start this scan at?
+
heading: What direction are we going in? Obviously, should be diagonal
+
parent_node: We should always have a parent node for diagonals
+
lateral_scan_spec
For performing lateral scans from a given starting turf.
+
These scans are called from both the main search loop, as well as subscans for diagonal scans, and they treat finding interesting turfs slightly differently.
+If we're doing a normal lateral scan, we already have a parent node supplied, so we just create the new node and immediately insert it into the heap, ezpz.
+If we're part of a subscan, we still need for the diagonal scan to generate a parent node, so we return a node datum with just the turf and let the diag scan
+proc handle transferring the values and inserting them into the heap.
+
Arguments:
+
+
original_turf: What turf did we start this scan at?
+
heading: What direction are we going in? Obviously, should be cardinal
+
parent_node: Only given for normal lateral scans, if we don't have one, we're a diagonal subscan.
+
search
search() is the proc you call to kick off and handle the actual pathfinding, and kills the pathfind datum instance when it's done.
+
If a valid path was found, it's returned as a list. If invalid or cross-z-level params are entered, or if there's no valid path found, we
+return null, which /proc/get_path_to translates to an empty list (notable for simple bots, who need empty lists)
unwind_path
Called when we've hit the goal with the node that represents the last tile, then sets the path var to that path so it can be returned by datum/pathfind/proc/search
\ No newline at end of file
diff --git a/datum/physiology.html b/datum/physiology.html
new file mode 100644
index 000000000000..a008fc72d41a
--- /dev/null
+++ b/datum/physiology.html
@@ -0,0 +1 @@
+/datum/physiology - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
footstep type override for both shoeless and not footstep sounds.
Var Details
footstep_type
footstep type override for both shoeless and not footstep sounds.
\ No newline at end of file
diff --git a/datum/plant_gene.html b/datum/plant_gene.html
new file mode 100644
index 000000000000..6aaae43df4ae
--- /dev/null
+++ b/datum/plant_gene.html
@@ -0,0 +1 @@
+/datum/plant_gene - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
These flags tells the genemodder if we want the gene to be extractable, only removable or neither.
Proc Details
get_name
These flags tells the genemodder if we want the gene to be extractable, only removable or neither.
\ No newline at end of file
diff --git a/datum/plant_gene/trait.html b/datum/plant_gene/trait.html
new file mode 100644
index 000000000000..8d8fa47c16bd
--- /dev/null
+++ b/datum/plant_gene/trait.html
@@ -0,0 +1 @@
+/datum/plant_gene/trait - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
This proc triggers when the tray processes and a roll is sucessful, the success chance scales with production.
Proc Details
on_grow
This proc triggers when the tray processes and a roll is sucessful, the success chance scales with production.
\ No newline at end of file
diff --git a/datum/plant_gene/trait/cell_charge.html b/datum/plant_gene/trait/cell_charge.html
new file mode 100644
index 000000000000..91929b00e888
--- /dev/null
+++ b/datum/plant_gene/trait/cell_charge.html
@@ -0,0 +1 @@
+/datum/plant_gene/trait/cell_charge - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/plant_gene/trait/eyes.html b/datum/plant_gene/trait/eyes.html
new file mode 100644
index 000000000000..226ab7dbd3ed
--- /dev/null
+++ b/datum/plant_gene/trait/eyes.html
@@ -0,0 +1 @@
+/datum/plant_gene/trait/eyes - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/plant_gene/trait/slip.html b/datum/plant_gene/trait/slip.html
new file mode 100644
index 000000000000..caed4b886542
--- /dev/null
+++ b/datum/plant_gene/trait/slip.html
@@ -0,0 +1 @@
+/datum/plant_gene/trait/slip - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/powernet.html b/datum/powernet.html
new file mode 100644
index 000000000000..52f82d04f27f
--- /dev/null
+++ b/datum/powernet.html
@@ -0,0 +1 @@
+/datum/powernet - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/preferences.html b/datum/preferences.html
new file mode 100644
index 000000000000..76327721accc
--- /dev/null
+++ b/datum/preferences.html
@@ -0,0 +1 @@
+/datum/preferences - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Someone thought we were nice! We get a little heart in OOC until we join the server past the below time (we can keep it until the end of the round otherwise)
List with a key string associated to a list of keybindings. Unlike key_bindings, this one operates on raw key, allowing for binding a key that triggers regardless of if a modifier is depressed as long as the raw key is sent.
The playtime_reward_cloak variable can be set to TRUE from the prefs menu only once the user has gained over 5K playtime hours. If true, it allows the user to get a cool looking roundstart cloak.
Which of the 5 persistent scar slots we randomly roll to load for this round, if enabled. Actually rolled in [/datum/preferences/proc/load_character(slot)]
We have 5 slots for persistent scars, if enabled we pick a random one to load (empty by default) and scars at the end of the shift if we survived as our original person
A separate arousal multiplier that the user has control of (although we could just tap into lust or replace it.)
auto_fit_viewport
Should we automatically fit the viewport?
broadcast_login_logout
If we want to broadcast deadchat connect/disconnect messages
characters_joined_as
Characters they have joined the round under - Lazylist of names
chat_on_map
Runechat preference. If true, certain messages will be displayed on the map, not ust on the chat area. Boolean.
deadmin
A separate variable for deadmin toggles, only deals with those.
dnr_triggered
did they DNR? used to prevent respawns.
favorite_interactions
My favorites! they show up in their own tab inside the ui.
favorite_outfits
What outfit typepaths we've favorited in the SelectEquipment menu
fertility
Can john spaceman get gregnant if all conditions are right? (has a womb and is not on contraceptives)
gear_points
loadout stuff
hardcore_survival_score
This var stores the amount of points the owner will get for making it out alive.
hearted
Someone thought we were nice! We get a little heart in OOC until we join the server past the below time (we can keep it until the end of the round otherwise)
hearted_until
If we have a hearted commendations, we honor it every time the player loads preferences until this time has been passed
key_bindings
Custom Keybindings
last_id
Last CID the person was seen on
last_ip
Last IP the person was seen on
log_clicks
Do we log their clicks to disk?
long_strip_menu
Strip menu style
max_chat_length
Limit preference on the size of the message. Requires chat_on_map to have effect.
medical_records
Medical record note section
moaning_multiplier
Chance of moaning during an interaction
modless_key_bindings
List with a key string associated to a list of keybindings. Unlike key_bindings, this one operates on raw key, allowing for binding a key that triggers regardless of if a modifier is depressed as long as the raw key is sent.
muted
Flags for admin mutes
persistent_scars
If we have persistent scars enabled
pixel_size
What size should pixels be displayed as? 0 is strech to fit
playtime_reward_cloak
The playtime_reward_cloak variable can be set to TRUE from the prefs menu only once the user has gained over 5K playtime hours. If true, it allows the user to get a cool looking roundstart cloak.
pregnancy_breast_growth
Self explanitory
pregnancy_inflation
Does john spaceman look like a gluttonous slob if he pregent?
respawn_did_cryo
did they cryo on their last ghost?
respawn_restrictions_active
Are we currently subject to respawn restrictions? Usually set by us using the "respawn" verb, but can be lifted by admins.
respawn_time_of_death
time of death we consider for respawns
scaling_method
What scaling method should we use?
scars_index
Which of the 5 persistent scar slots we randomly roll to load for this round, if enabled. Actually rolled in [/datum/preferences/proc/load_character(slot)]
scars_list
We have 5 slots for persistent scars, if enabled we pick a random one to load (empty by default) and scars at the end of the shift if we survived as our original person
security_records
Security record note section
see_chat_non_mob
Whether non-mob messages will be displayed, such as machine vendor announcements. Requires chat_on_map to have effect. Boolean.
see_rc_emotes
Whether emotes will be displayed on runechat. Requires chat_on_map to have effect. Boolean.
slots_joined_as
Slots they have joined the round under - Lazylist of numbers
use_arousal_multiplier
Enable the 'arousal_multiplier' to be applied to lust amount
use_moaning_multiplier
Enable the 'moaning_multiplier' to be used as a % chance of moaning instead of default calculation.
virility
Does john spaceman's cum actually impregnate people?
widescreenpref
Should we be in the widescreen mode set by the config?
Proc Details
force_reset_keybindings
Resets the client's keybindings. Asks them for which
force_reset_keybindings_direct
Does the actual reset
\ No newline at end of file
diff --git a/datum/progressbar.html b/datum/progressbar.html
new file mode 100644
index 000000000000..f6d301f0c563
--- /dev/null
+++ b/datum/progressbar.html
@@ -0,0 +1 @@
+/datum/progressbar - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
The target where this progress bar is applied and where it is shown.
goal
Effectively the number of steps the progress bar will need to do before reaching completion.
last_progress
Control check to see if the progress was interrupted before reaching its goal.
listindex
Variable to ensure smooth visual stacking on multiple progress bars.
user
The mob whose client sees the progress bar.
user_client
The client seeing the progress bar.
Proc Details
add_prog_bar_image_to_client
Adds a smoothly-appearing progress bar image to the player's screen.
clean_user_client
Removes the progress bar image from the user_client and nulls the variable, if it exists.
end_progress
Called on progress end, be it successful or a failure. Wraps up things to delete the datum and bar.
on_user_delete
Called right before the user's Destroy()
on_user_login
Called by user's Login(), it transfers the progress bar image to the new client.
update
Updates the progress bar image visually.
\ No newline at end of file
diff --git a/datum/qdel_item.html b/datum/qdel_item.html
new file mode 100644
index 000000000000..a190567f99aa
--- /dev/null
+++ b/datum/qdel_item.html
@@ -0,0 +1 @@
+/datum/qdel_item - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
qdel_item
Qdel Item: Holds statistics on each type that passes thru qdel
Total amount of milliseconds spent processing this type's Destroy()
failures
Times it was queued for soft deletion but failed to soft delete.
hard_delete_max
Highest time spent hard_deleting this in ms.
hard_delete_time
Total amount of milliseconds spent hard deleting this type.
hard_deletes
Different from failures because it also includes QDEL_HINT_HARDDEL deletions
hard_deletes_over_threshold
Number of times hard deletes took longer than the configured threshold
name
Holds the type as a string for this type
no_hint
Number of times it's not even bother to give a qdel hint
no_respect_force
Number of times it's not respected force=TRUE
qdel_flags
Flags related to this type's trip thru qdel.
qdels
Total number of times it's passed thru qdel.
slept_destroy
Number of times it's slept in its destroy
\ No newline at end of file
diff --git a/datum/quirk.html b/datum/quirk.html
new file mode 100644
index 000000000000..3277e8bd1c06
--- /dev/null
+++ b/datum/quirk.html
@@ -0,0 +1,5 @@
+/datum/quirk - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
A lazylist of items people can receive from mail who have this quirk enabled
+The base weight for the each quirk's mail goodies list to be selected is 5
+then the item selected is determined by pick(selected_quirk.mail_goodies)
What the quirk is worth in preferences, zero = neutral / free
Var Details
antag_removal_text
Text will be given to the quirk holder if they get an antag that has it blacklisted.
desc
The description of the quirk
gain_text
Text displayed when this quirk is assigned to a mob (and not transferred)
lose_text
Text displayed when this quirk is removed from a mob (and not transferred)
mail_goodies
A lazylist of items people can receive from mail who have this quirk enabled
+The base weight for the each quirk's mail goodies list to be selected is 5
+then the item selected is determined by pick(selected_quirk.mail_goodies)
medical_record_text
This text will appear on medical records for the trait.
mob_trait
if applicable, apply and remove this mob trait
name
The name of the quirk
on_spawn_immediate
should we immediately call on_spawn or add a timer to trigger
quirk_holder
Reference to the mob currently tied to this quirk datum. Quirks are not singletons.
value
What the quirk is worth in preferences, zero = neutral / free
\ No newline at end of file
diff --git a/datum/quirk/longtimer.html b/datum/quirk/longtimer.html
new file mode 100644
index 000000000000..87ef7ee56d7d
--- /dev/null
+++ b/datum/quirk/longtimer.html
@@ -0,0 +1 @@
+/datum/quirk/longtimer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/quirk/nyctophobia.html b/datum/quirk/nyctophobia.html
new file mode 100644
index 000000000000..16643a83ba91
--- /dev/null
+++ b/datum/quirk/nyctophobia.html
@@ -0,0 +1 @@
+/datum/quirk/nyctophobia - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Called when the quirk holder moves. Updates the quirk holder's mood.
Proc Details
on_holder_moved
Called when the quirk holder moves. Updates the quirk holder's mood.
\ No newline at end of file
diff --git a/datum/reagent.html b/datum/reagent.html
new file mode 100644
index 000000000000..b1f852f2f1b4
--- /dev/null
+++ b/datum/reagent.html
@@ -0,0 +1,5 @@
+/datum/reagent - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
New, standardized method for chemicals to affect hydroponics trays.
+Defined on a per-chem level as opposed to by the tray.
+Can affect plant's health, stats, or cause the plant to react in certain ways.
Proc Details
on_hydroponics_apply
New, standardized method for chemicals to affect hydroponics trays.
+Defined on a per-chem level as opposed to by the tray.
+Can affect plant's health, stats, or cause the plant to react in certain ways.
\ No newline at end of file
diff --git a/datum/reagent/determination.html b/datum/reagent/determination.html
new file mode 100644
index 000000000000..7044ed1f6ee0
--- /dev/null
+++ b/datum/reagent/determination.html
@@ -0,0 +1 @@
+/datum/reagent/determination - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Whether we've had at least WOUND_DETERMINATION_SEVERE (2.5u) of determination at any given time. No damage slowdown immunity or indication we're having a second wind if it's just a single moderate wound
Var Details
significant
Whether we've had at least WOUND_DETERMINATION_SEVERE (2.5u) of determination at any given time. No damage slowdown immunity or indication we're having a second wind if it's just a single moderate wound
\ No newline at end of file
diff --git a/datum/reagent/lube.html b/datum/reagent/lube.html
new file mode 100644
index 000000000000..08395a1f97f0
--- /dev/null
+++ b/datum/reagent/lube.html
@@ -0,0 +1 @@
+/datum/reagent/lube - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/reagent/medicine/coagulant.html b/datum/reagent/medicine/coagulant.html
new file mode 100644
index 000000000000..705e19fa02c3
--- /dev/null
+++ b/datum/reagent/medicine/coagulant.html
@@ -0,0 +1 @@
+/datum/reagent/medicine/coagulant - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
If we have multiple bleeding wounds, we count the number of bleeding wounds, then multiply the clot rate by this^(n) before applying it to each cut, so more cuts = less clotting per cut (though still more total clotting)
How much base clotting we do per bleeding wound, multiplied by the below number for each bleeding wound
Var Details
clot_coeff_per_wound
If we have multiple bleeding wounds, we count the number of bleeding wounds, then multiply the clot rate by this^(n) before applying it to each cut, so more cuts = less clotting per cut (though still more total clotting)
clot_rate
How much base clotting we do per bleeding wound, multiplied by the below number for each bleeding wound
\ No newline at end of file
diff --git a/datum/reagent/metalgen.html b/datum/reagent/metalgen.html
new file mode 100644
index 000000000000..2244f09f0ea6
--- /dev/null
+++ b/datum/reagent/metalgen.html
@@ -0,0 +1 @@
+/datum/reagent/metalgen - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/reagent/water.html b/datum/reagent/water.html
new file mode 100644
index 000000000000..367941beeddc
--- /dev/null
+++ b/datum/reagent/water.html
@@ -0,0 +1 @@
+/datum/reagent/water - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
For weird backwards situations where water manages to get added to trays nutrients, as opposed to being snowflaked away like usual.
Proc Details
on_hydroponics_apply
For weird backwards situations where water manages to get added to trays nutrients, as opposed to being snowflaked away like usual.
\ No newline at end of file
diff --git a/datum/reagents.html b/datum/reagents.html
new file mode 100644
index 000000000000..85c69a2907e5
--- /dev/null
+++ b/datum/reagents.html
@@ -0,0 +1,9 @@
+/datum/reagents - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Triggers metabolizing for all the reagents in this holder
Proc Details
end_metabolization
Signals that metabolization has stopped, triggering the end of trait-based effects
metabolize
Triggers metabolizing for all the reagents in this holder
+
Arguments:
+
+
mob/living/carbon/carbon - The mob to metabolize in, if null it uses [/datum/reagents/var/my_atom]
+
delta_time - the time in server seconds between proc calls (when performing normally it will be 2)
+
times_fired - the number of times the owner's life() tick has been called aka The number of times SSmobs has fired
+
can_overdose - Allows overdosing
+
liverless - Stops reagents that aren't set as [/datum/reagent/var/self_consuming] from metabolizing
+
\ No newline at end of file
diff --git a/datum/reality_smash_tracker.html b/datum/reality_smash_tracker.html
new file mode 100644
index 000000000000..9212e0ff54e5
--- /dev/null
+++ b/datum/reality_smash_tracker.html
@@ -0,0 +1,9 @@
+/datum/reality_smash_tracker - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
reality_smash_tracker
#Reality smash tracker
+
Stupid fucking list holder, DONT create new ones, it will break the game, this is automnatically created whenever eldritch cultists are created.
Adds a mind to the list of people that can see the reality smashes
+
Use this whenever you want to add someone to the list
Generate
Generates a set amount of reality smashes based on the N value
+
Automatically creates more reality smashes
RandomSpawnSmash
CIT CHANGE
+
Creates a singular reality smash
+Credit to slimelust
RemoveMind
Removes a mind from the list of people that can see the reality smashes
+
Use this whenever you want to remove someone from the list
ReworkNetwork
Automatically fixes the target and smash network
+
Fixes any bugs that are caused by late Generate() or exchanging clients
\ No newline at end of file
diff --git a/datum/round_event.html b/datum/round_event.html
new file mode 100644
index 000000000000..033b19e6bfec
--- /dev/null
+++ b/datum/round_event.html
@@ -0,0 +1,11 @@
+/datum/round_event - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Called after something followable has been spawned by an event
+Provides ghosts a follow link to an atom if possible
+Only called once.
Var Details
activeFor
How long the event has existed. You don't need to change this.
announce_chance
Probability of announcing, used in prob(), 0 to 100, default 100. Called in process, and for a second time in the ion storm event.
announce_when
When in the lifetime to call announce(). If you don't want it to announce use announce_chance, below.
+This is in seconds - so 1 = ~2 seconds in.
current_players
Amount of of alive, non-AFK human players on server at the time of event start
end_when
When in the lifetime the event should end.
+This is in seconds - so 1 = ~2 seconds in.
fakeable
Can be faked by fake news event.
start_when
When in the lifetime to call start().
+This is in seconds - so 1 = ~2 seconds in.
Proc Details
announce_to_ghosts
Called after something followable has been spawned by an event
+Provides ghosts a follow link to an atom if possible
+Only called once.
\ No newline at end of file
diff --git a/datum/round_event/ghost_role/sentience.html b/datum/round_event/ghost_role/sentience.html
new file mode 100644
index 000000000000..c4b51c2d81a6
--- /dev/null
+++ b/datum/round_event/ghost_role/sentience.html
@@ -0,0 +1 @@
+/datum/round_event/ghost_role/sentience - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Blacklisted mob_biotypes - Hey can we like, not have player controlled megafauna?
Var Details
blacklisted_biotypes
Blacklisted mob_biotypes - Hey can we like, not have player controlled megafauna?
\ No newline at end of file
diff --git a/datum/round_event/stray_cargo.html b/datum/round_event/stray_cargo.html
new file mode 100644
index 000000000000..b67933edc32d
--- /dev/null
+++ b/datum/round_event/stray_cargo.html
@@ -0,0 +1,3 @@
+/datum/round_event/stray_cargo - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
stray_cargo
Spawns a cargo pod containing a random cargo supply pack on a random area of the station
Spawns a random supply pack, puts it in a pod, and spawns it on a random tile of the selected area
Var Details
possible_pack_types
Randomly picked area
stray_spawnable_supply_packs
List of possible supply packs dropped in the pod, if empty picks from the cargo list
Proc Details
announce
List of default spawnable supply packs, filtered from the cargo list
find_event_area
Picks an area that wouldn't risk critical damage if hit by a pod explosion
make_pod
Handles the creation of the pod, in case it needs to be modified beforehand
setup
Tries to find a valid area, throws an error if none are found
+Also randomizes the start timer
start
Spawns a random supply pack, puts it in a pod, and spawns it on a random tile of the selected area
\ No newline at end of file
diff --git a/datum/round_event/stray_cargo/syndicate.html b/datum/round_event/stray_cargo/syndicate.html
new file mode 100644
index 000000000000..3f6304c85048
--- /dev/null
+++ b/datum/round_event/stray_cargo/syndicate.html
@@ -0,0 +1 @@
+/datum/round_event/stray_cargo/syndicate - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/round_event_control.html b/datum/round_event_control.html
new file mode 100644
index 000000000000..cacce6fadb7b
--- /dev/null
+++ b/datum/round_event_control.html
@@ -0,0 +1 @@
+/datum/round_event_control - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/rust_spread.html b/datum/rust_spread.html
new file mode 100644
index 000000000000..ecf7a6998e6f
--- /dev/null
+++ b/datum/rust_spread.html
@@ -0,0 +1,4 @@
+/datum/rust_spread - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
rust_spread
#Rust spread datum
+
Simple datum that automatically spreads rust around it
+
Simple implementation of automatically growing entity
\ No newline at end of file
diff --git a/datum/scar.html b/datum/scar.html
new file mode 100644
index 000000000000..dea216c9ed74
--- /dev/null
+++ b/datum/scar.html
@@ -0,0 +1,10 @@
+/datum/scar - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
scar
scars are cosmetic datums that are assigned to bodyparts once they recover from wounds. Each wound type and severity have their own descriptions for what the scars
+look like, and then each body part has a list of "specific locations" like your elbow or wrist or wherever the scar can appear, to make it more interesting than "right arm"
How many tiles away someone can see this scar, goes up with severity. Clothes covering this limb will decrease visibility by 1 each, except for the head/face which is a binary "is mask obscuring face" check
Whether this scar can actually be covered up by clothing
fake
Scars from the longtimer quirk are "fake" and won't be saved with persistent scarring, since it makes you spawn with a lot by default
visibility
How many tiles away someone can see this scar, goes up with severity. Clothes covering this limb will decrease visibility by 1 each, except for the head/face which is a binary "is mask obscuring face" check
Proc Details
format
Used to format a scar to safe in preferences for persistent scars
format_amputated
Used to format a scar to safe in preferences for persistent scars
generate
generate() is used to actually fill out the info for a scar, according to the limb and wound it is provided.
+
After creating a scar, call this on it while targeting the scarred bodypart with a given wound to apply the scar.
+
Arguments:
+
+
BP- The bodypart being targeted
+
W- The wound being used to generate the severity and description info
+
add_to_scars- Should always be TRUE unless you're just storing a scar for later usage, like how cuts want to store a scar for the highest severity of cut, rather than the severity when the wound is fully healed (probably demoted to moderate)
+
get_examine_description
What will show up in examine_more() if this scar is visible
is_visible
Whether a scar can currently be seen by the viewer
lazy_attach
Used when we finalize a scar from a healing cut
load
Used to "load" a persistent scar
\ No newline at end of file
diff --git a/datum/select_equipment.html b/datum/select_equipment.html
new file mode 100644
index 000000000000..be0357307476
--- /dev/null
+++ b/datum/select_equipment.html
@@ -0,0 +1,26 @@
+/datum/select_equipment - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Packs up data about an outfit as an assoc list to send to the UI as an outfit entry.
Proc Details
outfit_entry
Packs up data about an outfit as an assoc list to send to the UI as an outfit entry.
+
Args:
+
+
+
category (string) - The tab it will be under
+
+
+
identifier (typepath or ref) - This will sent this back to ui_act to preview or spawn in an outfit.
+
+
+
Must be unique between all entries.
+
+
+
name (string) - Will be the text on the button
+
+
+
priority (bool)(optional) - If True, the UI will sort the entry to the top, right below favorites.
+
+
+
custom_entry (bool)(optional) - Send the identifier with a "ref" keyword instead of "path",
+
+
+
for the UI to tell apart custom outfits from normal ones.
+
+
+
Returns (list) An outfit entry
\ No newline at end of file
diff --git a/datum/signal/subspace.html b/datum/signal/subspace.html
new file mode 100644
index 000000000000..c6cda0af6b96
--- /dev/null
+++ b/datum/signal/subspace.html
@@ -0,0 +1,36 @@
+/datum/signal/subspace - SPLURT Station 13SPLURT Station 13 - Modules - Types
subspace
Here is the big, bad function that broadcasts a message given the appropriate
+parameters.
+
@param M:
+Reference to the mob/speaker, stored in signal.data["mob"]
+
@param vmask:
+Boolean value if the mob is "hiding" its identity via voice mask, stored in
+signal.data["vmask"]
+
@param vmessage:
+If specified, will display this as the message; such as "chimpering"
+for monkeys if the mob is not understood. Stored in signal.data["vmessage"].
+
@param radio:
+Reference to the radio broadcasting the message, stored in signal.data["radio"]
+
@param message:
+The actual string message to display to mobs who understood mob M. Stored in
+signal.data["message"]
+
@param name:
+The name to display when a mob receives the message. signal.data["name"]
+
@param job:
+The name job to display for the AI when it receives the message. signal.data["job"]
+
@param realname:
+The "real" name associated with the mob. signal.data["realname"]
+
@param vname:
+If specified, will use this name when mob M is not understood. signal.data["vname"]
+
@param data:
+If specified:
+1 -- Will only broadcast to intercoms
+2 -- Will only broadcast to intercoms and station-bounced radios
+3 -- Broadcast to syndicate frequency
+4 -- AI can't track down this person. Useful for imitation broadcasts where you can't find the actual mob
+
@param compression:
+If 0, the signal is audible
+If nonzero, the signal may be partially inaudible or just complete gibberish.
+
@param level:
+The list of Z levels that the sending radio is broadcasting to. Having 0 in the list broadcasts on all levels
+
@param freq
+The frequency of the signal
\ No newline at end of file
diff --git a/datum/skill.html b/datum/skill.html
new file mode 100644
index 000000000000..e093797cbbac
--- /dev/null
+++ b/datum/skill.html
@@ -0,0 +1,3 @@
+/datum/skill - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Sets the new value of this skill in the holder skills list.
+As well as possible feedback messages or secondary effects on value change, that's on you.
Var Details
abstract_type
Abstract type
base_multiplier
Base multiplier used in skill competency operations.
competency_multiplier
Value added to the base multiplier depending on overall competency compared to maximum value/level.
competency_thresholds
skill threshold used in generic skill competency operations.
desc
Our description
item_skill_gain_multi
Experience gain multiplier gained from using items.
max_levels
List of max levels. Only used in level skills, but present here for helper macros.
name
Our name
name_color
Color of the name as shown in the html readout
progression_type
Our progression type. These are mostly used to skip typechecks overhead, don't go around messing with these.
skill_gain_quantisation
Skill gain quantisation
skill_traits
A list of ways this skill can affect or be affected through actions and skill modifiers.
ui_category
Index of this skill in the UI
Proc Details
get_skill_data
Get a list of data used in the skill panel menu.
is_value_greater
Checks if a value is greater
sanitize_value
Ensures what someone's setting as a value for this skill is valid.
set_skill_value
Sets the new value of this skill in the holder skills list.
+As well as possible feedback messages or secondary effects on value change, that's on you.
\ No newline at end of file
diff --git a/datum/skill/enum.html b/datum/skill/enum.html
new file mode 100644
index 000000000000..d77f7022de8f
--- /dev/null
+++ b/datum/skill/enum.html
@@ -0,0 +1 @@
+/datum/skill/enum - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/skill/level.html b/datum/skill/level.html
new file mode 100644
index 000000000000..d2614689a795
--- /dev/null
+++ b/datum/skill/level.html
@@ -0,0 +1 @@
+/datum/skill/level - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
level
Classing r p g styled skills, tiered by lvl, and current/nextlvl experience.
Gets the base value required to reach a level specified by the 'num' arg.
Proc Details
get_skill_level_value
Gets the base value required to reach a level specified by the 'num' arg.
\ No newline at end of file
diff --git a/datum/skill/numerical.html b/datum/skill/numerical.html
new file mode 100644
index 000000000000..dac615bcf0eb
--- /dev/null
+++ b/datum/skill/numerical.html
@@ -0,0 +1 @@
+/datum/skill/numerical - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/skill_holder.html b/datum/skill_holder.html
new file mode 100644
index 000000000000..fd4774e66f59
--- /dev/null
+++ b/datum/skill_holder.html
@@ -0,0 +1,4 @@
+/datum/skill_holder - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
skill_holder
Skill holder datums
+All procs are tied to the mind, since they are always expected to have a skill holder anyway.
Our list of skills and values. Lazylist. Associative. Keys are datum typepaths to the skill.
Var Details
all_current_skill_modifiers
List of all current skill modifiers, so we don't add the same ones twice.
need_static_data_update
For UI updates.
original_values
List of original values stored at the time a modifier with the MODIFIER_SKILL_ORIGIN_DIFF enabled was added.
owner
The mind datum this skill is associated with, only used for the check_skills UI
see_skill_mods
Whether modifiers and final skill values or only base values are displayed.
selected_category
The current selected skill category.
skill_affinities
Same as [skills] but affinities, which are multiplied to increase amount when gaining skills.
skill_levels
Let's say we want to get a specific skill "level" without looping through a proc everytime.
+Only supported by skills with tiers or levels.
skill_value_mods
current skill modifiers lists, per value, affinity, level.
skills
Our list of skills and values. Lazylist. Associative. Keys are datum typepaths to the skill.
\ No newline at end of file
diff --git a/datum/skill_modifier.html b/datum/skill_modifier.html
new file mode 100644
index 000000000000..96b73ae453db
--- /dev/null
+++ b/datum/skill_modifier.html
@@ -0,0 +1,2 @@
+/datum/skill_modifier - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
skill_modifier
Base skill modifier datum, used to modify a player skills without directly touching their values, levels and affinity
+and cause lots of edge cases. These are fairly simple overall... make a subtype though, don't use this one.
skill affinity modifier, can be a multiplier or addendum, depending on the modifier_flags.
identifier
The identifier key this skill modifier is associated with.
level_mod
skill level modifier, see above.
modifier_flags
flags for this skill modifier.
name
Name and description of the skill modifier, used in the UI
priority
Priority of this skill modifier compared to other ones.
target_skills
target skills, can be a specific skill typepath or a list of skill traits.
target_skills_key
the GLOB.potential_skills_per_mod key generated on runtime. You shouldn't be var-editing it.
value_mod
skill value modifier, see above.
Proc Details
on_mind_transfer
Body bound modifier signal procs.
\ No newline at end of file
diff --git a/datum/slaver_gear.html b/datum/slaver_gear.html
new file mode 100644
index 000000000000..b12ded01c375
--- /dev/null
+++ b/datum/slaver_gear.html
@@ -0,0 +1 @@
+/datum/slaver_gear - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/smite.html b/datum/smite.html
new file mode 100644
index 000000000000..833dedd5c60b
--- /dev/null
+++ b/datum/smite.html
@@ -0,0 +1,5 @@
+/datum/smite - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
smite
A smite, used by admins to punish players, or for their own amusement
Called once after either choosing the option to smite a player, or when selected in smite build mode.
+Use this to prompt the user configuration options.
+Return FALSE if the smite should not be used.
The effect of the smite, make sure to call this in your own smites
Var Details
name
The name of the smite, shown in the menu
should_log
Should this smite write to logs?
Proc Details
configure
Called once after either choosing the option to smite a player, or when selected in smite build mode.
+Use this to prompt the user configuration options.
+Return FALSE if the smite should not be used.
effect
The effect of the smite, make sure to call this in your own smites
\ No newline at end of file
diff --git a/datum/smite/berforate.html b/datum/smite/berforate.html
new file mode 100644
index 000000000000..ccf15c116b44
--- /dev/null
+++ b/datum/smite/berforate.html
@@ -0,0 +1 @@
+/datum/smite/berforate - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/smite/supply_pod_quick.html b/datum/smite/supply_pod_quick.html
new file mode 100644
index 000000000000..186c16cc8060
--- /dev/null
+++ b/datum/smite/supply_pod_quick.html
@@ -0,0 +1 @@
+/datum/smite/supply_pod_quick - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
supply_pod_quick
Quickly throws a supply pod at the target, optionally with an item
\ No newline at end of file
diff --git a/datum/song.html b/datum/song.html
new file mode 100644
index 000000000000..613beba2931b
--- /dev/null
+++ b/datum/song.html
@@ -0,0 +1,28 @@
+/datum/song - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Song datum
These are the actual backend behind instruments.
+They attach to an atom and provide the editor + playback functionality.
Playing variables
+Build by compile_chords()
+Must be rebuilt on instrument switch.
+Compilation happens when we start playing and is cleared after we finish playing.
+Format: list of chord lists, with chordlists having (key1, key2, key3, tempodiv)
Compiles our lines into "chords" with filenames for legacy playback. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag.
Compiles our lines into "chords" with numbers. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag.
Updates our cached linear/exponential falloff stuff, saving calculations down the line.
Var Details
allowed_instrument_ids
What instruments our built in picker can use. The picker won't show unless this is longer than one.
cached_exponential_dropoff
Do not directly set, use update_sustain()
cached_legacy_dir
Cached legacy dir for legacy instruments
cached_legacy_ext
Cached legacy ext for legacy instruments
cached_linear_dropoff
/////// DO NOT DIRECTLY SET THESE!
+Do not directly set, use update_sustain()
cached_samples
Cached list of samples, referenced directly from the instrument for synthesized instruments
channels_idle
List of channels that aren't being used, as text. This is to prevent unnecessary freeing and reallocations from SSsounds/SSinstruments.
channels_playing
Channel as text = current volume percentage but it's 0 to 100 instead of 0 to 1.
compiled_chords
Playing variables
+Build by compile_chords()
+Must be rebuilt on instrument switch.
+Compilation happens when we start playing and is cleared after we finish playing.
+Format: list of chord lists, with chordlists having (key1, key2, key3, tempodiv)
current_chord
Current chord we're on.
debug_mode
If this is enabled, some things won't be strictly cleared when they usually are (liked compiled_chords on play stop)
delay_by
Amount of delay to wait before playing the next chord
editing
Are we currently editing?
elapsed_delay
Current section of a long chord we're on, so we don't need to make a billion chords, one for every unit ticklag.
full_sustain_held_note
Should we not decay our last played note?
hearing_mobs
The list of mobs that can hear us
help
Is the help screen open?
instrument_range
How far we can be heard
last_channel_played
Last channel to play. text.
last_hearcheck
Last world.time we checked for who can hear us
legacy
Are we operating in legacy mode (so if the instrument is a legacy instrument)
lines
Our song lines
max_repeats
Maximum times we can repeat
max_sound_channels
Max sound channels to occupy
max_volume
Max volume
min_volume
Min volume - This is so someone doesn't decide it's funny to set it to 0 and play invisible songs.
name
Name of the song
note_shift
////////// !!FUN!! - Only works in synthesized mode! /////////////////
+Note numbers to shift.
octave_min
DO NOT TOUCH THESE
parent
The atom we're attached to/playing from
playing
Are we currently playing?
repeat
Repeats left
sustain_dropoff_volume
When a note is considered dead if it is below this in volume
sustain_exponential_dropoff
Exponential sustain dropoff rate per decisecond
sustain_linear_duration
Total duration of linear sustain for 100 volume note to get to SUSTAIN_DROPOFF
sustain_mode
The kind of sustain we're using
tempo
delay between notes in deciseconds
user_playing
Person playing us
using_instrument
///////// Cached instrument variables /////////////
+Instrument we are currently using
using_sound_channels
Current channels, so we can save a length() call.
volume
Our volume
Proc Details
compile_chords
Compiles chords.
compile_legacy
Compiles our lines into "chords" with filenames for legacy playback. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag.
compile_synthesized
Compiles our lines into "chords" with numbers. This makes there have to be a bit of lag at the beginning of the song, but repeats will not have to parse it again, and overall playback won't be impacted by as much lag.
do_hearcheck
Checks and stores which mobs can hear us. Terminates sounds for mobs that leave our range.
get_bpm
Gets our beats per minute based on our tempo.
play_chord
Plays a chord.
playkey_legacy
Proc to play a legacy note. Just plays the sound to hearing mobs (and does hearcheck if necessary), no fancy channel/sustain/management.
+
Arguments:
+
+
note is a number from 1-7 for A-G
+
acc is either "b", "n", or "#"
+
oct is 1-8 (or 9 for C)
+
playkey_synth
Plays a specific numerical key from our instrument to anyone who can hear us.
+Does a hearing check if enough time has passed.
pop_channel
Pops a channel we have reserved so we don't have to release and re-request them from SSsounds every time we play a note. This is faster.
process_decay
Decays our channels and updates their volumes to mobs who can hear us.
+
Arguments:
+
+
wait_ds - the deciseconds we should decay by. This is to compensate for any lag, as otherwise songs would get pretty nasty during high time dilation.
+
process_song
Processes our song.
sanitize_tempo
Sanitizes tempo to a value that makes sense and fits the current world.tick_lag.
set_bpm
Sets our tempo from a beats-per-minute, sanitizing it to a valid number first.
set_dropoff_volume
Setter for setting how low the volume has to get before a note is considered "dead" and dropped
set_exponential_drop_rate
Setter for setting exponential falloff factor.
set_instrument
Sets our instrument, caching anything necessary for faster accessing. Accepts an ID, typepath, or instantiated instrument datum.
set_linear_falloff_duration
Setter for setting linear falloff duration.
set_volume
Setter for setting output volume.
should_stop_playing
Checks if we should halt playback.
start_playing
Attempts to start playing our song.
stop_playing
Stops playing, terminating all sounds if in synthesized mode. Clears hearing_mobs.
tempodiv_to_delay
Converts a tempodiv to ticks to elapse before playing the next chord, taking into account our tempo.
terminate_all_sounds
Stops all sounds we are "responsible" for. Only works in synthesized mode.
terminate_sound_mob
Stops all sounds we are responsible for in a given person. Only works in synthesized mode.
updateDialog
Updates the window for our users. Override down the line.
update_sustain
Updates our cached linear/exponential falloff stuff, saving calculations down the line.
\ No newline at end of file
diff --git a/datum/sortInstance.html b/datum/sortInstance.html
new file mode 100644
index 000000000000..202c0d615718
--- /dev/null
+++ b/datum/sortInstance.html
@@ -0,0 +1,11 @@
+/datum/sortInstance - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Like gallopLeft, except that if the range contains an element equal to
+key, gallopRight returns the index after the rightmost equal element.
Proc Details
gallopRight
Like gallopLeft, except that if the range contains an element equal to
+key, gallopRight returns the index after the rightmost equal element.
+
@param key the key whose insertion point to search for
+@param a the array in which to search
+@param base the index of the first element in the range
+@param len the length of the range; must be > 0
+@param hint the index at which to begin the search, 0 <= hint < n.
+The closer hint is to the result, the faster this method will run.
+@param c the comparator used to order the range, and to search
+@return the int k, 0 <= k <= n such that a[b + k - 1] <= key < a[b + k]
\ No newline at end of file
diff --git a/datum/species.html b/datum/species.html
new file mode 100644
index 000000000000..8d98d0ea5167
--- /dev/null
+++ b/datum/species.html
@@ -0,0 +1,48 @@
+/datum/species - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
species datum
Datum that handles different species in the game.
+
This datum handles species in the game, such as lizardpeople, mothmen, zombies, skeletons, etc.
+It is used in carbon humans to determine various things about them, like their food preferences, if they have biological genders, their damage resistances, and more.
What gas does this species breathe? Used by suffocation screen alerts, most of actual gas breathing is handled by mutantlungs. See [life.dm][code/modules/mob/living/carbon/human/life.dm]
This allows races to have specific hair colors. If null, it uses the H's hair/facial hair colors. If "mutcolor", it uses the H's mutant_color. If "fixedmutcolor", it uses fixedmutcolor
Visible CURRENT bodyparts that are unique to a species.
+DO NOT USE THIS AS A LIST OF ALL POSSIBLE BODYPARTS AS IT WILL FUCK
+SHIT UP! Changes to this list for non-species specific bodyparts (ie
+cat ears and tails) should be assigned at organ level if possible.
+Assoc values are defaults for given bodyparts, also modified by aforementioned organs.
+They also allow for faster '[]' list access versus 'in'. Other than that, they are useless right now.
+Layer hiding is handled by [/datum/species/proc/handle_mutant_bodyparts] below.
Forces an item into this species' hands. Only an honorary mutantthing because this is not an organ and not loaded in the same way, you've been warned to do your research.
The human species version of /mob/living/carbon/proc/get_biological_state. Depends on the HAS_FLESH and HAS_BONE species traits, having bones lets you have bone wounds, having flesh lets you have burn, slash, and piercing wounds
Corrects organs in a carbon, removing ones it doesn't need and adding ones it does.
Var Details
armor
Percentage modifier for overall defense of the race, or less defense, if it's negative.
ass_image
For custom overrides for species ass images
attack_type
Type of damage attack does. Ethereals attack with burn damage for example.
attack_verb
Punch-specific attack verb.
breathid
What gas does this species breathe? Used by suffocation screen alerts, most of actual gas breathing is handled by mutantlungs. See [life.dm][code/modules/mob/living/carbon/human/life.dm]
brutemod
multiplier for brute damage
burnmod
multiplier for burn damage
cold_offset
moves their safe minimum temp by this value.
coldmod
multiplier for damage from cold temperature
damage_overlay_type
What kind of damage overlays (if any) appear on our species when wounded? If this is "", does not add an overlay.
disliked_food
Bitfield for food types that the species dislikes, giving them disgust. Humans hate raw food, for example.
exotic_blood
If your race bleeds something other than bog standard blood, change this to reagent id. For example, ethereals bleed liquid electricity.
exotic_blood_blend_mode
Which blend mode should this species blood use?
exotic_blood_color
Assume human as the default blood colour, override this default by species subtypes
exotic_bloodtype
If your race uses a non standard bloodtype (A+, O-, AB-, etc). For example, lizards have L type blood.
family_heirlooms
List of family heirlooms this species can get with the family heirloom quirk. List of types.
fixed_mut_color
To use MUTCOLOR with a fixed color that's independent of the mcolor feature in DNA.
fly
The actual flying ability given to flying species
flying_species
Is this species a flying species? Used as an easy check for some things
grab_sound
Special sound for grabbing
grad_color
The gradient color used to color the gradient.
grad_style
The gradient style used for the mob's hair.
hair_alpha
The alpha used by the hair. 255 is completely solid, 0 is invisible.
hair_color
This allows races to have specific hair colors. If null, it uses the H's hair/facial hair colors. If "mutcolor", it uses the H's mutant_color. If "fixedmutcolor", it uses fixedmutcolor
heatmod
multiplier for damage from hot temperature
hot_offset
moves their safe maximum temp by this value.
id
If the game needs to manually check your race to do something not included in a proc here, it will use this.
inert_mutation
Special mutation that can be found in the genepool exclusively in this species. Dont leave empty or changing species will be a headache
inherent_biotypes
List of biotypes the mob belongs to. Used by diseases.
inherent_traits
Generic traits tied to having the species.
liked_food
Bitfield for food types that the species likes, giving them a mood boost. Lizards like meat, for example.
meat
What the species drops when gibbed by a gibber machine.
mutant_bodyparts
Visible CURRENT bodyparts that are unique to a species.
+DO NOT USE THIS AS A LIST OF ALL POSSIBLE BODYPARTS AS IT WILL FUCK
+SHIT UP! Changes to this list for non-species specific bodyparts (ie
+cat ears and tails) should be assigned at organ level if possible.
+Assoc values are defaults for given bodyparts, also modified by aforementioned organs.
+They also allow for faster '[]' list access versus 'in'. Other than that, they are useless right now.
+Layer hiding is handled by [/datum/species/proc/handle_mutant_bodyparts] below.
mutant_brain
Replaces default brain with a different organ
mutant_heart
Replaces default heart with a different organ
mutant_organs
Internal organs that are unique to this race, like a tail.
mutantappendix
Replaces default appendix with a different organ.
mutantears
Replaces default ears with a different organ
mutanteyes
Replaces default lungs with a different organ
+Replaces default eyes with a different organ
mutanthands
Forces an item into this species' hands. Only an honorary mutantthing because this is not an organ and not loaded in the same way, you've been warned to do your research.
mutantliver
Replaces default liver with a different organ
mutantstomach
Replaces default stomach with a different organ
mutanttail
CIT SPECIFIC Mutant tail
mutanttongue
Replaces default tongue with a different organ
name
This is the fluff name. They are displayed on health analyzers and in the character setup menu. Leave them generic for other servers to customize.
no_equip
Inventory slots the race can't equip stuff to. Golems cannot wear jumpsuits, for example.
nojumpsuit
Allows the species to equip items that normally require a jumpsuit without having one equipped. Used by golems.
offset_features
Clothing offsets. If a species has a different body than other species, you can offset clothing so they look less weird.
outfit_important_for_life
A path to an outfit that is important for species life e.g. plasmaman outfit
payday_modifier
multiplier for money paid at payday
punchdamagehigh
Highest possible punch damage this species can give.
punchdamagelow
Lowest possible punch damage this species can give. If this is set to 0, punches will always miss.
punchstunthreshold
Damage at which punches from this race will stun
say_mod
Affects the speech message, for example: Motharula flutters, "My speech message is flutters!"
sexes
Whether or not the race has sexual characteristics (biological genders). At the moment this is only FALSE for skeletons and shadows
siemens_coeff
Base electrocution coefficient. Basically a multiplier for damage from electrocutions.
skinned_type
What skin the species drops when gibbed by a gibber machine.
special_step_sounds
Sounds to override barefeet walking
species_language_holder
What languages this species can understand and say. Use a language holder datum in this var.
Multiplier for the race's speed. Positive numbers make it move slower, negative numbers make it move faster.
stunmod
multiplier for stun durations
toxic_food
Bitfield for food types that the species absolutely hates, giving them even more disgust than disliked food. Meat is "toxic" to moths, for example.
typing_indicator_state
Our default override for typing indicator state
use_skintones
Does the species use skintones or not? As of now only used by humans.
wings_icon
Current wings icon
Proc Details
check_roundstart_eligible
Checks if a species is eligible to be picked at roundstart.
+
Checks the config to see if this species is allowed to be picked in the character setup menu.
+Used by /proc/generate_selectable_species.
copy_properties_from
Copies some vars and properties over that should be kept when creating a copy of this species.
+
Used by slimepeople to copy themselves, and by the DNA datum to hardset DNA to a species
+Arguments:
+
+
old_species - The species that the carbon used to be before copying
+
get_biological_state
The human species version of /mob/living/carbon/proc/get_biological_state. Depends on the HAS_FLESH and HAS_BONE species traits, having bones lets you have bone wounds, having flesh lets you have burn, slash, and piercing wounds
handle_digestion
LIFE
on_species_gain
Proc called when a carbon becomes this species.
+
This sets up and adds/changes/removes things, qualities, abilities, and traits so that the transformation is as smooth and bugfree as possible.
+Produces a [COMSIG_SPECIES_GAIN] signal.
+Arguments:
+
+
C - Carbon, this is whoever became the new species.
+
old_species - The species that the carbon used to be before becoming this race, used for regenerating organs.
+
pref_load - Preferences to be loaded from character setup, loads in preferred mutant things like bodyparts, digilegs, skin color, etc.
+
random_name
Generates a random name for a carbon.
+
This generates a random unique name based on a human's species and gender.
+Arguments:
+
+
gender - The gender that the name should adhere to. Use MALE for male names, use anything else for female names.
+
unique - If true, ensures that this new name is not a duplicate of anyone else's name currently on the station.
+
lastname - Does this species' naming system adhere to the last name system? Set to false if it doesn't.
+
regenerate_organs
Corrects organs in a carbon, removing ones it doesn't need and adding ones it does.
+
Takes all organ slots, removes organs a species should not have, adds organs a species should have.
+can use replace_current to refresh all organs, creating an entirely new set.
+
Arguments:
+
+
C - carbon, the owner of the species datum AKA whoever we're regenerating organs in
+
old_species - datum, used when regenerate organs is called in a switching species to remove old mutant organs.
+
replace_current - boolean, forces all old organs to get deleted whether or not they pass the species' ability to keep that organ
+
excluded_zones - list, add zone defines to block organs inside of the zones from getting handled. see headless mutation for an example
+
\ No newline at end of file
diff --git a/datum/sprite_accessory/snouts/mam_snouts.html b/datum/sprite_accessory/snouts/mam_snouts.html
new file mode 100644
index 000000000000..cd60849e4f90
--- /dev/null
+++ b/datum/sprite_accessory/snouts/mam_snouts.html
@@ -0,0 +1,102 @@
+/datum/sprite_accessory/snouts/mam_snouts - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/datum/sprite_accessory/tails_animated/lizard.html b/datum/sprite_accessory/tails_animated/lizard.html
new file mode 100644
index 000000000000..23cee0381de2
--- /dev/null
+++ b/datum/sprite_accessory/tails_animated/lizard.html
@@ -0,0 +1 @@
+/datum/sprite_accessory/tails_animated/lizard - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/stack_canary.html b/datum/stack_canary.html
new file mode 100644
index 000000000000..b1b08c91197d
--- /dev/null
+++ b/datum/stack_canary.html
@@ -0,0 +1 @@
+/datum/stack_canary - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
stack_canary
Stack canary. Will go away if the stack it was primed by is ended by byond for return or stack overflow reasons.
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.
\ No newline at end of file
diff --git a/datum/stack_end_detector.html b/datum/stack_end_detector.html
new file mode 100644
index 000000000000..f190e683b1a6
--- /dev/null
+++ b/datum/stack_end_detector.html
@@ -0,0 +1,6 @@
+/datum/stack_end_detector - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
stack_end_detector
Stack End Detector.
+Can detect if a given code stack has exited, used by the mc for stack overflow detection.
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.
+
\ No newline at end of file
diff --git a/datum/stack_recipe.html b/datum/stack_recipe.html
new file mode 100644
index 000000000000..eb81cda58a95
--- /dev/null
+++ b/datum/stack_recipe.html
@@ -0,0 +1 @@
+/datum/stack_recipe - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
How much the trait above, if supplied, boosts the construct speed of this item
Var Details
applies_mats
If TRUE, the created atom will gain custom mat datums
max_res_amount
Max amount of resulting atoms made
on_floor
If the atom requires a floor below
one_per_turf
If only one of the resulting atom is allowed per turf
placement_checks
Bitflag of additional placement checks required to place. (STACK_CHECK_CARDINALS|STACK_CHECK_ADJACENT)
req_amount
Amount of stack required to make
res_amount
Amount of resulting atoms made
result_type
What atom the recipe makes, typepath
time
How long it takes to make
title
The title of the recipe
trait_booster
What trait, if any, boosts the construction speed of this item
trait_modifier
How much the trait above, if supplied, boosts the construct speed of this item
\ No newline at end of file
diff --git a/datum/station_alert.html b/datum/station_alert.html
new file mode 100644
index 000000000000..ab86b7060324
--- /dev/null
+++ b/datum/station_alert.html
@@ -0,0 +1 @@
+/datum/station_alert - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
If UI will also show and allow jumping to cameras connected to each alert area
holder
Holder of the datum
listener
Listens for alarms, provides the alarms list for our UI
title
Title of our UI
\ No newline at end of file
diff --git a/datum/station_trait.html b/datum/station_trait.html
new file mode 100644
index 000000000000..d2b47e15ebd5
--- /dev/null
+++ b/datum/station_trait.html
@@ -0,0 +1 @@
+/datum/station_trait - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
station_trait
Base class of station traits. These are used to influence rounds in one way or the other by influencing the levers of the station.
Will attempt to revert the station trait, used by admins.
Var Details
blacklist
What traits are incompatible with this one?
can_revert
Whether or not this trait can be reverted by an admin
force
Whether this trait is always enabled; generally used for debugging
name
Name of the trait
report_message
What message to show in the centcom report?
show_in_report
Does this trait show in the centcom report?
trait_flags
Extra flags for station traits such as it being abstract
trait_processes
Whether or not this trait uses process()
trait_to_give
What code-trait does this station trait give? gives none if null
trait_type
The type of this trait. Used to classify how this trait influences the station
weight
Chance relative to other traits of its type to be picked
Proc Details
get_report
type of info the centcom report has on this trait, if any.
on_round_start
Proc ran when round starts. Use this for roundstart effects.
revert
Will attempt to revert the station trait, used by admins.
\ No newline at end of file
diff --git a/datum/station_trait/ian_adventure.html b/datum/station_trait/ian_adventure.html
new file mode 100644
index 000000000000..c2375caedf7e
--- /dev/null
+++ b/datum/station_trait/ian_adventure.html
@@ -0,0 +1 @@
+/datum/station_trait/ian_adventure - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Moves the new dog somewhere safe, equips it with the old one's inventory and makes it deadchat_playable.
Proc Details
do_corgi_respawn
Moves the new dog somewhere safe, equips it with the old one's inventory and makes it deadchat_playable.
\ No newline at end of file
diff --git a/datum/station_trait/random_event_weight_modifier.html b/datum/station_trait/random_event_weight_modifier.html
new file mode 100644
index 000000000000..c1c4d69922b1
--- /dev/null
+++ b/datum/station_trait/random_event_weight_modifier.html
@@ -0,0 +1 @@
+/datum/station_trait/random_event_weight_modifier - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The path to the round_event_control that we modify.
max_occurrences_modifier
Flat modifier added to the amount of max occurances the random event can have.
weight_multiplier
Multiplier applied to the weight of the event.
\ No newline at end of file
diff --git a/datum/status_effect.html b/datum/status_effect.html
new file mode 100644
index 000000000000..e562acb98fd7
--- /dev/null
+++ b/datum/status_effect.html
@@ -0,0 +1 @@
+/datum/status_effect - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Called before being removed; returning FALSE will cancel removal
Var Details
blocks_sprint
If this is TRUE, the user will have sprint forcefully disabled while this is active.
status_type
How many of the effect can be on one mob, and what happens when you try to add another
tick
do we tick()?
Proc Details
action_cooldown_mod
Multiplied to clickdelays
before_remove
Called before being removed; returning FALSE will cancel removal
\ No newline at end of file
diff --git a/datum/status_effect/cloudstruck.html b/datum/status_effect/cloudstruck.html
new file mode 100644
index 000000000000..33cd1a3a79ce
--- /dev/null
+++ b/datum/status_effect/cloudstruck.html
@@ -0,0 +1 @@
+/datum/status_effect/cloudstruck - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
This overlay is applied to the owner for the duration of the effect.
Var Details
mob_overlay
This overlay is applied to the owner for the duration of the effect.
\ No newline at end of file
diff --git a/datum/status_effect/eldritch.html b/datum/status_effect/eldritch.html
new file mode 100644
index 000000000000..dbfec485b151
--- /dev/null
+++ b/datum/status_effect/eldritch.html
@@ -0,0 +1,2 @@
+/datum/status_effect/eldritch - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
\ No newline at end of file
diff --git a/datum/status_effect/eldritch/ash.html b/datum/status_effect/eldritch/ash.html
new file mode 100644
index 000000000000..3cfdb671f08a
--- /dev/null
+++ b/datum/status_effect/eldritch/ash.html
@@ -0,0 +1 @@
+/datum/status_effect/eldritch/ash - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Dictates how much damage and stamina loss this mark will cause.
Var Details
repetitions
Dictates how much damage and stamina loss this mark will cause.
\ No newline at end of file
diff --git a/datum/status_effect/grouped.html b/datum/status_effect/grouped.html
new file mode 100644
index 000000000000..807e44f27a77
--- /dev/null
+++ b/datum/status_effect/grouped.html
@@ -0,0 +1 @@
+/datum/status_effect/grouped - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
grouped
Status effect from multiple sources, when all sources are removed, so is the effect
Adds itself to sources and destroys itself if one exists already, there are never multiple
Var Details
status_type
Adds itself to sources and destroys itself if one exists already, there are never multiple
\ No newline at end of file
diff --git a/datum/status_effect/ice_block_talisman.html b/datum/status_effect/ice_block_talisman.html
new file mode 100644
index 000000000000..762061b8fe65
--- /dev/null
+++ b/datum/status_effect/ice_block_talisman.html
@@ -0,0 +1 @@
+/datum/status_effect/ice_block_talisman - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Stored icon overlay for the hit mob, removed when effect is removed
Proc Details
owner_moved
Blocks movement from the status effect owner
\ No newline at end of file
diff --git a/datum/status_effect/limp.html b/datum/status_effect/limp.html
new file mode 100644
index 000000000000..c2fa12b5ef9a
--- /dev/null
+++ b/datum/status_effect/limp.html
@@ -0,0 +1 @@
+/datum/status_effect/limp - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/status_effect/offering.html b/datum/status_effect/offering.html
new file mode 100644
index 000000000000..e3ee2e8e2a13
--- /dev/null
+++ b/datum/status_effect/offering.html
@@ -0,0 +1 @@
+/datum/status_effect/offering - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Remove the alert and signals for the specified carbon mob. Automatically removes the status effect when we lost the last taker
Var Details
give_alert_type
The type of alert given to people when offered, in case you need to override some behavior (like for high-fives)
offered_item
The actual item being offered
possible_takers
The people who were offered this item at the start
Proc Details
check_owner_in_range
The offerer moved, see if anyone is out of range now
check_taker_in_range
One of our possible takers moved, see if they left us hanging
dropped_item
We lost the item, give it up
register_candidate
Hook up the specified carbon mob to be offered the item in question, give them the alert and signals and all
remove_candidate
Remove the alert and signals for the specified carbon mob. Automatically removes the status effect when we lost the last taker
\ No newline at end of file
diff --git a/datum/status_effect/wound.html b/datum/status_effect/wound.html
new file mode 100644
index 000000000000..9ec3b7a06ab0
--- /dev/null
+++ b/datum/status_effect/wound.html
@@ -0,0 +1 @@
+/datum/status_effect/wound - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
check if the wound getting removed is the wound we're tied to
Proc Details
check_remove
check if the wound getting removed is the wound we're tied to
\ No newline at end of file
diff --git a/datum/strip_menu.html b/datum/strip_menu.html
new file mode 100644
index 000000000000..eb2b52765ba1
--- /dev/null
+++ b/datum/strip_menu.html
@@ -0,0 +1 @@
+/datum/strip_menu - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
A lazy list of user mobs to a list of strip menu keys that they're interacting with
owner
The owner who has the element /datum/element/strippable
strippable
The strippable element itself
\ No newline at end of file
diff --git a/datum/strippable_item.html b/datum/strippable_item.html
new file mode 100644
index 000000000000..49fd886c8d1d
--- /dev/null
+++ b/datum/strippable_item.html
@@ -0,0 +1,23 @@
+/datum/strippable_item - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
strippable_item
A representation of an item that can be stripped down
Tries to equip the item onto the given source.
+Returns TRUE/FALSE depending on if it is allowed.
+This should be used for checking if an item CAN be equipped.
+It should not perform the equipping itself.
Tries to unequip the item from the given source.
+Returns TRUE/FALSE depending on if it is allowed.
+This should be used for checking if it CAN be unequipped.
+It should not perform the unequipping itself.
Var Details
key
The STRIPPABLE_ITEM_* key
warn_dangerous_clothing
Should we warn about dangerous clothing?
Proc Details
alternate_action
Performs an alternative action on this strippable_item.
+has_alternate_action needs to be TRUE.
finish_equip
The proc that places the item on the source. This should not yield.
finish_unequip
The proc that unequips the item from the source. This should not yield.
get_alternate_action
Returns the ID of this item's strippable action.
+Return null if there is no alternate action.
+Any return value of this must be in StripMenu.
get_item
Gets the item from the given source.
get_obscuring
Returns a STRIPPABLE_OBSCURING_* define to report on whether or not this is obscured.
should_show
Returns whether or not this item should show.
start_equip
Start the equipping process. This is the proc you should yield in.
+Returns TRUE/FALSE depending on if it is allowed.
start_unequip
Start the unequipping process. This is the proc you should yield in.
+Returns TRUE/FALSE depending on if it is allowed.
try_equip
Tries to equip the item onto the given source.
+Returns TRUE/FALSE depending on if it is allowed.
+This should be used for checking if an item CAN be equipped.
+It should not perform the equipping itself.
try_unequip
Tries to unequip the item from the given source.
+Returns TRUE/FALSE depending on if it is allowed.
+This should be used for checking if it CAN be unequipped.
+It should not perform the unequipping itself.
\ No newline at end of file
diff --git a/datum/strippable_item/hand.html b/datum/strippable_item/hand.html
new file mode 100644
index 000000000000..9e687a01ec9e
--- /dev/null
+++ b/datum/strippable_item/hand.html
@@ -0,0 +1 @@
+/datum/strippable_item/hand - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/strippable_item/mob_item_slot.html b/datum/strippable_item/mob_item_slot.html
new file mode 100644
index 000000000000..2a5c505367da
--- /dev/null
+++ b/datum/strippable_item/mob_item_slot.html
@@ -0,0 +1 @@
+/datum/strippable_item/mob_item_slot - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
\ No newline at end of file
diff --git a/datum/strippable_item/mob_item_slot/pocket.html b/datum/strippable_item/mob_item_slot/pocket.html
new file mode 100644
index 000000000000..c0451acff302
--- /dev/null
+++ b/datum/strippable_item/mob_item_slot/pocket.html
@@ -0,0 +1 @@
+/datum/strippable_item/mob_item_slot/pocket - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Which pocket we're referencing. Used for visible text.
Var Details
pocket_side
Which pocket we're referencing. Used for visible text.
\ No newline at end of file
diff --git a/datum/summon_weapon.html b/datum/summon_weapon.html
new file mode 100644
index 000000000000..fa5b90a43a12
--- /dev/null
+++ b/datum/summon_weapon.html
@@ -0,0 +1,16 @@
+/datum/summon_weapon - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
summon_weapon
A singular summoned object
+
How summon weapons work:
+
Reset() - makes it go back to its master.
+Target() - locks onto a target for a duration
+
The biggest challenge is synchronizing animations.
+Variables keep track of when things tick, but,
+animations are client-timed, and not server-timed
+
Animations:
+The weapon can only track its "intended" angle and dist
+"Current" pixel x/y are always calculated relative to a target from the current orbiting atom the physical effect is on
+There's 3 animations,
+MoveTo(location, angle, dist, rotation)
+Orbit(location)
+Rotate(degrees)
+
And an non-animation that just snaps it to a location,
+HardReset(location)
current angle from victim - clockwise from 0. null if not attacking.
angle_vary
rand dist to rotate during reattack phase
animation_lock
animation locked until
animation_timerid
animation lock timer
appearance
mutable_appearance to use, will skip making from icon/icon state if so
atom
the actual effect
attack_damage
attack damage
attack_length
attack length in deciseconds - this is the attack animation speed in total
attack_sound
attack sound
attack_speed
attack delay in deciseconds - this is time spent between attacks
attack_type
attack damtype
attack_verb
attack verb
dist
current distance from victim - pixels
host
host
icon
icon file
icon_state
icon state
name
name
orbit_dist
orbit distance from victim - pixels
orbit_dist_vary
orbit distance variation from victim
reset_speed
reset animation duration
reset_timerid
reset timerid
rotation
current rotation - angles clockwise from north
state
current state
victim
currently locked attack target
Proc Details
MoveTo
relative to defaults to current location
Rotate
rotation defaults to facing towards locked atom
\ No newline at end of file
diff --git a/datum/summon_weapon_host.html b/datum/summon_weapon_host.html
new file mode 100644
index 000000000000..d6b3b18efd78
--- /dev/null
+++ b/datum/summon_weapon_host.html
@@ -0,0 +1 @@
+/datum/summon_weapon_host - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
active projectiles - refreshing a projectile reorders the list, so if they all have the same stack durations, you can trust the list to have last-refreshed at [1]
active projectiles - refreshing a projectile reorders the list, so if they all have the same stack durations, you can trust the list to have last-refreshed at [1]
controlled
actual projectiles
idle
idle projectiles
master
master atom
range
range
stack_time
default stack time
weapon_type
projectile type
\ No newline at end of file
diff --git a/datum/supply_pack/misc/syndicate.html b/datum/supply_pack/misc/syndicate.html
new file mode 100644
index 000000000000..e604a3c27e99
--- /dev/null
+++ b/datum/supply_pack/misc/syndicate.html
@@ -0,0 +1 @@
+/datum/supply_pack/misc/syndicate - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
syndicate
Special supply crate that generates random syndicate gear up to a determined TC value
\ No newline at end of file
diff --git a/datum/team/gang.html b/datum/team/gang.html
new file mode 100644
index 000000000000..d3536577080a
--- /dev/null
+++ b/datum/team/gang.html
@@ -0,0 +1 @@
+/datum/team/gang - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
The specific, occupied family member antagonist datum that is used to reach the handler / check objectives, and from which the above properties (sans points) are inherited.
Allow gangs to have custom naming schemes for their gangsters.
Var Details
acceptable_clothes
The list of clothes that are acceptable to show allegiance to this family.
current_theme
The current theme. Used to pull important stuff such as spawning equipment and objectives.
free_clothes
The list of clothes that are given to family members upon induction into the family.
gang_id
The abbreviation of this family.
my_gang_datum
The specific, occupied family member antagonist datum that is used to reach the handler / check objectives, and from which the above properties (sans points) are inherited.
Proc Details
rename_gangster
Allow gangs to have custom naming schemes for their gangsters.
\ No newline at end of file
diff --git a/datum/team/revolution.html b/datum/team/revolution.html
new file mode 100644
index 000000000000..52a00f3a7d6c
--- /dev/null
+++ b/datum/team/revolution.html
@@ -0,0 +1,5 @@
+/datum/team/revolution - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Updates the state of the world depending on if revs won or loss.
+Returns who won, at which case this method should no longer be called.
+If revs_win_injection_amount is passed, then that amount of threat will be added if the revs win.
Mutates the ticker to report that the revs have won
Proc Details
check_heads_victory
Checks if heads have won
check_rev_victory
Checks if revs have won
process_victory
Updates the state of the world depending on if revs won or loss.
+Returns who won, at which case this method should no longer be called.
+If revs_win_injection_amount is passed, then that amount of threat will be added if the revs win.
round_result
Mutates the ticker to report that the revs have won
\ No newline at end of file
diff --git a/datum/tgs_api/v5.html b/datum/tgs_api/v5.html
new file mode 100644
index 000000000000..4b087c3b06f2
--- /dev/null
+++ b/datum/tgs_api/v5.html
@@ -0,0 +1 @@
+/datum/tgs_api/v5 - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call
Var Details
intercepted_message_queue
List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call
offline_message_queue
List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call
\ No newline at end of file
diff --git a/datum/tgs_chat_channel.html b/datum/tgs_chat_channel.html
new file mode 100644
index 000000000000..cf3b5f25a1cf
--- /dev/null
+++ b/datum/tgs_chat_channel.html
@@ -0,0 +1 @@
+/datum/tgs_chat_channel - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
[TRUE]/[FALSE] if the channel is a private message channel for a /datum/tgs_chat_user.
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.
\ No newline at end of file
diff --git a/datum/tgs_chat_command.html b/datum/tgs_chat_command.html
new file mode 100644
index 000000000000..60b9e62ec37b
--- /dev/null
+++ b/datum/tgs_chat_command.html
@@ -0,0 +1,7 @@
+/datum/tgs_chat_command - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
tgs_chat_command
User definable chat command. This abstract version MUST be overridden to be used.
params - The trimmed string following the command `/datum/tgs_chat_command/var/name].
+
\ No newline at end of file
diff --git a/datum/tgs_chat_embed/field.html b/datum/tgs_chat_embed/field.html
new file mode 100644
index 000000000000..5f2913048ac4
--- /dev/null
+++ b/datum/tgs_chat_embed/field.html
@@ -0,0 +1 @@
+/datum/tgs_chat_embed/field - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
field
See https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure for details.
\ No newline at end of file
diff --git a/datum/tgs_chat_embed/footer.html b/datum/tgs_chat_embed/footer.html
new file mode 100644
index 000000000000..9e6e1d216dcd
--- /dev/null
+++ b/datum/tgs_chat_embed/footer.html
@@ -0,0 +1 @@
+/datum/tgs_chat_embed/footer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
footer
See https://discord.com/developers/docs/resources/message#embed-object-embed-footer-structure for details.
\ No newline at end of file
diff --git a/datum/tgs_chat_embed/media.html b/datum/tgs_chat_embed/media.html
new file mode 100644
index 000000000000..7e2ccc1c15e8
--- /dev/null
+++ b/datum/tgs_chat_embed/media.html
@@ -0,0 +1 @@
+/datum/tgs_chat_embed/media - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
\ No newline at end of file
diff --git a/datum/tgs_chat_embed/provider/author.html b/datum/tgs_chat_embed/provider/author.html
new file mode 100644
index 000000000000..1e84c3d0bb22
--- /dev/null
+++ b/datum/tgs_chat_embed/provider/author.html
@@ -0,0 +1 @@
+/datum/tgs_chat_embed/provider/author - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
author
See https://discord.com/developers/docs/resources/message#embed-object-embed-author-structure for details. Must have name set in New().
\ No newline at end of file
diff --git a/datum/tgs_chat_embed/structure.html b/datum/tgs_chat_embed/structure.html
new file mode 100644
index 000000000000..69f7e5762f2e
--- /dev/null
+++ b/datum/tgs_chat_embed/structure.html
@@ -0,0 +1 @@
+/datum/tgs_chat_embed/structure - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
structure
User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/message#embed-object for details.
See https://discord.com/developers/docs/resources/message#embed-object-embed-video-structure for details.
Var Details
colour
Colour must be #AARRGGBB or #RRGGBB hex string.
image
See https://discord.com/developers/docs/resources/message#embed-object-embed-image-structure for details.
thumbnail
See https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure for details.
timestamp
Timestamp must be encoded as: time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss"). Use the active timezone.
video
See https://discord.com/developers/docs/resources/message#embed-object-embed-video-structure for details.
\ No newline at end of file
diff --git a/datum/tgs_chat_user.html b/datum/tgs_chat_user.html
new file mode 100644
index 000000000000..e7c7e6e238b5
--- /dev/null
+++ b/datum/tgs_chat_user.html
@@ -0,0 +1 @@
+/datum/tgs_chat_user - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/tgs_event_handler.html b/datum/tgs_event_handler.html
new file mode 100644
index 000000000000..6f3d88f5725f
--- /dev/null
+++ b/datum/tgs_event_handler.html
@@ -0,0 +1,2 @@
+/datum/tgs_event_handler - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
tgs_event_handler
User definable handler for TGS events This abstract version SHOULD be overridden to be used.
event_code - One of the TGS_EVENT_ defines. Extra parameters will be documented in each.
\ No newline at end of file
diff --git a/datum/tgs_http_handler.html b/datum/tgs_http_handler.html
new file mode 100644
index 000000000000..a369f4882312
--- /dev/null
+++ b/datum/tgs_http_handler.html
@@ -0,0 +1,8 @@
+/datum/tgs_http_handler - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
tgs_http_handler
User definable handler for HTTP calls. This abstract version MUST be overridden to be used.
User definable callback for executing HTTP GET requests.
+MUST perform BYOND sleeps while the request is in flight.
+MUST return a /datum/tgs_http_result.
+SHOULD log its own errors
Proc Details
PerformGet
User definable callback for executing HTTP GET requests.
+MUST perform BYOND sleeps while the request is in flight.
+MUST return a /datum/tgs_http_result.
+SHOULD log its own errors
+
url - The full URL to execute the GET request for including query parameters.
\ No newline at end of file
diff --git a/datum/tgs_http_result.html b/datum/tgs_http_result.html
new file mode 100644
index 000000000000..807e606f4211
--- /dev/null
+++ b/datum/tgs_http_result.html
@@ -0,0 +1,5 @@
+/datum/tgs_http_result - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
response_text - HTTP response as text. Must be provided in New().
+
success - Boolean request success flag. Set for any 2XX response code. Must be provided in New().
+
\ No newline at end of file
diff --git a/datum/tgs_message_content.html b/datum/tgs_message_content.html
new file mode 100644
index 000000000000..ae932e517882
--- /dev/null
+++ b/datum/tgs_message_content.html
@@ -0,0 +1,4 @@
+/datum/tgs_message_content - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
tgs_message_content
User definable chat message. MUST NOT be overridden.
\ No newline at end of file
diff --git a/datum/tgs_revision_information.html b/datum/tgs_revision_information.html
new file mode 100644
index 000000000000..c62679ab7ea5
--- /dev/null
+++ b/datum/tgs_revision_information.html
@@ -0,0 +1 @@
+/datum/tgs_revision_information - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
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.
\ No newline at end of file
diff --git a/datum/tgs_revision_information/test_merge.html b/datum/tgs_revision_information/test_merge.html
new file mode 100644
index 000000000000..acba2d910b83
--- /dev/null
+++ b/datum/tgs_revision_information/test_merge.html
@@ -0,0 +1 @@
+/datum/tgs_revision_information/test_merge - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
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.
\ No newline at end of file
diff --git a/datum/tgs_version.html b/datum/tgs_version.html
new file mode 100644
index 000000000000..15e1fa524f85
--- /dev/null
+++ b/datum/tgs_version.html
@@ -0,0 +1 @@
+/datum/tgs_version - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/datum/tgui.html b/datum/tgui.html
new file mode 100644
index 000000000000..bc13baadd516
--- /dev/null
+++ b/datum/tgui.html
@@ -0,0 +1,32 @@
+/datum/tgui - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
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.
window
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
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
public
+
Close the UI.
+
optional can_be_suspended bool
get_payload
private
+
Package the data to send to the UI, as JSON.
+
return list
on_message
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
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
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
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
public
+
Enable/disable auto-updating of the UI.
+
required value bool Enable/disable auto-updating.
set_state
public
+
Replace current ui.state with a new one.
+
required state datum/ui_state/state Next state
\ No newline at end of file
diff --git a/datum/tgui_alert.html b/datum/tgui_alert.html
new file mode 100644
index 000000000000..db015bcc12ae
--- /dev/null
+++ b/datum/tgui_alert.html
@@ -0,0 +1,4 @@
+/datum/tgui_alert - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
tgui_alert
Datum used for instantiating and using a TGUI-controlled modal that prompts the user with
+a message and has buttons for responses.
Waits for a user's response to the tgui_modal's prompt before returning. Returns early if
+the window was closed by the user.
Var Details
autofocus
The bool that controls if this modal should grab window focus
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
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.
\ No newline at end of file
diff --git a/datum/tgui_alert/async.html b/datum/tgui_alert/async.html
new file mode 100644
index 000000000000..2925b5285829
--- /dev/null
+++ b/datum/tgui_alert/async.html
@@ -0,0 +1 @@
+/datum/tgui_alert/async - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
async tgui_modal
An asynchronous version of tgui_modal to be used with callbacks instead of waiting on user responses.
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.
\ No newline at end of file
diff --git a/datum/tgui_input_number.html b/datum/tgui_input_number.html
new file mode 100644
index 000000000000..901b2ef21f90
--- /dev/null
+++ b/datum/tgui_input_number.html
@@ -0,0 +1,4 @@
+/datum/tgui_input_number - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
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.
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.
max_value
The maximum value that can be entered.
message
The prompt's body, if any, of the TGUI window.
min_value
The minimum value that can be entered.
round_value
Whether the submitted number is rounded down into an integer.
start_time
The time at which the number input was created, for displaying timeout progress.
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
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.
\ No newline at end of file
diff --git a/datum/tgui_input_number/async.html b/datum/tgui_input_number/async.html
new file mode 100644
index 000000000000..da4bfd5a8b74
--- /dev/null
+++ b/datum/tgui_input_number/async.html
@@ -0,0 +1 @@
+/datum/tgui_input_number/async - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
async tgui_text_input
An asynchronous version of tgui_text_input to be used with callbacks instead of waiting on user responses.
\ No newline at end of file
diff --git a/datum/tgui_input_text.html b/datum/tgui_input_text.html
new file mode 100644
index 000000000000..cb75951f4885
--- /dev/null
+++ b/datum/tgui_input_text.html
@@ -0,0 +1,5 @@
+/datum/tgui_input_text - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
tgui_input_text
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.
Waits for a user's response to the tgui_text_input'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
wait
Waits for a user's response to the tgui_text_input's prompt before returning. Returns early if
+the window was closed by the user.
\ No newline at end of file
diff --git a/datum/tgui_input_text/async.html b/datum/tgui_input_text/async.html
new file mode 100644
index 000000000000..cf22c608a64d
--- /dev/null
+++ b/datum/tgui_input_text/async.html
@@ -0,0 +1 @@
+/datum/tgui_input_text/async - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
async tgui_text_input
An asynchronous version of tgui_text_input to be used with callbacks instead of waiting on user responses.
The callback to be invoked by the tgui_text_input upon having a choice made.
Proc Details
set_entry
datum/tgui_input_text/async/tgui_close(mob/user)
\ No newline at end of file
diff --git a/datum/tgui_list_input.html b/datum/tgui_list_input.html
new file mode 100644
index 000000000000..fd37d6c1f6d2
--- /dev/null
+++ b/datum/tgui_list_input.html
@@ -0,0 +1,4 @@
+/datum/tgui_list_input - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
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
Waits for a user's response to the tgui_list_input's prompt before returning. Returns early if
+the window was closed by the user.
Var Details
choice
The button that the user has pressed, null if no selection has been made
closed
Boolean field describing if the tgui_list_input was closed by the user.
default
The default item to be selected
items
The list of items (responses) provided on the TGUI window
items_map
Items (strings specifically) mapped to the actual value (e.g. a mob or a verb)
message
The textual body of the TGUI window
start_time
The time at which the tgui_list_input was created, for displaying timeout progress.
timeout
The lifespan of the tgui_list_input, after which the window will close and delete itself.
title
The title of the TGUI window
Proc Details
wait
Waits for a user's response to the tgui_list_input's prompt before returning. Returns early if
+the window was closed by the user.
\ No newline at end of file
diff --git a/datum/tgui_list_input/async.html b/datum/tgui_list_input/async.html
new file mode 100644
index 000000000000..d20dfa1a0b1e
--- /dev/null
+++ b/datum/tgui_list_input/async.html
@@ -0,0 +1 @@
+/datum/tgui_list_input/async - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
async tgui_list_input
An asynchronous version of tgui_list_input to be used with callbacks instead of waiting on user responses.
The callback to be invoked by the tgui_list_input upon having a choice made.
Proc Details
set_choice
datum/tgui_list_input/async/tgui_close(mob/user)
\ No newline at end of file
diff --git a/datum/tgui_panel.html b/datum/tgui_panel.html
new file mode 100644
index 000000000000..5a3d01794c6a
--- /dev/null
+++ b/datum/tgui_panel.html
@@ -0,0 +1,20 @@
+/datum/tgui_panel - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
tgui_panel
tgui_panel datum
+Hosts tgchat and other nice features.
Is currently only useful for detecting ban evasion attempts.
initialize
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
private
+
Callback for handling incoming tgui messages.
play_music
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.
\ No newline at end of file
diff --git a/datum/tgui_window.html b/datum/tgui_window.html
new file mode 100644
index 000000000000..73698c7f2e63
--- /dev/null
+++ b/datum/tgui_window.html
@@ -0,0 +1,39 @@
+/datum/tgui_window - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
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
public
+
Close the UI.
+
optional can_be_suspended bool
flush_message_queue
private
+
Sends queued messages if the queue wasn't empty.
initialize
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 inline_assets list List of assets to inline into the html.
+optional inline_html string Custom HTML to inject.
+optional fancy bool If TRUE, will hide the window titlebar.
is_ready
public
+
Checks if the window is ready to receive data.
+
return bool
on_message
private
+
Callback for handling incoming tgui messages.
release_lock
public
+
Release the window lock.
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
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
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
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.
\ No newline at end of file
diff --git a/datum/thrownthing.html b/datum/thrownthing.html
new file mode 100644
index 000000000000..f54dc1d0d6b8
--- /dev/null
+++ b/datum/thrownthing.html
@@ -0,0 +1 @@
+/datum/thrownthing - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Defines the datum behavior on the thrownthing's qdeletion event.
Var Details
callback
If a thrown thing has a callback, it can be invoked here within thrownthing.
delayed_time
How long an object has been paused for, to be added to the travel time.
diagonal_error
How many tiles that need to be moved in order to travel to the target.
diagonals_first
A variable that helps in describing objects thrown at an angle, if it should be moved diagonally first or last.
dist_travelled
Tracks how far a thrownthing has traveled mid-throw for the purposes of maxrange
dist_x
Distance to travel in the X axis/direction.
dist_y
Distance to travel in the y axis/direction.
dx
The Horizontal direction we're traveling (EAST or WEST)
dy
The VERTICAL direction we're traveling (NORTH or SOUTH)
force
The movement force provided to a given object in transit. More info on these in move_force.dm
gentle
If the throw is gentle, then the thrownthing is harmless on impact.
init_dir
The initial direction of the thrower of the thrownthing for building the trajectory of the throw.
initial_target
Weakref to the original intended target of the throw, to prevent hardDels
last_move
The last world.time value stored when the thrownthing was moving.
maxrange
The maximum number of turfs that the thrownthing will travel to reach it's target.
paused
Mainly exists for things that would freeze a thrown object in place, like a timestop'd tile. Or a Tractor Beam.
pure_diagonal
Set to TRUE if the throw is exclusively diagonal (45 Degree angle throws for example)
speed
The speed of the projectile thrownthing being thrown.
start_time
The start_time obtained via world.time for the purposes of tiles moved/tick.
target_turf
The turf that the target was on, if it's not a turf itself.
target_zone
If the target happens to be a carbon and that carbon has a body zone aimed at, this is carried on here.
thrower
If a mob is the one who has thrown the object, then it's moved here.
thrownthing
Defines the atom that has been thrown (Objects and Mobs, mostly.)
Proc Details
on_thrownthing_qdel
Defines the datum behavior on the thrownthing's qdeletion event.
\ No newline at end of file
diff --git a/datum/timedevent.html b/datum/timedevent.html
new file mode 100644
index 000000000000..217a79100310
--- /dev/null
+++ b/datum/timedevent.html
@@ -0,0 +1,9 @@
+/datum/timedevent - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Timed Event
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
Returns a string of the type of the callback for this timer
Var Details
callBack
The callback to invoke after the timer completes
flags
Flags associated with the timer, see _DEFINES/subsystems.dm
hash
Unique hash generated when TIMER_UNIQUE flag is present
id
ID used for timers when the TIMER_STOPPABLE flag is present
name
An informative name generated for the timer as its representation in strings, useful for debugging
next
Next timed event in the bucket
prev
Previous timed event in the bucket
source
The source of the timedevent, whatever called addtimer
spent
Time at which the timer was invoked or destroyed
timeToRun
The time at which the callback should be invoked at
wait
The length of the timer
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
\ No newline at end of file
diff --git a/datum/traitor_class.html b/datum/traitor_class.html
new file mode 100644
index 000000000000..da78f34e303a
--- /dev/null
+++ b/datum/traitor_class.html
@@ -0,0 +1 @@
+/datum/traitor_class - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Specific tgui theme for the player's antag info panel.
Var Details
min_players
Minimum players for this to randomly roll via get_random_traitor_kind().
tgui_theme
Specific tgui theme for the player's antag info panel.
\ No newline at end of file
diff --git a/datum/ui_state.html b/datum/ui_state.html
new file mode 100644
index 000000000000..b3ca80321d7b
--- /dev/null
+++ b/datum/ui_state.html
@@ -0,0 +1,6 @@
+/datum/ui_state - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
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.
\ No newline at end of file
diff --git a/datum/unit_test.html b/datum/unit_test.html
new file mode 100644
index 000000000000..e71242ca6247
--- /dev/null
+++ b/datum/unit_test.html
@@ -0,0 +1,3 @@
+/datum/unit_test - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
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
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
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
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
\ No newline at end of file
diff --git a/datum/unit_test/binary_insert.html b/datum/unit_test/binary_insert.html
new file mode 100644
index 000000000000..78d200258cb5
--- /dev/null
+++ b/datum/unit_test/binary_insert.html
@@ -0,0 +1 @@
+/datum/unit_test/binary_insert - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/unit_test/container_resist.html b/datum/unit_test/container_resist.html
new file mode 100644
index 000000000000..e56ea32a5bce
--- /dev/null
+++ b/datum/unit_test/container_resist.html
@@ -0,0 +1 @@
+/datum/unit_test/container_resist - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/unit_test/interactions.html b/datum/unit_test/interactions.html
new file mode 100644
index 000000000000..ef111a1d0d2d
--- /dev/null
+++ b/datum/unit_test/interactions.html
@@ -0,0 +1 @@
+/datum/unit_test/interactions - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/unit_test/machine_disassembly.html b/datum/unit_test/machine_disassembly.html
new file mode 100644
index 000000000000..7e2a0c032ffe
--- /dev/null
+++ b/datum/unit_test/machine_disassembly.html
@@ -0,0 +1 @@
+/datum/unit_test/machine_disassembly - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Ensures that when disassembling a machine, all the parts are given back
Proc Details
Run
Ensures that when disassembling a machine, all the parts are given back
\ No newline at end of file
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..c1ff345ef66b
--- /dev/null
+++ b/datum/unit_test/stop_drop_and_roll.html
@@ -0,0 +1 @@
+/datum/unit_test/stop_drop_and_roll - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/unit_test/test_human_base.html b/datum/unit_test/test_human_base.html
new file mode 100644
index 000000000000..e1bbc98d6985
--- /dev/null
+++ b/datum/unit_test/test_human_base.html
@@ -0,0 +1 @@
+/datum/unit_test/test_human_base - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
This test is used to make sure a flesh-and-bone base human can suffer all the types of wounds, and that suffering more severe wounds removes and replaces the lesser wound. Also tests that [/mob/living/carbon/proc/fully_heal] removes all wounds
Proc Details
Run
This test is used to make sure a flesh-and-bone base human can suffer all the types of wounds, and that suffering more severe wounds removes and replaces the lesser wound. Also tests that [/mob/living/carbon/proc/fully_heal] removes all wounds
\ No newline at end of file
diff --git a/datum/unit_test/test_human_bone.html b/datum/unit_test/test_human_bone.html
new file mode 100644
index 000000000000..810104753c3f
--- /dev/null
+++ b/datum/unit_test/test_human_bone.html
@@ -0,0 +1 @@
+/datum/unit_test/test_human_bone - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
This test is used for making sure species with bones but no flesh (skeletons, plasmamen) can only suffer BONE_WOUNDS, and nothing tagged with FLESH_WOUND (it's possible to require both)
Proc Details
Run
This test is used for making sure species with bones but no flesh (skeletons, plasmamen) can only suffer BONE_WOUNDS, and nothing tagged with FLESH_WOUND (it's possible to require both)
\ No newline at end of file
diff --git a/datum/uplink_item.html b/datum/uplink_item.html
new file mode 100644
index 000000000000..b3c7ab8aaa5d
--- /dev/null
+++ b/datum/uplink_item.html
@@ -0,0 +1,4 @@
+/datum/uplink_item - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
uplink_item
Uplink Items
+
Items that can be spawned from an uplink. Can be limited by gamemode.
A bitfield to represent what uplinks can purchase this item.
+See [code/__DEFINES/uplink.dm].
Var Details
purchasable_from
A bitfield to represent what uplinks can purchase this item.
+See [code/__DEFINES/uplink.dm].
\ No newline at end of file
diff --git a/datum/wave_explosion.html b/datum/wave_explosion.html
new file mode 100644
index 000000000000..590381b253d5
--- /dev/null
+++ b/datum/wave_explosion.html
@@ -0,0 +1,3 @@
+/datum/wave_explosion - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Called by SSexplosions to propagate this.
+Return TRUE if postponed
Var Details
block_resistance
block = block / this, if 0 any block is absolute
cycle
What cycle are we on?
cycle_speed
Time to wait between cycles
cycle_start
When we started the current cycle
edges
The "edges" + dirs that need to be processed this cycle. turf = dir flags
exploded_last
The last ring that's been exploded. Any turfs in this will completely ignore the current cycle. Turf = TRUE
finished
Are we currently finished?
fire_probability
Fire probability per tile
flash_range
Flash range
hard_obstacle_mod
Hard obstcales get this mod INSTEAD of object damage mod
id
Our unique nuumerical ID
index
Current index for list
mob_damage_mod
Mob damage mod
mob_deafen_mod
Mob deafen mod
mob_gib_mod
Mob gib mod
next_id
Next unique numerical ID
object_damage_mod
Object damage mod
power_considered_dead
Explosion power at which point to consider to be a dead expansion
power_falloff_constant
Base explosion power falloff subtract (applied second)
power_falloff_factor
Base explosion power falloff multiplier (applied first)
power_initial
Explosion power we were initially at
powers
The powers of the current turf edges. turf = power
running
Are we currently running?
silent
Are we silent/do we make the screenshake/sounds?
source
What atom we originated from, if any
start_time
world.time we started at
wall_destroy_mod
Wall destruction mod
window_shatter_mod
Window shatter mod. Overrides both [hard_obstcale_mod] and [object_damage_mod]
Proc Details
tick
Called by SSexplosions to propagate this.
+Return TRUE if postponed
\ No newline at end of file
diff --git a/datum/weather.html b/datum/weather.html
new file mode 100644
index 000000000000..d3371936f4d8
--- /dev/null
+++ b/datum/weather.html
@@ -0,0 +1,12 @@
+/datum/weather - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
weather
Causes weather to occur on a z level in certain area types
+
The effects of weather occur across an entire z-level. For instance, lavaland has periodic ash storms that scorch most unprotected creatures.
+Weather always occurs on different z levels at different times, regardless of weather type.
+Can have custom durations, targets, and can automatically protect indoor areas.
Weather enters the winding down phase, stops effects
Var Details
aesthetic
If the weather has no purpose but aesthetics.
area_type
Types of area to affect
barometer_predictable
Whether a barometer can predict when the weather will happen
desc
description of weather
end_duration
In deciseconds, how long the "wind-down" graphic will appear before vanishing entirely
end_message
Displayed once the weather is over
end_overlay
Area overlay while weather is ending
end_sound
Sound that plays while weather is ending
immunity_type
Used by mobs (or movables containing mobs, such as enviro bags) to prevent them from being affected by the weather.
impacted_areas
Areas to be affected by the weather, calculated when the weather begins
impacted_z_levels
The list of z-levels that this weather is actively affecting
name
name of weather
next_hit_time
For barometers to know when the next storm will hit
overlay_layer
Since it's above everything else, this is the layer used by default. TURF_LAYER is below mobs and walls if you need to use that.
overlay_plane
Plane for the overlay
perpetual
This causes the weather to only end if forced to
probability
Weight amongst other eligible weather. if zero, will never happen randomly.
protect_indoors
TRUE value protects areas with outdoors marked as false, regardless of area type
protected_areas
Areas that are protected and excluded from the affected areas.
stage
The stage of the weather, from 1-4
target_trait
The z-level trait to affect when run randomly or when not overridden.
telegraph_duration
In deciseconds, how long from the beginning of the telegraph until the weather begins
telegraph_message
The message displayed in chat to foreshadow the weather's beginning
telegraph_overlay
The overlay applied to all tiles on the z-level
telegraph_sound
The sound file played to everyone on an affected z-level
weather_color
Color to apply to the area while weather is occuring
weather_duration
In deciseconds, how long the weather lasts once it begins
weather_duration_lower
See above - this is the lowest possible duration
weather_duration_upper
See above - this is the highest possible duration
weather_message
Displayed in chat once the weather begins in earnest
weather_overlay
Area overlay while the weather is occuring
weather_sound
Looping sound while weather is occuring
Proc Details
can_weather_act
Returns TRUE if the living mob can be affected by the weather
end
Fully ends the weather
+
Effects no longer occur and area overlays are removed
+Removes weather from processing completely
start
Starts the actual weather and effects from it
+
Updates area overlays and sends sounds and messages to mobs to notify them
+Begins dealing effects from weather to mobs in the area
telegraph
Telegraphs the beginning of the weather on the impacted z levels
+
Sends sounds and details to mobs in the area
+Calculates duration and hit areas, and makes a callback for the actual weather to start
update_areas
Updates the overlays on impacted areas
weather_act
Affects the mob with whatever the weather does
wind_down
Weather enters the winding down phase, stops effects
+
Updates areas to be in the winding down phase
+Sends sounds and messages to mobs to notify them
\ No newline at end of file
diff --git a/datum/wires.html b/datum/wires.html
new file mode 100644
index 000000000000..cdaa80b39591
--- /dev/null
+++ b/datum/wires.html
@@ -0,0 +1 @@
+/datum/wires - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/datum/wound.html b/datum/wound.html
new file mode 100644
index 000000000000..054aac4598aa
--- /dev/null
+++ b/datum/wound.html
@@ -0,0 +1,26 @@
+/datum/wound - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
If we've already tried scarring while removing (remove_wound can be called twice in a del chain, let's be nice to our code yeah?) TODO: make this cleaner
Either WOUND_SEVERITY_TRIVIAL (meme wounds like stubbed toe), WOUND_SEVERITY_MODERATE, WOUND_SEVERITY_SEVERE, or WOUND_SEVERITY_CRITICAL (or maybe WOUND_SEVERITY_LOSS)
Used when we're being dragged while bleeding, the value we return is how much bloodloss this wound causes from being dragged. Since it's a proc, you can let bandages soak some of the blood
get_examine_description() is used in carbon/examine and human/examine to show the status of this wound. Useful if you need to show some status like the wound being splinted or bandaged.
Called when the patient is undergoing stasis, so that having fully treated a wound doesn't make you sit there helplessly until you think to unbuckle them
When synthflesh is applied to the victim, we call this. No sense in setting up an entire chem reaction system for wounds when we only care for a few chems. Probably will change in the future
Called from cryoxadone and pyroxadone when they're proc'ing. Wounds will slowly be fixed separately from other methods when these are in effect. crappy name but eh
Remove the wound from whatever it's afflicting, and cleans up whateverstatus effects it had or modifiers it had on interaction times. ignore_limb is used for detachments where we only want to forget the victim
replace_wound() is used when you want to replace the current wound with a new wound, presumably of the same category, just of a different severity (either up or down counts)
try_treating() is an intercept run from [/mob/living/carbon/proc/attackby] right after surgeries but before anything else. Return TRUE here if the item is something that is relevant to treatment to take over the interaction.
The immediate negative effects faced as a result of the wound
Var Details
a_or_from
needed for "your arm has a compound fracture" vs "your arm has some third degree burns"
already_scarred
If we've already tried scarring while removing (remove_wound can be called twice in a del chain, let's be nice to our code yeah?) TODO: make this cleaner
attached_surgery
If we're operating on this wound and it gets healed, we'll nix the surgery too
base_treat_time
How long it will take to treat this wound with a standard effective tool, assuming it doesn't need surgery
blood_flow
How much we're contributing to this limb's bleed_rate
cryo_progress
if you're a lazy git and just throw them in cryo, the wound will go away after accumulating severity * 25 power
damage_mulitplier_penalty
Incoming damage on this limb will be multiplied by this, to simulate tenderness and vulnerability (mostly burns).
desc
The description shown on the scanners
disabling
If having this wound makes currently makes the parent bodypart unusable
examine_desc
What the limb looks like on a cursory examine
from_smite
If we forced this wound through badmin smite, we won't count it towards the round totals
interaction_efficiency_penalty
Using this limb in a do_after interaction will multiply the length by this duration (arms)
limb
The bodypart we're parented to
limp_slowdown
If set and this wound is applied to a leg, we take this many deciseconds extra per step on this leg
name
What it's named
occur_text
The visible message when this happens
processes
If we need to process each life tick
scar_keyword
What kind of scars this wound will create description wise once healed
severity
Either WOUND_SEVERITY_TRIVIAL (meme wounds like stubbed toe), WOUND_SEVERITY_MODERATE, WOUND_SEVERITY_SEVERE, or WOUND_SEVERITY_CRITICAL (or maybe WOUND_SEVERITY_LOSS)
sound_effect
This sound will be played upon the wound being applied
How much having this wound will add to all future check_wounding() rolls on this limb, to allow progression to worse injuries with repeated damage
treat_text
The basic treatment suggested by health analyzers
treatable_by
Specific items such as bandages or sutures that can try directly treating this wound
treatable_by_grabbed
Specific items such as bandages or sutures that can try directly treating this wound only if the user has the victim in an aggressive grab or higher
treatable_tool
Tools with the specified tool flag will also be able to try directly treating this wound
viable_zones
What body zones can we affect
victim
Who owns the body part that we're wounding
wound_flags
What flags apply to this wound
wound_type
The list of wounds it belongs in, WOUND_LIST_BLUNT, WOUND_LIST_SLASH, or WOUND_LIST_BURN
Proc Details
apply_wound
apply_wound() is used once a wound type is instantiated to assign it to a bodypart, and actually come into play.
+
Arguments:
+
+
L: The bodypart we're wounding, we don't care about the person, we can get them through the limb
+
silent: Not actually necessary I don't think, was originally used for demoting wounds so they wouldn't make new messages, but I believe old_wound took over that, I may remove this shortly
+
old_wound: If our new wound is a replacement for one of the same time (promotion or demotion), we can reference the old one just before it's removed to copy over necessary vars
+
smited- If this is a smite, we don't care about this wound for stat tracking purposes (not yet implemented)
Called when we're crushed in an airlock or firedoor, for one of the improvised joint dislocation fixes
drag_bleed_amount
Used when we're being dragged while bleeding, the value we return is how much bloodloss this wound causes from being dragged. Since it's a proc, you can let bandages soak some of the blood
get_examine_description
get_examine_description() is used in carbon/examine and human/examine to show the status of this wound. Useful if you need to show some status like the wound being splinted or bandaged.
+
Return the full string line you want to show, note that we're already dealing with the 'warning' span at this point, and that \n is already appended for you in the place this is called from
+
Arguments:
+
+
mob/user: The user examining the wound's owner, if that matters
+
handle_process
If var/processing is TRUE, this is run on each life tick
on_stasis
Called when the patient is undergoing stasis, so that having fully treated a wound doesn't make you sit there helplessly until you think to unbuckle them
on_synthflesh
When synthflesh is applied to the victim, we call this. No sense in setting up an entire chem reaction system for wounds when we only care for a few chems. Probably will change in the future
on_xadone
Called from cryoxadone and pyroxadone when they're proc'ing. Wounds will slowly be fixed separately from other methods when these are in effect. crappy name but eh
receive_damage
When our parent bodypart is hurt
remove_wound
Remove the wound from whatever it's afflicting, and cleans up whateverstatus effects it had or modifiers it had on interaction times. ignore_limb is used for detachments where we only want to forget the victim
replace_wound
replace_wound() is used when you want to replace the current wound with a new wound, presumably of the same category, just of a different severity (either up or down counts)
+
This proc actually instantiates the new wound based off the specific type path passed, then returns the new instantiated wound datum.
+
Arguments:
+
+
new_type- The TYPE PATH of the wound you want to replace this, like /datum/wound/slash/severe
+
smited- If this is a smite, we don't care about this wound for stat tracking purposes (not yet implemented)
+
second_wind
Additional beneficial effects when the wound is gained, in case you want to give a temporary boost to allow the victim to try an escape or last stand
still_exists
For use in do_after callback checks
treat
Someone is using something that might be used for treating the wound on this limb
try_handling
Like try_treating() but for unhanded interactions from humans, used by joint dislocations for manual bodypart chiropractice for example.
try_treating
try_treating() is an intercept run from [/mob/living/carbon/proc/attackby] right after surgeries but before anything else. Return TRUE here if the item is something that is relevant to treatment to take over the interaction.
+
This proc leads into /datum/wound/proc/treat and probably shouldn't be added onto in children types. You can specify what items or tools you want to be intercepted
+with var/list/treatable_by and var/treatable_tool, then if an item fulfills one of those requirements and our wound claims it first, it goes over to treat() and treat_self().
+
Arguments:
+
+
I: The item we're trying to use
+
user: The mob trying to use it on us
+
wound_injury
The immediate negative effects faced as a result of the wound
\ No newline at end of file
diff --git a/datum/wound/blunt.html b/datum/wound/blunt.html
new file mode 100644
index 000000000000..4955f6128f77
--- /dev/null
+++ b/datum/wound/blunt.html
@@ -0,0 +1 @@
+/datum/wound/blunt - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
If we suffer severe head booboos, we can get brain traumas tied to them
brain_trauma_group
What brain trauma group, if any, we can draw from for head wounds
gelled
Have we been bone gel'd?
internal_bleeding_chance
If this is a chest wound and this is set, we have this chance to cough up blood when hit in the chest
next_trauma_cycle
If we deal brain traumas, when is the next one due?
regen_points_current
Our current counter for gel + surgical tape regeneration
regen_points_needed
If we did the gel + surgical tape healing method for fractures, how many regen points we need
taped
Have we been taped?
trauma_cycle_cooldown
How long do we wait +/- 20% for the next trauma?
Proc Details
attack_with_hurt_hand
If we're a human who's punching something with a broken arm, we might hurt ourselves doing so
gel
if someone is using bone gel on our wound
tape
if someone is using surgical tape on our wound
\ No newline at end of file
diff --git a/datum/wound/blunt/moderate.html b/datum/wound/blunt/moderate.html
new file mode 100644
index 000000000000..4f09566c7efe
--- /dev/null
+++ b/datum/wound/blunt/moderate.html
@@ -0,0 +1 @@
+/datum/wound/blunt/moderate - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
If someone is snapping our dislocated joint into a fracture by hand with an aggro grab and harm or disarm intent
Proc Details
chiropractice
If someone is snapping our dislocated joint back into place by hand with an aggro grab and help intent
malpractice
If someone is snapping our dislocated joint into a fracture by hand with an aggro grab and harm or disarm intent
\ No newline at end of file
diff --git a/datum/wound/burn.html b/datum/wound/burn.html
new file mode 100644
index 000000000000..265293bc2a72
--- /dev/null
+++ b/datum/wound/burn.html
@@ -0,0 +1 @@
+/datum/wound/burn - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Our current counter for how much flesh regeneration we have stacked from regenerative mesh/synthflesh/whatever, decrements each tick and lowers flesh_damage
Our current level of sanitization/anti-infection, from disinfectants/alcohol/UV lights. While positive, totally pauses and slowly reverses infestation effects each tick
Once we reach infestation beyond WOUND_INFESTATION_SEPSIS, we get this many warnings before the limb is completely paralyzed (you'd have to ignore a really bad burn for a really long time for this to happen)
How much damage to our flesh we currently have. Once both this and infestation reach 0, the wound is considered healed
flesh_healing
Our current counter for how much flesh regeneration we have stacked from regenerative mesh/synthflesh/whatever, decrements each tick and lowers flesh_damage
infestation
Our current level of infection
infestation_rate
How quickly infection breeds on this burn if we don't have disinfectant
sanitization
Our current level of sanitization/anti-infection, from disinfectants/alcohol/UV lights. While positive, totally pauses and slowly reverses infestation effects each tick
strikes_to_lose_limb
Once we reach infestation beyond WOUND_INFESTATION_SEPSIS, we get this many warnings before the limb is completely paralyzed (you'd have to ignore a really bad burn for a really long time for this to happen)
Proc Details
mesh
if someone is using mesh on our burns
ointment
if someone is using ointment on our burns
uv
Paramedic UV penlights
\ No newline at end of file
diff --git a/datum/wound/loss.html b/datum/wound/loss.html
new file mode 100644
index 000000000000..c7c730825fe5
--- /dev/null
+++ b/datum/wound/loss.html
@@ -0,0 +1 @@
+/datum/wound/loss - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Our special proc for our special dismembering, the wounding type only matters for what text we have
Proc Details
apply_dismember
Our special proc for our special dismembering, the wounding type only matters for what text we have
\ No newline at end of file
diff --git a/datum/wound/pierce.html b/datum/wound/pierce.html
new file mode 100644
index 000000000000..bb089488bda6
--- /dev/null
+++ b/datum/wound/pierce.html
@@ -0,0 +1 @@
+/datum/wound/pierce - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
If someone is using either a cautery tool or something with heat to cauterize this pierce
Var Details
gauzed_clot_rate
If gauzed, what percent of the internal bleeding actually clots of the total absorption rate
initial_flow
How much blood we start losing when this wound is first applied
internal_bleeding_chance
When hit on this bodypart, we have this chance of losing some blood + the incoming damage
internal_bleeding_coefficient
If we let off blood when hit, the max blood lost is this * the incoming damage
Proc Details
suture
If someone is using a suture to close this cut
tool_cauterize
If someone is using either a cautery tool or something with heat to cauterize this pierce
\ No newline at end of file
diff --git a/datum/wound/slash.html b/datum/wound/slash.html
new file mode 100644
index 000000000000..98ce3aa9e797
--- /dev/null
+++ b/datum/wound/slash.html
@@ -0,0 +1 @@
+/datum/wound/slash - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
A bad system I'm using to track the worst scar we earned (since we can demote, we want the biggest our wound has been, not what it was when it was cured (probably moderate))
If someone is using either a cautery tool or something with heat to cauterize this cut
Var Details
clot_rate
How fast our blood flow will naturally decrease per tick, not only do larger cuts bleed more faster, they clot slower
demotes_to
Once the blood flow drops below minimum_flow, we demote it to this type of wound. If there's none, we're all better
highest_flow
The maximum flow we've had so far
highest_scar
A bad system I'm using to track the worst scar we earned (since we can demote, we want the biggest our wound has been, not what it was when it was cured (probably moderate))
initial_flow
How much blood we start losing when this wound is first applied
max_per_type
How much staunching per type (cautery, suturing, bandaging) you can have before that type is no longer effective for this cut NOT IMPLEMENTED
minimum_flow
When we have less than this amount of flow, either from treatment or clotting, we demote to a lower cut or are healed of the wound
Proc Details
las_cauterize
If someone's putting a laser gun up to our cut to cauterize it
lick_wounds
if a felinid is licking this cut to reduce bleeding
suture
If someone is using a suture to close this cut
tool_cauterize
If someone is using either a cautery tool or something with heat to cauterize this cut
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.
Moves all colors angle degrees around the color wheel while maintaining intensity of the color and not affecting whites
+TODO: Need a version that only affects one color (ie shift red to blue but leave greens and blues alone)
Returns the top-most atom sitting on the turf.
+For example, using this on a disk, which is in a bag, on a mob,
+will return the mob because it's on the turf.
This file contains the stuff you need for using JPS (Jump Point Search) pathing, an alternative to A* that skips
+over large numbers of uninteresting tiles resulting in much quicker pathfinding solutions. Mind that diagonals
+cost the same as cardinal moves currently, so paths may look a bit strange, but should still be optimal.
Returns either null, or a list containing every sub area associated with our base area.
+If include_base is TRUE, the base area will also be added to the return list.
Proc used for purposes similar to get_areas_turfs(), but aimed to include associated areas.
+Only accepts area instances and paths for the first arg, no text strings.
+Returns a list of all turfs found in the sub areas (including the base's if include_base is TRUE)
+and located in a z level matching target_z, or anywhere if target_z is 0
HELPER FILE FOR SHIELDING
+Gets hull exterior adjacent tiles of a certain area
+Area method.
+EXPENSIVE.
+If the area itself is already considered exterior, it'll find all tiles inside it that's next to an interior area.
Converts an icon to base64. Operates by putting the icon in the iconCache savefile,
+exporting it as text, and then parsing the base64 from that.
+(This relies on byond automatically storing icons in savefiles as base64)
Writes to a special log file if the log_suspicious_login config flag is set,
+which is intended to contain all logins that failed under suspicious circumstances.
log_wound() is for when someone is attacked and suffers a wound. Note that this only captures wounds from damage, so smites/forced wounds aren't logged, as well as demotions like cuts scabbing over
Takes a list in the form (x_offset, y_offset)
+And converts it to a screen loc string
+Accepts an optional view string/size to force the screen_loc around, so it can't go out of scope
Converts an overlay list into text for debug printing
+Of note: overlays aren't actually mutable appearances, they're just appearances
+Don't have access to that type tho, so this is the best you're gonna get
Takes a screen loc string in the format
+"+-left-offset:+-pixel,+-bottom-offset:+-pixel"
+Where the :pixel is optional, and returns
+A list in the format (x_offset, y_offset)
+We require context to get info out of screen locs that contain relative info, so NORTH, SOUTH, etc
Returns a UI status such that silicons will be able to interact with whatever
+they would have access to if this was a machine. For example, AIs can
+interact if there's cameras with wireless control is enabled.
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.
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.
For finding out what body parts a body zone covers, the inverse of the below basically
Var Details
Failsafe
Failsafe
+
Pretty much pokes the MC to make sure it's still alive.
Master
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
SSdiscord
Discord Subsystem
+
This subsystem handles some integrations with discord
+
NOTES:
+
+
There is a DB table to track ckeys and associated discord IDs. (discord_link)
+
This system REQUIRES TGS for notifying users at end of the round
+
The SS uses fire() instead of just pure shutdown, so people can be notified if it comes back after a crash, where the SS wasn't properly shutdown
+
It only writes to the disk every 5 minutes, and it won't write to disk if the file is the same as it was the last time it was written. This is to save on disk writes
+
The system is kept per-server (EG: Terry will not notify people who pressed notify on Sybil), but the accounts are between servers so you dont have to relink on each server.
+
+
HOW NOTIFYING WORKS
ROUNDSTART:
+
+
The file is loaded and the discord IDs are extracted
+
A ping is sent to the discord with the IDs of people who wished to be notified
+
The file is emptied
+
+
MIDROUND:
+
+
Someone usees the notify verb, it adds their discord ID to the list.
+
On fire, it will write that to the disk, as long as conditions above are correct
+
+
END ROUND:
+
+
The file is force-saved, incase it hasn't fired at end round
+
+
This is an absolute clusterfuck, but its my clusterfuck -aa07
SSrunechat
Runechat Subsystem
+
Maintains a timer-like system to handle destruction of runechat messages. Much of this code is modeled
+after or adapted from the timer subsystem.
+
Note that this has the same structure for storing and queueing messages as the timer subsystem does
+for handling timers: the bucket_list is a list of chatmessage datums, each of which are the head
+of a circularly linked list. Any given index in bucket_list could be null, representing an empty bucket.
SStgui
tgui subsystem
+
Contains all tgui state and subsystem code.
SStimer
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 circular doubly-linked
+lists. The object at a given index in bucket_list is a /datum/timedevent, the head of a circular list, which has prev
+and next references for the respective elements in that bucket's circular list.
Proc Details
CreateBans
DEBUG
GetJobName
Gets the job title, if the job name is an alt title, locates the original title using a prebuilt cache
HeapPathWeightCompare
TODO: Macro this to reduce proc overhead
WrapAdminProcCall
Wrapper for proccalls where the datum is flagged as vareditted
___TraitAdd
DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
___TraitRemove
DO NOT USE ___TraitAdd OR ___TraitRemove as a replacement for ADD_TRAIT / REMOVE_TRAIT defines. To be used explicitly for callback.
_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
+
_turf_in_offset
Locating turfs
actionspeed_data_null_check
Checks if a action speed modifier is valid and not missing any data
add_keybinding
Adds an instanced keybinding to the global tracker
add_verb
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
+
announce_arrival
Send a message in common radio when a player arrives
block_calculate_resultant_damage
Considers a block return_list and calculates damage to use from that.
callHook
@file hooks.dm
+Implements hooks, a simple way to run code on pre-defined events.
+
+
+
@page hooks Code hooks
+
+
+
@section hooks Hooks
+
+
+
A hook is defined under /hook in the type tree.
+
+
+
To add some code to be called by the hook, define a proc under the type, as so:
All hooks must return nonzero on success, as runtimes will force return null.
+
+
+
Calls a hook, executing every piece of code that's attached to it.
+@param hook Identifier of the hook to call.
+@returns 1 if all hooked code runs successfully, 0 otherwise.
call_emergency_meeting
Summon the crew for an emergency meeting
+
Teleports the crew to a specified area, and tells everyone (via an announcement) who called the meeting. Should only be used during april fools!
+Arguments:
+
+
user - Mob who called the meeting
+
button_zone - Area where the meeting was called and where everyone will get teleported to
+
callback_select
Runs a list of callbacks asyncronously, returning only when all have finished
+
Callbacks can be repeated, to call it multiple times
+
Arguments:
+
+
list/callbacks the list of callbacks to be called
+
list/callback_args the list of lists of arguments to pass into each callback
+
savereturns Optionally save and return the list of returned values from each of the callbacks
+
resolution The number of byond ticks between each time you check if all callbacks are complete
+
check_admin_pings
Checks a given message to see if any of the words contain an active admin's ckey with an @ before it
+
Returns nothing if no pings are found, otherwise returns an associative list with ckey -> client
+Also modifies msg to underline the pings, then stores them in the key ADMINSAY_PING_UNDERLINE_NAME_INDEX for returning
+
Arguments:
+
+
msg - the message being scanned
+
color_matrix_contrast_percent
Exxagerates or removes brightness
color_matrix_hsv
Builds a color matrix that transforms the hue, saturation, and value, all in one operation.
color_matrix_rotation
Moves all colors angle degrees around the color wheel while maintaining intensity of the color and not affecting whites
+TODO: Need a version that only affects one color (ie shift red to blue but leave greens and blues alone)
color_matrix_saturation_percent
Exxagerates or removes colors
create_mafia_game
Creates the global datum for playing mafia games, destroys the last if that's required and returns the new.
create_strippable_list
Creates an assoc list of keys to /datum/strippable_item
cultslur
Makes you talk like you got cult stunned, which is slurring but with some dark messages
cut_relative_direction
Takes a screen_loc string and cut out any directions like NORTH or SOUTH
dd_file2list
Reading files
dd_hasprefix
Prefix checking
dd_hassuffix
Suffix checking
dd_replacetext
Replacing text
dd_text2list
Turning text into lists
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
+
Arguments:
+
+
id a timerid or a /datum/timedevent
+
diff_appearances
Takes two appearances as args, prints out, logs, and returns a text representation of their differences
+Including suboverlays
emissive_appearance
Produces a mutable appearance glued to the [EMISSIVE_PLANE] dyed to be the EMISSIVE_COLOR.
end_cooldown
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.
english_list_assoc
English_list but associative supporting. Higher overhead.
+@depricated
find_record
Returns datum/data/record
finish_unequip_mob
A utility function for /datum/strippable_items to finish unequipping an item from a mob.
firing_squad
firing_squad is a proc for the :B:erforate smite to shoot each individual bullet at them, so that we can add actual delays without sleep() nonsense
+
Hilariously, if you drag someone away mid smite, the bullets will still chase after them from the original spot, possibly hitting other people. Too funny to fix imo
+
Arguments:
+
+
target- guy we're shooting obviously
+
source_turf- where the bullet begins, preferably on a turf next to the target
+
body_zone- which bodypart we're aiming for, if there is one there
+
wound_bonus- the wounding power we're assigning to the bullet, since we don't care about the base one
+
damage- the damage we're assigning to the bullet, since we don't care about the base one
+
format_frequency
Format frequency by moving the decimal.
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
generate_selectable_species
Generates species available to choose in character setup at roundstart
+
This proc generates which species are available to pick from in character setup.
+If there are no available roundstart species, defaults to human.
get_allowed_instrument_ids
Get all non admin_only instruments.
get_atom_on_turf
Returns the top-most atom sitting on the turf.
+For example, using this on a disk, which is in a bag, on a mob,
+will return the mob because it's on the turf.
+
Arguments
+
+
something_in_turf - a movable within the turf, somewhere.
+
stop_type - optional - stops looking if stop_type is found in the turf, returning that type (if found).
+
get_base_area
Returns the base area the target is located in if there is one.
+Alternatively, returns the area as is.
get_bbox_of_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_cached_actionspeed_modifier
Grabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO!
get_cached_movespeed_modifier
Grabs a STATIC MODIFIER datum from cache. YOU MUST NEVER EDIT THESE DATUMS, OR IT WILL AFFECT ANYTHING ELSE USING IT TOO!
get_path_to
This file contains the stuff you need for using JPS (Jump Point Search) pathing, an alternative to A* that skips
+over large numbers of uninteresting tiles resulting in much quicker pathfinding solutions. Mind that diagonals
+cost the same as cardinal moves currently, so paths may look a bit strange, but should still be optimal.
+
This is the proc you use whenever you want to have pathfinding more complex than "try stepping towards the thing".
+If no path was found, returns an empty list, which is important for bots like medibots who expect an empty list rather than nothing.
+
Arguments:
+
+
caller: The movable atom that's trying to find the path
+
end: What we're trying to path to. It doesn't matter if this is a turf or some other atom, we're gonna just path to the turf it's on anyway
+
max_distance: The maximum number of steps we can take in a given path to search (default: 30, 0 = infinite)
+
mintargetdistance: Minimum distance to the target before path returns, could be used to get near a target, but not right to it - for an AI mob with a gun, for example.
+
id: An ID card representing what access we have and what doors we can open. Its location relative to the pathing atom is irrelevant
+
simulated_only: Whether we consider turfs without atmos simulation (AKA do we want to ignore space)
+
exclude: If we want to avoid a specific turf, like if we're a mulebot who already got blocked by some turf
+
skip_first: Whether or not to delete the first item in the path. This would be done because the first item is the starting tile, which can break movement for some creatures.
+
get_ranged_target_turf_direct
Get ranged target turf, but with direct targets as opposed to directions
+
Starts at atom A and gets the exact angle between A and target
+Moves from A with that angle, Range amount of times, until it stops, bound to map size
+Arguments:
+
+
A - Initial Firer / Position
+
target - Target to aim towards
+
range - Distance of returned target turf from A
+
offset - Angle offset, 180 input would make the returned target turf be in the opposite direction
+
get_sub_areas
Returns either null, or a list containing every sub area associated with our base area.
+If include_base is TRUE, the base area will also be added to the return list.
get_sub_areas_contents
Simple proc that returns a sum of all contents from every sub area,
+Think of the above but for all contents, not just turfs, and without target z.
get_sub_areas_turfs
Proc used for purposes similar to get_areas_turfs(), but aimed to include associated areas.
+Only accepts area instances and paths for the first arg, no text strings.
+Returns a list of all turfs found in the sub areas (including the base's if include_base is TRUE)
+and located in a z level matching target_z, or anywhere if target_z is 0
get_thirst
Don't blame me if they have negative thirst, admeme.
get_valid_screen_location
Returns a valid location to place a screen object without overflowing the viewport
+
+
target: The target location as a purely number based screen_loc string "+-left-offset:+-pixel,+-bottom-offset:+-pixel"
+
target_offset: The amount we want to offset the target location by. We explictly don't care about direction here, we will try all 4
+
view: The view variable of the client we're doing this for. We use this to get the size of the screen
+
+
Returns a screen loc representing the valid location
get_vog_special
get special role multiplier for voice of god. No double dipping.
getleftblocks
DNA HELPER-PROCS
give_admin_popup
Tries to give the target an admin popup.
+If it fails, will send the error to the passed admin.
hull_shielding_get_tiles_around_area
HELPER FILE FOR SHIELDING
+Gets hull exterior adjacent tiles of a certain area
+Area method.
+EXPENSIVE.
+If the area itself is already considered exterior, it'll find all tiles inside it that's next to an interior area.
hull_shielding_get_tiles_in_z
Gets hull adjacent exterior tiles of an entire zlevel
+EXPENSIVE.
+Gets the tiles in the exterior area touching to a non-exterior area
icon2base64
Converts an icon to base64. Operates by putting the icon in the iconCache savefile,
+exporting it as text, and then parsing the base64 from that.
+(This relies on byond automatically storing icons in savefiles as base64)
immerse_player
"Immerse", or how I made the entire playerbase quit the game.
init_keybindings
Creates and sorts all the keybinding datums
is_energy_reflectable_projectile
//// MISC HELPERS ////////
+Is this atom reflectable with ""standardized"" reflection methods like you know eshields and deswords and similar
is_guest_key
Returns whether or not a player is a guest using their ckey as an input
isemptylist
@depricated
json_deserialize_datum
Convert a list of json to datum
json_serialize_datum
Convert a datum into a json blob
lightningbolt
this is the actual bolt effect and damage, made into its own proc because it is used elsewhere
listgetindex
@depricated
load_map
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 game world) to crop to (Optional).
atom/user - argument is the actor performing the action
+
atom/target - argument is the target of the action
+
what_done - is a verb describing the action (e.g. punched, throwed, kicked, etc.)
+
atom/object - is a tool with which the action was made (usually an item)
+
addition - is any additional text, which will be appended to the rest of the log line
+
log_suspicious_login
Writes to a special log file if the log_suspicious_login config flag is set,
+which is intended to contain all logins that failed under suspicious circumstances.
+
Mirrors this log entry to log_access when access_log_mirror is TRUE, so this proc
+doesn't need to be used alongside log_access and can replace it where appropriate.
log_tgui
Appends a tgui-related log entry. All arguments are optional.
log_wound
log_wound() is for when someone is attacked and suffers a wound. Note that this only captures wounds from damage, so smites/forced wounds aren't logged, as well as demotions like cuts scabbing over
+
Note that this has no info on the attack that dealt the wound: information about where damage came from isn't passed to the bodypart's damaged proc. When in doubt, check the attack log for attacks at that same time
+TODO later: Add logging for healed wounds, though that will require some rewriting of healing code to prevent admin heals from spamming the logs. Not high priority
+
Arguments:
+
+
victim- The guy who got wounded
+
suffered_wound- The wound, already applied, that we're logging. It has to already be attached so we can get the limb from it
+
dealt_damage- How much damage is associated with the attack that dealt with this wound.
+
dealt_wound_bonus- The wound_bonus, if one was specified, of the wounding attack
+
dealt_bare_wound_bonus- The bare_wound_bonus, if one was specified and applied, of the wounding attack. Not shown if armor was present
+
base_roll- Base wounding ability of an attack is a random number from 1 to (dealt_damage ** WOUND_DAMAGE_EXPONENT). This is the number that was rolled in there, before mods
+
make_datum_references_lists
Initial Building
md5asfile
Save file as an external file then md5 it.
+Used because md5ing files stored in the rsc sometimes gives incorrect md5 results.
md5filepath
Returns the md5 of a file at a given path.
message_centcom
Used by communications consoles to message CentCom
message_syndicate
Used by communications consoles to message the Syndicate
message_to_html
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
movespeed_data_null_check
Checks if a move speed modifier is valid and not missing any data
nuke_request
Used by communications consoles to request the nuclear launch codes
offset_to_screen_loc
Takes a list in the form (x_offset, y_offset)
+And converts it to a screen loc string
+Accepts an optional view string/size to force the screen_loc around, so it can't go out of scope
overlays2text
Converts an overlay list into text for debug printing
+Of note: overlays aren't actually mutable appearances, they're just appearances
+Don't have access to that type tho, so this is the best you're gonna get
parse_caught_click_modifiers
Returns a turf based on text inputs, original turf and viewing client
pick_n_take
Pick a random element from the list and remove it from the list.
podspawn
One proc for easy spawning of pods in the code to drop off items before whizzling (please don't proc call this in game, it will destroy you)
+
Arguments:
+
+
specifications: special mods to the pod, see non var edit specifications for details on what you should fill this with
+Non var edit specifications:
+
target = where you want the pod to drop
+
path = a special specific pod path if you want, this can save you a lot of var edits
+
style = style of the pod, defaults to the normal pod
+
spawn = spawned path or a list of the paths spawned, what you're sending basically
+Returns the pod spawned, in case you want to spawn items yourself and modify them before putting them in.
+
process_teleport_locs
Generate a list of turfs you can teleport to from the areas list
+
Includes areas if they're not a shuttle or not not teleport or have no contents
+
The chosen turf is the first item in the areas contents that is a station level
+
The returned list of turfs is sorted by name
qdel
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.
realize_appearance_queue
Takes a list of appearnces, makes them mutable so they can be properly vv'd and inspected
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_organ_check
+
recursive_organ_check
+
+
inputs: O (object to start with)
+
outputs:
+
description: A pseudo-recursive loop based off of the recursive mob check, this check looks for any organs held
+
+
within 'O', toggling their frozen flag. This check excludes items held within other safe organ
+
+
+
+
storage units, so that only the lowest level of container dictates whether we do or don't decompose
+
+
+
+
+
release_gas_to
Releases gas from src to output air. This means that it can not transfer air to gas mixture with higher pressure.
+a global proc due to rustmos
remove_image_from_client
Removes an image from a client's .images. Useful as a callback.
remove_verb
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
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_unused_frequency
returns a random unused frequency between MIN_FREE_FREQ & MAX_FREE_FREQ if free = TRUE, and MIN_FREQ & MAX_FREQ if FALSE
rgb_construct_color_matrix
Assembles a color matrix, defaulting to identity
rgba_construct_color_matrix
Assembles a color matrix, defaulting to identity
rustg_get_version
Gets the version of rust_g
rustg_redis_disconnect_rq
Disconnects from a previously connected redis server
rustg_unix_timestamp
Returns the timestamp as a string
safepick
@depricated
sanitize_css_class_name
Removes all non-alphanumerics from the text, keep in mind this can lead to id conflicts
sanitize_frequency
Ensure the frequency is within bounds of what it should be sending/receiving at
sanitize_hexcolor
Sanitizes a hexadecimal color. Always outputs lowercase.
+
@params
+
+
color - input color, 3 or 6 characters without the #.
+
desired_format - 3 or 6 characters without the potential #. can only put in 3 or 6 here.
+
include_crunch - do we put a # at the start
+
default - default color. must be 3 or 6 characters with or without #.
+
default_replacement - what we replace broken letters with.
+
sanitize_ooccolor
Makes sure the input color is text with a # at the start followed by 6 hexadecimal characters. Examples: "#ff1234", "#A38321", COLOR_GREEN_GRAY
scramble_message_replace_chars
Slightly expensive proc to scramble a message using equal probabilities of character replacement from a list. DOES NOT SUPPORT HTML!
screen_loc_to_offset
Takes a screen loc string in the format
+"+-left-offset:+-pixel,+-bottom-offset:+-pixel"
+Where the :pixel is optional, and returns
+A list in the format (x_offset, y_offset)
+We require context to get info out of screen locs that contain relative info, so NORTH, SOUTH, etc
seedify
Finds and extracts seeds from an object
+
Checks if the object is such that creates a seed when extracted. Used by seed
+extractors or posably anything that would create seeds in some way. The seeds
+are dropped either at the extractor, if it exists, or where the original object
+was and it qdel's the object
+
Arguments:
+
+
O - Object containing the seed, can be the loc of the dumping of seeds
+
t_max - Amount of seed copies to dump, -1 is ranomized
+
extractor - Seed Extractor, used as the dumping loc for the seeds and seed multiplier
+
user - checks if we can remove the object from the inventory
+
send2adminchat
Sends a message to TGS admin chat channels.
+
category - The category of the mssage.
+message - The message to send.
send2chat
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.
send2otherserver
Sends a message to a set of cross-communications-enabled servers using world topic calls
+
Arguments:
+
+
source - Who sent this message
+
msg - The message body
+
type - The type of message, becomes the topic command under the hood
+
target_servers - A collection of servers to send the message to, defined in config
+
additional_data - An (optional) associated list of extra parameters and data to send with this world topic call
+
setup_mod_themes
Global proc that sets up all MOD themes as singletons in a list and returns it.
single_path_typecache_immutable
Makes a typecache of a single typecache
+
Obviously in BYOND we don't have the efficiency around here to have proper enforcement so
+If you use this you better know what you're doing. The list you get back is globally cached and if it's modified, you might break multiple things.
slur
Makes you speak like you're drunk
stars
Convert random parts of a passed in message to stars
+
+
phrase - the string to convert
+
probability - probability any character gets changed
+
+
This proc is dangerously laggy, avoid it or die
start_unequip_mob
A utility function for /datum/strippable_items to start unequipping an item from a mob.
stripped_multiline_input_or_reflect
stripped_multiline_input but reflects to the user instead if it's too big and returns null.
stutter
Adds stuttering to the message passed in
tgalert
DEPRECATED: USE tgui_alert(...) INSTEAD
+
Designed as a drop in replacement for alert(); functions the same. (outside of needing User specified)
+Arguments:
+
+
User - The user to show the alert to.
+
Message - The textual body of the alert.
+
Title - The title of the alert's window.
+
Button1 - The first button option.
+
Button2 - The second button option.
+
Button3 - The third button option.
+
StealFocus - Boolean operator controlling if the alert will steal the user's window focus.
+
Timeout - The timeout of the window, after which no responses will be valid.
+
tgui_Topic
Middleware for /client/Topic.
+
return bool If TRUE, prevents propagation of the topic call.
tgui_alert
Creates a TGUI alert window and returns the user's response.
+
This proc should be used to create alerts that the caller will wait for a response from.
+Arguments:
+
+
user - The user to show the alert to.
+
message - The content of the alert, shown in the body of the TGUI window.
+
title - The of the alert modal, shown on the top of the TGUI window.
+
buttons - The options that can be chosen by the user, each string is assigned a button on the UI.
+
timeout - The timeout of the alert, after which the modal will close and qdel itself. Set to zero for no timeout.
+
autofocus - The bool that controls if this alert should grab window focus.
+
tgui_alert_async
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. Disabled by default, can be set to seconds otherwise.
+
tgui_input_list
Creates a TGUI input list window and returns the user's response.
+
This proc should be used to create alerts that the caller will wait for a response from.
+Arguments:
+
+
user - The user to show the input box to.
+
message - The content of the input box, shown in the body of the TGUI window.
+
title - The title of the input box, shown on the top of the TGUI window.
+
items - The options that can be chosen by the user, each string is assigned a button on the UI.
+
default - The option with this value will be selected on first paint of the TGUI window.
+
timeout - The timeout of the input box, after which the input box will close and qdel itself. Set to zero for no timeout.
+
strict_modern - Disabled the preference check of the input box, only allowing the TGUI window to show.
+
tgui_input_list_async
Creates an asynchronous TGUI input list window with an associated callback.
+
This proc should be used to create inputs that invoke a callback with the user's chosen option.
+Arguments:
+
+
user - The user to show the input box to.
+
message - The content of the input box, shown in the body of the TGUI window.
+
title - The title of the input box, shown on the top of the TGUI window.
+
items - The options that can be chosen by the user, each string is assigned a button on the UI.
+
default - The option with this value will be selected on first paint of the TGUI window.
+
callback - The callback to be invoked when a choice is made.
+
timeout - The timeout of the input box, after which the menu will close and qdel itself. Set to zero for no timeout.
+
tgui_input_number
Creates a TGUI window with a number input. Returns the user's response as num | null.
+
This proc should be used to create windows for number entry that the caller will wait for a response from.
+If tgui fancy chat is turned off: Will return a normal input. If a max or min value is specified, will
+validate the input inside the UI and ui_act.
+
Arguments:
+
+
user - The user to show the number input to.
+
message - The content of the number input, shown in the body of the TGUI window.
+
title - The title of the number input modal, shown on the top of the TGUI window.
+
default - The default (or current) value, shown as a placeholder. Users can press refresh with this.
+
max_value - Specifies a maximum value. If none is set, any number can be entered. Pressing "max" defaults to 1000.
+
min_value - Specifies a minimum value. Often 0.
+
timeout - The timeout of the number input, after which the modal will close and qdel itself. Set to zero for no timeout.
+
round_value - whether the inputted number is rounded down into an integer.
+
tgui_input_number_async
Creates an asynchronous TGUI input num window with an associated callback.
+
This proc should be used to create inputs that invoke a callback with the user's chosen option.
+Arguments:
+
+
user - The user to show the input box to.
+
message - The content of the input box, shown in the body of the TGUI window.
+
title - The title of the input box, shown on the top of the TGUI window.
+
default - The default value pre-populated in the input box.
+
callback - The callback to be invoked when a choice is made.
+
timeout - The timeout of the input box, after which the menu will close and qdel itself. Set to zero for no timeout.
+
round_value - whether the inputted number is rounded down into an integer.
+
tgui_input_text
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 (4096)
+
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.
+
tgui_input_text_async
Creates an asynchronous TGUI input text window with an associated callback.
+
This proc should be used to create inputs that invoke a callback with the user's chosen option.
+Arguments:
+
+
user - The user to show the input box to.
+
message - The content of the input box, shown in the body of the TGUI window.
+
title - The title of the input box, shown on the top of the TGUI window.
+
default - The default value pre-populated in the input box.
+
callback - The callback to be invoked when a choice is made.
+
timeout - The timeout of the input box, after which the menu will close and qdel itself. Set to zero for no timeout.
+
timeleft
Get the remaining deciseconds on a timer
+
Arguments:
+
+
id a timerid or a /datum/timedevent
+
to_chat
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>")
+
to_chat_immediate
Circumvents the message queue and sends the message
+to the recipient (target) as soon as possible.
transform_matrix_construct
constructs a transform matrix, defaulting to identity
typecacheof
Like typesof() or subtypesof(), but returns a typecache instead of a list
ui_status_only_living
Returns a UI status such that the dead will be able to watch, but not interact.
ui_status_silicon_has_access
Returns a UI status such that silicons will be able to interact with whatever
+they would have access to if this was a machine. For example, AIs can
+interact if there's cameras with wireless control is enabled.
ui_status_user_has_free_hands
Returns a UI status such that those without blocked hands will be able to interact,
+but everyone else can only watch.
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.
unformat_frequency
Opposite of format, returns as a number
url2htmlloader
Return html to load a url.
+for use inside of browse() calls to html assets that might be loaded on a cdn.
valid_window_location
Checks whether the target turf is in a valid state to accept a directional window
+or other directional pseudo-dense object such as railings.
+
Returns FALSE if the target turf cannot accept a directional window or railing.
+Returns TRUE otherwise.
+
Arguments:
+
+
dest_turf - The destination turf to check for existing windows and railings
+
test_dir - The prospective dir of some atom you'd like to put on this turf.
+
is_fulltile - Whether the thing you're attempting to move to this turf takes up the entire tile or whether it supports multiple movable atoms on its tile.
+
velvetspeech
FermiChem
view_to_pixels
Takes a string or num view, and converts it to pixel width/height in a list(pixel_width, pixel_height)
voice_of_god
VOICE OF GOD
wave_explosion
Creates a wave explosion at a certain place
woundscan
Displays wounds with extended information on their status vs medscanners
zone2body_parts_covered
For finding out what body parts a body zone covers, the inverse of the below basically
\ No newline at end of file
diff --git a/image.html b/image.html
new file mode 100644
index 000000000000..e4bec9a967d1
--- /dev/null
+++ b/image.html
@@ -0,0 +1,5 @@
+/image - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Shows a header name on top when you investigate an appearance/image
Var Details
realized_overlays
List of overlay "keys" (info about the appearance) -> mutable versions of static appearances
+Drawn from the overlays list
realized_underlays
List of underlay "keys" (info about the appearance) -> mutable versions of static appearances
+Drawn from the underlays list
Proc Details
debug_variable_value
Makes nice short vv names for images
get_vv_link_ref
Returns the ref string to use when displaying this image in the vv menu of something else
realize_overlays
Takes the image's existing overlays, and makes them mutable so they can be properly vv'd in the realized_overlays list
vv_get_header
Shows a header name on top when you investigate an appearance/image
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 000000000000..3f1fcdfe14b9
--- /dev/null
+++ b/index.html
@@ -0,0 +1,229 @@
+Index - SPLURT Station 13
+
+SPLURT Station 13 - Modules - Types
materials - How material datums work
+Materials are now instanced datums, with an associative list of them being kept in SSmaterials. We only instance the materials once and then re-use these instances for everything.
edible - This component makes it possible to make things edible. What this means is that you can take a bite or force someone to take a bite (in the case of items).
+These items take a specific time to eat, and can do most of the things our original food items could.
+Behavior that's still missing from this component that original food items had that should either be put into seperate components or somewhere else:
+Components:
+Drying component (jerky etc)
+Customizable component (custom pizzas etc)
+Processable component (Slicing and cooking behavior essentialy, making it go from item A to B when conditions are met.)
+Dunkable component (Dunking things into reagent containers to absorb a specific amount of reagents)
+Misc:
+Something for cakes (You can store things inside)
fried - This component essentially encapsulates frying and utilizes the edible component
+This means fried items can work like regular ones, and generally the code is far less messy
material_container - This datum should be used for handling mineral contents of machines and whatever else is supposed to hold minerals and make use of them.
Contextual screentips (and when to not use this folder) - Contextual screentips provide information in the form of text at the top of your screen to inform you of the possibilities of an item. The "contextual" here refers to this being handled entirely through code, what it displays and when is completely up to you.
In-code keypress handling system - This whole system is heavily based off of forum_account's keyboard library.
+Thanks to forum_account for saving the day, the library can be found
+here!
language/language_holder - Language holders will either exist in an atom/movable or a mind. Creation of language holders happens
+automatically when they are needed, for example when something tries to speak.
+Where a mind is available, the mind language holder will be the one "in charge". The mind holder
+will update its languages based on the atom holder, and will get updated as part of
+transformations and other events that cause new languages to become available.
+Every language holder has three lists of languages (and sources for each of them):
living - Proc that actually does the grab resisting. Return TRUE if successful. Does not check that a grab exists! Use attempt_resist_grab() instead of this in general!
+Forced is if something other than the user mashing movement keys/pressing resist button did it, silent is if it makes messages (like "attempted to resist" and "broken free").
+Forced does NOT force success!
About modularizing defines - Since #define clauses can't be properly modularized and need to be loaded first than the rest of the code for it to catch them, the modular_splurt/code/_DEFINES/ folder has been deleted and all of its contents have been moved to code\__SPLURTCODE\DEFINES
/tg/station build script - This build script is the recommended way to compile the game, including not only the DM code but also the JavaScript and any other dependencies.
Git Integration Hooks - This folder contains installable scripts for Git hooks and merge drivers.
+Use of these hooks and drivers is optional and they must be installed
+explicitly before they take effect.
Map Merger - The Map Merger is a collection of scripts that keep this repository's maps
+in a format which is easier to track in Git and less likely to cause merge
+conflicts. When merge conflicts do occur, it can sometimes resolve them.
emissive_blocker - Internal atom that copies an appearance on to the blocker plane
fov_holder - The shadow cone's mask and visual images holder which can't locate inside the mob,
+lest they inherit the mob opacity and cause a lot of hindrance
pregnancy - Who is the liar but he who denies that Jesus is the Christ? This is the antichrist, he who denies the Father and the Son.
wound - WOUNDS
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.
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".
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)
biome - This datum handles the transitioning from a turf to a specific biome, and handles spawning decorative structures and mobs.
bitfield - Specifies a bitfield for smarter debugging
block_parry_data - Carries data like list data that would be a waste of memory if we initialized the list on every /item as we can cache datums easier.
Callback Datums - A datum that holds a proc to be called on another object, used to track proccalls to other objects
callback_select - Helper datum for the select callbacks proc
centcom_announcer - Data holder for the announcers that can be used in a game, this can be used to have alternative announcements outside of the default e.g.the intern
butchering/recycler - Special snowflake component only used for the recycler.
combat_mode - Combat mode component. It makes the user face whichever atom the mouse pointer is hovering,
+amongst other things designed outside of this file, namely PvP and PvE stuff, hence the name.
+Can be toggled on and off by clicking the screen hud object or by pressing the assigned hotkey (default 'C')
explodable - Component specifically for explosion sensetive things, currently only applies to heat based explosions but can later perhaps be used for things that are dangerous to handle carelessly like nitroglycerin.
field_of_vision - Field of Vision component. Does totally what you probably think it does,
+ergo preventing players from seeing what's behind them.
footstep - Footstep component. Plays footsteps at parents location when it is appropriate.
multiple_lives - A simple component that spawns a mob of the same type and transfers itself to it when parent dies.
+For more complex behaviors, use the COMSIG_ON_MULTIPLE_LIVES_RESPAWN comsig.
filter - The magical plumbing component used by the chemical filters. The different supply connects behave differently depending on the filters set on the chemical filter
simple_demand - has one pipe input that only takes, example is manual output pipe
simple_supply - has one pipe output that only supplies. example is liquid pump and manual input pipe
virtual_reality - The virtual reality turned component.
+Originally created to overcome issues of mob polymorphing locking the player inside virtual reality
+and allow for a more "immersive" virtual reality in a virtual reality experience.
+It relies on comically complex order of logic, expect things to break if procs such as mind/transfer_to() are revamped.
+In short, a barebone not so hardcoded VR framework.
+If you plan to add more devices that make use of this component, remember to isolate their code outta here where possible.
log_suspicious_login - Config entry which special logging of failed logins under suspicious circumstances.
log_telecomms - log telecomms messages
log_twitter - log certain expliotable parrots and other such fun things in a JSON file of twitter valid phrases.
log_victim - log attack messages
log_virus - log virology data
log_vote - log voting
log_whisper - log client whisper
log_world_topic - log all world.Topic() calls
persistent_debris - Whether or not to use the persistence system for cleanable objects
persistent_debris_only - Whether or not to nuke all roundstart debris that isn't due to persistence if the above is true
persistent_debris_wipe_on_nuke - Wipe dirty stuff on nuke
picture_logging_camera - This is... shitcode, literally same as above, if one of them is inactive, won't log at all, PLEASE FUCKING REMOVE THIS.
popup_admin_pm - Gives the ability to send players a maptext popup.
protolock_during_lowpop - R&D Machinery
respawn_penalty_includes_observe - Observing penalizes for respawns, not just joining.
respawns_enabled - Allows usage of respawn system
tetris_no_science - TETRIS ARCADE MACHINE
use_field_of_vision - Enables the FoV component, which hides objects and mobs behind the parent from their sight, unless they turn around, duh.
+Camera mobs, AIs, ghosts and some other are of course exempt from this. This also doesn't influence simplemob AI, for the best.
respawn_chaos_gamemodes - Gamemode config tags that are banned from respawning
number
autodoc_time_surgery_base - AUTODOC
bluespaceminer_mult_output - BLUESPACE MINER
defib_cmd_time_limit - Seconds for CMD on defib-with-memory-loss policy config to display instead of defib-intact config
dirt_alpha_starting - Alpha dirt starts at
error_cooldown - The "cooldown" time for each occurrence of a unique error
error_limit - How many occurrences before the next will silence them
error_msg_delay - How long to wait between messaging admins about occurrences of a unique error
error_silence_time - How long a unique error will be silenced for
initial_gear_points - Initial loadout points
outdated_movedelay - Outdated move delay
persistent_debris_global_max - Max amount of objects to store, total
persistent_debris_type_max - Max amount of objects to store per type
respawn_delay - Minutes before allowing respawns.
respawn_delay_cryo - Minutes before allowing respawn, if user cryo'd.
respawn_minimum_delay_roundstart - Minutes from roundstart before someone can respawn
stamina_combat
base_regeneration - Base regeneration per second
buffer_max - Maximum stamina buffer
out_of_combat_timer - Seconds until percent_regeneration_out_of_combat kicks in
overdraw_penalty_factor - Factor to multiply by for stamina usage past buffer into health
percent_regeneration_out_of_combat - After out_of_combat_timer elapses, additionally regenerate this percent of total stamina per second. Unaffected by combat mode.
post_action_penalty_delay - Seconds after an action for which your regeneration is penalized
post_action_penalty_factor - Factor to multiply by for penalizing post-action-stamina-regen
turf_dirt_threshold - Amount of dirtyness tiles need to spawn dirt.
turf_dirty_multiplier - Dirtyness multiplier for making turfs dirty
vote_autotransfer_initial - Length of time before the first autotransfer vote is called (deciseconds, default 2 hours)
+Set to 0 to disable the subsystem altogether.
vote_autotransfer_interval - length of time to wait before subsequent autotransfer votes (deciseconds, default 30 minutes)
vote_autotransfer_maximum - maximum extensions until the round autoends.
+Set to 0 to force automatic crew transfer after the 'vote_autotransfer_initial' elapsed.
+Set to -1 to disable the maximum extensions cap.
str_list - List config entry, used for configuring a list of strings
traitor - Probability the AI going malf will be accompanied by an ion storm announcement and some ion laws.
+The probability to replace an existing law with an ion law instead of adding a new ion law.
dynamic_snapshot - A "snapshot" of dynamic at an important point in time.
+Exported to JSON in the dynamic.json log file.
effect_system/trail_follow - ///// Attach a trail to any object, that spawns when it moves (like for the jetpack)
+just pass in the object to attach it to in set_up
+Then do start() to start it and stop() to stop it, obviously
+and don't call start() in a loop that will be repeated otherwise it'll get spammed!
element - A holder for simple behaviour that can be attached to many different types
bed_tuckable - Tucking element, for things that can be tucked into bed.
connect_loc - This element hooks a signal onto the loc the current object is on.
+When the object moves, it will unhook the signal and rehook it to the new object.
contextual_screentip_bare_hands - Apply basic contextual screentips when the user hovers over this item with an empty hand.
+A "Type B" interaction.
+This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
contextual_screentip_item_typechecks - Apply basic contextual screentips when the user hovers over this item with a provided item.
+A "Type B" interaction.
+This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
contextual_screentip_sharpness - Apply basic contextual screentips when the user hovers over this item with an item of the given tool behavior.
+A "Type B" interaction.
+This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
contextual_screentip_tools - Apply basic contextual screentips when the user hovers over this item with an item of the given tool behavior.
+A "Type B" interaction.
+This stacks with other contextual screentip elements, though you may want to register the signal/flag manually at that point for performance.
dwarfism - Very similar to squish, but for dwarves and shorties
weather_listener - This element just handles creating and destroying an area sound manager that's hooked into weather stuff
emote/living
subtle - EMOTE CODE
subtler - SUBTLE 2: NO GHOST BOOGALOO
subtler_table - SUBTLE 3: DARE DICE
fantasy_affix
bane - Good suffixes
fool - Bad suffixes
font - A font datum, it exists to define a custom font to use in a span style later.
grand9k - For clean results on map, use only sizing pt, multiples of 6: 6pt 12pt 18pt 24pt etc. - Not for use with px sizing
+Can be used in TGUI etc, px sizing is pt / 0.75. 6pt = 8px, 12pt = 16px etc.
+Base font
size_6pt - For icon overlays
+Grand9K 6pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
pixellari - For clean results on map, use only sizing pt, multiples of 12: 12pt 24pt 48pt etc. - Not for use with px sizing
+Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc.
+Base font
size_12pt - For icon overlays
+Pixellari 12pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
spessfont - For clean results on map, use only sizing pt, multiples of 6: 6t 12pt 18pt etc. - Not for use with px sizing
+Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc.
+Base font
size_6pt - For icon overlays
+Spess Font 6pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
tiny_unicode - For clean results on map, use only sizing pt, multiples of 12: 12pt 24pt 48pt etc. - Not for use with px sizing
+Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc.
+Base font
size_12pt - For icon overlays
+TinyUnicode 12pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
Families gamemode / dynamic ruleset handler - A special datum used by the families gamemode and dynamic rulesets to centralize code. "Family" and "gang" used interchangeably in code.
gang_theme - Gang themes for the Families gamemode. Used to determine the RP theme of the round, what gangs are present, and what their objectives are.
map_generator - This type is responsible for any map generation behavior that is done in areas, override this to allow for area-specific map generation. This generation is ran by areas in initialize.
Outfit datums - This is a clean system of applying outfits to mobs, if you need to equip someone in a uniform
+this is the way to do it cleanly and properly.
scar - scars are cosmetic datums that are assigned to bodyparts once they recover from wounds. Each wound type and severity have their own descriptions for what the scars
+look like, and then each body part has a list of "specific locations" like your elbow or wrist or wherever the scar can appear, to make it more interesting than "right arm"
skill_holder - Skill holder datums
+All procs are tied to the mind, since they are always expected to have a skill holder anyway.
skill_modifier - Base skill modifier datum, used to modify a player skills without directly touching their values, levels and affinity
+and cause lots of edge cases. These are fairly simple overall... make a subtype though, don't use this one.
tgs_chat_command - User definable chat command. This abstract version MUST be overridden to be used.
tgs_chat_embed
field - See https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure for details.
footer - See https://discord.com/developers/docs/resources/message#embed-object-embed-footer-structure for details.
media - Common datum for similar Discord embed medias.
provider - See https://discord.com/developers/docs/resources/message#embed-object-embed-provider-structure for details.
author - See https://discord.com/developers/docs/resources/message#embed-object-embed-author-structure for details. Must have name set in New().
structure - User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/message#embed-object for details.
tgui_alert - 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_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_text_input - An asynchronous version of tgui_text_input to be used with callbacks instead of waiting on user responses.
async tgui_text_input - An asynchronous version of tgui_text_input to be used with callbacks instead of waiting on user responses.
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_panel - tgui_panel datum
+Hosts tgchat and other nice features.
mob - CLICKDELAY HANDLING SYSTEM
+How this works is mobs can never do actions until their next_action is at or below world.time, but things can specify extra cooldown
+to check for either from the time of last_action or from the end of next_action.
Goliath Broodmother - A stronger, faster variation of the goliath. Has the ability to spawn baby goliaths, which it can later detonate at will.
+When it's health is below half, tendrils will spawn randomly around it. When it is below a quarter of health, this effect is doubled.
+It's attacks are as follows:
Candy - Kind of like bubblegum's rebellious teenage son/daughter.
+Has 4 attacks.
+Charge - Charges at it's target.
+Bloody Trap - Traps it's target between some walls, and then charges at them.
+Meat Shield - Knockbacks all targets in the 3 tiles he faces, and then creates a wall.
+Knockdown - Deals damage and knockbacks all targets in a 2 tile radius.
Drakeling - A small drake/dragon.
+Has four attacks.
Herald - A slow-moving projectile user with a few tricks up it's sleeve. Less unga-bunga than Colossus, with more cleverness in it's fighting style.
+As it's health gets lower, the amount of projectiles fired per-attack increases.
+It's attacks are as follows:
Legionnaire - A towering skeleton, embodying the power of Legion.
+As it's health gets lower, the head does more damage.
+It's attacks are as follows:
Necropolis priest - Kind of like BD miner's son trying to impress their dad.
+Has four attacks.
Pandora - A box with a similar design to the Hierophant which trades large, single attacks for more frequent smaller ones.
+As it's health gets lower, the time between it's attacks decrease.
+It's attacks are as follows:
durand_shield - Shield processing
+*An object to take the hit for us when using the Durand's defense mode.
+It is spawned in during the durand's initilization, and always stays on the same tile.
+Normally invisible, until defense mode is actvated. When the durand detects an attack that should be blocked, the
+attack is passed to the shield. The shield takes the damage, uses it to calculate charge cost, and then sets its
+own integrity back to max. Shield is automatically dropped if we run out of power or the user gets out.
bounty_cube - Upon completion of a civilian bounty, one of these is created. It is sold to cargo to give the cargo budget bounty money, and the person who completed it cash.
hard_drive/small/nukeops - For tablets given to nuke ops
recharger/cyborg - This recharger exists only in borg built-in tablets. I would have tied it to the borg's cell but
+the program that displays laws should always be usable, and the exceptions were starting to pile.
Hyperstation 13 fleshlight - Humbley request this doesnt get ported to other code bases, we strive to make things unique on our server and we dont have a lot of coders
+but if you absolutely must. please give us some credit~ <3
+made by quotefox and heavily modified by SandPoot
Spider Charge - A unique version of c4 possessed only by the space ninja. Has a stronger blast radius.
+Can only be detonated by space ninjas with the bombing objective. Can only be set up where the objective says it can.
+When it primes, the space ninja responsible will have their objective set to complete.
antigrav - Anti-Gravity - Makes the user weightless.
teleporter - Teleporter - Lets the user teleport to a nearby location.
balloon - Rave Visor - Pointless
+Tanner - Maybe another time
+Balloon Blower - Blows a balloon.
bikehorn - Criminal Capture
+Mirage grenade dispenser
+Projectile Dampener
+Active Sonar
+Bike Horn - Plays a bike horn sound.
clamp - Hydraulic Clamp - Lets you pick up and drop crates.
constructor - Constructor - Lets you build quicker and create RCD holograms.
defibrillator - Injector - No piercing syringes, replace another time
+Organ Thrower
+Patrient Transport
+Defibrillator - Gives the suit an extendable pair of shock paddles.
dispenser - Dispenser - Dispenses an item after a time passes.
dna_lock - Longfall
+Thermal Regulator - Naw.
+DNA Lock - Prevents people without the set DNA from activating the suit.
drill - Drill - Lets you dig through rock and basalt.
emp_shield - EMP Shield - Protects the suit from EMPs.
flashlight - Flashlight - Gives the suit a customizable flashlight.
gps - Internal GPS - Extends a GPS you can use.
health_analyzer - Health Analyzer - Gives the user a ranged health analyzer and their health status in the panel.
holster - Pepper Shoulders
+Holster - Instantly holsters any not huge gun.
jetpack - Ion Jetpack - Lets the user fly freely through space using battery charge.
magboot - Magnetic Stability - Gives the user a slowdown but makes them negate gravity and be immune to slips.
magnetic_harness - Magnetic Harness - Automatically puts guns in your suit storage when you drop them.
paper_dispenser - Paper Dispenser - Dispenses (sometimes burning) paper sheets.
quick_carry - Quick Carry - Lets the user carry bodies quicker.
rad_protection - Radiation Protection - Protects the user from radiation, gives them a geiger counter and rad info in the panel.
reagent_scanner - Reagent Scanner - Lets the user scan reagents.
springlock - Sign Language Translator - I want, but no
+Springlock Mechanism - allows your modsuit to activate faster, but reagents are very dangerous.
stamp - Stamper - Extends a stamp that can switch between accept/deny modes.
stealth - Cloaking - Lowers the user's visibility, can be interrupted by being touched or attacked.
storage - Storage - Adds a storage component to the suit.
surgical_processor - Thread Ripper
+Surgical Processor - Lets you do advanced surgeries portably.
t_ray - T-Ray Scan - Scans the terrain for undertile objects.
tether - Emergency Tether - Shoots a grappling hook projectile in 0g that throws the user towards it.
visor - Base Visor - Adds a specific HUD and traits to you.
welding - Welding Protection - Makes the helmet protect from flashes and welding.
paper - Paper is now using markdown (like in github pull notes) for ALL rendering
+so we do loose a bit of functionality but we gain in easy of use of
+paper and getting rid of that crashing bug
trinary/nuclear_reactor - What is this?
+Moderators list (Not gonna keep this accurate forever):
+Fuel Type:
+Oxygen: Power production multiplier. Allows you to run a low plasma, high oxy mix, and still get a lot of power.
+Plasma: Power production gas. More plasma -> more power, but it enriches your fuel and makes the reactor much, much harder to control.
+Tritium: Extremely efficient power production gas. Will cause chernobyl if used improperly.
+Moderation Type:
+N2: Helps you regain control of the reaction by increasing control rod effectiveness, will massively boost the rad production of the reactor.
+CO2: Super effective shutdown gas for runaway reactions. MASSIVE RADIATION PENALTY!
+Pluoxium: Same as N2, but no cancer-rads!
+Permeability Type:
+BZ: Increases your reactor's ability to transfer its heat to the coolant, thus letting you cool it down faster (but your output will get hotter)
+Water Vapour: More efficient permeability modifier
+Hyper Noblium: Extremely efficient permeability increase. (10x as efficient as bz)
+Depletion type:
+Nitryl: When you need weapons grade plutonium yesterday. Causes your fuel to deplete much, much faster. Not a huge amount of use outside of sabotage.
+Sabotage:
+Meltdown:
+Flood reactor moderator with plasma, they won't be able to mitigate the reaction with control rods.
+Shut off coolant entirely. Raise control rods.
+Swap all fuel out with spent fuel, as it's way stronger.
+Blowout:
+Shut off exit valve for quick overpressure.
+Cause a pipefire in the coolant line (LETHAL).
+Tack heater onto coolant line (can also cause straight meltdown)
+Tips:
+Be careful to not exhaust your plasma supply. I recommend you DON'T max out the moderator input when youre running plasma + o2, or you're at a tangible risk of running out of those gasses from atmos.
+The reactor CHEWS through moderator. It does not do this slowly. Be very careful with that!
plumbing - Basic plumbing object.
+It doesn't really hold anything special, YET.
+Objects that are plumbing but not a subtype are as of writing liquid pumps and the reagent_dispenser tank
+Also please note that the plumbing component is toggled on and off by the component using a signal from default_unfasten_wrench, so dont worry about it
acclimator - this the plumbing version of a heater/freezer.
filter - chemical plumbing filter. If it's not filtered by left and right, it goes straight.
input - We can empty beakers in here and everything
liquid_pump - We pump liquids from activated(plungerated) geysers to a plumbing outlet. We don't need to be wired.
output - We can fill beakers in here and everything. we dont inheret from input because it has nothing that we need
pill_press - We take a constant input of reagents, and produce a pill once a set volume is reached
reaction_chamber - a reaction chamber for plumbing. pretty much everything can react, but this one keeps the reagents seperated and only reacts under your given terms
splitter - it splits the reagents however you want. So you can "every 60 units, 45 goes left and 15 goes straight". The side direction is EAST, you can change this in the component
synthesizer - A single machine that produces a single chem. Can be placed in unison with others through plumbing to create chemical factories
basalt/lava_land_surface - Surface. The surface is warm, but survivable without a suit. Internals are required. The floors break to chasms, which drop you into the underground.
water/cursed_spring - Turns whoever enters into a mob
World - Two possibilities exist: either we are alone in the Universe or we are not. Both are equally terrifying. ~ Arthur C. Clarke
\ No newline at end of file
diff --git a/interface/fonts/fonts_datum.html b/interface/fonts/fonts_datum.html
new file mode 100644
index 000000000000..944be8b5eb27
--- /dev/null
+++ b/interface/fonts/fonts_datum.html
@@ -0,0 +1 @@
+interface/fonts/fonts_datum.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
A font datum, it exists to define a custom font to use in a span style later.
\ No newline at end of file
diff --git a/interface/fonts/grand_9k.html b/interface/fonts/grand_9k.html
new file mode 100644
index 000000000000..6d86047ec29f
--- /dev/null
+++ b/interface/fonts/grand_9k.html
@@ -0,0 +1,5 @@
+interface/fonts/grand_9k.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
For clean results on map, use only sizing pt, multiples of 6: 6pt 12pt 18pt 24pt etc. - Not for use with px sizing
+Can be used in TGUI etc, px sizing is pt / 0.75. 6pt = 8px, 12pt = 16px etc.
+Base font
For icon overlays
+Grand9K 6pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
\ No newline at end of file
diff --git a/interface/fonts/license.html b/interface/fonts/license.html
new file mode 100644
index 000000000000..1d6dc10aea8c
--- /dev/null
+++ b/interface/fonts/license.html
@@ -0,0 +1,14 @@
+interface/fonts/license.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
interface/fonts/license.txt
Grand9K Pixel created by Jayvee Enaguas. Licensed under Creative Commons Attribution 4.0 International (CC BY 4.0)
+(https://creativecommons.org/licenses/by/4.0/) (https://www.dafont.com/grand9k-pixel.font)
+
+Pixellari created by Zacchary Dempsey-Plante. Website indicates free for commercial use.
+(https://www.dafont.com/pixellari.font?fpp=200)
+
+Spess Font created by MTandi (discord) for /tg/station.
+
+Tiny Unicode created by Jakob Riedle/DuffsDevice. Website indicates free for commercial use.
+(https://fontmeme.com/fonts/tiny-unicode-font/)
+
+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)
+
\ No newline at end of file
diff --git a/interface/fonts/pixellari.html b/interface/fonts/pixellari.html
new file mode 100644
index 000000000000..bcb4dd6c3d01
--- /dev/null
+++ b/interface/fonts/pixellari.html
@@ -0,0 +1,5 @@
+interface/fonts/pixellari.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
For clean results on map, use only sizing pt, multiples of 12: 12pt 24pt 48pt etc. - Not for use with px sizing
+Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc.
+Base font
For icon overlays
+Pixellari 12pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
\ No newline at end of file
diff --git a/interface/fonts/spess_font.html b/interface/fonts/spess_font.html
new file mode 100644
index 000000000000..44f00616705e
--- /dev/null
+++ b/interface/fonts/spess_font.html
@@ -0,0 +1,5 @@
+interface/fonts/spess_font.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
For clean results on map, use only sizing pt, multiples of 6: 6t 12pt 18pt etc. - Not for use with px sizing
+Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc.
+Base font
For icon overlays
+Spess Font 6pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
\ No newline at end of file
diff --git a/interface/fonts/tiny_unicode.html b/interface/fonts/tiny_unicode.html
new file mode 100644
index 000000000000..9ae793b054e0
--- /dev/null
+++ b/interface/fonts/tiny_unicode.html
@@ -0,0 +1,5 @@
+interface/fonts/tiny_unicode.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
For clean results on map, use only sizing pt, multiples of 12: 12pt 24pt 48pt etc. - Not for use with px sizing
+Can be used in TGUI etc, px sizing is pt / 0.75. 12pt = 16px, 24pt = 32px etc.
+Base font
For icon overlays
+TinyUnicode 12pt metrics generated using Lummox's dmifontsplus (https://www.byond.com/developer/LummoxJR/DmiFontsPlus)
+Note: these variable names have been changed, so you can't straight copy/paste from dmifontsplus.exe
\ No newline at end of file
diff --git a/mob.html b/mob.html
new file mode 100644
index 000000000000..190d58181bb8
--- /dev/null
+++ b/mob.html
@@ -0,0 +1,121 @@
+/mob - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
mob
CLICKDELAY HANDLING SYSTEM
+How this works is mobs can never do actions until their next_action is at or below world.time, but things can specify extra cooldown
+to check for either from the time of last_action or from the end of next_action.
+
Clickdelay should always be checked via [CheckActionCooldown()], never manually!
Simple modification variable added to amount on adjust and on checking time since last action using [CheckActionCooldown()].
+This should only be manually modified via addition.
Simple modification variable multiplied to next action modifier on adjust and on checking time since last action using [CheckActionCooldown()].
+This should only be manually modified using multipliers.
Ability system based on action buttons. Can be ported to base /mob or /mob/living later if needed, easily - the procs are currently on living/carbon/human/innate_abilities.dm
+datum traits-style lazylist of abilities
Generic clickdelay variable. Marks down the last world.time we did something that should cause or impact generic clickdelay. This should be directly set or set using [DelayNextAction()]. This should only be checked using [CheckActionCooldown()].
The difference between the above and this is this is set immediately before even the pre-attack begins to ensure clickdelay is respected.
+Then, it is flushed or discarded using [FlushLastAttack()] or [DiscardLastAttack()] respectively.
Whether or not the mob is currently being transformed into another mob or into another state of being. This will prevent it from moving or doing realistically anything.
+Don't you DARE use this for a cheap way to ensure someone is stunned in your code.
Generic clickdelay variable. Next world.time we should be able to do something that respects generic clickdelay. This should be set using [DelayNextAction()] This should only be checked using [CheckActionCooldown()].
Current state of our typing indicator. Used for cut overlay, DO NOT RUNTIME ASSIGN OTHER THAN FROM SHOW/CLEAR. Used to absolutely ensure we do not get stuck overlays.
Add a action speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID.
Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID.
Adds the cliented mob reference to the list of all player-mobs, besides to either the of dead or alive player-mob lists, as appropriate. Called on Login().
Proc to resist a grab. moving_resist is TRUE if this began by someone attempting to move. Return FALSE if still grabbed/failed to break out. Use this instead of resist_grab() directly.
Displays typing indicator.
+@param timeout_override - Sets how long until this will disappear on its own without the user finishing their message or logging out. Defaults to src.typing_indicator_timeout
+@param state_override - Sets the state that we will fetch. Defaults to src.get_typing_indicator_icon_state()
+@param force - shows even if src.typing_indcator_enabled is FALSE.
Gets the movespeed modifier datum of a modifier on a mob. Returns null if not found.
+DANGER: IT IS UP TO THE PERSON USING THIS TO MAKE SURE THE MODIFIER IS NOT MODIFIED IF IT HAPPENS TO BE GLOBAL/CACHED.
handle_eye_contact() is called when we examine() something. If we examine an alive mob with a mind who has examined us in the last second within 5 tiles, we make eye contact!
Removes the mob reference from the list of all player-mobs, besides from either the of dead or alive player-mob lists, as appropriate. Called on Logout().
Used to wrap stat setting to trigger on-stat-change functionality.
+Must be used instead of directly setting a mob's stat var,
+so that the signal is sent properly.
Go through the list of actionspeed modifiers and calculate a final actionspeed. ANY ADD/REMOVE DONE IN UPDATE_actionspeed MUST HAVE THE UPDATE ARGUMENT SET AS FALSE!
Go through the list of movespeed modifiers and calculate a final movespeed. ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE!
The last mob/living/carbon to push/drag/grab this mob (mostly used by slimes friend recognition)
ability_actions
ability = action button instance.
ability_properties
ability = list(data). see __DEFINES/mobs/innate_abilities.dm
action_cooldown_adjust
Simple modification variable added to amount on adjust and on checking time since last action using [CheckActionCooldown()].
+This should only be manually modified via addition.
action_cooldown_mod
Simple modification variable multiplied to next action modifier on adjust and on checking time since last action using [CheckActionCooldown()].
+This should only be manually modified using multipliers.
actionspeed_mod_immunities
List of action speed modifiers ignored by this mob. List -> List (id) -> List (sources)
actionspeed_modification
List of action speed modifiers applying to this mob
cached_multiplicative_actions_slowdown
The calculated mob action speed slowdown based on the modifiers list
cached_multiplicative_slowdown
The calculated mob speed slowdown based on the modifiers list
deathsound
The sound made on death
+
leave null for no sound. used for *deathgasp
do_afters
For storing what do_after's someone has, in case we want to restrict them to only one of a certain do_after at a time
examine_cursor_icon
Cursor icon used when holding shift over things
focus
What receives our keyboard input. src by default.
fullscreens
Fullscreen objects
innate_abilities
Ability system based on action buttons. Can be ported to base /mob or /mob/living later if needed, easily - the procs are currently on living/carbon/human/innate_abilities.dm
+datum traits-style lazylist of abilities
is_shifted
Whether the mob is pixel shifted or not
last_action
Generic clickdelay variable. Marks down the last world.time we did something that should cause or impact generic clickdelay. This should be directly set or set using [DelayNextAction()]. This should only be checked using [CheckActionCooldown()].
last_action_immediate
The difference between the above and this is this is set immediately before even the pre-attack begins to ensure clickdelay is respected.
+Then, it is flushed or discarded using [FlushLastAttack()] or [DiscardLastAttack()] respectively.
mob_transforming
Whether or not the mob is currently being transformed into another mob or into another state of being. This will prevent it from moving or doing realistically anything.
+Don't you DARE use this for a cheap way to ensure someone is stunned in your code.
mock_client
A mock client, provided by tests and friends
movespeed_mod_immunities
List of movement speed modifiers ignored by this mob. List -> List (id) -> List (sources)
movespeed_modification
List of movement speed modifiers applying to this mob
next_action
Generic clickdelay variable. Next world.time we should be able to do something that respects generic clickdelay. This should be set using [DelayNextAction()] This should only be checked using [CheckActionCooldown()].
next_action_immediate
Ditto
next_resist
Minimum world time for another resist. This should only be checked using [CheckResistCooldown()].
passthroughable
Takes the four cardinal direction defines. Any atoms moving into this atom's tile will be allowed to from the added directions.
resist_cooldown
How long we should wait before allowing another resist. This should only be manually modified using multipliers.
shifting
If we are in the shifting setting.
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.
typing_indicator_current
Current state of our typing indicator. Used for cut overlay, DO NOT RUNTIME ASSIGN OTHER THAN FROM SHOW/CLEAR. Used to absolutely ensure we do not get stuck overlays.
typing_indicator_enabled
////TYPING INDICATORS///////
+Set to true if we want to show typing indicators.
typing_indicator_state
Default icon_state of our typing indicator. Currently only supports paths (because anything else is, as of time of typing this, unnecesary.
typing_indicator_timerid
The timer that will remove our indicator for early aborts (like when an user finishes their message)
unarmed_attack_speed
Default clickdelay for an UnarmedAttack() that successfully passes. Respects action_cooldown_mod.
Proc Details
CheckActionCooldown
Checks if we can do another action.
+Returns TRUE if we can and FALSE if we cannot.
+
@params
+
+
cooldown - Time required since last action. Defaults to 0.5
+
from_next_action - Defaults to FALSE. Should we check from the tail end of next_action instead of last_action?
+
ignore_mod - Defaults to FALSE. Ignore all adjusts and multipliers. Do not use this unless you know what you are doing and have a good reason.
+
ignore_next_action - Defaults to FALSE. Ignore next_action and only care about cooldown param and everything else. Generally unused.
+
immediate - Defaults to FALSE. Checks last action using immediate, used on the head end of an attack. This is to prevent colliding attacks in case of sleep. Not that you should sleep() in an attack but.. y'know.
+
CheckResistCooldown
Checks if we can resist again.
CommonClickOn
Common mob click code
DelayNextAction
Applies a delay to next_action before we can do our next action.
+
@params
+
+
amount - Amount to delay by
+
ignore_mod - ignores next action adjust and mult
+
considered_action - Defaults to TRUE - If TRUE, sets last_action to world.time.
+
immediate - defaults to TRUE - if TRUE, writes to cached/last_attack_immediate instead of last_attack. This ensures it can't collide with any delay checks in the actual attack.
+
flush - defaults to FALSE - Use this while using this proc outside of clickcode to ensure everything is set properly. This should never be set to TRUE if this is called from clickcode.
+
DiscardCurrentAction
Discards last_action and next_action
Dizzy
Set the dizzyness of a mob to a passed in amount
+
Except if dizziness is already higher in which case it does nothing
EstimatedNextActionTime
Get estimated time of next attack.
FlushCurrentAction
Flushes last_action and next_action
GetActionCooldownAdjust
Gets action_cooldown_adjust
GetActionCooldownMod
Gets action_cooldown_mod.
Jitter
Set the jitter of a mob
MarkResistTime
Mark the last resist as now.
+
@params
+
+
extra_cooldown - Extra cooldown to apply to next_resist. Defaults to this mob's resist_cooldown.
+
override - Defaults to FALSE - if TRUE, extra_cooldown will replace the old next_resist even if the old is longer.
+
SetNextAction
Sets our next action to. The difference is DelayNextAction cannot reduce next_action under any circumstances while this can.
add_actionspeed_modifier
Add a action speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID.
add_movespeed_modifier
Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID.
add_to_alive_mob_list
Adds the mob reference to the list of all mobs alive. If mob is cliented, it adds it to the list of all living player-mobs.
add_to_current_dead_players
Adds the cliented mob reference to either the list of dead player-mobs or to the list of observers, depending on how they joined the game.
add_to_current_living_antags
Adds the cliented mob reference to the list of living antag player-mobs.
add_to_current_living_players
Adds the cliented mob reference to the list of living player-mobs. If the mob is an antag, it adds it to the list of living antag player-mobs.
add_to_dead_mob_list
Adds the mob reference to the list of all the dead mobs. If mob is cliented, it adds it to the list of all dead player-mobs.
add_to_mob_list
Adds the mob reference to the list and directory of all mobs. Called on Initialize().
add_to_player_list
Adds the cliented mob reference to the list of all player-mobs, besides to either the of dead or alive player-mob lists, as appropriate. Called on Login().
adjust_blindness
Adjust a mobs blindness by an amount
+
Will apply the blind alerts if needed
adjust_blurriness
Adjust the current blurriness of the mobs vision by amount
adjust_bodytemperature
Adjust the body temperature of a mob, with min/max settings
adjust_disgust
Adjust the disgust level of a mob
adjust_drugginess
Adjust the drugginess of a mob
adjust_nutrition
Adjust the nutrition of a mob
adjust_thirst
Adjust the thirst of a mob
attempt_resist_grab
Proc to resist a grab. moving_resist is TRUE if this began by someone attempting to move. Return FALSE if still grabbed/failed to break out. Use this instead of resist_grab() directly.
audible_message
Show a message to all mobs in earshot of this one
+
This would be for audible actions by the src mob
+
vars:
+
+
message is the message output to anyone who can hear.
+
self_message (optional) is what the src mob hears.
+
deaf_message (optional) is what deaf people will see.
+
hearing_distance (optional) is the range, how many tiles away the message can be heard.
+
ignored_mobs (optional) doesn't show any message to any given mob in the list.
+
blind_eyes
Sets a mob's blindness to an amount if it was not above it already, similar to how status effects work
blur_eyes
Make the mobs vision blurry
check_obscured_slots
Checks for slots that are currently obscured by other garments.
clear_fullscreen
Wipes a fullscreen of a certain category
+
Second argument is for animation delay.
clear_typing_indicator
Removes typing indicator.
create_chat_message
Creates a message overlay at a defined location for a given speaker
+
Arguments:
+
+
speaker - The atom who is saying this message
+
message_language - The language that the message is said in
+
raw_message - The text content of the message
+
spans - Additional classes to be added to the message
+
message_mode - Bitflags relating to the mode of the message
+
display_typing_indicator
Displays typing indicator.
+@param timeout_override - Sets how long until this will disappear on its own without the user finishing their message or logging out. Defaults to src.typing_indicator_timeout
+@param state_override - Sets the state that we will fetch. Defaults to src.get_typing_indicator_icon_state()
+@param force - shows even if src.typing_indcator_enabled is FALSE.
dispose_rendering
destroys screen rendering. call on mob del
dropItemToGround
Used to drop an item (if it exists) to the ground.
+
+
Will pass as TRUE is successfully dropped, or if there is no item to drop.
+
Will pass FALSE if the item can not be dropped due to TRAIT_NODROP via doUnEquip()
+If the item can be dropped, it will be forceMove()'d to the ground and the turf's Entered() will be called.
+
equipped_speed_mods
Gets the combined speed modification of all worn items
+Except base mob type doesnt really wear items
examinate
Examine a mob
+
mob verbs are faster than object verbs. See
+this byond forum post
+for why this isn't atom/verb/examine()
generate_typing_indicator
Generates the mutable appearance for typing indicator. Should prevent stuck overlays.
get_ability_property
Gets an ability property
get_actionspeed_modifiers
Get the action speed modifiers list of the mob
get_active_hand
Get the bodypart for whatever hand we have active, Only relevant for carbons
get_config_multiplicative_speed
Get the global config movespeed of a mob by type
get_indicator_overlay
Fetches the typing indicator we'll use from GLOB.typing_indicator_overlays
get_movespeed_modifier_datum
Gets the movespeed modifier datum of a modifier on a mob. Returns null if not found.
+DANGER: IT IS UP TO THE PERSON USING THIS TO MAKE SURE THE MODIFIER IS NOT MODIFIED IF IT HAPPENS TO BE GLOBAL/CACHED.
get_movespeed_modifiers
Get the move speed modifiers list of the mob
get_num_held_items
Find number of held items, multihand compatible
get_proc_holders
Gets all relevant proc holders for the browser statpenl
get_spells_for_statpanel
Convert a list of spells into a displyable list for the statpanel
+
Shows charge and other important info
get_status_tab_items
Adds this list to the output to the stat browser
get_top_level_mob
SUBTLE COMMAND
get_typing_indicator_icon_state
Gets the state we will use for typing indicators. Defaults to src.typing_indicator_state
grant_ability_from_source
Grants an ability from a source
handle_eye_contact
handle_eye_contact() is called when we examine() something. If we examine an alive mob with a mind who has examined us in the last second within 5 tiles, we make eye contact!
+
Note that if either party has their face obscured, the other won't get the notice about the eye contact
+Also note that examine_more() doesn't proc this or extend the timer, just because it's simpler this way and doesn't lose much.
+The nice part about relying on examining is that we don't bother checking visibility, because we already know they were both visible to each other within the last second, and the one who triggers it is currently seeing them
has_actionspeed_modifier
Is there a actionspeed modifier for this mob
has_movespeed_modifier
Is there a movespeed modifier for this mob
hide_fullscreens
Removes fullscreens from client but not the mob
init_rendering
initializes screen rendering. call on mob new
initialize_actionspeed
Adds a default action speed
interact_with
Attempts to open the tgui menu
list_interaction_attributes
# Interactions code by HONKERTRON feat TestUnit
+
+
+
Contains a lot ammount of ERP and MEHANOYEBLYA
+
CREDIT TO ATMTA STATION FOR MOST OF THIS CODE, I ONLY MADE IT WORK IN /vg/ - Matt
+
Rewritten 30/08/16 by Zuhayr, sry if I removed anything important.
+
I removed ERP and replaced it with handholding. Nothing of worth was lost. - Vic
+
Fuck you, Vic. ERP is back. - TT
+
+
+
using var/ on everything, also TRUE
+
+
+
"TGUIzes" the panel because yes - SandPoot
+
Makes all the code good because yes as well - SandPoot
+
onShuttleMove
Mob move procs
overlay_fullscreen
Adds a fullscreen overlay
+
@params
+
+
category - string - must exist. will overwrite any other screen in this category. defaults to type.
+
type - the typepath of the screen
+
severity - severity - different screen objects have differing severities
+
pointed
Point at an atom
+
mob verbs are faster than object verbs. See
+this byond forum post
+for why this isn't atom/verb/pointed()
+
note: ghosts can point, this is intended
+
visible_message will handle invisibility properly
+
overridden here and in /mob/dead/observer for different point span classes and sanity checks
reload_fullscreen
Ensures all fullscreens are on client.
reload_rendering
loads screen rendering. call on mob login
remove_ability_from_source
Removes an ability from a source
remove_actionspeed_modifier
Remove a action speed modifier from a mob, whether static or variable.
remove_from_alive_mob_list
Removes the mob reference from the list of all mobs alive. If mob is cliented, it removes it from the list of all living player-mobs.
remove_from_current_dead_players
Removes the mob reference from either the list of dead player-mobs or from the list of observers, depending on how they joined the game.
remove_from_current_living_antags
Removes the mob reference from the list of living antag player-mobs.
remove_from_current_living_players
Removes the mob reference from the list of living player-mobs. If the mob is an antag, it removes it from the list of living antag player-mobs.
remove_from_dead_mob_list
Remvoes the mob reference from list of all the dead mobs. If mob is cliented, it adds it to the list of all dead player-mobs.
remove_from_mob_list
Removes the mob reference from the list and directory of all mobs. Called on Destroy().
remove_from_player_list
Removes the mob reference from the list of all player-mobs, besides from either the of dead or alive player-mob lists, as appropriate. Called on Logout().
remove_movespeed_modifier
Remove a move speed modifier from a mob, whether static or variable.
setGrabState
Updates the grab state of the mob and updates movespeed
set_ability_property
Sets an ability property
set_blindness
Force set the blindness of a mob to some level
set_blurriness
Set the mobs blurriness of vision to an amount
set_disgust
Set the disgust level of a mob
set_dizziness
FOrce set the dizzyness of a mob
set_drugginess
Set the drugginess of a mob
set_nutrition
Force set the mob nutrition
set_species
DNA MOB-PROCS
set_stat
Used to wrap stat setting to trigger on-stat-change functionality.
+Must be used instead of directly setting a mob's stat var,
+so that the signal is sent properly.
shared_ui_interaction
public
+
Standard interaction/sanity checks. Different mob types may have overrides.
+
return UI_state The state of the UI.
shuttleRotate
Mob rotate procs
total_multiplicative_slowdown
Calculate the total slowdown of all movespeed modifiers
update_action_buttons
This proc handles adding all of the mob's actions to their screen
+
If you just need to update existing buttons, use [/mob/proc/update_mob_action_buttons]!
+
Arguments:
+
+
update_flags - reload_screen - bool, if TRUE, this proc will add the button to the screen of the passed mob as well
+
update_actionspeed
Go through the list of actionspeed modifiers and calculate a final actionspeed. ANY ADD/REMOVE DONE IN UPDATE_actionspeed MUST HAVE THE UPDATE ARGUMENT SET AS FALSE!
update_blindness
proc that adds and removes blindness overlays when necessary
update_config_movespeed
Set or update the global movespeed config on a mob
update_movespeed
Go through the list of movespeed modifiers and calculate a final movespeed. ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE!
visible_message
Adds the functionality to self_message.
vv_edit_var
Handles the special case of editing the movement var
wipe_fullscreens
Wipes all fullscreens
\ No newline at end of file
diff --git a/mob/dead/new_player.html b/mob/dead/new_player.html
new file mode 100644
index 000000000000..985b5dac2a61
--- /dev/null
+++ b/mob/dead/new_player.html
@@ -0,0 +1 @@
+/mob/dead/new_player - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Processes vote form data and saves results to the database for a multiple choice type poll.
Var Details
age_gate_result
Is there a result we want to read from the age gate
ineligible_for_roles
Used to make sure someone doesn't get spammed with messages if they're ineligible for roles
new_character
For instant transfer once the round is set up
reset_hud_cooldown
Cooldown for the Reset Lobby Menu HUD verb
spawning
Referenced when you want to delete the new_player later on in the code.
Proc Details
reset_menu_hud
Resets the Lobby Menu HUD, recreating and reassigning it to the new player
respawn_latejoin_check
Checks if we can latejoin on the currently selected slot, taking into account respawn status.
vote_on_irv_poll
Processes vote form data and saves results to the database for an IRV type poll.
vote_on_multi_poll
Processes vote form data and saves results to the database for a multiple choice type poll.
\ No newline at end of file
diff --git a/mob/dead/observer.html b/mob/dead/observer.html
new file mode 100644
index 000000000000..d6b583097831
--- /dev/null
+++ b/mob/dead/observer.html
@@ -0,0 +1,2 @@
+/mob/dead/observer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Actual proc that removes us and puts us back on lobby
Proc Details
do_respawn
Handles respawning
respawn
Attempts to respawn.
time_left_to_respawn
Gets time left until we can respawn. Returns 0 if we can respawn now.
transfer_to_lobby
Actual proc that removes us and puts us back on lobby
+
Returns the new mob.
\ No newline at end of file
diff --git a/mob/living.html b/mob/living.html
new file mode 100644
index 000000000000..8bf33c988237
--- /dev/null
+++ b/mob/living.html
@@ -0,0 +1,67 @@
+/mob/living - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Our block_parry_data for unarmed blocks/parries. Currently only used for parrying, as unarmed block isn't implemented yet. YOU MUST RUN [get_block_parry_data(this)] INSTEAD OF DIRECTLY ACCESSING!
Handles biological life processes like chemical metabolism, breathing, etc
+Returns TRUE or FALSE based on if we were interrupted. This is used by overridden variants to check if they should stop.
Handles physical life processes like being on fire. Don't ask why this is considered "Life".
+Returns TRUE or FALSE based on if we were interrupted. This is used by overridden variants to check if they should stop.
whether or not we can slide under another living mob. defaults to if we're not dense. CanPass should check "overriding circumstances" like buckled mobs/having PASSMOB flag, etc.
The item the user is actively blocking with if any.
active_parry_item
The itme the user is currently parrying with, if any.
block_parry_data
Our block_parry_data for unarmed blocks/parries. Currently only used for parrying, as unarmed block isn't implemented yet. YOU MUST RUN [get_block_parry_data(this)] INSTEAD OF DIRECTLY ACCESSING!
buckle_message_cooldown
Next world.time when we can get the "you can't move while buckled to [thing]" message.
combat_flags
/ CITADEL STATION COMBAT ////
+See __DEFINES/combat.dm
combatmessagecooldown
Next world.time when we will show a visible message on entering combat mode voluntarily again.
default_block_parry_data
Default
last_autoparry
Last autoparry
navigate_cooldown
Cooldown of the navigate() verb.
next_preyloop
Next time vore sounds get played for the prey, do not change manually as it is intended to be set automatically
parry_end_time_last
world.time of last parry end
parry_start_time
world.time of parry action start
parry_visual_effect
Current parry effect.
parrying
Whether or not the user is in the middle of an active parry. Set to UNARMED_PARRY, [ITEM_PARRY], [MARTIAL_PARRY] if parrying.
pugilist_block_parry_data
If we're a pugilist
stamina_buffer
Our stamina buffer
stamina_buffer_last_use
Last time we used stamina buffer
stamina_buffer_regen_last
Last time stamina buffer regen was done
stamina_buffer_regen_mod
Stamina buffer regen modifier
successful_parries
Successful parries within the current parry cycle. It's a list of efficiency percentages.
successful_parry_counterattacks
Current parry counterattacks. Makes sure we can only counterattack someone once per parry.
vore_organs
List of vore containers inside a mob
vore_selected
Default to no vore capability.
vore_smell
What the character smells like
vore_taste
What the character tastes like
Proc Details
BiologicalLife
Handles biological life processes like chemical metabolism, breathing, etc
+Returns TRUE or FALSE based on if we were interrupted. This is used by overridden variants to check if they should stop.
HealAllImmobilityUpTo
Makes sure all 5 of the non-knockout immobilizing status effects are lower or equal to amount.
IsDazed
DAZED
IsFrozen
FROZEN
IsImmobilized
IMMOBILIZED
IsKnockdown
KNOCKDOWN
IsParalyzed
PARALYZED
IsSleeping
SLEEPING
IsStaggered
STAGGERED
IsStun
STUN
IsUnconscious
UNCONSCIOUS
Life
Called by SSmobs at an interval of 2 seconds.
+Splits off into PhysicalLife() and BiologicalLife(). Override those instead of this.
PhysicalLife
Handles physical life processes like being on fire. Don't ask why this is considered "Life".
+Returns TRUE or FALSE based on if we were interrupted. This is used by overridden variants to check if they should stop.
RechargeStaminaBuffer
Boosts our stamina buffer by this much.
ShoveOffBalance
OFF BALANCE/SHOVIES
UpdateStaminaBuffer
Updates our stamina buffer amount.
UseStaminaBuffer
Attempts to use an amount of stamina from our stamina buffer.
+Does not use anything if we don't have enough.
+
Returns TRUE or FALSE based on if we have it.
active_block_effect_end
Visual effect cleanup for starting a directional block
active_block_effect_start
Visual effect setup for starting a directional block
active_parry_reflex_counter
Called when an attack is parried and block_parra_data indicates to use a proc to handle counterattack.
add_movespeed_mod_immunities
Ignores specific slowdowns. Accepts a list of slowdowns.
add_quirk
DISABILITIES
add_stun_absorption
STUN ABSORPTION
apply_damage
Applies damage to this mob
+
Sends [COMSIG_MOB_APPLY_DAMAGE]
+
Arguuments:
+
+
damage - amount of damage
+
damagetype - one of [BRUTE], [BURN], [TOX], [OXY], [CLONE], [STAMINA]
+
def_zone - zone that is being hit if any
+
blocked - armor value applied
+
forced - bypass hit percentage
+
spread_damage - used in overrides
+
+
Returns TRUE if damage applied
attempt_auto_parry
Attempts to automatically parry an attacker.
bleedDragAmount
Returns how much blood we're losing from being dragged a tile, from [mob/living/proc/makeTrail]
can_move_under_living
whether or not we can slide under another living mob. defaults to if we're not dense. CanPass should check "overriding circumstances" like buckled mobs/having PASSMOB flag, etc.
change_gender
Gender Change
check_orgasm
Acts properly if the given genital has orgasm modifiers
+
Arguments:
+
+
genital: Genital to check for any orgasm modifiers.
+
check_unarmed_parry_activation_special
Check if we can unarmed parry
cure_blind
TRAIT PROCS
determine_parry_method
Massive snowflake proc for getting something to parry with.
+
@return list of [method, data, tool], where method is the parry method define, data is the block_parry_data var that must be run through return_block_parry_data, and tool is the concept/object/martial art/etc used.
do_facefart
U N H O L Y
do_resist
The actual proc for resisting. Return TRUE to give CLICK_CD_RESIST clickdelay.
do_run_block
+
The actual proc for block checks. DO NOT USE THIS DIRECTLY UNLESS YOU HAVE VERY GOOD REASON TO. To reduce copypaste for differences between handling for real attacks and virtual checks.
+
+
Automatically checks all held items for /obj/item/proc/run_block() with the same parameters.
+
@params
+
real_attack - If this attack is real. This one is quirky; If it's real, run_block is called. If it's not, check_block is called and none of the regular checks happen, and this is effectively only useful
+
+
for populating return_list with blocking metadata.
+
+
+
object - Whatever /atom is actually hitting us, in essence. For example, projectile if gun, item if melee, structure/whatever if it's a thrown, etc.
+
damage - The nominal damage this would do if it was to hit. Obviously doesn't take into effect explosions/magic/similar things.. unless you implement it to raise the value.
+
attack_text - The text that this attack should show, in the context of something like "[src] blocks [attack_text]!"
+
attack_type - See __DEFINES/combat.dm - Attack types, to distinguish between, for example, someone throwing an item at us vs bashing us with it.
+
armour_penetration - 0-100 value of how effectively armor penetrating the attack should be.
+
attacker - Set to the mob attacking IF KNOWN. Do not expect this to always be set!
+
def_zone - The zone this'll impact.
+
return_list - If something wants to grab things from what items/whatever put into list/block_return on obj/item/run_block and the comsig, pass in a list so you can grab anything put in it after block runs.
+
attack_direction - Direction of the attack. It is highly recommended to put this in, as the automatic guesswork that's done otherwise is quite inaccurate at times.
+
+
+
electrocute_act
As the name suggests, this should be called to apply electric shocks.
end_parry_sequence
Called via timer when the parry sequence ends.
find_active_block_item
Gets the first item we can that can block, but if that fails, default to active held item.COMSIG_ENABLE_COMBAT_MODE
find_backup_parry_item
Tries to find a backup parry item.
+Does not look at active held item.
find_nearest_stair_or_ladder
Finds nearest ladder or staircase either up or down.
+
Arguments:
+
+
direction - UP or DOWN.
+
get_blocking_items
Gets an unsortedlist of objects to run block checks on. List must have associative values for priorities!
get_equipped_items
Used to return a list of equipped items on a mob; does not include held items (use get_all_gear)
+
Argument(s):
+
+
Optional - include_pockets (TRUE/FALSE), whether or not to include the pockets and suit storage in the returned list
+
get_fluid_mod
Returns the fluid modifier if the genital has one.
+
Arguments:
+
+
amount: Amount of fluid to be released.
+
genital: Genital to check for any fluid modifiers.
+
get_parry_data
Gets the datum/block_parry_data we're going to use to parry.
get_parry_stage
Gets the stage of our parry sequence we're currently in.
get_parry_time
Gets the current decisecond "frame" of an active parry.
handle_block_parry
Called every life tick to handle blocking/parrying effects.
handle_parry_ending_effects
Handles ending effects for parrying.
handle_parry_starting_effects
Handles starting effects for parrying.
handle_post_sex
Handles the sex, if cumming returns true.
hasparasites
parasite tracking/finding procs
hud_set_nanite_indicator
Diagnostic HUDs!
ignore_slowdown
Ignores all slowdowns that lack the IGNORE_NOSLOW flag.
initiate_parry_sequence
Initiates a parrying sequence.
is_barefoot
Are we wearing something that covers our shoes?
is_bottomless
Are we wearing something that covers our groin?
is_topless
Are we wearing something that covers our chest?
keybind_parry
Called from keybindings.
keybind_start_active_blocking
Proc called by keybindings to start active blocking.
keybind_stop_active_blocking
Proc called by keybindings to stop active blocking.
keybind_toggle_active_blocking
Proc called by keybindings to toggle active blocking.
remove_movespeed_mod_immunities
Unignores specific slowdowns. Accepts a list of slowdowns.
resist
Resist verb for attempting to get out of whatever is restraining your motion. Gives you resist clickdelay if do_resist() returns true.
run_parry
same return values as normal blocking, called with absolute highest priority in the block "chain".
run_parry_countereffects
Run counterattack if any
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.
subtle
VERB CODE
subtler
VERB CODE 2
subtler_table
VERB CODE 3
toggle_admin_freeze
Toggle admin frozen
toggle_admin_sleep
Toggle admin sleeping
transfer_blood_to
BLOOD TRANSFERS
unignore_slowdown
Unignores all slowdowns that lack the IGNORE_NOSLOW flag.
update_size
Returns false on failure
\ No newline at end of file
diff --git a/mob/living/brain.html b/mob/living/brain.html
new file mode 100644
index 000000000000..e8509ad0bc17
--- /dev/null
+++ b/mob/living/brain.html
@@ -0,0 +1 @@
+/mob/living/brain - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/mob/living/carbon.html b/mob/living/carbon.html
new file mode 100644
index 000000000000..af08884101f0
--- /dev/null
+++ b/mob/living/carbon.html
@@ -0,0 +1,50 @@
+/mob/living/carbon - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Check ourselves to see if we've got any shrapnel, return true if we do. This is a much simpler version of what humans do, we only indicate we're checking ourselves if there's actually shrapnel
generate_fake_scars()- for when you want to scar someone, but you don't want to hurt them first. These scars don't count for temporal scarring (hence, fake)
get_biological_state is a helper used to see what kind of wounds we roll for. By default we just assume carbons (read:monkeys) are flesh and bone, but humans rely on their species datums
All of the scars a carbon has afflicted throughout their limbs
all_wounds
All of the wounds a carbon has afflicted throughout their limbs
cold_protection
Protection (insulation) from the cold, Value 0-1 corresponding to the percentage of protection
heat_protection
Protection (insulation) from the heat, Value 0-1 corresponding to the percentage of protection
transformation_timer
Timer id of any transformation
Proc Details
adjustOrganLoss
+
adjustOrganLoss
+
+
inputs: slot (organ slot, like ORGAN_SLOT_HEART), amount (damage to be done), and maximum (currently an arbitrarily large number, can be set so as to limit damage)
+
outputs:
+
description: If an organ exists in the slot requested, and we are capable of taking damage (we don't have GODMODE on), call the damage proc on that organ.
+
+
+
check_self_for_injuries
Check ourselves to see if we've got any shrapnel, return true if we do. This is a much simpler version of what humans do, we only indicate we're checking ourselves if there's actually shrapnel
check_stimulation
Returns a lust value depending if the genital has a lust modifier.
+
Arguments:
+
+
amount: Amount of lust given.
+
genital: Genital to check for any lust modifiers.
+TODO - TURN THE TRAITS INTO COMPONENTS
+
check_virus
Medical HUD! Basic mode needs suit sensors on.
doSprintLossTiles
Sprint buffer
electrocute_act
Adds to the parent by also adding functionality to propagate shocks through pulling and doing some fluff effects.
generate_fake_scars
generate_fake_scars()- for when you want to scar someone, but you don't want to hurt them first. These scars don't count for temporal scarring (hence, fake)
+
If you want a specific wound scar, pass that wound type as the second arg, otherwise you can pass a list like WOUND_LIST_SLASH to generate a random cut scar.
+
Arguments:
+
+
num_scars- A number for how many scars you want to add
+
forced_type- Which wound or category of wounds you want to choose from, WOUND_LIST_BLUNT, WOUND_LIST_SLASH, or WOUND_LIST_BURN (or some combination). If passed a list, picks randomly from the listed wounds. Defaults to all 3 types
+
genital_menu
Attempts to open the tgui menu
getOrganLoss
+
getOrganLoss
+
+
inputs: slot (organ slot, like ORGAN_SLOT_HEART)
+
outputs: organ damage
+
description: If an organ exists in the slot requested, return the amount of damage that organ has
+
+
+
get_biological_state
get_biological_state is a helper used to see what kind of wounds we roll for. By default we just assume carbons (read:monkeys) are flesh and bone, but humans rely on their species datums
Returns a list of bodyparts with wounds (in case someone has a wound on an otherwise fully healed limb)
give
Proc called when offering an item to another player
+
This handles creating an alert and adding an overlay to it
humanize
Humanize
immortality
For the Wishgranter
remove_all_embedded_objects
Remove all embedded objects from all limbs on the carbon mob
remove_embedded_object
Remove a specific embedded item from the carbon mob
secondary_shock
Called slightly after electrocute act to reduce jittering and apply a secondary stun.
setOrganLoss
+
setOrganLoss
+
+
inputs: slot (organ slot, like ORGAN_SLOT_HEART), amount(damage to be set to)
+
outputs:
+
description: If an organ exists in the slot requested, and we are capable of taking damage (we don't have GODMODE on), call the set damage proc on that organ, which can
+
+
set or clear the failing variable on that organ, making it either cease or start functions again, unlike adjustOrganLoss.
+
+
+
+
+
take
Proc called when the player clicks the give alert
+
Handles checking if the player taking the item has open slots and is in range of the offerer
+Also deals with the actual transferring of the item to the players hands
+Arguments:
+
+
offerer - The person giving the original item
+
I - The item being given by the offerer
+
take_overall_damage
damage MANY bodyparts, in random order
\ No newline at end of file
diff --git a/mob/living/carbon/alien.html b/mob/living/carbon/alien.html
new file mode 100644
index 000000000000..774f6899fab6
--- /dev/null
+++ b/mob/living/carbon/alien.html
@@ -0,0 +1,3 @@
+/mob/living/carbon/alien - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Whether they can ventcrawl; this is set individually for 'humanoid' and 'royal' types
+'royal' types (Praetorian, Queen) cannot ventcrawl
meleeKnockdownPower
How much power they have for DefaultCombatKnockdown when attacking humans
meleeSlashHumanPower
How much brute damage without armor piercing they do against mobs in melee
meleeSlashSAPower
How much brute damage they do to simple animals
Proc Details
toggle_gender
Handles modular code for Xenomorph features
\ No newline at end of file
diff --git a/mob/living/carbon/human.html b/mob/living/carbon/human.html
new file mode 100644
index 000000000000..2f8befe7af5a
--- /dev/null
+++ b/mob/living/carbon/human.html
@@ -0,0 +1,15 @@
+/mob/living/carbon/human - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
When an braindead player has their equipment fiddled with, we log that info here for when they come back so they know who took their ID while they were DC'd for 30 seconds
Used to update the makeup on a human and apply/remove lipstick traits, then store/unstore them on the head object in case it gets severed
Var Details
afk_thefts
When an braindead player has their equipment fiddled with, we log that info here for when they come back so they know who took their ID while they were DC'd for 30 seconds
combat_flags
Enable stamina combat
grad_color
Colour used for the hair gradient.
grad_style
Style used for the hair gradient.
insanelycomfy
This player has been standing still for very long and are probably roleplaying. They won't use up nutrition/thirst until they start moving again.
copies over clothing preferences like underwear to another human
electrocute_act
Calculates the siemens coeff based on clothing and species, can also restart hearts.
format_scars
For use formatting all of the scars this human has for saving for persistent scarring
get_equipped_items
Used to return a list of equipped items on a human mob; does not include held items (use get_all_gear)
+
Argument(s):
+
+
Optional - include_pockets (TRUE/FALSE), whether or not to include the pockets and suit storage in the returned list
+
handle_fire
FIRE CODE
load_scar
Takes a single scar from the persistent scar loader and recreates it from the saved data
sec_hud_set_ID
Security HUDs! Basic mode shows only the job.
set_antag_target_indicator
Mob's target prefs
socks_hidden
Proc to check if socks are hidden.
something_horrible
DNA HELPER-PROCS
spec_trait_examine_font
spec_trait_examine_font()
+
This gets a humanoid's special examine font, which is used to color their species name during examine / health analyzing.
+The first of these that applies is returned.
+Returns:
+
+
Metallic font if robotic
+
Cyan if a toxinlover
+
Purple if plasmaperson
+
Rock / Brownish if a golem
+
Green if none of the others apply (aka, generic organic)
+
undershirt_hidden
Proc to check if undershirt is hidden.
underwear_hidden
Proc to check if underwear is hidden.
update_lips
Used to update the makeup on a human and apply/remove lipstick traits, then store/unstore them on the head object in case it gets severed
\ No newline at end of file
diff --git a/mob/living/silicon.html b/mob/living/silicon.html
new file mode 100644
index 000000000000..05fcdd3a1c3a
--- /dev/null
+++ b/mob/living/silicon.html
@@ -0,0 +1,3 @@
+/mob/living/silicon - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Returns a UI status representing this silicon's capability to access
+the given source. Called by ui_status_silicon_has_access.
Var Details
emagged
Whether we have been emagged
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.
\ No newline at end of file
diff --git a/mob/living/silicon/ai.html b/mob/living/silicon/ai.html
new file mode 100644
index 000000000000..aec8f8dd6279
--- /dev/null
+++ b/mob/living/silicon/ai.html
@@ -0,0 +1 @@
+/mob/living/silicon/ai - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
whether its mmi is a posibrain or regular mmi when going ai mob to ai core structure
Var Details
ai_announcement
Announcement UI
alert_control
Station alert datum for showing alerts UI
announcement_help
Lists possible spoken words for announcements
is_anchored
whether AI is anchored or not, used for checks
lastloc
remember AI's last location
opened
whether its cover is opened, so you can wirecut it for deconstruction
posibrain_inside
whether its mmi is a posibrain or regular mmi when going ai mob to ai core structure
\ No newline at end of file
diff --git a/mob/living/silicon/robot.html b/mob/living/silicon/robot.html
new file mode 100644
index 000000000000..7c148deec99d
--- /dev/null
+++ b/mob/living/silicon/robot.html
@@ -0,0 +1,88 @@
+/mob/living/silicon/robot - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
What types of mobs are allowed to ride/buckle to this mob
disabled_modules
For checking which modules are disabled or not.
ident
Random serial number generated for each cyborg upon its initialization
lampButton
Lamp button reference
lamp_color
Set lamp color
lamp_doom
Set to true if a doomsday event is locking our lamp to on and RED
lamp_enabled
If the lamp is turned on
lamp_functional
If the lamp isn't broken.
lamp_intensity
Lamp brightness. Starts at 3, but can be 1 - 5.
modularInterface
The reference to the built-in tablet that borgs carry.
opened
If this is a path, this gets created as an object in Initialize.
previous_health
the last health before updating - to check net change in health
vtec_disabled
vtec shorted out
Proc Details
Exited
Checking Exited() to detect if a hat gets up and walks off.
+Drones and pAIs might do this, after all.
activated
Checks if the item is currently in a slot.
+
If the item is found in a slot, this returns TRUE. Otherwise, it returns FALSE
+Modified to accept items inside of grippers, used for code\modules\tgui\states\hands.dm:27
+Arguments
+
+
item_module - the item being checked
+
add_to_upgrades
Moves the upgrade inside the robot and registers relevant signals.
apply_upgrade
Called when a mob uses an upgrade on an open borg. Checks to make sure the upgrade can be applied
break_all_cyborg_slots
Breaks all of a cyborg's slots.
break_cyborg_slot
Breaks the slot number, changing the icon.
+
Arguments
+
+
module_num - the slot number being repaired.
+
cycle_modules
Cycles through the list of enabled modules, deselecting the current one and selecting the next one.
deploy_init
deploy_init: Deploys AI unit into AI shell
+
Arguments:
+
+
AI - AI unit that initiated the deployment into the AI shell
+
deselect_module
Deselects the module in the slot module_num.
+Arguments
+
+
module_num - the slot number being de-selected
+
dump_into_mmi
Dumps the current occupant of the cyborg into an MMI at the passed location
+Returns the borg's MMI on success
equip_module_to_slot
Is passed an item and a module slot. Equips the item to that borg slot.
+
Arguments
+
+
item_module - the item being equipped to a slot
+
module_num - the slot number being equipped to.
+
get_active_held_item
Returns the thing in our active hand (whatever is in our active module-slot, in this case)
+
Arguments
+
+
get_gripper - If the active module is a gripper, should we return the gripper or the contained item? (if the gripper contains nothing, returns the gripper anyways)
+
get_selected_module
Returns the slot number of the selected module, or zero if no modules are selected.
is_invalid_module_number
Checks if the provided module number is a valid number.
+
If the number is between 1 and 3 (if check_all_slots is true) or between 1 and the number of disabled
+modules (if check_all_slots is false), then it returns FALSE. Otherwise, it returns TRUE.
+Arguments
+
+
module_num - the passed module num that is checked for validity.
+
check_all_slots - TRUE = the proc checks all slots | FALSE = the proc only checks un-disabled slots
+
logevent
Records an IC event log entry in the cyborg's internal tablet.
+
Creates an entry in the borglog list of the cyborg's internal tablet, listing the current
+in-game time followed by the message given. These logs can be seen by the cyborg in their
+BorgUI tablet app. By design, logging fails if the cyborg is dead.
+
Arguments:
+arg1: a string containing the message to log.
make_shell
make_shell: Makes an AI shell out of a cyborg unit
+
Arguments:
+
+
board - B.O.R.I.S. module board used for transforming the cyborg into AI shell
+
observer_screen_update
Updates the observers's screens with cyborg itemss.
+Arguments
+
+
item_module - the item being added or removed from the screen
+
add - whether or not the item is being added, or removed.
+
on_upgrade_deleted
Called when an applied upgrade is deleted.
remove_from_upgrades
Called when an upgrade is moved outside the robot. So don't call this directly, use forceMove etc.
repair_all_cyborg_slots
Repairs all slots. Unbroken slots are unaffected.
repair_cyborg_slot
Repairs the slot number, updating the icon.
+
Arguments
+
+
module_num - the module number being repaired.
+
revert_shell
revert_shell: Reverts AI shell back into a normal cyborg unit
select_module
Selects the module in the slot module_num.
+Arguments
+
+
module_num - the slot number being selected
+
smash_headlamp
Handles headlamp smashing
+
When called (such as by the shadowperson lighteater's attack), this proc will break the borg's headlamp
+and then call toggle_headlamp to disable the light. It also plays a sound effect of glass breaking, and
+tells the borg what happened to its chat. Broken lights can be repaired by using a flashlight on the borg.
toggle_gender
Allows "cyborg" players to change gender at will - Modularised here
toggle_headlamp
Handles headlamp toggling, disabling, and color setting.
+
The initial if statment is a bit long, but the gist of it is that should the lamp be on AND the update_color
+arg be true, we should simply change the color of the lamp but not disable it. Otherwise, should the turn_off
+arg be true, the lamp already be enabled, any of the normal reasons the lamp would turn off happen, or the
+update_color arg be passed with the lamp not on, we should set the lamp off. The update_color arg is only
+ever true when this proc is called from the borg tablet, when the color selection feature is used.
+
Arguments:
+
+
arg1 - turn_off, if enabled will force the lamp into an off state (rather than toggling it if possible)
+
arg2 - update_color, if enabled, will adjust the behavior of the proc to change the color of the light if it is already on.
+
toggle_module
Toggles selection of the module in the slot module_num.
+Arguments
+
+
module_num - the slot number being toggled
+
uneq_active
Unequips the active held item, if there is one.
+
Will always consider dropping gripper contents first.
uneq_all
Unequips all held items.
unequip_module_from_slot
Unequips item item_module from slot module_num. Deletes it if delete_after = TRUE.
+
Arguments
+
+
item_module - the item being unequipped
+
module_num - the slot number being unequipped.
+
update_icons
this is bad code
\ No newline at end of file
diff --git a/mob/living/simple_animal.html b/mob/living/simple_animal.html
new file mode 100644
index 000000000000..f5d742371889
--- /dev/null
+++ b/mob/living/simple_animal.html
@@ -0,0 +1,3 @@
+/mob/living/simple_animal - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The Status of our AI, can be set to AI_ON (On, usual processing), AI_IDLE (Will not process, but will return to AI_ON if an enemy comes near), AI_OFF (Off, Not processing ever), AI_Z_OFF (Temporarily off due to nonpresence of players).
Atmos effect - Yes, you can make creatures that require plasma or co2 to survive. N2O is a trace gas and handled separately, hence why it isn't here. It'd be hard to add it. Hard and me don't mix (Yes, yes make all the dick jokes you want with that.) - Errorage
In the event that you want to have a buffing effect on the mob, but don't want it to stack with other effects, any outside force that applies a buff to a simple mob should at least set this to TRUE, so we have something to check against.
List of weather immunity traits that are then added on Initialize(), see traits.dm.
Var Details
AIStatus
The Status of our AI, can be set to AI_ON (On, usual processing), AI_IDLE (Will not process, but will return to AI_ON if an enemy comes near), AI_OFF (Off, Not processing ever), AI_Z_OFF (Temporarily off due to nonpresence of players).
access_card
Innate access uses an internal ID card.
animal_species
Sorry, no spider+corgi buttbabies.
armour_penetration
How much armour they ignore, as a flat reduction from the targets armour value.
atmos_requirements
Atmos effect - Yes, you can make creatures that require plasma or co2 to survive. N2O is a trace gas and handled separately, hence why it isn't here. It'd be hard to add it. Hard and me don't mix (Yes, yes make all the dick jokes you want with that.) - Errorage
attack_verb_continuous
Attacking verb in present continuous tense.
attack_verb_simple
Attacking verb in present simple tense.
attacked_sound
Played when someone punches the creature.
blood_volume
How much blud it has for bloodsucking
buffed
In the event that you want to have a buffing effect on the mob, but don't want it to stack with other effects, any outside force that applies a buff to a simple mob should at least set this to TRUE, so we have something to check against.
can_have_ai
once we have become sentient, we can never go back.
childtype
Hot simple_animal baby making vars.
damage_coeff
1 for full damage , 0 for none , -1 for 1:1 heal from that source.
death_sound
The sound played on death.
del_on_death
causes mob to be deleted on death, useful for mobs that spawn lootable corpses.
dextrous
If the creature has, and can use, hands.
emote_hear
Hearable emotes
emote_see
Unlike speak_emote, the list of things in this variable only show by themselves with no spoken text. IE: Ian barks, Ian yaps.
environment_smash
Set to 1 to allow breaking of crates,lockers,racks,tables; 2 for walls; 3 for Rwalls.
footstep_type
What kind of footstep this mob should have. Null if it shouldn't have any.
force_threshold
Minimum force required to deal any damage.
friendly_verb_continuous
Attacking, but without damage, verb in present continuous tense.
friendly_verb_simple
Attacking, but without damage, verb in present simple tense.
gold_core_spawnable
If the mob can be spawned with a gold slime core. HOSTILE_SPAWN are spawned with plasma, FRIENDLY_SPAWN are spawned with blood.
healable
Healable by medical stacks? Defaults to yes.
icon_dead
icon when the animal is dead. Don't use animated icons for this.
icon_gib
We only try to show a gibbing animation if this exists.
loot
list of things spawned at mob's loc when it dies.
melee_damage_lower
LETTING SIMPLE ANIMALS ATTACK? WHAT COULD GO WRONG. Defaults to zero so Ian can still be cuddly.
melee_damage_type
Damage type of a simple mob's melee attack, should it do damage.
minbodytemp
Temperature effect.
my_z
I don't want to confuse this with client registered_z.
obj_damage
How much damage this simple animal does to objects, if any.
response_disarm_continuous
Disarm-intent verb in present continuous tense.
response_disarm_simple
Disarm-intent verb in present simple tense.
response_harm_continuous
Harm-intent verb in present continuous tense.
response_harm_simple
Harm-intent verb in present simple tense.
response_help_continuous
When someone interacts with the simple animal.
+Help-intent verb in present continuous tense.
response_help_simple
Help-intent verb in present simple tense.
sentience_type
Sentience type, for slime potions.
shouldwakeup
convenience var for forcibly waking up an idling AI on next check.
speak_emote
Emotes while speaking IE: Ian [emote], [text] -- Ian barks, "WOOF!". Spoken text is generated from the speak variable.
speed
LETS SEE IF I CAN SET SPEEDS FOR SIMPLE MOBS WITHOUT DESTROYING EVERYTHING. Higher speed is slower, negative speed is faster.
stop_automated_movement
Use this to temporarely stop random movement or to if you write special movement code for animals.
stop_automated_movement_when_pulled
When set to 1 this stops the animal from moving when someone is pulling it.
tame
Domestication.
unsuitable_atmos_damage
This damage is taken when atmos doesn't fit all the requirements above.
wander
Does the mob wander around when idle?
weather_immunities
List of weather immunity traits that are then added on Initialize(), see traits.dm.
\ No newline at end of file
diff --git a/mob/living/simple_animal/bot.html b/mob/living/simple_animal/bot.html
new file mode 100644
index 000000000000..424dc05ffb41
--- /dev/null
+++ b/mob/living/simple_animal/bot.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/bot - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Returns a status string about the bot's current status, if it's moving, manually controlled, or idle.
Proc Details
get_mode_ui
Returns a status string about the bot's current status, if it's moving, manually controlled, or idle.
\ No newline at end of file
diff --git a/mob/living/simple_animal/bot/floorbot.html b/mob/living/simple_animal/bot/floorbot.html
new file mode 100644
index 000000000000..5e0a558604cd
--- /dev/null
+++ b/mob/living/simple_animal/bot/floorbot.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/bot/floorbot - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Checks a given turf to see if another floorbot is there, working as well.
Proc Details
check_bot_working
Checks a given turf to see if another floorbot is there, working as well.
\ No newline at end of file
diff --git a/mob/living/simple_animal/drone.html b/mob/living/simple_animal/drone.html
new file mode 100644
index 000000000000..7eda4c9b433a
--- /dev/null
+++ b/mob/living/simple_animal/drone.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/drone - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Alarm listener datum, handes caring about alarm events and such
Var Details
listener
Alarm listener datum, handes caring about alarm events and such
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile.html b/mob/living/simple_animal/hostile.html
new file mode 100644
index 000000000000..428d124c46d1
--- /dev/null
+++ b/mob/living/simple_animal/hostile.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/hostile - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Proc that handles the charge impact of the charging mob.
Var Details
charge_cooldown
Declares a cooldown for potential charges right off the bat.
charge_distance
In a charge, how many tiles will the charger travel?
charge_frequency
How often can the charging mob actually charge? Effects the cooldown between charges.
charge_state
Tracks if the target is actively charging.
charger
When a target is found, will the mob attempt to charge at it's target?
knockdown_time
If the mob is charging, how long will it stun it's target on success, and itself on failure?
Proc Details
AICanContinue
AI Status
ListTargets
HOSTILE MOB TARGETTING AND AGGRESSION
charge_end
Proc that handles a charge attack after it's concluded.
death
END HOSTILE MOB TARGETTING AND AGGRESSION
enter_charge
Proc that handles a charge attack windup for a mob.
handle_charge_target
Proc that throws the mob at the target after the windup.
throw_impact
Proc that handles the charge impact of the charging mob.
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/asteroid/elite/broodmother.html b/mob/living/simple_animal/hostile/asteroid/elite/broodmother.html
new file mode 100644
index 000000000000..e8d0534d914d
--- /dev/null
+++ b/mob/living/simple_animal/hostile/asteroid/elite/broodmother.html
@@ -0,0 +1,10 @@
+/mob/living/simple_animal/hostile/asteroid/elite/broodmother - SPLURT Station 13SPLURT Station 13 - Modules - Types
Goliath Broodmother
A stronger, faster variation of the goliath. Has the ability to spawn baby goliaths, which it can later detonate at will.
+When it's health is below half, tendrils will spawn randomly around it. When it is below a quarter of health, this effect is doubled.
+It's attacks are as follows:
+
+
Spawns a 3x3/plus shape of tentacles on the target location
+
Spawns 2 baby goliaths on its tile, up to a max of 8. Children blow up when they die.
+
The broodmother lets out a noise, and is able to move faster for 6.5 seconds.
+
Summons your children around you.
+The broodmother is a fight revolving around stage control, as the activator has to manage the baby goliaths and the broodmother herself, along with all the tendrils.
+
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/asteroid/elite/drakeling.html b/mob/living/simple_animal/hostile/asteroid/elite/drakeling.html
new file mode 100644
index 000000000000..8ac96e95baa0
--- /dev/null
+++ b/mob/living/simple_animal/hostile/asteroid/elite/drakeling.html
@@ -0,0 +1,8 @@
+/mob/living/simple_animal/hostile/asteroid/elite/drakeling - SPLURT Station 13SPLURT Station 13 - Modules - Types
Drakeling
A small drake/dragon.
+Has four attacks.
+
+
Lava moat - Creates a moat of lava around themselves.
+
Lava rivers - Creates lava rivers in all cardinal directions.
+
Firespew - Spews fire in the direction they're facing.
+
Fire moat - Spews fire in all directions.
+
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/asteroid/elite/herald.html b/mob/living/simple_animal/hostile/asteroid/elite/herald.html
new file mode 100644
index 000000000000..829401222f0e
--- /dev/null
+++ b/mob/living/simple_animal/hostile/asteroid/elite/herald.html
@@ -0,0 +1,10 @@
+/mob/living/simple_animal/hostile/asteroid/elite/herald - SPLURT Station 13SPLURT Station 13 - Modules - Types
Herald
A slow-moving projectile user with a few tricks up it's sleeve. Less unga-bunga than Colossus, with more cleverness in it's fighting style.
+As it's health gets lower, the amount of projectiles fired per-attack increases.
+It's attacks are as follows:
+
+
Fires three projectiles in a a given direction.
+
Fires a spread in every cardinal and diagonal direction at once, then does it again after a bit.
+
Shoots a single, golden bolt. Wherever it lands, the herald will be teleported to the location.
+
Spawns a mirror which reflects projectiles directly at the target.
+Herald is a more concentrated variation of the Colossus fight, having less projectiles overall, but more focused attacks.
+
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/asteroid/elite/legionnaire.html b/mob/living/simple_animal/hostile/asteroid/elite/legionnaire.html
new file mode 100644
index 000000000000..19b82562dce9
--- /dev/null
+++ b/mob/living/simple_animal/hostile/asteroid/elite/legionnaire.html
@@ -0,0 +1,10 @@
+/mob/living/simple_animal/hostile/asteroid/elite/legionnaire - SPLURT Station 13SPLURT Station 13 - Modules - Types
Legionnaire
A towering skeleton, embodying the power of Legion.
+As it's health gets lower, the head does more damage.
+It's attacks are as follows:
+
+
Charges at the target after a telegraph, throwing them across the arena should it connect.
+
Legionnaire's head detaches, attacking as it's own entity. Has abilities of it's own later into the fight. Once dead, regenerates after a brief period. If the skill is used while the head is off, it will be killed.
+
Leaves a pile of bones at your location. Upon using this skill again, you'll swap locations with the bone pile.
+
Spews a cloud of smoke from it's maw, wherever said maw is.
+A unique fight incorporating the head mechanic of legion into a whole new beast. Combatants will need to make sure the tag-team of head and body don't lure them into a deadly trap.
+
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/asteroid/elite/minerpriest.html b/mob/living/simple_animal/hostile/asteroid/elite/minerpriest.html
new file mode 100644
index 000000000000..23e4fe9809d3
--- /dev/null
+++ b/mob/living/simple_animal/hostile/asteroid/elite/minerpriest.html
@@ -0,0 +1,8 @@
+/mob/living/simple_animal/hostile/asteroid/elite/minerpriest - SPLURT Station 13SPLURT Station 13 - Modules - Types
Necropolis priest
Kind of like BD miner's son trying to impress their dad.
+Has four attacks.
+
+
Axe Slam - Slams his axe on the ground, hurting everyone is his direction in a 3 tile radius
+
Summon Shambler - Summons a shambling miner that focuses on the target.
+
Dash - Dashes in the target's general direction
+
Axe Throw - Throws an axe at the target
+
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/asteroid/elite/pandora.html b/mob/living/simple_animal/hostile/asteroid/elite/pandora.html
new file mode 100644
index 000000000000..89187d85ea4b
--- /dev/null
+++ b/mob/living/simple_animal/hostile/asteroid/elite/pandora.html
@@ -0,0 +1,10 @@
+/mob/living/simple_animal/hostile/asteroid/elite/pandora - SPLURT Station 13SPLURT Station 13 - Modules - Types
Pandora
A box with a similar design to the Hierophant which trades large, single attacks for more frequent smaller ones.
+As it's health gets lower, the time between it's attacks decrease.
+It's attacks are as follows:
+
+
Fires hierophant blasts in a straight line. Can only fire in a straight line in 8 directions, being the diagonals and cardinals.
+
Creates a box of hierophant blasts around the target. If they try to run away to avoid it, they'll very likely get hit.
+
Teleports the pandora from one location to another, almost identical to Hierophant.
+
Spawns a 5x5 AOE at the location of choice, spreading out from the center.
+Pandora's fight mirrors Hierophant's closely, but has stark differences in attack effects. Instead of long-winded dodge times and long cooldowns, Pandora constantly attacks the opponent, but leaves itself open for attack.
+
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/asteroid/ice_demon.html b/mob/living/simple_animal/hostile/asteroid/ice_demon.html
new file mode 100644
index 000000000000..0f6ffa6b7437
--- /dev/null
+++ b/mob/living/simple_animal/hostile/asteroid/ice_demon.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/hostile/asteroid/ice_demon - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/asteroid/ice_whelp.html b/mob/living/simple_animal/hostile/asteroid/ice_whelp.html
new file mode 100644
index 000000000000..ae0474f47594
--- /dev/null
+++ b/mob/living/simple_animal/hostile/asteroid/ice_whelp.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/hostile/asteroid/ice_whelp - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/asteroid/lobstrosity.html b/mob/living/simple_animal/hostile/asteroid/lobstrosity.html
new file mode 100644
index 000000000000..2df303957faf
--- /dev/null
+++ b/mob/living/simple_animal/hostile/asteroid/lobstrosity.html
@@ -0,0 +1,3 @@
+/mob/living/simple_animal/hostile/asteroid/lobstrosity - SPLURT Station 13SPLURT Station 13 - Modules - Types
lobstrosity
Lobstrosities, the poster boy of charging AI mobs. Drops crab meat and bones.
+
+
Outside of charging, it's intended behavior is that it is generally slow moving, but makes up for that with a knockdown attack to score additional hits.
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/asteroid/polarbear.html b/mob/living/simple_animal/hostile/asteroid/polarbear.html
new file mode 100644
index 000000000000..52d5af45c393
--- /dev/null
+++ b/mob/living/simple_animal/hostile/asteroid/polarbear.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/hostile/asteroid/polarbear - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Message for when the polar bear starts to attack faster
Var Details
aggressive_message_said
Message for when the polar bear starts to attack faster
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/asteroid/wolf.html b/mob/living/simple_animal/hostile/asteroid/wolf.html
new file mode 100644
index 000000000000..6fafaea9a471
--- /dev/null
+++ b/mob/living/simple_animal/hostile/asteroid/wolf.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/hostile/asteroid/wolf - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Message for when the wolf decides to start running away
Var Details
retreat_message_said
Message for when the wolf decides to start running away
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/carp/cayenne.html b/mob/living/simple_animal/hostile/carp/cayenne.html
new file mode 100644
index 000000000000..0d1c622dfb55
--- /dev/null
+++ b/mob/living/simple_animal/hostile/carp/cayenne.html
@@ -0,0 +1,3 @@
+/mob/living/simple_animal/hostile/carp/cayenne - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Keeping track of the nuke disk for the functionality of storing it.
Var Details
colored_disk_mouth
Location of the file storing disk overlays
+Colored disk mouth appearance for adding it as a mouth overlay
disky
Keeping track of the nuke disk for the functionality of storing it.
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/construct.html b/mob/living/simple_animal/hostile/construct.html
new file mode 100644
index 000000000000..3955713822ca
--- /dev/null
+++ b/mob/living/simple_animal/hostile/construct.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/hostile/construct - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Theme controls color. THEME_CULT is red THEME_WIZARD is purple and THEME_HOLY is blue
Proc Details
update_health_hud
ui stuff
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/eldritch.html b/mob/living/simple_animal/hostile/eldritch.html
new file mode 100644
index 000000000000..c9a97e3f373f
--- /dev/null
+++ b/mob/living/simple_animal/hostile/eldritch.html
@@ -0,0 +1,2 @@
+/mob/living/simple_animal/hostile/eldritch - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Innate spells that are supposed to be added when a beast is created
Proc Details
add_spells
Add_spells
+
Goes through spells_to_add and adds each spell to the mind.
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/eldritch/armsy.html b/mob/living/simple_animal/hostile/eldritch/armsy.html
new file mode 100644
index 000000000000..f069310d308d
--- /dev/null
+++ b/mob/living/simple_animal/hostile/eldritch/armsy.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/hostile/eldritch/armsy - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Updates the next mob in the chain to move to our last location, fixed the worm if somehow broken.
Var Details
allow_pulling
Allow / disallow pulling
back
Previous segment in the chain
current_stacks
Currently eaten arms
front
Next segment in the chain
oldloc
Your old location
stacks_to_grow
How many arms do we have to eat to expand?
Proc Details
contract_next_chain_into_single_tile
Updates chain links to force move onto a single tile
update_chain_links
Updates the next mob in the chain to move to our last location, fixed the worm if somehow broken.
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/guardian.html b/mob/living/simple_animal/hostile/guardian.html
new file mode 100644
index 000000000000..d4ba279751b7
--- /dev/null
+++ b/mob/living/simple_animal/hostile/guardian.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/hostile/guardian - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/guardian/gravitokinetic.html b/mob/living/simple_animal/hostile/guardian/gravitokinetic.html
new file mode 100644
index 000000000000..3485b8ac014f
--- /dev/null
+++ b/mob/living/simple_animal/hostile/guardian/gravitokinetic.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/hostile/guardian/gravitokinetic - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Removes gravity from affected mobs upon guardian death to prevent permanent effects
Proc Details
death
Removes gravity from affected mobs upon guardian death to prevent permanent effects
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/megafauna.html b/mob/living/simple_animal/hostile/megafauna.html
new file mode 100644
index 000000000000..ef8255987101
--- /dev/null
+++ b/mob/living/simple_animal/hostile/megafauna.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/hostile/megafauna - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Grants medals and achievements to surrounding players
Var Details
achievement_type
Achievement given to surrounding players when the megafauna is killed
anger_modifier
Modifies attacks when at lower health
attack_action_types
Attack actions, sets chosen_attack to the number in the action
chosen_attack
The chosen attack by the megafauna
crusher_achievement_type
Crusher achievement given to players when megafauna is killed
crusher_loot
Crusher loot dropped when the megafauna is killed with a crusher
elimination
If the megafauna was actually killed (not just dying, then transforming into another type)
internal
Internal tracking GPS inside fauna
nest_range
Range the megafauna can move from their nest (if they have one
recovery_time
Next time the megafauna can use a melee attack
score_achievement_type
Score given to players when megafauna is killed
small_sprite_type
If there is a small sprite icon for players controlling the megafauna to use
true_spawn
If this is a megafauna that is real (has achievements, gps signal)
Proc Details
SetRecoveryTime
Sets the next time the megafauna can use a melee or ranged attack, in deciseconds
grant_achievement
Grants medals and achievements to surrounding players
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.html b/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.html
new file mode 100644
index 000000000000..0a7910566022
--- /dev/null
+++ b/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
If the demonic frost miner is in its enraged state
enraging
If the demonic frost miner is currently transforming to its enraged state
projectile_speed_multiplier
Modifies the speed of the projectiles the demonic frost miner shoots out
Proc Details
check_enraged
Checks if the demonic frost miner is ready to be enraged
frost_orbs
Shoots out homing frost orbs that explode into ice blast projectiles after a couple seconds
ice_shotgun
Shoots out ice blasts in a shotgun like pattern
snowball_machine_gun
Shoots out snowballs with a random spread
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/megafauna/legion.html b/mob/living/simple_animal/hostile/megafauna/legion.html
new file mode 100644
index 000000000000..59566c077b93
--- /dev/null
+++ b/mob/living/simple_animal/hostile/megafauna/legion.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/hostile/megafauna/legion - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
This is the proc that actually does the throwing. Charge only adds a timer for this.
Proc Details
AttackingTarget
In addition to parent functionality, this will also turn the target into a small legion if they are unconcious.
Split
Splits legion into smaller skulls.
adjustHealth
This makes sure that the legion door opens on taking damage, so you can't cheese this boss.
charge_target
Attack proc. Gives legion some movespeed buffs and switches the AI to melee. At lower sizes, this also throws the skull at the player.
create_legion_skull
Attack proc. Spawns a singular legion skull.
create_legion_turrets
Attack proc. Creates up to three legion turrets on suitable turfs nearby.
reset_charge
Resets the charge buffs.
setVarsAfterSplit
Sets the variables for new legion skulls. Usually called after splitting.
throw_impact
Deals some extra damage on throw impact.
throw_thyself
This is the proc that actually does the throwing. Charge only adds a timer for this.
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/megafauna/wendigo.html b/mob/living/simple_animal/hostile/megafauna/wendigo.html
new file mode 100644
index 000000000000..8b77265ce680
--- /dev/null
+++ b/mob/living/simple_animal/hostile/megafauna/wendigo.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/hostile/megafauna/wendigo - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Teleports to a location 4 turfs away from the enemy in view
Var Details
can_move
If the wendigo is allowed to move
starting
Saves the turf the megafauna was created at (spawns exit portal here)
stomp_range
Range for wendigo stomping when it moves
stored_move_dirs
Stores directions the mob is moving, then calls that a move has fully ended when these directions are removed in moved
Proc Details
disorienting_scream
Shakes all nearby enemies screens and animates the wendigo shaking up and down
ground_slam
Slams the ground around the wendigo throwing back enemies caught nearby
heavy_stomp
Larger but slower ground stomp
teleport
Teleports to a location 4 turfs away from the enemy in view
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/plaguerat.html b/mob/living/simple_animal/hostile/plaguerat.html
new file mode 100644
index 000000000000..0078c67840f1
--- /dev/null
+++ b/mob/living/simple_animal/hostile/plaguerat.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/hostile/plaguerat - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Checks the mouse cap, if it's above the cap, doesn't spawn a mouse. If below, spawns a mouse and adds it to cheeserats.
Proc Details
be_fruitful
Checks the mouse cap, if it's above the cap, doesn't spawn a mouse. If below, spawns a mouse and adds it to cheeserats.
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/regalrat.html b/mob/living/simple_animal/hostile/regalrat.html
new file mode 100644
index 000000000000..7a6ab6e8d72e
--- /dev/null
+++ b/mob/living/simple_animal/hostile/regalrat.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/hostile/regalrat - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Number assigned to rats and mice, checked when determining infighting.
Proc Details
Initialize
Number assigned to rats and mice, checked when determining infighting.
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/space_dragon.html b/mob/living/simple_animal/hostile/space_dragon.html
new file mode 100644
index 000000000000..ea33d95a769d
--- /dev/null
+++ b/mob/living/simple_animal/hostile/space_dragon.html
@@ -0,0 +1,76 @@
+/mob/living/simple_animal/hostile/space_dragon - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Space Dragon
A space-faring leviathan-esque monster which breathes fire and summons carp. Spawned during its respective midround antagonist event.
+
A space-faring monstrosity who has the ability to breathe dangerous fire breath and uses its powerful wings to knock foes away.
+Normally spawned as an antagonist during the Space Dragon event, Space Dragon's main goal is to open three rifts from which to pull a great tide of carp onto the station.
+Space Dragon can summon only one rift at a time, and can do so anywhere a blob is allowed to spawn. In order to trigger his victory condition, Space Dragon must summon and defend three rifts while they charge.
+Space Dragon, when spawned, has five minutes to summon the first rift. Failing to do so will cause Space Dragon to return from whence he came.
+When the rift spawns, ghosts can interact with it to spawn in as space carp to help complete the mission. One carp is granted when the rift is first summoned, with an extra one every 30 seconds.
+Once the victory condition is met, all current rifts become invulnerable to damage, are allowed to spawn infinite sentient space carp, and Space Dragon gets unlimited rage.
+Alternatively, if the shuttle arrives while Space Dragon is still active, their victory condition will automatically be met and all the rifts will immediately become fully charged.
+If a charging rift is destroyed, Space Dragon will be incredibly slowed, and the endlag on his gust attack is greatly increased on each use.
+Space Dragon has the following abilities to assist him with his objective:
+
+
Can shoot fire in straight line, dealing 30 burn damage and setting those suseptible on fire.
+
Can use his wings to temporarily stun and knock back any nearby mobs. This attack has no cooldown, but instead has endlag after the attack where Space Dragon cannot act. This endlag's time decreases over time, but is added to every time he uses the move.
+
Can swallow mob corpses to heal for half their max health. Any corpses swallowed are stored within him, and will be regurgitated on death.
+
Can tear through any type of wall. This takes 4 seconds for most walls, and 12 seconds for reinforced walls.
A list of all of the rifts created by Space Dragon. Used for setting them all to infinite carp spawn when Space Dragon wins, and removing them when Space Dragon dies.
Sets up Space Dragon's victory for completing the objectives.
Var Details
chosen_color
The color of the space dragon.
gust_distance
The distance Space Dragon's gust reaches
gust_tiredness
The amount of tiredness to add to Space Dragon per use of gust
maxRiftTimer
Maximum amount of time which can pass without a rift before Space Dragon despawns.
objective_complete
Whether or not Space Dragon has completed their objective, and thus triggered the ending sequence.
rift
The innate ability to summon rifts
riftTimer
Current time since the the last rift was activated. If set to -1, does not increment.
rift_list
A list of all of the rifts created by Space Dragon. Used for setting them all to infinite carp spawn when Space Dragon wins, and removing them when Space Dragon dies.
rifts_charged
How many rifts have been successfully charged
tearing_wall
Determines whether or not Space Dragon is currently tearing through a wall.
tiredness
How much endlag using Wing Gust should apply. Each use of wing gust increments this, and it decreases over time.
tiredness_mult
A multiplier to how much each use of wing gust should add to the tiredness variable. Set to 5 if the current rift is destroyed.
using_special
Determines whether or not Space Dragon is in the middle of using wing gust. If set to true, prevents him from moving and doing certain actions.
Proc Details
add_dragon_overlay
Adds the proper overlay to the space dragon.
+
Clears the current overlay on space dragon and adds a proper one for whatever animation he's in.
color_selection
Allows space dragon to choose a color for itself.
+
Prompts the space dragon to choose a color, from which it will then apply to itself.
+If an invalid color is given, will re-prompt the dragon until a proper color is chosen.
destroy_rifts
Destroys all of Space Dragon's current rifts.
+
QDeletes all the current rifts after removing their references to other objects.
+Currently, the only reference they have is to the Dragon which created them, so we clear that before deleting them.
+Currently used when Space Dragon dies or one of his rifts is destroyed.
dragon_fire_line
What occurs on each tile to actually create the fire.
+
Creates a fire on the given turf.
+It creates a hotspot on the given turf, damages any living mob with 30 burn damage, and damages mechs by 50.
+It can only hit any given target once.
+Arguments:
+
+
turf/T - The turf to trigger the effects on.
+
dragon_name
Allows space dragon to choose its own name.
+
Prompts the space dragon to choose a name, which it will then apply to itself.
+If the name is invalid, will re-prompt the dragon until a proper name is chosen.
eat
Handles consuming and storing consumed things inside Space Dragon
+
Plays a sound and then stores the consumed thing inside Space Dragon.
+Used in AttackingTarget(), paired with a heal should it succeed.
+Arguments:
+
+
atom/movable/A - The thing being consumed
+
empty_contents
Disperses the contents of the mob on the surrounding tiles.
+
Randomly places the contents of the mob onto surrounding tiles.
+Has a 10% chance to place on the same tile as the mob.
fire_stream
Spawns fire at each position in a line from the source to the target.
+
Spawns fire at each position in a line from the source to the target.
+Stops if it comes into contact with a solid wall, a window, or a door.
+Delays the spawning of each fire by 1.5 deciseconds.
+Arguments:
+
+
atom/at - The target
+
line_target
Determines a line of turfs from sources's position to the target with length range.
+
Determines a line of turfs from the source's position to the target with length range.
+The line will extend on past the target if the range is large enough, and not reach the target if range is small enough.
+Arguments:
+
+
offset - whether or not to aim slightly to the left or right of the target
+
range - how many turfs should we go out for
+
atom/at - The target
+
permanant_empower
Gives Space Dragon their the rift speed buff permanantly.
+
Gives Space Dragon the enraged speed buff from charging rifts permanantly.
+Only happens in circumstances where Space Dragon completes their objective.
reset_status
Resets Space Dragon's status after using wing gust.
+
Resets Space Dragon's status after using wing gust.
+If it isn't dead by the time it calls this method, reset the sprite back to the normal living sprite.
+Also sets the using_special variable to FALSE, allowing Space Dragon to move and attack freely again.
rift_depower
Removes Space Dragon's rift speed buff.
+
Removes Space Dragon's speed buff from charging a rift. This is only called
+in rift_empower, which uses a timer to call this after 30 seconds. Also
+removes the red glow from Space Dragon which is synonymous with the speed buff.
rift_empower
Handles Space Dragon's temporary empowerment after boosting a rift.
+
Empowers and depowers Space Dragon after a successful rift charge.
+Empowered, Space Dragon regains all his health and becomes temporarily faster for 30 seconds, along with being tinted red.
useGust
Handles wing gust from the windup all the way to the endlag at the end.
+
Handles the wing gust attack from start to finish, based on the timer.
+When intially triggered, starts at 0. Until the timer reaches 10, increase Space Dragon's y position by 2 and call back to the function in 1.5 deciseconds.
+When the timer is at 10, trigger the attack. Change Space Dragon's sprite. reset his y position, and push all living creatures back in a 3 tile radius and stun them for 5 seconds.
+Stay in the ending state for how much our tiredness dictates and add to our tiredness.
+Arguments:
+
+
timer - The timer used for the windup.
+
victory
Sets up Space Dragon's victory for completing the objectives.
+
Triggers when Space Dragon completes his objective.
+Calls the shuttle with a coefficient of 3, making it impossible to recall.
+Sets all of his rifts to allow for infinite sentient carp spawns
+Also plays appropiate sounds and CENTCOM messages.
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/swarmer.html b/mob/living/simple_animal/hostile/swarmer.html
new file mode 100644
index 000000000000..50bbf84e3232
--- /dev/null
+++ b/mob/living/simple_animal/hostile/swarmer.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/hostile/swarmer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/mob/living/simple_animal/hostile/venus_human_trap.html b/mob/living/simple_animal/hostile/venus_human_trap.html
new file mode 100644
index 000000000000..fb6bbbe7597d
--- /dev/null
+++ b/mob/living/simple_animal/hostile/venus_human_trap.html
@@ -0,0 +1,22 @@
+/mob/living/simple_animal/hostile/venus_human_trap - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
venus_human_trap
Venus Human Trap
+
The result of a kudzu flower bud, these enemies use vines to drag prey close to them for attack.
+
A carnivorious plant which uses vines to catch and ensnare prey. Spawns from kudzu flower buds.
+Each one has a maximum of four vines, which can be attached to a variety of things. Carbons are stunned when a vine is attached to them, and movable entities are pulled closer over time.
+Attempting to attach a vine to something with a vine already attached to it will pull all movable targets closer on command.
+Once the prey is in melee range, melee attacks from the venus human trap heals itself for 10% of its max health, assuming the target is alive.
+Akin to certain spiders, venus human traps can also be possessed and controlled by ghosts.
The maximum amount of vines a plant can have at one time
playable_plant
Whether or not this plant is ghost possessable
vine_grab_distance
How far away a plant can attach a vine to something
vines
A list of all the plant's vines
Proc Details
humanize_plant
Sets a ghost to control the plant if the plant is eligible
+
Asks the interacting ghost if they would like to control the plant.
+If they answer yes, and another ghost hasn't taken control, sets the ghost to control the plant.
+Arguments:
+
+
mob/user - The ghost to possibly control the plant
+
pull_vines
Manages how the vines should affect the things they're attached to.
+
Pulls all movable targets of the vines closer to the plant
+If the target is on the same tile as the plant, destroy the vine
+Removes any QDELETED vines from the vines list.
remove_vine
Removes a vine from the list.
+
Removes the vine from our list.
+Called specifically when the vine is about to be destroyed, so we don't have any null references.
+Arguments:
+
+
datum/beam/vine - The vine to be removed from the list.
+
\ No newline at end of file
diff --git a/mob/living/simple_animal/jacq.html b/mob/living/simple_animal/jacq.html
new file mode 100644
index 000000000000..a4e82b9f66da
--- /dev/null
+++ b/mob/living/simple_animal/jacq.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/jacq - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/mob/living/simple_animal/mouse.html b/mob/living/simple_animal/mouse.html
new file mode 100644
index 000000000000..779c06c84955
--- /dev/null
+++ b/mob/living/simple_animal/mouse.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/mouse - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Spawns a new regal rat, says some good jazz, and if sentient, transfers the relivant mind.
Proc Details
be_fruitful
Checks the mouse cap, if it's above the cap, doesn't spawn a mouse. If below, spawns a mouse and adds it to cheeserats.
evolve
Spawns a new regal rat, says some good jazz, and if sentient, transfers the relivant mind.
\ No newline at end of file
diff --git a/mob/living/simple_animal/parrot.html b/mob/living/simple_animal/parrot.html
new file mode 100644
index 000000000000..70e130cbb251
--- /dev/null
+++ b/mob/living/simple_animal/parrot.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/parrot - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/mob/living/simple_animal/slime.html b/mob/living/simple_animal/slime.html
new file mode 100644
index 000000000000..4f677d4ea6fe
--- /dev/null
+++ b/mob/living/simple_animal/slime.html
@@ -0,0 +1 @@
+/mob/living/simple_animal/slime - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/modular_citadel.html b/modular_citadel.html
new file mode 100644
index 000000000000..ebe8f280249c
--- /dev/null
+++ b/modular_citadel.html
@@ -0,0 +1,3 @@
+modular_citadel/README.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
modular_citadel/README.md
Hooray modularity!
+
Things that modify core files without directly touching said core files go here. This is similar to how Hippie handles things.
+This stops dreammaker from throwing errors and warnings if you try to compile these files while they're inside code/citadel/.
\ No newline at end of file
diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/handguns.html b/modular_citadel/code/modules/projectiles/guns/ballistic/handguns.html
new file mode 100644
index 000000000000..37b4651d3ff6
--- /dev/null
+++ b/modular_citadel/code/modules/projectiles/guns/ballistic/handguns.html
@@ -0,0 +1 @@
+modular_citadel/code/modules/projectiles/guns/ballistic/handguns.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.html b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.html
new file mode 100644
index 000000000000..5ee3ed3d4b26
--- /dev/null
+++ b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.html
@@ -0,0 +1,3 @@
+modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/spinfusor.html b/modular_citadel/code/modules/projectiles/guns/ballistic/spinfusor.html
new file mode 100644
index 000000000000..6986a0597718
--- /dev/null
+++ b/modular_citadel/code/modules/projectiles/guns/ballistic/spinfusor.html
@@ -0,0 +1 @@
+modular_citadel/code/modules/projectiles/guns/ballistic/spinfusor.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.html b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.html
new file mode 100644
index 000000000000..230d0315d4ba
--- /dev/null
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.html
@@ -0,0 +1 @@
+modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
pain emote sound ported from https://gitlab.com/cmdevs/colonial-warfare```
+
\ No newline at end of file
diff --git a/modular_sand/code/controllers/configuration/entries/sandstorm_balance.html b/modular_sand/code/controllers/configuration/entries/sandstorm_balance.html
new file mode 100644
index 000000000000..a42786974ec1
--- /dev/null
+++ b/modular_sand/code/controllers/configuration/entries/sandstorm_balance.html
@@ -0,0 +1 @@
+modular_sand/code/controllers/configuration/entries/sandstorm_balance.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_sand/code/datums/components/container_item/container_item.html b/modular_sand/code/datums/components/container_item/container_item.html
new file mode 100644
index 000000000000..664371b6b5b8
--- /dev/null
+++ b/modular_sand/code/datums/components/container_item/container_item.html
@@ -0,0 +1 @@
+modular_sand/code/datums/components/container_item/container_item.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Container item, an item which can be stored by specialized containers.
\ No newline at end of file
diff --git a/modular_sand/code/datums/components/container_item/tank_holder.html b/modular_sand/code/datums/components/container_item/tank_holder.html
new file mode 100644
index 000000000000..68351c995c23
--- /dev/null
+++ b/modular_sand/code/datums/components/container_item/tank_holder.html
@@ -0,0 +1 @@
+modular_sand/code/datums/components/container_item/tank_holder.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Tank holder item - Added to an object which can be added to a tank holder.
\ No newline at end of file
diff --git a/modular_sand/code/datums/components/interaction_menu_granter.html b/modular_sand/code/datums/components/interaction_menu_granter.html
new file mode 100644
index 000000000000..a253a8dbec6a
--- /dev/null
+++ b/modular_sand/code/datums/components/interaction_menu_granter.html
@@ -0,0 +1 @@
+modular_sand/code/datums/components/interaction_menu_granter.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
The menu itself, only var is target which is the mob you are interacting with
\ No newline at end of file
diff --git a/modular_sand/code/datums/interactions/_interaction.html b/modular_sand/code/datums/interactions/_interaction.html
new file mode 100644
index 000000000000..1f1eb70efce7
--- /dev/null
+++ b/modular_sand/code/datums/interactions/_interaction.html
@@ -0,0 +1 @@
+modular_sand/code/datums/interactions/_interaction.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_sand/code/game/mecha/mecha_parts.html b/modular_sand/code/game/mecha/mecha_parts.html
new file mode 100644
index 000000000000..5badae5b786c
--- /dev/null
+++ b/modular_sand/code/game/mecha/mecha_parts.html
@@ -0,0 +1 @@
+modular_sand/code/game/mecha/mecha_parts.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_sand/code/game/objects/items/fleshlight.html b/modular_sand/code/game/objects/items/fleshlight.html
new file mode 100644
index 000000000000..c9c7c726b279
--- /dev/null
+++ b/modular_sand/code/game/objects/items/fleshlight.html
@@ -0,0 +1,3 @@
+modular_sand/code/game/objects/items/fleshlight.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Humbley request this doesnt get ported to other code bases, we strive to make things unique on our server and we dont have a lot of coders
+but if you absolutely must. please give us some credit~ <3
+made by quotefox and heavily modified by SandPoot
Wear it, cannot be worn if not pointing to the bits you have.
\ No newline at end of file
diff --git a/modular_sand/code/game/objects/items/plushes.html b/modular_sand/code/game/objects/items/plushes.html
new file mode 100644
index 000000000000..c8c6af129425
--- /dev/null
+++ b/modular_sand/code/game/objects/items/plushes.html
@@ -0,0 +1 @@
+modular_sand/code/game/objects/items/plushes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_sand/code/game/objects/structures/ghost_role_spawners.html b/modular_sand/code/game/objects/structures/ghost_role_spawners.html
new file mode 100644
index 000000000000..38656c96c229
--- /dev/null
+++ b/modular_sand/code/game/objects/structures/ghost_role_spawners.html
@@ -0,0 +1 @@
+modular_sand/code/game/objects/structures/ghost_role_spawners.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_sand/code/game/objects/structures/tank_holder.html b/modular_sand/code/game/objects/structures/tank_holder.html
new file mode 100644
index 000000000000..76dc31400cf3
--- /dev/null
+++ b/modular_sand/code/game/objects/structures/tank_holder.html
@@ -0,0 +1 @@
+modular_sand/code/game/objects/structures/tank_holder.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/candy.html b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/candy.html
new file mode 100644
index 000000000000..970b20c4a117
--- /dev/null
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/candy.html
@@ -0,0 +1,6 @@
+modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/candy.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Kind of like bubblegum's rebellious teenage son/daughter.
+Has 4 attacks.
+Charge - Charges at it's target.
+Bloody Trap - Traps it's target between some walls, and then charges at them.
+Meat Shield - Knockbacks all targets in the 3 tiles he faces, and then creates a wall.
+Knockdown - Deals damage and knockbacks all targets in a 2 tile radius.
\ No newline at end of file
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/drakeling.html b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/drakeling.html
new file mode 100644
index 000000000000..499780d09cfd
--- /dev/null
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/drakeling.html
@@ -0,0 +1,2 @@
+modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/drakeling.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/fanaticminer.html b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/fanaticminer.html
new file mode 100644
index 000000000000..a347b96c1970
--- /dev/null
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/fanaticminer.html
@@ -0,0 +1,2 @@
+modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/fanaticminer.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Kind of like BD miner's son trying to impress their dad.
+Has four attacks.
\ No newline at end of file
diff --git a/modular_sand/code/modules/reagents/chemistry/reagents.html b/modular_sand/code/modules/reagents/chemistry/reagents.html
new file mode 100644
index 000000000000..e651a66cebdd
--- /dev/null
+++ b/modular_sand/code/modules/reagents/chemistry/reagents.html
@@ -0,0 +1 @@
+modular_sand/code/modules/reagents/chemistry/reagents.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Don't blame me if they have negative thirst, admeme.
\ No newline at end of file
diff --git a/modular_sand/code/modules/research/designs/mechfabricator_designs.html b/modular_sand/code/modules/research/designs/mechfabricator_designs.html
new file mode 100644
index 000000000000..fc0f81eba33f
--- /dev/null
+++ b/modular_sand/code/modules/research/designs/mechfabricator_designs.html
@@ -0,0 +1 @@
+modular_sand/code/modules/research/designs/mechfabricator_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_sand/code/modules/research/designs/medical_designs.html b/modular_sand/code/modules/research/designs/medical_designs.html
new file mode 100644
index 000000000000..7e0d831e7d45
--- /dev/null
+++ b/modular_sand/code/modules/research/designs/medical_designs.html
@@ -0,0 +1 @@
+modular_sand/code/modules/research/designs/medical_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_sand/code/modules/research/designs/telecomms_designs.html b/modular_sand/code/modules/research/designs/telecomms_designs.html
new file mode 100644
index 000000000000..916ade15d375
--- /dev/null
+++ b/modular_sand/code/modules/research/designs/telecomms_designs.html
@@ -0,0 +1 @@
+modular_sand/code/modules/research/designs/telecomms_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_sand/code/modules/telescience/telepad.html b/modular_sand/code/modules/telescience/telepad.html
new file mode 100644
index 000000000000..2973d22faa2b
--- /dev/null
+++ b/modular_sand/code/modules/telescience/telepad.html
@@ -0,0 +1 @@
+modular_sand/code/modules/telescience/telepad.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_sand/icons/mob/cyborg/Drakeborg-licensing.html b/modular_sand/icons/mob/cyborg/Drakeborg-licensing.html
new file mode 100644
index 000000000000..393cdb2e0f1e
--- /dev/null
+++ b/modular_sand/icons/mob/cyborg/Drakeborg-licensing.html
@@ -0,0 +1,70 @@
+modular_sand/icons/mob/cyborg/Drakeborg-licensing.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
Drakeborg & drakeplushies are created by deviantart.com/mizartz
+
+https://creativecommons.org/licenses/by-nc-sa/3.0/
+Attribution-NonCommercial-ShareAlike 3.0 Unported
+
+CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.
+License
+THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
+
+BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
+
+1. Definitions
+
+"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
+"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(g) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.
+"Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
+"License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, Noncommercial, ShareAlike.
+"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
+"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.
+"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
+"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
+"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
+"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.
+2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.
+
+3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:
+
+to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
+to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
+to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
+to Distribute and Publicly Perform Adaptations.
+The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights described in Section 4(e).
+
+4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
+
+You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(d), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(d), as requested.
+You may Distribute or Publicly Perform an Adaptation only under: (i) the terms of this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-NonCommercial-ShareAlike 3.0 US) ("Applicable License"). You must include a copy of, or the URI, for Applicable License with every copy of each Adaptation You Distribute or Publicly Perform. You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License. You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License.
+You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in con-nection with the exchange of copyrighted works.
+If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and, (iv) consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(d) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
+For the avoidance of doubt:
+
+Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
+Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(c) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and,
+Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(c).
+Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.
+5. Representations, Warranties and Disclaimer
+
+UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING AND TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THIS EXCLUSION MAY NOT APPLY TO YOU.
+
+6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. Termination
+
+This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
+Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.
+8. Miscellaneous
+
+Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
+Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
+If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
+This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
+The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.
+Creative Commons Notice
+Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor.
+
+Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative Commons does not authorize the use by either party of the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark restriction does not form part of this License.
+
+Creative Commons may be contacted at https://creativecommons.org/.```
+
\ No newline at end of file
diff --git a/modular_sand/icons/obj/license.html b/modular_sand/icons/obj/license.html
new file mode 100644
index 000000000000..1e42ae1fab68
--- /dev/null
+++ b/modular_sand/icons/obj/license.html
@@ -0,0 +1,4 @@
+modular_sand/icons/obj/license.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
modular_sand/icons/obj/license.txt
modular_sand/icons/obj/plushies.dmi's icon state of secdrake and meddrake by Mizartz. It has been licensed under the CC BY-NC-SA 3.0 license.
+
+CC BY-NC-SA 3.0 https://creativecommons.org/licenses/by-nc-sa/3.0/```
+
\ No newline at end of file
diff --git a/modular_splurt.html b/modular_splurt.html
new file mode 100644
index 000000000000..c3969428afa4
--- /dev/null
+++ b/modular_splurt.html
@@ -0,0 +1,2 @@
+modular_splurt/README.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
About modularizing defines
Since #define clauses can't be properly modularized and need to be loaded first than the rest of the code for it to catch them, the modular_splurt/code/_DEFINES/ folder has been deleted and all of its contents have been moved to code\__SPLURTCODE\DEFINES
+
Please use this folder the same way you'd use the _DEFINES folder once found inside this directory
\ No newline at end of file
diff --git a/modular_splurt/code/__HELPERS/spawns.html b/modular_splurt/code/__HELPERS/spawns.html
new file mode 100644
index 000000000000..c783ce39e2a3
--- /dev/null
+++ b/modular_splurt/code/__HELPERS/spawns.html
@@ -0,0 +1 @@
+modular_splurt/code/__HELPERS/spawns.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
One proc for easy spawning of pods in the code to drop off items before whizzling (please don't proc call this in game, it will destroy you)
\ No newline at end of file
diff --git a/modular_splurt/code/controllers/subsystem/discord.html b/modular_splurt/code/controllers/subsystem/discord.html
new file mode 100644
index 000000000000..b2cd48b8fede
--- /dev/null
+++ b/modular_splurt/code/controllers/subsystem/discord.html
@@ -0,0 +1 @@
+modular_splurt/code/controllers/subsystem/discord.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_splurt/code/datums/interactions/lewd/lewd_datums.html b/modular_splurt/code/datums/interactions/lewd/lewd_datums.html
new file mode 100644
index 000000000000..dd8f30f065d1
--- /dev/null
+++ b/modular_splurt/code/datums/interactions/lewd/lewd_datums.html
@@ -0,0 +1 @@
+modular_splurt/code/datums/interactions/lewd/lewd_datums.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_splurt/code/datums/status_effects/pregnancy.html b/modular_splurt/code/datums/status_effects/pregnancy.html
new file mode 100644
index 000000000000..957ec0aa29f9
--- /dev/null
+++ b/modular_splurt/code/datums/status_effects/pregnancy.html
@@ -0,0 +1 @@
+modular_splurt/code/datums/status_effects/pregnancy.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Who is the liar but he who denies that Jesus is the Christ? This is the antichrist, he who denies the Father and the Son.
\ No newline at end of file
diff --git a/modular_splurt/code/game/area/areas/shuttles.html b/modular_splurt/code/game/area/areas/shuttles.html
new file mode 100644
index 000000000000..0cfaa9b02729
--- /dev/null
+++ b/modular_splurt/code/game/area/areas/shuttles.html
@@ -0,0 +1 @@
+modular_splurt/code/game/area/areas/shuttles.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_splurt/code/game/objects/items/lewd_items/leash.html b/modular_splurt/code/game/objects/items/lewd_items/leash.html
new file mode 100644
index 000000000000..f6a80b6f247f
--- /dev/null
+++ b/modular_splurt/code/game/objects/items/lewd_items/leash.html
@@ -0,0 +1 @@
+modular_splurt/code/game/objects/items/lewd_items/leash.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_splurt/code/game/objects/items/robot/robot_items.html b/modular_splurt/code/game/objects/items/robot/robot_items.html
new file mode 100644
index 000000000000..58af75a0a641
--- /dev/null
+++ b/modular_splurt/code/game/objects/items/robot/robot_items.html
@@ -0,0 +1 @@
+modular_splurt/code/game/objects/items/robot/robot_items.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/modular_splurt/code/game/objects/structures/bed_chairs/sofa.html b/modular_splurt/code/game/objects/structures/bed_chairs/sofa.html
new file mode 100644
index 000000000000..8aa9e6966221
--- /dev/null
+++ b/modular_splurt/code/game/objects/structures/bed_chairs/sofa.html
@@ -0,0 +1 @@
+modular_splurt/code/game/objects/structures/bed_chairs/sofa.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
\ No newline at end of file
diff --git a/modular_splurt/code/game/objects/structures/cannons/cannon.html b/modular_splurt/code/game/objects/structures/cannons/cannon.html
new file mode 100644
index 000000000000..10948b4a7cf4
--- /dev/null
+++ b/modular_splurt/code/game/objects/structures/cannons/cannon.html
@@ -0,0 +1 @@
+modular_splurt/code/game/objects/structures/cannons/cannon.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
how much projectile damage is lost when using a bad fuel
BAD_FUEL_EXPLODE_PROBABILTY
extra chance it explodes upon firing
\ No newline at end of file
diff --git a/modular_splurt/code/modules/antagonists/_common/antag_spawner.html b/modular_splurt/code/modules/antagonists/_common/antag_spawner.html
new file mode 100644
index 000000000000..3beec3267dcf
--- /dev/null
+++ b/modular_splurt/code/modules/antagonists/_common/antag_spawner.html
@@ -0,0 +1 @@
+modular_splurt/code/modules/antagonists/_common/antag_spawner.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_splurt/code/modules/clothing/lewd_clothing/collar/kink_collars.html b/modular_splurt/code/modules/clothing/lewd_clothing/collar/kink_collars.html
new file mode 100644
index 000000000000..5a9eb5a64f71
--- /dev/null
+++ b/modular_splurt/code/modules/clothing/lewd_clothing/collar/kink_collars.html
@@ -0,0 +1 @@
+modular_splurt/code/modules/clothing/lewd_clothing/collar/kink_collars.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_splurt/code/modules/clothing/lewd_clothing/foot/lewd_shoes.html b/modular_splurt/code/modules/clothing/lewd_clothing/foot/lewd_shoes.html
new file mode 100644
index 000000000000..da95fcbfd614
--- /dev/null
+++ b/modular_splurt/code/modules/clothing/lewd_clothing/foot/lewd_shoes.html
@@ -0,0 +1 @@
+modular_splurt/code/modules/clothing/lewd_clothing/foot/lewd_shoes.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_splurt/code/modules/clothing/misc/body_camera.html b/modular_splurt/code/modules/clothing/misc/body_camera.html
new file mode 100644
index 000000000000..f3579c9befa5
--- /dev/null
+++ b/modular_splurt/code/modules/clothing/misc/body_camera.html
@@ -0,0 +1 @@
+modular_splurt/code/modules/clothing/misc/body_camera.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_splurt/code/modules/clothing/suits/cloaks.html b/modular_splurt/code/modules/clothing/suits/cloaks.html
new file mode 100644
index 000000000000..ce10c499035e
--- /dev/null
+++ b/modular_splurt/code/modules/clothing/suits/cloaks.html
@@ -0,0 +1 @@
+modular_splurt/code/modules/clothing/suits/cloaks.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_splurt/code/modules/discord/discord_link_record.html b/modular_splurt/code/modules/discord/discord_link_record.html
new file mode 100644
index 000000000000..fb84b965b49f
--- /dev/null
+++ b/modular_splurt/code/modules/discord/discord_link_record.html
@@ -0,0 +1 @@
+modular_splurt/code/modules/discord/discord_link_record.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
Represents a record from the discord link table in a nicer format
\ No newline at end of file
diff --git a/modular_splurt/code/modules/jobs/job_types/blueshield.html b/modular_splurt/code/modules/jobs/job_types/blueshield.html
new file mode 100644
index 000000000000..1548c95eb7ed
--- /dev/null
+++ b/modular_splurt/code/modules/jobs/job_types/blueshield.html
@@ -0,0 +1 @@
+modular_splurt/code/modules/jobs/job_types/blueshield.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_splurt/code/modules/mapping/modular_map_loader.html b/modular_splurt/code/modules/mapping/modular_map_loader.html
new file mode 100644
index 000000000000..64fdc002be08
--- /dev/null
+++ b/modular_splurt/code/modules/mapping/modular_map_loader.html
@@ -0,0 +1,89 @@
+modular_splurt/code/modules/mapping/modular_map_loader/README.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
Modular Map Loader
Concept
+
Modular map loading is a system to allow maps to be generated with random variants by selecting from a set of pre-made modules. The system is designed to be as simple as possible for mappers to use, with a minimum of interaction with the code required.
+
Implementation
/obj/modular_map_root
+
This root object handled picking and loading in map modules. It has two variables, and one proc.
+
+
var/config_file - A string, points to a TOML configuration file, which is used to hold the information necessary to pull the correct map files and place them on the correct roots. This will be the same for all roots on a map.
+
var/key - A string, used to pull a list of .dmm files from the configuration file.
+
load_map() - Called asynchronously in the root's Initialize(). This proc creates a new instance of /datum/map_template/map_module, ingests the configuration file config_file points to, and picks a .dmm file path which maps to the root's key, by picking a random filename from among those which key maps to, and appending it to a folder path. This file path is passed into the map templace instance's load(), and the template takes over.
+
+
INITIALIZE_IMMEDIATE is used to ensure the ruins are loaded at the right time to avoid runtime errors related to lighting.
+
/datum/map_template/map_module
+
This map templace subtype is responsible for loading in the module, it has two variables and two relevant procs.
+
+
var/x_offset and var/y_offset - Integers, used to store the offsets used to correctly align the module when it is loaded.
+
load() - Extends the functionality of the general map template's load() to allow a map to be specified at runtime. This means preload_size() must be called again here as the template's map file has been changed. The origin turf for the map to be loaded from is set using the offsets, and the map is loaded as per the parent.
+
preload_size() - Extends the functionality of the general map template's preload_size() to run the discover_offset proc, calculating the offset of /obj/modular_map_connector and setting the offset variables accordingly.
+
+
/obj/modular_map_connector
+
This object is used only to determine the offsets to be used on loading, and has no other functionality.
+
TOML configuration
+
This TOML file is used to map between a list of .dmm files and a string key. The file consists of two parts. The first is a line
+
directory = "_maps/etc/"
+
+
which points at a folder containing the .dmm files of the modules used in the map. The second is a series of tables
which contains the mapping between the key "example" and the list of filenames ["example_1.dmm", "example_2.dmm"].
+
/datum/unit_test/modular_map_loader
+
This is the unit test for modular map loading. It performs two checks on every subtype of /obj/modular_map_root. First it checks if the file config_file points at, and if it does not the test is failed because the file does not exist. If it does exist, it then attempts to read the file, if this is null it means the fild is not valid TOML, and the test is failed because the TOML file is invalid.
+
How-To
+
This section will cover the basics of how to use map modules as a mapper. If you want a concrete example to look at, the space ruin _maps/RandomRuins/SpaceRuins/DJstation.dmm and its associated code, configuration and modules employ all the techniques covered in this tutorial.
+
The Main Map
+
First we need to create a map, as we usually would. Let's say we want to create a new space ruin foobar.dmm, and we put it in the appropriate folder as usual, _maps/RandomRuins/SpaceRuins/foobar.dmm. We now need to create three more things.
+
+
code/modules/ruins/spaceruin_code/foobar.dm - A code file like would be used to store any code specific to this map.
+
strings/modular_maps/foobar.toml- A configuration file, this will be looked at in more detail later.
+
_maps/RandomRuins/SpaceRuins/foobar/ - A new subfolder, which is where we will put the .dmm files for the modules.
+
+
In code/modules/ruins/spaceruin_code/foobar.dm we need to add a small piece of code to define a new modular map root type for our map, which should look like this
This means when we place root objects /obj/modular_map_root in our new map, we use this subtype that points to the correct configuration file.
+
When creating our main map, we place one of these roots in the location we want to generate a module at. Typically this would be placed at a natural landmark, such as a doorway. We then edit the varaibles of the placed root object, and set the key var to some string, let's use key = vault. Make the rest of the map, ensuring that every root you want to use a unique set of modules has a unique key.
+
Module Maps
+
Now we need to make the modules to be placed on our roots. These will be saved in the folder we created earlier, _maps/RandomRuins/SpaceRuins/foobar/. Modules do not have to be the same size, so long as all modules will fit properly on the root without running into other parts of the map.
+
When making a module, you need to include a connector object /obj/modular_map_connector. When the module is loaded, it will be offset so this connector is placed on top of the root on the main map.
+
We will be making the first variant of our vault module, so we save this as vault_1.dmm, following the format [key]_[number].dmm. Keep doing this until all your modules have been made.
+
If you wish, you can also place another root on a module, if for some reason that module's position is dependent on the current one. IF you do this, make sure you've placed a root with the same key on every variant of the current module (unless you only want it to appear on certain varaints of this one.)
+
Configuration
+
Now we go back to our configuration file strings/modular_maps/foobar.toml. Say we ended up using three different sets of modules in our map, vault, airlock and bathroom, each of which have two variants. We want our .toml file to look like this
directory = "_maps/RandomRuins/SpaceRuins/foobar/" points to the folder where our modules are stored.
+
[rooms.vault] identifies the following line as being the modules for a root with key = vault.
+
modules = ["vault_1.dmm", "vault_2.dmm"] specifies which map files within the folder are to be associated with this key.
+
Once this configuration is done, the map should be fully functional. Compile and run, place your map somewhere, and continue doing this until you have satisfied yourself that everything looks how you expected it to. Remember to do everything else you need to do when adding any new ruin, or whatever kind of map you made.
+
Common Mistakes
+
+
My map has modules that didn't load!
+
+
Check your configuration is correct. Do the filenames given for the problem root match the names of the map files? Is the key specified in the configuration file the same as the one on the root in the map?
+
+
A module is loading in the wrong location!
+
+
Check the positioning of the connector is correct, and that only one is placed on the module.
+
+
My ruin is spawning too close to or overlapping with something!
+
+
Make sure your main map is large enough to fully contain the most expansive variation that can possibly be chosen.
+
+
Parts of my map are overlapping with each other!
+
+
Make sure modules placed adjacent or close to each other have no combination of variants which can overlap with each other, this may take some trial and error in complicated cases.
+
+
My map still isn't working and I don't know what's wrong!
+
+
Ping @Maintainer in our coding channels if you need any help or find any problems
\ No newline at end of file
diff --git a/modular_splurt/code/modules/mob/dead/new_player/sprite_accesories/body_markings.html b/modular_splurt/code/modules/mob/dead/new_player/sprite_accesories/body_markings.html
new file mode 100644
index 000000000000..4ca42867dbd4
--- /dev/null
+++ b/modular_splurt/code/modules/mob/dead/new_player/sprite_accesories/body_markings.html
@@ -0,0 +1 @@
+modular_splurt/code/modules/mob/dead/new_player/sprite_accesories/body_markings.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_splurt/code/modules/mob/living/silicon/robot/robot_modules.html b/modular_splurt/code/modules/mob/living/silicon/robot/robot_modules.html
new file mode 100644
index 000000000000..e3b919f0a0cc
--- /dev/null
+++ b/modular_splurt/code/modules/mob/living/silicon/robot/robot_modules.html
@@ -0,0 +1 @@
+modular_splurt/code/modules/mob/living/silicon/robot/robot_modules.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_splurt/code/modules/research/designs/mechfabricator_designs.html b/modular_splurt/code/modules/research/designs/mechfabricator_designs.html
new file mode 100644
index 000000000000..96b7ff47c15a
--- /dev/null
+++ b/modular_splurt/code/modules/research/designs/mechfabricator_designs.html
@@ -0,0 +1 @@
+modular_splurt/code/modules/research/designs/mechfabricator_designs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_splurt/code/modules/vehicles/mecha/combat/savannah_ivanov.html b/modular_splurt/code/modules/vehicles/mecha/combat/savannah_ivanov.html
new file mode 100644
index 000000000000..54d6d3dc25c4
--- /dev/null
+++ b/modular_splurt/code/modules/vehicles/mecha/combat/savannah_ivanov.html
@@ -0,0 +1 @@
+modular_splurt/code/modules/vehicles/mecha/combat/savannah_ivanov.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Define Details
a simple indicator of where the skyfall is going to land.
Define Details
SKYFALL_CHARGELEVEL_LAUNCH
enough charge level to take off, basically done charging
SKYFALL_SINGLE_CHARGE_TIME
how much time between charge_level going up by 1
TOTAL_SKYFALL_LEAP_TIME
how much time you're in the air
\ No newline at end of file
diff --git a/modular_splurt/code/modules/vehicles/mecha/mecha_parts.html b/modular_splurt/code/modules/vehicles/mecha/mecha_parts.html
new file mode 100644
index 000000000000..c5f615336922
--- /dev/null
+++ b/modular_splurt/code/modules/vehicles/mecha/mecha_parts.html
@@ -0,0 +1 @@
+modular_splurt/code/modules/vehicles/mecha/mecha_parts.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/modular_splurt/sound/voice/catpeople/credits.html b/modular_splurt/sound/voice/catpeople/credits.html
new file mode 100644
index 000000000000..f5537d65ab8f
--- /dev/null
+++ b/modular_splurt/sound/voice/catpeople/credits.html
@@ -0,0 +1,2 @@
+modular_splurt/sound/voice/catpeople/credits.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
modular_splurt/sound/voice/catpeople/credits.txt
Sound Files ported from https://github.com/Nyanotrasen/Nyanotrasen/ created by Elijahrane```
+
\ No newline at end of file
diff --git a/obj.html b/obj.html
new file mode 100644
index 000000000000..9bbcbf9310c0
--- /dev/null
+++ b/obj.html
@@ -0,0 +1,9 @@
+/obj - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
If this attacks a human with no wound armor on the affected body part, add this to the wound mod. Some attacks may be significantly worse at wounding if there's even a slight layer of armor to absorb some of it vs bare flesh
If this attacks a human with no wound armor on the affected body part, add this to the wound mod. Some attacks may be significantly worse at wounding if there's even a slight layer of armor to absorb some of it vs bare flesh
current_skin
The item reskin
damage_deflection
Damage under this value will be completely ignored
reskin_binding
How to bring up the reskinning menu
unique_reskin
List of options to reskin.
wound_bonus
How good a given object is at causing wounds on carbons. Higher values equal better shots at creating serious wounds.
Proc Details
CanAStarPass
This proc is used for telling whether something can pass by this object in a given direction, for use by the pathfinding system.
+
Trying to generate one long path across the station will call this proc on every single object on every single tile that we're seeing if we can move through, likely
+multiple times per tile since we're likely checking if we can access said tile from multiple directions, so keep these as lightweight as possible.
+
Arguments:
+
+
ID- An ID card representing what access we have (and thus if we can open things like airlocks or windows to pass through them). The ID card's physical location does not matter, just the reference
+
to_dir- What direction we're trying to move in, relevant for things like directional windows that only block movement in certain directions
+
caller- The movable we're checking pass flags for, if we're making any such checks
+
fire_act
FIRE
reskin_obj
Do you want to make overrides, of course you do! Will be called if an object was reskinned successfully
setAnchored
@depricated DO NOT USE
\ No newline at end of file
diff --git a/obj/docking_port.html b/obj/docking_port.html
new file mode 100644
index 000000000000..cf03ac7a41bb
--- /dev/null
+++ b/obj/docking_port.html
@@ -0,0 +1,7 @@
+/obj/docking_port - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
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.
position relative to covered area, parallel to dir. You shouldn't modify this for mobile dockingports, set automatically.
dir
Common standard is for this to point -away- from the dockingport door, ie towards the ship
dwidth
position relative to covered area, perpendicular to dir. You shouldn't modify this for mobile dockingports, set automatically.
height
size of covered area, parallel to dir. You shouldn't modify this for mobile dockingports, set automatically.
hidden
are we invisible to shuttle navigation computers?
port_destinations
Possible destinations
registered
are we registered in SSshuttles?
shuttle_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.
width
size of covered area, perpendicular to dir. You shouldn't modify this for mobile dockingports, set automatically.
Proc Details
register
register to SSshuttles
return_coords
returns a list(x0,y0, x1,y1) where points 0 and 1 are bounding corners of the projected rectangle
return_ordered_turfs
returns turfs within our projected rectangle in a specific order.this ensures that turfs are copied over in the same order, regardless of any rotation
return_turfs
returns turfs within our projected rectangle in no particular order
unregister
unregister from SSshuttles
\ No newline at end of file
diff --git a/obj/docking_port/mobile.html b/obj/docking_port/mobile.html
new file mode 100644
index 000000000000..594e61723c67
--- /dev/null
+++ b/obj/docking_port/mobile.html
@@ -0,0 +1 @@
+/obj/docking_port/mobile - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
This is the main proc. It instantly moves our mobile port to stationary port new_dock.
Var Details
callTime
time spent in transit (deciseconds). Should not be lower then 10 seconds without editing the animation of the hyperspace ripples.
can_move_docking_ports
if this shuttle can move docking ports other than the one it is docked at
ignitionTime
time spent "starting the engines". Also rate limits how often we try to reserve transit space if its ever full of transiting shuttles.
mode
current shuttle mode
movement_force
Whether or not you want your ship to knock people down, and also whether it will throw them several tiles upon launching.
parallax_speed
parallax speed in seconds per loop
port_direction
relative direction of the docking port from the front of the shuttle. NORTH is towards front, EAST would be starboard side, WEST port, etc.
prearrivalTime
time spent after transit 'landing' before actually arriving
preferred_direction
The direction the shuttle prefers to travel in, ie what direction the animation will cause it to appear to be traveling in
rechargeTime
time spent after arrival before being able to begin ignition
timer
used as a timer (if you want time left to complete move, use timeLeft proc)
Proc Details
beforeShuttleMove
Misc move procs
get_status_text_tgui
Gets shuttle location status in a form of string for tgui interfaces
initiate_docking
This is the main proc. It instantly moves our mobile port to stationary port new_dock.
\ No newline at end of file
diff --git a/obj/docking_port/stationary/picked.html b/obj/docking_port/stationary/picked.html
new file mode 100644
index 000000000000..d646536169af
--- /dev/null
+++ b/obj/docking_port/stationary/picked.html
@@ -0,0 +1 @@
+/obj/docking_port/stationary/picked - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Holds a list of map name strings for the port to pick from
Var Details
shuttlekeys
Holds a list of map name strings for the port to pick from
\ No newline at end of file
diff --git a/obj/docking_port/stationary/random.html b/obj/docking_port/stationary/random.html
new file mode 100644
index 000000000000..bf2919aeeee0
--- /dev/null
+++ b/obj/docking_port/stationary/random.html
@@ -0,0 +1 @@
+/obj/docking_port/stationary/random - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Minimal distance from the map edge, setting this too low can result in shuttle landing on the edge and getting "sliced"
target_area
The area the pod tries to land at
\ No newline at end of file
diff --git a/obj/durand_shield.html b/obj/durand_shield.html
new file mode 100644
index 000000000000..270cb67364da
--- /dev/null
+++ b/obj/durand_shield.html
@@ -0,0 +1,17 @@
+/obj/durand_shield - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
durand_shield
Shield processing
+*An object to take the hit for us when using the Durand's defense mode.
+It is spawned in during the durand's initilization, and always stays on the same tile.
+Normally invisible, until defense mode is actvated. When the durand detects an attack that should be blocked, the
+attack is passed to the shield. The shield takes the damage, uses it to calculate charge cost, and then sets its
+own integrity back to max. Shield is automatically dropped if we run out of power or the user gets out.
Handles activating and deactivating the shield. This proc is called by a signal sent from the mech's action button
+and relayed by the mech itself. The "forced" variabe, signal_args[1], will skip the to-pilot text and is meant for when
+the shield is disabled by means other than the action button (like running out of power)
+Arguments:
Var Details
chassis
Our link back to the durand
switching
To keep track of things during the animation
Proc Details
activate
Handles activating and deactivating the shield. This proc is called by a signal sent from the mech's action button
+and relayed by the mech itself. The "forced" variabe, signal_args[1], will skip the to-pilot text and is meant for when
+the shield is disabled by means other than the action button (like running out of power)
+Arguments:
+
+
source: the shield
+
owner: mob that activated the shield
+
signal_args: whether it's forced
+
\ No newline at end of file
diff --git a/obj/effect/abstract/parry.html b/obj/effect/abstract/parry.html
new file mode 100644
index 000000000000..38c28b1b2d1c
--- /dev/null
+++ b/obj/effect/abstract/parry.html
@@ -0,0 +1 @@
+/obj/effect/abstract/parry - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/effect/anomaly.html b/obj/effect/anomaly.html
new file mode 100644
index 000000000000..58dfd4faf413
--- /dev/null
+++ b/obj/effect/anomaly.html
@@ -0,0 +1 @@
+/obj/effect/anomaly - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/effect/broken_illusion.html b/obj/effect/broken_illusion.html
new file mode 100644
index 000000000000..6c60f45563fd
--- /dev/null
+++ b/obj/effect/broken_illusion.html
@@ -0,0 +1 @@
+/obj/effect/broken_illusion - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/effect/decal/chempuff.html b/obj/effect/decal/chempuff.html
new file mode 100644
index 000000000000..a15206554dba
--- /dev/null
+++ b/obj/effect/decal/chempuff.html
@@ -0,0 +1 @@
+/obj/effect/decal/chempuff - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/effect/decal/cleanable.html b/obj/effect/decal/cleanable.html
new file mode 100644
index 000000000000..11f1f125625c
--- /dev/null
+++ b/obj/effect/decal/cleanable.html
@@ -0,0 +1,3 @@
+/obj/effect/decal/cleanable - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
A data list is passed into this.
+This should return null to skip saving, or the type of data to save. Type must be /cleanable.
Var Details
persistence_allow_stacking
Can we stack multiple in one tile?
persistent
Is this kind of cleanable decal persistent
wiped_by_floor_change
Are we deleted by turf changes?
Proc Details
PersistenceLoad
Loads from a data list.
PersistenceSave
A data list is passed into this.
+This should return null to skip saving, or the type of data to save. Type must be /cleanable.
\ No newline at end of file
diff --git a/obj/effect/decal/cleanable/conveyor_sorter.html b/obj/effect/decal/cleanable/conveyor_sorter.html
new file mode 100644
index 000000000000..94db62c1da65
--- /dev/null
+++ b/obj/effect/decal/cleanable/conveyor_sorter.html
@@ -0,0 +1 @@
+/obj/effect/decal/cleanable/conveyor_sorter - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
the parent conveyor sorter lister item, used for deletion
sorting_list
the list of items that will be sorted to the sorted direction
use_cooldown
To prevent spam
\ No newline at end of file
diff --git a/obj/effect/eldritch.html b/obj/effect/eldritch.html
new file mode 100644
index 000000000000..187a74045823
--- /dev/null
+++ b/obj/effect/eldritch.html
@@ -0,0 +1 @@
+/obj/effect/eldritch - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Used mainly for summoning ritual to prevent spamming the rune to create millions of monsters.
Var Details
is_in_use
Used mainly for summoning ritual to prevent spamming the rune to create millions of monsters.
\ No newline at end of file
diff --git a/obj/effect/landmark/start/hangover.html b/obj/effect/landmark/start/hangover.html
new file mode 100644
index 000000000000..641fffb39af3
--- /dev/null
+++ b/obj/effect/landmark/start/hangover.html
@@ -0,0 +1 @@
+/obj/effect/landmark/start/hangover - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Spawns the mob with some drugginess/drunkeness, and some disgust.
Var Details
debris
A list of everything this hangover spawn created
Proc Details
make_hungover
Spawns the mob with some drugginess/drunkeness, and some disgust.
\ No newline at end of file
diff --git a/obj/effect/landmark/stationroom.html b/obj/effect/landmark/stationroom.html
new file mode 100644
index 000000000000..b1314932f0b4
--- /dev/null
+++ b/obj/effect/landmark/stationroom.html
@@ -0,0 +1 @@
+/obj/effect/landmark/stationroom - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Whether or not we can choose templates that have already been chosen
Var Details
unique
Whether or not we can choose templates that have already been chosen
\ No newline at end of file
diff --git a/obj/effect/mapping_helpers/custom_icon.html b/obj/effect/mapping_helpers/custom_icon.html
new file mode 100644
index 000000000000..bdb871d327dd
--- /dev/null
+++ b/obj/effect/mapping_helpers/custom_icon.html
@@ -0,0 +1 @@
+/obj/effect/mapping_helpers/custom_icon - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
custom_icon
Fetches an external dmi and applies to the target object
This is the var tha will be set with the fetched icon. In case you want to set some secondary icon sheets like inhands and such.
Var Details
first_match_only
Will inject into all fitting the criteria if false, otherwise first found.
icon_url
This should return raw dmi in response to http get request. For example: "https://github.com/tgstation/SS13-sprites/raw/master/mob/medu.dmi?raw=true"
target_name
Will inject into atoms with this name.
target_type
Will inject into atoms of this type.
target_variable
This is the var tha will be set with the fetched icon. In case you want to set some secondary icon sheets like inhands and such.
\ No newline at end of file
diff --git a/obj/effect/mapping_helpers/network_builder.html b/obj/effect/mapping_helpers/network_builder.html
new file mode 100644
index 000000000000..794b6e075aa4
--- /dev/null
+++ b/obj/effect/mapping_helpers/network_builder.html
@@ -0,0 +1 @@
+/obj/effect/mapping_helpers/network_builder - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
How this works: On LateInitialize, detect all directions that this should be applicable to, and do what it needs to do, and then inform all network builders in said directions that it's been around since it won't be around afterwards.
Var Details
custom_spawned
set var to true to not del on lateload
network_directions
what directions we know connections are in
Proc Details
LateInitialize
How this works: On LateInitialize, detect all directions that this should be applicable to, and do what it needs to do, and then inform all network builders in said directions that it's been around since it won't be around afterwards.
\ No newline at end of file
diff --git a/obj/effect/mapping_helpers/network_builder/atmos_pipe.html b/obj/effect/mapping_helpers/network_builder/atmos_pipe.html
new file mode 100644
index 000000000000..c732de2fa2c1
--- /dev/null
+++ b/obj/effect/mapping_helpers/network_builder/atmos_pipe.html
@@ -0,0 +1 @@
+/obj/effect/mapping_helpers/network_builder/atmos_pipe - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Scans directions, sets network_directions to have every direction that we can link to. If there's another power cable builder detected, make sure they know we're here by adding us to their cable directions list before we're deleted.
Var Details
pipe_color
Color to set our pipes to
pipe_layer
Layer to put our pipes on
visible_pipes
Whether or not pipes we make are visible
Proc Details
build_network
Directions should only ever have cardinals.
scan_directions
Scans directions, sets network_directions to have every direction that we can link to. If there's another power cable builder detected, make sure they know we're here by adding us to their cable directions list before we're deleted.
\ No newline at end of file
diff --git a/obj/effect/mapping_helpers/network_builder/power_cable.html b/obj/effect/mapping_helpers/network_builder/power_cable.html
new file mode 100644
index 000000000000..8732cff45c23
--- /dev/null
+++ b/obj/effect/mapping_helpers/network_builder/power_cable.html
@@ -0,0 +1 @@
+/obj/effect/mapping_helpers/network_builder/power_cable - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
power_cable
Automatically links on init to power cables and other cable builder helpers. Only supports cardinals.
Scans directions, sets network_directions to have every direction that we can link to. If there's another power cable builder detected, make sure they know we're here by adding us to their cable directions list before we're deleted.
Var Details
cable_color
cable color as from GLOB.cable_colors
knot
Whether or not we forcefully make a knot
Proc Details
build_network
Directions should only ever have cardinals.
scan_directions
Scans directions, sets network_directions to have every direction that we can link to. If there's another power cable builder detected, make sure they know we're here by adding us to their cable directions list before we're deleted.
\ No newline at end of file
diff --git a/obj/effect/mapping_helpers/trait_injector.html b/obj/effect/mapping_helpers/trait_injector.html
new file mode 100644
index 000000000000..0ab662bbc9ec
--- /dev/null
+++ b/obj/effect/mapping_helpers/trait_injector.html
@@ -0,0 +1 @@
+/obj/effect/mapping_helpers/trait_injector - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Name of the trait, in the lower-case text (NOT the upper-case define) form.
Var Details
first_match_only
Will inject into all fitting the criteria if false, otherwise first found.
target_name
Will inject into atoms with this name.
target_type
Will inject into atoms of this type.
trait_name
Name of the trait, in the lower-case text (NOT the upper-case define) form.
\ No newline at end of file
diff --git a/obj/effect/mine.html b/obj/effect/mine.html
new file mode 100644
index 000000000000..a6bfd275177c
--- /dev/null
+++ b/obj/effect/mine.html
@@ -0,0 +1 @@
+/obj/effect/mine - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
We manually check to see if we've been triggered in case multiple atoms cross us in the time between the mine being triggered and it actually deleting, to avoid a race condition with multiple detonations
Var Details
triggered
We manually check to see if we've been triggered in case multiple atoms cross us in the time between the mine being triggered and it actually deleting, to avoid a race condition with multiple detonations
\ No newline at end of file
diff --git a/obj/effect/mob_spawn.html b/obj/effect/mob_spawn.html
new file mode 100644
index 000000000000..32ce20c3f8e0
--- /dev/null
+++ b/obj/effect/mob_spawn.html
@@ -0,0 +1 @@
+/obj/effect/mob_spawn - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
override this to add special spawn conditions to a ghost role
Proc Details
allow_spawn
override this to add special spawn conditions to a ghost role
\ No newline at end of file
diff --git a/obj/effect/overlay/vis.html b/obj/effect/overlay/vis.html
new file mode 100644
index 000000000000..82a98524e9be
--- /dev/null
+++ b/obj/effect/overlay/vis.html
@@ -0,0 +1 @@
+/obj/effect/overlay/vis - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
When detected to be unused it gets set to world.time, after a while it gets removed
Var Details
cache_expiration
overlays which go unused for this amount of time get cleaned up
unused
When detected to be unused it gets set to world.time, after a while it gets removed
\ No newline at end of file
diff --git a/obj/effect/proc_holder/spell.html b/obj/effect/proc_holder/spell.html
new file mode 100644
index 000000000000..d46e631496da
--- /dev/null
+++ b/obj/effect/proc_holder/spell.html
@@ -0,0 +1,7 @@
+/obj/effect/proc_holder/spell - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
can_target: Checks if we are allowed to cast the spell on a target.
Proc Details
can_target
can_target: Checks if we are allowed to cast the spell on a target.
+
Arguments:
+
+
target The atom that is being targeted by the spell.
+
user The mob using the spell.
+
silent If the checks should not give any feedback messages.
+
\ No newline at end of file
diff --git a/obj/effect/proc_holder/spell/cone.html b/obj/effect/proc_holder/spell/cone.html
new file mode 100644
index 000000000000..71363bd775d0
--- /dev/null
+++ b/obj/effect/proc_holder/spell/cone.html
@@ -0,0 +1 @@
+/obj/effect/proc_holder/spell/cone - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
This proc deterimines how the spell will affect turfs.
Var Details
cone_levels
This controls how many levels the cone has, increase this value to make a bigger cone.
respect_density
This value determines if the cone penetrates walls.
Proc Details
calculate_cone_shape
This proc adjusts the cones width depending on the level.
cone_helper
This proc creates a list of turfs that are hit by the cone
do_cone_effects
This proc does obj, mob and turf cone effects on all targets in a list
do_mob_cone_effect
This proc deterimines how the spell will affect mobs.
do_obj_cone_effect
This proc deterimines how the spell will affect objects.
do_turf_cone_effect
This proc deterimines how the spell will affect turfs.
\ No newline at end of file
diff --git a/obj/effect/proc_holder/spell/pointed.html b/obj/effect/proc_holder/spell/pointed.html
new file mode 100644
index 000000000000..3889365ab574
--- /dev/null
+++ b/obj/effect/proc_holder/spell/pointed.html
@@ -0,0 +1,15 @@
+/obj/effect/proc_holder/spell/pointed - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
on_activation: What happens upon pointed spell deactivation.
Var Details
active_msg
Message showing to the spell owner upon activating pointed spell.
aim_assist
Variable dictating if the spell will use turf based aim assist
deactive_msg
Message showing to the spell owner upon deactivating pointed spell.
self_castable
Variable dictating if the user is allowed to cast a spell on himself.
Proc Details
intercept_check
intercept_check: Specific spell checks for InterceptClickOn() targets.
+
Arguments:
+
+
user The mob using the ranged spell via intercept.
+
target The atom that is being targeted by the spell via intercept.
+
silent If the checks should produce not any feedback messages for the user.
+
on_activation
on_activation: What happens upon pointed spell activation.
+
Arguments:
+
+
user The mob interacting owning the spell.
+
on_deactivation
on_activation: What happens upon pointed spell deactivation.
+
Arguments:
+
+
user The mob interacting owning the spell.
+
\ No newline at end of file
diff --git a/obj/effect/proc_holder/spell/pointed/barnyardcurse.html b/obj/effect/proc_holder/spell/pointed/barnyardcurse.html
new file mode 100644
index 000000000000..b3c410c749e5
--- /dev/null
+++ b/obj/effect/proc_holder/spell/pointed/barnyardcurse.html
@@ -0,0 +1 @@
+/obj/effect/proc_holder/spell/pointed/barnyardcurse - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
List of mobs which are allowed to be a target of the spell
Var Details
compatible_mobs_typecache
List of mobs which are allowed to be a target of the spell
\ No newline at end of file
diff --git a/obj/effect/proc_holder/spell/pointed/mind_transfer.html b/obj/effect/proc_holder/spell/pointed/mind_transfer.html
new file mode 100644
index 000000000000..f7d8eeed2838
--- /dev/null
+++ b/obj/effect/proc_holder/spell/pointed/mind_transfer.html
@@ -0,0 +1 @@
+/obj/effect/proc_holder/spell/pointed/mind_transfer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
For how long is the victim stunned for after the spell
Var Details
unconscious_amount_caster
For how long is the caster stunned for after the spell
unconscious_amount_victim
For how long is the victim stunned for after the spell
\ No newline at end of file
diff --git a/obj/effect/proc_holder/spell/targeted/fire_sworn.html b/obj/effect/proc_holder/spell/targeted/fire_sworn.html
new file mode 100644
index 000000000000..980f17ec4293
--- /dev/null
+++ b/obj/effect/proc_holder/spell/targeted/fire_sworn.html
@@ -0,0 +1 @@
+/obj/effect/proc_holder/spell/targeted/fire_sworn - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/effect/reality_smash.html b/obj/effect/reality_smash.html
new file mode 100644
index 000000000000..6381068ced3c
--- /dev/null
+++ b/obj/effect/reality_smash.html
@@ -0,0 +1 @@
+/obj/effect/reality_smash - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
We cannot use icon_state since this is invisible, functions the same way but with custom behaviour.
img
Tracked image
minds
Who can see us?
Proc Details
AddMind
Makes the mind able to see this effect
RemoveMind
Makes the mind not able to see this effect
generate_name
Generates random name
\ No newline at end of file
diff --git a/obj/effect/skyfall_landingzone.html b/obj/effect/skyfall_landingzone.html
new file mode 100644
index 000000000000..d41d373ac994
--- /dev/null
+++ b/obj/effect/skyfall_landingzone.html
@@ -0,0 +1 @@
+/obj/effect/skyfall_landingzone - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
skyfall_landingzone
a simple indicator of where the skyfall is going to land.
\ No newline at end of file
diff --git a/obj/item.html b/obj/item.html
new file mode 100644
index 000000000000..b0ccbef385f0
--- /dev/null
+++ b/obj/item.html
@@ -0,0 +1,92 @@
+/obj/item - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Used as the dye color source in the washing machine only (at the moment). Can be a hex color or a key corresponding to a registry entry, see washing_machine.dm
The amount of stamina it takes to swing an item in a normal melee attack do not lie to me and say it's for realism because it ain't. If null it will autocalculate from w_class.
Weight class for how much storage capacity it uses and how big it physically is meaning storages can't hold it if their maximum weight class isn't as high as it.
Creates a "Type-A" contextual screentip interaction.
+When a user hovers over something with this item in hand, this proc will be called in order
+to provide context for contextual screentips.
+You must call register_item_context() in order for this to be registered.
+A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm)
+that map to the action as text.
+If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.
+source can, in all cases, be replaced with src, and only exists because this proc directly connects to a signal.
Called after attacking something if the melee attack chain isn't interrupted before.
+Also called when clicking on something with an item without being in melee range
For when you want to disable an item's embedding capabilities (like transforming weapons and such), this proc will detach any active embed elements from it.
Does the current embedding var meet the criteria for being harmless? Namely, does it explicitly define the pain multiplier and jostle pain mult to be 0? If so, return true.
This is the proc that handles the order of an item_attack.
+The order of procs called is:
+tool_act on the target. If it returns TRUE, the chain will be stopped.
+pre_attack() on src. If this returns TRUE, the chain will be stopped.
+attackby on the target. If it returns TRUE, the chain will be stopped.
+and lastly
+afterattack. The return value does not matter.
An interrupt for someone trying to accept an offered item, called mainly from /mob/living/carbon/proc/take, in case you want to run your own take behavior instead.
An interrupt for offering an item to other people, called mainly from /mob/living/carbon/proc/give, in case you want to run your own offer behavior instead.
Create a "Type-A" contextual screentip interaction, registering to add_item_context().
+This will run add_item_context() when the item hovers over another object for context.
+add_item_context() will not be called unless this is run.
+This is not necessary for Type-A interactions, as you can just apply the flag and register to the signal yourself.
tryEmbed() is for when you want to try embedding something without dealing with the damage + hit messages of calling hitby() on the item while targetting the target.
For when you want to add/update the embedding on an item. Uses the vars in [/obj/item/embedding], and defaults to config values for values that aren't set. Will automatically detach previous embed elements on this item.
Updates all action buttons associated with this item
Var Details
attack_speed
Amount of time to check for from a mob's last attack, checked before an attack happens. Lower = faster attacks
attack_unwieldlyness
Amount of time to hard-stagger (no clicking at all) the mob when attacking. Lower = better
block_chance
The 0% to 100% chance for the default implementation of random block rolls.
block_priority
Block priority, higher means we check this higher in the "chain".
clickdelay_from_next_action
This item checks clickdelay from a user's delayed next action variable rather than the last time they attacked.
clickdelay_ignores_next_action
This item ignores next action delays.
clickdelay_mod_bypass
This item bypasses any click delay mods
drop_sound
Sound uses when dropping the item, or when its thrown.
dye_color
Used as the dye color source in the washing machine only (at the moment). Can be a hex color or a key corresponding to a registry entry, see washing_machine.dm
dying_key
What dye registry should be looked at when dying this item; see washing_machine.dm
equip_sound
Sound used when equipping the item into a valid slot
force_string
string form of an item's force. Edit this var only to set a custom force string
hitsound
Sound played when you hit something with the item
item_flags
Item flags for the item
item_state
icon state name for inhand overlays
lefthand_file
Icon file for left hand inhand overlays
mob_overlay_icon
Icon file for mob worn overlays.
+no var for state because it should always be the same as icon_state
mob_throw_hit_sound
Used when yate into a mob
pickup_sound
Sound uses when picking the item up (into your hands)
righthand_file
Icon file for right inhand overlays
sharpness
All items with sharpness of SHARP_EDGED or higher will automatically get the butchering component.
stagger_force
How long, in deciseconds, this staggers for, if null it will autocalculate from w_class and force. Unlike total mass this supports 0 and negatives.
stealthy_audio
Whether or not we use stealthy audio levels for this item's attack sounds
throw_verb
Used if we want to have a custom verb text for throwing. "John Spaceman flicks the ciggerate" for example.
thrownby
A weakref to the mob who threw the item
total_mass
The amount of stamina it takes to swing an item in a normal melee attack do not lie to me and say it's for realism because it ain't. If null it will autocalculate from w_class.
undyeable
Whether the item is unaffected by standard dying.
used_skills
Skills vars
usesound
Played when the item is used, for example tools
w_class
Weight class for how much storage capacity it uses and how big it physically is meaning storages can't hold it if their maximum weight class isn't as high as it.
w_volume
Volume override for the item, otherwise automatically calculated from w_class.
Proc Details
ApplyAttackCooldown
Called after a successful attack to set a mob's clickdelay.
CheckAttackCooldown
Checks if a user's clickdelay is met for a standard attack, this is called before an attack happens.
GetEstimatedAttackSpeed
Get estimated time that a user has to not attack for to use us
UseStaminaBufferStandard
Uses the amount of stamina required for a standard hit
active_block_calculate_final_damage
Calculates FINAL ATTACK DAMAGE after mitigation
active_block_do_stamina_damage
Apply the stamina damage to our user, notice how damage argument is stamina_amount.
active_block_stamina_cost
Amount of stamina from damage blocked. Note that the damage argument is damage_blocked.
active_parry_reflex_counter
Called when an attack is parried and block_parra_data indicates to use a proc to handle counterattack.
add_item_context
Creates a "Type-A" contextual screentip interaction.
+When a user hovers over something with this item in hand, this proc will be called in order
+to provide context for contextual screentips.
+You must call register_item_context() in order for this to be registered.
+A screentip context list is a list that has context keys (SCREENTIP_CONTEXT_*, from __DEFINES/screentips.dm)
+that map to the action as text.
+If you mutate the list in this signal, you must return CONTEXTUAL_SCREENTIP_SET.
+source can, in all cases, be replaced with src, and only exists because this proc directly connects to a signal.
afterattack
Called after attacking something if the melee attack chain isn't interrupted before.
+Also called when clicking on something with an item without being in melee range
+
WARNING: This does not automatically check clickdelay if not in a melee attack! Be sure to account for this!
+
@params
+
+
target - The thing we clicked
+
user - mob of person clicking
+
proximity_flag - are we in melee range/doing it in a melee attack
+
click_parameters - mouse control parameters, check BYOND ref.
+
attack
Called when someone uses us to attack a mob in melee combat.
+
This proc respects CheckAttackCooldown() default clickdelay handling.
damage_multiplier - what to multiply the damage by
+
blockable_directions
Gets the block direction bitflags of what we can block.
can_active_block
Returns if we can actively block.
can_active_parry
Determines if we can actively parry.
can_block_direction
Checks if we can block from a specific direction from our direction.
+
@params
+
+
our_dir - our direction.
+
their_dir - their direction. Must be a single direction, or NONE for an attack from the same tile. This is incoming direction.
+
can_block_directions_multiple
can_block_direction but for "compound" directions to check all of them and return the number of directions that were blocked.
+
@params
+
+
our_dir - our direction.
+
their_dirs - list of their directions as we cannot use bitfields here.
+
check_block
Returns block information using list/block_return. Used for check_block() on mobs.
cyborg_unequip
Parent proc - triggers when an item/module is unequipped from a cyborg.
disableEmbedding
For when you want to disable an item's embedding capabilities (like transforming weapons and such), this proc will detach any active embed elements from it.
dropped
Called when a mob drops an item.
equipped
Called after an item is placed in an equipment slot.
+
Note that hands count as slots.
+
Arguments:
+
+
user is mob that equipped it
+
slot uses the slot_X defines found in setup.dm for items that can be placed in multiple slots
+
Initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it
+
failedEmbed
In case we want to do something special (like self delete) upon failing to embed in something, return true
get_block_parry_data
Gets this item's datum/block_parry_data
get_w_volume
Get an item's volume that it uses when being stored.
getweight
How much stamina this takes to swing this is not for realism purposes hecc off.
isEmbedHarmless
Does the current embedding var meet the criteria for being harmless? Namely, does it explicitly define the pain multiplier and jostle pain mult to be 0? If so, return true.
melee_attack_chain
This is the proc that handles the order of an item_attack.
+The order of procs called is:
+tool_act on the target. If it returns TRUE, the chain will be stopped.
+pre_attack() on src. If this returns TRUE, the chain will be stopped.
+attackby on the target. If it returns TRUE, the chain will be stopped.
+and lastly
+afterattack. The return value does not matter.
melee_stagger_duration
How long this staggers for. 0 and negatives supported.
on_active_parry
Called when an attack is parried using this, whether or not the parry was successful.
on_offer_taken
An interrupt for someone trying to accept an offered item, called mainly from /mob/living/carbon/proc/take, in case you want to run your own take behavior instead.
+
Return TRUE if you want to interrupt the taking.
+
Arguments:
+offerer - the person offering the item
+taker - the person trying to accept the offer
on_offered
An interrupt for offering an item to other people, called mainly from /mob/living/carbon/proc/give, in case you want to run your own offer behavior instead.
+
Return TRUE if you want to interrupt the offer.
+
Arguments:
+offerer - the person offering the item
on_outfit_equip
Special stuff you want to do when an outfit equips this item.
on_thrown
Called by the carbon throw_item() proc. Returns null if the item negates the throw, or a reference to the thing to suffer the throw else.
pick_painting_tool_color
Common proc used by painting tools like spraycans and palettes that can access the entire 24 bits color space.
ranged_attack_chain
Like melee_attack_chain but for ranged.
register_item_context
Create a "Type-A" contextual screentip interaction, registering to add_item_context().
+This will run add_item_context() when the item hovers over another object for context.
+add_item_context() will not be called unless this is run.
+This is not necessary for Type-A interactions, as you can just apply the flag and register to the signal yourself.
run_block
Runs block and returns flag for do_run_block to process.
set_slowdown
Sets our slowdown and updates equipment slowdown of any mob we're equipped on.
tryEmbed
tryEmbed() is for when you want to try embedding something without dealing with the damage + hit messages of calling hitby() on the item while targetting the target.
+
Really, this is used mostly with projectiles with shrapnel payloads, from /datum/element/embed/proc/checkEmbedProjectile, and called on said shrapnel. Mostly acts as an intermediate between different embed elements.
+
Arguments:
+
+
+
target- Either a body part, a carbon, or a closed turf. What are we hitting?
+
+
+
forced- Do we want this to go through 100%?
+
+
updateEmbedding
For when you want to add/update the embedding on an item. Uses the vars in [/obj/item/embedding], and defaults to config values for values that aren't set. Will automatically detach previous embed elements on this item.
update_action_buttons
Updates all action buttons associated with this item
+
Arguments:
+
+
status_only - Update only current availability status of the buttons to show if they are ready or not to use
+
force - Force buttons update even if the given button icon state has not changed
+
\ No newline at end of file
diff --git a/obj/item/airlock_painter.html b/obj/item/airlock_painter.html
new file mode 100644
index 000000000000..7a96c7db4425
--- /dev/null
+++ b/obj/item/airlock_painter.html
@@ -0,0 +1 @@
+/obj/item/airlock_painter - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Associate list of all paint jobs the airlock painter can apply. The key is the name of the airlock the user will see. The value is the type path of the airlock
Associate list of all paint jobs the airlock painter can apply. The key is the name of the airlock the user will see. The value is the type path of the airlock
initial_ink_type
The type path to instantiate for the ink cartridge the device initially comes with, eg. /obj/item/toner
ink
The ink cartridge to pull charges from.
\ No newline at end of file
diff --git a/obj/item/airlock_painter/decal.html b/obj/item/airlock_painter/decal.html
new file mode 100644
index 000000000000..27b6a20fee76
--- /dev/null
+++ b/obj/item/airlock_painter/decal.html
@@ -0,0 +1,13 @@
+/obj/item/airlock_painter/decal - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
List of color options as list(user-friendly label, color value to return)
decal_list
List of decal options as list(user-friendly label, icon state base value to return)
dir_list
List of direction options as list(user-friendly label, dir value to return)
spritesheet_type
The type path of the spritesheet being used for the frontend.
stored_color
The current color of the decal being printed.
stored_custom_color
Current custom color
stored_decal
The current base icon state of the decal being printed.
stored_decal_total
The full icon state of the decal being printed.
stored_dir
The current direction of the decal being printed
supports_custom_color
Does this printer implementation support custom colors?
Proc Details
get_decal_path
Return the final icon_state for the given decal options
+
Arguments:
+
+
decal - the selected decal base icon state
+
color - the selected color
+
dir - the selected dir
+
paint_floor
Actually add current decal to the floor.
+
Responsible for actually adding the element to the turf for maximum flexibility.area
+Can be overriden for different decal behaviors.
+Arguments:
+
+
target - The turf being painted to
+
\ No newline at end of file
diff --git a/obj/item/airlock_painter/decal/tile.html b/obj/item/airlock_painter/decal/tile.html
new file mode 100644
index 000000000000..d658c45f1d73
--- /dev/null
+++ b/obj/item/airlock_painter/decal/tile.html
@@ -0,0 +1 @@
+/obj/item/airlock_painter/decal/tile - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/ammo_casing.html b/obj/item/ammo_casing.html
new file mode 100644
index 000000000000..4badc2e9313a
--- /dev/null
+++ b/obj/item/ammo_casing.html
@@ -0,0 +1 @@
+/obj/item/ammo_casing - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Override this to make the gun check for a different cooldown rather than CLICK_CD_RANGE, which is 4 deciseconds.
Var Details
click_cooldown_override
Override this to make the gun check for a different cooldown rather than CLICK_CD_RANGE, which is 4 deciseconds.
\ No newline at end of file
diff --git a/obj/item/assembly.html b/obj/item/assembly.html
new file mode 100644
index 000000000000..6dd6d9c6f874
--- /dev/null
+++ b/obj/item/assembly.html
@@ -0,0 +1 @@
+/obj/item/assembly - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Call this when detaching it from a device. handles any special functions that need to be updated ex post facto
Proc Details
holder_movement
Called when the holder is moved
on_detach
Call this when detaching it from a device. handles any special functions that need to be updated ex post facto
\ No newline at end of file
diff --git a/obj/item/assembly/control.html b/obj/item/assembly/control.html
new file mode 100644
index 000000000000..39e5edfca35e
--- /dev/null
+++ b/obj/item/assembly/control.html
@@ -0,0 +1 @@
+/obj/item/assembly/control - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Our ID. Make the first character ! if you want to obfuscate it as a mapper via randomization.
show_id
Show ID?
\ No newline at end of file
diff --git a/obj/item/assembly/control/electrochromatic.html b/obj/item/assembly/control/electrochromatic.html
new file mode 100644
index 000000000000..a99f54b05589
--- /dev/null
+++ b/obj/item/assembly/control/electrochromatic.html
@@ -0,0 +1 @@
+/obj/item/assembly/control/electrochromatic - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Stores our status to prevent windows from desyncing.
Var Details
on
Stores our status to prevent windows from desyncing.
\ No newline at end of file
diff --git a/obj/item/assembly/signaler.html b/obj/item/assembly/signaler.html
new file mode 100644
index 000000000000..f2f361175169
--- /dev/null
+++ b/obj/item/assembly/signaler.html
@@ -0,0 +1 @@
+/obj/item/assembly/signaler - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Holds a reference string to the mob, decides how much of a gamer you are.
suicider
Holds the mind that commited suicide.
\ No newline at end of file
diff --git a/obj/item/barcode.html b/obj/item/barcode.html
new file mode 100644
index 000000000000..e0414bfefaab
--- /dev/null
+++ b/obj/item/barcode.html
@@ -0,0 +1 @@
+/obj/item/barcode - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
All values inheirited from the sales tagger it came from.
Var Details
payments_acc
All values inheirited from the sales tagger it came from.
\ No newline at end of file
diff --git a/obj/item/bodycam_upgrade.html b/obj/item/bodycam_upgrade.html
new file mode 100644
index 000000000000..72ff03759d28
--- /dev/null
+++ b/obj/item/bodycam_upgrade.html
@@ -0,0 +1,2 @@
+/obj/item/bodycam_upgrade - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
bodycam_upgrade
The bodycamera
+
This is the item that gets installed into items that have the bodycamera_holder element
\ No newline at end of file
diff --git a/obj/item/bodypart.html b/obj/item/bodypart.html
new file mode 100644
index 000000000000..09b00820a824
--- /dev/null
+++ b/obj/item/bodypart.html
@@ -0,0 +1,48 @@
+/obj/item/bodypart - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
get_mangled_state() is relevant for flesh and bone bodyparts, and returns whether this bodypart has mangled skin, mangled bone, or both (or neither i guess)
update_wounds() is called whenever a wound is gained or lost on this bodypart, as well as if there's a change of some kind on a bone wound possibly changing disabled status
Var Details
current_gauze
If we have a gauze wrapping currently applied (not including splints)
disable_threshold
Threshold at which we are disabled. Defaults to max_damage if unset.
disabled_wound_penalty
When this bodypart hits max damage, this number is added to all wound rolls. Obviously only relevant for bodyparts that have damage caps.
forcereplace
does this limb have replacement capability, despite probably not being robotic?
generic_bleedstacks
How much generic bleedstacks we have on this bodypart
last_maxed
So we know if we need to scream if this limb hits max damage
scars
The scars currently afflicting this body part
scars_covered_by_clothes
A hat won't cover your face, but a shirt covering your chest will cover your... you know, chest
wound_damage_multiplier
Our current stored wound damage multiplier
wound_resistance
This number is subtracted from all wound rolls on this bodypart, higher numbers mean more defense, negative means easier to wound
wounds
The wounds currently afflicting this body part
Proc Details
apply_gauze
apply_gauze() is used to- well, apply gauze to a bodypart
+
As of the Wounds 2 PR, all bleeding is now bodypart based rather than the old bleedstacks system, and 90% of standard bleeding comes from flesh wounds (the exception is embedded weapons).
+The same way bleeding is totaled up by bodyparts, gauze now applies to all wounds on the same part. Thus, having a slash wound, a pierce wound, and a broken bone wound would have the gauze
+applying blood staunching to the first two wounds, while also acting as a sling for the third one. Once enough blood has been absorbed or all wounds with the ACCEPTS_GAUZE flag have been cleared,
+the gauze falls off.
+
Arguments:
+
+
gauze- Just the gauze stack we're taking a sheet from to apply here
+
check_wounding
check_wounding() is where we handle rolling for, selecting, and applying a wound if we meet the criteria
+
We generate a "score" for how woundable the attack was based on the damage and other factors discussed in [/obj/item/bodypart/proc/check_wounding_mods], then go down the list from most severe to least severe wounds in that category.
+We can promote a wound from a lesser to a higher severity this way, but we give up if we have a wound of the given type and fail to roll a higher severity, so no sidegrades/downgrades
+
Arguments:
+
+
woundtype- Either WOUND_BLUNT, WOUND_SLASH, WOUND_PIERCE, or WOUND_BURN based on the attack type.
+
damage- How much damage is tied to this attack, since wounding potential scales with damage in an attack (see: WOUND_DAMAGE_EXPONENT)
+
wound_bonus- The wound_bonus of an attack
+
bare_wound_bonus- The bare_wound_bonus of an attack
+
check_woundings_mods
check_wounding_mods() is where we handle the various modifiers of a wound roll
+
A short list of things we consider: any armor a human target may be wearing, and if they have no wound armor on the limb, if we have a bare_wound_bonus to apply, plus the plain wound_bonus
+We also flick through all of the wounds we currently have on this limb and add their threshold penalties, so that having lots of bad wounds makes you more liable to get hurt worse
+Lastly, we add the inherent wound_resistance variable the bodypart has (heads and chests are slightly harder to wound), and a small bonus if the limb is already disabled
+
Arguments:
+
+
It's the same ones on [receive_damage]
+
get_disable_threshold
Gets the damage at which point we're disabled.
get_mangled_state
get_mangled_state() is relevant for flesh and bone bodyparts, and returns whether this bodypart has mangled skin, mangled bone, or both (or neither i guess)
+
Dismemberment for flesh and bone requires the victim to have the skin on their bodypart destroyed (either a critical cut or piercing wound), and at least a hairline fracture
+(severe bone), at which point we can start rolling for dismembering. The attack must also deal at least 10 damage, and must be a brute attack of some kind (sorry for now, cakehat, maybe later)
+
Returns: BODYPART_MANGLED_NONE if we're fine, BODYPART_MANGLED_FLESH if our skin is broken, BODYPART_MANGLED_BONE if our bone is broken, or BODYPART_MANGLED_BOTH if both are broken and we're up for dismembering
get_organs
since organs aren't actually stored in the bodypart themselves while attached to a person, we have to query the owner for what we should have
get_wound_type
Get whatever wound of the given type is currently attached to this limb, if any
painless_wound_roll
Allows us to roll for and apply a wound without actually dealing damage. Used for aggregate wounding power with pellet clouds
seep_gauze
seep_gauze() is for when a gauze wrapping absorbs blood or pus from wounds, lowering its absorption capacity.
+
The passed amount of seepage is deducted from the bandage's absorption capacity, and if we reach a negative absorption capacity, the bandages fall off and we're left with nothing.
+
Arguments:
+
+
seep_amt - How much absorption capacity we're removing from our current bandages (think, how much blood or pus are we soaking up this tick?)
+
try_dismember
try_dismember() is used, once we've confirmed that a flesh and bone bodypart has both the skin and bone mangled, to actually roll for it
+
Mangling is described in the above proc, [/obj/item/bodypart/proc/get_mangled_state()]. This simply makes the roll for whether we actually dismember or not
+using how damaged the limb already is, and how much damage this blow was for. If we have a critical bone wound instead of just a severe, we add +10% to the roll.
+Lastly, we choose which kind of dismember we want based on the wounding type we hit with. Note we don't care about all the normal mods or armor for this
+
Arguments:
+
+
wounding_type: Either WOUND_BLUNT, WOUND_SLASH, or WOUND_PIERCE, basically only matters for the dismember message
+
wounding_dmg: The damage of the strike that prompted this roll, higher damage = higher chance
+
wound_bonus: Not actually used right now, but maybe someday
+
bare_wound_bonus: ditto above
+
update_wounds
update_wounds() is called whenever a wound is gained or lost on this bodypart, as well as if there's a change of some kind on a bone wound possibly changing disabled status
+
Covers tabulating the damage multipliers we have from wounds (burn specifically), as well as deleting our gauze wrapping if we don't have any wounds that can use bandaging
+
Arguments:
+
+
replaced- If true, this is being called from the remove_wound() of a wound that's being replaced, so the bandage that already existed is still relevant, but the new wound hasn't been added yet
+
\ No newline at end of file
diff --git a/obj/item/book/random.html b/obj/item/book/random.html
new file mode 100644
index 000000000000..d38348cf3fa7
--- /dev/null
+++ b/obj/item/book/random.html
@@ -0,0 +1 @@
+/obj/item/book/random - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The category of books to pick from when creating this book.
random_loaded
If this book has already been 'generated' yet.
\ No newline at end of file
diff --git a/obj/item/borg/upgrade.html b/obj/item/borg/upgrade.html
new file mode 100644
index 000000000000..f9c67923b96e
--- /dev/null
+++ b/obj/item/borg/upgrade.html
@@ -0,0 +1 @@
+/obj/item/borg/upgrade - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Bitflags listing module compatibility. Used in the exosuit fabricator for creating sub-categories.
show_amount
Show the amount of this module that is installed
\ No newline at end of file
diff --git a/obj/item/borg_shapeshifter.html b/obj/item/borg_shapeshifter.html
new file mode 100644
index 000000000000..40c901368794
--- /dev/null
+++ b/obj/item/borg_shapeshifter.html
@@ -0,0 +1,5 @@
+/obj/item/borg_shapeshifter - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
check_menu: Checks if we are allowed to interact with a radial menu
Proc Details
check_menu
check_menu: Checks if we are allowed to interact with a radial menu
+
Arguments:
+
+
user The mob interacting with a menu
+
\ No newline at end of file
diff --git a/obj/item/bounty_cube.html b/obj/item/bounty_cube.html
new file mode 100644
index 000000000000..a37ad7b6e7de
--- /dev/null
+++ b/obj/item/bounty_cube.html
@@ -0,0 +1 @@
+/obj/item/bounty_cube - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
bounty_cube
Upon completion of a civilian bounty, one of these is created. It is sold to cargo to give the cargo budget bounty money, and the person who completed it cash.
Multiplier for the bounty payout received by the Supply budget if the cube is sent without having to nag.
Var Details
bounty_handler_account
Bank account of the person who receives the handling tip.
bounty_holder
Who completed the bounty.
bounty_holder_account
Bank account of the person who completed the bounty.
bounty_holder_job
What job the bounty holder had.
bounty_name
What the bounty was for.
bounty_value
Value of the bounty that this bounty cube sells for.
handler_tip
Multiplier for the bounty payout received by the person who claims the handling tip.
holder_cut
Multiplier for the bounty payout received by the person who completed the bounty.
nag_cooldown
Time between nags.
nag_cooldown_multiplier
How much the time between nags extends each nag.
next_nag_time
Next world tick to nag Supply listeners.
radio
Our internal radio.
radio_key
The key our internal radio uses.
speed_bonus
Multiplier for the bounty payout received by the Supply budget if the cube is sent without having to nag.
\ No newline at end of file
diff --git a/obj/item/broom.html b/obj/item/broom.html
new file mode 100644
index 000000000000..5882e109fa5c
--- /dev/null
+++ b/obj/item/broom.html
@@ -0,0 +1 @@
+/obj/item/broom - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/canvas.html b/obj/item/canvas.html
new file mode 100644
index 000000000000..ca7ddb3d8f3b
--- /dev/null
+++ b/obj/item/canvas.html
@@ -0,0 +1 @@
+/obj/item/canvas - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
boolean that blocks persistence from saving it. enabled from printing copies, because we do not want to save copies.
Var Details
no_save
boolean that blocks persistence from saving it. enabled from printing copies, because we do not want to save copies.
\ No newline at end of file
diff --git a/obj/item/cardboard_cutout.html b/obj/item/cardboard_cutout.html
new file mode 100644
index 000000000000..f0e35cb51985
--- /dev/null
+++ b/obj/item/cardboard_cutout.html
@@ -0,0 +1,11 @@
+/obj/item/cardboard_cutout - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
check_menu: Checks if we are allowed to interact with a radial menu
Var Details
deceptive
If the cutout actually appears as what it portray and not a discolored version
possible_appearances
Possible restyles for the cutout, add an entry in change_appearance() if you add to here
pushed_over
If the cutout is pushed over and has to be righted
Proc Details
change_appearance
change_appearance: Changes a skin of the cardboard cutout based on a user's choice
+
Arguments:
+
+
crayon The crayon used to change and recolor the cardboard cutout
+
user The mob choosing a skin of the cardboard cutout
+
check_menu
check_menu: Checks if we are allowed to interact with a radial menu
+
Arguments:
+
+
user The mob interacting with a menu
+
crayon The crayon used to interact with a menu
+
\ No newline at end of file
diff --git a/obj/item/cardpack.html b/obj/item/cardpack.html
new file mode 100644
index 000000000000..b93c59d82b41
--- /dev/null
+++ b/obj/item/cardpack.html
@@ -0,0 +1 @@
+/obj/item/cardpack - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The guaranteed rarity table, acts about the same as the rarity table. it can have as many or as few raritys as you'd like
guaranteed_count
The amount of cards to draw from the guarenteed rarity table
rarity_table
The rarity table, the set must contain at least one of each
series
The card series to look in
\ No newline at end of file
diff --git a/obj/item/chainsaw.html b/obj/item/chainsaw.html
new file mode 100644
index 000000000000..218d13aebbc3
--- /dev/null
+++ b/obj/item/chainsaw.html
@@ -0,0 +1 @@
+/obj/item/chainsaw - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/chisel.html b/obj/item/chisel.html
new file mode 100644
index 000000000000..ae1e1915ea31
--- /dev/null
+++ b/obj/item/chisel.html
@@ -0,0 +1 @@
+/obj/item/chisel - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/circuitboard.html b/obj/item/circuitboard.html
new file mode 100644
index 000000000000..f97acdb5be61
--- /dev/null
+++ b/obj/item/circuitboard.html
@@ -0,0 +1,5 @@
+/obj/item/circuitboard - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Used to allow the circuitboard to configure a machine in some way, shape or form.
Var Details
onstation
determines if the circuit board originated from a vendor off station or not.
Proc Details
configure_machine
Used to allow the circuitboard to configure a machine in some way, shape or form.
+
Arguments:
+
+
machine - The machine to attempt to configure.
+
\ No newline at end of file
diff --git a/obj/item/clipboard.html b/obj/item/clipboard.html
new file mode 100644
index 000000000000..529d7133476d
--- /dev/null
+++ b/obj/item/clipboard.html
@@ -0,0 +1,4 @@
+/obj/item/clipboard - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
This is used for the paper displayed on the clipboard's icon
+and it is the one attacked, when attacking the clipboard.
+(As you can't organise contents directly in BYOND)
Proc Details
on_top_paper_change
This is a simple proc to handle calling update_icon() upon receiving the top paper's COMSIG_ATOM_UPDATE_APPEARANCE.
remove_paper
Take out the topmost paper
\ No newline at end of file
diff --git a/obj/item/clipboard/cyborg.html b/obj/item/clipboard/cyborg.html
new file mode 100644
index 000000000000..cde18e6e35d1
--- /dev/null
+++ b/obj/item/clipboard/cyborg.html
@@ -0,0 +1 @@
+/obj/item/clipboard/cyborg - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
How much charge is required to print a piece of paper?
printer_cooldown
When was the last time the printer was used?
printer_cooldown_time
How long is the integrated printer's cooldown?
\ No newline at end of file
diff --git a/obj/item/clothing.html b/obj/item/clothing.html
new file mode 100644
index 000000000000..c021472b3238
--- /dev/null
+++ b/obj/item/clothing.html
@@ -0,0 +1,26 @@
+/obj/item/clothing - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
These are armor values that protect the wearer, taken from the clothing's armor datum. List updates on examine because it's currently only used to print armor ratings to chat in Topic().
These are armor values that protect the clothing, taken from its armor datum. List updates on examine because it's currently only used to print armor ratings to chat in Topic().
take_damage_zone() is used for dealing damage to specific bodyparts on a worn piece of clothing, meant to be called from [/obj/item/bodypart/proc/check_woundings_mods()]
Var Details
armor_list
These are armor values that protect the wearer, taken from the clothing's armor datum. List updates on examine because it's currently only used to print armor ratings to chat in Topic().
durability_list
These are armor values that protect the clothing, taken from its armor datum. List updates on examine because it's currently only used to print armor ratings to chat in Topic().
Proc Details
armor_to_protection_class
Rounds armor_value to nearest 10, divides it by 10 and then expresses it in roman numerals up to 10
+
Rounds armor_value to nearest 10, divides it by 10
+and then expresses it in roman numerals up to 10
+Arguments:
+
+
armor_value - Number we're converting
+
bristle
If we're a clothing with at least 1 shredded/disabled zone, give the wearer a periodic heads up letting them know their clothes are damaged
disable_zone
disable_zone() is used to disable a given bodypart's protection on our clothing item, mainly from [/obj/item/clothing/proc/take_damage_zone()]
+
This proc disables all protection on the specified bodypart for this piece of clothing: it'll be as if it doesn't cover it at all anymore (because it won't!)
+If every possible bodypart has been disabled on the clothing, we put it out of commission entirely and mark it as shredded, whereby it will have to be repaired in
+order to equip it again. Also note we only consider it damaged if there's more than one bodypart disabled.
+
Arguments:
+
+
def_zone: The bodypart zone we're disabling
+
damage_type: Only really relevant for the verb for describing the breaking, and maybe obj_destruction()
+
take_damage_zone
take_damage_zone() is used for dealing damage to specific bodyparts on a worn piece of clothing, meant to be called from [/obj/item/bodypart/proc/check_woundings_mods()]
+
This proc only matters when a bodypart that this clothing is covering is harmed by a direct attack (being on fire or in space need not apply), and only if this clothing covers
+
+
more than one bodypart to begin with. No point in tracking damage by zone for a hat, and I'm not cruel enough to let you fully break them in a few shots.
+Also if limb_integrity is 0, then this clothing doesn't have bodypart damage enabled so skip it.
+
Arguments:
+
+
def_zone: The bodypart zone in question
+
damage_amount: Incoming damage
+
damage_type: BRUTE or BURN
+
armour_penetration: If the attack had armour_penetration
+
\ No newline at end of file
diff --git a/obj/item/clothing/glasses/hud.html b/obj/item/clothing/glasses/hud.html
new file mode 100644
index 000000000000..79d4ae4812f6
--- /dev/null
+++ b/obj/item/clothing/glasses/hud.html
@@ -0,0 +1 @@
+/obj/item/clothing/glasses/hud - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Used for topic calls. Just because you have a HUD display doesn't mean you should be able to interact with stuff.
Var Details
hud_trait
Used for topic calls. Just because you have a HUD display doesn't mean you should be able to interact with stuff.
\ No newline at end of file
diff --git a/obj/item/clothing/gloves/fingerless/pugilist.html b/obj/item/clothing/gloves/fingerless/pugilist.html
new file mode 100644
index 000000000000..93acabdbc77a
--- /dev/null
+++ b/obj/item/clothing/gloves/fingerless/pugilist.html
@@ -0,0 +1 @@
+/obj/item/clothing/gloves/fingerless/pugilist - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
extra wound bonus through the punch (MAYBE DON'T BE GENEROUS WITH THIS)
Var Details
enhancement
Extra damage through the punch.
inherited_trait
Main trait added by the gloves to the user on wear.
secondary_trait
Secondary trait added by the gloves to the user on wear.
silent
do we give the flavortext for wearing them
wornonce
did you ever get around to wearing these or no
wound_enhancement
extra wound bonus through the punch (MAYBE DON'T BE GENEROUS WITH THIS)
\ No newline at end of file
diff --git a/obj/item/clothing/gloves/mod.html b/obj/item/clothing/gloves/mod.html
new file mode 100644
index 000000000000..c7a46e5d3717
--- /dev/null
+++ b/obj/item/clothing/gloves/mod.html
@@ -0,0 +1 @@
+/obj/item/clothing/gloves/mod - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Replaces these gloves on the wearer with the overslot ones
Proc Details
show_overslot
Replaces these gloves on the wearer with the overslot ones
\ No newline at end of file
diff --git a/obj/item/clothing/gloves/space_ninja.html b/obj/item/clothing/gloves/space_ninja.html
new file mode 100644
index 000000000000..e51e23197654
--- /dev/null
+++ b/obj/item/clothing/gloves/space_ninja.html
@@ -0,0 +1,5 @@
+/obj/item/clothing/gloves/space_ninja - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Ninja Gloves
Space ninja's gloves. Gives access to a number of special interactions.
+
Gloves only found from space ninjas. Allows the wearer to access special interactions with various objects.
+These interactions are detailed in ninjaDrainAct.dm in the suit file.
+These interactions are toggled by an action tied to the gloves. The interactions will not activate if the user is also not wearing a ninja suit.
Proc called to toggle the ninja glove's special abilities.
Var Details
borg_hack_success
Whether or not the cyborg hack was used to syndify a cyborg
candrain
Whether or not we can currently drain something
communication_console_hack_success
Whether or not the communication console hack was used to summon another antagonist
door_hack_counter
How many times the gloves have been used to force open doors.
draining
Whether or not we're currently draining something
maxdrain
Maximum amount of power we can drain in a single drain action
mindrain
Minimum amount of power we can drain in a single drain action
security_console_hack_success
Whether or not the security console hack was used to set everyone to arrest
Proc Details
toggledrain
Proc called to toggle the ninja glove's special abilities.
+
Used to toggle whether or not the ninja glove's abilities will activate on touch.
\ No newline at end of file
diff --git a/obj/item/clothing/gloves/tackler.html b/obj/item/clothing/gloves/tackler.html
new file mode 100644
index 000000000000..41c195d518d9
--- /dev/null
+++ b/obj/item/clothing/gloves/tackler.html
@@ -0,0 +1 @@
+/obj/item/clothing/gloves/tackler - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
For storing our tackler datum so we can remove it after
\ No newline at end of file
diff --git a/obj/item/clothing/head.html b/obj/item/clothing/head.html
new file mode 100644
index 000000000000..d35d40376386
--- /dev/null
+++ b/obj/item/clothing/head.html
@@ -0,0 +1 @@
+/obj/item/clothing/head - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Special throw_impact for hats to frisbee hats at people to place them on their heads.
Proc Details
throw_impact
Special throw_impact for hats to frisbee hats at people to place them on their heads.
\ No newline at end of file
diff --git a/obj/item/clothing/head/helmet/space/plasmaman.html b/obj/item/clothing/head/helmet/space/plasmaman.html
new file mode 100644
index 000000000000..f430cdc0ba84
--- /dev/null
+++ b/obj/item/clothing/head/helmet/space/plasmaman.html
@@ -0,0 +1 @@
+/obj/item/clothing/head/helmet/space/plasmaman - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
gets called when receiving the CLEAN_ACT signal from something, i.e soap or a shower. exists to remove any smiley faces drawn on the helmet.
Proc Details
wipe_that_smile_off_your_face
gets called when receiving the CLEAN_ACT signal from something, i.e soap or a shower. exists to remove any smiley faces drawn on the helmet.
\ No newline at end of file
diff --git a/obj/item/clothing/head/helmet/space/space_ninja.html b/obj/item/clothing/head/helmet/space/space_ninja.html
new file mode 100644
index 000000000000..79fc53361314
--- /dev/null
+++ b/obj/item/clothing/head/helmet/space/space_ninja.html
@@ -0,0 +1,2 @@
+/obj/item/clothing/head/helmet/space/space_ninja - SPLURT Station 13SPLURT Station 13 - Modules - Types
Ninja Hood
Space ninja's hood. Provides armor and blocks AI tracking.
+
A hood that only exists as a part of space ninja's starting kit. Provides armor equal of space ninja's suit and disallows an AI to track the wearer.
\ No newline at end of file
diff --git a/obj/item/clothing/head/ushanka.html b/obj/item/clothing/head/ushanka.html
new file mode 100644
index 000000000000..4835e49c60a7
--- /dev/null
+++ b/obj/item/clothing/head/ushanka.html
@@ -0,0 +1 @@
+/obj/item/clothing/head/ushanka - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Sprite visible when the ushanka flaps are folded up.
Var Details
downsprite
Sprite visible when the ushanka flaps are folded down.
upsprite
Sprite visible when the ushanka flaps are folded up.
\ No newline at end of file
diff --git a/obj/item/clothing/mask.html b/obj/item/clothing/mask.html
new file mode 100644
index 000000000000..67a50755d0fe
--- /dev/null
+++ b/obj/item/clothing/mask.html
@@ -0,0 +1,3 @@
+/obj/item/clothing/mask - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Proc that moves gas/breath masks out of the way, disabling them and allowing pill/food consumption
+The flavor_details variable is for masks that use this function only to toggle HIDEFACE for identity.
Proc Details
adjustmask
Proc that moves gas/breath masks out of the way, disabling them and allowing pill/food consumption
+The flavor_details variable is for masks that use this function only to toggle HIDEFACE for identity.
\ No newline at end of file
diff --git a/obj/item/clothing/mask/chameleon.html b/obj/item/clothing/mask/chameleon.html
new file mode 100644
index 000000000000..c86d8966bce0
--- /dev/null
+++ b/obj/item/clothing/mask/chameleon.html
@@ -0,0 +1 @@
+/obj/item/clothing/mask/chameleon - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
This determines if the voice changer is on or off.
Var Details
chameleon_action
This determines if the voice changer is on or off.
\ No newline at end of file
diff --git a/obj/item/clothing/mask/facehugger/toy.html b/obj/item/clothing/mask/facehugger/toy.html
new file mode 100644
index 000000000000..a1ba64cd84d4
--- /dev/null
+++ b/obj/item/clothing/mask/facehugger/toy.html
@@ -0,0 +1,2 @@
+/obj/item/clothing/mask/facehugger/toy - SPLURT Station 13SPLURT Station 13 - Modules - Types
toy
Mining Equipment Vendor Items
+
Facehugger toy
\ No newline at end of file
diff --git a/obj/item/clothing/mask/gas/space_ninja.html b/obj/item/clothing/mask/gas/space_ninja.html
new file mode 100644
index 000000000000..999bed7c85bd
--- /dev/null
+++ b/obj/item/clothing/mask/gas/space_ninja.html
@@ -0,0 +1,2 @@
+/obj/item/clothing/mask/gas/space_ninja - SPLURT Station 13SPLURT Station 13 - Modules - Types
Ninja Mask
Space ninja's mask. Makes you sound like a real anime girl. Barely able to be considered a real upside.
+
A mask which only spawns as a part of space ninja's starting kit. Functions as a gas mask.
\ No newline at end of file
diff --git a/obj/item/clothing/mask/void_mask.html b/obj/item/clothing/mask/void_mask.html
new file mode 100644
index 000000000000..b59ec5481d42
--- /dev/null
+++ b/obj/item/clothing/mask/void_mask.html
@@ -0,0 +1 @@
+/obj/item/clothing/mask/void_mask - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/clothing/neck/eldritch_amulet.html b/obj/item/clothing/neck/eldritch_amulet.html
new file mode 100644
index 000000000000..03d650388d90
--- /dev/null
+++ b/obj/item/clothing/neck/eldritch_amulet.html
@@ -0,0 +1 @@
+/obj/item/clothing/neck/eldritch_amulet - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/clothing/neck/necklace/dope/merchant.html b/obj/item/clothing/neck/necklace/dope/merchant.html
new file mode 100644
index 000000000000..cb73e5c7efd0
--- /dev/null
+++ b/obj/item/clothing/neck/necklace/dope/merchant.html
@@ -0,0 +1 @@
+/obj/item/clothing/neck/necklace/dope/merchant - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
toggles between sell (TRUE) and get price post-fees (FALSE)
Var Details
profit_scaling
scales the amount received in case an admin wants to emulate taxes/fees.
selling
toggles between sell (TRUE) and get price post-fees (FALSE)
\ No newline at end of file
diff --git a/obj/item/clothing/shoes.html b/obj/item/clothing/shoes.html
new file mode 100644
index 000000000000..47ce4e81379f
--- /dev/null
+++ b/obj/item/clothing/shoes.html
@@ -0,0 +1,12 @@
+/obj/item/clothing/shoes - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
check_trip runs on each step to see if we fall over as a result of our lace status. Knotted laces are a guaranteed trip, while untied shoes are just a chance to stumble
checking to make sure we're still on the person we're supposed to be, for lacing do_after's
Var Details
can_be_tied
Whether these shoes have laces that can be tied/untied
lace_time
How long it takes to lace/unlace these shoes
our_alert
any alerts we have active
tied
Are we currently tied? Can either be SHOES_UNTIED, SHOES_TIED, or SHOES_KNOTTED
Proc Details
adjust_laces
adjust_laces adjusts whether our shoes (assuming they can_be_tied) and tied, untied, or knotted
+
In addition to setting the state, it will deal with getting rid of alerts if they exist, as well as registering and unregistering the stepping signals
+
Arguments:
+
+
state: SHOES_UNTIED, SHOES_TIED, or SHOES_KNOTTED, depending on what you want them to become
+
user: used to check to see if we're the ones unknotting our own laces
+
check_trip
check_trip runs on each step to see if we fall over as a result of our lace status. Knotted laces are a guaranteed trip, while untied shoes are just a chance to stumble
handle_tying
handle_tying deals with all the actual tying/untying/knotting, inferring your intent from who you are in relation to the state of the laces
+
If you're the wearer, you want them to move towards tied-ness (knotted -> untied -> tied). If you're not, you're pranking them, so you're moving towards knotted-ness (tied -> untied -> knotted)
+
Arguments:
+
+
user: who is the person interacting with the shoes?
+
still_shoed
checking to make sure we're still on the person we're supposed to be, for lacing do_after's
\ No newline at end of file
diff --git a/obj/item/clothing/shoes/mod.html b/obj/item/clothing/shoes/mod.html
new file mode 100644
index 000000000000..914c53b583ef
--- /dev/null
+++ b/obj/item/clothing/shoes/mod.html
@@ -0,0 +1 @@
+/obj/item/clothing/shoes/mod - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Replaces these shoes on the wearer with the overslot ones
Proc Details
show_overslot
Replaces these shoes on the wearer with the overslot ones
\ No newline at end of file
diff --git a/obj/item/clothing/shoes/space_ninja.html b/obj/item/clothing/shoes/space_ninja.html
new file mode 100644
index 000000000000..65a15c06ef11
--- /dev/null
+++ b/obj/item/clothing/shoes/space_ninja.html
@@ -0,0 +1,3 @@
+/obj/item/clothing/shoes/space_ninja - SPLURT Station 13SPLURT Station 13 - Modules - Types
Ninja Shoes
Space ninja's shoes. Gives him armor on his feet.
+
Space ninja's ninja shoes. How mousey. Gives him slip protection and protection against attacks.
+Also are temperature resistant.
\ No newline at end of file
diff --git a/obj/item/clothing/suit/hooded.html b/obj/item/clothing/suit/hooded.html
new file mode 100644
index 000000000000..65c82397a32f
--- /dev/null
+++ b/obj/item/clothing/suit/hooded.html
@@ -0,0 +1 @@
+/obj/item/clothing/suit/hooded - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Alternative mode for hiding the hood, instead of storing the hood in the suit it qdels it, useful for when you deal with hooded suit with storage.
Var Details
alternative_mode
Alternative mode for hiding the hood, instead of storing the hood in the suit it qdels it, useful for when you deal with hooded suit with storage.
\ No newline at end of file
diff --git a/obj/item/clothing/suit/space/space_ninja.html b/obj/item/clothing/suit/space/space_ninja.html
new file mode 100644
index 000000000000..54bfdf8657e0
--- /dev/null
+++ b/obj/item/clothing/suit/space/space_ninja.html
@@ -0,0 +1,65 @@
+/obj/item/clothing/suit/space/space_ninja - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Ninja Suit
Space ninja's suit. Provides him with most of his powers.
+
Space ninja's suit. Gives space ninja all his iconic powers, which are mostly kept in
+the folder ninja_equipment_actions. Has a lot of unique stuff going on, so make sure to check
+the variables. Check suit_attackby to see radium interaction, disk copying, and cell replacement.
Proc called to unlock all the gear off space ninja's body.
Var Details
a_boost
Whether or not the adrenaline boost ability is available
a_transfer
Units of radium required to refill the adrenaline boost
affecting
The person wearing the suit
n_mask
The space ninja's mask.
s_acost
Additional energy cost for cloaking per process
s_busy
Whether or not the wearer is in the middle of an action, like hacking.
s_coold
The suit's current cooldown. If not 0, blocks usage of most abilities, and decrements its value by 1 every process
s_cost
How much energy the suit expends in a single process
s_delay
How fast the suit is at certain actions, like draining power from things
s_initialized
Whether or not the suit is currently booted up. Starts off.
s_longdelay
How fast the suit is at certain riskier actions, like hacking communications consoles.
stealth
Whether or not the suit is currently in stealth mode.
Proc Details
cancel_stealth
Proc called to cancel stealth.
+
Called to cancel the stealth effect if it is ongoing.
+Does nothing otherwise.
+Arguments:
+
+
Returns false if either the ninja no longer exists or is already visible, returns true if we successfully made the ninja visible.
+
deinitialize
Deinitializes the ninja suit
+
Deinitializes the ninja suit through eight phases, each of which calls this proc with an incremented phase
+Arguments:
+
+
delay - The delay between each phase of deinitialization
+
ninja - The human who is being affected by the suit
+
phase - The phase of deinitialization
+
lock_suit
Proc called to lock the important gear pieces onto space ninja's body.
+
Called during the suit startup to lock all gear pieces onto space ninja.
+Terminates if a gear piece is not being worn. Also gives the ninja the inability to use firearms.
+If the person in the suit isn't a ninja when this is called, this proc just gibs them instead.
+Arguments:
+
+
ninja - The person wearing the suit.
+
Returns false if the locking fails due to lack of all suit parts, and true if it succeeds.
+
ninitialize
Initializes the ninja suit
+
Initializes the ninja suit through seven phases, each of which calls this proc with an incremented phase
+Arguments:
+
+
delay - The delay between each phase of initialization
+
ninja - The human who is being affected by the suit
+
phase - The phase of initialization
+
ninja_sword_recall
Proc called to recall the ninja's sword.
+
Called to summon the ninja's katana back to them
+If the katana can see the ninja, it will throw itself towards them.
+If not, the katana will teleport itself to the ninja.
ninjaboost
Proc called to activate space ninja's adrenaline.
+
Proc called to use space ninja's adrenaline. Gets the ninja out of almost any stun.
+Also makes them shout MGS references when used. After a bit, it injects the user with
+radium by calling a different proc.
ninjaboost_after
Proc called to inject the ninja with radium.
+
Used after 7 seconds of using the ninja's adrenaline.
+Injects the user with how much radium the suit needs to refill an adrenaline boost.
ninjacost
Proc called to check if the ninja can afford an ability's cost.
+
Proc which determine whether or not a space ninja can afford to use a specific ability.
+It can also cancel stealth if the ability requested it.
+Arguments:
+
+
cost - the energy cost of the ability
+
specificCheck - Determines if the check is a normal one, an adrenaline one, or a stealth cancel check.
+
Returns TRUE or the current cooldown timer if we can't perform the ability, and FALSE if we can.
+
ninjanet
Proc called to ensnare a person in a energy net.
+
Used to ensnare a target in an energy net, preventing them from moving until the net is broken.
+Costs 40E, which is 40% of the default battery's max charge. Intended as a means of reliably locking down an opponent when ninja stars won't suffice.
ninjapulse
Proc called to allow the ninja to EMP the nearby area.
+
Proc called to allow the ninja to EMP the nearby area. By default, costs 500E, which is half of the default battery's max charge.
+Also affects the ninja as well.
ninjastar
Proc called to create a ninja star in the ninja's hands.
+
Called to create a ninja star in the wearer's hand. The ninja
+star doesn't do much up-front damage, but deals stamina damage
+as the target moves around, forcing a finish or flee scenario.
terminate
Proc used to delete all the attachments and itself.
+
Can be called to entire rid of the suit pieces and the suit itself.
toggle_on_off
Toggles the ninja suit on/off
+
Attempts to initialize or deinitialize the ninja suit
toggle_stealth
Proc called to toggle ninja stealth.
+
Proc called to toggle whether or not the ninja is in stealth mode.
+If cancelling, calls a separate proc in case something else needs to quickly cancel stealth.
unlock_suit
Proc called to unlock all the gear off space ninja's body.
+
Proc which is essentially the opposite of lock_suit. Lets you take off all the suit parts.
+Also gets rid of the objection to using firearms from the wearer.
+Arguments:
+
+
ninja - The person wearing the suit.
+
\ No newline at end of file
diff --git a/obj/item/computer_hardware.html b/obj/item/computer_hardware.html
new file mode 100644
index 000000000000..ded4c3fe6cf1
--- /dev/null
+++ b/obj/item/computer_hardware.html
@@ -0,0 +1,8 @@
+/obj/item/computer_hardware - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Implement this when your hardware contains an object that the user can eject.
Proc Details
try_eject
Implement this when your hardware contains an object that the user can eject.
+
Examples include ejecting cells from battery modules, ejecting an ID card from a card reader
+or ejecting an Intellicard from an AI card slot.
+Arguments:
+
+
user - The mob requesting the eject.
+
forced - Whether this action should be forced in some way.
+
\ No newline at end of file
diff --git a/obj/item/computer_hardware/ai_slot.html b/obj/item/computer_hardware/ai_slot.html
new file mode 100644
index 000000000000..5954dd38c827
--- /dev/null
+++ b/obj/item/computer_hardware/ai_slot.html
@@ -0,0 +1 @@
+/obj/item/computer_hardware/ai_slot - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
What happens when the intellicard is removed (or deleted) from the module, through try_eject() or not.
Proc Details
Exited
What happens when the intellicard is removed (or deleted) from the module, through try_eject() or not.
\ No newline at end of file
diff --git a/obj/item/computer_hardware/battery.html b/obj/item/computer_hardware/battery.html
new file mode 100644
index 000000000000..20a7482e5453
--- /dev/null
+++ b/obj/item/computer_hardware/battery.html
@@ -0,0 +1 @@
+/obj/item/computer_hardware/battery - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
What happens when the battery is removed (or deleted) from the module, through try_eject() or not.
Proc Details
Exited
What happens when the battery is removed (or deleted) from the module, through try_eject() or not.
\ No newline at end of file
diff --git a/obj/item/computer_hardware/card_slot.html b/obj/item/computer_hardware/card_slot.html
new file mode 100644
index 000000000000..129dabe6bcb7
--- /dev/null
+++ b/obj/item/computer_hardware/card_slot.html
@@ -0,0 +1 @@
+/obj/item/computer_hardware/card_slot - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Swaps the card_slot hardware between using the dedicated card slot bay on a computer, and using an expansion bay.
Proc Details
Exited
What happens when the ID card is removed (or deleted) from the module, through try_eject() or not.
swap_slot
Swaps the card_slot hardware between using the dedicated card slot bay on a computer, and using an expansion bay.
\ No newline at end of file
diff --git a/obj/item/construction/plumbing.html b/obj/item/construction/plumbing.html
new file mode 100644
index 000000000000..9cd21fe82d48
--- /dev/null
+++ b/obj/item/construction/plumbing.html
@@ -0,0 +1 @@
+/obj/item/construction/plumbing - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
pretty much rcd_create, but named differently to make myself feel less bad for copypasting from a sibling-type
Var Details
blueprint
type of the plumbing machine
choices
index, used in the attack self to get the type. stored here since it doesnt change
name_to_type
index, used in the attack self to get the type. stored here since it doesnt change
Proc Details
create_machine
pretty much rcd_create, but named differently to make myself feel less bad for copypasting from a sibling-type
\ No newline at end of file
diff --git a/obj/item/conveyor_sorter.html b/obj/item/conveyor_sorter.html
new file mode 100644
index 000000000000..ca86621f9a63
--- /dev/null
+++ b/obj/item/conveyor_sorter.html
@@ -0,0 +1 @@
+/obj/item/conveyor_sorter - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
the list of things that are currently within the sorting list
spawned_sorters
the list of conveyor sorters spawned by
\ No newline at end of file
diff --git a/obj/item/coupon.html b/obj/item/coupon.html
new file mode 100644
index 000000000000..85d38f5c216b
--- /dev/null
+++ b/obj/item/coupon.html
@@ -0,0 +1 @@
+/obj/item/coupon - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/cult_spear.html b/obj/item/cult_spear.html
new file mode 100644
index 000000000000..09d2b427c3af
--- /dev/null
+++ b/obj/item/cult_spear.html
@@ -0,0 +1 @@
+/obj/item/cult_spear - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/defibrillator.html b/obj/item/defibrillator.html
new file mode 100644
index 000000000000..513b91cdb31e
--- /dev/null
+++ b/obj/item/defibrillator.html
@@ -0,0 +1 @@
+/obj/item/defibrillator - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The icon state for the powered on overlay, not applied if null
Var Details
cell_removable
If the cell can be removed via screwdriver
charge_state
The icon state for the charge bar overlay, not applied if null
emagged_state
The icon state for the emagged overlay, not applied if null
nocell_state
The icon state for the missing cell overlay, not applied if null
paddle_state
The icon state for the paddle overlay, not applied if null
powered_state
The icon state for the powered on overlay, not applied if null
\ No newline at end of file
diff --git a/obj/item/dualsaber.html b/obj/item/dualsaber.html
new file mode 100644
index 000000000000..eef335236ff5
--- /dev/null
+++ b/obj/item/dualsaber.html
@@ -0,0 +1,5 @@
+/obj/item/dualsaber - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Triggered on wield of two handed item
+Specific hulk checks due to reflection chance for balance issues and switches hitsounds.
Var Details
can_reflect
Can this reflect all energy projectiles?
Proc Details
on_unwield
Triggered on unwield of two handed item
+switch hitsounds
on_wield
Triggered on wield of two handed item
+Specific hulk checks due to reflection chance for balance issues and switches hitsounds.
\ No newline at end of file
diff --git a/obj/item/dyespray.html b/obj/item/dyespray.html
new file mode 100644
index 000000000000..bdb7a68f94f4
--- /dev/null
+++ b/obj/item/dyespray.html
@@ -0,0 +1,5 @@
+/obj/item/dyespray - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
target - The mob who we will apply the gradient and gradient color to.
+
\ No newline at end of file
diff --git a/obj/item/eldritch_potion.html b/obj/item/eldritch_potion.html
new file mode 100644
index 000000000000..3aec4536fd94
--- /dev/null
+++ b/obj/item/eldritch_potion.html
@@ -0,0 +1 @@
+/obj/item/eldritch_potion - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
The effect of the potion if it has any special one, in general try not to override this and utilize the status_effect var to make custom effects.
Var Details
status_effect
Typepath to the status effect this is supposed to hold
Proc Details
effect
The effect of the potion if it has any special one, in general try not to override this and utilize the status_effect var to make custom effects.
\ No newline at end of file
diff --git a/obj/item/electronics/airlock.html b/obj/item/electronics/airlock.html
new file mode 100644
index 000000000000..389c71430ccb
--- /dev/null
+++ b/obj/item/electronics/airlock.html
@@ -0,0 +1 @@
+/obj/item/electronics/airlock - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Unrestricted sides, or sides of the airlock that will open regardless of access
Var Details
accesses
A list of all granted accesses
holder
A holder of the electronics, in case of them working as an integrated part
one_access
If the airlock should require ALL or only ONE of the listed accesses
unres_sides
Unrestricted sides, or sides of the airlock that will open regardless of access
\ No newline at end of file
diff --git a/obj/item/electronics/electrochromatic_kit.html b/obj/item/electronics/electrochromatic_kit.html
new file mode 100644
index 000000000000..cdc98b283f42
--- /dev/null
+++ b/obj/item/electronics/electrochromatic_kit.html
@@ -0,0 +1 @@
+/obj/item/electronics/electrochromatic_kit - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/energy_katana.html b/obj/item/energy_katana.html
new file mode 100644
index 000000000000..73924b0ccaa9
--- /dev/null
+++ b/obj/item/energy_katana.html
@@ -0,0 +1,12 @@
+/obj/item/energy_katana - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Energy Katana
The space ninja's katana.
+
The katana that only space ninja spawns with. Comes with 30 force and throwforce, along with a signature special jaunting system.
+Upon clicking on a tile with the dash on, the user will teleport to that tile, assuming their target was not dense.
+The katana has 3 dashes stored at maximum, and upon using the dash, it will return 20 seconds after it was used.
+It also has a special feature where if it is tossed at a space ninja who owns it (determined by the ninja suit), the ninja will catch the katana instead of being hit by it.
Proc called when the katana is recalled to its space ninja.
Proc Details
returnToOwner
Proc called when the katana is recalled to its space ninja.
+
Proc called when space ninja is hit with its suit's katana or the recall ability is used.
+Arguments:
+
+
user - To whom the katana is returning to.
+
doSpark - whether or not the katana will spark when it returns.
+
caught - boolean for whether or not the katana was caught or was teleported back.
+
\ No newline at end of file
diff --git a/obj/item/extinguisher.html b/obj/item/extinguisher.html
new file mode 100644
index 000000000000..2e61879da925
--- /dev/null
+++ b/obj/item/extinguisher.html
@@ -0,0 +1 @@
+/obj/item/extinguisher - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/fireaxe.html b/obj/item/fireaxe.html
new file mode 100644
index 000000000000..239088b4b2a9
--- /dev/null
+++ b/obj/item/fireaxe.html
@@ -0,0 +1 @@
+/obj/item/fireaxe - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/flashlight/pen/paramedic.html b/obj/item/flashlight/pen/paramedic.html
new file mode 100644
index 000000000000..e6b5de22fe83
--- /dev/null
+++ b/obj/item/flashlight/pen/paramedic.html
@@ -0,0 +1 @@
+/obj/item/flashlight/pen/paramedic - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/forbidden_book.html b/obj/item/forbidden_book.html
new file mode 100644
index 000000000000..164b36cee337
--- /dev/null
+++ b/obj/item/forbidden_book.html
@@ -0,0 +1 @@
+/obj/item/forbidden_book - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Gives you a charge and destroys a corresponding influence
remove_rune
Removes runes from the selected turf
\ No newline at end of file
diff --git a/obj/item/gang_induction_package.html b/obj/item/gang_induction_package.html
new file mode 100644
index 000000000000..27c0ebcf8ff6
--- /dev/null
+++ b/obj/item/gang_induction_package.html
@@ -0,0 +1 @@
+/obj/item/gang_induction_package - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
The typepath of the gang antagonist datum that the person who uses the package should have added to them -- remember that the distinction between e.g. Ballas and Grove Street is on the antag datum level, not the team datum level.
Checks if the user is trying to use the package of the family they are in, and if not, adds them to the family, with some differing processing depending on whether the user is already a family member.
Var Details
gang_to_use
The typepath of the gang antagonist datum that the person who uses the package should have added to them -- remember that the distinction between e.g. Ballas and Grove Street is on the antag datum level, not the team datum level.
handler
References the active families gamemode handler (if one exists), for adding new family members to.
team_to_use
The team datum that the person who uses this package should be added to.
Proc Details
add_to_gang
Adds the user to the family that this package corresponds to, dispenses the free_clothes of that family, and adds them to the handler if it exists.
attempt_join_gang
Checks if the user is trying to use the package of the family they are in, and if not, adds them to the family, with some differing processing depending on whether the user is already a family member.
\ No newline at end of file
diff --git a/obj/item/genital_equipment.html b/obj/item/genital_equipment.html
new file mode 100644
index 000000000000..cb38a9d5835d
--- /dev/null
+++ b/obj/item/genital_equipment.html
@@ -0,0 +1 @@
+/obj/item/genital_equipment - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Item-specific checks to run before removing from a genital
Proc Details
item_inserted
Runs after the item has been inserted in a genital
item_inserting
Item-specific checks to run before inserting in a genital
item_removed
Runs after the item has been removed from a genital
item_removing
Item-specific checks to run before removing from a genital
\ No newline at end of file
diff --git a/obj/item/grenade.html b/obj/item/grenade.html
new file mode 100644
index 000000000000..5dc37c0e9eda
--- /dev/null
+++ b/obj/item/grenade.html
@@ -0,0 +1 @@
+/obj/item/grenade - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
how big of a devastation explosion radius on prime
ex_flame
how big of a flame explosion radius on prime
ex_heavy
how big of a heavy explosion radius on prime
ex_light
how big of a light explosion radius on prime
shrapnel_radius
the higher this number, the more projectiles are created as shrapnel
shrapnel_type
if set, will spew out projectiles of this type
\ No newline at end of file
diff --git a/obj/item/grenade/primer.html b/obj/item/grenade/primer.html
new file mode 100644
index 000000000000..b84742a119f1
--- /dev/null
+++ b/obj/item/grenade/primer.html
@@ -0,0 +1 @@
+/obj/item/grenade/primer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
how many times we need to "rotate" the charge in hand per extra tile of magnitude
Proc Details
attack_self
how many times we've "rotated" the charge
\ No newline at end of file
diff --git a/obj/item/gun.html b/obj/item/gun.html
new file mode 100644
index 000000000000..d547cc111040
--- /dev/null
+++ b/obj/item/gun.html
@@ -0,0 +1,6 @@
+/obj/item/gun - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
The time between firing actions, this means between bursts if this is burst weapon. The reason this is 0 is because you are still, by default, limited by clickdelay.
Swaps the gun's seclight, dropping the old seclight if it has not been qdel'd.
Var Details
burst_shot_delay
The time between shots in burst.
burst_size
Weapon is burst fire if this is above 1
busy_action
Used in gun-in-mouth execution/suicide and similar, while TRUE nothing should work on this like firing or modification and so on and so forth.
can_circuit
can we be put in a circuit
can_emitter
can we be put in an emitter
can_turret
can we be put into a turret
dir_recoil_amp
directional recoil multiplier
fire_delay
The time between firing actions, this means between bursts if this is burst weapon. The reason this is 0 is because you are still, by default, limited by clickdelay.
fire_select
Current fire selection, can choose between burst, single, and full auto.
fire_select_modes
What modes does this weapon have? Put SELECT_FULLY_AUTOMATIC in here to enable fully automatic behaviours.
firing
Currently firing, whether or not it's a burst or not.
last_fire
Last world.time this was fired
projectile_damage_multiplier
Just 'slightly' snowflakey way to modify projectile damage for projectiles fired from this gun.
selector_switch_icon
if i`1t has an icon for a selector switch indicating current firemode.
Proc Details
set_gun_light
Swaps the gun's seclight, dropping the old seclight if it has not been qdel'd.
+
Returns the former gun_light that has now been replaced by this proc.
+Arguments:
+
+
new_light - The new light to attach to the weapon. Can be null, which will mean the old light is removed with no replacement.
+
\ No newline at end of file
diff --git a/obj/item/gun/ballistic.html b/obj/item/gun/ballistic.html
new file mode 100644
index 000000000000..2939188e1283
--- /dev/null
+++ b/obj/item/gun/ballistic.html
@@ -0,0 +1 @@
+/obj/item/gun/ballistic - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/gun/energy.html b/obj/item/gun/energy.html
new file mode 100644
index 000000000000..97a4ec385a75
--- /dev/null
+++ b/obj/item/gun/energy.html
@@ -0,0 +1 @@
+/obj/item/gun/energy - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
SET THIS TO TRUE IF YOU OVERRIDE altafterattack() or ANY right click action! If this is FALSE, the gun will show in examine its default right click behavior, which is to switch modes.
This is the proc used in general for when a user switches firemodes. Just goes to next firemode by default.
Var Details
ammo_type
= TRUE/FALSE decides if the user can switch to it of their own accord
current_firemode_index
The index of the ammo_types/firemodes which we're using right now
right_click_overridden
SET THIS TO TRUE IF YOU OVERRIDE altafterattack() or ANY right click action! If this is FALSE, the gun will show in examine its default right click behavior, which is to switch modes.
shot_type_overlay
If TRUE, when modifystate is TRUE this energy gun gets an overlay based on its selected shot type, like "[icon_state]_disable".
Proc Details
get_charge_ratio
Used by update_icon_state() and update_overlays()
select_fire
This is the proc used in general for when a user switches firemodes. Just goes to next firemode by default.
\ No newline at end of file
diff --git a/obj/item/gun/energy/beam_rifle.html b/obj/item/gun/energy/beam_rifle.html
new file mode 100644
index 000000000000..0ff3befff3ac
--- /dev/null
+++ b/obj/item/gun/energy/beam_rifle.html
@@ -0,0 +1 @@
+/obj/item/gun/energy/beam_rifle - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/hand_item/circlegame.html b/obj/item/hand_item/circlegame.html
new file mode 100644
index 000000000000..84228846a7e2
--- /dev/null
+++ b/obj/item/hand_item/circlegame.html
@@ -0,0 +1 @@
+/obj/item/hand_item/circlegame - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Stage 3B: We face our reckoning (unless we moved away or they're incapacitated)
ownerExamined
Stage 1: The mistake is made
selfGottem
Stage 3A: We face our own failures
waitASecond
Stage 2: Fear sets in
\ No newline at end of file
diff --git a/obj/item/hand_item/kisser.html b/obj/item/hand_item/kisser.html
new file mode 100644
index 000000000000..a8854f4c2239
--- /dev/null
+++ b/obj/item/hand_item/kisser.html
@@ -0,0 +1 @@
+/obj/item/hand_item/kisser - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The kind of projectile this version of the kiss blower fires
Var Details
cheek_kiss
TRUE if the user was aiming anywhere but the mouth when they offer the kiss, if it's offered
kiss_type
The kind of projectile this version of the kiss blower fires
\ No newline at end of file
diff --git a/obj/item/hand_item/slapper.html b/obj/item/hand_item/slapper.html
new file mode 100644
index 000000000000..5cf3eb121bb8
--- /dev/null
+++ b/obj/item/hand_item/slapper.html
@@ -0,0 +1 @@
+/obj/item/hand_item/slapper - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Yeah broh! This is where we do the high-fiving (or high-tenning :o)
Proc Details
on_offer_taken
Yeah broh! This is where we do the high-fiving (or high-tenning :o)
\ No newline at end of file
diff --git a/obj/item/hand_item/slapper/secret_handshake.html b/obj/item/hand_item/slapper/secret_handshake.html
new file mode 100644
index 000000000000..6e57ec3987fb
--- /dev/null
+++ b/obj/item/hand_item/slapper/secret_handshake.html
@@ -0,0 +1 @@
+/obj/item/hand_item/slapper/secret_handshake - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
The typepath of the gang antagonist datum that the person who uses the package should have added to them -- remember that the distinction between e.g. Ballas and Grove Street is on the antag datum level, not the team datum level.
Checks if the user is trying to use the package of the family they are in, and if not, adds them to the family, with some differing processing depending on whether the user is already a family member.
Var Details
gang_to_use
The typepath of the gang antagonist datum that the person who uses the package should have added to them -- remember that the distinction between e.g. Ballas and Grove Street is on the antag datum level, not the team datum level.
handler
References the active families gamemode handler (if one exists), for adding new family members to.
team_to_use
The team datum that the person who uses this package should be added to.
Proc Details
add_to_gang
Adds the user to the family that this package corresponds to, dispenses the free_clothes of that family, and adds them to the handler if it exists.
attempt_join_gang
Checks if the user is trying to use the package of the family they are in, and if not, adds them to the family, with some differing processing depending on whether the user is already a family member.
\ No newline at end of file
diff --git a/obj/item/hardened_spike.html b/obj/item/hardened_spike.html
new file mode 100644
index 000000000000..6628e82f6c04
--- /dev/null
+++ b/obj/item/hardened_spike.html
@@ -0,0 +1 @@
+/obj/item/hardened_spike - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/kinetic_crusher.html b/obj/item/kinetic_crusher.html
new file mode 100644
index 000000000000..7a5e148364c4
--- /dev/null
+++ b/obj/item/kinetic_crusher.html
@@ -0,0 +1 @@
+/obj/item/kinetic_crusher - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/kinetic_crusher/glaive.html b/obj/item/kinetic_crusher/glaive.html
new file mode 100644
index 000000000000..91ee1dbf8c35
--- /dev/null
+++ b/obj/item/kinetic_crusher/glaive.html
@@ -0,0 +1 @@
+/obj/item/kinetic_crusher/glaive - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/kitchen/knife/bloodletter.html b/obj/item/kitchen/knife/bloodletter.html
new file mode 100644
index 000000000000..538ce8ee1871
--- /dev/null
+++ b/obj/item/kitchen/knife/bloodletter.html
@@ -0,0 +1 @@
+/obj/item/kitchen/knife/bloodletter - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Bleed stacks applied when an organic mob target is hit
Var Details
bleed_stacks_per_hit
Bleed stacks applied when an organic mob target is hit
\ No newline at end of file
diff --git a/obj/item/lipstick.html b/obj/item/lipstick.html
new file mode 100644
index 000000000000..b96ad462000b
--- /dev/null
+++ b/obj/item/lipstick.html
@@ -0,0 +1 @@
+/obj/item/lipstick - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
A trait that's applied while someone has this lipstick applied, and is removed when the lipstick is removed
Var Details
lipstick_trait
A trait that's applied while someone has this lipstick applied, and is removed when the lipstick is removed
\ No newline at end of file
diff --git a/obj/item/living_heart.html b/obj/item/living_heart.html
new file mode 100644
index 000000000000..1c9833c7e849
--- /dev/null
+++ b/obj/item/living_heart.html
@@ -0,0 +1 @@
+/obj/item/living_heart - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/mail.html b/obj/item/mail.html
new file mode 100644
index 000000000000..d1e15d20539e
--- /dev/null
+++ b/obj/item/mail.html
@@ -0,0 +1 @@
+/obj/item/mail - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
mail
Mail is tamper-evident and unresealable, postmarked by CentCom for an individual recepient.
Goodies which can be given to anyone. The base weight for cash is 56. For there to be a 50/50 chance of getting a department item, they need 56 weight as well.
proc for unwrapping a mail. Goes just for an unwrapping procces, returns FALSE if it fails.
Var Details
department_colors
mail will have the color of the department the recipient is in.
generic_goodies
Goodies which can be given to anyone. The base weight for cash is 56. For there to be a 50/50 chance of getting a department item, they need 56 weight as well.
goodie_count
How many goodies this mail contains.
postmarked
Does the letter have the postmark overlay?
recipient_ref
Weak reference to who this mail is for and who can open it.
sort_tag
Destination tagging for the mail sorter.
stamp_max
Maximum number of stamps on the letter.
stamp_offset_x
Physical offset of stamps on the object. X direction.
stamp_offset_y
Physical offset of stamps on the object. Y direction.
stamped
Does the letter have a stamp overlay?
stamps
List of all stamp overlays on the letter.
Proc Details
initialize_for_recipient
Accepts a mind to initialize goodies for a piece of mail.
junk_mail
Alternate setup, just complete garbage inside and anyone can open
unwrap
proc for unwrapping a mail. Goes just for an unwrapping procces, returns FALSE if it fails.
\ No newline at end of file
diff --git a/obj/item/mail/junkmail.html b/obj/item/mail/junkmail.html
new file mode 100644
index 000000000000..8f5802ca2c55
--- /dev/null
+++ b/obj/item/mail/junkmail.html
@@ -0,0 +1 @@
+/obj/item/mail/junkmail - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/mecha_parts/chassis/powerarmor.html b/obj/item/mecha_parts/chassis/powerarmor.html
new file mode 100644
index 000000000000..e209f0c0ccf6
--- /dev/null
+++ b/obj/item/mecha_parts/chassis/powerarmor.html
@@ -0,0 +1,2 @@
+/obj/item/mecha_parts/chassis/powerarmor - SPLURT Station 13SPLURT Station 13 - Modules - Types
powerarmor
Custom Mech Parts //////
+
/// Power Armor (Not actually a mech but meh)
\ No newline at end of file
diff --git a/obj/item/mecha_parts/mecha_equipment.html b/obj/item/mecha_parts/mecha_equipment.html
new file mode 100644
index 000000000000..39ddb68b7404
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_equipment.html
@@ -0,0 +1 @@
+/obj/item/mecha_parts/mecha_equipment - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Bitflag. Used by exosuit fabricator to assign sub-categories based on which exosuits can equip this.
range
Bitflag. Determines the range of the equipment.
Proc Details
do_after_checks
do after checks for the mecha equipment do afters
\ No newline at end of file
diff --git a/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove.html b/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove.html
new file mode 100644
index 000000000000..fecba5f07a08
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove.html
@@ -0,0 +1 @@
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Damage done by the glove on contact. Also used to determine throw distance (damage / 5)
Var Details
can_toggle_lethal
TRUE - Can toggle between lethal and non-lethal || FALSE - Cannot toggle
punch_damage
Damage done by the glove on contact. Also used to determine throw distance (damage / 5)
\ No newline at end of file
diff --git a/obj/item/mecha_parts/mecha_tracking.html b/obj/item/mecha_parts/mecha_tracking.html
new file mode 100644
index 000000000000..a0a3b375c4d2
--- /dev/null
+++ b/obj/item/mecha_parts/mecha_tracking.html
@@ -0,0 +1 @@
+/obj/item/mecha_parts/mecha_tracking - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Attempts to EMP mech that the tracker is attached to, if there is one and tracker is not on cooldown
Var Details
ai_beacon
If this beacon allows for AI control. Exists to avoid using istype() on checking
chassis
The Mecha that this tracking beacon is attached to
recharging
Cooldown variable for EMP pulsing
Proc Details
get_mecha_info
Returns a html formatted string describing attached mech status
recharge
Resets recharge variable, allowing tracker to be EMP pulsed again
shock
Attempts to EMP mech that the tracker is attached to, if there is one and tracker is not on cooldown
\ No newline at end of file
diff --git a/obj/item/melee/baton.html b/obj/item/melee/baton.html
new file mode 100644
index 000000000000..ef7db4083760
--- /dev/null
+++ b/obj/item/melee/baton.html
@@ -0,0 +1 @@
+/obj/item/melee/baton - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/melee/classic_baton.html b/obj/item/melee/classic_baton.html
new file mode 100644
index 000000000000..985d7c6262eb
--- /dev/null
+++ b/obj/item/melee/classic_baton.html
@@ -0,0 +1 @@
+/obj/item/melee/classic_baton - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
block mitigation needed to prevent knockdown/disarms
Var Details
block_percent_to_counter
block mitigation needed to prevent knockdown/disarms
\ No newline at end of file
diff --git a/obj/item/melee/rune_knife.html b/obj/item/melee/rune_knife.html
new file mode 100644
index 000000000000..c63fbdf7c1dd
--- /dev/null
+++ b/obj/item/melee/rune_knife.html
@@ -0,0 +1 @@
+/obj/item/melee/rune_knife - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Action of carving runes, gives you the ability to click on floor and choose a rune of your need.
Var Details
blacklisted_turfs
turfs that you cannot draw carvings on
current_runes
A list of current runes
drawing
A check to see if you are in process of drawing a rune
linked_action
Linked action
max_rune_amt
Max amount of runes
Proc Details
carve_rune
Action of carving runes, gives you the ability to click on floor and choose a rune of your need.
\ No newline at end of file
diff --git a/obj/item/melee/skateboard.html b/obj/item/melee/skateboard.html
new file mode 100644
index 000000000000..42ce6be52f8b
--- /dev/null
+++ b/obj/item/melee/skateboard.html
@@ -0,0 +1 @@
+/obj/item/melee/skateboard - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/melee/transforming/cleaving_saw.html b/obj/item/melee/transforming/cleaving_saw.html
new file mode 100644
index 000000000000..2ac01b2f23de
--- /dev/null
+++ b/obj/item/melee/transforming/cleaving_saw.html
@@ -0,0 +1 @@
+/obj/item/melee/transforming/cleaving_saw - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/mining_voucher.html b/obj/item/mining_voucher.html
new file mode 100644
index 000000000000..282e46576ce1
--- /dev/null
+++ b/obj/item/mining_voucher.html
@@ -0,0 +1,2 @@
+/obj/item/mining_voucher - SPLURT Station 13SPLURT Station 13 - Modules - Types
mining_voucher
Mining Equipment Vendor Items
+
Mining Equipment Voucher
\ No newline at end of file
diff --git a/obj/item/mjollnir.html b/obj/item/mjollnir.html
new file mode 100644
index 000000000000..9af0afcbd7bf
--- /dev/null
+++ b/obj/item/mjollnir.html
@@ -0,0 +1 @@
+/obj/item/mjollnir - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/mod/control.html b/obj/item/mod/control.html
new file mode 100644
index 000000000000..1292e3c7e37d
--- /dev/null
+++ b/obj/item/mod/control.html
@@ -0,0 +1,12 @@
+/obj/item/mod/control - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Simple proc to extract the pAI from the MODsuit. It's the proc to call if you want to take it out,
+remove_pai() is there so atom_destruction() doesn't have any risk of sleeping.
Starts the activation sequence, where parts of the suit activate one by one until the whole suit is on
Var Details
activating
If the suit is currently activating/deactivating.
activation_step_time
How long this MOD takes each part to seal.
active
If the suit is deployed and turned on.
ai
AI/pAI mob inhabiting the MOD.
boots
MOD boots.
cell
MOD cell.
cell_drain
Power usage of the MOD.
chestplate
MOD chestplate.
complexity
How much module complexity this MOD is carrying.
complexity_max
How much module complexity can this MOD carry.
cooldown_mod_move
Cooldown for AI moves.
extended_desc
Extended description of the theme.
gauntlets
MOD gauntlets.
helmet
MOD helmet.
initial_modules
Modules the MOD should spawn with.
interface_break
If the suit interface is broken.
malfunctioning
If the suit is malfunctioning.
mod_parts
List of parts (helmet, chestplate, gauntlets, boots).
modules
Modules the MOD currently possesses.
movedelay
Delay between moves as AI.
open
If the suit wire/module hatch is open.
seconds_electrified
How long the MOD is electrified for.
selected_module
Currently used module.
skin
Looks of the MOD.
slowdown_active
Slowdown of the MOD when active.
slowdown_inactive
Slowdown of the MOD when not active.
theme
The MOD's theme, decides on some stuff like armor and statistics.
ui_theme
Theme of the MOD TGUI
wearer
Person wearing the MODsuit.
Proc Details
choose_deploy
Creates a radial menu from which the user chooses parts of the suit to deploy/retract. Repeats until all parts are extended or retracted.
conceal
Retract a part of the suit from the user
deploy
Deploys a part of the suit onto the user.
extract_pai
Simple proc to extract the pAI from the MODsuit. It's the proc to call if you want to take it out,
+remove_pai() is there so atom_destruction() doesn't have any risk of sleeping.
+
user - The person trying to take out the pAI from the MODsuit.
+forced - Whether or not we skip the checks and just eject the pAI. Defaults to FALSE.
+feedback - Whether to give feedback via balloon alerts or not. Defaults to TRUE.
finish_activation
Finishes the suit's activation, starts processing
insert_pai
Simple proc to insert the pAI into the MODsuit.
+
user - The person trying to put the pAI into the MODsuit.
+card - The pAI card we're slotting in the MODsuit.
quick_activation
Quickly deploys all the suit parts and if successful, seals them and turns on the suit. Intended mostly for outfits.
remove_pai
Simple proc that handles the safe removal of the pAI from a MOD control unit.
+
Arguments:
+
+
feedback - Whether or not we want to give balloon alert feedback to the ai. Defaults to FALSE.
+
seal_part
Seals or unseals the given part
toggle_activate
Starts the activation sequence, where parts of the suit activate one by one until the whole suit is on
\ No newline at end of file
diff --git a/obj/item/mod/module.html b/obj/item/mod/module.html
new file mode 100644
index 000000000000..51f7d904a73b
--- /dev/null
+++ b/obj/item/mod/module.html
@@ -0,0 +1 @@
+/obj/item/mod/module - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Updates the signal used by active modules to be activated
Var Details
active
Is the module active
active_power_cost
Power use when active
allowed_in_phaseout
If we're allowed to use this module while phased out.
allowed_inactive
If we're allowed to use this module while the suit is disabled.
complexity
How much space it takes up in the MOD
cooldown_time
Cooldown after use
cooldown_timer
Timer for the cooldown
device
If we're an active module, what item are we?
idle_power_cost
Power use when idle
incompatible_modules
What modules are we incompatible with?
mod
Linked MODsuit
module_type
If it's passive, togglable, usable or active
overlay_icon_file
Icon file for the overlay.
overlay_state_active
Overlay given to the user when the module is active
overlay_state_inactive
Overlay given to the user when the module is inactive
overlay_state_use
Overlay given to the user when the module is used, lasts until cooldown finishes
removable
If it can be removed
tgui_id
ID used by their TGUI
use_mod_colors
Does the overlay use the control unit's colors?
use_power_cost
Power use when used, we call it manually
used_signal
The mouse button needed to use this module
Proc Details
add_ui_configuration
Generates an element of the get_configuration list with a display name, type and value
add_ui_data
Adds additional things to the MODsuit ui_data()
configure_edit
Receives configure edits from the TGUI and edits the vars
drain_power
Drains power from the suit cell
generate_worn_overlay
Generates an icon to be used for the suit's worn overlays
get_configuration
Creates a list of configuring options for this module
on_activation
Called when the module is activated
on_active_process
Called on the MODsuit's process if it is an active module
on_deactivation
Called when the module is deactivated
on_device_deletion
Called when the device gets deleted on active modules
on_equip
Called when the MODsuit is equipped
on_exit
Called when the device moves to a different place on active modules
on_install
Called from MODsuit's install() proc, so when the module is installed.
on_process
Called on the MODsuit's process
on_select
Called when the module is selected from the TGUI
on_select_use
Called when an activated module without a device is used
on_special_click
Called when an activated module without a device is active and the user alt/middle-clicks
on_suit_activation
Called when the MODsuit is activated
on_suit_deactivation
Called when the MODsuit is deactivated
on_unequip
Called when the MODsuit is unequipped
on_uninstall
Called from MODsuit's uninstall() proc, so when the module is uninstalled.
on_use
Called when the module is used
update_signal
Updates the signal used by active modules to be activated
\ No newline at end of file
diff --git a/obj/item/mod/module/anomaly_locked.html b/obj/item/mod/module/anomaly_locked.html
new file mode 100644
index 000000000000..52f1e51ebfdf
--- /dev/null
+++ b/obj/item/mod/module/anomaly_locked.html
@@ -0,0 +1 @@
+/obj/item/mod/module/anomaly_locked - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/mod/module/anomaly_locked/teleporter.html b/obj/item/mod/module/anomaly_locked/teleporter.html
new file mode 100644
index 000000000000..e6520a975fb8
--- /dev/null
+++ b/obj/item/mod/module/anomaly_locked/teleporter.html
@@ -0,0 +1 @@
+/obj/item/mod/module/anomaly_locked/teleporter - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
teleporter
Teleporter - Lets the user teleport to a nearby location.
\ No newline at end of file
diff --git a/obj/item/mod/module/clamp.html b/obj/item/mod/module/clamp.html
new file mode 100644
index 000000000000..3ce0444ba715
--- /dev/null
+++ b/obj/item/mod/module/clamp.html
@@ -0,0 +1 @@
+/obj/item/mod/module/clamp - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
clamp
Hydraulic Clamp - Lets you pick up and drop crates.
\ No newline at end of file
diff --git a/obj/item/mod/module/dispenser.html b/obj/item/mod/module/dispenser.html
new file mode 100644
index 000000000000..cdd16255acf8
--- /dev/null
+++ b/obj/item/mod/module/dispenser.html
@@ -0,0 +1 @@
+/obj/item/mod/module/dispenser - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
dispenser
Dispenser - Dispenses an item after a time passes.
\ No newline at end of file
diff --git a/obj/item/mod/module/dna_lock.html b/obj/item/mod/module/dna_lock.html
new file mode 100644
index 000000000000..b4ab2112cc93
--- /dev/null
+++ b/obj/item/mod/module/dna_lock.html
@@ -0,0 +1,3 @@
+/obj/item/mod/module/dna_lock - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
dna_lock
Longfall
+Thermal Regulator - Naw.
+DNA Lock - Prevents people without the set DNA from activating the suit.
\ No newline at end of file
diff --git a/obj/item/mod/module/drill.html b/obj/item/mod/module/drill.html
new file mode 100644
index 000000000000..d64a63761b6a
--- /dev/null
+++ b/obj/item/mod/module/drill.html
@@ -0,0 +1 @@
+/obj/item/mod/module/drill - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/mod/module/flashlight.html b/obj/item/mod/module/flashlight.html
new file mode 100644
index 000000000000..31dfed75d1b5
--- /dev/null
+++ b/obj/item/mod/module/flashlight.html
@@ -0,0 +1 @@
+/obj/item/mod/module/flashlight - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
flashlight
Flashlight - Gives the suit a customizable flashlight.
\ No newline at end of file
diff --git a/obj/item/mod/module/health_analyzer.html b/obj/item/mod/module/health_analyzer.html
new file mode 100644
index 000000000000..f26784559dcb
--- /dev/null
+++ b/obj/item/mod/module/health_analyzer.html
@@ -0,0 +1 @@
+/obj/item/mod/module/health_analyzer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
health_analyzer
Health Analyzer - Gives the user a ranged health analyzer and their health status in the panel.
\ No newline at end of file
diff --git a/obj/item/mod/module/holster.html b/obj/item/mod/module/holster.html
new file mode 100644
index 000000000000..87a24a10cd23
--- /dev/null
+++ b/obj/item/mod/module/holster.html
@@ -0,0 +1,2 @@
+/obj/item/mod/module/holster - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
holster
Pepper Shoulders
+Holster - Instantly holsters any not huge gun.
\ No newline at end of file
diff --git a/obj/item/mod/module/jetpack.html b/obj/item/mod/module/jetpack.html
new file mode 100644
index 000000000000..f940ab734bd9
--- /dev/null
+++ b/obj/item/mod/module/jetpack.html
@@ -0,0 +1 @@
+/obj/item/mod/module/jetpack - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
jetpack
Ion Jetpack - Lets the user fly freely through space using battery charge.
\ No newline at end of file
diff --git a/obj/item/mod/module/magboot.html b/obj/item/mod/module/magboot.html
new file mode 100644
index 000000000000..a4155cb47974
--- /dev/null
+++ b/obj/item/mod/module/magboot.html
@@ -0,0 +1 @@
+/obj/item/mod/module/magboot - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
magboot
Magnetic Stability - Gives the user a slowdown but makes them negate gravity and be immune to slips.
\ No newline at end of file
diff --git a/obj/item/mod/module/magnetic_harness.html b/obj/item/mod/module/magnetic_harness.html
new file mode 100644
index 000000000000..bd3a37e0ce89
--- /dev/null
+++ b/obj/item/mod/module/magnetic_harness.html
@@ -0,0 +1 @@
+/obj/item/mod/module/magnetic_harness - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
magnetic_harness
Magnetic Harness - Automatically puts guns in your suit storage when you drop them.
The guns already allowed by the modsuit chestplate.
guns_typecache
The typecache of all guns we allow.
magnet_delay
Time before we activate the magnet.
\ No newline at end of file
diff --git a/obj/item/mod/module/megaphone.html b/obj/item/mod/module/megaphone.html
new file mode 100644
index 000000000000..890cd874ff00
--- /dev/null
+++ b/obj/item/mod/module/megaphone.html
@@ -0,0 +1 @@
+/obj/item/mod/module/megaphone - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/mod/module/mister.html b/obj/item/mod/module/mister.html
new file mode 100644
index 000000000000..14f53f33f075
--- /dev/null
+++ b/obj/item/mod/module/mister.html
@@ -0,0 +1 @@
+/obj/item/mod/module/mister - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/mod/module/mouthhole.html b/obj/item/mod/module/mouthhole.html
new file mode 100644
index 000000000000..dd147375b201
--- /dev/null
+++ b/obj/item/mod/module/mouthhole.html
@@ -0,0 +1 @@
+/obj/item/mod/module/mouthhole - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
mouthhole
Eating Apparatus - Lets the user eat/drink with the suit on.
\ No newline at end of file
diff --git a/obj/item/mod/module/orebag.html b/obj/item/mod/module/orebag.html
new file mode 100644
index 000000000000..7b74bf1f32d5
--- /dev/null
+++ b/obj/item/mod/module/orebag.html
@@ -0,0 +1 @@
+/obj/item/mod/module/orebag - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/mod/module/paper_dispenser.html b/obj/item/mod/module/paper_dispenser.html
new file mode 100644
index 000000000000..772fa15c21c2
--- /dev/null
+++ b/obj/item/mod/module/paper_dispenser.html
@@ -0,0 +1 @@
+/obj/item/mod/module/paper_dispenser - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
paper_dispenser
Paper Dispenser - Dispenses (sometimes burning) paper sheets.
The total number of sheets created by this MOD. The more sheets, them more likely they set on fire.
Var Details
num_sheets_dispensed
The total number of sheets created by this MOD. The more sheets, them more likely they set on fire.
\ No newline at end of file
diff --git a/obj/item/mod/module/springlock.html b/obj/item/mod/module/springlock.html
new file mode 100644
index 000000000000..fdc179d82a18
--- /dev/null
+++ b/obj/item/mod/module/springlock.html
@@ -0,0 +1,2 @@
+/obj/item/mod/module/springlock - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
springlock
Sign Language Translator - I want, but no
+Springlock Mechanism - allows your modsuit to activate faster, but reagents are very dangerous.
Delayed death proc of the suit after the wearer is exposed to reagents
Proc Details
on_activate_spring_block
Signal fired when wearer attempts to activate/deactivate suits
on_wearer_exposed
Signal fired when wearer is exposed to reagents
snap_shut
Delayed death proc of the suit after the wearer is exposed to reagents
\ No newline at end of file
diff --git a/obj/item/mod/module/stealth.html b/obj/item/mod/module/stealth.html
new file mode 100644
index 000000000000..9328d51c5d8d
--- /dev/null
+++ b/obj/item/mod/module/stealth.html
@@ -0,0 +1 @@
+/obj/item/mod/module/stealth - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
stealth
Cloaking - Lowers the user's visibility, can be interrupted by being touched or attacked.
\ No newline at end of file
diff --git a/obj/item/mod/module/storage.html b/obj/item/mod/module/storage.html
new file mode 100644
index 000000000000..6c61bd457c5a
--- /dev/null
+++ b/obj/item/mod/module/storage.html
@@ -0,0 +1 @@
+/obj/item/mod/module/storage - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/mod/module/t_ray.html b/obj/item/mod/module/t_ray.html
new file mode 100644
index 000000000000..1570d994ed01
--- /dev/null
+++ b/obj/item/mod/module/t_ray.html
@@ -0,0 +1 @@
+/obj/item/mod/module/t_ray - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
t_ray
T-Ray Scan - Scans the terrain for undertile objects.
\ No newline at end of file
diff --git a/obj/item/mod/module/visor.html b/obj/item/mod/module/visor.html
new file mode 100644
index 000000000000..887526a4fd62
--- /dev/null
+++ b/obj/item/mod/module/visor.html
@@ -0,0 +1 @@
+/obj/item/mod/module/visor - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
visor
Base Visor - Adds a specific HUD and traits to you.
\ No newline at end of file
diff --git a/obj/item/modular_computer.html b/obj/item/modular_computer.html
new file mode 100644
index 000000000000..00a1a5c953d6
--- /dev/null
+++ b/obj/item/modular_computer.html
@@ -0,0 +1,17 @@
+/obj/item/modular_computer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
List of "connection ports" in this computer and the components with which they are plugged
expansion_bays
Lazy List of extra hardware slots that can be used modularly.
looping_sound
Whether or not this modular computer uses the looping sound
max_bays
Number of total expansion bays this computer has available.
soundloop
Looping sound for when the computer is on
Proc Details
alert_call
Displays notification text alongside a soundbeep when requested to by a program.
+
After checking tha the requesting program is allowed to send an alert, creates
+a visible message of the requested text alongside a soundbeep. This proc adds
+text to indicate that the message is coming from this device and the program
+on it, so the supplied text should be the exact message and ending punctuation.
+
Arguments:
+The program calling this proc.
+The message that the program wishes to display.
play_ping
Plays a ping sound.
+
Timers runtime if you try to make them call playsound. Yep.
set_flashlight_color
Sets the computer's light color, if it has a light.
+
Called from ui_act(), this proc takes a color string and applies it.
+It is seperated from ui_act() to be overwritten as needed.
+Arguments:
+
+
color is the string that holds the color value that we should use. Proc auto-fails if this is null.
+
toggle_flashlight
Toggles the computer's flashlight, if it has one.
+
Called from ui_act(), does as the name implies.
+It is seperated from ui_act() to be overwritten as needed.
\ No newline at end of file
diff --git a/obj/item/modular_computer/tablet/integrated.html b/obj/item/modular_computer/tablet/integrated.html
new file mode 100644
index 000000000000..5e8c553d9381
--- /dev/null
+++ b/obj/item/modular_computer/tablet/integrated.html
@@ -0,0 +1,7 @@
+/obj/item/modular_computer/tablet/integrated - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Returns a ref to the RoboTact app, creating the app if need be.
Var Details
borglog
IC log that borgs can view in their personal management app
borgo
Ref to the borg we're installed in. Set by the borg during our creation.
robotact
Ref to the RoboTact app. Important enough to borgs to deserve a ref.
Proc Details
get_robotact
Returns a ref to the RoboTact app, creating the app if need be.
+
The RoboTact app is important for borgs, and so should always be available.
+This proc will look for it in the tablet's robotact var, then check the
+hard drive if the robotact var is unset, and finally attempt to create a new
+copy if the hard drive does not contain the app. If the hard drive rejects
+the new copy (such as due to lack of space), the proc will crash with an error.
+RoboTact is supposed to be undeletable, so these will create runtime messages.
\ No newline at end of file
diff --git a/obj/item/modular_computer/tablet/nukeops.html b/obj/item/modular_computer/tablet/nukeops.html
new file mode 100644
index 000000000000..f34a8b961adb
--- /dev/null
+++ b/obj/item/modular_computer/tablet/nukeops.html
@@ -0,0 +1 @@
+/obj/item/modular_computer/tablet/nukeops - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/modular_computer/tablet/syndicate_contract_uplink/preset/uplink.html b/obj/item/modular_computer/tablet/syndicate_contract_uplink/preset/uplink.html
new file mode 100644
index 000000000000..3fd969caf90b
--- /dev/null
+++ b/obj/item/modular_computer/tablet/syndicate_contract_uplink/preset/uplink.html
@@ -0,0 +1 @@
+/obj/item/modular_computer/tablet/syndicate_contract_uplink/preset/uplink - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Given by the syndicate as part of the contract uplink bundle - loads in the Contractor Uplink.
Proc Details
Initialize
Given by the syndicate as part of the contract uplink bundle - loads in the Contractor Uplink.
\ No newline at end of file
diff --git a/obj/item/nullrod.html b/obj/item/nullrod.html
new file mode 100644
index 000000000000..19b000c0bc0e
--- /dev/null
+++ b/obj/item/nullrod.html
@@ -0,0 +1,9 @@
+/obj/item/nullrod - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
reskin_holy_weapon: Shows a user a list of all available nullrod reskins and based on his choice replaces the nullrod with the reskinned version
Proc Details
check_menu
check_menu: Checks if we are allowed to interact with a radial menu
+
Arguments:
+
+
user The mob interacting with a menu
+
reskin_holy_weapon
reskin_holy_weapon: Shows a user a list of all available nullrod reskins and based on his choice replaces the nullrod with the reskinned version
+
Arguments:
+
+
M The mob choosing a nullrod reskin
+
\ No newline at end of file
diff --git a/obj/item/organ.html b/obj/item/organ.html
new file mode 100644
index 000000000000..89d4b674d89a
--- /dev/null
+++ b/obj/item/organ.html
@@ -0,0 +1,13 @@
+/obj/item/organ - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
SETS an organ's damage to the amount "d", and in doing so clears or sets the failing flag, good for when you have an effect that should fix an organ if broken
Var Details
healing_factor
Healing factor and decay factor function on % of maxhealth, and do not work by applying a static number per tick
prev_damage
Organ variables for determining what we alert the owner with when they pass/clear the damage thresholds
useable
When you take a bite you cant jam it in for surgery anymore.
Proc Details
applyOrganDamage
Adjusts an organ's damage by the amount "d", up to a maximum amount, which is by default max damage
check_damage_thresholds
+
check_damage_thresholds
+
+
input: M (a mob, the owner of the organ we call the proc on)
+
output: returns a message should get displayed.
+
description: By checking our current damage against our previous damage, we can decide whether we've passed an organ threshold.
+
+
If we have, send the corresponding threshold message to the owner, if such a message exists.
+
+
+
+
+
setOrganDamage
SETS an organ's damage to the amount "d", and in doing so clears or sets the failing flag, good for when you have an effect that should fix an organ if broken
\ No newline at end of file
diff --git a/obj/item/organ/brain.html b/obj/item/organ/brain.html
new file mode 100644
index 000000000000..114225b4f0cb
--- /dev/null
+++ b/obj/item/organ/brain.html
@@ -0,0 +1 @@
+/obj/item/organ/brain - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
The brain's organ variables are significantly more different than the other organs, with half the decay rate for balance reasons, and twice the maxHealth
The brain's organ variables are significantly more different than the other organs, with half the decay rate for balance reasons, and twice the maxHealth
Proc Details
has_trauma_type
TRAUMAS
\ No newline at end of file
diff --git a/obj/item/organ/eyes.html b/obj/item/organ/eyes.html
new file mode 100644
index 000000000000..ca067446468f
--- /dev/null
+++ b/obj/item/organ/eyes.html
@@ -0,0 +1 @@
+/obj/item/organ/eyes - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Applies effects to our owner based on how damaged our eyes are
Proc Details
apply_damaged_eye_effects
Applies effects to our owner based on how damaged our eyes are
\ No newline at end of file
diff --git a/obj/item/organ/genital.html b/obj/item/organ/genital.html
new file mode 100644
index 000000000000..417ecfe24af9
--- /dev/null
+++ b/obj/item/organ/genital.html
@@ -0,0 +1 @@
+/obj/item/organ/genital - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Toggles whether such genital can always be accessed
Var Details
always_accessible
Controls whenever a genital is always accessible
Proc Details
toggle_accessibility
Toggles whether such genital can always be accessed
\ No newline at end of file
diff --git a/obj/item/paper.html b/obj/item/paper.html
new file mode 100644
index 000000000000..61e8e1d1580a
--- /dev/null
+++ b/obj/item/paper.html
@@ -0,0 +1,11 @@
+/obj/item/paper - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
paper
Paper is now using markdown (like in github pull notes) for ALL rendering
+so we do loose a bit of functionality but we gain in easy of use of
+paper and getting rid of that crashing bug
This proc sets the text of the paper and updates the
+icons. You can modify the pen_color after if need
+be.
Var Details
contact_poison
Overlay info
form_fields
When the sheet can be "filled out"
+This is an associated list
info
What's actually written on the paper.
stamped
Positioning for the stamp in tgui
stamps
The (text for the) stamps on the paper.
Proc Details
copy
This proc copies this sheet of paper to a new
+sheet. Used by carbon papers and the photocopier machine.
setText
This proc sets the text of the paper and updates the
+icons. You can modify the pen_color after if need
+be.
\ No newline at end of file
diff --git a/obj/item/paper/natural.html b/obj/item/paper/natural.html
new file mode 100644
index 000000000000..524476ba99d4
--- /dev/null
+++ b/obj/item/paper/natural.html
@@ -0,0 +1 @@
+/obj/item/paper/natural - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/pet_carrier/bluespace.html b/obj/item/pet_carrier/bluespace.html
new file mode 100644
index 000000000000..5ab4d2d92bfc
--- /dev/null
+++ b/obj/item/pet_carrier/bluespace.html
@@ -0,0 +1 @@
+/obj/item/pet_carrier/bluespace - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
level until the reagent gets INGEST ed instead of TOUCH
sipping_probably
prob50 level of sipping
transfer_rate
chem transfer rate / second
\ No newline at end of file
diff --git a/obj/item/pinpointer.html b/obj/item/pinpointer.html
new file mode 100644
index 000000000000..c81ec211299f
--- /dev/null
+++ b/obj/item/pinpointer.html
@@ -0,0 +1 @@
+/obj/item/pinpointer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/pitchfork.html b/obj/item/pitchfork.html
new file mode 100644
index 000000000000..775131df99cc
--- /dev/null
+++ b/obj/item/pitchfork.html
@@ -0,0 +1 @@
+/obj/item/pitchfork - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/price_tagger.html b/obj/item/price_tagger.html
new file mode 100644
index 000000000000..927c32668359
--- /dev/null
+++ b/obj/item/price_tagger.html
@@ -0,0 +1 @@
+/obj/item/price_tagger - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/projectile.html b/obj/item/projectile.html
new file mode 100644
index 000000000000..6ae318d0086e
--- /dev/null
+++ b/obj/item/projectile.html
@@ -0,0 +1,97 @@
+/obj/item/projectile - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
We already impacted these things, do not impact them again. Used to make sure we can pierce things we want to pierce. Lazylist, typecache style (object = TRUE) for performance.
The number of pixels we increment by. THIS IS NOT SPEED, DO NOT TOUCH THIS UNLESS YOU KNOW WHAT YOU ARE DOING. In general, lower values means more linetrace accuracy up to a point at cost of performance.
Bitflag for things the projectile should just phase through entirely - No hitting unless direct target and [phasing_ignore_direct_target] is FALSE. Uses pass_flags flags.
On ricochet, if ricochet_auto_aim_range is nonzero, we'll consider any mobs within this range of the normal angle of incidence to home in on, higher = more auto aim
On ricochet, if nonzero, we consider all mobs within this range of our projectile at the time of ricochet to home in on like Revolver Ocelot, as governed by ricochet_auto_aim_angle
Called when the projectile hits something
+This can either be from it bumping something,
+or it passing over a turf/being crossed and scanning that there is infact
+a valid target it needs to hit.
+This target isn't however necessarily WHAT it hits
+that is determined by process_hit and select_target.
Artificially modified to be called at around every world.icon_size pixels of movement.
+WARNING: Range() can only be called once per pixel_increment_amount pixels.
The proc to make the projectile go, using a simulated pixel movement line trace.
+Note: deciseconds_equivalent is currently only used for homing, times is the number of times to move pixel_increment_amount.
+Trajectory multiplier directly modifies the factor of pixel_increment_amount to go per time.
+It's complicated, so probably just don't mess with this unless you know what you're doing.
The primary workhorse proc of projectile impacts.
+This is a RECURSIVE call - process_hit is called on the first selected target, and then repeatedly called if the projectile still hasn't been deleted.
Scan if we should hit something and hit it if we need to
+The difference between this and handling in Impact is
+In this we strictly check if we need to Impact() something in specific
+If we do, we do
+We don't even check if it got hit already - Impact() does that
+In impact there's more code for selecting WHAT to hit
+So this proc is more of checking if we should hit something at all BY having an atom cross us.
How much we want to drop the embed_chance value, if we can embed, per tile, for falloff purposes
force_hit
If the object being hit can pass ths damage on to something else, it should not do it for this bullet
hit_stunned_targets
If TRUE, hit mobs even if they're on the floor and not our target
hit_threshhold
If objects are below this layer, we pass through them
hitscan_effect_generation
Used in generate_hitscan_tracers to determine which "cycle" we're on.
hitscan_movement_decisecond_equivalency
How many deciseconds are each hitscan movement considered. Used for homing and other things that use seconds for timing rather than ticks.
homing_turn_speed
How fast the projectile turns towards its homing targets, in angle per second.
ignore_source_check
If TRUE, we can hit our firer.
impacted
We already impacted these things, do not impact them again. Used to make sure we can pierce things we want to pierce. Lazylist, typecache style (object = TRUE) for performance.
pass_flags
+
+
PROJECTILE PIERCING
+* WARNING:
+* Projectile piercing MUST be done using these variables.
+* Ordinary passflags will result in can_hit_target being false unless directly clicked on - similar to projectile_phasing but without even going to process_hit.
+* The two flag variables below both use pass flags.
+* In the context of LETPASStHROW, it means the projectile will ignore things that are currently "in the air" from a throw.
+
* Also, projectiles sense hits using Bump(), and then pierce them if necessary.
+* They simply do not follow conventional movement rules.
+* NEVER flag a projectile as PHASING movement type.
+* If you so badly need to make one go through *everything*, override check_pierce() for your projectile to always return PROJECTILE_PIERCE_PHASE/HIT.
+
+
+
+
The "usual" flags of pass_flags is used in that can_hit_target ignores these unless they're specifically targeted/clicked on. This behavior entirely bypasses process_hit if triggered, rather than phasing which uses prehit_pierce() to check.
phasing_ignore_direct_target
If FALSE, allow us to hit something directly targeted/clicked/whatnot even if we're able to phase through it
pierces
number of times we've pierced something. Incremented BEFORE bullet_act and on_hit proc!
pixel_increment_amount
The number of pixels we increment by. THIS IS NOT SPEED, DO NOT TOUCH THIS UNLESS YOU KNOW WHAT YOU ARE DOING. In general, lower values means more linetrace accuracy up to a point at cost of performance.
pixel_move_interrupted
Used to detect jumps in the middle of a pixel_move. Yes, this is ugly as sin code-wise but it works.
pixels_per_second
Pixels moved per second.
pixels_range_leftover
"leftover" pixels for Range() calculation as pixel_move() was moved to simulated semi-pixel movement and Range() is in tiles.
pixels_tick_leftover
"leftover" tick pixels and stuff yeah, so we don't round off things and introducing tracing inaccuracy.
projectile_phasing
Bitflag for things the projectile should just phase through entirely - No hitting unless direct target and [phasing_ignore_direct_target] is FALSE. Uses pass_flags flags.
projectile_piercing
Bitflag for things the projectile should hit, but pierce through without deleting itself. Defers to projectile_phasing. Uses pass_flags flags.
range
Range of the projectile, de-incrementing every step. The projectile deletes itself at 0. This is in tiles.
ricochet_auto_aim_angle
On ricochet, if ricochet_auto_aim_range is nonzero, we'll consider any mobs within this range of the normal angle of incidence to home in on, higher = more auto aim
ricochet_auto_aim_range
On ricochet, if nonzero, we consider all mobs within this range of our projectile at the time of ricochet to home in on like Revolver Ocelot, as governed by ricochet_auto_aim_angle
ricochet_chance
0-100, the base chance of ricocheting, before being modified by the atom we shoot and our chance decay
ricochet_decay_chance
0-1 (or more, I guess) multiplier, the ricochet_chance is modified by multiplying this after each ricochet
ricochet_decay_damage
0-1 (or more, I guess) multiplier, the projectile's damage is modified by multiplying this after each ricochet
ricochet_incidence_leeway
the angle of impact must be within this many degrees of the struck surface, set to 0 to allow any angle
ricochets
how many times we've ricochet'd so far (instance variable, not a stat)
ricochets_max
how many times we can ricochet max
sharpness
For telling whether we want to roll for bone breaking or lacerations if we're bothering with wounds
shrapnel_type
If defined, on hit we create an item of this type then call hitby() on the hit target with this, mainly used for embedding items (bullets) in targets
temporary_unstoppable_movement
We are flagged PHASING temporarily to not stop moving when we Bump something but want to keep going anyways.
wound_falloff_tile
How much we want to drop both wound_bonus and bare_wound_bonus (to a minimum of 0 for the latter) per tile, for falloff purposes
zone_accuracy_factor
factor to multiply by for zone accuracy percent.
Proc Details
CanPassThrough
Projectile can pass through
+Used to not even attempt to Bump() or fail to Cross() anything we already hit.
Crossed
Projectile crossed: When something enters a projectile's tile, make sure the projectile hits it if it should be hitting it.
Impact
Called when the projectile hits something
+This can either be from it bumping something,
+or it passing over a turf/being crossed and scanning that there is infact
+a valid target it needs to hit.
+This target isn't however necessarily WHAT it hits
+that is determined by process_hit and select_target.
+
Furthermore, this proc shouldn't check can_hit_target - this should only be called if can hit target is already checked.
+Also, we select_target to find what to process_hit first.
Moved
Projectile moved:
+
If not fired yet, do not do anything. Else,
+
If temporary unstoppable movement used for piercing through things we already hit (impacted list) is set, unset it.
+Scan turf we're now in for anything we can/should hit. This is useful for hitting non dense objects the user
+directly clicks on, as well as for PHASING projectiles to be able to hit things at all as they don't ever Bump().
Range
Artificially modified to be called at around every world.icon_size pixels of movement.
+WARNING: Range() can only be called once per pixel_increment_amount pixels.
pixel_move
The proc to make the projectile go, using a simulated pixel movement line trace.
+Note: deciseconds_equivalent is currently only used for homing, times is the number of times to move pixel_increment_amount.
+Trajectory multiplier directly modifies the factor of pixel_increment_amount to go per time.
+It's complicated, so probably just don't mess with this unless you know what you're doing.
prehit_pierce
Checks if we should pierce something.
+
NOT meant to be a pure proc, since this replaces prehit() which was used to do things.
+Return PROJECTILE_DELETE_WITHOUT_HITTING to delete projectile without hitting at all!
process_hit
The primary workhorse proc of projectile impacts.
+This is a RECURSIVE call - process_hit is called on the first selected target, and then repeatedly called if the projectile still hasn't been deleted.
+
Order of operations:
+
+
Checks if we are deleted, or if we're somehow trying to hit a null, in which case, bail out
+
Adds the thing we're hitting to impacted so we can make sure we don't doublehit
+
Checks piercing - stores this.
+Afterwards:
+Hit and delete, hit without deleting and pass through, pass through without hitting, or delete without hitting depending on result
+If we're going through without hitting, find something else to hit if possible and recurse, set unstoppable movement to true
+If we're deleting without hitting, delete and return
+Otherwise, send signal of COMSIG_PROJECTILE_PREHIT to target
+Then, hit, deleting ourselves if necessary.
+@params
+T - Turf we're on/supposedly hitting
+target - target we're hitting
+bumped - target we originally bumped. it's here to ensure that if something blocks our projectile by means of Cross() failure, we hit it
+even if it is not dense.
+hit_something - only should be set by recursive calling by this proc - tracks if we hit something already
+
+
Returns if we hit something.
+
+
Silly-Cons
+
return_predicted_turf_after_moves
one move is a tile.
scan_crossed_hit
Scan if we should hit something and hit it if we need to
+The difference between this and handling in Impact is
+In this we strictly check if we need to Impact() something in specific
+If we do, we do
+We don't even check if it got hit already - Impact() does that
+In impact there's more code for selecting WHAT to hit
+So this proc is more of checking if we should hit something at all BY having an atom cross us.
scan_moved_turf
Scans if we should hit something on the turf we just moved to if we haven't already
+
This proc is a little high in overhead but allows us to not snowflake CanPass in living and other things.
select_target
Selects a target to hit from a turf
+
@params
+T - The turf
+target - The "preferred" atom to hit, usually what we Bumped() first.
+bumped - used to track if something is the reason we impacted in the first place.
+If set, this atom is always treated as dense by can_hit_target.
+
Priority:
+0. Anything that is already in impacted is ignored no matter what. Furthermore, in any bracket, if the target atom parameter is in it, that's hit first.
+Furthermore, can_hit_target is always checked. This (entire proc) is PERFORMANCE OVERHEAD!! But, it shouldn't be ""too"" bad and I frankly don't have a better generic non snowflakey way that I can think of right now at 3 AM.
+FURTHERMORE, mobs/objs have a density check from can_hit_target - to hit non dense objects over a turf, you must click on them, same for mobs that usually wouldn't get hit.
+
+
The thing originally aimed at/clicked on
+
Mobs - picks lowest buckled mob to prevent scarp piggybacking memes
+
Objs
+
Turf
+
Nothing
+
\ No newline at end of file
diff --git a/obj/item/projectile/frost_orb.html b/obj/item/projectile/frost_orb.html
new file mode 100644
index 000000000000..785d1c86f1a0
--- /dev/null
+++ b/obj/item/projectile/frost_orb.html
@@ -0,0 +1 @@
+/obj/item/projectile/frost_orb - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Called when the orb is exploding, shoots out projectiles
Proc Details
orb_explosion
Called when the orb is exploding, shoots out projectiles
\ No newline at end of file
diff --git a/obj/item/projectile/kiss.html b/obj/item/projectile/kiss.html
new file mode 100644
index 000000000000..ae1d9c76052d
--- /dev/null
+++ b/obj/item/projectile/kiss.html
@@ -0,0 +1,5 @@
+/obj/item/projectile/kiss - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
To get around shielded modsuits & such being set off by kisses when they shouldn't, we take a page from hallucination projectiles
+and simply fake our on hit effects. This lets kisses remain incorporeal without having to make some new trait for this one niche situation.
+This fake hit only happens if we can deal damage and if we hit a living thing. Otherwise, we just do normal on hit effects.
Proc Details
harmless_on_hit
To get around shielded modsuits & such being set off by kisses when they shouldn't, we take a page from hallucination projectiles
+and simply fake our on hit effects. This lets kisses remain incorporeal without having to make some new trait for this one niche situation.
+This fake hit only happens if we can deal damage and if we hit a living thing. Otherwise, we just do normal on hit effects.
\ No newline at end of file
diff --git a/obj/item/projectile/tether.html b/obj/item/projectile/tether.html
new file mode 100644
index 000000000000..6c928a439f2e
--- /dev/null
+++ b/obj/item/projectile/tether.html
@@ -0,0 +1 @@
+/obj/item/projectile/tether - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/raw_anomaly_core.html b/obj/item/raw_anomaly_core.html
new file mode 100644
index 000000000000..ad8cf5a8fb04
--- /dev/null
+++ b/obj/item/raw_anomaly_core.html
@@ -0,0 +1,9 @@
+/obj/item/raw_anomaly_core - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Raw Anomaly Cores
The current precursor to anomaly cores, these are manufactured into 'finished' anomaly cores for use in research, items, and more.
+
The current amounts created is stored in SSresearch.created_anomaly_types[ANOMALY_CORE_TYPE_DEFINE] = amount
+The hard limits are in code/__DEFINES/anomalies.dm
Created the resulting core after being "made" into it.
Var Details
anomaly_type
Anomaly type
Proc Details
create_core
Created the resulting core after being "made" into it.
+
Arguments:
+
+
newloc - Where the new core will be created
+
del_self - should we qdel(src)
+
count_towards_limit - should we increment the amount of created cores on SSresearch
+
\ No newline at end of file
diff --git a/obj/item/rcl.html b/obj/item/rcl.html
new file mode 100644
index 000000000000..ee29f11dc4ca
--- /dev/null
+++ b/obj/item/rcl.html
@@ -0,0 +1 @@
+/obj/item/rcl - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/reagent_containers/food.html b/obj/item/reagent_containers/food.html
new file mode 100644
index 000000000000..994d6810c524
--- /dev/null
+++ b/obj/item/reagent_containers/food.html
@@ -0,0 +1,4 @@
+/obj/item/reagent_containers/food - SPLURT Station 13SPLURT Station 13 - Modules - Types
food
Food.
+
Note: When adding food items with dummy parents, make sure to add
+the parent to the exclusion list in code/__HELPERS/unsorted.dm's
+get_random_food proc.
\ No newline at end of file
diff --git a/obj/item/reagent_containers/food/snacks.html b/obj/item/reagent_containers/food/snacks.html
new file mode 100644
index 000000000000..2ae039e3fdde
--- /dev/null
+++ b/obj/item/reagent_containers/food/snacks.html
@@ -0,0 +1,39 @@
+/obj/item/reagent_containers/food/snacks - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
snacks
+
Snacks
+
+
Items in the "Snacks" subcategory are food items that people actually eat. The key points are that they are created
+already filled with reagents and are destroyed when empty. Additionally, they make a "munching" noise when eaten.
+
Notes by Darem: Food in the "snacks" subtype can hold a maximum of 50 units. Generally speaking, you don't want to go over 40
+total for the item because you want to leave space for extra condiments. If you want effect besides healing, add a reagent for
+it. Try to stick to existing reagents when possible (so if you want a stronger healing effect, just use omnizine). On use
+effect (such as the old officer eating a donut code) requires a unique reagent (unless you can figure out a better way).
+
The nutriment reagent and bitesize variable replace the old heal_amt and amount variables. Each unit of nutriment is equal to
+2 of the old heal_amt variable. Bitesize is the rate at which the reagents are consumed. So if you have 6 nutriment and a
+bitesize of 2, then it'll take 3 bites to eat. Unlike the old system, the contained reagents are evenly spread among all
+the bites. No more contained reagents = no more bites.
+
Food formatting and crafting examples.
+
/obj/item/reagent_containers/food/snacks/saltedcornchips //Identification path for the object.
+ name = "salted corn chips" //Name that displays when hovered over.
+ desc = "Manufactured in a far away factory." //Description on examine.
+ icon_state = "saltychip" //Refers to an icon, usually in food.dmi
+ bitesize = 3 //How many reagents are consumed in each bite.
+ list_reagents = list(/datum/reagent/consumable/nutriment = 6, //What's inside the snack, but only if spawned. For example, from a chemical reaction, vendor, or slime core spawn.
+ /datum/reagent/consumable/nutriment/vitamin = 2)
+ bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, //What's -added- to the food, in addition to the reagents contained inside the foods used to craft it. Basically, a reward for cooking.
+ /datum/reagent/consumable/nutriment/vitamin = 1) ^^For example. Egg+Egg = 2Egg + Bonus Reagents.
+ filling_color = "#F4A460" //What color it will use if put in a custom food.
+ tastes = list("salt" = 1, "oil" = 1) //Descriptive flavoring displayed when eaten. IE: "You taste a bit of salt and a bit of oil."
+ foodtype = GRAIN | JUNKFOOD //Tag for racial or custom food preferences. IE: Most Lizards cannot have GRAIN.
+
+Crafting Recipe (See files in code/modules/food_and_drinks/recipes/tablecraft/)
+
+/datum/crafting_recipe/food/nachos
+ name ="Salted Corn Chips" //Name that displays in the Crafting UI
+ reqs = list( //The list of ingredients to make the food.
+ /obj/item/reagent_containers/food/snacks/tortilla = 1,
+ /datum/reagent/consumable/sodiumchloride = 1 //As a note, reagents and non-food items don't get added to the food. If you
+ ) ^^want the reagents, make sure the food item has it listed under bonus_reagents.
+ result = /obj/item/reagent_containers/food/snacks/saltedcornchips //Resulting object.
+ subcategory = CAT_MISCFOOD //Subcategory the food falls under in the Food Tab of the crafting menu.
+
+
All foods are distributed among various categories. Use common sense.
\ No newline at end of file
diff --git a/obj/item/reagent_containers/food/snacks/donut.html b/obj/item/reagent_containers/food/snacks/donut.html
new file mode 100644
index 000000000000..7fac9edef409
--- /dev/null
+++ b/obj/item/reagent_containers/food/snacks/donut.html
@@ -0,0 +1 @@
+/obj/item/reagent_containers/food/snacks/donut - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Returns the sprite of the donut while in a donut box
Proc Details
in_box_sprite
Returns the sprite of the donut while in a donut box
\ No newline at end of file
diff --git a/obj/item/reagent_containers/spray.html b/obj/item/reagent_containers/spray.html
new file mode 100644
index 000000000000..8cc61fe57780
--- /dev/null
+++ b/obj/item/reagent_containers/spray.html
@@ -0,0 +1 @@
+/obj/item/reagent_containers/spray - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Amount of time it takes for a spray to completely travel.
Var Details
last_spray
Last world.time of spray
spray_cooldown
Spray cooldown
spray_delay
Amount of time it takes for a spray to completely travel.
\ No newline at end of file
diff --git a/obj/item/reagent_containers/syringe.html b/obj/item/reagent_containers/syringe.html
new file mode 100644
index 000000000000..9111259b2225
--- /dev/null
+++ b/obj/item/reagent_containers/syringe.html
@@ -0,0 +1 @@
+/obj/item/reagent_containers/syringe - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/relic.html b/obj/item/relic.html
new file mode 100644
index 000000000000..8691894686a4
--- /dev/null
+++ b/obj/item/relic.html
@@ -0,0 +1 @@
+/obj/item/relic - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/restraints.html b/obj/item/restraints.html
new file mode 100644
index 000000000000..3ad256d80263
--- /dev/null
+++ b/obj/item/restraints.html
@@ -0,0 +1 @@
+/obj/item/restraints - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/restraints/legcuffs/bola.html b/obj/item/restraints/legcuffs/bola.html
new file mode 100644
index 000000000000..0e7fd4543d6f
--- /dev/null
+++ b/obj/item/restraints/legcuffs/bola.html
@@ -0,0 +1,5 @@
+/obj/item/restraints/legcuffs/bola - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/resurrection_crystal.html b/obj/item/resurrection_crystal.html
new file mode 100644
index 000000000000..a32a1d7f0031
--- /dev/null
+++ b/obj/item/resurrection_crystal.html
@@ -0,0 +1 @@
+/obj/item/resurrection_crystal - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Resurrects the target when they die by cloning them into a new duplicate body and transferring their mind to the clone on a safe station turf
Proc Details
resurrect
Resurrects the target when they die by cloning them into a new duplicate body and transferring their mind to the clone on a safe station turf
\ No newline at end of file
diff --git a/obj/item/reverse_bear_trap.html b/obj/item/reverse_bear_trap.html
new file mode 100644
index 000000000000..ded5ec49f468
--- /dev/null
+++ b/obj/item/reverse_bear_trap.html
@@ -0,0 +1 @@
+/obj/item/reverse_bear_trap - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
note: this timer overlay increments one frame every second (to simulate a clock ticking). If you want to instead have it do a full cycle in a minute, set the 'delay' of each frame of the icon overlay to 75 rather than 10, and the worn overlay to twice that.
Proc Details
arm
note: this timer overlay increments one frame every second (to simulate a clock ticking). If you want to instead have it do a full cycle in a minute, set the 'delay' of each frame of the icon overlay to 75 rather than 10, and the worn overlay to twice that.
\ No newline at end of file
diff --git a/obj/item/robot_module.html b/obj/item/robot_module.html
new file mode 100644
index 000000000000..2148d6809a83
--- /dev/null
+++ b/obj/item/robot_module.html
@@ -0,0 +1,5 @@
+/obj/item/robot_module - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
check_menu: Checks if we are allowed to interact with a radial menu
Proc Details
Initialize
End Cargo Borg
check_menu
check_menu: Checks if we are allowed to interact with a radial menu
+
Arguments:
+
+
user The mob interacting with a menu
+
\ No newline at end of file
diff --git a/obj/item/robot_suit.html b/obj/item/robot_suit.html
new file mode 100644
index 000000000000..647ebe0e39c1
--- /dev/null
+++ b/obj/item/robot_suit.html
@@ -0,0 +1,3 @@
+/obj/item/robot_suit - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Drops all included parts to the passed location
+This will also dissassemble the parts being dropped into components as well
Proc Details
drop_all_parts
Drops all included parts to the passed location
+This will also dissassemble the parts being dropped into components as well
\ No newline at end of file
diff --git a/obj/item/rtl.html b/obj/item/rtl.html
new file mode 100644
index 000000000000..8dd237093849
--- /dev/null
+++ b/obj/item/rtl.html
@@ -0,0 +1 @@
+/obj/item/rtl - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/sales_tagger.html b/obj/item/sales_tagger.html
new file mode 100644
index 000000000000..14cb2262f2c5
--- /dev/null
+++ b/obj/item/sales_tagger.html
@@ -0,0 +1,3 @@
+/obj/item/sales_tagger - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Details the percentage the scanned account recieves off the final sale.
+The person who tagged this will receive the sale value multiplied by this number.
Details the percentage the scanned account recieves off the final sale.
+The person who tagged this will receive the sale value multiplied by this number.
payments_acc
The account which is recieving the split profits.
\ No newline at end of file
diff --git a/obj/item/seeds.html b/obj/item/seeds.html
new file mode 100644
index 000000000000..6bd6adc05ed2
--- /dev/null
+++ b/obj/item/seeds.html
@@ -0,0 +1 @@
+/obj/item/seeds - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/shield.html b/obj/item/shield.html
new file mode 100644
index 000000000000..1540b45328ca
--- /dev/null
+++ b/obj/item/shield.html
@@ -0,0 +1 @@
+/obj/item/shield - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/shield/riot/implant.html b/obj/item/shield/riot/implant.html
new file mode 100644
index 000000000000..88af97dd1ba7
--- /dev/null
+++ b/obj/item/shield/riot/implant.html
@@ -0,0 +1 @@
+/obj/item/shield/riot/implant - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Entirely overriden take_damage. This shouldn't exist outside of an implant (other than maybe christmas).
Proc Details
take_damage
Entirely overriden take_damage. This shouldn't exist outside of an implant (other than maybe christmas).
\ No newline at end of file
diff --git a/obj/item/shockpaddles.html b/obj/item/shockpaddles.html
new file mode 100644
index 000000000000..a8ff94062bf9
--- /dev/null
+++ b/obj/item/shockpaddles.html
@@ -0,0 +1 @@
+/obj/item/shockpaddles - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/singularityhammer.html b/obj/item/singularityhammer.html
new file mode 100644
index 000000000000..9e710010916f
--- /dev/null
+++ b/obj/item/singularityhammer.html
@@ -0,0 +1 @@
+/obj/item/singularityhammer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/soulstone.html b/obj/item/soulstone.html
new file mode 100644
index 000000000000..16b5360042e9
--- /dev/null
+++ b/obj/item/soulstone.html
@@ -0,0 +1 @@
+/obj/item/soulstone - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/spear.html b/obj/item/spear.html
new file mode 100644
index 000000000000..394ce5b9b7c1
--- /dev/null
+++ b/obj/item/spear.html
@@ -0,0 +1 @@
+/obj/item/spear - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/stack.html b/obj/item/stack.html
new file mode 100644
index 000000000000..6f8f179ea410
--- /dev/null
+++ b/obj/item/stack.html
@@ -0,0 +1,72 @@
+/obj/item/stack - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
How much blood flow this stack can absorb if used as a bandage on a cut wound, note that absorption is how much we lower the flow rate, not the raw amount of blood we suck up
How quickly we lower the blood flow on a cut wound we're bandaging. Expected lifetime of this bandage in ticks is thus absorption_capacity/absorption_rate, or until the cut heals, whichever comes first
If set and this used as a splint for a broken bone wound, this is used as a multiplier for applicable slowdowns (lower = better) (also for speeding up burn recoveries)
How much blood flow this stack can absorb if used as a bandage on a cut wound, note that absorption is how much we lower the flow rate, not the raw amount of blood we suck up
absorption_rate
How quickly we lower the blood flow on a cut wound we're bandaging. Expected lifetime of this bandage in ticks is thus absorption_capacity/absorption_rate, or until the cut heals, whichever comes first
material_type
Datum material type that this stack is made of
matter_amount
Amount of matter for RCD
splint_factor
If set and this used as a splint for a broken bone wound, this is used as a multiplier for applicable slowdowns (lower = better) (also for speeding up burn recoveries)
Proc Details
add
+
+
Adds some number of units to this stack.
+
+
+
Arguments:
+
+
+
+
_amount: The number of units to add to this stack.
+
+
+
build_recipe
Returns a list of properties of a given recipe
+
Arguments:
+
+
R - The stack recipe we are using to get a list of properties
+
can_merge
+
+
Checks whether this stack can merge itself into another stack.
amount: The number of units to split from this stack.
+
+
+
update_custom_materials
Updates the custom materials list of this stack.
\ No newline at end of file
diff --git a/obj/item/stack/cannonball.html b/obj/item/stack/cannonball.html
new file mode 100644
index 000000000000..e0bcd349de4e
--- /dev/null
+++ b/obj/item/stack/cannonball.html
@@ -0,0 +1 @@
+/obj/item/stack/cannonball - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
the type of projectile this type of cannonball item turns into.
Var Details
projectile_type
the type of projectile this type of cannonball item turns into.
\ No newline at end of file
diff --git a/obj/item/stack/conveyor.html b/obj/item/stack/conveyor.html
new file mode 100644
index 000000000000..5cbd20721833
--- /dev/null
+++ b/obj/item/stack/conveyor.html
@@ -0,0 +1 @@
+/obj/item/stack/conveyor - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/stack/ducts.html b/obj/item/stack/ducts.html
new file mode 100644
index 000000000000..cedd005392ac
--- /dev/null
+++ b/obj/item/stack/ducts.html
@@ -0,0 +1 @@
+/obj/item/stack/ducts - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Assoc index with all the available layers. yes five might be a bit much. Colors uses a global by the way
Var Details
duct_color
Color of our duct
duct_layer
Default layer of our duct
layers
Assoc index with all the available layers. yes five might be a bit much. Colors uses a global by the way
\ No newline at end of file
diff --git a/obj/item/stack/license_plates/filled.html b/obj/item/stack/license_plates/filled.html
new file mode 100644
index 000000000000..a5b495dd0345
--- /dev/null
+++ b/obj/item/stack/license_plates/filled.html
@@ -0,0 +1 @@
+/obj/item/stack/license_plates/filled - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/stack/medical.html b/obj/item/stack/medical.html
new file mode 100644
index 000000000000..744574ea0d77
--- /dev/null
+++ b/obj/item/stack/medical.html
@@ -0,0 +1 @@
+/obj/item/stack/medical - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
How much we reduce bleeding per application on cut wounds
Var Details
flesh_regeneration
How much we add to flesh_healing for burn wounds on application
heal_brute
How much brute we heal per application
heal_burn
How much burn we heal per application
sanitization
How much sanitization to apply to burns on application
stop_bleeding
How much we reduce bleeding per application on cut wounds
\ No newline at end of file
diff --git a/obj/item/stack/medical/mesh.html b/obj/item/stack/medical/mesh.html
new file mode 100644
index 000000000000..9056d785ca8c
--- /dev/null
+++ b/obj/item/stack/medical/mesh.html
@@ -0,0 +1 @@
+/obj/item/stack/medical/mesh - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
This var determines if the sterile packaging of the mesh has been opened.
Var Details
grind_results
This var determines if the sterile packaging of the mesh has been opened.
\ No newline at end of file
diff --git a/obj/item/stack/sheet.html b/obj/item/stack/sheet.html
new file mode 100644
index 000000000000..184f7f81829e
--- /dev/null
+++ b/obj/item/stack/sheet.html
@@ -0,0 +1,9 @@
+/obj/item/stack/sheet - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Called on the glass sheet upon solar construction (duh):
+Different glass sheets can modify different stas/vars, such as obj_integrity or efficiency
+and possibly extra effects if you wish to code them.
+Keep in mind the solars' max_integrity is set equal to the obj_integrity later,
+so you won't have to do so here.
Var Details
point_value
turn-in value for the gulag stacker - loosely relative to its rarity
shard_type
the shard debris typepath left over by solar panels and windows etc.
sheettype
this is used for girders in the creation of walls/false walls
walltype
What type of wall does this sheet spawn
Proc Details
on_solar_construction
Called on the glass sheet upon solar construction (duh):
+Different glass sheets can modify different stas/vars, such as obj_integrity or efficiency
+and possibly extra effects if you wish to code them.
+Keep in mind the solars' max_integrity is set equal to the obj_integrity later,
+so you won't have to do so here.
\ No newline at end of file
diff --git a/obj/item/stack/tile.html b/obj/item/stack/tile.html
new file mode 100644
index 000000000000..65ae60e1b512
--- /dev/null
+++ b/obj/item/stack/tile.html
@@ -0,0 +1 @@
+/obj/item/stack/tile - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Caches associative lists with type path index keys and images of said type's initial icon state (typepath -> image).
Var Details
mineralType
Determines certain welder interactions. //included - tile floofing
tile_reskin_types
Cached associative lazy list to hold the radial options for tile reskinning. See tile_reskinning.dm for more information. Pattern: list[type] -> image
turf_type
What type of turf does this tile produce. //included - tile floofing
Proc Details
tile_reskin_list
Caches associative lists with type path index keys and images of said type's initial icon state (typepath -> image).
\ No newline at end of file
diff --git a/obj/item/staff/bostaff.html b/obj/item/staff/bostaff.html
new file mode 100644
index 000000000000..3661e28da773
--- /dev/null
+++ b/obj/item/staff/bostaff.html
@@ -0,0 +1 @@
+/obj/item/staff/bostaff - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/stock_parts/cell.html b/obj/item/stock_parts/cell.html
new file mode 100644
index 000000000000..368ef10ab0aa
--- /dev/null
+++ b/obj/item/stock_parts/cell.html
@@ -0,0 +1 @@
+/obj/item/stock_parts/cell - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
If true, add the o1 and o2 overlays based on charge level.
Var Details
grown_battery
If it's a grown that acts as a battery, add a wire overlay to it.
has_charge_overlay
If true, add the o1 and o2 overlays based on charge level.
\ No newline at end of file
diff --git a/obj/item/storage/book/bible.html b/obj/item/storage/book/bible.html
new file mode 100644
index 000000000000..86d8f85e5b69
--- /dev/null
+++ b/obj/item/storage/book/bible.html
@@ -0,0 +1,2 @@
+/obj/item/storage/book/bible - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Checks if we are allowed to interact with the radial
Proc Details
check_menu
Checks if we are allowed to interact with the radial
+
Arguements: user The mob interacting with the menu
\ No newline at end of file
diff --git a/obj/item/storage/box/papersack.html b/obj/item/storage/box/papersack.html
new file mode 100644
index 000000000000..18590f9b9666
--- /dev/null
+++ b/obj/item/storage/box/papersack.html
@@ -0,0 +1,6 @@
+/obj/item/storage/box/papersack - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
check_menu: Checks if we are allowed to interact with a radial menu
Var Details
papersack_designs
A list of all available papersack reskins
Proc Details
check_menu
check_menu: Checks if we are allowed to interact with a radial menu
+
Arguments:
+
+
user The mob interacting with a menu
+
P The pen used to interact with a menu
+
\ No newline at end of file
diff --git a/obj/item/storage/fancy/rollingpapers.html b/obj/item/storage/fancy/rollingpapers.html
new file mode 100644
index 000000000000..adbf5b3a58e2
--- /dev/null
+++ b/obj/item/storage/fancy/rollingpapers.html
@@ -0,0 +1 @@
+/obj/item/storage/fancy/rollingpapers - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Overrides to do nothing because fancy boxes are fucking insane.
Var Details
icon_type
The value in here has NOTHING to do with icons. It needs to be this for the proper examine.
Proc Details
update_icon_state
Overrides to do nothing because fancy boxes are fucking insane.
\ No newline at end of file
diff --git a/obj/item/storage/pod.html b/obj/item/storage/pod.html
new file mode 100644
index 000000000000..8d0d4c8730ed
--- /dev/null
+++ b/obj/item/storage/pod.html
@@ -0,0 +1 @@
+/obj/item/storage/pod - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/storage/portable_chem_mixer.html b/obj/item/storage/portable_chem_mixer.html
new file mode 100644
index 000000000000..dedd86cc3970
--- /dev/null
+++ b/obj/item/storage/portable_chem_mixer.html
@@ -0,0 +1,11 @@
+/obj/item/storage/portable_chem_mixer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Updates the contents of the portable chemical mixer
Var Details
amount
Creating an empty slot for a beaker that can be added to dispense into
dispensable_reagents
The amount of reagent that is to be dispensed currently
Proc Details
ComponentInitialize
List in which all currently dispensable reagents go
replace_beaker
Replaces the beaker of the portable chemical mixer with another beaker, or simply adds the new beaker if none is in currently
+
Checks if a valid user and a valid new beaker exist and attempts to replace the current beaker in the portable chemical mixer with the one in hand. Simply places the new beaker in if no beaker is currently loaded
+Arguments:
+
+
mob/living/user - The user who is trying to exchange beakers
+
+
obj/item/reagent_containers/new_beaker - The new beaker that the user wants to put into the device
+
+
+
update_contents
Updates the contents of the portable chemical mixer
+
A list of dispensable reagents is created by iterating through each source beaker in the portable chemical beaker and reading its contents
\ No newline at end of file
diff --git a/obj/item/storage/toolbox/mechanical.html b/obj/item/storage/toolbox/mechanical.html
new file mode 100644
index 000000000000..75cd74f57b48
--- /dev/null
+++ b/obj/item/storage/toolbox/mechanical.html
@@ -0,0 +1 @@
+/obj/item/storage/toolbox/mechanical - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
If FALSE, someone with a ensouled soulstone can sacrifice a spirit to change the sprite of this toolbox.
Var Details
has_soul
If FALSE, someone with a ensouled soulstone can sacrifice a spirit to change the sprite of this toolbox.
\ No newline at end of file
diff --git a/obj/item/summon.html b/obj/item/summon.html
new file mode 100644
index 000000000000..ede205f6cec8
--- /dev/null
+++ b/obj/item/summon.html
@@ -0,0 +1,3 @@
+/obj/item/summon - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
summon
Simple summon weapon code in this file
+
tl;dr latch onto target, repeatedly proc attacks, animate using transforms,
+no real hitboxes/collisions, think of /datum/component/orbit-adjacent
how long it takes for a "stack" to fall off by itself
summon_count
number of summons
\ No newline at end of file
diff --git a/obj/item/tank.html b/obj/item/tank.html
new file mode 100644
index 000000000000..f245f7867950
--- /dev/null
+++ b/obj/item/tank.html
@@ -0,0 +1 @@
+/obj/item/tank - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Icon state when in a tank holder. Null makes it incompatible with tank holder.
Var Details
tank_holder_icon_state
Icon state when in a tank holder. Null makes it incompatible with tank holder.
\ No newline at end of file
diff --git a/obj/item/throwing_star/stamina/ninja.html b/obj/item/throwing_star/stamina/ninja.html
new file mode 100644
index 000000000000..abc44f6ad2cd
--- /dev/null
+++ b/obj/item/throwing_star/stamina/ninja.html
@@ -0,0 +1,10 @@
+/obj/item/throwing_star/stamina/ninja - SPLURT Station 13SPLURT Station 13 - Modules - Types
Ninja Throwing Star
a throwing star which specifically makes sure you know it came from a real ninja.
+
The most important item in the entire codebase, as without it we would all cease to exist.
+Inherits everything that makes it interesting the stamina throwing star, but the most
+important change made is that its name specifically has the prefix, 'ninja' in it.
+This provides the detective role with information to play off of by ensuring that his
+assumption that a space ninja is aboard the ship to be true when he find 20 of these in
+the captain's back. Along with this, its throwforce is 10 instead of the 5 of the stamina
+throwing star, meaning it'll do a little more damage than the stamina throwing star does as well.
+Changes to this item need to be approved by all maintainers, so if you do change it, make sure
+you go through the proper channels, lest you get permabanned. Do I make myself clear?
\ No newline at end of file
diff --git a/obj/item/toy/cards/cardhand.html b/obj/item/toy/cards/cardhand.html
new file mode 100644
index 000000000000..839ad3c534c7
--- /dev/null
+++ b/obj/item/toy/cards/cardhand.html
@@ -0,0 +1,5 @@
+/obj/item/toy/cards/cardhand - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
This proc updates the sprite for when you create a hand of cards
Proc Details
check_menu
check_menu: Checks if we are allowed to interact with a radial menu
+
Arguments:
+
+
user The mob interacting with a menu
+
update_sprite
This proc updates the sprite for when you create a hand of cards
\ No newline at end of file
diff --git a/obj/item/toy/crayon.html b/obj/item/toy/crayon.html
new file mode 100644
index 000000000000..ab44926e4de8
--- /dev/null
+++ b/obj/item/toy/crayon.html
@@ -0,0 +1 @@
+/obj/item/toy/crayon - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/item/toy/mecha.html b/obj/item/toy/mecha.html
new file mode 100644
index 000000000000..8839c4487965
--- /dev/null
+++ b/obj/item/toy/mecha.html
@@ -0,0 +1,48 @@
+/obj/item/toy/mecha - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Cooldown multiplier after a battle (by default: battle cooldowns are 30 seconds)
in_combat
TRUE = in combat currently || FALSE = Not in combat
losses
...And their loss count in combat
max_combat_health
The mech's max combat health
quiet
If it makes noise when played with
special_attack_charged
TRUE = the special attack is charged || FALSE = not charged
special_attack_cooldown
Current cooldown of their special attack
special_attack_cry
The battlecry when using the special attack
special_attack_type
What type of special attack they use - SPECIAL_ATTACK_DAMAGE, SPECIAL_ATTACK_HEAL, SPECIAL_ATTACK_UTILITY, SPECIAL_ATTACK_OTHER
special_attack_type_message
What message their special move gets on examining
timer
Timer when it'll be off cooldown
wants_to_battle
TRUE = Offering battle to someone || FALSE = Not offering battle
wins
This mech's win count in combat
Proc Details
attack
Attack is called from the user's toy, aimed at target(another human), checking for target's toy.
attack_tk
Overrides attack_tk - Sorry, you have to be face to face to initiate a battle, it's good sportsmanship
attackby
If you attack a mech with a mech, initiate combat between them
check_battle_start
This proc checks if a battle can be initiated between src and attacker.
+
Both SRC and attacker (if attacker is included) timers are checked if they're on cooldown, and
+both SRC and attacker (if attacker is included) are checked if they are in combat already.
+If any of the above are true, the proc returns FALSE and sends a message to user (and target, if included) otherwise, it returns TRUE
+Arguments:
+
+
user: the user who is initiating the battle
+
attacker: optional arg for checking two mechs at once
+
target: optional arg used in Mech PvP battles (if used, attacker is target's toy)
+
combat_sleep
this proc combines "sleep" while also checking for if the battle should continue
+
this goes through some of the checks - the toys need to be next to each other to fight!
+if it's player vs themself: They need to be able to "control" both mechs (either must be adjacent or using TK)
+if it's player vs player: Both players need to be able to "control" their mechs (either must be adjacent or using TK)
+if it's player vs mech (suicide): the mech needs to be in range of the player
+if all the checks are TRUE, it does the sleeps, and returns TRUE. Otherwise, it returns FALSE.
+Arguments:
+
+
delay - the amount of time the sleep at the end of the check will sleep for
+
attacker - the attacking toy in the battle.
+
attacker_controller - the controller of the attacking toy. there should ALWAYS be an attacker_controller
+
opponent - (optional) the defender controller in the battle, for PvP
+
mecha_brawl
The 'master' proc of the mech battle. Processes the entire battle's events and makes sure it start and finishes correctly.
+
src is the defending toy, and the battle proc is called on it to begin the battle.
+After going through a few checks at the beginning to ensure the battle can start properly, the battle begins a loop that lasts
+until either toy has no more health. During this loop, it also ensures the mechs stay in combat range of each other.
+It will then randomly decide attacks for each toy, occasionally making one or the other use their special attack.
+When either mech has no more health, the loop ends, and it displays the victor and the loser while updating their stats and resetting them.
+Arguments:
+
+
attacker - the attacking toy, the toy in the attacker_controller's hands
+
attacker_controller - the user, the one who is holding the toys / controlling the fight
+
opponent - optional arg used in Mech PvP battles: the other person who is taking part in the fight (controls src)
+
special_attack_move
Processes any special attack moves that happen in the battle (called in the mechaBattle proc).
+
Makes the toy shout their special attack cry and updates its cooldown. Then, does the special attack.
+Arguments:
+
+
victim - the toy being hit by the special move
+
suicide_act
Starts a battle, toy mech vs player. Player... doesn't win.
super_special_attack
Base proc for 'other' special attack moves.
+
This one is only for inheritance, each mech with an 'other' type move has their procs below.
+Arguments:
+
+
victim - the toy being hit by the super special move (doesn't necessarily need to be used)
+
withdraw_offer
Resets the request for battle.
+
For use in a timer, this proc resets the wants_to_battle variable after a short period.
+Arguments:
+
+
user - the user wanting to do battle
+
\ No newline at end of file
diff --git a/obj/item/toy/plush.html b/obj/item/toy/plush.html
new file mode 100644
index 000000000000..4b1d2a85cb32
--- /dev/null
+++ b/obj/item/toy/plush.html
@@ -0,0 +1 @@
+/obj/item/toy/plush - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/item/transfer_valve.html b/obj/item/transfer_valve.html
new file mode 100644
index 000000000000..30fb130e2317
--- /dev/null
+++ b/obj/item/transfer_valve.html
@@ -0,0 +1 @@
+/obj/item/transfer_valve - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Returns if this is ready to be detonated. Checks if both tanks are in place.
Proc Details
ready
Returns if this is ready to be detonated. Checks if both tanks are in place.
\ No newline at end of file
diff --git a/obj/item/uplink.html b/obj/item/uplink.html
new file mode 100644
index 000000000000..fa558bc33b76
--- /dev/null
+++ b/obj/item/uplink.html
@@ -0,0 +1,3 @@
+/obj/item/uplink - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The uplink flag for this type.
+See [code/__DEFINES/uplink.dm]
Var Details
uplink_flag
The uplink flag for this type.
+See [code/__DEFINES/uplink.dm]
\ No newline at end of file
diff --git a/obj/item/vibro_weapon.html b/obj/item/vibro_weapon.html
new file mode 100644
index 000000000000..9f5f65562fb0
--- /dev/null
+++ b/obj/item/vibro_weapon.html
@@ -0,0 +1 @@
+/obj/item/vibro_weapon - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/machinery.html b/obj/machinery.html
new file mode 100644
index 000000000000..5db722d102e2
--- /dev/null
+++ b/obj/machinery.html
@@ -0,0 +1,3 @@
+/obj/machinery - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Called when we want to change the value of the stat variable. Holds bitflags.
Var Details
atmos_processing
Boolean on whether this machines interact with atmos
Proc Details
AI_notify_hack
Alerts the AI that a hack is in progress.
+
Sends all AIs a message that a hack is occurring. Specifically used for space ninja tampering as this proc was originally in the ninja files.
+However, the proc may also be used elsewhere.
set_machine_stat
Called when we want to change the value of the stat variable. Holds bitflags.
\ No newline at end of file
diff --git a/obj/machinery/abductor/console.html b/obj/machinery/abductor/console.html
new file mode 100644
index 000000000000..b854e3e23057
--- /dev/null
+++ b/obj/machinery/abductor/console.html
@@ -0,0 +1 @@
+/obj/machinery/abductor/console - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
get_abductor_gear: Returns a list of a filtered abductor gear sorted by categories
Var Details
compact_mode
Dictates if the compact mode of the interface is on or off
possible_gear
Possible gear to be dispensed
selected_cat
Currently selected gear category
Proc Details
get_abductor_gear
get_abductor_gear: Returns a list of a filtered abductor gear sorted by categories
\ No newline at end of file
diff --git a/obj/machinery/abductor/experiment.html b/obj/machinery/abductor/experiment.html
new file mode 100644
index 000000000000..748815623b39
--- /dev/null
+++ b/obj/machinery/abductor/experiment.html
@@ -0,0 +1,11 @@
+/obj/machinery/abductor/experiment - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
send_back: Sends a mob back to a selected teleport location if safe
Proc Details
experiment
experiment: Performs selected experiment on occupant mob, resulting in a point reward on success
+
Arguments:
+
+
occupant The mob inside the machine
+
type The type of experiment to be performed
+
user The mob starting the experiment
+
send_back
send_back: Sends a mob back to a selected teleport location if safe
+
Arguments:
+
+
H The human mob to be sent back
+
\ No newline at end of file
diff --git a/obj/machinery/airalarm.html b/obj/machinery/airalarm.html
new file mode 100644
index 000000000000..21995c233e78
--- /dev/null
+++ b/obj/machinery/airalarm.html
@@ -0,0 +1 @@
+/obj/machinery/airalarm - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Represents a signel source of atmos alarms, complains to all the listeners if one of our thresholds is violated
Var Details
alarm_manager
Represents a signel source of atmos alarms, complains to all the listeners if one of our thresholds is violated
\ No newline at end of file
diff --git a/obj/machinery/atmospherics.html b/obj/machinery/atmospherics.html
new file mode 100644
index 000000000000..96bbc9c1346a
--- /dev/null
+++ b/obj/machinery/atmospherics.html
@@ -0,0 +1 @@
+/obj/machinery/atmospherics - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/machinery/atmospherics/components/unary/cryo_cell.html b/obj/machinery/atmospherics/components/unary/cryo_cell.html
new file mode 100644
index 000000000000..ba9a29ea46dc
--- /dev/null
+++ b/obj/machinery/atmospherics/components/unary/cryo_cell.html
@@ -0,0 +1 @@
+/obj/machinery/atmospherics/components/unary/cryo_cell - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Cryo will continue to treat people with 0 damage but existing wounds, but will sound off when damage healing is done in case doctors want to directly treat the wounds instead
Var Details
treating_wounds
Cryo will continue to treat people with 0 damage but existing wounds, but will sound off when damage healing is done in case doctors want to directly treat the wounds instead
\ No newline at end of file
diff --git a/obj/machinery/atmospherics/components/unary/tank.html b/obj/machinery/atmospherics/components/unary/tank.html
new file mode 100644
index 000000000000..bd8503916dcc
--- /dev/null
+++ b/obj/machinery/atmospherics/components/unary/tank.html
@@ -0,0 +1 @@
+/obj/machinery/atmospherics/components/unary/tank - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The typepath of the gas this tank should be filled with.
Var Details
gas_type
The typepath of the gas this tank should be filled with.
\ No newline at end of file
diff --git a/obj/machinery/atmospherics/pipe/simple/multiz.html b/obj/machinery/atmospherics/pipe/simple/multiz.html
new file mode 100644
index 000000000000..a7d3bf7f7130
--- /dev/null
+++ b/obj/machinery/atmospherics/pipe/simple/multiz.html
@@ -0,0 +1 @@
+/obj/machinery/atmospherics/pipe/simple/multiz - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
multiz
This is an atmospherics pipe which can relay air up/down a deck.
Attempts to locate a multiz pipe that's above us, if it finds one it merges us into its pipenet
Proc Details
pipeline_expansion
Attempts to locate a multiz pipe that's above us, if it finds one it merges us into its pipenet
\ No newline at end of file
diff --git a/obj/machinery/autolathe.html b/obj/machinery/autolathe.html
new file mode 100644
index 000000000000..dbf6941514f5
--- /dev/null
+++ b/obj/machinery/autolathe.html
@@ -0,0 +1 @@
+/obj/machinery/autolathe - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
the multiplier for how much materials the created object takes from this machines stored materials
Var Details
creation_efficiency
the multiplier for how much materials the created object takes from this machines stored materials
\ No newline at end of file
diff --git a/obj/machinery/biogenerator.html b/obj/machinery/biogenerator.html
new file mode 100644
index 000000000000..d2ddad8e47e5
--- /dev/null
+++ b/obj/machinery/biogenerator.html
@@ -0,0 +1,5 @@
+/obj/machinery/biogenerator - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
activate: Activates biomass processing and converts all inserted grown products into biomass
Var Details
selected_cat
Currently selected category in the UI
Proc Details
activate
activate: Activates biomass processing and converts all inserted grown products into biomass
+
Arguments:
+
+
user The mob starting the biomass processing
+
\ No newline at end of file
diff --git a/obj/machinery/camera.html b/obj/machinery/camera.html
new file mode 100644
index 000000000000..3bcafc2cf3e0
--- /dev/null
+++ b/obj/machinery/camera.html
@@ -0,0 +1 @@
+/obj/machinery/camera - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Represents a signel source of camera alarms about movement or camera tampering
Var Details
alarm_manager
Represents a signel source of camera alarms about movement or camera tampering
\ No newline at end of file
diff --git a/obj/machinery/computer/arcade/battle.html b/obj/machinery/computer/arcade/battle.html
new file mode 100644
index 000000000000..33c8a07a501a
--- /dev/null
+++ b/obj/machinery/computer/arcade/battle.html
@@ -0,0 +1 @@
+/obj/machinery/computer/arcade/battle - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
used to check if the last three move of the player are the one we want in the right order and if the passive's weakpoint has been triggered yet
Var Details
blocked
the player cannot make any move while this is set to TRUE. should only TRUE during enemy turns.
bomb_cooldown
unique to the emag mode, acts as a time limit where the player dies when it reaches 0.
chosen_weapon
weapon wielded by the enemy, the shotgun doesn't count.
enemy_hp
Enemy health/attack points
enemy_passive
the list of passive skill the enemy currently has. the actual passives are added in the enemy_setup() proc
finishing_move
if all the enemy's weakpoints have been triggered becomes TRUE
gameover
if the enemy or player died. restart the game when TRUE
last_three_move
used to remember the last three move of the player before this turn.
max_passive
the number of passives the enemy will start with
pissed_off
linked to passives, when it's equal or above the max_passive finishing move will become TRUE
player_hp
Player health
player_mp
player magic points
temp
Temporary message, for attack messages, etc
timer_id
used to clear the enemy_action proc timer when the game is restarted
weapons
weapon used by the enemy, pure fluff.for certain actions
Proc Details
arcade_action
happens after a player action and before the enemy turn. the enemy turn will be cancelled if there's a gameover.
enemy_action
the enemy turn, the enemy's action entirely depend on their current passive and a teensy tiny bit of randomness
enemy_setup
creates the enemy base stats for a new round along with the enemy passives
screen_setup
sets up the main screen for the user
weakpoint_check
used to check if the last three move of the player are the one we want in the right order and if the passive's weakpoint has been triggered yet
\ No newline at end of file
diff --git a/obj/machinery/computer/camera_advanced.html b/obj/machinery/computer/camera_advanced.html
new file mode 100644
index 000000000000..5174152702c5
--- /dev/null
+++ b/obj/machinery/computer/camera_advanced.html
@@ -0,0 +1,3 @@
+/obj/machinery/computer/camera_advanced - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
List of all actions to give to a user when they're well, granted actions
jump_action
Typepath for jumping
off_action
Typepath of the action button we use as "off"
+It's a typepath so subtypes can give it fun new names
should_supress_view_changes
Should we supress any view changes?
\ No newline at end of file
diff --git a/obj/machinery/computer/camera_advanced/base_construction.html b/obj/machinery/computer/camera_advanced/base_construction.html
new file mode 100644
index 000000000000..805bae4522fe
--- /dev/null
+++ b/obj/machinery/computer/camera_advanced/base_construction.html
@@ -0,0 +1,3 @@
+/obj/machinery/computer/camera_advanced/base_construction - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Instantiate each action object that we'll be giving to users of
+this console, and put it in the actions list
\ No newline at end of file
diff --git a/obj/machinery/computer/camera_advanced/shuttle_docker.html b/obj/machinery/computer/camera_advanced/shuttle_docker.html
new file mode 100644
index 000000000000..ed45c0bb78fe
--- /dev/null
+++ b/obj/machinery/computer/camera_advanced/shuttle_docker.html
@@ -0,0 +1 @@
+/obj/machinery/computer/camera_advanced/shuttle_docker - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
"Initializes" any default port ids we have, done so add_jumpable_port can be a proper setter
Var Details
jump_to_ports
Hashset of ports to jump to and ignore for collision purposes
my_port
The custom docking port placed by this console
shuttle_port
The mobile docking port of the connected shuttle
Proc Details
set_init_ports
"Initializes" any default port ids we have, done so add_jumpable_port can be a proper setter
\ No newline at end of file
diff --git a/obj/machinery/computer/cargo.html b/obj/machinery/computer/cargo.html
new file mode 100644
index 000000000000..62d3cd9b1015
--- /dev/null
+++ b/obj/machinery/computer/cargo.html
@@ -0,0 +1 @@
+/obj/machinery/computer/cargo - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Can you approve requests placed for cargo? Works differently between the app and the computer.
can_send
Can the supply console send the shuttle back and forth? Used in the UI backend.
is_express
var that makes express console use rockets
message_cooldown
var that tracks message cooldown
radio
radio used by the console to send messages on supply channel
requestonly
Can this console only send requests?
\ No newline at end of file
diff --git a/obj/machinery/computer/communications.html b/obj/machinery/computer/communications.html
new file mode 100644
index 000000000000..84bffa0369d4
--- /dev/null
+++ b/obj/machinery/computer/communications.html
@@ -0,0 +1,15 @@
+/obj/machinery/computer/communications - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Override the cooldown for special actions
+Used in places such as CentCom messaging back so that the crew can answer right away
Var Details
alert_level_tick
How many times the alert level has been changed
+Used to clear the modal to change alert level
authorize_access
The access that the card had on login
authorize_name
The name of the user who logged in
cyborg_state
The current state of the UI for AIs
important_action_cooldown
Cooldown for important actions, such as messaging CentCom or other sectors
last_status_display
The last lines used for changing the status display
messages
The messages this console has been sent
report_print_cooldown
Cooldown between printing announcement papers
state
The current state of the UI
Proc Details
authenticated
Are we a silicon, OR logged in?
authenticated_as_non_silicon_captain
Are we NOT a silicon, AND we're logged in as the captain?
authenticated_as_silicon_or_captain
Are we a silicon, OR we're logged in as the captain?
can_buy_shuttles
Returns TRUE if the user can buy shuttles.
+If they cannot, returns FALSE or a string detailing why.
emergency_meeting
Call an emergency meeting
+
Comm Console wrapper for the Communications subsystem wrapper for the call_emergency_meeting world proc.
+Checks to make sure the proc can be called, and handles relevant feedback, logging and timing.
+See the SScommunications proc definition for more detail, in short, teleports the entire crew to
+the bridge for a meetup. Should only really happen during april fools.
+Arguments:
+
+
user - Mob who called the meeting
+
has_communication
Returns whether or not the communications console can communicate with the station
override_cooldown
Override the cooldown for special actions
+Used in places such as CentCom messaging back so that the crew can answer right away
\ No newline at end of file
diff --git a/obj/machinery/computer/cryopod.html b/obj/machinery/computer/cryopod.html
new file mode 100644
index 000000000000..6c8c09b0cb3c
--- /dev/null
+++ b/obj/machinery/computer/cryopod.html
@@ -0,0 +1 @@
+/obj/machinery/computer/cryopod - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Does this console store items? if NOT, will dump all items when the user cryo's instead
Var Details
allow_items
Does this console store items? if NOT, will dump all items when the user cryo's instead
\ No newline at end of file
diff --git a/obj/machinery/computer/piratepad_control.html b/obj/machinery/computer/piratepad_control.html
new file mode 100644
index 000000000000..ccb2935ef7dc
--- /dev/null
+++ b/obj/machinery/computer/piratepad_control.html
@@ -0,0 +1 @@
+/obj/machinery/computer/piratepad_control - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Reference to the specific pad that the control computer is linked up to.
Var Details
pad_ref
Reference to the specific pad that the control computer is linked up to.
\ No newline at end of file
diff --git a/obj/machinery/computer/piratepad_control/civilian.html b/obj/machinery/computer/piratepad_control/civilian.html
new file mode 100644
index 000000000000..106966392777
--- /dev/null
+++ b/obj/machinery/computer/piratepad_control/civilian.html
@@ -0,0 +1 @@
+/obj/machinery/computer/piratepad_control/civilian - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
civilian
Computer for assigning new civilian bounties, and sending bounties for collection.
This fully rewrites base behavior in order to only check for bounty objects, and nothing else.
Proc Details
add_bounties
Here is where cargo bounties are added to the player's bank accounts, then adjusted and scaled into a civilian bounty.
id_eject
Removes A stored ID card.
id_insert
Self explanitory, holds the ID card inthe console for bounty payout and manipulation.
send
This fully rewrites base behavior in order to only check for bounty objects, and nothing else.
\ No newline at end of file
diff --git a/obj/machinery/computer/pod.html b/obj/machinery/computer/pod.html
new file mode 100644
index 000000000000..328788aee914
--- /dev/null
+++ b/obj/machinery/computer/pod.html
@@ -0,0 +1 @@
+/obj/machinery/computer/pod - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Initiates launching sequence by checking if all components are functional, opening poddoors, firing mass drivers and then closing poddoors
Var Details
connected
Connected mass driver
id
ID of the launch control
massdriver_countdown
Countdown timer for the mass driver's delayed launch functionality.
range
Range in which we search for a mass drivers and poddoors nearby
time
Time before auto launch
timing
If the launch timer counts down
Proc Details
alarm
Initiates launching sequence by checking if all components are functional, opening poddoors, firing mass drivers and then closing poddoors
\ No newline at end of file
diff --git a/obj/machinery/computer/scan_consolenew.html b/obj/machinery/computer/scan_consolenew.html
new file mode 100644
index 000000000000..ca88b6c62fc0
--- /dev/null
+++ b/obj/machinery/computer/scan_consolenew.html
@@ -0,0 +1,212 @@
+/obj/machinery/computer/scan_consolenew - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Used for setting tgui data - Whether the connected DNA Scanner is usable
connected_scanner
Currently connected DNA Scanner
crispr_charges
Counter for CRISPR charges
delayed_action
Current delayed action, used for delayed enzyme transfer on scanner door close
diskette
Currently stored genetic data diskette
genetic_makeup_buffer
Maximum number of enzymes we can store
injector_selection
Assoc list of all advanced injectors. Keys are injector names. Values are lists of mutations.
injectorready
World time when injectors are ready to be printed
is_crispr_ready
Used for setting tgui data - Is CRISPR ready?
is_injector_ready
Used for setting tgui data - Whether injectors are ready to be printed
is_joker_ready
Used for setting tgui data - Whether JOKER algorithm is ready
is_pulsing_rads
Used for setting tgui data - Wheher an enzyme pulse operation is ongoing
is_scramble_ready
Used for setting tgui data - Whether Scramble DNA is ready
is_viable_occupant
Used for setting tgui data - Whether the current DNA Scanner occupant is viable for genetic modification
jokerready
World time when JOKER algorithm can be used in DNA Consoles
max_chromosomes
Maximum number of chromosomes that DNA Consoles are able to store.
max_injector_instability
Maximum total instability of all combined mutations allowed on an advanced injector
max_injector_mutations
Maximum number of mutation that an advanced injector can store
max_injector_selections
Maximum number of advanced injectors that DNA Consoles store
max_storage
Maximum number of mutations that DNA Consoles are able to store
rad_pulse_index
Index of the enzyme being modified during delayed enzyme pulse operations
rad_pulse_timer
World time when the enzyme pulse should complete
radduration
Duration for enzyme radiation pulses
radstrength
Strength for enzyme radiation pulses
scanner_occupant
Current DNA Scanner occupant
scrambleready
World time when Scramble can be used in DNA Consoles
stored_chromosomes
List of all chromosomes stored in the DNA Console
stored_mutations
List of all mutations stored on the DNA Console
stored_research
Link to the techweb's stored research. Used to retrieve stored mutations
tgui_advinjector_mutations
Used for setting tgui data - List of occupant mutations
tgui_console_chromosomes
Used for setting tgui data - List of DNA Console chromosomes
tgui_console_mutations
Used for setting tgui data - List of DNA Console stored mutations
tgui_diskette_mutations
Used for setting tgui data - List of diskette stored mutations
tgui_genetic_makeup
Used for setting tgui data - List of occupant mutations
tgui_occupant_mutations
Used for setting tgui data - List of occupant mutations
tgui_view_state
State of tgui view, i.e. which tab is currently active, or which genome we're currently looking at.
time_to_injector
Used for setting tgui data - Time until injectors are ready
time_to_joker
Used for setting tgui data - Time until joker is ready
time_to_pulse
Used for setting tgui data - Time until the enzyme pulse is complete
time_to_scramble
Used for setting tgui data - Time until scramble is ready
Proc Details
apply_genetic_makeup
+
+
Applies the enzyme buffer to the current scanner occupant
+
+
+
Applies the type of a specific genetic makeup buffer to the current scanner
+
+
occupant
+
+
+
+
Arguments:
+
+
+
+
type - "ui"/"ue"/"mixed" - Which part of the enzyme buffer to apply
+
+
+
+
+
buffer_slot - Index of the enzyme buffer to apply
+
+
+
build_chrom_list
+
+
Takes any given chromosome and calculates chromosome compatibility
+
+
+
Will iterate over the stored chromosomes in the DNA Console and will check
+
+
+
whether it can be applied to the supplied mutation. Then returns a list of
+
+
+
names of chromosomes that were compatible.
+
+
+
Arguments:
+
+
+
+
+
+
mutation - The mutation to check chromosome compatibility with
+
+
+
build_genetic_makeup_list
Builds the genetic makeup list which will be sent to tgui interface.
build_mutation_list
+
+
Builds the genetic makeup list which will be sent to tgui interface.
+
+
Will iterate over the connected scanner occupant, DNA Console, inserted
+
diskette and chromosomes and any advanced injectors, building the main data
+
structures which get passed to the tgui interface.
+
+
+
can_modify_occupant
+
+
Checks if there is a valid DNA Scanner occupant for genetic modification
+
+
Checks if there is a valid subject in the DNA Scanner that can be genetically
+
modified. Will set the scanner occupant var as part of this check.
+
Requires that the scanner can be operated and will return early if it can't
+
+
+
check_discovery
+
+
Checks whether a mutation alias has been discovered
+
+
+
Checks whether a given mutation's genetic sequence has been completed and
+
+
+
discovers it if appropriate
+
+
+
Arguments:
+
+
+
+
+
+
alias - Alias of the mutation to check (ie "Mutation 51" or "Mutation 12")
+
+
+
connect_to_scanner
+
+
Checks for adjacent DNA scanners and connects when it finds a viable one
+
+
Seearches cardinal directions in order. Stops when it finds a viable DNA Scanner.
+
Will connect to a broken scanner if no functional scanner is available.
+
Links itself to the DNA Scanner to receive door open and close events.
+
+
+
eject_disk
+
+
Ejects the DNA Disk from the console.
+
+
+
Will insert into the user's hand if possible, otherwise will drop it at the
+
+
+
console's location.
+
+
+
Arguments:
+
+
+
+
+
+
user - The mob that is attempting to eject the diskette.
+
+
+
get_mut_by_ref
+
+
Find a mutation from various storage locations via ATOM ref
+
+
+
Takes an ATOM Ref and searches the appropriate mutation buffers and storage
+
+
+
vars to try and find the associated mutation.
+
+
+
Arguments:
+
+
+
+
+
+
ref - ATOM ref of the mutation to locate
+
+
+
target_flags - Flags for storage mediums to search, see #defines
+
+
+
+
+
on_scanner_close
+
+
Called by connected DNA Scanners when their doors close.
+
+
Sets the new scanner occupant and completes delayed enzyme transfer if one
+
is queued.
+
+
+
on_scanner_open
+
+
Called by connected DNA Scanners when their doors open.
+
+
Clears enzyme pulse operations, stops processing and nulls the current
+
scanner occupant var.
+
+
+
rad_pulse
+
+
Performs the enzyme radiation pulse.
+
+
Donor code from previous DNA Console iteration. Called from process() when
+
there is a radiation pulse in progress. Ends processing.
+
+
+
randomize_radiation_accuracy
+
+
Creates a randomised accuracy value for the enzyme pulse functionality.
+
+
+
Donor code from previous DNA Console iteration.
+
+
+
Arguments:
+
+
+
+
+
+
position - Index of the intended enzyme element to pulse
+
+
+
radduration - Duration of intended radiation pulse
+
+
+
+
+
number_of_blocks - Number of individual data blocks in the pulsed enzyme
+
+
+
+
+
scanner_operational
Checks if there is a connected DNA Scanner that is operational
scramble
+
+
Scrambles an enzyme element value for the enzyme pulse functionality.
+
+
+
Donor code from previous DNA Console iteration.
+
+
+
Arguments:
+
+
+
+
+
+
input - Enzyme identity element to scramble, expected hex value
+
+
+
rs - Strength of radiation pulse, increases the range of possible outcomes
+
+
+
+
+
set_default_state
Sets the default state for the tgui interface.
\ No newline at end of file
diff --git a/obj/machinery/computer/security.html b/obj/machinery/computer/security.html
new file mode 100644
index 000000000000..208d14b4e856
--- /dev/null
+++ b/obj/machinery/computer/security.html
@@ -0,0 +1 @@
+/obj/machinery/computer/security - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/machinery/computer/shuttle.html b/obj/machinery/computer/shuttle.html
new file mode 100644
index 000000000000..f874df124f51
--- /dev/null
+++ b/obj/machinery/computer/shuttle.html
@@ -0,0 +1 @@
+/obj/machinery/computer/shuttle - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Variable dictating if the attached shuttle requires authorization from the admin staff to move
destination
ID of the currently selected destination of the attached shuttle
no_destination_swap
Variable dictating if the attached shuttle is forbidden to change destinations mid-flight
possible_destinations
Possible destinations of the attached shuttle
request_cooldown
Authorization request cooldown to prevent request spam to admin staff
shuttleId
ID of the attached shuttle
\ No newline at end of file
diff --git a/obj/machinery/computer/shuttle/pod.html b/obj/machinery/computer/shuttle/pod.html
new file mode 100644
index 000000000000..2b56440a6334
--- /dev/null
+++ b/obj/machinery/computer/shuttle/pod.html
@@ -0,0 +1,6 @@
+/obj/machinery/computer/shuttle/pod - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Signal handler for checking if we should lock or unlock escape pods accordingly to a newly set security level
Proc Details
check_lock
Signal handler for checking if we should lock or unlock escape pods accordingly to a newly set security level
+
Arguments:
+
+
source The datum source of the signal
+
new_level The new security level that is in effect
+
\ No newline at end of file
diff --git a/obj/machinery/computer/slavery.html b/obj/machinery/computer/slavery.html
new file mode 100644
index 000000000000..42f8fb0500cd
--- /dev/null
+++ b/obj/machinery/computer/slavery.html
@@ -0,0 +1 @@
+/obj/machinery/computer/slavery - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Dictates if the compact mode of the interface is on or off
possible_gear
Possible gear to be dispensed
\ No newline at end of file
diff --git a/obj/machinery/computer/station_alert.html b/obj/machinery/computer/station_alert.html
new file mode 100644
index 000000000000..bafa11f7c375
--- /dev/null
+++ b/obj/machinery/computer/station_alert.html
@@ -0,0 +1 @@
+/obj/machinery/computer/station_alert - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/machinery/computer/vaultcontroller.html b/obj/machinery/computer/vaultcontroller.html
new file mode 100644
index 000000000000..3d06ae886f37
--- /dev/null
+++ b/obj/machinery/computer/vaultcontroller.html
@@ -0,0 +1 @@
+/obj/machinery/computer/vaultcontroller - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Attempts to lock/unlock vault doors, if machine is charged.
attempt_siphon
Tries to charge from powernet excess, no upper limit except max charge.
cycle_close
Handles the doors closing
cycle_open
Handles the doors opening
find_airlocks
Initializes airlock links.
lock_vault
Attempts to lock the vault doors
unlock_vault
Attempts to unlock the vault doors
update_cable
Looks for a cable connection beneath the machine.
\ No newline at end of file
diff --git a/obj/machinery/cryopod.html b/obj/machinery/cryopod.html
new file mode 100644
index 000000000000..eccef94c2969
--- /dev/null
+++ b/obj/machinery/cryopod.html
@@ -0,0 +1 @@
+/obj/machinery/cryopod - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Time until despawn when a mob enters a cryopod. You can cryo other people in pods.
Var Details
control_computer_weakref
Weakref to our controller
despawn_world_time
Cooldown for when it's now safe to try an despawn the player.
time_till_despawn
Time until despawn when a mob enters a cryopod. You can cryo other people in pods.
\ No newline at end of file
diff --git a/obj/machinery/door.html b/obj/machinery/door.html
new file mode 100644
index 000000000000..ca76f7805e7f
--- /dev/null
+++ b/obj/machinery/door.html
@@ -0,0 +1 @@
+/obj/machinery/door - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Whether or not the door can be opened by hand (used for blast doors and shutters)
Var Details
can_open_with_hands
Whether or not the door can be opened by hand (used for blast doors and shutters)
\ No newline at end of file
diff --git a/obj/machinery/door/airlock.html b/obj/machinery/door/airlock.html
new file mode 100644
index 000000000000..ab304e31917f
--- /dev/null
+++ b/obj/machinery/door/airlock.html
@@ -0,0 +1,5 @@
+/obj/machinery/door/airlock - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Returns if a crowbar would remove the airlock electronics
Var Details
airlock_state
The current state of the airlock, used to construct the airlock overlays
external
Is this door external? E.g. does it lead to space? Shuttle docking systems bolt doors with this flag.
fill_state_suffix
For those airlocks you might want to have varying "fillings" for, without having to
+have an icon file per door with a different filling.
greyscale_accent_color
For the airlocks that use a greyscale accent door color, set this color to the accent color you want it to be.
greyscale_lights_color
For the airlocks that use greyscale lights, set this to the color you want your lights to be.
unelectrify_timerid
sigh
Proc Details
beforeShuttleMove
Turf move procs
+
Area move procs
+
Machinery move procs
should_try_removing_electronics
Returns if a crowbar would remove the airlock electronics
\ No newline at end of file
diff --git a/obj/machinery/door/airlock/vault/derelict.html b/obj/machinery/door/airlock/vault/derelict.html
new file mode 100644
index 000000000000..ff7dcbf04c75
--- /dev/null
+++ b/obj/machinery/door/airlock/vault/derelict.html
@@ -0,0 +1 @@
+/obj/machinery/door/airlock/vault/derelict - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
derelict
Airlock that can't be deconstructed, broken or hacked.
Overrides screwdriver attack to prevent all deconstruction and hacking.
Proc Details
attackby
Overrides screwdriver attack to prevent all deconstruction and hacking.
\ No newline at end of file
diff --git a/obj/machinery/door/keycard.html b/obj/machinery/door/keycard.html
new file mode 100644
index 000000000000..72bbee73c3d9
--- /dev/null
+++ b/obj/machinery/door/keycard.html
@@ -0,0 +1 @@
+/obj/machinery/door/keycard - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Make sure that the key has the same puzzle_id as the keycard door!
Var Details
open_message
Message that occurs when the door is opened
puzzle_id
Make sure that the key has the same puzzle_id as the keycard door!
\ No newline at end of file
diff --git a/obj/machinery/duct.html b/obj/machinery/duct.html
new file mode 100644
index 000000000000..8de15df84b64
--- /dev/null
+++ b/obj/machinery/duct.html
@@ -0,0 +1 @@
+/obj/machinery/duct - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
track ducts we're connected to. Mainly for ducts we connect to that we normally wouldn't, like different layers and colors, for when we regenerate the ducts
amount we can transfer per process. note that the ductnet can carry as much as the lowest capacity duct
color_to_color_support
TRUE to let colors connect when forced with a wrench, false to just not do that at all
connects
bitfield with the directions we're connected in
drop_on_wrench
wheter we just unanchored or drop whatever is in the variable. either is safe
duct
our ductnet, wich tracks what we're connected to
duct_color
the color of our duct
duct_layer
1,2,4,8,16
dumb
set to TRUE to disable smart duct behaviour
ignore_colors
TRUE to ignore colors, so yeah we also connect with other colors without issue
lock_connects
wheter we allow our connects to be changed after initialization or not
lock_layers
whether we allow our layers to be altered
neighbours
track ducts we're connected to. Mainly for ducts we connect to that we normally wouldn't, like different layers and colors, for when we regenerate the ducts
Proc Details
add_connects
add a connect direction
add_neighbour
add a duct as neighbour. this means we're connected and will connect again if we ever regenerate
attempt_connect
start looking around us for stuff to connect to
can_anchor
collection of all the sanity checks to prevent us from stacking ducts that shouldn't be stacked
connect_duct
connect to a duct
connect_network
see if whatever we found can be connected to
connect_plumber
connect to a plumbing object
create_duct
create a new duct datum
disconnect_duct
we disconnect ourself from our neighbours. we also destroy our ductnet and tell our neighbours to make a new one
generate_connects
Special proc to draw a new connect frame based on neighbours. not the norm so we can support multiple duct kinds
get_adjacent_ducts
get a list of the ducts we can connect to if we are dumb
handle_layer
update the layer we are on
lose_neighbours
remove all our neighbours, and remove us from our neighbours aswell
reconnect
''''''''''''''''optimized''''''''''''''''' proc for quickly reconnecting after a duct net was destroyed
remove_connects
remove a connect direction
reset_connects
remove our connects
\ No newline at end of file
diff --git a/obj/machinery/duct/multilayered.html b/obj/machinery/duct/multilayered.html
new file mode 100644
index 000000000000..11fe4ae90fac
--- /dev/null
+++ b/obj/machinery/duct/multilayered.html
@@ -0,0 +1 @@
+/obj/machinery/duct/multilayered - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
multilayered
has a total of 5 layers and doesnt give a shit about color. its also dumb so doesnt autoconnect.
don't connect to other multilayered stuff because honestly it shouldn't be done and I dont wanna deal with it
Proc Details
connect_duct
don't connect to other multilayered stuff because honestly it shouldn't be done and I dont wanna deal with it
\ No newline at end of file
diff --git a/obj/machinery/gateway.html b/obj/machinery/gateway.html
new file mode 100644
index 000000000000..c4fa78053601
--- /dev/null
+++ b/obj/machinery/gateway.html
@@ -0,0 +1 @@
+/obj/machinery/gateway - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
This is our own destination, pointing at this gateway
destination_name
Name of the generated destination
destination_type
Type of instanced gateway destination, needs to be subtype of /datum/gateway_destination/gateway
light_overlay
Overlay of the lights. They light up fully when it charges fully.
portal
bumper object, the thing that starts actual teleport
portal_visuals
Visual object for handling the viscontents
target
This is current active destination
\ No newline at end of file
diff --git a/obj/machinery/gear_painter.html b/obj/machinery/gear_painter.html
new file mode 100644
index 000000000000..42387bb5cfef
--- /dev/null
+++ b/obj/machinery/gear_painter.html
@@ -0,0 +1 @@
+/obj/machinery/gear_painter - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Produces the preview image of the item, used in the UI, the way the color is not stacking is a sin.
Var Details
allow_mobs
Allow holder'd mobs
minimum_matrix_lightness
Minimum lightness for matrix mode, tested using 4 test colors of full red, green, blue, white.
minimum_matrix_tests
Minimum matrix tests that must pass for something to be considered a valid color (see above)
minimum_normal_lightness
Minimum lightness for normal mode
temp
Temporary messages
Proc Details
build_preview
Produces the preview image of the item, used in the UI, the way the color is not stacking is a sin.
\ No newline at end of file
diff --git a/obj/machinery/gravity_generator/part.html b/obj/machinery/gravity_generator/part.html
new file mode 100644
index 000000000000..5b3db9a6bd2c
--- /dev/null
+++ b/obj/machinery/gravity_generator/part.html
@@ -0,0 +1 @@
+/obj/machinery/gravity_generator/part - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/machinery/holopad.html b/obj/machinery/holopad.html
new file mode 100644
index 000000000000..7f4396a5b97e
--- /dev/null
+++ b/obj/machinery/holopad.html
@@ -0,0 +1 @@
+/obj/machinery/holopad - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
hangup_all_calls: Disconnects all current holocalls from the holopad
Var Details
calling
If we are currently calling another holopad
disk
Record disk
force_answer_call
Calls will be automatically answered after a couple rings, here for debugging
holo_calls
Array of /datum/holocalls
holo_range
Change to change how far the AI can move away from the holopad before deactivating
holorays
Holoray-mob link
last_request
To prevent request spam. ~Carn
loop_mode
Currently looping a recording
masters
List of living mobs that use the holopad
outgoing_call
Currently outgoing holocall, do not modify the datums only check and call the public procs
record_mode
Currently recording
record_start
Recording start time
record_user
User that inititiated the recording
replay_holo
Replay hologram
replay_mode
Currently replaying a recording
secure
For pads in secure areas; do not allow forced connecting
Proc Details
hangup_all_calls
hangup_all_calls: Disconnects all current holocalls from the holopad
\ No newline at end of file
diff --git a/obj/machinery/hydroponics.html b/obj/machinery/hydroponics.html
new file mode 100644
index 000000000000..9ea6bdd593f4
--- /dev/null
+++ b/obj/machinery/hydroponics.html
@@ -0,0 +1,5 @@
+/obj/machinery/hydroponics - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
This is NOW the gradual affects that each chemical applies on every process() proc. Nutrients now use a more robust reagent holder in order to apply less insane
+stat changes as opposed to 271 lines of individual statline effects. Shoutout to the original comments on chems, I just cleaned a few up.
Plant Death Proc.
+Cleans up various stats for the plant upon death, including pests, harvestability, and plant health.
Proc Details
adjustWater
Tray Setters - The following procs adjust the tray or plants variables, and make sure that the stat doesn't go out of bounds.
apply_chemicals
This is NOW the gradual affects that each chemical applies on every process() proc. Nutrients now use a more robust reagent holder in order to apply less insane
+stat changes as opposed to 271 lines of individual statline effects. Shoutout to the original comments on chems, I just cleaned a few up.
plantdies
Plant Death Proc.
+Cleans up various stats for the plant upon death, including pests, harvestability, and plant health.
\ No newline at end of file
diff --git a/obj/machinery/hypnochair.html b/obj/machinery/hypnochair.html
new file mode 100644
index 000000000000..b75b80341f74
--- /dev/null
+++ b/obj/machinery/hypnochair.html
@@ -0,0 +1 @@
+/obj/machinery/hypnochair - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Keeps track of the victim to apply effects if it teleports away
message_cooldown
Timer ID for interrogations
start_time
Is the device currently interrogating someone?
timerid
Trigger phrase to implant
trigger_phrase
Time when the interrogation was started, to calculate effect in case of interruption
Proc Details
Initialize
Cooldown for breakout message
\ No newline at end of file
diff --git a/obj/machinery/limbgrower.html b/obj/machinery/limbgrower.html
new file mode 100644
index 000000000000..d6cde9f23741
--- /dev/null
+++ b/obj/machinery/limbgrower.html
@@ -0,0 +1,2 @@
+/obj/machinery/limbgrower - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
limbgrower
The limbgrower. Makes organd and limbs with synthflesh and chems.
+See [limbgrower_designs.dm] for everything we can make.
Emagging a limbgrower allows you to build synthetic armblades.
Var Details
being_built
The design we're printing currently.
busy
If we're currently printing something.
categories
All the categories of organs we can print.
production_coefficient
How efficient our machine is. Better parts = less chemicals used and less power used. Range of 1 to 0.25.
production_speed
How long it takes for us to print a limb. Affected by production_coefficient.
selected_category
The category of limbs we're browing in our UI.
stored_research
Our internal techweb for limbgrower designs.
Proc Details
emag_act
Emagging a limbgrower allows you to build synthetic armblades.
\ No newline at end of file
diff --git a/obj/machinery/mecha_part_fabricator.html b/obj/machinery/mecha_part_fabricator.html
new file mode 100644
index 000000000000..ea31d259aaca
--- /dev/null
+++ b/obj/machinery/mecha_part_fabricator.html
@@ -0,0 +1,64 @@
+/obj/machinery/mecha_part_fabricator - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
The current design datum that the machine is building.
build_finish
World time when the build will finish.
build_materials
Reference to all materials used in the creation of the item being_built.
build_start
World time when the build started.
component_coeff
Coefficient for the efficiency of material usage in item building. Based on the installed parts.
link_on_init
Whether the Exofab links to the ore silo on init. Special derelict or maintanance variants should set this to FALSE.
part_sets
A list of categories that valid MECHFAB design datums will broadly categorise themselves under.
process_queue
Whether or not the machine is building the entire queue automagically.
queue
Current items in the build queue.
rmat
Reference to a remote material inventory, such as an ore silo.
stored_part
Part currently stored in the Exofab.
stored_research
Copy of the currently synced techweb.
time_coeff
Coefficient for the speed of item building. Based on the installed parts.
Proc Details
add_part_set_to_queue
Adds a list of datum designs to the build queue.
+
Will only add designs that are in this machine's stored techweb.
+Does final checks for datum IDs and makes sure this machine can build the designs.
+
+
part_list - List of datum design ids for designs to add to the queue.
+
add_to_queue
Adds a datum design to the build queue.
+
Returns TRUE if successful and FALSE if the design was not added to the queue.
+
+
D - Datum design to add to the queue.
+
build_next_in_queue
Attempts to build the next item in the build queue.
+
Returns FALSE if either there are no more parts to build or the next part is not buildable.
+Returns TRUE if the next part has started building.
+
+
verbose - Whether the machine should use say() procs. Set to FALSE to disable the machine saying reasons for failure to build.
+
build_part
Starts the build process for a given design datum.
+
Returns FALSE if the procedure fails. Returns TRUE when being_built is set.
+Uses materials.
+
+
D - Design datum to attempt to print.
+
verbose - Whether the machine should use say() procs. Set to FALSE to disable the machine saying reasons for failure to build.
+
check_resources
Checks if the Exofab has enough resources to print a given item.
+
Returns FALSE if the design has no reagents used in its construction (?) or if there are insufficient resources.
+Returns TRUE if there are sufficient resources to print the item.
+
+
D - Design datum to calculate the modified resource cost of.
+
dispense_built_part
Dispenses a part to the tile infront of the Exosuit Fab.
+
Returns FALSE is the machine cannot dispense the part on the appropriate turf.
+Return TRUE if the part was successfully dispensed.
+
+
D - Design datum to attempt to dispense.
+
eject_sheets
Eject material sheets.
+
Returns the number of sheets successfully ejected.
+eject_sheet - Byond REF of the material to eject.
+eject_amt - Number of sheets to attempt to eject.
get_construction_time_w_coeff
Calculates the coefficient-modified build time of a design.
+
Returns coefficient-modified build time of a given design.
+
+
D - Design datum to calculate the modified build time of.
+
roundto - Rounding value for round() proc
+
get_resource_cost_w_coeff
Calculates the coefficient-modified resource cost of a single material component of a design's recipe.
+
Returns coefficient-modified resource cost for the given material component.
+
+
D - Design datum to pull the resource cost from.
+
resource - Material datum reference to the resource to calculate the cost of.
+
roundto - Rounding value for round() proc
+
get_resources_w_coeff
Calculates resource/material costs for printing an item based on the machine's resource coefficient.
+
Returns a list of k,v resources with their amounts.
+
+
D - Design datum to calculate the modified resource cost of.
+
list_queue
Generates a list of parts formatted for tgui based on the current build queue.
+
Returns a formatted list of lists containing formatted part information for every part in the build queue.
on_finish_printing
Intended to be called when the exofab has stopped working and is no longer printing items.
+
Removes the overlay to show the fab working and sets idle power usage settings. Additionally resets the description and turns off queue processing.
on_start_printing
Intended to be called when an item starts printing.
+
Adds the overlay to show the fab working and sets active power usage settings.
output_available_resources
Generates a list of resources / materials available to this Exosuit Fab
+
Returns null if there is no material container available.
+List format is list(material_name = list(amount = ..., ref = ..., etc.))
output_part_info
Generates an info list for a given part.
+
Returns a list of part information.
+
+
D - Design datum to get information on.
+
categories - Boolean, whether or not to parse snowflake categories into the part information list.
+
remove_from_queue
Removes datum design from the build queue based on index.
+
Returns TRUE if successful and FALSE if a design was not removed from the queue.
+
+
index - Index in the build queue of the element to remove.
+
sync
Syncs machine with R&D servers.
+
Requires an R&D Console visible within 7 tiles. Copies techweb research. Updates tgui's state data.
\ No newline at end of file
diff --git a/obj/machinery/medipen_refiller.html b/obj/machinery/medipen_refiller.html
new file mode 100644
index 000000000000..8659c90125ba
--- /dev/null
+++ b/obj/machinery/medipen_refiller.html
@@ -0,0 +1 @@
+/obj/machinery/medipen_refiller - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
handles the messages and animation, calls refill to end the animation
refill
refills the medipen
\ No newline at end of file
diff --git a/obj/machinery/mineral.html b/obj/machinery/mineral.html
new file mode 100644
index 000000000000..e1287603f0e0
--- /dev/null
+++ b/obj/machinery/mineral.html
@@ -0,0 +1,8 @@
+/obj/machinery/mineral - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Gets the turf in the input_dir direction adjacent to the machine, and registers signals for ATOM_ENTERED and ATOM_CREATED. Calls the pickup_item() proc when it receives these signals.
Unregisters signals that are registered the machine's input turf, if it has one.
Var Details
input_dir
The current direction of input_turf, in relation to the machine.
input_turf
The turf the machines listens to for items to pick up. Calls the pickup_item() proc.
needs_item_input
Determines if this machine needs to pick up items. Used to avoid registering signals to /mineral machines that don't pickup items.
output_dir
The current direction, in relation to the machine, that items will be output to.
Proc Details
pickup_item
Base proc for all /mineral subtype machines to use. Place your item pickup behavior in this proc when you override it for your specific machine.
+
Called when the COMSIG_ATOM_ENTERED and COMSIG_ATOM_CREATED signals are sent.
+
Arguments:
+
+
source - the turf that is listening for the signals.
+
target - the atom that just moved onto the source turf.
+
oldLoc - the old location that target was at before moving onto source.
+
register_input_turf
Gets the turf in the input_dir direction adjacent to the machine, and registers signals for ATOM_ENTERED and ATOM_CREATED. Calls the pickup_item() proc when it receives these signals.
unload_mineral
Generic unloading proc. Takes an atom as an argument and forceMove's it to the turf adjacent to this machine in the output_dir direction.
unregister_input_turf
Unregisters signals that are registered the machine's input turf, if it has one.
\ No newline at end of file
diff --git a/obj/machinery/mineral/labor_claim_console.html b/obj/machinery/mineral/labor_claim_console.html
new file mode 100644
index 000000000000..26159dbb631e
--- /dev/null
+++ b/obj/machinery/mineral/labor_claim_console.html
@@ -0,0 +1 @@
+/obj/machinery/mineral/labor_claim_console - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/machinery/mineral/stacking_unit_console.html b/obj/machinery/mineral/stacking_unit_console.html
new file mode 100644
index 000000000000..c05de73aedc1
--- /dev/null
+++ b/obj/machinery/mineral/stacking_unit_console.html
@@ -0,0 +1 @@
+/obj/machinery/mineral/stacking_unit_console - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Direction for which console looks for stacking machine to connect to
Var Details
machine
Connected stacking machine
machinedir
Direction for which console looks for stacking machine to connect to
\ No newline at end of file
diff --git a/obj/machinery/modular_computer.html b/obj/machinery/modular_computer.html
new file mode 100644
index 000000000000..c240fb4be3ff
--- /dev/null
+++ b/obj/machinery/modular_computer.html
@@ -0,0 +1 @@
+/obj/machinery/modular_computer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Eats the "source" arg because update_icon actually expects args now.
Var Details
base_active_power_usage
Power usage when the computer is open (screen is active) and can be interacted with. Remember hardware can use power too.
base_idle_power_usage
Power usage when the computer is idle and screen is off (currently only applies to laptops)
cpu
CPU that handles most logic while this type only handles power and other specific things.
hardware_flag
A flag that describes this device type
icon_state_powered
Icon state when the computer is turned on.
icon_state_unpowered
Icon state when the computer is turned off.
last_power_usage
Power usage during last tick
light_strength
Light luminosity when turned on
max_hardware_size
Maximal hardware size. Currently, tablets have 1, laptops 2 and consoles 3. Limits what hardware types can be installed.
screen_icon_screensaver
Icon state overlay when the computer is powered, but not 'switched on'.
screen_icon_state_menu
Icon state overlay when the computer is turned on, but no program is loaded that would override the screen.
steel_sheet_cost
Amount of steel sheets refunded when disassembling an empty frame of this computer.
Proc Details
relay_icon_update
Eats the "source" arg because update_icon actually expects args now.
\ No newline at end of file
diff --git a/obj/machinery/modular_computer/console.html b/obj/machinery/modular_computer/console.html
new file mode 100644
index 000000000000..fa65593b21a4
--- /dev/null
+++ b/obj/machinery/modular_computer/console.html
@@ -0,0 +1 @@
+/obj/machinery/modular_computer/console - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Used in New() to set network tag according to our area.
Var Details
console_department
Used in New() to set network tag according to our area.
\ No newline at end of file
diff --git a/obj/machinery/modular_computer/console/preset/cargochat.html b/obj/machinery/modular_computer/console/preset/cargochat.html
new file mode 100644
index 000000000000..69b543e16978
--- /dev/null
+++ b/obj/machinery/modular_computer/console/preset/cargochat.html
@@ -0,0 +1 @@
+/obj/machinery/modular_computer/console/preset/cargochat - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
chat client installed on this computer, just helpful for linking all the computers
Var Details
chatprogram
chat client installed on this computer, just helpful for linking all the computers
\ No newline at end of file
diff --git a/obj/machinery/navbeacon.html b/obj/machinery/navbeacon.html
new file mode 100644
index 000000000000..f858ed9dee42
--- /dev/null
+++ b/obj/machinery/navbeacon.html
@@ -0,0 +1 @@
+/obj/machinery/navbeacon - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Registers the navbeacon to the global beacon lists
Proc Details
glob_lists_register
Registers the navbeacon to the global beacon lists
\ No newline at end of file
diff --git a/obj/machinery/photocopier.html b/obj/machinery/photocopier.html
new file mode 100644
index 000000000000..12678bee7186
--- /dev/null
+++ b/obj/machinery/photocopier.html
@@ -0,0 +1,32 @@
+/obj/machinery/photocopier - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Sets busy to FALSE. Created as a proc so it can be used in callbacks.
Var Details
ass
A reference to a mob on top of the photocopier trying to copy their ass. Null if there is no mob.
busy
Indicates whether the printer is currently busy copying or not.
color_mode
Used with photos. Determines if the copied photo will be in greyscale or color.
document_copy
A reference to an /obj/item/documents inside the copier, if one is inserted. Otherwise null.
num_copies
How many copies will be printed with one click of the "copy" button.
paper_copy
A reference to an /obj/item/paper inside the copier, if one is inserted. Otherwise null.
photo_copy
A reference to an /obj/item/photo inside the copier, if one is inserted. Otherwise null.
toner_cartridge
A reference to the toner cartridge that's inserted into the copier. Null if there is no cartridge.
Proc Details
check_ass
Checks the living mob ass exists and its location is the same as the photocopier.
+
Returns FALSE if ass doesn't exist or is not at the copier's location. Returns TRUE otherwise.
copier_blocked
Checks if the copier is deleted, or has something dense at its location. Called in MouseDrop_T()
copier_empty
Checks if there is an item inserted into the copier or a mob sitting on top of it.
+
Return FALSE is the copier has something inside of it. Returns TRUE if it doesn't.
do_copy_loop
Will invoke the passed in copy_cb callback in 1 second intervals, and charge the user 5 credits for each copy made.
+
Arguments:
+
+
copy_cb - a callback for which proc to call. Should only be one of the make_x_copy() procs, such as make_paper_copy().
+
user - the mob who clicked copy.
+
do_insertion
Inserts the item into the copier. Called in attackby() after a human mob clicked on the copier with a paper, photo, or document.
+
Arugments:
+
+
object - the object that got inserted.
+
user - the mob that inserted the object.
+
give_pixel_offset
Gives items a random x and y pixel offset, between -10 and 10 for each.
+
This is done that when someone prints multiple papers, we dont have them all appear to be stacked in the same exact location.
+
Arguments:
+
+
copied_item - The paper, document, or photo that was just spawned on top of the printer.
+
has_enough_toner
Determines if the photocopier has enough toner to create num_copies amount of copies of the currently inserted item.
make_ass_copy
Handles the copying of an ass photo.
+
Calls check_ass() first to make sure that ass exists, among other conditions. Since this proc is called from a timer, it's possible that it was removed.
+Additionally checks that the mob has their clothes off.
make_devil_paper_copy
Handles the copying of devil contract paper. Transfers all the text, stamps and so on from the old paper, to the copy.
+
Checks first if paper_copy exists. Since this proc is called from a timer, it's possible that it was removed.
+Does not check if it has enough toner because devil contracts cost no toner to print.
make_document_copy
Handles the copying of documents.
+
Checks first if document_copy exists. Since this proc is called from a timer, it's possible that it was removed.
make_paper_copy
Handles the copying of paper. Transfers all the text, stamps and so on from the old paper, to the copy.
+
Checks first if paper_copy exists. Since this proc is called from a timer, it's possible that it was removed.
make_photo_copy
Handles the copying of photos, which can be printed in either color or greyscale.
+
Checks first if photo_copy exists. Since this proc is called from a timer, it's possible that it was removed.
remove_photocopy
Called when someone hits the "remove item" button on the copier UI.
+
If the user is a silicon, it drops the object at the location of the copier. If the user is not a silicon, it tries to put the object in their hands first.
+Sets busy to FALSE because if the inserted item is removed, the copier should halt copying.
+
Arguments:
+
+
object - the item we're trying to remove.
+
user - the user removing the item.
+
reset_busy
Sets busy to FALSE. Created as a proc so it can be used in callbacks.
\ No newline at end of file
diff --git a/obj/machinery/plate_press.html b/obj/machinery/plate_press.html
new file mode 100644
index 000000000000..ff2dc04a466e
--- /dev/null
+++ b/obj/machinery/plate_press.html
@@ -0,0 +1 @@
+/obj/machinery/plate_press - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
This proc attempts to create a plate. User cannot move during this process.
Proc Details
work_press
This proc attempts to create a plate. User cannot move during this process.
\ No newline at end of file
diff --git a/obj/machinery/plumbing.html b/obj/machinery/plumbing.html
new file mode 100644
index 000000000000..ef8004bd6334
--- /dev/null
+++ b/obj/machinery/plumbing.html
@@ -0,0 +1,4 @@
+/obj/machinery/plumbing - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
plumbing
Basic plumbing object.
+It doesn't really hold anything special, YET.
+Objects that are plumbing but not a subtype are as of writing liquid pumps and the reagent_dispenser tank
+Also please note that the plumbing component is toggled on and off by the component using a signal from default_unfasten_wrench, so dont worry about it
Flags for reagents, like INJECTABLE, TRANSPARENT bla bla everything thats in DEFINES/reagents.dm
Var Details
buffer
Plumbing machinery is always gonna need reagents, so we might aswell put it here
rcd_constructable
wheter we partake in rcd construction or not
rcd_cost
cost of the plumbing rcd construction
rcd_delay
delay of constructing it throught the plumbing rcd
reagent_flags
Flags for reagents, like INJECTABLE, TRANSPARENT bla bla everything thats in DEFINES/reagents.dm
\ No newline at end of file
diff --git a/obj/machinery/plumbing/acclimator.html b/obj/machinery/plumbing/acclimator.html
new file mode 100644
index 000000000000..e51f74a77445
--- /dev/null
+++ b/obj/machinery/plumbing/acclimator.html
@@ -0,0 +1,3 @@
+/obj/machinery/plumbing/acclimator - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
*We can't take anything in, at least till we're emptied. Down side of the round robin chem transfer, otherwise while emptying 5u of an unreacted chem gets added,
+and you get nasty leftovers
COOLING, HEATING or NEUTRAL. We track this for change, so we dont needlessly update our icon
allowed_temperature_difference
I cant find a good name for this. Basically if target is 300, and this is 10, it will still target 300 but will start emptying itself at 290 and 310.
emptying
*We can't take anything in, at least till we're emptied. Down side of the round robin chem transfer, otherwise while emptying 5u of an unreacted chem gets added,
+and you get nasty leftovers
enabled
Are we turned on or off? this is from the on and off button
heater_coefficient
cool/heat power
target_temperature
towards wich temperature do we build?
\ No newline at end of file
diff --git a/obj/machinery/plumbing/bottler.html b/obj/machinery/plumbing/bottler.html
new file mode 100644
index 000000000000..939fb71acbd0
--- /dev/null
+++ b/obj/machinery/plumbing/bottler.html
@@ -0,0 +1 @@
+/obj/machinery/plumbing/bottler - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
\ No newline at end of file
diff --git a/obj/machinery/plumbing/disposer.html b/obj/machinery/plumbing/disposer.html
new file mode 100644
index 000000000000..e16580071bc3
--- /dev/null
+++ b/obj/machinery/plumbing/disposer.html
@@ -0,0 +1 @@
+/obj/machinery/plumbing/disposer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/machinery/plumbing/fermenter.html b/obj/machinery/plumbing/fermenter.html
new file mode 100644
index 000000000000..df44284316af
--- /dev/null
+++ b/obj/machinery/plumbing/fermenter.html
@@ -0,0 +1 @@
+/obj/machinery/plumbing/fermenter - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/machinery/plumbing/filter.html b/obj/machinery/plumbing/filter.html
new file mode 100644
index 000000000000..5d69106f4b06
--- /dev/null
+++ b/obj/machinery/plumbing/filter.html
@@ -0,0 +1 @@
+/obj/machinery/plumbing/filter - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
filter
chemical plumbing filter. If it's not filtered by left and right, it goes straight.
whitelist of chem id's that go to the right side. Empty to disable port
Var Details
english_left
whitelist of chems but their name instead of path
english_right
whitelist of chems but their name instead of path
left
whitelist of chems id's that go to the left side. Empty to disable port
right
whitelist of chem id's that go to the right side. Empty to disable port
\ No newline at end of file
diff --git a/obj/machinery/plumbing/liquid_pump.html b/obj/machinery/plumbing/liquid_pump.html
new file mode 100644
index 000000000000..ab7f680287d4
--- /dev/null
+++ b/obj/machinery/plumbing/liquid_pump.html
@@ -0,0 +1 @@
+/obj/machinery/plumbing/liquid_pump - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
liquid_pump
We pump liquids from activated(plungerated) geysers to a plumbing outlet. We don't need to be wired.
set to true if the loop couldnt find a geyser in process, so it remembers and stops checking every loop until moved. more accurate name would be absolutely_no_geyser_under_me_so_dont_try
set to true if the loop couldnt find a geyser in process, so it remembers and stops checking every loop until moved. more accurate name would be absolutely_no_geyser_under_me_so_dont_try
pump_power
units we pump per process (2 seconds)
volume
volume of our internal buffer
Proc Details
default_unfasten_wrench
please note that the component has a hook in the parent call, wich handles activating and deactivating
pump
pump up that sweet geyser nectar
\ No newline at end of file
diff --git a/obj/machinery/plumbing/pill_press.html b/obj/machinery/plumbing/pill_press.html
new file mode 100644
index 000000000000..51f53d524df6
--- /dev/null
+++ b/obj/machinery/plumbing/pill_press.html
@@ -0,0 +1 @@
+/obj/machinery/plumbing/pill_press - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
pill_press
We take a constant input of reagents, and produce a pill once a set volume is reached
list of products stored in the machine, so we dont have 610 pills on one tile
Var Details
current_volume
selected size of the product
max_bottle_volume
maximum size of a bottle
max_floor_products
max amount of pills allowed on our tile before we start storing them instead
max_patch_volume
maximum size of a patch
max_pill_volume
maximum size of a pill
max_volume
the maximum size a pill or patch can be
min_volume
the minimum size a pill or patch can be
pill_number
the icon_state number for the pill.
pill_styles
list of id's and icons for the pill selection of the ui
product
current operating product (pills or patches)
product_name
prefix for the product name
stored_products
list of products stored in the machine, so we dont have 610 pills on one tile
\ No newline at end of file
diff --git a/obj/machinery/plumbing/reaction_chamber.html b/obj/machinery/plumbing/reaction_chamber.html
new file mode 100644
index 000000000000..acef76efb143
--- /dev/null
+++ b/obj/machinery/plumbing/reaction_chamber.html
@@ -0,0 +1,3 @@
+/obj/machinery/plumbing/reaction_chamber - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
reaction_chamber
a reaction chamber for plumbing. pretty much everything can react, but this one keeps the reagents seperated and only reacts under your given terms
*list of set reagents that the reaction_chamber allows in, and must all be present before mixing is enabled.
+* example: list(/datum/reagent/water = 20, /datum/reagent/fuel/oil = 50)
Var Details
emptying
our reagent goal has been reached, so now we lock our inputs and start emptying
required_reagents
*list of set reagents that the reaction_chamber allows in, and must all be present before mixing is enabled.
+* example: list(/datum/reagent/water = 20, /datum/reagent/fuel/oil = 50)
\ No newline at end of file
diff --git a/obj/machinery/plumbing/splitter.html b/obj/machinery/plumbing/splitter.html
new file mode 100644
index 000000000000..c07a09dc51b8
--- /dev/null
+++ b/obj/machinery/plumbing/splitter.html
@@ -0,0 +1 @@
+/obj/machinery/plumbing/splitter - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
splitter
it splits the reagents however you want. So you can "every 60 units, 45 goes left and 15 goes straight". The side direction is EAST, you can change this in the component
constantly switches between TRUE and FALSE. TRUE means the batch tick goes straight, FALSE means the next batch goes in the side duct.
Var Details
transfer_side
how much we must transfer to the side
transfer_straight
how much we must transfer straight. note input can be as high as 10 reagents per process, usually
turn_straight
constantly switches between TRUE and FALSE. TRUE means the batch tick goes straight, FALSE means the next batch goes in the side duct.
\ No newline at end of file
diff --git a/obj/machinery/plumbing/synthesizer.html b/obj/machinery/plumbing/synthesizer.html
new file mode 100644
index 000000000000..adb14fd285a4
--- /dev/null
+++ b/obj/machinery/plumbing/synthesizer.html
@@ -0,0 +1 @@
+/obj/machinery/plumbing/synthesizer - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
synthesizer
A single machine that produces a single chem. Can be placed in unison with others through plumbing to create chemical factories
straight up copied from chem dispenser. Being a subtype would be extremely tedious and making it global would restrict potential subtypes using different dispensable_reagents
The reagent we are producing. We are a typepath, but are also typecast because there's several occations where we need to use initial.
Var Details
amount
Amount we produce for every process. Ideally keep under 5 since thats currently the standard duct capacity
buffer
The maximum we can produce for every process
dispensable_reagents
straight up copied from chem dispenser. Being a subtype would be extremely tedious and making it global would restrict potential subtypes using different dispensable_reagents
possible_amounts
I track them here because I have no idea how I'd make tgui loop like that
reagent_id
The reagent we are producing. We are a typepath, but are also typecast because there's several occations where we need to use initial.
\ No newline at end of file
diff --git a/obj/machinery/pool/controller.html b/obj/machinery/pool/controller.html
new file mode 100644
index 000000000000..d0bde610f07c
--- /dev/null
+++ b/obj/machinery/pool/controller.html
@@ -0,0 +1 @@
+/obj/machinery/pool/controller - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Old reagent color, used to determine if update_color needs to reset colors.
reagent_tick_interval
how fast in deciseconds between reagent processes
respect_reagent_blacklist
Reagent blacklisting
scan_range
How far it scans for pool objects
shocked
Airlock style shocks
temperature
See __DEFINES/pool.dm, temperature defines
temperature_unlocked
Can we use unsafe temperatures
\ No newline at end of file
diff --git a/obj/machinery/pool/drain.html b/obj/machinery/pool/drain.html
new file mode 100644
index 000000000000..e104f25c7869
--- /dev/null
+++ b/obj/machinery/pool/drain.html
@@ -0,0 +1 @@
+/obj/machinery/pool/drain - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
\ No newline at end of file
diff --git a/obj/machinery/porta_turret.html b/obj/machinery/porta_turret.html
new file mode 100644
index 000000000000..cd65494a7e2f
--- /dev/null
+++ b/obj/machinery/porta_turret.html
@@ -0,0 +1 @@
+/obj/machinery/porta_turret - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The turret will try to shoot from a turf in that direction when in a wall
Var Details
always_up
Will stay active
base
For turrets inside other objects
base_icon_state
Base turret icon state
controllock
If the turret responds to control panels
cover
The cover that is covering this turret
cp
Linked turret control panel of the turret
faction
Same faction mobs will never be shot at, no matter the other settings
gun_charge
The charge of the gun when retrieved from wreckage
has_cover
Hides the cover
installation
The type of weapon installed by default
last_fired
World.time the turret last fired
lethal_projectile
Lethal mode projectile type
lethal_projectile_sound
Sound of lethal projectile
locked
If the turret's behaviour control access is locked
manual_control
If the turret is manually controlled
mode
In which mode is turret in, stun or lethal
nonlethal_projectile
Projectile to use in stun mode when the target is resting, if any
nonlethal_projectile_sound
Sound of stun projectile wen the target is resting, optional
on
Determines if the turret is on
power_channel
Only people with Security access
quit_action
Action button holder for quitting manual control
raised
If the turret cover is "open" and the turret is raised
raising
If the turret is currently opening or closing its cover
remote_controller
Mob that is remotely controlling the turret
reqpower
Power needed per shot
scan_range
Scan range of the turret for locating targets
shot_delay
Ticks until next shot (1.5 ?)
shot_stagger
MISSING:
spark_system
The spark system, used for generating... sparks?
stored_gun
What stored gun is in the turret
stun_projectile
Stun mode projectile type
stun_projectile_sound
Sound of stun projectile
toggle_action
Action button holder for switching between turret modes when manually controlling
turret_flags
Turret flags about who is turret allowed to shoot
wall_turret_direction
The turret will try to shoot from a turf in that direction when in a wall
\ No newline at end of file
diff --git a/obj/machinery/portable_atmospherics/canister.html b/obj/machinery/portable_atmospherics/canister.html
new file mode 100644
index 000000000000..8876c8b8e9e1
--- /dev/null
+++ b/obj/machinery/portable_atmospherics/canister.html
@@ -0,0 +1,3 @@
+/obj/machinery/portable_atmospherics/canister - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Max amount of heat allowed inside of the canister before it starts to melt (different tiers have different limits)
+Max amount of pressure allowed inside of the canister before it starts to break (different tiers have different limits)
Var Details
req_access
Set the tier of the canister and overlay used
temperature_resistance
Max amount of heat allowed inside of the canister before it starts to melt (different tiers have different limits)
+Max amount of pressure allowed inside of the canister before it starts to break (different tiers have different limits)
\ No newline at end of file
diff --git a/obj/machinery/power/apc.html b/obj/machinery/power/apc.html
new file mode 100644
index 000000000000..da70a7e79a25
--- /dev/null
+++ b/obj/machinery/power/apc.html
@@ -0,0 +1,32 @@
+/obj/machinery/power/apc - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Used by external forces to set the APCs channel status's.
Var Details
alarm_manager
Represents a signel source of power alarms for this apc
Proc Details
autoset
Returns the new status value for an APC channel.
+
// val 0=off, 1=off(auto) 2=on 3=on(auto)
+// on 0=off, 1=on, 2=autooff
+TODO: Make this use bitflags instead. It should take at most three lines, but it's out of scope for now.
+
Arguments:
+
+
val: The current status of the power channel.
+
+
APC_CHANNEL_OFF: The APCs channel has been manually set to off. This channel will not automatically change.
APC_CHANNEL_ON: The APCs channel has been manually set to on. This will be automatically changed only if the APC runs completely out of power or is disabled.
\ No newline at end of file
diff --git a/obj/machinery/power/deck_relay.html b/obj/machinery/power/deck_relay.html
new file mode 100644
index 000000000000..50c75b676d73
--- /dev/null
+++ b/obj/machinery/power/deck_relay.html
@@ -0,0 +1 @@
+/obj/machinery/power/deck_relay - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Handles re-acquiring + merging powernets found by find_relays()
Var Details
above
The relay that's below us (for bridging powernets)
anchored
The relay that's above us (for bridging powernets)
Proc Details
find_relays
Locates relays that are above and below this object
multitool_act
Allows you to scan the relay with a multitool to see stats.
refresh
Handles re-acquiring + merging powernets found by find_relays()
\ No newline at end of file
diff --git a/obj/machinery/power/solar.html b/obj/machinery/power/solar.html
new file mode 100644
index 000000000000..c3145f22afa1
--- /dev/null
+++ b/obj/machinery/power/solar.html
@@ -0,0 +1 @@
+/obj/machinery/power/solar - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
calculates the fraction of the sunlight that the panel receives
Proc Details
occlusion_setup
trace towards sun to see if we're in shadow
update_solar_exposure
calculates the fraction of the sunlight that the panel receives
\ No newline at end of file
diff --git a/obj/machinery/power/solar_control.html b/obj/machinery/power/solar_control.html
new file mode 100644
index 000000000000..3b7f3709af4e
--- /dev/null
+++ b/obj/machinery/power/solar_control.html
@@ -0,0 +1 @@
+/obj/machinery/power/solar_control - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
\ No newline at end of file
diff --git a/obj/machinery/power/supermatter_crystal.html b/obj/machinery/power/supermatter_crystal.html
new file mode 100644
index 000000000000..251fb6550085
--- /dev/null
+++ b/obj/machinery/power/supermatter_crystal.html
@@ -0,0 +1 @@
+/obj/machinery/power/supermatter_crystal - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Used for changing icon states for diff base sprites
bullet_energy
How much the bullets damage should be multiplied by when it is added to the internal variables
combined_gas
The last air sample's total molar count, will always be above or equal to 0
common_channel
The common channel
countdown
An effect we show to admins and ghosts the percentage of delam we're at
damage
The amount of damage we have currently
damage_archived
The damage we had before this cycle. Used to limit the damage we can take each cycle, and for safe_alert
damage_penalty_point
When we pass this amount of damage we start shooting bolts
dynamic_heat_resistance
Affects the amount of damage and minimum point at which the sm takes heat damage
emergency_alert
The alert we send when we've reached emergency_point
emergency_point
The point at which we start sending messages to the common channel
engineering_channel
The engineering channel
explosion_point
The point at which we delam
final_countdown
Are we exploding?
gas_change_rate
Determines the rate of positve change in gas comp values
gasefficency
The portion of the gasmix we're on that we should remove
gasmix_power_ratio
Affects the power gain the sm experiances from heat
gl_uid
The amount of supermatters that have been created this round
hallucination_power
How much hallucination should we produce per unit of power?
has_been_powered
Boolean used for logging if we've been powered
has_reached_emergency
Boolean used for logging if we've passed the emergency point
is_main_engine
Used along with a global var to track if we can give out the sm sliver stealing objective
last_accent_sound
cooldown tracker for accent sounds
lastwarning
Time in 1/10th of seconds since the last sent warning
matter_power
Takes the energy throwing things into the sm generates and slowly turns it into actual power
mole_heat_penalty
Used to increase or lessen the amount of damage the sm takes from heat based on molar counts.
moveable
Can it be moved?
power
Refered to as eer on the moniter. This value effects gas output, heat, damage, and radiation.
power_changes
Disables power changes
powerloss_dynamic_scaling
Based on co2 percentage, slowly moves between 0 and 1. We use it to calc the powerloss_inhibitor
powerloss_inhibitor
Uses powerloss_dynamic_scaling and combined_gas to lessen the effects of our powerloss functions
processes
Disables the sm's proccessing totally.
produces_gas
Disables the production of gas, and pretty much any handling of it we do.
radio
Our internal radio
radio_key
The key our internal radio uses
safe_alert
Our "Shit is no longer fucked" message. We send it when damage is less then damage_archived
soundloop
Our soundloop
takes_damage
Disables all methods of taking damage
uid
The id of our supermatter
warning_alert
The alert we send when we've reached warning_point
warning_point
The point at which we should start sending messeges about the damage to the engi channels.
zap_cutoff
The cutoff for a bolt jumping, grows with heat, lowers with higher mol count,
zap_icon
Tracks the bolt color we are using
\ No newline at end of file
diff --git a/obj/machinery/power/tracker.html b/obj/machinery/power/tracker.html
new file mode 100644
index 000000000000..967ad2fc60d8
--- /dev/null
+++ b/obj/machinery/power/tracker.html
@@ -0,0 +1 @@
+/obj/machinery/power/tracker - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/machinery/recharger.html b/obj/machinery/recharger.html
new file mode 100644
index 000000000000..e63203e2f796
--- /dev/null
+++ b/obj/machinery/recharger.html
@@ -0,0 +1 @@
+/obj/machinery/recharger - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Did we finish recharging the currently inserted item?
Var Details
finished_recharging
Did we finish recharging the currently inserted item?
\ No newline at end of file
diff --git a/obj/machinery/research/explosive_compressor.html b/obj/machinery/research/explosive_compressor.html
new file mode 100644
index 000000000000..e320dd856e5d
--- /dev/null
+++ b/obj/machinery/research/explosive_compressor.html
@@ -0,0 +1,7 @@
+/obj/machinery/research/explosive_compressor - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Explosive compressor machines
The explosive compressor machine used in anomaly core production.
+
Uses the standard toxins/tank explosion scaling to compress raw anomaly cores into completed ones. The required explosion radius increases as more cores of that type are created.
Says (no, literally) the data of required explosive power for a certain anomaly type.
Var Details
inserted_bomb
The TTV inserted in the machine.
inserted_core
The raw core inserted in the machine.
last_requirements_say
The last time we did say_requirements(), because someone will inevitably click spam this.
Proc Details
do_implosion
The ""explosion"" proc.
get_required_radius
Determines how much explosive power (last value, so light impact theoretical radius) is required to make a certain anomaly type.
+
Returns null if the max amount has already been reached.
+
Arguments:
+
+
anomaly_type - anomaly type define
+
say_requirements
Says (no, literally) the data of required explosive power for a certain anomaly type.
\ No newline at end of file
diff --git a/obj/machinery/seed_extractor.html b/obj/machinery/seed_extractor.html
new file mode 100644
index 000000000000..2ee0207b3876
--- /dev/null
+++ b/obj/machinery/seed_extractor.html
@@ -0,0 +1,16 @@
+/obj/machinery/seed_extractor - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Associated list of seeds, they are all weak refs. We check the len to see how many refs we have for each
Proc Details
add_seed
+
+
Add Seeds Proc.
+
+
Adds the seeds to the contents and to an associated list that pregenerates the data
+
needed to go to the ui handler
+
+
+
generate_seed_string
Generate seed string
+
Creates a string based of the traits of a seed. We use this string as a bucket for all
+seeds that match as well as the key the ui uses to get the seed. We also use the key
+for the data shown in the ui. Javascript parses this string to display
+
Arguments:
+
+
O - seed to generate the string from
+
\ No newline at end of file
diff --git a/obj/machinery/self_actualization_device.html b/obj/machinery/self_actualization_device.html
new file mode 100644
index 000000000000..23e0f6b810d7
--- /dev/null
+++ b/obj/machinery/self_actualization_device.html
@@ -0,0 +1 @@
+/obj/machinery/self_actualization_device - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Ejects the occupant as either their preference character, or as a monke based on emag status.
Var Details
advertisements
A list containing advertisements that the machine says while working.
breakout_time
How long does it take to break out of the machine?
next_fact
The interval that advertisements are said by the machine's speaker.
processing
Is someone being processed inside of the machine?
processing_time
How long does the machine take to work?
Proc Details
check_organ
Checks the damage on the inputed organ and stores it.
eject_new_you
Ejects the occupant as either their preference character, or as a monke based on emag status.
\ No newline at end of file
diff --git a/obj/machinery/smartfridge.html b/obj/machinery/smartfridge.html
new file mode 100644
index 000000000000..1c505c4a315e
--- /dev/null
+++ b/obj/machinery/smartfridge.html
@@ -0,0 +1 @@
+/obj/machinery/smartfridge - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
What path boards used to construct it should build into when dropped. Needed so we don't accidentally have them build variants with items preloaded in them.
Really simple proc, just moves the object "O" into the hands of mob "M" if able, done so I could modify the proc a little for the organ fridge
Var Details
max_n_of_items
What path boards used to construct it should build into when dropped. Needed so we don't accidentally have them build variants with items preloaded in them.
Proc Details
attackby
Item Adding
dispense
Really simple proc, just moves the object "O" into the hands of mob "M" if able, done so I could modify the proc a little for the organ fridge
\ No newline at end of file
diff --git a/obj/machinery/status_display.html b/obj/machinery/status_display.html
new file mode 100644
index 000000000000..89c425ea2659
--- /dev/null
+++ b/obj/machinery/status_display.html
@@ -0,0 +1,15 @@
+/obj/machinery/status_display - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
status_display
Status display which can show images and scrolling text.
Create/update message overlay.
+They must be handled as real objects for the animation to run.
+Don't call this in subclasses.
+Arguments:
Proc Details
remove_messages
Remove both message objs and null the fields.
+Don't call this in subclasses.
set_messages
Immediately change the display to the given two lines.
set_picture
Immediately change the display to the given picture.
update
Update the display and, if necessary, re-enable processing.
update_message
Create/update message overlay.
+They must be handled as real objects for the animation to run.
+Don't call this in subclasses.
+Arguments:
+
+
overlay - the current /obj/effect/overlay/status_display_text instance
+
line_y - The Y offset to render the text.
+
message - the new message text.
+Returns new /obj/effect/overlay/status_display_text or null if unchanged.
+
\ No newline at end of file
diff --git a/obj/machinery/status_display/ai.html b/obj/machinery/status_display/ai.html
new file mode 100644
index 000000000000..a2ce004b349c
--- /dev/null
+++ b/obj/machinery/status_display/ai.html
@@ -0,0 +1 @@
+/obj/machinery/status_display/ai - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
A mapping between AI_EMOTION_* string constants, which also double as user readable descriptions, and the name of the iconfile.
Var Details
emotion_map
A mapping between AI_EMOTION_* string constants, which also double as user readable descriptions, and the name of the iconfile.
\ No newline at end of file
diff --git a/obj/machinery/suit_storage_unit.html b/obj/machinery/suit_storage_unit.html
new file mode 100644
index 000000000000..f41a5084d91a
--- /dev/null
+++ b/obj/machinery/suit_storage_unit.html
@@ -0,0 +1,16 @@
+/obj/machinery/suit_storage_unit - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
If the SSU's doors are locked closed. Can be toggled manually via the UI, but is also locked automatically when the UV decontamination sequence is running.
If the safety wire is cut/pulsed, the SSU can run the decontamination sequence while occupied by a mob. The mob will be burned during every cycle of cook().
UV decontamination sequence.
+Duration is determined by the uv_cycles var.
+Effects determined by the uv_super var.
Var Details
breakout_time
How long it takes to break out of the SSU.
charge_rate
How fast it charges cells in a suit
helmet_type
What type of space helmet the unit starts with when spawned.
locked
If the SSU's doors are locked closed. Can be toggled manually via the UI, but is also locked automatically when the UV decontamination sequence is running.
mask_type
What type of breathmask the unit starts with when spawned.
message_cooldown
Cooldown for occupant breakout messages via relaymove()
mod_type
What type of MOD the unit starts with when spawned.
safeties
If the safety wire is cut/pulsed, the SSU can run the decontamination sequence while occupied by a mob. The mob will be burned during every cycle of cook().
shoes_type
What type of shoes the unit starts with when spawned.
storage_type
What type of additional item the unit starts with when spawned.
suit_type
What type of spacesuit the unit starts with when spawned.
uv
If UV decontamination sequence is running. See cook()
uv_cycles
How many cycles remain for the decontamination sequence.
uv_super
If the hack wire is cut/pulsed.
+Modifies effects of cook()
+
+
If FALSE, decontamination sequence will clear radiation for all atoms (and their contents) contained inside the unit, and burn any mobs inside.
+
If TRUE, decontamination sequence will delete all items contained within, and if occupied by a mob, intensifies burn damage delt. All wires will be cut at the end.
+
Proc Details
cook
UV decontamination sequence.
+Duration is determined by the uv_cycles var.
+Effects determined by the uv_super var.
+
+
If FALSE, all atoms (and their contents) contained are cleared of radiation. If a mob is inside, they are burned every cycle.
+
If TRUE, all items contained are destroyed, and burn damage applied to the mob is increased. All wires will be cut at the end.
+All atoms still inside at the end of all cycles are ejected from the unit.
+
\ No newline at end of file
diff --git a/obj/machinery/turretid.html b/obj/machinery/turretid.html
new file mode 100644
index 000000000000..097f735bce86
--- /dev/null
+++ b/obj/machinery/turretid.html
@@ -0,0 +1 @@
+/obj/machinery/turretid - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
An area in which linked turrets are located, it can be an area name, path or nothing
enabled
Variable dictating if linked turrets are active and will shoot targets
lethal
Variable dictating if linked turrets will shoot lethal projectiles
locked
Variable dictating if the panel is locked, preventing changes to turret settings
shoot_cyborgs
Variable dictating if linked turrets will shoot cyborgs
turrets
List of all linked turrets
\ No newline at end of file
diff --git a/obj/machinery/vending.html b/obj/machinery/vending.html
new file mode 100644
index 000000000000..4138874a95f3
--- /dev/null
+++ b/obj/machinery/vending.html
@@ -0,0 +1,57 @@
+/obj/machinery/vending - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
vending machines
Captalism in the year 2525, everything in a vending machine, even love
Set up a refill canister that matches this machines products
Var Details
Radio
used for narcing on underages
active
Is the machine active (No sales pitches if off)!
age_restrictions
Whether our age check is currently functional
bill
Bills we accept?
canload_access_list
ID's that can load this vending machine wtih refills
coin
Coins that we accept?
contraband
List of products this machine sells when you hack it
+
form should be list(/type/path = amount, /type/path2 = amount2)
cost_multiplier_per_dept
cost multiplier per department or access
default_price
Default price of items if not overridden
extended_inventory
can we access the hidden inventory?
extra_price
Default price of premium items if not overridden
icon_deny
Icon to flash when user is denied a vend
icon_vend
Icon when vending an item to the user
input_display_header
Display header on the input view
last_reply
Last world tick we sent a vent reply
last_shopper
The ref of the last mob to shop with us
last_slogan
Last world tick we sent a slogan message out
light_mask
Name of lighting mask for the vending machine
loaded_items
how many items have been inserted in a vendor
onstation
Is this item on station or not
+
if it doesn't originate from off-station during mapload, everything is free
onstation_override
A variable to change on a per instance basis on the map that allows the instance to force cost and ID requirements
premium
List of premium products this machine sells
+
form should be list(/type/path, /type/path2) as there is only ever one in stock
product_ads
String of small ad messages in the vending screen - random chance
product_slogans
String of slogans separated by semicolons, optional
products
List of products this machine sells
+
form should be list(/type/path = amount, /type/path2 = amount2)
purchase_message_cooldown
Next world time to send a purchase message
scan_id
Are we checking the users ID
seconds_electrified
World ticks the machine is electified for
shoot_inventory
When this is TRUE, we fire items at customers! We're broken!
shoot_inventory_chance
How likely this is to happen (prob 100) per second
slogan_delay
How many ticks until we can send another
small_ads
Small ad messages in the vending screen - random chance of popping up whenever you open it
vend_ready
Are we ready to vend?? Is it time??
vend_reply
Message sent post vend (Thank you for shopping!)
Proc Details
Initialize
Initialize the vending machine
+
Builds the vending machine inventory, sets up slogans and other such misc work
+
This also sets the onstation var to:
+
+
FALSE - if the machine was maploaded on a zlevel that doesn't pass the is_station_level check
+
TRUE - all other cases
+
build_inventory
Build the inventory of the vending machine from it's product and record lists
+
This builds up a full set of /datum/data/vending_products from the product list of the vending machine type
+Arguments:
+
+
productlist - the list of products that need to be converted
+
recordlist - the list containing /datum/data/vending_product datums
+
startempty - should we set vending_product record amount from the product list (so it's prefilled at roundstart)
+
canLoadItem
Are we able to load the item passed in
+
Arguments:
+
+
I - the item being loaded
+
user - the user doing the loading
+
compartmentLoadAccessCheck
Is the passed in user allowed to load this vending machines compartments
+
Arguments:
+
+
user - mob that is doing the loading of the vending machine
+
pre_throw
A callback called before an item is tossed out
+
Override this if you need to do any special case handling
+
Arguments:
+
+
I - obj/item being thrown
+
refill_inventory
Refill our inventory from the passed in product list into the record list
+
Arguments:
+
+
productlist - list of types -> amount
+
recordlist - existing record datums
+
restock
Refill a vending machine from a refill canister
+
This takes the products from the refill canister and then fills the products,contraband and premium product categories
+
Arguments:
+
+
canister - the vending canister we are refilling from
+
shock
Shock the passed in user
+
This checks we have power and that the passed in prob is passed, then generates some sparks
+and calls electrocute_mob on the user
+
Arguments:
+
+
user - the user to shock
+
prb - probability the shock happens
+
speak
Speak the given message verbally
+
Checks if the machine is powered and the message exists
+
Arguments:
+
+
message - the message to speak
+
throw_impact
Crush the mob that the vending machine got thrown at
throw_item
Throw an item from our internal inventory out in front of us
+
This is called when we are hacked, it selects a random product from the records that has an amount > 0
+This item is then created and tossed out in front of us with a visible message
tilt
Tilts ontop of the atom supplied, if crit is true some extra shit can happen. Returns TRUE if it dealt damage to something.
unbuild_inventory
Given a record list, go through and and return a list of type -> amount
update_canister
Set up a refill canister that matches this machines products
+
This is used when the machine is deconstructed, so the items aren't "lost"
\ No newline at end of file
diff --git a/obj/machinery/vending/custom.html b/obj/machinery/vending/custom.html
new file mode 100644
index 000000000000..6db827bfc7ca
--- /dev/null
+++ b/obj/machinery/vending/custom.html
@@ -0,0 +1 @@
+/obj/machinery/vending/custom - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
max number of items that the custom vendor can hold
private_a
where the money is sent
\ No newline at end of file
diff --git a/obj/modular_map_root.html b/obj/modular_map_root.html
new file mode 100644
index 000000000000..78e0006f0207
--- /dev/null
+++ b/obj/modular_map_root.html
@@ -0,0 +1 @@
+/obj/modular_map_root - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Randonly selects a map file from the TOML config specified in config_file, loads it, then deletes itself.
Var Details
config_file
Points to a .toml file storing configuration data about the modules associated with this root
key
Key used to look up the appropriate map paths in the associated .toml file
Proc Details
load_map
Randonly selects a map file from the TOML config specified in config_file, loads it, then deletes itself.
\ No newline at end of file
diff --git a/obj/structure/alien/resin/flower_bud_enemy.html b/obj/structure/alien/resin/flower_bud_enemy.html
new file mode 100644
index 000000000000..85b6ea6faa56
--- /dev/null
+++ b/obj/structure/alien/resin/flower_bud_enemy.html
@@ -0,0 +1,6 @@
+/obj/structure/alien/resin/flower_bud_enemy - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
flower_bud_enemy
Kudzu Flower Bud
+
A flower created by flowering kudzu which spawns a venus human trap after a certain amount of time has passed.
+
A flower created by kudzu with the flowering mutation. Spawns a venus human trap after 2 minutes under normal circumstances.
+Also spawns 4 vines going out in diagonal directions from the bud. Any living creature not aligned with plants is damaged by these vines.
+Once it grows a venus human trap, the bud itself will destroy itself.
The amount of time it takes to create a venus human trap, in deciseconds
Proc Details
bear_fruit
Spawns a venus human trap, then qdels itself.
+
Displays a message, spawns a human venus trap, then qdels itself.
\ No newline at end of file
diff --git a/obj/structure/bed/double.html b/obj/structure/bed/double.html
new file mode 100644
index 000000000000..ed70ffb6351b
--- /dev/null
+++ b/obj/structure/bed/double.html
@@ -0,0 +1 @@
+/obj/structure/bed/double - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The mob who buckled to this bed second, to avoid other mobs getting pixel-shifted before he unbuckles.
Var Details
goldilocks
The mob who buckled to this bed second, to avoid other mobs getting pixel-shifted before he unbuckles.
\ No newline at end of file
diff --git a/obj/structure/bloodsucker/candelabrum.html b/obj/structure/bloodsucker/candelabrum.html
new file mode 100644
index 000000000000..ced132d80cf5
--- /dev/null
+++ b/obj/structure/bloodsucker/candelabrum.html
@@ -0,0 +1 @@
+/obj/structure/bloodsucker/candelabrum - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/structure/bookcase.html b/obj/structure/bookcase.html
new file mode 100644
index 000000000000..ec668cf66137
--- /dev/null
+++ b/obj/structure/bookcase.html
@@ -0,0 +1 @@
+/obj/structure/bookcase - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
The category of books to pick from when populating random books.
Var Details
books_to_load
How many random books to generate.
load_random_books
When enabled, books_to_load number of random books will be generated for this bookcase when first interacted with.
random_category
The category of books to pick from when populating random books.
\ No newline at end of file
diff --git a/obj/structure/cable.html b/obj/structure/cable.html
new file mode 100644
index 000000000000..eb61083cfa8a
--- /dev/null
+++ b/obj/structure/cable.html
@@ -0,0 +1 @@
+/obj/structure/cable - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/structure/cannon.html b/obj/structure/cannon.html
new file mode 100644
index 000000000000..afaf4eefb0ad
--- /dev/null
+++ b/obj/structure/cannon.html
@@ -0,0 +1 @@
+/obj/structure/cannon - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
whether the cannon can be unwrenched from the ground.
Var Details
anchorable_cannon
whether the cannon can be unwrenched from the ground.
\ No newline at end of file
diff --git a/obj/structure/carp_rift.html b/obj/structure/carp_rift.html
new file mode 100644
index 000000000000..6654cfee24e1
--- /dev/null
+++ b/obj/structure/carp_rift.html
@@ -0,0 +1,15 @@
+/obj/structure/carp_rift - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Carp Rift
The portals Space Dragon summons to bring carp onto the station.
+
The portals Space Dragon summons to bring carp onto the station. His main objective is to summon 3 of them and protect them from being destroyed.
+The portals can summon sentient space carp in limited amounts. The portal also changes color based on whether or not a carp spawn is available.
+Once it is fully charged, it becomes indestructible, and intermitently spawns non-sentient carp. It is still destroyed if Space Dragon dies.
Does a series of checks based on the portal's status.
Var Details
carp_interval
The interval for adding additional space carp spawns to the rift.
carp_stored
How many carp spawns it has available.
charge_state
Current charge state of the rift.
dragon
A reference to the Space Dragon that created it.
last_carp_inc
The time since an extra carp was added to the ghost role spawning pool.
max_charge
The maximum charge the rift can have.
time_charged
The amount of time the rift has charged for.
Proc Details
summon_carp
Used to create carp controlled by ghosts when the option is available.
+
Creates a carp for the ghost to control if we have a carp spawn available.
+Gives them prompt to control a carp, and if our circumstances still allow if when they hit yes, spawn them in as a carp.
+Also add them to the list of carps in Space Dragon's antgonist datum, so they'll be displayed as having assisted him on round end.
+Arguments:
+
+
mob/user - The ghost which will take control of the carp.
+
update_check
Does a series of checks based on the portal's status.
+
Performs a number of checks based on the current charge of the portal, and triggers various effects accordingly.
+If the current charge is a multiple of carp_interval, add an extra carp spawn.
+If we're halfway charged, announce to the crew our location in a CENTCOM announcement.
+If we're fully charged, tell the crew we are, change our color to yellow, become invulnerable, and give Space Dragon the ability to make another rift, if he hasn't summoned 3 total.
\ No newline at end of file
diff --git a/obj/structure/carving_block.html b/obj/structure/carving_block.html
new file mode 100644
index 000000000000..5980b2997065
--- /dev/null
+++ b/obj/structure/carving_block.html
@@ -0,0 +1 @@
+/obj/structure/carving_block - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Returns a list of preset statues carvable from this block depending on the custom materials
Var Details
completion
statue completion from 0 to 1.0
current_preset_type
Currently chosen preset statue type
current_target
The thing it will look like - Unmodified resulting statue appearance
greyscale_with_value_bump
HSV color filters parameters
target_appearance_with_filters
Greyscaled target with cutout filter
Proc Details
get_possible_statues
Returns a list of preset statues carvable from this block depending on the custom materials
\ No newline at end of file
diff --git a/obj/structure/closet.html b/obj/structure/closet.html
new file mode 100644
index 000000000000..dd53a76e70f5
--- /dev/null
+++ b/obj/structure/closet.html
@@ -0,0 +1 @@
+/obj/structure/closet - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Amount of time it takes for the door animation to play
door_hinge_x
X position of the closet door hinge
door_obj
The overlay for the closet's door
is_animating_door
Whether or not this door is being animated
x_shake_pixel_shift
How many pixels the closet can shift on the x axis when shaking
y_shake_pixel_shift
How many pixels the closet can shift on the y axes when shaking
Proc Details
after_close
Proc to override for effects after closing a door
after_open
Proc to override for effects after opening a door
animate_door
Animates the closet door opening and closing
check_if_shake
Check if someone is still resisting inside, and choose to either keep shaking or stop shaking the closet
end_door_animation
Ends the door animation and removes the animated overlay
get_door_transform
Calculates the matrix to be applied to the animated door overlay
handle_lock_addition
cit specific
\ No newline at end of file
diff --git a/obj/structure/closet/crate/mail.html b/obj/structure/closet/crate/mail.html
new file mode 100644
index 000000000000..57735701b970
--- /dev/null
+++ b/obj/structure/closet/crate/mail.html
@@ -0,0 +1 @@
+/obj/structure/closet/crate/mail - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Fills this mail crate with N pieces of mail, where N is the lower of the amount var passed, and the maximum capacity of this crate. If N is larger than the number of alive human players, the excess will be junkmail.
Var Details
postmarked
if it'll show the nt mark on the crate
Proc Details
populate
Fills this mail crate with N pieces of mail, where N is the lower of the amount var passed, and the maximum capacity of this crate. If N is larger than the number of alive human players, the excess will be junkmail.
\ No newline at end of file
diff --git a/obj/structure/closet/crate/mail/economy.html b/obj/structure/closet/crate/mail/economy.html
new file mode 100644
index 000000000000..950d40a283bd
--- /dev/null
+++ b/obj/structure/closet/crate/mail/economy.html
@@ -0,0 +1 @@
+/obj/structure/closet/crate/mail/economy - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Crate for mail that automatically depletes the economy subsystem's pending mail counter.
Proc Details
Initialize
Crate for mail that automatically depletes the economy subsystem's pending mail counter.
\ No newline at end of file
diff --git a/obj/structure/closet/crate/secure/owned.html b/obj/structure/closet/crate/secure/owned.html
new file mode 100644
index 000000000000..92252d9cb935
--- /dev/null
+++ b/obj/structure/closet/crate/secure/owned.html
@@ -0,0 +1 @@
+/obj/structure/closet/crate/secure/owned - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Account of the person buying the crate if private purchasing.
department_account
Department of the person buying the crate if buying via the NIRN app.
department_purchase
Is the crate being bought by a person, or a budget card?
privacy_lock
Is the secure crate opened or closed?
\ No newline at end of file
diff --git a/obj/structure/closet/secure_closet/cargo/owned.html b/obj/structure/closet/secure_closet/cargo/owned.html
new file mode 100644
index 000000000000..fc2ff54a5d0d
--- /dev/null
+++ b/obj/structure/closet/secure_closet/cargo/owned.html
@@ -0,0 +1 @@
+/obj/structure/closet/secure_closet/cargo/owned - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Account of the person buying the crate if private purchasing.
department_account
Department of the person buying the crate if buying via the NIRN app.
department_purchase
Is the crate being bought by a person, or a budget card?
privacy_lock
Is the secure crate opened or closed?
\ No newline at end of file
diff --git a/obj/structure/closet/supplypod.html b/obj/structure/closet/supplypod.html
new file mode 100644
index 000000000000..941e549e4f67
--- /dev/null
+++ b/obj/structure/closet/supplypod.html
@@ -0,0 +1 @@
+/obj/structure/closet/supplypod - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
List of bitflags for supply pods, see: code__DEFINES\obj_flags.dm
Var Details
pod_flags
List of bitflags for supply pods, see: code__DEFINES\obj_flags.dm
\ No newline at end of file
diff --git a/obj/structure/displaycase.html b/obj/structure/displaycase.html
new file mode 100644
index 000000000000..90c5ce3f3a84
--- /dev/null
+++ b/obj/structure/displaycase.html
@@ -0,0 +1 @@
+/obj/structure/displaycase - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Represents a signel source of screaming when broken
Proc Details
trigger_alarm
Anti-theft alarm triggered when broken.
\ No newline at end of file
diff --git a/obj/structure/displaycase/forsale.html b/obj/structure/displaycase/forsale.html
new file mode 100644
index 000000000000..93989dd7cb72
--- /dev/null
+++ b/obj/structure/displaycase/forsale.html
@@ -0,0 +1 @@
+/obj/structure/displaycase/forsale - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
We're using the same trick as paper does in order to cache the image, and only load the UI when messed with.
Var Details
payments_acc
The Account which will receive payment for purchases. Set by the first ID to swipe the tray.
sale_price
The price of the item being sold. Altered by grab intent ID use.
viewing_ui
We're using the same trick as paper does in order to cache the image, and only load the UI when messed with.
\ No newline at end of file
diff --git a/obj/structure/eldritch_crucible.html b/obj/structure/eldritch_crucible.html
new file mode 100644
index 000000000000..ed1599bbd32a
--- /dev/null
+++ b/obj/structure/eldritch_crucible.html
@@ -0,0 +1 @@
+/obj/structure/eldritch_crucible - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
\ No newline at end of file
diff --git a/obj/structure/energy_net.html b/obj/structure/energy_net.html
new file mode 100644
index 000000000000..5e899f3f84f3
--- /dev/null
+++ b/obj/structure/energy_net.html
@@ -0,0 +1,4 @@
+/obj/structure/energy_net - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Energy Net
Energy net which ensnares prey until it is destroyed. Used by space ninjas.
+
Energy net which keeps its target from moving until it is destroyed. Used to send
+players to a holding area in which they could never leave, but such feature has since
+been removed.
\ No newline at end of file
diff --git a/obj/structure/filingcabinet/employment.html b/obj/structure/filingcabinet/employment.html
new file mode 100644
index 000000000000..61e530e4a8f0
--- /dev/null
+++ b/obj/structure/filingcabinet/employment.html
@@ -0,0 +1 @@
+/obj/structure/filingcabinet/employment - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
This var is so that its filled on crew interaction to be as accurate (including latejoins) as possible, true until first interact
Var Details
virgin
This var is so that its filled on crew interaction to be as accurate (including latejoins) as possible, true until first interact
\ No newline at end of file
diff --git a/obj/structure/filingcabinet/medical.html b/obj/structure/filingcabinet/medical.html
new file mode 100644
index 000000000000..e24e7bed8981
--- /dev/null
+++ b/obj/structure/filingcabinet/medical.html
@@ -0,0 +1 @@
+/obj/structure/filingcabinet/medical - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
This var is so that its filled on crew interaction to be as accurate (including latejoins) as possible, true until first interact
Var Details
virgin
This var is so that its filled on crew interaction to be as accurate (including latejoins) as possible, true until first interact
\ No newline at end of file
diff --git a/obj/structure/flora/rock.html b/obj/structure/flora/rock.html
new file mode 100644
index 000000000000..5f6c3d9dac73
--- /dev/null
+++ b/obj/structure/flora/rock.html
@@ -0,0 +1 @@
+/obj/structure/flora/rock - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Itemstack that is dropped when a rock is mined with a pickaxe
Var Details
mineAmount
Amount of the itemstack to drop
mineResult
Itemstack that is dropped when a rock is mined with a pickaxe
\ No newline at end of file
diff --git a/obj/structure/fluff/iced_abductor.html b/obj/structure/fluff/iced_abductor.html
new file mode 100644
index 000000000000..337f1d3e9344
--- /dev/null
+++ b/obj/structure/fluff/iced_abductor.html
@@ -0,0 +1 @@
+/obj/structure/fluff/iced_abductor - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Unless more non-machine ayy structures made, it will stay in fluff.
Var Details
name
Unless more non-machine ayy structures made, it will stay in fluff.
\ No newline at end of file
diff --git a/obj/structure/glowshroom.html b/obj/structure/glowshroom.html
new file mode 100644
index 000000000000..37cc33dce473
--- /dev/null
+++ b/obj/structure/glowshroom.html
@@ -0,0 +1,13 @@
+/obj/structure/glowshroom - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Causes glowshroom spreading across the floor/walls.
Var Details
blacklisted_glowshroom_turfs
Turfs where the glowshroom cannot spread to
delay_decay
Time interval between glowshroom decay checks
delay_spread
Time interval between glowshroom "spreads"
floor
Boolean to indicate if the shroom is on the floor/wall
generation
Mushroom generation number
myseed
Internal seed of the glowshroom, stats are stored here
spreadIntoAdjacentChance
Chance to spread into adjacent tiles (0-100)
Proc Details
Decay
Causes the glowshroom to decay by decreasing its endurance.
+
Arguments:
+
+
spread - Boolean to indicate if the decay is due to spreading or natural decay.
+
amount - Amount of endurance to be reduced due to spread decay.
+
Initialize
Creates a new glowshroom structure.
+
+
Arguments:
+
+
newseed - Seed of the shroom
+
mutate_stats - If the plant needs to mutate their stats
+
spread - If the plant is a result of spreading, reduce its stats
+
Spread
Causes glowshroom spreading across the floor/walls.
\ No newline at end of file
diff --git a/obj/structure/grille.html b/obj/structure/grille.html
new file mode 100644
index 000000000000..ff67a9b8d9f5
--- /dev/null
+++ b/obj/structure/grille.html
@@ -0,0 +1 @@
+/obj/structure/grille - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/structure/janitorialcart.html b/obj/structure/janitorialcart.html
new file mode 100644
index 000000000000..10b04a502d12
--- /dev/null
+++ b/obj/structure/janitorialcart.html
@@ -0,0 +1,5 @@
+/obj/structure/janitorialcart - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
check_menu: Checks if we are allowed to interact with a radial menu
Proc Details
check_menu
check_menu: Checks if we are allowed to interact with a radial menu
+
Arguments:
+
+
user The mob interacting with a menu
+
\ No newline at end of file
diff --git a/obj/structure/legionturret.html b/obj/structure/legionturret.html
new file mode 100644
index 000000000000..b6df5c8fe9cf
--- /dev/null
+++ b/obj/structure/legionturret.html
@@ -0,0 +1 @@
+/obj/structure/legionturret - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
legionturret
A basic turret that shoots at nearby mobs. Intended to be used for the legion megafauna.
Compared with the targeted mobs. If they have the faction, turret won't shoot.
initial_firing_time
Time until the tracer gets shot
projectile_type
What kind of projectile the actual damaging part should be.
shot_delay
How long it takes between shooting the tracer and the projectile.
Proc Details
fire
Called when attacking a target. Shoots a projectile at the turf underneath the target.
fire_beam
Called shot_delay after the turret shot the tracer. Shoots a projectile into the same direction.
set_up_shot
Handles an extremely basic AI
\ No newline at end of file
diff --git a/obj/structure/loom.html b/obj/structure/loom.html
new file mode 100644
index 000000000000..2a8a77e57402
--- /dev/null
+++ b/obj/structure/loom.html
@@ -0,0 +1 @@
+/obj/structure/loom - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
loom
This is a loom. It's usually made out of wood and used to weave fabric like durathread or cotton into their respective cloth types.
\ No newline at end of file
diff --git a/obj/structure/noticeboard.html b/obj/structure/noticeboard.html
new file mode 100644
index 000000000000..4de348f8df7f
--- /dev/null
+++ b/obj/structure/noticeboard.html
@@ -0,0 +1,6 @@
+/obj/structure/noticeboard - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
user - The mob that is trying to get the item removed, if there is one
+
\ No newline at end of file
diff --git a/obj/structure/railing.html b/obj/structure/railing.html
new file mode 100644
index 000000000000..7db747b6a5e1
--- /dev/null
+++ b/obj/structure/railing.html
@@ -0,0 +1 @@
+/obj/structure/railing - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Implements behaviour that makes it possible to unanchor the railing.
Var Details
ini_dir
Initial direction of the railing.
Proc Details
wrench_act
Implements behaviour that makes it possible to unanchor the railing.
\ No newline at end of file
diff --git a/obj/structure/safe.html b/obj/structure/safe.html
new file mode 100644
index 000000000000..1f23e6bfc748
--- /dev/null
+++ b/obj/structure/safe.html
@@ -0,0 +1 @@
+/obj/structure/safe - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Called every dial turn to provide feedback if possible.
Var Details
current_tumbler_index
The index in the tumblers list of the tumbler dial position that needs to be hit
dial
The position the dial is pointing to
explosion_count
Tough, but breakable if explosion counts reaches set value
locked
Whether the safe is locked or not
maxspace
The maximum combined w_class of stuff in the safe
number_of_tumblers
The amount of tumblers that will be generated
open
Whether the safe is open or not
space
The combined w_class of everything in the safe
tumblers
The list of tumbler dial positions that need to be hit
Proc Details
check_broken
Checks if safe is considered in a broken state for force-opening the safe
check_unlocked
Called every dial turn to determine whether the safe should unlock or not.
notify_user
Called every dial turn to provide feedback if possible.
\ No newline at end of file
diff --git a/obj/structure/sign/painting.html b/obj/structure/sign/painting.html
new file mode 100644
index 000000000000..43420b9b4060
--- /dev/null
+++ b/obj/structure/sign/painting.html
@@ -0,0 +1 @@
+/obj/structure/sign/painting - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/structure/spawner/ice_moon.html b/obj/structure/spawner/ice_moon.html
new file mode 100644
index 000000000000..478fbdade4b0
--- /dev/null
+++ b/obj/structure/spawner/ice_moon.html
@@ -0,0 +1 @@
+/obj/structure/spawner/ice_moon - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Clears rocks around the spawner when it is created
destroy_effect
Effects and messages created when the spawner is destroyed
drop_loot
Drops items after the spawner is destroyed
\ No newline at end of file
diff --git a/obj/structure/statue.html b/obj/structure/statue.html
new file mode 100644
index 000000000000..c714e3044617
--- /dev/null
+++ b/obj/structure/statue.html
@@ -0,0 +1 @@
+/obj/structure/statue - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/structure/statue/custom.html b/obj/structure/statue/custom.html
new file mode 100644
index 000000000000..62172d6d9a52
--- /dev/null
+++ b/obj/structure/statue/custom.html
@@ -0,0 +1 @@
+/obj/structure/statue/custom - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/obj/structure/table.html b/obj/structure/table.html
new file mode 100644
index 000000000000..ba23bb0af1e5
--- /dev/null
+++ b/obj/structure/table.html
@@ -0,0 +1,3 @@
+/obj/structure/table - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/obj/structure/tank_holder.html b/obj/structure/tank_holder.html
new file mode 100644
index 000000000000..dfd0367c69ad
--- /dev/null
+++ b/obj/structure/tank_holder.html
@@ -0,0 +1,3 @@
+/obj/structure/tank_holder - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Call this after taking the tank from contents in order to update references, icon
+and density.
Var Details
tank
The stored tank. If this is a path, it gets created into contents at Initialize.
Proc Details
after_detach_tank
Call this after taking the tank from contents in order to update references, icon
+and density.
\ No newline at end of file
diff --git a/obj/structure/trap/eldritch.html b/obj/structure/trap/eldritch.html
new file mode 100644
index 000000000000..6d1e64e27663
--- /dev/null
+++ b/obj/structure/trap/eldritch.html
@@ -0,0 +1 @@
+/obj/structure/trap/eldritch - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
\ No newline at end of file
diff --git a/obj/structure/window.html b/obj/structure/window.html
new file mode 100644
index 000000000000..78f8fd5531fa
--- /dev/null
+++ b/obj/structure/window.html
@@ -0,0 +1 @@
+/obj/structure/window - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Electrochromatic ID. Set the first character to ! to replace with a SSmapping generated pseudorandom obfuscated ID for mapping purposes.
electrochromatic_status
Electrochromatic status
\ No newline at end of file
diff --git a/obj/vehicle.html b/obj/vehicle.html
new file mode 100644
index 000000000000..63c40518d299
--- /dev/null
+++ b/obj/vehicle.html
@@ -0,0 +1,5 @@
+/obj/vehicle - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
If the driver needs a certain item in hand (or inserted, for vehicles) to drive this. For vehicles, this must be duplicated on their riding component subtype
+[/datum/component/riding/var/keytype] variable because only a few specific checks are handled here with this var, and the majority of it is on the riding component
+Eventually the remaining checks should be moved to the component and this var removed.
To remove a trailer from the vehicle in a manner that allows safe qdels
Var Details
autogrant_actions_controller
Assoc list "[bitflag]" = list(typepaths)
autogrant_actions_passenger
Plain list of typepaths
canmove
Whether the vehicle is currently able to move
default_driver_move
Handle driver movement instead of letting something else do it like riding datums.
emulate_door_bumps
When bumping a door try to make occupants bump them to open them.
enclosed
Is the rider protected from bullets? assume no
inserted_key
The inserted key, needed on some vehicles to start the engine
key_type
If the driver needs a certain item in hand (or inserted, for vehicles) to drive this. For vehicles, this must be duplicated on their riding component subtype
+[/datum/component/riding/var/keytype] variable because only a few specific checks are handled here with this var, and the majority of it is on the riding component
+Eventually the remaining checks should be moved to the component and this var removed.
key_type_exact
Can subtypes of this key work
max_drivers
Maximum amount of drivers
mouse_pointer
Do we have a special mouse
occupant_actions
Assoc list mob = list(type = action datum assigned to mob)
occupants
mob = bitflags of their control level.
trailer
This vehicle will follow us when we move (like atrailer duh)
Proc Details
add_trailer
To add a trailer to the vehicle in a manner that allows safe qdels
generate_integrity_message
Returns a readable string of the vehicle's health for examining. Overridden by subtypes who want to be more verbose with their health messages.
remove_trailer
To remove a trailer from the vehicle in a manner that allows safe qdels
\ No newline at end of file
diff --git a/obj/vehicle/ridden/scooter/skateboard.html b/obj/vehicle/ridden/scooter/skateboard.html
new file mode 100644
index 000000000000..387d875feefa
--- /dev/null
+++ b/obj/vehicle/ridden/scooter/skateboard.html
@@ -0,0 +1 @@
+/obj/vehicle/ridden/scooter/skateboard - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Moves the vehicle forward and if it lands on a table, repeats
Var Details
board_icon
Stores the default icon state
board_item_type
The handheld item counterpart for the board
grinding
Whether the board is currently grinding
instability
Stamina drain multiplier
next_crash
Stores the time of the last crash plus a short cooldown, affects availability and outcome of certain actions
Proc Details
grind
Moves the vehicle forward and if it lands on a table, repeats
\ No newline at end of file
diff --git a/obj/vehicle/sealed/car/clowncar.html b/obj/vehicle/sealed/car/clowncar.html
new file mode 100644
index 000000000000..724da04ed2c7
--- /dev/null
+++ b/obj/vehicle/sealed/car/clowncar.html
@@ -0,0 +1,13 @@
+/obj/vehicle/sealed/car/clowncar - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Toggles the on and off state of the clown cannon that shoots random kidnapped people
Var Details
cannonmode
Current status of the cannon, alternates between CLOWN_CANNON_INACTIVE, CLOWN_CANNON_BUSY and CLOWN_CANNON_READY
dice_cooldown_time
Cooldown time inbetween [/obj/vehicle/sealed/car/clowncar/proc/roll_the_dice()] usages
headlight_colors
list of headlight colors we use to pick through when we have party mode due to emag
thankscount
How many times kidnappers in the clown car said thanks
Proc Details
activate_cannon
Finalizes canon activation
cover_in_oil
Deploys oil when the clowncar moves in oil deploy mode
deactivate_cannon
Finalizes canon deactivation
fire_cannon_at
Fires the cannon where the user clicks
increment_thanks_counter
Increments the thanks counter every time someone thats been kidnapped thanks the driver
reset_icon
resets the icon and iconstate of the clowncar after it was set to singulo states
roll_the_dice
Plays a random funky effect
+Only available while car is emagged
+Possible effects:
+
+
Spawn bananapeel
+
Spawn random reagent foam
+
Make the clown car look like a singulo temporarily
+
Spawn Laughing chem gas
+
Drop oil
+
Fart and make everyone nearby laugh
+
stop_dropping_oil
Stops dropping oil after the time has run up
toggle_cannon
Toggles the on and off state of the clown cannon that shoots random kidnapped people
\ No newline at end of file
diff --git a/obj/vehicle/sealed/mecha.html b/obj/vehicle/sealed/mecha.html
new file mode 100644
index 000000000000..171ac1b41d60
--- /dev/null
+++ b/obj/vehicle/sealed/mecha.html
@@ -0,0 +1,20 @@
+/obj/vehicle/sealed/mecha - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
mecha
WELCOME TO MECHA.DM, ENJOY YOUR STAY
+
Mechs are now (finally) vehicles, this means you can make them multicrew
+They can also grant select ability buttons based on occupant bitflags
+
Movement is handled through vehicle_move() which is called by relaymove
+Clicking is done by way of signals registering to the entering mob
+NOTE: MMIS are NOT mobs but instead contain a brain that is, so you need special checks
+AI also has special checks becaus it gets in and out of the mech differently
+Always call remove_occupant(mob) when leaving the mech so the mob is removed properly
+
For multi-crew, you need to set how the occupants recieve ability bitflags corresponding to their status on the vehicle(i.e: driver, gunner etc)
+Abilities can then be set to only apply for certain bitflags and are assigned as such automatically
+
Clicks are wither translated into mech_melee_attack (see mech_melee_attack.dm)
+Or are used to call action() on equipped gear
+Cooldown for gear is on the mech because exploits
/Action vars
+Ref to any active thrusters we might have
allow_diagonal_movement
Whether this mech is allowed to move diagonally
bumpsmash
Whether or not the mech destroys walls by running into it.
cabin_air
Internal air mix datum
capacitor
Keeps track of the mech's capacitor
cell
Keeps track of the mech's cell
completely_disabled
Just stop the mech from doing anything
connected_port
The connected air port, if we have one
construction_state
Whether the mechs maintenance protocols are on or off
defense_mode
Bool for energy shield on/off
deflect_chance
chance to deflect the incoming projectiles, hits, or lesser the effect of ex_act.
destruction_sleep_duration
Time you get slept for if you get forcible ejected by the mech exploding
dir_in
What direction will the mech face when entered/powered on? Defaults to South.
dna_lock
Stores the DNA enzymes of a carbon so tht only they can access the mech
equipment_disabled
if we cant use our equipment(such as due to EMP)
exit_delay
TIme taken to leave the mech
facing_modifiers
Modifiers for directional armor
internal_damage
Bitflags for internal damage
internal_damage_threshold
health percentage below which internal damage is possible
internal_tank
The internal air tank obj of the mech
internal_tank_valve
The setting of the valve on the internal tank
internals_req_access
required access to change internal components
is_currently_ejecting
Currently ejecting, and unable to do things
lavaland_only
Bool for whether this mech can only be used on lavaland
leg_overload_coeff
Energy use modifier for leg overload
leg_overload_mode
Bool for leg overload on/off
lights_power
How powerful our lights are
max_equip
Maximum amount of equipment we can have
mecha_flags
Contains flags for the mecha
melee_cooldown
Cooldown duration between melee punches
melee_energy_drain
How much energy we drain each time we mechpunch someone
normal_step_energy_drain
How much energy the mech will consume each time it moves. This variable is a backup for when leg actuators affect the energy drain.
operation_req_access
required access level for mecha operation
overload_step_energy_drain_min
The minimum amount of energy charge consumed by leg overload
phase_state
icon_state for flick() when phazing
phasing
Bool for if the mech is currently phasing
phasing_energy_drain
Power we use every time we phaze through something
radio
Special version of the radio, which is unsellable
scanmod
Keeps track of the mech's scanning module
selected
Current active equipment
silicon_icon_state
Whether outside viewers can see the pilot inside
+In case theres a different iconstate for AI/MMI pilot(currently only used for ripley)
smashcooldown
Cooldown length between bumpsmashes
smoke_charges
Remaining smoke charges
smoke_cooldown
Cooldown between using smoke
spark_system
Spark effects are handled by this datum
step_energy_drain
How much energy the mech will consume each time it moves. this is the current active energy consumed
step_silent
Whether our steps are silent, for example in zero-G
stepsound
Sound played when the mech moves
strafe
Wether we are strafing
turnsound
Sound played when the mech walks
use_internal_tank
////////ATMOS
+Whether we are currrently drawing from the internal tank
wreckage
Typepath for the wreckage it spawns when destroyed
Proc Details
Topic
Topic
add_airtank
Helpers
add_capacitor
Adds a capacitor, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this.
add_cell
Adds a cell, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this.
add_scanmod
Adds a scanning module, for use in Map-spawned mechs, Nuke Ops mechs, and admin-spawned mechs. Mechs built by hand will replace this.
aimob_enter_mech
Handles an actual AI (simple_animal mecha pilot) entering the mech
aimob_exit_mech
Handles an actual AI (simple_animal mecha pilot) exiting the mech
ammo_resupply
Ammo stuff
attack_ai
AI piloting
check_for_internal_damage
Internal damage
generate_action_type
MECHA ACTIONS
get_actions
Returns HTML for mech actions. Ideally, this proc would be empty for the base mecha. Segmented for easy refactoring.
get_commands
HTML for commands.
get_equipment_list
HTML for list of equipment.
get_stats_html
Rendering stats window
get_stats_part
Returns the status of the mech.
has_charge
Power stuff
on_mouseclick
Action processing
operation_allowed
Access stuff
play_stepsound
///// Movement procs ////////
+
Plays the mech step sound effect. Split from movement procs so that other mechs (HONK) can override this one specific part.
remove_air
Atmospheric stuff
report_internal_damage
HTML for internal damage.
stationary_repair
Repairs internal damage if the mech hasn't moved.
\ No newline at end of file
diff --git a/obj/vehicle/sealed/mecha/combat/durand.html b/obj/vehicle/sealed/mecha/combat/durand.html
new file mode 100644
index 000000000000..ae762f931b0d
--- /dev/null
+++ b/obj/vehicle/sealed/mecha/combat/durand.html
@@ -0,0 +1,3 @@
+/obj/vehicle/sealed/mecha/combat/durand - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
*Checks if defense mode is enabled, and if the attacker is standing in an area covered by the shield.
+Expects a turf. Returns true if the attack should be blocked, false if not.
Relays the signal from the action button to the shield, and creates a new shield if the old one is MIA.
Proc Details
defense_check
*Checks if defense mode is enabled, and if the attacker is standing in an area covered by the shield.
+Expects a turf. Returns true if the attack should be blocked, false if not.
relay
Relays the signal from the action button to the shield, and creates a new shield if the old one is MIA.
\ No newline at end of file
diff --git a/obj/vehicle/sealed/mecha/combat/savannah_ivanov.html b/obj/vehicle/sealed/mecha/combat/savannah_ivanov.html
new file mode 100644
index 000000000000..71cbe5bbb0f9
--- /dev/null
+++ b/obj/vehicle/sealed/mecha/combat/savannah_ivanov.html
@@ -0,0 +1,3 @@
+/obj/vehicle/sealed/mecha/combat/savannah_ivanov - SPLURT Station 13SPLURT Station 13 - Modules - Types
savannah_ivanov
Savannah-Ivanov!
+
A two person mecha that delegates moving to the driver and shooting to the pilot.
+...Hilarious, right?
\ No newline at end of file
diff --git a/obj/vehicle/sealed/mecha/working.html b/obj/vehicle/sealed/mecha/working.html
new file mode 100644
index 000000000000..910f20925c57
--- /dev/null
+++ b/obj/vehicle/sealed/mecha/working.html
@@ -0,0 +1,2 @@
+/obj/vehicle/sealed/mecha/working - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
Checks for a hydraulic clamp or ore box manager and if it finds an ore box inside them puts ore in the ore box.
\ No newline at end of file
diff --git a/obj/vehicle/sealed/mecha/working/ripley.html b/obj/vehicle/sealed/mecha/working/ripley.html
new file mode 100644
index 000000000000..06406f7c7600
--- /dev/null
+++ b/obj/vehicle/sealed/mecha/working/ripley.html
@@ -0,0 +1,2 @@
+/obj/vehicle/sealed/mecha/working/ripley - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Makes the mecha go faster and halves the mecha drill cooldown if in Lavaland pressure.
Var Details
cargo
List of all things in Ripley's Cargo Compartment
cargo_capacity
How much things Ripley can carry in their Cargo Compartment
fast_pressure_step_in
How fast the mech is in low pressure
hides
Amount of Goliath hides attached to the mech
slow_pressure_step_in
How fast the mech is in normal pressure
Proc Details
update_pressure
Makes the mecha go faster and halves the mecha drill cooldown if in Lavaland pressure.
+
Checks for Lavaland pressure, if that works out the mech's speed is equal to fast_pressure_step_in and the cooldown for the mecha drill is halved. If not it uses slow_pressure_step_in and drill cooldown is normal.
\ No newline at end of file
diff --git a/procpath.html b/procpath.html
new file mode 100644
index 000000000000..7a1b51af27b6
--- /dev/null
+++ b/procpath.html
@@ -0,0 +1,10 @@
+/procpath - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
procpath
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.
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.
\ No newline at end of file
diff --git a/tools/CreditsTool/remappings.html b/tools/CreditsTool/remappings.html
new file mode 100644
index 000000000000..c9b66f29e45e
--- /dev/null
+++ b/tools/CreditsTool/remappings.html
@@ -0,0 +1,31 @@
+tools/CreditsTool/remappings.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
tools/CreditsTool/remappings.txt
# To make your name something other than your github name type it in the format "<github name> <credited name>
+# e.g.
+# Cyberboss Jordan Brown
+# To suppress your name from appearing in the credits do "<github name> __REMOVE__
+# e.g.
+# Cyberboss __REMOVE__
+
+tgstation-server Thanks for playing!
+
+optimumtact oranges
+qustinnus Floyd / Qustinnus
+catalystfd __REMOVE__
+TheVekter Vekter
+ChangelingRain Joan
+NewSta1 NewSta
+theOperand Miauw
+PraiseRatvar Frozenguy5
+FuryMcFlurry Fury McFlurry
+vuonojenmustaturska Naksu
+praisenarsie Frozenguy5
+MrDoomBringer Mr. DoomBringer
+Fikou Dr. Fikou
+TiviPlus Tivi Plus
+tralezab Trale Zab
+Iamgoofball goofball
+Tharcoonvagh Tharcoon
+Rectification itseasytosee
+ATHATH ATH1909
+trollbreeder troll breeder
+BuffEngineering Buff Engineering```
+
\ No newline at end of file
diff --git a/tools/HitboxExpander.html b/tools/HitboxExpander.html
new file mode 100644
index 000000000000..2da3758d62fd
--- /dev/null
+++ b/tools/HitboxExpander.html
@@ -0,0 +1,8 @@
+tools/HitboxExpander/README.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
tools/HitboxExpander/README.txt
Usage: tools/bootstrap/python -m HitboxExpander <path_to_file.dmi or png>
+
+This tool expands the hitbox of the given image by 1 pixel.
+Works by changing some of the fully-transparent pixels to alpha=1 black pixels.
+Naked human eye usually cannot notice the difference.
+
+No space carps or corgis have been used or injured in the production of this tool.
+
\ No newline at end of file
diff --git a/tools/LinuxOneShot.html b/tools/LinuxOneShot.html
new file mode 100644
index 000000000000..7009e8f6ce78
--- /dev/null
+++ b/tools/LinuxOneShot.html
@@ -0,0 +1,81 @@
+tools/LinuxOneShot/README.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
tools/LinuxOneShot/README.md
This is @Cyberboss rage code
+
The goal is a one stop solution for hosting /tg/station on linux via Docker. Will not work with Docker on Windows.
+
This requires Docker with the docker-compose command to be installed on your system. See ubuntu instructions here. If you fail to find the docker-ce package refer to this StackOverflow answer.
+
Some basic configuration options in docker-compose.yml before starting:
+
+
Change TGS_ADMIN_CKEY to your ckey so you may have initial control over the server.
+
Change TGS_SCHEMA_MAJOR_VERSION to your repo's latest schema major version.
+
Change TGS_SCHEMA_MINOR_VERSION to your repo's latest schema minor version.
+
If you want to change the MariaDB password, there are three locations in the file it must be changed from its default value of ChangeThisInBothMariaDBAndTgsConnectionString.
+
Change TGS_BYOND to set the initial BYOND version.
+
Ports are mapped in the form <external>:<internal> NEVER change the internal port. If you want to prevent a service from being exposed, delete/comment out the entire line.
+
+
The first (3306) is the exposed mariadb port. Do not expose this over the internet without changing the password. In general it's a bad idea.
+
The second (1337) is the exposed DreamDaemon port
+
The third (5000) is the exposed TGS API port. Do not expose this over the internet. Setup an HTTPS reverse proxy instead.
+
+
+
Change TGS_REPO to set the repository used. Note, this must be a /tg/ derivative from at least 2019 that implements the latest TGS DreamMaker API. Repositories that follow tgstation/tgstation will have this automatically. It also must contain a prefixed SQL schema setup file.
+
+
To launch, change to this directory and run docker-compose up. The initial setup will take a long time. If that fails, Ctrl+C out, run docker-compose down, remove ./TGS_Instances and ./Database, and try again. Once setup is complete, you can either leave the terminal running, or Ctrl+C out (this will stop DreamDaemon) and run docker-compose -d to run it in the background.
+
What it does:
+
+
Starts mariadb with the data files in ./Database on port 3306
+
Installs and starts Tgs4 (using latest stable docker tag, no HTTPS) on port 5000. Configuration in ./TGS_Config, logs in ./TGS_Logs.
+
Configures a TGS instance for tgstation in ./TGS_Instances (SetupProgram)
+
+
The instance is configured to autostart
+
Repo is cloned from the origin specified in the docker-compose.yml
+
BYOND version is set to the latest one specified in the docker-compose.yml
+
A script will be run to setup dependencies. This does the following every time the game is built:
+
+
Reads dependency information from dependencies.sh in the root of the repository
+
Installs the following necessary packages into the TGS image
+
+
Rust/cargo
+
git
+
cmake
+
grep
+
g++-6
+
g++-6-multilib
+
mysql-client
+
libmariadb-dev:i386
+
libssl-dev:i386
+
+
+
Builds rust-g in ./TGS_Instances/main/Configuration/EventScripts/rust-g and copies the artifact to the game directory.
+
Builds BSQL in ./TGS_Instances/main/Configuration/EventScripts/BSQL and copies the artifact to the game directory.
+
Sets up ./TGS_Instances/main/Configuration/GameStaticFiles/config with the initial repository config.
+
Sets up ./TGS_Instances/main/Configuration/GameStaticFiles/data.
+
If it doesn't exist, create the ss13_db database on the mariadb server and populate it with the repository's.
+
+
+
Start DreamDaemon and configure it to autostart and keep it running via TGS.
+
Updates will be pulled from the default repository branch and deployed every hour
+
+
+
+
What it DOESN'T do:
+
+
Configure sane MariaDB security
+
TGS Test merging
+
TGS Chat bots
+
Handle updating BYOND versions
+
Handle updating the database schema
+
Manage TGS users, permissions, or change the default admin password
+
Provide HTTPS for TGS
+
Expose the DB to the internet UNLESS you have port 3306 forwarded for some ungodly reason
+
Port forward or setup firewall rules for DreamDaemon or TGS
+
Notify you of TGS errors past initial setup
+
Keep MariaDB logs
+
Backup ANYTHING
+
Pretend like it's a long term solution
+
+
This is enough to host a production level server !!!IN THEORY!!! This script guarantees nothing and comes with no warranty
+
You can change the TGS_BYOND and TGS_REPO variables when setting up the first time. But further configuration must be done with TGS itself.
+
You can connect to TGS with Tgstation.Server.ControlPanel (Binaries provided for windows, must be compiled manually on Linux).
+
+
Connect to http://localhost:5000. Be sure to Use Plain HTTP and Default Credentials
+
+
You should learn how to manually setup TGS if you truly want control over what your server does.
+
You have been warned.
\ No newline at end of file
diff --git a/tools/Redirector/config.html b/tools/Redirector/config.html
new file mode 100644
index 000000000000..4252baa75492
--- /dev/null
+++ b/tools/Redirector/config.html
@@ -0,0 +1,13 @@
+tools/Redirector/config.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
tools/Redirector/config.txt
[SERVERS]
+## Simply enter a list of servers to poll. Be sure to specify a server name in parentheses.
+
+(Sibyl #1) byond://game.nanotrasen.com:1337
+
+(Sibyl #2) byond://game.nanotrasen.com:2337
+
+
+[ADMINS]
+## Specify some standard Windows filepaths (you may use relative paths) for admin txt lists to poll.
+
+C:\SS13\config\admins.txt
+
\ No newline at end of file
diff --git a/tools/Redirector/textprocs.html b/tools/Redirector/textprocs.html
new file mode 100644
index 000000000000..f49c1ada9944
--- /dev/null
+++ b/tools/Redirector/textprocs.html
@@ -0,0 +1 @@
+tools/Redirector/textprocs.dm - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/tools/UnquotedListAssociations/2016-11-27-unquoted_list_associations_log.html b/tools/UnquotedListAssociations/2016-11-27-unquoted_list_associations_log.html
new file mode 100644
index 000000000000..013a50385560
--- /dev/null
+++ b/tools/UnquotedListAssociations/2016-11-27-unquoted_list_associations_log.html
@@ -0,0 +1,2968 @@
+tools/UnquotedListAssociations/2016-11-27-unquoted_list_associations_log.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/tools/UnstandardnessTestForDM.html b/tools/UnstandardnessTestForDM.html
new file mode 100644
index 000000000000..9e9e3698e273
--- /dev/null
+++ b/tools/UnstandardnessTestForDM.html
@@ -0,0 +1,5 @@
+tools/UnstandardnessTestForDM/readme.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
tools/UnstandardnessTestForDM/readme.txt
the compiled exe file for the Unstandardness text for DM program is in:
+UnstandardnessTestForDM\bin\Debug\UnstandardnessTestForDM.exe
+
+You have to move it to the root folder (where the dme file is) and run it from there for it to work.
+
\ No newline at end of file
diff --git a/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csproj.FileListAbsolute.html b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csproj.FileListAbsolute.html
new file mode 100644
index 000000000000..040608288c0b
--- /dev/null
+++ b/tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csproj.FileListAbsolute.html
@@ -0,0 +1,19 @@
+tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug/UnstandardnessTestForDM.csproj.FileListAbsolute.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\bin\Debug\UnstandardnessTestForDM.exe
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\bin\Debug\UnstandardnessTestForDM.pdb
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\ResolveAssemblyReference.cache
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.Form1.resources
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.Properties.Resources.resources
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\GenerateResource.read.1.tlog
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\GenerateResource.write.1.tlog
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.exe
+c:\users\baloh\documents\visual studio 2010\Projects\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.pdb
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\bin\Debug\UnstandardnessTestForDM.exe
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\bin\Debug\UnstandardnessTestForDM.pdb
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\ResolveAssemblyReference.cache
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.Form1.resources
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.Properties.Resources.resources
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\GenerateResource.read.1.tlog
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\GenerateResource.write.1.tlog
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.exe
+C:\Users\Baloh\Desktop\tgs13\tools\UnstandardnessTestForDM\UnstandardnessTestForDM\obj\x86\Debug\UnstandardnessTestForDM.pdb
+
\ No newline at end of file
diff --git a/tools/UpdatePaths/apc_pixel_offsets.html b/tools/UpdatePaths/apc_pixel_offsets.html
new file mode 100644
index 000000000000..2153cbfbd77f
--- /dev/null
+++ b/tools/UpdatePaths/apc_pixel_offsets.html
@@ -0,0 +1,5 @@
+tools/UpdatePaths/apc_pixel_offsets.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/tools/UpdatePaths/bridge_to_command.html b/tools/UpdatePaths/bridge_to_command.html
new file mode 100644
index 000000000000..49e7d8176b8b
--- /dev/null
+++ b/tools/UpdatePaths/bridge_to_command.html
@@ -0,0 +1,18 @@
+tools/UpdatePaths/bridge_to_command.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/tools/UpdatePaths/cornersfix.html b/tools/UpdatePaths/cornersfix.html
new file mode 100644
index 000000000000..a5714a70b8cb
--- /dev/null
+++ b/tools/UpdatePaths/cornersfix.html
@@ -0,0 +1,31 @@
+tools/UpdatePaths/cornersfix.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/tools/UpdatePaths/turfs2decals.html b/tools/UpdatePaths/turfs2decals.html
new file mode 100644
index 000000000000..e01d5e3ecf39
--- /dev/null
+++ b/tools/UpdatePaths/turfs2decals.html
@@ -0,0 +1,468 @@
+tools/UpdatePaths/turfs2decals.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/tools/build.html b/tools/build.html
new file mode 100644
index 000000000000..865b6594e8ef
--- /dev/null
+++ b/tools/build.html
@@ -0,0 +1,25 @@
+tools/build/README.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
/tg/station build script
This build script is the recommended way to compile the game, including not only the DM code but also the JavaScript and any other dependencies.
+
+
VSCode:
+a) Press Ctrl+Shift+B to build.
+b) Press F5 to build and run with debugger attached.
+
Windows:
+a) Double-click BUILD.bat in the repository root to build (will wait for a key press before it closes).
+b) Double-click tools/build/build.bat to build (will exit as soon as it finishes building).
+
Linux:
+a) Run tools/build/build from the repository root.
+
+
The script will skip build steps whose inputs have not changed since the last run.
+
Getting list of available targets
+
You can get a list of all targets that you can build by running the following command:
+
tools/build/build --help
+
+
Dependencies
+
+
On Windows, BUILD.bat will automatically install a private (vendored) copy of Node.
On Linux , unless using tgs4 or later you will need to compile rust-g on the server and obtain a .so file, for instructions see https://github.com/tgstation/rust-g
+
+
Why?
+
We used to include compiled versions of the tgui JavaScript code in the Git repository so that the project could be compiled using BYOND only. These pre-compiled files tended to have merge conflicts for no good reason. Using a build script lets us avoid this problem, while keeping builds convenient for people who are not modifying tgui.
+
This build script is based on Juke Build - please follow the link and read the documentation for the project to understand how it works and how to contribute to this build script.
\ No newline at end of file
diff --git a/tools/changelog/requirements.html b/tools/changelog/requirements.html
new file mode 100644
index 000000000000..f297b075ced5
--- /dev/null
+++ b/tools/changelog/requirements.html
@@ -0,0 +1,5 @@
+tools/changelog/requirements.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/tools/ci/ci_config.html b/tools/ci/ci_config.html
new file mode 100644
index 000000000000..9075834ad1eb
--- /dev/null
+++ b/tools/ci/ci_config.html
@@ -0,0 +1,10 @@
+tools/ci/ci_config.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/tools/hooks.html b/tools/hooks.html
new file mode 100644
index 000000000000..cee90dae9aca
--- /dev/null
+++ b/tools/hooks.html
@@ -0,0 +1,22 @@
+tools/hooks/README.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
Git Integration Hooks
This folder contains installable scripts for Git hooks and merge drivers.
+Use of these hooks and drivers is optional and they must be installed
+explicitly before they take effect.
+
To install the current set of hooks, or update if new hooks are added, run
+Install.bat (Windows) or tools/hooks/install.sh (Unix-like) as appropriate.
+
If your Git GUI does not support a given hook, there is usually a .bat file
+or other script you can run instead - see the links below for details.
+
Hooks
+
+
Pre-commit: Runs mapmerge2 to reduce the diff on any changed maps.
DMM merger: Attempts to fix map conflicts when performing a Git merge.
+
+
Adding New Hooks
+
New Git hooks may be added by creating a file named <hook-name>.hook in
+this directory. Git determines what hooks are available and what their names
+are.
+
New Git merge drivers may be added by adding a shell script named <ext>.merge
+and updating .gitattributes in the root of the repository to include the line
+*.<ext> merge=<ext>.
+
Adding or removing hooks or merge drivers requires running the install script
+again, but modifying them does not. See existing .hook and .merge files for examples.
\ No newline at end of file
diff --git a/tools/mapmerge2.html b/tools/mapmerge2.html
new file mode 100644
index 000000000000..7af174aa7228
--- /dev/null
+++ b/tools/mapmerge2.html
@@ -0,0 +1,47 @@
+tools/mapmerge2/README.md - SPLURT Station 13SPLURT Station 13 - Modules - Types
Map Merger
The Map Merger is a collection of scripts that keep this repository's maps
+in a format which is easier to track in Git and less likely to cause merge
+conflicts. When merge conflicts do occur, it can sometimes resolve them.
+
For detailed troubleshooting instructions and other tips, visit the
+Map Merger wiki article.
+
Installation
+
To install the Git hooks, open the tools/hooks/ folder and double-click
+Install.bat. Linux users run tools/hooks/install.sh.
+
Manual Use
+
If using a Git GUI which is not compatible with the hooks:
+
+
Before committing, double-click Run Before Committing.bat
+
When a merge has map conflicts, double-click Resolve Map Conflicts.bat
+
+
The console will show whether the operation succeeded.
+
For more details, see the Map Merger wiki article.
+
What Map Merging Is
+
The "map merge" operation describes the process of rewriting a map file written
+by the DreamMaker map editor to A) use a format more amenable to Git's conflict
+resolution and B) differ in the least amount textually from the previous
+version of the map while maintaining all the actual changes. It requires an old
+version of the map to use as a reference and a new version of the map which
+contains the desired changes.
+
Map Merge 2 adds multi-Z support, automatic handling of key overflow, better
+merge conflict prevention, and a real merge conflict resolver.
+
Code Structure
+
Frontend scripts are meant to be run directly. They obey the environment
+variables TGM to set whether files are saved in TGM (1) or DMM (0) format,
+and MAPROOT to determine where maps are kept. By default, TGM is used and
+the map root is autodetected. Each script may either prompt for the desired map
+or be run with command-line parameters indicating which maps to act on. The
+scripts include:
+
+
convert.py for converting maps to and from the TGM format. Used by
+tgm2dmm.bat and dmm2tgm.bat.
+
mapmerge.py for running the map merge on map backups saved by
+Prepare Maps.bat. Used by mapmerge.bat
+
+
Implementation modules:
+
+
dmm.py includes the map reader and writer.
+
mapmerge.py includes the implementation of the map merge operation.
+
frontend.py includes the common code for the frontend scripts.
+
+
precommit.py is run by the Git hooks if installed, and merges the new
+version of any map saved in the index (git added) with the old version stored
+in Git when run.
\ No newline at end of file
diff --git a/tools/midi2piano.html b/tools/midi2piano.html
new file mode 100644
index 000000000000..03e799e5fbbe
--- /dev/null
+++ b/tools/midi2piano.html
@@ -0,0 +1,34 @@
+tools/midi2piano/README.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
tools/midi2piano/README.txt
This is a remake of 2013 midi2piano tool.
+
+Requirements:
+ Python 3
+
+Simply run midi2piano.py and choose midi file you want to convert.
+The "sheet music" will be copied to the clipboard.
+
+There are some constants defined at the top of midi2piano.py.
+
+TICK_LAG - CHANGE THIS VALUE TO TICK LAG OF YOUR SERVER!
+
+Change their value if needed.
+
+LINE_LENGTH_LIM - max length of line allowed in the sheet music
+LINES_LIMIT - max amount of lines allowed in the sheet music. Extra lines will be cropped.
+
+OVERALL_IMPORT_LIM - max amount of characters allowed in the sheet music.
+
+
+You can also transpose music if you need to
+OCTAVE_TRANSPOSE - amount of octaves you melody will be shifted by
+FLOAT_PRECISION - read comment
+
+Additional notes:
+1. Unlike previous midi2piano, this tool optimizes sheet music to fit more in less lines.
+2. If two notes are less than 50 ms apart, they are chorded. BYOND works in 1/10th of a second so 50 ms is time quanta.
+4. MIDI event set_tempo is NOT supported. If your MIDI file uses set_tempo to change BPM significantly, consider using some other midi file.
+
+This tool is considered final.
+
+Made by EditorRUS/Delta Epsilon from Animus Station, ss13.ru
+Contact me in Discord if you find any major issues: DeltaEpsilon#7787```
+
\ No newline at end of file
diff --git a/tools/minibot/LICENCE-bot_folder.html b/tools/minibot/LICENCE-bot_folder.html
new file mode 100644
index 000000000000..ac282fbd99e5
--- /dev/null
+++ b/tools/minibot/LICENCE-bot_folder.html
@@ -0,0 +1,6 @@
+tools/minibot/LICENCE-bot_folder.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
tools/minibot/LICENCE-bot_folder.txt
The author or authors of this code dedicate any and all copyright interest in
+this code to the public domain. We make this dedication for the benefit of the
+public at large and to the detriment of our heirs and successors. We intend
+this dedication to be an overt act of relinquishment in perpetuity of all
+present and future rights to this code under copyright law.
+
\ No newline at end of file
diff --git a/tools/requirements.html b/tools/requirements.html
new file mode 100644
index 000000000000..47d970d5f5bb
--- /dev/null
+++ b/tools/requirements.html
@@ -0,0 +1,14 @@
+tools/requirements.txt - SPLURT Station 13SPLURT Station 13 - Modules - Types
\ No newline at end of file
diff --git a/turf.html b/turf.html
new file mode 100644
index 000000000000..f5d7f171292c
--- /dev/null
+++ b/turf.html
@@ -0,0 +1,14 @@
+/turf - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
turf
Any floor or wall. What makes up the station and the rest of the map.
For seeing if we can actually move between 2 given turfs while accounting for our access and the caller's pass_flags
+
Arguments:
+
+
caller: The movable, if one exists, being used for mobility checks to see what tiles it can reach
+
ID: An ID card that decides if we can gain access to doors that would otherwise block a turf
+
simulated_only: Do we only worry about turfs with simulated atmos, most notably things that aren't space?
+
consider_pressure_difference
SPACEWIND
fromShuttleMove
Base procs
process_cell
SIMULATION
reachableAdjacentTurfs
Returns adjacent turfs to this turf that are reachable, in all cardinal directions
+
Arguments:
+
+
caller: The movable, if one exists, being used for mobility checks to see what tiles it can reach
+
ID: An ID card that decides if we can gain access to doors that would otherwise block a turf
+
simulated_only: Do we only worry about turfs with simulated atmos, most notably things that aren't space?
+
\ No newline at end of file
diff --git a/turf/closed.html b/turf/closed.html
new file mode 100644
index 000000000000..115c39df50d4
--- /dev/null
+++ b/turf/closed.html
@@ -0,0 +1 @@
+/turf/closed - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
\ No newline at end of file
diff --git a/turf/closed/indestructible/splashscreen.html b/turf/closed/indestructible/splashscreen.html
new file mode 100644
index 000000000000..ad385388cc10
--- /dev/null
+++ b/turf/closed/indestructible/splashscreen.html
@@ -0,0 +1 @@
+/turf/closed/indestructible/splashscreen - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
helper proc that will center the screen if the icon is changed to a generic width, to make admins have to fudge around with pixel_x less. returns null
Proc Details
handle_generic_titlescreen_sizes
helper proc that will center the screen if the icon is changed to a generic width, to make admins have to fudge around with pixel_x less. returns null
\ No newline at end of file
diff --git a/turf/closed/mineral.html b/turf/closed/mineral.html
new file mode 100644
index 000000000000..4194ecf3f5fc
--- /dev/null
+++ b/turf/closed/mineral.html
@@ -0,0 +1 @@
+/turf/closed/mineral - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/turf/closed/wall.html b/turf/closed/wall.html
new file mode 100644
index 000000000000..1df18f102909
--- /dev/null
+++ b/turf/closed/wall.html
@@ -0,0 +1,8 @@
+/turf/closed/wall - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
When a hulk manages to break a wall using their hulk smash, this deals back damage to the arm used.
+This is in its own proc just to be easily overridden by other wall types. Default allows for three
+smashed walls per arm. Also, we use CANT_WOUND here because wounds are random. Wounds are applied
+by hulk code based on arm damage and checked when we call break_an_arm().
+Arguments:
+*arg1 is the arm to deal damage to.
+*arg2 is the hulk
\ No newline at end of file
diff --git a/turf/open.html b/turf/open.html
new file mode 100644
index 000000000000..7737f00f3ef6
--- /dev/null
+++ b/turf/open.html
@@ -0,0 +1,3 @@
+/turf/open - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Dirtyness system, cit specific.
+Does dirt buildup happen on us?
dirt_spawn_threshold
Dirt level to spawn dirt. Null to use config.
dirtyness
Dirt level.
Proc Details
Assimilate_Air
Assimilate Air
assume_air
GAS MIXTURE PROCS
update_visuals
GAS OVERLAYS
\ No newline at end of file
diff --git a/turf/open/floor.html b/turf/open/floor.html
new file mode 100644
index 000000000000..aecfaee2ac20
--- /dev/null
+++ b/turf/open/floor.html
@@ -0,0 +1 @@
+/turf/open/floor - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Starting from here, there's a chance for this to break
explosion_power_protect_shielded
Shielded turfs are completely protected from anything under this
explosion_power_turf_scrape
Minimum explosion power to scrape away the floor
\ No newline at end of file
diff --git a/turf/open/floor/catwalk_floor.html b/turf/open/floor/catwalk_floor.html
new file mode 100644
index 000000000000..51984131fca6
--- /dev/null
+++ b/turf/open/floor/catwalk_floor.html
@@ -0,0 +1,4 @@
+/turf/open/floor/catwalk_floor - SPLURT Station 13SPLURT Station 13 - Modules - Types
catwalk_floor
catwalk flooring
+
They show what's underneath their catwalk flooring (pipes and the like)
+you can crowbar it to interact with the underneath stuff without destroying the tile...
+unless you want to!
\ No newline at end of file
diff --git a/turf/open/floor/glass.html b/turf/open/floor/glass.html
new file mode 100644
index 000000000000..afa473ef205b
--- /dev/null
+++ b/turf/open/floor/glass.html
@@ -0,0 +1 @@
+/turf/open/floor/glass - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/turf/open/floor/plating/asteroid.html b/turf/open/floor/plating/asteroid.html
new file mode 100644
index 000000000000..348884bb83a3
--- /dev/null
+++ b/turf/open/floor/plating/asteroid.html
@@ -0,0 +1 @@
+/turf/open/floor/plating/asteroid - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Whether to change the turf's icon_state to "[base_icon_state]_dug" when its dugged up
turf_type
Base turf type to be created by the tunnel
Proc Details
can_dig
If the user can dig the turf
\ No newline at end of file
diff --git a/turf/open/lava.html b/turf/open/lava.html
new file mode 100644
index 000000000000..31960b571350
--- /dev/null
+++ b/turf/open/lava.html
@@ -0,0 +1 @@
+/turf/open/lava - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details - Proc Details
Proc that sets on fire something or everything on the turf that's not immune to lava. Returns TRUE to make the turf start processing.
Var Details
immunity_resistance_flags
objects with these flags won't burn.
immunity_trait
mobs with this trait won't burn.
lava_damage
How much fire damage we deal to living mobs stepping on us
lava_firestacks
How many firestacks we add to living mobs stepping on us
temperature_damage
How much temperature we expose objects with
Proc Details
burn_stuff
Proc that sets on fire something or everything on the turf that's not immune to lava. Returns TRUE to make the turf start processing.
\ No newline at end of file
diff --git a/turf/open/openspace/icemoon.html b/turf/open/openspace/icemoon.html
new file mode 100644
index 000000000000..2843295862e6
--- /dev/null
+++ b/turf/open/openspace/icemoon.html
@@ -0,0 +1 @@
+/turf/open/openspace/icemoon - SPLURT Station 13SPLURT Station 13 - Modules - Types — Var Details
Replaces itself with replacement_turf if the turf below this one is in a no ruins allowed area (usually ruins themselves)
Var Details
drill_below
If true mineral turfs below this openspace turf will be mined automatically
protect_ruin
Replaces itself with replacement_turf if the turf below this one is in a no ruins allowed area (usually ruins themselves)
\ No newline at end of file
diff --git a/turf/open/space.html b/turf/open/space.html
new file mode 100644
index 000000000000..97a26546289f
--- /dev/null
+++ b/turf/open/space.html
@@ -0,0 +1,2 @@
+/turf/open/space - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/turf/open/space/transparent.html b/turf/open/space/transparent.html
new file mode 100644
index 000000000000..647037282052
--- /dev/null
+++ b/turf/open/space/transparent.html
@@ -0,0 +1 @@
+/turf/open/space/transparent - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/turf/open/space/transparent/openspace.html b/turf/open/space/transparent/openspace.html
new file mode 100644
index 000000000000..8535cebd4014
--- /dev/null
+++ b/turf/open/space/transparent/openspace.html
@@ -0,0 +1 @@
+/turf/open/space/transparent/openspace - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
\ No newline at end of file
diff --git a/turf/open/water/cursed_spring.html b/turf/open/water/cursed_spring.html
new file mode 100644
index 000000000000..41682e6bcd2b
--- /dev/null
+++ b/turf/open/water/cursed_spring.html
@@ -0,0 +1,4 @@
+/turf/open/water/cursed_spring - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
cursed_spring
Turns whoever enters into a mob
+
If mob is chosen, turns the person into a random animal type
+Once the spring is used, it cannot be used by the same mind ever again
+After usage, teleports the user back to a random safe turf (so mobs are not killed by ice moon atmosphere)
Deletes minds from the cursed minds list after their deletion
Proc Details
remove_from_cursed
Deletes minds from the cursed minds list after their deletion
\ No newline at end of file
diff --git a/world.html b/world.html
new file mode 100644
index 000000000000..b9c921af28b9
--- /dev/null
+++ b/world.html
@@ -0,0 +1,9 @@
+/world - SPLURT Station 13SPLURT Station 13 - Modules - Types — Proc Details
World
Two possibilities exist: either we are alone in the Universe or we are not. Both are equally terrifying. ~ Arthur C. Clarke
+
The byond world object stores some basic byond level config, and has a few hub specific procs for managing hub visiblity
+
The world /New() is the root of where a round itself begins