Logo
MINECRAFTBIBLE
Items
Items

All game items

Blocks
Blocks

Building blocks

Mobs
Mobs

Creatures & monsters

Biomes
Biomes

World biomes

Structures
Structures

Generated structures

Recipes
Recipes

Crafting guides

Advancements
Advancements

Achievements

Loot Tables
Loot Tables

Drop rates

Tags
Tags

Item groupings

All Versions
View all data →
Capes
Cape ArchiveNEW

Browse rare Minecon capes, OptiFine capes, and custom capes from players worldwide

Browse

Player Database
Player DatabasePopular

Search any player

Skin Browser
Skin Browser

Browse & download skins

Cape Gallery
Cape GalleryNEW

Minecon & OptiFine capes

Seed Vault
Seed Vault

Curated seeds

Learn

Guides
GuidesNew

Tutorials & tips

Blog
Blog

News & updates

Community

Community Hub
Community HubHub

Posts, discussions & more

All Versions
View community →
Seed Analyzer
Seed Analyzer

World seed analysis

Loot Explorer
Loot Explorer

Drop rates

Crafting Calculator
Crafting Calculator

Material planning

Enchant Calculator
Enchant Calculator

Probability math

Redstone Lab
Redstone Lab

Signal timing

Trading Profit
Trading Profit

Villager ROI

All Versions
View all tools →
Mods
Mods

Browse all mods

Plugins
Plugins

Server plugins

Resource Packs
Resource Packs

Textures & sounds

Shaders
Shaders

Visual enhancements

Datapacks
Datapacks

World logic

Scanner
Mod Intelligence

Scan & analyze any mod

All Versions
View all mods →
Loading...
IntroductionIntroductionVersion HistoryVersion HistoryGuidesGuidesBlog & NewsBlog & News
ItemsItemsBlocksBlocksMobsMobsRecipesRecipesBiomesBiomesStructuresStructuresAdvancementsAdvancementsLoot TablesLoot TablesTagsTags
ModsModsPluginsPluginsResource PacksResource PacksShadersShadersDatapacksDatapacks

MinecraftBible

The Ultimate Wiki

Logo
MINECRAFTBIBLE

The ultimate Minecraft reference. Every item, block, mob, and recipe documented with precision.

Community

  • Skin Browser
  • Cape Gallery
  • Seed Vault
  • Blog
  • Guides

Database

  • Items
  • Blocks
  • Mobs
  • Recipes
  • Biomes
  • Structures

Tools

  • Seed Analyzer
  • Mod Intelligence
  • Crafting Calculator
  • Enchant Calculator

Mods & Packs

  • Mods
  • Plugins
  • Resource Packs
  • Shaders
  • Datapacks

Site & Legal

  • About
  • Authors
  • Editorial Policy
  • Corrections
  • Contact
  • Privacy Policy
  • Terms of Service
  • DMCA
  • Sitemap

© 2026 MinecraftBible. Not affiliated with Mojang or Microsoft.

PrivacyTermsContact
CoinOp
PluginLicenseRef-MIT-License-with-attribution

CoinOp

A dynamic order-book economy plugin where players trade items at player-driven prices. Features instant buy/sell, lore-based price tooltips, multi-server sync, optional GUI, and anvil cost rework.

2.3K
Downloads
1
Followers
3 months ago
Updated
📦
6
Versions
economygame-mechanicsutilitybukkitpaperpurpurspigot
Download Latestv1.21.11-1.0.0-SNAPSHOTView on Modrinth

📖About CoinOp

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:

  • Players can place buy orders ("I want to buy 100 diamonds for $50 each")
  • Players can place sell orders ("I want to sell 100 diamonds for $50 each")
  • When prices match, trades happen automatically
  • Instant buy/sell at current market price
  • Item tooltips show current market prices
  • Works across multiple servers (using Redis)
  • Optional GUI for easier trading
  • Anvil cost rework (no more "Too Expensive!")

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:

  • 1.19.x (1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4)
  • 1.20.x (1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6)
  • 1.21.x (1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, etc.)

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
  • tax-rate: A percentage taken from each trade. Set to 0.0 for no tax, 0.05 for 5% tax. The tax money disappears from the economy (it's not collected by anyone).

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
  • min-amount: Minimum items per order. Default is 1.
  • max-amount: Maximum items per order. Default is 2304 (36 stacks = one double chest). Set to -1 for unlimited.
  • expiration-minutes: How long orders stay active. Default -1 means orders never expire. Set to 1440 for 24 hours, 10080 for 1 week.

Commodities Configuration

commodities:
  allowed: []
  categories:
    ores:
      - DIAMOND
      - IRON_INGOT
      - GOLD_INGOT
    crops:
      - WHEAT
      - CARROT
  • allowed: Leave empty [] to allow all items. Or list specific items like [DIAMOND, IRON_INGOT] to only allow those.
  • categories: Groups items together for the GUI. You can add your own categories.

Adding a new category:

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

Trade Limits

limits:
  global-daily-limit: 0
  daily-limits:
    DIAMOND: 1000
  • global-daily-limit: Maximum total items a player can trade per day. 0 means unlimited.
  • daily-limits: Per-item limits. The example limits players to 1000 diamonds per day.

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
  • enabled: Turn price bounds on/off
  • global-min: Minimum price for any item (default: $0.01)
  • global-max: Maximum price for any item (default: $1 billion)
  • commodities: Set specific limits per item

Why use price bounds? Prevents players from:

  • Selling items for $0.01 to transfer money between accounts
  • Buying items for extreme prices to manipulate the market

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
  • enabled: Turn sync on/off
  • host: Redis server IP address
  • port: Redis port (default 6379)
  • password: Redis password (leave empty if none)
  • database: Redis database number (0-15)

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: ""
  • type: Either sqlite or mysql
    • sqlite: Stores data in a local file. Good for single servers.
    • mysql: Connects to a MySQL server. Good for multi-server setups.
  • host, port, name, user, password: MySQL connection details (ignored if using SQLite)

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
  • enabled: Show market prices in item tooltips
  • update-interval: How often to refresh prices (in ticks, 20 ticks = 1 second)
  • show-history: Show price trend in tooltip
  • history-points: How many price points to show

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
  • enabled: Turn the anvil rework on/off
  • enchantment-extraction: Allow moving enchants to books
  • max-cost: Maximum anvil cost. 0 means unlimited (no "Too Expensive!")
  • material-costs: Base costs for different materials

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"
  • enabled: Turn the GUI on/off
  • open-on-command: Open GUI when player runs /CoinOp without arguments
  • title: GUI title (supports color codes: &6 = gold, &8 = dark gray, &7 = gray)
  • main-menu-size: GUI size (must be multiple of 9, max 54)
  • sounds: Sound effects for different actions
  • icons: Which items represent each category

Color Codes:

  • &0 - Black
  • &1 - Dark Blue
  • &2 - Dark Green
  • &3 - Dark Aqua
  • &4 - Dark Red
  • &5 - Dark Purple
  • &6 - Gold
  • &7 - Gray
  • &8 - Dark Gray
  • &9 - Blue
  • &a - Green
  • &b - Aqua
  • &c - Red
  • &d - Light Purple
  • &e - Yellow
  • &f - White

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:

  • Alice places a buy order: "I want to buy 100 diamonds at $50 each"
  • Bob places a sell order: "I want to sell 50 diamonds at $48 each"
  • Since $50 ≥ $48, they trade: Bob sells 50 diamonds to Alice for $48 each
  • Alice's order now has 50 diamonds remaining at $50 each

Instant Buy/Sell

For players who want immediate trades:

  • Instant Buy: Buys at the lowest available sell price
  • Instant Sell: Sells at the highest available buy price

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:

  • EssentialsX (recommended): https://essentialsx.net/ or https://modrinth.com/plugin/essentialsx
  • CMI: https://www.spigotmc.org/resources/cmi.3742/ or if you want to stay on modrinth SunLight
  • PlayerPoints: https://www.spigotmc.org/resources/playerpoints.1997/ or https://modrinth.com/plugin/playerpoints

"Price outside allowed bounds" error

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

  • Change the price bounds in the config
  • Give the player CoinOp.bypass.bounds permission

"Daily trade limit reached" error

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

  • Wait until tomorrow (limits reset daily)
  • Increase the limit in config.yml
  • Give the player CoinOp.bypass.limit permission

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

  • Report bugs on the issue tracker
  • For questions, ask in the discussion forum

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.

👥 Team & Contributors

APPLEPIE6969
APPLEPIE6969Owner

⚙️ Compatibility

Environment
🖥️ Server-side
Loaders
bukkitpaperpurpurspigot
Minecraft Versions
1.211.21.11.21.21.21.31.21.41.21.51.21.61.21.7+4 more

🔗 Links

Modrinth Page