HomeJavaModsCoinOp
CoinOp
ModsJava

CoinOp

by APPLEPIE6969 · on Modrinth

A dynamic order-book economy plugin where players trade items at player-driven prices. Features instant buy/sell, lore-based price tooltips, multi-server…

⬇ Download on Modrinth

CoinOp

A dynamic, order-book-based economy plugin for Minecraft servers.

What This Plugin Does

This plugin creates a marketplace where players can trade items with each other. Instead of fixed prices, the market determines prices based on supply and demand - similar to how stock markets or Hypixel's Bazaar works.

Key Features:

Requirements

Before installing, make sure you have:

  1. A Minecraft Server running Paper or Spigot (versions 1.19.x - 1.21.x)
  2. Java 17+ for Minecraft 1.19-1.20, or Java 21+ for Minecraft 1.21+
  3. An economy plugin like EssentialsX, CMI, or PlayerPoints
  4. Vault (will auto-download if missing)

Server Compatibility

CoinOp works with all major Minecraft server software:

Server Status Notes
Paper ✅ Full Primary target - uses Paper API
Spigot ✅ Full Compatible via Spigot API
Bukkit ✅ Full Basic Bukkit API
Purpur ✅ Full Paper fork, 100% compatible
Pufferfish ✅ Full Paper fork, 100% compatible
Airplane ✅ Full Paper fork, 100% compatible
TacoSpigot ✅ Full Paper/Spigot fork, compatible
Akarin ✅ Full Paper fork, compatible

Minecraft Versions:

Installation

  1. Download the JAR file for your Minecraft version from the releases
  2. Put it in your server's plugins folder
  3. Start the server
  4. The plugin will create a plugins/CoinOp/ folder with configuration files
  5. Edit config.yml to customize the plugin
  6. Restart the server or run /coa reload

Configuration Guide

The main configuration file is config.yml located in plugins/CoinOp/. Here's a detailed explanation of each section:

Economy Settings

economy:
  tax-rate: 0.0

Example: If you set 0.05 and a player sells diamonds for $100, they only receive $95.

Order Settings

orders:
  min-amount: 1
  max-amount: 2304
  expiration-minutes: -1

Commodities Configuration

commodities:
  allowed: []
  categories:
    ores:
      - DIAMOND
      - IRON_INGOT
      - GOLD_INGOT
    crops:
      - WHEAT
      - CARROT

Adding a new category:

commodities:
  categories:
    nether:
      - NETHERITE_INGOT
      - QUARTZ
      - GLOWSTONE_DUST

Trade Limits

limits:
  global-daily-limit: 0
  daily-limits:
    DIAMOND: 1000

Why use limits? Prevents players from manipulating the market or laundering money.

Price Bounds

price-bounds:
  enabled: true
  global-min: 0.01
  global-max: 1000000000
  commodities:
    DIAMOND:
      min: 10.0
      max: 10000.0

Why use price bounds? Prevents players from:

Example scenario: You want diamonds to trade between $10 and $10,000:

price-bounds:
  enabled: true
  commodities:
    DIAMOND:
      min: 10.0
      max: 10000.0

Now if someone tries to place a buy order for $5, it will be rejected. If someone tries to sell for $15,000, it will be rejected.

Multi-Server Sync (Redis)

If you run multiple servers and want them to share the same market:

sync:
  enabled: true
  redis:
    host: localhost
    port: 6379
    password: ""
    database: 0

How it works: When a player places an order on Server A, it instantly appears on Server B. Trades are synchronized across all connected servers.

Do I need Redis? Only if you run multiple servers. For a single server, leave enabled: false.

Database Configuration

database:
  type: sqlite
  host: localhost
  port: 3306
  name: CoinOp
  user: root
  password: ""

When to use MySQL: If you run multiple servers and want them to share order history and player data.

Lore Display Settings

lore:
  enabled: true
  update-interval: 20
  show-history: true
  history-points: 5

What players see: When they hover over a diamond in their inventory, they'll see:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CoinOp Market Data
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Buy Price: $50.00 each
Sell Price: $48.50 each
24h Volume: 125,300
Trend: ▲ Up

Anvil Rework Settings

anvil-rework:
  enabled: true
  enchantment-extraction: true
  max-cost: 0
  material-costs:
    NETHERITE_INGOT: 15
    DIAMOND: 10

How it works: Instead of exponential costs (2^n - 1), the anvil uses linear costs based on material rarity. This means you can combine many enchantments without hitting the "Too Expensive!" limit.

Enchantment Extraction: Put an enchanted item in the left slot and a book in the right slot. The enchantments will transfer to the book.

GUI Settings

gui:
  enabled: true
  open-on-command: true
  title: "&6CoinOp &8- &7Market"
  main-menu-size: 54
  sounds:
    open: "BLOCK_CHEST_OPEN"
    click: "UI_BUTTON_CLICK"
  icons:
    ores: "DIAMOND"
    crops: "WHEAT"

Color Codes:

Commands

Player Commands

Command Aliases Description Example
/coinop /co, /market Open the CoinOp menu /coinop
/coinop buy <item> <amount> <price> /coinbuy Place a buy order /coinbuy DIAMOND 100 50
/coinop sell <item> <amount> <price> /coinsell Place a sell order /coinsell DIAMOND 100 50
/coinop instant buy <item> <amount> /coininstant Buy at market price /coininstant buy DIAMOND 64
/coinop instant sell <item> <amount> /coininstant Sell at market price /coininstant sell DIAMOND 64
/coinop orders /coinorders View your active orders /coinorders
/coinop orders cancel <item> <id> - Cancel an order /coinop orders cancel DIAMOND 12345
/coinop price <item> /coinprice Check current prices /coinprice DIAMOND
/coinop history <item> - View recent trades /coinop history DIAMOND

Admin Commands

Command Aliases Description
/coinadmin reload /coa reload Reload configuration
/coinadmin bounds list /coa bounds list List all price bounds
/coinadmin bounds set <item> <min> <max> /coa bounds set Set price bounds
/coinadmin bounds remove <item> /coa bounds remove Remove price bounds
/coinadmin limits list /coa limits list List all trade limits
/coinadmin limits set <item> <limit> /coa limits set Set daily trade limit
/coinadmin stats [item] /coa stats View trading statistics
/coinadmin cleanup /coa cleanup Remove inactive orders
/coinadmin sync status /coa sync status Check Redis connection

Permissions

Permission Description Default
CoinOp.use Basic CoinOp usage Everyone
CoinOp.buy Place buy orders Everyone
CoinOp.sell Place sell orders Everyone
CoinOp.instant Use instant buy/sell Everyone
CoinOp.orders View own orders Everyone
CoinOp.cancel Cancel own orders Everyone
CoinOp.admin Admin commands OPs only
CoinOp.admin.bounds Set price bounds OPs only
CoinOp.admin.limits Set trade limits OPs only
CoinOp.admin.reload Reload config OPs only
CoinOp.admin.sync Manage sync settings OPs only
CoinOp.bypass.limit Bypass trade limits OPs only
CoinOp.bypass.bounds Bypass price bounds OPs only

How Trading Works

Order Book System

The CoinOp uses an order book - the same system used by real stock markets:

  1. Buy Orders (Bids): Players say "I want to buy X items at $Y each"

    • Highest prices are matched first
    • Example: If someone is willing to pay $55 and another $50, the $55 order trades first
  2. Sell Orders (Asks): Players say "I want to sell X items at $Y each"

    • Lowest prices are matched first
    • Example: If someone is selling at $45 and another at $50, the $45 order trades first
  3. Matching: When a buy order's price meets or exceeds a sell order's price, a trade happens at the sell order's price.

Example Trade:

Instant Buy/Sell

For players who want immediate trades:

If no matching orders exist, the trade is rejected.

Troubleshooting

"Vault not found" error

The plugin will auto-download Vault on first run. If it fails:

  1. Download Vault from https://www.spigotmc.org/resources/vault.34315/
  2. Put it in your plugins folder
  3. Restart the server

"No economy plugin found" error

You need an economy plugin. Install one of these:

"Price outside allowed bounds" error

The price is outside the limits set in config.yml. Either:

"Daily trade limit reached" error

The player has traded too much of that item today. Either:

GUI not opening

Check these settings in config.yml:

gui:
  enabled: true
  open-on-command: true

Redis connection failed

  1. Make sure Redis is installed and running
  2. Check the connection details in config.yml
  3. Test with /coa sync status

Building from Source

If you want to modify the plugin:

  1. Install Java 17 or Java 21
  2. Clone or download the source code
  3. Run ./gradlew build (Linux/Mac) or gradlew.bat build (Windows)
  4. Find the JARs in versions/*/build/libs/

Support

License

MIT License with Attribution

Credits

Developer: APPLEPIE6969

Inspired by Hypixel's Bazaar system and the Minecraft community's requests for a dynamic economy plugin.

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more