Installation
Overview
ML Skills is a live skill tree editor and player progression layer. Server staff build skill trees from inside the game, players walk them, and other resources read XP or trigger perks through 30+ public exports.
Quick Start
- Download from CFX Portal
- Extract to your
resourcesfolder asml_skills - Add to
server.cfg:
1ensure oxmysql
2ensure ox_lib
3ensure ml_bridge
4ensure ml_skillsml_skills must start AFTER ml_bridge, ox_lib and oxmysql.
Database
Tables are created automatically on first start:
ml_skills_players: Per-player category XP, unspent points, unlocked skills, achievement claims
ml_skills_trees: Tree definitions per category, versioned, written by the in-game editor
ml_skills_categories: Category labels, icons and XP curves, written by the categories editor
ml_skills_achievements: Achievement definitions created in the admin panel
The schema includes idempotent migrations for pre-1.0 installs: dedupe of duplicate tree rows, addition of the category UNIQUE constraint, and the idx_category_version covering index used by the tree-version poller. The migrations run inside pcall and skip cleanly on already-healthy schemas.
Item Registration
ML Skills does not register or require any inventory items.
Verify
After starting, the console will print:
1[ml_skills] Tables verified/created
2[ml_skills] Loaded N skill categoriesOpen the UI in-game with /skills or the J key (both configurable through Config.OpenCommand and Config.OpenKey).
- UI does not open: Check the F8 console for resource errors. The keybind defaults to
J; if another resource binds the same key, changeConfig.OpenKeyand/restart ml_skills. - Skills not saving: Confirm
oxmysqlstarted beforeml_skills. Tail the server log for[DB]lines on boot. - Admin panel missing in the UI: The current player needs the permission level set in
Config.AdminPermission.level(default'supervisore'). Either grant it throughml_bridgeor setConfig.AdminPermission.ace = 'ml_skills.admin'and add the matching ACE rule. - **
Bridge.* attempt to call a nil value**,ml_bridgeis loading afterml_skills. Move theensure ml_bridgeline aboveensure ml_skills. - Tree edits revert after a restart: Pre-1.0 schema mismatch left duplicate tree rows. Stop the resource, let the auto-migration run on next start, then verify with
SELECT category, COUNT(*) FROM ml_skills_trees GROUP BY category;(no row should return more than 1).