Skills That Sync Instantly.
Not Skills That Poll.
rde_skills is a production-grade skill progression system for ox_core: 11 customizable skills with native GTA V stat integration, 5 faction reputations, a prestige layer, achievements, and real-time StateBag sync — benchmarked up to 256 concurrent players.
Overview
RDE Skills provides automatic XP gain through player activities, native GTA V stat integration, faction reputation, an achievement system, and a prestige layer — all statebag-synced in real time, with a cache system cutting database queries by roughly 70%.
player.state.skills) — any resource can read it directly with zero callback roundtrip.
Why this over generic skill scripts
| Feature | Generic Skill Scripts | rde_skills |
|---|---|---|
| Real-time sync | Polling / delayed | StateBag — instant |
| Native GTA integration | None | 6 native stat hooks |
| Faction reputation | None | 5 factions |
| Prestige system | None | Permanent bonuses |
| Triple admin verification | None | ACE + ox_core + Steam |
Quick Start
ensure oxmysql
ensure ox_core
ensure ox_lib
ensure ox_target -- optional
ensure ox_inventory -- optional
ensure rde_skills
Four tables auto-create on first run: rde_player_skills, rde_player_reputation, rde_player_achievements, rde_player_perks. Test with /skills in-game.
Skills System
| Skill | Auto XP Source | Native Stat |
|---|---|---|
| Driving | Driving vehicles | MP0_DRIVING_ABILITY |
| Shooting | Using firearms | MP0_SHOOTING_ABILITY |
| Fitness | Running / sprinting | MP0_STAMINA |
| Flying | Planes / helicopters | MP0_FLYING_ABILITY |
| Stealth | Crouching / sneaking | MP0_STEALTH_ABILITY |
| Hacking / Mechanics / Cooking / Charisma / Fishing | Manual trigger | — |
100 XP = 1 level, max level 100 by default (per-skill adjustable). Perks unlock at levels 25, 50, 75, and 100.
-- Server-side
TriggerEvent('rde_skills:addSkillXP', playerId, 'driving', 10)
Reputation System
| Faction | Effect |
|---|---|
| Police | Wanted level interactions, police cooldowns |
| Gangs | Territory access, black market pricing |
| Medics | Hospital costs, priority treatment |
| Mechanics | Repair costs, upgrade access |
| Civilians | Job availability, general store pricing |
Scale: -1000 to -500 Hostile · -499 to -100 Unfriendly · -99 to 99 Neutral · 100 to 499 Friendly · 500 to 1000 Allied.
Exports & API
| Export | Side | Notes |
|---|---|---|
| getPlayerSkills(source) | Server | All skills for a player |
| getSkillLevel(source, skill) | Server | Specific skill level |
| addSkillXP(source, skill, amt) | Server | Add XP programmatically |
| hasSkillLevel(source, skill, n) | Server | Skill requirement check |
| openSkillsMenu() | Client | Opens the skills menu |
Performance
| Players | RAM | CPU | SQL Queries/min |
|---|---|---|---|
| 32 | ~15 MB | <1% | ~20 |
| 128 | ~52 MB | ~2% | ~65 |
| 256 | ~95 MB | ~3% | ~120 |
Keep Config.CacheEnabled = true — cuts DB queries by roughly 70%.
Common Pitfalls
Skills not syncing to other resources
Reading the statebag before the player has actually loaded returns stale or empty data.
Fix: access via Player(source).state.skills only after ox:playerLoaded fires.
Native GTA stats not applying
Applying native stats before the ped is fully streamed in silently fails.
Fix: confirm Config.NativeSkillsEnabled = true and that the ped is fully loaded before sync fires — check console for native stat errors.
FAQ
Do I need ox_inventory or ox_target?
No — both are optional, used only for item-based skill boosts and interaction menus respectively.
What does prestige actually do?
Resets all skills in exchange for permanent stat bonuses and an elite status marker.
Changelog
Real-time statebag sync, native GTA V stat integration, prestige system, achievement tracking, triple admin verification.
Reputation system, skill perks & milestones, HUD display, EN/DE localization.