Description
Realistic Cycle & Hygiene System (ESX / QBCore / QBox)
Add a lightweight, immersive menstrual cycle system to your RP server with phases, protection items, pharmacy shops, medical integration, and configurable effects.
Highlights
-
Auto-detects framework: ESX / QBCore / QBox
-
Auto-detects inventory: ox_inventory / qb-inventory / ESX inventory
-
Phased cycle progression in real-life hours (fully configurable)
-
Hygiene protection items with durations + expiry warnings
-
Painkiller system with duration + anti-spam cooldown
-
Stain / smell system with nearby player reaction
-
Pharmacy + convenience store shops with prices, blips, and ox_target support
-
Admin tools + Medical RP “check patient status” integration
Core Features
-
Cycle phases: menstruation, follicular, ovulation, luteal
-
Offline catch-up: cycle advances properly even if players were offline
-
Config-driven timings: full cycle length + per-phase windows
-
Protection system: pad / tampon / menstrual cup (custom durations)
-
Protection warning: notifies shortly before protection expires
-
Painkillers: temporarily suppress symptoms with cooldown protection
-
Effects toggles: enable/disable stamina, screen discomfort, and stain/smell systems
-
Stain & smell: when bleeding without protection, nearby players can get a reaction + notification
Shops
Built-in shop system for hygiene items and pain relief, with multiple locations and different pricing tiers (pharmacies + convenience stores).
-
Configurable shop list (coords, labels, items, prices)
-
Optional blips
-
Optional ox_target interaction with fallback proximity UI
Medical RP Integration
-
Whitelist jobs (ambulance/doctor/ems/hospital by default)
-
Doctors can check a patient’s status (phase/bleeding/protection)
Admin Tools
-
Enable/disable cycle per player
-
Set cycle lengths
-
Force phase (debug/testing)
-
Supports ACE permission and framework group permissions
Requirements
-
ox_lib (UI, context menus, callbacks)
-
oxmysql (database)
-
One inventory system: ox_inventory OR qb-inventory OR ESX inventory
-
Optional: ox_target for shop interaction zones
Install (Quick)
-
Ensure ox_lib and oxmysql are installed and started before this resource.
-
Import the provided SQL (recommended) or let the script auto-create the table on start.
-
Add the items to your inventory system:
-
ox_inventory: add items in
ox_inventory/data/items.lua(exports included in config comments) -
QBCore/QBox: add items in
qb-core/shared/items.luaand ensure usable items are enabled
-
-
Configure
config.lua(cycle timings, effects, shops, medical jobs, admin groups). -
Start the resource and test with the included commands.
Player Commands
-
/periodstatus— show current phase, next phase timing, protection status, painkiller status -
/period_optin— opt into the system (for whitelisted players or manual use)
Notes
-
This is an RP/immersion feature. Use sensible settings for your community.
-
All timings are in real-life hours and are configurable.
-
Debug mode can be enabled for development/testing.
Support
If you need help integrating with your framework/inventory or want custom features, contact me with: framework (ESX/QBCore/QBox), inventory (ox/qb/esx), and a short clip or console logs of the issue.