25 juni 2026
6 min leestijd
ZeroTrust Team

FiveM-trigger-exploits stoppen: hoe we het oplosten met Trigger Finder

Cheaters misbruiken netwerk-events om zichzelf geld te geven, voertuigen te spawnen en items te krijgen. Zo werken FiveM-trigger-exploits, waarom ze met de hand nauwelijks te controleren zijn en hoe ZeroTrust's Trigger Finder je volledige event-aanvalsoppervlak in kaart brengt en markeert.

Als je al een tijdje een FiveM-server beheert, ken je dit probleem: een speler met een cheatmenu geeft zichzelf geld, spawnt voertuigen of vult zijn inventaris met items, zonder ooit de bedoelde interface aan te raken. Hij breekt de game-engine niet; hij roept rechtstreeks de netwerk-events van je server aan.

Dit is de meest voorkomende manier waarop FiveM-servers worden misbruikt, en "beveilig je events" is het standaardadvies. Het probleem is dat dat advies ervan uitgaat dat je al weet welke events blootliggen. Op een server met tientallen resources weet bijna niemand dat. Dit artikel legt uit hoe trigger-exploits werken, waarom ze met de hand zo lastig te verhelpen zijn en hoe we het hele probleem in een tool veranderden: Trigger Finder.

Wat een trigger-exploit eigenlijk is

In FiveM communiceren scripts over de client-servergrens via netwerk-events. Een client roept TriggerServerEvent aan en de server voert de handler uit die voor die eventnaam is geregistreerd. Zo werkt legitieme gameplay, en precies dat misbruikt een cheat.

Een cheatmenu kan elk netwerk-event dat je server registreert afvuren, met willekeurige argumenten. Heeft een resource een server-event dat geld toevoegt, een item geeft of een voertuig spawnt en vertrouwt het de waarden van de client, dan roept de cheater het gewoon rechtstreeks aan:

-- Kwetsbaar: de server vertrouwt alles wat de client stuurt
RegisterNetEvent("shop:buyItem", function(item, amount)
    local ply = FX.GetPlayerFromSource(source)
    -- Geen prijscontrole, geen validatie — de client bepaalt alles
    ply.addItem(item, amount)
end)

-- Een cheat roept simpelweg aan:
-- TriggerServerEvent("shop:buyItem", "gold_bar", 9999)

De kern van het probleem

Elke netwerk-event-handler die geld, items, wapens, voertuigen of banen toevoegt, is een potentiële exploit, tenzij de server het verzoek valideert los van wat de client beweert.

Waarom het met de hand zo moeilijk te verhelpen is

Eén event verhelpen is goed begrepen: server-side valideren, nooit client-invoer vertrouwen. We behandelen de exacte patronen in onze FiveM Lua Event-beveiligingsgids. Het moeilijke is niet één event verhelpen; het is weten waar ze allemaal zitten.

Een typische roleplay-server draait 50 tot 300+ resources, veel daarvan third-party scripts die je niet zelf schreef. Elk kan tientallen netwerk-events registreren — potentieel duizenden events, verspreid over bestanden die je nooit hebt geopend. Je kunt niet beveiligen wat je niet ziet, en niemand gaat handmatig elke resource doorlezen op zoek naar een vergeten addMoney-handler.

Zichtbaarheid is het echte probleem

Servereigenaren worden niet misbruikt omdat het beveiligen van een event moeilijk is. Ze worden misbruikt omdat ze nooit wisten dat het gevaarlijke event bestond.

Hoe we het oplosten

In plaats van nog meer documentatie te publiceren, bouwden we de audit rechtstreeks in het ZeroTrust-paneel. Het idee was simpel: als het gevaarlijke deel van een server zijn event-oppervlak is, dan zou elke eigenaar dat hele oppervlak in één oogopslag moeten kunnen zien, gesorteerd op risico, met een directe route naar elk.

  • Alles vinden — automatisch elk event en elke trigger in al je resources in kaart brengen, niet alleen die je je herinnert.
  • Sorteren op risico — de handlers tonen die cheaters echt aanvallen (geld, items, wapens, voertuigen, banen, uitgaande HTTP) zodat je begint waar het telt.
  • Recht naar de bron — je de exacte resource, het bestand en de regel wijzen, zodat fixen seconden kost.

Maak kennis met Trigger Finder

Trigger Finder is een scanner ingebouwd in het ZeroTrust-dashboard. Je start een server-geïnitieerde scan en hij doorloopt je resources en haalt elk gevonden event en elke trigger eruit — elk gemarkeerd met resource, bestand, regelnummer, kant (client of server) en eventnaam.

Het brengt je volledige trigger-oppervlak in kaart

In plaats van te gokken krijg je een volledige, doorzoekbare inventaris van elk netwerk-event dat je server blootstelt. Elke trigger wordt vastgelegd met waar hij leeft en in welke richting hij stroomt — Client → Server, Server → Client, Client → Client of Server → Server — zodat je meteen ziet welke bereikbaar zijn voor een kwaadwillende client.

Het markeert de gevaarlijke automatisch

  • Geld verplaatsen: addMoney, giveMoney, addAccountMoney, addBank, giveBank.
  • Items geven: giveItem, addItem, addInventoryItem.
  • Wapens uitdelen: giveWeapon, addWeapon.
  • Voertuigen spawnen: addVehicle, spawnVehicle.
  • Banen wijzigen: setJob, setPlayerJob.
  • Pickups maken of uitgaande verzoeken sturen: createPickup, PerformHttpRequest, SendWebhook.

Het resultaat is een risico-overzicht voor je hele server: hoeveel triggers veilig of kritiek zijn, welke resources de meeste gevaarlijke events bevatten en hoe alles zich verdeelt tussen client en server.

Het sorteert alles in categorieën

  • Geld, Item-geven/toevoegen-events en Inventaris-events voor de economie.
  • Voertuig spawnen en Baan wisselen voor veelvoorkomende roleplay-exploits.
  • RegisterNetEvent en AddEventHandler om events te spotten die in de verkeerde context zijn geregistreerd.
  • Dynamische events voor alles dat niet in een bekend patroon past.

Het brengt je naar de exacte regel

Elke bevinding linkt terug naar zijn resource → bestand → regel, met een code-contextweergave om de trigger ter plekke te lezen. Wanneer Trigger Finder een gevaarlijke addItem-handler markeert, weet je precies welk script en welke regel je moet harden — zonder zoeken.

Het is af te stemmen op jouw server

Elke server is anders, zeker met custom frameworks. Je kunt je eigen sleutelwoorden en lijst met gevaarlijke events instellen, zodat Trigger Finder de functienamen markeert die er voor jouw scripts toe doen, niet alleen de standaardwaarden.

Van vinden naar fixen

Trigger Finder vertelt je wat je moet beveiligen. De volgende stap dicht het gat: valideer elk gemarkeerd event server-side, haal waarden op via server-side methoden in plaats van de client te vertrouwen, en controleer de status, positie en rechten van de speler voordat je handelt. Alle patronen — plus de FXServer-beveiligingsconvars die het inschakelen waard zijn — staan in onze FiveM Lua Event-beveiligingsgids.

Gelaagde verdediging

Trigger Finder brengt het oppervlak in kaart, server-side validatie dicht de gaten, en de detecties van ZeroTrust vangen de cheaters die blijven proberen. Geen enkele laag volstaat op zichzelf.

Stop met gokken naar je aanvalsoppervlak

Je kunt geen aanvalsoppervlak verdedigen dat je nooit hebt gezien. Trigger Finder maakt van het vage advies "beveilig je events" een concrete checklist, gegenereerd uit je echte server — zodat je precies weet wat blootligt en waar je het moet fixen.

Klaar om het trigger-oppervlak van je server te zien?

Trigger Finder zit in het ZeroTrust-paneel. Koop ZeroTrust of kom op onze Discord om te beginnen.