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.
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
| Lines | Contents |
|---|---|
| 1 - 113 | rE.Bypasses: event/arg filter, override of TriggerServerEventInternal (L91) and the _G thread (L101). |
| 117 | Six global native stubs that suppress AC behaviour. |
| 120 - 9023 | Main thread: config API, _natives table, Painter/UI, features, notifications, branding, AC checker, dynamic triggers, DUI. |
| 8990 - 9022 | Four nested threads inside the main thread: FreeCam, RCCar, Spectate and the boot notifications. |
| 9025 | End of the chunk. |
Threads
| # | Line | Nest | Function |
|---|---|---|---|
| 1 | L1 | top-level | override TriggerServerEventInternal |
| 2 | L101 | top-level | _G loop |
| 3 | L120 | top-level | main 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
Findingssection 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".
| Line | Context | Guard | Effect |
|---|---|---|---|
| L257 | FM:SetConfigList | _Executor ~= "redENGINE" | save FM.List |
| L262 | FM:BuildIdentifier | _Executor ~= "redENGINE" | read/write identifier |
| L277 | FM:GetConfigList | _Executor ~= "redENGINE" | read config list |
| L326 | ConfigClass.Load | _Executor ~= "redENGINE" | notification "custom configs unsupported" |
| L372 | ConfigClass.Delete | _Executor ~= "redENGINE" | silent return |
| L382 | ConfigClass.Rename | _Executor ~= "redENGINE" | silent return |
| L392 | ConfigClass.Exists | _Executor ~= "redENGINE" | silent return |
| L404 | ConfigClass.Write | _Executor ~= "redENGINE" | silent return |
| L424 | ConfigClass.Save | _Executor ~= "redENGINE" | silent return |
| L9006 | boot notification | _Executor ~= "None" | show executor detection |
| L9012 | boot dyntrig | _Executor == "redENGINE" | start dynamic triggers |
| L9015 | boot dyntrig fail | _Executor == "None" | notification "no dynamic triggers" |
| L674 | _natives.LoadResourceFile | _Executor ~= "redENGINE" | return nil |
| L8975 | FM:DoStatistics | FM.Identifier == nil | return 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).
.. _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 string | Meaning | Script reaction |
|---|---|---|
That file doesn't exist. | file missing (load/delete) | FM.List is rebuilt; a config is created |
Error opening file. | read error | same handling as "doesn't exist" |
Tried to save but data was null. | data was nil on save | ERROR notification + console line |
Error deleting config. It doesn't exist. | delete on a missing file | ERROR notification |
Successfully saved config. | save succeeded | SUCCESS behaviour; script treats anything with "Successfully" as good |
Successfully deleted config. | delete succeeded | NOTE: Delete() interprets this as failure (inverted check) |
Every call site in the file:
| Action | File | Line | Function | Third argument |
|---|---|---|---|---|
save | __fm_config_list.json | L258 | FM:SetConfigList | dict.json.encode(FM.List) |
load | __fm_statistics.identifier | L263 | FM:BuildIdentifier | (no third argument) |
save | __fm_statistics.identifier | L267 | FM:BuildIdentifier | Base64("Name=..:Seed=..:Build=..") |
load | __fm_config_list.json | L278 | FM:GetConfigList | (no third argument) |
load | (cfg or current_config) .. ".json" | L327 | ConfigClass.Load | (no third argument) |
save | current_config .. ".json" | L429 | ConfigClass.Save | json.encode(config minus AimbotTarget/SafeMode) |
delete | name .. ".json" | L373 | ConfigClass.Delete | (no third argument) |
load | old .. ".json" | L383 | ConfigClass.Rename | existence check |
load | name .. ".json" | L393 | ConfigClass.Exists | existence check |
save | name .. ".json" | L409 | ConfigClass.Write | json.encode(cfg minus AimbotTarget/SafeMode) |
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)
endThe 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
| Global | Type | Needed for | Notes |
|---|---|---|---|
_Executor | string | required | Executor id; only the exact value "redENGINE" unlocks the config API and dynamic triggers. |
_Executor_Strings | table | required | id -> display name. Only read as _Executor[_Executor]; a missing key = nil = runtime error in the concat. |
HandleConfig | function(action, filename, data?) | required for redENGINE | The only persistent storage the script uses. All 11 call sites are listed in the table above. |
banner_dui | DUI handle | required | Menu background texture. FM:LoadDui fails without this global. |
aE | table (metatable) | required | Used as setmetatable(aF, aE) in the notification render loop; without it the notification queue breaks. |
v_str | string (format template) | required for vehicle branding | v_str:format(...) in the branding thread; without it branding crashes on every vehicle. |
layout | integer | optional | Passed to ScaleformMovieMethodAddParamInt when drawing INSTRUCTIONAL_BUTTONS. |
ChXaC | any | optional | Only used to detect ChocoHax: Pattern = function() return ChXaC ~= nil end. |
7. Executor gate per feature
| Feature | redENGINE | Other executor | Basis |
|---|---|---|---|
| Save/load/delete config | yes | no (notification) | L326 |
Config list (FM.List) | yes | no | L278 |
| Identifier + statistics | yes | no | L262 |
| Dynamic triggers | yes | no (notification) | L9012 |
LoadResourceFile (reading AC/chat/ESX) | yes | no | L674 |
| Menu, features, FreeCam, RC car, ESP | yes | yes | L120 |
| AC checker (resource list) | yes | yes | L8663 |
| Executor detection notification | yes | only 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
endSubstring match (plain find) of the 27 blocked event names:
| # | Event |
|---|---|
| 1 | anticheese |
| 2 | anticheat |
| 3 | antilynx |
| 4 | discordbot |
| 5 | EasyAdmin:CaptureScreenshot |
| 6 | screenshot |
| 7 | cheat |
| 8 | ncpp |
| 9 | ViolationDetected |
| 10 | godModePass |
| 11 | godModeFail |
| 12 | adminGodmodeCheck |
| 13 | illegalWeapon |
| 14 | ybn_ac |
| 15 | x_anticheat |
| 16 | CMG:ban |
| 17 | Choco: |
| 18 | alpha-tango-golf |
| 19 | AC_SYNC:BAN |
| 20 | foundyou |
| 21 | AntiBlips |
| 22 | AntiSpectate |
| 23 | CarlosLR-AC |
| 24 | globalAC:trigger |
| 25 | NWAC |
| 26 | AC:Sanction |
| 27 | ChXa |
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
endscans every string argument of the unpacked msgpack payload against 32 known AC messages:
| # | Substring | Source |
|---|---|---|
| 1 | This player tried to bypass the anticheat | ChocoHax |
| 2 | This player tried to stop the anticheat | ChocoHax |
| 3 | This player injected a mod menu | ChocoHax |
| 4 | 🍫 AntiChocoStop | ChocoHax |
| 5 | 🍫 AntiTeleport | ChocoHax |
| 6 | AntiSpectate | ChocoHax |
| 7 | AntiBlips | ChocoHax |
| 8 | 🍫 Secly | ChocoHax |
| 9 | ChocoHax | ChocoHax |
| 10 | HentaiCore | HentaiCore |
| 11 | `ForceSocialClubUpdate` Removal | ATG |
| 12 | Ham Mafia Executor Detected | ATG |
| 13 | Table Emptying in Resource | ATG |
| 14 | Malicious Function Usage | ATG |
| 15 | Player Health above MAX | ATG |
| 16 | Weapon Damage Modified | ATG |
| 17 | Anti-Resource-Restart | ATG |
| 18 | Manipulation Detected | ATG |
| 19 | Native Draw Detection | ATG |
| 20 | Inventory Exploiting | ATG |
| 21 | RedENGINE detection | ATG |
| 22 | Injection detected | ATG |
| 23 | BlacklistedWeapon: | ATG |
| 24 | Anti-Resource-Stop | ATG |
| 25 | Godmode Activated | ATG |
| 26 | AntiModelChanger | ATG |
| 27 | Infinite Health | ATG |
| 28 | Menu Detection | ATG |
| 29 | Cheat Engine | ATG |
| 30 | #GetHammed | ATG |
| 31 | Native Function | Sanction |
| 32 | BAN | Sanction |
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
0x7FDD1128with the unchanged payload. msgpack.unpackruns 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)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
| Field | Default | Line |
|---|---|---|
FM.Config.Vehicle.Boost | 1.0 | L154 |
FM.Config.Player
| Field | Default | Line |
|---|---|---|
FM.Config.Player.CrossHair | false | L157 |
FM.Config.Player.Blips | true | L158 |
FM.Config.Player.ESP | true | L159 |
FM.Config.Player.ESPDistance | 1000.0 | L160 |
FM.Config.Player.Box | false | L161 |
FM.Config.Player.Bone | false | L162 |
FM.Config.Player.OneTap | false | L163 |
FM.Config.Player.Aimbot | false | L164 |
FM.Config.Player.AimbotNeedsLOS | true | L165 |
FM.Config.Player.TriggerBotNeedsLOS | true | L166 |
FM.Config.Player.TPAimbot | false | L167 |
FM.Config.Player.TPAimbotThreshold | 40.0 | L168 |
FM.Config.Player.TPAimbotDistance | 2.0 | L169 |
FM.Config.Player.RageBot | false | L170 |
FM.Config.Player.TriggerBot | false | L171 |
FM.Config.Player.NoDrop | false | L172 |
FM.Config.Player.AimbotFOV | 90.0 | L173 |
FM.Config.Player.AimbotBone | 1 | L174 |
FM.Config.Player.AimbotKey | "MOUSE1" | L175 |
FM.Config.Player.AimbotReleaseKey | "LEFTALT" | L176 |
FM.Config.Player.TriggerBotDistance | 500.0 | L177 |
FM.Config.Player.TargetInsideVehicles | false | L178 |
FM.Config.root
| Field | Default | Line |
|---|---|---|
FM.Config.root.UseBackgroundImage | true | L180 |
FM.Config.root.UseSounds | true | L181 |
FM.Config.root.UseAutoWalk | false | L182 |
FM.Config.root.UseAutoWalkAlt | false | L183 |
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.ShowText | true | L188 |
FM.Config.root.SafeMode | true | L189 |
FM.Config.root.MenuX | 300 | L190 |
FM.Config.root.MenuY | 300 | L191 |
FM.Config.root.NotifX | nil | L192 |
FM.Config.root.NotifY | nil | L193 |
FM.Config.root.NotifW | 420 | L194 |
FM.Config.root.CurrentSelection | 1 | L195 |
FM.Config.root.SelectedCategory | "category_1" | L196 |
FM.Config.root.UsePrintMessages | false | L197 |
FM.Config.root.Name | "Redengine API" | L199 |
FM.Config.root.Version | "1.2.2c" | L200 |
FM.Config.root.Enabled | true | L201 |
FM.Config.root.Showing | false | L202 |
FM.Config.root.Base64 | {} | L203 |
FM.Config.root.MenuW | 923 | L205 |
FM.Config.root.MenuH | 583 | L206 |
FM.Config.root.DraggingX | nil | L207 |
FM.Config.root.DraggingY | nil | L208 |
FM.Config.root.CurrentPlayer | nil | L209 |
ConfigClass
Seven methods on FM.ConfigClass (L324-444). Every mutating method starts with the redENGINE guard; Load shows a notification instead.
| Method | Line | What it does | Called from |
|---|---|---|---|
Load(cfg) | L325 | Reads (cfg or current_config)..".json"; on missing: Save(true). Sets SafeMode = true and calls DoSanityCheck(). | L5386, L5447, L9018 |
DoSanityCheck() | L356 | Fills in missing keys from FM.DefaultConfig (levels 1 and 2 only). | L345 |
Delete(name) | L371 | HandleConfig("delete", name..".json"); the success check is inverted (see findings). | L5445 |
Rename(old, new) | L381 | Only checks whether old..".json" exists and prints; renames nothing. | L5433 |
Exists(name) | L391 | Returns true if the file loads. | never |
Write(name, cfg) | L403 | json.encode of a copy without Player.AimbotTarget and SafeMode. | L5369, L5412 |
Save(silent) | L423 | Same as Write but for current_config; also updates FM.List. | L332, L349, L3343, L3760+ |
Files used
| File | Contents | Written by |
|---|---|---|
__fm_config_list.json | json.encode(FM.List) - counter per config name | FM:SetConfigList (L258) |
__fm_statistics.identifier | Base64 of Name=<player>:Seed=<5..125>:Build=<version> | FM:BuildIdentifier (L267) |
<name>.json | the full FM.Config as JSON | ConfigClass.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) -> DestroyDuiThe 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
nilthe stub_emptyis 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].funcon the firstGetFunctionand reused afterwards;hashandreturn_asare read from the table on every call. - three return paths:
unpack(args)(Citizen marshalling),table.unpack(args)(plain pass-through) and an optionalreturn_as( Citizen.IN(...) )cast. dict.Citizen.INis an alias forCitizen.InvokeNative(L141).- Citizen accessors per datatype:
ResultAsInteger,ResultAsFloat,ResultAsString,ResultAsObject,ResultAsVectorandPointerValueInt / PointerValueFloat / PointerValueVector / PointerValueIntInitialized. - Hash-to-string conversions happen in the wrapper itself (
GetHashKeyif the first parameter is a string), e.g.RequestModel. - The boundary mechanism (
getBoundaryFuncL452,boundaryIdxL446, result inrunWithBoundaryEndL472) is only used byTriggerEvent(L525) to wrapmsgpack.packin a Citizen boundary.
Full table (272 wrappers)
| Name | Hash | Kind | Arglist / body signature | Citizen accessors | Echo | Used | Line |
|---|---|---|---|---|---|---|---|
TriggerEvent | - | lua | eventName, ... | - | 0 | used | L525 |
TriggerServerEvent | - | lua | eventName, ... | - | 0 | used | L533 |
DestroyCam | 0x865908C81A2C22E9 | native | | - | 0 | used | L541 |
GetCurrentServerEndpoint | 0xEA11BFBA | native + unpack | args[1], dict.Citizen.ResultAsString() | ResultAsString | 1 | used | L544 |
GetCurrentResourceName | 0xE5E9EBBB | native + unpack | args[1], dict.Citizen.ResultAsString() | ResultAsString | 1 | used | L552 |
GetGameTimer | 0x9CD27B0045628463 | native | | ReturnResultAnyway, ResultAsInteger | 0 | used | L560 |
GetActivePlayers | 0xCF143FB9 | native | | ReturnResultAnyway, ResultAsObject | 0 | used | L564 |
GetVehicleMaxNumberOfPassengers | 0xA7C4F2C6E744A550 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 1 | used | L569 |
FindFirstVehicle | 0x15E55694 | native + unpack | dict.Citizen.PointerValueIntInitialized(args[1]), dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger, PointerValueIntInitialized, PointerValueInt | 1 | used | L577 |
FindNextVehicle | 0x8839120D | native + unpack | args[1], dict.Citizen.PointerValueIntInitialized(args[2]), dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway, PointerValueIntInitialized, PointerValueInt | 2 | used | L585 |
EndFindVehicle | 0x9227415A | native + unpack | args[1] | - | 1 | used | L593 |
FindFirstPed | 0xFB012961 | native + unpack | dict.Citizen.PointerValueIntInitialized(args[1]), dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger, PointerValueIntInitialized, PointerValueInt | 1 | used | L601 |
FindNextPed | 0xAB09B548 | native + unpack | args[1], dict.Citizen.PointerValueIntInitialized(args[2]), dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway, PointerValueIntInitialized, PointerValueInt | 2 | used | L609 |
EndFindPed | 0x9615C2AD | native + unpack | args[1] | - | 1 | used | L617 |
FindFirstObject | 0xFAA6CB5D | native + unpack | dict.Citizen.PointerValueIntInitialized(args[1]), dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger, PointerValueIntInitialized, PointerValueInt | 1 | used | L625 |
FindNextObject | 0x4E129DBF | native + unpack | args[1], dict.Citizen.PointerValueIntInitialized(args[2]), dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway, PointerValueIntInitialized, PointerValueInt | 2 | used | L633 |
EndFindObject | 0xDEDA4E50 | native + unpack | args[1] | - | 1 | used | L641 |
GetPlayerServerId | 0x4D97BCC7 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 1 | used | L649 |
GetNumResources | 0x863F27B | native | | ReturnResultAnyway, ResultAsInteger | 0 | used | L657 |
GetResourceByFindIndex | 0x387246B7 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsString() | ReturnResultAnyway, ResultAsString | 1 | used | L661 |
LoadResourceFile | - | lua | ... | - | 0 | used | L669 |
RequestCollisionAtCoord | 0x7503F7948F491A7 | native + unpack | x, y, z, dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 0 | used | L677 |
GetEntityCoords | 0x3FEF770D40960D5A | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsVector() | ReturnResultAnyway, ResultAsVector | 1 | unused | L696 |
RemoveBlip | 0x86A652570E5F25DD | native + unpack | dict.Citizen.PointerValueIntInitialized(args[1]) | PointerValueIntInitialized, PointerValueInt | 1 | used | L704 |
GetNuiCursorPosition | 0xBDBA226F | native | | PointerValueInt | 0 | used | L712 |
DoesEntityExist | 0x7239B21A38F536BA | native + unpack | args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L716 |
IsEntityDead | 0x5F9532F3B5CC2551 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L724 |
IsPedDeadOrDying | 0x3317DEDB88C95038 | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 2 | used | L732 |
IsPedShooting | 0x34616828CD07F1A1 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | unused | L740 |
PlaySoundFrontend | 0x67C540AA08E4A6F5 | native + unpack | args[1], args[2], args[3], args[4] | - | 4 | used | L748 |
GetPedInVehicleSeat | 0xBB40DD2270B65366 | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 2 | used | L756 |
HasAnimDictLoaded | 0xD031A9162D01088C | native + unpack | args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L764 |
CreatePed | 0xD49F9B0955C367DE | native + unpack | args[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, ResultAsInteger | 8 | used | L772 |
CreatePedInsideVehicle | 0x7DD959874C1FD534 | native + unpack | args[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, ResultAsInteger | 6 | used | L780 |
NetworkHasControlOfEntity | 0x1BF60A500E28887 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L788 |
SimulatePlayerInputGait | 0x477D5D63E63ECA5D | native | | - | 0 | unused | L796 |
ResetPedRagdollTimer | 0x9FA4664CF62E47E8 | native | | - | 0 | unused | L799 |
IsVehicleDamaged | 0xBCDC5017D3CE1E9E | native + unpack | args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L802 |
ToggleVehicleMod | 0x2A1F4F37F95BAD08 | native | | - | 0 | used | L810 |
NetworkGetPlayerIndexFromPed | 0x6C0E2E0125610278 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 1 | used | L813 |
ResetPlayerStamina | 0xA6F312FCCE9C1DFE | native | | - | 0 | used | L821 |
GetEntityAlpha | 0x5A47B3B5E63E94C6 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 1 | unused | L824 |
IsEntityVisible | 0x47D6F43D77935C75 | native + unpack | int == 1 end | ReturnResultAnyway, ResultAsInteger | 0 | unused | L832 |
AreAnyVehicleSeatsFree | 0x2D34FC3BC4ADB780 | native + unpack | int == 1 end | ReturnResultAnyway, ResultAsInteger | 0 | used | L841 |
IsEntityVisibleToScript | 0xD796CB5BA8F20E32 | native + unpack | int == 1 end | ReturnResultAnyway, ResultAsInteger | 0 | used | L850 |
NetworkExplodeVehicle | 0x301A42153C9AD707 | native | | - | 0 | used | L859 |
DisplayRadar | 0xA0EBB943C300E693 | native | | - | 0 | used | L862 |
SetCursorLocation | 0xFC695459D4D0E219 | native | | - | 0 | used | L865 |
SetPlayerWeaponDamageModifier | 0xCE07B9F7817AADA3 | native | | - | 0 | used | L868 |
SetPedArmour | 0xCEA04D83135264CC | native | | - | 0 | used | L871 |
SetEntityLocallyInvisible | 0xE135A9FF3F5D05D8 | native | | - | 0 | unused | L874 |
SetVehicleDoorsLockedForPlayer | 0x517AAF684BB50CD1 | native | | - | 0 | used | L877 |
SetVehicleDoorsLockedForAllPlayers | 0xA2F80B8D040727CC | native | | - | 0 | used | L880 |
SetVehicleDoorsLocked | 0xB664292EAECF7FA6 | native | | - | 0 | used | L883 |
SetVehicleTyresCanBurst | 0xEB9DC3C7D8596C46 | native | | - | 0 | used | L886 |
SetVehicleMod | 0x6AF0636DDEDCB6DD | native | | - | 0 | used | L889 |
SetPedCoordsKeepVehicle | 0x9AFEFF481A85AB2E | native | | - | 0 | used | L892 |
SetVehicleEnginePowerMultiplier | 0x93A3996368C94158 | native | | - | 0 | used | L895 |
GetFirstBlipInfoId | 0x1BEDE233E6CD2A1F | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 1 | used | L898 |
GetGroundZFor_3dCoord | 0xC906A7DAB05C8D2B | native + unpack | args[1], args[2], args[3], dict.Citizen.PointerValueFloat(), dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 3 | used | L906 |
GetBlipInfoIdCoord | 0xFA7C7F0AADF25D09 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsVector() | ReturnResultAnyway, ResultAsVector | 1 | used | L914 |
GetNumVehicleMods | 0xE38E9162A2500646 | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 2 | used | L922 |
SetVehicleModKit | 0x1F2AA07F00B3217A | native | | - | 0 | used | L930 |
SetPedToRagdoll | 0xAE99FB955581844A | native | | - | 0 | used | L933 |
SetVehicleFixed | 0x115722B1B9C14C1C | native | | - | 0 | used | L936 |
SetPedKeepTask | 0x971D38760FBC02EF | native | | - | 0 | used | L939 |
NetworkGetNetworkIdFromEntity | 0xA11700682F3AD45C | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 1 | used | L942 |
RemoveWeaponFromPed | 0x4899CB088EDF59B8 | native | | - | 0 | used | L950 |
SetNetworkIdSyncToPlayer | 0xA8A024587329F36A | native | | - | 0 | used | L953 |
SetNetworkIdCanMigrate | 0x299EEB23175895FC | native | | - | 0 | used | L956 |
DoesCamExist | 0xA7A932170592B50E | native | | - | 0 | used | L959 |
CreateCam | 0xC3981DCE61D9E13F | native | | - | 0 | used | L962 |
GetGameplayCamRot | 0x837765A25378F0BB | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsVector() | ReturnResultAnyway, ResultAsVector | 1 | used | L965 |
GetCamRot | 0x7D304C1C955E3E12 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsVector() | ReturnResultAnyway, ResultAsVector | 1 | used | L973 |
StartShapeTestRay | 0x377906D8A31E5586 | native + unpack | args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 9 | used | L981 |
GetShapeTestResult | 0x3D87450E15D98694 | native + unpack | ret[1], ret[2] == 1, ret[3], ret[4], ret[5] | ReturnResultAnyway, ResultAsInteger, PointerValueInt | 0 | used | L989 |
AddExplosion | 0xE3AD2BDBAEE269AC | native | | - | 0 | used | L1002 |
CreateVehicle | 0xAF35D0D2583051B0 | native + unpack | dict.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, ResultAsInteger | 7 | used | L1005 |
SetPedIntoVehicle | 0xF75B0D629E1C063D | native | | - | 0 | used | L1013 |
SetPedAlertness | 0xDBA71115ED9941A6 | native | | - | 0 | used | L1016 |
TaskVehicleDriveWander | 0x480142959D337D00 | native | | - | 0 | used | L1019 |
CreateObject | 0x509D5878EB39E842 | native + unpack | dict.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, ResultAsInteger | 6 | used | L1022 |
DeletePed | 0x9614299DCB53E54B | native + unpack | dict.Citizen.PointerValueIntInitialized(args[1]) | PointerValueIntInitialized, PointerValueInt | 1 | used | L1030 |
DeleteEntity | 0xAE3CBE5BF394C9C9 | native + unpack | dict.Citizen.PointerValueIntInitialized(args[1]) | PointerValueIntInitialized, PointerValueInt | 1 | used | L1038 |
DeleteObject | 0x539E0AE3E6634B9F | native + unpack | dict.Citizen.PointerValueIntInitialized(args[1]) | PointerValueIntInitialized, PointerValueInt | 1 | used | L1046 |
DeleteVehicle | 0xEA386986E786A54F | native + unpack | dict.Citizen.PointerValueIntInitialized(args[1]) | PointerValueIntInitialized, PointerValueInt | 1 | used | L1054 |
NetworkRequestControlOfEntity | 0xB69317BF5E782347 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L1062 |
GetModelDimensions | 0x3E8D3D5F549087A | native + unpack | dict.type(args[1]) == "string" and FM:GetFunction("GetHashKey")(args[1]) or args[1], dict.Citizen.PointerValueVector(), dict.Citizen.PointerValueVector() | - | 1 | used | L1070 |
GetEntityModel | 0x9F47B058362C84B5 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 1 | used | L1078 |
SetEntityAsMissionEntity | 0xAD738C3085FE7E11 | native | | - | 0 | used | L1086 |
SetEntityRotation | 0x8524A8B0171D5E07 | native | | - | 0 | used | L1089 |
SetEntityLocallyVisible | 0x241E289B5C059EDC | native | | - | 0 | used | L1092 |
SetEntityAlpha | 0x44A0870B7E92D7C0 | native | | - | 0 | used | L1095 |
SetEntityCollision | 0x1A9205C1B9EE827F | native | | - | 0 | used | L1098 |
SetEntityCoords | 0x6843DA7060A026B | native | | - | 0 | used | L1101 |
GivePlayerRagdollControl | 0x3C49C870E66F0A28 | native | | - | 0 | used | L1104 |
GetHashKey | 0xD24D37CC275948CC | native + unpack | dict.tostring(args[1]), dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 1 | used | L1107 |
GetVehiclePedIsIn | 0x9A9112A0FE9A4713 | native | | - | 0 | used | L1115 |
PlayerPedId | 0xD80958FC74E988A6 | native | | ReturnResultAnyway, ResultAsInteger | 0 | used | L1118 |
GetPlayerPed | 0x43A66C31C68491C0 | native | | - | 0 | used | L1122 |
HasModelLoaded | 0x98A4EB5D89A0C952 | native + unpack | dict.type(args[1]) == "string" and FM:GetFunction("GetHashKey")(args[1]) or args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L1125 |
SetPedCanRagdoll | 0xB128377056A54E2A | native | | - | 0 | used | L1133 |
RequestModel | 0x963D27A58DF860AC | native + unpack | dict.type(args[1]) == "string" and FM:GetFunction("GetHashKey")(args[1]) or args[1] | - | 1 | used | L1136 |
SetTextFont | 0x66E0276CC5F6B9DA | native | | - | 0 | used | L1144 |
SetTextProportional | 0x38C1F517D7FDCF8 | native | | - | 0 | used | L1147 |
HasStreamedTextureDictLoaded | 0x145F696AAAAD2E4 | native | | - | 0 | used | L1150 |
RequestStreamedTextureDict | 0xDFA2EF8E04127DD5 | native | | - | 0 | used | L1153 |
GetActiveScreenResolution | 0x873C9F3104101DD3 | native | | PointerValueInt | 0 | used | L1156 |
IsDisabledControlJustPressed | 0x91AEF906BCA88877 | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 2 | used | L1160 |
IsDisabledControlJustReleased | 0x305C8DCD79DA8B0F | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 2 | used | L1168 |
IsDisabledControlPressed | 0xE2587F8CBBD87B1D | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 2 | used | L1176 |
IsDisabledControlReleased | 0xFB6C4072E9A32E92 | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 2 | used | L1184 |
IsControlJustPressed | 0x580417101DDB492F | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 2 | used | L1192 |
IsControlJustReleased | 0x50F940259D3841E6 | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 2 | used | L1200 |
IsControlPressed | 0xF3A21BCD95725A4A | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 2 | used | L1208 |
IsControlReleased | 0x648EE3E7F38877DD | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 2 | used | L1216 |
ClearPedTasks | 0xE1EF3C1216AFF2CD | native | | - | 0 | used | L1224 |
ClearPedTasksImmediately | 0xAAA34F8A7CB32098 | native | | - | 0 | used | L1227 |
ClearPedSecondaryTask | 0x176CECF6F920D707 | native | | - | 0 | used | L1230 |
SetEntityProofs | 0xFAEE099C6F890BB8 | native | | - | 0 | used | L1233 |
SetCamActive | 0x26FB97D0A425F84 | native | | - | 0 | used | L1236 |
RenderScriptCams | 0x7E5B515DB0636FC | native + unpack | args[1], args[2], args[3], args[4], args[5] | - | 5 | used | L1239 |
GetEntityForwardVector | 0xA794A5A57F8DF91 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsVector() | ReturnResultAnyway, ResultAsVector | 1 | used | L1247 |
RequestAnimDict | 0xD3BD40951412FEF6 | native | | - | 0 | used | L1255 |
SetTextScale | 0x7C837F9A01C34C9 | native | | - | 0 | used | L1258 |
SetTextColour | 0xBE6B23FFA53FB442 | native | | - | 0 | used | L1261 |
SetTextDropShadow | 0x465C84BC39F1C351 | native | | - | 0 | used | L1264 |
SetTextEdge | 0x441603240D202FA6 | native | | - | 0 | used | L1267 |
SetTextOutline | 0x2513DFB0FB8400FE | native | | - | 0 | used | L1270 |
ClearPedBloodDamage | 0x8FE22675A5A45817 | native | | - | 0 | used | L1273 |
SetEntityHealth | 0x6B76DC1F3AE6E6A3 | native | | - | 0 | used | L1276 |
NetworkResurrectLocalPlayer | 0xEA23C49EAA83ACFB | native | | - | 0 | used | L1279 |
SetTextCentre | 0xC02F4DBFB51D988B | native | | - | 0 | used | L1282 |
BeginTextCommandDisplayText | 0x25FBB336DF1804CB | native | | - | 0 | used | L1285 |
BeginTextCommandWidth | 0x54CE8AC98E120CAB | native | | - | 0 | used | L1288 |
EndTextCommandGetWidth | 0x85F061DA64ED2F67 | native + unpack | args[1], dict.Citizen.ResultAsFloat() | ResultAsFloat | 1 | used | L1291 |
GetTextScaleHeight | 0xDB88A37483346780 | native + unpack | args[1], args[2], dict.Citizen.ResultAsFloat() | ResultAsFloat | 2 | unused | L1299 |
DrawSprite | 0xE7FFAE5EBF23D890 | native | | - | 0 | used | L1307 |
FreezeEntityPosition | 0x428CA6DBD1094446 | native | | - | 0 | used | L1310 |
GetPedBoneIndex | 0x3F428D08BE5AAE31 | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 2 | used | L1313 |
GetPedBoneCoords | 0x17C07FC640E86B4E | native + unpack | args[1], args[2], args[3], args[4], args[5], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsVector() | ReturnResultAnyway, ResultAsVector | 5 | used | L1321 |
SetPedShootsAtCoord | 0x96A05E4FB321B1BA | native | | - | 0 | used | L1329 |
GetEntityBoneIndexByName | 0xFB71170B7E76ACBA | native + unpack | args[1], dict.tostring(args[2]), dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 2 | unused | L1332 |
GetOffsetFromEntityInWorldCoords | 0x1899F328B0E12848 | native + unpack | args[1], x, y, z, dict.Citizen.ResultAsVector() | ResultAsVector | 1 | used | L1340 |
AddTextComponentSubstringPlayerName | 0x6C188BE134E074AA | native | | - | 0 | used | L1359 |
EndTextCommandDisplayText | 0xCD015E5BB0D96A57 | native | | - | 0 | used | L1362 |
IsPedInAnyVehicle | 0x997ABD671D25CA0B | native | | - | 0 | used | L1365 |
GetEntityHeading | 0xE83D4F9BA2A38914 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsFloat() | ReturnResultAnyway, ResultAsFloat | 1 | used | L1368 |
AddBlipForCoord | 0x5A039BB0BCA604B6 | native | | - | 0 | used | L1376 |
SetBlipSprite | 0xDF735600A4696DAF | native | | - | 0 | used | L1379 |
SetBlipColour | 0x3D7FB09E75D6B7E | native | | - | 0 | unused | L1382 |
SetBlipScale | 0xD38744167B2FA257 | native | | - | 0 | used | L1385 |
SetBlipCoords | 0xAE2AF67E9D9AF65D | native | | - | 0 | used | L1388 |
SetBlipRotation | 0xF87683CDF73C3F6E | native | | - | 0 | used | L1391 |
ShowHeadingIndicatorOnBlip | 0x5FBCA48327B914DF | native | | - | 0 | used | L1394 |
SetBlipCategory | 0x234CDD44D996FD9A | native | | - | 0 | used | L1397 |
BeginTextCommandSetBlipName | 0xF9113A30DE5C6670 | native | | - | 0 | used | L1400 |
GetPlayerName | 0x6D0DE6A7B5DA71F8 | native + unpack | args[1], dict.Citizen.ResultAsString() | ResultAsString | 1 | used | L1403 |
EndTextCommandSetBlipName | 0xBC38B49BCB83BC9B | native | | - | 0 | used | L1411 |
DrawRect | 0x3A618A217E5154F0 | native | | - | 0 | used | L1414 |
IsEntityInAir | 0x886E37EC497200B6 | native | | - | 0 | used | L1417 |
DisableAllControlActions | 0x5F4B6931816E599B | native | | - | 0 | used | L1420 |
TaskWanderStandard | 0xBB9CE077274F6A1B | native | | - | 0 | used | L1423 |
TaskWarpPedIntoVehicle | 0x9A7D091411C5F684 | native | | - | 0 | used | L1426 |
SetMouseCursorActiveThisFrame | 0xAAE7CE1D63167423 | native | | - | 0 | used | L1429 |
SetMouseCursorSprite | 0x8DB8CFFD58B62552 | native | | - | 0 | used | L1432 |
GiveDelayedWeaponToPed | 0xB282DC6EBD803C75 | native | | - | 0 | used | L1435 |
ApplyForceToEntity | 0xC5F68BE9613E2D18 | native | | - | 0 | used | L1438 |
GetScreenCoordFromWorldCoord | 0x34E82F05DF2974F5 | native + unpack | x, y, z, dict.Citizen.PointerValueFloat(), dict.Citizen.PointerValueFloat(), dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 0 | used | L1441 |
NetworkIsPlayerTalking | 0x31E11F3D447647E | native + unpack | args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L1460 |
SetDrawOrigin | 0xAA0008F3BBB8F416 | native | | - | 0 | used | L1468 |
ClearDrawOrigin | 0xFF0B610F6BE0D7AF | native | | - | 0 | used | L1471 |
GetRenderingCam | 0x5234F9F10919EABA | native | | ReturnResultAnyway, ResultAsInteger | 0 | used | L1474 |
GetGameplayCamCoord | 0x14D6F5678D8F1B37 | native | | ReturnResultAnyway, ResultAsVector | 0 | used | L1478 |
GetFinalRenderedCamCoord | 0xA200EB1EE790F448 | native | | ReturnResultAnyway, ResultAsVector | 0 | used | L1482 |
GetGameplayCamFov | 0x65019750A0324133 | native | | ReturnResultAnyway, ResultAsFloat | 0 | used | L1486 |
ObjToNet | 0x99BFDC94A603E541 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 1 | used | L1490 |
StatSetInt | 0xB3271D7AB655B441 | native + unpack | dict.type(args[1]) == "string" and FM:GetFunction("GetHashKey")(args[1]) or args[1], args[2], args[3], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 3 | used | L1498 |
NetworkSetNetworkIdDynamic | 0x2B1813ABA29016C5 | native | | - | 0 | used | L1506 |
SetNetworkIdExistsOnAllMachines | 0xE05E81A888FA63C8 | native | | - | 0 | used | L1509 |
GetDistanceBetweenCoords | 0xF1B760881820C952 | native + unpack | args[1], args[2], args[3], args[4], args[5], args[6], args[7], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsFloat() | ReturnResultAnyway, ResultAsFloat | 7 | used | L1512 |
SetEntityHeading | 0x8E2530AA8ADA980E | native | | - | 0 | used | L1520 |
HasScaleformMovieLoaded | 0x85F01B8D5B90570E | native + unpack | args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L1523 |
RequestScaleformMovie | 0x11FE353CF9733E6F | native + unpack | dict.tostring(args[1]), dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 1 | used | L1531 |
BeginScaleformMovieMethod | 0xF6E48914C7A8694E | native | | - | 0 | used | L1539 |
EndScaleformMovieMethodReturnValue | 0xC50AA39A577AF886 | native | | ReturnResultAnyway, ResultAsInteger | 0 | used | L1542 |
ScaleformMovieMethodAddParamInt | 0xC3D0841A0CC546A6 | native | | - | 0 | used | L1546 |
ScaleformMovieMethodAddParamTextureNameString | 0xBA7148484BD90365 | native | | - | 0 | used | L1549 |
DisableControlAction | 0xFE99B66D079CF6BC | native | | - | 0 | used | L1552 |
PlayerId | 0x4F8644AF03D0E0D6 | native | | ReturnResultAnyway, ResultAsInteger | 0 | used | L1555 |
ShootSingleBulletBetweenCoords | 0x867654CBC7606F2C | native + unpack | args[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] | - | 13 | used | L1559 |
ClearAreaOfProjectiles | 0xA1CB9094635D1A6 | native | | - | 0 | unused | L1567 |
GetPedLastWeaponImpactCoord | 0x6C4D0409BA1A2BC2 | native + unpack | args[1], dict.Citizen.PointerValueVector(), dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L1570 |
SetExplosiveMeleeThisFrame | 0xFF1BED81BFDC0FE0 | native | | - | 0 | used | L1578 |
GetCurrentPedWeaponEntityIndex | 0x3B390A939AF0B5FC | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 1 | used | L1581 |
GetSelectedPedWeapon | 0xA6DB4965674D243 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 1 | used | L1589 |
PedSkipNextReloading | 0x8C0D57EA686FAD87 | native | | - | 0 | used | L1597 |
GetMaxAmmoInClip | 0xA38DCFFCEA8962FA | native + unpack | args[1], dict.type(args[2]) == "string" and FM:GetFunction("GetHashKey")(args[2]) or args[2], args[3], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 3 | used | L1600 |
GetAmmoInClip | 0x2E1202248937775C | native + unpack | args[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, PointerValueInt | 3 | used | L1608 |
IsPlayerFreeAiming | 0x2E397FD2ECD37C87 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L1616 |
IsPedDoingDriveby | 0xB2C086CC1BF8F2BF | native + unpack | args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L1624 |
GetEntityPlayerIsFreeAimingAt | 0x2975C866E6713290 | native + unpack | args[1], dict.Citizen.PointerValueIntInitialized(args[2]), dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway, PointerValueIntInitialized, PointerValueInt | 2 | used | L1632 |
IsPlayerFreeAimingAtEntity | 0x3C06B5C839B38F7B | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 2 | unused | L1640 |
DisablePlayerFiring | 0x5E6CC07646BBEAB8 | native | | - | 0 | used | L1648 |
SetFocusPosAndVel | 0xBB7454BAFF08FE25 | native | | - | 0 | used | L1651 |
SetCamCoord | 0x4D41783FB745E42E | native | | - | 0 | used | L1654 |
SetCamActive | 0x26FB97D0A425F84 | native | | - | 0 | used | L1657 |
SetCamFov | 0xB13C14F66A00D047 | native | | - | 0 | unused | L1660 |
SetCamRot | 0x85973643155D0B07 | native | | - | 0 | used | L1663 |
SetCamShakeAmplitude | 0xD93DB43B82BC0D00 | native | | - | 0 | unused | L1666 |
UpdateOnscreenKeyboard | 0xCF2B696BBF945AE | native | | ReturnResultAnyway, ResultAsInteger | 0 | used | L1669 |
CancelOnscreenKeyboard | 0x58A39BE597CE99CD | native | | - | 0 | used | L1673 |
SetVehicleFixed | 0x115722B1B9C14C1C | native | | - | 0 | used | L1676 |
SetVehicleDirtLevel | 0x79D3B596FE44EE8B | native | | - | 0 | unused | L1679 |
SetVehicleLights | 0x34E710FF01247C5A | native | | - | 0 | unused | L1682 |
SetVehicleBurnout | 0xFB8794444A7D60FB | native | | - | 0 | unused | L1685 |
SetVehicleLightsMode | 0x1FD09E7390A74D54 | native | | - | 0 | unused | L1688 |
GetCamMatrix | 0x8F57A89D | native + unpack | args[1], dict.Citizen.PointerValueVector(), dict.Citizen.PointerValueVector(), dict.Citizen.PointerValueVector(), dict.Citizen.PointerValueVector() | - | 1 | used | L1691 |
DoesEntityHaveDrawable | 0x60D6E96F8B8E48D | native + unpack | args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L1699 |
IsEntityAnObject | 0x8D68C8FD0FACA94E | native + unpack | args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L1707 |
IsEntityAVehicle | 0x6AC7003FA6E5575E | native + unpack | args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L1715 |
SetNewWaypoint | 0xFE43368D2AA4F2FC | native | | - | 0 | used | L1723 |
HasEntityClearLosToEntityInFront | 0x267D00AF114F17A | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 2 | used | L1726 |
HasEntityClearLosToEntity | 0xFCDFF7B72D23A1AC | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 2 | used | L1734 |
IsEntityAPed | 0x524AC5ECEA15343E | native + unpack | args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L1742 |
GetControlInstructionalButton | 0x499D7B09FC9B407 | native + unpack | args[1], args[2], args[3], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsString() | ReturnResultAnyway, ResultAsString | 3 | used | L1750 |
DrawScaleformMovie | 0x54972ADAF0294A93 | native | | - | 0 | used | L1758 |
SetFocusEntity | 0x198F77705FA0931D | native | | - | 0 | used | L1761 |
DrawLine | 0x6B7256074AE34680 | native | | - | 0 | used | L1764 |
DrawPoly | 0xAC26716048436851 | native | | - | 0 | used | L1767 |
GetEntityRotation | 0xAFBD61CC738D9EB9 | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsVector() | ReturnResultAnyway, ResultAsVector | 2 | used | L1770 |
TaskPlayAnim | 0xEA47FE3719165B94 | native | | - | 0 | used | L1778 |
TaskVehicleTempAction | 0xC429DCEEB339E129 | native | | - | 0 | used | L1781 |
AttachEntityToEntity | 0x6B9BBD38AB0796DF | native | | - | 0 | used | L1784 |
SetRunSprintMultiplierForPlayer | 0x6DB47AA77FD94E09 | native | | - | 0 | used | L1787 |
SetSuperJumpThisFrame | 0x57FFF03E423A4C0B | native | | - | 0 | used | L1790 |
SetPedMoveRateOverride | 0x85BF80FA50A39D1 | native | | - | 0 | used | L1793 |
DisplayOnscreenKeyboard | 0xDC833F2568DBF6 | native | | - | 0 | used | L1796 |
GetOnscreenKeyboardResult | 0x8362B09B91893647 | native | | ReturnResultAnyway, ResultAsString | 0 | used | L1799 |
SetEntityVisible | 0xEA1C610A04DB6BBB | native | | - | 0 | used | L1803 |
SetEntityInvincible | 0x3882114BDE571AD4 | native | | - | 0 | used | L1806 |
TaskSetBlockingOfNonTemporaryEvents | 0x90D2156198831D69 | native | | - | 0 | used | L1809 |
GiveWeaponToPed | 0xBF0FD6E56C964FCB | native | | - | 0 | used | L1812 |
SetPedAccuracy | 0x7AEFB85C1D49DEB6 | native | | - | 0 | used | L1815 |
SetPedAlertness | 0xDBA71115ED9941A6 | native | | - | 0 | used | L1818 |
TaskCombatPed | 0xF166E48407BAC484 | native | | - | 0 | used | L1821 |
SetPlayerModel | 0xA1CADD00108836 | native + unpack | args[1], dict.type(args[2]) == "string" and FM:GetFunction("GetHashKey")(args[2]) or args[2] | - | 2 | used | L1824 |
GetDisplayNameFromVehicleModel | 0xB215AAC32D25D019 | native + unpack | dict.type(args[1]) == "string" and FM:GetFunction("GetHashKey")(args[1]) or args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsString() | ReturnResultAnyway, ResultAsString | 1 | unused | L1832 |
SetPedRandomComponentVariation | 0xC8A9481A01E63C28 | native | | - | 0 | used | L1840 |
SetPedRandomProps | 0xC44AA05345C992C6 | native | | - | 0 | used | L1843 |
SetVehicleEngineOn | 0x2497C4717C8B881E | native | | - | 0 | used | L1846 |
SetVehicleForwardSpeed | 0xAB54A438726D25D5 | native | | - | 0 | used | L1849 |
SetVehicleCurrentRpm | 0x2A01A8FC | native | | - | 0 | used | L1852 |
IsModelValid | 0xC0296A2EDF545E92 | native + unpack | dict.type(args[1]) == "string" and FM:GetFunction("GetHashKey")(args[1]) or args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L1855 |
IsModelAVehicle | 0x19AAC8F07BFEC53E | native + unpack | dict.type(args[1]) == "string" and FM:GetFunction("GetHashKey")(args[1]) or args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L1863 |
IsPedWeaponReadyToShoot | 0xB80CA294F2F26749 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 1 | used | L1871 |
SetPedComponentVariation | 0x262B14F48D29DE80 | native | | - | 0 | used | L1879 |
GetEntityHealth | 0xEEF059FAD016D209 | native + unpack | args[1], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 1 | unused | L1882 |
GetAmmoInPedWeapon | 0x15A522136D7F951 | native + unpack | args[1], dict.type(args[2]) == "string" and FM:GetFunction("GetHashKey")(args[2]) or args[2], args[3], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 3 | unused | L1890 |
GetMaxAmmo | 0xDC16122C7A20C933 | native + unpack | args[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, PointerValueInt | 3 | used | L1898 |
GetAmmoInPedWeapon | 0x15A522136D7F951 | native + unpack | args[1], dict.type(args[2]) == "string" and FM:GetFunction("GetHashKey")(args[2]) or args[2], args[3], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 3 | unused | L1906 |
GetPedPropIndex | 0x898CC20EA75BACD8 | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 2 | used | L1914 |
GetPedPropTextureIndex | 0xE131A28626F81AB2 | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 2 | used | L1922 |
GetPedDrawableVariation | 0x67F3780DD425D4FC | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 2 | used | L1930 |
GetPedTextureVariation | 0x4A355E041E004E6 | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 2 | used | L1938 |
GetPedPaletteVariation | 0xE3DD5F2A84B42281 | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsInteger() | ReturnResultAnyway, ResultAsInteger | 2 | used | L1946 |
SetPedPropIndex | 0x93376B65A266EB5F | native | | - | 0 | used | L1954 |
SetPedAmmo | 0x14E56BC5B5DB6A19 | native | | - | 0 | used | L1957 |
SetAmmoInClip | 0xDCD2A934D65CB497 | native + unpack | args[1], dict.type(args[2]) == "string" and FM:GetFunction("GetHashKey")(args[2]) or args[2], args[3], dict.Citizen.ReturnResultAnyway() | ReturnResultAnyway | 3 | used | L1960 |
GetDisabledControlNormal | 0x11E65974A982637C | native + unpack | args[1], args[2], dict.Citizen.ReturnResultAnyway(), dict.Citizen.ResultAsFloat() | ReturnResultAnyway, ResultAsFloat | 2 | used | L1968 |
TaskLookAtEntity | 0x69F4BE8C8CC4796C | native | | - | 0 | unused | L1976 |
PointCamAtEntity | 0x5640BFF86B16E8DC | native | | - | 0 | used | L1979 |
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 name | Effect | Called on |
|---|---|---|
GetClosestMajorVehicleNode | no effect: _empty instead of the native | |
IsVehicleSeatFree | no effect: _empty instead of the native | |
ModifyVehicleTopSpeed | no effect: _empty instead of the native | |
PlayAmbientSpeechWithVoice | no effect: _empty instead of the native | |
TaskEnterVehicle | no 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).
ClearAreaOfProjectilesGetAmmoInPedWeaponGetDisplayNameFromVehicleModelGetEntityAlphaGetEntityBoneIndexByNameGetEntityCoordsGetEntityHealthGetTextScaleHeightIsEntityVisibleIsPedShootingIsPlayerFreeAimingAtEntityResetPedRagdollTimerSetBlipColourSetCamFovSetCamShakeAmplitudeSetEntityLocallyInvisibleSetVehicleBurnoutSetVehicleDirtLevelSetVehicleLightsSetVehicleLightsModeSimulatePlayerInputGaitTaskLookAtEntityUI: 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.
| Function | Arguments | Local | Line |
|---|---|---|---|
FM.Painter:GetTextWidth | str, font, scale | yes | L3194 |
FM.Painter:DrawText | text, font, centered, x, y, scale, r, g, b, a | yes | L3198 |
FM.Painter:ListItem | label, px, py, x, y, w, h, r, g, b, a, id | yes | L3219 |
FM.Painter:DrawSprite | x, y, w, h, heading, dict, name, r, g, b, a, custom | yes | L3263 |
FM.Painter:ListChoice | label, options, px, py, x, y, w, h, r, g, b, a, id, selected, unbind_caller | yes | L3273 |
FM.Painter:CheckBox | label, bool, px, py, x, y, w, h, r, g, b, a, id, centered, size | yes | L3354 |
FM.Painter:Button | label, px, py, x, y, w, h, r, g, b, a, id, centered, size | yes | L3404 |
FM.Painter:DrawRect | x, y, w, h, r, g, b, a | yes | L3434 |
FM.Painter:Hovered | x, y, w, h | yes | L3440 |
FM.Painter:Holding | x, y, w, h, id | yes | L3452 |
FM.Painter:Clicked | x, y, w, h | yes | L3470 |
Widget types in the categories
| Type | Count | Meaning |
|---|---|---|
Button | 51 | a clickable button; id is used for drag/drop and as a unique draw key |
CheckBox | 54 | toggle; writes to the linked FM.Config path |
ListChoice | 9 |
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).
| Type | Label | Id | Config path | Line |
|---|---|---|---|---|
| CheckBox | GOD MODE | god_enabled | self.Config.Player.God | L3755 |
| Button | TELEPORT TO COORDS | teleport_to_coords | - | L3766 |
| Button | TELEPORT TO WAYPOINT | teleport_to_waypoint | - | L3803 |
| CheckBox | SEMI GOD MODE | semi_god_enabled | self.Config.Player.SemiGod | L3809 |
| CheckBox | ANTI AFK | anti_afk | self.Config.Player.AntiAFK | L3816 |
| CheckBox | INFINITE STAMINA | infinite_stamina | self.Config.Player.InfiniteStamina | L3823 |
| CheckBox | NO RAGDOLL | no_ragdoll_enabled | self.Config.Player.NoRagdoll | L3830 |
| CheckBox | INVISIBILITY | invisibility_enabled | self.Config.Player.Invisibility | L3837 |
| CheckBox | REVEAL INVISIBLE PLAYERS | reveal_invis_players | self.Config.Player.RevealInvisibles | L3844 |
| CheckBox | FAST RUN | fast_af_runna_enabled | self.Config.Player.FastRun | L3851 |
| CheckBox | SUPER JUMP | big_jump_enabled | self.Config.Player.SuperJump | L3858 |
| CheckBox | SUPER MAN | super_man_enabled | self.Config.Player.SuperMan | L3865 |
| CheckBox | MAGIC CARPET | magic_carpet_enabled | self.Config.Player.MagicCarpet | L3876 |
| CheckBox | FAKE DEAD | fake_dead | self.Config.Player.FakeDead | L3883 |
| CheckBox | FORCE RADAR | force_radar | self.Config.Player.ForceRadar | L3890 |
| Button | HEAL | heal_option | - | L3897 |
| Button | GIVE ARMOR | armor_option | - | L3905 |
| Button | SUICIDE | suicide_option | - | L3912 |
| Button | REVIVE ~g~ESX | esx_revive | - | L3920 |
| Button | REVIVE | native_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).
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).
| Type | Label | Id | Config path | Line |
|---|---|---|---|---|
| CheckBox | TRIGGER BOT | trigger_bot_enabled | self.Config.Player.TriggerBot | L3985 |
| CheckBox | ANTI AIM | anti_aim_enabled | self.Config.Player.AntiAim | L3992 |
| CheckBox | TRIGGER BOT NEEDS LOS | triggerbot_need_los_enabled | self.Config.Player.TriggerBotNeedsLOS | L3999 |
| CheckBox | AIMBOT | aimbot_enabled | self.Config.Player.Aimbot | L4006 |
| CheckBox | AIMBOT NEEDS LOS | aimbot_need_los_enabled | self.Config.Player.AimbotNeedsLOS | L4013 |
| CheckBox | TP TO AIMBOT TARGET | tpaimbot_enabled | self.Config.Player.TPAimbot | L4020 |
| CheckBox | DRAW AIMBOT FOV | draw_aimbot_fov | self.Config.Player.AimbotDrawFOV | L4027 |
| CheckBox | ONLY TARGET PLAYERS | only_target_players | self.Config.Player.OnlyTargetPlayers | L4034 |
| CheckBox | TRIGGER BOT TARGET VEHICLES | target_inside_vehicles | self.Config.Player.TargetInsideVehicles | L4041 |
| CheckBox | INFINITE COMBAT ROLL | infinite_combat_roll | self.Config.Player.InfiniteCombatRoll | L4048 |
| CheckBox | ~r~RAGE ~w~BOT | rage_bot | self.Config.Player.RageBot | L4055 |
| CheckBox | NO BULLET DROP | no_bullet_drop | self.Config.Player.NoDrop | L4062 |
| CheckBox | NO RELOAD | no_reload | self.Config.Player.NoReload | L4069 |
| CheckBox | INFINITE AMMO | infinite_ammo | self.Config.Player.InfiniteAmmo | L4076 |
| CheckBox | RAPID FIRE | rapid_fire | self.Config.Player.RapidFire | L4083 |
| CheckBox | EXPLOSIVE AMMO | explosive_ammo | self.Config.Player.ExplosiveAmmo | L4090 |
| CheckBox | ONE TAP | one_tap_enabled | self.Config.Player.OneTap | L4097 |
| ListChoice | AIMBOT BONE: | aimbot_bone | - | L4108 |
| Button | AIMBOT FOV: | set_aimbot_fov | - | L4115 |
| Button | TRIGGER BOT DISTANCE: | set_trigger_bot_distance | - | L4126 |
| Button | TP AIMBOT THRESHOLD: | set_tp_aimbot_threshold | - | L4137 |
| Button | TP 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).
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).
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).
| Type | Label | Id | Config path | Line |
|---|---|---|---|---|
| CheckBox | VEHICLE GOD MODE | vehicle_god_mode | self.Config.Vehicle.GodMode | L4675 |
| CheckBox | BULLET PROOF TIRES | bulletproof_enabled | self.Config.Vehicle.BulletProofTires | L4682 |
| Button | DELETE VEHICLE | delete_self_vehicle | - | L4689 |
| Button | SPAWN VEHICLE | spawn_self_vehicle | - | L4702 |
| Button | REPAIR VEHICLE | repair_vehicle | - | L4715 |
| Button | MAX VEHICLE OUT | max_out_vehicle | - | L4724 |
| ListChoice | VEHICLE ENGINE BOOST: | vehicle_boost | - | L4741 |
| Button | UNLOCK CLOSEST VEHICLE | unlock_closest_vehicle | - | L4748 |
| Button | DISABLE CLOSEST VEHICLE | disable_closest_vehicle | - | L4757 |
| Button | DELETE CLOSEST VEHICLE | delete_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).
| Type | Label | Id | Config path | Line |
|---|---|---|---|---|
| CheckBox | INCLUDE SELF | online_include_self | FM.Config.OnlineIncludeSelf | L4775 |
| CheckBox | LAG SERVER | lag_server_out | _use_lag_server | L4782 |
| CheckBox | HYDRANT LOOP | hydrant_loop_all | _use_hydrant_loop | L4799 |
| CheckBox | FIRE LOOP | fire_loop_all | _use_fire_loop | L4816 |
| CheckBox | TAZE LOOP | taze_loop_all | _use_taze_loop | L4833 |
| CheckBox | DELETE VEHICLES LOOP | delete_all_vehicles_loop | _use_delete_loop | L4850 |
| CheckBox | EXPLODE VEHICLES LOOP | explode_vehicles_loop | _use_explode_vehicle_loop | L4867 |
| CheckBox | EXPLODE PLAYERS LOOP | explode_player_loop | _use_explode_player_loop | L4884 |
| CheckBox | LAUNCH VEHICLE LOOP | _use_launch_loop | _use_launch_loop | L4901 |
| Button | JAIL ALL ~g~ESX ~w~(SHIFT FOR REASON) | jail_all_bitches | - | L4919 |
| Button | REMOVE ALL WEAPONS | remove_everyones_weapons | - | L4947 |
| Button | GIVE ALL WEAPONS | give_everyone_weapons | - | L4967 |
| Button | EXPLODE EVERYONE | explode_everyone | - | L4987 |
| Button | TURN ALL CARS INTO RAMPS | ramp_all_cars | - | L5009 |
| Button | TURN ALL CARS INTO FIB BUILDING | fib_all_cars | - | L5041 |
| Button | DELETE VEHICLES | delete_all_vehicles | - | L5071 |
| Button | VEHICLE SPAM SERVER | vehicle_spam_server | - | L5078 |
| Button | SWASTIKA ALL | swastika_all | - | L5088 |
| Button | GAS ALL | gas_all | - | L5113 |
| Button | CARRY ALL | carry_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).
FM:World 5241
World manipulation separate from the menu tabs (1 widget).Called as FM:World(x, y, w, h, scale, self, x, y).
| Type | Label | Id | Config path | Line |
|---|---|---|---|---|
| Button | 9/11 BOMBING | 9_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).
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).
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).
| Type | Label | Id | Config path | Line |
|---|---|---|---|---|
| CheckBox | SHOW SCREEN ELEMENTS | text_settings_enabled | self.Config.ShowText | L5467 |
| CheckBox | MENU SOUNDS | menu_sounds | self.Config.UseSounds | L5474 |
| CheckBox | AUTO MOVE WITH MENU OPEN | auto_walk_enabled | self.Config.UseAutoWalk | L5481 |
| CheckBox | AUTO MOVE WITH FREECAM / RC CAR | auto_walk_alt_enabled | self.Config.UseAutoWalkAlt | L5488 |
| CheckBox | SAFE MODE | safe_mode | self.Config.SafeMode | L5495 |
| CheckBox | DRAW BACKGROUND IMAGE | use_bg_image | self.Config.UseBackgroundImage | L5502 |
| CheckBox | USE PRINT MESSAGES | use_print_images | self.Config.UsePrintMessages | L5509 |
| ListChoice | TOGGLE KEY: | toggle_key | - | L5516 |
| ListChoice | DISABLE KEY: | disable_key | - | L5523 |
| ListChoice | FREECAM KEY: | freecam_key | - | L5530 |
| ListChoice | RC CAR CAM KEY: | rccar_key | - | L5537 |
| ListChoice | AIMBOT KEY: | aimbot_key | - | L5544 |
| ListChoice | AIMBOT 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.
| Name | Called on | What breaks because of it |
|---|---|---|
TaskEnterVehicle | L2908, L2926 | Sending an NPC/ped into a vehicle |
PlayAmbientSpeechWithVoice | L6699 | Audio insults from the spotter |
IsVehicleSeatFree | L7480 | Finding a free seat in the teleport/seat loop |
ModifyVehicleTopSpeed | L7571 | Top speed of the boost feature |
GetClosestMajorVehicleNode | L7508, L7715 | Ground 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 / global | Count | Lines |
|---|---|---|
PlayerId | 19 | L2635, L2669, L2695, L2716, L2737, L2802 |
IsDisabledControlJustPressed | 8 | L7589, L7605, L7621, L7637, L7663, L7674 |
IsDisabledControlPressed | 4 | L4391, L6299, L8055, L8059 |
GetGameplayCamRelativeHeading | 4 | L7877, L7879, L7881, L7883 |
load | 2 | L5259, L5332 |
GetDisplayNameFromVehicleModel | 2 | L8597, L8611 |
GetEntityModel | 2 | L8597, L8611 |
TriggerEventInternal | 1 | L530 |
SetVehicleUndriveable | 1 | L2865 |
SetVehicleWheelWidth | 1 | L2866 |
GetVehicleNumberOfWheels | 1 | L2868 |
SetVehicleWheelTireColliderSize | 1 | L2869 |
SetVehicleWheelSize | 1 | L2870 |
SetVehicleWheelTireColliderWidth | 1 | L2871 |
SetVehicleLights | 1 | L2874 |
SetVehicleLightsMode | 1 | L2875 |
SetVehicleEngineTemperature | 1 | L2876 |
SetVehicleEngineOn | 1 | L2877 |
SetVehicleEngineCanDegrade | 1 | L2878 |
ModifyVehicleTopSpeed | 1 | L2879 |
setmetatable | 1 | L3020 |
DoesBlipExist | 1 | L3644 |
SetCamAffectsAiming | 1 | L4433 |
GetRenderingCam | 1 | L4433 |
TriggerServerEvent | 1 | L5142 |
collectgarbage | 1 | L6006 |
IsEntityPlayingAnim | 1 | L6415 |
SetEntityInvincible | 1 | L7420 |
TaskLeaveAnyVehicle | 1 | L8303 |
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 field | Default | Behaviour |
|---|---|---|
Player.God | true | Godmode; uses SetEntityInvincible (L7420) in the player thread |
Player.ESPDistance | 1000.0 | Maximum ESP distance; larger distance means more draw calls |
Player.AimbotFOV | 90.0 | FOV in degrees for the aimbot selection |
Player.AimbotBone | 1 | Index 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.TPAimbotThreshold | 40.0 | Threshold for TP-aimbot (degrees) |
Player.TPAimbotDistance | 2.0 | Teleport distance of TP-aimbot |
Player.TriggerBotDistance | 500.0 | Maximum triggerbot distance |
Player.AimbotNeedsLOS | true | Line-of-sight required for hard aim |
Player.TargetInsideVehicles | false | Whether the aimbot may pick targets inside vehicles |
Player.NoDrop | false | Prevents weapon drop after the last kill |
SafeMode | true | Always forced to true on load |
MenuX / MenuY | 300 / 300 | Menu start position; draggable via drag_bar |
NotifX / NotifY / NotifW | nil / nil / 420 | Position and width of the notification stack |
ShowKey / FreeCamKey / RCCamKey / DisableKey | TAB / HOME / = / - | The four global keybinds |
UseBackgroundImage | true | Uses the banner_dui texture as background |
UseAutoWalkAlt | false | Automatic walking via an alternative control |
Bone list (13 items)
| Index | Bone | Ped bone id |
|---|---|---|
| 1 | SKEL_HEAD | 31086 |
| 2 | SKEL_ROOT | 0 |
| 3 | SKEL_L_Forearm | 22711 |
| 4 | SKEL_R_Forearm | 28252 |
| 5 | SKEL_L_UpperArm | 45509 |
| 6 | SKEL_R_UpperArm | 40269 |
| 7 | SKEL_L_Thigh | 58271 |
| 8 | SKEL_R_Thigh | 51826 |
| 9 | SKEL_Spine1 | 24816 |
| 10 | SKEL_Spine2 | 24817 |
| 11 | SKEL_Spine3 | 24818 |
| 12 | SKEL_L_Foot | 14201 |
| 13 | SKEL_R_Foot | 52301 |
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
| Type | Prefix | Sound set | Sound | Count | Line |
|---|---|---|---|---|---|
INFO | [~b~INFO~w~] | HUD_DEATHMATCH_SOUNDSET | DELETE | 3 | L8450 |
WARN | [~o~WARN~w~] | DLC_HEIST_HACKING_SNAKE_SOUNDS | Turn | 1 | L8453 |
ERROR | [~r~ERROR~w~] | DLC_HEIST_BIOLAB_PREP_HACKING_SOUNDS | Hack_Failed | 3 | L8456 |
SUCCESS | [~g~SUCCESS~w~] | - | - | - | L8459 |
~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
| Resource | File | Name | Triggers |
|---|---|---|---|
chat | client/cl_chat.lua | Chat | 1 |
esx_ambulancejob | client/main.lua | ~g~ESX ~w~Ambulance Job | 1 |
gcphone | client/twitter.lua | GCPhone | 1 |
esx_policejob | client/main.lua | ~g~ESX ~w~Police Job | 1 |
esx-qalle-jail | client/client.lua | ~g~ESX ~w~Qalle Jail | 1 |
esx_dmvschool | client/main.lua | ~g~ESX ~w~DMV School | 1 |
CarryPeople | cl_carry.lua | CarryPeople | 2 |
Per trigger
| Resource | Trigger | LookFor pattern | Depth | Strip | Line |
|---|---|---|---|---|---|
chat | _chat:messageEntered | ExecuteCommand%( | 3 (default) | TriggerServerEvent%('', (.*) | L8850 |
esx_ambulancejob | esx_ambulancejob:revive | local playerPed = PlayerPedId%(%) | 3 (default) | AddEventHandler%('', (.*) | L8863 |
gcphone | gcPhone:twitter_postTweets | RegisterNUICallback%('twitter_postTweet', function%(data, cb%) | 2 | TriggerServerEvent%('', (.*) | L8876 |
esx_policejob | esx_communityservice:sendToCommunityService | menu.close%(%) | 3 (default) | TriggerServerEvent%(\, , (.*) | L8890 |
esx-qalle-jail | esx-qalle-jail:jailPlayer | ESX.ShowNotification%(\"No players nearby!\"%) | 3 (default) | TriggerServerEvent%(\, , (.*) | L8903 |
esx_dmvschool | esx_dmvschool:addLicense | ESX.ShowNotification%(_U%('passed_test'%)%) | 3 (default) | TriggerServerEvent%('', (.*) | L8916 |
CarryPeople | CarryPeople:sync | carryingBackInProgress = true | 3 (default) | TriggerServerEvent%('', (.*) | L8929 |
CarryPeople | CarryPeople:stop | if target ~= 0 then | 3 (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±Depthlines is examined. - Step 3: from every line in the window the
Strippatterns 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").
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.
| Resource | Display name | Detection | Line |
|---|---|---|---|
alpha-tango-golf | ~b~ATG | resource present in the list | L8622 |
screenshot-basic | ~g~screenshot-basic | resource present in the list | L8633 |
anticheese-anticheat | ~g~AntiCheese | resource present in the list | L8644 |
ChocoHax | ~r~ChocoHax | return ChXaC ~= nil | L8655 |
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.
| Function | Arguments | Local | Line |
|---|---|---|---|
rE.Bypasses:CheckEvent | event | yes | L71 |
rE.Bypasses:CheckArgs | args | yes | L79 |
TriggerServerEventInternal | event, payload, length | yes | L91 |
IsExplosionInSphere | ... | yes | L117 |
_count | tab | no | L223 |
FM.Base64:Encode | data | yes | L235 |
FM:SetConfigList | | yes | L256 |
FM:BuildIdentifier | | yes | L261 |
FM:GetConfigList | | yes | L276 |
FM:CopyTable | tab | yes | L300 |
FM:IsFriend | ped | yes | L314 |
dummyUseBoundary | idx | no | L448 |
getBoundaryFunc | bfn, bid | no | L452 |
lookupify | t | no | L474 |
FM:RemoveEmojis | str | yes | L487 |
FM:CleanName | str, is_esp | yes | L513 |
FM:GetFunction | name | yes | L1996 |
_clamp | val, min, max | no | L2108 |
FM:EquipOutfit | data | yes | L2115 |
FM:StealOutfit | player | yes | L2137 |
FM:RequestModelSync | model, timeout | yes | L2215 |
FM.Util:ValidPlayer | src | yes | L2230 |
FM:SpawnLocalVehicle | modelName, replaceCurrent, spawnInside | yes | L2236 |
FM:DrawTextInput | | yes | L2261 |
FM:GetTextInput | TextEntry, ExampleText, MaxStringLength | yes | L2266 |
FM.Util:DeleteEntity | entity | yes | L2304 |
FM:AddNotification | type, msg, timeout | yes | L2334 |
FM:DoNetwork | obj | yes | L2371 |
FM:GasPlayer | player | yes | L2383 |
FM:TazePlayer | player | yes | L2421 |
FM:HydrantPlayer | player | yes | L2428 |
FM:FirePlayer | player | yes | L2434 |
FM:CrashPlayer | player, all, strict | yes | L2467 |
FM:CleanupCrash | player, all | yes | L2539 |
FM:RapePlayer | player | yes | L2579 |
FM:CarSpamServer | | yes | L2625 |
FM:LaggingServer | | yes | L2658 |
FM:HydrantLoop | | yes | L2686 |
FM:FireLoop | | yes | L2707 |
FM:TazeLoop | | yes | L2728 |
FM:DeleteLoop | | yes | L2749 |
FM:ExplodeVehicleLoop | | yes | L2771 |
FM:ExplodePlayerLoop | | yes | L2793 |
FM:LaunchLoop | | yes | L2814 |
FM:SpawnPed | where, heading, model, weapon | yes | L2838 |
FM:UnlockVehicle | veh | yes | L2853 |
FM:DisableVehicle | veh | yes | L2862 |
FM:StealVehicleThread | who, veh, nodrive | yes | L2883 |
FM:ScrW | | yes | L2962 |
FM:ScrH | | yes | L2966 |
FM:Print | ... | yes | L2972 |
FM:GetMousePos | | yes | L2980 |
FM:RequestControlOnce | entity | yes | L2984 |
FM:RequestControlSync | veh, timeout | yes | L2991 |
FM:aG | aH, aI, aJ | yes | L3005 |
FM:EnumerateVehicles | | yes | L3031 |
FM:EnumeratePeds | | yes | L3035 |
FM:EnumerateObjects | | yes | L3039 |
FM:GetClosestVehicle | max_dist | yes | L3043 |
FM:GetClosestPed | max_dist | yes | L3065 |
FM:GetClosestObject | max_dist | yes | L3087 |
FM:DeleteVehicles | | yes | L3109 |
FM:RepairVehicle | vehicle | yes | L3121 |
FM:TranslateMouse | wx, wy, ww, wh, drag_id | yes | L3131 |
FM:TranslateScroller | sy, sh, by | yes | L3157 |
_text_width | str, font, scale | no | L3175 |
FM.Painter:GetTextWidth | str, font, scale | yes | L3194 |
FM.Painter:DrawText | text, font, centered, x, y, scale, r, g, b, a | yes | L3198 |
_lerp | delta, from, to | no | L3210 |
FM.Painter:ListItem | label, px, py, x, y, w, h, r, g, b, a, id | yes | L3219 |
FM.Painter:DrawSprite | x, y, w, h, heading, dict, name, r, g, b, a, custom | yes | L3263 |
FM.Painter:ListChoice | label, options, px, py, x, y, w, h, r, g, b, a, id, selected, unbind_caller | yes | L3273 |
FM.Painter:CheckBox | label, bool, px, py, x, y, w, h, r, g, b, a, id, centered, size | yes | L3354 |
FM.Painter:Button | label, px, py, x, y, w, h, r, g, b, a, id, centered, size | yes | L3404 |
FM.Painter:DrawRect | x, y, w, h, r, g, b, a | yes | L3434 |
FM.Painter:Hovered | x, y, w, h | yes | L3440 |
FM.Painter:Holding | x, y, w, h, id | yes | L3452 |
FM.Painter:Clicked | x, y, w, h | yes | L3470 |
FM:Clamp | what, min, max | yes | L3488 |
FM:LimitRenderBounds | | yes | L3498 |
FM:AddCategory | title, func | yes | L3516 |
FM:SetPedModel | model | yes | L3523 |
FM:GetPedVehicleSeat | ped | yes | L3528 |
FM:GetModelLength | ent | yes | L3541 |
FM:GetModelHeight | ent | yes | L3547 |
FM:Tracker | | yes | L3553 |
FM:DoFrozen | | yes | L3566 |
FM:DoBlips | remove | yes | L3581 |
FM:DoAntiAim | | yes | L3627 |
FM:TeleportToWaypoint | | yes | L3642 |
FM:DoESP | | yes | L3666 |
FM:DoBoxESP | src, ped | yes | L3717 |
_is_ped_player | ped | no | L4158 |
rot_to_dir | rot | no | L4164 |
_multiply | vector, mult | no | L4173 |
_get_ped_hovered_over | | no | L4177 |
_within_poly | point, poly | no | L4228 |
_is_ped_in_aimbot_fov | ped | no | L4243 |
_get_ped_in_aimbot_fov | | no | L4254 |
_get_closest_bone | ped, _seat | no | L4298 |
FM:DoAimbotPoly | | yes | L4336 |
FM:DrawAimbotFOV | | yes | L4358 |
FM:_rage_bot | | yes | L4364 |
FM:_no_bullet_drop | | yes | L4390 |
FM:_trigger_bot | | yes | L4404 |
FM:_aimbot | | yes | L4432 |
FM:_tp_aimbot | | yes | L4475 |
FM:DoAimbot | | yes | L4489 |
_has_value | tab, val | no | L4615 |
_find_weapon | str | no | L4623 |
FM:DoVehicleRelated | | yes | L5188 |
_run_lua | resource, trigger | no | L5252 |
FM:IndexOf | table, val | yes | L5456 |
FM:GetScrollBasis | count | yes | L5582 |
_do_title_color | | no | L5616 |
FM:DrawMenu | | yes | L5640 |
FM:Cleanup | | yes | L6003 |
FM:DoCrosshair | | yes | L6060 |
FM:DoKeyPressed | | yes | L6352 |
_do_riding | | no | L6384 |
_right_vec | | no | L6399 |
_up_vec | | no | L6405 |
_do_flying | | no | L6411 |
FM.RCCar:MoveCar | | yes | L6597 |
approach | from, to, inc | no | L6647 |
FM.RCCar:GetCamRot | gameplay_rot | yes | L6653 |
FM.RCCar:Tick | | yes | L6669 |
FM.FreeCam:Switcher | | yes | L6785 |
FM.FreeCam:Toggle | mode | yes | L6812 |
FM.FreeCam:GetModelSize | hash | yes | L6817 |
FM.FreeCam:DrawBoundingBox | entity, r, g, b, a | yes | L6821 |
FM.FreeCam:Crosshair | on | yes | L6879 |
FM:Draw3DText | x, y, z, text, r, g, b | yes | L6889 |
FM:DrawScaled3DText | x, y, z, textInput, fontId, scaleX, scaleY | yes | L6903 |
FM.FreeCam:DrawInfoCard | entity | yes | L6926 |
FM.FreeCam:CheckType | entity, type | yes | L6944 |
FM.FreeCam:GetType | entity | yes | L6952 |
FM.FreeCam:Clone | entity | yes | L6958 |
FM.FreeCam:Remover | entity, type | yes | L6987 |
FM.FreeCam:Attack | attacker, victim | yes | L7005 |
FM.FreeCam:PedTarget | cam, x, y, z | yes | L7022 |
FM.FreeCam:DeletePreview | | yes | L7217 |
FM.FreeCam:Spawner | where, heading, type | yes | L7235 |
_snap | rot | no | L7465 |
FM:KickOutAllPassengers | ent, specific | yes | L7478 |
FM.FreeCam:DoSteal | ent | yes | L7491 |
FM.FreeCam:DoTaze | ent, endCoords | yes | L7582 |
FM.FreeCam:DoHydrant | ent, endCoords | yes | L7598 |
FM.FreeCam:DoFire | ent, endCoords | yes | L7614 |
FM.FreeCam:DoExplosion | ent, endCoords | yes | L7630 |
FM.FreeCam:DoSpikeStrips | ent, endCoords | yes | L7651 |
FM.FreeCam:DoDisable | ent, endCoords | yes | L7672 |
FM.FreeCam:DoRCCar | ent, endCoords | yes | L7685 |
FM.FreeCam:ManipulationLogic | cam, x, y, z | yes | L7832 |
FM.FreeCam:DisableMovement | off | yes | L8100 |
FM.FreeCam:DisableCombat | off | yes | L8168 |
FM.FreeCam:MoveCamera | cam, x, y, z | yes | L8184 |
FM.FreeCam:DrawMode | | yes | L8224 |
FM.FreeCam:Tick | | yes | L8231 |
FM:Spectate | who | yes | L8279 |
FM:DoRCCar | driver, veh | yes | L8291 |
FM:Polar3DToWorld | entityPosition, radius, polarAngleDeg, azimuthAngleDeg | yes | L8330 |
FM:SpectateTick | | yes | L8343 |
FM:ScreenText | text, font, centered, x, y, scale, r, g, b, a | yes | L8408 |
FM:NotificationAlpha | fade_out | yes | L8423 |
FM:TrimString | str, only_whitespace | yes | L8464 |
FM:TrimStringBasedOnWidth | str, font, size, max_width | yes | L8471 |
FM:DrawNotifications | | yes | L8487 |
FM:RunACChecker | | yes | L8663 |
_split | content, pattern | no | L8678 |
_find | tab, what | no | L8688 |
_get_depth | line, lines, deep | no | L8700 |
_replaced | res, data | no | L8712 |
FM:SetIbuttons | buttons | yes | L8802 |
FM:DrawIbuttons | | yes | L8837 |
FM:RunDynamicTriggers | | yes | L8944 |
FM:LoadDui | | yes | L8954 |
FM.CharToHex | c | yes | L8961 |
FM:URIEncode | url | yes | L8965 |
FM:DoStatistics | | yes | L8974 |
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
TABMOUSE3HOMEDELETEPAGEUPPAGEDOWNINSERTF1F2F3F4F5F6F7F8F9F10disable_keys 5247
-MOUSE3TABHOMEDELETEPAGEUPPAGEDOWNINSERTF1F2F3F4F5F6F7F8F9F10freecam_keys 5248
HOMEMOUSE3TABDELETEPAGEUPPAGEDOWNINSERTF1F2F3F4F5F6F7F8F9F10rccar_keys 5249
=MOUSE3TABHOMEDELETEPAGEUPPAGEDOWNINSERTF1F2F3F4F5F6F7F8F9F10aimbot_keys 5250
MOUSE1MOUSE2MOUSE3LEFTALTLEFTSHIFTMOUSE2SPACECXZVFGHERQTYUF1F2F3F4F5F6F7F8F9F10FM.FreeCam.SpawnerOptions (L7072)
| Model type | Count | Source | Line |
|---|---|---|---|
PED | 15 | inline | L7073 |
OBJECT | 52 | inline | L7075 |
VEHICLE | 43 | car_spam | L7076 |
WEAPONS | 76 | all_weapons | L2105 |
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_CROWBARWEAPON_BOTTLEWEAPON_DAGGERWEAPON_HATCHETWEAPON_MACHETEWEAPON_FLASHLIGHTWEAPON_SWITCHBLADEWEAPON_PISTOLWEAPON_PISTOL_MK2WEAPON_COMBATPISTOLWEAPON_APPISTOLWEAPON_PISTOL50WEAPON_SNSPISTOLWEAPON_HEAVYPISTOLWEAPON_VINTAGEPISTOLWEAPON_STUNGUNWEAPON_FLAREGUNWEAPON_MARKSMANPISTOLWEAPON_REVOLVERWEAPON_MICROSMGWEAPON_SMGWEAPON_MINISMGWEAPON_SMG_MK2WEAPON_ASSAULTSMGWEAPON_MGWEAPON_COMBATMGWEAPON_COMBATMG_MK2WEAPON_COMBATPDWWEAPON_GUSENBERGWEAPON_MACHINEPISTOLWEAPON_ASSAULTRIFLEWEAPON_ASSAULTRIFLE_MK2WEAPON_CARBINERIFLEWEAPON_CARBINERIFLE_MK2WEAPON_ADVANCEDRIFLEWEAPON_SPECIALCARBINEWEAPON_BULLPUPRIFLEWEAPON_COMPACTRIFLEWEAPON_PUMPSHOTGUNWEAPON_SAWNOFFSHOTGUNWEAPON_BULLPUPSHOTGUNWEAPON_ASSAULTSHOTGUNWEAPON_MUSKETWEAPON_HEAVYSHOTGUNWEAPON_DBSHOTGUNWEAPON_SNIPERRIFLEWEAPON_HEAVYSNIPERWEAPON_HEAVYSNIPER_MK2WEAPON_MARKSMANRIFLEWEAPON_GRENADELAUNCHERWEAPON_GRENADELAUNCHER_SMOKEWEAPON_RPGWEAPON_STINGERWEAPON_FIREWORKWEAPON_HOMINGLAUNCHERWEAPON_GRENADEWEAPON_STICKYBOMBWEAPON_PROXMINEWEAPON_MINIGUNWEAPON_RAILGUNWEAPON_POOLCUEWEAPON_BZGASWEAPON_SMOKEGRENADEWEAPON_MOLOTOVWEAPON_FIREEXTINGUISHERWEAPON_PETROLCANWEAPON_SNOWBALLWEAPON_FLAREWEAPON_BALLFM.Keys (80 items, L2022)
Full keycode table
| Name | Code | Line |
|---|---|---|
ESC | 322 | L2023 |
F1 | 288 | L2024 |
F2 | 289 | L2025 |
F3 | 170 | L2026 |
F5 | 166 | L2027 |
F6 | 167 | L2028 |
F7 | 168 | L2029 |
F8 | 169 | L2030 |
F9 | 56 | L2031 |
F10 | 57 | L2032 |
~ | 243 | L2033 |
1 | 157 | L2034 |
2 | 158 | L2035 |
3 | 160 | L2036 |
4 | 164 | L2037 |
5 | 165 | L2038 |
6 | 159 | L2039 |
7 | 161 | L2040 |
8 | 162 | L2041 |
9 | 163 | L2042 |
- | 84 | L2043 |
= | 83 | L2044 |
BACKSPACE | 177 | L2045 |
TAB | 37 | L2046 |
Q | 44 | L2047 |
W | 32 | L2048 |
E | 38 | L2049 |
R | 45 | L2050 |
T | 245 | L2051 |
Y | 246 | L2052 |
U | 303 | L2053 |
P | 199 | L2054 |
[ | 39 | L2055 |
] | 40 | L2056 |
ENTER | 18 | L2057 |
CAPS | 137 | L2058 |
A | 34 | L2059 |
S | 8 | L2060 |
D | 9 | L2061 |
F | 23 | L2062 |
G | 47 | L2063 |
H | 74 | L2064 |
K | 311 | L2065 |
L | 182 | L2066 |
LEFTSHIFT | 21 | L2067 |
Z | 20 | L2068 |
X | 73 | L2069 |
C | 26 | L2070 |
V | 0 | L2071 |
B | 29 | L2072 |
N | 249 | L2073 |
M | 244 | L2074 |
, | 82 | L2075 |
. | 81 | L2076 |
LEFTCTRL | 36 | L2077 |
LEFTALT | 19 | L2078 |
SPACE | 22 | L2079 |
RIGHTCTRL | 70 | L2080 |
HOME | 213 | L2081 |
PAGEUP | 10 | L2082 |
PAGEDOWN | 11 | L2083 |
DELETE | 178 | L2084 |
LEFT | 174 | L2085 |
RIGHT | 175 | L2086 |
UP | 172 | L2087 |
DOWN | 173 | L2088 |
NENTER | 201 | L2089 |
MWHEELUP | 15 | L2090 |
MWHEELDOWN | 14 | L2091 |
N4 | 108 | L2092 |
N5 | 60 | L2093 |
N6 | 107 | L2094 |
N+ | 96 | L2095 |
N- | 97 | L2096 |
N7 | 117 | L2097 |
N8 | 61 | L2098 |
N9 | 118 | L2099 |
MOUSE1 | 24 | L2100 |
MOUSE2 | 25 | L2101 |
MOUSE3 | 348 | L2102 |
FM.Models / custom models
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_01Emoji filter (blocked_ranges + block_singles)
| From (hex) | To (hex) |
|---|---|
0x0001F601 | 0x0001F64F |
0x00002702 | 0x000027B0 |
0x0001F680 | 0x0001F6C0 |
0x000024C2 | 0x0001F251 |
0x0001F300 | 0x0001F5FF |
0x00002194 | 0x00002199 |
0x000023E9 | 0x000023F3 |
0x000025FB | 0x000026FD |
0x0001F300 | 0x0001F5FF |
0x0001F600 | 0x0001F636 |
0x0001F681 | 0x0001F6C5 |
0x0001F30D | 0x0001F567 |
0x0001F980 | 0x0001F984 |
0x0001F910 | 0x0001F918 |
0x0001F6E0 | 0x0001F6E5 |
0x0001F920 | 0x0001F927 |
0x0001F919 | 0x0001F91E |
0x0001F933 | 0x0001F93A |
0x0001F93C | 0x0001F93E |
0x0001F985 | 0x0001F98F |
0x0001F940 | 0x0001F94F |
0x0001F950 | 0x0001F95F |
0x0001F928 | 0x0001F92F |
0x0001F9D0 | 0x0001F9DF |
0x0001F9E0 | 0x0001F9E6 |
0x0001F992 | 0x0001F997 |
0x0001F960 | 0x0001F96B |
0x0001F9B0 | 0x0001F9B9 |
0x0001F97C | 0x0001F97F |
0x0001F9F0 | 0x0001F9FF |
0x0001F9E7 | 0x0001F9EF |
0x0001F7E0 | 0x0001F7EB |
0x0001FA90 | 0x0001FA95 |
0x0001F9A5 | 0x0001F9AA |
0x0001F9BA | 0x0001F9BF |
0x0001F9C3 | 0x0001F9CA |
0x0001FA70 | 0x0001FA73 |
37 ranges and 161 single codepoints; used to filter emoji from chat/inputs.
0x000000A90x000000AE0x0000203C0x000020490x000020E30x000021220x000021390x000021A90x000021AA0x0000231A0x0000231B0x000025AA0x000025AB0x000025B60x000025C00x000029340x000029350x00002B050x00002B060x00002B070x00002B1B0x00002B1C0x00002B500x00002B550x000030300x0000303D0x000032970x000032990x0001F0040x0001F0CF0x0001F6F30x0001F6F40x0001F6E90x0001F6F00x0001F6CE0x0001F6CD0x0001F6CF0x0001F6CB0x00023F80x00023F90x00023FA0x00000230x0001F51F0x0001F6CC0x0001F9C00x0001F6EB0x0001F6EC0x0001F6D00x00023CF0x000002A0x00023280x0001F5A40x0001F4710x0001F64D0x0001F64E0x0001F6450x0001F6460x0001F6810x0001F64B0x0001F6470x0001F46E0x0001F5750x0001F5820x0001F4770x0001F4730x0001F9300x0001F4860x0001F4870x0001F6B60x0001F3C30x0001F57A0x0001F46F0x0001F3CC0x0001F3C40x0001F6A30x0001F3CA0x00026F90x0001F3CB0x0001F6B50x0001F6B50x0001F4680x0001F4690x0001F9900x0001F9910x0001F6F50x0001F6F40x0001F6D10x0001F6F60x0001F6D20x00026400x00026420x00026950x0001F3F30x0001F1FA0x0001F91F0x0001F9320x0001F9310x0001F9F80x0001F9F70x0001F3F40x0001F9700x0001F9730x0001F9740x0001F97A0x0001F9750x0001F9760x0001F9B50x0001F9B60x0001F4680x0001F4690x0001F99D0x0001F9990x0001F99B0x0001F9980x0001F9A10x0001F99A0x0001F99C0x0001F9A20x0001F9A00x0001F99F0x0001F96D0x0001F96C0x0001F96F0x0001F9C20x0001F96E0x0001F99E0x0001F9C10x0001F6F90x0001F94E0x0001F94F0x0001F94D0x0000265F0x0000267E0x0001F3F40x0001F9710x0001F90E0x0001F90D0x0001F90F0x0001F9CF0x0001F9CD0x0001F9CE0x0001F4680x0001F4690x0001F9D10x0001F91D0x0001F46D0x0001F46B0x0001F46C0x0001F9AE0x0001F4150x0001F6D50x0001F6FA0x0001FA820x0001F93F0x0001FA800x0001FA810x0001F97B0x0001F9AF0x0001FA780x0001FA790x0001FA7AFindings
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.
| Finding | Line | Detail |
|---|---|---|
_G hijack is a no-op | L101 | The 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 success | L375 | On "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 nothing | L381 | The 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 silent | L411 | Write(name, cfg) has no silent parameter and uses the undefined global silent in if known_returns[out] and not silent. |
Operator precedence in Load() | L329 | The 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 asymmetry | L344 | On 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 _natives | L1996 | The 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 branch | L8725 | The code if _lines then is always true because _find always returns a table; the intended empty-table check fails. |
Dynamic triggers: pattern vs. text | L8692 | _find() uses val:find(what) without 1, true, so the LookFor/Strip patterns are interpreted as Lua patterns (e.g. function%(%)). |
Double break | L8745 | Two 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 nil | L9007 | The 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 thread | L9020 | The 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:DoStatistics | L391 | FM: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 shallow | L356 | It only fills in missing keys at levels 1 and 2; tables nested deeper are not repaired, leaving a corrupted config partially unloaded. |
FM.List indexing | L430 | FM.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.
L1234 referenceShow source (loaded on open)
Shortcuts: / search, Esc clear.