⚡ Cloud-native schematic manager with local support and lightning-fast tab completion
Purpose-built for multi-server networks with offline capabilities and instant responsiveness
📥 Download Latest • 📖 Documentation • 🐛 Report Issues • 💬 Discord
SchemFlow revolutionizes schematic management for Minecraft servers by combining cloud-native S3/MinIO storage with local schematic support, delivering unmatched performance and reliability. This open-source plugin eliminates the bottlenecks of traditional workflows while maintaining full compatibility with native WorldEdit formats.
- 🏠 Local Schematic Support: Work offline with
local:namesyntax for downloaded schematics - ⚡ Lightning-Fast Tab Completion: Smart caching eliminates network delays (90% fewer S3 calls)
- 🛡️ Safe Update Command: Dedicated
/schemflow updatewith mandatory--confirmprotection - 🎯 Optimized Performance: Cached data for instant command completion and duplicate prevention
- 🔧 Enhanced User Experience: Default group displayed exactly as configured in config
- Hybrid Storage: Cloud reliability + local speed for frequently-used schematics
- Instant Tab Completion: No more waiting for S3 responses during command entry
- Parallel Operations: Concurrent uploads/downloads across multiple server instances
- Ephemeral Cache: Temporary paste files automatically cleaned up
- Zero-Downtime Operations: Hot configuration reloading without restarts
- Intuitive Commands: Smart tab completion with cached schematic names
- WorldEdit Integration: Full compatibility with advanced flag support
- Skript API: Custom automation scripts for advanced workflows
- Comprehensive Safety: Trash system with restore, undo/redo, and confirmation prompts
- Hot-Swappable Config: Update settings without server restarts
|
|
| 🏢 Build Servers | 🎮 Creative Networks | 🏆 Competition Servers | 🌍 Survival Servers |
|---|---|---|---|
| Template management | Plot schematic storage | Arena/map distribution | Structure backups |
| Build preservation | Player submissions | Event preparation | Town planning |
| Collaboration tools | Contest archives | Rapid deployment | Restoration tools |
- Minecraft: 1.21+ (Paper/Purpur recommended)
- Java: 21+
- WorldEdit: 7.2.18+ (or FastAsyncWorldEdit)
# plugins/SchemFlow/config.yml
endpoint: "your-minio-server.com:9000"
secure: true
accessKey: "your-access-key"
secretKey: "your-secret-key"
bucket: "schematics"
extension: "schm"
# Local download target
downloadDir: "plugins/SchemFlow/schematics"
# Storage hierarchy (S3 object keys)
storage:
rootDir: "FlowStack/SchemFlow" # Root prefix in bucket
defaultGroup: "default" # Used when -group not provided
# Performance settings
cacheRefreshSeconds: 60 # Auto-refresh cache intervalTest your setup: /SchemFlow list
📜 Click to expand complete command list
| Command | Description | Example |
|---|---|---|
/SchemFlow help |
Show command overview | /SchemFlow help |
/SchemFlow list |
List all stored schematics by group | /SchemFlow list |
/SchemFlow cache |
Refresh schematic cache | /SchemFlow cache |
/SchemFlow reload |
Reload configuration | /SchemFlow reload |
/SchemFlow groups |
List all groups | /SchemFlow groups |
| Command | Description | Example |
|---|---|---|
/SchemFlow fetch [group:]name [destDir] |
Download schematic to disk | /SchemFlow fetch lobby:castle |
/SchemFlow upload <id> [-flags] [-group <name>] |
Upload selection as schematic | /SchemFlow upload castle -eb -group lobby |
/SchemFlow update [group:]name [-flags] [--confirm] |
NEW: Update existing schematic safely | /SchemFlow update lobby:castle --confirm |
/SchemFlow paste [group:]name|local:name [-flags] |
Paste schematic at location | /SchemFlow paste lobby:castle -ea |
/SchemFlow paste local:name [-flags] |
NEW: Paste from local downloads | /SchemFlow paste local:my_build -a |
/SchemFlow delete [group:]name |
Soft delete (move to trash) | /SchemFlow delete lobby:old_castle |
| Command | Description | Example |
|---|---|---|
/SchemFlow local |
NEW: List local schematics | /SchemFlow local |
/SchemFlow local delete <name> [--confirm] |
NEW: Delete local schematic file | /SchemFlow local delete old_build --confirm |
| Command | Description | Example |
|---|---|---|
/SchemFlow trash |
List trashed schematics | /SchemFlow trash |
/SchemFlow restore <name> [-group <dest>] |
Restore from trash to group | /SchemFlow restore old_castle -group lobby |
/SchemFlow trash clear --confirm |
Permanently clear ALL trash | /SchemFlow trash clear --confirm |
/SchemFlow undo |
Undo last delete or delegate to WorldEdit | /SchemFlow undo |
/SchemFlow redo |
Redo last undo or delegate to WorldEdit | /SchemFlow redo |
| Command | Description | Example |
|---|---|---|
/SchemFlow group create <name> |
Create a new group | /SchemFlow group create lobby |
/SchemFlow group delete <name> [--confirm] |
Delete group (shows count first) | /SchemFlow group delete Nature --confirm |
/SchemFlow group rename <old> <new> |
Rename group (case-only changes allowed) | /SchemFlow group rename nature Nature |
| Command | Description | Example |
|---|---|---|
/SchemFlow pos1 |
Set first selection corner | /SchemFlow pos1 |
/SchemFlow pos2 |
Set second selection corner | /SchemFlow pos2 |
/SchemFlow provision <world> |
Create/provision world from config | /SchemFlow provision lobby |
-e: Include/paste entities-a: Ignore air blocks when pasting-b: Include/preserve biomes (enabled by default)-group <name>: Target a specific group instead of default--confirm: Required for destructive operations (update, delete, clear)
# Download a schematic for offline use
/SchemFlow fetch lobby:castle
# List your local schematics
/SchemFlow local
# Paste from local storage (works offline!)
/SchemFlow paste local:castle -a
# Clean up local files when done
/SchemFlow local delete castle --confirm- Before: Every tab press = S3 API call (slow, expensive)
- After: Cached data = instant completion (90% fewer S3 calls)
- Smart Updates: Cache refreshes automatically on operations
- Duplicate Prevention: No more repeated schematic names in tab completion
# Old way: upload overwrites silently
/SchemFlow upload existing_build # Dangerous!
# New way: explicit update with confirmation
/SchemFlow update existing_build --confirm # Safe!schemflow.admin— Full access (default: op)schemflow.help— View help (default: true)schemflow.list— List schematics (default: true)schemflow.fetch— Download schematics (default: true)schemflow.local— NEW: Manage local schematics (default: true)
schemflow.pos1/schemflow.pos2— Set selection corners (default: true)schemflow.upload— Upload new schematics (default: op)schemflow.paste— Paste schematics (default: op)schemflow.delete— Soft delete schematics (default: op)schemflow.restore— Restore from trash (default: op)
schemflow.trash.clear— Permanently clear trash (default: op)schemflow.cache— Refresh cache (default: op)schemflow.reload— Reload configuration (default: op)schemflow.provision— Provision worlds (default: op)schemflow.groups— List groups (default: op)schemflow.group.create— Create groups (default: op)schemflow.group.delete— Delete groups (default: op)schemflow.group.rename— Rename groups (default: op)
SchemFlow organizes schematics with a clean, predictable hierarchy:
<rootDir>/ # Configurable root (e.g., "FlowStack/SchemFlow")
├── SF_default/ # Default group (SF_ prefix internal only)
│ ├── castle.schm
│ └── spawn.schm
├── SF_lobby/ # Custom group
│ ├── entrance.schm
│ └── hub.schm
└── .trash/ # Flat trash storage
├── old_castle.schm # Deleted schematics (no group prefix)
└── broken_build.schm
Downloaded schematics are stored in downloadDir (configurable):
plugins/SchemFlow/schematics/ # Default download location
├── castle.schm # Downloaded from server
├── spawn.schm # Available offline
└── my_build.schm # Local-only schematic
- Internal Prefix: Groups use
SF_prefix in S3 paths (transparent to users) - User-Friendly Names: Commands use clean names:
lobby,builds,default - Default Group: Configurable in
config.ymlunderstorage.defaultGroup - Case Sensitivity: Group renames allow case-only changes for consistency
SchemFlow provides powerful Skript syntax for automation:
# List all available schematics
set {_schematics::*} to schemflow schematics
# Download a schematic for local use
fetch schemflow schematic "castle" to "plugins/SchemFlow/schematics"
# Paste at player location
paste schemflow schematic "castle" at location of player
# Use local schematics
paste schemflow schematic "local:spawn" at location of player
# Advanced automation example
every 1 hour:
loop {backup_locations::*}:
paste schemflow schematic "checkpoint" at loop-value
# Update workflow with safety
command /updatebuild <text>:
trigger:
if player has permission "schemflow.upload":
execute console command "/schemflow update %arg-1% --confirm"🔧 Click to expand complete configuration reference
# S3/MinIO Connection Settings
endpoint: "play.min.io" # S3 endpoint URL or host:port
secure: true # Use HTTPS/TLS encryption
accessKey: "MINIO_ACCESS_KEY" # S3 access credentials
secretKey: "MINIO_SECRET_KEY" # S3 secret credentials
bucket: "schematics" # Storage bucket name
extension: "schm" # File extension (.schm or .schematic)
# Local Storage Settings
downloadDir: "plugins/SchemFlow/schematics" # Local download directory
# Performance & Caching
autoListOnStart: true # List schematics on startup
cacheRefreshSeconds: 60 # Auto-refresh interval (0 = disabled)
fetchOnStart: "" # Auto-fetch schematic on startup
# Storage Hierarchy
storage:
rootDir: "FlowStack/SchemFlow" # Root prefix in S3 bucket
defaultGroup: "default" # Default group name (shown in UI)
# World Provisioning System
provisionOnStartup: false # Enable auto-provisioning
worlds:
- name: "lobby" # World name
enabled: true # Enable this world
flat: true # Use flat world generator
schem: "lobby_base" # Schematic to paste
pasteAt: "0,64,0" # Paste coordinates (x,y,z)
gamerules: # Custom game rules
doMobSpawning: false
doDaylightCycle: false
doWeatherCycle: false
randomTickSpeed: 0- Cache Settings: Set
cacheRefreshSecondsto 300+ for large storage buckets - Network Optimization: Use local MinIO for best performance (sub-10ms latency)
- Local Downloads: Keep frequently-used schematics local for instant access
- FastAsyncWorldEdit: Enable for 10x faster large schematic operations
- Concurrent Operations: SchemFlow handles multiple simultaneous operations
- S3 Credentials: Use dedicated MinIO/S3 user with bucket-only permissions
- Network Security: Enable TLS/SSL (
secure: true) for production - Permission Groups: Restrict upload/delete permissions to trusted users
- Backup Strategy: Regular S3 bucket backups for disaster recovery
git clone https://github.com/c4g7-dev/SchemFlow.git
cd SchemFlow
mvn clean packageOutput: target/SchemFlow-v0.5.12-all.jar
- IDE: IntelliJ IDEA or Visual Studio Code with Java extensions
- Java: OpenJDK 21+ (tested with 21, 17 compatible)
- Dependencies: Automatically resolved via Maven
- Testing: Paper/Purpur test server with WorldEdit or FAWE
src/main/java/com/c4g7/schemflow/
├── SchemFlowPlugin.java # Main plugin class
├── cmd/ # Command handling
├── select/ # Selection management
├── skript/ # Skript integration
├── util/ # Utilities (SafeIO, ZipUtils)
├── we/ # WorldEdit integration
└── world/ # World provisioning
We welcome contributions! Here's how to get started:
- Fork the repository on GitHub
- Create a feature branch (
git checkout -b feature/amazing-feature) - Implement your changes with tests
- Commit your changes (
git commit -m 'Add amazing feature') - Push to your branch (
git push origin feature/amazing-feature) - Open a Pull Request with detailed description
- Follow existing code style and patterns
- Add JavaDoc comments for public methods and classes
- Test with both WorldEdit and FastAsyncWorldEdit
- Ensure backward compatibility with existing configurations
- Update documentation for new features
- Commands work with tab completion
- Local schematic operations function offline
- S3/MinIO operations handle network failures gracefully
- Group management preserves data integrity
- Trash/restore cycle works correctly
| Operation | v0.5.11 | v0.5.12 | Improvement |
|---|---|---|---|
| Tab completion response | 800ms | 50ms | 16x faster |
| List 1000 schematics | 2.1s | 0.1s | 21x faster |
| Local schematic paste | N/A | 0.3s | Instant offline |
| Cache refresh efficiency | 100% S3 calls | 10% S3 calls | 90% reduction |
| Update command safety | ❌ Silent overwrite | ✅ Explicit confirm | Accident prevention |
Benchmarks performed on Paper 1.21+ with 8GB RAM, local MinIO instance
- 🐛 Bug Reports: GitHub Issues
- 💡 Feature Requests: GitHub Discussions
- 💬 Community Chat: Discord Server
- 📖 Documentation: Wiki Pages
- S3 Connection: Check endpoint, credentials, and bucket permissions
- Tab Completion Slow: Increase
cacheRefreshSecondsor check network latency - Local Schematics Not Found: Verify
downloadDirpath and file permissions - Update Command Fails: Ensure
--confirmflag is included for safety
SchemFlow is released under the Apache-2.0 License — see LICENSE for details.
- Lead Developer: c4g7-dev team
- Community Contributors: Bug reports, feature requests, and code contributions
- Beta Testers: Early adopters who helped refine v0.5.12 features
- Paper/PaperMC - High-performance Minecraft server platform
- WorldEdit - World manipulation and schematic format
- FastAsyncWorldEdit - Performance enhancement layer
- Skript - Scripting integration for automation
- MinIO - High-performance S3-compatible object storage
🌊 SchemFlow v0.5.12 - Now with local support and lightning-fast performance
Made with ❤️ by c4g7-dev and the Minecraft community
