</>liveDevDocs
ScriptlerliveBase

liveBase API System

Merkezi Permission API, state manager, exports, hot reload ve script entegrasyonu.

🌐 English · liveBase API System

Merkezi API dokümantasyonu. Tüm livedev scriptleri liveBase Permission API ve export katmanını kullanır.


Permission API

Merkezi yetki sistemi. Scriptler kendi ACE kontrolünü yazmak yerine Framework.HasPermission kullanır.

Nasıl çalışır?

Framework.HasPermission(source, 'admin.giveitem')

  ├─ Konsol (source=0) → her zaman true
  ├─ God rolü → her zaman true
  ├─ ACE: livebase.admin.giveitem → IsPlayerAceAllowed
  └─ Config.Permissions.Grants fallback → rol listesi (god, admin, mod)

ACE prefix: livebase (config/permissions.luaAcePrefix)

Roller: god (100), admin (80), mod (50)

Server kullanımı

-- Doğrudan export
if exports['liveBase']:HasPermission(source, 'admin.ban') then
    -- işlem
end

-- Framework nesnesi
local Framework = exports['liveBase']:GetFramework()
if Framework.HasPermission(source, 'admin.kick') then
    -- işlem
end

-- liveBase içinden
if liveBase.Functions.HasPermission(source, 'admin.givemoney') then
    -- işlem
end

Köprü fonksiyonları

@liveBase/shared/permission_bridge.lua yüklendikten sonra:

-- Server
if LiveHasPermission(source, 'admin.weather') then end

if not LiveRequirePermission(source, 'admin.giveitem', QBCore.Functions.Notify) then
    return
end

-- Client (sunucu doğrulamalı)
LiveRequirePermission('dev.charselect', function()
    TriggerEvent('liveCharacterSelect:client:openCharacterMenu')
end)

LiveRegisterDevCommand('openFirstScreen', 'dev.firstscreen', function()
    openFirstScreenUi()
end)

Permission exports

ExportTarafAçıklama
HasPermission(source, permission)ServerYetki kontrolü
GetFramework()ServerPermission API nesnesi
RegisterPermission(permission, roles)ServerRuntime yetki kaydı
GetPlayerRoles(source)ServerOyuncu rolleri

Framework nesnesi

local Framework = exports['liveBase']:GetFramework()

Framework.HasPermission(source, 'admin.ban')
Framework.Require(source, 'admin.kick')
Framework.RegisterPermission('custom.perm', {'admin'})
Framework.GetRoles(source)
Framework.GetHighestRole(source)

Callback

liveBase.Functions.TriggerCallback('liveBase:Server:CheckPermission', function(allowed)
    if allowed then end
end, 'admin.giveitem')

Tanımlı yetkiler

YetkiRollerAçıklama
admin.bangod, adminOyuncu ban
admin.unbangod, adminBan kaldır
admin.kickgod, admin, modOyuncu at
admin.warngod, admin, modUyarı
admin.mutegod, admin, modSustur
admin.teleportgod, adminTeleport
admin.spectategod, admin, modİzleme
admin.noclipgodNoclip
admin.revivegod, admin, modCanlandır
admin.freezegod, admin, modDondur
admin.givemoneygod, adminPara ver
admin.giveitemgod, adminItem ver
admin.clearinvgod, adminEnvanter temizle
admin.itemmenugod, adminAdmin item menüsü
admin.weathergod, adminHava/zaman komutları
admin.setjobgod, adminMeslek ata
admin.reloadgod, adminItem yenile
admin.hotreloadgod, adminHot reload
admin.ecogod, adminEkonomi durumu
admin.analyzegod, adminCanlı analiz
admin.devwipegod, adminTest karakter sil
dev.toolsgod, adminDev araçları
dev.randomitemsgodRandom item komutu
dev.firstscreengod, adminopenFirstScreen debug
dev.charselectgod, adminopenCharacterMenu debug
dev.spawngod, adminopenLocations debug
dev.testanimgod, admintestAnim debug
dev.testloadinggodtestloading debug
dev.refreshskingod, adminrefreshskin debug
server.closedgodKapalı sunucu bypass
server.whitelistgod, adminWhitelist yönetimi

Permission Bridge (Script Entegrasyonu)

Tüm [livedev] scriptlerine @liveBase/shared/permission_bridge.lua eklendi.

ScriptBridgeAktif yetki kontrolü
liveBase✅ server + clientKomutlar, devtools, hot reload, analyzer
liveInventory✅ servergiveitem, clearinv, itemmenu, randomitems
liveWeatherSync✅ serverHava/zaman komutları
liveFirstScreen✅ server + clientopenFirstScreen
liveCharacterSelect✅ server + clientopenCharacterMenu
liveSpawnLocation✅ server + clientopenLocations, testAnim
liveGameInLoading✅ clienttestloading
liveClothing✅ server + clientrefreshskin
liveTarget✅ clientKöprü hazır
liveMenu✅ clientKöprü hazır
liveAparts✅ server + clientKöprü hazır

Yeni scripte entegrasyon

fxmanifest.lua
server_scripts {
    '@liveBase/shared/permission_bridge.lua',
    'server/main.lua',
}

client_scripts {
    '@liveBase/shared/permission_bridge.lua',
    'client/main.lua',
}
server/main.lua
RegisterNetEvent('myScript:server:adminAction', function()
    local src = source
    if not LiveRequirePermission(src, 'admin.custom', liveBase.Functions.Notify) then return end
end)

Global State Manager

Namespace tabanlı merkezi state. Anahtar formatı: lb:<namespace>:<key>

Modül: config/modules.luastate = true

Server

exports['liveBase']:SetGlobalState('weather', 'mode', 'rain')
local mode = exports['liveBase']:GetGlobalState('weather', 'mode')
exports['liveBase']:SetPlayerState(source, 'gameplay', 'cuffed', true)
ExportAçıklama
SetGlobalState(ns, key, value, replicate?)Global state yaz
GetGlobalState(ns, key)Global state oku
GetGlobalNamespace(ns)Namespace snapshot
SetPlayerState(src, ns, key, value, replicate?)Oyuncu state bag
GetPlayerState(src, ns, key)Oyuncu state oku
GetStateManager()Tam API nesnesi

Client

local mode = exports['liveBase']:GetGlobalState('weather', 'mode')
exports['liveBase']:SetLocalState('ui', 'menuOpen', true)

liveBase.State.OnGlobalChange('weather', 'mode', function(value)
    print('weather:', value)
end)

liveBase Exports (özet)

local liveBase = exports['liveBase']:GetBaseObject()
ExportTarafAçıklama
GetBaseObject() / GetCoreObject()Her ikiFramework nesnesi
GetFramework()ServerPermission API
HasPermission(source, perm)ServerYetki kontrolü
SetPlayerSessionAccount(source, account)ServerMail login session
AddJob / AddItem / AddGangServerRuntime tanım ekle
GetEconomyMultiplier(cat)ServerEkonomi çarpanı
GetVehicleDna(plate)ServerAraç DNA
HotReload(alias)ServerResource hot reload
RunMigrations()ServerSQL migration
GetSkillTreeSnapshot(source)ServerYetenek ağacı
Notify(text, type, length)ClientBildirim
RegisterInteraction(id, opts)ClientE tuşu etkileşim

Tam export listesi için liveBase Çekirdek sayfasına bak.


liveBase Server Functions

liveBase.Functions.GetPlayer(source)
liveBase.Functions.GetPlayerByCitizenId(citizenid)
liveBase.Functions.Notify(source, text, type, length)
liveBase.Functions.HasPermission(source, permission)
liveBase.Functions.CreateCallback(name, fn)
liveBase.Functions.CreateUseableItem(item, cb)
liveBase.Functions.CacheGet(ns, key)
liveBase.Functions.Log(category, payload)

liveBase komutları

KomutYetkiAçıklama
lb_jobuserMeslek bilgisi
lb_setjobadmin.setjobMeslek ata
lb_givemoneyadmin.givemoneyPara ver
lb_ecoadmin.ecoEkonomi durumu
lb_analyzeadmin.analyzeCanlı analiz
lb_devwipeadmin.devwipeTest karakter sil
fw reload <alias>admin.hotreloadHot reload
fw migrateadminSQL migration

Hot Reload API

exports['liveBase']:HotReload('inventory')
exports['liveBase']:HotReloadResource('liveTarget')
exports['liveBase']:GetHotReloadAliases()
AliasResource
inventory / invliveInventory
targetliveTarget
clothingliveClothing
menuliveMenu
weatherliveWeatherSync
apartsliveAparts
interiorliveInterior
spawnliveSpawnLocation
charselectliveCharacterSelect

Hook eventleri: liveBase:server:beforeHotReload, liveBase:server:afterHotReload, liveBase:client:resourceHotReloaded


Script bazlı yetkiler

liveInventory

Komut / OlayYetki
/giveitemadmin.giveitem
/clearinvadmin.clearinv
/itemmenuadmin.itemmenu
/randomitemsdev.randomitems

liveWeatherSync

KomutYetki
/freezetime, /weather, /time, /blackoutadmin.weather

Debug komutları

KomutScriptYetki
openFirstScreenliveFirstScreendev.firstscreen
openCharacterMenuliveCharacterSelectdev.charselect
openLocationsliveSpawnLocationdev.spawn
refreshskinliveClothingdev.refreshskin

ACE yapılandırması

server.cfg
add_ace livebase.god god allow
add_ace livebase.admin admin allow
add_ace livebase.mod mod allow
add_principal identifier.license:XXXXXXXX livebase.god
add_ace identifier.license:ZZZZZZZZ livebase.admin.giveitem allow

Modül kapatma: Config.Modules.permissions = false

On this page