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)endSee Also
Utility Functions
- addDebugHook
- bitAnd
- bitArShift
- bitExtract
- bitLRotate
- bitLShift
- bitNot
- bitOr
- bitReplace
- bitRRotate
- bitRShift
- bitTest
- bitXor
- createTrayNotification
- debugSleep
- decodeString
- deref
- downloadFile
- encodeString
- fromJSON
- generateKeyPair
- getColorFromString
- getDevelopmentMode
- getDistanceBetweenPoints2D
- getDistanceBetweenPoints3D
- getEasingValue
- getFPSLimit
- getKeyboardLayout
- getLocalization
- getNetworkStats
- getNetworkUsageData
- getPerformanceStats
- getProcessMemoryStats
- getRealTime
- getServerIp
- getTickCount
- getTimerDetails
- getTimers
- gettok
- getUserdataType
- getVersion
- hash
- inspect
- interpolateBetween
- iprint
- isOOPEnabled
- isShowCollisionsEnabled
- isShowSoundEnabled
- isTimer
- isTimerPaused
- isTransferBoxAlwaysVisible
- isTransferBoxVisible
- isTrayNotificationEnabled
- killTimer
- md5
- passwordHash
- passwordVerify
- pregFind
- pregMatch
- pregReplace
- ref
- removeDebugHook
- resetTimer
- setClipboard
- setDevelopmentMode
- setFPSLimit
- setTimer
- setTimerPaused
- setTransferBoxVisible
- setWindowFlashing
- sha256
- showCol
- showSound
- split
- teaDecode
- teaEncode
- tocolor
- toJSON
- utfChar
- utfCode
- utfLen
- utfSeek
- utfSub