Share previews
Let players share a read-only inventory, ender chest, or shulker preview in chat.
Players can show off what they are holding without dropping items or trusting screenshots. Typing a token in chat turns into a clickable label. Clicking it opens a read-only preview GUI that anyone can look at but no one can change. Previews expire on their own.
Tokens
| Token | Shares |
|---|---|
[inv] or [inventory] | The sender's inventory |
[ec] or [enderchest] | The sender's ender chest |
[shulker] or [box] | The shulker box the sender is holding |
[item] or [hand] | The sender's main-hand item |
[offhand] or [oh] | The sender's off-hand item |
[armor] | The sender's worn armor set |
When a player types one of these, zArrowChat takes a snapshot at that moment and replaces the token with a label in chat. Other players click the label to view the snapshot.
Item tokens
[item], [offhand], and [armor] share a single slot or slot set instead of a full container. In chat they render with the item's real hover tooltip, so viewers see the item's native name and lore just by hovering, exactly as it looks in-game. Clicking the label opens the same read-only preview GUI as the container tokens.
If the shared slot is empty, there is nothing to preview. The token is left in the message as plain text and the sender sees the share.empty feedback message.
Read-only and auto-expiring
Preview GUIs cannot be edited. Any click that would move an item is cancelled, so shared items are safe.
Each preview lives for a limited time, then expires. After that, clicking the label tells the viewer the preview has expired. The lifetime is set by gui.preview-expire-seconds (default 180 seconds).
Labels, titles, and hover
gui.yml controls the title of each preview window, the chat label for each token, and the hover text on that label:
# gui.yml
preview-expire-seconds: 180
inventory:
title: "<dark_gray><player>'s Inventory"
label: "<dark_gray>[<gold>Inventory</gold>]</dark_gray>"
hover:
- "<gray>Click to inspect <yellow><player>'s</yellow> inventory"
enderchest:
title: "<dark_gray><player>'s Ender Chest"
label: "<dark_gray>[<light_purple>Ender Chest</light_purple>]</dark_gray>"
hover:
- "<gray>Click to inspect <yellow><player>'s</yellow> ender chest"
shulker:
title: "<dark_gray><player>'s Shulker"
label: "<dark_gray>[<aqua>Shulker</aqua>]</dark_gray>"
hover:
- "<gray>Click to inspect the shared shulker"To share a shulker, the sender must be holding one. If they are not, they are told to hold a shulker box first.
Turn tokens on or off
Each built-in token has its own switch in config.yml. Turn one off and zArrowChat stops consuming that token: the text is left in the message as plain text so another plugin can claim it. The enabled key is a master switch for every built-in preview token at once.
# config.yml
share-previews:
enabled: true # master switch for all built-in preview tokens
inventory: true # [inv] / [inventory]
enderchest: true # [ec] / [enderchest]
shulker: true # [shulker] / [box]
item: true # [item] / [hand]
offhand: true # [offhand] / [oh]
armor: true # [armor]Run /zarrowchat reload to apply changes live.
By default zArrowChat controls chat rendering: it cancels the chat event and re-renders the message itself. Disabling a token only frees the token text so it is no longer turned into a preview. Another plugin still needs its own way to render that text.
To let another chat plugin process chat at all, set chat.exclusive-mode: false. In that compatibility mode zArrowChat stops turning any of these tokens into previews and leaves them for the other plugin. If you want zArrowChat's own previews, keep exclusive mode on and do not run a second plugin for the same tokens.
Permissions
| Permission | What it grants | Default |
|---|---|---|
zarrowchat.inventoryshare | Share inventory previews | true |
zarrowchat.enderchestshare | Share ender chest previews | true |
zarrowchat.shulkershare | Share held shulker previews | true |
zarrowchat.itemshare | Share [item] and [offhand] | true |
zarrowchat.armorshare | Share [armor] | true |
Preview windows open through the internal /zarrowchatview command. Players never type it themselves; clicking a label runs it. See Commands.