This documentation covers all configuration options available to server owners. The script automatically detects your framework (ESX, QBCore, QBox) and requires oxmysql to function properly.
1) Item Setup
Before configuring the script, you need to add the item to your inventory system. Choose the section that matches your server setup.
ESX (items.lua / database)
Method 1 — items.lua (if your server uses a file-based item list):
['fingerprint_scanner'] = {label='Fingerprint Scanner',weight=500,stack=false,close=true,description='A portable fingerprint scanning device used by law enforcement.'},
⚠️ IMPORTANT: Make sure your item image is placed in the correct inventory folder. For QBCore: qb-inventory/html/images/. For ox_inventory: ox_inventory/web/images/. Name the file fingerprint_scanner.png.
2) Overview
Risk Fingerprint Scanner is a law enforcement tool allowing officers to scan civilian fingerprints and retrieve identity information featuring:
🔍 Real-time fingerprint scanning system
👮 Job-restricted access (configurable per department)
📋 Scan history per officer (stored in database)
🎭 Animated scanning interaction
🖥️ Modern MDT-style UI
📡 Item or command-based activation
🌐 Full localization support
⚙️ ESX, QBCore, and QBox compatibility
3) Dependencies
The following resources must be installed and started before risk-fingerprint:
Verify ensure oxmysql is above ensure risk-fingerprint in server.cfg
❌ Animation not playing
Cause: Invalid animation dictionary or clip name
Solution:
Set Config.UseAnimation = false to disable
Use a valid AnimDict and AnimName
Check FiveM animation list for valid entries
❌ "Resource must be named 'risk-fingerprint'" warning
Cause: Resource folder renamed
Solution:
Rename the resource folder back to risk-fingerprint
Update server.cfg to ensure risk-fingerprint
Restart server
15) Best Practices
✅ Use item activation for RP servers — More immersive than command
✅ Keep MaxDistance realistic — 2.0-3.0 meters feels natural
✅ Set ScanHoldDuration based on server type — Longer for RP, shorter for action
✅ Customize department name/sub — Match your server's lore
✅ Test with correct job names — Case-sensitive, must match exactly
✅ Only give item to authorized staff — Don't give to all players
✅ Customize UI text for your language — Full localization supported
✅ Keep oxmysql running — Required for history and identity lookup
16) Quick Start Checklist
[ ] Add item to your inventory system (Section 1)
[ ] Set Config.AllowedJobs to your police job names
[ ] Set Config.DepartmentName and Config.DepartmentSub
CREATE TABLE IF NOT EXISTS `risk_fingerprint_history` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`officer_identifier` VARCHAR(60) NOT NULL,
`officer_name` VARCHAR(100) NOT NULL,
`target_firstname` VARCHAR(50) NOT NULL,
`target_lastname` VARCHAR(50) NOT NULL,
`target_gender` VARCHAR(10) NOT NULL,
`target_dob` VARCHAR(20) NOT NULL,
`scanned_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);