Hey everyone! ![]()
Weβre proud to introduce Advanced Taxi Job β a fully progression-based, career-style taxi system designed for RP servers that want more than just βdrive from A to Bβ.
This script turns taxi driving into a long-term profession with levels, vehicle unlocks, tasks, upgrades, and real motivation to keep working.
No more boring taxi jobs β every ride now matters.
Advanced Taxi Job β A Real Career, Not Just a Job
Drive. Progress. Unlock. Earn.
Advance Taxi Job transforms taxi driving into a real RP career with depth, goals, and progression.
Key Features
Full Career Progression System β Level up by driving, unlock content, and grow as a taxi driver
Experience & Level System β Earn EXP per kilometer and advance naturally
Vehicle Unlock System β New taxis require both level AND unlock points
Tasks & Challenges β Daily, weekly, and monthly tasks with rewards
Upgrade System β Improve earnings, EXP gain, and job availability
Distance-Based Taximeter β Fair pricing, no time charging, only distance
Passenger Selection System β Choose where you want to pick up passengers from the menu
Configurable Passenger Spawns β Passengers can spawn anywhere you define
Tiered Taxi Vehicles β Each taxi has level requirements, rating, and deposit
Statistics System β Track rides, distance, earnings, and performance
Highly Configurable β Adjust everything to fit your economy and RP style
Vehicle Progression That Actually Matters
Leveling up is not enough.
To unlock new taxi vehicles, drivers must:
- Reach the required level
- Earn unlock points from tasks and challenges
- Spend points to unlock new taxis
This makes progression meaningful and rewarding.
Passenger System β You Choose How You Work
- Passengers spawn across the map (fully configurable)
- Players can choose pickup locations from the menu
- Multiple destination zones
- Dynamic distances and payouts
Work smart, not random.
Realistic Taximeter
- Start price for every ride
- Price per kilometer
- Live calculation
- Optional tips
- No time charging β only distance
Fair, transparent, and RP-friendly.
Tasks, Challenges & Rewards
Keep gameplay fresh with tasks such as:
- Transport X passengers
- Drive X kilometers
- Complete multiple rides
- Earn a target amount
Rewards include:
Money
Experience
Unlock points
Statistics & Motivation
Players can track:
- Total rides
- Distance driven
- Earnings
- Performance over time
Perfect for competitive or progression-focused servers.
Easy to Configure
The script is fully configurable:
- Passenger locations
- Destination zones
- Vehicles & tiers
- Levels & EXP scaling
- Tasks & rewards
- Economy balance
- Upgrades & progression
Works with ESX, QBcore and QBox and uses ox_lib for interactions.
CONFIG
Config = {}
Config.Framework = 'ESX' -- Framework used: 'ESX' or 'QBcore'
Config.OxLib = true -- Use ox_lib (true/false)
Config.Language = 'en' -- Language
-- Available languages:
-- 'pl' - Polish
-- 'en' - English
-- 'fr' - French
-- 'de' - German
-- 'es' - Spanish
-- 'it' - Italian
-- 'pt' - Portuguese
-- 'sv' - Swedish
-- 'tr' - Turkish
Config.DistanceUnit = 'km' -- Distance unit: 'km' (kilometers) or 'mile' (miles)
Config.Job = {
requireJob = false, -- Require specific job to use taxi system (true/false)
jobName = 'taxi', -- Job name required (only if requireJob = true)
jobLabel = 'Taxi Driver' -- Job label (for display purposes)
}
Config.Debug = {
enabled = false, -- Enable debug mode (true/false)
print = false, -- Print debug messages to console
commands = false -- Enable debug commands
}
Config.NPC = {
coords = vector4(895.0, -179.0, 74.5, 240.0), -- NPC coordinates (x, y, z, heading)
model = 's_m_y_construct_01', -- NPC model name
scenario = 'WORLD_HUMAN_CLIPBOARD', -- NPC scenario/animation
blip = {
enabled = true, -- Enable blip on map (true/false)
sprite = 198, -- Blip sprite ID
color = 5, -- Blip color ID
scale = 0.8, -- Blip scale
label = 'Taxi Office' -- Blip label
}
}
Config.VehicleLocations = {
spawns = { -- Multiple spawn locations (will try each until free spot found)
vector4(899.0, -181.0, 73.0, 53.0), -- Vehicle spawn location 1 (x, y, z, heading)
},
spawnCheckRadius = 3.0, -- Radius to check if spawn location is free (in meters)
returnZone = {
coords = vector3(895.0, -179.0, 74.0), -- Vehicle return zone center
radius = 10.0 -- Return zone radius (in meters)
}
}
Config.VehicleRegistrationPrefix = 'NRG ' -- Prefix for vehicle registration plate
Config.Vehicles = {
{
model = 'taxi', -- Vehicle model name
label = 'Standard Taxi', -- Vehicle display name
stars = 1, -- Vehicle star rating (1-5)
levelRequired = 1, -- Required player level to use
deposit = 500, -- Deposit amount required to spawn vehicle
unlockPoints = 0, -- Points required to unlock (0 = unlocked from start)
price = 0 -- Vehicle purchase price (0 = free)
},
{
model = 'taxi2', -- Vehicle model name
label = 'Better Taxi', -- Vehicle display name
stars = 2, -- Vehicle star rating (1-5)
levelRequired = 3, -- Required player level to use
deposit = 1000, -- Deposit amount required to spawn vehicle
unlockPoints = 50, -- Points required to unlock
price = 0 -- Vehicle purchase price (0 = free)
},
{
model = 'taxi3', -- Vehicle model name
label = 'Premium Taxi', -- Vehicle display name
stars = 3, -- Vehicle star rating (1-5)
levelRequired = 5, -- Required player level to use
deposit = 2000, -- Deposit amount required to spawn vehicle
unlockPoints = 150, -- Points required to unlock
price = 0 -- Vehicle purchase price (0 = free)
},
{
model = 'taxi4', -- Vehicle model name
label = 'Luxury Taxi', -- Vehicle display name
stars = 4, -- Vehicle star rating (1-5)
levelRequired = 8, -- Required player level to use
deposit = 3500, -- Deposit amount required to spawn vehicle
unlockPoints = 300, -- Points required to unlock
price = 0 -- Vehicle purchase price (0 = free)
},
{
model = 'taxi5', -- Vehicle model name
label = 'Elite Taxi', -- Vehicle display name
stars = 5, -- Vehicle star rating (1-5)
levelRequired = 10, -- Required player level to use
deposit = 5000, -- Deposit amount required to spawn vehicle
unlockPoints = 500, -- Points required to unlock
price = 0 -- Vehicle purchase price (0 = free)
}
}
Config.Levels = {
maxLevel = 50, -- Maximum level (0 = unlimited)
expPerLevel = { -- EXP required per level (if empty, uses formula)
-- [1] = 100, -- Level 1 requires 100 EXP
-- [2] = 250, -- Level 2 requires 250 EXP
-- If empty, uses formula: baseExp * (level * multiplier)
},
baseExp = 100, -- Base EXP (used if expPerLevel is empty)
expMultiplier = 1.5 -- EXP multiplier (used if expPerLevel is empty)
}
-- Task types: 'passengers', 'mileage', 'earnings', 'rides'
Config.Tasks = {
{
id = 1, -- Unique task ID
name = 'Daily Transport', -- Task name
description = 'Transport %s passengers within 24 hours', -- Task description (%s = target value)
type = 'passengers', -- Task type
target = 10, -- Target value to achieve
timeLimit = 24, -- Time limit in hours
cooldownHours = 12, -- Hours to wait before taking this task again
levelRequired = 1, -- Required player level to take task
rewards = {
money = 5000, -- Money reward
exp = 100, -- Experience reward
points = 10 -- Points reward
}
},
{
id = 2, -- Unique task ID
name = 'Mileage Challenge', -- Task name
description = 'Drive %s km within 7 days', -- Task description
type = 'mileage', -- Task type
target = 500, -- Target value in kilometers
timeLimit = 168, -- 7 days in hours
cooldownHours = 24, -- Hours to wait before taking this task again
levelRequired = 2, -- Required player level
rewards = {
money = 10000, -- Money reward
exp = 250, -- Experience reward
points = 25 -- Points reward
}
},
{
id = 3, -- Unique task ID
name = 'Monthly Earnings', -- Task name
description = 'Earn %s$ within 30 days', -- Task description
type = 'earnings', -- Task type
target = 50000, -- Target value in dollars
timeLimit = 720, -- 30 days in hours
cooldownHours = 48, -- Hours to wait before taking this task again
levelRequired = 5, -- Required player level
rewards = {
money = 20000, -- Money reward
exp = 500, -- Experience reward
points = 50 -- Points reward
}
},
{
id = 4, -- Unique task ID
name = 'Ride Master', -- Task name
description = 'Complete %s rides within 24 hours', -- Task description
type = 'rides', -- Task type: count completed rides
target = 5, -- Target value (number of rides)
timeLimit = 24, -- Time limit in hours
cooldownHours = 12, -- Hours to wait before taking this task again
levelRequired = 1, -- Required player level
rewards = {
money = 3000, -- Money reward
exp = 75, -- Experience reward
points = 8 -- Points reward
}
}
}
Config.Taximeter = {
startPrice = 50.0, -- Initial price when passenger enters
pricePerKm = 7.5, -- Price per kilometer
pricePerMinute = 1.5, -- Price per minute (optional)
minTip = 10, -- Minimum tip amount
maxTip = 90, -- Maximum tip amount
tipChance = 0.3, -- Chance to receive tip (0.0 - 1.0) - only if passenger not cheated
updateInterval = 1000, -- Update interval in milliseconds
expPerKm = 5 -- Experience points per kilometer traveled
}
Config.PassengerLocations = {
{
name = 'Airport', -- Location name
coords = vector4(-1037.0, -2737.0, 20.0, 150.0), -- Location coordinates (x, y, z, heading)
spawnRadius = 5.0 -- Passenger spawn radius around location
},
{
name = 'City Center', -- Location name
coords = vector4(216.0, -800.0, 30.0, 67.0), -- Location coordinates
spawnRadius = 5.0 -- Passenger spawn radius
},
{
name = 'Beach', -- Location name
coords = vector4(-1207.0, -1545.0, 4.0, 323.0), -- Location coordinates
spawnRadius = 5.0 -- Passenger spawn radius
},
{
name = 'Hospital', -- Location name
coords = vector4(385.0, -572.0, 28.0, 159.0), -- Location coordinates
spawnRadius = 5.0 -- Passenger spawn radius
},
{
name = 'Police Station', -- Location name
coords = vector4(412.0, -987.0, 29.0, 180.0), -- Location coordinates
spawnRadius = 5.0 -- Passenger spawn radius
},
{
name = 'Train Station', -- Location name
coords = vector4(-237.0, -980.0, 29.0, 247.0), -- Location coordinates
spawnRadius = 5.0 -- Passenger spawn radius
}
}
Config.Keybind = {
openWorkMenu = 'F11', -- Key to open work menu in vehicle
key = 'F11' -- Key code (F11)
}
Config.DestinationLocations = {
{
name = 'Airport', -- Location name
coords = vector4(-1037.0, -2737.0, 20.0, 150.0), -- Location coordinates (x, y, z, heading)
radius = 50.0 -- Spawn radius around location (in meters)
},
{
name = 'City Center', -- Location name
coords = vector4(218.0, -817.0, 30.0, 191.0), -- Location coordinates
radius = 50.0 -- Spawn radius
},
{
name = 'Beach', -- Location name
coords = vector4(-1197.0, -1550.0, 4.0, 1.0), -- Location coordinates
radius = 50.0 -- Spawn radius
},
{
name = 'Hospital', -- Location name
coords = vector4(385.0, -572.0, 28.0, 159.0), -- Location coordinates
radius = 50.0 -- Spawn radius
},
{
name = 'Police Station', -- Location name
coords = vector4(412.0, -987.0, 29.0, 180.0), -- Location coordinates
radius = 50.0 -- Spawn radius
},
{
name = 'Train Station', -- Location name
coords = vector4(-237.0, -980.0, 29.0, 247.0), -- Location coordinates
radius = 50.0 -- Spawn radius
},
{
name = 'Shopping Mall', -- Location name
coords = vector4(-69.0, -1777.0, 28.0, 138.0), -- Location coordinates
radius = 50.0 -- Spawn radius
},
{
name = 'Downtown', -- Location name
coords = vector4(327.0, -245.0, 53.0, 246.0), -- Location coordinates
radius = 50.0 -- Spawn radius
},
{
name = 'Suburbs', -- Location name
coords = vector4(-1232.0, -994.0, 5.0, 120.0), -- Location coordinates
radius = 50.0 -- Spawn radius
},
{
name = 'Industrial Area', -- Location name
coords = vector4(956.0, -1961.0, 30.0, 170.0), -- Location coordinates
radius = 50.0 -- Spawn radius
}
}
Config.Jobs = {
refreshInterval = 30000, -- Refresh jobs every X milliseconds (30000 = 30 seconds)
refreshOnComplete = true, -- Refresh jobs after completing a job (true/false)
jobExpireTime = 3600000, -- Job expiration time in milliseconds (3600000 = 1 hour)
maxJobsToShow = 3 -- Number of jobs to display in the menu
}
Config.Passenger = {
gpsDistanceMultiplier = 1.8, -- Multiplier for GPS distance (radial distance * this = approximate GPS route distance)
enableCheatDetection = true, -- Enable cheating detection (true/false) - disabled by default as GPS routes vary greatly
detectionRadius = 100.0, -- Cheating detection radius (in meters)
routeDeviationThreshold = 5.0, -- Route deviation threshold (multiplier - 5.0 = 500% of direct distance)
complaintChance = 0.2, -- Chance of passenger complaint when cheating detected
stopChance = 0.05, -- Chance of passenger stopping and leaving when cheating detected
penaltyPercent = 0.5, -- Penalty percentage when cheating detected (0.5 = 50%)
checkInterval = 10000, -- How often to check for cheating (in milliseconds)
minDistanceToCheck = 1000.0, -- Minimum distance traveled before checking (in meters)
maxTimeAwayFromRoute = 30000 -- Maximum time (ms) moving away from destination before complaint (30000 = 30 seconds)
}
Config.Statistics = {
ranges = {
last24h = 24, -- Last 24 hours (in hours)
last7days = 168, -- Last 7 days (in hours)
last30days = 720, -- Last 30 days (in hours)
total = 0 -- Total (0 = all data)
}
}
-- Upgrades System Configuration
-- Each upgrade can be leveled up multiple times (maxLevel)
-- Bonus values are cumulative (sum of all levels up to current)
Config.Upgrades = {
{
id = 'bonus_exp', -- Unique upgrade ID (used in database)
name = 'Experience+', -- Display name
description = '+%s%% EXP per ride', -- Description (%s = total bonus value)
icon = 'graduation-cap', -- FontAwesome icon
maxLevel = 5, -- Maximum upgrade level
bonusPerLevel = { -- Bonus gained at each level (cumulative)
[1] = 5, -- Level 1: +5% EXP
[2] = 5, -- Level 2: +10% EXP (5+5)
[3] = 10, -- Level 3: +20% EXP (5+5+10)
[4] = 10, -- Level 4: +30% EXP (5+5+10+10)
[5] = 20 -- Level 5: +50% EXP (5+5+10+10+20)
},
costPerLevel = { -- Cost in points for each level
[1] = 20, -- Level 1 costs 20 points
[2] = 40, -- Level 2 costs 40 points
[3] = 70, -- Level 3 costs 70 points
[4] = 100, -- Level 4 costs 100 points
[5] = 150 -- Level 5 costs 150 points
}
},
{
id = 'bonus_earnings', -- Unique upgrade ID
name = 'Earnings+', -- Display name
description = '+%s%% earnings per ride', -- Description
icon = 'dollar-sign', -- FontAwesome icon
maxLevel = 5, -- Maximum upgrade level
bonusPerLevel = { -- Bonus gained at each level (cumulative)
[1] = 5, -- Level 1: +5%
[2] = 5, -- Level 2: +10%
[3] = 10, -- Level 3: +20%
[4] = 10, -- Level 4: +30%
[5] = 20 -- Level 5: +50%
},
costPerLevel = {
[1] = 25,
[2] = 50,
[3] = 90,
[4] = 140,
[5] = 200
}
},
{
id = 'bonus_jobs', -- Unique upgrade ID
name = 'Jobs+', -- Display name
description = '+%s visible jobs', -- Description
icon = 'list-check', -- FontAwesome icon
maxLevel = 5, -- Maximum upgrade level
bonusPerLevel = { -- Bonus gained at each level (cumulative)
[1] = 1, -- Level 1: +1 job
[2] = 1, -- Level 2: +2 jobs
[3] = 1, -- Level 3: +3 jobs
[4] = 2, -- Level 4: +5 jobs
[5] = 2 -- Level 5: +7 jobs
},
costPerLevel = {
[1] = 15,
[2] = 30,
[3] = 50,
[4] = 80,
[5] = 120
}
}
}
Config.SavaToSQL = true -- Save data to SQL database (true/false)
Preview
Video Preview: YouTube
Download
Dependencies
Turn taxi driving into a real profession.
Let players grind, unlock, upgrade, and progress β one ride at a time. ![]()
![]()
Advanced Taxi Job β because civilian jobs should be fun too.
Final Information
| Code is accessible | Escrow |
| Subscription-based | No |
| Lines (approximately) | ~4000 |
| Requirements | Yes ox_lib, ox_target/qb-target and oxmysql |
| Support | Yes |
NRG Releases on CFX
![]() Advanced SIM Card System For LB_phone |
![]() NRG Alco Effect System Realistic Drunk Effect |
![]() NRG HUD Customizable & Modern |
![]() NRG Pro Meter Vehicle Performance Test |
![]() NRG Stress System Psychology & Immersive |





