You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

698 lines
59 KiB

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="dmdoc.css" />
<title>&#x2F;client - &#x2F;tg&#x2F; Station 13</title>
</head>
<body>
<header>
<a href="index.html">&#x2F;tg&#x2F; Station 13</a> -
<a href="index.html#modules">Modules</a> -
<a href="index.html#types">Types</a>
&mdash; <a href="client.html#var">Var Details</a> - <a href="client.html#proc">Proc Details</a></header>
<main>
<h1>/<a href="client.html">client</a><aside> inherits /<a href="datum.html">datum</a></aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/_onclick/hud/map_popups.dm#L1">
<img src="git.png" width="16" height="16" title="code&#x2F;_onclick&#x2F;hud&#x2F;map_popups.dm 1"/></a></h1>
<table class="summary" cellspacing="0"><tr><td colspan="2"><h2>Vars</h2></td></tr>
<tr><th><a href="client.html#var/AI_Interact">AI_Interact</a></th><td>Used for admin AI interaction</td></tr>
<tr><th><a href="client.html#var/account_age">account_age</a></th><td>Age of byond account in days</td></tr>
<tr><th><a href="client.html#var/account_join_date">account_join_date</a></th><td>Date of byond account creation in ISO 8601 format</td></tr>
<tr><th><a href="client.html#var/active_mousedown_item">active_mousedown_item</a></th><td>Autoclick variable referencing the associated item.</td></tr>
<tr><th><a href="client.html#var/ambience_playing">ambience_playing</a></th><td>Currently playing ambience sound</td></tr>
<tr><th><a href="client.html#var/area">area</a></th><td>Current area of the controlled mob</td></tr>
<tr><th><a href="client.html#var/avgping">avgping</a></th><td>Average ping of the client</td></tr>
<tr><th><a href="client.html#var/ban_cache">ban_cache</a></th><td>Used to cache this client's bans to save on DB queries</td></tr>
<tr><th><a href="client.html#var/char_render_holders">char_render_holders</a></th><td>Should only be a key-value list of north/south/east/west = obj/screen.</td></tr>
<tr><th><a href="client.html#var/chatOutput">chatOutput</a></th><td>goonchat chatoutput of the client</td></tr>
<tr><th><a href="client.html#var/click_intercept">click_intercept</a></th><td>Needs to implement InterceptClickOn(user,params,atom) proc</td></tr>
<tr><th><a href="client.html#var/clicklimiter">clicklimiter</a></th><td>Used for limiting the rate of clicks sends by the client to avoid abuse</td></tr>
<tr><th><a href="client.html#var/client_keysend_amount">client_keysend_amount</a></th><td>Amount of keydowns in the last keysend checking interval</td></tr>
<tr><th><a href="client.html#var/connection_realtime">connection_realtime</a></th><td>world.realtime they connected</td></tr>
<tr><th><a href="client.html#var/connection_time">connection_time</a></th><td>world.time they connected</td></tr>
<tr><th><a href="client.html#var/connection_timeofday">connection_timeofday</a></th><td>world.timeofday they connected</td></tr>
<tr><th><a href="client.html#var/credits">credits</a></th><td>lazy list of all credit object bound to this client</td></tr>
<tr><th><a href="client.html#var/current_key_address">current_key_address</a></th><td>used to keep track of the current rolling buffer position</td></tr>
<tr><th><a href="client.html#var/externalreplyamount">externalreplyamount</a></th><td>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.</td></tr>
<tr><th><a href="client.html#var/holder">holder</a></th><td>Contains admin info. Null if client is not an admin.</td></tr>
<tr><th><a href="client.html#var/inprefs">inprefs</a></th><td>If the client is currently in player preferences</td></tr>
<tr><th><a href="client.html#var/ip_intel">ip_intel</a></th><td>Used for ip intel checking to identify evaders, disabled because of issues with traffic</td></tr>
<tr><th><a href="client.html#var/keys_held">keys_held</a></th><td>A rolling buffer of any keys held currently</td></tr>
<tr><th><a href="client.html#var/keysend_tripped">keysend_tripped</a></th><td>When set to true, user will be autokicked if they trip the keysends in a second limit again</td></tr>
<tr><th><a href="client.html#var/last_asset_job">last_asset_job</a></th><td>List of all completed blocking send jobs awaiting acknowledgement by send_asset</td></tr>
<tr><th><a href="client.html#var/last_completed_asset_job">last_completed_asset_job</a></th><td>Last asset send job id.</td></tr>
<tr><th><a href="client.html#var/last_message">last_message</a></th><td>Contains the last message sent by this client - used to protect against copy-paste spamming.</td></tr>
<tr><th><a href="client.html#var/last_message_count">last_message_count</a></th><td>contins a number of how many times a message identical to last_message was sent.</td></tr>
<tr><th><a href="client.html#var/last_turn">last_turn</a></th><td>last turn of the controlled mob, I think this is only used by mechs?</td></tr>
<tr><th><a href="client.html#var/lastping">lastping</a></th><td>Last ping of the client</td></tr>
<tr><th><a href="client.html#var/mouseLocation">mouseLocation</a></th><td>Used in MouseDrag to preserve the last mouse-entered location.</td></tr>
<tr><th><a href="client.html#var/mouseObject">mouseObject</a></th><td>Used in MouseDrag to preserve the last mouse-entered object.</td></tr>
<tr><th><a href="client.html#var/mouseParams">mouseParams</a></th><td>Used in MouseDrag to preserve the original mouse click parameters</td></tr>
<tr><th><a href="client.html#var/mouse_down_icon">mouse_down_icon</a></th><td>used to make a special mouse cursor, this one for mouse up icon</td></tr>
<tr><th><a href="client.html#var/mouse_up_icon">mouse_up_icon</a></th><td>used to make a special mouse cursor, this one for mouse up icon</td></tr>
<tr><th><a href="client.html#var/move_delay">move_delay</a></th><td>Move delay of controlled mob, related to input handling</td></tr>
<tr><th><a href="client.html#var/movement_keys">movement_keys</a></th><td>custom movement keys for this client</td></tr>
<tr><th><a href="client.html#var/next_keysend_reset">next_keysend_reset</a></th><td>World tick time where client_keysend_amount will reset</td></tr>
<tr><th><a href="client.html#var/next_keysend_trip_reset">next_keysend_trip_reset</a></th><td>World tick time where keysend_tripped will reset back to false</td></tr>
<tr><th><a href="client.html#var/next_move_dir_add">next_move_dir_add</a></th><td>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</td></tr>
<tr><th><a href="client.html#var/next_move_dir_sub">next_move_dir_sub</a></th><td>On next move, subtract this dir from the move that would otherwise be done</td></tr>
<tr><th><a href="client.html#var/played">played</a></th><td>Whether an ambience sound has been played and one shouldn't be played again, unset by a callback</td></tr>
<tr><th><a href="client.html#var/player_age">player_age</a></th><td>Used to determine how old the account is - in days.</td></tr>
<tr><th><a href="client.html#var/player_details">player_details</a></th><td>these persist between logins/logouts during the same round.</td></tr>
<tr><th><a href="client.html#var/player_join_date">player_join_date</a></th><td>Date that this account was first seen in the server</td></tr>
<tr><th><a href="client.html#var/prefs">prefs</a></th><td>Player preferences datum for the client</td></tr>
<tr><th><a href="client.html#var/related_accounts_cid">related_accounts_cid</a></th><td>So admins know why it isn't working - Used to determine what other accounts previously logged in from this computer id</td></tr>
<tr><th><a href="client.html#var/related_accounts_ip">related_accounts_ip</a></th><td>So admins know why it isn't working - Used to determine what other accounts previously logged in from this ip</td></tr>
<tr><th><a href="client.html#var/screen_maps">screen_maps</a></th><td>Assoc list with all the active maps - when a screen obj is added to
a map, it's put in here as well.</td></tr>
<tr><th><a href="client.html#var/seen_messages">seen_messages</a></th><td>Messages currently seen by this client</td></tr>
<tr><th><a href="client.html#var/selected_target">selected_target</a></th><td>Autoclick list of two elements, first being the clicked thing, second being the parameters.</td></tr>
<tr><th><a href="client.html#var/tooltips">tooltips</a></th><td>datum that controls the displaying and hiding of tooltips</td></tr>
<tr><th><a href="client.html#var/topiclimiter">topiclimiter</a></th><td>Used for limiting the rate of topic sends by the client to avoid abuse</td></tr>
<tr><th><a href="client.html#var/total_count_reset">total_count_reset</a></th><td>Next tick to reset the total message counter</td></tr>
<tr><th><a href="client.html#var/total_message_count">total_message_count</a></th><td>How many messages sent in the last 10 seconds</td></tr><tr><td colspan="2"><h2>Procs</h2></td></tr>
<tr><th><a href="client.html#proc/Move">Move</a></th><td>Move a client in a direction</td></tr>
<tr><th><a href="client.html#proc/Move_object">Move_object</a></th><td>force move the control_object of your client mob</td></tr>
<tr><th><a href="client.html#proc/Process_Grab">Process_Grab</a></th><td>Checks to see if you're being grabbed and if so attempts to break it</td></tr>
<tr><th><a href="client.html#proc/Process_Incorpmove">Process_Incorpmove</a></th><td>Allows mobs to ignore density and phase through objects</td></tr>
<tr><th><a href="client.html#proc/ResetAmbiencePlayed">ResetAmbiencePlayed</a></th><td>Reset the played var to false on the client</td></tr>
<tr><th><a href="client.html#proc/asset_cache_confirm_arrival">asset_cache_confirm_arrival</a></th><td>Process asset cache client topic calls for &quot;asset_cache_confirm_arrival=[INT]&quot;</td></tr>
<tr><th><a href="client.html#proc/asset_cache_preload_data">asset_cache_preload_data</a></th><td>Process asset cache client topic calls for &quot;asset_cache_preload_data=[HTML+JSON_STRING]</td></tr>
<tr><th><a href="client.html#proc/asset_cache_update_json">asset_cache_update_json</a></th><td>Updates the client side stored html/json combo file used to keep track of what assets the client has between restarts/reconnects.</td></tr>
<tr><th><a href="client.html#proc/asset_flush">asset_flush</a></th><td>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.</td></tr>
<tr><th><a href="client.html#proc/award_heart">award_heart</a></th><td>Redirect proc that makes it easier to get the status of an achievement. Achievement type is the typepath to the award.</td></tr>
<tr><th><a href="client.html#proc/body_chest">body_chest</a></th><td>Hidden verb to target the chest, bound to 5</td></tr>
<tr><th><a href="client.html#proc/body_groin">body_groin</a></th><td>Hidden verb to target the groin, bound to 2</td></tr>
<tr><th><a href="client.html#proc/body_l_arm">body_l_arm</a></th><td>Hidden verb to target the left arm, bound to 6</td></tr>
<tr><th><a href="client.html#proc/body_l_leg">body_l_leg</a></th><td>Hidden verb to target the left leg, bound to 3</td></tr>
<tr><th><a href="client.html#proc/body_r_arm">body_r_arm</a></th><td>Hidden verb to target the right arm, bound to 4</td></tr>
<tr><th><a href="client.html#proc/body_r_leg">body_r_leg</a></th><td>Hidden verb to target the right leg, bound to 1</td></tr>
<tr><th><a href="client.html#proc/body_toggle_head">body_toggle_head</a></th><td>Hidden verb to set the target zone of a mob to the head</td></tr>
<tr><th><a href="client.html#proc/check_has_body_select">check_has_body_select</a></th><td>Validate the client's mob has a valid zone selected</td></tr>
<tr><th><a href="client.html#proc/clear_all_maps">clear_all_maps</a></th><td>Clears all the maps of registered screen objects.</td></tr>
<tr><th><a href="client.html#proc/clear_map">clear_map</a></th><td>Clears the map of registered screen objects.</td></tr>
<tr><th><a href="client.html#proc/close_popup">close_popup</a></th><td>Closes a popup.</td></tr>
<tr><th><a href="client.html#proc/create_popup">create_popup</a></th><td>Creates a popup window with a basic map element in it, without any
further initialization.</td></tr>
<tr><th><a href="client.html#proc/drop_item">drop_item</a></th><td>If your mob is concious, drop the item in the active hand</td></tr>
<tr><th><a href="client.html#proc/get_award_status">get_award_status</a></th><td>Redirect proc that makes it easier to get the status of an achievement. Achievement type is the typepath to the award.</td></tr>
<tr><th><a href="client.html#proc/give_award">give_award</a></th><td>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</td></tr>
<tr><th><a href="client.html#proc/handle_popup_close">handle_popup_close</a></th><td>When the popup closes in any way (player or proc call) it calls this.</td></tr>
<tr><th><a href="client.html#proc/keyUp">keyUp</a></th><td>Check if the key is short enough to even be a real key</td></tr>
<tr><th><a href="client.html#proc/register_map_obj">register_map_obj</a></th><td>Registers screen obj with the client, which makes it visible on the
assigned map, and becomes a part of the assigned map's lifecycle.</td></tr>
<tr><th><a href="client.html#proc/setup_popup">setup_popup</a></th><td>Create the popup, and get it ready for generic use by giving
it a background.</td></tr>
<tr><th><a href="client.html#proc/toggle_walk_run">toggle_walk_run</a></th><td>Verb to toggle the walk or run status</td></tr>
<tr><th><a href="client.html#proc/uiclose">uiclose</a></th><td>verb</td></tr></table>
<h2 id="var">Var Details</h2><h3 id="var/AI_Interact"><aside class="declaration">var </aside>AI_Interact
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L15">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 15"/></a></h3>
<p>Used for admin AI interaction</p><h3 id="var/account_age"><aside class="declaration">var </aside>account_age
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L69">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 69"/></a></h3>
<p>Age of byond account in days</p><h3 id="var/account_join_date"><aside class="declaration">var </aside>account_join_date
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L67">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 67"/></a></h3>
<p>Date of byond account creation in ISO 8601 format</p><h3 id="var/active_mousedown_item"><aside class="declaration">var </aside>active_mousedown_item
<aside>&ndash; /<a href="obj.html">obj</a>/<a href="obj/item.html">item</a></aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L130">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 130"/></a></h3>
<p>Autoclick variable referencing the associated item.</p><h3 id="var/ambience_playing"><aside class="declaration">var </aside>ambience_playing
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L46">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 46"/></a></h3>
<p>Currently playing ambience sound</p><h3 id="var/area"><aside class="declaration">var </aside>area
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L40">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 40"/></a></h3>
<p>Current area of the controlled mob</p><h3 id="var/avgping"><aside class="declaration">var </aside>avgping
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L89">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 89"/></a></h3>
<p>Average ping of the client</p><h3 id="var/ban_cache"><aside class="declaration">var </aside>ban_cache
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L18">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 18"/></a></h3>
<p>Used to cache this client's bans to save on DB queries</p><h3 id="var/char_render_holders"><aside class="declaration">var </aside>char_render_holders
<aside>&ndash; /list</aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L114">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 114"/></a></h3>
<p>Should only be a key-value list of north/south/east/west = obj/screen.</p><h3 id="var/chatOutput"><aside class="declaration">var </aside>chatOutput
<aside>&ndash; /<a href="datum.html">datum</a>/chatOutput</aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L105">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 105"/></a></h3>
<p>goonchat chatoutput of the client</p><h3 id="var/click_intercept"><aside class="declaration">var </aside>click_intercept
<aside>&ndash; /<a href="datum.html">datum</a></aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L13">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 13"/></a></h3>
<p>Needs to implement InterceptClickOn(user,params,atom) proc</p><h3 id="var/clicklimiter"><aside class="declaration">var </aside>clicklimiter
<aside>&ndash; /list</aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L102">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 102"/></a></h3>
<p>Used for limiting the rate of clicks sends by the client to avoid abuse</p><h3 id="var/client_keysend_amount"><aside class="declaration">var </aside>client_keysend_amount
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L117">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 117"/></a></h3>
<p>Amount of keydowns in the last keysend checking interval</p><h3 id="var/connection_realtime"><aside class="declaration">var </aside>connection_realtime
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L93">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 93"/></a></h3>
<p>world.realtime they connected</p><h3 id="var/connection_time"><aside class="declaration">var </aside>connection_time
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L91">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 91"/></a></h3>
<p>world.time they connected</p><h3 id="var/connection_timeofday"><aside class="declaration">var </aside>connection_timeofday
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L95">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 95"/></a></h3>
<p>world.timeofday they connected</p><h3 id="var/credits"><aside class="declaration">var </aside>credits
<aside>&ndash; /list</aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L108">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 108"/></a></h3>
<p>lazy list of all credit object bound to this client</p><h3 id="var/current_key_address"><aside class="declaration">var </aside>current_key_address
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/keybindings/setup.dm#L5">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;keybindings&#x2F;setup.dm 5"/></a></h3>
<p>used to keep track of the current rolling buffer position</p><h3 id="var/externalreplyamount"><aside class="declaration">var </aside>externalreplyamount
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L28">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 28"/></a></h3>
<p>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.</p><h3 id="var/holder"><aside class="declaration">var </aside>holder
<aside>&ndash; /<a href="datum.html">datum</a>/<a href="datum/admins.html">admins</a></aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L11">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 11"/></a></h3>
<p>Contains admin info. Null if client is not an admin.</p><h3 id="var/inprefs"><aside class="declaration">var </aside>inprefs
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L98">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 98"/></a></h3>
<p>If the client is currently in player preferences</p><h3 id="var/ip_intel"><aside class="declaration">var </aside>ip_intel
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L81">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 81"/></a></h3>
<p>Used for ip intel checking to identify evaders, disabled because of issues with traffic</p><h3 id="var/keys_held"><aside class="declaration">var </aside>keys_held
<aside>&ndash; /list</aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/keybindings/setup.dm#L3">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;keybindings&#x2F;setup.dm 3"/></a></h3>
<p>A rolling buffer of any keys held currently</p><h3 id="var/keysend_tripped"><aside class="declaration">var </aside>keysend_tripped
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L123">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 123"/></a></h3>
<p>When set to true, user will be autokicked if they trip the keysends in a second limit again</p><h3 id="var/last_asset_job"><aside class="declaration">var </aside>last_asset_job
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/asset_cache/asset_cache_client.dm#L6">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;asset_cache&#x2F;asset_cache_client.dm 6"/></a></h3>
<p>List of all completed blocking send jobs awaiting acknowledgement by send_asset</p><h3 id="var/last_completed_asset_job"><aside class="declaration">var </aside>last_completed_asset_job
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/asset_cache/asset_cache_client.dm#L7">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;asset_cache&#x2F;asset_cache_client.dm 7"/></a></h3>
<p>Last asset send job id.</p><h3 id="var/last_message"><aside class="declaration">var </aside>last_message
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L20">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 20"/></a></h3>
<p>Contains the last message sent by this client - used to protect against copy-paste spamming.</p><h3 id="var/last_message_count"><aside class="declaration">var </aside>last_message_count
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L22">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 22"/></a></h3>
<p>contins a number of how many times a message identical to last_message was sent.</p><h3 id="var/last_turn"><aside class="declaration">var </aside>last_turn
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L36">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 36"/></a></h3>
<p>last turn of the controlled mob, I think this is only used by mechs?</p><h3 id="var/lastping"><aside class="declaration">var </aside>lastping
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L87">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 87"/></a></h3>
<p>Last ping of the client</p><h3 id="var/mouseLocation"><aside class="declaration">var </aside>mouseLocation
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L134">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 134"/></a></h3>
<p>Used in MouseDrag to preserve the last mouse-entered location.</p><h3 id="var/mouseObject"><aside class="declaration">var </aside>mouseObject
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L136">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 136"/></a></h3>
<p>Used in MouseDrag to preserve the last mouse-entered object.</p><h3 id="var/mouseParams"><aside class="declaration">var </aside>mouseParams
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L132">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 132"/></a></h3>
<p>Used in MouseDrag to preserve the original mouse click parameters</p><h3 id="var/mouse_down_icon"><aside class="declaration">var </aside>mouse_down_icon
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L78">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 78"/></a></h3>
<p>used to make a special mouse cursor, this one for mouse up icon</p><h3 id="var/mouse_up_icon"><aside class="declaration">var </aside>mouse_up_icon
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L76">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 76"/></a></h3>
<p>used to make a special mouse cursor, this one for mouse up icon</p><h3 id="var/move_delay"><aside class="declaration">var </aside>move_delay
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L38">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 38"/></a></h3>
<p>Move delay of controlled mob, related to input handling</p><h3 id="var/movement_keys"><aside class="declaration">var </aside>movement_keys
<aside>&ndash; /list</aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L125">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 125"/></a></h3>
<p>custom movement keys for this client</p><h3 id="var/next_keysend_reset"><aside class="declaration">var </aside>next_keysend_reset
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L119">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 119"/></a></h3>
<p>World tick time where client_keysend_amount will reset</p><h3 id="var/next_keysend_trip_reset"><aside class="declaration">var </aside>next_keysend_trip_reset
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L121">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 121"/></a></h3>
<p>World tick time where keysend_tripped will reset back to false</p><h3 id="var/next_move_dir_add"><aside class="declaration">var </aside>next_move_dir_add
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/keybindings/setup.dm#L9">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;keybindings&#x2F;setup.dm 9"/></a></h3>
<p>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</p><h3 id="var/next_move_dir_sub"><aside class="declaration">var </aside>next_move_dir_sub
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/keybindings/setup.dm#L15">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;keybindings&#x2F;setup.dm 15"/></a></h3>
<p>On next move, subtract this dir from the move that would otherwise be done</p><h3 id="var/played"><aside class="declaration">var </aside>played
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L48">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 48"/></a></h3>
<p>Whether an ambience sound has been played and one shouldn't be played again, unset by a callback</p><h3 id="var/player_age"><aside class="declaration">var </aside>player_age
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L59">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 59"/></a></h3>
<p>Used to determine how old the account is - in days.</p><h3 id="var/player_details"><aside class="declaration">var </aside>player_details
<aside>&ndash; /<a href="datum.html">datum</a>/player_details</aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L111">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 111"/></a></h3>
<p>these persist between logins/logouts during the same round.</p><h3 id="var/player_join_date"><aside class="declaration">var </aside>player_join_date
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L61">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 61"/></a></h3>
<p>Date that this account was first seen in the server</p><h3 id="var/prefs"><aside class="declaration">var </aside>prefs
<aside>&ndash; /<a href="datum.html">datum</a>/<a href="datum/preferences.html">preferences</a></aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L34">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 34"/></a></h3>
<p>Player preferences datum for the client</p><h3 id="var/related_accounts_cid"><aside class="declaration">var </aside>related_accounts_cid
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L65">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 65"/></a></h3>
<p>So admins know why it isn't working - Used to determine what other accounts previously logged in from this computer id</p><h3 id="var/related_accounts_ip"><aside class="declaration">var </aside>related_accounts_ip
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L63">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 63"/></a></h3>
<p>So admins know why it isn't working - Used to determine what other accounts previously logged in from this ip</p><h3 id="var/screen_maps"><aside class="declaration">var </aside>screen_maps
<aside>&ndash; /list</aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/_onclick/hud/map_popups.dm#L8">
<img src="git.png" width="16" height="16" title="code&#x2F;_onclick&#x2F;hud&#x2F;map_popups.dm 8"/></a></h3>
<p>Assoc list with all the active maps - when a screen obj is added to
a map, it's put in here as well.</p>
<p>Format: list(<mapname> = list(/obj/screen))</p><h3 id="var/seen_messages"><aside class="declaration">var </aside>seen_messages
<aside>&ndash; /list</aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L143">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 143"/></a></h3>
<p>Messages currently seen by this client</p><h3 id="var/selected_target"><aside class="declaration">var </aside>selected_target
<aside>&ndash; /list/list/atom</aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L128">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 128"/></a></h3>
<p>Autoclick list of two elements, first being the clicked thing, second being the parameters.</p><h3 id="var/tooltips"><aside class="declaration">var </aside>tooltips
<aside>&ndash; /<a href="datum.html">datum</a>/tooltip</aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L84">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 84"/></a></h3>
<p>datum that controls the displaying and hiding of tooltips</p><h3 id="var/topiclimiter"><aside class="declaration">var </aside>topiclimiter
<aside>&ndash; /list</aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L100">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 100"/></a></h3>
<p>Used for limiting the rate of topic sends by the client to avoid abuse</p><h3 id="var/total_count_reset"><aside class="declaration">var </aside>total_count_reset
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L26">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 26"/></a></h3>
<p>Next tick to reset the total message counter</p><h3 id="var/total_message_count"><aside class="declaration">var </aside>total_message_count
<aside>&ndash; </aside>
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_defines.dm#L24">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_defines.dm 24"/></a></h3>
<p>How many messages sent in the last 10 seconds</p><h2 id="proc">Proc Details</h2><h3 id="proc/Move"><aside class="declaration">proc </aside>Move<aside>(n, direct)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/mob/mob_movement.dm#L69">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;mob&#x2F;mob_movement.dm 69"/></a></aside>
</h3>
<p>Move a client in a direction</p>
<p>Huge proc, has a lot of functionality</p>
<p>Mostly it will despatch to the mob that you are the owner of to actually move
in the physical realm</p>
<p>Things that stop you moving as a mob:</p>
<ul>
<li>world time being less than your next move_delay</li>
<li>not being in a mob, or that mob not having a loc</li>
<li>missing the n and direction parameters</li>
<li>being in remote control of an object (calls Moveobject instead)</li>
<li>being dead (it ghosts you instead)</li>
</ul>
<p>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?):</p>
<ul>
<li>having incorporeal_move set (calls Process_Incorpmove() instead)</li>
<li>being grabbed</li>
<li>being buckled (relaymove() is called to the buckled atom instead)</li>
<li>having your loc be some other mob (relaymove() is called on that mob instead)</li>
<li>Not having MOBILITY_MOVE</li>
<li>Failing Process_Spacemove() call</li>
</ul>
<p>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</p>
<p>Now the parent call is made (to the byond builtin move), which moves you</p>
<p>Some final move delay calculations (doubling if you moved diagonally successfully)</p>
<p>if mob throwing is set I believe it's unset at this point via a call to finalize</p>
<p>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)</p><h3 id="proc/Move_object"><aside class="declaration">proc </aside>Move_object<aside>(direct)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/mob/mob_movement.dm#L20">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;mob&#x2F;mob_movement.dm 20"/></a></aside>
</h3>
<p>force move the control_object of your client mob</p>
<p>Used in admin possession and called from the client Move proc
ensures the possessed object moves and not the admin mob</p>
<p>Has no sanity other than checking density</p><h3 id="proc/Process_Grab"><aside class="declaration">proc </aside>Process_Grab<aside>()
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/mob/mob_movement.dm#L156">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;mob&#x2F;mob_movement.dm 156"/></a></aside>
</h3>
<p>Checks to see if you're being grabbed and if so attempts to break it</p>
<p>Called by client/Move()</p><h3 id="proc/Process_Incorpmove"><aside class="declaration">proc </aside>Process_Incorpmove<aside>(direct)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/mob/mob_movement.dm#L183">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;mob&#x2F;mob_movement.dm 183"/></a></aside>
</h3>
<p>Allows mobs to ignore density and phase through objects</p>
<p>Called by client/Move()</p>
<p>The behaviour depends on the incorporeal_move value of the mob</p>
<ul>
<li>INCORPOREAL_MOVE_BASIC - forceMoved to the next tile with no stop</li>
<li>INCORPOREAL_MOVE_SHADOW - the same but leaves a cool effect path</li>
<li>INCORPOREAL_MOVE_JAUNT - the same but blocked by holy tiles</li>
</ul>
<p>You'll note this is another mob living level proc living at the client level</p><h3 id="proc/ResetAmbiencePlayed"><aside class="declaration">proc </aside>ResetAmbiencePlayed<aside>()
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/game/area/areas.dm#L597">
<img src="git.png" width="16" height="16" title="code&#x2F;game&#x2F;area&#x2F;areas.dm 597"/></a></aside>
</h3>
<p>Reset the played var to false on the client</p><h3 id="proc/asset_cache_confirm_arrival"><aside class="declaration">proc </aside>asset_cache_confirm_arrival<aside>(job_id)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/asset_cache/asset_cache_client.dm#L10">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;asset_cache&#x2F;asset_cache_client.dm 10"/></a></aside>
</h3>
<p>Process asset cache client topic calls for &quot;asset_cache_confirm_arrival=[INT]&quot;</p><h3 id="proc/asset_cache_preload_data"><aside class="declaration">proc </aside>asset_cache_preload_data<aside>(data)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/asset_cache/asset_cache_client.dm#L21">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;asset_cache&#x2F;asset_cache_client.dm 21"/></a></aside>
</h3>
<p>Process asset cache client topic calls for &quot;asset_cache_preload_data=[HTML+JSON_STRING]</p><h3 id="proc/asset_cache_update_json"><aside class="declaration">proc </aside>asset_cache_update_json<aside>(verify, /list/new_assets)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/asset_cache/asset_cache_client.dm#L37">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;asset_cache&#x2F;asset_cache_client.dm 37"/></a></aside>
</h3>
<p>Updates the client side stored html/json combo file used to keep track of what assets the client has between restarts/reconnects.</p><h3 id="proc/asset_flush"><aside class="declaration">proc </aside>asset_flush<aside>(timeout)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/asset_cache/asset_cache_client.dm#L48">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;asset_cache&#x2F;asset_cache_client.dm 48"/></a></aside>
</h3>
<p>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.</p><h3 id="proc/award_heart"><aside class="declaration">proc </aside>award_heart<aside>(heart_reason)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_procs.dm#L968">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_procs.dm 968"/></a></aside>
</h3>
<p>Redirect proc that makes it easier to get the status of an achievement. Achievement type is the typepath to the award.</p><h3 id="proc/body_chest"><aside class="declaration">verb </aside>body_chest<aside>()
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/mob/mob_movement.dm#L378">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;mob&#x2F;mob_movement.dm 378"/></a></aside>
</h3>
<p>Hidden verb to target the chest, bound to 5</p><h3 id="proc/body_groin"><aside class="declaration">verb </aside>body_groin<aside>()
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/mob/mob_movement.dm#L411">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;mob&#x2F;mob_movement.dm 411"/></a></aside>
</h3>
<p>Hidden verb to target the groin, bound to 2</p><h3 id="proc/body_l_arm"><aside class="declaration">verb </aside>body_l_arm<aside>()
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/mob/mob_movement.dm#L389">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;mob&#x2F;mob_movement.dm 389"/></a></aside>
</h3>
<p>Hidden verb to target the left arm, bound to 6</p><h3 id="proc/body_l_leg"><aside class="declaration">verb </aside>body_l_leg<aside>()
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/mob/mob_movement.dm#L422">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;mob&#x2F;mob_movement.dm 422"/></a></aside>
</h3>
<p>Hidden verb to target the left leg, bound to 3</p><h3 id="proc/body_r_arm"><aside class="declaration">verb </aside>body_r_arm<aside>()
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/mob/mob_movement.dm#L367">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;mob&#x2F;mob_movement.dm 367"/></a></aside>
</h3>
<p>Hidden verb to target the right arm, bound to 4</p><h3 id="proc/body_r_leg"><aside class="declaration">verb </aside>body_r_leg<aside>()
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/mob/mob_movement.dm#L400">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;mob&#x2F;mob_movement.dm 400"/></a></aside>
</h3>
<p>Hidden verb to target the right leg, bound to 1</p><h3 id="proc/body_toggle_head"><aside class="declaration">verb </aside>body_toggle_head<aside>()
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/mob/mob_movement.dm#L347">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;mob&#x2F;mob_movement.dm 347"/></a></aside>
</h3>
<p>Hidden verb to set the target zone of a mob to the head</p>
<p>(bound to 8) - repeated presses toggles through head - eyes - mouth</p><h3 id="proc/check_has_body_select"><aside class="declaration">proc </aside>check_has_body_select<aside>()
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/mob/mob_movement.dm#L339">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;mob&#x2F;mob_movement.dm 339"/></a></aside>
</h3>
<p>Validate the client's mob has a valid zone selected</p><h3 id="proc/clear_all_maps"><aside class="declaration">proc </aside>clear_all_maps<aside>()
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/_onclick/hud/map_popups.dm#L104">
<img src="git.png" width="16" height="16" title="code&#x2F;_onclick&#x2F;hud&#x2F;map_popups.dm 104"/></a></aside>
</h3>
<p>Clears all the maps of registered screen objects.</p><h3 id="proc/clear_map"><aside class="declaration">proc </aside>clear_map<aside>(map_name)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/_onclick/hud/map_popups.dm#L92">
<img src="git.png" width="16" height="16" title="code&#x2F;_onclick&#x2F;hud&#x2F;map_popups.dm 92"/></a></aside>
</h3>
<p>Clears the map of registered screen objects.</p>
<p>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.</p><h3 id="proc/close_popup"><aside class="declaration">proc </aside>close_popup<aside>(popup)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/_onclick/hud/map_popups.dm#L161">
<img src="git.png" width="16" height="16" title="code&#x2F;_onclick&#x2F;hud&#x2F;map_popups.dm 161"/></a></aside>
</h3>
<p>Closes a popup.</p><h3 id="proc/create_popup"><aside class="declaration">proc </aside>create_popup<aside>(name, ratiox, ratioy)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/_onclick/hud/map_popups.dm#L116">
<img src="git.png" width="16" height="16" title="code&#x2F;_onclick&#x2F;hud&#x2F;map_popups.dm 116"/></a></aside>
</h3>
<p>Creates a popup window with a basic map element in it, without any
further initialization.</p>
<p>Ratio is how many pixels by how many pixels (keep it simple).</p>
<p>Returns a map name.</p><h3 id="proc/drop_item"><aside class="declaration">verb </aside>drop_item<aside>()
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/mob/mob_movement.dm#L6">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;mob&#x2F;mob_movement.dm 6"/></a></aside>
</h3>
<p>If your mob is concious, drop the item in the active hand</p>
<p>This is a hidden verb, likely for binding with winset for hotkeys</p><h3 id="proc/get_award_status"><aside class="declaration">proc </aside>get_award_status<aside>(achievement_type, /<a href="mob.html">mob</a>/user, value)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_procs.dm#L964">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_procs.dm 964"/></a></aside>
</h3>
<p>Redirect proc that makes it easier to get the status of an achievement. Achievement type is the typepath to the award.</p><h3 id="proc/give_award"><aside class="declaration">proc </aside>give_award<aside>(achievement_type, /<a href="mob.html">mob</a>/user, value)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/client/client_procs.dm#L960">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;client&#x2F;client_procs.dm 960"/></a></aside>
</h3>
<p>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</p><h3 id="proc/handle_popup_close"><aside class="declaration">verb </aside>handle_popup_close<aside>(window_id)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/_onclick/hud/map_popups.dm#L168">
<img src="git.png" width="16" height="16" title="code&#x2F;_onclick&#x2F;hud&#x2F;map_popups.dm 168"/></a></aside>
</h3>
<p>When the popup closes in any way (player or proc call) it calls this.</p><h3 id="proc/keyUp"><aside class="declaration">verb </aside>keyUp<aside>(_key)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/keybindings/bindings_client.dm#L74">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;keybindings&#x2F;bindings_client.dm 74"/></a></aside>
</h3>
<p>Check if the key is short enough to even be a real key</p><h3 id="proc/register_map_obj"><aside class="declaration">proc </aside>register_map_obj<aside>(/<a href="obj.html">obj</a>/<a href="obj/screen.html">screen</a>/screen_obj)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/_onclick/hud/map_popups.dm#L73">
<img src="git.png" width="16" height="16" title="code&#x2F;_onclick&#x2F;hud&#x2F;map_popups.dm 73"/></a></aside>
</h3>
<p>Registers screen obj with the client, which makes it visible on the
assigned map, and becomes a part of the assigned map's lifecycle.</p><h3 id="proc/setup_popup"><aside class="declaration">proc </aside>setup_popup<aside>(popup_name, width, height, tilesize, bg_icon)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/_onclick/hud/map_popups.dm#L140">
<img src="git.png" width="16" height="16" title="code&#x2F;_onclick&#x2F;hud&#x2F;map_popups.dm 140"/></a></aside>
</h3>
<p>Create the popup, and get it ready for generic use by giving
it a background.</p>
<p>Width and height are multiplied by 64 by default.</p><h3 id="proc/toggle_walk_run"><aside class="declaration">verb </aside>toggle_walk_run<aside>()
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/mob/mob_movement.dm#L433">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;mob&#x2F;mob_movement.dm 433"/></a></aside>
</h3>
<p>Verb to toggle the walk or run status</p><h3 id="proc/uiclose"><aside class="declaration">verb </aside>uiclose<aside>(ref)
<a href="https://github.com/tgstation/tgstation/blob/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3/code/modules/tgui/external.dm#L143">
<img src="git.png" width="16" height="16" title="code&#x2F;modules&#x2F;tgui&#x2F;external.dm 143"/></a></aside>
</h3>
<p>verb</p>
<p>Called by UIs when they are closed.
Must be a verb so winset() can call it.</p>
<p>required uiref ref The UI that was closed.</p></main>
<footer>
tgstation.dme
<a href="https://github.com/tgstation/tgstation/tree/3d3d7fcc2cc32d945b8427cb7e4524883dee7fa3">3d3d7fc</a>
(master) &mdash; <a href="https://github.com/SpaceManiac/SpacemanDMM/blob/master/src/dmdoc/README.md">dmdoc 1.2.1</a></footer>
</body>
</html>