VanillaProtect
VanillaProtect a lightweight protection plugin that prevents new players from breaking blocks or opening containers placed by others. Newcomer period, storage type, and languages (EN/RU/UK/DE) are fully configurable. Supports Paper, Purpur, Spigot, Bukkit
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
VanillaProtect
VanillaProtect
VanillaProtect is a lightweight yet powerful protection plugin for Minecraft servers running Paper, Purpur, Spigot, Bukkit or Folia 1.21+. It automatically tracks block ownership and prevents new players from breaking blocks or opening containers placed by other players. No commands needed from players, everything works out of the box.
🛡️ How it works
When any player places a block, VanillaProtect silently records that block's location and the player's UUID in a database. If a newcomer (a player whose first join was less than N hours ago) tries to break or open something that belongs to another player, the action is cancelled and the newcomer gets a friendly message explaining how much time they have left.
Once the newcomer period expires, all restrictions are lifted automatically.
✨ Features
- No dependencies - newcomers cannot break blocks placed by other players - No dependencies - chests, barrels, shulker boxes, furnaces, dispensers, hoppers, brewing stands, anvils, crafters and more are all protected - No dependencies - toggle in config - No dependencies - stone, dirt, trees etc. are not restricted by default (configurable) - No dependencies - only the exact blocks placed by others are protected, not entire regions - No dependencies - set anywhere from 6 to 24+ hours - No dependencies - SQLite (recommended) or YAML flat file - No dependencies - data is saved periodically and on shutdown - No dependencies - fully compatible with threaded region servers - No dependencies - single JAR, drop and go
🌍 Multi-language support
VanillaProtect ships with 4 built-in languages:
| Code | Language | |------|-----------| | `en` | English | | `ru` | Русский | | `uk` | Українська | | `de` | Deutsch |
You can also create your own language file by placing a `plugins/VanillaProtect/lang/<code>.yml` file in the plugin folder. All messages support color codes.
⚙️ Configuration overview
```yaml
How long a player is considered a newcomer (in hours)
newcomer-hours: 12
Toggle individual protections
protection: block-break: true chest-open: true block-place: false block-interact: false
Storage backend: sqlite or yaml
storage: type: sqlite auto-save: 5
Disable protection in specific worlds
disabled-worlds: - world_nether - world_the_end ```
💬 Commands
| Command | Description | |---------|-------------| | `/vp reload` | Reload config and language files without restarting | | `/vp status` | Show current plugin status and settings | | `/vp info <player>` | View a player's join date, playtime and newcomer status | | `/vp bypass <player>` | Toggle bypass for a player (removes all restrictions) |
Aliases: `/vanillaprotect`, `/vp`, `/vprotect`
🔑 Permissions
| Permission | Description | Default | |------------|-------------|---------| | `vanillaprotect.admin` | Access to all admin commands | OP | | `vanillaprotect.bypass` | Bypass newcomer restrictions | OP | | `vanillaprotect.bypass.others` | Grant/revoke bypass for others | OP |
📦 Compatibility
| Platform | Supported | |----------|-----------| | Paper 1.21+ | ✅ | | Purpur 1.21+ | ✅ | | Spigot 1.21+ | ✅ | | Bukkit 1.21+ | ✅ | | Folia 1.21+ | ✅ |
📁 Plugin folder structure
``` plugins/VanillaProtect/ ├── config.yml ├── blocks.db └── lang/ ├── en.yml ├── ru.yml ├── uk.yml └── de.yml ```
*Made by 1mN1kO*