Retro Car Rental
Development
Section titled โDevelopmentโServer Callbacks
Section titled โServer CallbacksโAll registered via lib.callback. Call with lib.callback.await from client or server.
| Callback | Returns |
|---|---|
rs_carrental:server:getRentals | Active rentals formatted for NUI |
rs_carrental:server:hasVip | bool - checks both inventory item and DB entry |
rs_carrental:server:rent | Deducts money, spawns vehicle, writes DB |
rs_carrental:server:return | Calculates refund or overdue fee, deletes entity |
rs_carrental:server:extend | Extends expiry, applies tiered discount |
rs_carrental:server:getVehicleNetId | netId for a given rental ID |
rs_carrental:server:purchaseVip | Deducts money, gives item, writes VIP DB entry |
rs_carrental:server:getVehicleCoords- server event, returns vehicle position for GPS tracking.rs_carrental:client:setGps- client event, sets a waypoint to the vehicle.
NUI Messages (Lua โ Web)
Section titled โNUI Messages (Lua โ Web)โ| Action | Payload |
|---|---|
open | { config, locale, rentals, hasVip } |
close | - |
updateRentals | { rentals } |
updateVehicleStatus | { rentalId, fuel, engine, brakes } |
updateLocale | { locale } |
NUI Callbacks (Web โ Lua)
Section titled โNUI Callbacks (Web โ Lua)โ| Callback | Params |
|---|---|
rentVehicle | model, categoryId, paymentMethod |
returnVehicle | rentalId |
extendRental | rentalId, hours |
trackGps | rentalId |
purchaseVip | optionId, paymentMethod |
closeUI | - |
Bridge Functions
Section titled โBridge FunctionsโFramework-agnostic server-side helpers:
Bridge.GetPlayer(src)Bridge.RemoveMoney(src, amount, type)Bridge.AddMoney(src, amount, type)Bridge.GetMoney(src, type)Bridge.GiveVehicleKeys(src, plate, vehicle)Bridge.RegisterPlayerLoaded(cb)Bridge.Notify(src, message, type)Bridge.GiveItem(src, item, count)Bridge.HasItem(src, item)How Rentals Work
Section titled โHow Rentals Workโ- Player interacts with NPC โ client opens rental UI with location data.
- Player picks a vehicle โ NUI sends
rentVehicle. - Server validates max rentals, VIP status, balance โ spawns vehicle at
spawnPoint, generates plate, writes DB. - Background loop (60s interval) checks all active rentals for overdue status.
- On return: if early, partial refund based on
ReturnRefundPercent. If overdue, fee charged atOverdueRatePerHour ร hours (rounded up).
VIP Validation
Section titled โVIP ValidationโBoth conditions must be true:
vip_rental_cardexists in player inventory.rs_carrental_viprow exists withexpires_at > now.