⚡ X PRIVATE MINES ⚡ - Packet Based Private Mines [1.13-26.2]

VIP Plugins ⚡ X PRIVATE MINES ⚡ - Packet Based Private Mines [1.13-26.2]

Version: 2026.3.0.9
Versions
  1. 1.7
  2. 1.8
  3. 1.9
  4. 1.13
  5. 1.14
  6. 1.15
  7. 1.16
  8. 1.17
  9. 1.18
  10. 1.19
  11. 1.20
  12. 1.20.6
  13. 1.21
  14. 26.1
  15. 26.2


EbaTuNb.png

TEST SERVER
play.drawethree.dev


7IUuRcW.png

Kexirz7.png

Y3psgZx.png

TOjFsqh.png

f3eTyzU.png

jspDwe6.png

O0Su4st.png

VjsWlAl.png

SAdUg5I.png

Rtgk2Bk.png

zLBWtno.png

gEeqlpO.png

4LQ7szE.png

kgZRTF2.gif

NmCkRE0.gif



Packaging includes also sample default schematic already configured by default and ready to go!


YAML:
[/LEFT]
use-minimessage: true
# Enables using of minimessage in titles / texts / messages

enable-debug: false
# Enables extra debug logging (useful for developers)

enable-metrics: false
# Enables bStats plugin metrics (anonymous usage data)

private-mines-world: private_mines
# Name of the world where private mines are placed.

last-x: 0
last-z: 0
# Internal use only. Tracks placement coordinates for the next mine. Do not modify manually!

default-entry-fee: 500000.0
# Default entry fee players must pay to enter another player’s mine.

min-entry-fee: 0.0
max-entry-fee: 1000000.0
# Allowed range for entry fee values.

min-tax: 0.0
max-tax: 30.0
# Allowed tax percentage range players can set for their mines.

default-tax: 10
# Default tax rate applied to mine earnings.

space-between-mines: 250
# Distance in blocks between mines to avoid overlaps.

teleport-on-create: true
# Teleport a player to their mine the moment it is created. Set false to leave them where they are.

default-reset-percentage: 50
# Default percentage of blocks mined before auto-reset.

min-reset-percentage: 30
max-reset-percentage: 90
# Allowed range for configurable reset percentage.

reset-check-interval-seconds: 2
# How frequently (in seconds) to check for auto-reset conditions.

packet-mines: false
# Packet-based (virtual) mines: ore blocks inside the mining region exist only on players'
# clients and in an in-memory store - resets are instant with zero world lag, and remaining-block
# counts are exact. The schematic shell and bedrock walls stay real blocks.
# REQUIRES 'allow-flight=true' in server.properties (players stand on virtual blocks).
# Supported on Spigot or Paper 1.20+ (incl. 26.x); older versions auto-fall back to the classic
# real-block reset. X-Prison integration (autosell, enchants, bombs) requires X-Prison 2026.3.0.0+.
# Mined progress is memory-only: mines render fully filled again after a server restart.

packet-mines-settings:
  break-effects: true
  # Broadcast block-break particles + sound to other players viewing the mine.
  vanilla-drops-to-inventory: true
  # Only used when X-Prison is NOT installed: put the mined block into the digger's inventory.
  instant-break: false
  # true = every block breaks in a single click regardless of pickaxe tier or block hardness
  # (the OP-prison feel); false = blocks obey the vanilla break speed (tool tier, Efficiency, Haste).
  # Players still need permission to mine the mine. Only affects packet (virtual) mines.
  dig-leniency: 0.85
  # Fraction of the vanilla-computed break time accepted at dig completion (tolerates timing skew).
  # Ignored when instant-break is true.
  teleport-on-reset: false
  # Packet resets are instant; enable to restore the legacy teleport-to-reset-location behavior.
  clear-real-interior: true
  # Packet mines render ore as a client-side overlay over server-side AIR and dig virtually. When a
  # region changes (create/expand/upgrade) this wipes any REAL blocks left in the mining interior to
  # air, so a custom schematic whose mining area contains real blocks (e.g. bedrock) doesn't show
  # through mined-out positions and leave the mine unmineable. Runs at most once per region change,
  # never per reset. Set false only if your packet schematics have a guaranteed-air mining area.
  store-eviction-minutes: 0
  # Free the in-memory block store of mines nobody is viewing every N minutes (0 = disabled).
  # Note: evicting loses that mine's mined-out progress - it renders fully filled again.
  max-digs-per-tick: 2000
  # TPS safety net: how many queued block-breaks are processed per server tick (0 = unlimited).
  # Sized far above any legitimate per-tick mining rate, so it only spreads a pathological burst
  # (e.g. a modified client packet-flooding digs) across ticks instead of processing it all in one
  # tick; any excess simply rolls to the next tick. Raise it for very large servers, or set 0 to
  # disable. Not an anti-cheat - it never rejects or punishes a dig.
  max-queued-digs: 20000
  # Memory safety net: the most dig packets that may sit in the pending queue (0 = unbounded). Once
  # exceeded (only reachable under a sustained packet flood) the oldest pending digs are dropped so
  # memory stays bounded; a dropped dig is simply not applied and the client re-syncs on its next
  # interaction. Legit load never approaches this.

auto-save-interval-seconds: 90
# How often (in seconds) plugin saves all mine data.

economy:
  type: Vault # [Available: Vault, X-Prison, ExcellentEconomy, PlayerPoints]
  currency: tokens # currency name, only used for X-Prison and ExcellentEconomy

player-cooldowns:
  mine-reset: 10 # in seconds
  block-change: 86400 # in seconds (1 day)

# Reset your mine by pressing the drop key (Q) while holding a pickaxe, without opening a menu.
# Only fires inside your own mine, so dropping a pickaxe anywhere else behaves normally.
# Requires the xprivatemines.command.reset permission and shares the player-cooldowns.mine-reset
# cooldown above with /pmine reset and the menu button (the triggers cannot be alternated to reset
# faster). With packet-mines disabled every reset is a FastAsyncWorldEdit paste, so keep a sensible
# cooldown if you enable this on a busy server.
mine-reset-hotkey:
  enabled: false
  # true  = sneak + Q (recommended: avoids accidental resets and clashes with other plugins)
  # false = plain Q
  require-sneak: true

main-command:
  - pmine
  - mine
  - privatemine
# Main command aliases

gui:
  # Blocks selectable in the Block-Change GUI. Entries may be vanilla materials or custom-block
  # ids from a supported provider (when that plugin is installed):
  #   ItemsAdder: itemsadder:ruby_block   (real namespaced id)
  #   Nexo:       nexo:ruby_ore           (nexo: prefix + bare id)
  #   Oraxen:     oraxen:ruby_ore         (oraxen: prefix + bare id)
  # Per-block permission: xprivatemines.block.<material_lowercase>, or for custom blocks
  # xprivatemines.block.<provider>.<id> (e.g. xprivatemines.block.nexo.ruby_ore).
  blocks:
    - STONE
    - COBBLESTONE
    # Example custom blocks (require the respective plugin):
    # - itemsadder:ruby_block
    # - nexo:ruby_ore
    # - oraxen:ruby_ore
    - COAL_ORE
    - IRON_ORE
    - DEEPSLATE_IRON_ORE
    - COPPER_ORE
    - GOLD_ORE
    - DEEPSLATE_GOLD_ORE
    - REDSTONE_ORE
    - DEEPSLATE_REDSTONE_ORE
    - LAPIS_ORE
    - DEEPSLATE_LAPIS_ORE
    - EMERALD_ORE
    - DEEPSLATE_EMERALD_ORE
    - DIAMOND_ORE
    - DEEPSLATE_DIAMOND_ORE
    - NETHER_QUARTZ_ORE
    - NETHER_GOLD_ORE
    - IRON_BLOCK
    - COPPER_BLOCK
    - GOLD_BLOCK
    - LAPIS_BLOCK
    - REDSTONE_BLOCK
    - EMERALD_BLOCK
    - DIAMOND_BLOCK
    - ANCIENT_DEBRIS
    - NETHERITE_BLOCK
# List of blocks players can choose from in the GUI to set their mine content.

sounds:
  click: UI_BUTTON_CLICK
  success: ENTITY_PLAYER_LEVELUP
  info: BLOCK_NOTE_BLOCK_PLING
  error: BLOCK_NOTE_BLOCK_BASS
  teleport: ENTITY_ENDERMAN_TELEPORT
  open: BLOCK_WOODEN_DOOR_OPEN
  close: BLOCK_WOODEN_DOOR_CLOSE
  upgrade: UI_TOAST_CHALLENGE_COMPLETE
# Sound effects used by various plugin features for feedback.

placeholders:
  xprivatemines_is_open:
    true: "✔ Open"
    false: "✖ Closed"
  xprivatemines_has:
    true: "true"
    false: "false"
# PAPI translations for placeholders

mine-name:
  max-length: 32
# Maximum character length of a custom mine name.

mine-motd:
  max-length: 128
  show-to-owner: false
# Maximum length of the mine MOTD. show-to-owner controls whether the owner also sees their own MOTD on entry.

leaderboard:
  categories:
    tier:
      enabled: true
      display-name: "Top Tiers"
      gui-title: "<gradient:#FFD700:#FFA500><bold>Leaderboard</bold></gradient> <gray>- Top Tiers"
      item-name: "<yellow><bold>#%rank%</bold> <white>%mine_name%"
      item-lore:
        - " "
        - "<gray>Owner: <yellow>%owner%"
        - "<gray>Tier: <green>%tier%"
        - "<gray>Size: <aqua>%size%x%size%"
        - " "
        - "<yellow>➤ Click to visit"
    size:
      enabled: true
      display-name: "Biggest Mines"
      gui-title: "<gradient:#FFD700:#FFA500><bold>Leaderboard</bold></gradient> <gray>- Biggest Mines"
      item-name: "<yellow><bold>#%rank%</bold> <white>%mine_name%"
      item-lore:
        - " "
        - "<gray>Owner: <yellow>%owner%"
        - "<gray>Size: <aqua>%size%x%size%"
        - " "
        - "<yellow>➤ Click to visit"
    tax:
      enabled: true
      display-name: "Highest Tax"
      gui-title: "<gradient:#FFD700:#FFA500><bold>Leaderboard</bold></gradient> <gray>- Highest Tax"
      item-name: "<yellow><bold>#%rank%</bold> <white>%mine_name%"
      item-lore:
        - " "
        - "<gray>Owner: <yellow>%owner%"
        - "<gray>Tax: <red>%tax%%"
        - " "
        - "<yellow>➤ Click to visit"
    fee:
      enabled: true
      display-name: "Highest Entry Fee"
      gui-title: "<gradient:#FFD700:#FFA500><bold>Leaderboard</bold></gradient> <gray>- Highest Entry Fee"
      item-name: "<yellow><bold>#%rank%</bold> <white>%mine_name%"
      item-lore:
        - " "
        - "<gray>Owner: <yellow>%owner%"
        - "<gray>Entry Fee: <gold>%fee%"
        - " "
        - "<yellow>➤ Click to visit"
# Leaderboard categories. Each category has an optional gui-title, item-name, and item-lore.
# Placeholders: %rank%, %mine_name%, %owner%, %tier%, %size%, %tax%, %fee%
[LEFT]
YAML:
[/LEFT]
# Each block key is a weight (relative chance) within the tier.
# Keys may be vanilla materials (e.g. STONE) or custom-block ids from a supported provider
# (when that plugin is installed):
#   ItemsAdder: itemsadder:ruby_block   (real namespaced id)
#   Nexo:       nexo:ruby_ore           (nexo: prefix + bare id)
#   Oraxen:     oraxen:ruby_ore         (oraxen: prefix + bare id)
tiers:
  1:
    name: Tier 1
    upgrade-cost: 0
    blocks:
      STONE: 80
      COBBLESTONE: 20
      # Example custom blocks (require the respective plugin):
      # itemsadder:ruby_block: 10
      # nexo:ruby_ore: 10
      # oraxen:ruby_ore: 10
[LEFT]
YAML:
[/LEFT]
private-mine-gui:
  title: <dark_gray>» <gradient:#FFD700:#FFA500><bold>Your Private Mine</bold></gradient>
    <dark_gray>«
  rows: 3
  items:
    teleport:
      enabled: true
      slot: 10
      material: ENDER_PEARL
      name: <gradient:#00FF7F:#32CD32>✦ <bold>Teleport to Mine</bold></gradient>
      lore:
        - ''
        - <gray>Instantly warp to your</gray>
        - <gray>personal mining zone.</gray>
        - ''
        - <yellow><italic>Click to teleport.</italic></yellow>

    change-block:
      enabled: true
      slot: 11
      material: DIAMOND_ORE
      name: <gradient:#00E5FF:#00BFFF>⛏ <bold>Change Mine Block</bold></gradient>
      lore:
        - ''
        - <gray>Select what block</gray>
        - <gray>your mine regenerates with.</gray>
        - ''
        - <yellow><italic>Click to change.</italic></yellow>

    claim-tax:
      enabled: true
      slot: 12
      material: GOLD_INGOT
      name: <gradient:#FFD700:#FFA500> <bold>Claim Tax Rewards</bold></gradient>
      lore:
        - ''
        - <gray>Collect earnings from</gray>
        - <gray>others mining in your plot.</gray>
        - ''
        - <yellow><italic>Click to claim money.</italic></yellow>

    settings:
      enabled: true
      slot: 13
      material: COMPARATOR
      name: <gradient:#1E90FF:#4169E1>⚙ <bold>Settings</bold></gradient>
      lore:
        - ''
        - <gray>Adjust access, tax, and visibility</gray>
        - <gray>for your private mine.</gray>
        - ''
        - <yellow><italic>Click to open settings.</italic></yellow>

    upgrade:
      enabled: true
      slot: 14
      material: NETHER_STAR
      name: <gradient:#FF77FF:#DA70D6>⬛ <bold>Upgrade Mine</bold></gradient>
      lore:
        - ''
        - <gray>Upgrade your mine to the next tier.</gray>
        - ''
        - <white>Current Tier:</white> <green>%upgrade_level%</green>
        - <white>Next Tier Cost:</white> <gold>%upgrade_cost%</gold>
        - ''
        - <yellow><italic>Click to upgrade.</italic></yellow>

    expand:
      enabled: true
      slot: 15
      material: NETHER_STAR
      name: <gradient:#FF77FF:#DA70D6>⬛ <bold>Expand Mine</bold></gradient>
      lore:
        - ''
        - <gray>Increase the size of your mine</gray>
        - <gray>for more mining space.</gray>
        - ''
        - <white>Current Level:</white> <green>%expand_level%</green>
        - <white>Next Upgrade Cost:</white> <gold>%expand_cost%</gold>
        - ''
        - <yellow><italic>Click to expand.</italic></yellow>

    reset:
      enabled: true
      slot: 16
      material: BARRIER
      name: <gradient:#FF5555:#FF0000>♻ <bold>Reset Mine</bold></gradient>
      lore:
        - ''
        - <gray>Regenerate your mine</gray>
        - <gray>with your current block settings.</gray>
        - ''
        - <yellow><italic>Click to reset.</italic></yellow>

private-mine-settings-gui:
  title: <dark_gray>» <gradient:#FFD700:#FFA500><bold>Mine Settings</bold></gradient>
    <dark_gray>«
  rows: 3
  items:
    toggle-open:
      enabled: true
      slot: 10
      material: IRON_DOOR
      name: <gradient:#FFD700:#FFA500> <bold>Mine Status:</bold> <green>%status%</green></gradient>
      lore:
        - ''
        - <gray>Toggle your mine between:</gray>
        - <white>- <green>Open to Public</green></white>
        - <white>- <red>Private</red></white>
        - ''
        - <yellow><italic>Click to toggle.</italic></yellow>

    manage-bans:
      enabled: true
      slot: 11
      material: PLAYER_HEAD
      name: <gradient:#FF5555:#B22222> <bold>Manage Banned Players</bold></gradient>
      lore:
        - ''
        - <gray>View or unban players</gray>
        - <gray>from your private mine.</gray>
        - ''
        - <yellow><italic>Click to manage bans.</italic></yellow>

    set-tax:
      enabled: true
      slot: 15
      material: GOLD_INGOT
      name: <gradient:#FFD700:#FFA500> <bold>Set Tax Rate</bold></gradient>
      lore:
        - ''
        - <gray>Current Rate:</gray> <white>%tax%%</white>
        - ''
        - <gray>Control how much you earn</gray>
        - <gray>from other players mining.</gray>
        - ''
        - <yellow><italic>Click to change.</italic></yellow>

    set-entry-fee:
      enabled: true
      slot: 16
      material: EMERALD
      name: <gradient:#00FF7F:#32CD32> <bold>Set Entry Fee</bold></gradient>
      lore:
        - ''
        - <gray>Current Fee:</gray> <white>%fee%</white>
        - ''
        - <gray>Charge visitors to access</gray>
        - <gray>your mine.</gray>
        - ''
        - <yellow><italic>Click to set fee.</italic></yellow>

    set-reset-percentage:
      enabled: true
      slot: 13
      material: CLOCK
      name: <gradient:#00E5FF:#00BFFF>♻ <bold>Set Reset Percentage</bold></gradient>
      lore:
        - ''
        - <gray>Current Value:</gray> <white>%reset%%</white>
        - ''
        - <gray>Controls how much must be</gray>
        - <gray>mined before auto-reset.</gray>
        - ''
        - <yellow><italic>Click to change.</italic></yellow>

block-change-gui:
  title: <dark_gray>» <gradient:#FFD700:#FFA500><bold>Block Selection</bold></gradient>
    <gray>|</gray> <white>Private Mine</white> <dark_gray>«
  rows: 5
  selected-lore:
    - ''
    - <gradient:#00FF7F:#32CD32>✅ <bold>CURRENTLY SELECTED</bold></gradient>
  unlocked-lore:
    - ''
    - <gray>Set your mine block to:</gray>
    - <white>%block%</white>
    - ''
    - <yellow><italic>Click to change.</italic></yellow>
  locked-lore:
    - ''
    - <gradient:#FF5555:#B22222>⛔ Locked Block</gradient>
    - <dark_gray>Requires permission:</dark_gray>
    - <gray>xprivatemines.block.%perm%</gray>

private-mine-banned-players-gui:
  title: <dark_gray>» <gradient:#FF5555:#B22222><bold>Banned Players</bold></gradient>
    <dark_gray>«
  rows: 5
  ban-button:
    enabled: true
    material: ANVIL
    name: <gradient:#FFD700:#FFA500>✋ <bold>Ban a Player</bold></gradient>
    lore:
      - ''
      - <gray>Manually enter a player name</gray>
      - <gray>to ban from your mine.</gray>
      - ''
      - <yellow><italic>Click to type a name.</italic></yellow>
    slot: 44
  banned-player:
    name: <gradient:#FF5555:#B22222>%player%</gradient>
    lore:
      - <gray>Click to unban this player.</gray>
[LEFT]
YAML:
messages:
  no-perm: <red>⛔ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You don't have permission!
  no-mine: <yellow>⚠ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You are not a member of any private mine!
  no-money: <red> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You do not have enough money!
  mine-generation-started: <gold> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <gray>Generating Private Mine...
  mine-created: <gold> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <green>Your private mine was created! Use <white>/pmine</white>
  mine-exists: <red>⛔ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You already have a private mine!
  mine-expand-success: <green>✔ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Your mine has been successfully expanded!
  mine-expand-failed-max-level: <red>⛔ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Your mine is already at the maximum expand!
  mine-upgrade-success: <green>✅ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Successfully upgraded your mine to <yellow>%tier%</yellow>!
  mine-upgrade-failed-max-tier: <red>❌ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Your mine is already at the highest tier!
  mine-full: <gold> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>That mine is currently full!
  mine-close: <red> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You have closed your private mine.
  mine-open: <green> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You have opened your private mine.
  remove-player: <green>❌ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Successfully removed <yellow>%player%</yellow> from your private mine.
  teleport-admin: <aqua> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Teleporting you to <yellow>%player%</yellow>'s <aqua>private mine.
  delete-admin: <red> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Deleted <yellow>%player%</yellow>'s private mine. Reset to default.
  mine-block-changed: <green>♻ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You have changed your mine blocks to <yellow>%block%</yellow>.
  mine-refill: <green>♻ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Your mine has been refilled.
  player-already-banned: <yellow>⚠ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>That player is already banned.
  player-not-online: <yellow>⚠ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>That player is not online.
  player-not-banned: <yellow>⚠ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>That player is not banned.
  player-banned: <red> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You have banned <yellow>%player%</yellow>.
  player-unbanned: <green>✅ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You have unbanned <yellow>%player%</yellow>.
  cant-ban-yourself: <red>⛔ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You can't ban yourself!
  cant-unban-yourself: <red>⛔ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You can't unban yourself!
  cant-kick-yourself: <red>⛔ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You can't kick yourself!
  player-not-in-mine: <yellow>⚠ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>That player is not in your private mine.
  player-kicked: <green>✅ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You have kicked <yellow>%player%</yellow> from your mine.
  cant-change-block: <yellow>⌛ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You can only change your mine's content once a day!
  your-tax: '<aqua> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Your tax is: <yellow>%tax%%</yellow>.'
  tax-set: <green> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Tax set to <yellow>%tax%%</yellow> successfully!
  invalid-tax: <red>⚠ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Please enter a tax between <yellow>0%</yellow> and <yellow>30%</yellow>.
  your-entry-fee: '<aqua> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Your entry fee is: <yellow>%fee%</yellow>.'
  fee-set: <green> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Entry fee set to <yellow>%fee%</yellow> successfully!
  invalid-fee: <red>⚠ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Fee must be more than <yellow>0</yellow> and ≤ <yellow>1,000,000</yellow>.
  you-banned: <red> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You are banned from entering this mine.
  mine-claimed: <green> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You have claimed <yellow>%money%</yellow>!
  invalid-reset-percentage: <red>⚠ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Please enter a percentage between <yellow>30</yellow> and <yellow>90</yellow>.
  reset-percentage-set: <green>♻ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Reset percentage set to <yellow>%reset%</yellow>.
  mine-invalid-schematic: <red>⚠ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Invalid schematic name '<yellow>%name%</yellow>'.
  mine-reset-cooldown: <red>⚠ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <red>Please wait <white>%time%</white> seconds before resetting your mine.
  no-unclaimed-money: <yellow>⚠ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>You have no earnings to claim.
  mine-already-open: <yellow>⚠ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Your mine is already open!
  mine-already-closed: <yellow>⚠ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Your mine is already closed!
  mine-name-set: <green>✏ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Mine name set to <yellow>%name%</yellow>.
  mine-name-cleared: <green>✏ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Mine name cleared.
  mine-name-too-long: <red>⚠ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Name must be <yellow>%max%</yellow> characters or fewer.
  your-mine-name: '<aqua>✏ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Your mine name is: <yellow>%name%</yellow>.'
  mine-motd-set: <green> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>MOTD set.
  mine-motd-cleared: <green> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>MOTD cleared.
  mine-motd-too-long: <red>⚠ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>MOTD must be <yellow>%max%</yellow> characters or fewer.
  your-mine-motd: '<aqua> <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Your mine MOTD is: <yellow>%motd%</yellow>.'
  mine-motd-header: "<gray>[<yellow>MOTD<gray>] "
  leaderboard-invalid-category: <red>⚠ <bold><gradient:#FFD700:#FFA500>PRIVATE MINES</gradient></bold>
    » <white>Unknown category. Available categories<gray>:</gray> <yellow>%categories%</yellow>.
titles:
  reset-percentage:
    enabled: true
    title: <gradient:#FFD700:#FFA500><bold>Reset Percentage</bold></gradient>
    subtitle: <gray><italic>Type percentage (e.g. 50). Type 'cancel' to abort.</italic>
    fade-in: 10
    stay: 60
    fade-out: 15

  entry-fee:
    enabled: true
    title: <gradient:#00FFA3:#00BFFF><bold>Entry Fee</bold></gradient>
    subtitle: <gray><italic>Type amount in chat. Type 'cancel' to abort.</italic>
    fade-in: 10
    stay: 60
    fade-out: 15

  tax-percentage:
    enabled: true
    title: <gradient:#FF7F50:#FFD700><bold>Tax Percentage</bold></gradient>
    subtitle: <gray><italic>Type amount in chat. Type 'cancel' to abort.</italic>
    fade-in: 10
    stay: 60
    fade-out: 15

  ban-player:
    enabled: true
    title: <gradient:#FF0000:#8B0000><bold>Ban Player</bold></gradient>
    subtitle: <gray><italic>Type player name in chat. Type 'cancel' to abort.</italic>
    fade-in: 10
    stay: 60
    fade-out: 15

  mine-created:
    enabled: true
    title: <gradient:#FFD700:#FFA500><bold>Mine Created</bold></gradient>
    subtitle: <white>Please use /pmine</white>
    fade-in: 10
    stay: 60
    fade-out: 15

  mine-expanded:
    enabled: true
    title: <gradient:#32CD32:#008000><bold>Mine Expanded</bold></gradient>
    subtitle: <white>You have expanded your mine to <yellow>%xprivatemines_size%</yellow>
    fade-in: 10
    stay: 60
    fade-out: 15

  mine-upgraded:
    enabled: true
    title: <gradient:#00BFFF:#1E90FF><bold>Mine Upgraded</bold></gradient>
    subtitle: <yellow>%xprivatemines_tier%</yellow>
    fade-in: 10
    stay: 60
    fade-out: 15
YAML:
schematic-settings:
  pmine:
    permission: xprivatemines.schematic.default
    # Permission for players to create mine using this schematic

    mine-size: 11
    # Default size (length/width) of the mine area.

    bedrock-walls: false
    # Whether to place a 1-block-thick bedrock floor and side walls around the mine region on reset (no top cover).

    max-expand: 10
    # Maximum number of expansions allowed per mine.

    expand-cost: 1000000.0
    # Cost to expand the mine.

    spawn: 0;100;0;0.0;0.0
    # Spawn location inside the mine (x;y;z;yaw;pitch)

    reset-teleport: -27;102;25;0.0;0.0
    # Where players are teleported during a reset event.

    mine:
      pos1: -20;82;19
      pos2: -30;101;29
      priority: 2
      wg-flags:
        block-break: ALLOW
        upc-enchants: ALLOW
      # Coordinates and flags defining the mine's block region (WorldGuard or plugin-defined).

    region:
      pos1: 46;70;73
      pos2: -75;144;-32
      priority: 1
      wg-flags:
        build: DENY
        block-break: DENY
      # Full protected region around the mine (for entry protection, boundaries, etc.).
XPrivateMines — The Private Mine Plugin Built for Modern OP-Prison Networks
Give every player their own mine. Give your server the performance to run thousands of them.

⚡ Packet Mines — Zero-Lag Virtual Mining Regions
The flagship feature. Set packet-mines: true and the ore inside every mining region stops existing on your server entirely — it's rendered straight to each player's client through packets, backed by a tiny in-memory store.

  • Instant resets — an in-memory refill plus a packet resend. No FAWE job, no chunk writes, no TPS hit, even with hundreds of mines resetting simultaneously
  • Zero block lag while mining — no physics, no lighting, no disk saves
  • Exact block counts — reset thresholds and placeholders are precise, not estimated
  • ~144 KB per mine (typical 60×40×60), materialized lazily — mines nobody is near cost almost nothing
  • instant-break for one-click OP-prison mining, or vanilla break speed validated server-side so modified clients can't mine faster than they should
  • Flood-protected — max-digs-per-tick and max-queued-digs keep tick time and memory bounded under packet spam, without ever rejecting a legitimate dig
  • Safe to toggle — the classic FAWE reset stays the default; switching either direction self-heals on the next restart
PacketEvents is bundled in the jar. Requires allow-flight=true and Paper/Spigot 1.20–1.21.x (or 26.x builds); older versions fall back automatically.

Full X-Prison Integration
With X-Prison 2026.3.0.0+, virtual blocks behave exactly like real ones across your entire prison economy — autosell with visitor tax, pickaxe exp and block counters, every area enchant (Explosive, Layer, Nuke, Laser Beam), bombs, quests, lucky blocks and battle pass. Area enchants resolve a whole mine in a single bulk call instead of walking it block by block.

⛏️ Tier Progression & Player Economy
  • Mine tiers — unlimited configurable tiers, each with its own weighted block composition and upgrade cost. Mines auto-reset into the new composition on upgrade
  • Expansion — grow the mine area up to a per-schematic maximum, with per-level costs
  • Entry fees & tax — charge visitors to enter, earn a cut of everything they mine, and claim it with /pmine claim. Server-enforced min/max ranges on both
  • Leaderboards — /pmine top ranks mines by tier, size, tax or entry fee in a paginated GUI. Click any entry to visit. Fully configurable per category
  • Identity — custom mine names and a MOTD shown to every visitor
  • Access control — open/close to the public, plus per-mine ban and kick lists
Custom Blocks: ItemsAdder, Nexo & Oraxen
All three supported side by side, everywhere vanilla blocks are accepted — tier compositions, the player-facing block picker, GUI icons and /pmine forcesetblock. Each provider is a soft dependency: uninstalled providers fall back to stone with a console warning and leave the rest of your config untouched. IDs resolve automatically once the provider loads and re-check on reload.

In-Game Schematic Creator
Build a new mine type without ever touching FAWE or a config file. /pmine schematic opens a guided setup board: a selection wand for build/mine/protection regions, a WorldGuard flag editor cycling ALLOW → DENY → NONE, spawn and reset points, then Create. The plugin saves the .schem, writes the complete schematic-settings.yml entry with the mine size worked out for you, and reloads it so players can use it immediately. Every step has a command equivalent.

️ Scalable Infrastructure
  • Pre-generation — /pmine pregen [schematic] [amount] builds mines in bulk ahead of demand; unowned mines are recycled to new players instead of pasting fresh. Monitor with /pmine status, halt with /pmine pregenstop
  • O(1) mine lookup — a chunk index resolves "which mine is this block in" instantly instead of scanning every mine, benefiting packet and classic modes alike
  • Parallel startup loading and a single consolidated mines.yml — 10× faster loading than per-file storage
  • Unlimited schematic types — permission-gated per type, so VIP and elite ranks get bigger mines
  • Bedrock walls — optional auto-generated floor and side walls, rebuilt to match current size on every reset
️ Admin & Ops
Force-create, force-delete, force-upgrade, force-expand and force-set-block on any player's mine. Live GUI listings of all mines including unclaimed pre-generated ones. /pmine reload picks up config, schematic and cooldown changes without a restart. Runtime addon manager GUI.

Integrations & Flexibility
  • Four economy providers — Vault, X-Prison tokens, ExcellentEconomy/CoinsEngine, PlayerPoints
  • PlaceholderAPI — 20+ placeholders including leaderboard ranks, reset progress, unclaimed earnings and tier state
  • WorldGuard — per-mine regions with configurable flags on both the mineable area and the protected outer zone
  • MiniMessage everywhere — gradients and modern formatting in messages, titles and GUIs
  • Addon API — a public developer API with events (MineBlockBreakEvent), economy access, mine lookup/reassignment and runtime addon management
Requirements
Paper or Spigot 1.13+ (Paper recommended) · Java 17+ · Vault · FastAsyncWorldEdit · WorldGuard · helper
Optional: PlaceholderAPI, X-Prison, ItemsAdder, Nexo, Oraxen, Multiverse-Core
Give your players power, profit, and freedom. Download XPrivateMines today!
Detailed Features and other informations can be found here.


Official Plugin Compatibility: Spigot/Paper 1.13-26.X
Copyright © 2026 X Private Mines | www.drawethree.dev | Bc. Ján Kluka

Uploader


Downloads
0
Views
10
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from ArteffCods

Similar resources