promotional bannermobile promotional banner

NovaEco

NovaEco is a complete economy system mod for Hytale servers

NovaEco - Hytale Economy System Mod

Hytale Java Maven License


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


**Thank you for using NovaEco!** Made with ❀️ for the Hytale Community

The NovaEco Team

profile avatar
  • 75
    Followers
  • 27
    Projects
  • 2.9M
    Downloads