diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 0b70379..572bed0 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -29,6 +29,6 @@ jobs:
- name: Upload release candidate
uses: actions/upload-artifact@v4
with:
- name: backspace-dev-4.0.3-beta
- path: build/libs/backspace-dev-4.0.3-beta.jar
+ name: backspace-dev-4.0.4-beta
+ path: build/libs/backspace-dev-4.0.4-beta.jar
if-no-files-found: error
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ad99fbe..b1a684f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
# Changelog
+## dev-4.0.4-beta 2026-10-25
+
+- Fixed the right-click ClickGUI crash: LWJGL 2 requires a 16-element buffer for scissor-state reads in both GUI renderers.
+
+
## dev-4.0.3-beta 2026-10-25
- Corrected pixel window transparency with a full 0–100% range and live GUI editor preview.
diff --git a/README.md b/README.md
index 1ed61a6..0137fa2 100644
--- a/README.md
+++ b/README.md
@@ -8,14 +8,14 @@
A custom Minecraft Forge 1.12.2 client focused on clean visuals, useful features, and a modern interface.
- dev-4.0.3-beta
+ dev-4.0.4-beta
-
+
---
@@ -48,7 +48,7 @@ The module browser uses compact vanilla-style category columns and pixel toggles
1. Install Minecraft **1.12.2** with Forge **14.23.5.2859**.
2. Download both files from the release:
- * `backspace-dev-4.0.3-beta.jar`
+ * `backspace-dev-4.0.4-beta.jar`
* `OneConfig-1.12.2-forge.jar`
3. Place both JAR files in your `.minecraft/mods` folder.
4. Launch Minecraft using **Java 8**.
@@ -80,7 +80,7 @@ Open a terminal in the project directory and run the command for your operating
After the build finishes, the JAR will be located at:
```text
-build/libs/backspace-dev-4.0.3-beta.jar
+build/libs/backspace-dev-4.0.4-beta.jar
```
The project includes a Gradle wrapper pinned to version `4.10.3`, so there's no need to install Gradle separately.
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index 329c5e2..4fac22a 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,16 +1,13 @@
-# Backspace dev-4.0.3-beta
+# Backspace dev-4.0.4-beta
-This prerelease fixes ClickGUI transparency, long labels, and numeric setting controls.
+This hotfix resolves the crash when expanding module settings with right-click.
-## Changes
+## Fix
-- Set panel transparency from 0% (opaque) to 100% (fully clear). The background alpha is independent of text, border, and control colors. The GUI Editor now previews the change against the live ClickGUI.
-- Hover long module names, descriptions, or setting labels to scroll them horizontally after a short delay. Text stays clipped within its row.
-- Drag or click sliders to change numeric settings. Values snap to their configured steps, including decimal settings, and save to the client configuration.
-- Main menu and both ClickGUI views display the current version.
+- Allocate the 16-element buffer required by LWJGL 2 when reading OpenGL scissor state in the pixel and modern ClickGUI renderers. The expanded settings, transparency, marquee text, and sliders from dev-4.0.3-beta are preserved.
## Install
-1. Download `backspace-dev-4.0.3-beta.jar` from this release and the required [`OneConfig-1.12.2-forge.jar`](https://github.com/gms-scanner/Backspace/releases/download/dev-3.5-beta/OneConfig-1.12.2-forge.jar) dependency.
-2. Put both in the Minecraft 1.12.2 Forge `mods` folder.
+1. Download `backspace-dev-4.0.4-beta.jar` from this release and the required [`OneConfig-1.12.2-forge.jar`](https://github.com/gms-scanner/Backspace/releases/download/dev-3.5-beta/OneConfig-1.12.2-forge.jar) dependency.
+2. Put both in the Minecraft 1.12.2 Forge `mods` folder, replacing the previous Backspace JAR.
3. Launch Forge 14.23.5.2859 with Java 8. Press Right Shift or run `/backspace`.
diff --git a/build.gradle b/build.gradle
index 6227bae..eaf9db4 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ buildscript {
apply plugin: 'net.minecraftforge.gradle'
apply plugin: 'eclipse'
-version = 'dev-4.0.3-beta'
+version = 'dev-4.0.4-beta'
group = 'dev.goldforge'
archivesBaseName = 'backspace'
diff --git a/src/main/java/dev/goldforge/GoldForge.java b/src/main/java/dev/goldforge/GoldForge.java
index 6dfc942..feecf8e 100644
--- a/src/main/java/dev/goldforge/GoldForge.java
+++ b/src/main/java/dev/goldforge/GoldForge.java
@@ -20,7 +20,7 @@
public final class GoldForge {
public static final String MODID = "goldforge";
public static final String NAME = "Backspace";
- public static final String VERSION = "dev-4.0.3-beta";
+ public static final String VERSION = "dev-4.0.4-beta";
public static final ModuleManager MODULES = new ModuleManager();
private static final Field SPLASH_FIELD=findSplashField();
private static final String[] CUSTOM_SPLASHES={
diff --git a/src/main/java/dev/goldforge/gui/ModernClickGui.java b/src/main/java/dev/goldforge/gui/ModernClickGui.java
index 17cbf67..c15ece5 100644
--- a/src/main/java/dev/goldforge/gui/ModernClickGui.java
+++ b/src/main/java/dev/goldforge/gui/ModernClickGui.java
@@ -421,7 +421,7 @@ private void marqueeSetting(long vg, ModuleSetting setting, String label,
state.offset *= (float) Math.exp(-5F * frameSeconds);
if (state.offset < 0.5F) { state.offset = 0; state.phase = 0; state.timer = 0; }
}
- IntBuffer previous = BufferUtils.createIntBuffer(4);
+ IntBuffer previous = BufferUtils.createIntBuffer(16);
GL11.glGetInteger(GL11.GL_SCISSOR_BOX, previous);
float scaleX = mc.displayWidth / Math.max(1F, width);
float scaleY = mc.displayHeight / Math.max(1F, height);
diff --git a/src/main/java/dev/goldforge/gui/PixelClickGui.java b/src/main/java/dev/goldforge/gui/PixelClickGui.java
index 69b050b..b8ee7f7 100644
--- a/src/main/java/dev/goldforge/gui/PixelClickGui.java
+++ b/src/main/java/dev/goldforge/gui/PixelClickGui.java
@@ -82,7 +82,7 @@ private void text(String value, int x, int y, int color) {
fontRenderer.drawString(value, x, y, color);
}
private int[] clipText(int x, int y, int w, int h) {
- IntBuffer old = BufferUtils.createIntBuffer(4);
+ IntBuffer old = BufferUtils.createIntBuffer(16);
GL11.glGetInteger(GL11.GL_SCISSOR_BOX, old);
int scale = new ScaledResolution(mc).getScaleFactor();
int lx = x * scale, ly = mc.displayHeight - (y + h) * scale;