promotional bannermobile promotional banner

Player Activity View

Shows what other players are doing — typing, in GUIs, idle — with in-world particle indicators and animations
Back to Files

Player Activity View (0.0.0-beta.2)

File nameplayer_activity_view-1.21.1-neoforge-21.1.249-0.0.0-beta.2.jar
Uploader
LlaGuiT0LlaGuiT0
Uploaded
Oct 2, 2026
Downloads
13
Size
1.5 MB
Mod Loaders
NeoForge
File ID
9041294
Type
B
Beta
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:player-activity-view-1608907:9041294"

Learn more about Curse Maven

What's new

v0.0.0-beta.2 - Screen mirror fixed: open GUIs render again

Bug-fix beta for Minecraft 1.21.1 / NeoForge 21.1.249. If a remote player's menu, inventory or pause screen showed nothing at all above their head after the first screen had been shared once, this is the build you want. Same feature set as beta.1 otherwise.

Fix

  • Opening an inventory or the pause menu rendered nothing. Two chained causes:
    • The particle-selection logic had been rewritten to the 26.1.2/26.2 approach, which deliberately suppresses the static sprite icon (inventory_*, escape_menu_*, …) once live screen-mirror pixels exist and hands the actual drawing to a separate world-space renderer. That renderer was never brought over in the 1.21.1 backport, so there was nothing left to draw.
    • Worse, the suppression latched permanently. The mirrored screen texture is only ever replaced, never cleared, when its size changes — so after the very first screen had been shared, that condition stayed true for the rest of the session. Every later GUI a player opened produced no visual at all. The first open still worked (no pixels yet), which made the bug look intermittent.
  • The chat screen had the same hole: typing / idle chat sprites were suppressed as soon as chat mirror pixels arrived, with nothing replacing them.

Technical Changes

  • The screen mirror is drawn again through the custom particle engine (ParticleDynamic), the path upstream WATUT uses on 1.21.x. A separate world-space renderer was deliberately not used: on 1.21.1 AbstractTexture#getId() returns the raw GL texture id, so the per-player dynamic texture cannot be fed to a standard render type. The per-player ParticleRenderType created by ScreenData#initClient() is reused instead — it resolves the current texture at draw time, so it survives a window resize.
  • ParticleDynamic now overrides its texture coordinates to the full 0..1 range. It draws from a standalone texture rather than an atlas sprite, and the inherited sprite reference was never assigned, which would have thrown while rendering.
  • ParticleRotating gained per-axis quad scale hooks, so the mirror panel can be non-square.
  • The particle is now upgraded or downgraded between icon and mirror as screen data arrives, instead of only when the GUI state changes.
  • Sprite binding no longer swallows errors silently. Anything missing from the particle atlas is now reported in the log under player_activity_view/particles — the previous failure mode was “nothing renders, with no error anywhere”.
  • Removed a redundant particle atlas override that was a no-op and misleading.

Notes

Beta. Building, all mixins and the custom blur shaders are verified in a clean 1.21.1 / NeoForge 21.1.249 client. In-game behaviour with a second player is still not verified — the screen capture / transfer path could not be exercised without a live session. Please report issues. Install on both client and server; every feature is toggleable client-side and via the server config. No dependency or loader version changes.
Inspired by WATUT (What Are They Up To) by Corosus. Independent codebase, no dependency on CoroUtil. Not affiliated with or endorsed by the original author.

JAR: player_activity_view-1.21.1-neoforge-21.1.249-0.0.0-beta.2.jar

This mod has no additional files