Skip to main content
Dan's Plugins Community
HomeNewsGuidesLeaderboardAboutRoad MapCommissionsDev PortalAccount
All plugins
SimpleSkills icon

SimpleSkills

0

7 servers
Latest: v2.7.1
429 downloads on GitHub
Tested on Minecraft 1.21
1,654 downloads on SpigotMC

First released November 30, 2021 · Last updated October 13, 2026

Downloads from this site

169 total

4 latest (v2.7.1)

Introduces skills into the game in a systematic, easy to use, expandable way.

progression
DownloadUser guideSourceSpigotMC
A recreated chat panel: every line is the plugin’s real output, captured from commands a bot player ran on a test server.

Usage

3

Active servers (30 days)

Last reported in use 45 minutes ago

42 server starts in the last 30 days

Server starts per day

Versions in use, by share of active servers

  • 2.7.0

    100% · 3 servers

Usage reported by trace — how it works. CI and test servers are excluded.

Usage of every plugin


Verified before release

Version 2.7.1 was started on real servers running Minecraft 1.19.4, 1.21.11, 26.2 and 26.3 before it was published. The jar you download is the exact one that passed. How releases work

Versions

All releases on GitHub
Development build
Pre-release
October 13, 2026· 6 downloads

Automated build of main at 62a65a85ca396e3605902d4c4027e2de66662604.

This is not a release. It is unreleased, unreviewed code that has not been through any release check, and a broken build can stop a server from starting. Do not run it on a server you care about without a backup.

Install it with Dan's Plugin Manager:

/dpm get simpleskills --experimental

Return to published releases with /dpm get simpleskills --stable.

SimpleSkills-2.7.2-SNAPSHOT.jar (542.1 KB)

2.7.1

For a server running v2.7.0, this release changes nothing in how the plugin behaves. Commands, permissions, configuration and stored player data all work exactly as before. The only change is new automated tests that pin down how /ss info currently works, so future changes can't quietly alter it.

Changes

  • Reliability: /ss info with no arguments now has tests for its current behaviour: console senders are refused, a player's existing skill record is shown, a missing record is created first, and an error is reported if the record can't be created (#201).

Version

v2.7.0 → 2.7.1 — PATCH. Mechanical floor from comparing the two jars: PATCH. Judgment: This release only adds unit tests for the existing /ss info command and changes the project version to a snapshot. It changes no runtime behaviour, data format, command, config key, permission or public API. That matches the mechanical evidence, which found no interface or storage difference, so the patch floor stays.

  • no interface or storage difference observed between the jars

Verification

Verified on a real Spigot server before publication; this release carries the exact jar that was verified.

  • boot gate run: booted twice on a fresh Spigot server running Minecraft 1.19.4 (11 assertions passed).
  • boot gate run: booted twice on a fresh Spigot server running Minecraft 1.21.11 (11 assertions passed).
  • boot gate run: booted twice on a fresh Spigot server running Minecraft 26.2 (11 assertions passed).
  • boot gate run: booted twice on a fresh Spigot server running Minecraft 26.3 (11 assertions passed).
  • save-compatibility gate run: data written by v2.7.0 was loaded by this release across two restarts with nothing lost (16 assertions passed).

Install with Dan's Plugin Manager: /dpm get <plugin>. How stable releases are made: Release channels.


drafted by Claude on behalf of Daniel Stephenson

2.7.0

This release is a safe drop-in upgrade for servers on v2.6.0. It adds support for Minecraft 26.3 and gives /ss info a clear reply when a player has no skills yet. It also changes usage reporting: when reporting is on, each event now includes a random server ID, which is stored in plugins/trace/config.yml. Player data, commands and permissions are unchanged.

Changes

Compatibility

  • Adds support for Minecraft 26.3 (#193).

Commands

  • /ss info for a player with no skill progress now says so, instead of the misleading "That skill wasn't found." Players checking themselves are told that skills are learned by doing. Checking another player names that player. The replies use the new NoSkillsYet-Self and NoSkillsYet-Other keys in message.yml (#195).

Usage reporting

  • When usage reporting is on, each event now includes a random server ID so that servers can be counted. It does not identify any person, account or IP address. On first start with reporting on, a server-id: line and a comment explaining it are added to plugins/trace/config.yml. Delete that line to get a new ID. When reporting is off, no ID is created, read or sent. The startup message and the config.yml comments now mention the ID (#192).
  • The usage-reporting details link now points to https://danielstephenson.dev/usage-reporting (#196).

Upgrade notes

  • If you use your own message.yml, add the two new keys from the bundled file, NoSkillsYet-Self and NoSkillsYet-Other, so that /ss info can show its new reply.
  • If you don't want the random server ID sent, turn off usage reporting. Set usage-reporting.enabled: false in this plugin's config.yml, or set enabled: false in plugins/trace/config.yml to turn it off for all plugins. Setting TRACE_USAGE_REPORTING=off or DO_NOT_TRACK=1 for the server process also works.

Version

v2.6.0 → 2.7.0 — MINOR. Mechanical floor from comparing the two jars: MINOR. Judgment: The floor of minor stands. The plugin now writes new data: when usage reporting is on, a random server ID is added to plugins/trace/config.yml and sent with each event. It also adds two message keys, a new reply for /ss info, and Minecraft 26.3 support. No command arguments, permissions, config key meanings or player-record format change in a way that breaks an existing server. One risk can't be checked from this diff: the new reply looks up the NoSkillsYet keys with requireNonNull, so a server whose message.yml lacks them could hit an error unless MessageService fills in the bundled defaults. That is handled with an upgrade note rather than a major bump.

  • minor: storage path changed: src/main/java/dansplugins/simpleskills/playerrecord/PlayerRecord.java

<details><summary>Java API changes (informational — nothing depends on this plugin)</summary>

  • dansplugins.simpleskills.trace.TraceClient: added public java.lang.String installId();
  • dansplugins.simpleskills.trace.TraceClient: added public static java.lang.String installIdFromFile(java.io.File);
  • dansplugins.simpleskills.trace.TraceClient$Builder: added public dansplugins.simpleskills.trace.TraceClient$Builder installId(java.lang.String);
  • dansplugins.simpleskills.trace.TraceClient$Builder: added public dansplugins.simpleskills.trace.TraceClient$Builder installIdFile(java.io.File);

</details>

Verification

Verified on a real Spigot server before publication; this release carries the exact jar that was verified.

  • boot gate run: booted twice on a fresh Spigot server running Minecraft 1.19.4 (11 assertions passed).
  • boot gate run: booted twice on a fresh Spigot server running Minecraft 1.21.11 (11 assertions passed).
  • boot gate run: booted twice on a fresh Spigot server running Minecraft 26.2 (11 assertions passed).
  • boot gate run: booted twice on a fresh Spigot server running Minecraft 26.3 (11 assertions passed).
  • save-compatibility gate run: data written by v2.6.0 was loaded by this release across two restarts with nothing lost (16 assertions passed).

Install with Dan's Plugin Manager: /dpm get <plugin>. How stable releases are made: Release channels.


drafted by Claude on behalf of Daniel Stephenson

2.6.0

For a server running v2.5.0, this is a drop-in upgrade with no data migration and no config changes required. /ss force wipe now saves to disk right away, and online players keep earning experience after a wipe. /ss top now replies properly when a skill's leaderboard is empty. The Strength, Pyromaniac and Monster Hunting rewards now look up potion effects and particles by name, so the same jar works on Minecraft versions from before and after the 1.20.5 renames. Usage reporting can also add server-wide tags to every event, which helps test servers keep their reports apart from real ones.

Changes

Fixes

  • /ss force wipe now saves the cleared records to disk straight away, so a crash before the next autosave can no longer bring the old records back (#179)
  • Players who are online during /ss force wipe now keep gaining experience. Before, they gained none until they rejoined (#179)
  • /ss top <skill> now sends the NoTop message when no one has levels in that skill. Before, it showed an empty leaderboard (#178)

Compatibility

  • The Strength and Nausea potion effects and the coloured dust particle are now looked up by name, trying the current name first and then the older one. Strength, Pyromaniac and Monster Hunting rewards work on 1.19.4 through current releases without depending on the server rewriting old constant names (#181)
  • The supported Minecraft versions are now declared: 1.19.4, 1.21.11 and 26.2 (#181)

Usage reporting

  • The shared plugins/trace/config.yml file now accepts an optional tags: block. Its tags are added to every event that participating plugins on the server report. For example, ci: "true" on a test server keeps its events out of real-installation figures. When an event already has a tag with the same name, the event's own tag wins (#182)
  • Every usage event now includes the plugin version, not only the startup event (#183)

Version

v2.5.0 → 2.6.0 — MINOR. Mechanical floor from comparing the two jars: MINOR. Judgment: Nothing here breaks an existing server. No data format, command arguments, config key meaning or permission default changes. The StorageService package move and the constructor changes are internal wiring and do not change behaviour. The storage-path signal comes from the Java source file moving, not from the on-disk data location. The release adds new behaviour (an optional server-wide tags: block for usage reporting, a version tag on every usage event, and support for renamed constants on Minecraft 1.20.5+) along with bug fixes, so it stays at the minor floor.

  • minor: storage path changed: src/main/java/dansplugins/simpleskills/storage/StorageService.java

<details><summary>Java API changes (informational — nothing depends on this plugin)</summary>

  • public class removed: dansplugins.simpleskills.services.StorageService
  • public class added: dansplugins.simpleskills.storage.StorageService
  • public class added: dansplugins.simpleskills.utils.RenamedConstants
  • dansplugins.simpleskills.commands.ForceCommand: removed/changed public dansplugins.simpleskills.commands.ForceCommand(dansplugins.simpleskills.playerrecord.PlayerRecordRepository, dansplugins.simpleskills.skill.SkillRepository, dansplugins.simpleskills.config.ConfigService);
  • dansplugins.simpleskills.commands.ForceCommand: added public dansplugins.simpleskills.commands.ForceCommand(dansplugins.simpleskills.playerrecord.PlayerRecordRepository, dansplugins.simpleskills.skill.SkillRepository, dansplugins.simpleskills.config.ConfigService, dansplugins.simpleskills.storage.StorageService);
  • dansplugins.simpleskills.listeners.WorldSaveEventListener: removed/changed public dansplugins.simpleskills.listeners.WorldSaveEventListener(dansplugins.simpleskills.services.StorageService, dansplugins.simpleskills.logging.Log);
  • dansplugins.simpleskills.listeners.WorldSaveEventListener: added public dansplugins.simpleskills.listeners.WorldSaveEventListener(dansplugins.simpleskills.storage.StorageService, dansplugins.simpleskills.logging.Log);
  • dansplugins.simpleskills.trace.TraceClient: removed/changed public static dansplugins.simpleskills.trace.TraceClient$Builder builder(java.lang.String, java.lang.String);
  • dansplugins.simpleskills.trace.TraceClient: added public static dansplugins.simpleskills.trace.TraceClient$Builder builder(java.lang.String, java.lang.String, java.lang.String);
  • dansplugins.simpleskills.trace.TraceClient: added public static final java.lang.String VERSION;

</details>

Verification

Verified on a real Spigot server before publication; this release carries the exact jar that was verified.

  • boot gate run: booted twice on a fresh Spigot server running Minecraft 1.19.4 (11 assertions passed).
  • boot gate run: booted twice on a fresh Spigot server running Minecraft 1.21.11 (11 assertions passed).
  • boot gate run: booted twice on a fresh Spigot server running Minecraft 26.2 (11 assertions passed).
  • save-compatibility gate run: data written by v2.5.0 was loaded by this release across two restarts with nothing lost (16 assertions passed).

Install with Dan's Plugin Manager: /dpm get <plugin>. How stable releases are made: Release channels.


drafted by Claude on behalf of Daniel Stephenson

2.5.0

A server on 2.4.1 can drop this jar in without touching its data or commands. Two things will be noticed on the first start: the plugin now sends anonymous usage events (plugin name, version, command names) to the author's trace server unless turned off, and the console will log an "Outdated config.yml" error until config-version is set to 0.2. Beyond that, this release closes a Silk Touch experience-farming exploit, makes Hardiness level from mob and player hits as it always should have, honours the configured experience factor and max level, saves progress whenever the server saves its worlds, and adds a per-skill switch to turn off each skill's benefit while keeping its levelling.

Changes

Skills and gameplay

  • Block-based skills (Mining, Digging, Quarrying, Lumberjack, Farming, Floriculture) no longer grant experience for blocks a player placed, closing the place-and-re-mine exploit with Silk Touch-harvested ores (#146)
  • Hardiness now triggers on damage from mobs, other players, projectiles and blocks such as cactus or magma, not only from environmental damage (#156)
  • The defaultExperienceIncreaseFactor and defaultMaxLevel settings are now actually applied; previously the factor was always 1.2 and /ss info always reported a max level of 100 (#160)
  • Every skill's benefit can be turned off individually with a new <skill>BenefitEnabled key while its experience gain continues; missing keys default to on (#138, #168)

Persistence

  • Player records are saved whenever the server saves a world (/save-all or the server's own autosave), so a crash loses at most the progress since the last world save (#162)

Usage reporting

  • The plugin reports startup and command usage to https://trace.danielstephenson.dev, off the main thread and never blocking a tick. It can be turned off per plugin (usage-reporting.enabled: false in config.yml), server-wide (enabled: false in plugins/trace/config.yml, created on first start), or via the TRACE_USAGE_REPORTING=off / DO_NOT_TRACK=1 environment variables. The console states on every start whether reporting is on (#167, #170)

Fixes

  • Startup on Minecraft 26.x no longer fails during material initialisation (#164)
  • The minimum-version check works again; it previously threw on every startup and could never disable the plugin on an unsupported server (#166)
  • A message.yml from an older release no longer causes skill triggers to fail on keys it is missing; bundled defaults fill the gaps without overwriting customisations (#148)
  • Crafting no longer throws IllegalArgumentException on recipes the server cannot resolve, such as certain merge and repair crafts (#147)
  • Skills no longer retain every event they handle, fixing a steady memory leak on long-running servers (#152)

Upgrade notes

  • Decide whether you want usage reporting. It is on by default. To turn it off for this plugin, set usage-reporting.enabled: false in plugins/SimpleSkills/config.yml (the block is written into an existing config on first start). To turn it off for every plugin that reports to trace, set enabled: false in plugins/trace/config.yml.
  • Set config-version: 0.2 in config.yml to silence the "Outdated config.yml" error. The new *BenefitEnabled keys are optional; add them from the bundled config.yml if you want to toggle a skill's benefit.
  • If you changed defaultExperienceIncreaseFactor from 1.2, be aware that value now takes effect and players' levelling curve will change accordingly.
  • Servers older than Minecraft 1.13 will now have the plugin disabled at startup instead of failing silently later.

Version

2.4.1 → 2.5.0 — MINOR. Mechanical floor from comparing the two jars: MINOR. Judgment: Nothing here changes an existing server's data format, command syntax, permission defaults, or the meaning of an existing config key. The usage-reporting block, the per-skill benefit toggles, the world-save persistence, and the wider Hardiness triggers are new behaviour or new data written, which is minor. The experience-factor fix (#160) does read a key the plugin previously ignored, and the config-version bump will log an 'outdated config.yml' error on upgraded servers, but both are bug fixes to make documented settings work rather than incompatible changes; the removed Triggers enum was unreferenced and is visible to the mechanical check. The pom carries 3.0.0-SNAPSHOT, but the floor rules are about compatibility, so minor stands.

  • minor: default config key added: athleteBenefitEnabled
  • minor: default config key added: boatingBenefitEnabled
  • minor: default config key added: breedingBenefitEnabled
  • minor: default config key added: cardioBenefitEnabled
  • minor: default config key added: craftingBenefitEnabled
  • minor: default config key added: diggingBenefitEnabled
  • minor: default config key added: duelingBenefitEnabled
  • minor: default config key added: enchantingBenefitEnabled
  • minor: default config key added: farmingBenefitEnabled
  • minor: default config key added: fishingBenefitEnabled
  • minor: default config key added: floricultureBenefitEnabled
  • minor: default config key added: glidingBenefitEnabled
  • minor: default config key added: hardinessBenefitEnabled
  • minor: default config key added: lumberjackBenefitEnabled
  • minor: default config key added: miningBenefitEnabled
  • minor: default config key added: monsterHuntingBenefitEnabled
  • minor: default config key added: pyromaniacBenefitEnabled
  • minor: default config key added: quarryingBenefitEnabled
  • minor: default config key added: ridingBenefitEnabled
  • minor: default config key added: strengthBenefitEnabled
  • minor: default config key added: usage-reporting.enabled
  • minor: default config key added: usage-reporting.endpoint
  • minor: default config key added: usage-reporting.key
  • minor: default config value changed: config-version 0.1 → 0.2
  • minor: storage path changed: src/main/java/dansplugins/simpleskills/storage/StorageService.java

<details><summary>Java API changes (informational — nothing depends on this plugin)</summary>

  • public class removed: dansplugins.simpleskills.enums.Triggers
  • public class added: dansplugins.simpleskills.listeners.PlacedBlockListener
  • public class added: dansplugins.simpleskills.listeners.WorldSaveEventListener
  • public class added: dansplugins.simpleskills.trace.TraceClient
  • public class added: dansplugins.simpleskills.trace.TraceClient$Builder
  • dansplugins.simpleskills.config.ConfigService: added public boolean isUsageReportingEnabled();
  • dansplugins.simpleskills.config.ConfigService: added public java.lang.String getUsageReportingEndpoint();
  • dansplugins.simpleskills.config.ConfigService: added public java.lang.String getUsageReportingKey();
  • dansplugins.simpleskills.config.ConfigService: added public void saveUsageReportingDefaultsIfNotPresent();
  • dansplugins.simpleskills.services.StorageService: removed/changed public void save();
  • dansplugins.simpleskills.services.StorageService: added public synchronized void save();
  • dansplugins.simpleskills.skill.abs.AbstractSkill: added protected boolean isBenefitEnabled();
  • dansplugins.simpleskills.skill.abs.AbstractSkill: added public int getMaxLevel();
  • dansplugins.simpleskills.skill.skills.Hardiness: added public void damageByBlockEvent(org.bukkit.event.entity.EntityDamageByBlockEvent);
  • dansplugins.simpleskills.skill.skills.Hardiness: added public void damageByEntityEvent(org.bukkit.event.entity.EntityDamageByEntityEvent);

</details>

Verification

Booted twice on a real Spigot server before publication — boot gate run (10 assertions passed). This release carries the exact jar that was verified.

Install with Dan's Plugin Manager: /dpm get <plugin>. How stable releases are made: Release channels.


drafted by Claude on behalf of Daniel Stephenson

Snapshot release marking SimpleSkills's move to an AI-first development approach.

Day-to-day feature work, grooming, review and maintenance now run through AI agents working directly against this repository, with the maintainers setting direction and approving what lands. The version bump marks that change in how the project is built — it is not a compatibility break. Behaviour, configuration and stored data are unchanged, and existing installations can upgrade in place.

This is a dated snapshot, not a finished release. It follows the precedent set by Medieval Factions' 6.0.0-SNAPSHOT-7-25-2026: the AI-first line has not yet been verified in live operation, and the snapshot designation stays until it has.

Version changes

  • pom.xml: 2.4.1 → 3.0.0-SNAPSHOT-8-8-2026

Opened as https://github.com/Dans-Plugins/SimpleSkills/pull/150.


Drafted by Claude on behalf of Daniel Stephenson.

What's Changed

Full Changelog: https://github.com/Dans-Plugins/SimpleSkills/compare/2.4.0...2.4.1

This release enhances sand digging rewards by adding copper ingot drops, providing additional progression and value for players focused on gathering skills.

What's Changed

  • Add copper ingot drops to sand digging rewards

Full Changelog:
https://github.com/Dans-Plugins/SimpleSkills/compare/2.3.0...2.4.0

What's Changed

New Contributors

Full Changelog: https://github.com/Dans-Plugins/SimpleSkills/compare/2.2.1...2.3.0

What's Changed

Full Changelog: https://github.com/Dans-Plugins/SimpleSkills/compare/2.2.0...2.2.1

Changes

  • Added test container
  • Renamed Logger to Log
  • Expanded logging
  • Records are now created for players upon logging into the server (if they don't have one)

Testing

Skill leveling was verified to work on a 1.21.4 test server.

What's Changed

New Contributors

Full Changelog: https://github.com/Dans-Plugins/SimpleSkills/compare/v2.0...2.1.0

@CallumJohnson has massively improved the project. Thanks to him, the plugin now has:

  • added skills
  • reworked skill creation
  • an event-trigger system for new skills
  • added rewards for each skill
  • tidied up command output

It should be noted that save files from pre-v2.0 are not compatible with this version.

Lots of changes. @CallumJohnson has massively improved the project, and I encourage anyone who is currently using it to update to this version. It should be noted that your server should be shut down when you update and you should delete the SimpleSkills folder while the server is shut down. Please let us know if you run into any problems.

Changes in SimpleSkills v1.3

  • Renamed the wipe command to the force command and made wipe a sub-command.
  • Added the force activate command.
  • Added the force deactivate command.

Changes in v1.2.1

  • Added the config command.
  • Skills will now only be added if they are active.
  • Added deepslate to the associated materials for the quarrying skill.

Changes in SimpleSkills v1.2

  • VoChiDanh expanded support for versions 1.13 - 1.18 using NMS.
  • VoChiDanh made some other improvements.
  • Added some new config options.

Changes in SimpleSkills v1.1

  • Updated Ponder to v0.8
  • Implemented a local config service.
  • Added the Pyromania skill.
  • Added the debugMode config option.
  • Added the defaultMaxLevel config option.
  • Added the defaultBaseExperienceRequirement config option.
  • Added the defaultExperienceIncreaseFactor config option.

Changes in SimpleSkills v1.0.2

  • Players will now only receive experience if the associated event is not cancelled by another plugin.

Changes in SimpleSkills v1.0.1

  • Fixed internal error occurring when attempting to view the top player of a skill that no one has learned.

Changes in SimpleSkills v1.0

  • Enforced the max level when incrementing experience.
  • Added the top command.

Changes in SimpleSkills v0.11

  • Renamed the Double Drop benefit to Resource Extraction.
  • Added the Damage Negation benefit.
  • Added the Damage Reduction benefit.
  • Added the Strength skill.
  • Added the Monster Hunting skill.
  • Added a statistic to the output of the stats command.

Changes in SimpleSkills v0.10

  • Added the Boating skill.
  • Added the Horseback Riding skills
  • Added the Animal Breeding skill.
  • Players can now gain Cardio experience by swimming.
  • It should now be possible to gain Dueling experience.

Something wrong, or something missing?

Bugs go to the plugin's issue tracker, where they can actually be fixed and tracked. Ideas for new behaviour go to the Dev Portal, where the community can upvote them.

v0.15.2
Source CodeReport a BugKnowledge BaseFree Server Hosting

More by Daniel Stephenson → danielstephenson.dev · Play his games in your browser