
MMOBlock Mining & Gathering v2.8.5-Latest
Unblock the Fun, One Click at a Time with MMOBlock
MMOBlock is a powerful Bukkit plugin that revolutionizes your Minecraft server by introducing interactive custom entities and blocks. With seamless integration to popular plugins like ModelEngine, MMOItems, ItemsAdder, Nexo, and PlaceholderAPI, MMOBlock brings a new level of immersion and engagement to your server.
Features
- Custom Entities: Spawn and interact with customizable entities with advanced properties, animations, and conditions.
- Custom Blocks: Place invulnerable blocks with dynamic configurations, including support for ItemsAdder, Oraxen, and Nexo custom blocks.
- Holograms: Modern hologram system with gradients, hex colors, item displays, and multi-line spacing.
- Animations: Play ModelEngine animations on interaction or entity death.
- Advanced Drops & Rewards:
- Configure drops with chances, amount ranges, and multi-source items (vanilla, MMOItems, ItemsAdder, Nexo, MMOIdentifier).
- Client-Side Drops: Prevent lag with client-side item rendering.
- Lootsplosion: Visual explosion effects on drop.
- Item Beams/Glow: Customize beams (colors) and glowing effects (including rainbow) for dropped items.
- Per-player drops and profession EXP rewards (MMOCore).
- Tool Requirements: Define tools with durability loss, required clicks, and drop whitelists.
- Conditions: Enforce level (MMOCore), placeholder (PlaceholderAPI).
- Cooldowns: Prevent spamming with click cooldowns and respawn delays.
- Integration: Works with Nexo, MMOItems, MMOCore, ModelEngine, ItemsAdder, Oraxen, MMOIdentifier and PlaceholderAPI.
Installation
- Download MMOBlock from the Polymart resource page.
- Place the .jar file into your server’s plugins folder.
- Restart the server to generate configuration files.
- Configure entities/blocks in plugins/MMOBlock/block/<id>.yml (see below).
Configuration
Configurations are now modular. Each custom block/entity is defined in its own file under plugins/MMOBlock/block/<id>.yml.
Example block/example.yml:
example.yml
#config file version 2.8-latest
example: # section name and filename need to be the same, underscore will be not detected, you should rename the file to example.yml or remove the underscore
send-title: "&eYour tool not matching!" # vanilla color code usage
send-subtitle: "<red>or Tools are too low</red>" # color code usage
click_cooldown: 0.5
action_bar: true
#model: iron_ore #model from modelengine
#on_click: hit;0;0;1 #animaniton_name;lerpin;lerpout;speed
#ondeathanim: hit;0;0;1 #animaniton_name;lerpin;lerpout;speed
respawn: 5
death_delay: 1
hitbox:
size: 20
hologram:
enable: true # enable/disable holo
customHolo: # hologram line
'1': # 1 meaning line 1, line 1 on top
value: <#ANIM:wave:&1;#FFFFFF,10,10,u>Rainbow Ore</#ANIM>
#value: "<#ANIM:wave:&1;#FFFFFF,20,20,u>RainbowOre</#ANIM>" # wave animation usage <#ANIM:wave:[color1];[color2];[color3];[etc],[(int) stay],[(int) transition],[bold<b>/italic<i>/underline<u>/strikethrough<st>]>Text</#ANIM>
#value: "<#ANIM:fade:&1;#FFFFFF,20,20,u>RainbowOre</#ANIM>" # wave animation usage <#ANIM:fade:[color1];[color2];[color3];[etc],[(int) stay],[(int) transition],[bold<b>/italic<i>/underline<u>/strikethrough<st>]>Text</#ANIM>
#value: "<#ANIM:colors:&1;#FFFFFF,20,20,u>RainbowOre</#ANIM>" # wave animation usage <#ANIM:colors:[color1];[color2];[color3];[etc],[(int) stay],[(int) transition],[bold<b>/italic<i>/underline<u>/strikethrough<st>]>Text</#ANIM>
#value: "<#ANIM:scroll:&1;#FFFFFF,20,20,u>RainbowOre</#ANIM>" # wave animation usage <#ANIM:scroll:[color1];[color2];[color3];[etc],[(int) stay],[(int) transition],[bold<b>/italic<i>/underline<u>/strikethrough<st>]>Text</#ANIM>
#value: "<#ANIM:typewriter:&1;#FFFFFF,u>RainbowOre</#ANIM>" # wave animation usage <#ANIM:typewriter:[color1];[color2];[color3];[etc],[bold<b>/italic<i>/underline<u>/strikethrough<st>]>Text</#ANIM>
#value: "<#ANIM:burn:&1;#FFFFFF,u>RainbowOre</#ANIM>" # wave animation usage <#ANIM:burn:[color1],[color2],[bold<b>/italic<i>/underline<u>/strikethrough<st>]>Text</#ANIM>
height: 0.4 # line spacing
'2':
value: <#ANIM:scroll:&e;&c,5,5,st>Required Mining Lvl 1 </#ANIM> # hex usage
height: 0.4
'3':
value: <#00FF00>[Click to Mine]</#00FF00>
height: 0.4
'4':
value: item # identifier to use item display
id: DIAMOND_PICKAXE # item id
custom_model_data: 0 # support custom model data
height: 0.4
progressHolo:
"1":
value: <#ANIM:wave:&1;#FFFFFF,10,10,u>Rainbow Ore</#ANIM>
height: 0.4 # line spacing
"2":
value: "&7[&f%progress_bar%&7]" # progress bar
height: 0.4 # line spacing
deathHolo:
"1":
value: <#ANIM:wave:&1;#FFFFFF,10,10,u>Rainbow Ore</#ANIM>
height: 0.4 # line spacing
"2":
value: "<gradient:#FFA500:#F92986>Respawning in: %respawnTime%s</gradient>" # gradient usage
height: 0.4 # line spacing
detectionRange: 16 # range detect player to show hologram and hologram position
hologramDistance:
east: 5 # east cardinal positions max distance, if the value 0 always in center
south: 5 # south cardinal positions max distance, if the value 0 always in center
west: 4 # west cardinal positions max distance, if the value 0 always in center
north: 4 # north cardinal positions max distance, if the value 0 always in center
height: 2.5 # global height line customHolo
clickHeight: 2.5 # global height line progressHolo
respawnHeigth: 2.5 # global height line deathHolo
shadowed: true # or false
background: true
block:
onSpawn:
path: "uglyTree.yml"
adjustPlacement:
x: 1
y: 0
z: 4
onDeath:
path: "uglyTreeDead.yml"
adjustPlacement:
x: 1
y: 0
z: 4
# block:
# DIAMOND_ORE:
# locations:
# - 0, 0, 1, x, true
# - 1, 0, 0, x, true
# IRON_ORE:
# locations:
# - 1, 0, 1, x, true
conditions: []
# mmocore-level:
# level: mining:1
# send-title: "&eYour Level Is too Low"
# send-subtitle: "<red>Minimum Level 1</red>"
# condition1: #can make more than 1
# first: '%vault_eco_balance%'
# second: 500
# operator: '>'
# send-title: "&eYour funds not met"
# send-subtitle: "<red>Minimum 500</red>"
sounds:
onClick: block.stone.hit
onDeath: block.stone.break
drop-options:
ClientSideDrop: true
PerPlayerDrop: true
Lootsplosion: true
ItemBeam:
enable: true
color: BLUE
ItemGlowByDefault:
enable: true
color: RAINBOW
allowed_tools:
"1":
material: DIAMOND_PICKAXE
right_click:
decreaseDurability: 10
clickNeeded: 3
left_click:
decreaseDurability: 15
clickNeeded: 2
both_click:
decreaseDurability: 15
clickNeeded: 4
allowedDrops:
- exampledrop1
- exampledrop2
- exampledrop3
"2":
material: stone_pickaxe
both_click:
decreaseDurability: 15
clickNeeded: 4
allowedDrops:
- exampledrop1
"3":
material: _iainternal:iron_pickaxe_custom #ItemsAdder
right_click:
decreaseDurability: 10
clickNeeded: 3
left_click:
decreaseDurability: 15
clickNeeded: 2
allowedDrops:
- exampledrop1
- exampledrop2
- exampledrop3
- exampledrop4
- exampledrop5
- example_drop7
"4":
material: tool:steel_pickaxe #MMOItems
both_click:
decreaseDurability: 15
clickNeeded: 4
allowedDrops: [] #empty will allow all drops
"5":
material: forest_pickaxe #Nexo
both_click:
decreaseDurability: 15
clickNeeded: 4
allowedDrops: []
drops:
exampledrop1:
item:
material: raw_iron
total: [1-3] # drop lower amount is higher chance, higher amount is lower chance
chances: 1 # 1 is 100 percent
target: both_click #left_click or both_click
drop_type: inventory #inventory, minepacks, front_ground(front of player), and center_ground(center of entity).
exampledrop2:
exp:
value: [1-50]
chances: 0.6
target: right_click #left_click or both_click
drop_type: front_ground #front_ground(front of player), and center_ground(center of entity).
example_drop7:
profession:
value: woodcutting #mmocore profession exp
total: [ 1-30 ]
chances: 0.6
target: left_click #left_click or both_click
drop_type: front_ground #front_ground(front of player), and center_ground(center of entity).
exampledrop4:
item:
material: _iainternal:iron_pickaxe_custom #itemsadder
total: [1-2]
chances: 0.3
target: right_click #left_click or both_click
drop_type: inventory #inventory, minepacks, front_ground(front of player), and center_ground(center of entity).
exampledrop5:
item:
material: tool:steel_pickaxe #mmoitems
total: [1-2]
chances: 0.3
target: right_click #left_click or both_click
drop_type: inventory #inventory, minepacks, front_ground(front of player), and center_ground(center of entity).
example_drop6:
item:
material: warrior_item #mmoidentifier
total: [1-3]
chances: 0.4
target: both_click #left_click or both_click
drop_type: inventory #inventory, minepacks, front_ground(front of player), and center_ground(center of entity).
exampledrop8:
item:
material: forest_pickaxe #Nexo
total: [1-2]
chances: 0.4
target: right_click #left_click or both_click
drop_type: inventory #inventory, minepacks, front_ground(front of player), and center_ground(center of entity).
exampledrop3:
command:
value: "give %player% diamond %amount%" #%player% and %amount% is internal placeholder
amount: [ 1-10 ]
chances: 0.2
target: right_click #left_click or both_click
Commands
- /mmoblock place <entityId> [world] [x] [y] [z]: Place entity.
- /mmoblock remove [all]: Remove entities guis or all.
- /mmoblock reload: Reload configurations.
<Required>, [Opsional]
Permissions
- mmoblock.place: Place entities.
- mmoblock.remove: Remove entities.
- mmoblock.reload: Reload plugin.
Integrations
- Nexo: Support for Nexo custom blocks and tools or drops.
- ItemsAdder: Support for ItemsAdder custom blocks and tools or drops.
- Oraxen: Support only custom blocks.
- MMOItems: Use custom items as tools or drops.
- MMOCore: Level requirements for interactions and profession exp drop.
- ModelEngine: Animate entities on click/death.
- packetevents: optimized for sending packet.
- PlaceholderAPI: Dynamic placeholders while interacting and usage for conditions.
- MMOIdentifier: Use custom items as drops.
Support
For support, join our Discord community.
Preview Videos
New Update Test Server Version 1.19-1.21
Test on Server Version 1.21
Test on Server Version 1.19-1.20
Documentation
Visit the MMOBlock Wiki for guides and examples.
Libraries Used
- NBT-API (shaded under plugin package)
- GlowingEntities (shaded under plugin package)
- packetevents
- xerial.sqlite-jdbc
- google.gson
- adventure