# ak47\_target

<figure><img src="https://2088945756-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkHcyR2RbVMcj5NHJ2HEa%2Fuploads%2FhVp1NxKIzkbTVfXg4v1P%2Ftarget.png?alt=media&#x26;token=8f79cec2-9163-4735-9a34-bb926d3932a0" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2088945756-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkHcyR2RbVMcj5NHJ2HEa%2Fuploads%2FVLnaYrEbUTq7H1btxkGl%2FmxfheaIPxA.png?alt=media&#x26;token=34eaf933-4d7b-4cac-8ade-2eac9618d5f9" alt=""><figcaption></figcaption></figure>

ak47\_target is designed to be a seamless, 100% drop-in replacement for `ox_target`, `qb-target`, and `qtarget`.

You do not need to rewrite your existing scripts or change your exports. `ak47_target` natively intercepts the export calls meant for those older resources and automatically translates them into its own optimized format.

#### Supported Scripts

* ox\_target (Fully supported via `ox_target` export handlers)
* qb-target (Fully supported via `qb-target` export handlers)
* qtarget (Fully supported via `qtarget` export handlers)

#### Installation

1. Download the latest release from the repository.
2. Extract the `ak47_target` folder into your server's `resources` directory.
3. Ensure you completely stop and remove any existing targeting scripts (e.g., `qb-target`, `ox_target`).
4. Add `start ak47_target` after the framework (es\_extended/qb-core/qbx\_core) to your `server.cfg`.

#### How it Works

Under the hood, `ak47_target` registers event handlers for `__cfx_export_ox_target_%s`, `__cfx_export_qb-target_%s`, and `__cfx_export_qtarget_%s`.

This means if you have an older script that calls:

```lua
-- An old qb-target export
exports['qb-target']:AddBoxZone("BankZone", vector3(100.0, 100.0, 30.0), 2.0, 2.0, {
    name = "BankZone",
    heading = 0.0,
    debugPoly = false,
    minZ = 28.0,
    maxZ = 32.0,
}, {
    options = {
        {
            type = "client",
            event = "bank:open",
            icon = "fas fa-university",
            label = "Open Bank",
            job = "all"
        }
    },
    distance = 2.5
})
```

...`ak47_target` will automatically catch this, format the legacy options (like converting `job` to `groups`, or `type = "client"` to standard events), and register it as an `ak47_target` box zone.

#### Legacy Functions Handled

All standard functions from the supported target scripts are automatically redirected, including:

* `AddBoxZone` / `AddPolyZone` / `AddCircleZone`
* `AddTargetModel` / `RemoveTargetModel`
* `AddTargetEntity` / `RemoveTargetEntity`
* `AddGlobalPed` / `AddGlobalVehicle` / `AddGlobalObject` / `AddGlobalPlayer`
* And their respective `ox_target` equivalents like `addBoxZone`, `addGlobalPed`, `removeZone`, etc.

*(Note: The deprecated `AddEntityZone` from `qb-target` is also safely re-routed to `AddTargetEntity` with a console warning)*.
