Overview
77d-MaskZoneController is a FiveM resource compatible with QBCore and ESX Legacy. It lets you define “no-mask” zones: players automatically have their mask removed when entering, and it’s restored when exiting . Enhance immersion on your RP server by controlling where masks are allowed.
Key Features
Custom Zones: Define polygonal areas on the map where masks are instantly stripped.
Intuitive Admin UI: In-game menu powered by ox_lib for creating, listing, and deleting zones with ease.
Multi-Language Support: Includes 14 languages out of the box (English/Spanish, etc.), switchable.
Job Exemptions: Configure which jobs (police, ambulance, firefighter…) may keep masks in restricted areas.
Flexible Storage: Choose between database storage (
oxmysql
) or localconfig.lua
.Discord Logging: Optional webhook to record admin actions.
Advanced Permissions: Support for QBCore groups, Discord IDs, Steam hexes, or FiveM licenses.
Live Updates: Zone changes apply on the fly—no server restart needed.
UI: ox_lib components and smooth animations for a polished experience.
Requirements
- Framework: QB-Core or ESX Legacy
- PolyZone (for zone detection)
- ox_lib (for menu/UI)
- oxmysql (if using database storage)
Installation
- Download and place the
77d-maskzonecontroller
folder in yourresources/
. - Add to
server.cfg
:
ensure ox_lib
ensure PolyZone
ensure 77d-maskzonecontroller
Configuration (config.lua
)
Config = {}
Config.Debug = false -- Debug mode
Config.Framework = 'qb' -- 'qb' or 'esx'
Config.ClothingSystem = 'qb-clothing' -- Clothing system to use
Config.DefaultLanguage = 'en' -- Default language
Config.StorageType = 'database' -- 'database' or 'config'
Config.NoMaskZones = {} -- Zones list if using 'config'
Config.ExemptJobs = { police=true, ambulance=true, firefighter=true }
Config.EnableDiscordLogs = false -- Enable Discord logging
Config.DiscordWebhook = ''
Config.AdminGroups = { admin=true, god=true, mod=true }
Config.AdminDiscordIDs = {}
Config.AdminSteamHex = {}
Config.AdminLicenses = {}
Admin Commands
Command | Description | Permission |
---|---|---|
/createnomaskszone |
Start creating a new mask-free zone | Admin |
/deletenomaskszone [ID] |
Delete a zone by its ID | Admin |
/listnomaskszone |
List all defined zones | Admin |
/maskzones |
Open the admin management menu | Admin |
Permissions
Control access via:
- QBCore Groups (
Config.AdminGroups
) - Discord IDs (
Config.AdminDiscordIDs
) - Steam Hexes (
Config.AdminSteamHex
) - FiveM Licenses (
Config.AdminLicenses
)
Usage Examples
- Create a Zone:
- Type
/createnomaskszone
→ “Create New Zone” - Name the zone, click points on the map (min. 3), set heights
- Press F → Zone is active!
- Type
- Manage Zones:
/maskzones
→ “List All Zones”- Expand a zone to Teleport, Delete, Edit…
Animation Settings
Configurable in Config.Animations
to adjust mask remove/restore animations:
Config.Animations = {
Enabled = true,
RemoveMaskDict = "missheist_agency2ahelmet",
RemoveMaskAnim = "take_off_helmet_stand",
RestoreMaskDict = "mp_masks@standard_car@ds@",
RestoreMaskAnim = "put_on_mask",
AnimationDuration = 800, -- ms
DisableControls = false,
PreventMovement = false,
}
Future Updates
- Map blips for zones
- Time-based zone activation
- Custom animation options