# First Time Setup

## Start here

Use this order for the first live install.

{% stepper %}
{% step %}

### Follow the base load order

Follow [FIRST STEPS (READ FIRST)](https://envi-scripts-organization.gitbook.io/documentation/premium-scripts/first-steps-read-first) for the load order.

Then verify these dependencies are already running:

* `ox_lib`
* your framework
* your inventory
* your target system

`ox_lib` should still load before this resource even if it is not listed in the manifest.
{% endstep %}

{% step %}

### Register your items

Copy the item templates from `install/ITEMS.lua` into your inventory.

Item names must match `Config.Tools` and `Config.Bombs` exactly.

If you use remote bombs, register both:

* `remote_bomb`
* `phone_bomb`
  {% endstep %}

{% step %}

### Install tool sounds if needed

Copy the files from `install/sounds/` into InteractSound.

Then review `install/sounds/readme.txt`.

Some setups also need the extra `PlayFromCoord` handlers from that file.
{% endstep %}

{% step %}

### Finish your config hooks

If you use the drill sabotage, wire `fuelExport(vehicle)` to your fuel script.

If you use addiction points, enable `Config.EnviAddictions` and install `envi-addictions`.

If bomb placement is off on custom vehicles, adjust `Config.EngineBone`.
{% endstep %}

{% step %}

### Set live-server values

Before going live:

* set `Config.Debug = false`
* tune each tool `breakChance`
* tune the MPH thresholds
* review `Config.BlacklistedVehClasses`
* set your repair jobs in `Config.RepairJob`
  {% endstep %}

{% step %}

### Test one full sabotage flow

Verify these in game:

* using the item equips the prop
* target options appear
* the sabotage effect triggers
* repair options show for the right job
* late joiners see the current vehicle state
  {% endstep %}
  {% endstepper %}

### Sound support

Tool audio expects InteractSound coordinate playback.

The default sound file names are:

* `saw`
* `impactdrill`
* `drill`

### Sabotage-aware repairs

If your mechanic script calls `SetVehicleFixed(vehicle)`, replace that with:

```lua
exports['envi-sabotage-v2']:RepairAll(vehicle)
```

That clears sabotage state instead of only fixing native vehicle damage.
