Space Station 13 - Modules - Types — Var Details - Proc Details

client

Client datum

A datum that is created whenever a user joins a BYOND world, one will exist for every active connected player

when they first connect, this client object is created and [/client/New] is called

When they disconnect, this client object is deleted and [/client/Del] is called

All client topic calls go through [/client/Topic] first, so a lot of our specialised topic handling starts here

Vars

completed_asset_jobsList of all completed blocking send jobs awaiting acknowledgement by send_asset
externalreplyamountInternal counter for clients sending external (IRC/Discord) relay messages via ahelp to prevent spamming. Set to a number every time an admin reply is sent, decremented for every client send.
holderContains admin info. Null if client is not an admin.
last_asset_jobLast asset send job id.
last_messageContains the last message sent by this client - used to protect against copy-paste spamming.
last_message_countcontins a number of how many times a message identical to last_message was sent.
parent_typeThis line makes clients parent type be a datum
script!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!HEY LISTEN!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
show_verb_panelDisables default BYOND verb panel in favor of Stat Panel™
tgui_cache_reloadedglobal
tgui_windowsglobal
tooltipsdatum that controls the displaying and hiding of tooltips
total_count_resetNext tick to reset the total message counter
total_message_countHow many messages sent in the last 10 seconds
verb_tabsList of Stat Panel tabs

Procs

Process_GrabProcess_Grab() Called by client/Move() Checks to see if you are grabbing anything and if moving will affect your grab.
_Topicdumb workaround because byond doesnt seem to recognize the PROC_REF(Topic) typepath for /datum/proc/Topic() from the client Topic, so we cant queue it without this
asset_cache_confirm_arrivalProcess asset cache client topic calls for "asset_cache_confirm_arrival=[INT]"
asset_cache_preload_dataProcess asset cache client topic calls for "asset_cache_preload_data=[HTML+JSON_STRING]"
asset_cache_update_jsonUpdates the client side stored json file used to keep track of what assets the client has between restarts/reconnects.
browse_queue_flushBlocks 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.
init_verbsCompiles a full list of verbs and sends it to the browser
nanocloseCalled when a Nano UI window is closed This is how Nano handles closed windows It must be a verb so that it can be called using winset
resetnanoA "panic button" verb to close all UIs on current mob. Use it when the bug with UI not opening (because the server still considers it open despite it being closed on client) pops up. Feel free to remove it once the bug is confirmed to be fixed.
uicloseverb

Var Details

completed_asset_jobs

List of all completed blocking send jobs awaiting acknowledgement by send_asset

externalreplyamount

Internal counter for clients sending external (IRC/Discord) relay messages via ahelp to prevent spamming. Set to a number every time an admin reply is sent, decremented for every client send.

holder

Contains admin info. Null if client is not an admin.

last_asset_job

Last asset send job id.

last_message

Contains the last message sent by this client - used to protect against copy-paste spamming.

last_message_count

contins a number of how many times a message identical to last_message was sent.

parent_type

This line makes clients parent type be a datum

By default in byond if you define a proc on datums, that proc will exist on nearly every single type from icons to images to atoms to mobs to objs to turfs to areas, it won't however, appear on client

instead by default they act like their own independent type so while you can do isdatum(icon) and have it return true, you can't do isdatum(client), it will always return false.

This makes writing oo code hard, when you have to consider this extra special case

This line prevents that, and has never appeared to cause any ill effects, while saving us an extra pain to think about

This line is widely considered black fucking magic, and the fact it works is a puzzle to everyone involved, including the current engine developer, lummox

If you are a future developer and the engine source is now available and you can explain why this is the way it is, please do update this comment

script

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!HEY LISTEN!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

show_verb_panel

Disables default BYOND verb panel in favor of Stat Panel™

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.

tooltips

datum that controls the displaying and hiding of tooltips

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 Stat Panel tabs

Proc Details

Process_Grab

Process_Grab() Called by client/Move() Checks to see if you are grabbing anything and if moving will affect your grab.

_Topic

dumb workaround because byond doesnt seem to recognize the PROC_REF(Topic) typepath for /datum/proc/Topic() from the client Topic, so we cant queue it without this

asset_cache_confirm_arrival

Process asset cache client topic calls for "asset_cache_confirm_arrival=[INT]"

asset_cache_preload_data

Process asset cache client topic calls for "asset_cache_preload_data=[HTML+JSON_STRING]"

asset_cache_update_json

Updates the client side stored json file used to keep track of what assets the client has between restarts/reconnects.

browse_queue_flush

Blocks until all currently sending browse and browse_rsc assets have been sent. Due to byond limitations, this proc will sleep for 1 client round trip even if the client has no pending asset sends. This proc will return an untrue value if it had to return before confirming the send, such as timeout or the client going away.

init_verbs

Compiles a full list of verbs and sends it to the browser

nanoclose

Called when a Nano UI window is closed This is how Nano handles closed windows It must be a verb so that it can be called using winset

@return nothing

resetnano

A "panic button" verb to close all UIs on current mob. Use it when the bug with UI not opening (because the server still considers it open despite it being closed on client) pops up. Feel free to remove it once the bug is confirmed to be fixed.

@return nothing

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.