/tg/ Station 13 - Modules - TypesVar Details - Proc Details

/client

Vars

AI_InteractUsed for admin AI interaction
account_ageAge of byond account in days
account_join_dateDate of byond account creation in ISO 8601 format
active_mousedown_itemAutoclick variable referencing the associated item.
ambience_playingCurrently playing ambience sound
areaCurrent area of the controlled mob
avgpingAverage ping of the client
ban_cacheUsed to cache this client's bans to save on DB queries
char_render_holdersShould only be a key-value list of north/south/east/west = obj/screen.
chatOutputgoonchat chatoutput of the client
click_interceptNeeds to implement InterceptClickOn(user,params,atom) proc
clicklimiterUsed for limiting the rate of clicks sends by the client to avoid abuse
client_keysend_amountAmount of keydowns in the last keysend checking interval
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
creditslazy list of all credit object bound to this client
crew_manifest_delayrate limiting for the crew manifest
current_key_addressused to keep track of the current rolling buffer position
dont_animate_parallaxworld.time of when we can state animate()ing parallax again
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.
inprefsIf the client is currently in player preferences
ip_intelUsed for ip intel checking to identify evaders, disabled because of issues with traffic
keys_heldA rolling buffer of any keys held currently
keysend_trippedWhen set to true, user will be autokicked if they trip the keysends in a second limit again
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.
last_parallax_shiftworld.time of last parallax update
last_turnlast turn of the controlled mob, I think this is only used by mechs?
lastpingLast ping of the client
mouseLocationUsed in MouseDrag to preserve the last mouse-entered location.
mouseObjectUsed in MouseDrag to preserve the last mouse-entered object.
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_up_iconused to make a special mouse cursor, this one for mouse up icon
move_delayMove delay of controlled mob, related to input handling
movement_keyscustom movement keys for this client
next_keysend_resetWorld tick time where client_keysend_amount will reset
next_keysend_trip_resetWorld tick time where keysend_tripped will reset back to false
next_move_dir_addThese 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_subOn next move, subtract this dir from the move that would otherwise be done
parallax_throttleds between parallax updates
playedWhether an ambience sound has been played and one shouldn't be played again, unset by a callback
player_ageUsed to determine how old the account is - in days.
player_detailsthese persist between logins/logouts during the same round.
player_join_dateDate that this account was first seen in the server
prefsPlayer preferences datum for the client
recent_examinesA 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
related_accounts_cidSo admins know why it isn't working - Used to determine what other accounts previously logged in from this computer id
related_accounts_ipSo admins know why it isn't working - Used to determine what other accounts previously logged in from this ip
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.
tgui_windowsglobal
tooltipsdatum that controls the displaying and hiding of tooltips
topiclimiterUsed for limiting the rate of topic sends by the client to avoid abuse
total_count_resetNext tick to reset the total message counter
total_message_countHow many messages sent in the last 10 seconds

Procs

MoveMove a client in a direction
Move_objectforce move the control_object of your client mob
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
ResetAmbiencePlayedReset the played var to false on the client
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 html/json combo file used to keep track of what assets the client has between restarts/reconnects.
asset_flushBlocks until all currently sending browser 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.
award_heartRedirect proc that makes it easier to get the status of an achievement. Achievement type is the typepath to the award.
body_chestHidden verb to target the chest, bound to 5
body_groinHidden verb to target the groin, bound to 2
body_l_armHidden verb to target the left arm, bound to 6
body_l_legHidden verb to target the left leg, bound to 3
body_r_armHidden verb to target the right arm, bound to 4
body_r_legHidden verb to target the right leg, bound to 1
body_toggle_headHidden verb to set the target zone of a mob to the head
check_has_body_selectValidate the client's mob has a valid zone selected
check_timer_sourcesA debug verb to check the sources of currently running timers
clear_all_mapsClears all the maps of registered screen objects.
clear_mapClears the map of registered screen objects.
close_popupCloses a popup.
create_popupCreates a popup window with a basic map element in it, without any further initialization.
drop_itemIf your mob is concious, drop the item in the active hand
get_award_statusRedirect proc that makes it easier to get the status of an achievement. Achievement type is the typepath to the award.
give_awardRedirect 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_closeWhen the popup closes in any way (player or proc call) it calls this.
keyUpCheck if the key is short enough to even be a real key
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.
setup_popupCreate the popup, and get it ready for generic use by giving it a background.
toggle_walk_runVerb to toggle the walk or run status
uicloseverb

Var Details

AI_Interact

Used for admin AI interaction

account_age

Age of byond account in days

account_join_date

Date of byond account creation in ISO 8601 format

active_mousedown_item

Autoclick variable referencing the associated item.

ambience_playing

Currently playing ambience sound

area

Current area of the controlled mob

avgping

Average ping of the client

ban_cache

Used to cache this client's bans to save on DB queries

char_render_holders

Should only be a key-value list of north/south/east/west = obj/screen.

chatOutput

goonchat chatoutput of the client

click_intercept

Needs to implement InterceptClickOn(user,params,atom) proc

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

connection_realtime

world.realtime they connected

connection_time

world.time they connected

connection_timeofday

world.timeofday they connected

credits

lazy list of all credit object bound to this client

crew_manifest_delay

rate limiting for the crew manifest

current_key_address

used to keep track of the current rolling buffer position

dont_animate_parallax

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

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.

inprefs

If the client is currently in player preferences

ip_intel

Used for ip intel checking to identify evaders, disabled because of issues with traffic

keys_held

A rolling buffer of any keys held currently

keysend_tripped

When set to true, user will be autokicked if they trip the keysends in a second limit again

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.

last_parallax_shift

world.time of last parallax update

last_turn

last turn of the controlled mob, I think this is only used by mechs?

lastping

Last ping of the client

mouseLocation

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

mouseObject

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

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_up_icon

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

move_delay

Move delay of controlled mob, related to input handling

movement_keys

custom movement keys for this client

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_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

parallax_throttle

ds between parallax updates

played

Whether an ambience sound has been played and one shouldn't be played again, unset by a callback

player_age

Used to determine how old the account is - in days.

player_details

these persist between logins/logouts during the same round.

player_join_date

Date that this account was first seen in the server

prefs

Player preferences datum for the client

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

related_accounts_cid

So admins know why it isn't working - Used to determine what other accounts previously logged in from this computer id

related_accounts_ip

So admins know why it isn't working - Used to determine what other accounts previously logged in from this ip

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(/obj/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.

tgui_windows

global

Tracks open windows for a user.

tooltips

datum that controls the displaying and hiding of tooltips

topiclimiter

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

total_count_reset

Next tick to reset the total message counter

total_message_count

How many messages sent in the last 10 seconds

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)

Move_object

force move the control_object of your client mob

Used in admin possession and called from the client Move proc ensures the possessed object moves and not the admin mob

Has no sanity other than checking density

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

ResetAmbiencePlayed

Reset the played var to false on the client

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 html/json combo file used to keep track of what assets the client has between restarts/reconnects.

asset_flush

Blocks until all currently sending browser 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.

award_heart

Redirect proc that makes it easier to get the status of an achievement. Achievement type is the typepath to the award.

body_chest

Hidden verb to target the chest, bound to 5

body_groin

Hidden verb to target the groin, bound to 2

body_l_arm

Hidden verb to target the left arm, bound to 6

body_l_leg

Hidden verb to target the left leg, bound to 3

body_r_arm

Hidden verb to target the right arm, bound to 4

body_r_leg

Hidden verb to target the right leg, bound to 1

body_toggle_head

Hidden verb to set the target zone of a mob to the head

(bound to 8) - repeated presses toggles through head - eyes - mouth

check_has_body_select

Validate the client's mob has a valid zone selected

check_timer_sources

A debug verb to check the sources of currently running timers

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.

drop_item

If your mob is concious, drop the item in the active hand

This is a hidden verb, likely for binding with winset for hotkeys

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.

keyUp

Check if the key is short enough to even be a real key

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.

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.

toggle_walk_run

Verb to toggle the walk or run status

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.