> For the complete documentation index, see [llms.txt](https://dexlab-scripts.gitbook.io/dexlab-scripts-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dexlab-scripts.gitbook.io/dexlab-scripts-docs/redm-paid-releases/dex-drugs/user-guide/features.md).

# Features

<figure><img src="https://3628839866-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzeH5m2NcpM6wdeyLkzje%2Fuploads%2FxyTykFhG0LLfkp2btGRu%2Fimage_2026-01-12_201919980.png?alt=media&amp;token=0eaaee4e-7e14-492a-906f-e56805491cd5" alt=""><figcaption></figcaption></figure>

***

{% embed url="<https://youtu.be/GVRZeiHAr1o>" %}

## 🧰 Features v1.5

### 🌿 Harvest System

* Harvest from fully configurable **plant zones**
* **Per-zone respawn timers** (no global cooldown)
* Plants only appear dynamically when player is nearby
* **Per-zone job restrictions** (optional)
* Optional **required tool** per plant type
* Per-zone item yield, animations & prompts
* Prevents abuse/spamming with **per-plant locks**
* Plants respawn individually using their own timers
* Ground-adjusted props: **no floating plants**

***

### 🔧 Processing System (Sync Processing)

* Convert raw items into processed drugs
* Configurable crafting time per recipe
* Optional **required tool** per recipe
* **Per-recipe job lock** (optional)
* Immersive animations + progress bar
* Prevents multiple players using same station
* Clean checks before animation to prevent “ghost actions”
* Safe server-side validation

***

### 🕒 Asynchronous Processing (Drying Racks)

* Player starts a long process and can **leave the area**
* **SQL persistence:**
  * Process continues if player disconnects
  * Continues through server restart
  * Resumes correctly on reconnection
* **Per-rack job lock** (optional)
* Optional 2nd required item: **tool**
* Optional **3rd required item** (consumable reagent)
* Prevents starting if rack is already drying or finished
* Correct per-player visual timers synced on join
* Automatically deletes/updates SQL entries
* Notifies player when process is done
* Supports unique input, output, amounts and timers per rack

***

### 🧍 Dynamic NPC Selling System

* NPCs spawn non-locally with configurable models and spawn points
* Randomized NPC selection, timing & positions
* Fully configurable in-game selling schedule (hour ranges)
* Chance-based NPC interest per item
* Configurable price ranges & sale amounts
* After each deal:
  * NPC despawns
  * Next NPC scheduled randomly
* Smooth character orientation during deals

***

### 🚓 Police-Aware Selling Restrictions

* Requires **minimum online police (or any job)** to allow sales
* This check can be enabled/disabled per config
* Player must meet **all conditions**:
  * Sale zone schedule
  * Required items
  * Job restrictions
  * Police/job online
* Clear rejection messages for every failure case

***

### 📡 Sale Alerts with Blip (Multi-Job Support)

* Configurable **alert chance** after each sale
* Alerts can go to **one job or multiple jobs**
* Adds temporary map blip where sale occurred
* Blip auto-removes after configurable duration
* Supports per-zone job locks AND multi-job alert targets

***

### ⚙️ Fully Configurable

Everything is modular inside `config.lua`:

* Harvest zones
* Process zones
* Async drying racks
* NPC selling zones
* Job restrictions PER zone
* Required tools
* Required 3rd item for async
* Respawn times
* Price ranges, item yields, NPC timing
* Sell schedules
* Alert job lists and percentages
* Police minimum requirements
* Spawn models, spawn delay, animations
* SQL integration for async processing

***

### 🔁 Looped, Dynamic, Optimized

* New NPC generated after each sale
* Random time & model for each NPC
* Low client/server load (local props, distance-based spawns)
* Each plant respawns independently, not globally
* Each rack persists independently via SQL
