NovaEco - Hytale Economy System Mod
Project Overview
NovaEco is a complete economy system mod for Hytale servers, providing multi-currency management, player transactions, wealth rankings, and more. Built on the Hytale Server Plugin API, using Maven for dependency management, compiled with Java 25+.
Features
π° Multi-Currency System
- Support for multiple currencies (Coins, Gems, etc.)
- Customizable currency name, symbol, and default balance
- Each currency supports independent prefix/suffix symbols
π Player Wallet
- Each player has an independent wallet
- Support for managing multiple currencies simultaneously
- Thread-safe data management (ConcurrentHashMap)
πΈ Player Transactions
- Player-to-player transfer functionality via
/pay - Automatic transaction history recording
- Real-time transaction amount validation
π Wealth Rankings
- View server rich list via
/balancetop - Paginated viewing support
- Sort by specified currency
π§ Administration
- Complete admin command set
- Dynamic currency creation/deletion
- One-click config reload
- Manual data save
πΎ Data Persistence
- Automatic JSON format saving
- Separate storage for currency config and player data
- Auto-save on server shutdown
Quick Start
Commands
Player Commands
| Command | Description | Aliases |
|---|---|---|
/balance [currency] |
Check current balance | bal |
/pay <player> <amount> |
Transfer to player | transfer |
/balancetop [page] |
View wealth ranking | baltop, rich |
/transaction [count] |
View transaction history | tx, history |
Admin Commands
| Command | Description | Aliases |
|---|---|---|
/economy |
Economy management menu | eco |
/economy info |
View economy statistics | - |
/economy reload |
Reload configuration | - |
/economy create <name> <symbol> [default] |
Create new currency | - |
/economy delete <name> |
Delete currency | - |
/economy save |
Save data immediately | - |
/givecoins <player> <amount> |
Give currency to player | gc, addcoins |
/takecoins <player> <amount> |
Take currency from player | tc, removecoins |
/setcoins <player> <amount> |
Set player balance | sc, setcoin |
API Usage
Basic Operations
import cmtn.hytale.mods.nova_eco.economy.api.EconomyAPI;
import java.util.UUID;
// Get player balance
double balance = EconomyAPI.getBalance(playerUUID, "coins");
// Add currency
EconomyAPI.addCurrency(playerUUID, "coins", 100);
// Remove currency
boolean success = EconomyAPI.removeCurrency(playerUUID, "coins", 50);
// Set balance
EconomyAPI.setBalance(playerUUID, "coins", 1000);
Transfer Operations
// Player-to-player transfer
boolean success = EconomyAPI.transfer(fromUUID, toUUID, "coins", 100);
// Check sufficient balance
if (EconomyAPI.hasEnough(playerUUID, "coins", 100)) {
// Execute operation
}
Currency Management
// Check if currency exists
boolean exists = EconomyAPI.currencyExists("gems");
// Get all currencies
List<Currency> currencies = EconomyAPI.getAllCurrencies();
// Format amount
String formatted = EconomyAPI.format("coins", 1234.56);
// Output: "1,234.56 Coins"
Adding New Currency
import cmtn.hytale.mods.nova_eco.economy.NovaEcoEconomy;
import cmtn.hytale.mods.nova_eco.economy.currencies.Currency;
import cmtn.hytale.mods.nova_eco.economy.currencies.CurrencySymbol;
// Create currency
Currency gems = new Currency(
"gems", // Currency name
new CurrencySymbol("π", "", false), // Currency symbol
0.0, // Default balance
true, // Can be deleted
"In-game currency" // Description
);
// Register currency
NovaEcoEconomy.addCurrency(gems);
Configuration
Data Storage Structure
NovaEco/
βββ economy/
βββ currencies.json # Currency configuration
βββ players/
βββ {player_uuid}.json # Player wallet data
currencies.json Example
{
"currencies": [
{
"name": "coins",
"symbol": {
"prefix": "",
"suffix": " Coins",
"useSymbolAsPrefix": false
},
"defaultBalance": 0.0,
"canDelete": false,
"description": "Default coins"
}
]
}
Player Data Example
{
"uuid": "player-uuid-here",
"balances": {
"coins": 1000.0,
"gems": 50.0
},
"transactions": [
{
"type": "RECEIVE",
"currency": "coins",
"amount": 100.0,
"from": "system",
"reason": "New player bonus",
"timestamp": 1704067200000
}
]
}
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contact
- Author: cnlimiter
- Project: https://github.com/Nova-Committee/NovaEco
**Thank you for using NovaEco!**
Made with β€οΈ for the Hytale Community

