# Script Integrations

If you want to use your own server scripts, the original documentation points to these integration locations:

* Inventory: `modules/inventory/server.lua`
* Target: `modules/target/client.lua`
* Notify, progressbar, skillbar, and helper functions: `modules/utils/client.lua`
* Server-side helper functions: `modules/utils/server.lua`
* Export hooks: `modules/exports/client.lua` and `modules/exports/server.lua`

## Inventory Integration

File: `modules/inventory/server.lua`

Use this file if your server does not match the default inventory logic.

This usually means adapting:

* Give item
* Remove item
* Check item
* Count item

Basic example:

```lua
function Inventory.giveItem(source, itemName, count)
    return exports['my_inventory']:AddItem(source, itemName, count)
end
```

## Target Integration

File: `modules/target/client.lua`

If you use a custom target system, adapt your zone and interaction logic here.

This usually includes:

* Adding zones
* Removing zones
* Adding entity interactions
* Removing entity interactions

## Notify, Progressbar, Skillbar

File: `modules/utils/client.lua`

Most custom integrations happen here.

Common changes:

* Replace notify logic
* Replace progressbar logic
* Replace skillcheck logic
* Replace any helper functions used during farming task flow

Notify example:

```lua
function Utils.notify(title, type, duration, description)
    exports['my_notify']:Send({
        title = title,
        description = description,
        type = type,
        duration = duration
    })
end
```

Progressbar example:

```lua
function Utils.progressBar(data)
    return exports['my_progressbar']:Progress(data)
end
```

## Server-Side Helpers

File: `modules/utils/server.lua`

Use this file if your server needs custom server-side helper behavior.

Common examples:

* Reward helper logic
* Server-side notifications
* Shared farming task utilities

## Export Hooks

Files:

* `modules/exports/client.lua`
* `modules/exports/server.lua`

Use these if you want to attach custom logic before or after the farming flow without rewriting the whole resource.

Common examples:

* Extra validation before starting a task
* Custom logging
* Reward extensions
* Extra cleanup or analytics after task completion

## Safest Way To Integrate

Use this order:

1. Read the existing function and keep the same input/output behavior.
2. Replace only the integration-specific lines with your own export or event.
3. Do not change return types unless you know the script expects it.
4. Test the full farming flow in game.
