Usage
How it works
- Head to the Lumber Center NPC and rent a truck ($100).
- Drive to a tree zone marked on the map.
- Equip your battle axe or chainsaw and chop down trees. Each downed tree leaves a log on the ground.
- Pick up the log — stand directly over the log and open your inventory (the log is not an ox_target interaction). Your character will carry it with an animation. Place it in your truck bed (up to 5 logs per trip).
- Drive to the Sawmill NPC and deposit your logs. Each log takes ~12 seconds to process into planks.
- Sell the planks for cash at the Lumber Center NPC.
Lumber Center NPC
The Lumber Center NPC offers the following options:
- Sell Materials - open the sell shop for planks
- Rent Vehicle - rent a Bison truck for $100
- Return Vehicle - return the truck within 10 m of the Lumber Center for a full $100 refund
- Toggle Zone Blips - show or hide tree zone blips on the map
Tools
| Tool | Damage/hit | Debounce | Durability drain/hit | Notes |
|---|---|---|---|---|
| Battle Axe | 10 | None | 1.0 | Native GTA weapon - 10 hits per tree |
| Chainsaw | 1 | 300 ms | 0.0025 | Custom inventory item - faster overall |
Trees have 100 HP and regenerate after a 5-minute cooldown by default. Tools lose durability with each hit (50% chance to skip drain) and break at 0 durability.
Tree types
| Item key | Log | Plank | Plank sell price | Note |
|---|---|---|---|---|
oak | oak_log | oak_plank | $5 | |
cedar | cedar_log | cedar_plank | $7 | |
pine | pine_log | pine_plank | $7 | Zone disabled by default |
olive | olive_log | olive_plank | $7 | |
forest_tree | forest_tree_log | forest_tree_plank | $7 |
Reputation & progression
Reputation is earned by chopping trees (50 XP per tree). Higher ranks unlock faster gathering speed and a chance to receive double logs when a tree falls. Reputation is shared with all group members.
| Rank | XP required | Gathering speed | Double drop chance |
|---|---|---|---|
| 1 | 1,000 | 0% | 5% |
| 2 | 2,000 | 4% | 5% |
| 3 | 3,000 | 4% | 10% |
| 4 | 4,000 | 8% | 10% |
| 5 | 5,000 | 8% | 15% |
| 6 | 6,000 | 12% | 15% |
| 7 | 7,000 | 12% | 20% |
| 8 | 8,000 | 16% | 20% |
| 9 | 9,000 | 16% | 25% |
| 10 | 10,000 | 20% | 25% |
At Rank 10 players have +20% gathering speed and 25% double-drop chance.
Feature toggles
config/sh_config.lua exposes Config.Features so server owners can replace built-in systems with their own scripts. When disabled, the relevant NPC menu option is removed and the server event bails out.
Config.Features = {
sellShop = true, -- Lumber Center sell shop (planks)
rentals = true, -- Lumber Center vehicle rent/return
}| Flag | When false |
|---|---|
sellShop | The "Open Selling Shop" option is hidden and prp-lumberjack:openSellStash is ignored server-side. |
rentals | The "Rent Vehicle" / "Return Vehicle" options are hidden and both server events are ignored. |
When you disable a feature, the corresponding exports['prp-lumberjack']:* wrappers still fire the underlying server event but the event will bail — that's intentional so bypass attempts fail closed.
NPC render distance & vehicle return
Two distance values in config/sh_config.lua:
| Variable | Default | Purpose |
|---|---|---|
Config.PedRenderDistance | 75.0 | How far away the Lumber Center and Sawmill NPCs stream in. Higher values make the peds visible from further away. |
Config.VehicleReturnDistance | 10.0 | Max distance (metres) from the rental spawn point at which a rental truck can be returned for a refund. |
Blips configuration
Blip sprite, color and scale are exposed in config/sh_config.lua under Config.Blips. Labels live in locales/*.json (BLIP_LABEL, SAWMILL_LABEL, ZONE_BLIP_LABEL) for easy translation.
Config.Blips = {
center = { enabled = true, sprite = 85, color = 2, scale = 1.0 },
sawmill = { enabled = true, sprite = 365, color = 2, scale = 0.8 },
zone = { sprite = 836, color = 2, scale = 1.0, radiusColor = 2 },
}| Field | Used by | Purpose |
|---|---|---|
enabled | center, sawmill | Set to false to skip creating the static blip (useful when replacing the default NPCs with your own script) |
sprite, color, scale | all | Standard GTA blip properties |
radiusColor | zone | Color of the translucent radius blip around each tree zone |
Exports
For scripts that replace the default ped + ox_target UI, prp-lumberjack exposes client-side exports:
| Export | Returns | Description |
|---|---|---|
ToggleZoneBlips() | boolean | Toggle tree zone blips. Returns the new visibility state. |
SetZoneBlips(show) | boolean | Explicitly show (true) or hide (false) zone blips. Returns the visibility state. |
AreZoneBlipsVisible() | boolean | Current zone blip visibility. |
OpenSellShop() | — | Open the plank sell shop (server event). |
RentVehicle() | — | Rent a Bison truck. |
ReturnVehicle() | — | Return the rental truck for a refund. |
OpenProgressMenu() | — | Open the reputation/progress context menu. |
OpenSawmillMenu() | — | Open the sawmill log-processing menu. |
Example:
-- From a custom job selector or qb-menu replacement
exports['prp-lumberjack']:SetZoneBlips(true)
exports['prp-lumberjack']:RentVehicle()
exports['prp-lumberjack']:OpenSellShop()Disabling the default NPCs
Set Config.Blips.center.enabled = false and Config.Blips.sawmill.enabled = false in config/sh_config.lua, then remove the bridge ped interactions by forking client/main.lua — the exports above let you drive every action from your own UI.