
SkillsCore
Skills and stats you define yourself, fully configurable in game.

SkillsCore does not ship a fixed list of skills. You create them, name them, choose what earns xp and decide what each level pays out, all from an in game editor.
Stats are folded in rather than sold separately. A level can grant any stat you define, so mining levels can raise damage, luck or anything else you invent, and other plugins can read the result.
Skills, stats, menus, settings and messages are all edited in game, and a built in check command reports anything you have misconfigured before your players find it.
What it does
Installation
- Drop SkillsCore.jar into your server's plugins folder.
- Restart the server. The plugin writes its own configuration on first start.
- Run /skills admin hub in game to set everything up. There is no file editing step.
Optional integrations
All of these are soft dependencies. SkillsCore loads and runs with none of them installed.
| Plugin | What it adds |
|---|---|
| Vault | Reads or provides the server economy, depending on the mode you choose. |
| PlaceholderAPI | Registers the placeholder expansion listed below. |
| ItemsCore | Custom ItemsCore items are understood and displayed properly. |
| LuckPerms | Permission driven limits resolve for offline players too. |
Commands
Generated from the plugin's own command registry at version 1.0.0, so this list cannot drift out of date.
| Usage | Permission | Description |
|---|---|---|
| /skills | none | Skills, stats and leaderboards |
| Usage | Permission | Player only | Description |
|---|---|---|---|
| /skills stats | skillscore.stats | yes | Show everything your levels have earned |
| /skills top <skill> | skillscore.top | yes | Show a skill leaderboard |
| /skills view <player> | skillscore.others | no | Show another player's levels |
| /skills admin [action] [player] [skill] [amount] | skillscore.admin | no | Administration commands |
| Usage | Permission | Description |
|---|---|---|
| /skills admin set <player> <skill> <level> | skillscore.admin.set | Set a skill level |
| /skills admin xp <player> <skill> <amount> | skillscore.admin.xp | Give skill xp |
| /skills admin reset <player> | skillscore.admin.reset | Wipe every skill and granted stat |
| /skills admin stat <player> <stat> <amount> | skillscore.admin.stat | Grant a stat by hand |
| /skills admin hub | skillscore.admin | Open the admin hub |
| /skills admin skills | skillscore.admin.define | Create and edit the skills |
| /skills admin stats | skillscore.admin.define | Create and edit the stats |
| /skills admin menus | skillscore.admin.menus | Edit any menu in game |
| /skills admin settings | skillscore.admin.settings | Edit the settings in game |
| /skills admin messages | skillscore.admin.settings | Edit any player facing message |
| /skills admin check | skillscore.admin | Report anything misconfigured |
| /skills admin reload | skillscore.admin.reload | Reload the configuration |
Requires skillscore.stats
| Usage | Permission | Description |
|---|---|---|
| /stats | skillscore.stats | Everything your levels have earned |
Permissions
everyone is granted to all players, operator only to ops, and nobody must be granted explicitly by a permissions plugin.
| Node | Default | Description |
|---|---|---|
| skillscore.* | operator | Grants every skillscore permission |
| skillscore.admin | operator | Use the admin commands |
| skillscore.admin.define | operator | Create and edit skills and stats in game |
| skillscore.admin.menus | operator | Edit the menus in game |
| skillscore.admin.reload | operator | Reload the configuration |
| skillscore.admin.reset | operator | Reset a player's skills |
| skillscore.admin.set | operator | Set a skill level |
| skillscore.admin.settings | operator | Edit the settings in game |
| skillscore.admin.stat | operator | Grant a stat by hand |
| skillscore.admin.xp | operator | Give skill xp |
| skillscore.open | everyone | Open the skills screen |
| skillscore.others | operator | Look at another player's skills |
| skillscore.stats | everyone | Open the stats screen |
| skillscore.top | everyone | View a skill leaderboard |
Placeholders
Requires PlaceholderAPI. Turn the expansion off with integrations.placeholderapi: false.
Every key below is walked by the plugin's own self test, which fails if one stops resolving, so this list cannot quietly go out of date.
The skill and stat parts of a key are the ids you gave them in the admin editors, not their display names.
Server wide
These need no player, so they work on a lobby board or in a MOTD.
| Placeholder | Example | Notes |
|---|---|---|
| %skillscore_skill_count% | 6 | how many skills are enabled |
| %skillscore_stat_count% | 11 | how many stats are defined |
| %skillscore_total_name% | Skill Level | whatever you renamed the total to |
Per player
| Placeholder | Example | Notes |
|---|---|---|
| %skillscore_total% | 27.5 | the weighted total level |
| %skillscore_level_<skill>% | 9 | current level |
| %skillscore_max_<skill>% | 50 | the level it stops at |
| %skillscore_name_<skill>% | Mining | display name, so a board can use one id throughout |
| %skillscore_xp_<skill>% | 18400 | lifetime xp in that skill |
| %skillscore_progress_<skill>% | 400 | xp earned into the current level |
| %skillscore_needed_<skill>% | 2500 | xp the current level needs, max at the top |
| %skillscore_percent_<skill>% | 16 | progress through the current level, 0 to 100 |
| %skillscore_stat_<stat>% | 12.50 | earned plus granted, capped |
What they return when they cannot answer
An id that does not exist gives an empty string. A player with no data loaded yet leaves the key unresolved, so PlaceholderAPI leaves the text as it is.
needed at the highest level returns max rather than 0, and percent at the highest level returns 100.
A stat prints with the decimals you configured for it, so a stat set to 0 decimals gives 12 and one set to 2 gives 12.50. Sort on lifetime xp rather than a formatted stat.