Skip to main content
SuperiorSkyblock2 integrates with WorldEdit (specifically FastAsyncWorldEdit) to provide advanced schematic functionality for island creation and pasting.

Overview

The WorldEdit integration enables:
  • Schematic Pasting - Paste island templates using WorldEdit schematics
  • Asynchronous Operations - Non-blocking island generation
  • Block Tracking - Automatic island block counting during paste
  • Multi-Version Support - Compatible with modern WorldEdit versions
  • FAWE Optimization - Leverages FastAsyncWorldEdit for better performance

Setup

1

Install FastAsyncWorldEdit

Download FastAsyncWorldEdit (FAWE) from:Place the JAR in your plugins folder.
2

Restart Server

Restart your server to load FastAsyncWorldEdit.
3

Verify Integration

SuperiorSkyblock2 will automatically detect and integrate with FAWE. Check console for successful loading of both plugins.
SuperiorSkyblock2 specifically integrates with FastAsyncWorldEdit (FAWE), not the standard WorldEdit plugin. FAWE provides better performance for large schematic operations.

Schematic System

Schematic Format

SuperiorSkyblock2 supports WorldEdit schematic formats:
  • .schem - Modern WorldEdit format (recommended)
  • .schematic - Legacy format (older versions)

Schematic Location

Place your schematic files in:
plugins/SuperiorSkyblock2/schematics/

Creating Schematics

Use WorldEdit to create island templates:
1

Build Your Island

Create the island template you want players to start with.
2

Select the Area

Use WorldEdit’s selection tools:
//wand
Select the entire island area including all blocks.
3

Copy the Selection

Copy the selected area:
//copy
4

Save the Schematic

Save to a file:
//schem save <name>
The file will be saved in WorldEdit’s schematic directory.
5

Move to SuperiorSkyblock2

Copy the schematic file to:
plugins/SuperiorSkyblock2/schematics/<name>.schem

Registering Schematics

Configure schematics in schematics.yml:
schematics.yml
schematics:
  normal:
    # Display name in menus
    display-name: '&aNormal Island'
    
    # Schematic file name (without .schem extension)
    schematic: 'normal'
    
    # Permission required to use this schematic
    permission: 'superiorskyblock.island.normal'
    
    # Economy cost to create island with this schematic  
    cost: 0
    
    # Icon in schematic selection GUI
    icon:
      type: GRASS_BLOCK
      data: 0
    
    # Lore displayed in GUI
    lore:
      - '&7A basic island to start'
      - '&7your adventure!'
      
  advanced:
    display-name: '&bAdvanced Island'
    schematic: 'advanced'
    permission: 'superiorskyblock.island.advanced'
    cost: 10000
    icon:
      type: DIAMOND_BLOCK
    lore:
      - '&7A larger island with'
      - '&7more resources!'

Admin Schematic Commands

Create and manage schematics in-game:

Create New Schematic

/is admin schematic create <name>
Creates a new schematic from your current WorldEdit selection. Requirements:
  • Permission: superior.admin.schematic
  • Active WorldEdit selection
  • Selection must be within valid size limits
Process:
  1. Use //wand to get WorldEdit wand
  2. Select the island area (left-click and right-click corners)
  3. Run /is admin schematic create <name>
  4. The schematic is saved and registered automatically

Set Island Preview Location

/is admin setislandpreview <player>
Sets the location where players will be teleported when previewing an island schematic in the selection GUI.

Pasting Mechanics

Asynchronous Pasting

Schematics are pasted asynchronously to prevent server lag:
Island creation doesn’t freeze the server, allowing other players to continue playing normally.
Code execution continues after paste completion:
schematic.pasteSchematic(island, location, () -> {
    // Runs after paste completes
    player.teleport(island.getIslandHome());
});
Players can be notified when their island is ready.

Block Tracking

During schematic pasting, SuperiorSkyblock2 automatically:
  • Counts all blocks placed by the schematic
  • Updates island level based on block values
  • Tracks block limits for restricted blocks
  • Calculates island worth from pasted materials
This happens during paste, not after, for optimal performance.

Advanced Configuration

Schematic Settings

Configure schematic behavior in config.yml:
config.yml
islands:
  schematics:
    # Allow players to change schematics after island creation
    allow-change: false
    
    # Offset for schematic pasting (Y-axis)
    paste-offset: 100
    
    # Clear area before pasting
    clear-before-paste: true
    
    # Schematic paste speed (blocks per tick)
    # Lower = slower but less lag
    paste-speed: 5000

Multi-World Schematics

Define different schematics for different worlds:
schematics.yml
schematics:
  normal:
    schematic: 'normal'
    nether-schematic: 'normal_nether'
    end-schematic: 'normal_end'

API Usage

Developers can work with schematics programmatically:

Getting Schematics

import com.bgsoftware.superiorskyblock.api.SuperiorSkyblockAPI;
import com.bgsoftware.superiorskyblock.api.schematic.Schematic;

// Get schematic by name
Schematic schematic = SuperiorSkyblockAPI.getSchematics().getSchematic("normal");

if (schematic != null) {
    String name = schematic.getName();
    // Use schematic
}

Pasting Schematics

import com.bgsoftware.superiorskyblock.api.island.Island;
import org.bukkit.Location;

Island island = SuperiorSkyblockAPI.getPlayer(uuid).getIsland();
Location location = island.getCenterPosition().toLocation(island.getWorldInfo());

// Paste with callback
schematic.pasteSchematic(island, location, () -> {
    // Code runs after paste completes
    player.sendMessage("Island created!");
});

// Paste with error handling
schematic.pasteSchematic(island, location, 
    () -> {
        // Success callback
        player.sendMessage("Island created!");
    },
    (error) -> {
        // Error callback  
        player.sendMessage("Failed to create island: " + error.getMessage());
        error.printStackTrace();
    }
);

Schematic Information

// Get affected chunks (usually empty for FAWE schematics)
List<ChunkPosition> chunks = schematic.getAffectedChunks();

// Adjust rotation
Location adjusted = schematic.adjustRotation(originalLocation);

// Get teleport callback
Runnable callback = schematic.onTeleportCallback();
if (callback != null) {
    callback.run();
}

Version Compatibility

The WorldEdit integration supports multiple Minecraft versions:
Minecraft VersionWorldEdit/FAWE VersionStatus
1.8.8FAWE 3.5.x✅ Supported
1.12.2FAWE 3.6.x✅ Supported
1.16.5FAWE 1.16.x✅ Supported
1.17+FAWE 2.x✅ Supported
1.18+FAWE 2.x✅ Supported
1.19+FAWE 2.x✅ Supported
1.20+FAWE 2.x✅ Supported
SuperiorSkyblock2 uses reflection to support multiple WorldEdit API versions, ensuring compatibility across different Minecraft versions.

Troubleshooting

Issue: Schematics don’t appear in selection menuSolutions:
  • Verify schematic files are in plugins/SuperiorSkyblock2/schematics/
  • Check file extension is .schem (not .schematic for modern versions)
  • Ensure schematics.yml has correct configuration
  • Check console for schematic loading errors
  • Reload config with /is admin reload
Issue: WorldEdit integration not workingSolutions:
  • Ensure you’re using FastAsyncWorldEdit, not standard WorldEdit
  • Verify FAWE is compatible with your Minecraft version
  • Check FAWE loaded before SuperiorSkyblock2 (/plugins)
  • Try restarting the server
Issue: Parts of schematic missing after pasteSolutions:
  • Increase paste-speed in config (may cause more lag)
  • Check FAWE configuration for paste limits
  • Verify schematic file isn’t corrupted
  • Test schematic with //paste to confirm it works in FAWE
Issue: Island level/worth doesn’t match pasted blocksSolutions:
  • Ensure calculate-blocks is enabled in config
  • Check block values are configured in blockvalues.yml
  • Run /is admin recalc <player> to recalculate
  • Verify schematic blocks are supported in your version
Issue: Server lags during island creationSolutions:
  • Reduce paste-speed in config
  • Configure FAWE’s async settings for better performance
  • Use smaller schematics or optimize existing ones
  • Increase server hardware resources
  • Limit concurrent island creations

Best Practices

Optimize Schematic Size

Keep schematics reasonably sized (under 100x100x100) to prevent lag during pasting.

Test Before Production

Always test new schematics on a test server before adding to production.

Use Modern Format

Save schematics in .schem format for better compatibility and features.

Include Essentials

Make sure schematics include a chest with starter items for new players.

Set Spawn Point

Design schematics with a clear spawn point where players should appear.

Avoid Entities

Don’t include mobs or items in schematics - spawn them via config instead.

Performance Tips

FAWE Configuration

Optimize FastAsyncWorldEdit for island pasting:
FAWE config.yml
queue:
  # Parallel threads for pasting
  parallel-threads: 4
  
  # Blocks per tick
  blocks-per-tick: 5000
  
history:
  # Disable history for schematic pastes
  use-disk: false
  compress: false

SuperiorSkyblock2 Settings

config.yml
islands:
  schematics:
    # Balance between speed and server performance
    paste-speed: 5000
    
    # Disable if not needed
    clear-before-paste: false