Configuration
Current configuration map and defaults for oxide-meth.
Every setting in oxide-meth, file by file. Open the files with any text editor, change the values, then restart the resource (restart oxide-meth in the server console or txAdmin).
Config files:
| File | What's in it |
|---|---|
shared/config.lua | General settings, fumes, gas mask, animations, cooking, drying, breaking, bagging |
shared/config/items.lua | Which item names each stage uses |
shared/config/additives.lua | Additives, named variants, purity rules |
shared/config/equipment.lua | The placeable meth table and crystallizer |
shared/config/progression.lua | XP rewards and level thresholds |
shared/config/usage.lua | What happens when players use bagged meth |
shared/config.lua
General
| Setting | Default | What it does |
|---|---|---|
Config.Debug | false | Prints extra information to the server console. Leave off unless you're troubleshooting. |
Config.RequireOwnership | true | Only the player who placed equipment (or a drying tray) can pick it up or collect from it. Set false to let anyone interact. |
Config.SpawnDistance | 100.0 | How close (in game units) a player must be before placed equipment appears for them. |
Config.SafeZones | {} | Areas where equipment can't be placed. Each zone is a list of map points forming a shape (e.g. around a hospital). Ships empty. |
Fume effects (Config.FumeEffects)
Controls the screen blur players get from cooking without a gas mask.
| Setting | Default | What it does |
|---|---|---|
lingerDuration | 120000 | How long the effect lingers after the cook, in milliseconds (default 2 minutes) |
maxStrength | 0.6 | How strong the blur can get (0–1) |
rampUpRate | 0.008 | How quickly the blur builds while cooking |
maskedFadeRate | 0.02 | How quickly the blur fades if the player puts on a gas mask mid-cook |
Gas mask (Config.GasMask)
| Setting | Default | What it does |
|---|---|---|
item | 'gas_mask' | The inventory item name |
componentId | 1 | Which clothing slot the mask uses (1 is the face/mask slot) |
drawable | 175 | Which mask model to show — change this if your clothing pack uses different numbers |
texture | 0 | The mask's color/texture variation |
anim | put-on animation | The animation played when toggling the mask (1.2 seconds by default) |
Placement animations (Config.Anims)
The crouch-and-place animation used when placing or picking up equipment. You normally won't need to touch these.
Cooking (Config.Cooking)
The interesting numbers for game balance:
| Setting | Default | What it does |
|---|---|---|
cookDuration | 20000 | Length of the temperature phase, in milliseconds |
cookStartTemp | 30.0 | Temperature when the cook starts (°C) |
cookHeatRate | 0.13 | How fast the temperature climbs on its own, per frame. Higher = harder cook. |
cookCoolAmount | 15.0 | How much pressing the correct key cools the pot (°C) |
cookOverheatPenalty | 3.0 | How much pressing a wrong key heats the pot (°C) |
cookKeyChangeInterval | 4000 | How often the flashing key changes, in milliseconds |
cookColdThreshold | 15.0 | Below this temperature the batch starts stalling (°C) |
cookColdMaxMs | 5000 | How long the pot can stay that cold before the batch is ruined (milliseconds) |
cookKeys | E, Q, R, G, X, H | The pool of keys the minigame picks from |
pourSpeed / pourTiltMax | 3.0 / 120.0 | How pouring feels (speed and how far the bottle tilts) |
dropSnapDistance / lerpDuration | 0.5 / 600 | How dragging objects in the scene feels |
The batch explodes if the temperature reaches 100°C — that ceiling is fixed.
The rest of Config.Cooking (camera positions, prop groups, fire/smoke effects) controls how the cooking scene looks and rarely needs changing.
Drying (Config.Drying)
| Setting | Default | What it does |
|---|---|---|
dryingTime | 300 | Seconds for a tray to crystallize (default 5 minutes) |
equipment.model | bkr_prop_meth_chiller_01a | The prop shown in the drying scene |
trays.stacksPerColumn | 9 | Tray slots per rack. Two racks, so the default capacity is 18. |
Heads-up: the placed crystallizer prop is set separately in shared/config/equipment.lua (and ships as tr_prop_meth_chiller_01a). If you change one model, you may want to change the other to match.
Breaking (Config.Breaking)
| Setting | Default | What it does |
|---|---|---|
shardsMin | 3 | Fewest shards a tray can give |
shardsMax | 6 | Most shards a tray can give |
shardModel | prop_oxide_crystal_meth | The shard prop shown on the table |
Variants can adjust their own per-tray shard cap with shardsModifier in shared/config/additives.lua.
Bagging (Config.Bagging)
| Setting | Default | What it does |
|---|---|---|
shardsPerBag | 3 | Shards needed per bag |
shardWeightMin / shardWeightMax | 0.3 / 1.0 | The random weight range of each shard (grams) |
targetWeight | 1.0 | The scale's target (grams) |
minSealWeight | 0.8 | The lightest a bag can be and still seal (grams) |
dropSnapDistance / lerpDuration | 0.3 / 400 | How dragging shards feels |
shared/config/items.lua
The item names each stage consumes and produces. If you rename an item here, remember to register the new name in your inventory too.
| Setting | Default |
|---|---|
ingredients | hydrogen_peroxide, ammonia, hydrochloric_acid, sodium_benzoate |
cooking.output | liquid_meth_tray ×1 |
drying.input → drying.output | liquid_meth_tray → crystallized_meth_tray |
breaking.input | crystallized_meth_tray (up to maxTrays = 3 per session) |
breaking.output | crystal_meth (standard crystal; variants use their own shard items) |
bagging.shardItem + bagging.bagItem | crystal_meth + baggy |
bagging.output | meth_baggy (standard crystal; variants use their own bag items) |
shared/config/additives.lua
Additives (Config.Additives)
Each additive entry sets:
| Field | What it does |
|---|---|
label | The name players see |
type | 'pour' (liquid, poured in) or 'drag' (solid, dropped in) |
requiredLevel | Meth level needed to use it |
heatRateModifier | Multiplies how fast the pot heats (e.g. 1.3 = 30% faster, harder cook) |
optimalRangeModifier | Shifts the 35–65°C sweet spot up or down (°C) |
purityBonus | Added to (or subtracted from) the final purity score |
model, offset, fx* | How the additive looks in the scene |
Shipped unlock levels: Pain Killer, Lax to the Max, Cannabis Leaf, and Cough Syrup at level 1 · Magnesium Oxide, Hazardous Waste, and Vanilla Unicorn Pills at level 3 · Adrenaline and Acetone at level 5 · Toluene at level 7.
Named variants (Config.Variants)
Each variant maps an additive combination (order doesn't matter) to a finished product:
| Field | What it does |
|---|---|
key / name | Internal id and display name |
additives | The recipe — which additives produce this variant |
shardItem / bagItem | The item names for this variant's shards and bags |
shardsModifier | Adjusts the per-tray shard cap when breaking (e.g. Ice's -1 caps it at 5) |
valueMultiplier | A price multiplier you can read from your own selling scripts — oxide-meth stores it on the variant but doesn't sell anything itself |
Config.DefaultVariant is what any unmatched recipe (or no additives) produces: standard Crystal with crystal_meth shards and meth_baggy bags at 1.0x value.
If you add a new variant, you must also register its shardItem and bagItem in your inventory.
Purity (Config.Purity)
| Setting | Default | What it does |
|---|---|---|
optimalTempMin / optimalTempMax | 35 / 65 | The temperature sweet spot that earns purity |
maxAdditives | 2 | Maximum additives per cook |
shared/config/equipment.lua
The two placeable items. Each entry sets the inventory item, the props that appear when placed, and the direction the player faces relative to it.
| Setting | Default |
|---|---|
meth_table.item | meth_table |
meth_crystallizer.item | meth_crystallizer |
meth_crystallizer.requiredLevel | 0 (no level requirement — raise it to gate the crystallizer behind progression) |
shared/config/progression.lua
XP rewards
| Action | XP |
|---|---|
cook | 25 |
dry (collect a finished tray) | 10 |
breakMeth | 30 |
bag (per sealed bag) | 15 |
Levels
Ten levels with these total-XP thresholds:
0, 100, 300, 650, 1200, 2000, 3200, 5000, 7500, 11000
Purity penalties
How many points each level loses off every cook's purity score:
-30, -25, -20, -15, -10, -8, -5, -3, -1, 0
shared/config/usage.lua
Controls what happens when a player uses a bagged meth item.
Core settings (Config.Usage)
| Setting | Default | What it does |
|---|---|---|
cooldown | 120 | Seconds a player must wait after the effects end before using again |
anim | drink animation, 3 seconds | The animation played when using |
Effect toggles (needsEffects)
Turn whole effect types on or off server-wide:
| Setting | Default |
|---|---|
armour | true |
healing | true |
stamina | true |
stressRelief | true (needs a framework with a stress system — QBCore and QBX have one, ESX does not) |
Screen effects (screenEffects)
| Setting | Default | What it does |
|---|---|---|
timecycle | 'spectator5' | The vivid-color screen filter while high |
cameraShake | 'HAND_SHAKE' | The camera shake style |
fovBoost | 5.0 | How much the view widens during intensity surges |
pulseInterval / pulseDuration | 8.0 / 1.5 | How often surges hit and how long they last (seconds) |
Base effects (baseEffects)
The starting profile every variant builds on:
| Setting | Default | What it does |
|---|---|---|
duration | 90 | Effect length in seconds |
intensity | 0.5 | Visual strength (0–1) |
healRate / healTickInterval | 0 / 5 | Health gained per tick, and seconds between ticks |
armourAmount | 0 | Armour granted on use |
staminaRegenRate | 0.0 | Stamina regeneration while high |
speedBoost | 0.0 | Sprint speed bonus (e.g. 0.15 = 15% faster) |
cameraShakeAmplitude | 1.5 | How hard the camera shakes |
stressRelief | 30 | Stress removed on use (on frameworks with a stress system) |
Purity multipliers
The grade on the bag scales every number in the profile:
| Grade | Multiplier |
|---|---|
| Pure | 1.3 |
| High | 1.1 |
| Mid | 1.0 |
| Low | 0.8 |
| Dirty | 0.6 |
Per-variant profiles (variantEffects)
Each variant can override any base effect. For example, Blue Sky ships with a 150-second duration, healing, armour, and a speed boost, while Street Mix is 60 seconds of weak effects and heavy shake. Tune each variant's identity here.