

Mod Introduction
ChatBox is a dialog box mod designed for Minecraft, inspired by the dialog systems found in Galgames. You can configure it using data packs:
Pre-set multiple themes for dialog boxes and switch between them anytime using commands.
Customize the appearance, position, and size of dialog boxes, option boxes, history buttons, and character portraits.
Character portraits support multiple types: images, player avatars, and item textures. You can define custom entry animations for these portraits, with images having 3 preset animations.
Configure dialog text and multiple options for each line. Clicking options can trigger custom commands and jump to other dialogs.
All text elements (dialogs, options) support translation keys.
Since all dialog configurations are implemented through data packs, you can reload all dialog settings directly using the /reload command. Create beautiful dialog systems without modifying any code!
Built-in Commands
Switch themes:
/chatbox theme <data_pack_path : ResourceLocation>
Jump to a specific dialog:
/chatbox skip <data_pack_path : ResourceLocation> <group : String> <index : int>
Open dialog box:
/chatbox open
Event System
For KubeJS users, the mod provides predefined events:
// Triggered BEFORE dialog rendering. Provides GuiGraphics for custom rendering. Cancellable.
let $ChatBoxRender$Post = Java.loadClass("com.zhenshiz.chatbox.event.ChatBoxRender$Post");
NativeEvents.onEvent($ChatBoxRender$Post, event => {
let guiGraphics = event.getGuiGraphics();
});
// Triggered AFTER dialog rendering. Provides GuiGraphics for custom rendering.
let $ChatBoxRender$Pre = Java.loadClass("com.zhenshiz.chatbox.event.ChatBoxRender$Pre");
NativeEvents.onEvent($ChatBoxRender$Pre, event => {
let guiGraphics = event.getGuiGraphics();
});
// Triggered when jumping to a dialog. Provides dialog metadata for custom functionality.
let $SkipChatEvent = Java.loadClass("com.zhenshiz.chatbox.event.SkipChatEvent");
NativeEvents.onEvent($SkipChatEvent, event => {
let { chatBoxScreen, resourceLocation, group, index } = event;
});
Additional Information
Example data packs and documentation are available on GitHub. Upcoming feature: The author is developing a web-based JSON generator to simplify dialog configuration. Stay tuned for its release!