# btc-herbs β Native Herb Harvesting for RedM
## πΏ What it is
btc-herbs uses **RDR2's native composites**Β
instead of a static prop with a floating marker and a custom menu. The game
itself raises the **original plant** β model, wind sway, native prompt, native
picking animation. Exactly the singleplayer experience, except **your server**
decides what the player gets.
| Common scripts | btc-herbs |
|---|---|
| Static prop + floating marker | Native plant, native prompt, native animation |
| Progress bar or NUI menu | Indistinguishable from the base game |
---
## π What comes ready
### **53 herbs** Β· **7,452 spawn points** Β· **the whole map**
The entire game's flora β frozen north, forests, plains, swamp, desert,
riverbanks β each herb spawning exactly where it does in RDR2.
---
## π Security & performance
- **100% server-authoritative** β cooldown, reward roll and inventory checks
Β all run server-side. Native loot is suppressed.
- **Distance anti-exploit** β out-of-range requests are refused and reported to
Β your Discord webhook.
- **Item-by-item inventory validation** β no duplication; if it doesn't fit,
Β the cooldown isn't applied.
-
**Distance-based spawn/despawn** β only nearby herbs exist client-side.
-
**Zero database** β cooldowns live in memory.
---
## π οΈ One-line configuration
```lua
Config.PlantCooldown = 60 Β Β Β Β Β Β -- minutes
Config.GlobalPlantCooldown = true Β Β -- true = global Β· false = per player
```
Rewards support multiple items per herb, each with its own chance β add a rare
drop in one line in `config/plants.lua`.
---
## π§ Pick or eat β extensible without touching the core
Like in singleplayer, the player can **pull** the plant (item to inventory) or
**eat** it on the spot (no item, just the animation). Two open files
(`client/open.lua`, `server/open.lua`) ship with ready hooks β `onHerbEaten`,
`onHerbPicked`, `modifyRewardChance`, `canEat` β to plug in your own
metabolism, buffs or job perks without touching the protected code.
---
## π Native notifications
All notifications are **native RDR3**, via btc-core's `Core.notify` β no
generic FiveM toasts. Swappable with a single function rewrite in
`config.lua`.
---
## π¦ What you need
| Requirement | Note |
|---|---|
| **[btc-core](https://betiucia-scripts-shop.tebex.io/)** | Our framework bridge β **required** |
β οΈ The script delivers the items but does **not** create them β register the
53 items in your framework (full list in the README).
Runs through btc-core on **RSG** and **VORP**. Translations (`pt-br`, `eng`)
included, open file.
---
## π Escrow β what stays open
- β `config/config.lua`, `config/plants.lua`, `config/coords.lua`
- β `locale.lua`
- β `client/open.lua` and `server/open.lua` β pick/eat hooks and effects
---
## β FAQ
**Props or native models?**
Native models β the same `COMPOSITE_LOOTABLE_*_DEF` plants from singleplayer.
**Can players duplicate items or harvest from far away?**
No β all logic runs server-side; out-of-range attempts are blocked and logged.
**Do I need a database or ox_lib?**
No to both. Cooldowns are in memory; notifications use btc-core's `Core.notify`.
**Per-player or global cooldowns?**
Your choice, one config line.
---
### **btc-herbs**
**The entire flora of Red Dead Redemption 2, harvestable, secure, and on your server.**