/* BasedMTA — Panels batch 2: Scripts, Resources, Events */ const { useState: useState2, useEffect: useEffect2, useMemo: useMemo2 } = React; // ==================================================================== // SCRIPTS PANEL // ==================================================================== const SCRIPT_TREE = [ { name: "cheats", count: 2, dots: 2, children: [ { name: "__loadstring/", folder: true }, { name: "chunk_9206da70599b82ca.luac", size: "1.5K" }] }, { name: "cinezone", count: 1, dots: 1 }, { name: "ingame-map-editor", count: 1, dots: 1 }, { name: "mcafee", count: 1, dots: 1, children: [ { name: "__loadstring/", folder: true }, { name: "chunk_177f201f2024647e.luac", size: "4.6K", selected: true }] }, { name: "mfker", count: 2, dots: 2 }, { name: "misc", count: 2, dots: 2 }, { name: "punish", count: 1, dots: 1 }, { name: "skidmarks", count: 6, dots: 2, children: [ { name: "__loadstring/", folder: true }, { name: "chunk_b524aabf8c3207a7.luac", size: "1.6K" }, { name: "chunk_fb8969da6b301901.luac", size: "4.6K" }, { name: "chunk_da7d1c70303d13af.luac", size: "2.7K" }] }]; const MCAFEE_DECOMPILED = ` end for r6_pr1, r7_pr1 in ipairs(r2_pr1) do if r1_pr1 == r7_pr1 then return true end end return false end local r3_rt = addDebugHook("preFunction", function(r0_pr2, r1_pr2, r2_pr2, r3_pr2, r4_pr) if mcMainAuthorize(r1_pr2, getResourceName(r0_pr2)) then return end triggerServerEvent("mcafee.violation", resourceRoot, getResourceName(r0_pr2), r1_pr2) end, r1_rt) if not r3_rt or type(r3_rt) ~= "boolean" then triggerServerEvent("mcafee.violation", resourceRoot, getResourceName(resource), "addD") end local r4_rt = { "load", "loadstring", "executeBrowserJavascript", "triggerLatentServerEvent", "triggerServerEvent" } local r5_rt = addDebugHook("preFunction", function(r0_pr3, r1_pr3, r2_pr3, r3_pr3, r4_p) triggerServerEvent("mcafee.validate", resourceRoot, getResourceName(r0_pr3), r1_pr3) ... }) end, r4_rt) if not r5_rt or type(r5_rt) ~= "boolean" then triggerServerEvent("mcafee.violation", resourceRoot, getResourceName(resource), "addD") end`; function ScriptsPanel() { const [filterTab, setFilterTab] = useState2("Compiled"); const [search, setSearch] = useState2(""); const [expanded, setExpanded] = useState2({ cheats: true, mcafee: true, skidmarks: true }); const [selected, setSelected] = useState2("chunk_177f201f2024647e.luac"); const toggle = (n) => setExpanded((e) => ({ ...e, [n]: !e[n] })); const filtered = SCRIPT_TREE.filter( (r) => !search || r.name.toLowerCase().includes(search.toLowerCase()) || (r.children || []).some((c) => c.name.toLowerCase().includes(search.toLowerCase())) ); return (
208 resources 10 compiled 368 source
{["All", "Compiled", "Source"].map((t) =>
setFilterTab(t)} className={"bmta-subtab" + (t === filterTab ? " active" : "")} style={{ paddingLeft: 14, paddingRight: 14 }}> {t}
)}
{filtered.map((r) =>
toggle(r.name)} style={{ display: "flex", alignItems: "center", padding: "3px 6px", cursor: "pointer", color: "var(--bmta-text-strong)" }}> {r.children ? expanded[r.name] ? "v" : ">" : ""} {"●".repeat(r.dots)} {r.name} {r.count}
{r.children && expanded[r.name] && r.children.map((c, i) =>
!c.folder && setSelected(c.name)} style={{ display: "flex", padding: "2px 6px 2px 28px", cursor: c.folder ? "default" : "pointer", color: c.folder ? "var(--bmta-text-faint)" : c.name === selected ? "var(--bmta-accent)" : "var(--bmta-text)", background: c.name === selected ? "var(--bmta-accent-soft)" : "transparent" }}> {!c.folder && } {c.name} {c.size && {c.size}}
)}
)}
__loadstring/{selected} 4.6 KB | 217 lines | decompiled
{MCAFEE_DECOMPILED.split("\n").map((line, i) =>
{String(184 + i).padStart(3, " ")}
)}
Copy to Clipboard Export Script Export Resource Export All → C:\BasedMTA_Dump
); } function colorLua(line) { const KW = /\b(local|function|end|if|then|else|for|in|do|return|true|false|nil|and|or|not|while)\b/g; const FN = /\b(triggerServerEvent|getResourceName|addDebugHook|ipairs|pairs|type|load|loadstring|executeBrowserJavascript|triggerLatentServerEvent|mcMainAuthorize|addEventHandler)\b/g; const STR = /(".*?")/g; const NUM = /\b(\d+(?:\.\d+)?)\b/g; const COM = /(--[^\n]*)/g; const VAR = /\b(r\d+_\w+|resourceRoot|resource)\b/g; return line. replace(/&/g, "&"). replace(//g, ">"). replace(COM, '$1'). replace(STR, '$1'). replace(KW, '$1'). replace(FN, '$1'). replace(VAR, '$1'). replace(NUM, '$1'); } // ==================================================================== // RESOURCES PANEL // ==================================================================== const RESOURCE_NAMES = [ "NRGmod", "admin", "adminfeatures", "admingod", "ae86", "agentskin", "airbomb", "aircraftkillcam", "airtarg", "airvel", "akina", "alienpack", "alpha", "amogus-car", "antiHipfire", "area_zombies", "at400", "autobusmod", "backtoschool", "bansh", "bentley", "blimp", "bloodharvest", "bloodpool", "bouncingbetty", "bounty_hunt", "cheats", "cinezone", "mcafee", "mfker", "misc", "punish", "skidmarks", "ingame-map-editor", "voice_frp", "disabledm", "logmanager", "hedit"]; function ResourcesPanel() { const [search, setSearch] = useState2(""); const [running, setRunning] = useState2(() => Object.fromEntries(RESOURCE_NAMES.map((n) => [n, true]))); const total = RESOURCE_NAMES.length; const live = Object.values(running).filter(Boolean).length; const list = RESOURCE_NAMES.filter((n) => n.toLowerCase().includes(search.toLowerCase())); return (
{total} resources {live} running
Refresh
{list.map((n) => { const on = !!running[n]; return (
{n} setRunning((r) => ({ ...r, [n]: !on }))}> {on ? "Stop" : "Start"} {}}>Restart
); })}
); } // ==================================================================== // EVENTS PANEL // ==================================================================== const EVENT_TEMPLATES = [ { evt: "mcafee.validate", res: "mcafee", file: "mcHooks.luac:139", args: ['"hedit"', '"triggerServerEvent"', '"logmanager.lua"', "150", '{[1]="requestMiniLog", [2]=root, [3]=vehicle, [4]=3}'], argTags: ["str", "str", "str", "num", "args"] }, { evt: "requestMiniLog", res: "hedit", file: "logmanager.lua:150", args: ["vehicle", "3"], argTags: ["id", "num"] }, { evt: "mcafee.validate", res: "mcafee", file: "mcHooks.luac:139", args: ['"misc"', '"triggerServerEvent"', '"client.luac"', "32", '{[1]="onToggleHeadlights", [2]=player, [3]=vehicle}'], argTags: ["str", "str", "str", "num", "args"] }, { evt: "onToggleHeadlights", res: "misc", file: "client.luac:32", args: ["vehicle"], argTags: ["id"] }, { evt: "mcafee.validate", res: "mcafee", file: "mcHooks.luac:139", args: ['"voice_frp"', '"triggerServerEvent"', '"client.lua"', "93", '{[1]="voice:addToPlayerBroadcast", [2]=resource, [3]=player, [4]=p…'], argTags: ["str", "str", "str", "num", "args"] }, { evt: "voice:addToPlayerBroadcast", res: "voice_frp", file: "client.lua:93", args: ["player", "player"], argTags: ["id", "id"] }, { evt: "mcafee.validate", res: "mcafee", file: "mcHooks.luac:139", args: ['"disabledm"', '"triggerServerEvent"', '"client.lua"', "47", '{[1]="server:toggleDMMode", [2]=player, [3]=true}'], argTags: ["str", "str", "str", "num", "args"] }, { evt: "server:toggleDMMode", res: "disabledm", file: "client.lua:47", args: ["true"], argTags: ["str"] }, { evt: "mcafee.validate", res: "mcafee", file: "mcHooks.luac:139", args: ['"voice_frp"', '"triggerServerEvent"', '"client.lua"', "107", '{[1]="voice:removePlayerBroadcast", [2]=resource, [3]=player, [4]=…'], argTags: ["str", "str", "str", "num", "args"] }, { evt: "voice:removePlayerBroadcast", res: "voice_frp", file: "client.lua:107", args: ["player", "player"], argTags: ["id", "id"] }]; function EventsPanel() { const [tab, setTab] = useState2("Logger"); const [running, setRunning] = useState2(true); const [dir, setDir] = useState2("C->S"); const [autoScroll, setAutoScroll] = useState2(true); const [hideBuiltin, setHideBuiltin] = useState2(false); const [clearOnLeave, setClearOnLeave] = useState2(true); const [filter, setFilter] = useState2(""); const [rows, setRows] = useState2(() => EVENT_TEMPLATES.slice()); useEffect2(() => { if (!running) return; const id = setInterval(() => { setRows((r) => { const next = EVENT_TEMPLATES[Math.floor(Math.random() * EVENT_TEMPLATES.length)]; return [...r.slice(-60), next]; }); }, 700); return () => clearInterval(id); }, [running]); const list = filter ? rows.filter((r) => (r.evt + r.res + r.file).toLowerCase().includes(filter.toLowerCase())) : rows; return (
setRunning(!running)}>{running ? "Stop" : "Start"} S", "S->C", "Both"]} onChange={setDir} width={80} /> setRows([])}>Clear
70ms815K/3.7M{(20000 + rows.length).toLocaleString()}pkt/24030pktloss 1.0%8kbps * {rows.length}Save
{list.map((r, i) =>
[C->S] {r.evt} {r.res} {r.file}
Copy Mute Replay
{r.args.map((a, j) => {a}{j < r.args.length - 1 ? "," : ""} )}
)}
); } Object.assign(window, { ScriptsPanel, ResourcesPanel, EventsPanel });