ModsJava
MultiEco | By Omega Plugins
Java mod listed for Minecraft 1.16–26.x. Downloads from the MC Java Mods app on Android.
⬇ Download on SpigotMultiEco is a powerful multi-currency economy framework for Minecraft servers. Create unlimited custom currencies from simple YAML files — no Java code, no recompiling, no separate plugins for each currency. Just drop a file, reload, and your currency is live with its own commands, permissions, leaderboard, and placeholders.
How It Works
Key Features
Per-Currency Commands (auto-generated for each currency)
Each currency gets its own root command based on the filename:
Command Description Permission
/<currency> View your balance and available subcommands multieco.<currency>.balance
/<currency> balance View your balance multieco.<currency>.balance
/<currency> balance <player> View another player's balance multieco.<currency>.balance.other
/<currency> give <player> <amount> Give currency to a player multieco.<currency>.give
/<currency> take <player> <amount> Take currency from a player multieco.<currency>.take
/<currency> set <player> <amount> Set a player's balance multieco.<currency>.set
/<currency> pay <player> <amount> Pay another player multieco.<currency>.pay
/<currency> top [page] View the leaderboard multieco.<currency>.top
Examples:
Command Description Permission
/multieco View all your balances (players) or help (console) multieco.help
/multieco reload Reload config, messages, and all currencies multieco.reload
/multieco list List all loaded currencies multieco.list
/multieco info <currency> View detailed currency information multieco.info
/multieco create <id> [display-name] Create a new currency in-game multieco.create
/multieco delete <currency> Start currency deletion (requires confirmation) multieco.delete
/multieco delete <currency> confirm Confirm deletion (within 30 seconds) multieco.delete
/multieco help Show help multieco.help
/multieco version Show version info multieco.help
Create examples:
Global Permissions
Permission Default Description
multieco.admin op Full admin access to all MultiEco features
multieco.reload op Reload the plugin
multieco.list op List all loaded currencies
multieco.info op View detailed currency information
multieco.create op Create new currencies in-game
multieco.delete op Delete currencies and their data
multieco.help true View MultiEco help
Dynamic Per-Currency Permissions
Generated automatically for every loaded currency. Replace <currency> with the currency ID (e.g. shards, gems, tokens):
Permission Default Description
multieco.<currency>.balance true View own balance
multieco.<currency>.balance.other op View other players' balances
multieco.<currency>.pay true Pay other players
multieco.<currency>.top true View the leaderboard
multieco.<currency>.give op Give currency to players
multieco.<currency>.take op Take currency from players
multieco.<currency>.set op Set a player's balance
Permission-Based Tax Tiers
Custom permission nodes defined in each currency file — you create them in the YAML:
If a player has multiple tier permissions, the tier with the lowest total tax is automatically selected.
PlaceholderAPI
If PlaceholderAPI is installed, MultiEco automatically registers placeholders for every currency. All placeholders are case-insensitive.
Placeholder Example Description
%multieco_<currency>% %multieco_shards% Raw balance (e.g. 500)
%multieco_<currency>_formatted% %multieco_shards_formatted% Formatted with separators (e.g. 1,500)
%multieco_balance_<currency>% %multieco_balance_shards% Same as above (generic form)
%multieco_balance_<currency>_formatted% %multieco_balance_shards_formatted% Formatted (generic form)
Case-insensitive examples — all of these work:
Configuration
config.yml
Currency File Options
Every currency is a YAML file in the currencys/ folder. The filename (without .yml) becomes the currency ID and command name.
Option Default Description
id (filename) Must match the filename (without .yml)
display-name (id) Name shown in messages
singular (display-name) Used when amount is exactly 1
plural (display-name + "s") Used for all other amounts
symbol (empty) Symbol shown before amounts (e.g. ◆, $, ★)
icon (empty) Bukkit Material name for display (e.g. DIAMOND, EMERALD)
starting-balance 0 Balance given to new players
decimals false Allow decimal amounts (e.g. 500.50)
allow-negative false Allow negative balances
minimum-balance 0 Minimum balance limit
maximum-balance -1 Maximum balance (-1 = unlimited)
payments.enabled true Enable player-to-player payments
payments.tax.enabled false Enable transfer tax
payments.tax.percentage 0 Percentage tax (0-100)
payments.tax.flat 0 Fixed flat fee per transaction
payments.tax.permissions (none) Permission-based tax tier overrides
leaderboard.enabled true Enable /currency top leaderboard
commands.enabled true Enable currency commands
Example Currency File
messages.yml
Every message in the plugin is fully customizable. The file uses & color codes and supports the following placeholders per message: %prefix%, %player%, %amount%, %currency%, %symbol%, %symbol-prefix%, %tax%, %tax-percent%, %tax-flat%, %tier%, %received%, %rank%, %page%, %total%, %id%, %name%, %icon%, %starting%, %decimals%, %negative%, %payments%, %leaderboard%, %cmd%, %version%, %author%, %permission%, %percentage%, %flat%.
Storage
MultiEco supports two storage backends, configurable in config.yml:
YAML (default) Balances are stored in editable YAML files inside plugins/MultiEco/Data/. Each currency gets its own file (e.g. Data/shards.yml), plus a Data/players.yml for the player registry. You can manually edit balances while the server is stopped — changes take effect on next startup or /multieco reload.
SQLite Balances are stored in a SQLite database at plugins/MultiEco/database.db. Zero setup required. SQLite also enables transaction logging for auditing.
Notes:
Command not found after reload? Make sure the YAML file is in plugins/MultiEco/currencys/ and the filename is lowercase (a-z, 0-9, underscores only).
Currency file failed to load? Check the console for the error message — it will identify the exact file and the invalid setting.
Command conflict? If another plugin already uses a command name (e.g. /coins), MultiEco will log a warning. Rename your currency file to avoid the conflict.
Balances disappeared? Removing a YAML file does NOT delete database data. Re-create the file and run /multieco reload — balances will be restored.
How do I switch from YAML to SQLite? Change database.type to sqlite in config.yml and run /multieco reload. Note: existing YAML balances are not automatically migrated — you'll need to manually set them.
How do I delete a currency permanently? Run /multieco delete <currency> and then /multieco delete <currency> confirm within 30 seconds. This deletes all balance data and the YAML file.
Does it work on 1.16? Yes! MultiEco is compiled against the Spigot API and uses api-version: 1.16. It works on any server from 1.16 through the latest version.
Links
How It Works
- Drop a YAML file into plugins/MultiEco/currencys/ (e.g. shards.yml)
- Run /multieco reload
- The command /shards is now live with all subcommands — balance, give, take, set, pay, and top
Key Features
- Unlimited Currencies — Create as many currencies as you want. Each one is a single YAML file.
- Auto-Generated Commands — Every currency gets its own command with balance, give, take, set, pay, and top subcommands. No manual registration.
- Dynamic Permissions — Each currency generates its own permission nodes automatically (e.g. multieco.shards.balance, multieco.shards.give).
- Player-to-Player Payments — Let players send currency to each other with optional transfer taxes.
- Permission-Based Tax Tiers — Set different tax rates for different permission groups (VIP pays less tax, MVP pays even less, staff pays none). The lowest-tax tier a player qualifies for is automatically applied.
- Leaderboards — Built-in top balances leaderboard with pagination for every currency.
- PlaceholderAPI Integration — Case-insensitive placeholders for every currency, automatically.
- Dual Storage Backends — Choose between editable YAML files or SQLite database. Switch anytime in config.
- Balance Cache — Online player balances are cached in memory for fast reads. Cache is flushed to storage on quit and plugin disable.
- Thread-Safe Transactions — Atomic transfers using striped locks with deadlock prevention. If anything fails, neither balance changes.
- BigDecimal Precision — All balances use BigDecimal — no floating-point rounding errors, ever.
- Decimal & Integer Currencies — Support for both whole-number currencies and decimal currencies (e.g. 500.50).
- Negative Balances — Optionally allow negative balances per currency (for credit/debt systems).
- Min/Max Balance Limits — Enforce minimum and maximum balance limits per currency.
- Fully Customizable Messages — Every message is editable in messages.yml with color codes and placeholders.
- Number Formatting — Thousands separators, decimal places, and optional abbreviations (K, M, B, T).
- Developer API — Full Java API with over 20 methods and 6 custom events for other plugins to hook into.
- Create & Delete In-Game — Create new currencies from chat with /multieco create, delete them with a confirmation prompt.
- Transaction Logging — All transactions are logged in SQLite mode for auditing.
- Hot Reload — Reload config, messages, and currencies without restarting. New currencies are detected, removed ones are unloaded, and modified ones are updated — all without touching player balances.
- Singular & Plural Names — Each currency has singular and plural display names (e.g. "1 Shard" vs "5 Shards").
- Custom Symbols — Display a symbol before amounts (e.g. ◆500, $1,000, ★25).
- Icon Support — Set a Bukkit Material icon per currency (shown in /multieco info).
- Wide Version Support — Compatible with Minecraft 1.16 through 1.21+ (Spigot and Paper).
Per-Currency Commands (auto-generated for each currency)
Each currency gets its own root command based on the filename:
Command Description Permission
/<currency> View your balance and available subcommands multieco.<currency>.balance
/<currency> balance View your balance multieco.<currency>.balance
/<currency> balance <player> View another player's balance multieco.<currency>.balance.other
/<currency> give <player> <amount> Give currency to a player multieco.<currency>.give
/<currency> take <player> <amount> Take currency from a player multieco.<currency>.take
/<currency> set <player> <amount> Set a player's balance multieco.<currency>.set
/<currency> pay <player> <amount> Pay another player multieco.<currency>.pay
/<currency> top [page] View the leaderboard multieco.<currency>.top
Examples:
- /shards — View your Shard balance
- /shards pay Steve 500 — Send 500 Shards to Steve
- /shards give Alex 1000 — Give 1000 Shards to Alex (admin)
- /shards top — View the Shard leaderboard
- /gems balance Notch — View Notch's Gem balance (requires .balance.other)
Command Description Permission
/multieco View all your balances (players) or help (console) multieco.help
/multieco reload Reload config, messages, and all currencies multieco.reload
/multieco list List all loaded currencies multieco.list
/multieco info <currency> View detailed currency information multieco.info
/multieco create <id> [display-name] Create a new currency in-game multieco.create
/multieco delete <currency> Start currency deletion (requires confirmation) multieco.delete
/multieco delete <currency> confirm Confirm deletion (within 30 seconds) multieco.delete
/multieco help Show help multieco.help
/multieco version Show version info multieco.help
Create examples:
- /multieco create shards — Creates shards.yml with default settings
- /multieco create gems Gem — Creates gems.yml with display name "Gem"
Global Permissions
Permission Default Description
multieco.admin op Full admin access to all MultiEco features
multieco.reload op Reload the plugin
multieco.list op List all loaded currencies
multieco.info op View detailed currency information
multieco.create op Create new currencies in-game
multieco.delete op Delete currencies and their data
multieco.help true View MultiEco help
Dynamic Per-Currency Permissions
Generated automatically for every loaded currency. Replace <currency> with the currency ID (e.g. shards, gems, tokens):
Permission Default Description
multieco.<currency>.balance true View own balance
multieco.<currency>.balance.other op View other players' balances
multieco.<currency>.pay true Pay other players
multieco.<currency>.top true View the leaderboard
multieco.<currency>.give op Give currency to players
multieco.<currency>.take op Take currency from players
multieco.<currency>.set op Set a player's balance
Permission-Based Tax Tiers
Custom permission nodes defined in each currency file — you create them in the YAML:
Code (YAML):
payments:
tax:
enabled : true
percentage : 5 # default rate for everyone
flat : 1 # default flat fee
permissions:
vip:
permission : "multieco.shards.vip"
percentage : 3 # VIP pays 3% only
mvp:
permission : "multieco.shards.mvp"
percentage : 1
flat : 2 # MVP pays 1% + 2 flat
exempt:
permission : "multieco.shards.exempt"
percentage : 0 # Exempt pays no tax
tax:
enabled : true
percentage : 5 # default rate for everyone
flat : 1 # default flat fee
permissions:
vip:
permission : "multieco.shards.vip"
percentage : 3 # VIP pays 3% only
mvp:
permission : "multieco.shards.mvp"
percentage : 1
flat : 2 # MVP pays 1% + 2 flat
exempt:
permission : "multieco.shards.exempt"
percentage : 0 # Exempt pays no tax
PlaceholderAPI
If PlaceholderAPI is installed, MultiEco automatically registers placeholders for every currency. All placeholders are case-insensitive.
Placeholder Example Description
%multieco_<currency>% %multieco_shards% Raw balance (e.g. 500)
%multieco_<currency>_formatted% %multieco_shards_formatted% Formatted with separators (e.g. 1,500)
%multieco_balance_<currency>% %multieco_balance_shards% Same as above (generic form)
%multieco_balance_<currency>_formatted% %multieco_balance_shards_formatted% Formatted (generic form)
Case-insensitive examples — all of these work:
- %multieco_Credits%
- %multieco_credits%
- %multieco_CREDITS%
- %multieco_Credits_formatted%
- %multieco_Balance_Credits%
Configuration
config.yml
Code (YAML):
# MultiEco Configuration
# Enable debug mode for detailed console output
debug : false
# Storage settings
# type: yaml — balances saved in editable YAML files (Data/ folder, one per currency)
# type: sqlite — balances saved in a SQLite database file
database:
type : yaml
file : database.db
# Data folder for YAML storage (one .yml file per currency + players.yml)
data:
folder : "Data"
# Balance formatting settings
formatting :
# Use abbreviations (K, M, B, T) for large numbers
abbreviations : false
# Number of decimal places to display for decimal currencies
decimal-places : 2
# Thousands separator character
thousands-separator : ","
# Currency files folder
currencies:
folder : "currencys"
# Command settings
commands:
register-dynamically : true
# Balance cache settings
cache:
enabled : true
# Enable debug mode for detailed console output
debug : false
# Storage settings
# type: yaml — balances saved in editable YAML files (Data/ folder, one per currency)
# type: sqlite — balances saved in a SQLite database file
database:
type : yaml
file : database.db
# Data folder for YAML storage (one .yml file per currency + players.yml)
data:
folder : "Data"
# Balance formatting settings
formatting :
# Use abbreviations (K, M, B, T) for large numbers
abbreviations : false
# Number of decimal places to display for decimal currencies
decimal-places : 2
# Thousands separator character
thousands-separator : ","
# Currency files folder
currencies:
folder : "currencys"
# Command settings
commands:
register-dynamically : true
# Balance cache settings
cache:
enabled : true
Every currency is a YAML file in the currencys/ folder. The filename (without .yml) becomes the currency ID and command name.
Option Default Description
id (filename) Must match the filename (without .yml)
display-name (id) Name shown in messages
singular (display-name) Used when amount is exactly 1
plural (display-name + "s") Used for all other amounts
symbol (empty) Symbol shown before amounts (e.g. ◆, $, ★)
icon (empty) Bukkit Material name for display (e.g. DIAMOND, EMERALD)
starting-balance 0 Balance given to new players
decimals false Allow decimal amounts (e.g. 500.50)
allow-negative false Allow negative balances
minimum-balance 0 Minimum balance limit
maximum-balance -1 Maximum balance (-1 = unlimited)
payments.enabled true Enable player-to-player payments
payments.tax.enabled false Enable transfer tax
payments.tax.percentage 0 Percentage tax (0-100)
payments.tax.flat 0 Fixed flat fee per transaction
payments.tax.permissions (none) Permission-based tax tier overrides
leaderboard.enabled true Enable /currency top leaderboard
commands.enabled true Enable currency commands
Example Currency File
Code (YAML):
id
: shards
display-name : "Shards"
singular : "Shard"
plural : "Shards"
symbol : "◆"
icon : DIAMOND
starting-balance : 0
decimals : false
allow-negative : false
minimum-balance : 0
maximum-balance : -1
payments:
enabled : true
tax:
enabled : true
percentage : 5
flat : 1
permissions:
vip:
permission : "multieco.shards.vip"
percentage : 3
mvp:
permission : "multieco.shards.mvp"
percentage : 1
flat : 2
exempt:
permission : "multieco.shards.exempt"
percentage : 0
leaderboard:
enabled : true
commands:
enabled : true
display-name : "Shards"
singular : "Shard"
plural : "Shards"
symbol : "◆"
icon : DIAMOND
starting-balance : 0
decimals : false
allow-negative : false
minimum-balance : 0
maximum-balance : -1
payments:
enabled : true
tax:
enabled : true
percentage : 5
flat : 1
permissions:
vip:
permission : "multieco.shards.vip"
percentage : 3
mvp:
permission : "multieco.shards.mvp"
percentage : 1
flat : 2
exempt:
permission : "multieco.shards.exempt"
percentage : 0
leaderboard:
enabled : true
commands:
enabled : true
Every message in the plugin is fully customizable. The file uses & color codes and supports the following placeholders per message: %prefix%, %player%, %amount%, %currency%, %symbol%, %symbol-prefix%, %tax%, %tax-percent%, %tax-flat%, %tier%, %received%, %rank%, %page%, %total%, %id%, %name%, %icon%, %starting%, %decimals%, %negative%, %payments%, %leaderboard%, %cmd%, %version%, %author%, %permission%, %percentage%, %flat%.
Storage
MultiEco supports two storage backends, configurable in config.yml:
YAML (default) Balances are stored in editable YAML files inside plugins/MultiEco/Data/. Each currency gets its own file (e.g. Data/shards.yml), plus a Data/players.yml for the player registry. You can manually edit balances while the server is stopped — changes take effect on next startup or /multieco reload.
SQLite Balances are stored in a SQLite database at plugins/MultiEco/database.db. Zero setup required. SQLite also enables transaction logging for auditing.
Notes:
- Players are identified by UUID (survives username changes)
- Balances persist across restarts, reloads, and plugin updates
- Removing a currency's YAML file does NOT delete its data — re-adding the file restores all balances
- Use /multieco delete <currency> confirm to permanently delete a currency and its data
- Transaction logging is only available in SQLite mode
- Place MultiEco.jar in your server's plugins/ folder
- Start (or restart) the server
- The plugins/MultiEco/ folder is created automatically with default config, messages, and two example currencies (example.yml and example2.yml)
- (Optional) Install PlaceholderAPI for placeholder support
- Create currencies by adding YAML files to currencys/ and running /multieco reload
- Server: Spigot / Paper 1.16 – 1.26.2
- Java: 17+
- Optional soft depend: PlaceholderAPI
- Works alongside EssentialsX, LuckPerms, ShopGUI+, and other popular plugins
Command not found after reload? Make sure the YAML file is in plugins/MultiEco/currencys/ and the filename is lowercase (a-z, 0-9, underscores only).
Currency file failed to load? Check the console for the error message — it will identify the exact file and the invalid setting.
Command conflict? If another plugin already uses a command name (e.g. /coins), MultiEco will log a warning. Rename your currency file to avoid the conflict.
Balances disappeared? Removing a YAML file does NOT delete database data. Re-create the file and run /multieco reload — balances will be restored.
How do I switch from YAML to SQLite? Change database.type to sqlite in config.yml and run /multieco reload. Note: existing YAML balances are not automatically migrated — you'll need to manually set them.
How do I delete a currency permanently? Run /multieco delete <currency> and then /multieco delete <currency> confirm within 30 seconds. This deletes all balance data and the YAML file.
Does it work on 1.16? Yes! MultiEco is compiled against the Spigot API and uses api-version: 1.16. It works on any server from 1.16 through the latest version.
Links
- Author: Omega Plugins
- Discord: https://discord.gg/KQcCjsGxQP
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.16, 1.17, 1.18
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
MultiEco | By Omega Plugins is a free Minecraft Java mod. Compatible with Minecraft 1.16, 1.17, 1.18, 1.19 and newer. Downloaded 66 times (via Spigot). Download it and open it directly in the game.