{"name":"getPlayerUID","operator":null,"title":"getPlayerUID","type":"command","url":"https://community.bistudio.com/wiki/getPlayerUID","revid":353295,"updated":"2024-03-15T17:11:43Z","groups":["Multiplayer"],"status":"ok","replaced_by":[],"games":[{"game":"arma2","name":"Arma 2","version":"1.02"},{"game":"arma2oa","name":"Arma 2: Operation Arrowhead","version":"1.50"},{"game":"tkoh","name":"Take On Helicopters","version":"1.00"},{"game":"arma3","name":"Arma 3","version":"0.50"}],"since":{"game":"arma2","name":"Arma 2","version":"1.02"},"arma3_since":"0.50","branch":null,"locality":{"argument":"global","effect":null,"server_exec":false},"exec":null,"description":"Return a UniqueID of the given unit (player).\n\n> [!NOTE]\n> **Arma 3:** The returned string is the player's steamID64: `private _steamProfileUrl = \"http://steamcommunity.com/profiles/\" + (getPlayerUID player);`\n\n> [!IMPORTANT]\n> Prior to Arma 2: Operation Arrowhead v1.60, the result always consisted of a stringified number (see getPlayerUIDOld), but always had to be considered and processed as a String. Converting it to a Number could cause precision problems, as Number cannot accurately represent integers above 16777216 (224). Moreover, games since Arma 2: Operation Arrowhead v1.61 provide a value that is not all-numeric.\n\n> [!NOTE]\n> Prior to Arma 3 v2.02, in some cases the identity of certain player units could fail to propagate to other clients and the server, which caused isPlayer and getPlayerUID to incorrectly return `false` and `\"\"` respectively, where the affected units were not local. See [this bug report (GitHub)](https://github.com/michail-nikolaev/task-force-arma-3-radio/issues/1096) for more info. This was supposedly fixed, but you should remain vigilant toward false negatives nonetheless.","syntaxes":[{"syntax":"getPlayerUID unit","since":null,"effect":null,"exec":null,"params":[{"name":"unit","type":"Object","optional":false,"default":null,"description":null,"types":["Object"],"since":null,"text":"unit: Object"}],"returns":{"type":"String","types":["String"],"description":"can be \"_SP_AI_\" or \"_SP_PLAYER_\" in SP, \"\" or UID in MP - The unique ID may be up to 100 characters long and may contain numbers, uppercase letters and underscores - The value can be used to construct a valid variable name by appending to another valid variable name, e.g `missionNamespace setVariable [\"TAG_player\" + _uid, _unit];`","text":"String - can be \"_SP_AI_\" or \"_SP_PLAYER_\" in SP, \"\" or UID in MP\n- The unique ID may be up to 100 characters long and may contain numbers, uppercase letters and underscores\n- The value can be used to construct a valid variable name by appending to another valid variable name, e.g `missionNamespace setVariable [\"TAG_player\" + _uid, _unit];`"},"form":"unary","operator":null,"left":null,"right":{"text":"unit","types":["Object"]}}],"examples":[{"text":"```sqf\nprivate _uid = getPlayerUID player;\n```","code":["private _uid = getPlayerUID player;"]}],"multiplayer":null,"problems":null,"aliases":[],"see_also":["BIS_fnc_getUnitByUID","getPlayerUIDOld","getClientState","getClientStateNumber"],"notes":[],"categories":["Arma 2: New Scripting Commands","Arma 2: Operation Arrowhead: Scripting Commands","Arma 2: Scripting Commands","Arma 3: Scripting Commands","Command Group: Multiplayer","Introduced with Arma 2 version 1.02","Scripting Commands","Take On Helicopters: Scripting Commands"]}