DF Border Control
Work the passport desk at the airport — read the papers, judge the traveller, stamp them through or turn them away.
DF Border Control turns airport immigration into a real shift job. Every traveller is generated on the server with a passport, a boarding pass and a face — and somewhere in those papers there may be a mistake. An expired document, a name that does not match, a machine-readable zone that disagrees with the print, or simply the wrong person standing in front of you. You decide. The higher your level, the more rules apply and the more subtle the forgeries get.
⭐ Highlights
- Every case is generated — no scripted scenarios to memorise, no two shifts alike.
- The traveller is the document — the passport photo is a real headshot of the ped queueing at your desk, so a mismatched face is something you actually see.
- Six rules, unlocked by level — you start with two and grow into forged machine-readable zones.
- Forgeries get subtler as you rise — a blatant wrong surname at level 1 becomes a single swapped letter at level 5.
- Stamp feedback — approve or deny and the stamp lands on the passport, with sound.
- Database-backed — desks, levels, XP and weekly stats live in MySQL and survive restarts.
- 100% in-game management — place every desk with a live ghost-ped preview via
/borderadmin. - Framework agnostic — auto-detects ESX, QBCore & Qbox.
🛂 The Shift
- Ten travellers per shift — each one a fresh passport, boarding pass and face.
- The queue is real: the person you cleared walks off past the desk, the one you refused is turned away to the side, and the line steps forward.
- You are placed in your own routing bucket, so your queue belongs to you alone — several officers can work the same airport without seeing each other's travellers.
- A fixed booth camera frames whoever is at the window; you read the papers side by side with the person.
- Correct calls pay, mistakes cost — and both are shown after each decision with the reason spelled out, so players learn the rules by playing.
- Leave early and you keep a configurable share of what you earned.
📖 The Rules
- Level 1 — the passport must not be expired, and the name on the boarding pass must match it.
- Level 2 — the traveller must match the passport photo: sex, hair colour, face.
- Level 3 — the flight must be today.
- Level 4 — the boarding pass must depart from this airport.
- Level 5 — the machine-readable zone must agree with the printed page.
- Level 6+ — two faults can hide in the same set of papers.
- Every rule in force is listed on screen during the shift, with newly unlocked ones highlighted.
🔍 Real Documents
- A proper two-line machine-readable zone is generated per passport — correct filler characters, transliterated umlauts, the lot.
- Forged papers alter only the MRZ, so the fake is caught by reading, not guessing.
- Ten nationalities and eight airports, with names drawn per nationality.
- Boarding passes carry flight number, route, date, gate, seat and sequence — all consistent unless something is deliberately wrong.
📈 Levels & Leaderboard
- 20 levels; XP for good calls, a penalty for bad ones.
- Each level raises your pay, up to a configurable ceiling.
- A weekly leaderboard ranks officers by correct decisions, with accuracy per officer.
- Lifetime stats per player: shifts, travellers processed, mistakes and total earned.
🛠️ In-Game Admin Panel
- Every desk is created in the
/borderadminpanel — the config only holds base settings. - Unlimited desks, anywhere on the map, each assigned to one of the airports.
- Ghost-ped placement — a translucent officer follows your camera; aim to position, scroll to rotate, Ctrl for fine steps.
- Draw the queue by walking it: stand where a traveller should wait and press E, point by point.
- Per-desk blip (sprite, colour, scale) and ground marker (type, size, RGBA) with a live colour preview.
- TP to a desk, reposition or delete it in seconds — changes reach every player instantly, no restart.
⚙️ Compatibility & Dependencies
- Required:
ox_lib,oxmysql. - Frameworks: ESX Legacy, QBCore & Qbox (auto-detected).
- Pay: bank or cash — and if cash is an item on your server, it is handed over as one (
ox_inventory,qb-inventory,tgiann-inventory,jaksam_inventory). - Performance: no permanent loops; desks stream in nearby and the shift runs on callbacks.
🌍 Localization
- Ships with English & German — add any language with a single JSON file.
- Every message, rule text, document label and control hint is translatable — nothing is hardcoded.
📦 Good to Know
- Clean, commented
config.lua;configuration/,integrations/andlocales/stay fully editable. - Tables are created automatically on first start — no SQL file to import, and nothing is pre-filled.
- Balance is yours: travellers per shift, pay, penalties, XP curve, how often papers are clean, and at which level each rule unlocks.
- Discord logging for finished shifts and admin actions, switchable per type.
- Protected via CFX Asset Escrow.
💬 Support
- Discord: Join our Discord