[ ESX | QBCore ] The Rental System

Compatible OneSync (Legacy, Infinity), QB and ESX frameworks
No Dependencies

Uses Asset Escrow (no obfuscation for OpenSource version)

My other scripts

ESX - ENCRYPTED - GET IT HERE: https://store.s1nscripts.com/package/5683588
ESX - OPENSOURCE - GET IT HERE: https://store.s1nscripts.com/package/5683587
QB - ENCRYPTED - GET IT HERE: https://store.s1nscripts.com/package/5677171
QB - OPENSOURCE - GET IT HERE: https://store.s1nscripts.com/package/5674796

Preview

Fast demonstration: FiveM Script Showcase - The Vehicle (Cars, boats, plaines, helicopters) Rental System - YouTube
Full demonstration: The Vehicle Rental System - In-Game Demonstration - YouTube

What are the features ?

  • Advance configuration

  • 4 NPCs, each NPC has a specific UI Type

  • 4 UI Types

  • Cars, motorcycle, trucks
  • Helicopters
  • Planes
  • Boats
  • Able to choose rental time

  • Kick players from vehicles when player deadlines passed

  • Delete vehicle after a certain period of time (after the player deadline passed)

How is the configuration file presented?

Config = {
    debugMode = true, -- Set to true to enable debug logs
    oldQBCoreVersion = false, -- Set to true if you're using an old version of QBCore using GetSharedObject()
    rentalTime = { -- Define the minimum and maximum rental time in minutes (for the selection in the User Interface)
        max = 24 * 60, -- 1 day in minutes
        min = 1 -- 1 minute
    },
    rentalNPCs = { -- List of all rental NPCs
        {
            type = "wheels", -- DO NOT CHANGE unless you know what you're doing !
            useDistance = 5, -- Distance to use the NPC
            position = vector3(-1030.25, -2734.35, 20.17), -- Position of the NPC (x, y, z)
            heading = 337.4, -- Heading of the NPC
            blip = { -- Blip settings for the NPC
                sprite = 225, -- Blip sprite (see https://docs.fivem.net/docs/game-references/blips/)
                text = "Cars, Motorcycles, Trucks Rental", -- Blip text
                color = 0 -- Blip color (see https://docs.fivem.net/docs/game-references/blips/#blip-colors)
            },
            subRentals = { -- List of all sub-rentals for this NPC type
                ["car"] = { -- Do not change the name of this sub-rental unless you know what you're doing !
                    costPerMinute = 100, -- Cost per minute of rental
                    models = { -- List of models, copy/paste examples and do not change the '= true,'
                        ["adder"] = true,
                        ["banshee"]= true,
                    },
                    spawnVehicle = { -- Spawn position of the vehicle
                        position = vector3(-1024.64, -2735.91, 19.64), -- Position of the vehicle (x, y, z)
                        heading = 241.08, -- Heading of the vehicle
                    }
                },
                ["motorcycle"] = { -- Do not change the name of this sub-rental unless you know what you're doing !
                    costPerMinute = 50,
                    models = {
                        ["akuma"] = true,
                        ["bagger"] = true,
                    },
                    spawnVehicle = {
                        position = vector3(-1024.64, -2735.91, 19.64),
                        heading = 241.08,
                    }
                },
                ["truck"] = { -- Do not change the name of this sub-rental unless you know what you're doing !
                    costPerMinute = 50,
                    models = {
                        ["benson"] = true,
                        ["biff"] = true,
                    },
                    spawnVehicle = {
                        position = vector3(-1024.64, -2735.91, 19.64),
                        heading = 241.08,
                    }
                },
            }
        },
        { -- Refer to the first NPC comments for the explanations of the fields
            type = "boat",
            useDistance = 5,
            position = vector3(-788.47, -1490.02, 1.6),
            heading = 262.86,
            blip = {
                sprite = 410,
                text = "Boats Rental",
                color = 0
            },
            costPerMinute = 50,
            models = {
                ["dinghy"] = true,
                ["dinghy2"] = true,
            },
            spawnVehicle = {
                position = vector3(-801.47, -1484.3, 4.02),
                heading = 118.6
            }
        },
        { -- Refer to the first NPC comments for the explanations of the fields
            type = "plane",
            useDistance = 5,
            position = vector3(-988.5, -2994.1, 13.95),
            heading = 60.49,
            blip = {
                sprite = 16,
                text = "Planes Rental",
                color = 0
            },
            costPerMinute = 100,
            models = {
                ["dodo"] = true,
                ["duster"] = true,
            },
            spawnVehicle = {
                position = vector3(-1009.41, -2981.31, 13.95),
                heading = 59.84
            }
        },
        { -- Refer to the first NPC comments for the explanations of the fields
            type = "helicopter",
            useDistance = 5,
            position = vector3(-1126.81, -2875.22, 13.95),
            heading = 236.78,
            blip = {
                sprite = 43,
                text = "Helicopters Rental",
                color = 0
            },
            costPerMinute = 100,
            models = {
                ["buzzard"] = true,
                ["buzzard2"] = true,
            },
            spawnVehicle = {
                position = vector3(-1112.19, -2883.89, 13.95),
                heading = 328.41
            }
        },
    }
}

Any suggestions or questions ?

Please write them down below in the comments section.

Script informations

Code is accessible Yes (opensource version), No (encrypted version)
Subscription-based No
Requirements QB or ESX
Support Yes
2 Likes

I love it <3 it’s soo perfect

2 Likes