Configuration
Config options, station locations, and recipes for Nexra Minigames Weed.
Configuration
All options are in config.lua. Location placement is handled separately in Config.Weed.Locations and merged into stations at runtime by shared/weed_locations.lua.
General
| Option | Default | Description |
|---|---|---|
Config.Debug | true | When true, item checks are skipped on the server (useful for testing minigames) |
Config.Locale | 'en' | Locale file from locales/ |
Config.Notifications | 'ox_lib' | Notification provider |
Config.Brand.logo | 'logo.png' | Logo filename in the prebuilt NUI |
Config.Brand.name | 'Nexra' | Brand name shown in the UI |
Config.Progress.cancelControl | 73 | Control index to cancel progress (default X) |
Config.Progress.cancelKey | 'X' | Displayed cancel key |
Set Config.Debug = false on a live server so recipes consume and grant items correctly.
Lab
| Option | Default | Description |
|---|---|---|
Config.Weed.Lab.Enabled | true | Master toggle for all lab stations |
Config.Weed.Lab.TargetDistance | 3.5 | Default target interaction distance |
Config.Weed.Lab.Debug | false | Draw target zone debug outlines |
Config.Weed.Lab.MaxCraftQuantity | 20 | Max batch size when referenced (optional — defaults to 20 if omitted) |
Providers
Integrations auto-detect from started resources. To force a provider:
Config.Providers = {
framework = 'qbx_core',
inventory = 'ox_inventory',
target = 'ox_target',
notifications = 'ox_lib',
}Legacy keys (Config.FrameWork, Config.Inventory, etc.) still work.
Setting up locations
Each station in Config.Weed.Lab.Stations has an id. A matching entry in Config.Weed.Locations controls where that station spawns and how players interact with it.
If a location entry is missing or enabled = false, that station is removed entirely.
Location fields
| Field | Description |
|---|---|
enabled | Set false to disable the station |
coords | World position (vec3) for the station / target zone |
heading | Station rotation in degrees |
targetCoords | Optional separate target center (defaults to coords) |
size | Box target size (vec3) when not using a world prop |
propCoords | Prop spawn position (vec4 with heading) |
spawnRadius | Distance at which world props stream in |
targetRadius | Sphere target radius on world props |
targetZOffset | Vertical offset for prop-based targets |
tableHeight | Table surface height used by the minigame camera |
spawnProp / spawnTable | Legacy flags on example locations (informational) |
job | Restrict station to a job name |
grade | Minimum job grade |
duty | Require on-duty when true |
label | Override target label (locale key or plain string) |
icon | Override target icon |
Press-only extras (optional, for fine-tuning the press minigame):
| Field | Description |
|---|---|
cameraCoords | Press camera world position |
pressCoords | Press prop world position |
trayCoords | Mold tray world position |
brickCoords | Finished brick reveal position |
Example location block
Config.Weed.Locations = {
weed_brick_press_1 = {
enabled = true,
coords = vec3(-1179.26, -1730.34, 3.3),
heading = 30.42,
targetCoords = vec3(-1179.26, -1730.34, 3.3),
size = vec3(1.9, 1.9, 1.5),
propCoords = vec4(-1179.26, -1730.34, 3.3, 30.42),
spawnRadius = 55.0,
targetRadius = 1.45,
targetZOffset = 0.85,
},
weed_trimming_1 = {
enabled = true,
coords = vec3(-1171.26, -1730.34, 3.3),
heading = 30.42,
tableHeight = 1.72,
size = vec3(1.6, 1.6, 1.4),
propCoords = vec4(-1171.26, -1730.34, 3.3, 30.42),
spawnRadius = 55.0,
targetRadius = 1.45,
targetZOffset = 0.55,
job = 'weedfarmer',
grade = 0,
duty = true,
},
}Default station IDs
| ID | Mode | World prop |
|---|---|---|
weed_brick_press_1 | weed_press_minigame | Coke press models |
weed_brick_cutting_1 | brick_cutting_minigame | Lab table |
weed_trimming_1 | bud_cutting_minigame | Weed table |
weed_bagging_1 | bagging_minigame | Weed table |
weed_rolling_1 | rolling_minigame | Weed table |
Adding a new station
- Copy an existing station block inside
Config.Weed.Lab.Stationsand give it a uniqueid. - Set
modeto one of the five minigame modes above. - Adjust
recipes,minigame, andworldPropsettings as needed. - Add a matching entry in
Config.Weed.Locationswith your coordinates. - Restart the resource.
Stations with worldProp.enabled = true stream props and use sphere targets on the prop. Stations without world props fall back to a box target at coords.
Recipes
Each station has a recipes table. The server validates items before a session starts and removes/grants items when a minigame completes.
Recipe structure
{
input = { item = 'trimmed_weed', amount = 50 },
required = { item = 'plant_trimmer', amount = 1 },
extra = { item = 'empty_bag', amount = 1 },
output = { item = 'weed_brick', amount = 1 },
label = 'Custom label shown in UI',
}| Field | Description |
|---|---|
input | Items consumed per craft (multiplied by batch quantity) |
required | Tool item that must be present but is not consumed |
extra | Additional consumed item (bags, papers, etc.) |
output.amount | Fixed output count per craft |
output.min / output.max | Random output range (used on bud trimming) |
label | Optional display name override |
Default recipe chain
trimmed_weed (x50) → weed_brick [press]
weed_brick (x1) → trimmed_weed (x50) [cut, needs plant_trimmer]
og_kush_bud (x1) → trimmed_og_kush (1–3) [trim, needs plant_trimmer]
trimmed_og_kush (x5) + empty_bag → og_kush_baggy [bag]
trimmed_og_kush (x1) + rolling_paper → joint_og_kush [roll]White Widow follows the same pattern with white_widow_* item names.
Quality yield
Brick cutting tracks minigame quality. A perfect cut grants full output; slips reduce yield proportionally. Other minigames use a fixed quality of 1.0.
Minigame tuning
Each station has a large minigame block for camera, props, physics, and interaction tuning. Defaults are set for the included example locations — only adjust these if a station sits at a different height or heading and the camera/props look wrong.
Common sub-sections:
| Section | Used by |
|---|---|
camera | All minigames |
table | Table center and heading offset |
buds | Brick press throw physics |
press / tray / scene | Brick press animation and props |
brick / tool / cut | Brick cutting blade and tolerance |
plant / tool / buds | Bud trimming |
scale / transfer / trimPile / bagPile | Bagging and rolling weigh mechanics |
roll | Joint rolling spin mechanics |
Set Config.Weed.Lab.Debug = true to visualize target zones while placing locations.
