Space Station 13 - Modules - TypesVar Details - Proc Details

(global)

Vars

ATOM_ICON_CACHE_ALLSSoverlays. Target both normal and protected overlay caches.
ATOM_ICON_CACHE_NORMALSSoverlays. Target the normal overlay cache.
ATOM_ICON_CACHE_PROTECTEDSSoverlays. Target the protected overlay cache.
CHAMELEON_FLEXIBLE_OPTIONS_EXTENSIONGrants the full set of chameleon selection options available to the extension.
CHAMELEON_FLEXIBLE_OPTIONS_PARENT_TYPEGrants a (potential) subset of chameleon options available to the extension, based on the instance's parent_type. Falls back to type if not a valid type for the extension.
CHAMELEON_FLEXIBLE_OPTIONS_TYPEGrants a (potential) subset of chameleon options available to the extension, based on the instance's type.
DEG_TO_RADMultiplier for converting degrees to radians, rounded to 10 places
FailsafeFailsafe
GC_CURRENTLY_BEING_QDELETEDdatum.gc_destroyed signal value
GLOBAL_PROC** Callbacks Callbacks wrap a target, callable, and arguments to pass. See the dm reference for call(). When the target is GLOBAL_PROC, the callable is global - otherwise it is a datum (or dead) reference. Callbacks are created with the new keyword via a global alias like:
HALF_PIHalf the mathematical constant pi, rounded to 10 places
MasterStonedMC
PIThe mathematical constant pi, rounded to 10 places
QDEL_HINT_HARDDELDestroy() return value. Queue this instance for hard deletion regardless of its refcount GC state.
QDEL_HINT_HARDDEL_NOWDestroy() return value. Immediately hard delete the instance.
QDEL_HINT_IWILLGCDestroy() return value. Same as QDEL_HINT_LETMELIVE but the instance expects to refcount GC without help.
QDEL_HINT_LETMELIVEDestroy() return value. Do not queue the instance for hard deletion. Does not expect to be refcount GCd.
QDEL_HINT_QUEUEDestroy() return value. Queue the instance for eventual hard deletion.
RAD_TO_DEGMultiplier for converting radians to degrees, rounded to 10 places
SSpresenceBuilds a list of z-level populations to allow for easier pauses on processing when nobody is around to care
TIMER_LOOPLooping timers automatically re-queue themselves after firing, assuming they are still valid
TIMER_NO_HASH_WAITSkips adding the wait to the timer hash, allowing for uniques with variable wait times
TIMER_OVERRIDEAttempting to add a unique timer will re-queue the event instead of being ignored
TIMER_STOPPABLEStoppable timers produce a hash that can be given to deltimer() to unqueue them
TIMER_UNIQUETwo of the same timer signature cannot be queued at once when they are unique
TWO_PITwice the mathematical constant pi, rounded to 10 places
access_cent_generalCentral Command
access_hangarSEV Torch
access_petrovNRV Petrov
access_securityStation access
access_syndicateAntag access
access_synthMisc
photo_countphoto
state_machinesList and procs for caching state machine instances.
z_levels< What the map edge should be formed with. (null = world.turf)

Procs

Atan2The 2-argument arctangent of x and y
BoundedCircularRandomCoordinateA circular random coordinate with radius on center_x, center_y, reflected into low_x,low_y -> high_x,high_y, clamped in low,high, and rounded if round is set
Broadcast_MessageHere is the big, bad function that broadcasts a message given the appropriate parameters.
CircularRandomCoordinateA circular random coordinate pair from 0, unit by default, scaled by radius, then rounded if round.
CircularRandomTurfPick a random turf using BoundedCircularRandomCoordinate about x,y on level z
CircularRandomTurfAroundPick a random turf using BoundedCircularRandomCoordinate around the turf of target
CreateBansDEBUG
DrandReturns a random real from an arbitrary XdY dice roll
GetAnomalySusceptibilityreturns 0..1, with 1 being no protection and 0 being fully protected
InterpolateReturns a linear interpolation from a to b according to weight. weight 0 is a, weight 1 is b, weight 0.5 is half-way between the two.
MeanReturns the mean of either a list or variadic arguments: Mean(list(1, 2, 3)) = 2 , Mean(1, 2, 3) = 2
UptimeReal time since the server started. Same concept as REALTIMEOFDAY.
VecMagReturns the euclidian magnitude of a vector of either a list or variadic arguments: VecMag(list(3, 4)) = 5 , VecMag(3, 4) = 5
VecSquareMagReturns the euclidian square magnitude of a vector of either a list or variadic arguments: VecSquareMag(list(1, 2, 3)) = 14 , VecSquareMag(1, 2, 3) = 14
_fetch_bansChecks for bans matching ckey, ip, or cid.
_fetch_connectionsChecks for prior connections matching ckey, ip, or cid.
_find_bans_in_connectionsChecks a list of connections for bans matching any of the list entries.
_show_associated_connectionsGenerates and displays an HTML window, displaying data from a _fetch_connections() call with the provided parameters.
_unique_cids_from_connectionsReturns a sorted list containing only each unique CID present in a list of connections provided by _fetch_connections().
_unique_ckeys_from_bansReturns a sorted list containing only each unique ckey present in a list of connections provided by _fetch_connections().
_unique_ckeys_from_connectionsReturns a sorted list containing only each unique ckey present in a list of connections provided by _fetch_connections().
_unique_ips_from_connectionsReturns a sorted list containing only each unique IP present in a list of connections provided by _fetch_connections().
all_hearersHear Helpers
all_viewersView Helpers
callHook@file hooks.dm Implements hooks, a simple way to run code on pre-defined events.
ckey2clientGet the client associated with ckey text if it is currently connected
clients_in_rangeRange Helpers
cmp_clientcolor_orderThe comparison function for sorting client_colors by order.
copy_healthCopies the state of health from one atom to another.
do_unstable_teleport_safeTeleport an object randomly within a set of connected zlevels
emissive_appearanceProduces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EMISSIVE_COLOR.
emissive_blockerProduces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EM_BLOCK_COLOR.
empulseGenerates an EMP pulse on the turf of the provided origin point, for the given range as a radius value. Calls emp_act() on every atom within range.
findNullRodConstruct Spells
generate_paddingBuilds a string of padding repeated until its character count meets or exceeds size
getOPressureDifferentialGets the highest and lowest pressures from the tiles in cardinal directions around us, then checks the difference.
get_base_turf_by_areaFetches the area's base_turf, if defined, or the z level's base_turf as a default.
get_circle_coordinatesGet the coordinates that make up a circle of radius on center, packed as (x | y left shift 12). These coordinates are able to be outside the world: check (v < 1 || v > world.maxV) for safety. Implements the Bresenham Circle Drawing Algorithm for the actual point picking.
get_circle_turfsUses get_circle_coordinates to return a list of turfs on the in-bounds edge of the circle.
get_compass_direction_stringReturns direction-string, rounded to multiples of 22.5, from the first parameter to the second N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW
get_default_outfit_backpackHelpers
get_fax_machines_by_departmentRetrieves a list of all fax machines matching the given department tag.
get_mannequinInitial Building
get_random_poster_typePicks and returns a random (sub)type of the provided random_poster_base_type which:
get_random_uplink_itemsSupport procs
get_wound_typeWOUND DEFINITIONS
get_zone_with_miss_chanceEmulates targetting a specific body part, and miss chances May return null if missed. Miss_chance_mod may be negative. In order to make this proc compatible with melee and projectile attacks, only return projectile compatible zones if not point blank.
grandGenerate a random number from min to max on a sigma^2 = 1 gaussian distribution.
html_listConverts a list to an HTML formatted list, i.e.:
html_list_dlConverts an associative list to an HTML formatted definition list, i.e.:
html_pagePage matter from #30904, to be replaced by that behavior later
is_abstractPassed a path or instance, returns whether it is abstract. Otherwise null.
is_special_characterADMIN HELPER PROCS
is_suid% appears to round down floats, hence below values all being integers Check if thing is an SUID. If other is supplied, check if other matches thing.
isfiniteTrue if number is a number that is not nan or an infinity.
join_urlConnects either a list or variadic arguments with "/" and cleans up multiple joins. eg: join_url("a", "b", "c") => "a/b/c" join_url(list("a", "b", "c")) => "a/b/c" join_url("https://some.tld/", "/cats", "~", "//dogs") => "https://some.tld/cats/~/dogs"
key2clientGet the client associated with key text if it is currently connected
list_to_mapConvert list to a map by calling handler per entry. Map may be supplied as a reference. Handlers should implement a no-params clear.
ltm_by_atom_nameEntry handler for list_to_map. Produces a "name"=ref map, overwriting duplicate names in encounter order.
ltm_by_atom_name_numberedEntry handler for list_to_map. Produces a "name"=ref map, suffixing a count to name for duplicate names.
new_simple_coinCreate a new random simple coin at loc and return it.
pad_leftPads the matter of padding onto the start of text until the result length is size
pad_rightPads the matter of padding onto the start of text until the result length is size
poly_interp2Sample t(0..1) into a quadratic binomial polynomial. Generally this is useful for shaping rand() distribution. see tools/polyvis.html for a parameter picker.
poly_interp3Sample t(0..1) into a cubic binomial polynomial. Generally this is useful for shaping rand() distribution. see tools/polyvis.html for a parameter picker. More expensive than poly_interp2.
poly_interp4Sample t(0..1) into a quartic binomial polynomial. Generally this is useful for shaping rand() distribution. see tools/polyvis.html for a parameter picker. More expensive than poly_interp3.
popRemove and return the last element of the list, or null.
popleftReturns the first element from the list and removes it from the list
prof_initStarts Tracy
qdelQueue datum D for garbage collection / deletion. Calls the datum's Destroy() and sets its gc_destroyed value.
randhexGenerate random hex up to char length nibbles
resolve_clientNull, or a client if thing is a client, a mob with a client, a connected ckey, or null
resolve_speciesHelpers related to /datum/species Null, or a species if thing is a species, a species path, or a species name
secondaryexplosionRange, in tiles, of EX_ACT_DEVASTATING damage. Range, in tiles, of EX_ACT_HEAVY damage. Range, in tiles, of EX_ACT_LIGHT damage. Ratio multiplier based on max_power and range used to determine the above three range values.
select_clientNull or a client from the list of connected clients, chosen by actor if actor is valid
send_fax_loopHandles the loop of sending a fax to all machines matching the department tag. Returns TRUE if at least one fax machine successfully received the fax. Does not include sending faxes to admins.
set_scent_by_reagentsReagents have the following vars, which coorelate to the vars on the standard scent extension: scent, scent_intensity, scent_descriptor, scent_range To add a scent extension to an atom using a reagent's info, where R. is the reagent, use set_scent_by_reagents().
subtypesoftypesof() without the type of thing (or thing if it is a type) included.
subtypesof_realsubtypesof() without abstract types included.
time_to_readableConverts an integer of world.time to a user-readable string split into time measurements from seconds to years.
typecache_filter_listReturns a new list with only atoms that are in typecache L
typecacheofLike typesof() or subtypesof(), but returns a typecache instead of a list
typesof_realtypesof() without abstract types included.
valid_ckeyDuck check to see if text looks like a ckey
valid_keyDuck check to see if text looks like a key
weakrefCreates a weakref to the given input. See /weakref's documentation for more information.
xdyRoll a Y sided die X times, producing either a sum result or list of rolls.

Var Details

ATOM_ICON_CACHE_ALL

SSoverlays. Target both normal and protected overlay caches.

ATOM_ICON_CACHE_NORMAL

SSoverlays. Target the normal overlay cache.

ATOM_ICON_CACHE_PROTECTED

SSoverlays. Target the protected overlay cache.

CHAMELEON_FLEXIBLE_OPTIONS_EXTENSION

Grants the full set of chameleon selection options available to the extension.

CHAMELEON_FLEXIBLE_OPTIONS_PARENT_TYPE

Grants a (potential) subset of chameleon options available to the extension, based on the instance's parent_type. Falls back to type if not a valid type for the extension.

CHAMELEON_FLEXIBLE_OPTIONS_TYPE

Grants a (potential) subset of chameleon options available to the extension, based on the instance's type.

DEG_TO_RAD

Multiplier for converting degrees to radians, rounded to 10 places

Failsafe

Failsafe

Pretty much pokes the MC to make sure it's still alive.

GC_CURRENTLY_BEING_QDELETED

datum.gc_destroyed signal value

GLOBAL_PROC

** Callbacks Callbacks wrap a target, callable, and arguments to pass. See the dm reference for call(). When the target is GLOBAL_PROC, the callable is global - otherwise it is a datum (or dead) reference. Callbacks are created with the new keyword via a global alias like:

** Invocation invoke and invoke_async call a callable against a target with optional params. They accept either: invoke(target, callable, params...) or invoke(, extra params...) and return the result of calling those. invoke_async does not wait for an outcome and will return (.) on the first sleep, and so should be used only where results are not required.

** Callables Callables are proc names or proc references, with references preferred for safety (in most cases). These vary between 515 and older major versions: Before 515:

** Timers Timers accept callbacks as their first argument. For full timer documentation, see the timedevent datum. For example: addTimer(new Callback(myMob, myMob::drop_l_hand()), 10 SECONDS)

HALF_PI

Half the mathematical constant pi, rounded to 10 places

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

PI

The mathematical constant pi, rounded to 10 places

QDEL_HINT_HARDDEL

Destroy() return value. Queue this instance for hard deletion regardless of its refcount GC state.

QDEL_HINT_HARDDEL_NOW

Destroy() return value. Immediately hard delete the instance.

QDEL_HINT_IWILLGC

Destroy() return value. Same as QDEL_HINT_LETMELIVE but the instance expects to refcount GC without help.

QDEL_HINT_LETMELIVE

Destroy() return value. Do not queue the instance for hard deletion. Does not expect to be refcount GCd.

QDEL_HINT_QUEUE

Destroy() return value. Queue the instance for eventual hard deletion.

RAD_TO_DEG

Multiplier for converting radians to degrees, rounded to 10 places

SSpresence

Builds a list of z-level populations to allow for easier pauses on processing when nobody is around to care

TIMER_LOOP

Looping timers automatically re-queue themselves after firing, assuming they are still valid

TIMER_NO_HASH_WAIT

Skips adding the wait to the timer hash, allowing for uniques with variable wait times

TIMER_OVERRIDE

Attempting to add a unique timer will re-queue the event instead of being ignored

TIMER_STOPPABLE

Stoppable timers produce a hash that can be given to deltimer() to unqueue them

TIMER_UNIQUE

Two of the same timer signature cannot be queued at once when they are unique

TWO_PI

Twice the mathematical constant pi, rounded to 10 places

access_cent_general

Central Command

access_hangar

SEV Torch

access_petrov

NRV Petrov

access_security

Station access

access_syndicate

Antag access

access_synth

Misc

photo_count

photo

state_machines

List and procs for caching state machine instances.

z_levels

< What the map edge should be formed with. (null = world.turf)

Proc Details

Atan2

The 2-argument arctangent of x and y

BoundedCircularRandomCoordinate

A circular random coordinate with radius on center_x, center_y, reflected into low_x,low_y -> high_x,high_y, clamped in low,high, and rounded if round is set

Generally this proc is useful for placement around a point (eg a player) that must stay within map boundaries, or some similar circle in box constraint

A "donut" pattern can be achieved by varying the number supplied as radius outside the scope of the proc, eg as BoundedCircularRandomCoordinate(Frand(1, 3), ...)

Broadcast_Message

Here is the big, bad function that broadcasts a message given the appropriate parameters.

@param connection: The datum generated in radio.dm, stored in signal.data["connection"].

@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 monkies 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

@param channel_tag The "name" of the frequency. Displayed in brackets before the message

@param channel_color Color of the radio message

CircularRandomCoordinate

A circular random coordinate pair from 0, unit by default, scaled by radius, then rounded if round.

CircularRandomTurf

Pick a random turf using BoundedCircularRandomCoordinate about x,y on level z

CircularRandomTurfAround

Pick a random turf using BoundedCircularRandomCoordinate around the turf of target

CreateBans

DEBUG

Drand

Returns a random real from an arbitrary XdY dice roll

GetAnomalySusceptibility

returns 0..1, with 1 being no protection and 0 being fully protected

Interpolate

Returns a linear interpolation from a to b according to weight. weight 0 is a, weight 1 is b, weight 0.5 is half-way between the two.

Mean

Returns the mean of either a list or variadic arguments: Mean(list(1, 2, 3)) = 2 , Mean(1, 2, 3) = 2

Uptime

Real time since the server started. Same concept as REALTIMEOFDAY.

VecMag

Returns the euclidian magnitude of a vector of either a list or variadic arguments: VecMag(list(3, 4)) = 5 , VecMag(3, 4) = 5

VecSquareMag

Returns the euclidian square magnitude of a vector of either a list or variadic arguments: VecSquareMag(list(1, 2, 3)) = 14 , VecSquareMag(1, 2, 3) = 14

_fetch_bans

Checks for bans matching ckey, ip, or cid.

Returns list of lists.

_fetch_connections

Checks for prior connections matching ckey, ip, or cid.

Returns list of lists.

_find_bans_in_connections

Checks a list of connections for bans matching any of the list entries.

Parameters:

Returns list of lists.

_show_associated_connections

Generates and displays an HTML window, displaying data from a _fetch_connections() call with the provided parameters.

WARNING: This proc makes no validation or access checks. Ensure user is a valid candidate to receive this information before calling.

Used by the Check Connections button in the player panel.

Parameters:

Has no return value.

_unique_cids_from_connections

Returns a sorted list containing only each unique CID present in a list of connections provided by _fetch_connections().

_unique_ckeys_from_bans

Returns a sorted list containing only each unique ckey present in a list of connections provided by _fetch_connections().

_unique_ckeys_from_connections

Returns a sorted list containing only each unique ckey present in a list of connections provided by _fetch_connections().

_unique_ips_from_connections

Returns a sorted list containing only each unique IP present in a list of connections provided by _fetch_connections().

all_hearers

Hear Helpers

all_viewers

View Helpers

callHook

@file hooks.dm Implements hooks, a simple way to run code on pre-defined events.

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.

ckey2client

Get the client associated with ckey text if it is currently connected

clients_in_range

Range Helpers

cmp_clientcolor_order

The comparison function for sorting client_colors by order.

copy_health

Copies the state of health from one atom to another.

Does not support mobs that don't use standardized health.

do_unstable_teleport_safe

Teleport an object randomly within a set of connected zlevels

emissive_appearance

Produces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EMISSIVE_COLOR.

emissive_blocker

Produces a mutable appearance glued to the EMISSIVE_PLANE dyed to be the EM_BLOCK_COLOR.

empulse

Generates an EMP pulse on the turf of the provided origin point, for the given range as a radius value. Calls emp_act() on every atom within range.

Parameters:

Returns FALSE if the emp failed to generate, TRUE otherwise.

findNullRod

Construct Spells

generate_padding

Builds a string of padding repeated until its character count meets or exceeds size

getOPressureDifferential

Gets the highest and lowest pressures from the tiles in cardinal directions around us, then checks the difference.

get_base_turf_by_area

Fetches the area's base_turf, if defined, or the z level's base_turf as a default.

get_circle_coordinates

Get the coordinates that make up a circle of radius on center, packed as (x | y left shift 12). These coordinates are able to be outside the world: check (v < 1 || v > world.maxV) for safety. Implements the Bresenham Circle Drawing Algorithm for the actual point picking.

get_circle_turfs

Uses get_circle_coordinates to return a list of turfs on the in-bounds edge of the circle.

get_compass_direction_string

Returns direction-string, rounded to multiples of 22.5, from the first parameter to the second N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW

get_default_outfit_backpack

Helpers

get_fax_machines_by_department

Retrieves a list of all fax machines matching the given department tag.

get_mannequin

Initial Building

get_random_poster_type

Picks and returns a random (sub)type of the provided random_poster_base_type which:

Support procs

get_wound_type

WOUND DEFINITIONS

get_zone_with_miss_chance

Emulates targetting a specific body part, and miss chances May return null if missed. Miss_chance_mod may be negative. In order to make this proc compatible with melee and projectile attacks, only return projectile compatible zones if not point blank.

grand

Generate a random number from min to max on a sigma^2 = 1 gaussian distribution.

html_list

Converts a list to an HTML formatted list, i.e.:

list(
    "Value1",
    "Value2"
)

Becomes:

<ul>
    <li>Value1</li>
    <li>Value2</li>
</ul>

Parameters:

Returns string, or null if input is empty.

html_list_dl

Converts an associative list to an HTML formatted definition list, i.e.:

list(
    "Key1" = "Value1",
    "Key2" = "Value2"
)

Becomes:

<dl>
    <dt>Key1</dt>
    <dd>Value1</dd>
    <dt>Key2</dt>
    <dd>Value2</dd>
    ...
</dl>

Parameters:

Returns string, or null if input is empty.

html_page

Page matter from #30904, to be replaced by that behavior later

is_abstract

Passed a path or instance, returns whether it is abstract. Otherwise null.

is_special_character

ADMIN HELPER PROCS

is_suid

% appears to round down floats, hence below values all being integers Check if thing is an SUID. If other is supplied, check if other matches thing.

isfinite

True if number is a number that is not nan or an infinity.

join_url

Connects either a list or variadic arguments with "/" and cleans up multiple joins. eg: join_url("a", "b", "c") => "a/b/c" join_url(list("a", "b", "c")) => "a/b/c" join_url("https://some.tld/", "/cats", "~", "//dogs") => "https://some.tld/cats/~/dogs"

key2client

Get the client associated with key text if it is currently connected

list_to_map

Convert list to a map by calling handler per entry. Map may be supplied as a reference. Handlers should implement a no-params clear.

ltm_by_atom_name

Entry handler for list_to_map. Produces a "name"=ref map, overwriting duplicate names in encounter order.

ltm_by_atom_name_numbered

Entry handler for list_to_map. Produces a "name"=ref map, suffixing a count to name for duplicate names.

new_simple_coin

Create a new random simple coin at loc and return it.

pad_left

Pads the matter of padding onto the start of text until the result length is size

pad_right

Pads the matter of padding onto the start of text until the result length is size

poly_interp2

Sample t(0..1) into a quadratic binomial polynomial. Generally this is useful for shaping rand() distribution. see tools/polyvis.html for a parameter picker.

poly_interp3

Sample t(0..1) into a cubic binomial polynomial. Generally this is useful for shaping rand() distribution. see tools/polyvis.html for a parameter picker. More expensive than poly_interp2.

poly_interp4

Sample t(0..1) into a quartic binomial polynomial. Generally this is useful for shaping rand() distribution. see tools/polyvis.html for a parameter picker. More expensive than poly_interp3.

pop

Remove and return the last element of the list, or null.

popleft

Returns the first element from the list and removes it from the list

prof_init

Starts Tracy

qdel

Queue datum D for garbage collection / deletion. Calls the datum's Destroy() and sets its gc_destroyed value.

randhex

Generate random hex up to char length nibbles

resolve_client

Null, or a client if thing is a client, a mob with a client, a connected ckey, or null

resolve_species

Helpers related to /datum/species Null, or a species if thing is a species, a species path, or a species name

secondaryexplosion

Range, in tiles, of EX_ACT_DEVASTATING damage. Range, in tiles, of EX_ACT_HEAVY damage. Range, in tiles, of EX_ACT_LIGHT damage. Ratio multiplier based on max_power and range used to determine the above three range values.

select_client

Null or a client from the list of connected clients, chosen by actor if actor is valid

send_fax_loop

Handles the loop of sending a fax to all machines matching the department tag. Returns TRUE if at least one fax machine successfully received the fax. Does not include sending faxes to admins.

set_scent_by_reagents

Reagents have the following vars, which coorelate to the vars on the standard scent extension: scent, scent_intensity, scent_descriptor, scent_range To add a scent extension to an atom using a reagent's info, where R. is the reagent, use set_scent_by_reagents().

subtypesof

typesof() without the type of thing (or thing if it is a type) included.

subtypesof_real

subtypesof() without abstract types included.

time_to_readable

Converts an integer of world.time to a user-readable string split into time measurements from seconds to years.

typecache_filter_list

Returns a new list with only atoms that are in typecache L

typecacheof

Like typesof() or subtypesof(), but returns a typecache instead of a list

typesof_real

typesof() without abstract types included.

valid_ckey

Duck check to see if text looks like a ckey

valid_key

Duck check to see if text looks like a key

weakref

Creates a weakref to the given input. See /weakref's documentation for more information.

xdy

Roll a Y sided die X times, producing either a sum result or list of rolls.