CES AutoCare

#CES AutoCare

Product: FiveM Script
Type: Standalone FiveM resource (no framework required)

CES AutoCare replaces separate tire/body/engine repair scripts with a single command and a single UI. Players open one menu, see the full condition of their vehicle across four tabs, and repair exactly what needs it β€” no guessing, no juggling multiple commands.

#Requirements

  • No framework required β€” works with or without ESX, QBCore, QBox, ox_lib, etc.
  • No database required.
  • OneSync (networked vehicles) is required for repairs to sync correctly in multiplayer.

#Installation

  1. Drop the CES_AutoCare folder into your server's resources directory.

  2. Add to your server.cfg:

    ensure CES_AutoCare
  3. If you were previously running an older CES tire or repair script, remove it:

    ensure CES-TireWorks
    ensure CES_CarRepair

No further setup is required β€” the resource is ready to use as soon as it's started.

#Usage

Action Default
Open the AutoCare menu Press R, or run /autocare
Close the menu Click the close button in the UI, or press R//autocare again while repairing to cancel

The keybind is rebindable two ways:

  • Per-player, client-side: in FiveM's own Settings > Key Bindings > FiveM, players can rebind "Open CES AutoCare" to any key they want.
  • Server default: change Config.DefaultKey in config.lua to set what the key is before a player rebinds it.

The player must be within Config.RepairDistance of the vehicle (outside of it) to open the menu, and must stay within Config.CancelDistance of the tire/vehicle during a repair or it will be cancelled.

#The UI

Opening /autocare shows one panel with four tabs:

#Overview

At-a-glance summary: engine %, body %, how many tires are damaged/flat/off-rim, and an overall status (READY or ATTENTION).

#Diagnostics

A full breakdown of engine condition, body condition, and each tire's individual condition and live health percentage.

#Tires

Each of the four tires listed individually β€” front left, front right, rear left, rear right β€” with its condition (NORMAL / DAMAGED / FLAT / OFF RIM) and a repair button. Tires that are already NORMAL show a disabled button; only tires that actually need work are repairable.

Repairing a tire:

  1. Closes the menu.
  2. Moves the player to that wheel if they aren't already standing at it.
  3. Plays a kneeling repair animation.
  4. Shows a live progress bar until the repair finishes.

A tire that's fully popped or off the rim takes longer to repair and shows staged progress text (Removing Tire β†’ Working on Wheel β†’ Installing Tire β†’ Inflating Tire) instead of a flat progress bar with no context.

#Repairs

Vehicle-level repairs: Engine, Body, and Full Vehicle (engine + body + all four tires in one pass). Buttons disable automatically once that part is already at 100%.

#How tire detection works

GTA V actually exposes two separate systems for tire damage, and a tire can be "wrong" in either one independently:

  • A burst state (does the tire visually look popped β€” e.g. from gunfire)
  • A wheel health value (how worn/damaged the tire is mechanically)

CES AutoCare checks both per wheel, so a tire shot out by gunfire, a tire that's simply worn down, and a tire that's come off the rim are all classified correctly. A script that only checks one of these two systems will misreport tires β€” most commonly leaving damaged tires reading as fine, or the reverse.

#Vehicle repair reliability

Engine, body, and full-vehicle repairs don't just fire the repair native and assume it worked. CES AutoCare re-checks the vehicle a moment after applying the fix and re-applies if anything reverted, so the UI reporting "repaired" always matches what the player actually sees on the vehicle β€” no cases of a dent or cracked windshield silently coming back after the repair screen closes.

All repairs (tire, engine, body, full) are synchronized through the server using the vehicle's networked entity ID, so every player sees the same result, not just the player who repaired it.

#Configuration

Everything tunable lives in config.lua:

Setting Default Description
Config.DefaultKey 'R' Default keybind to open the menu (players can rebind in FiveM settings).
Config.RepairDistance 3.0 Distance from a vehicle required to open the AutoCare menu.
Config.CancelDistance 2.5 Distance from the selected wheel before an active repair is cancelled.
Config.TireDamagedThreshold 700.0 Wheel health at or below which a tire is considered damaged.
Config.TireOffRimThreshold 1.0 Burst-tire health at or below which a tire is treated as fully popped/off the rim.
Config.TireRepairDuration 5 Standard tire repair time, in seconds.
Config.TireOffRimRepairDuration 20 Off-rim tire repair time, in seconds.
Config.OffRimStages {'Removing Tire', 'Working on Wheel', 'Installing Tire', 'Inflating Tire'} Stage labels shown during an off-rim repair.
Config.TireAnimDict / Config.TireAnimName 'amb@medic@standing@kneel@base' / 'base' Animation played while repairing a tire.
Config.VehicleRepairDuration 12 Engine or body repair time, in seconds.
Config.FullVehicleRepairDuration 18 Full-vehicle repair time, in seconds.

#Troubleshooting

The menu won't open. Confirm the resource is ensured after any old CES tire/repair resources have been removed, and that the player is within Config.RepairDistance of a vehicle while standing outside it.

A repair doesn't seem to "stick." This shouldn't happen β€” repairs are verified and re-applied automatically β€” but if it does, confirm the server is running OneSync, since repair sync relies on the vehicle's networked entity.

#Changelog

#1.5.0

  • Unified all repair flows (tire, engine, body, full) behind a single /autocare UI.
  • Fixed tire-condition detection to check both of GTA's tire-damage systems per wheel, instead of one β€” corrects cases where tires could read as damaged/flat when they weren't, or vice versa.
  • Fixed full-vehicle repairs to verify and re-apply body/window/engine state instead of occasionally reverting silently after the "repaired" message.
  • Reduced UI update traffic per repair by ~86% (throttled progress updates to only fire on actual value changes) and removed redundant per-tick native lookups, for a lighter client footprint.
No ratings yet