Currencies
0
First released September 15, 2021 · Last updated October 10, 2026
Downloads from this site
136 total
7 latest (v3.2.0)
An expansion for Medieval Factions that allows faction owners to create and mint local currencies.
Requires Medieval Factions
Usage
2
Active servers (30 days)
Last reported in use 4 days ago
18 server starts in the last 30 days
Server starts per day
Versions in use, by share of active servers
3.1.0
100% · 2 servers
Usage reported by trace — how it works. CI and test servers are excluded.
Verified before release
Version 3.2.0 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 GitHubAutomated build of main at 9b278da002160bb1df7f29c908cd3516ef486a69.
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 currencies --experimentalReturn to published releases with /dpm get currencies --stable.
3.2.0
For a server running v3.1.0, this release works the same way. Commands, permissions, stored currency data and config keys are unchanged, and usage reporting sends the same data under the same opt-outs. The only thing you will see is a new details link for usage reporting.
Changes
Usage reporting
- The bundled usage-reporting client is updated from 0.5.0 to 0.6.1. What is reported and how to turn it off are unchanged. The startup notice, the comment in
config.ymland a newly createdplugins/trace/config.ymlnow link to https://danielstephenson.dev/usage-reporting instead of the GitHub page. Existing config files are not rewritten.
Version
v3.1.0 → 3.2.0 — MINOR. Mechanical floor from comparing the two jars: MINOR.
Judgment: I kept the minor floor. The bundled trace client went from 0.5.0 to 0.6.1 and adds public API (TraceClient.installIdFromFile and Builder.installIdFile). The plugin does not use these yet: it still gets its install ID from the server-wide plugins/trace/config.yml, so no data format, command, permission or config meaning changes for a running server. The other changes are a new usage-reporting details link, new unit tests (#248) and documentation (#247), so none of them call for a higher level.
- minor: default config value changed: version 3.1.0 → 3.1.1-SNAPSHOT
<details><summary>Java API changes (informational — nothing depends on this plugin)</summary>
- com.dansplugins.currencies.trace.TraceClient: added public static java.lang.String installIdFromFile(java.io.File);
- com.dansplugins.currencies.trace.TraceClient$Builder: added public com.dansplugins.currencies.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
v3.1.0was loaded by this release across 5 restart cycles with nothing lost (32 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
3.1.0
For a server running v3.0.0, this is a drop-in update. Currency data, commands, permissions and config keys work as before. The main difference is in usage reporting: when it is on, each event now also carries the plugin version and a random server ID. The ID is stored in plugins/trace/config.yml and is used only to count servers. The release also fixes renaming a currency when only its capitalization changes, and adds support for Minecraft 26.3.
Changes
Compatibility
- Minecraft 26.3 is now supported (#241).
Commands
/currency set namecan now change only a currency's capitalization (for exampleGoldtoGOLD). Before, it was refused with "There is already a currency with that name." Renaming to a name used by a different currency is still refused (#237).
Usage reporting
- Every usage event, including command events, now carries the plugin's version, not just the startup event (#234).
- Every usage event now carries a random server ID so servers can be counted instead of raw events. The first time reporting runs with it switched on, a
server-id:line with a comment explaining it is added to the end ofplugins/trace/config.yml. Nothing else in that file is changed, and the ID is shared by every plugin on the server that reports to trace. It identifies no person, account or IP address. Delete the line to get a new ID. If reporting is switched off (in this plugin'sconfig.yml, inplugins/trace/config.yml, or withDO_NOT_TRACK/TRACE_USAGE_REPORTING), no ID is created or written (#239). - The startup message and the comments in
config.ymlnow mention the random server ID (#240).
Version
v3.0.0 → 3.1.0 — MINOR. Mechanical floor from comparing the two jars: MINOR.
Judgment: Usage reporting now adds a random server ID to every event and writes a new server-id: line into plugins/trace/config.yml. That is new data written and sent, so it is minor-level, and the existing opt-outs still stop it completely. /currency set name now accepts a change of capitalization only, which it used to wrongly refuse. Commands, permissions, config keys and currency storage are unchanged. The changed TraceClient builder signature is in a usage-reporting client copied into the plugin, not part of the Currencies API, and the flagged storage-path change in Currencies.kt is only the trace client setup, so nothing justifies major.
- minor: default config value changed: version 3.0.0 → 3.0.1-SNAPSHOT
- minor: storage path changed: src/main/kotlin/com/dansplugins/currencies/Currencies.kt
<details><summary>Java API changes (informational — nothing depends on this plugin)</summary>
- com.dansplugins.currencies.trace.TraceClient: removed/changed public static com.dansplugins.currencies.trace.TraceClient$Builder builder(java.lang.String, java.lang.String);
- com.dansplugins.currencies.trace.TraceClient: added public java.lang.String installId();
- com.dansplugins.currencies.trace.TraceClient: added public static com.dansplugins.currencies.trace.TraceClient$Builder builder(java.lang.String, java.lang.String, java.lang.String);
- com.dansplugins.currencies.trace.TraceClient$Builder: added public com.dansplugins.currencies.trace.TraceClient$Builder installId(java.lang.String);
</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
v3.0.0was loaded by this release across 5 restart cycles with nothing lost (32 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
3.0.0
For a server running v2.1.0 this is a drop-in upgrade. Your database and existing config carry over unchanged, and several command crashes and a shutdown issue with the shared H2 database are fixed. The plugin now sends anonymous usage reports by default: on startup and each time /currency or /coinpurse is used, it sends the plugin name, version and command name. It logs a notice about this on every startup, and you can turn it off. Support for migrating Currencies 1 data has been removed.
Changes
Usage reporting
- The plugin reports a small usage event on startup and each time /currency or /coinpurse is used. Only the plugin name, version and command name are sent, never anything about players, command arguments or the server. Sending happens off the main thread and is dropped silently if the trace server can't be reached (#214).
- A startup log line says whether reporting is on and how to turn it off. You can turn it off per plugin with
usage-reporting.enabled: false, for every participating plugin withenabled: falseinplugins/trace/config.yml(created on first start), or with the environment variablesTRACE_USAGE_REPORTING=offorDO_NOT_TRACK=1(#217). plugins/trace/config.ymlalso accepts an optionaltags:block that is added to every event. For example,ci: "true"on a test server keeps its events out of real-installation figures (#228).
Commands
/currency mintnow rejects an amount of zero or less. Before, such an amount credited power back and lowered the minted total (#229)./currency infono longer fails on Paper 1.20.5 and later. When the item's details can't be read, it shows the plain item name (#230)./currency retireand/currency infonow accept quoted multi-word currency names (#212).- An empty or unbalanced quote (
""or") in a command argument no longer causes "An internal error occurred" (#222). - Creating or renaming a currency now correctly checks whether the new name is already taken (#197).
- The
/currencyusage message now lists therenamesubcommand (#203).
Stability
- The plugin now closes its database connection pool on shutdown and after a failed startup. This stops the H2 database it shares with Medieval Factions from being left unflushed with a
*.trace.dbfile beside it (#220, #221). - For embedded H2 URLs that don't use
AUTO_SERVER=TRUE,DB_CLOSE_ON_EXIT=FALSEis added unless you've already set it. The default URL is left unchanged (#220, #221). - Ponder is now bundled in the plugin instead of being loaded from Medieval Factions, which fixes class-loading failures (#209).
Removed
- The Currencies 1 data migration has been removed (#198).
Upgrade notes
- If your server still has Currencies 1.x data, upgrade to v2.1.0 first and let its migration finish before installing this release. This release will not detect or migrate Currencies 1 files.
- Usage reporting is on by default, including on upgraded servers. The
usage-reportingblock is added to yourconfig.ymlon first start. If you don't want reporting, setusage-reporting.enabled: falsethere or use one of the server-wide switches above.
Version
v2.1.0 → 3.0.0 — MAJOR. Mechanical floor from comparing the two jars: MINOR.
Judgment: The mechanical floor of minor comes from the new usage-reporting config keys and the new classes. #198 removes the Currencies 1 migration, a breaking change the jar comparison only flags as INFO class removals. A server that still has Currencies 1.x data and upgrades straight to this release will no longer get its data backed up and migrated. For servers already on v2.1.0, nothing on disk, no config key's meaning and no permission changes incompatibly. The /currency mint rejection and the argument unquoting are bug fixes. The truncated files are all under src/test and cannot change runtime behaviour.
- 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: version 2.1.0-SNAPSHOT → 3.0.0-SNAPSHOT-8-8-2026
- minor: storage path changed: src/main/kotlin/com/dansplugins/currencies/Currencies.kt
<details><summary>Java API changes (informational — nothing depends on this plugin)</summary>
- public class removed: com.dansplugins.currencies.legacy.CurrenciesLegacyDataMigrator
- public class removed: com.dansplugins.currencies.legacy.LegacyCoinpurse
- public class removed: com.dansplugins.currencies.legacy.LegacyCurrency
- public class added: com.dansplugins.currencies.Currencies$Companion
- public class added: com.dansplugins.currencies.command.ArgsKt
- public class added: com.dansplugins.currencies.trace.TraceClient
- public class added: com.dansplugins.currencies.trace.TraceClient$Builder
- public class added: com.dansplugins.currencies.trace.TraceReportingCommand
- public class added: com.dansplugins.currencies.trace.UsageReportingConfig
- public class added: com.dansplugins.currencies.trace.UsageReportingConfig$Companion
- com.dansplugins.currencies.Currencies: added public static final com.dansplugins.currencies.Currencies$Companion Companion;
- com.dansplugins.currencies.Currencies: added public static final com.dansplugins.factionsystem.shadow.kotlin.text.Regex access$getAUTO_SERVER_ON$cp();
- com.dansplugins.currencies.Currencies: added public void onDisable();
</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, tested by hand. The save-compatibility gate could not run: it boots the current stable (2.1.0) against the latest Medieval Factions first, and 2.1.0 does not enable on Medieval Factions 5.8 or later (#219). The same upgrade was instead run on a real server with a bot player. 2.1.0 on Medieval Factions 5.7.2 created a faction, a currency and 5 minted coins; this release on Medieval Factions 6.1 read all of it back (
Minted: 5, the coins in the player's inventory) and minted more (Minted: 6). There are no storage changes between the two versions. Evidence.
Upgrading: use Medieval Factions 5.8 or later (6.1.0 recommended). A server still on Currencies 1.x data must upgrade through 2.1.0 first: the 1.x migration was removed in this release.
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 Currencies'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
build.gradle:2.1.0→3.0.0-SNAPSHOT-8-8-2026
Opened as https://github.com/Dans-Plugins/Currencies/pull/202.
Drafted by Claude on behalf of Daniel Stephenson.
Highlights
This release introduces major improvements to the project's setup, build process, and plugin functionality. Key updates include:
- Enhanced Docker Setup: A new
post-create.shscript automates server setup, and Docker configurations have been improved. - Gradle Migration: The build script now uses Gradle instead of Maven.
- Improved Medieval Factions Integration: The
Currenciesplugin has been refined for better initialization, logging, and error handling. - New Utility Scripts: Scripts for starting and stopping Docker containers (
up.shanddown.sh) have been added.
Changes
Docker and Environment Setup
- Added
post-create.shto automate server setup, including file copying, EULA acceptance, and startup. - Updated
Dockerfileto install dependencies, build the server, copy plugin jars, and executepost-create.sh. - Modified
compose.ymlto define the Minecraft server service with environment variables and volume mappings.
Build System and Configuration
- Switched build command from Maven to Gradle.
- Introduced
sample.envfor specifying Minecraft version, operator details, and other environment variables.
Plugin Enhancements
- Improved
Currenciesplugin initialization and logging for Medieval Factions integration. - Enhanced
CurrencyListCommandwith an "all" filter and improved command suggestions.
Utility Scripts
- Added
down.shfor stopping Docker containers and removing orphans. - Added
up.shfor starting Docker containers in detached mode with build.
This release ensures a smoother setup process, better plugin integration, and improved maintainability. 🚀
Requirements
- Spigot 1.17.1+
- Medieval Factions 5.0.6+
What's changed?
- #176 #180 Prompt the user to rename the item if the item's name does not match the currency's name
- #177 Fix minting currencies not causing power loss to the minter
- #178 Fix minting currencies not increasing the minted counter
- #183 Fix typo in disallowAnvilUsage config setting
Requirements
Spigot 1.17.1+ Medieval Factions 5.0.0 beta 8+
What's changed
- #173 Fix coinpurse not saving balances when currency was not present in coinpurse
- #174 Fix currency command not showing all subcommands in usage message
Requirements
- Spigot 1.17.1+
- Medieval Factions 5.0.0 beta 7+
What's changed
- Re-written for Medieval Factions 5 compatibility, new data backend, and some re-imagined commands
What's Changed
- Typo Edit/Command Edit by @Rykurock in https://github.com/Dans-Plugins/Currencies/pull/165
New Contributors
- @Rykurock made their first contribution in https://github.com/Dans-Plugins/Currencies/pull/165
Full Changelog: https://github.com/Dans-Plugins/Currencies/compare/1.3.1...1.3.2
What's Changed
- Fixes bug that removes power when out of materials by @thomasjeu in https://github.com/Dans-Plugins/Currencies/pull/161
- Ponder Update & Integration by @dmccoystephenson in https://github.com/Dans-Plugins/Currencies/pull/162
New Contributors
- @thomasjeu made their first contribution in https://github.com/Dans-Plugins/Currencies/pull/161
Full Changelog: https://github.com/Dans-Plugins/Currencies/compare/v1.2...1.3
What's Changed
- Fixes bug that removes power when out of materials by @thomasjeu in https://github.com/Dans-Plugins/Currencies/pull/161
- Ponder Update & Integration by @dmccoystephenson in https://github.com/Dans-Plugins/Currencies/pull/162
New Contributors
- @thomasjeu made their first contribution in https://github.com/Dans-Plugins/Currencies/pull/161
Full Changelog: https://github.com/Dans-Plugins/Currencies/compare/v1.2...1.3-alpha-1
Notes
- This version should work with Medieval Factions v4.5.1.
- This version has been found to work with MF 4.6.4.2 as of 10/7/2022.
Changes in Currencies v1.1
- Fixed the "amount" field of a currency increasing whenever the currency was withdrawn from a coinpurse.
- If a currency has not been minted, it will now be deleted upon retirement.
Changes in Currencies v1.0
- Allowed players to view a list of retired currencies using the /c list retired command.
- When a currency is retired, its faction's online members will be informed.
- Allowed operators to rename currencies using the /c force rename 'currencyName' 'newCurrencyName' command.
- Added an external API for developers to use.
- Fixed the wrong permission being checked for the c info 'currencyName' command.
- Fixed the wrong permission being checked for the /c balance (playerName) command.
Changes in Currencies v0.14.1
- Fixed players being able to rename their faction's currency to a name that was already taken by an active or retired currency.
Changes in Currencies v0.14
- Fixed usage message for the /c config set command showing the wrong command.
- Fixed internal error occuring when attempting to view the contents of a player's coinpurse when they didn't have a coinpurse.
- Fixed currency being lost if more is withdrawn than the player has room for and improved the /c withdraw command in general.
- Added the /c force retire command.
- If the "officersCanMintCurrency" faction flag of a player's faction is enabled, then officers in their faction will be now able to mint currency.
- Fixed players being able to use /c deposit and /c withdraw with negative amounts.
Changes in Currencies v0.13
- Fixed /c retire command not being listed in the output of the help command.
- Added a config option to require players to have the amount of items that they want to mint into currency.
Changes in Currencies v0.12
- Added a config option to prevent currencies from being renamed or being used to repair items with an anvil.
- Fixed some parts of the plugin not working if the "debugMode" config option was set to false.
- Created a Logger class to clean up the code related to debug messages.
Dependency
This version depends on the second beta version of Medieval Factions v4.3, which can be found here.
Utilized on Kingdom: Dark Ages
This was the first version of Currencies that was installed on Kingdom: Dark Ages.
Changes in Currencies v0.11
- Allowed operators to view other players' balances with the /c balance (playerName) command.
- Added the /c retire command.
- When a currency is retired, it will no longer be listed in the output of the /c list command.
- When a faction gets disbanded, its currency will now be retired.
- Prevented players from creating currencies with the same name as active or retired currencies.
- If a currency is retired, this will be shown in the output of the /c info command.
Notes
- In this version, the storage manager has been altered in such a way that save files from previous versions are no longer compatible.
- There is also a possible exploit in this version concerning anvils. #94
Changes in Currencies v0.10
- Implemented an autosave feature.
- Added a config option for whether or not the amount of a currency that has been minted shows up in the output of the /c info command.
- Allowed players to view information about other currencies with the /c info 'currencyName' command.
- Added the /c rename command.
- When a player clicks while holding a currency and it has the wrong name, this will now be corrected.
Changes in Currencies v0.9
- Integrated bStats with the plugin.
- Fixed faction name mismatch alert getting sent to the player every time they clicked while holding a currency item.
- Added the /c desc command, allowing faction owners to set the description of their currency.
- Added the description of a currency to the output of the info command.
Related plugins
Renders Medieval Factions claims on BlueMap's web map. Originally written by Kilz.
Lets a Medieval Factions faction hold elections: members stand as candidates, vote, and follow the count.
Allows players to create fiefs and manage them.
Provides a virtual coinpurse and a physical currency item for simulating an economy.
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.
