Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for Yippie

A modern continuation of Modifyworld for Paper servers, with fine-grained permission control over player actions.

Report Modifyworld-Reloaded?

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.

Information

Category
Protection
Published
October 1, 2026
License
7Downloads
0Stars

Pinned Versions

Members

1