Documentation

SkillsCore

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

v1.0.01.14 - 26.2Spigot / PaperFolia supportedReleased
SkillsCore overview

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

Define your own skills
No fixed list. Create a skill, give it an id and a display name, set its max level and the curve, all without touching a file.
Stats built in
Stats are part of the plugin, not a second purchase. Levels grant them, caps apply, and each one prints with the decimals you chose.
Xp from what you choose
Pick the sources that feed each skill, so mining, fishing or anything else earns exactly the skill you meant it to.
Weighted total level
A single total level across every skill, weighted how you like, and renameable so it fits your server's language.
Leaderboards per skill
Every skill gets its own leaderboard, in game and through placeholders, sortable on lifetime xp rather than a formatted value.
Tells you what is broken
A check command reports anything misconfigured, and a self test walks every placeholder so the docs can never drift from the code.

Installation

  1. Drop SkillsCore.jar into your server's plugins folder.
  2. Restart the server. The plugin writes its own configuration on first start.
  3. Run /skills admin hub in game to set everything up. There is no file editing step.
iEverything ships in one jar. The shared framework is shaded in, so SkillsCore does not depend on any other Core plugin and any number of them run side by side.

Optional integrations

All of these are soft dependencies. SkillsCore loads and runs with none of them installed.

PluginWhat it adds
VaultReads or provides the server economy, depending on the mode you choose.
PlaceholderAPIRegisters the placeholder expansion listed below.
ItemsCoreCustom ItemsCore items are understood and displayed properly.
LuckPermsPermission 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.

/skillsSkills, stats and leaderboards/skill/sk
Usage
UsagePermissionDescription
/skillsnoneSkills, stats and leaderboards
Subcommands
UsagePermissionPlayer onlyDescription
/skills statsskillscore.statsyesShow everything your levels have earned
/skills top <skill>skillscore.topyesShow a skill leaderboard
/skills view <player>skillscore.othersnoShow another player's levels
/skills admin [action] [player] [skill] [amount]skillscore.adminnoAdministration commands
/skills admin actions
UsagePermissionDescription
/skills admin set <player> <skill> <level>skillscore.admin.setSet a skill level
/skills admin xp <player> <skill> <amount>skillscore.admin.xpGive skill xp
/skills admin reset <player>skillscore.admin.resetWipe every skill and granted stat
/skills admin stat <player> <stat> <amount>skillscore.admin.statGrant a stat by hand
/skills admin hubskillscore.adminOpen the admin hub
/skills admin skillsskillscore.admin.defineCreate and edit the skills
/skills admin statsskillscore.admin.defineCreate and edit the stats
/skills admin menusskillscore.admin.menusEdit any menu in game
/skills admin settingsskillscore.admin.settingsEdit the settings in game
/skills admin messagesskillscore.admin.settingsEdit any player facing message
/skills admin checkskillscore.adminReport anything misconfigured
/skills admin reloadskillscore.admin.reloadReload the configuration
/statsEverything your levels have earned/st

Requires skillscore.stats

Usage
UsagePermissionDescription
/statsskillscore.statsEverything 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.

NodeDefaultDescription
skillscore.*operatorGrants every skillscore permission
skillscore.adminoperatorUse the admin commands
skillscore.admin.defineoperatorCreate and edit skills and stats in game
skillscore.admin.menusoperatorEdit the menus in game
skillscore.admin.reloadoperatorReload the configuration
skillscore.admin.resetoperatorReset a player's skills
skillscore.admin.setoperatorSet a skill level
skillscore.admin.settingsoperatorEdit the settings in game
skillscore.admin.statoperatorGrant a stat by hand
skillscore.admin.xpoperatorGive skill xp
skillscore.openeveryoneOpen the skills screen
skillscore.othersoperatorLook at another player's skills
skillscore.statseveryoneOpen the stats screen
skillscore.topeveryoneView 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.

PlaceholderExampleNotes
%skillscore_skill_count%6how many skills are enabled
%skillscore_stat_count%11how many stats are defined
%skillscore_total_name%Skill Levelwhatever you renamed the total to

Per player

PlaceholderExampleNotes
%skillscore_total%27.5the weighted total level
%skillscore_level_<skill>%9current level
%skillscore_max_<skill>%50the level it stops at
%skillscore_name_<skill>%Miningdisplay name, so a board can use one id throughout
%skillscore_xp_<skill>%18400lifetime xp in that skill
%skillscore_progress_<skill>%400xp earned into the current level
%skillscore_needed_<skill>%2500xp the current level needs, max at the top
%skillscore_percent_<skill>%16progress through the current level, 0 to 100
%skillscore_stat_<stat>%12.50earned 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.