SimpleEconomy

by NhanAZ-Plugins

A complete economy plugin with 14 languages, ScoreHud integration, offline player support, and a simple API.

version 1.0.0

9 downloads · 0 stars

Published 17 Mar 2026 from NhanAZ-Plugins/SimpleEconomy at 032047330388bb8fabcd8b0c6b7130576da3a08e, after moderator review.

Plugin description

SimpleEconomy

A production-ready economy plugin for PocketMine-MP, powered by SimpleSQL.

Built for server owners who want a working economy in minutes and developers who want an API that doesn't fight them.


Why another economy plugin?

I know BedrockEconomy exists, and it's a great plugin - recommended on Poggit, actively maintained. So why SimpleEconomy?

Short answer: Different philosophy, different strengths.

| SimpleEconomy | BedrockEconomy
---|---|---
Storage | Hybrid SQL + YAML via SimpleSQL | Pure SQL (libasynql)
API complexity | 4 methods. That's it. | Full async ClosureAPI / fluent builders
Setup | Drop-in, works instantly | Requires understanding async patterns
Offline player data | Built-in (temporary sessions) | Requires manual SQL queries
ScoreHud integration | Built-in | Separate plugin required
Multi-language | 14 languages built-in | 4 languages
Transaction events | Cancellable events for third-party control | Custom event system
Target audience | Small-to-medium servers, non-dev admins | Advanced setups, dev-oriented

Why not PR into BedrockEconomy? BedrockEconomy is architecturally pure-SQL. SimpleEconomy's hybrid SQL-YAML approach (via SimpleSQL) is a fundamentally different storage philosophy - this isn't a feature addition, it's a different way of thinking about player data. Both approaches have merit, but they can't coexist in one codebase without compromise.

TL;DR: BedrockEconomy is powerful and flexible. SimpleEconomy is simple and instant. Choose what fits your server.


Features

  • 6 commands - /money, /pay, /setmoney, /addmoney, /reducemoney, /topmoney
  • Name prefix matching - type /money nh and it finds NhanAZ
  • Offline player support - check and modify balances of players who aren't online
  • Leaderboard - paginated /topmoney with async cache rebuild
  • 14 languages - English, Vietnamese, Korean, Russian, Spanish, Ukrainian, Chinese, Indonesian, Turkish, French, Portuguese, German, Japanese, Italian
  • ScoreHud integration - built-in scoreboard tags, no extra plugin needed
  • Transaction events - other plugins can listen to, or even cancel, economy transactions
  • Currency formatting - $1,000,000 (default) or $1.5M (compact)
  • SQLite & MySQL - switch with one line in config

Installation

From Poggit (recommended)

Download the latest .phar from Poggit CI.

Drop it in your server's plugins/ folder. Done.

From source

  1. Clone this repository
  2. The plugin requires the SimpleSQL and libasynql virions to be injected (handled automatically by Poggit CI)

Commands

CommandDescriptionPermissionDefault
/money [player]Check your balance, or someone else'ssimpleeconomy.command.moneyEveryone
/pay <player> <amount>Send money to another playersimpleeconomy.command.payEveryone
/topmoney [page]View the richest playerssimpleeconomy.command.topmoneyEveryone
/setmoney <player> <amount>Set a player's balancesimpleeconomy.command.setmoneyOP
/addmoney <player> <amount>Add money to a playersimpleeconomy.command.addmoneyOP
/reducemoney <player> <amount>Remove money from a playersimpleeconomy.command.reducemoneyOP

Tip: All commands support name prefix matching. If Steve is online, /pay st 100 works.

Tip: Admin commands (/setmoney, /addmoney, /reducemoney) work on offline players too.


Configuration

After first run, edit plugin_data/SimpleEconomy/config.yml:

# Language (14 supported)
language: "eng"

# Starting balance for new players
default-balance: 1000

# Currency display
currency:
  symbol: "$"
  formatter: "default"  # or "compact" for $1.5K style

# Leaderboard
topmoney-per-page: 10
leaderboard-size: 100

# Database (sqlite or mysql)
database:
  type: sqlite

Supported Languages

CodeLanguage
engEnglish
vieTiếng Việt
kor한국어
rusРусский
spaEspañol
ukrУкраїнська
zho简体中文
indBahasa Indonesia
turTürkçe
fraFrançais
porPortuguês
deuDeutsch
jpn日本語
itaItaliano

All language files are saved to plugin_data/SimpleEconomy/lang/ - you can edit them freely.


ScoreHud Integration

If ScoreHud is installed, SimpleEconomy automatically provides these scoreboard tags:

TagExampleDescription
{simpleeconomy.balance}$1,000Formatted balance
{simpleeconomy.rank}3Leaderboard position
{simpleeconomy.raw}1000Raw balance number

No extra plugins or configuration needed. Just add the tags to your ScoreHud config.


For Developers

Want a full working example? Check out SimpleEconomyExample - a complete plugin demonstrating how to use the SimpleEconomy API with real commands and event listeners.

Quick Start - Using the API

use NhanAZ\SimpleEconomy\Main as SimpleEconomy;

// Get the plugin instance
$eco = SimpleEconomy::getInstance();

// Check balance (online players)
$balance = $eco->getMoney("Steve");  // ?int - null if offline

// Modify balance (online players)
$eco->setMoney("Steve", 5000);    // bool - false if offline or cancelled
$eco->addMoney("Steve", 500);     // bool
$eco->reduceMoney("Steve", 200);  // bool - false if insufficient funds

// Format money using the server's configured style
$display = $eco->formatMoney(1500000);  // "$1,500,000" or "$1.5M"

That's the entire sync API. 4 methods.

Async API - Offline Players

// Works for BOTH online and offline players
$eco->getMoneyAsync("Steve", function(?int $balance): void {
    if ($balance !== null) {
        // Steve has played before, balance is $balance
    } else {
        // Steve has never joined
    }
});

Transaction Events

SimpleEconomy fires events that your plugin can listen to:

TransactionSubmitEvent - fired before a transaction executes. Cancellable.

use NhanAZ\SimpleEconomy\event\TransactionSubmitEvent;
use NhanAZ\SimpleEconomy\event\TransactionEvent;

public function onTransaction(TransactionSubmitEvent $event): void {
    // Block payments over $10,000
    if ($event->type === TransactionEvent::TYPE_PAY && $event->getAmount() > 10000) {
        $event->cancel();
    }
}

TransactionSuccessEvent - fired after a transaction completes. Read-only.

use NhanAZ\SimpleEconomy\event\TransactionSuccessEvent;

public function onSuccess(TransactionSuccessEvent $event): void {
    $this->getLogger()->info("{$event->playerName}: {$event->oldBalance} → {$event->newBalance}");
}

Event Properties

PropertyTypeDescription
$event->playerNamestringThe player involved
$event->oldBalanceintBalance before the transaction
$event->newBalanceintBalance after the transaction
$event->typestring"set", "add", "reduce", or "pay"
$event->getAmount()intAbsolute difference between old and new

Offline Player Data Access

Full description on Poggit

Installing it

Drop the phar into plugins/ and restart the server. If the API version below does not match your server, the plugin will refuse to load, which is the check working as intended.

Installing plugins

Releases

VersionAPIBuilt
1.0.05.0.017 Mar 2026 · 110 KB

SHA-256 of 1.0.0154624fe3661cad207f805edc57c1181a8eac64ddc5fc737fa600f698e4a6f26

Reviewed by a moderator before publishing. Built from NhanAZ-Plugins/SimpleEconomy at 032047330388bb8fabcd8b0c6b7130576da3a08e. Nobody reviews plugin code here: read the source before running it on a server you care about.

Comments

Sign in with GitHub to star this plugin or leave a comment.

No comments yet.