redengineapi

Full reverse-engineering notes on a leaked source code with redengine API — 9,025 lines, 385,220 bytes, 272 wrapped natives, 180 functions, 114 widgets across 13 categories.

9,025Source lines
272Wrapped natives
180Functions
13Categories
114Widgets
80Keycodes
76Weapons
51Config fields
3Threads
10HandleConfig files
4AC pattern resources
7Dynamic-trigger resources

Overview

This page is derived entirely from a leaked source code and contains all decompiled Lua data: the 272 native wrappers, 180 functions, 13 menu categories with all 114 widgets, 80 keycodes, 76 weapons, the complete config schema, the dynamic-trigger and AC tables, plus the full source with a viewer. Every L1234 reference jumps to the source line.

The script is from a leaked source menu: a FiveM client-side cheat menu run as a standalone Lua file through an executor. Primary colour FM.Tertiary = {255, 205, 0, 255}, menu 923x583 px, default config "fm_default".

File layout

LinesContents
1 - 113rE.Bypasses: event/arg filter, override of TriggerServerEventInternal (L91) and the _G thread (L101).
117Six global native stubs that suppress AC behaviour.
120 - 9023Main thread: config API, _natives table, Painter/UI, features, notifications, branding, AC checker, dynamic triggers, DUI.
8990 - 9022Four nested threads inside the main thread: FreeCam, RCCar, Spectate and the boot notifications.
9025End of the chunk.

Threads

#LineNestFunction
1L1top-leveloverride TriggerServerEventInternal
2L101top-level_G loop
3L120top-levelmain thread: everything below

How this document was built

  • Every table is parsed from the source; numbers come from the extractor, not from an estimate.
  • Behaviour descriptions are derived from the code; interpretations are explicitly marked as such.
  • The Findings section lists the bugs present in the code, with line numbers.
  • The source viewer at the bottom contains all 9,025 lines; search also works inside it.

redENGINE executor API

This is the core of the executor integration. The script uses four globals that FiveM or Lua do not provide: _Executor, _Executor_Strings, HandleConfig and banner_dui. It also needs three globals that the executor or the environment already provides (aE, v_str, layout).

All executor-dependent logic sits behind if _Executor ~= "redENGINE" then return end. On other executors the menu still works, but without config files, without dynamic triggers and without the LoadResourceFile wrapper.

1. _Executor

A string holding the executor id. The script compares literally against "redENGINE" and "None"; any other value counts as "not redENGINE".

LineContextGuardEffect
L257FM:SetConfigList_Executor ~= "redENGINE"save FM.List
L262FM:BuildIdentifier_Executor ~= "redENGINE"read/write identifier
L277FM:GetConfigList_Executor ~= "redENGINE"read config list
L326ConfigClass.Load_Executor ~= "redENGINE"notification "custom configs unsupported"
L372ConfigClass.Delete_Executor ~= "redENGINE"silent return
L382ConfigClass.Rename_Executor ~= "redENGINE"silent return
L392ConfigClass.Exists_Executor ~= "redENGINE"silent return
L404ConfigClass.Write_Executor ~= "redENGINE"silent return
L424ConfigClass.Save_Executor ~= "redENGINE"silent return
L9006boot notification_Executor ~= "None"show executor detection
L9012boot dyntrig_Executor == "redENGINE"start dynamic triggers
L9015boot dyntrig fail_Executor == "None"notification "no dynamic triggers"
L674_natives.LoadResourceFile_Executor ~= "redENGINE"return nil
L8975FM:DoStatisticsFM.Identifier == nilreturn without identifier

2. _Executor_Strings

A table _Executor_Strings[executor_id] -> display name. Read-only, never written. Used in three places: the "custom configs" notice (L326), the boot notification (L9007) and the "dynamic triggers" notice (L9015).

Probably filled in by the executor itself so its own name appears in the menu. If the key is missing, the concat .. _Executor_Strings[_Executor] .. becomes a runtime error because nil cannot be concatenated into a string.

3. HandleConfig(action, filename, data?)

The only persistent storage the script uses: a simple file API with three actions. The script checks the return value itself against six known error/success strings (known_returns, L212-219) instead of receiving a status code.

HandleConfig(action, filename, data?)

  action    "save" | "load" | "delete"
  filename  relative path, the script appends ".json" itself
  data      only on "save": the full file contents as a string
  return    on load: the contents as a string, or one of the six known strings
Return stringMeaningScript reaction
That file doesn't exist.file missing (load/delete)FM.List is rebuilt; a config is created
Error opening file.read errorsame handling as "doesn't exist"
Tried to save but data was null.data was nil on saveERROR notification + console line
Error deleting config. It doesn't exist.delete on a missing fileERROR notification
Successfully saved config.save succeededSUCCESS behaviour; script treats anything with "Successfully" as good
Successfully deleted config.delete succeededNOTE: Delete() interprets this as failure (inverted check)

Every call site in the file:

ActionFileLineFunctionThird argument
save__fm_config_list.jsonL258FM:SetConfigListdict.json.encode(FM.List)
load__fm_statistics.identifierL263FM:BuildIdentifier(no third argument)
save__fm_statistics.identifierL267FM:BuildIdentifierBase64("Name=..:Seed=..:Build=..")
load__fm_config_list.jsonL278FM:GetConfigList(no third argument)
load(cfg or current_config) .. ".json"L327ConfigClass.Load(no third argument)
savecurrent_config .. ".json"L429ConfigClass.Savejson.encode(config minus AimbotTarget/SafeMode)
deletename .. ".json"L373ConfigClass.Delete(no third argument)
loadold .. ".json"L383ConfigClass.Renameexistence check
loadname .. ".json"L393ConfigClass.Existsexistence check
savename .. ".json"L409ConfigClass.Writejson.encode(cfg minus AimbotTarget/SafeMode)
The file names are relative; where they end up is entirely up to the executor. FM.List is stored as __fm_config_list.json and every config as <name>.json. The identifier used for statistics lives in __fm_statistics.identifier with no extension.

4. banner_dui

function FM:LoadDui()
    local runtime_txd = CreateRuntimeTxd("fm")
    --local banner_dui = CreateDui("https://asriel.dev/fm/watermark.gif", 300, 300)
    local b_dui = GetDuiHandle(banner_dui)
    CreateRuntimeTextureFromDuiHandle(runtime_txd, "menu_bg", b_dui)
end

The script uses the global banner_dui (L8957) rather than creating it: its own CreateDui call is commented out on L8956. The handle is turned into the runtime texture "menu_bg" inside the transaction "fm", which FM.Config.Player.UseBackgroundImage uses as the menu background. FM:LoadDui() runs as the final step of the boot thread (L9020), so a missing handle breaks the rest of that thread.

5. LoadResourceFile wrapper

LoadResourceFile = {
    hash = 0xEB01A,
    args = "args[1], args[2]",
    func = function(args)
        if _Executor ~= "redENGINE" then return end
        return dict.Citizen.IN(0xEB01A, LoadResourceFile(args[1], args[2]))
    end
}

This is not a FiveM native but a wrapper added by the script. The body calls the global LoadResourceFile and pushes the result through the Citizen trampoline 0xEB01A: Citizen.IN(hash, LoadResourceFile(a, b)). Without _Executor == "redENGINE" the wrapper returns nil, which makes _replaced (L8715) stop on if not contents ... then return end. That is why dynamic triggers are executor-bound.

6. What the executor must provide at minimum

GlobalTypeNeeded forNotes
_ExecutorstringrequiredExecutor id; only the exact value "redENGINE" unlocks the config API and dynamic triggers.
_Executor_Stringstablerequiredid -> display name. Only read as _Executor[_Executor]; a missing key = nil = runtime error in the concat.
HandleConfigfunction(action, filename, data?)required for redENGINEThe only persistent storage the script uses. All 11 call sites are listed in the table above.
banner_duiDUI handlerequiredMenu background texture. FM:LoadDui fails without this global.
aEtable (metatable)requiredUsed as setmetatable(aF, aE) in the notification render loop; without it the notification queue breaks.
v_strstring (format template)required for vehicle brandingv_str:format(...) in the branding thread; without it branding crashes on every vehicle.
layoutintegeroptionalPassed to ScaleformMovieMethodAddParamInt when drawing INSTRUCTIONAL_BUTTONS.
ChXaCanyoptionalOnly used to detect ChocoHax: Pattern = function() return ChXaC ~= nil end.

7. Executor gate per feature

FeatureredENGINEOther executorBasis
Save/load/delete configyesno (notification)L326
Config list (FM.List)yesnoL278
Identifier + statisticsyesnoL262
Dynamic triggersyesno (notification)L9012
LoadResourceFile (reading AC/chat/ESX)yesnoL674
Menu, features, FreeCam, RC car, ESPyesyesL120
AC checker (resource list)yesyesL8663
Executor detection notificationyesonly if _Executor ~= "None"L9006

rE.Bypasses

A local table (L3-70) that combines two mechanisms: intercepting every server event and hiding certain natives. This is NOT part of the redENGINE API; it is the script's own anti-anticheat logic. rE exists only inside this thread and disappears afterwards.

CheckEvent(event)

function rE.Bypasses:CheckEvent(event)
    for k, v in pairs(rE.Bypasses.Events) do
        if event:lower():find(v:lower(), 1, true) then
            return true
        end
    end
    return false
end

Substring match (plain find) of the 27 blocked event names:

#Event
1anticheese
2anticheat
3antilynx
4discordbot
5EasyAdmin:CaptureScreenshot
6screenshot
7cheat
8ncpp
9ViolationDetected
10godModePass
11godModeFail
12adminGodmodeCheck
13illegalWeapon
14ybn_ac
15x_anticheat
16CMG:ban
17Choco:
18alpha-tango-golf
19AC_SYNC:BAN
20foundyou
21AntiBlips
22AntiSpectate
23CarlosLR-AC
24globalAC:trigger
25NWAC
26AC:Sanction
27ChXa

CheckArgs(args)

function rE.Bypasses:CheckArgs(args)
    for k, v in pairs(args) do
        if type(v) == "string" then
            for z, x in pairs(rE.Bypasses.Args) do
                if x[1]:lower():find(v:lower(), 1, true) then
                    return true
                end
            end
        end
    end
    return false
end

scans every string argument of the unpacked msgpack payload against 32 known AC messages:

#SubstringSource
1This player tried to bypass the anticheatChocoHax
2This player tried to stop the anticheatChocoHax
3This player injected a mod menuChocoHax
4🍫 AntiChocoStopChocoHax
5🍫 AntiTeleportChocoHax
6AntiSpectateChocoHax
7AntiBlipsChocoHax
8🍫 SeclyChocoHax
9ChocoHaxChocoHax
10HentaiCoreHentaiCore
11`ForceSocialClubUpdate` RemovalATG
12Ham Mafia Executor DetectedATG
13Table Emptying in ResourceATG
14Malicious Function UsageATG
15Player Health above MAXATG
16Weapon Damage ModifiedATG
17Anti-Resource-RestartATG
18Manipulation DetectedATG
19Native Draw DetectionATG
20Inventory ExploitingATG
21RedENGINE detectionATG
22Injection detectedATG
23BlacklistedWeapon:ATG
24Anti-Resource-StopATG
25Godmode ActivatedATG
26AntiModelChangerATG
27Infinite HealthATG
28Menu DetectionATG
29Cheat EngineATG
30#GetHammedATG
31Native FunctionSanction
32BANSanction

Mechanism 1: TriggerServerEventInternal

function TriggerServerEventInternal(event, payload, length)
    if rE.Bypasses:CheckEvent(event) then return end
    local unpacked_payload = msgpack.unpack(payload)
    if rE.Bypasses:CheckArgs(unpacked_payload) then return end
    return Citizen.InvokeNative(0x7FDD1128, event, payload, length)
end
  • Every server event is intercepted; non-blocking events go through the original native 0x7FDD1128 with the unchanged payload.
  • msgpack.unpack runs for every event, even if the event name already passed - that is the expensive side of this hook.
  • A payload containing an AC string is dropped entirely; the event never reaches the server.

Mechanism 2: the _G thread

CreateThread(function()
    for k, v in ipairs(rE.Bypasses.global) do
        if k == "TriggerClientEventInt" or k == "HandleConfig" then
            table.remove(rE.Bypasses.global, v)
        end
    end
    while true do
        _G = rE.Bypasses.global
        Wait(0)
    end
end)
This thread does nothing in practice: ipairs iterates the array part of the globals table (which is virtually empty) and then compares a numeric index k against strings. table.remove(tbl, v) also removes by position instead of by key. The intent was clearly to pull HandleConfig and TriggerClientEventInt out of _G so other (AC) scripts cannot call them, but HandleConfig stays in _G.

Global native stubs (L117)

function IsExplosionInSphere(...)return false end
function NetworkIsInSpectatorMode()return false end
function ShutdownAndLoadMostRecentSave()return true end
function ActivateRockstarEditor()return end
function ForceSocialClubUpdate()return end
function fuckmedaddy()return end

Six natives are replaced by stubs at global scope. Four of them have a non-trivial return (false for explosion/spectator detection, true for save loading) so AC logic sees "nothing wrong". fuckmedaddy is never used.

Configuration

The config schema is a literal Lua table in FM.Config (L152-198, nested inside local FM on L145) and is copied into FM.DefaultConfig (L321) at startup. current_config is the active config name and starts as "fm_default" (L221); the UI changes it on L5385 (load) and resets it on L5443 (delete).

Full schema (51 fields)

FM.Config.Vehicle

FieldDefaultLine
FM.Config.Vehicle.Boost1.0L154

FM.Config.Player

FieldDefaultLine
FM.Config.Player.CrossHairfalseL157
FM.Config.Player.BlipstrueL158
FM.Config.Player.ESPtrueL159
FM.Config.Player.ESPDistance1000.0L160
FM.Config.Player.BoxfalseL161
FM.Config.Player.BonefalseL162
FM.Config.Player.OneTapfalseL163
FM.Config.Player.AimbotfalseL164
FM.Config.Player.AimbotNeedsLOStrueL165
FM.Config.Player.TriggerBotNeedsLOStrueL166
FM.Config.Player.TPAimbotfalseL167
FM.Config.Player.TPAimbotThreshold40.0L168
FM.Config.Player.TPAimbotDistance2.0L169
FM.Config.Player.RageBotfalseL170
FM.Config.Player.TriggerBotfalseL171
FM.Config.Player.NoDropfalseL172
FM.Config.Player.AimbotFOV90.0L173
FM.Config.Player.AimbotBone1L174
FM.Config.Player.AimbotKey"MOUSE1"L175
FM.Config.Player.AimbotReleaseKey"LEFTALT"L176
FM.Config.Player.TriggerBotDistance500.0L177
FM.Config.Player.TargetInsideVehiclesfalseL178

FM.Config.root

FieldDefaultLine
FM.Config.root.UseBackgroundImagetrueL180
FM.Config.root.UseSoundstrueL181
FM.Config.root.UseAutoWalkfalseL182
FM.Config.root.UseAutoWalkAltfalseL183
FM.Config.root.ShowKey"TAB"L184
FM.Config.root.FreeCamKey"HOME"L185
FM.Config.root.RCCamKey"="L186
FM.Config.root.DisableKey"-"L187
FM.Config.root.ShowTexttrueL188
FM.Config.root.SafeModetrueL189
FM.Config.root.MenuX300L190
FM.Config.root.MenuY300L191
FM.Config.root.NotifXnilL192
FM.Config.root.NotifYnilL193
FM.Config.root.NotifW420L194
FM.Config.root.CurrentSelection1L195
FM.Config.root.SelectedCategory"category_1"L196
FM.Config.root.UsePrintMessagesfalseL197
FM.Config.root.Name"Redengine API"L199
FM.Config.root.Version"1.2.2c"L200
FM.Config.root.EnabledtrueL201
FM.Config.root.ShowingfalseL202
FM.Config.root.Base64{}L203
FM.Config.root.MenuW923L205
FM.Config.root.MenuH583L206
FM.Config.root.DraggingXnilL207
FM.Config.root.DraggingYnilL208
FM.Config.root.CurrentPlayernilL209

ConfigClass

Seven methods on FM.ConfigClass (L324-444). Every mutating method starts with the redENGINE guard; Load shows a notification instead.

MethodLineWhat it doesCalled from
Load(cfg)L325Reads (cfg or current_config)..".json"; on missing: Save(true). Sets SafeMode = true and calls DoSanityCheck().L5386, L5447, L9018
DoSanityCheck()L356Fills in missing keys from FM.DefaultConfig (levels 1 and 2 only).L345
Delete(name)L371HandleConfig("delete", name..".json"); the success check is inverted (see findings).L5445
Rename(old, new)L381Only checks whether old..".json" exists and prints; renames nothing.L5433
Exists(name)L391Returns true if the file loads.never
Write(name, cfg)L403json.encode of a copy without Player.AimbotTarget and SafeMode.L5369, L5412
Save(silent)L423Same as Write but for current_config; also updates FM.List.L332, L349, L3343, L3760+

Files used

FileContentsWritten by
__fm_config_list.jsonjson.encode(FM.List) - counter per config nameFM:SetConfigList (L258)
__fm_statistics.identifierBase64 of Name=<player>:Seed=<5..125>:Build=<version>FM:BuildIdentifier (L267)
<name>.jsonthe full FM.Config as JSONConfigClass.Save / Write

Identifier and statistics

FM.Identifier = FM.Base64:Encode("Name=" .. <player name> .. ":Seed=" .. math.random(5, 5^3) .. ":Build=" .. FM.Version)

FM:DoStatistics()  -- L8974, never called
    url = "https://fm.asriel.dev/statistics.gif?identifier=" .. FM:URIEncode(FM.Identifier)
         .. "&information=" .. FM:URIEncode(json.encode({name, build, server}))
    CreateDui(url, 50, 50) -> Wait(10000) -> DestroyDui

The identifier is only built when the executor is redENGINE (L262). FM:DoStatistics is defined but never called, so in practice only the identifier is stored.

Wrapped natives

The table _natives (L524-1982) holds 272 wrappers in three flavours: native (hash + explicit arglist), native+unpack (hash + an unpack = function() ... that returns the Citizen return values), and lua (its own Lua implementation).

FM:GetFunction(name) - L1996

local _bad, _empty = {}, function() end

local bad = function(...)
    if not _bad[dict.tostring(...)] then
        FM:Print("[NATIVE] Invalid GetFunction call: ^1" .. dict.tostring(...) .. "^7")
        _bad[dict.tostring(...)] = true
    end
    return _empty
end

function FM:GetFunction(name)
    if not _natives[name] then return bad(name) end
    if _natives[name].func then
        return _natives[name].func
    elseif _natives[name].hash then
        _natives[name].func = function(...)
            local args = {...}   local data = _natives[name]   local hash = data.hash
            if data.unpack then
                if data.return_as then return data.return_as(dict.Citizen.IN(hash, data.unpack(args))) end
                return dict.Citizen.IN(hash, data.unpack(args))
            else
                if data.return_as then return data.return_as(dict.Citizen.IN(hash, table.unpack(args))) end
                return dict.Citizen.IN(hash, table.unpack(args))
            end
        end
        return _natives[name].func
    end
end
  • Missing name: instead of nil the stub _empty is returned and [NATIVE] Invalid GetFunction call: <name> is logged once per name. So the call does nothing, instead of falling back to the global native.
  • Lazy wrapper: the hash wrapper is set into _natives[name].func on the first GetFunction and reused afterwards; hash and return_as are read from the table on every call.
  • three return paths: unpack(args) (Citizen marshalling), table.unpack(args) (plain pass-through) and an optional return_as( Citizen.IN(...) ) cast.
  • dict.Citizen.IN is an alias for Citizen.InvokeNative (L141).
  • Citizen accessors per datatype: ResultAsInteger, ResultAsFloat, ResultAsString, ResultAsObject, ResultAsVector and PointerValueInt / PointerValueFloat / PointerValueVector / PointerValueIntInitialized.
  • Hash-to-string conversions happen in the wrapper itself (GetHashKey if the first parameter is a string), e.g. RequestModel.
  • The boundary mechanism (getBoundaryFunc L452, boundaryIdx L446, result in runWithBoundaryEnd L472) is only used by TriggerEvent (L525) to wrap msgpack.pack in a Citizen boundary.

Full table (272 wrappers)

NameHashKindArglist / body signatureCitizen accessorsEchoUsedLine
TriggerEvent-luaeventName, ...-0usedL525
TriggerServerEvent-luaeventName, ...-0usedL533
DestroyCam0x865908C81A2C22E9native-0usedL541
GetCurrentServerEndpoint0xEA11BFBAnative + unpackargs[1], dict.Citizen.ResultAsString()ResultAsString1usedL544
GetCurrentResourceName0xE5E9EBBBnative + unpackargs[1], dict.Citizen.ResultAsString()ResultAsString1usedL552
GetGameTimer0x9CD27B0045628463nativeReturnResultAnyway, ResultAsInteger0usedL560
GetActivePlayers0xCF143FB9nativeReturnResultAnyway, ResultAsObject0usedL564
GetVehicleMaxNumberOfPassengers0xA7C4F2C6E744A550native + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger1usedL569
FindFirstVehicle0x15E55694native + unpackdict.Citizen.PointerValueIntInitialized(args[1]), dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger, PointerValueIntInitialized, PointerValueInt1usedL577
FindNextVehicle0x8839120Dnative + unpackargs[1], dict.Citizen.PointerValueIntInitialized(args[2]), dict.Citizen.ReturnResultAnyway()ReturnResultAnyway, PointerValueIntInitialized, PointerValueInt2usedL585
EndFindVehicle0x9227415Anative + unpackargs[1]-1usedL593
FindFirstPed0xFB012961native + unpackdict.Citizen.PointerValueIntInitialized(args[1]), dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger, PointerValueIntInitialized, PointerValueInt1usedL601
FindNextPed0xAB09B548native + unpackargs[1], dict.Citizen.PointerValueIntInitialized(args[2]), dict.Citizen.ReturnResultAnyway()ReturnResultAnyway, PointerValueIntInitialized, PointerValueInt2usedL609
EndFindPed0x9615C2ADnative + unpackargs[1]-1usedL617
FindFirstObject0xFAA6CB5Dnative + unpackdict.Citizen.PointerValueIntInitialized(args[1]), dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger, PointerValueIntInitialized, PointerValueInt1usedL625
FindNextObject0x4E129DBFnative + unpackargs[1], dict.Citizen.PointerValueIntInitialized(args[2]), dict.Citizen.ReturnResultAnyway()ReturnResultAnyway, PointerValueIntInitialized, PointerValueInt2usedL633
EndFindObject0xDEDA4E50native + unpackargs[1]-1usedL641
GetPlayerServerId0x4D97BCC7native + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger1usedL649
GetNumResources0x863F27BnativeReturnResultAnyway, ResultAsInteger0usedL657
GetResourceByFindIndex0x387246B7native + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsString()ReturnResultAnyway, ResultAsString1usedL661
LoadResourceFile-lua...-0usedL669
RequestCollisionAtCoord0x7503F7948F491A7native + unpackx, y, z, dict.Citizen.ReturnResultAnyway()ReturnResultAnyway0usedL677
GetEntityCoords0x3FEF770D40960D5Anative + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsVector()ReturnResultAnyway, ResultAsVector1unusedL696
RemoveBlip0x86A652570E5F25DDnative + unpackdict.Citizen.PointerValueIntInitialized(args[1])PointerValueIntInitialized, PointerValueInt1usedL704
GetNuiCursorPosition0xBDBA226FnativePointerValueInt0usedL712
DoesEntityExist0x7239B21A38F536BAnative + unpackargs[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL716
IsEntityDead0x5F9532F3B5CC2551native + unpackargs[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL724
IsPedDeadOrDying0x3317DEDB88C95038native + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway2usedL732
IsPedShooting0x34616828CD07F1A1native + unpackargs[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1unusedL740
PlaySoundFrontend0x67C540AA08E4A6F5native + unpackargs[1], args[2], args[3], args[4]-4usedL748
GetPedInVehicleSeat0xBB40DD2270B65366native + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger2usedL756
HasAnimDictLoaded0xD031A9162D01088Cnative + unpackargs[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL764
CreatePed0xD49F9B0955C367DEnative + unpackargs[1], dict.type(args[2]) == "string" and FM:GetFunction("GetHashKey")(args[2]) or args[2], args[3], args[4], args[5], args[6], args[7], args[8], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger8usedL772
CreatePedInsideVehicle0x7DD959874C1FD534native + unpackargs[1], args[2], dict.type(args[3]) == "string" and FM:GetFunction("GetHashKey")(args[3]) or args[3], args[4], args[5], args[6], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger6usedL780
NetworkHasControlOfEntity0x1BF60A500E28887native + unpackargs[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL788
SimulatePlayerInputGait0x477D5D63E63ECA5Dnative-0unusedL796
ResetPedRagdollTimer0x9FA4664CF62E47E8native-0unusedL799
IsVehicleDamaged0xBCDC5017D3CE1E9Enative + unpackargs[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL802
ToggleVehicleMod0x2A1F4F37F95BAD08native-0usedL810
NetworkGetPlayerIndexFromPed0x6C0E2E0125610278native + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger1usedL813
ResetPlayerStamina0xA6F312FCCE9C1DFEnative-0usedL821
GetEntityAlpha0x5A47B3B5E63E94C6native + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger1unusedL824
IsEntityVisible0x47D6F43D77935C75native + unpackint == 1 endReturnResultAnyway, ResultAsInteger0unusedL832
AreAnyVehicleSeatsFree0x2D34FC3BC4ADB780native + unpackint == 1 endReturnResultAnyway, ResultAsInteger0usedL841
IsEntityVisibleToScript0xD796CB5BA8F20E32native + unpackint == 1 endReturnResultAnyway, ResultAsInteger0usedL850
NetworkExplodeVehicle0x301A42153C9AD707native-0usedL859
DisplayRadar0xA0EBB943C300E693native-0usedL862
SetCursorLocation0xFC695459D4D0E219native-0usedL865
SetPlayerWeaponDamageModifier0xCE07B9F7817AADA3native-0usedL868
SetPedArmour0xCEA04D83135264CCnative-0usedL871
SetEntityLocallyInvisible0xE135A9FF3F5D05D8native-0unusedL874
SetVehicleDoorsLockedForPlayer0x517AAF684BB50CD1native-0usedL877
SetVehicleDoorsLockedForAllPlayers0xA2F80B8D040727CCnative-0usedL880
SetVehicleDoorsLocked0xB664292EAECF7FA6native-0usedL883
SetVehicleTyresCanBurst0xEB9DC3C7D8596C46native-0usedL886
SetVehicleMod0x6AF0636DDEDCB6DDnative-0usedL889
SetPedCoordsKeepVehicle0x9AFEFF481A85AB2Enative-0usedL892
SetVehicleEnginePowerMultiplier0x93A3996368C94158native-0usedL895
GetFirstBlipInfoId0x1BEDE233E6CD2A1Fnative + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger1usedL898
GetGroundZFor_3dCoord0xC906A7DAB05C8D2Bnative + unpackargs[1], args[2], args[3], dict.Citizen.PointerValueFloat(), dict.Citizen.ReturnResultAnyway()ReturnResultAnyway3usedL906
GetBlipInfoIdCoord0xFA7C7F0AADF25D09native + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsVector()ReturnResultAnyway, ResultAsVector1usedL914
GetNumVehicleMods0xE38E9162A2500646native + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger2usedL922
SetVehicleModKit0x1F2AA07F00B3217Anative-0usedL930
SetPedToRagdoll0xAE99FB955581844Anative-0usedL933
SetVehicleFixed0x115722B1B9C14C1Cnative-0usedL936
SetPedKeepTask0x971D38760FBC02EFnative-0usedL939
NetworkGetNetworkIdFromEntity0xA11700682F3AD45Cnative + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger1usedL942
RemoveWeaponFromPed0x4899CB088EDF59B8native-0usedL950
SetNetworkIdSyncToPlayer0xA8A024587329F36Anative-0usedL953
SetNetworkIdCanMigrate0x299EEB23175895FCnative-0usedL956
DoesCamExist0xA7A932170592B50Enative-0usedL959
CreateCam0xC3981DCE61D9E13Fnative-0usedL962
GetGameplayCamRot0x837765A25378F0BBnative + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsVector()ReturnResultAnyway, ResultAsVector1usedL965
GetCamRot0x7D304C1C955E3E12native + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsVector()ReturnResultAnyway, ResultAsVector1usedL973
StartShapeTestRay0x377906D8A31E5586native + unpackargs[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger9usedL981
GetShapeTestResult0x3D87450E15D98694native + unpackret[1], ret[2] == 1, ret[3], ret[4], ret[5]ReturnResultAnyway, ResultAsInteger, PointerValueInt0usedL989
AddExplosion0xE3AD2BDBAEE269ACnative-0usedL1002
CreateVehicle0xAF35D0D2583051B0native + unpackdict.type(args[1]) == "string" and FM:GetFunction("GetHashKey")(args[1]) or args[1], args[2], args[3], args[4], args[5], args[6], args[7], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger7usedL1005
SetPedIntoVehicle0xF75B0D629E1C063Dnative-0usedL1013
SetPedAlertness0xDBA71115ED9941A6native-0usedL1016
TaskVehicleDriveWander0x480142959D337D00native-0usedL1019
CreateObject0x509D5878EB39E842native + unpackdict.type(args[1]) == "string" and FM:GetFunction("GetHashKey")(args[1]) or args[1], args[2], args[3], args[4], args[5], args[6], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger6usedL1022
DeletePed0x9614299DCB53E54Bnative + unpackdict.Citizen.PointerValueIntInitialized(args[1])PointerValueIntInitialized, PointerValueInt1usedL1030
DeleteEntity0xAE3CBE5BF394C9C9native + unpackdict.Citizen.PointerValueIntInitialized(args[1])PointerValueIntInitialized, PointerValueInt1usedL1038
DeleteObject0x539E0AE3E6634B9Fnative + unpackdict.Citizen.PointerValueIntInitialized(args[1])PointerValueIntInitialized, PointerValueInt1usedL1046
DeleteVehicle0xEA386986E786A54Fnative + unpackdict.Citizen.PointerValueIntInitialized(args[1])PointerValueIntInitialized, PointerValueInt1usedL1054
NetworkRequestControlOfEntity0xB69317BF5E782347native + unpackargs[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL1062
GetModelDimensions0x3E8D3D5F549087Anative + unpackdict.type(args[1]) == "string" and FM:GetFunction("GetHashKey")(args[1]) or args[1], dict.Citizen.PointerValueVector(), dict.Citizen.PointerValueVector()-1usedL1070
GetEntityModel0x9F47B058362C84B5native + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger1usedL1078
SetEntityAsMissionEntity0xAD738C3085FE7E11native-0usedL1086
SetEntityRotation0x8524A8B0171D5E07native-0usedL1089
SetEntityLocallyVisible0x241E289B5C059EDCnative-0usedL1092
SetEntityAlpha0x44A0870B7E92D7C0native-0usedL1095
SetEntityCollision0x1A9205C1B9EE827Fnative-0usedL1098
SetEntityCoords0x6843DA7060A026Bnative-0usedL1101
GivePlayerRagdollControl0x3C49C870E66F0A28native-0usedL1104
GetHashKey0xD24D37CC275948CCnative + unpackdict.tostring(args[1]), dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger1usedL1107
GetVehiclePedIsIn0x9A9112A0FE9A4713native-0usedL1115
PlayerPedId0xD80958FC74E988A6nativeReturnResultAnyway, ResultAsInteger0usedL1118
GetPlayerPed0x43A66C31C68491C0native-0usedL1122
HasModelLoaded0x98A4EB5D89A0C952native + unpackdict.type(args[1]) == "string" and FM:GetFunction("GetHashKey")(args[1]) or args[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL1125
SetPedCanRagdoll0xB128377056A54E2Anative-0usedL1133
RequestModel0x963D27A58DF860ACnative + unpackdict.type(args[1]) == "string" and FM:GetFunction("GetHashKey")(args[1]) or args[1]-1usedL1136
SetTextFont0x66E0276CC5F6B9DAnative-0usedL1144
SetTextProportional0x38C1F517D7FDCF8native-0usedL1147
HasStreamedTextureDictLoaded0x145F696AAAAD2E4native-0usedL1150
RequestStreamedTextureDict0xDFA2EF8E04127DD5native-0usedL1153
GetActiveScreenResolution0x873C9F3104101DD3nativePointerValueInt0usedL1156
IsDisabledControlJustPressed0x91AEF906BCA88877native + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway2usedL1160
IsDisabledControlJustReleased0x305C8DCD79DA8B0Fnative + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway2usedL1168
IsDisabledControlPressed0xE2587F8CBBD87B1Dnative + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway2usedL1176
IsDisabledControlReleased0xFB6C4072E9A32E92native + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway2usedL1184
IsControlJustPressed0x580417101DDB492Fnative + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway2usedL1192
IsControlJustReleased0x50F940259D3841E6native + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway2usedL1200
IsControlPressed0xF3A21BCD95725A4Anative + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway2usedL1208
IsControlReleased0x648EE3E7F38877DDnative + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway2usedL1216
ClearPedTasks0xE1EF3C1216AFF2CDnative-0usedL1224
ClearPedTasksImmediately0xAAA34F8A7CB32098native-0usedL1227
ClearPedSecondaryTask0x176CECF6F920D707native-0usedL1230
SetEntityProofs0xFAEE099C6F890BB8native-0usedL1233
SetCamActive0x26FB97D0A425F84native-0usedL1236
RenderScriptCams0x7E5B515DB0636FCnative + unpackargs[1], args[2], args[3], args[4], args[5]-5usedL1239
GetEntityForwardVector0xA794A5A57F8DF91native + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsVector()ReturnResultAnyway, ResultAsVector1usedL1247
RequestAnimDict0xD3BD40951412FEF6native-0usedL1255
SetTextScale0x7C837F9A01C34C9native-0usedL1258
SetTextColour0xBE6B23FFA53FB442native-0usedL1261
SetTextDropShadow0x465C84BC39F1C351native-0usedL1264
SetTextEdge0x441603240D202FA6native-0usedL1267
SetTextOutline0x2513DFB0FB8400FEnative-0usedL1270
ClearPedBloodDamage0x8FE22675A5A45817native-0usedL1273
SetEntityHealth0x6B76DC1F3AE6E6A3native-0usedL1276
NetworkResurrectLocalPlayer0xEA23C49EAA83ACFBnative-0usedL1279
SetTextCentre0xC02F4DBFB51D988Bnative-0usedL1282
BeginTextCommandDisplayText0x25FBB336DF1804CBnative-0usedL1285
BeginTextCommandWidth0x54CE8AC98E120CABnative-0usedL1288
EndTextCommandGetWidth0x85F061DA64ED2F67native + unpackargs[1], dict.Citizen.ResultAsFloat()ResultAsFloat1usedL1291
GetTextScaleHeight0xDB88A37483346780native + unpackargs[1], args[2], dict.Citizen.ResultAsFloat()ResultAsFloat2unusedL1299
DrawSprite0xE7FFAE5EBF23D890native-0usedL1307
FreezeEntityPosition0x428CA6DBD1094446native-0usedL1310
GetPedBoneIndex0x3F428D08BE5AAE31native + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger2usedL1313
GetPedBoneCoords0x17C07FC640E86B4Enative + unpackargs[1], args[2], args[3], args[4], args[5], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsVector()ReturnResultAnyway, ResultAsVector5usedL1321
SetPedShootsAtCoord0x96A05E4FB321B1BAnative-0usedL1329
GetEntityBoneIndexByName0xFB71170B7E76ACBAnative + unpackargs[1], dict.tostring(args[2]), dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger2unusedL1332
GetOffsetFromEntityInWorldCoords0x1899F328B0E12848native + unpackargs[1], x, y, z, dict.Citizen.ResultAsVector()ResultAsVector1usedL1340
AddTextComponentSubstringPlayerName0x6C188BE134E074AAnative-0usedL1359
EndTextCommandDisplayText0xCD015E5BB0D96A57native-0usedL1362
IsPedInAnyVehicle0x997ABD671D25CA0Bnative-0usedL1365
GetEntityHeading0xE83D4F9BA2A38914native + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsFloat()ReturnResultAnyway, ResultAsFloat1usedL1368
AddBlipForCoord0x5A039BB0BCA604B6native-0usedL1376
SetBlipSprite0xDF735600A4696DAFnative-0usedL1379
SetBlipColour0x3D7FB09E75D6B7Enative-0unusedL1382
SetBlipScale0xD38744167B2FA257native-0usedL1385
SetBlipCoords0xAE2AF67E9D9AF65Dnative-0usedL1388
SetBlipRotation0xF87683CDF73C3F6Enative-0usedL1391
ShowHeadingIndicatorOnBlip0x5FBCA48327B914DFnative-0usedL1394
SetBlipCategory0x234CDD44D996FD9Anative-0usedL1397
BeginTextCommandSetBlipName0xF9113A30DE5C6670native-0usedL1400
GetPlayerName0x6D0DE6A7B5DA71F8native + unpackargs[1], dict.Citizen.ResultAsString()ResultAsString1usedL1403
EndTextCommandSetBlipName0xBC38B49BCB83BC9Bnative-0usedL1411
DrawRect0x3A618A217E5154F0native-0usedL1414
IsEntityInAir0x886E37EC497200B6native-0usedL1417
DisableAllControlActions0x5F4B6931816E599Bnative-0usedL1420
TaskWanderStandard0xBB9CE077274F6A1Bnative-0usedL1423
TaskWarpPedIntoVehicle0x9A7D091411C5F684native-0usedL1426
SetMouseCursorActiveThisFrame0xAAE7CE1D63167423native-0usedL1429
SetMouseCursorSprite0x8DB8CFFD58B62552native-0usedL1432
GiveDelayedWeaponToPed0xB282DC6EBD803C75native-0usedL1435
ApplyForceToEntity0xC5F68BE9613E2D18native-0usedL1438
GetScreenCoordFromWorldCoord0x34E82F05DF2974F5native + unpackx, y, z, dict.Citizen.PointerValueFloat(), dict.Citizen.PointerValueFloat(), dict.Citizen.ReturnResultAnyway()ReturnResultAnyway0usedL1441
NetworkIsPlayerTalking0x31E11F3D447647Enative + unpackargs[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL1460
SetDrawOrigin0xAA0008F3BBB8F416native-0usedL1468
ClearDrawOrigin0xFF0B610F6BE0D7AFnative-0usedL1471
GetRenderingCam0x5234F9F10919EABAnativeReturnResultAnyway, ResultAsInteger0usedL1474
GetGameplayCamCoord0x14D6F5678D8F1B37nativeReturnResultAnyway, ResultAsVector0usedL1478
GetFinalRenderedCamCoord0xA200EB1EE790F448nativeReturnResultAnyway, ResultAsVector0usedL1482
GetGameplayCamFov0x65019750A0324133nativeReturnResultAnyway, ResultAsFloat0usedL1486
ObjToNet0x99BFDC94A603E541native + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger1usedL1490
StatSetInt0xB3271D7AB655B441native + unpackdict.type(args[1]) == "string" and FM:GetFunction("GetHashKey")(args[1]) or args[1], args[2], args[3], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway3usedL1498
NetworkSetNetworkIdDynamic0x2B1813ABA29016C5native-0usedL1506
SetNetworkIdExistsOnAllMachines0xE05E81A888FA63C8native-0usedL1509
GetDistanceBetweenCoords0xF1B760881820C952native + unpackargs[1], args[2], args[3], args[4], args[5], args[6], args[7], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsFloat()ReturnResultAnyway, ResultAsFloat7usedL1512
SetEntityHeading0x8E2530AA8ADA980Enative-0usedL1520
HasScaleformMovieLoaded0x85F01B8D5B90570Enative + unpackargs[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL1523
RequestScaleformMovie0x11FE353CF9733E6Fnative + unpackdict.tostring(args[1]), dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger1usedL1531
BeginScaleformMovieMethod0xF6E48914C7A8694Enative-0usedL1539
EndScaleformMovieMethodReturnValue0xC50AA39A577AF886nativeReturnResultAnyway, ResultAsInteger0usedL1542
ScaleformMovieMethodAddParamInt0xC3D0841A0CC546A6native-0usedL1546
ScaleformMovieMethodAddParamTextureNameString0xBA7148484BD90365native-0usedL1549
DisableControlAction0xFE99B66D079CF6BCnative-0usedL1552
PlayerId0x4F8644AF03D0E0D6nativeReturnResultAnyway, ResultAsInteger0usedL1555
ShootSingleBulletBetweenCoords0x867654CBC7606F2Cnative + unpackargs[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], dict.type(args[9]) == "string" and FM:GetFunction("GetHashKey")(args[9]) or args[9], args[10], args[11], args[12], args[13]-13usedL1559
ClearAreaOfProjectiles0xA1CB9094635D1A6native-0unusedL1567
GetPedLastWeaponImpactCoord0x6C4D0409BA1A2BC2native + unpackargs[1], dict.Citizen.PointerValueVector(), dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL1570
SetExplosiveMeleeThisFrame0xFF1BED81BFDC0FE0native-0usedL1578
GetCurrentPedWeaponEntityIndex0x3B390A939AF0B5FCnative + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger1usedL1581
GetSelectedPedWeapon0xA6DB4965674D243native + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger1usedL1589
PedSkipNextReloading0x8C0D57EA686FAD87native-0usedL1597
GetMaxAmmoInClip0xA38DCFFCEA8962FAnative + unpackargs[1], dict.type(args[2]) == "string" and FM:GetFunction("GetHashKey")(args[2]) or args[2], args[3], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger3usedL1600
GetAmmoInClip0x2E1202248937775Cnative + unpackargs[1], dict.type(args[2]) == "string" and FM:GetFunction("GetHashKey")(args[2]) or args[2], dict.Citizen.PointerValueIntInitialized(args[3]), dict.Citizen.ReturnResultAnyway()ReturnResultAnyway, PointerValueIntInitialized, PointerValueInt3usedL1608
IsPlayerFreeAiming0x2E397FD2ECD37C87native + unpackargs[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL1616
IsPedDoingDriveby0xB2C086CC1BF8F2BFnative + unpackargs[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL1624
GetEntityPlayerIsFreeAimingAt0x2975C866E6713290native + unpackargs[1], dict.Citizen.PointerValueIntInitialized(args[2]), dict.Citizen.ReturnResultAnyway()ReturnResultAnyway, PointerValueIntInitialized, PointerValueInt2usedL1632
IsPlayerFreeAimingAtEntity0x3C06B5C839B38F7Bnative + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway2unusedL1640
DisablePlayerFiring0x5E6CC07646BBEAB8native-0usedL1648
SetFocusPosAndVel0xBB7454BAFF08FE25native-0usedL1651
SetCamCoord0x4D41783FB745E42Enative-0usedL1654
SetCamActive0x26FB97D0A425F84native-0usedL1657
SetCamFov0xB13C14F66A00D047native-0unusedL1660
SetCamRot0x85973643155D0B07native-0usedL1663
SetCamShakeAmplitude0xD93DB43B82BC0D00native-0unusedL1666
UpdateOnscreenKeyboard0xCF2B696BBF945AEnativeReturnResultAnyway, ResultAsInteger0usedL1669
CancelOnscreenKeyboard0x58A39BE597CE99CDnative-0usedL1673
SetVehicleFixed0x115722B1B9C14C1Cnative-0usedL1676
SetVehicleDirtLevel0x79D3B596FE44EE8Bnative-0unusedL1679
SetVehicleLights0x34E710FF01247C5Anative-0unusedL1682
SetVehicleBurnout0xFB8794444A7D60FBnative-0unusedL1685
SetVehicleLightsMode0x1FD09E7390A74D54native-0unusedL1688
GetCamMatrix0x8F57A89Dnative + unpackargs[1], dict.Citizen.PointerValueVector(), dict.Citizen.PointerValueVector(), dict.Citizen.PointerValueVector(), dict.Citizen.PointerValueVector()-1usedL1691
DoesEntityHaveDrawable0x60D6E96F8B8E48Dnative + unpackargs[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL1699
IsEntityAnObject0x8D68C8FD0FACA94Enative + unpackargs[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL1707
IsEntityAVehicle0x6AC7003FA6E5575Enative + unpackargs[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL1715
SetNewWaypoint0xFE43368D2AA4F2FCnative-0usedL1723
HasEntityClearLosToEntityInFront0x267D00AF114F17Anative + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway2usedL1726
HasEntityClearLosToEntity0xFCDFF7B72D23A1ACnative + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway2usedL1734
IsEntityAPed0x524AC5ECEA15343Enative + unpackargs[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL1742
GetControlInstructionalButton0x499D7B09FC9B407native + unpackargs[1], args[2], args[3], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsString()ReturnResultAnyway, ResultAsString3usedL1750
DrawScaleformMovie0x54972ADAF0294A93native-0usedL1758
SetFocusEntity0x198F77705FA0931Dnative-0usedL1761
DrawLine0x6B7256074AE34680native-0usedL1764
DrawPoly0xAC26716048436851native-0usedL1767
GetEntityRotation0xAFBD61CC738D9EB9native + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsVector()ReturnResultAnyway, ResultAsVector2usedL1770
TaskPlayAnim0xEA47FE3719165B94native-0usedL1778
TaskVehicleTempAction0xC429DCEEB339E129native-0usedL1781
AttachEntityToEntity0x6B9BBD38AB0796DFnative-0usedL1784
SetRunSprintMultiplierForPlayer0x6DB47AA77FD94E09native-0usedL1787
SetSuperJumpThisFrame0x57FFF03E423A4C0Bnative-0usedL1790
SetPedMoveRateOverride0x85BF80FA50A39D1native-0usedL1793
DisplayOnscreenKeyboard0xDC833F2568DBF6native-0usedL1796
GetOnscreenKeyboardResult0x8362B09B91893647nativeReturnResultAnyway, ResultAsString0usedL1799
SetEntityVisible0xEA1C610A04DB6BBBnative-0usedL1803
SetEntityInvincible0x3882114BDE571AD4native-0usedL1806
TaskSetBlockingOfNonTemporaryEvents0x90D2156198831D69native-0usedL1809
GiveWeaponToPed0xBF0FD6E56C964FCBnative-0usedL1812
SetPedAccuracy0x7AEFB85C1D49DEB6native-0usedL1815
SetPedAlertness0xDBA71115ED9941A6native-0usedL1818
TaskCombatPed0xF166E48407BAC484native-0usedL1821
SetPlayerModel0xA1CADD00108836native + unpackargs[1], dict.type(args[2]) == "string" and FM:GetFunction("GetHashKey")(args[2]) or args[2]-2usedL1824
GetDisplayNameFromVehicleModel0xB215AAC32D25D019native + unpackdict.type(args[1]) == "string" and FM:GetFunction("GetHashKey")(args[1]) or args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsString()ReturnResultAnyway, ResultAsString1unusedL1832
SetPedRandomComponentVariation0xC8A9481A01E63C28native-0usedL1840
SetPedRandomProps0xC44AA05345C992C6native-0usedL1843
SetVehicleEngineOn0x2497C4717C8B881Enative-0usedL1846
SetVehicleForwardSpeed0xAB54A438726D25D5native-0usedL1849
SetVehicleCurrentRpm0x2A01A8FCnative-0usedL1852
IsModelValid0xC0296A2EDF545E92native + unpackdict.type(args[1]) == "string" and FM:GetFunction("GetHashKey")(args[1]) or args[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL1855
IsModelAVehicle0x19AAC8F07BFEC53Enative + unpackdict.type(args[1]) == "string" and FM:GetFunction("GetHashKey")(args[1]) or args[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL1863
IsPedWeaponReadyToShoot0xB80CA294F2F26749native + unpackargs[1], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway1usedL1871
SetPedComponentVariation0x262B14F48D29DE80native-0usedL1879
GetEntityHealth0xEEF059FAD016D209native + unpackargs[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger1unusedL1882
GetAmmoInPedWeapon0x15A522136D7F951native + unpackargs[1], dict.type(args[2]) == "string" and FM:GetFunction("GetHashKey")(args[2]) or args[2], args[3], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger3unusedL1890
GetMaxAmmo0xDC16122C7A20C933native + unpackargs[1], dict.type(args[2]) == "string" and FM:GetFunction("GetHashKey")(args[2]) or args[2], dict.Citizen.PointerValueIntInitialized(args[3]), dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger, PointerValueIntInitialized, PointerValueInt3usedL1898
GetAmmoInPedWeapon0x15A522136D7F951native + unpackargs[1], dict.type(args[2]) == "string" and FM:GetFunction("GetHashKey")(args[2]) or args[2], args[3], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger3unusedL1906
GetPedPropIndex0x898CC20EA75BACD8native + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger2usedL1914
GetPedPropTextureIndex0xE131A28626F81AB2native + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger2usedL1922
GetPedDrawableVariation0x67F3780DD425D4FCnative + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger2usedL1930
GetPedTextureVariation0x4A355E041E004E6native + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger2usedL1938
GetPedPaletteVariation0xE3DD5F2A84B42281native + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger()ReturnResultAnyway, ResultAsInteger2usedL1946
SetPedPropIndex0x93376B65A266EB5Fnative-0usedL1954
SetPedAmmo0x14E56BC5B5DB6A19native-0usedL1957
SetAmmoInClip0xDCD2A934D65CB497native + unpackargs[1], dict.type(args[2]) == "string" and FM:GetFunction("GetHashKey")(args[2]) or args[2], args[3], dict.Citizen.ReturnResultAnyway()ReturnResultAnyway3usedL1960
GetDisabledControlNormal0x11E65974A982637Cnative + unpackargs[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsFloat()ReturnResultAnyway, ResultAsFloat2usedL1968
TaskLookAtEntity0x69F4BE8C8CC4796Cnative-0unusedL1976
PointCamAtEntity0x5640BFF86B16E8DCnative-0usedL1979

Natives missing from the table

Five names are requested through FM:GetFunction but do not exist in _natives. FM:GetFunction returns the _empty stub for them (L1985/L1993), so these features do nothing and log [NATIVE] Invalid GetFunction call once:

Missing nameEffectCalled on
GetClosestMajorVehicleNodeno effect: _empty instead of the native
IsVehicleSeatFreeno effect: _empty instead of the native
ModifyVehicleTopSpeedno effect: _empty instead of the native
PlayAmbientSpeechWithVoiceno effect: _empty instead of the native
TaskEnterVehicleno effect: _empty instead of the native

Unused wrappers

22 of the 272 wrappers are never used in the file (often leftover after a rename or a feature that got disabled).

ClearAreaOfProjectilesGetAmmoInPedWeaponGetDisplayNameFromVehicleModelGetEntityAlphaGetEntityBoneIndexByNameGetEntityCoordsGetEntityHealthGetTextScaleHeightIsEntityVisibleIsPedShootingIsPlayerFreeAimingAtEntityResetPedRagdollTimerSetBlipColourSetCamFovSetCamShakeAmplitudeSetEntityLocallyInvisibleSetVehicleBurnoutSetVehicleDirtLevelSetVehicleLightsSetVehicleLightsModeSimulatePlayerInputGaitTaskLookAtEntity

UI: Painter and widgets

All drawing goes through FM.Painter: a set of functions that work with native dimensions (0.0-1.0 for positions, raw pixel widths) and give each widget its own return value so the menu logic can use if self.Painter:Button(...) then. There are 11 Painter functions.

FunctionArgumentsLocalLine
FM.Painter:GetTextWidthstr, font, scaleyesL3194
FM.Painter:DrawTexttext, font, centered, x, y, scale, r, g, b, ayesL3198
FM.Painter:ListItemlabel, px, py, x, y, w, h, r, g, b, a, idyesL3219
FM.Painter:DrawSpritex, y, w, h, heading, dict, name, r, g, b, a, customyesL3263
FM.Painter:ListChoicelabel, options, px, py, x, y, w, h, r, g, b, a, id, selected, unbind_calleryesL3273
FM.Painter:CheckBoxlabel, bool, px, py, x, y, w, h, r, g, b, a, id, centered, sizeyesL3354
FM.Painter:Buttonlabel, px, py, x, y, w, h, r, g, b, a, id, centered, sizeyesL3404
FM.Painter:DrawRectx, y, w, h, r, g, b, ayesL3434
FM.Painter:Hoveredx, y, w, hyesL3440
FM.Painter:Holdingx, y, w, h, idyesL3452
FM.Painter:Clickedx, y, w, hyesL3470

Widget types in the categories

TypeCountMeaning
Button51a clickable button; id is used for drag/drop and as a unique draw key
CheckBox54toggle; writes to the linked FM.Config path
ListChoice9
Widgets carry an id (e.g. "esp_box_enabled") used for hit-testing and for linking drag/drop. Checkboxes also carry the config path they write to, for example self.Config.Player.Box.

Categories and widgets

The 13 categories provide 114 widgets. Each FM:Category(x, y, w, h, scale) function calls self.Painter:CommonTab and then, per widget, the corresponding Painter function; the return pattern everywhere is if <widget> then ... end so a click directly activates the feature.

FM:Self 3752

Player toggles: godmode, one tap kill, freak cam, teleport to waypoint/coords, friendly/anti-bespoke flags. Most items are config-bound (FM.Config.Player.*).

Called as FM:Self(x, y, w, h, scale, self, x, y, w, h).

TypeLabelIdConfig pathLine
CheckBoxGOD MODEgod_enabledself.Config.Player.GodL3755
ButtonTELEPORT TO COORDSteleport_to_coords-L3766
ButtonTELEPORT TO WAYPOINTteleport_to_waypoint-L3803
CheckBoxSEMI GOD MODEsemi_god_enabledself.Config.Player.SemiGodL3809
CheckBoxANTI AFKanti_afkself.Config.Player.AntiAFKL3816
CheckBoxINFINITE STAMINAinfinite_staminaself.Config.Player.InfiniteStaminaL3823
CheckBoxNO RAGDOLLno_ragdoll_enabledself.Config.Player.NoRagdollL3830
CheckBoxINVISIBILITYinvisibility_enabledself.Config.Player.InvisibilityL3837
CheckBoxREVEAL INVISIBLE PLAYERSreveal_invis_playersself.Config.Player.RevealInvisiblesL3844
CheckBoxFAST RUNfast_af_runna_enabledself.Config.Player.FastRunL3851
CheckBoxSUPER JUMPbig_jump_enabledself.Config.Player.SuperJumpL3858
CheckBoxSUPER MANsuper_man_enabledself.Config.Player.SuperManL3865
CheckBoxMAGIC CARPETmagic_carpet_enabledself.Config.Player.MagicCarpetL3876
CheckBoxFAKE DEADfake_deadself.Config.Player.FakeDeadL3883
CheckBoxFORCE RADARforce_radarself.Config.Player.ForceRadarL3890
ButtonHEALheal_option-L3897
ButtonGIVE ARMORarmor_option-L3905
ButtonSUICIDEsuicide_option-L3912
ButtonREVIVE ~g~ESXesx_revive-L3920
ButtonREVIVEnative_revive-L3928

FM:ESP 3934

ESP subcategory: colour, box, bone overlay, skeleton and triggerbot visualisation. Distance comes from FM.Config.Player.ESPDistance (default 1000.0).

Called as FM:ESP(x, y, w, h, scale, self, x, y).

TypeLabelIdConfig pathLine
CheckBoxESPesp_enabledself.Config.Player.ESPL3937
CheckBoxBOXesp_box_enabledself.Config.Player.BoxL3944
CheckBoxBLIPSesp_blips_enabledself.Config.Player.BlipsL3951
CheckBoxCROSSHAIRcrosshair_enabledself.Config.Player.CrossHairL3962
ButtonESP DRAW DISTANCE: set_aimbot_fov-L3969

FM:Combat 3982

Aimbot ensemble: hard aim, silent aim, rage bot, triggerbot, no-drop, TP-aimbot with threshold and distance settings, plus a per-bone choice from the 13 bones.

Called as FM:Combat(x, y, w, h, scale, self, x, y, w, h).

TypeLabelIdConfig pathLine
CheckBoxTRIGGER BOTtrigger_bot_enabledself.Config.Player.TriggerBotL3985
CheckBoxANTI AIManti_aim_enabledself.Config.Player.AntiAimL3992
CheckBoxTRIGGER BOT NEEDS LOStriggerbot_need_los_enabledself.Config.Player.TriggerBotNeedsLOSL3999
CheckBoxAIMBOTaimbot_enabledself.Config.Player.AimbotL4006
CheckBoxAIMBOT NEEDS LOSaimbot_need_los_enabledself.Config.Player.AimbotNeedsLOSL4013
CheckBoxTP TO AIMBOT TARGETtpaimbot_enabledself.Config.Player.TPAimbotL4020
CheckBoxDRAW AIMBOT FOVdraw_aimbot_fovself.Config.Player.AimbotDrawFOVL4027
CheckBoxONLY TARGET PLAYERSonly_target_playersself.Config.Player.OnlyTargetPlayersL4034
CheckBoxTRIGGER BOT TARGET VEHICLEStarget_inside_vehiclesself.Config.Player.TargetInsideVehiclesL4041
CheckBoxINFINITE COMBAT ROLLinfinite_combat_rollself.Config.Player.InfiniteCombatRollL4048
CheckBox~r~RAGE ~w~BOTrage_botself.Config.Player.RageBotL4055
CheckBoxNO BULLET DROPno_bullet_dropself.Config.Player.NoDropL4062
CheckBoxNO RELOADno_reloadself.Config.Player.NoReloadL4069
CheckBoxINFINITE AMMOinfinite_ammoself.Config.Player.InfiniteAmmoL4076
CheckBoxRAPID FIRErapid_fireself.Config.Player.RapidFireL4083
CheckBoxEXPLOSIVE AMMOexplosive_ammoself.Config.Player.ExplosiveAmmoL4090
CheckBoxONE TAPone_tap_enabledself.Config.Player.OneTapL4097
ListChoiceAIMBOT BONE: aimbot_bone-L4108
ButtonAIMBOT FOV: set_aimbot_fov-L4115
ButtonTRIGGER BOT DISTANCE: set_trigger_bot_distance-L4126
ButtonTP AIMBOT THRESHOLD: set_tp_aimbot_threshold-L4137
ButtonTP AIMBOT DISTANCE: set_tp_aimbot_distance-L4148

FM:Model 4535

Model changer: custom model from the spawner table (PED/OBJECT/VEHICLE) and the prebuilt PREMADE.SWASTIKA and PREMADE.DICK options.

Called as FM:Model(x, y, w, h, scale, self, x, y).

TypeLabelIdConfig pathLine
ButtonRANDOM COMPONENTSskin_random-L4538
ButtonMP GREEN ALIENalien_green-L4548
ButtonMP PURPLE ALIENalien_purple-L4565
ButtonCOVID-19 PEDcovid_19-L4582
ButtonCUSTOM MODELcustom_model-L4590
ButtonRESET PLAYER MODELped_reset-L4604

FM:Weapon 4633

Weapon picker over the 76 items of `all_weapons` (L2105), with two toggle columns.

Called as FM:Weapon(x, y, w, h, scale, self, x, y).

TypeLabelIdConfig pathLine
ButtonGIVE ALL WEAPONSgive_self_all_weapons-L4636
ButtonGIVE SPECIFICgive_self_specific_weapon-L4646
ButtonREMOVE ALL WEAPONSremove_self_all_weapons-L4659

FM:Vehicle 4672

Vehicle modifications: boost, extra gravity, unbreakable, engine temperature, lights, wheel sizes, fly/teleport and the vehicle-mod helpers on lines 2865-2879.

Called as FM:Vehicle(x, y, w, h, scale, self, x, y).

TypeLabelIdConfig pathLine
CheckBoxVEHICLE GOD MODEvehicle_god_modeself.Config.Vehicle.GodModeL4675
CheckBoxBULLET PROOF TIRESbulletproof_enabledself.Config.Vehicle.BulletProofTiresL4682
ButtonDELETE VEHICLEdelete_self_vehicle-L4689
ButtonSPAWN VEHICLEspawn_self_vehicle-L4702
ButtonREPAIR VEHICLErepair_vehicle-L4715
ButtonMAX VEHICLE OUTmax_out_vehicle-L4724
ListChoiceVEHICLE ENGINE BOOST: vehicle_boost-L4741
ButtonUNLOCK CLOSEST VEHICLEunlock_closest_vehicle-L4748
ButtonDISABLE CLOSEST VEHICLEdisable_closest_vehicle-L4757
ButtonDELETE CLOSEST VEHICLEdelete_closest_vehicle-L4765

FM:Online 4772

Teleport to players, magic carpet, spectate, freecam and the online player list; friend checks go through the local `friends` (L123).

Called as FM:Online(x, y, w, h, scale, self, x, y).

TypeLabelIdConfig pathLine
CheckBoxINCLUDE SELFonline_include_selfFM.Config.OnlineIncludeSelfL4775
CheckBoxLAG SERVERlag_server_out_use_lag_serverL4782
CheckBoxHYDRANT LOOPhydrant_loop_all_use_hydrant_loopL4799
CheckBoxFIRE LOOPfire_loop_all_use_fire_loopL4816
CheckBoxTAZE LOOPtaze_loop_all_use_taze_loopL4833
CheckBoxDELETE VEHICLES LOOPdelete_all_vehicles_loop_use_delete_loopL4850
CheckBoxEXPLODE VEHICLES LOOPexplode_vehicles_loop_use_explode_vehicle_loopL4867
CheckBoxEXPLODE PLAYERS LOOPexplode_player_loop_use_explode_player_loopL4884
CheckBoxLAUNCH VEHICLE LOOP_use_launch_loop_use_launch_loopL4901
ButtonJAIL ALL ~g~ESX ~w~(SHIFT FOR REASON)jail_all_bitches-L4919
ButtonREMOVE ALL WEAPONSremove_everyones_weapons-L4947
ButtonGIVE ALL WEAPONSgive_everyone_weapons-L4967
ButtonEXPLODE EVERYONEexplode_everyone-L4987
ButtonTURN ALL CARS INTO RAMPSramp_all_cars-L5009
ButtonTURN ALL CARS INTO FIB BUILDINGfib_all_cars-L5041
ButtonDELETE VEHICLESdelete_all_vehicles-L5071
ButtonVEHICLE SPAM SERVERvehicle_spam_server-L5078
ButtonSWASTIKA ALLswastika_all-L5088
ButtonGAS ALLgas_all-L5113
ButtonCARRY ALLcarry_all-L5138
Button~r~CRASH ALL (SHIFT FOR METHOD)crash_all-L5150

FM:Freecam 5222

FM.FreeCam itself: mode, cam, spawner options and the tick thread on line 8990.

Called as FM:Freecam(x, y, w, h, scale, self, x, y).

TypeLabelIdConfig pathLine
CheckBoxFREECAMfreecamself.FreeCam.OnL5225
ListChoiceFREECAM MODE: freecam_mode-L5232

FM:World 5241

World manipulation separate from the menu tabs (1 widget).

Called as FM:World(x, y, w, h, scale, self, x, y).

TypeLabelIdConfig pathLine
Button9/11 BOMBING9_11_bombing-L5243

FM:Lua 5297

Lua runtime toggles: auto-walk, resetting keybinds, and Lua-console-like options.

Called as FM:Lua(x, y, w, h, scale, self, x, y).

TypeLabelIdConfig pathLine
Buttontriggerdynamic_trigger_-L5302
CheckBoxSHOW KEYS PRESSEDonscreen_controlsself.Config.ShowControlsOnScreenL5312
ButtonEXECUTE TRIGGERexecute_custom-L5316
ButtonEXECUTE LUAexecute_custom_lua-L5326

FM:Misc 5346

Branding, statistics toggles, emoji filter and other switches.

Called as FM:Misc(x, y, w, h, scale, self, x, y, w, h).

TypeLabelIdConfig pathLine
ButtonNEW CONFIGnew_config-L5358
ButtonCONFIG: ~y~config_-L5375
ButtonLOADload_config-L5383
ButtonRESETreset_config-L5392
ButtonCLONEclone_config-L5401
ButtonRENAMErename_config-L5420
ButtonDELETEdelete_config-L5441

FM:Settings 5464

General settings that write to FM.Config.*: safe mode, background image, sounds, key display, menu position (MenuX/MenuY), notification position (NotifX/NotifY/NotifW).

Called as FM:Settings(x, y, w, h, scale, self, x, y).

TypeLabelIdConfig pathLine
CheckBoxSHOW SCREEN ELEMENTStext_settings_enabledself.Config.ShowTextL5467
CheckBoxMENU SOUNDSmenu_soundsself.Config.UseSoundsL5474
CheckBoxAUTO MOVE WITH MENU OPENauto_walk_enabledself.Config.UseAutoWalkL5481
CheckBoxAUTO MOVE WITH FREECAM / RC CARauto_walk_alt_enabledself.Config.UseAutoWalkAltL5488
CheckBoxSAFE MODEsafe_modeself.Config.SafeModeL5495
CheckBoxDRAW BACKGROUND IMAGEuse_bg_imageself.Config.UseBackgroundImageL5502
CheckBoxUSE PRINT MESSAGESuse_print_imagesself.Config.UsePrintMessagesL5509
ListChoiceTOGGLE KEY: toggle_key-L5516
ListChoiceDISABLE KEY: disable_key-L5523
ListChoiceFREECAM KEY: freecam_key-L5530
ListChoiceRC CAR CAM KEY: rccar_key-L5537
ListChoiceAIMBOT KEY: aimbot_key-L5544
ListChoiceAIMBOT RELEASE KEY: aimbot_release_key-L5551

FM:~r~KILL 5557

Easter egg: category title "~r~KILL" contains no widgets; the Painter text renderer treats the ~r~ marker as a GTA colour code.

Called as FM:~r~KILL(x, y, w, h, scale, self, x, y).

No widgets in this category.

Feature internals

This section gathers what the code reveals about the mechanisms behind the widgets, so it is clear what a toggle actually does.

GetFunction missing entries

The five missing wrappers have practical consequences: these calls now go through _empty and do nothing.

NameCalled onWhat breaks because of it
TaskEnterVehicleL2908, L2926Sending an NPC/ped into a vehicle
PlayAmbientSpeechWithVoiceL6699Audio insults from the spotter
IsVehicleSeatFreeL7480Finding a free seat in the teleport/seat loop
ModifyVehicleTopSpeedL7571Top speed of the boost feature
GetClosestMajorVehicleNodeL7508, L7715Ground projection in FreeCam and RCCar

Natives used directly (not via GetFunction)

Alongside the 272 wrapped natives, the script calls 29 natives directly as globals. Those have no return shim and no logging.

Native / globalCountLines
PlayerId19L2635, L2669, L2695, L2716, L2737, L2802
IsDisabledControlJustPressed8L7589, L7605, L7621, L7637, L7663, L7674
IsDisabledControlPressed4L4391, L6299, L8055, L8059
GetGameplayCamRelativeHeading4L7877, L7879, L7881, L7883
load2L5259, L5332
GetDisplayNameFromVehicleModel2L8597, L8611
GetEntityModel2L8597, L8611
TriggerEventInternal1L530
SetVehicleUndriveable1L2865
SetVehicleWheelWidth1L2866
GetVehicleNumberOfWheels1L2868
SetVehicleWheelTireColliderSize1L2869
SetVehicleWheelSize1L2870
SetVehicleWheelTireColliderWidth1L2871
SetVehicleLights1L2874
SetVehicleLightsMode1L2875
SetVehicleEngineTemperature1L2876
SetVehicleEngineOn1L2877
SetVehicleEngineCanDegrade1L2878
ModifyVehicleTopSpeed1L2879
setmetatable1L3020
DoesBlipExist1L3644
SetCamAffectsAiming1L4433
GetRenderingCam1L4433
TriggerServerEvent1L5142
collectgarbage1L6006
IsEntityPlayingAnim1L6415
SetEntityInvincible1L7420
TaskLeaveAnyVehicle1L8303
This list also contains the three undefined globals that the executor must provide: aE (L3020), v_str (L8597) and layout (L8833). Without these three, the notification render loop, vehicle branding, and instructional button drawing respectively do not work.

Config-bound fields

Half of the widgets are a thin write layer over FM.Config; the rest does direct native work. The table below links the main internals to their config field, so it is clear which values drive behaviour.

Config fieldDefaultBehaviour
Player.GodtrueGodmode; uses SetEntityInvincible (L7420) in the player thread
Player.ESPDistance1000.0Maximum ESP distance; larger distance means more draw calls
Player.AimbotFOV90.0FOV in degrees for the aimbot selection
Player.AimbotBone1Index in the 13-element bone list (1 = SKEL_ROOT)
Player.AimbotKey"MOUSE1"Aimbot key from the keycode table
Player.AimbotReleaseKey"LEFTALT"Hold to make the aimbot work
Player.TPAimbotThreshold40.0Threshold for TP-aimbot (degrees)
Player.TPAimbotDistance2.0Teleport distance of TP-aimbot
Player.TriggerBotDistance500.0Maximum triggerbot distance
Player.AimbotNeedsLOStrueLine-of-sight required for hard aim
Player.TargetInsideVehiclesfalseWhether the aimbot may pick targets inside vehicles
Player.NoDropfalsePrevents weapon drop after the last kill
SafeModetrueAlways forced to true on load
MenuX / MenuY300 / 300Menu start position; draggable via drag_bar
NotifX / NotifY / NotifWnil / nil / 420Position and width of the notification stack
ShowKey / FreeCamKey / RCCamKey / DisableKeyTAB / HOME / = / -The four global keybinds
UseBackgroundImagetrueUses the banner_dui texture as background
UseAutoWalkAltfalseAutomatic walking via an alternative control

Bone list (13 items)

IndexBonePed bone id
1SKEL_HEAD31086
2SKEL_ROOT0
3SKEL_L_Forearm22711
4SKEL_R_Forearm28252
5SKEL_L_UpperArm45509
6SKEL_R_UpperArm40269
7SKEL_L_Thigh58271
8SKEL_R_Thigh51826
9SKEL_Spine124816
10SKEL_Spine224817
11SKEL_Spine324818
12SKEL_L_Foot14201
13SKEL_R_Foot52301

The same list is redefined as local aimbot_bones on L3980 (2 items) and is the order in which the menu index maps to a bone index.

Notifications and sounds

TypePrefixSound setSoundCountLine
INFO[~b~INFO~w~]HUD_DEATHMATCH_SOUNDSETDELETE3L8450
WARN[~o~WARN~w~]DLC_HEIST_HACKING_SNAKE_SOUNDSTurn1L8453
ERROR[~r~ERROR~w~]DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDSHack_Failed3L8456
SUCCESS[~g~SUCCESS~w~]---L8459
The four types have no RGB value: the colour sits in the ~b~/~o~/~r~/~g~ markers of the prefix text. SUCCESS has no sound. Notifications fade in with notif_alpha (L7229, max 200) and go through FM:AddNotification(type, msg, duration) with their own fade-out thread.

Dynamic triggers

redENGINE-specific. FM:RunDynamicTriggers() (L8944) iterates TEList and calls _replaced(resource, data) for each source file. That function reads the external file with LoadResourceFile and tries to extract a server event payload from it so it can be replaced locally - afterwards the found values sit in FM.DynamicTriggers[resource][trigger].

Sources used

ResourceFileNameTriggers
chatclient/cl_chat.luaChat1
esx_ambulancejobclient/main.lua~g~ESX ~w~Ambulance Job1
gcphoneclient/twitter.luaGCPhone1
esx_policejobclient/main.lua~g~ESX ~w~Police Job1
esx-qalle-jailclient/client.lua~g~ESX ~w~Qalle Jail1
esx_dmvschoolclient/main.lua~g~ESX ~w~DMV School1
CarryPeoplecl_carry.luaCarryPeople2

Per trigger

ResourceTriggerLookFor patternDepthStripLine
chat_chat:messageEnteredExecuteCommand%(3 (default)
TriggerServerEvent%('', (.*)
L8850
esx_ambulancejobesx_ambulancejob:revivelocal playerPed = PlayerPedId%(%)3 (default)
AddEventHandler%('', (.*)
L8863
gcphonegcPhone:twitter_postTweetsRegisterNUICallback%('twitter_postTweet', function%(data, cb%)2
TriggerServerEvent%('', (.*)
L8876
esx_policejobesx_communityservice:sendToCommunityServicemenu.close%(%)3 (default)
TriggerServerEvent%(\, , (.*)
L8890
esx-qalle-jailesx-qalle-jail:jailPlayerESX.ShowNotification%(\"No players nearby!\"%)3 (default)
TriggerServerEvent%(\, , (.*)
L8903
esx_dmvschoolesx_dmvschool:addLicenseESX.ShowNotification%(_U%('passed_test'%)%)3 (default)
TriggerServerEvent%('', (.*)
L8916
CarryPeopleCarryPeople:synccarryingBackInProgress = true3 (default)
TriggerServerEvent%('', (.*)
L8929
CarryPeopleCarryPeople:stopif target ~= 0 then3 (default)
TriggerServerEvent%(\, , (.*)
L8934

Algorithms

_split(content, pattern)   -- split on [^\r\n]+
_find(tab, what)          -- lines containing `what` (Lua pattern, not plain find)
_get_depth(line, lines, d)  -- window from line-d to line+d
_replaced(res, data)         -- reads resource file, looks for LookFor, strips, stores
  • Step 1: contents = LoadResourceFile(res, data.File); empty or "nil" contents stop the processing (L8715).
  • Step 2: _find(lines, dat.LookFor) yields all hits; for each hit a window of ±Depth lines is examined.
  • Step 3: from every line in the window the Strip patterns are removed; the first remaining line becomes the candidate.
  • Step 4: if the candidate contains the trigger and is not exactly equal, FM.DynamicTriggers[res][trigger] is set and printed as "Replaced trigger".
  • Step 5: on failure a 20 s ERROR notification fires ("Failed to get dynamic trigger").
Three weaknesses in the implementation: if _lines then on L8725 is always true; _find uses val:find(what) as a Lua pattern (so function%(%) instead of plain text); and the double break on L8745-8746 excludes the rest of the window.

AC checker

FM:RunACChecker() (L8663) enumerates all resources with GetNumResources / GetResourceByFindIndex and shows, for every hit in RList, a 30-second WARN notification plus a console line.

ResourceDisplay nameDetectionLine
alpha-tango-golf~b~ATGresource present in the listL8622
screenshot-basic~g~screenshot-basicresource present in the listL8633
anticheese-anticheat~g~AntiCheeseresource present in the listL8644
ChocoHax~r~ChocoHaxreturn ChXaC ~= nilL8655
This is detection and notification only: the script stops no resources, calls no StopResource and changes nothing about the resources it finds.

All functions

The 180 functions defined in the file, including the 151 local helpers. Signatures are copied as they appear in the source.

FunctionArgumentsLocalLine
rE.Bypasses:CheckEventeventyesL71
rE.Bypasses:CheckArgsargsyesL79
TriggerServerEventInternalevent, payload, lengthyesL91
IsExplosionInSphere...yesL117
_counttabnoL223
FM.Base64:EncodedatayesL235
FM:SetConfigListyesL256
FM:BuildIdentifieryesL261
FM:GetConfigListyesL276
FM:CopyTabletabyesL300
FM:IsFriendpedyesL314
dummyUseBoundaryidxnoL448
getBoundaryFuncbfn, bidnoL452
lookupifytnoL474
FM:RemoveEmojisstryesL487
FM:CleanNamestr, is_espyesL513
FM:GetFunctionnameyesL1996
_clampval, min, maxnoL2108
FM:EquipOutfitdatayesL2115
FM:StealOutfitplayeryesL2137
FM:RequestModelSyncmodel, timeoutyesL2215
FM.Util:ValidPlayersrcyesL2230
FM:SpawnLocalVehiclemodelName, replaceCurrent, spawnInsideyesL2236
FM:DrawTextInputyesL2261
FM:GetTextInputTextEntry, ExampleText, MaxStringLengthyesL2266
FM.Util:DeleteEntityentityyesL2304
FM:AddNotificationtype, msg, timeoutyesL2334
FM:DoNetworkobjyesL2371
FM:GasPlayerplayeryesL2383
FM:TazePlayerplayeryesL2421
FM:HydrantPlayerplayeryesL2428
FM:FirePlayerplayeryesL2434
FM:CrashPlayerplayer, all, strictyesL2467
FM:CleanupCrashplayer, allyesL2539
FM:RapePlayerplayeryesL2579
FM:CarSpamServeryesL2625
FM:LaggingServeryesL2658
FM:HydrantLoopyesL2686
FM:FireLoopyesL2707
FM:TazeLoopyesL2728
FM:DeleteLoopyesL2749
FM:ExplodeVehicleLoopyesL2771
FM:ExplodePlayerLoopyesL2793
FM:LaunchLoopyesL2814
FM:SpawnPedwhere, heading, model, weaponyesL2838
FM:UnlockVehiclevehyesL2853
FM:DisableVehiclevehyesL2862
FM:StealVehicleThreadwho, veh, nodriveyesL2883
FM:ScrWyesL2962
FM:ScrHyesL2966
FM:Print...yesL2972
FM:GetMousePosyesL2980
FM:RequestControlOnceentityyesL2984
FM:RequestControlSyncveh, timeoutyesL2991
FM:aGaH, aI, aJyesL3005
FM:EnumerateVehiclesyesL3031
FM:EnumeratePedsyesL3035
FM:EnumerateObjectsyesL3039
FM:GetClosestVehiclemax_distyesL3043
FM:GetClosestPedmax_distyesL3065
FM:GetClosestObjectmax_distyesL3087
FM:DeleteVehiclesyesL3109
FM:RepairVehiclevehicleyesL3121
FM:TranslateMousewx, wy, ww, wh, drag_idyesL3131
FM:TranslateScrollersy, sh, byyesL3157
_text_widthstr, font, scalenoL3175
FM.Painter:GetTextWidthstr, font, scaleyesL3194
FM.Painter:DrawTexttext, font, centered, x, y, scale, r, g, b, ayesL3198
_lerpdelta, from, tonoL3210
FM.Painter:ListItemlabel, px, py, x, y, w, h, r, g, b, a, idyesL3219
FM.Painter:DrawSpritex, y, w, h, heading, dict, name, r, g, b, a, customyesL3263
FM.Painter:ListChoicelabel, options, px, py, x, y, w, h, r, g, b, a, id, selected, unbind_calleryesL3273
FM.Painter:CheckBoxlabel, bool, px, py, x, y, w, h, r, g, b, a, id, centered, sizeyesL3354
FM.Painter:Buttonlabel, px, py, x, y, w, h, r, g, b, a, id, centered, sizeyesL3404
FM.Painter:DrawRectx, y, w, h, r, g, b, ayesL3434
FM.Painter:Hoveredx, y, w, hyesL3440
FM.Painter:Holdingx, y, w, h, idyesL3452
FM.Painter:Clickedx, y, w, hyesL3470
FM:Clampwhat, min, maxyesL3488
FM:LimitRenderBoundsyesL3498
FM:AddCategorytitle, funcyesL3516
FM:SetPedModelmodelyesL3523
FM:GetPedVehicleSeatpedyesL3528
FM:GetModelLengthentyesL3541
FM:GetModelHeightentyesL3547
FM:TrackeryesL3553
FM:DoFrozenyesL3566
FM:DoBlipsremoveyesL3581
FM:DoAntiAimyesL3627
FM:TeleportToWaypointyesL3642
FM:DoESPyesL3666
FM:DoBoxESPsrc, pedyesL3717
_is_ped_playerpednoL4158
rot_to_dirrotnoL4164
_multiplyvector, multnoL4173
_get_ped_hovered_overnoL4177
_within_polypoint, polynoL4228
_is_ped_in_aimbot_fovpednoL4243
_get_ped_in_aimbot_fovnoL4254
_get_closest_boneped, _seatnoL4298
FM:DoAimbotPolyyesL4336
FM:DrawAimbotFOVyesL4358
FM:_rage_botyesL4364
FM:_no_bullet_dropyesL4390
FM:_trigger_botyesL4404
FM:_aimbotyesL4432
FM:_tp_aimbotyesL4475
FM:DoAimbotyesL4489
_has_valuetab, valnoL4615
_find_weaponstrnoL4623
FM:DoVehicleRelatedyesL5188
_run_luaresource, triggernoL5252
FM:IndexOftable, valyesL5456
FM:GetScrollBasiscountyesL5582
_do_title_colornoL5616
FM:DrawMenuyesL5640
FM:CleanupyesL6003
FM:DoCrosshairyesL6060
FM:DoKeyPressedyesL6352
_do_ridingnoL6384
_right_vecnoL6399
_up_vecnoL6405
_do_flyingnoL6411
FM.RCCar:MoveCaryesL6597
approachfrom, to, incnoL6647
FM.RCCar:GetCamRotgameplay_rotyesL6653
FM.RCCar:TickyesL6669
FM.FreeCam:SwitcheryesL6785
FM.FreeCam:TogglemodeyesL6812
FM.FreeCam:GetModelSizehashyesL6817
FM.FreeCam:DrawBoundingBoxentity, r, g, b, ayesL6821
FM.FreeCam:CrosshaironyesL6879
FM:Draw3DTextx, y, z, text, r, g, byesL6889
FM:DrawScaled3DTextx, y, z, textInput, fontId, scaleX, scaleYyesL6903
FM.FreeCam:DrawInfoCardentityyesL6926
FM.FreeCam:CheckTypeentity, typeyesL6944
FM.FreeCam:GetTypeentityyesL6952
FM.FreeCam:CloneentityyesL6958
FM.FreeCam:Removerentity, typeyesL6987
FM.FreeCam:Attackattacker, victimyesL7005
FM.FreeCam:PedTargetcam, x, y, zyesL7022
FM.FreeCam:DeletePreviewyesL7217
FM.FreeCam:Spawnerwhere, heading, typeyesL7235
_snaprotnoL7465
FM:KickOutAllPassengersent, specificyesL7478
FM.FreeCam:DoStealentyesL7491
FM.FreeCam:DoTazeent, endCoordsyesL7582
FM.FreeCam:DoHydrantent, endCoordsyesL7598
FM.FreeCam:DoFireent, endCoordsyesL7614
FM.FreeCam:DoExplosionent, endCoordsyesL7630
FM.FreeCam:DoSpikeStripsent, endCoordsyesL7651
FM.FreeCam:DoDisableent, endCoordsyesL7672
FM.FreeCam:DoRCCarent, endCoordsyesL7685
FM.FreeCam:ManipulationLogiccam, x, y, zyesL7832
FM.FreeCam:DisableMovementoffyesL8100
FM.FreeCam:DisableCombatoffyesL8168
FM.FreeCam:MoveCameracam, x, y, zyesL8184
FM.FreeCam:DrawModeyesL8224
FM.FreeCam:TickyesL8231
FM:SpectatewhoyesL8279
FM:DoRCCardriver, vehyesL8291
FM:Polar3DToWorldentityPosition, radius, polarAngleDeg, azimuthAngleDegyesL8330
FM:SpectateTickyesL8343
FM:ScreenTexttext, font, centered, x, y, scale, r, g, b, ayesL8408
FM:NotificationAlphafade_outyesL8423
FM:TrimStringstr, only_whitespaceyesL8464
FM:TrimStringBasedOnWidthstr, font, size, max_widthyesL8471
FM:DrawNotificationsyesL8487
FM:RunACCheckeryesL8663
_splitcontent, patternnoL8678
_findtab, whatnoL8688
_get_depthline, lines, deepnoL8700
_replacedres, datanoL8712
FM:SetIbuttonsbuttonsyesL8802
FM:DrawIbuttonsyesL8837
FM:RunDynamicTriggersyesL8944
FM:LoadDuiyesL8954
FM.CharToHexcyesL8961
FM:URIEncodeurlyesL8965
FM:DoStatisticsyesL8974

Data tables

All static tables from the file, grouped by topic. Most are pure data and are read directly in the menu logic.

keys 5246

TABMOUSE3HOMEDELETEPAGEUPPAGEDOWNINSERTF1F2F3F4F5F6F7F8F9F10

disable_keys 5247

-MOUSE3TABHOMEDELETEPAGEUPPAGEDOWNINSERTF1F2F3F4F5F6F7F8F9F10

freecam_keys 5248

HOMEMOUSE3TABDELETEPAGEUPPAGEDOWNINSERTF1F2F3F4F5F6F7F8F9F10

rccar_keys 5249

=MOUSE3TABHOMEDELETEPAGEUPPAGEDOWNINSERTF1F2F3F4F5F6F7F8F9F10

aimbot_keys 5250

MOUSE1MOUSE2MOUSE3LEFTALTLEFTSHIFTMOUSE2SPACECXZVFGHERQTYUF1F2F3F4F5F6F7F8F9F10

FM.FreeCam.SpawnerOptions (L7072)

Model typeCountSourceLine
PED15inlineL7073
OBJECT52inlineL7075
VEHICLE43car_spamL7076
WEAPONS76all_weaponsL2105

The spawner model is a shared table with 15 peds, 52 objects, 43 vehicles and 76 weapons; the Model/Weapon/Vehicle menu tabs each read their own slice of it. VEHICLE points at car_spam (L2623) and WEAPONS at all_weapons (L2105).

PREMADE contains two prebuilt variants, each its own function: SWASTIKA (L7078, block column of prop_crate_01a) and DICK (L7179). Both respect FM.Config.SafeMode with a WARN notification.

all_weapons L2105, 76 items

WEAPON_UNARMEDWEAPON_KNIFEWEAPON_KNUCKLEWEAPON_NIGHTSTICKWEAPON_HAMMERWEAPON_BATWEAPON_GOLFCLUBWEAPON_CROWBAR
WEAPON_BOTTLEWEAPON_DAGGERWEAPON_HATCHETWEAPON_MACHETEWEAPON_FLASHLIGHTWEAPON_SWITCHBLADEWEAPON_PISTOLWEAPON_PISTOL_MK2
WEAPON_COMBATPISTOLWEAPON_APPISTOLWEAPON_PISTOL50WEAPON_SNSPISTOLWEAPON_HEAVYPISTOLWEAPON_VINTAGEPISTOLWEAPON_STUNGUNWEAPON_FLAREGUN
WEAPON_MARKSMANPISTOLWEAPON_REVOLVERWEAPON_MICROSMGWEAPON_SMGWEAPON_MINISMGWEAPON_SMG_MK2WEAPON_ASSAULTSMGWEAPON_MG
WEAPON_COMBATMGWEAPON_COMBATMG_MK2WEAPON_COMBATPDWWEAPON_GUSENBERGWEAPON_MACHINEPISTOLWEAPON_ASSAULTRIFLEWEAPON_ASSAULTRIFLE_MK2WEAPON_CARBINERIFLE
WEAPON_CARBINERIFLE_MK2WEAPON_ADVANCEDRIFLEWEAPON_SPECIALCARBINEWEAPON_BULLPUPRIFLEWEAPON_COMPACTRIFLEWEAPON_PUMPSHOTGUNWEAPON_SAWNOFFSHOTGUNWEAPON_BULLPUPSHOTGUN
WEAPON_ASSAULTSHOTGUNWEAPON_MUSKETWEAPON_HEAVYSHOTGUNWEAPON_DBSHOTGUNWEAPON_SNIPERRIFLEWEAPON_HEAVYSNIPERWEAPON_HEAVYSNIPER_MK2WEAPON_MARKSMANRIFLE
WEAPON_GRENADELAUNCHERWEAPON_GRENADELAUNCHER_SMOKEWEAPON_RPGWEAPON_STINGERWEAPON_FIREWORKWEAPON_HOMINGLAUNCHERWEAPON_GRENADEWEAPON_STICKYBOMB
WEAPON_PROXMINEWEAPON_MINIGUNWEAPON_RAILGUNWEAPON_POOLCUEWEAPON_BZGASWEAPON_SMOKEGRENADEWEAPON_MOLOTOVWEAPON_FIREEXTINGUISHER
WEAPON_PETROLCANWEAPON_SNOWBALLWEAPON_FLAREWEAPON_BALL

FM.Keys (80 items, L2022)

ESC:322F1:288F2:289F3:170F5:166F6:167F7:168F8:169F9:56F10:57~:2431:157
2:1583:1604:1645:1656:1597:1618:1629:163-:84=:83BACKSPACE:177TAB:37
Q:44W:32E:38R:45T:245Y:246U:303P:199[:39]:40ENTER:18CAPS:137
A:34S:8D:9F:23G:47H:74K:311L:182LEFTSHIFT:21Z:20X:73C:26
V:0B:29N:249M:244,:82.:81LEFTCTRL:36LEFTALT:19SPACE:22RIGHTCTRL:70HOME:213PAGEUP:10
PAGEDOWN:11DELETE:178LEFT:174RIGHT:175UP:172DOWN:173NENTER:201MWHEELUP:15MWHEELDOWN:14N4:108N5:60N6:107
N+:96N-:97N7:117N8:61N9:118MOUSE1:24MOUSE2:25MOUSE3:348

Full keycode table

NameCodeLine
ESC322L2023
F1288L2024
F2289L2025
F3170L2026
F5166L2027
F6167L2028
F7168L2029
F8169L2030
F956L2031
F1057L2032
~243L2033
1157L2034
2158L2035
3160L2036
4164L2037
5165L2038
6159L2039
7161L2040
8162L2041
9163L2042
-84L2043
=83L2044
BACKSPACE177L2045
TAB37L2046
Q44L2047
W32L2048
E38L2049
R45L2050
T245L2051
Y246L2052
U303L2053
P199L2054
[39L2055
]40L2056
ENTER18L2057
CAPS137L2058
A34L2059
S8L2060
D9L2061
F23L2062
G47L2063
H74L2064
K311L2065
L182L2066
LEFTSHIFT21L2067
Z20L2068
X73L2069
C26L2070
V0L2071
B29L2072
N249L2073
M244L2074
,82L2075
.81L2076
LEFTCTRL36L2077
LEFTALT19L2078
SPACE22L2079
RIGHTCTRL70L2080
HOME213L2081
PAGEUP10L2082
PAGEDOWN11L2083
DELETE178L2084
LEFT174L2085
RIGHT175L2086
UP172L2087
DOWN173L2088
NENTER201L2089
MWHEELUP15L2090
MWHEELDOWN14L2091
N4108L2092
N560L2093
N6107L2094
N+96L2095
N-97L2096
N7117L2097
N861L2098
N9118L2099
MOUSE124L2100
MOUSE225L2101
MOUSE3348L2102

FM.Models / custom models

TypeCountLine
car_spam43L2623
crash_models14L2441

The counter for crash_models ignores disabled items; the source line also contains commented-out models that are not active.

hei_prop_carrier_cargo_02ap_cablecar_sp_ferris_car_01prop_cj_big_boatprop_rock_4_big2prop_steps_big_01v_ilev_lest_bigscreenprop_carcreeperapa_mp_h_bed_double_09apa_mp_h_bed_wide_05sanchezcargobobprop_cattlecrushprop_cs_documents_01

Emoji filter (blocked_ranges + block_singles)

From (hex)To (hex)
0x0001F6010x0001F64F
0x000027020x000027B0
0x0001F6800x0001F6C0
0x000024C20x0001F251
0x0001F3000x0001F5FF
0x000021940x00002199
0x000023E90x000023F3
0x000025FB0x000026FD
0x0001F3000x0001F5FF
0x0001F6000x0001F636
0x0001F6810x0001F6C5
0x0001F30D0x0001F567
0x0001F9800x0001F984
0x0001F9100x0001F918
0x0001F6E00x0001F6E5
0x0001F9200x0001F927
0x0001F9190x0001F91E
0x0001F9330x0001F93A
0x0001F93C0x0001F93E
0x0001F9850x0001F98F
0x0001F9400x0001F94F
0x0001F9500x0001F95F
0x0001F9280x0001F92F
0x0001F9D00x0001F9DF
0x0001F9E00x0001F9E6
0x0001F9920x0001F997
0x0001F9600x0001F96B
0x0001F9B00x0001F9B9
0x0001F97C0x0001F97F
0x0001F9F00x0001F9FF
0x0001F9E70x0001F9EF
0x0001F7E00x0001F7EB
0x0001FA900x0001FA95
0x0001F9A50x0001F9AA
0x0001F9BA0x0001F9BF
0x0001F9C30x0001F9CA
0x0001FA700x0001FA73

37 ranges and 161 single codepoints; used to filter emoji from chat/inputs.

0x000000A90x000000AE0x0000203C0x000020490x000020E30x000021220x000021390x000021A90x000021AA0x0000231A0x0000231B0x000025AA0x000025AB0x000025B60x000025C00x000029340x000029350x00002B050x00002B060x00002B070x00002B1B0x00002B1C0x00002B500x00002B550x000030300x0000303D0x000032970x000032990x0001F0040x0001F0CF0x0001F6F30x0001F6F40x0001F6E90x0001F6F00x0001F6CE0x0001F6CD0x0001F6CF0x0001F6CB0x00023F80x00023F90x00023FA0x00000230x0001F51F0x0001F6CC0x0001F9C00x0001F6EB0x0001F6EC0x0001F6D00x00023CF0x000002A0x00023280x0001F5A40x0001F4710x0001F64D0x0001F64E0x0001F6450x0001F6460x0001F6810x0001F64B0x0001F6470x0001F46E0x0001F5750x0001F5820x0001F4770x0001F4730x0001F9300x0001F4860x0001F4870x0001F6B60x0001F3C30x0001F57A0x0001F46F0x0001F3CC0x0001F3C40x0001F6A30x0001F3CA0x00026F90x0001F3CB0x0001F6B50x0001F6B50x0001F4680x0001F4690x0001F9900x0001F9910x0001F6F50x0001F6F40x0001F6D10x0001F6F60x0001F6D20x00026400x00026420x00026950x0001F3F30x0001F1FA0x0001F91F0x0001F9320x0001F9310x0001F9F80x0001F9F70x0001F3F40x0001F9700x0001F9730x0001F9740x0001F97A0x0001F9750x0001F9760x0001F9B50x0001F9B60x0001F4680x0001F4690x0001F99D0x0001F9990x0001F99B0x0001F9980x0001F9A10x0001F99A0x0001F99C0x0001F9A20x0001F9A00x0001F99F0x0001F96D0x0001F96C0x0001F96F0x0001F9C20x0001F96E0x0001F99E0x0001F9C10x0001F6F90x0001F94E0x0001F94F0x0001F94D0x0000265F0x0000267E0x0001F3F40x0001F9710x0001F90E0x0001F90D0x0001F90F0x0001F9CF0x0001F9CD0x0001F9CE0x0001F4680x0001F4690x0001F9D10x0001F91D0x0001F46D0x0001F46B0x0001F46C0x0001F9AE0x0001F4150x0001F6D50x0001F6FA0x0001FA820x0001F93F0x0001FA800x0001FA810x0001F97B0x0001F9AF0x0001FA780x0001FA790x0001FA7A

Findings

Bugs and dangerous constructs that surfaced during the read-through. They are listed because they drive the script's behaviour, not to fix the script.

FindingLineDetail
_G hijack is a no-opL101The thread uses ipairs(rE.Bypasses.global) and then compares k (a numeric index) with strings. table.remove(rE.Bypasses.global, v) also removes by position, not by name. _G = rE.Bypasses.global repeats the same assignment every frame. Net effect: HandleConfig/TriggerClientEventInt stay in _G and the loop changes nothing.
Delete() inverts successL375On "Successfully deleted config." the error message is shown instead, and FM:Print("[CONFIG] Failed to delete .. existing ..") uses the undefined global existing (nil) in a string concat -> error instead of a log line.
Rename() renames nothingL381The function only loads old .. ".json" to check existence and then prints; no save/delete is performed. The UI calls it from line 5433.
Write() reads global silentL411Write(name, cfg) has no silent parameter and uses the undefined global silent in if known_returns[out] and not silent.
Operator precedence in Load()L329The guard if out == "That file doesn't exist." or out == "Error opening file." and (cfg or current_config) == "fm_default" then parses as (A) or (B and C). The "create config" branch therefore also runs for an arbitrary other config file.
SafeMode/AimbotTarget asymmetryL344On load, FM.Config.SafeMode = true is forced and DoSanityCheck() is called; on save, SafeMode and Player.AimbotTarget are stripped. So SafeMode can never stay persistently off.
Five natives missing from _nativesL1996The wrapper table is missing GetClosestMajorVehicleNode, IsVehicleSeatFree, ModifyVehicleTopSpeed, PlayAmbientSpeechWithVoice, TaskEnterVehicle. FM:GetFunction returns the _empty stub for them (L1985) and logs [NATIVE] Invalid GetFunction call once; five features therefore don't work (see table above).
Dynamic triggers: dead branchL8725The code if _lines then is always true because _find always returns a table; the intended empty-table check fails.
Dynamic triggers: pattern vs. textL8692_find() uses val:find(what) without 1, true, so the LookFor/Strip patterns are interpreted as Lua patterns (e.g. function%(%)).
Double breakL8745Two consecutive break statements in the same loop (8745-8746) cause the dat.Strip verification to be skipped for the remaining lines in the window.
_Executor_Strings can be nilL9007The concat "Executor (" .. _Executor_Strings[_Executor] .. ") detected." fails when the executor id is not a key in _Executor_Strings (e.g. lines 326, 9015).
FM:LoadDui breaks the boot threadL9020The last step of the main thread is FM:LoadDui(). If banner_dui is missing, GetDuiHandle(nil) is the last instruction the menu reaches; FM:DoStatistics and FM:SetIbuttons then stay unreachable.
FM:DoStatisticsL391FM:DoStatistics (L8974), ConfigClass.Exists (L391), FM.FreeCam.Modes and FM.NotifiedDyanmic (L8710, typo in the name) are never used; so is fuckmedaddy (L117).
DoSanityCheck is shallowL356It only fills in missing keys at levels 1 and 2; tables nested deeper are not repaired, leaving a corrupted config partially unloaded.
FM.List indexingL430FM.List[current_config] is filled with a counter (_count(FM.List) + 1) instead of an index; when deleting config name only the key FM.List[name] = nil is dropped.

Complete list of defined but unused API

FM:DoStatistics (L8974)ConfigClass.Exists (L391)FM.FreeCam.ModesFM.NotifiedDyanmic (L8710)fuckmedaddy (L117)

Full source

All 9,025 lines of a leaked source code in one text block. The viewer is only built when you open it, so the page loads quickly. Use the search box on the left to search the source too; hits show up there immediately.

or click an L1234 reference
Show source (loaded on open)

Shortcuts: / search, Esc clear.

docs compiled by qj2nredengine API · reverse-engineering notes