> For the complete documentation index, see [llms.txt](https://mi-store.gitbook.io/mistore-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mi-store.gitbook.io/mistore-docs/resources/mi-paleto-heist/common-issues.md).

# Common Issues

##

This page lists common setup issues and quick fixes for Mi Paleto Heist.

### Resource does not start

#### Possible causes

* `ox_lib` is not started before the heist resource.
* Resource folder name is different from the name used in `server.cfg`.
* A required file is missing.
* The resource was uploaded inside an extra folder.

#### Fix

Check `server.cfg`:

```cfg
ensure ox_lib
ensure mi-paletoheist
```

### ox\_lib error

#### Possible causes

* `ox_lib` is missing.
* `ox_lib` starts after the heist resource.
* `@ox_lib/init.lua` cannot be loaded.

#### Fix

Install `ox_lib` and ensure it starts before the heist resource:

```cfg
ensure ox_lib
ensure mi-paletoheist
```

### Target options do not appear

#### Possible causes

* Target resource is not started.
* Player is too far from the interaction.
* The wrong target system is selected.
* Custom target hook is enabled but not configured.

#### Fix

Default setup uses `ox_target`.

```cfg
ensure ox_target
ensure mi-paletoheist
```

Check:

```lua
Config.Target = {
    system = 'ox_target',
    distance = 2.0
}
```

For custom target systems, configure:

```txt
open/client.lua
```

### Framework is not detected

#### Possible causes

* Framework resource name is different.
* `Config.Framework` is set incorrectly.
* Framework starts after the heist resource.

#### Fix

For QBCore:

```lua
Config.Framework = 'qb'

Config.QBCore = {
    resource = 'qb-core'
}
```

For Qbox / QBX:

```lua
Config.Framework = 'qb'

Config.QBCore = {
    resource = 'qbx_core'
}
```

For ESX:

```lua
Config.Framework = 'esx'

Config.ESX = {
    resource = 'es_extended'
}
```

Framework resource should start before the heist resource.

### Inventory rewards are not received

#### Possible causes

* Inventory resource is not started.
* Item does not exist in the inventory item list.
* Player inventory is full.
* Custom inventory hook is enabled but not configured.
* Wrong black money setup.

#### Fix

Check that reward items exist:

```txt
black_money
goldbar
diamond
rolex
phone
```

For `ox_inventory`, add the items in the inventory item file.

For QBCore / Qbox, add the items in the shared items file.

For ESX, add the items to the database.

If using custom inventory, configure:

```txt
open/server.lua
```

### Black money does not work

#### ESX

ESX usually uses account money:

```lua
Config.BlackMoney = {
    esxAccount = true,
    accountName = 'black_money'
}
```

#### QBCore / Qbox / QBX

QBCore-style servers usually use an item:

```lua
Config.BlackMoney = {
    qbAsItem = true,
    accountName = 'black_money'
}
```

The item must exist in the inventory system.

### Not enough police

#### Possible causes

* Required police count is too high.
* Police job names do not match the server jobs.
* Police count hook is enabled but not configured.
* Police players are not on duty.

#### Fix

Check:

```lua
Config.Police = {
    required = 2,
    jobs = {
        'police',
        'sheriff'
    }
}
```

Set the required amount to `0` for testing:

```lua
Config.Police.required = 0
```

Custom police count logic is available in:

```txt
open/server.lua
```

### Heist is on cooldown

#### Explanation

The cooldown starts after the configured step is completed.

Default:

```lua
Config.HeistCooldown = {
    enabled = true,
    duration = 45 * 60,
    startOn = 'fuse'
}
```

#### Fix

Clear cooldown with the admin command:

```txt
/paletocooldown
```

ACE permission is required:

```cfg
add_ace group.admin mi-paletoheist.admin allow
```

### Admin commands do not work

#### Commands

```txt
/paletoreset
/paletocooldown
/paletostate
```

#### Fix

Add ACE permission:

```cfg
add_ace group.admin mi-paletoheist.admin allow
```

Example for a player identifier:

```cfg
add_principal identifier.license:xxxxxxxxxxxxxxxx group.admin
add_ace group.admin mi-paletoheist.admin allow
```

Restart the server after editing permissions.

### Keypad can be used without PC or fuse

#### Possible causes

* Flow bypass is enabled.
* Keypad requirements are disabled.
* Test settings are still enabled.

#### Fix

For normal robbery flow:

```lua
Config.FlowBypass = {
    keypad = {
        pc = false,
        fuse = false
    }
}
```

Make sure keypad requirements are enabled if available in the configuration:

```lua
requiredPcRecovery = true
requiredFuseBox = true
```

### Thermite can be used too early

#### Possible causes

* Thermite bypass is enabled.
* Door flow bypass is enabled.
* Test settings are enabled.

#### Fix

For normal robbery flow:

```lua
Config.FlowBypass.thermite = false
Config.FlowBypass.door.cellNeedsMiddle = false
```

### Thermite placement does not start

#### Possible causes

* Required thermite item is missing.
* Required item removal is enabled and the player has no item.
* Previous robbery step is not completed.
* Custom minigame failed.
* Player is too far from the thermite point.

#### Fix

Check required item settings:

```lua
Config.RequiredItems.thermite = {
    enabled = true,
    item = 'thermite',
    amount = 1,
    remove = true
}
```

Check thermite placement mode:

```lua
Config.ThermitePlacement = {
    mode = 'alpha'
}
```

Available modes:

```txt
alpha
minigame_alpha
```

### Thermite effect appears in the wrong place

#### Possible causes

* Thermite placement coordinates were changed.
* Particle offset was changed.
* Custom map/MLO has different door geometry.

#### Fix

Check the configured thermite effect offset.

Default particle settings should stay unchanged unless the map placement is edited.

### Deposit box loot cannot be targeted

#### Possible causes

* Target resource is not started.
* Deposit box was not opened.
* Loot already taken.
* Player is too far from the loot.
* Flow bypass is disabled and the required door is not open.

#### Fix

Open the deposit box first, then target the visible loot prop.

For normal robbery flow, deposit box loot requires the box to be opened first:

```lua
Config.FlowBypass.loot.depositBoxNeedsOpen = false
```

### Deposit box reward is wrong

#### Explanation

Deposit box rewards are based on the spawned prop model.

Example:

```lua
Config.Rewards.depositBox.byProp = {
    ['ch_prop_vault_dimaondbox_01a'] = {
        item = 'diamond',
        amount = 1
    }
}
```

#### Fix

Change the reward item linked to the prop model in:

```lua
Config.Rewards.depositBox.byProp
```

### Player cannot carry reward item

#### Possible causes

* Inventory is full.
* Inventory weight limit is reached.
* Item is missing from inventory item list.
* Custom inventory hook does not return success correctly.

#### Fix

Add the item to the inventory system and check item weight.

If using custom inventory, make sure `open/server.lua` returns correct success values.

### Two players cannot loot the same object

This is expected behavior.

The script uses server-side action locks and reward validation to prevent duplicated rewards.

### Dispatch alert does not show

#### Possible causes

* Dispatch resource is not started.
* Custom dispatch hook is enabled but not configured.
* Dispatch resource requires client-side exports.
* Police jobs are different from the configured jobs.

#### Fix

Dispatch is handled from:

```txt
open/client.lua
```

Enable and configure the custom dispatch function if needed.

### Progress bar does not show

#### Possible causes

* Progressbar resource is not started.
* Custom progressbar hook is enabled but not configured.
* Progressbar is disabled.

#### Fix

Default progress uses `ox_lib` when available.

Custom progressbar logic is available in:

```txt
open/client.lua
```

### Notifications do not show

#### Possible causes

* Notification resource is not started.
* Custom notify hook is enabled but not configured.
* Framework notify is unavailable.

#### Fix

Custom notification logic is available in:

```txt
open/client.lua
```

Server-side notification customization is available in:

```txt
open/server.lua
```

### Skill check blocks the action

#### Possible causes

* Skill checks are enabled.
* Player does not have the required level.
* Custom skill hook returns `false`.

#### Fix

Check:

```lua
Config.SkillChecks = {
    enabled = false
}
```

Custom skill logic is available in:

```txt
open/server.lua
```

### Job or gang access blocks the action

#### Possible causes

* Access restriction is enabled.
* Player job is not in the allowed jobs list.
* Player gang is not in the allowed gangs list.
* Custom permission hook returns `false`.

#### Fix

Check:

```lua
Config.Access = {
    enabled = false
}
```

Or add allowed jobs/gangs:

```lua
Config.Access.jobs = {
    'police',
    'mechanic'
}

Config.Access.gangs = {
    'ballas',
    'vagos'
}
```

Custom permission logic is available in:

```txt
open/server.lua
```

### Locale text is missing

#### Possible causes

* Locale file is missing.
* `Config.Locale` does not match an existing locale.
* Translation key was removed.

#### Fix

Check:

```lua
Config.Locale = 'en'
```

Make sure the file exists:

```txt
locals/en.lua
```

### Still having issues

Check the server console for errors and confirm:

```txt
ox_lib is started
framework is started
inventory is started
target resource is started
items exist
Config.Debug is enabled only while troubleshooting
```

For support, provide:

```txt
server console error
client F8 error
framework name
inventory name
target resource name
config section related to the issue
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mi-store.gitbook.io/mistore-docs/resources/mi-paleto-heist/common-issues.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
