Tags
Creators
Details
Licensed MIT
Published 4 months ago
Updated 6 days ago
All versions
1.4.0
Release
Guide Forge 1.4.0 (Multimedia Update)2 months ago 20
Compatibility
Minecraft: Java Edition
1.20.1
Platform
Forge
Supported environments
Client and server
Changes
[CHANGELOG] Version: 1.4.0 (Forge)
Multimedia Update — Full in-game media support: video, GIFs, and images from local files and URLs.
🎬 New Features:
- In-Book Video Playback Engine — Built a custom multimedia pipeline using JavaCV/FFmpeg for seamless decoding of local and remote video files (mp4, avi, mkv, webm) directly inside guide pages via
@video:. The engine operates in a separate classloader to bypass ModLauncher restrictions, with low-latency options for smooth playback. - Dynamic URL Media Downloader — Introduced
MediaDownloadManagerfor asynchronous fetching of videos, GIFs, and images from direct HTTP(S) links. Features persistent caching inconfig/guide/cache/media/, automatic file extension detection, content type validation, and a configurable maximum file size (default 200 MB). - Enhanced Video Player UI — Created a feature-rich embedded player with play/pause, stop, replay, volume slider (0–100% in 5% steps), fullscreen mode, and a draggable progress bar with seek support. The control panel is fully localized and adapts to GUI scale for consistent appearance.
- Animated GIF URL Support — Extended
@gif:to accept direct links to.giffiles. GIFs are downloaded in the background and displayed with correct frame timing and transparency handling. - Image URL Support — Enabled
@image:to load pictures from direct links (PNG, JPEG). While loading, a placeholder with localized "Loading..." text is shown, then the image appears with preserved transparency. - Auto-Pause on Focus Loss — Video playback automatically pauses when the Minecraft window loses focus, conserving resources. Playback can be resumed manually after returning.
- Background Music Ducking — When a video starts, the mod temporarily silences vanilla and guide background music, and restores it after the video stops or ends, if music was enabled before.
🛠️ Improvements & Fixes:
- GIF Decoding Overhaul — Rewrote the GIF frame composition logic to correctly handle disposal methods (clear, restore to previous) and alpha transparency. This eliminates artifacts like black pixels, ghost frames, and frame accumulation in GIFs with partial updates.
- Video Seek and Volume Persistence — Fixed issues where seeking jumped to the beginning and volume reset to 100% on replay. The player now preserves volume state and allows precise seeking within the video.
- Localization and Cleanup — Replaced hardcoded Russian strings with localization keys across the media UI. Added new keys to
ru_ruanden_usJSON files. - Memory and Resource Management — Improved resource cleanup for video players and GIF textures when changing chapters or closing the book, preventing memory leaks and stale textures.
- JavaCV Packaging — Introduced automatic extraction of JavaCV/FFmpeg libraries from the mod JAR into a runtime directory, eliminating the need for users to manually copy native binaries. This was achieved via a resource extractor invoked at startup.
Optional dependencies
Unavailable version
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:ubKIGRC6:8K0IrGKR"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ubKIGRC6:8K0IrGKR"
}

