Video Clip : https://medal.tv/games/red-dead-2/clips/lLTbMy2G9EBWE9OLg?invite=cr-MSx0TTYsMTkxMDIwMzU5&v=115
# Mack-Opium - RedM Opium Crafting & Distillery System
A comprehensive opium production system for RedM using RSG-Core framework. Players can craft raw opium at the Guarma Distillery, then process it into pure bottled opium for health restoration.
## Features
### 🌿 Opium Crafting
- **5 Crafting Stations** in Guarma Distillery
- **Per-location state tracking** - craft at multiple stations simultaneously
- **ox_target Integration** for easy interaction
- **ox_lib Menus** with real-time ingredient tracking
- **Animations** for adding ingredients and stirring
### 🏭 Distillery Processing System
- **3-stage distillery** for refining opium
- **Non-blocking 1-minute processing** with visual timer
- **Full player freedom** during processing
### 💊 Useable Health Item
- **Pure Opium restores health to 600**
- **3-second drinking animation**
- **Cannot be used while dead or handcuffed**
### 🎨 Additional Features
- **bln_notify** for beautiful notifications
- **Fully Translatable** locale system
- **100% Configurable** - all settings in config.lua
## Requirements
- **RSG-Core Framework**
- **ox_lib** (for menus, progress bars, and TextUI)
- **ox_target** (for interaction zones)
- **bln_notify** (for notifications)
## Installation
1. **Place the script:**
- Copy `mack-opium` folder to your resources directory
2. **Add to server.cfg:**
```lua
ensure mack-opium
```
3. **Add required items to RSG-Core:**
Add these items to your `rsg-core/shared/items.lua`:
```lua
-- Crafting ingredients
['consumable_herb_prairie_poppy'] = {['name'] = 'consumable_herb_prairie_poppy', ['label'] = 'Prairie Poppy', ['weight'] = 100, ['type'] = 'item', ['image'] = 'consumable_herb_prairie_poppy.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A prairie poppy plant'},
['purealcohol'] = {['name'] = 'purealcohol', ['label'] = 'Pure Alcohol', ['weight'] = 500, ['type'] = 'item', ['image'] = 'purealcohol.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pure alcohol'},
-- Crafting output
['opium'] = {['name'] = 'opium', ['label'] = 'Raw Opium', ['weight'] = 200, ['type'] = 'item', ['image'] = 'opium.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Raw opium - needs processing'},
-- Final product (useable health item)
['pureopium'] = {['name'] = 'pureopium', ['label'] = 'Pure Opium', ['weight'] = 150, ['type'] = 'item', ['image'] = 'pureopium.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Pure bottled opium - restores health to 600'},
```
4. **Restart your server:**
```
restart rsg-core
ensure mack-opium
```
## How to Use - Complete Workflow
### Location: Guarma Distillery
All operations take place at the **Guarma Distillery** with 8 interaction points:
- **5 Crafting Stations** for mixing raw opium
- **1 Distillery Input** for adding raw opium
- **1 Distillery Control** for starting processing
- **1 Output Barrel** for collecting pure opium
---
## Step-by-Step Guide
### 📍 STEP 1: Craft Raw Opium (At Crafting Stations)
1. **Gather ingredients:**
- 3x Prairie Poppy (`consumable_herb_prairie_poppy`)
- 2x Pure Alcohol (`purealcohol`)
2. **Go to any of the 5 crafting stations** in Guarma Distillery
3. **Use ALT key (ox_target)** to open the crafting menu
4. **Add ingredients:**
- Click "Add Prairie Poppy" (3 times) - 2 second animation each
- Click "Add Pure Alcohol" (2 times) - 2 second animation each
- Menu shows progress: "Prairie Poppy: 3/3" and "Pure Alcohol: 2/2"
5. **Stir the mixture:**
- Click "Stir Mixture" (3 times required)
- Each stir: 5 second animation
- Menu shows: "Stirs Remaining: X"
6. **Receive reward:**
- After 3rd stir: Receive **3x Raw Opium** (`opium`)
**💡 Pro Tip:** Each crafting station has its own state! You can craft at multiple stations simultaneously.
---
### 🏭 STEP 2: Process at Distillery (3 Locations)
#### **A. Distillery Input Station**
1. **Go to Distillery Input** (coordinates: `1483.88, -7161.49, 72.73`)
2. **Use ALT key** to open input menu
3. **Add Raw Opium:**
- Click "Add Opium" (4 times required)
- 2 second animation each time
- Menu shows: "Opium Added: X/4"
4. **When 4/4:** Notification says "Turn on the Distillery to start processing!"
#### **B. Distillery Control**
1. **Go to Distillery Control** (coordinates: `1484.38, -7157.10, 72.73`)
2. **Use ALT key** and select "Turn On Distillery"
3. **Watch the process:**
- 5 second valve-turning animation
- Notification: "Distillery is now running!"
- **Timer appears on right side:** "[Distillery] Processing: 01:00"
4. **You are FREE to:**
- ✅ Walk around
- ✅ Craft more opium at other stations
- ✅ Use ALT key for ox_target
- ✅ Do anything else
5. **After 1 minute:** Notification says "Pure Bottled Opium have been produced, Check the Barrel!"
#### **C. Output Barrel**
1. **Go to Output Barrel** (coordinates: `1489.45, -7156.43, 72.73`)
2. **Use ALT key** and select "Collect Bottled Opium"
3. **Receive:** 1x Pure Opium (`pureopium`)
---
### 💊 STEP 3: Use Pure Opium (Health Restoration)
1. **Open inventory** and click "Use" on Pure Opium
2. **3 second drinking animation** plays
3. **Health restored to 600**
4. **Notification:** "Restored to full health!"
**⚠️ Cannot be used:**
- While dead
- While handcuffed
---
## Quick Reference
| Stage | Input | Output | Time | Can Move? |
|-------|-------|--------|------|----------|
| Craft Raw Opium | 3x Poppy + 2x Alcohol | 3x Raw Opium | ~30 sec | ❌ (animations) |
| Add to Distillery | 4x Raw Opium | - | ~8 sec | ❌ (animations) |
| Processing | - | 1x Pure Opium | 1 min | ✅ **YES!** |
| Collect Output | - | 1x Pure Opium | 2 sec | ❌ (animation) |
| Use Pure Opium | 1x Pure Opium | Health = 600 | 3 sec | ❌ (animation) |
## Configuration
All settings can be adjusted in `config.lua`:
### Crafting Settings
```lua
Config.Ingredients = {
{ item = "consumable_herb_prairie_poppy", amount = 3, label = "Prairie Poppy" },
{ item = "purealcohol", amount = 2, label = "Pure Alcohol" }
}
Config.RequiredStirs = 3
Config.StirTime = 5000 -- milliseconds
Config.RewardItem = "opium"
Config.RewardAmount = 3
```
### Distillery Settings
```lua
Config.DistillerySettings = {
requiredOpium = 4,
processingTime = 60000, -- 1 minute
outputItem = "pureopium",
outputAmount = 1
}
```
### Locations (Guarma Distillery)
```lua
-- 5 Crafting Stations
Config.OpiumLocations = { ... }
-- Distillery Input
Config.DistilleryInputLocation = { coords = vector3(1483.88, -7161.49, 72.73) }
-- Distillery Control
Config.DistilleryControlLocation = { coords = vector3(1484.38, -7157.10, 72.73) }
-- Output Barrel
Config.DistilleryOutputLocation = { coords = vector3(1489.45, -7156.43, 72.73) }
```
### Animations
```lua
Config.AddIngredientAnimation = { dict = "...", anim = "...", flag = 1 }
Config.StirAnimation = { dict = "...", anim = "...", flag = 1 }
Config.DistilleryValveAnimation = { dict = "...", anim = "...", flag = 1 }
```
## Localization
Edit `locales/en.lua` to translate all text to your preferred language. You can create additional locale files (e.g., `es.lua`, `fr.lua`) and add them to `fxmanifest.lua`.
## Support
For issues or questions, please contact the script developer.
## Credits
- Script by: Mack
- Framework: RSG-Core
- Libraries: ox_lib, ox_target
- Notifications: bln_notify