Gemengine
With this project you can add multiple currencies with Placeholder api support
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
Gemengine
GemEngine – Plugin Description
GemEngine is a Minecraft plugin for Paper servers that provides a flexible multi-economy system. It allows you to manage multiple independent currencies per player, accessible via commands and PlaceholderAPI.
---
⚙️ Requirements
| Plugin | Required? | Purpose | |---|---|---| | PlaceholderAPI | ✅ Required | Provides the `%gemengine_...%` placeholders | | Vault | ❌ Optional | Automatic detection of installed economies (e.g. Essentials) |
---
📂 Files
`config.yml` – Configure Economies
This is where all currencies managed by the plugin are defined.
```yaml economies: gems: name: "Gems" # Display name of the currency allow-pay: true # Can players transfer to each other? coins: name: "Coins" allow-pay: false ```
> Tip: If Vault + Essentials are installed, an entry for the Essentials economy will be generated automatically on server start — no manual setup required.
---
`data.yml` – Player Data
All player balances are stored here. This file is managed automatically and should not be edited manually.
```yaml #Example 550e8400-e29b-41d4-a716-446655440000: gems: 150.0 coins: 320.50 ```
---
💬 Commands
`/gpay <economy> <player> <amount>`
Transfers an amount of a specific currency to another player.
| Argument | Description | |---|---| | `<economy>` | The economy key from config.yml (e.g. `gems`) | | `<player>` | Name of the target player (must be online) | | `<amount>` | The amount to transfer (must be positive) |
Example: ``` /gpay gems Steve 50 ``` > ⚠️ Transfers must be enabled per economy in config.yml via `allow-pay: true`. The sender also needs a sufficient balance.
---
`/gemengine eco <set|add|remove> <economy> <player> <amount>`
Admin command for manually managing player balances.
| Action | Description | |---|---| | `set` | Sets the balance to a specific value | | `add` | Adds an amount to the balance | | `remove` | Deducts an amount from the balance (minimum 0, no negative balance) |
Examples: ``` /gemengine eco set gems Steve 500 /gemengine eco add coins Steve 100 /gemengine eco remove gems Steve 25 ```
---
🔑 Permissions
| Permission | Description | |---|---| | `gemengine.admin` | Access to `/gemengine eco` |
---
📊 Placeholders (PlaceholderAPI)
The placeholder format is: ``` %gemengine_<economy>% ```
The `<economy>` part corresponds to the key defined in `config.yml`.
Examples:
| Placeholder | Returns | |---|---| | `%gemengine_gems%` | The player's balance in the "gems" economy | | `%gemengine_coins%` | The player's balance in the "coins" economy |
> Values are always returned with 2 decimal places, e.g. `150.00`
---
🔗 Vault Integration
If EssentialsX is installed alongside an economy plugin such as EssentialsX, GemEngine will automatically detect it on startup and add a matching entry to `config.yml`.
Example: EssentialsX is installed and uses `Dollars` as its currency.
On the first server start, the following will appear in the console: ``` [GemEngine] Vault Economy 'Essentials Economy' detected! [GemEngine] Entry 'essentials_economy' has been automatically added to config.yml. [GemEngine] Placeholder: %gemengine_essentials_economy% ```
The `config.yml` will then be automatically updated with this entry: ```yaml economies: essentials_economy: name: "Dollars" allow-pay: false ```
> Note: `allow-pay` is intentionally set to `false` to prevent accidental transfers from being enabled. This can be changed manually in `config.yml`. For more help and explanations look in the `config.yml` and `message.yml`.
---
🚀 Installation
1. Drop `GemEngine.jar` into your server's `plugins/` folder 2. Make sure PlaceholderAPI is installed as well 3. Start the server — config files will be created automatically 4. Add your own economies in `plugins/GemEngine/config.yml` 5. Restart the server