❔ FAQ
❔ FAQ
General Questions
Q: How do I open the skill tree menu?
A: You can open the menu in few ways:
- Using the command
/skill(default) - Pressing F7 (default keybind can be changed)
- Using the configured item if enabled
- Triggering the event
devhub_skillTree:client:openSkillTree
Q: How do players earn skill points?
A: Players earn skill points in two ways:
- Every time they level up (default 1 point per level)
- Through admin commands or script exports
Q: How do players earn XP?
A: By default, XP is earned through:
- Running
- Swimming
- Melee combat
- Shooting
- Driving Additional XP sources can be added through exports.
Q: Can I reset my skills?
A: Yes, if enabled in the configuration. The reset can be:
- Free
- Cost money
- Require an item This is configurable in
Config.SkillReset.
Q: In the standard version can I use skills from other DEVHUB scripts ?
A: YES , both version can do it.
Q: In the standard version can I add new skills via config without using generator ?
A: NO , the ability to add your own skill tree via config or generator is only available in the exclusive version.
Q: I want to upgrade the standard to exclusive version, can I get a discount?
A: SURE, Create a ticket on our discord and we will give you a discount code for the exclusive version.
Technical Questions
Q: How do I add a new skill category?
A: New skill categories can only be added in the exclusive version:
- Use the in-game generator
- Create your skill layout
- Copy the generated config
- Add it to your config file
Q: Can I modify skill effects?
A: Yes, there are two ways:
- Change the
effectvalue in the skill configuration - Use the skill generator (exclusive version) to modify effects
Q: How do I integrate skills with other scripts?
A: You can use:
- Event listeners (
devhub_skillTree:client:listener:skillUnlocked) - Exports (
hasUnlockedSkill,getSkillEffect) - Server-side exports for checking skill status
Q: What's the difference between standard and exclusive versions?
A: Exclusive version includes:
- Skill tree generator
- Ability to create custom skill categories
- Live preview of skill tree changes
- More customization options
Q: What does effect do?
A: The effect option allows developers to centralize skill effect values, simplifying long-term script maintenance. By defining effects in one place, you can adjust skill-related attributes more efficiently without needing to modify multiple scripts. However, it is not mandatory to use this feature; it is entirely up to your preference!
Q: Can I block certain skills path when I unlock other skills?
A: Yes, you can use our built-in skill tree generator in the exclusive version to manage skill path blocking:
- Select the skill you want to set as a blocker
- Click on "Block skills after unlock" option
- Select which skills should be blocked after this skill is unlocked
- The selected skills will become unavailable after the player unlocks the blocking skill
This feature is useful for creating mutually exclusive skill paths or preventing certain skill combinations.
Q: Can an item or other action be required for player to unlock skill ?
A: Yes, you can do it using Config.UnlockHandlerForSkills in configs/sh.main.lua
More on that you can find here
You can also use the new Helpers (v3) to simplify item/job/money checks.
Q: What is skill degradation? (v3)
A: An optional per-skill mechanic — players must keep earning XP to maintain unlocked skills. If a player stops earning XP in a category, that category's skills slowly lose "stamina" each cycle (default 1 day). When stamina hits 0 the skill effect is disabled until the player earns enough XP to reactivate it.
Configurable via Config.SkillDegradation and per-skill degradation = {...} blocks. Disable entirely with Config.SkillDegradation = nil.
Q: What is the daily XP limit and how do I disable it? (v3)
A: Config.DailyXpLimit caps how much XP a player can earn per day in each category. By default DefaultLimit = 0 which means unlimited, so the system is effectively off out of the box. To fully disable the system (skip even the reset timer), set Config.DailyXpLimit = nil.
Q: What is the premium currency? (v3)
A: A global secondary currency you can require (or accept) to unlock skills — useful for donor/VIP currencies. Configured via Config.PremiumCurrency with a server-side handler that checks and deducts the currency. Skills opt-in by specifying a premiumCurrency amount via the generator. See the Premium Currency section in the configuration.
Q: How do I switch themes? (v3)
A: Set Config.Theme in configs/sh.main.lua to one of "legacy", "modern", "zombie", or "fantasy" and restart the resource.
Q: How do I open the admin panel? (v3)
A: Open the skill tree menu while logged in as an admin — the admin button appears in the top right. Permission is checked via Core.IsPlayerAdmin(source) from devhub_lib, so make sure your framework's admin detection is configured.
Common Issues
Q: I upgraded from v2 and players only earn 5 XP per action — what happened?
A: The Config.EarnXp format changed in v3. The XP amount moved from a top-level xp = N field into the value of addTo. The old format still runs, but addTo = {['personal'] = true} is no longer a number, so it silently falls back to 5 XP.
Old (v2):
['running'] = { xp = 10, timeout = 10000, addTo = { ['personal'] = true } }New (v3):
['running'] = { timeout = 10000, addTo = { ['personal'] = 10 } }Q: Database error after v3 upgrade — missing column 'data' or 'name'
A: v3 adds two new columns to the dh_skilltree table. Run the SQL migration:
ALTER TABLE `dh_skilltree`
ADD COLUMN IF NOT EXISTS `data` LONGTEXT DEFAULT NULL,
ADD COLUMN IF NOT EXISTS `name` VARCHAR(255) DEFAULT NULL;Q: Skill category from external script like mining is not working?
A: Make sure to:
- Ensure the external script AFTER skill tree in your server.cfg
- If you've restarted skill tree, you must also restart the desired script so skills can be added again
- This is because external skills are registered on script start
Q: Skills aren't saving after server restart
A: Check:
- Database connection
- SQL file installation
- Resource load order (devhub_lib must load first)
Q: When I join server my unlocked skills are not working, or skill tree is not opening?
A: Most likely you haven't configured devhub_lib playerLoaded event. Make sure to properly configure your framework's playerLoaded event in devhub_lib. This is required for the skill tree to initialize properly when a player joins the server.
Q: How do I block certain skills based on jobs?
A: Edit CategoryVisibilityHandler in generator
Performance Questions
Q: Will this impact server performance?
A: The impact is minimal because:
- Skills are loaded only when needed
- Effects are calculated client-side
- Database operations are optimized
- Events are throttled
Q: How many skills can I add?
In v1 and v2 each category supports up to 171 slots (9x19 grid)
In v3 there are no limits
Q: Does it support ESX/QBCore/Custom?
A: Yes, through devhub_lib which provides framework configuration. Configure your framework in devhub_lib settings.
Support
Q: I found a bug, what should I do?
A: Follow these steps:
- Check the documentation
- Update to latest version
- Join Discord support
- Create detailed bug report