Skip to content

Custom Schematic Setup

Jan Kluka edited this page Jun 3, 2026 · 1 revision

Custom Schematic Setup

This guide walks you through creating a custom mine schematic from scratch and registering it in X-PrivateMines. When finished, players can run /pmine create <yourname> to receive a mine using your custom layout.


What Is a Schematic?

A schematic (.schem file) is a saved snapshot of a region of blocks, created and managed by FastAsyncWorldEdit (FAWE). When a player creates a private mine, X-PrivateMines pastes the schematic into the dedicated private_mines world, then sets up WorldGuard regions around it based on the offsets you configure.

The schematic defines the visual shell of the mine — walls, ceiling, entrance, decoration. The plugin fills the inner hollow region with ore blocks automatically, using the compositions defined in mine-tiers.yml.


Prerequisites

Before starting, make sure you have:

  • Operator or creative access on a server with FAWE installed
  • WorldEdit/FAWE commands available (//copy, //paste, /schematic save)
  • A flat creative world to build and test in

Step 1 — Plan and Build Your Mine Structure

Build the mine shell in-game. It should include:

Part Description
Inner hollow region The empty void that the plugin fills with ore blocks on reset. Do not place blocks here.
Outer shell Walls, floor, ceiling, and any decorative build surrounding the mine.
Spawn platform Where players land after using /pmine tp. Needs at least 2 blocks of headroom.
Reset-safe spot Where players are moved during a mine reset. Can be the same as spawn.

Build tips:

  • The plugin always pastes schematics at Y=100 in the private_mines world. Build your mine so the spawn platform and most of the structure sit around Y=100.
  • Leave the inner mine region completely empty — the plugin fills it automatically.
  • Make the outer protected region (walls, floor, ceiling) at least 3–5 blocks thick to prevent griefing.
  • Leave extra space around the outer shell — the region config needs to fully enclose everything.

Step 2 — Copy the Structure with FAWE

Stand at the point you want to use as the reference point for all your coordinate measurements. This position becomes the clipboard origin.

Recommended: Stand at world coordinates (X=0, Z=0) somewhere inside or above your mine structure, at a convenient height. This makes offset math trivial — the X and Z values you read in-game will be your config values directly.

Run:

//copy

The position where you stand when running //copy becomes the clipboard origin. All X and Z values in schematic-settings.yml are measured relative to this origin. Y values are always absolute world Y coordinates — they do not shift.


Step 3 — Save the Schematic

/schematic save mymine

Replace mymine with the name you want for this schematic (letters, numbers, and hyphens only — no spaces). The file is saved to FAWE's schematic directory.


Step 4 — Paste at a Reference Location and Measure Coordinates

You need to measure the coordinates for five things:

Value What it defines
spawn Where players teleport with /pmine tp
reset-teleport Where players are moved during a mine reset
mine.pos1 / mine.pos2 Diagonal corners of the hollow inner region (blocks get filled here)
region.pos1 / region.pos2 Diagonal corners of the full protected outer zone

How to measure

  1. Go to an empty area in your test world and teleport to (0, 100, 0):

    /tp 0 100 0
    
  2. Paste your schematic:

    //paste
    

    Your clipboard origin (where you stood when doing //copy) now lands at (0, 100, 0) in world space.

  3. Walk to each location you need to measure. Press F3 to see your coordinates.

  4. Convert in-game coordinates to config values:

    • X offset = your current X coordinate (subtract 0 = same value)
    • Y value = your current Y coordinate — used as-is (absolute world Y)
    • Z offset = your current Z coordinate (subtract 0 = same value)

Example measurement

You paste at (0, 100, 0) and walk around to note:

Location In-game coords Config value
Spawn platform X=0, Y=103, Z=0 0;103;0;0.0;0.0
Reset safe spot X=0, Y=103, Z=0 0;103;0;0.0;0.0
Mine inner corner 1 X=-5, Y=85, Z=-5 -5;85;-5
Mine inner corner 2 X=5, Y=96, Z=5 5;96;5
Outer region corner 1 X=-20, Y=70, Z=-20 -20;70;-20
Outer region corner 2 X=20, Y=120, Z=20 20;120;20

Tip: For pos1/pos2 pairs, just pick any two opposite diagonal corners — the order does not matter. The plugin normalizes them automatically.


Step 5 — Configure schematic-settings.yml

Open /plugins/XPrivateMines/schematic-settings.yml and add a new entry under schematic-settings:, using your measurements from Step 4:

schematic-settings:
  pmine:          # existing default entry — do not remove
    ...

  mymine:         # your new schematic key — must match the .schem file name
    permission: xprivatemines.schematic.mymine
    # Permission players need to use /pmine create mymine

    mine-size: 11
    # Starting width/length (NxN) of the hollow inner region in blocks.
    # Must match the actual dimensions defined by mine.pos1 and mine.pos2.

    bedrock-walls: false
    # Set to true to place bedrock walls and floor around the mine region on every reset.

    max-expand: 5
    # How many times players can expand this mine.

    expand-cost: 500000
    # Cost per expansion level.

    spawn: 0;103;0;0.0;0.0
    # Player teleport destination for /pmine tp.
    # Format: x;y;z;yaw;pitch — x and z are offsets, y is absolute world Y.

    reset-teleport: 0;103;0;0.0;0.0
    # Where players are moved during a mine reset.
    # Format: x;y;z;yaw;pitch — x and z are offsets, y is absolute world Y.

    mine:
      pos1: -5;85;-5
      pos2: 5;96;5
      # Diagonal corners of the hollow inner region (blocks are filled here on reset).
      # Format: x;y;z — x and z are offsets, y is absolute world Y.
      priority: 2
      wg-flags:
        block-break: ALLOW
        # Players must be allowed to break blocks inside the mine region.

    region:
      pos1: -20;70;-20
      pos2: 20;120;20
      # Diagonal corners of the full protected outer zone.
      # Must fully enclose the entire mine build.
      priority: 1
      wg-flags:
        build: DENY
        block-break: DENY
        # The outer region prevents building and breaking by default.

See schematic-settings.yml for the complete field reference.


Step 6 — Copy the Schematic File

  1. Find the saved schematic:

    plugins/FastAsyncWorldEdit/schematics/mymine.schem
    
  2. Copy it to the X-PrivateMines schematics folder:

    plugins/XPrivateMines/schematics/mymine.schem
    

The file name (without .schem) must exactly match the key you used in schematic-settings.yml (mymine in this example).


Step 7 — Assign Permissions

Give the permission xprivatemines.schematic.mymine to any group or player who should be able to create mines using this schematic:

xprivatemines.schematic.mymine

Players without this permission get an error if they run /pmine create mymine.

To allow all players to use this schematic, grant the permission to your server's default group.


Step 8 — Reload and Test

  1. Apply your changes:

    /pmine reload
    
  2. Create a test mine:

    /pmine create mymine
    
  3. Teleport to it and verify the spawn point:

    /pmine tp
    
  4. Mine some blocks until the auto-reset triggers. Verify the inner region fills correctly.

  5. Test expansion:

    /pmine expand
    

Understanding the Coordinate System

The plugin always pastes schematics at Y=100 in the private_mines world. Each mine gets a unique X and Z position based on last-x, last-z, and space-between-mines in config.yml.

When you specify coordinates in schematic-settings.yml:

  • X and Z values are offsets added to the mine's paste X and Z position
  • Y values are absolute world Y coordinates — they do not change from mine to mine

This means the same config works for every mine paste location. Mine #1 at world (0, 100, 0) and mine #50 at world (12500, 100, 0) use the same offsets applied to their own X/Z origins.

Coordinate formula

World X = paste_X + config_X
World Y = config_Y                  (absolute — not offset)
World Z = paste_Z + config_Z

Example: If spawn config is 5;103;-3;90.0;0.0 and the mine was pasted at (2500, 100, 750):

  • World spawn X = 2500 + 5 = 2505
  • World spawn Y = 103 (always exactly 103, absolute)
  • World spawn Z = 750 + (-3) = 747
  • Player faces yaw=90° (east)

Why build around Y=100?

Since the plugin always pastes at Y=100, and the Y values in your config are absolute, you want your mine's key points (spawn, mine region, region bounds) to sit at the actual Y heights you put in the config. Building around Y=100 and standing at Y=0 when copying means your block Y coordinates map directly to your paste location.


Common Mistakes

Mistake Symptom Fix
mine-size doesn't match actual inner region Mine reset fills too many or too few blocks Set mine-size to the actual width/length in blocks between your pos1 and pos2 corners
mine pos1/pos2 includes walls or floor Walls get replaced with ore on reset Shrink mine pos1/pos2 to only cover the hollow inner void
region pos1/pos2 too small Players can build/break outside the mine Expand region pos1/pos2 to fully cover the entire build
//copy from wrong reference point All offsets are shifted Re-copy while standing at X=0, Z=0 and re-measure
File not copied to XPrivateMines schematics folder "Invalid schematic name" error Copy .schem from FAWE's folder to plugins/XPrivateMines/schematics/
File name doesn't match config key Plugin can't find the schematic Rename file or config key so they match exactly
Forgot to run /pmine reload New schematic not recognized Run /pmine reload after every config change

Troubleshooting

"Invalid schematic name" when running /pmine create mymine The key in schematic-settings.yml doesn't match the .schem file name, or the file is missing from plugins/XPrivateMines/schematics/. Check both and run /pmine reload.

Mine fills the wrong area on reset Your mine.pos1/mine.pos2 offsets are incorrect. Re-paste the schematic at (0, 100, 0) and re-measure the corners of the hollow inner region.

Players spawn inside a wall or fall into the void Adjust the spawn Y value upward so it lands on solid ground, and ensure there are at least 2 blocks of air above the spawn point.

Players are not teleported during reset / end up in the wrong place Check the reset-teleport value. Make sure the Y coordinate corresponds to a safe platform.

Region protection doesn't work — players can build outside the mine Your region.pos1/region.pos2 doesn't fully cover the build. Expand the corners outward until the entire structure is enclosed.

Expansion breaks the mine (blocks appear outside the intended area) If mine-size doesn't match the actual pos1/pos2 dimensions, each expansion level will miscalculate the new bounds. Ensure mine-size equals the actual inner region width.


See Also

Clone this wiki locally