Skip to content

Hex Casting addon that runs a debug server using the Debug Adapter Protocol.

License

Notifications You must be signed in to change notification settings

object-Object/HexDebug

Repository files navigation

HexDebug

powered by hexdoc

CurseForge | Modrinth

A Hex Casting addon that runs a debug server using the Debug Adapter Protocol, allowing you to use real debugging tools like VSCode to find bugs in your hexes.

YouTube video thumbnail: HexDebug Mod Showcase

Features

  • Debugging: Step through your hexes pattern-by-pattern with vscode-hex-casting or any other DAP-compatible editor!
  • Step Modes: Use any of the well-known step modes (step in/out/over, continue, restart, stop) with the ingame item and/or through VSCode.
  • Variables: See the stack, ravenmind, and even some internal values like the evaluated pattern count.
  • Call Stack: Debug complex meta-evaluating hexes with the call stack, generated from the next continuation to be executed. Learn how Hex Casting's internals work!
  • Breakpoints: Set breakpoints on specific patterns, or use the Uncaught Mishaps option to pause the debugger when a mishap occurs and see what went wrong.
  • Multiplayer: Debug your hexes in multiplayer! The debug client connects to a port opened by the game client (configurable, defaults to 4444), and each player can have up to one active debugger instance at a time.

FAQ

Quilt Kotlin Libraries version

If you're having issues with the version of Quilt Kotlin Libraries / Fabric Language Kotlin on Quilt 1.19.2, try installing both of the following:

QKL targets a specific version of Minecraft, while QKL Core is what replaces FLK and can be used with any Minecraft version.

Maven

Build artifacts are published to the BlameJared repository via Jenkins.

To depend on HexDebug, add something like this to your build script:

repositories {
    maven { url = uri("https://maven.blamejared.com") }
}
dependencies {
    modImplementation("gay.object.hexdebug:hexdebug-$platform:$hexdebugVersion")
}

Full examples:

// released versions
modImplementation("gay.object.hexdebug:hexdebug-common:0.2.0+1.20.1")
modImplementation("gay.object.hexdebug:hexdebug-fabric:0.2.0+1.20.1")
modImplementation("gay.object.hexdebug:hexdebug-forge:0.2.0+1.20.1")

// bleeding edge builds
modImplementation("gay.object.hexdebug:hexdebug-common:0.2.0+1.20.1-SNAPSHOT")
modImplementation("gay.object.hexdebug:hexdebug-fabric:0.2.0+1.20.1-SNAPSHOT")
modImplementation("gay.object.hexdebug:hexdebug-forge:0.2.0+1.20.1-SNAPSHOT")

Try to avoid using things outside of the gay.object.hexdebug.api package, since they may change at any time.

Attribution