[PAID][ESX] DRIVABLE Carsharing & Scooter | Very Realistic

A script by MAVERICK888

No reviews yet.
[PAID][ESX] DRIVABLE Carsharing & Scooter | Very Realistic main image

Full Description

Carsharing

Scooter

Tebex: https://codex-scripts.tebex.io/
Preview: YOUTUBE

Description

  • Carsharing & Scooter Script with NativeUI Reloaded Menu very realistic and detailed
  • ~170 lines of config.lua with editable languages
  • Add more vehicles, spawnpoints and carsharing/scooter zones
  • With the dependencies the carposition is saved in database, also the fuel and damage
  • Upon completion of the rental, you will receive a temporary key
  • Draw a waypoint to the car/scooter you choose
  • See every carsharing vehicle or scooter around you about a distance of 250-300

Planned Features

  • Custom UI
  • Vehicle reservation
  • No dependencies
  • Parking feature (rent is not terminated)
  • areas where vehicles cannot be returned
  • Minijob like charging e-Scooters and bring it into zones

Mainmenu Carsharing

DRIVABLE_Carsharing_Mainmenu

Mainmenu Scooter

Submenu Carsharing

Submenu Scooter - Addon Scooter included!

DRIVABLE_Scooter_Submenu

Config Carsharing

Config = {}
Translation = {}

Config.Locale = 'en'
Config.Debug = false -- Only when no players are on the server

Config.adminCommand = 'spawnall' -- This command spawns vehicles on every spawnpoints
Config.adminCommand2 = 'spawnsharing' -- This command spawns one vehicle with ped is inside
Config.adminCommand3 = 'deleteallsharing' -- This command all vehicles on every spawnpoints
Config.adminGroup = 'superadmin' 
Config.openMenuCommand = 'drivable' -- Open menu command

Config.useVehicleKeyChain = true
Config.useLegacyFuel = true
Config.useAdvancedParking = true

	Config.penaltyOutsideZone = 30 -- Amount to pay if vehicle is left ouside zone (keep 0 if no penalty)
	Config.bonusInsideZone = 10 -- Bonus when players park the vehicle inside zone (keep 0 if no bonus)
	Config.damagePenalty = 200 -- The price paid every time the vehicle gets damaged
	Config.damagePercentForPenalty = 1 -- From what percent of cars health removed you get the penalty (1% being realistic / 100% means you have to break whole car)

	Config.vehicleUnlockFee = 20.0 -- The price paid to unlock a vehicle
	Config.licenseRequired = '' -- The license that is required (like DMV for example)
	Config.vehiclePlate = 'SHARE' -- Max. 5 characters
	Config.vehicleBlipText = 'Carsharing Fahrzeug'
	
	Config.zoneBlipText = 'Carsharing Zone'
	Config.Zones = {

		-- South Los Santos
		{
			Center = vector3(71.2444, -1540.9351, 29.2824), -- Center of the zone
			Size = 30.0, -- Size of the zone
		},
		-- Downtown
		{
			Center = vector3(2.0904, -1061.0870, 37.9788), -- Center of the zone
			Size = 30.0, -- Size of the zone
		},
		-- AirPort
		{
			Center = vector3(-983.8330, -2703.1533, 13.6631), -- Center of the zone
			Size = 30.0, -- Size of the zone
		},
		-- Vinewood
		{
			Center = vector3(364.0580, 288.5705, 103.2392), -- Center of the zone
			Size = 30.0, -- Size of the zone
		},
		-- Rockford Hills
		{
			Center = vector3(-971.9504, -186.2301, 37.6184), -- Center of the zone
			Size = 30.0, -- Size of the zone
		},
		-- You can add more spawnpoint and zones. Each zone must have the same number of spawn points

	}

	Config.SpawnPoints = {
		-- 1. Zone
		{x = 67.5124, y = -1537.8594, z = 29.2824, h = 229.1757},    
		{x = 69.4710, y = -1535.5181, z = 29.2829, h = 230.7859},    
		{x = 65.3629, y = -1540.2155, z = 29.2827, h = 230.4444},    
		-- 2. Zone
		{x = 5.0166, y = -1062.1321, z = 37.9783, h = 70.3774},        
		{x = 4.1963, y = -1064.9088, z = 37.9793, h = 69.3691},      
		{x = 6.1128, y = -1059.5553, z = 37.9766, h = 69.5525},      
		-- 3. Zone
		{x = -986.0192, y = -2708.1201, z = 13.6538, h = 336.2069},          
		{x = -989.5491, y = -2706.2910, z = 13.6531, h = 330.6146},        
		{x = -982.9441, y = -2708.9727, z = 13.6594, h = 338.4404},   
		-- 4. Zone
		{x = 360.0009, y = 289.9372, z = 103.3211, h = 249.9357},            
		{x = 358.4997, y = 286.1774, z = 103.3082, h = 248.2710},         
		{x = 361.3233, y = 293.6678, z = 103.3289, h = 249.0538},   
		-- 5. Zone
		{x = -973.6990, y = -182.6722, z = 37.6232, h = 209.0659},              
		{x = -970.4781, y = -181.2451, z = 37.6230, h = 208.6544},            
		{x = -976.7617, y = -184.3829, z = 37.6238, h = 207.9695},    
		-- you can add more spawnpoint and zones. Each zone must have the same number of spawn points
	}

	Config.Vehicles = {

		{
			Display = "Golf 8R", -- Display name of vehicle
			Model   = "g8sharing", -- Model name of the car used to spawn vehicle
			Price   = 8.0,      -- Price per minute
		},
		{
			Display = "M2", -- Display name of vehicle
			Model   = "m2sharing", -- Model name of the car used to spawn vehicle
			Price   = 15.0,      -- Price per minute
		},
		{
			Display = "Q8 TDI", -- Display name of vehicle
			Model   = "q8sharing", -- Model name of the car used to spawn vehicle
			Price   = 24.0,      -- Price per minute
		},

	}

	Translation = {
		['de'] = {
			['vehicleUnlocked'] = "Das Fahrzeug wurde aufgeschlossen! ~b~Stelle das Fahrzeug in einer Zone ab und erhalte einen Bonus!",
			['payUnlock'] = "Du bezahlst ~b~{unlockPrice} $~w~ für die Nutzung",
			['jobUnlock'] = "Dein Job wurde autorisiert. ~g~Das Fahrzeug wurde aufgeschlossen!",
			['notEnoughMoney'] = "~r~Du hast nicht genug Geld auf dem Konto oder die benötigte Lizenz",
			['paid'] = "Du bezahlst ~b~{price} $~w~ für deine Fahrt!",
			['penaltyPaid'] = "Du bezahlst ~b~{penaltyPrice} $~w~ für das Abstellen des Fahrzeugs ~r~außerhalb einer Zone",
			['bonusPaid'] = "Du erhältst ~b~{bonusPrice} $~w~ für das Abstellen des Fahrzeugs ~g~innerhalb einer Zone",
			['jobBonusPaid'] = 'Vielen Dank für das Umsetzen des Fahrzeugs. Du erhältst ~b~{jobBonusPrice} $~w~',
			['damagePenalty'] = "Du bezahlst ~b~{penaltyPrice} $~w~ für das ~r~Beschädigen ~s~des Fahrzeugs",
			['vehicleNotNearby'] = '~r~Du bist nicht nah genug an dem Fahrzeug',
			['minutes'] = 'Minuten',
			['timertext'] = 'Carsharing Zeit',

			-- Menü
			['availableVehicles'] = 'Verfügbare Fahrzeuge:',
			['model'] = 'Modell:',
			['plate'] = 'Kennzeichen:',
			['distance'] = 'Entfernung:',
			['price'] = 'Preise:',
			['fuel'] = 'Tank:',
			['horn'] = 'Fahrzeug hupen lassen',
			['open'] = 'Fahrzeug öffnen',
			['openItem_notification'] = 'Wenn Du das Carsharing Fahrzeug verlässt, wird die Miete beendet',
			['waypoint'] = 'GPS Route setzen',
			['waypoint_notification'] = 'GPS Route gesetzt',
		},
		---
		['en'] = {
			['vehicleUnlocked'] = "The vehicle has been unlocked!! ~b~Park the vehicle in a zone and get a bonus!",
			['payUnlock'] = "You pay ~b~{unlockPrice} $~w~ for the use",
			['jobUnlock'] = "Your job has been authorized. ~g~The vehicle has been unlocked!",
			['notEnoughMoney'] = "~r~You don't have enough money on your bank account or the required license",
			['paid'] = "You pay ~b~{price} $~w~ for your ride!",
			['penaltyPaid'] = "You pay ~b~{penaltyPrice} $~w~ for parking the vehicle ~r~outside a zone",
			['bonusPaid'] = "You got ~b~{bonusPrice} $~w~ for parking the vehicle ~g~inside a zone",
			['jobBonusPaid'] = 'Thank you for moving the vehicle. You got ~b~{jobBonusPrice} $~w~',
			['damagePenalty'] = "You pay ~b~{penaltyPrice} $~w~ for ~r~damaging ~s~the vehicle",
			['vehicleNotNearby'] = '~r~You are not close enough to the vehicle',
			['minutes'] = 'Minutes',
			['timertext'] = 'Carsharing Time',

			-- Menü
			['availableVehicles'] = 'Available vehicles:',
			['model'] = 'Model:',
			['plate'] = 'Plate:',
			['distance'] = 'Distance:',
			['price'] = 'Price:',
			['fuel'] = 'Fuel:',
			['horn'] = 'Horn the vehicle',
			['open'] = 'Open vehicle',
			['openItem_notification'] = 'If you leave the carsharing vehicle, the rental ends',
			['waypoint'] = 'Set GPS route',
			['waypoint_notification'] = 'GPS route created',
		},
	}


Config Scooter

Config = {}
Translation = {}

Config.Locale = 'en'
Config.Debug = false -- Only when no players are on the server

Config.adminCommand = 'spawnallscooter' -- This command spawns vehicles on every spawnpoints
Config.adminCommand2 = 'spawnscooter' -- This command spawns one vehicle with ped is inside
Config.adminCommand3 = 'deleteallscooter' -- This command all vehicles on every spawnpoints
Config.adminGroup = 'superadmin' 
Config.openMenuCommand = 'drivable_scooter' -- Open menu command

Config.useVehicleKeyChain = true
Config.useLegacyFuel = true
Config.useAdvancedParking = true

	Config.penaltyOutsideZone = 5 -- Amount to pay if vehicle is left ouside zone (keep 0 if no penalty)
	Config.bonusInsideZone = 3 -- Bonus when players park the vehicle inside zone (keep 0 if no bonus)
	Config.damagePenalty = 50 -- The price paid every time the vehicle gets damaged
	Config.damagePercentForPenalty = 1 -- From what percent of cars health removed you get the penalty (1% being realistic / 100% means you have to break whole car)

	Config.vehicleUnlockFee = 0.0 -- The price paid to unlock a vehicle
	Config.licenseRequired = '' -- The license that is required (like DMV for example)
	Config.vehiclePlate = 'DRIVE' -- Max. 5 characters
	Config.vehicleBlipText = 'Scooter'
	
	Config.zoneBlipText = 'Scooter Zone'
	Config.Zones = {

		-- Legion Square
		{
			Center = vector3(130.1700, -977.4335, 29.3572), -- Center of the zone
			Size = 8.0, -- Size of the zone
		},
		{
			Center = vector3(216.2702, -1009.0621, 29.2547), -- Center of the zone
			Size = 8.0, -- Size of the zone
		},
		-- Pillbox Medical Center
		{
			Center = vector3(286.3428, -614.4093, 43.3659), -- Center of the zone
			Size = 8.0, -- Size of the zone
		},
		-- Driving School
		{
			Center = vector3(249.8556, -1421.4077, 29.3426), -- Center of the zone
			Size = 8.0, -- Size of the zone
		},
		-- Airport
		{
			Center = vector3(-1013.4562, -2690.6611, 13.9736), -- Center of the zone
			Size = 15.0, -- Size of the zone
		},
		
		-- You can add more spawnpoint and zones. Each zone must have the same number of spawn points

	}

	Config.SpawnPoints = {
		-- 1. Zone
		{x = 131.7415, y = -975.2806, z = 28.8003, h = 42.7593},      
		{x = 131.3370, y = -976.2228, z = 28.7788, h = 43.9306},       
		{x = 131.0399, y = -977.2958, z = 28.7634, h = 43.9724},   
		{x = 130.6507, y = -978.3021, z = 28.7578, h = 46.1816},     
		{x = 130.2296, y = -979.2629, z = 28.7662, h = 44.3161},
		--    
		{x = 215.1745, y = -1011.4619, z = 28.6961, h = 220.2751},     
		{x = 215.4777, y = -1010.4536, z = 28.6671, h = 221.0700},   
		{x = 215.7978, y = -1009.4241, z = 28.6648, h = 219.7078},   
		{x = 216.2651, y = -1008.4223, z = 28.6560, h = 219.8004},    
		{x = 216.6344, y = -1007.4058, z = 28.6528, h = 219.2117},    

		-- 2. Zone
		{x = 289.0097, y = -615.0106, z = 42.8127, h = 359.0479},        
		{x = 287.7008, y = -614.9733, z = 42.8009, h = 359.8542},      
		{x = 286.5371, y = -614.9246, z = 42.7792, h = 1.5153},    
		{x = 285.2432, y = -614.8943, z = 42.7706, h = 1.6688},   
		{x = 284.0041, y = -615.0081, z = 42.7699, h = 359.7180},  
		
		-- 3. Zone
		{x = 253.1781, y = -1418.1610, z = 28.7480, h = 208.8902},           
		{x = 251.8327, y = -1419.1342, z = 28.7609, h = 204.6365},       
		{x = 250.4637, y = -1420.1189, z = 28.7623, h = 203.7853},       
		{x = 249.1249, y = -1421.0443, z = 28.7607, h = 202.6800},     
		{x = 247.8860, y = -1421.9247, z = 28.7583, h = 203.2985},    

		-- 4. Zone
		{x = -1010.71, y = -2696.58, z = 13.00, h = 81.69},
		{x = -1010.06, y = -2694.96, z = 13.00, h = 84.48},
		{x = -1009.44, y = -2693.55, z = 13.00, h = 76.99},
		{x = -1008.89, y = -2692.15, z = 13.00, h = 80.65},
		{x = -1007.13, y = -2688.77, z = 13.00, h = 79.70},
		{x = -1005.89, y = -2687.23, z = 13.00, h = 81.82},
		--
		{x = -1020.50, y = -2690.93, z = 13.00, h = 223.85},
		{x = -1019.57, y = -2689.42, z = 13.00, h = 225.41},
		{x = -1018.65, y = -2687.41, z = 13.00, h = 225.44},
		{x = -1017.69, y = -2685.72, z = 13.00, h = 222.39},
		{x = -1016.08, y = -2682.52, z = 13.00, h = 227.78},
		{x = -1015.16, y = -2681.00, z = 13.00, h = 222.00},

		-- you can add more spawnpoint and zones. Each zone must have the same number of spawn points
	}

	Config.Vehicles = {

		{
			Display = "DRIVABLE Scooter", -- Display name of vehicle
			Model   = "escooter", -- Model name of the car used to spawn vehicle
			Price   = 1.0,      -- Price per minute
		},

	}

	Translation = {
		['de'] = {
			['vehicleUnlocked'] = "Der Scooter wurde aufgeschlossen! ~b~Stelle den Scooter in einer Zone ab und erhalte einen Bonus!",
			['payUnlock'] = "Du bezahlst ~b~{unlockPrice} $~w~ für die Nutzung",
			['jobUnlock'] = "Dein Job wurde autorisiert. ~g~Der Scooter wurde aufgeschlossen!",
			['notEnoughMoney'] = "~r~Du hast nicht genug Geld auf dem Konto oder die benötigte Lizenz",
			['paid'] = "Du bezahlst ~b~{price} $~w~ für deine Fahrt!",
			['penaltyPaid'] = "Du bezahlst ~b~{penaltyPrice} $~w~ für das Abstellen des Scooters ~r~außerhalb einer Zone",
			['bonusPaid'] = "Du erhältst ~b~{bonusPrice} $~w~ für das Abstellen des Scooters ~g~innerhalb einer Zone",
			['jobBonusPaid'] = 'Vielen Dank für das Umsetzen des Scooters. Du erhältst ~b~{jobBonusPrice} $~w~',
			['damagePenalty'] = "Du bezahlst ~b~{penaltyPrice} $~w~ für das ~r~Beschädigen ~s~des Scooters",
			['vehicleNotNearby'] = '~r~Du bist nicht nah genug an dem Scooter',
			['minutes'] = 'Minuten',
			['timertext'] = 'Scooter Zeit',

			-- Menü
			['availableVehicles'] = 'Verfügbare Scooter:',
			['model'] = 'Modell:',
			['plate'] = 'Kennzeichen:',
			['distance'] = 'Entfernung:',
			['price'] = 'Preise:',
			['battery'] = 'Batterie:',
			['horn'] = 'Scooter klingeln lassen',
			['open'] = 'Scooter leihen',
			['openItem_notification'] = 'Wenn Du von dem Scooter absteigst, wird die Miete beendet',
			['waypoint'] = 'GPS Route setzen',
			['waypoint_notification'] = 'GPS Route gesetzt',
		},
		---
		['en'] = {
			['vehicleUnlocked'] = "The scooter has been unlocked!! ~b~Park the scooter in a zone and get a bonus!",
			['payUnlock'] = "You pay ~b~{unlockPrice} $~w~ for the use",
			['jobUnlock'] = "Your job has been authorized. ~g~The scooter has been unlocked!",
			['notEnoughMoney'] = "~r~You don't have enough money on your bank account or the required license",
			['paid'] = "You pay ~b~{price} $~w~ for your ride!",
			['penaltyPaid'] = "You pay ~b~{penaltyPrice} $~w~ for parking the scooter ~r~outside a zone",
			['bonusPaid'] = "You got ~b~{bonusPrice} $~w~ for parking the scooter ~g~inside a zone",
			['jobBonusPaid'] = 'Thank you for moving the scooter. You got ~b~{jobBonusPrice} $~w~',
			['damagePenalty'] = "You pay ~b~{penaltyPrice} $~w~ for ~r~damaging ~s~the scooter",
			['vehicleNotNearby'] = '~r~You are not close enough to the scooter',
			['minutes'] = 'Minutes',
			['timertext'] = 'Scooter Time',

			-- Menü
			['availableVehicles'] = 'Available Scooters:',
			['model'] = 'Model:',
			['plate'] = 'Plate:',
			['distance'] = 'Distance:',
			['price'] = 'Prices:',
			['battery'] = 'Battery:',
			['horn'] = 'Ring the scooter',
			['open'] = 'Rent scooter',
			['openItem_notification'] = 'If you leave the scooter, the rental ends',
			['waypoint'] = 'Set GPS route',
			['waypoint_notification'] = 'GPS route created',
		},
	}

Optional Requirements (recommended)

Code is accessible No
Subscription-based No
Lines (approximately) ~ 1200
Requirements ESX 1.2 (v1-final) or Legacy; NativeUI, mysql-async or oxmysql
Support Yes