v1.0.0
IntactRP
Core
Framework do zarządzania graczami dla FiveM — zapisywanie pozycji, ubrań, metadanych (job, grade, group), system postaci i sesji graczy.
👤
Zarządzanie postaciami
Multi-character z DB, tworzenie, usuwanie, wybór postaci
💾
Zapisywanie
Auto-save pozycji, skina, job, accounts co 5 min
⚡
Komendy admina
setjob, setgroup, giveitem, tp, kick, i więcej
🎒
ox_inventory
Full bridge — konta, grupy, licencje, inventory
💡 Wymagania
- oxmysql — baza danych MySQL/MariaDB
- ox_lib — callbacki, UI, utility
- FiveM server build 6116+ z OneSync
Architektura
| Zasób | Opis |
|---|---|
intactrp_core | Główny framework — sesje, zapis, komendy |
intactrp_changerskin | Aplikowanie skina na ped |
intactrp_skinmenu | NUI kreator wyglądu postaci |
intactrp_characters | Wybór i tworzenie postaci |
ox_inventory (bridge) | Integracja ekwipunku z core |
Struktura plików
intactrp_core/
├── fxmanifest.lua
├── shared/
│ ├── config.lua -- Konfiguracja globalna
│ └── util.lua -- Funkcje pomocnicze
├── client/
│ ├── main.lua -- Stan gracza, callbacki
│ └── spawn.lua -- Spawn, modele, freeze
├── server/
│ ├── main.lua -- Sesje, auto-save, exporty
│ ├── player.lua -- Load/Save/SetPlayerData
│ ├── character_loader.lua -- CRUD postaci z DB
│ ├── character_saver.lua -- Zapis pozycji, skina, job
│ └── commands.lua -- Komendy admina
└── sql/
└── schema.sql -- Schemat tabeli usersKolejność startu
⚠️ Ważne
Kolejność
ensure w server.cfg ma znaczenie!ensure oxmysql
ensure ox_lib
ensure intactrp_core
ensure intactrp_changerskin
ensure intactrp_characters
ensure intactrp_skinmenu
ensure ox_inventoryDodaj do server.cfg:
set inventory:framework "intact"Flow gracza
- Gracz łączy się →
playerJoinedtworzy sesję - Wybiera postać →
SelectCharacterładuje dane z DB LoadPlayerwypełnia sesję + triggerujeintactrp:characterLoaded- ox_inventory ładuje ekwipunek na
characterLoaded - Auto-save co 5 min zapisuje pozycję, skina, job, accounts
- Gracz wychodzi →
playerDroppedzapisuje i czyści sesję
Bezpieczeństwo
🛡️ Nigdy nie ufaj klientowi
Wszystkie istotne operacje (walidacja, płatności, distance check) są wykonywane po stronie serwera. Callbacki mają rate-limiting.
- Wszystkie callbacki serwerowe walidują
source - Rate-limiting na create/delete/select character
- Walidacja nazw, slotów, kwot po stronie serwera
- Group hierarchy — nie można nadać grupy wyższej niż własna