77d-MaskZoneController [QB-CORE & ESX]

:star2: 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 :performing_arts::arrows_counterclockwise:. Enhance immersion on your RP server by controlling where masks are allowed.

:sparkles: Key Features

  • :cityscape: Custom Zones: Define polygonal areas on the map where masks are instantly stripped.
  • :video_game: Intuitive Admin UI: In-game menu powered by ox_lib for creating, listing, and deleting zones with ease.
  • :earth_africa: Multi-Language Support: Includes 14 languages out of the box (English/Spanish, etc.), switchable.
  • :briefcase: Job Exemptions: Configure which jobs (police, ambulance, firefighter…) may keep masks in restricted areas.
  • :floppy_disk: Flexible Storage: Choose between database storage (oxmysql) or local config.lua.
  • :bar_chart: Discord Logging: Optional webhook to record admin actions.
  • :lock: Advanced Permissions: Support for QBCore groups, Discord IDs, Steam hexes, or FiveM licenses.
  • :arrows_counterclockwise: Live Updates: Zone changes apply on the fly—no server restart needed.
  • :iphone: UI: ox_lib components and smooth animations for a polished experience.

:package: Requirements

  1. Framework: QB-Core or ESX Legacy
  2. PolyZone (for zone detection)
  3. ox_lib (for menu/UI)
  4. oxmysql (if using database storage)

:wrench: Installation

  • Download and place the 77d-maskzonecontroller folder in your resources/.
  • Add to server.cfg:
ensure ox_lib
ensure PolyZone
ensure 77d-maskzonecontroller

:gear: 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     = {}

:mag: 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

:lock: Permissions

Control access via:

  1. QBCore Groups (Config.AdminGroups)
  2. Discord IDs (Config.AdminDiscordIDs)
  3. Steam Hexes (Config.AdminSteamHex)
  4. FiveM Licenses (Config.AdminLicenses)

:bulb: Usage Examples

  • Create a Zone:
    1. Type /createnomaskszone → “Create New Zone”
    2. Name the zone, click points on the map (min. 3), set heights
    3. Press F → Zone is active!
  • Manage Zones:
    1. /maskzones → “List All Zones”
    2. Expand a zone to Teleport, Delete, Edit…

:performing_arts: 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,
}

:crystal_ball: Future Updates

  • Map blips for zones :round_pushpin:
  • Time-based zone activation :alarm_clock:
  • Custom animation options :clapper:
Code is accessible No
Subscription-based No
README Yes
Language +12
Lines (approximately) +2000
Requirements QB-Core or ESX Legacy, PolyZone, ox_lib, oxmysql
Support Yes / Discord
Preview YouTube
Store Tebex
GitHub GitHub
1 Like

resmon? please!

0.1-0.3, Im still working on it to make it more light. Also u can make it better in the config.lua