Server Tablet
File: server/tablet.lua
Server-side tablet handlers — app registry, settings/apps/data persistence, message routing.
Responsibilities
- Handle app open/close/message events
- Route messages between registered server apps
- Persist settings, installed apps, and app data to MySQL
- Provide exports for other resources
Events
| Event | Handler |
|---|---|
wtf_group:server:tablet:openApp | Notifies registered app handlers |
wtf_group:server:tablet:closeApp | Notifies registered app handlers |
wtf_group:server:tablet:sendMessage | Routes message to registered app |
wtf_group:server:tablet:broadcastMessage | Broadcasts to all clients |
wtf_group:server:tablet:syncApps | Sends registered apps to client |
wtf_group:server:tablet:loadSettings | Loads settings from DB |
wtf_group:server:tablet:saveSettings | Saves settings to DB |
wtf_group:server:tablet:loadInstalledApps | Loads installed apps from DB |
wtf_group:server:tablet:saveInstalledApps | Saves installed apps to DB |
wtf_group:server:tablet:setAppData | Saves app data to DB |
wtf_group:server:tablet:getAppData | Loads app data from DB |
wtf_group:server:tablet:getAllAppData | Loads all data for an app |
wtf_group:server:tablet:deleteAppData | Deletes app data from DB |
NUI Callbacks
| Callback | Description |
|---|---|
tablet:setAppData | Save app data (backward compat) |
tablet:getAppData | Get app data (backward compat) |
tablet:getAllAppData | Get all app data (backward compat) |
Exports
App Registration
lua
exports['wtf_group']:RegisterServerApp({
id = 'my_app',
onMessage = function(src, messageType, data) ... end,
onOpen = function(src) ... end,
onClose = function(src) ... end,
})
exports['wtf_group']:UnregisterServerApp(appId)
exports['wtf_group']:GetRegisteredServerApps() → tableMessaging
lua
exports['wtf_group']:SendToClient(playerSource, appId, messageType, data)
exports['wtf_group']:SendNotification(playerSource, title, message, type, duration)
exports['wtf_group']:SendAppNotification(playerSource, appId, title, message, type, duration)
exports['wtf_group']:BroadcastToAll(appId, messageType, data)App Data
lua
exports['wtf_group']:SetAppData(citizenid, appId, key, value)
exports['wtf_group']:GetAppData(citizenid, appId, key)
exports['wtf_group']:DeleteAppData(citizenid, appId, key)
exports['wtf_group']:GetAllAppData(citizenid, appId)Helper
lua
GetPlayerCitizenId(src) → citizenid
-- Auto-detects framework (QBX > QBCore > ESX > fallback to tostring(src))