Skip to content

ImageEmojis Client Picker

KOKOTO-DEV edited this page Aug 13, 2026 · 1 revision

ImageEmojis Client Picker

The ImageEmojis Picker is an optional client-side companion mod for ImageEmojis-Bero. BlueMapWebChat itself does not require the client mod. Players without it can still receive/render server emoji through ImageEmojis-Bero and can use /emojis list; the picker only improves selection and insertion UX.

Supported build families

The current ImageEmojis-Bero 1.9.1 multi-version source defines these client families:

Family Declared Minecraft range Java Loaders
legacy 1.21–1.21.8 21 Fabric/Quilt, NeoForge, Forge
late 1.21.9–1.21.11 21 Fabric/Quilt, NeoForge, Forge
modern 26.1–26.2 25 Fabric/Quilt, NeoForge, Forge

Use a build that matches both the Minecraft version family and the loader. Test the exact Minecraft patch used by your modpack/server before publishing it as supported.

Client installation

Install exactly one picker JAR matching the client loader and version family into the player's client mods/ folder.

Fabric / Quilt Loader

  • Install the matching fabric-quilt picker JAR.
  • Install Fabric API.
  • Quilt Loader uses the Fabric build; a separate Quilt API build is not required for the picker.

NeoForge

  • Install the matching native NeoForge picker JAR in the client mods/ folder.

Forge

  • Install the matching native Forge picker JAR in the client mods/ folder.

The picker is client-only. Do not install the client picker JAR as a Bukkit/Paper plugin.

Server requirements

The server still needs the normal ImageEmojis-Bero server plugin and its generated resource pack. The picker obtains its catalog from:

assets/imageemojis/emojis.json

inside the active server resource pack. This is important: the client mod does not maintain a separate hard-coded emoji list. It follows the exact tokens and glyphs supplied by the server.

For BlueMapWebChat integration, see ImageEmojis-Bero.

Using the picker

Default key:

F8

The key can be changed under Minecraft Controls in the Image Emojis category.

While chat is open

  • Press the picker key.
  • Search by pack name, emoji name, or full token.
  • Choose an emoji.
  • The picker returns to the same chat screen it was opened from.
  • The token is inserted at the current cursor position, or replaces the current selection.
  • Existing draft text is preserved.

Outside chat

If no chat screen is open, choosing an emoji sends its token immediately as normal chat.

Cancel

Press Escape to return without changing the original chat draft.

Compatibility with chat UI mods

The picker is designed to be fail-soft:

  • It restores the exact chat-screen object it was opened from when possible.
  • It recognizes vanilla chat, ChatScreen subclasses, and custom chat screens exposing a normal EditBox.
  • Its chat mixin is non-fatal and a keybinding fallback remains available if a chat overhaul is incompatible.
  • It does not need to patch HUD rendering, resource-pack loading, chat signing, or networking.

A heavily customized chat mod can still change internal widgets enough that draft/cursor detection fails. In that case, test the F8 fallback and report the client log plus the chat-mod name/version.

Relationship with BlueMapWebChat

The intended flow is:

Player opens picker
  -> picker reads server emojis.json
  -> player selects :pack/name:
  -> token is inserted/sent
  -> ImageEmojis-Bero renders it in Minecraft
  -> BlueMapWebChat preserves the same token in web history / DM / relay
  -> remote receiving server maps the token to its own ImageEmojis glyph

This means the same canonical token can survive public chat, replies, DMs, and cross-server relay without depending on one server's private-use glyph number.

Troubleshooting

F8 does nothing

  • Verify the correct loader/version-family JAR is installed.
  • Check for a keybinding conflict in Controls.
  • For Fabric/Quilt, verify Fabric API is installed.
  • Check the client log for mixin/mod-loader errors.

Picker opens but shows no emojis

  • Confirm the server is using a resource pack generated by ImageEmojis-Bero 1.9.0/1.9.1 with assets/imageemojis/emojis.json.
  • Rebuild/reload ImageEmojis and reconnect or run /emojis update so the current pack is active.

Emoji is shown in the picker but the token is plain text in chat

The picker only inserts the token. Rendering is performed by the server-side ImageEmojis-Bero/resource-pack path. Verify ImageEmojis permissions, current resource pack, and token mapping.

Draft/cursor is not restored correctly with a custom chat mod

The picker supports common ChatScreen/EditBox patterns and has a fail-soft fallback, but custom chat UIs can still be incompatible. Test without the chat overhaul and include both mod versions in a bug report.

Building the picker from source

Build a version family:

client-picker\build-family.bat legacy
client-picker\build-family.bat late
client-picker\build-family.bat modern

Or build one loader/version target:

client-picker\build-target.bat fabric-legacy
client-picker\build-target.bat neoforge-modern
client-picker\build-target.bat forge-late

Build fix 9 runs heavy targets sequentially to reduce ForgeGradle/Minecraft Mavenizer disk and memory pressure. On Windows, ensure there is adequate free space both on the project drive and on the drive containing %USERPROFILE%\.gradle.

Clone this wiki locally