Fraud ScammingPolice alerts and events

Police alerts and events

Police alerts through your dispatch script, and the server events for your own logs, XP or MDT.

On this page

Police alerts

Alerts go through your dispatch script: tk_dispatch, cd_dispatch3d, rcore_dispatch, core_dispatch, qs-dispatch, cd_dispatch, ps-dispatch, origen_police or lb-tablet are found automatically. Without one, on-duty police get a notification and a map blip.

Police see an area radius metres across around where it happened, not the exact spot. Set the police jobs and each alert in config.lua:

config.lua
police = {
    jobs = { 'police' },
    alerts = {
        atm = { enabled = true, chance = 100, code = '10-90', priority = 'high', radius = 30.0, time = 5, cooldown = 0 },
        ...
    },
},
AlertWhen
atmAn ATM keeps a cloned card
mailboxA neighbour sees someone going through a mailbox (10% as it ships)
bankA teller spots a forged check
storeA store's card check flags a cloned card
moneyOrderA bank flags a player for cashing too many money orders
returnsA clerk catches a fraudulent return, or the chain flags a player for too many
FieldWhat it does
chancePercent of the time it alerts
code, priorityWhat your dispatch shows
radiusMetres across the area police see (0 for the exact spot)
timeMinutes the alert stays on the map
cooldownSeconds before the same card, check or player alerts again for the same kind

Texts from a burner phone never alert the police.

Server events

Police alert

Fires with every alert sent to the police (not the ones its chance or cooldown held back). Use it to log alerts.

server.lua
AddEventHandler('tr_fraud:alert', function(src, kind, coords, serial)
    -- kind: the alert's name in police.alerts, coords: where it really happened
end)

Conversation ended

server.lua
AddEventHandler('tr_fraud:texted', function(src, victim, scam, outcome, serial, card)
    -- outcome: 'success', 'hangup' (the victim stopped answering or said no), 'dropped' (the player went
    -- quiet or erased the phone) or 'lost' (the AI stopped answering)
    -- serial: the burner phone's, card: the card details the player got, on 'success'
end)

Cloned card at an ATM

server.lua
AddEventHandler('tr_fraud:cashed', function(src, outcome, amount, card)
    -- outcome: 'paid', 'kept', or 'cancelled' when the owner had cancelled the card; card: its row
end)

Money order

server.lua
AddEventHandler('tr_fraud:moneyOrder', function(src, outcome, amount, id)
    -- outcome: 'bought', 'declined', 'cancelled' or 'caught' at a store; 'paid' or 'flagged' at a bank
end)

Check at a teller

server.lua
AddEventHandler('tr_fraud:checkCashed', function(src, outcome, amount, check)
    -- outcome: 'paid' or 'reported'; check: its row
end)

Store return

server.lua
AddEventHandler('tr_fraud:storeReturn', function(src, outcome, amount, sale)
    -- outcome: 'bought', 'declined', 'cancelled' or 'caught' at the purchase; 'paid', 'caught' or
    -- 'flagged' at a return. amount: cents at a purchase, the dollars paid at a return
end)

Every log

tr_fraud:log fires with every admin log while logs are on, whatever logs.method says. See Logs.

Was this page helpful?

Still stuck? Open a ticket on Discord.Privacy