
CraftGuard
A lightweight, highly configurable Minecraft plugin for managing restrictions for workstations on a per-world basis.
CraftGuard
Granular, per-world management for crafting, workstations, containers, and portals across your Minecraft server network.
[!NOTE] Project Evolution & Rebranding Notice
- Evolution: CraftGuard is the official successor to FlameAntiCraft.
- Future Rebrand: CraftGuard will soon transition to ServerGuard under the VOMLabs Organization. This rebrand will include a complete plugin rewrite for maximum performance and reliability, and Maven support will be deprecated in favor of Gradle (Kotlin DSL).
Overview
CraftGuard provides precise control over player interactions down to individual world environments. Block crafting tables, restrict ender chests, or lock down portal dimensions per world. This is ideal for survival hubs, creative plots, minigame arenas, and adventure maps.
Key Highlights
- Per-World Toggles: Configure completely independent rules for every world on your network.
- Workstation Protection: Control 15+ workstation types (Anvils, Furnaces, Grindstones, Smithing Tables, etc.).
- Container Security: Restrict usage of Chests, Ender Chests, Shulker Boxes, and specialized containers.
- Portal Management: Separately toggle Nether and End portal transitions.
- Flexible Storage: Native support for YAML, H2, MySQL, MariaDB, PostgreSQL, MongoDB, and Redis.
- GUI & Smart Commands: Complete visual management interface alongside fast tab-completed commands.
- Localization & Placeholders: Dynamic PlaceholderAPI integration and multi-language support.
Supported Features Matrix
| Category | Supported Mechanics & Block Types |
|---|---|
| Core Mechanics | crafting, nether-portal, end-portal, lockdown |
| Workstations | anvil, furnace, blast-furnace, smoker, enchanting, brewing, smithing, loom, cartography, grindstone, stonecutter |
| Containers | chest, trapped-chest, ender-chest, copper-chest, shulker-box |
Quick Setup & Installation
Requirements
- Server: Paper 1.21.x (or forks like Purpur, Folia)
- Java: Version 21 or higher
- Optional: PlaceholderAPI (for dynamic placeholders), WorldGuard (for region-based bypasses)
[!WARNING] Version Support Notice CraftGuard does NOT officially support any
26.x.xor older versions at this time. Full official support and enhanced reliability will arrive alongside the upcoming ServerGuard rebrand and rewrite.
Installation
- Download the latest
craftguard-X.X.X.jarfrom Modrinth. - Place the
.jarfile in your server'splugins/directory. - Restart your server to generate configuration files.
- Manage settings in-game via
/cgor editplugins/CraftGuard/config.yml.
Quick Command Examples
# Block crafting in the "lobby" world
/cg lobby crafting off
# Enable nether portals in the "survival" world
/cg survival nether-portal on
# Open the interactive management GUI
/cg
Commands & Permissions
Commands
| Command | Description | Permission |
|---|---|---|
/cg | Opens the main interactive management GUI | craftguard.admin |
/cg help | Displays the help menu | craftguard.admin |
/cg <world> <feature> <on/off> | Changes a specific feature state in a world | craftguard.admin |
/cg reload | Reloads plugin configurations and locales | craftguard.admin |
/cg export | Exports settings to a backup file | craftguard.admin |
/cg import | Imports settings from a file | craftguard.admin |
/cg migrate [copy] | Copies or moves configuration between worlds | craftguard.admin |
Permissions
| Permission | Description | Default |
|---|---|---|
craftguard.admin | Grants full access to all CraftGuard commands and GUI | OP |
craftguard.bypass.* | Bypasses all world restrictions | false |
craftguard.bypass.<feature> | Bypasses a specific interaction restriction (e.g., craftguard.bypass.anvil) | false |
Configuration
Settings are saved to plugins/CraftGuard/*.yml.
settings:
enabled: true # Global master toggle
language: en-us # Active locale file
default-state: true # Default rule state for newly created worlds
item-blockability:
enabled: true
blocked-items:
CRAFTING:
- DIAMOND_SWORD
- NETHERITE_*
PlaceholderAPI Integration
Expose real-time feature states and statistics to scoreboards, tablists, or holograms. (Replace <world> and <feature> with your specific values, e.g., %craftguard_world_survival_furnace%).
World States
%craftguard_world_state%— State of the current world (enabled/disabled).%craftguard_world_state_<feature>%— Feature state in the current world.%craftguard_world_<world>_<feature>%— Feature state in a specific world.
Statistics
%craftguard_stats_global_total%— Total blocked interactions network-wide.%craftguard_stats_type_<feature>_total%— Total blocked interactions for a specific feature type.%craftguard_stats_world_<world>_total%— Total blocked interactions in a specific world.
Developer API
Build against CraftGuard using modern Paper standards.
[!NOTE] Upcoming Changes: When CraftGuard transitions to ServerGuard, the plugin will undergo a complete rewrite, the same will hapen to its API.
Build Setup (Maven)
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.github.itzzjustmateo</groupId>
<artifactId>CraftGuard</artifactId>
<version>VERSION</version> <!-- Replace with the actual version tag -->
<scope>provided</scope>
</dependency>
</dependencies>
Alternatively, clone and build locally:
git clone https://github.com/itzzjustmateo/CraftGuard.git
cd CraftGuard
mvn clean package
API Usage
CraftGuard plugin = CraftGuard.getInstance();
ConfigManager configManager = plugin.getConfigManager();
// Check if a feature is enabled in a world
boolean isCraftingEnabled = configManager.isFeatureEnabled("survival", "crafting");
// Set a feature state programmatically
configManager.setFeatureEnabled("survival", "furnace", false);
Support & Community
- 🐛 Bug Reports: GitHub Issues
- 💡 Feature Requests: GitHub Discussions
- 💬 Discord Support: Join our Discord Server
