</>liveDevDocs
ScriptlerliveBase

liveBase Çekirdek

Framework çekirdeği — convars, modüller, permission, hot reload, migration, admin panel, skill tree, exports ve events.

🌐 English · liveBase Core

Yol: resources/[livedev]/liveBase/ · Sürüm: 1.0.0
Sağlar: live-base, qb-core (QBCore uyumluluk shim) · Bağımlılık: oxmysql

Detaylı Permission / State API için → liveBase API System


Convars

ConvarVarsayılanAçıklama
livebase_localetrDil (tr / en)
livebase_debugfalseDebug modu
livebase_dashboard_tokenDashboard API auth token
livebase_dashboard_port30121Dashboard HTTP portu
livebase_admin_tokenAdmin panel HTTP token
livebase_log_levelwarnLog seviyesi

Config dosyaları

Dosyaİçerik
config/main.luaDebug, locale, spawn, güvenlik
config/modules.luaOpt-in modül açma/kapama
config/admin.luaAdmin panel domain'leri
config/permissions.luaACE rolleri ve yetkiler
config/economy.luaEkonomi kategorileri
config/skilltree.luaYetenek ağacı XP eğrileri
data/skilltree.lua5 dal + skill tanımları
data/jobs.luaMeslek tanımları
data/items.luaItem tanımları

Modüller (opt-in)

config/modules.lua dosyasından yönetilir:

ModülVarsayılanAçıklama
core✅ ZorunluPlayer, callback, cache
economyDinamik ekonomi çarpanları
vehicle_dnaAraç aşınma + 2. el fiyat
queueBağlantı kuyruğu
dashboardHTTP player dashboard
hot_reloadfw reload
migratefw migrate
permissionsMerkezi HasPermission API
adminAdmin panel altyapısı
skilltreeYetenek ağacı çekirdeği
devtoolsWipe, simulate, log viewer
radialHarici radial menü yoksa atla

Modül kapatma:

Config.Modules.economy = false
Config.Modules.vehicle_dna = false

Permission API

Modül: permissions · Config: Config.Permissions · Köprü: shared/permission_bridge.lua

Framework.HasPermission(source, 'admin.giveitem')
  → konsol bypass → god bypass → ACE → Config.Permissions.Grants
if not LiveRequirePermission(source, 'admin.giveitem', QBCore.Functions.Notify) then return end
exports['liveBase']:HasPermission(source, 'admin.weather')

Hot Reload Sistemi

Sunucuyu restart atmadan tek resource yenileme.

KomutAçıklama
fw reload <alias>Resource hot reload
fw reloadlistAlias listesi

Korunan kaynaklar: liveBase, liveFirstScreen, liveLoading, oxmysql, liveNuiCore vb.

exports['liveBase']:HotReload('inventory')
AddEventHandler('liveBase:server:afterHotReload', function(resource, source, ok, err) end)

Migration Sistemi

KomutAçıklama
fw migrateBekleyen migration'ları uygula
fw migratestatusDurum listesi
IDDosyaAçıklama
001_livebase_foundationsql/migrations/001_...Çekirdek tablolar
002_admin_foundationsql/migrations/002_...Admin panel tabloları
exports['liveBase']:RunMigrations()
exports['liveBase']:GetMigrationStatus()

API — Exports (tam liste)

local liveBase = exports['liveBase']:GetBaseObject()
ExportTarafAçıklama
GetBaseObject()Her ikiFramework nesnesi
SetPlayerSessionAccount(source, account)ServerMail login session
AddJob / AddItem / AddGangServerRuntime tanım
ExploitBan(source, reason)ServerBan + log
GetEconomyMultiplier(cat)ServerEkonomi çarpanı
CalculateEconomyPrice(cat, base)ServerDinamik fiyat
GetVehicleDna(plate)ServerAraç DNA
GetDashboardSnapshot()ServerWeb dashboard
GetAdminManifest()ServerAdmin domain listesi
HotReload(alias)ServerHot reload
RunMigrations()ServerSQL migration
HasPermission(source, perm)ServerYetki kontrolü
GetSkillTreeSnapshot(source)ServerYetenek ağacı
TryUpgradeSkill(source, skillId)ServerSkill yükselt
Notify(text, type, length)ClientBildirim
Progress(...)ClientProgress bar
RegisterInteraction(id, opts)ClientE tuşu etkileşim

Player Object

local Player = liveBase.Functions.GetPlayer(source)

Player.Functions.AddMoney('bank', 500, 'reason')
Player.Functions.SetJob('police', 2)
Player.Functions.SetMetaData('stress', 10)
Player.Functions.Save()

-- Skill tree (modül açıksa)
Player.Functions.GetSkillLevel('lockpicking')
Player.Functions.TryUpgradeSkill('mining')

Player Login/Logout

liveBase.Player.Login(source, citizenid, nil)
liveBase.Player.Login(source, nil, newCharacterData)
liveBase.Player.Logout(source)
liveBase.Player.DeleteCharacter(source, citizenid)

Events

Sunucu → Client: liveBase:Client:OnPlayerLoaded, OnPlayerUnload, Notify, MoneyChange, SkillTree:Updated

Engellenen (güvenlik): liveBase:Server:AddItem, RemoveItem, UseItem → log yazar


Ekonomi & Vehicle DNA

exports['liveBase']:RecordEconomyActivity('fishing', 5)
local payout = exports['liveBase']:CalculateEconomyPrice('fishing', 150)

exports['liveBase']:ApplyVehicleWear(plate, 'engine', 0.5)
local price = exports['liveBase']:GetVehicleMarketPrice(plate)

Dashboard API

GET /api/livebase/health
GET /api/livebase/players
Authorization: Bearer <livebase_dashboard_token>

Admin Panel Altyapısı

Durum: Temel altyapı (v1) — UI ayrı resource ile geliştirilecek.

DomainAçıklama
playersProfil, disiplin, spectate
economyIsı haritası, enflasyon
organizationsPersonel, sözleşme
auditDenetim, timeline, export
telemetryKaynak metrikleri
opsBilet, duyuru, RP senaryo

HTTP: GET /api/livebase/admin/health, /players, /economy, /audit vb.

Granüler yetkiler: admin.panel, admin.panel.players, admin.spectate, admin.panel.economy, admin.panel.audit


Yetenek Ağacı (Skill Tree)

Modül: skilltree · Depolama: players.metadata.skilltree

DalIDSkill sayısı
Physicalphysical9
Drivingdriving9
Professionsprofessions9
Businessbusiness7
Criminalcriminal8
exports['liveBase']:AddSkillActivityXp(source, 'mining', 20, 'mining:ore')
local ok, reason = exports['liveBase']:CanUseSkill(src, 'hacking', 2)
local speedMod = exports['liveBase']:GetSkillModifier(source, 'lockpicking', 'lockpickSpeed', 1.0)

Callbacks: liveBase:Server:SkillTree:GetSnapshot, GetCatalog, UpgradeSkill

UI ayrı resource ile yapılır — çekirdek yalnızca veri + export sağlar.


Admin komutları

KomutAçıklama
/lb_devwipe <citizenid>Test karakter sil
/lb_analyzeCanlı framework analizi
/lb_ecoEkonomi çarpanları
fw reload <alias>Hot reload
fw migrateSQL migration

Güvenlik

  1. Client'a güvenme — para, item, yetki sadece sunucuda
  2. Session mail — sadece SetPlayerSessionAccount export
  3. Rate limit — event başına max istek
  4. Exploit ban — tekrarlayan ihlalde otomatik ban
ACE
add_ace livebase.god god allow
add_ace livebase.admin admin allow
add_ace livebase.mod mod allow

Yeni script yazma

local liveBase = exports['liveBase']:GetBaseObject()

RegisterNetEvent('myjob:server:pay', function(amount)
    local src = source
    local Player = liveBase.Functions.GetPlayer(src)
    if not Player then return end
    amount = tonumber(amount)
    if not amount or amount > 500 then return end
    Player.Functions.AddMoney('bank', amount, 'myjob-pay')
end)

On this page