Zum Inhalt

Client Side

Table of Contents

MPVehicleGE

MPConfig

MPCoreNetwork

MPGameNetwork

MPHelpers


Vehicle Functions

getGameVehicleID(serverVehicleID)

Resolves a serverVehicleID into the gameVehicleID

Parameters: - serverVehicleID (string) - Format: "X-Y" where X is PlayerID and Y is VehicleID

Returns: - (number) - The game's internal vehicle ID - (number) -1 - If vehicle is unknown

Usage:

local gameID = extensions.MPVehicleGE.getGameVehicleID("0-0")


getServerVehicleID(gameVehicleID)

Resolves a gameVehicleID into the serverVehicleID

Parameters: - gameVehicleID (number) - The game's internal vehicle ID

Returns: - (string) - Server vehicle ID (e.g., "0-0") - (nil) - If gameVehicleID is unknown

Usage:

local serverID = extensions.MPVehicleGE.getServerVehicleID(11171)


getVehicleByServerID(serverVehicleID)

Returns the complete vehicle table for this vehicle

Parameters: - serverVehicleID (string) - Format: "X-Y"

Returns: - (table) - Vehicle information (name, gameVehicleID, jbeam, ownerID, ownerName, isLocal, isSpawned, etc.) - (nil) - If serverVehicleID is invalid

Usage:

local vehicle = extensions.MPVehicleGE.getVehicleByServerID("0-0")
if vehicle then
    print("Owner: " .. vehicle.ownerName)
end


getVehicleByGameID(gameVehicleID)

Returns the complete vehicle table for this vehicle

Parameters: - gameVehicleID (number) - The game's internal vehicle ID

Returns: - (table) - Vehicle information - (nil) - If gameVehicleID is invalid

Usage:

local vehicle = extensions.MPVehicleGE.getVehicleByGameID(11171)


isOwn(gameVehicleID)

Checks if the given vehicle belongs to this client

Parameters: - gameVehicleID (number) - The game's internal vehicle ID

Returns: - (boolean) - True if vehicle belongs to this client

Usage:

if extensions.MPVehicleGE.isOwn(11171) then
    print("This is my vehicle")
end


getOwnMap()

Returns a table containing all vehicles owned by this client

Parameters: - None

Returns: - (table) - Map of owned vehicles {[gameVehicleID] = vehicles_subtable}

Usage:

local myVehicles = extensions.MPVehicleGE.getOwnMap()


getVehicleMap()

Returns a table of all known multiplayer vehicles

Parameters: - None

Returns: - (table) - Map of all vehicles {[serverVehicleID] = gameVehicleID}

Usage:

local allVehicles = extensions.MPVehicleGE.getVehicleMap()


getDistanceMap()

Returns the distance from each multiplayer vehicle to this client's point of view

Parameters: - None

Returns: - (table) - Map of distances {[gameVehicleID] = distanceInMeters}

Usage:

local distances = extensions.MPVehicleGE.getDistanceMap()


getNicknameMap()

Returns all multiplayer gameVehicleIDs with their owner names

Parameters: - None

Returns: - (table) - Map of nicknames {[gameVehicleID] = ownerName}

Usage:

local nicknameMap = extensions.MPVehicleGE.getNicknameMap()


getVehicles()

Returns the complete vehicles table

Parameters: - None

Returns: - (table) - All vehicles {[serverVehicleID] = vehicles_subtable}

Usage:

local vehicles = extensions.MPVehicleGE.getVehicles()
for serverID, vehicle in pairs(vehicles) do
    print("Vehicle: " .. vehicle.jbeam)
end


Player Functions

getPlayerByName(name)

Returns this player's table and ID

Parameters: - name (string) - The player's name

Returns: - (table) - Player information (name, playerID, role, vehicles, etc.) - (number) - The player's ID - (nil) - If player not found

Usage:

local player, playerID = extensions.MPVehicleGE.getPlayerByName("John")
if player then
    print("Player ID: " .. playerID)
end


getPlayers()

Returns the complete players table

Parameters: - None

Returns: - (table) - All players {[playerID] = players_subtable}

Usage:

local players = extensions.MPVehicleGE.getPlayers()
for playerID, player in pairs(players) do
    print("Player: " .. player.name)
end


Nametag Functions

setPlayerNickPrefix(targetName, tagSource, text)

Adds a prefix to a player's nametag (displayed before the name)

Parameters: - targetName (string) - The player's name - tagSource (string) - Unique identifier for this prefix - text (string) - Text to display before the name

Usage:

extensions.MPVehicleGE.setPlayerNickPrefix("John", "RANK", "1st.")
-- Result: "1st. John"


setPlayerNickSuffix(targetName, tagSource, text)

Adds a suffix to a player's nametag (displayed after the name)

Parameters: - targetName (string) - The player's name - tagSource (string) - Unique identifier for this suffix - text (string) - Text to display after the name

Usage:

extensions.MPVehicleGE.setPlayerNickSuffix("John", "STATUS", "[AFK]")
-- Result: "John [AFK]"


hideNicknames(hide)

Turns on or off the nametag drawing from BeamMP

Parameters: - hide (boolean) - True to hide nametags, false to show them

Usage:

extensions.MPVehicleGE.hideNicknames(true)  -- Hide
extensions.MPVehicleGE.hideNicknames(false) -- Show


toggleNicknames()

Toggles the displaying of nametags

Parameters: - None

Usage:

extensions.MPVehicleGE.toggleNicknames()


Role Functions

setPlayerRole(playerID, tag, shorttag, red, green, blue)

Sets a custom role for a player

Parameters: - playerID (number) - ID of the player - tag (string) - Role tag (e.g., "VIP") - shorttag (string) - Short version (e.g., "V") - red (number) - Red channel (0-255) - green (number) - Green channel (0-255) - blue (number) - Blue channel (0-255)

Returns: - (boolean, string) - false, "player not found" if player doesn't exist - (boolean, string) - false, error if invalid arguments - (nil) - Nothing on success

Usage:

local success, error = extensions.MPVehicleGE.setPlayerRole(0, "VIP", "V", 255, 215, 0)
if success == false then
    print("Error: " .. error)
end


clearPlayerRole(playerID)

Clears a custom role for a player

Parameters: - playerID (number) - ID of the player

Returns: - (boolean) - Always returns false (implementation quirk - use to check if player exists)

Usage:

extensions.MPVehicleGE.clearPlayerRole(0)


setVehicleRole(playerIDVehicleID, tag, shorttag, red, green, blue)

Sets a custom role for a specific vehicle

Parameters: - playerIDVehicleID (string) - Vehicle ID (format: "0-0") - tag (string) - Role tag - shorttag (string) - Short version - red (number) - Red (0-255) - green (number) - Green (0-255) - blue (number) - Blue (0-255)

Returns: - (boolean, string) - false, "vehicle not found" if vehicle doesn't exist - (boolean, string) - false, error if invalid arguments - (nil) - Nothing on success

Usage:

local success, error = extensions.MPVehicleGE.setVehicleRole("0-0", "Police", "POL", 0, 0, 255)
if success == false then
    print("Error: " .. error)
end


clearVehicleRole(playerIDVehicleID)

Clears a custom role for a vehicle

Parameters: - playerIDVehicleID (string) - Vehicle ID (format: "0-0")

Returns: - (boolean) - Always returns false (implementation quirk - use to check if vehicle exists)

Usage:

extensions.MPVehicleGE.clearVehicleRole("0-0")


groundmarkerToPlayer(targetName)

Sets a ground marker route to target player's position (static)

Parameters: - targetName (string) - Player's name, or nil to clear

Usage:

extensions.MPVehicleGE.groundmarkerToPlayer("John")  -- Set
extensions.MPVehicleGE.groundmarkerToPlayer(nil)     -- Clear


groundmarkerFollowPlayer(targetName, dontfollow)

Sets a ground marker route that follows target player

Parameters: - targetName (string) - Player's name, or nil to stop - dontfollow (boolean) - If true, creates static marker

Usage:

extensions.MPVehicleGE.groundmarkerFollowPlayer("John")       -- Follow
extensions.MPVehicleGE.groundmarkerFollowPlayer("John", true) -- Static
extensions.MPVehicleGE.groundmarkerFollowPlayer(nil)          -- Stop


queryRoadNodeToPosition(targetPosition, owner)

Finds the closest road nodes to a target position

Parameters: - targetPosition (vec3 or table) - Target position with x, y, z - owner (string) - Optional identifier (default: "target")

Returns: - (boolean) - Success status - (number) - nodeID (if successful)

Usage:

local pos = vec3(100, 200, 50)
local success, nodeID = extensions.MPVehicleGE.queryRoadNodeToPosition(pos)


Object Methods

Player Object Methods

player:setNickPrefix(tagSource, text)

Sets a prefix for this player's nametag

Parameters: - tagSource (string) - Unique identifier - text (string) - Text to display (or nil to remove)

Usage:

local player = extensions.MPVehicleGE.getPlayerByName("John")
if player then
    player:setNickPrefix("STATUS", "[AFK]")
end


player:setNickSuffix(tagSource, text)

Sets a suffix for this player's nametag

Parameters: - tagSource (string) - Unique identifier - text (string) - Text to display (or nil to remove)

Usage:

local player = extensions.MPVehicleGE.getPlayerByName("John")
if player then
    player:setNickSuffix("MISSION", "[In Mission]")
end


player:setCustomRole(role)

Sets a custom role for this player

Parameters: - role (table) - Role table: {backcolor = {r, g, b}, tag = string, shorttag = string}

Usage:

local player = extensions.MPVehicleGE.getPlayerByName("John")
if player then
    player:setCustomRole({
        backcolor = {r = 255, g = 0, b = 0},
        tag = " [VIP]",
        shorttag = " [V]"
    })
end


player:clearCustomRole()

Clears the custom role for this player

Usage:

local player = extensions.MPVehicleGE.getPlayerByName("John")
if player then
    player:clearCustomRole()
end


Vehicle Object Methods

vehicle:getOwner()

Returns the owner of this vehicle

Returns: - (table) - Player object - (number) - Player's ID

Usage:

local vehicle = extensions.MPVehicleGE.getVehicleByServerID("0-0")
if vehicle then
    local owner, ownerID = vehicle:getOwner()
    print("Owner: " .. owner.name)
end


vehicle:setCustomRole(role)

Sets a custom role for this vehicle

Parameters: - role (table) - Role table: {backcolor = {r, g, b}, tag = string, shorttag = string}

Usage:

local vehicle = extensions.MPVehicleGE.getVehicleByServerID("0-0")
if vehicle then
    vehicle:setCustomRole({
        backcolor = {r = 0, g = 0, b = 255},
        tag = " [Police]",
        shorttag = " [POL]"
    })
end


vehicle:clearCustomRole()

Clears the custom role for this vehicle

Usage:

local vehicle = extensions.MPVehicleGE.getVehicleByServerID("0-0")
if vehicle then
    vehicle:clearCustomRole()
end


vehicle:setDisplayName(displayName)

Sets a custom display name for this vehicle

Parameters: - displayName (string) - Custom name to display

Usage:

local vehicle = extensions.MPVehicleGE.getVehicleByServerID("0-0")
if vehicle then
    vehicle:setDisplayName("Patrol Car #1")
end


Event Hooks

BeamMP provides event hooks that you can override to execute custom code when specific events occur. Do not call these functions directly - instead, override them while preserving the original functionality.

Hook Pattern

Always preserve the original function when overriding:

-- Save the original function
local originalCallback = MPVehicleGE.onVehicleSpawned

-- Override with your custom logic
MPVehicleGE.onVehicleSpawned = function(gameVehicleID)
    -- Call the original first
    originalCallback(gameVehicleID)

    -- Your custom code here
    print("Vehicle spawned: " .. gameVehicleID)
end

Available Event Hooks

onUpdate(dt)

Called every frame while connected to multiplayer

Parameters: - dt (number) - Delta time in seconds since last frame

Usage:

local originalOnUpdate = MPVehicleGE.onUpdate
MPVehicleGE.onUpdate = function(dt)
    originalOnUpdate(dt)
    -- Your frame-by-frame logic here
end


onPreRender(dt)

Called every frame before rendering

Parameters: - dt (number) - Delta time in seconds

Note: This handles nametag rendering, distance calculations, and ground markers internally.

Usage:

local originalOnPreRender = MPVehicleGE.onPreRender
MPVehicleGE.onPreRender = function(dt)
    originalOnPreRender(dt)
    -- Your pre-render logic here
end


onVehicleSpawned(gameVehicleID)

Called when a vehicle spawns (both local and remote)

Parameters: - gameVehicleID (number) - The game's internal vehicle ID

Usage:

local originalOnVehicleSpawned = MPVehicleGE.onVehicleSpawned
MPVehicleGE.onVehicleSpawned = function(gameVehicleID)
    originalOnVehicleSpawned(gameVehicleID)

    local vehicle = extensions.MPVehicleGE.getVehicleByGameID(gameVehicleID)
    if vehicle then
        print(vehicle.ownerName .. " spawned a " .. vehicle.jbeam)
    end
end


onVehicleDestroyed(gameVehicleID)

Called when a vehicle is destroyed/removed

Parameters: - gameVehicleID (number) - The game's internal vehicle ID

Usage:

local originalOnVehicleDestroyed = MPVehicleGE.onVehicleDestroyed
MPVehicleGE.onVehicleDestroyed = function(gameVehicleID)
    local vehicle = extensions.MPVehicleGE.getVehicleByGameID(gameVehicleID)
    if vehicle then
        print("Vehicle " .. vehicle.jbeam .. " was destroyed")
    end

    originalOnVehicleDestroyed(gameVehicleID)
end


onVehicleSwitched(oldGameVehicleID, newGameVehicleID)

Called when player switches between vehicles

Parameters: - oldGameVehicleID (number) - Previous vehicle ID (or -1) - newGameVehicleID (number) - New vehicle ID (or -1)

Usage:

local originalOnVehicleSwitched = MPVehicleGE.onVehicleSwitched
MPVehicleGE.onVehicleSwitched = function(oldID, newID)
    originalOnVehicleSwitched(oldID, newID)

    print("Switched from vehicle " .. oldID .. " to " .. newID)
end


onVehicleResetted(gameVehicleID)

Called when a vehicle is reset (local vehicles only)

Parameters: - gameVehicleID (number) - The game's internal vehicle ID

Usage:

local originalOnVehicleResetted = MPVehicleGE.onVehicleResetted
MPVehicleGE.onVehicleResetted = function(gameVehicleID)
    originalOnVehicleResetted(gameVehicleID)

    print("Vehicle " .. gameVehicleID .. " was reset")
end


onVehicleColorChanged(gameVehicleID, index, paint)

Called when a vehicle's paint color is changed

Parameters: - gameVehicleID (number) - The game's internal vehicle ID - index (number) - Paint slot index (0, 1, or 2) - paint (table) - Paint data with color information

Usage:

local originalOnVehicleColorChanged = MPVehicleGE.onVehicleColorChanged
MPVehicleGE.onVehicleColorChanged = function(gameVehicleID, index, paint)
    originalOnVehicleColorChanged(gameVehicleID, index, paint)

    print("Vehicle " .. gameVehicleID .. " changed paint slot " .. index)
end


onVehicleReady(gameVehicleID)

Called when a vehicle's extensions have loaded and the vehicle is fully ready

Parameters: - gameVehicleID (number) - The game's internal vehicle ID

Note: Use this instead of onVehicleSpawned if you need vehicle extensions to be loaded.

Usage:

local originalOnVehicleReady = MPVehicleGE.onVehicleReady
MPVehicleGE.onVehicleReady = function(gameVehicleID)
    originalOnVehicleReady(gameVehicleID)

    -- Safe to interact with vehicle extensions here
    local veh = be:getObjectByID(gameVehicleID)
    if veh then
        veh:queueLuaCommand("print('Vehicle is ready!')")
    end
end


onUIInitialised()

Called when the BeamMP UI is initialized

Usage:

local originalOnUIInitialised = MPVehicleGE.onUIInitialised
MPVehicleGE.onUIInitialised = function()
    originalOnUIInitialised()

    print("BeamMP UI initialized")
end


onSettingsChanged()

Called when BeamMP settings are changed

Usage:

local originalOnSettingsChanged = MPVehicleGE.onSettingsChanged
MPVehicleGE.onSettingsChanged = function()
    originalOnSettingsChanged()

    print("BeamMP settings changed")
end


MPConfig Functions

MPConfig.getPlayerServerID()

Returns the local player's server-assigned ID

Returns: - (number) - The player's server ID (-1 if not set)

Usage:

local myID = extensions.MPConfig.getPlayerServerID()


MPConfig.getNickname()

Returns the local player's nickname

Returns: - (string) - The player's current nickname

Usage:

local name = extensions.MPConfig.getNickname()


MPConfig.getConfig()

Returns the BeamMP configuration settings

Returns: - (table) - Configuration table with all BeamMP settings - (nil) - If config file doesn't exist

Usage:

local config = extensions.MPConfig.getConfig()


MPConfig.setConfig(settingName, settingVal)

Sets a specific configuration value

Parameters: - settingName (string) - Name of the setting - settingVal (any) - Value to set

Usage:

extensions.MPConfig.setConfig("myCustomSetting", true)


MPCoreNetwork Functions

MPCoreNetwork.getCurrentServer()

Returns information about the current connected server

Returns: - (table) - Server data (ip, port, name, map) - (nil) - If not connected

Usage:

local server = extensions.MPCoreNetwork.getCurrentServer()
if server then
    print("Server: " .. server.name)
    print("IP: " .. server.ip .. ":" .. server.port)
end


Event System Functions

TriggerServerEvent(name, data)

Sends an event to the server

Parameters: - name (string) - Event name - data (string) - Data to send

Note: Global function. The server must have a registered handler for this event.

Usage:

TriggerServerEvent("playerReady", "ready")

-- With JSON
local data = {position = {x=100, y=200, z=50}}
TriggerServerEvent("updatePlayer", jsonEncode(data))


TriggerClientEvent(name, data)

Triggers a local client event

Parameters: - name (string) - Event name - data (string) - Data to send

Note: Global function. Triggers locally without sending to server.

Usage:

TriggerClientEvent("localUpdate", "data")


AddEventHandler(event_name, func, name)

Registers a function to handle a specific event

Parameters: - event_name (string) - Name of the event to handle - func (function) - Handler function (receives event data) - name (string) - Optional internal name

Note: Global function.

Usage:

AddEventHandler("playerDamage", function(data)
    print("Damage: " .. data)
end)

-- With JSON
AddEventHandler("vehicleSpawned", function(data)
    local vehData = jsonDecode(data)
    print("Spawned: " .. vehData.model)
end)


RemoveEventHandler(event_name, name)

Removes an event handler

Parameters: - event_name (string) - Name of the event - name (string) - Optional internal name

Note: Global function.

Usage:

RemoveEventHandler("playerDamage")


Keypress Functions

onKeyPressed(keyname, func)

Registers a function to be called when a key is pressed

Parameters: - keyname (string) - Name of the key (e.g., "NUMPAD1", "F1") - func (function) - Function to call (receives boolean)

Note: Global function.

Usage:

onKeyPressed("NUMPAD1", function(state)
    print("NUMPAD1 pressed!")
end)


onKeyReleased(keyname, func)

Registers a function to be called when a key is released

Parameters: - keyname (string) - Name of the key - func (function) - Function to call (receives boolean)

Note: Global function.

Usage:

onKeyReleased("NUMPAD1", function(state)
    print("NUMPAD1 released!")
end)


addKeyEventListener(keyname, func, type)

Registers a key event listener with customizable trigger type

Parameters: - keyname (string) - Name of the key - func (function) - Function to call - type (string) - Event type: "down", "up", or "both" (default: "both")

Note: Global function.

Usage:

addKeyEventListener("F1", function(isPressed)
    if isPressed then
        print("F1 pressed")
    else
        print("F1 released")
    end
end, "both")


getKeyState(keyname)

Returns the current state of a key

Parameters: - keyname (string) - Name of the key

Returns: - (boolean) - True if pressed, false otherwise

Note: Global function. Only works for keys registered with addKeyEventListener.

Usage:

local isPressed = getKeyState("NUMPAD1")
if isPressed then
    print("NUMPAD1 is held down")
end


UI Functions

MPGameNetwork.spawnUiDialog(dialogInfo)

Creates a custom interactive dialog box

Parameters: - dialogInfo (table) - Dialog configuration: - title (string) - Dialog title (optional) - body (string) - Dialog message (optional) - buttons (table) - Button configurations (optional) - class (string) - "experimental" for hazard lines (optional) - interactionID (string) - Interaction identifier (optional) - reportToServer (boolean) - Send to server (optional, default: false) - reportToExtensions (boolean) - Trigger local event (optional, default: false)

Usage:

-- Simple dialog
extensions.MPGameNetwork.spawnUiDialog({
    title = "Welcome",
    body = "Welcome to the server!"
})

-- Choice dialog
extensions.MPGameNetwork.spawnUiDialog({
    title = "Choose Team",
    body = "Which team?",
    buttons = {
        {label = "Red", key = "joinRed"},
        {label = "Blue", key = "joinBlue"}
    },
    interactionID = "teamSelection",
    reportToServer = true
})


MPGameNetwork Callbacks

MPGameNetwork.onUpdate(dt)

Called every frame while connected to multiplayer

Parameters: - dt (number) - Delta time in seconds

Usage:

local originalOnUpdate = MPGameNetwork.onUpdate
MPGameNetwork.onUpdate = function(dt)
    originalOnUpdate(dt)
    -- Your code here
end


MPGameNetwork.onVehicleReady(gameVehicleID)

Called when a vehicle is ready and extensions are loaded

Parameters: - gameVehicleID (number) - The game's internal vehicle ID

Usage:

local originalOnVehicleReady = MPGameNetwork.onVehicleReady
MPGameNetwork.onVehicleReady = function(gameVehicleID)
    originalOnVehicleReady(gameVehicleID)
    -- Your code here
end


Encoding Functions

MPHelpers.b64encode(string)

Encodes a string to Base64 (RFC 2045)

Parameters: - string (string) - String to encode

Returns: - (string) - Base64-encoded string

Usage:

local encoded = extensions.MPHelpers.b64encode("Hello World")

-- Encoding JSON
local data = {name = "Player", score = 100}
local encoded = extensions.MPHelpers.b64encode(jsonEncode(data))
TriggerServerEvent("sendData", encoded)


MPHelpers.b64decode(string)

Decodes a Base64 string (RFC 2045)

Parameters: - string (string) - Base64-encoded string

Returns: - (string) - Decoded string

Usage:

local decoded = extensions.MPHelpers.b64decode("SGVsbG8gV29ybGQ=")

-- Decoding JSON
AddEventHandler("receiveData", function(data)
    local decoded = extensions.MPHelpers.b64decode(data)
    local jsonData = jsonDecode(decoded)
end)


Color Functions

MPHelpers.hex2rgb(hex)

Converts a hexadecimal color code to RGB values

Parameters: - hex (string) - Hex color code (e.g., "#FF5733" or "#F57")

Returns: - (table) - RGB values {r, g, b} in 0-1 range - (table) - {0, 0, 0} if invalid

Note: Supports both 3-character and 6-character hex codes.

Usage:

local rgb = extensions.MPHelpers.hex2rgb("#FF5733")
print(rgb[1], rgb[2], rgb[3]) -- 1.0, 0.341, 0.2

-- Short format
local rgb = extensions.MPHelpers.hex2rgb("#F57")


String Functions

MPHelpers.splitStringToTable(string, delimiter, convert_into)

Splits a string by delimiter and optionally converts values

Parameters: - string (string) - String to split - delimiter (string) - Delimiter to split by - convert_into (number) - Conversion type (optional): - nil or 0 - Keep as strings (default) - 1 - Convert to numbers - 2 - Convert to booleans

Returns: - (table) - Array of split values

Usage:

-- Strings
local parts = extensions.MPHelpers.splitStringToTable("Hello,World", ",")
-- {"Hello", "World"}

-- Numbers
local nums = extensions.MPHelpers.splitStringToTable("10,20,30", ",", 1)
-- {10, 20, 30}

-- Parse coordinates
local coords = extensions.MPHelpers.splitStringToTable("100,200,50", ",", 1)
local x, y, z = coords[1], coords[2], coords[3]


Table Functions

MPHelpers.tableDiff(old, new)

Compares two tables and returns their differences

Parameters: - old (table) - First table to compare - new (table) - Second table to compare

Returns: - (table) diff - All keys that differ - (table) o - Values from old that differ - (table) n - Values from new that differ

Usage:

local oldConfig = {speed = 100, damage = 50, armor = 30}
local newConfig = {speed = 120, damage = 50, armor = 40}

local diff, oldVals, newVals = extensions.MPHelpers.tableDiff(oldConfig, newConfig)
-- diff = {speed = 120, armor = 40}

for key, value in pairs(diff) do
    print(key .. " changed from " .. oldVals[key] .. " to " .. newVals[key])
end


Debug Functions

MPHelpers.simpletraces(level)

Returns formatted caller information as string

Parameters: - level (number) - Stack level (optional, default: 2)

Returns: - (string) - Formatted string: "source:line, namewhat name" - (string) - "unknown" if info not available

Usage:

local function myFunction()
    local caller = extensions.MPHelpers.simpletraces()
    print("Called from: " .. caller)
end


MPHelpers.simpletrace(level)

Logs caller information to console

Parameters: - level (number) - Stack level (optional, default: 1)

Note: Logs the calling location to the console.

Usage:

local function myFunction()
    extensions.MPHelpers.simpletrace()
    -- Logs: "Code was called from: lua/ge/extensions/mymod.lua:42"
end


Last updated: 01.01.2026