Wat is dit?
Architectuur van Z-staff en Z-staff, voor ESX, Qbox en QBCore.
Z-staff is één resource voor in- en uitdienst, staffkleding en toegang.
Het is één pack. Framework (ESX / Qbox / QBCore) wordt automatisch gedetecteerd. Zie Framework.
Verantwoordelijkheden
Z-staff
- Command `/staffdienst` (toggle in/uit dienst)
- Controleren of de speler staff is
- Civiele kleding opslaan en staff-outfit aantrekken
- Metadata
staffdienstbewaren (duty + clothing) - State bag
staffdienstzetten (client + server) - Panel vertellen dat duty aan of uit is (
exports.setDuty) - Bij uitdienst het panel dwingen te sluiten (
erp-staff:client:dutyOff)
Z-staff
- Rank bepalen (Discord, license, ACE, database, ESX-groups of QB/Qbox-groups)
- ACE-principals zetten (
group.mod/group.admin/group.god+group.erpstaff) - NUI Z-staff (dashboard, spelers, reports, bans, tools, wereld, server, logs)
- Moderatie: warn / kick / ban / unban
- Bancheck bij
playerConnecting - Audit logs + Discord webhooks
- Staff-uren in
erp_staff_duty(of jouwConfig.Database.duty) - Reports via
/report
Startvolgorde
Altijd dienst vóór panel. Start alleen jouw framework:
ensure oxmysql
ensure ox_lib
ensure es_extended # of qb-core / qbx_core
ensure Z-staff
ensure Z-staff
Z-staff heeft Z-staff als dependency. Als dienst niet draait, start het panel niet.
Dataflow bij in dienst gaan
- Speler typt
/staffdienst. - Z-staff checkt
IsStaff:
Config.allowedIdentifiers- Panel-export
getStaff/refreshStaff - ACE (
group.erpstaff,group.admin, …) - ESX group (
Config.esxGroups) of QB/Qbox group (Config.qbGroups)
- Client stuurt huidige kleding terug (
getClothing). - Server zet:
dutyBySource[src] = truePlayer(src).state.staffdienst = true- metadata
staffdienst={ onduty = true, clothing = ... }
- Server roept
exports['Z-staff']:setDuty(src, true)aan. - Panel schrijft clock-in in de duty-tabel en logt
duty_in. - Client speelt progressbar, trekt outfit aan, toont “Je bent nu in dienst…”.
Dataflow bij het panel openen
- Speler drukt F10 of typt
/staff. - Client checkt
LocalPlayer.state.staffdienstofexports['Z-staff']:IsOnDuty(). - Server checkt duty + rank.
- NUI krijgt payload: rank, perms, locaties, weers, ban-durations, wapens.
- Knoppen onder het rank-level worden niet getoond.
Wat gebeurt er bij uit dienst?
- Staffkleding uit, civiele kleding terug
- Panel sluit als het openstaat
- Noclip, godmode, invis, superjump, infinite ammo, vehicle god, IDs, namen, blips, spectate gaan uit
- Clock-out + duration in de duty-tabel
- Log
duty_out
Bestandsstructuur
Z-staff/
fxmanifest.lua
config.lua
shared/framework.lua
client/main.lua
server/main.lua
Z-staff/
fxmanifest.lua
config.lua
README.md
sql/install.sql
shared/ framework.lua
client/ notify.lua, main.lua, self.lua, noclip.lua, spectate.lua, overlays.lua
server/ bridge.lua, main.lua, permissions.lua, discord.lua, moderation.lua,
players.lua, reports.lua, world.lua, utils.lua
html/ index.html, style.css, app.js
Event-namen in het panel beginnen nog met erp-staff: (historisch). De resource zelf heet Z-staff. Dit is geen extra resource die je moet starten.