PaperMC / PaperMC/Paper

BlockRedstoneEvent not reliably fired for Repeater blocks when redstone-implementation is VANILLA

Open
#14,169 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: needs triage version: 1.21.11
Dominant language
Java
Stars
12.7k
Forks
3.5k
Avg merge
3d 13h
Merged PRs (30d)
11

Description

Expected behavior

BlockRedstoneEvent should fire for a Repeater block whenever its powered/lit
state changes, consistent with how it fires for Redstone Wire.

Observed/Actual behavior

BlockRedstoneEvent does not fire consistently for Repeater blocks when their
state changes from unpowered to powered (or vice versa), even with
redstone-implementation explicitly set to VANILLA. This was confirmed via
debug logging inside a plugin (CraftBook) that relies on this event to
detect repeater state changes: no BlockRedstoneEvent is logged for the
Repeater block itself, despite Redstone Wire changes in the same circuit
firing the event reliably.

This appears to be part of a recurring pattern of Repeater/Comparator
blocks being poorly supported by Paper's block-update event system,
similar to:

  • #10869 (BlockDestroyEvent not firing for repeaters/comparators)
  • #3251 (blocks including repeaters getting permanently stuck in a state)
  • #2643 (repeater not reliably forwarding signal to next repeater)
  • #3967 (levers and redstone pulses not firing the same events)

A CraftBook maintainer confirmed this as a longstanding, recurring issue:
"Repeaters have been notoriously poorly supported in both Spigot/Paper
over the years. This issue has disappeared and re-appeared a few times
over the lifecycle of the Bukkit API, as the server platforms have
rewritten how their redstone systems work."

Steps/models to reproduce
  1. Set redstone-implementation: VANILLA in paper-world-defaults.yml
  2. Register a plugin listener for BlockRedstoneEvent (EventPriority.HIGH)
    that logs every event received, including block type and location
  3. Place a Redstone Repeater block facing into an adjacent solid block
    (e.g. a Wall Sign)
  4. Power the repeater's input so it turns on/lit, sending its output
    into the adjacent block
  5. Observe: no BlockRedstoneEvent (or an inconsistent/missing one) is
    logged for the Repeater block itself
Plugin and Datapack List

Server Plugins (16):
Paper Plugins (1):

  • BKCommonLib
    Bukkit Plugins (15):
  • CraftBook, Essentials, MachinaBuilder, MachinaChem, MachinaCore, MachinaDrill,
    MachinaPump, mcMMO, Movecraft, ProtocolLib, SignManager, Train_Carts,
    TreeFeller, WorldEdit, WorldGuard

Datapacks:
There are 4 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)],
[file/movecraft-data.zip (world)], [paper (built-in)]
There are no more data packs available

Paper version

This server is running Paper version 1.21.11-132-ver/1.21.11@c5eb079 (2026-05-11T11:43:09Z) (Implementing API version 1.21.11-R0.1-SNAPSHOT)
You are running the latest version

Other

Diagnosed via CraftBook (github.com/EngineHub/CraftBook), where a
wireless-redstone IC failed to activate when powered directly by a
Repeater, but worked correctly when powered via Redstone Wire.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue with redstone-implementation set to VANILLA in paper-world-defaults.yml and a listener for BlockRedstoneEvent, following the repeater setup described. Trace how repeater state changes reach the event system and compare them with Redstone Wire updates. Done means repeater powered-state transitions reliably produce BlockRedstoneEvent notifications.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend-api-design, game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.