getUserdataType | Multi Theft Auto: Wiki Skip to content

getUserdataType

Client-side
Server-side
Shared

Manual Review Required

Please finish this page using the corresponding Old Wiki article. Go to Contribution guidelines for more information.


This function gets the type of a userdata value, which is not always a element in the element tree.

Syntax

string getUserdataType ( userdata value )
Required Arguments
  • value: A userdata value to get the type of. Userdata types can be: Shared resource-data : a resource pointer . xml-node : a XML node . lua-timer : a timer . vector2 : a 2D vector, used in the Vector2 class. vector3 : a 3D vector, used in the Vector3 class. vector4 : a 4D vector, used in the Vector4 class. matrix : a matrix, used in the Matrix class. request : a userdata type returned via fetchRemote (since r21436 ) userdata : a fallback userdata type return value, when no other type could be found for the object. Server only account : a player account . db-query : a database query handle . acl : an ACL entry . acl-group : an ACL group . ban : a player ban . text-item : a text display item . text-display : a text display item .

Returns

  • string: value

Returns a string containing the specified userdata's type, or false plus an error message if the given value is not userdata.

Code Examples

shared

This example shows a function that can be used to work around the impossibility to transfer vectors as arguments when usingtriggerClientEventandtriggerServerEvent, by converting them into a table which can be used safely.

function safeArgsForTransfer(...)
local args = { ... }
for index, arg in ipairs(args) do
if type(arg) == "userdata" and getUserdataType(arg):match("vector") then
-- Transform every kind of vector userdata to a table which can be transfered safely
args[index] =
{
arg:getX(),
arg:getY(),
arg.getZ and arg:getZ() or nil,
arg.getW and arg:getW() or nil,
-- Extra field to distinguish from normal tables
["isVectorWorkaround"] = true
}
end
end
return unpack(args)
end