SopCustomBlocks
SopCustomBlocks allows you to create and place custom blocks using resource pack item models and visual entities powered by SopLib.
Perfect for RPG servers, survival enhancements, builders, custom maps, generators, decorations, and advanced gameplay systems.
The plugin supports persistent block saving, configurable behavior, scaling, rotation, placement offsets, API integration, and custom events for developers.
✨ Features
✔ Create unlimited custom blocks using item models
✔ Persistent block storage after server restart
✔ Supports scaling, offsets, and rotation
✔ Optional player-based rotation system
✔ Explosion support
✔ Break permissions & admin-only blocks
✔ API for developers
✔ Custom block lifecycle events
✔ Lightweight and easy to configure
✔ Compatible with Spigot & Paper 1.16.5+
Requirements
- Spigot/Paper 1.16.5+
- SopLib
- PlaceholderAPI
- NBTAPI
⚙ Configuration Example
Code (Text):
'1':
material: STONE
model: 1
replacement-block: ANDESITE
name: "Custom Block #1"
lore:
- "This is a"
- "custom block"
'2':
material: STONE
model: 2
name: "Custom Block name"
lore:
- "Custom Block lore"
replacement-block: BARRIER
break-only-admin: true
break-by-hit: true
can-exploded: true
use-player-rotation: true
rotation-round: 45
scale-x: 5.0
scale-y: 5.0
scale-z: 5.0
pos-x: 0.5
pos-y: 2.5
pos-z: 0.5
Commands
/sopcustomblocks
/sopcustomblocks give <player> <id> [amount]
/sopcustomblocks reload
Permission
sopcustomblocks.admin
Developer API
SopCustomBlocks includes a public API for plugin integrations.
Example:
Code (Text):
if (SopCustomBlocksAPI.isAvailable()) {
SopCustomBlocksAPI.placeBlock("core_1", location);
String blockId = SopCustomBlocksAPI.getBlockId(location);
}
Available features:
- Place custom blocks
- Remove custom blocks
- Detect custom blocks
- Get block items
- Read custom block IDs
- Player rotation support
- Event integration
Events
Available events:
- SopCustomBlockPlaceEvent
- SopCustomBlockBreakEvent
- SopCustomBlockInteractEvent
Example:
Code (Text):
@EventHandler
public void onCustomBlockBreak(SopCustomBlockBreakEvent event) {
if ("generator".equalsIgnoreCase(event.getCustomBlock().getId())) {
event.setCancelled(true);
}
}
Perfect For
- RPG servers
- Survival servers
- Custom furniture
- Decorative systems
- Generators
- Mining systems
- Custom gameplay mechanics
- Adventure maps
Notes
Do NOT place blocks manually using Bukkit block type changes.
Always use the provided API methods to ensure proper visual handling and persistence.
Installation
- Install SopLib
- Install PlaceholderAPI
- Install NBTAPI
- Place SopCustomBlocks into your plugins folder
- Restart server
- Configure your custom blocks
- Enjoy
Test Server
You can test this plugin on the official server:
sop.li
(1.12.2+)
Discord
Need help or want to contact us?
https://discord.gg/sopli
Support & Feedback
If you have questions, suggestions, or found an issue, please use: