Player
Overview
Player is an engine namespace, not a resident/ module — there’s no .lua source file behind it, no import() call needed, and it’s always globally available to every script. Its functions cover player/character identity (which uGuid is “the player,” in both single-player and co-op), co-op player join/leave management, the cash and fuel economy (partly re-exposed at a higher level by the resident/ module MrxPmc — see cross-links below), camera and viewport control, mission boundaries, costumes and vehicle disguise, the satellite-scan minigame, PDA map mode, and low-level input/control locking.
This is also the namespace behind the discovery that motivated this whole “Engine Namespaces” section — see Notes for modders and the section index for the full story.
Provenance
This page’s function list comes from a live pairs(Player) enumeration in-game, not from reading engine source — the engine implementation isn’t available to us. That means the list of 107 function names below is complete and authoritative: every one of them really exists on the namespace. It does not mean every entry is documented with confirmed arguments. Where a function is actually called somewhere in the ~230 decompiled .lua scripts, we can show a real argument pattern. Where it isn’t called anywhere in that corpus, we only know the name — arguments, return values, and behavior for those are unconfirmed and not guessed beyond patterns established by confirmed sibling functions on this namespace.
Functions
Player & Character Identity
| Function | Signature (best-known) | Notes |
|---|---|---|
GetLocalPlayer | uPlayerGuid = Player.GetLocalPlayer() | Extremely common in real scripts, no arguments, returns the local player-slot guid (distinct from the character guid). |
GetLocalCharacter | uGuid = Player.GetLocalCharacter() | Confirmed working by live testing — see Snippets. Widely used in real scripts with no arguments. |
GetPrimaryPlayer | uPlayerGuid = Player.GetPrimaryPlayer() | Very common in real scripts, no arguments, e.g. Player.SetAimMode(Player.GetPrimaryPlayer(), true). |
GetSecondaryPlayer | uPlayerGuid = Player.GetSecondaryPlayer() | Common in co-op-aware scripts, no arguments; call sites routinely guard it with if Player.GetSecondaryPlayer() then since it can be absent outside co-op. |
GetPrimaryCharacter | uGuid = Player.GetPrimaryCharacter() | Already documented and used throughout this wiki — see Snippets: Toggle infinite ammo, Sample Scripts: OnKey, and the function-override deep dive. No arguments. |
GetSecondaryCharacter | uGuid = Player.GetSecondaryCharacter() | Already documented — see Snippets: Toggle infinite ammo (“if you’re in co-op and want to affect the second player too”). No arguments. |
GetAnyCharacter | uGuid = Player.GetAnyCharacter() | Extremely common in mission/objective scripts as a target-filter value (e.g. passed as vTgtInclude), always called with no arguments. |
GetCharacter | uGuid = Player.GetCharacter(uPlayerGuid) | Used with a player-slot guid in real scripts, e.g. Player.GetCharacter(tData.uPlayerGuid) — the character-guid counterpart to a raw player guid. |
GetPlayer | uPlayerGuid = Player.GetPlayer(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
GetPlayerId | Player.GetPlayerId(uPlayerGuid) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
GetLocalId | n = Player.GetLocalId(idx) | Live-confirmed via WebSocket lua-bridge probe (2026-07-22) — takes an index argument (idx) and returns a number, correcting the earlier no-argument guess. Shares this same idx argument with IsJoined below, GetProfileCharacter/GetProfileUpgrade (Costumes & Disguise below), and GetViewport (Camera & Viewport below); together with GetMaximumLocalPlayers/GetCurrentLocalPlayers just below, this reads as a co-op/split-screen local-player-slot family (idx selects one of up to GetMaximumLocalPlayers() local-player slots; 0-based vs. 1-based indexing not confirmed) — a reasonable synthesis from the shared argument shape, not independently confirmed function-by-function. A wrong/out-of-range idx is expected to return nil silently rather than error, per this engine’s general no-error-on-bad-args behavior — worth testing both 0 and 1 as the first slot before assuming either. |
GetLocalPlayerId | Player.GetLocalPlayerId() | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
GetName | s = Player.GetName(uPlayerGuid) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
GetAllPlayers | t = Player.GetAllPlayers() | Used with no arguments in real scripts, e.g. tPlayers = Player.GetAllPlayers(); returns a table. |
GetAllCharacters | t = Player.GetAllCharacters() | Used with no arguments in real scripts as a target-filter value, e.g. Player.GetAllCharacters() passed directly into a proximity/collect call. |
GetCurrentPlayers | n = Player.GetCurrentPlayers() | Used with no arguments in real scripts, treated as a count/truthy multiplayer flag, e.g. local isMultiplayer = Player.GetCurrentPlayers(). |
GetCurrentLocalPlayers | n = Player.GetCurrentLocalPlayers() | Live-confirmed via WebSocket lua-bridge probe (2026-07-22) — no arguments, returns a number; live-tested example returned 1 (one local player joined at test time), confirming the presumed local-only counterpart to GetCurrentPlayers. |
GetMaximumPlayers | Player.GetMaximumPlayers() | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
GetMaximumLocalPlayers | n = Player.GetMaximumLocalPlayers() | Live-confirmed via WebSocket lua-bridge probe (2026-07-22) — no arguments, returns a number; live-tested example returned 2 (this build supports up to 2 local/split-screen players), tested alongside GetCurrentLocalPlayers returning 1. |
IsJoined | b = Player.IsJoined(idx) | Live-confirmed via WebSocket lua-bridge probe (2026-07-22) — confirmed boolean return (matching the prior b = guess), but the argument is the same local-player-slot idx as GetLocalId above, not a uPlayerGuid as previously guessed. Presumably answers “is a local player joined in slot idx.” |
IsLocal | b = Player.IsLocal(uPlayerGuid) | Used with a player guid in real scripts, e.g. Net.IsServer() and not Player.IsLocal(tData[1]). |
IsRemote | b = Player.IsRemote(uPlayerGuid) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. Presumed inverse of IsLocal. |
IsCoopMultiplayer | b = Player.IsCoopMultiplayer() | Used with no arguments in real scripts, e.g. if Player.IsCoopMultiplayer() then. |
CreatePlayer | Player.CreatePlayer(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
DestroyPlayer | Player.DestroyPlayer(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
AttachToCharacter | Player.AttachToCharacter(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
DetachFromCharacter | Player.DetachFromCharacter(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
BindToLocal | Player.BindToLocal(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
BindToRemote | Player.BindToRemote(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
Unbind | Player.Unbind(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
SetPlayerJoinedCallback | Player.SetPlayerJoinedCallback(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. Presumably follows the same callback-registration shape as Event.Create, but that is inference, not evidence. |
SetPlayerLeftCallback | Player.SetPlayerLeftCallback(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
RemovePlayerJoinedCallback | Player.RemovePlayerJoinedCallback(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
RemovePlayerLeftCallback | Player.RemovePlayerLeftCallback(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
SetWaitForInGame | Player.SetWaitForInGame(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
Cash & Fuel
These are largely covered elsewhere in this wiki already — see the cross-links instead of re-deriving.
| Function | Signature (best-known) | Notes |
|---|---|---|
GetCash | n = Player.GetCash() | Confirmed working by live testing — see Your First Mod and Snippets: Print debug info, both of which call it directly with no arguments. |
SetCash | Player.SetCash(nAmount) | Confirmed working by live testing, but with a documented nuance — see Snippets: Read / give cash: it genuinely changes the balance but skips the HUD refresh that MrxPmc.AddCashQty triggers, so the on-screen number won’t visibly update. Prefer MrxPmc.AddCashQty/GetCashQty (a resident/ wrapper — see MrxPmc and MrxCheatBootstrap) unless you specifically want the silent low-level write. |
AddCash | Player.AddCash(nAmount) | Same nuance as SetCash above — see Snippets: Read / give cash. |
GetFuel | n = Player.GetFuel() | Wrapped by MrxPmc.GetFuelQty() — see MrxPmc (“a thin wrapper over Player.GetFuel(),” confirmed working by live testing) and Snippets: Read / give fuel. |
SetFuel | Player.SetFuel(nAmount) | Not directly exercised in the wiki’s live tests, but is the presumed low-level setter behind MrxPmc.AddFuelQty/SetFuelCapacity — see Snippets: Read / give fuel for the capacity-before-quantity ordering that matters when raising fuel. |
AddFuel | Player.AddFuel(nAmount) | No direct call sites found in the decompiled corpus; presumed counterpart to AddCash by naming symmetry. Prefer MrxPmc.AddFuelQty (see Snippets) for the same HUD-refresh reason noted under SetCash above — unconfirmed whether the same nuance applies here, but treat it as likely. |
GetFuelCapacity | n = Player.GetFuelCapacity() | No direct call sites found in the decompiled corpus; presumed backing store for MrxPmc.GetFuelCapacity() — see Snippets: Read / give fuel. |
SetFuelCapacity | Player.SetFuelCapacity(nCapacity [, bFlag]) | No direct call sites found in the decompiled corpus; presumed backing store for MrxPmc.SetFuelCapacity(nCapacity, bFlag), which real snippets call as MrxPmc.SetFuelCapacity(9999, true) — see Snippets: Read / give fuel. Argument shape here is inferred from that wrapper, not independently confirmed. |
Camera & Viewport
| Function | Signature (best-known) | Notes |
|---|---|---|
GetCamera | uCameraGuid = Player.GetCamera(uPlayerGuid) | Very common in real scripts, always a player guid, e.g. Player.GetCamera(uPlayer); the returned guid is then passed into Camera.* calls (e.g. Camera.GetYaw(Player.GetCamera(self:GetOwner()))). |
GetCameraXZHeading | n = Player.GetCameraXZHeading(uPlayerGuid) | Used with a player guid in real scripts, e.g. Player.GetCameraXZHeading(oWidget:GetOwner()), returns a heading/rotation value used to rotate HUD compass elements. |
TeleportCamera | Player.TeleportCamera(uPlayerGuid) | Used with a plain player guid in real scripts, e.g. Player.TeleportCamera(uSecondaryPlayer), snapping the camera to the player’s current position (used around co-op transitions in mrxutil.lua). |
GetViewport | nW, nH, nX, nY, ? = Player.GetViewport(idx) | Live-confirmed via WebSocket lua-bridge probe (2026-07-22) — returns 5 values: width, height, x, y, and a 5th value of unconfirmed meaning. Live-tested example returned 2560, 1440, 0, 0, 0 (a 2560×1440 viewport at the origin). The argument is an index (idx), the same local-player-slot index as GetLocalId/IsJoined (Player & Character Identity above) and GetProfileCharacter/GetProfileUpgrade (Costumes & Disguise below) — corrects the earlier uPlayerGuid guess. |
GetViewportId | uViewportId = Player.GetViewportId(uPlayerGuid) | Used with a player guid in real scripts, e.g. Player.GetViewportId(uPlayerGuid), used to bind GUI widgets to the correct split-screen viewport. |
Boundaries
A mission/region boundary system: a player can have one or more boundary zones registered, with a callback fired on crossing and an optional “death outside boundary” mode.
| Function | Signature (best-known) | Notes |
|---|---|---|
AddBoundary | Player.AddBoundary(uPlayerGuid, uBoundaryGuid) | Confirmed with a player guid and a boundary-object guid in real scripts, e.g. Player.AddBoundary(uPlayerGuid, uBoundary) (wifvzboundary.lua). |
RemoveBoundary | Player.RemoveBoundary(uPlayerGuid, uBoundaryGuid) | Confirmed with the same two-guid shape as AddBoundary, e.g. Player.RemoveBoundary(uPlayerGuid, uBoundary). |
RemoveAllBoundary | Player.RemoveAllBoundary(uPlayerGuid) | Confirmed with a plain player guid in real scripts, e.g. Player.RemoveAllBoundary(uPlayerGuid). |
GetAllBoundaryGuid | t = Player.GetAllBoundaryGuid(uPlayerGuid) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
SetBoundaryCallback | Player.SetBoundaryCallback(uPlayerGuid, fCallback) | Confirmed in real scripts, e.g. Player.SetBoundaryCallback(uPlayerGuid, BoundaryCallback). |
SetOutBoundary | Player.SetOutBoundary(uPlayerGuid, bState) | Confirmed with a player guid and boolean in real scripts, e.g. Player.SetOutBoundary(secondaryPlayer, true) / Player.SetOutBoundary(uPlayerGuid, false). |
GetOutBoundary | Player.GetOutBoundary(uPlayerGuid) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. Presumed getter counterpart to SetOutBoundary. |
IsPositionOutBoundary | b = Player.IsPositionOutBoundary(uPlayerGuid, nX, nY, nZ) | Confirmed with a player guid and three coordinates in real scripts, e.g. Player.IsPositionOutBoundary(Player.GetLocalPlayer(), nX * 0.5 - nXOffset, 0, nY * 0.5 - nZOffset) (PDA map code). |
IsBoundaryDeath | b = Player.IsBoundaryDeath(uCharacterGuid) | Confirmed with a character guid in real scripts, e.g. Player.IsBoundaryDeath(uChar), used to decide whether being outside a boundary should be lethal. |
Costumes & Disguise
| Function | Signature (best-known) | Notes |
|---|---|---|
GetAvailableCostumes | n = Player.GetAvailableCostumes() | Confirmed with no arguments in real scripts, e.g. nAvailableOutfits = Player.GetAvailableCostumes() (wifpmcinterior.lua). Distinct from the similarly-named WifPmcInterior.GetAvailableCostumes() covered in the function-override deep dive — that one is a resident/-module function with its own small _nAvailableCostumes or 1 fallback logic; this is the underlying engine-level count it likely reads from or writes through, but the exact relationship between the two is not confirmed. |
SetAvailableCostumes | Player.SetAvailableCostumes(n) | Confirmed in real scripts, e.g. Player.SetAvailableCostumes(WifPmcInterior.GetAvailableCostumes()) — note this call site reads from the resident/-module getter and writes into this engine setter, suggesting they’re kept in sync rather than being the same storage. |
GetProfileCostume | n = Player.GetProfileCostume() | Confirmed with no arguments in real scripts, e.g. local nCurrentOutfit = Player.GetProfileCostume() and tCharacterConfig.iCostume = Player.GetProfileCostume(). |
SetProfileCostume | Player.SetProfileCostume(iIndex) | Confirmed in real scripts, e.g. Player.SetProfileCostume(iIndex - 1) (note the zero-based adjustment at the call site). |
SetOutfit | Player.SetOutfit(uGuid, sModelName) | Confirmed with a character guid and a model-name string in real scripts, e.g. Player.SetOutfit(uGuid, sModelName) (wifpmcinterior.lua, wardrobe code — same area covered by the function-override deep dive). |
GetProfileCharacter | n = Player.GetProfileCharacter(idx) | Live-confirmed via WebSocket lua-bridge probe (2026-07-22) — takes the same local-player-slot idx as GetLocalId/IsJoined (Player & Character Identity above) and returns a number, correcting the earlier no-argument guess. Presumably the profile’s selected character index for local-player slot idx, distinct from the no-arg GetProfileCostume() above. |
SetProfileCharacter | Player.SetProfileCharacter(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
GetProfileUpgrade | n = Player.GetProfileUpgrade(idx) | Live-confirmed via WebSocket lua-bridge probe (2026-07-22) — takes the same local-player-slot idx as GetLocalId/IsJoined/GetProfileCharacter above and returns a number, correcting the earlier bare (...) placeholder signature. |
SetProfileUpgrade | Player.SetProfileUpgrade(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
GetVehicleDisguise | b = Player.GetVehicleDisguise() | Confirmed with no arguments in real scripts, e.g. if not Player.GetVehicleDisguise() then and repeated tData.oIcon:SetVisible(Player.GetVehicleDisguise()) HUD calls — treated as a boolean state flag. |
SetVehicleDisguise | Player.SetVehicleDisguise(bEnable) | Confirmed with a single boolean in real scripts, e.g. Player.SetVehicleDisguise(bEnable) (mrxmissionflow.lua). |
GetVehicleDisguiseState | b = Player.GetVehicleDisguiseState({Player = uGuid}) | Confirmed in real scripts called with a table argument containing a Player field, e.g. Player.GetVehicleDisguiseState({Player = uRider}) and Player.GetVehicleDisguiseState({...}) in wiftutorialgatehonk.lua — unusual among Player.* functions for taking a table instead of positional args; this shape is real, not inferred. |
VehicleDisguise | Player.VehicleDisguise({Player = uGuid, Callback = fCallback}) or Player.VehicleDisguise({Player = uGuid, Remove = true}) | Confirmed in real scripts with the same table-argument convention as GetVehicleDisguiseState, e.g. Player.VehicleDisguise({Player = uRider, Callback = DisguiseChangedCallback}) to start a disguise change and Player.VehicleDisguise({Player = uRider, Remove = true}) to remove it. |
Satellite Scan
A radar/scan minigame feature family, driven from mrxsupportdesignatorsatellite.lua, mrxguisatellite.lua, and mrxutil.lua. See also the PDA Map Mode table below — the two systems are used together (satellite scanning happens while the PDA is in map mode).
| Function | Signature (best-known) | Notes |
|---|---|---|
SetSatelliteScanMode | Player.SetSatelliteScanMode(uPlayerGuid, bEnable, nX, nY, nZ) | Confirmed in real scripts with exactly this shape, e.g. Player.SetSatelliteScanMode(uPlayer, false, 0, 0, 0) (mrxutil.lua) — only the disable form (bEnable = false, zeroed coordinates) is attested; the enable form’s coordinate meaning is not confirmed. |
SetupSatelliteScan | Player.SetupSatelliteScan(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
AddSatelliteScanTarget | Player.AddSatelliteScanTarget(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
SetSatelliteScanCallbacks | Player.SetSatelliteScanCallbacks(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
SetSatelliteScanPaused | Player.SetSatelliteScanPaused(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
PDA Map Mode
| Function | Signature (best-known) | Notes |
|---|---|---|
SetPDAMapMode | Player.SetPDAMapMode(uPlayerGuid, bEnable, nX, nY, nZ, nRadius, nMinZoomDelta, nMaxZoomDelta, bUseMinigame) | Confirmed with a long argument list in real scripts, e.g. Player.SetPDAMapMode(self.uOwner, true, nX, nY + self.nStartZoom, nZ, self.nRadius, self.nStartZoom - self.nMinZoom, self.nMaxZoom - self.nStartZoom, MrxGuiSatellite.UseMinigame()); also called with just (uGuid, false) to disable. |
SetPDAMapModeCallback | Player.SetPDAMapModeCallback(uPlayerGuid, bFlag, fCallback [, tArgs]) | Confirmed in real scripts, e.g. Player.SetPDAMapModeCallback(self.uOwner, true, SatelliteTargettingEnd, {self}) and Player.SetPDAMapModeCallback(uPlayerGuid, false, ApplySatelliteUpdateEvent). |
SetPDAMapModeCancelCallback | Player.SetPDAMapModeCancelCallback(uPlayerGuid, fCallback) | Confirmed in real scripts, e.g. Player.SetPDAMapModeCancelCallback(self.uOwner, SatelliteTargettingCancel, {self}). |
RequestPDAMapModeCancel | Player.RequestPDAMapModeCancel(uPlayerGuid) | Confirmed with a plain player guid in real scripts, e.g. Player.RequestPDAMapModeCancel(uPlayer). |
RequestPDAMapModeExit | Player.RequestPDAMapModeExit(uPlayerGuid, fCallback [, tArgs]) | Confirmed in real scripts, e.g. Player.RequestPDAMapModeExit(oMinigame:GetOwner(), _RemoveSatelliteTargettingMode, {oMinigame}). |
Input & Control
| Function | Signature (best-known) | Notes |
|---|---|---|
SetInputEnabled | Player.SetInputEnabled(uPlayerGuid, bEnable [, bFlag]) | Confirmed in real scripts both with a plain 2-argument form (Player.SetInputEnabled(uPlayer, false)) and a 3-argument form with a trailing boolean (Player.SetInputEnabled(Object.IsPlayerControlled(uActioner), false, true)) — the meaning of the 3rd argument is unconfirmed. |
SetAimMode | Player.SetAimMode(uPlayerGuid, bEnable) | Confirmed with a player guid and boolean in real scripts, very common, e.g. Player.SetAimMode(Player.GetPrimaryPlayer(), true). |
SetGrappleEnabled | Player.SetGrappleEnabled(uGuid, bEnable) | Confirmed in real scripts, e.g. Player.SetGrappleEnabled(uGuid, bEnable) (mrxmissionflow.lua). |
SetScopeEnabled | Player.SetScopeEnabled(uPlayerGuid, bEnable) | Confirmed in real scripts, e.g. Player.SetScopeEnabled(Player.GetLocalPlayer(), false). |
SetHealthClamp | Player.SetHealthClamp(uPlayerGuid, bEnable) | Confirmed in real scripts, e.g. Player.SetHealthClamp(uPlayer, true) (paired with SetSurvivalMode in hero.lua). |
SetVehicleControlsLock | Player.SetVehicleControlsLock(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
SetSeatMovementLocks | Player.SetSeatMovementLocks(uPlayerGuid, bEnable) | Confirmed with a player guid and boolean in real scripts, e.g. Player.SetSeatMovementLocks(uPlayerGuid, true) / (uPlayerGuid, false). |
GetControlBindingType | s = Player.GetControlBindingType(uPlayerGuid) | Confirmed with a player guid in real scripts, e.g. local sControlType = Player.GetControlBindingType(uPlayerGuid) (pause-screen control-scheme display). |
SetInPmc | Player.SetInPmc(uPlayerGuid, bEnable) | Confirmed with a player guid and boolean in real scripts, e.g. Player.SetInPmc(uPlayer, true) / (uPlayer, false) (wifpmcinterior.lua — entering/leaving the PMC hub). |
SetSurvivalMode | Player.SetSurvivalMode(uPlayerGuid, bEnable) | Confirmed with a player guid and boolean in real scripts, e.g. Player.SetSurvivalMode(uPlayer, true) (paired with SetHealthClamp in hero.lua). |
SetSurvivalModeCallback | Player.SetSurvivalModeCallback(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
SetSwimmingSearchRadius | Player.SetSwimmingSearchRadius(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
InCinematicMode | b = Player.InCinematicMode(uPlayerGuid) | Confirmed with a player guid in real scripts, e.g. if not Object.IsAlive(uChar) or Player.InCinematicMode(uPlayerGuid) then. |
SetCinematicMode | Player.SetCinematicMode(uPlayerGuid, bEnable [, ...extra args]) | Confirmed in real scripts with a 2-argument form (Player.SetCinematicMode(uPlayer, false)) and richer forms, e.g. Player.SetCinematicMode(uPlayer, true, true) and Player.SetCinematicMode(uPlayer, not bOn, "Bone_Attach_Root", 0, true) — the extra trailing arguments vary by call site and their exact meaning is unconfirmed beyond “camera/cinematic attach parameters.” |
Vehicle Seat & Control
| Function | Signature (best-known) | Notes |
|---|---|---|
GetControlledObject | uGuid = Player.GetControlledObject(uPlayerGuid) | Extremely common in real scripts, always a player guid, e.g. Player.GetControlledObject(uPlayer); returns the character or vehicle the player currently controls. |
GetSeat | Player.GetSeat(uPlayerGuid) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. Compare with Vehicle.GetSeatFromRider/Vehicle.GetFromRider on the Vehicle page, which cover similar ground from the vehicle side with real call sites. |
ClaimSeat | Player.ClaimSeat(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
UnClaimSeat | Player.UnClaimSeat(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
Misc
| Function | Signature (best-known) | Notes |
|---|---|---|
GetTargetUnderReticle | nX, nY, nZ, uGuid = Player.GetTargetUnderReticle(uPlayerGuid) | See Notes for modders below — this is the flagship reason this whole “Engine Namespaces” section exists. Confirmed with real call sites (contrary to the section index’s original framing that it had zero callers — see below): used in mrxguisatellite.lua and mrxguisniperscope.lua as local nX, nY, nZ, uGuid = Player.GetTargetUnderReticle(oWidget:GetOwner()), returning world coordinates of whatever’s under the reticle plus (as a 4th return value) the target’s uGuid, which can be nil if nothing is targeted. |
GetPlayerStart | v = Player.GetPlayerStart() | Confirmed with no arguments in real scripts, e.g. local vSpawnLocation = Player.GetPlayerStart(), and compared directly to a string constant in xQ!L.lua (Player.GetPlayerStart() ~= "PlayerLocation_Start") — suggesting the return value can be a named-location string as well as a position, unconfirmed which form is canonical. |
SetPlayerStart | Player.SetPlayerStart(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. Presumed setter counterpart to GetPlayerStart. |
GetRetryPosition | Player.GetRetryPosition(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
CheckSpawnPos | Player.CheckSpawnPos(...) | No call sites found in the decompiled corpus — exists (confirmed via live pairs() enumeration) but usage/arguments unconfirmed. |
ClearPlayerDB | Player.ClearPlayerDB() | Confirmed with no arguments in real scripts, e.g. Player.ClearPlayerDB() (mrxplayer.lua). |
ClearGPS | Player.ClearGPS(uPlayerGuid) | Confirmed with a player guid in real scripts, e.g. Player.ClearGPS(Player.GetLocalPlayer()). |
GetAllTargetMarkerPos | t = Player.GetAllTargetMarkerPos() | Confirmed with no arguments in real scripts, e.g. local tAllMarkerList = Player.GetAllTargetMarkerPos() (mrxguipda.lua), returns a table. |
Notes for modders
GetTargetUnderReticleis why this “Engine Namespaces” section exists at all — see the section index for the origin story: a static grep for “what is the player aiming at” across every plausible function name in the entire ~230-file decompiled corpus came back completely empty, and livepairs(Player)enumeration turned this function up on the first try. While writing this page, further grepping actually did turn up real call sites for it (inmrxguisatellite.luaandmrxguisniperscope.lua, both underoWidget:GetOwner()/oMinigame:GetOwner()argument forms) — so the original “zero call sites anywhere” claim doesn’t hold in its strongest form, but the broader point stands: nobody found it by guessing plausible names, only by enumerating the namespace live. The confirmed shape isnX, nY, nZ, uGuid = Player.GetTargetUnderReticle(uPlayerGuid).- Proposed live test, following the pattern of other simple no-arg-style
Player.*getters (GetPrimaryCharacter(),GetLocalCharacter()): first tryLoader.Printf(tostring(Player.GetTargetUnderReticle()))from the console with no arguments at all. Real call sites always pass a player-guid-like first argument (anoWidget:GetOwner()result), so if the no-arg form errors, fall back toLoader.Printf(tostring(Player.GetTargetUnderReticle(Player.GetLocalPlayer()))). Aim the reticle at something identifiable first (a vehicle, an NPC) and confirm the 4th return value is a realuGuidyou can feed intoObject.GetHealth/Object.GetLocalizedNameto verify it’s actually the thing you were looking at. - Cash and fuel: use
MrxPmc.AddCashQty/MrxPmc.AddFuelQty(see Snippets,MrxPmc,MrxCheatBootstrap) rather than the rawPlayer.SetCash/Player.AddCash/Player.SetFuel/Player.AddFuelsetters documented above, unless you specifically want a change that skips the HUD refresh — that HUD-skip nuance is already confirmed by live testing and documented on the Snippets page; this page doesn’t re-derive it. GetVehicleDisguiseStateandVehicleDisguiseare the only two functions on this namespace confirmed to take a table argument ({Player = uGuid, ...}) instead of positional arguments — don’t assume everyPlayer.*function follows the plain-positional convention seen everywhere else on this page.- Functions marked “no call sites found” are real (confirmed via the live
pairs(Player)dump) but their argument shape is a guess based on naming convention and sibling functions only — don’t build mods around them without testing in-game first, especiallyGetSeat/ClaimSeat/UnClaimSeat, which have zero attested usage anywhere in the corpus despite sounding straightforward.