PHPackages                             aiptu/blockreplacer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. aiptu/blockreplacer

ActiveProject

aiptu/blockreplacer
===================

A PocketMine-MP plugin that replaces a block with another block at a predetermined time.

3.0.2(2y ago)1502[3 PRs](https://github.com/AIPTU/BlockReplacer/pulls)MITPHPCI passing

Since Dec 31Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/AIPTU/BlockReplacer)[ Packagist](https://packagist.org/packages/aiptu/blockreplacer)[ RSS](/packages/aiptu-blockreplacer/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (5)Dependencies (6)Versions (9)Used By (0)

BlockReplacer
=============

[](#blockreplacer)

[![](https://camo.githubusercontent.com/a521334d283bff18ce794d3d0707e66ce8a4aaae11838d4d7e95d5d597fdf8ba/68747470733a2f2f706f676769742e706d6d702e696f2f736869656c642e73746174652f426c6f636b5265706c61636572)](https://poggit.pmmp.io/p/BlockReplacer)[![](https://camo.githubusercontent.com/f3fac977990c29083ecd1da0ac529e6e58d68d22623509962e857cb39c1d72ef/68747470733a2f2f706f676769742e706d6d702e696f2f736869656c642e646c2e746f74616c2f426c6f636b5265706c61636572)](https://poggit.pmmp.io/p/BlockReplacer)

A PocketMine-MP plugin that replaces a block with another block at a predetermined time.

Features
========

[](#features)

- **Automatic Update Checker**: The plugin automatically checks for updates, ensuring that you have the latest version with new features and bug fixes.
- **Permission Bypass**: Grant specific users the `blockreplacer.bypass` permission to allow them to bypass block replacement and interact with blocks without triggering the replacement process.
- **Automatic Item Pickup Support**: Enable automatic pickup of items dropped after block replacement, making it convenient for players to collect them.
- **Custom Block Replacement**: Define rules for replacing specific blocks, allowing you to create unique environmental transformations and dynamic gameplay scenarios.
- **Custom Drop Block**: Specify custom blocks to be dropped when certain blocks are broken, adding variety and alternative interactions. You can even include custom drop experience blocks, providing players with experience orbs upon block destruction.
- **World Blacklist and Whitelist Support**: Control block replacement in specific worlds using blacklists and whitelists, providing tailored gameplay experiences.
- **Sound Customization Support**: Customize the sounds associated with block replacement, enhancing immersion and creating a unique audio experience.
- **Particle Customization Support**: Customize particle effects during block replacement, adding visual flair and enhancing the overall aesthetic appeal.
- **Block Replacement during Server Stop**: Block replacement continues when the server is stopped, and changes are applied upon server restart.
- **Scheduled Block Replacement**: Schedule block replacement at specific times or intervals, automating changes to the game environment.

Permissions
===========

[](#permissions)

- `blockreplacer.bypass`: Grants users the ability to bypass block replacement, allowing them to interact with blocks without triggering the replacement process.

Default Config
==============

[](#default-config)

```
# BlockReplacer Configuration

# Permission defaults for the "blockreplacer.bypass" permission.
# This permission allows players to bypass block replacement.
# Valid values:
#   - op: All server operators (ops) are assigned this permission by default.
#   - all: Everyone is assigned this permission by default.
#   - none: No one is assigned this permission by default.
permission:
  defaults: op

# Automatic Item Pickup
# Dropped items will be automatically added to the player's inventory.
# If the player's inventory is full, the item will be dropped near the player.
# This also includes experience points.
auto-pickup:
  enabled: true

# Block Replacement Rules
blocks:
  # The default block used for replacement.
  default-replace: air
  # The default time (in seconds) before a block is replaced with the previous block.
  default-time: 60
  # List of block replacement rules.
  # This should also always be wrapped in quotes to ensure it is parsed correctly.
  # Format: "block_from=block_to=time".
  # If "block_to" is not set, it will be replaced with the default replacement block.
  # If "time" is not set, it will be replaced with the default replacement time.
  list:
    # Example 1: Replace cobblestone with stone within 5 seconds, with drops and experience.
    "cobblestone=stone=5":
      drops:
        - item: stone
          amount: 1-2  # Amount range: from 1 to 2
          chance: 50-100  # Chance range: from 50% to 100%
      experience:
        amount: 5  # Fixed experience amount
        chance: 100  # Fixed chance

    # Example 2: Replace oak log with spruce log within 10 seconds, no drops, and double experience.
    "oak_log=spruce_log=10":
      drops: []
      experience:
        amount: 2  # Double the default experience amount
        chance: 100  # Fixed chance

    # Example 3: Replace diamond ore with emerald ore, follows default replacement time, with drops and experience.
    "diamond_ore=emerald_ore":
      drops:
        - item: emerald
          amount: 1-2  # Amount range: from 1 to 2
          chance: 50-100  # Chance range: from 50% to 100%
      experience:
        amount: 10  # Fixed experience amount
        chance: 50  # Fixed chance

    # Example 4: Replace redstone ore with glowstone, within 8 seconds, with drops and quadruple experience.
    "redstone_ore=glowstone=8":
      drops:
        - item: glowstone_dust
          amount: 4-6  # Amount range: from 4 to 6
          chance: 80-100  # Chance range: from 80% to 100%
      experience:
        amount: 4  # Quadruple the default experience amount
        chance: 100  # Fixed chance

    # Example 5: Replace oak wood with acacia wood within 15 seconds, no drops, and custom experience.
    "oak_wood=acacia_wood=15":
     drops: []
     experience:
       amount: 10  # Fixed experience amount
       chance: 100  # Fixed chance

    # Example 6: Replace stone with random wool color, follows default replacement time, with drops and experience.
    "stone":
      drops:
        - item: wool
          amount: 1-3  # Amount range: from 1 to 3
          chance: 50-100  # Chance range: from 50% to 100%
      experience:
        amount: 5  # Fixed experience amount
        chance: 100  # Fixed chance

    # Example 7: Replace gold ore with default replacement block and time, with drops and a unique item tool.
    "gold_ore":
      drops:
        - item: diamond_pickaxe
          amount: 1  # Fixed amount
          chance: 10  # Fixed chance
          name: "§6Efficiency's Edge"  # Custom name for the item
          lore:
            - "§eHarness the power of swiftness." # Custom lore for the item
            - "§bWithstands the test of time and labor."
            - "§aEffortlessly carves through any material."
          enchantments:
            - name: haste
              level: 3
            - name: efficiency
              level: 5
            - name: unbreaking
              level: 3

# Particle Effects
particles:
  # Whether to display particles when destroying blocks.
  enabled: true
  # The name of the particle to be displayed when destroying the previous block.
  from: minecraft:villager_happy
  # The name of the particle to be displayed when replacing the block after it.
  to: minecraft:explosion_particle

# Sound Effects
sounds:
  # Whether to play sound effects when destroying blocks.
  enabled: true
  # The volume of the sound effects.
  volume: 1
  # The pitch of the sound effects.
  pitch: 1
  # The name of the sound to be played when destroying the previous block.
  from: random.orb
  # The name of the sound to be played when replacing the block after it.
  to: random.explode

# World Configuration
worlds:
  # Set this to true if you want to use the blacklisted-worlds setting.
  # If both enabled-world-blacklist and enabled-world-whitelist are set to the same setting,
  # the block will be replaced for all worlds.
  enabled-world-blacklist: false
  # If enabled-world-blacklist is set to true, the block will be replaced for all worlds,
  # except the worlds mentioned here.
  blacklisted-worlds:
    - blacklistedworld1
    - blacklistedworld2
  # Set this to true if you want to use the whitelisted-worlds setting.
  # If both enabled-world-blacklist and enabled-world-whitelist are set to the same setting,
  # the block will not be replaced for all worlds.
  enabled-world-whitelist: false
  # If enabled-world-whitelist is set to true, blocks will not be replaced for all worlds,
  # except the worlds mentioned here.
  whitelisted-worlds:
    - whitelistedworld1
    - whitelistedworld2
```

Upcoming Features
=================

[](#upcoming-features)

- Currently none planned. You can contribute or suggest for new features.

Additional Notes
================

[](#additional-notes)

- If you find bugs or want to give suggestions, please visit [here](https://github.com/AIPTU/BlockReplacer/issues).
- We accept all contributions! If you want to contribute, please make a pull request in [here](https://github.com/AIPTU/BlockReplacer/pulls).
- Icons made from [www.flaticon.com](https://www.flaticon.com)

###  Health Score

37

—

LowBetter than 82% of packages

Maintenance65

Regular maintenance activity

Popularity9

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 80.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~121 days

Total

5

Last Release

738d ago

Major Versions

2.0.1 → 3.0.02023-06-27

### Community

Maintainers

![](https://www.gravatar.com/avatar/aa0f82ae31849fc12498a3f34c511bd347db0a2c7f5892b0cb2b5d754e0d3127?d=identicon)[AIPTU](/maintainers/AIPTU)

---

Top Contributors

[![AIPTU](https://avatars.githubusercontent.com/u/85402087?v=4)](https://github.com/AIPTU "AIPTU (149 commits)")[![renovate[bot]](https://avatars.githubusercontent.com/in/2740?v=4)](https://github.com/renovate[bot] "renovate[bot] (26 commits)")[![KRUNCHSHooT](https://avatars.githubusercontent.com/u/65598325?v=4)](https://github.com/KRUNCHSHooT "KRUNCHSHooT (7 commits)")[![deepsource-io[bot]](https://avatars.githubusercontent.com/in/16372?v=4)](https://github.com/deepsource-io[bot] "deepsource-io[bot] (2 commits)")[![poggit-bot](https://avatars.githubusercontent.com/u/22427965?v=4)](https://github.com/poggit-bot "poggit-bot (1 commits)")

---

Tags

pocketmine-mppocketmine-plugin

###  Code Quality

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/aiptu-blockreplacer/health.svg)

```
[![Health](https://phpackages.com/badges/aiptu-blockreplacer/health.svg)](https://phpackages.com/packages/aiptu-blockreplacer)
```

###  Alternatives

[muqsit/invmenu

A PocketMine-MP virion to create and manage virtual inventories!

2234.2k1](/packages/muqsit-invmenu)[sof3/libasynql

1427.8k3](/packages/sof3-libasynql)[muqsit/simple-packet-handler

Handle specific data packets (virion for PMMP API 4.0.0)

426.1k3](/packages/muqsit-simple-packet-handler)[dktapps/pmforms

Form API library for PocketMine-MP plugins

522.3k1](/packages/dktapps-pmforms)[sof3/infoapi

321.2k1](/packages/sof3-infoapi)[muqsit/asynciterator

A virion that simplifies writing tasks that traverse iterators

182.9k](/packages/muqsit-asynciterator)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
