promotional bannermobile promotional banner

DebugBridge

A Forge client mod for Minecraft (1.20.1 and 1.21.1 development snapshots) that exposes game state over a local WebSocket server, plus a Vue web UI for visual inspection. Built for AI-assisted Minecraft development and debugging.
Back to Files

debugbridge-1.20.1-forge-2.0.0.jar

File namedebugbridge-1.20.1-forge-2.0.0.jar
Uploader
pihouepihoue
Uploaded
Jun 14, 2026
Downloads
16
Size
8.1 MB
Mod Loaders
Forge
File ID
8248036
Type
R
Release
Supported game versions
  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:debugbridge-1564556:8248036")

Learn more about Curse Maven

What's new

# Changelog

## v2.0.0 (2026-06-14)

### Breaking Changes

- **Groovy replaces Lua**: Script runtime migrated from LuaJ to Apache Groovy 5.0.6. Removed all `core/lua/*`, added `core/script/*` (including `ScriptRuntime`, `GroovyBridge`, `GroovyJavaClass`, `GroovyJavaObject`, `ScriptBinding`, `JavaHelpers`, etc.).
- **JPMS/Classpath conflict fix**: Removed `org.luaj` dependency; Shadow relocation changed to directly bundle Groovy dependencies. See `ARCHITECTURE.md` for detailed strategy.
- **Dual-version architecture**: Unified `forge/1.20.1` and `neoforge/1.21.1` branches into a single repository, sharing the `core` module. `settings.gradle.kts` conditionally includes modules based on Gradle version.

### New Features

- **Embedded Web UI**: Vue 3 frontend build output is packaged into the JAR, serving HTTP service on `bridge port + 100`. Automatically detects if assets exist and degrades gracefully when missing.
- **Session control**: Added `disconnect`, `joinServer`, `quit` endpoints (`SessionControlProvider`).
- **Message link rendering**: URLs in chat messages are automatically rendered as clickable links (`TextLinks`).
- **Client ready gate**: `ClientSettleGate` – waits for the client to stabilize after joining a server before executing subsequent operations.
- **Item list endpoint**: `ItemRegistryProvider` interface, supports querying the registry for item lists.
- **Recording feature**: `RecordingProvider` + `FrameCapturer`, supports `record_video` endpoint.
- **Forge 1.20.1 lifecycle**: Mixin injection into `Minecraft.tick()` / `runTick()` / `close()` ensures `handleTick` / `handleRenderFrame` / `handleClose` are triggered correctly.

### Technical Improvements

- **Build system**:
  - NeoForge 1.21.1: Gradle 9.5.1 + NeoForge moddev 2.0.72 + Shadow 9.0.0-beta4
  - Forge 1.20.1: Gradle 8.10.2 + ForgeGradle 6.x + Shadow 8.1.1
  - Shadow plugin: embeds `websocket` and `groovy` dependencies, excludes game runtime classes.
  - Forge dev environment: `extractBridgeLibs` task extracts `websocket`/`groovy` to `classes` directory.
  - Module path: Because NeoForge moddev is incompatible with JPMS named modules, no `module-info.java` is added.
  - Mapping resolution: Compatible with Fabric and Forge namespaces, supports ProGuard mapping cache and download.
  - Unit tests: 166 tests covering Groovy bridging, script execution, security policies, session control, Web UI, and other services.
  - Spotless: Palantir Java Format for unified code style.

### Fixes

- Forge 1.20.1 missing `MinecraftClientMixin` causing lifecycle hooks not to fire → added.
- `BridgeServer.start()` / `stop()` API changes causing test compilation failures → fixed.
- Windows platform CRLF/LF line ending differences causing `GroovyBridgeTest.testPrintCapture` to fail → fixed.
- NeoForge dev environment WebSocket/Groovy classes not found → Shadow fat JAR deployed to `run/mods/`.
- `ClickEvent.OpenUrl` compatibility: NeoForge 1.21.1 uses `new ClickEvent(ClickEvent.Action.OPEN_URL, text)`.
- Missing `createItemRegistryProvider()` in `AbstractDebugBridgeMod` after merge conflict → added default implementation returning `null`.
- Description in `mods.toml` / `neoforge.mods.toml` updated from "Lua-Java bridge" to "Groovy-Java bridge".

### Known Issues

- Fabric modules (1.19, 1.21.11, 26.2-dev) are not included in this branch.

This mod has no additional files