Configuration
Configuration
Configuration is split across 8 files in config/ — all unencrypted and freely editable.
| File | Owns |
|---|---|
config/main.lua |
Framework, hygiene decay & thresholds, the HUD |
config/shower.lua |
Shower duration, props, water effects, undress |
config/deodorant.lua |
Deodorant duration & effect |
config/perfume.lua |
Perfume duration, effect & pheromone |
config/dental.lua |
Dental decay, brushing, gum items |
config/items.lua |
ox_inventory item names (soap / deodorant / perfume) |
config/notifications.lua |
All player-facing text (Spanish by default) |
config/discord.lua |
Discord webhook logging + debug |
config/main.lua must load first — it creates the base Config table and the framework setting. Don't reorder it in the manifest.
main.lua — framework & hygiene
Config.Framework = 'auto' -- 'auto' | 'qbx' | 'qb' | 'esx'
Config.DebugBridge = false
Config.HygieneSystem = {
fullDuration = 120, -- REAL-LIFE minutes from 100% to 0% (120 = 2h)
stinkThreshold = 20, -- below this %, nearby players can smell you
flyThreshold = 20, -- below this %, fly particles spawn
smellRadius = 4.0, -- meters others must be within to smell you
smellCheckInterval = 10000, -- ms between nearby-smell checks
selfNotificationInterval = 5, -- minutes between "you stink" reminders
smellReactionCooldown = 30, -- seconds between reactions to the same player
showFlies = true,
playStinkReaction = true,
reactionDuration = 3000,
-- HUD settings below ↓
}
HUD settings (inside Config.HygieneSystem)
showHUD = false, -- master on/off for the on-screen HUD
hudStyle = 'hex', -- 'hex' | 'circle' | 'capsule' | 'diamond' | 'ring'
hudColors = { -- whole-HUD theme (hex). Drives fill, glow, borders, icons.
dark = '#3a0f0e',
mid = '#c4423e',
bright = '#f35854',
},
hudStyleCommand = 'hudstyle', -- command players use to open the style picker
useCustomPanel = true, -- true: built-in HUD · false: forward to qbx_hud
Styles: hex (qbx_hud-style hexagon with liquid wave), circle, capsule (vertical tank), diamond, ring (hexagon outline progress).
Colors: set the three tones to recolor everything. Ready-made palettes:
| Palette | dark | mid | bright |
|---|---|---|---|
| Red (default) | #3a0f0e |
#c4423e |
#f35854 |
| Blue | #0b2a3a |
#1f6f9e |
#38bdf8 |
| Green | #0d3a1e |
#1f9e57 |
#34d399 |
| Purple | #2a0f3a |
#7e3fc4 |
#a855f7 |
| Gold | #3a2a0f |
#c49b3e |
#fbbf24 |
hudStyle and hudColors are the server default. Each player can override the style for themselves with the in-game picker (/hudstyle); their choice is saved client-side.
shower.lua — showering
Config.ShowerDistance = 2.5
Config.Shower = {
duration = 20000, -- ms
useTarget = true, -- true: ox_target eye · false: use soap item
restoresTo = 100,
requireHouse = true, -- must be inside a house/shell
showWaterEffects = true,
waterEffectScale = 1.5,
waterParticleEffect = 'ent_sht_water',
}
Config.ShowerProps = { ... } -- prop hash → { offset, scale } (many supported)
Config.PublicShowerProps = { ... } -- props usable without the house check (e.g. prison)
Showers are matched by prop hash. Add your own custom shower heads to Config.ShowerProps; tune the water offset live with /positionwater.
deodorant.lua / perfume.lua — freshness boosters
Config.Deodorant = {
duration = 12000,
minHygieneRequired = 50, -- must be at least this clean to apply
decayMultiplier = 0.82, -- <1 slows decay
effectDuration = 110, -- minutes
}
Config.Perfume = { duration = 7000, minHygieneRequired = 50, decayMultiplier = 0.69, effectDuration = 130 }
Config.Pheromone = { enabled = true, chance = 8, radius = 10.0, ... } -- perfume attracts nearby players
dental.lua — dental track
Config.DentalSystem = {
enabled = true,
fullDuration = 180, -- REAL-LIFE minutes to 0% (separate from body hygiene)
showHUD = true,
brushDuration = 10000,
restoresTo = 100,
gumItems = { -- chewing gum FREEZES decay (doesn't refill)
['gum_peppermint'] = 25, -- minutes of frozen decay
['gum_cinnamon'] = 25,
['gum_spearmint'] = 25,
},
}
items.lua — item names
Config.Items = {
soap = 'jabon',
deodorant = 'desodorante',
perfume = 'perfume',
}
Change these to match your ox_inventory item names.
notifications.lua / discord.lua
notifications.lua holds every player-facing string (Spanish defaults) — edit freely. discord.lua controls webhook logging (enabled, webhook, logShower, logStink) and Config.Debug.
