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
| Convar | Varsayılan | Açıklama |
|---|---|---|
livebase_locale | tr | Dil (tr / en) |
livebase_debug | false | Debug modu |
livebase_dashboard_token | — | Dashboard API auth token |
livebase_dashboard_port | 30121 | Dashboard HTTP portu |
livebase_admin_token | — | Admin panel HTTP token |
livebase_log_level | warn | Log seviyesi |
Config dosyaları
| Dosya | İçerik |
|---|---|
config/main.lua | Debug, locale, spawn, güvenlik |
config/modules.lua | Opt-in modül açma/kapama |
config/admin.lua | Admin panel domain'leri |
config/permissions.lua | ACE rolleri ve yetkiler |
config/economy.lua | Ekonomi kategorileri |
config/skilltree.lua | Yetenek ağacı XP eğrileri |
data/skilltree.lua | 5 dal + skill tanımları |
data/jobs.lua | Meslek tanımları |
data/items.lua | Item tanımları |
Modüller (opt-in)
config/modules.lua dosyasından yönetilir:
| Modül | Varsayılan | Açıklama |
|---|---|---|
core | ✅ Zorunlu | Player, callback, cache |
economy | ✅ | Dinamik ekonomi çarpanları |
vehicle_dna | ✅ | Araç aşınma + 2. el fiyat |
queue | ✅ | Bağlantı kuyruğu |
dashboard | ✅ | HTTP player dashboard |
hot_reload | ✅ | fw reload |
migrate | ✅ | fw migrate |
permissions | ✅ | Merkezi HasPermission API |
admin | ✅ | Admin panel altyapısı |
skilltree | ✅ | Yetenek ağacı çekirdeği |
devtools | ❌ | Wipe, simulate, log viewer |
radial | ❌ | Harici radial menü yoksa atla |
Modül kapatma:
Config.Modules.economy = false
Config.Modules.vehicle_dna = falsePermission 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.Grantsif 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.
| Komut | Açıklama |
|---|---|
fw reload <alias> | Resource hot reload |
fw reloadlist | Alias 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
| Komut | Açıklama |
|---|---|
fw migrate | Bekleyen migration'ları uygula |
fw migratestatus | Durum listesi |
| ID | Dosya | Açıklama |
|---|---|---|
001_livebase_foundation | sql/migrations/001_... | Çekirdek tablolar |
002_admin_foundation | sql/migrations/002_... | Admin panel tabloları |
exports['liveBase']:RunMigrations()
exports['liveBase']:GetMigrationStatus()API — Exports (tam liste)
local liveBase = exports['liveBase']:GetBaseObject()| Export | Taraf | Açıklama |
|---|---|---|
GetBaseObject() | Her iki | Framework nesnesi |
SetPlayerSessionAccount(source, account) | Server | Mail login session |
AddJob / AddItem / AddGang | Server | Runtime tanım |
ExploitBan(source, reason) | Server | Ban + log |
GetEconomyMultiplier(cat) | Server | Ekonomi çarpanı |
CalculateEconomyPrice(cat, base) | Server | Dinamik fiyat |
GetVehicleDna(plate) | Server | Araç DNA |
GetDashboardSnapshot() | Server | Web dashboard |
GetAdminManifest() | Server | Admin domain listesi |
HotReload(alias) | Server | Hot reload |
RunMigrations() | Server | SQL migration |
HasPermission(source, perm) | Server | Yetki kontrolü |
GetSkillTreeSnapshot(source) | Server | Yetenek ağacı |
TryUpgradeSkill(source, skillId) | Server | Skill yükselt |
Notify(text, type, length) | Client | Bildirim |
Progress(...) | Client | Progress bar |
RegisterInteraction(id, opts) | Client | E 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.
| Domain | Açıklama |
|---|---|
players | Profil, disiplin, spectate |
economy | Isı haritası, enflasyon |
organizations | Personel, sözleşme |
audit | Denetim, timeline, export |
telemetry | Kaynak metrikleri |
ops | Bilet, 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
| Dal | ID | Skill sayısı |
|---|---|---|
| Physical | physical | 9 |
| Driving | driving | 9 |
| Professions | professions | 9 |
| Business | business | 7 |
| Criminal | criminal | 8 |
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ı
| Komut | Açıklama |
|---|---|
/lb_devwipe <citizenid> | Test karakter sil |
/lb_analyze | Canlı framework analizi |
/lb_eco | Ekonomi çarpanları |
fw reload <alias> | Hot reload |
fw migrate | SQL migration |
Güvenlik
- Client'a güvenme — para, item, yetki sadece sunucuda
- Session mail — sadece
SetPlayerSessionAccountexport - Rate limit — event başına max istek
- Exploit ban — tekrarlayan ihlalde otomatik ban
add_ace livebase.god god allow
add_ace livebase.admin admin allow
add_ace livebase.mod mod allowYeni 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)