> For the complete documentation index, see [llms.txt](https://k0ssek-scripts.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://k0ssek-scripts.gitbook.io/docs/scripts/halloween/compatibility.md).

# Compatibility

Frameworks, inventories, targets, weather scripts and what to know about anti-cheats.

## Frameworks and inventories

ESX, QBCore and QBX are detected at start. The bridges are open (`bridge/`), so another version is a few lines to adapt.

| Inventory                                              | Notes                                                                                       |
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------- |
| ox\_inventory                                          | Everything, including the trophy that cannot leave its owner's inventory                    |
| qb-inventory, ps-inventory, lj-inventory, qs-inventory | Everything except the trophy lock: there it can be traded                                   |
| ESX's own                                              | Add the items to the database (see [Installation](/docs/scripts/halloween/installation.md)) |

{% hint style="warning" %}
ESX older than 1.10 has no on-duty flag, so every player with a job in `excludedJobs` (police, ambulance) counts as on duty and is never given the Mark.
{% endhint %}

## Target scripts

With ox\_target or qb-target, every thing has its own option: the bear on the grave, the priest beside it, the digging spot in front of the stone, the cauldron, the house. Handing the bear over is an option on the other player. Passing the Mark and the Phantom's driver always use keys.

Without a target script, players use keys with a line on screen. `promptPosition` and `huntPosition` in `Config.Interaction` place those lines.

## Weather scripts

The Witching Hour works with any weather script, or none. While a player stands in a hunt's zone, the city lights are switched off on their screen every frame. When they leave, the lights go back to your weather script's own blackout.

Bridges are built in for **cd\_easytime**, **qb-weathersync**, **vSync** and **Renewed-Weathersync** (`bridge/weather/`).

{% hint style="info" %}
**Weather built into your server's core?** Many cores carry a copy of vSync under their own name. If yours answers vSync's events (`vSync:updateWeather`, `vSync:updateTime`), set `Config.WitchingHour.weatherScript = 'vSync'`.
{% endhint %}

**The lights flicker in the zone?** Your weather script sets them all the time too. Either fill in `bridge/weather/custom/client.lua` (pause your script, and "is its blackout on?"), or set `Config.WitchingHour.lights = 'tint'`: the lights are never touched and the picture gets darker instead.

**Night in the zone** (`Config.WitchingHour.forceNight`, off by default): players in the zone see the hour you set, everyone else keeps the server's time. vSync is held at that hour by its bridge. cd\_easytime keeps its own clock, so forceNight has no effect there.

## Anti-cheats

* **No real explosions** and no damage: the exploding pumpkin and the Phantom's burst are effects only.
* **The Phantom** is a networked car with an invisible driver, made by the hunted player's game and shared with everyone, because the game hands the car to nearby players every few seconds. A server with `sv_entityLockdown` that refuses peds made by clients gets a driver only the hunted player has: the Phantom then drives well only while nobody else is close.
* **The UFO trick** draws the ship as a local prop on the screens near the house, never networked. If a client-side anti-cheat flags the ship models, set `Config.Tricks.ufo.models = {}` (the beam and the lift stay). Set `dropRadius = 0` if it flags teleports.
* Every other prop, effect, haunting and trick exists only on the screens of the players nearby.

## Performance

Nothing runs while nothing happens: no thread loops while there is no hunt, no bear held and no player near a house, grave, altar or cauldron. The server ticks twice a second only while a hunt or a Phantom runs.

## Security

The server decides everything: passes, hits, pickups, knocks, digs, payouts, cooldowns. Clients only send "I tackle this", "I knock here", and the server checks distance, participation and the rules with its own positions. Every callback and net event has a limit per player. The server also watches every Phantom charge itself, so a game that never reports hits is still hit.
