From Multi Theft Auto: Wiki
Revision as of 12:28, 8 October 2018 by MrTasty (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This event is triggered after an element's data entry is changed. Such changes can be made on the client or the server using setElementData.


string theKey, var oldValue, var newValue
  • theKey: The name of the element data entry that has changed.
  • oldValue: The old value of this entry before it changed. See element data for a list of possible datatypes.
  • newValue: the new value of this entry after it changed. This will be equivalent to getElementData(source, theKey).

Global parameters

  • source: The source of this event is the element whose element data changed.
  • client: The client global variable is set to the client that called setElementData, or nil if it was called on the server.
  • sourceResource: The resource which changed the element data. (Only works in versions above 1.3.4-5937)


This event cannot be cancelled using cancelEvent. To reverse the effect, use setElementData with the old value. See Example.


Click to collapse [-]

This example outputs a message to players when any of their element data values is changed.

function outputChange(theKey, oldValue, newValue)
    if (getElementType(source) == "player") then -- check if the element is a player
        outputChatBox("Your element data '" .. tostring(theKey) .. "' has changed from '" .. tostring(oldValue) .. "' to '" .. tostring(newValue) .. "'", source) -- output the change for the affected player
addEventHandler("onElementDataChange", root, outputChange)
Click to collapse [-]

This example checks and possibly reverses an element's data change.

function checkChange(theKey, oldValue)
    -- The client can only set 'special_thing' on its own player
    if (theKey== "special_thing") and (client ~= source) then
        outputChatBox("Illegal setting of " .. tostring(theKey) .. "' by '" .. tostring(getPlayerName(client)))
        setElementData(source, theKey, oldValue) -- Set back the original value
addEventHandler("onElementDataChange", root, checkChange)

See Also

Element events

Event functions