BlockRedstoneEvent not reliably fired for Repeater blocks when redstone-implementation is VANILLA
Nobody has claimed this yet.
- 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
- Set redstone-implementation: VANILLA in paper-world-defaults.yml
- Register a plugin listener for BlockRedstoneEvent (EventPriority.HIGH)
that logs every event received, including block type and location - Place a Redstone Repeater block facing into an adjacent solid block
(e.g. a Wall Sign) - Power the repeater's input so it turns on/lit, sending its output
into the adjacent block - 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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