Space Station 13 - Modules - TypesVar Details - Proc Details

client

Vars

active_keybindingsThe client's active keybindings, depending on their active mob.
admin_music_volumeCopyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT Admin music volume, from 0 to 1.
avgpingAverage ping of the client
byondacc_ageDays since the client's BYOND account was created
byondacc_dateDate the client registered their BYOND account on
click_intercept_timeTime when the click was intercepted
clicklimiterUsed for limiting the rate of clicks sends by the client to avoid abuse
completed_asset_jobsList of all completed blocking send jobs awaiting acknowledgement by send_asset
connection_realtimeworld.realtime they connected
connection_timeworld.time they connected
connection_timeofdayworld.timeofday they connected
debug_text_overlayOverlay for showing debug info
do_parallax_animationsDo we want to do parallax animations at all? Exists to prevent laptop fires
dont_animate_parallaxworld.time of when we can state animate()ing parallax again
drag_startWhen we started the currently active drag
intended_directionThe direction we WANT to move, based off our keybinds Will be udpated to be the actual direction later on
key_combos_heldA buffer for combinations such of modifiers + keys (ex: CtrlD, AltE, ShiftT). Format: "key" -> "combo" (ex: "D" -> "CtrlD")
keys_heldA buffer of currently held keys.
last_asset_jobThe ID of the last asset job
last_completed_asset_jobThe ID of the last asset job that was properly finished
last_discord_pm_timeLast world.time that a PM was send to discord by a player
last_messageContains the last message sent by this client - used to protect against copy-paste spamming.
last_message_countContains a number of how many times a message identical to last_message was sent.
last_message_timeHolds the last time (based on world.time) a message was sent.
lastpingLast ping of the client
loot_panelLoot panel for the client
mouseParamsUsed in MouseDrag to preserve the original mouse click parameters
mouse_down_iconused to make a special mouse cursor, this one for mouse up icon
mouse_location_UIDUsed in MouseDrag to preserve the last mouse-entered location.
mouse_object_UIDUsed in MouseDrag to preserve the last mouse-entered object.
mouse_override_iconused to override the mouse cursor so it doesnt get reset
mouse_up_iconused to make a special mouse cursor, this one for mouse up icon
move_delayMove delay of controlled mob, any keypresses inside this period will persist until the next proper move
movement_keyscustom movement keys for this client
movement_lockedAre we locking our movement input?
next_mouse_macro_warningWhen to next alert admins that mouse macro use was attempted
next_move_dir_addOn next move, add this dir to the move that would otherwise be done
next_move_dir_subOn next move, subtract this dir from the move that would otherwise be done
panel_tabslist of all tabs
parallax_animate_timersTimers for the area directional animation, one for each layer
parallax_layers_maxHow many parallax layers to show our client
parallax_movedirDirection our current area wants to move parallax
parent_typeClient is casted to /datum so that we're able to use datum variables, search for clients through datums, and not need to duplicate code for GCing
received_discord_pmLast world/time that a PM was sent to the player by an admin
screen_mapsAssoc list with all the active maps - when a screen obj is added to a map, it's put in here as well.
seen_messagesMessages currently seen by this client
selected_targetAutoclick list of two elements, first being the clicked thing, second being the parameters.
sent_assetsList of all asset filenames sent to this client by the asset cache, along with their assoicated md5s
show_verb_panelHides the byond verb panel as we use our own custom version.
spell_tabslist of tabs containing spells and abilities
stat_panelStat panel window declaration, we don't usually allow this but tgui windows/panels are exceptions
stat_tabour current tab
tgui_cache_reloadedglobal
tgui_panelCopyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT
tgui_sayAssigned say modal of the client
tgui_windowsglobal
topiclimiterUsed for limiting the rate of topic sends by the client to avoid abuse
tos_consentHas the client accepted the TOS about data collection and other stuff
version_blockedIf true, client cannot ready up, late join, or observe. Used for players with EXTREMELY old byond versions.
visual_delayThe visual delay to use for the current client.Move(), mostly used for making a client based move look like it came from some other slower source
window_scalingIf this client has any windows scaling applied

Procs

MoveMove a client in a direction
Process_GrabChecks to see if you're being grabbed and if so attempts to break it
Process_IncorpmoveAllows mobs to ignore density and phase through objects
_Topicdumb workaround because byond doesnt seem to recognize the Topic() typepath for /datum/proc/Topic() from the client Topic, so we cant queue it without this
admin_change_title_screenEnables an admin to upload a new titlescreen image.
admin_observe_targettargeted form of admin_observe: this should only appear in the right-click menu.
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.
change_title_screen_htmlAn admin debug command that enables you to change the HTML on the go.
change_title_screen_noticeSets a titlescreen notice, a big red text on the main screen.
check_tos_consentChecks if the client has accepted TOS
clear_all_mapsClears all the maps of registered screen objects.
clear_mapClears the map of registered screen objects.
clear_screenClears the client's screen, aside from ones that opt out
client_reset_held_keysManually clears any held keys, in case due to lag or other undefined behavior a key gets stuck.
close_popupCloses a popup.
create_popupCreates a popup window with a basic map element in it, without any further initialization.
file_spam_checkThis proc is a failsafe to prevent spamming of file requests. It is just a timer that only permits a download every [FTPDELAY] ticks. This can be changed by modifying FTPDELAY's value above.
fix_tgui_paneltgui panel / chat troubleshooting verb
fix_title_screenReloads the titlescreen if it is bugged for someone.
get_byond_account_dateSets the clients BYOND date up properly
handle_popup_closeWhen the popup closes in any way (player or proc call) it calls this.
init_verbsCompiles a full list of verbs and sends it to the browser
maxviewReturns the biggest number from client.view so we can do easier maths
on_stat_panel_messageHandles incoming messages from the stat-panel TGUI.
poll_option_parseProcesses topic data from poll option panel.
poll_parseProcesses topic data from poll management panel.
register_map_objRegisters screen obj with the client, which makes it visible on the assigned map, and becomes a part of the assigned map's lifecycle.
requestsVerb for opening the requests manager panel
reset_held_keysManually clears any held keys, in case due to lag or other undefined behavior a key gets stuck.
retrieve_byondacc_dataRetrieves the BYOND accounts data from the BYOND servers
send_resourcesSend resources to the client. Sends both game resources and browser assets.
setup_popupCreate the popup, and get it ready for generic use by giving it a background.
smiteMARK: Admin smite proc
tgui_say_create_open_commandCreates a JSON encoded message to open TGUI say modals properly.
timer_logOpens a log of timers
uicloseverb
uid_logOpens a lof of UIDs

Var Details

active_keybindings

The client's active keybindings, depending on their active mob.

admin_music_volume

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT Admin music volume, from 0 to 1.

avgping

Average ping of the client

byondacc_age

Days since the client's BYOND account was created

byondacc_date

Date the client registered their BYOND account on

click_intercept_time

Time when the click was intercepted

clicklimiter

Used for limiting the rate of clicks sends by the client to avoid abuse

completed_asset_jobs

List of all completed blocking send jobs awaiting acknowledgement by send_asset

connection_realtime

world.realtime they connected

connection_time

world.time they connected

connection_timeofday

world.timeofday they connected

debug_text_overlay

Overlay for showing debug info

do_parallax_animations

Do we want to do parallax animations at all? Exists to prevent laptop fires

dont_animate_parallax

world.time of when we can state animate()ing parallax again

drag_start

When we started the currently active drag

intended_direction

The direction we WANT to move, based off our keybinds Will be udpated to be the actual direction later on

key_combos_held

A buffer for combinations such of modifiers + keys (ex: CtrlD, AltE, ShiftT). Format: "key" -> "combo" (ex: "D" -> "CtrlD")

keys_held

A buffer of currently held keys.

last_asset_job

The ID of the last asset job

last_completed_asset_job

The ID of the last asset job that was properly finished

last_discord_pm_time

Last world.time that a PM was send to discord by a player

last_message

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

last_message_count

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

last_message_time

Holds the last time (based on world.time) a message was sent.

lastping

Last ping of the client

loot_panel

Loot panel for the client

mouseParams

Used in MouseDrag to preserve the original mouse click parameters

mouse_down_icon

used to make a special mouse cursor, this one for mouse up icon

mouse_location_UID

Used in MouseDrag to preserve the last mouse-entered location.

mouse_object_UID

Used in MouseDrag to preserve the last mouse-entered object.

mouse_override_icon

used to override the mouse cursor so it doesnt get reset

mouse_up_icon

used to make a special mouse cursor, this one for mouse up icon

move_delay

Move delay of controlled mob, any keypresses inside this period will persist until the next proper move

movement_keys

custom movement keys for this client

movement_locked

Are we locking our movement input?

next_mouse_macro_warning

When to next alert admins that mouse macro use was attempted

next_move_dir_add

On next move, add this dir to the move that would otherwise be done

next_move_dir_sub

On next move, subtract this dir from the move that would otherwise be done

panel_tabs

list of all tabs

parallax_animate_timers

Timers for the area directional animation, one for each layer

parallax_layers_max

How many parallax layers to show our client

parallax_movedir

Direction our current area wants to move parallax

parent_type

Client is casted to /datum so that we're able to use datum variables, search for clients through datums, and not need to duplicate code for GCing

received_discord_pm

Last world/time that a PM was sent to the player by an admin

screen_maps

Assoc list with all the active maps - when a screen obj is added to a map, it's put in here as well.

Format: list( = list(/atom/movable/screen))

seen_messages

Messages currently seen by this client

selected_target

Autoclick list of two elements, first being the clicked thing, second being the parameters.

sent_assets

List of all asset filenames sent to this client by the asset cache, along with their assoicated md5s

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_panel

Stat panel window declaration, we don't usually allow this but tgui windows/panels are exceptions

stat_tab

our current tab

tgui_cache_reloaded

global

TRUE if cache was reloaded by tgui dev server at least once.

tgui_panel

Copyright (c) 2020 Aleksej Komarov SPDX-License-Identifier: MIT

tgui_say

Assigned say modal of the client

tgui_windows

global

Tracks open windows for a user.

topiclimiter

Used for limiting the rate of topic sends by the client to avoid abuse

Has the client accepted the TOS about data collection and other stuff

version_blocked

If true, client cannot ready up, late join, or observe. Used for players with EXTREMELY old byond versions.

visual_delay

The visual delay to use for the current client.Move(), mostly used for making a client based move look like it came from some other slower source

window_scaling

If this client has any windows scaling applied

Proc Details

Move

Move a client in a direction

Huge proc, has a lot of functionality

Mostly it will despatch to the mob that you are the owner of to actually move in the physical realm

Things that stop you moving as a mob:

Things that stop you moving as a mob living (why even have OO if you're just shoving it all in the parent proc with istype checks right?):

At this point, if the mob is is confused, then a random direction and target turf will be calculated for you to travel to instead

Now the parent call is made (to the byond builtin move), which moves you

Some final move delay calculations (doubling if you moved diagonally successfully)

If mob throwing is set I believe it's unset at this point via a call to finalize

Finally if you're pulling an object and it's dense, you are turned 180 after the move (if you ask me, this should be at the top of the move so you don't dance around) // LATER

Process_Grab

Checks to see if you're being grabbed and if so attempts to break it

Called by client/Move()

Process_Incorpmove

Allows mobs to ignore density and phase through objects

Called by client/Move()

The behaviour depends on the incorporeal_move value of the mob

You'll note this is another mob living level proc living at the client level

_Topic

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

admin_change_title_screen

Enables an admin to upload a new titlescreen image.

admin_observe_target

targeted form of admin_observe: this should only appear in the right-click menu.

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.

change_title_screen_html

An admin debug command that enables you to change the HTML on the go.

change_title_screen_notice

Sets a titlescreen notice, a big red text on the main screen.

Checks if the client has accepted TOS

Runs some checks against vars and the DB to see if the client has accepted TOS. Returns TRUE or FALSE if they have or have not

clear_all_maps

Clears all the maps of registered screen objects.

clear_map

Clears the map of registered screen objects.

clear_screen

Clears the client's screen, aside from ones that opt out

client_reset_held_keys

Manually clears any held keys, in case due to lag or other undefined behavior a key gets stuck.

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.

file_spam_check

This proc is a failsafe to prevent spamming of file requests. It is just a timer that only permits a download every [FTPDELAY] ticks. This can be changed by modifying FTPDELAY's value above.

PLEASE USE RESPONSIBLY, Some log files can reach sizes of 4MB!

fix_tgui_panel

tgui panel / chat troubleshooting verb

fix_title_screen

Reloads the titlescreen if it is bugged for someone.

get_byond_account_date

Sets the clients BYOND date up properly

If the client does not have a saved BYOND account creation date, retrieve it from the website If they do have a saved date, use that from the DB, because this value will never change Arguments:

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

maxview

Returns the biggest number from client.view so we can do easier maths

on_stat_panel_message

Handles incoming messages from the stat-panel TGUI.

poll_option_parse

Processes topic data from poll option panel.

Reads through returned form data and assigns data to the option datum, creating a new one if required, before passing it to be saved. Also does some simple error checking to ensure the option will be valid before creation.

poll_parse

Processes topic data from poll management panel.

Reads through returned form data and assigns data to the poll datum, creating a new one if required, before passing it to be saved. Also does some simple error checking to ensure the poll will be valid before creation.

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.

requests

Verb for opening the requests manager panel

reset_held_keys

Manually clears any held keys, in case due to lag or other undefined behavior a key gets stuck.

Hardcoded to the ESC key.

retrieve_byondacc_data

Retrieves the BYOND accounts data from the BYOND servers

Makes a web request to byond.com to retrieve the details for the BYOND account associated with the clients ckey. Returns the data in a parsed, associative list

send_resources

Send resources to the client. Sends both game resources and browser assets.

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.

smite

MARK: Admin smite proc

tgui_say_create_open_command

Creates a JSON encoded message to open TGUI say modals properly.

Arguments: channel - The channel to open the modal in. Returns: string - A JSON encoded message to open the modal.

timer_log

Opens a log of timers

In-round ability to view what has created a timer, and how many times a timer for that path has been created

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.

uid_log

Opens a lof of UIDs

In-round ability to view what has created a UID, and how many times a UID for that path has been declared