Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details
Presence Signals
Presence Signals shows what nearby players are doing through in-world indicators, synchronized poses, and optional live GUI previews.
Features
- Shows when another player is focused on chat or actively typing.
- Displays typing as a dedicated rectangular gray panel with the letters appearing live. It is not a screenshot of the chat window.
- Uses the real per-change typing rate to control the speed, strength, pulse, and wobble of the typing animation. Typing, replacing, deleting, and stopping all update the animation state.
- Detects typing in chat, writable books, signs, and command-block screens.
- Displays supported GUI states such as inventory, crafting, chests, furnaces, anvils, enchanting, trading, and other menus as sharp rectangular windows without the old oval mask.
- Crops container screens to the real GUI panel, so live slots, carried items, crafting ingredients and output, chest contents, cursor movement, and clicks remain visible. The Escape menu intentionally shows the full window.
- Animates the player's arms, head, mouse presses, and idle pose to match their activity.
- After five minutes without activity, moves the player into a pronounced sleeping pose, shows the idle indicator in-world, and adds
Zzto the tab player list. - Renders transferred item stacks moving between a player and an opened container.
- Supports configurable static GUI icons when detailed screen mirroring is disabled.
- Includes custom held-item arm corrections loaded from JSON.
How synchronization works
The client detects local activity and sends compact state updates to the server. The server validates the state, associates it with the sending player, and relays it to nearby clients. Detailed GUI previews are compressed screen pixels split into bounded packets; they are rate-limited and validated before being rendered.
For the live typing panel, up to the most recent 96 characters are sent through the server to nearby clients. Control characters are removed, slash-command text is never shown, and the server validates the current screen state before relaying text. Disable detailed GUI sharing if live letters should not be sent; other players will see only the generic typing state.
Privacy controls
Client configuration includes controls to:
- Disable sending detailed GUI screen images.
- Disable sending item-transfer information.
- Hide chat or non-chat GUI previews.
- Hide the local player's indicators in third person.
- Disable typing, GUI, idle, mouse-click, and sound effects individually.
Servers can also control the enabled features, viewing distance, update rates, screen size/radius, background removal, blur, full-screen capture mode, sounds, animations, and idle timeout.
Requirements
- Fabric Loader
- Fabric API installed separately
- Java 21 for Minecraft 1.21 through 1.21.11
- Java 25 for Minecraft 26.1 through 26.2
Fabric API is an external dependency and is not bundled in the Presence Signals jars. Install a Fabric API release matching the exact Minecraft version. Install Presence Signals on the server and on every client that should send or display activity.
Downloads and supported versions
| Project folder | Mappings | Supported Minecraft versions | Jar |
|---|---|---|---|
presence-signals-template-1.21.x |
Yarn | 1.21 through 1.21.11 | presence-signals-1.21-1.21.11-fabric-1.0.0+1.21-1.21.11.jar |
presence-signals-template-26.1.x |
Mojmap | 26.1 through 26.1.2 | presence-signals-26.1-26.1.2-fabric-1.0.0+26.1-26.1.2.jar |
presence-signals-template-26.2 |
Mojmap | 26.2 | presence-signals-26.2-fabric-1.0.0+26.2.jar |
The 1.21.x download is one universal jar. It contains version-selected internal Yarn implementations for the different 1.21 rendering APIs; Fabric Loader activates only the implementation compatible with the running Minecraft version.
Each ready-to-install jar is built inside its own project folder under build/libs.
Configuration
Configuration files are created with defaults in the Fabric config directory and existing values are preserved:
presence-signals-client.jsonpresence-signals-common.jsonpresence-signals-server.jsonpresence-signals-item-arm-adjustments.json
Reload custom held-item arm adjustments with:
/presence-signals reloadJSON
Restart the game or server after changing the other configuration files.


