After running my QBCore server for over two years, one thing became painfully clear: my police-related scripts had quietly turned into a mess.
Not because any single one of them was bad. Each script did its job. The problem was that they had no idea the others existed.
This is the story of how I merged 5 separate scripts into a single unified system called tack_billing — and what it taught me about building for the server, not just shipping features.
The Problem: 5 Scripts, 5 UIs, 5 Mental Models
Over the life of my server, I had built or adopted these scripts independently:
Script Role
gg_billing2 Issuing bills to players
gg_oushu Seizing (confiscating) items or cash
gg_police_notice Sending alerts between officers
gg_tack_billing A second billing flow (wanted-list related)
lokat_sharing_money Distributing rewards between officers
Individually, they all worked.…