A modern continuation of Modifyworld for Paper servers, with fine-grained permission control over player actions.
Modifyworld-Reloaded
A modern continuation of Modifyworld for Paper, controlling player actions with permissions that can vary by group and world.
Features
- Allow everyd``ay building while restricting TNT placement, lava buckets or ignition tools.
- Control crafting, item pickup and dropping, and which items players can put into or take from containers.
- Give groups different abilities in each world through permission contexts.
- Diagnose action permissions for online players with
/modifyworld check. - Customizable denial messages with seven bundled languages.
Requirements and compatibility
- Paper 26.2 and Java 25. Newer Paper versions are unverified; Spigot and Folia are unsupported targets.
- LuckPerms is recommended, not required; checks use Bukkit permissions.
- WorldGuard is optional for region protection; install its dependencies separately.
- See the release notes for version and validation details.
Installation and updates
Stop the server and place Modifyworld.jar in plugins/, replacing any older copy.
Start it to create plugins/Modifyworld/config.yml, assign permissions, review
settings and restart. Before updates, back up worlds, configuration and permissions;
follow the release-specific instructions.
Configuration changes require a restart. Use /mw reloadmessages for edits to the
active language file; it does not reload config.yml. Permission
changes apply on subsequent checks. Verify rules with a non-OP account in each world.
Commands and permissions
| Command | Permission / default access | Purpose |
|---|---|---|
/modifyworld check <permission> |
modifyworld.command.check.own; OP |
Check your own action permission |
/modifyworld check <player> <permission> |
modifyworld.command.check.others; OP and console |
Check an online player's action permission |
/modifyworld reloadmessages |
modifyworld.command.reloadmessages; OP and console |
Reload the active language file and fallbacks |
/modifyworld help |
Access to check or reloadmessages | Show permitted commands |
Reload applies denial, help and diagnostic messages; invalid files leave the previous messages active. Configuration changes still require a restart. Help shows permitted commands. Tab completion suggests online players and action permissions; custom action nodes can also be typed directly.
Console must name the player. /mw is enabled by default; set command-alias-mw: false
and restart to disable it. /modifyworld remains available.
Command details.
Example of how permissions work
Give builders access to ordinary materials while reserving TNT for a trusted group, or let players build in survival while keeping spawn interaction-only. LuckPerms world contexts let the same group have different permissions in each world.
Permissions describe individual actions, so you can control placing TNT separately from crafting it or taking it out of a chest:
| Permission example | Action controlled |
|---|---|
modifyworld.blocks.place.tnt |
Place TNT |
modifyworld.bucket.empty.lava |
Empty a lava bucket |
modifyworld.items.use.flintandsteel.on.block.tnt |
Use flint and steel on TNT when item-use checks are enabled |
modifyworld.items.craft.tnt |
Craft TNT |
modifyworld.items.take.tnt.of.chest |
Take TNT from a chest |
For example, a Player group can receive general survival access with a specific restriction on TNT placement. Run in the server console after creating the group:
lp group player permission set modifyworld.* true world=survival
lp group player permission set modifyworld.command.check.others false world=survival
lp group player permission set modifyworld.command.reloadmessages false world=survival
lp group player permission set modifyworld.blocks.place.tnt false world=survival
Replace survival with your actual world name. This grants survival access and
own permission checks while denying TNT placement, checks of other players and
message reload. TNT crafting, transfers and ignition remain separate permissions.
Existing assignments and inheritance can affect the result.
Assign grants as well as denials: unlisted actions are not automatically allowed.
LuckPerms resolves inheritance, wildcards, explicit denials and contexts;
world=<world-name> scopes a rule to that actual world. Material names are lowercase
without underscores, such as lavabucket and flintandsteel, rather than legacy
numeric IDs. There is no universal per-item permission.
op-bypass: false(default): OPs need assigned or inherited action permissions; implicit OP grants alone are insufficient.op-bypass: true: OPs bypass Modifyworld checks, including explicit denials.- Unknown inventory actions are an exception:
modifyworld.items.allowunknownaction.<item>defaults to allowed. Explicit denials apply unless OP bypass is active; known-action checks are unaffected.
Building, items, and inventories
Permission segments use lowercase names without underscores. <item> and <block>
refer to materials; <inventory> is a type such as chest, barrel or furnace.
Bucket <content> names include lava, water and other supported contents.
| Permission | Meaning |
|---|---|
modifyworld.blocks.place.<block> |
Place blocks, including all blocks in a multi-block placement |
modifyworld.blocks.destroy.<block> |
Break blocks |
modifyworld.blocks.place.fire |
Player-caused fire ignition, including soul fire |
modifyworld.blocks.interact.<block> |
Block interaction when item-use-check is false; also physical interactions |
modifyworld.items.use.<item>.on.block.<block> |
Use an item on a block when item-use-check is true |
modifyworld.items.use.<item>.on.entity.<entity> |
Use an item on an entity when item-use-check is true |
modifyworld.bucket.empty.<content> |
Empty a bucket; e.g. lava or water, including supported cauldrons |
modifyworld.bucket.fill.<content> |
Fill a bucket; e.g. lava, water, milk, or powdersnow |
modifyworld.items.pickup.<item> |
Pick up a dropped item |
modifyworld.items.drop.<item> |
Drop an item |
modifyworld.items.hold.<item> |
Hold an item in the hotbar |
modifyworld.items.have.<item> |
Possess an item when item-restrictions is enabled |
modifyworld.items.craft.<item> |
Craft items, including shift crafting |
modifyworld.items.enchant.<item> |
Enchant an item |
modifyworld.items.throw.<item> |
Throw eggs, snowballs, experience bottles, splash potions, or lingering potions |
modifyworld.items.put.<item>.of.<inventory> |
Insert an item into the top inventory |
modifyworld.items.take.<item>.of.<inventory> |
Take an item from the top inventory |
modifyworld.items.allowunknownaction.<item> |
Policy for unknown inventory actions; special default described below |
Item-use checks replace ordinary block/entity interaction checks when enabled.
Opening a chest with an empty hand then checks
modifyworld.items.use.air.on.block.chest; taking or putting items is checked
separately. Container checks cover clicks, shift-clicks, dragging, hotbar/offhand
swaps and double-click collection; a swap needs both take and put permission.
Other permissions
<entity> includes category prefixes, such as monster.creeper or animal.wolf;
spawn-egg <type> uses the unprefixed entity type. <cause> identifies a damage cause.
| Permission | Meaning |
|---|---|
modifyworld.login |
Additional admission check, only with require-login-permission: true |
modifyworld.chat |
Send chat messages |
modifyworld.chat.private |
Legacy command filter for messages starting with /tell; not a complete private-message filter |
modifyworld.sneak |
Start sneaking |
modifyworld.sprint |
Start sprinting |
modifyworld.usebeds |
Enter a bed |
modifyworld.digestion |
Allow food-level changes |
modifyworld.interact.<entity> |
Entity interaction when item-use-check is false |
modifyworld.spawn.<type> |
Use a spawn egg for the entity type |
modifyworld.tame.<entity> |
Tame an entity |
modifyworld.mobtarget.<entity> |
Allow an entity to target the player |
modifyworld.damage.deal.<entity> |
Deal direct player-caused damage to an entity |
modifyworld.damage.take.<entity> |
Receive damage from an entity |
modifyworld.damage.take.<cause> |
Receive environmental damage; e.g. fall or lava |
modifyworld.vehicle.enter.<entity> |
Enter a vehicle |
modifyworld.vehicle.destroy.<entity> |
Damage a vehicle directly as a player |
modifyworld.vehicle.collide.<entity> |
Allow a vehicle collision with the player |
See the complete action reference and LuckPerms world examples for setup and inventory edge cases.
Permission diagnostics
For example: /modifyworld check modifyworld.blocks.place.tnt.
Use a concrete action node, without wildcards; checks use the online target's current
world. The result diagnoses Modifyworld permissions, not whether other plugins allow
the event. Output interpretation.
Configuration
Settings in plugins/Modifyworld/config.yml control item checks, OP bypass, language
and admission checks. item-restrictions can remove denied items when inventories
are checked. Review the
settings and defaults before enabling restrictions.
Updates preserve settings and custom messages. Changed files are backed up;
version-only updates create no backup. Do not edit config-version.
Conflicting legacy messages require manual merging.
Upgrade details.
check-for-updates checks GitHub at startup and links to Hangar without downloading
files. Set it to false and restart to disable it.
Update-check details.
Messages and languages
Choose en, de, es, fr, pt_br, pl or tr. For custom messages, edit
lang/own.yml, select language: own, keep messages: {} and restart. Later text
edits can be applied with /mw reloadmessages; changing the selected language
still requires a restart. Place color resets after highlighted placeholders, e.g.
&a$1&4 and &a$3&4, so following text keeps its sentence color.
Missing custom entries use English fallback; material/entity names remain English.
See formatting and language details.
Migrating permissions from legacy Modifyworld
Legacy numeric IDs, metadata entries and PEX world rules need manual conversion; configuration migration does not convert permissions. Follow the migration guide and verify effective grants and denials.
Troubleshooting and limitations
Invalid configuration/language files disable the plugin while the server continues: protection is inactive until errors are corrected and the server restarted.
WorldGuard owns region protection; Modifyworld respects existing event cancellations. OP bypass does not override other plugins. Automation, natural fire spread and redstone/TNT chain reactions are outside the general player-permission model. Placement, ignition and explosion protection are separate concerns. Checks do not provide a blanket ban on an item's existence or recursively restrict container contents. Custom inventories, creative actions and plugin-driven paths need server-specific verification. See scope and interactions.
License and credits
Original Modifyworld by t3hk0d3 and the contributors to
PEXPlugins/Modifyworld; community port maintained
by yippieyaray. GNU GPL version 2 or later (GPL-2.0-or-later). See
LICENSE and NOTICE for retained attribution and provenance.
Pinned Versions
- R26.2
Pages
Members
1Owner