Installation

2 min readUpdated 2 weeks ago

Overview

ML Skills is a live skill tree editor and player progression layer. Server staff build skill trees from inside the game, players progress through them, and other resources read XP or trigger perks through exports.

Quick Start

  1. Download from CFX Portal
  2. Extract to your resources folder as ml_skills
  3. Add to server.cfg:
server.cfg
1ensure oxmysql
2ensure ox_lib
3ensure ml_bridge
4ensure ml_skills
Load Order

ml_skills must start AFTER ml_bridge, ox_lib and oxmysql.

Database

Tables are created automatically on first start:

  • ml_skills_players: XP, unspent points, unlocked skills and achievement claims per player and category
  • 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
  • ml_skills_settings: settings saved from the admin panel

Item Registration

No Items Required

ML Skills does not register or require any inventory items.

Verify

Open the UI in game with /skills. Set Config.OpenKey to add a key.

  • UI does not open: check the F8 console for resource errors. If another resource uses the key you set in Config.OpenKey, pick another one.
  • Skills not saving: confirm oxmysql started before ml_skills. With Config.Debug = true, the server log shows [DB] lines on start.
  • Admin panel missing in the UI: the player needs the permission level set in Config.AdminPermission.level (default 'admin'). Grant it through your framework, or set Config.AdminPermission.ace = 'ml_skills.admin' and add the matching ACE rule.
  • Bridge.* attempt to call a nil value: ml_bridge starts after ml_skills. Move ensure ml_bridge above ensure ml_skills.
  • Tree edits revert after a restart: check for duplicate tree rows with SELECT category, COUNT(*) FROM ml_skills_trees GROUP BY category;. Each category should return 1. The script removes duplicates at start.