v1.1.1
Security hardening: the fuel value became server-authoritative and every event gained a proximity check.
Security
- Server-authoritative fuel: a StateBag change handler tracks the authorized fuel value per vehicle and rolls back any illegitimate increase, so a client can no longer set arbitrary fuel levels
GetVehicleFuelfalls back to0.0instead of50.0, so a missing fuel state can no longer grant free fuel- Serverside rate limiting (500 ms) on
refillCan,payFuelPriceandupdateFuelCan - Petrolcan buy and refill verify serverside that the player is actually standing at a known fuel station, which blocks spoofed coordinates and remote triggering
Added
- Per vehicle type fueling distance via
Config.MaxFuelingDistance(default,heli,plane) plus a serversideGetMaxFuelingDistancehelper - Serverside
IsPlayerNearFuelStationcheck withConfig.MaxStationDistanceandConfig.FuelStationZoneDistance - Translation fallback: a missing key falls back to English and then to the raw key instead of throwing an error
Changed
Config.Debugnow defaults tofalseConfig.MaxFuelingDistancechanged from a single number to a per vehicle type table- Money handling in the petrolcan and refuel events is unified on
PayPrice - Relicensed the resource to LGPL-3.0-or-later
Fixed
- Adjusted the wrong fuel engine failure threshold (now triggers below
500engine health) - Clean up the authorized fuel and rate limit tables on
entityRemovedandplayerDropped
Changed files
client/fuel.lua
client/functions.lua
client/main.lua
config.lua
server/functions.lua
server/main.lua
server/versionchecker.lua
translation.lua
fxmanifest.lua
LICENSE, GPL-3.0.txt, .gitignore