Frequently asked questions about the Buy ATM System.
General Questions
What is the Buy ATM System?
The Buy ATM System is a comprehensive ATM ownership and management script for FiveM servers. It allows players to purchase, manage, and profit from ATMs across the map.
Which frameworks are supported?
The script supports:
QBCore - Full support
ESX - Full support
Qbox - Full support
Framework detection is automatic via ic3d_lib.
What are the requirements?
Required Dependencies:
ox_lib - For UI components and notifications
ic3d_lib - For framework abstraction (included)
oxmysql - For database operations
Server Requirements:
FiveM server
MySQL database
One of the supported frameworks
Installation Questions
How do I install the script?
Install dependencies (ox_lib, ic3d_lib, oxmysql)
Import atm.sql to your database
Place script in resources folder
Add ensure godv_buyatm to server.cfg
Configure config.lua
Restart server
See Installation Guide for detailed steps.
Do I need to configure the database?
Yes, you need to:
Import atm.sql to create tables
Configure oxmysql connection
Verify tables were created
See Installation Advanced Detailed for database setup.
Can I use this with my existing banking system?
Yes, the script works alongside existing banking systems. It uses framework abstraction to interact with bank/cash without conflicts.
Note: If you have custom banking scripts, you may need to disable Config.AutoDetectBankDelta and use manual transaction processing.
Configuration Questions
How do I change the language?
Set Config.Locale = "your_language" in config.lua
Create locale file in locales/your_language.lua
Translate all strings
Restart resource
See Configuration Guide for details.
How do I limit how many ATMs players can own?
Set Config.MaxATMsPerPlayer in config.lua:
Can I disable ATM blips?
Yes, set Config.ATMBlip.Enabled = false in config.lua.
How do I change the NPC location?
Edit Config.ATMNpc.Coords in config.lua:
Use /getcoords in-game to find coordinates.
Gameplay Questions
How does the tax system work?
Automatic Detection:
Player approaches ATM (within Config.ProximityRadius)
System detects deposit/withdraw transactions
Calculates tax based on ATM's tax rate
Deducts tax from appropriate source:
Withdraw: Tax from cash
Deposit: Tax from bank
Adds tax to ATM revenue
Tax Rates:
Limited by owner's level (0-39% max)
Set per ATM by owner/manager
Applied automatically to transactions
How do players purchase ATMs?
Open management UI (via NPC or command)
Browse available ATMs
Click "Buy" on desired ATM
Select payment method (cash or bank)
ATM becomes owned after payment
How does the rent system work?
Rent Period:
15 days from purchase date
Extends by 15 days when paid
Auto-expires after 10 days overdue
Rent Payment:
Pay via management UI
Extends ownership by 15 days
Can cancel rental to make ATM available
How do I hire employees?
Open ATM management UI
Go to "Employees" tab
Enter player's server ID
Click "Invite"
Set permissions for employee
Permissions:
manage - Full management access
withdraw - Can withdraw revenue
manage_tax - Can change tax rate
view_logs - Can view transaction logs
employees - Can manage employees
How does the level system work?
XP Sources:
250 XP per owned ATM
150 XP per $25,000 transaction volume
40 XP per $2,000 revenue generated
Level Benefits:
Higher levels = higher tax rate limits
Level 1: 0-10% tax
Level 5+: 0-39% tax
How do I withdraw revenue?
Open ATM management UI
Go to "Revenues" tab
Click "Payout"
Enter amount
Select method (cash or bank)
Confirm withdrawal
Requirements:
Must be owner or have withdraw permission
Technical Questions
How does coordinate synchronization work?
The script uses chunked streaming to prevent network overflow:
Server sends coordinates in chunks (75-200 per chunk)
Uses TriggerLatentClientEvent for efficient transmission
Client accumulates chunks in buffer
Updates cache when complete
Benefits:
Prevents reliable overflow errors
Handles large ATM counts efficiently
Automatic throttling
What happens if the server restarts?
On Restart:
All ATM data persists in database
Players receive updated ATM list on join
Coordinates sync via chunked streaming
Blips refresh automatically
Wait Time:
Allow 1-2 seconds for coordinate sync
Use /toggleatmblips to refresh if needed
Can I customize the UI?
Yes, you can modify:
web/style.css - Visual styling
web/ATM.html - Structure
web/script.js - Behavior
Note: UI modifications may be overwritten on updates. Keep backups.
How do I add more ATMs?
Method 1: In-Game Command
Method 2: Bulk Import
Method 3: Manual SQL
Troubleshooting Questions
ATMs not showing on map
Solutions:
Check Config.ATMBlip.Enabled = true
Run /toggleatmblips to refresh
Wait 1-2 seconds after server restart
Verify ATMs exist in database
Tax not being collected
Solutions:
Verify Config.AutoDetectBankDelta = true
Check player is within Config.ProximityRadius
Verify ATM has tax rate set (> 0)
Check server console for errors
Employees not receiving permissions
Solutions:
Verify employee was added correctly
Check permissions JSON in database
Refresh UI after permission changes
Verify employee identifier matches
Database errors
Solutions:
Verify atm.sql was imported
Check oxmysql connection
Verify database credentials
Check server console for specific errors
See Troubleshooting Guide for more solutions.
Performance Questions
Will this script lag my server?
No, the script is optimized for performance:
0.00ms resmon usage - Zero impact
Efficient database queries
Chunked streaming prevents overflow
Optimized proximity detection
How many ATMs can I have?
The script can handle:
Small servers: 50-100 ATMs
Medium servers: 100-500 ATMs
Large servers: 500+ ATMs
Optimization Tips:
Reduce Config.ProximityRadius for better performance
Disable blips if not needed
Use chunked streaming (automatic)
Does it work with many players?
Yes, the script uses:
Queue system for coordinate requests
Throttling to prevent spam
Efficient database queries
Client-side caching
Permission Questions
Who can change tax rates?
Default Behavior:
Owner can always change tax
Employees with manage_tax permission (if Config.RequireOwnerForTax = false)
Employees with manage permission (if Config.AllowTaxChangeByManagers = true)
Configuration:
Who can withdraw revenue?
ATM owner (always)
Employees with withdraw permission
Who can manage employees?
ATM owner (always)
Employees with manage permission
Support Questions
Where can I get help?
Check Troubleshooting Guide
Review Configuration Guide
Check server console for errors
Contact script developer
How do I report bugs?
Enable Config.Debug = true
Reproduce the issue
Check server console for errors
Note steps to reproduce
Contact developer with details
Can I request features?
Feature requests should be directed to the script developer. Check if the feature already exists in the documentation first.
Miscellaneous Questions
Can I transfer ATMs to other players?
Yes, use the "Transfer ATM" feature in the management UI:
Open ATM management
Go to Settings tab
Enter target player ID
Click "Transfer ATM"
Confirm transfer
What happens to expired ATMs?
Auto-Reclaim:
ATMs expire 10 days after rent due date
Automatically reclaimed (owner set to NULL)
Become available for purchase
Runs every 10 minutes
Can I see transaction history?
Yes, in the management UI:
Open ATM management
Go to Revenues tab
View transaction history
Filter by date/type
Requirements:
Must be owner or have view_logs permission
Still have questions? Check the Troubleshooting Guide or contact support.