GUI Scaler
Never adjust GUI scale manually again. GUI Scaler automatically scales your Minecraft GUI based on window size — whether you resize, toggle fullscreen, or switch monitors.
✨ Features
- Automatic GUI Scaling — Dynamically adjusts GUI scale when your window size changes
- Intelligent Detection — Uses pixel density detection for optimal readability on any display
- Real-time Updates — Triggers instantly on screen open, fullscreen toggle, or window resize
- Two Scaling Modes — Smart AUTO mode or fully customizable CUSTOM mode
- Multiloader — Works on Fabric and NeoForge (Forge supported up to 1.21.4)
- ModMenu Support — Fabric users get an in-game config screen via ModMenu
🎯 Scaling Modes
AUTO Mode (Default)
| Resolution | GUI Scale |
|---|---|
| 2880x1800+ (HiDPI/Retina) | 3 |
| 1920x1080+ (Full HD) | 2 |
| 1280x720+ (HD) | 1 |
| Otherwise | 0 (auto) |
CUSTOM Mode
Define your own width → scale rules in the config file.
⚙️ Configuration
Fabric (config/guiscaler.json5):
{
"enableAutoScale": true,
"mode": "AUTO",
"customRules": {
"2560": 3,
"1920": 2,
"1280": 1
}
}
NeoForge (config/guiscaler-client.toml):
[general]
enableAutoScale = true
mode = "AUTO"
customRules = ["2560:3", "1920:2", "1280:1"]
enableAutoScale— Toggle automatic scaling on or offmode—AUTO(intelligent) orCUSTOM(user-defined rules)customRules— Custom width:scale mappings for CUSTOM mode
📦 Supported Platforms
| Loader | Required Dependencies |
|---|---|
| Fabric | Fabric API, Cloth Config |
| NeoForge | — |
| Forge | — (up to 1.21.4 only) |
🔗 Links
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 |
### Changed
- BREAKING**: Updated to Minecraft 26.3 (builds against 26.3). Requires Java 25.
- Updated Fabric API to 0.161.0+26.3, Fabric Loader to 0.19.5, NeoForge to 26.3.0.7-beta, Cloth Config to 26.3.158, ModMenu to 21.0.0-beta.1.
- Updated Fabric Loom to 1.17.21, NeoForge moddev to 2.0.147, Gradle wrapper to 9.6.0.
fabric.mod.jsondependency bounds now track the built version (Minecraft >=26.3, Fabric Loader >=0.19, Cloth Config >=26.3.0) instead of the stale 26.1 bounds.
### Fixed
pack.mcmetadeclared pack format 101, which was Minecraft 26.1's *data* pack format. The mod ships only assets, so it now declares the resource pack format of the targeted version (97 for 26.3).- NeoForge: replaced the
logoFileproperty deprecated in 26.3 withiconFile.
### Changed
- BREAKING**: Updated to Minecraft 26.3 (builds against 26.3). Requires Java 25.
- Updated Fabric API to 0.161.0+26.3, Fabric Loader to 0.19.5, NeoForge to 26.3.0.7-beta, Cloth Config to 26.3.158, ModMenu to 21.0.0-beta.1.
- Updated Fabric Loom to 1.17.21, NeoForge moddev to 2.0.147, Gradle wrapper to 9.6.0.
fabric.mod.jsondependency bounds now track the built version (Minecraft >=26.3, Fabric Loader >=0.19, Cloth Config >=26.3.0) instead of the stale 26.1 bounds.
### Fixed
pack.mcmetadeclared pack format 101, which was Minecraft 26.1's *data* pack format. The mod ships only assets, so it now declares the resource pack format of the targeted version (97 for 26.3).- NeoForge: replaced the
logoFileproperty deprecated in 26.3 withiconFile.
### Changed
- AUTO mode now returns GUI scale 2 for window widths from 1280 px up (previously scale 1).
own "Auto" would pick scale 3 at those sizes. Scale 3 remains reserved for 2560 px and very
high pixel counts.
### Fixed
- README documented the AUTO scale-3 threshold as 2880x1800; the code has always used 2560.
### Changed
- AUTO mode now returns GUI scale 2 for window widths from 1280 px up (previously scale 1).
own "Auto" would pick scale 3 at those sizes. Scale 3 remains reserved for 2560 px and very
high pixel counts.
### Fixed
- README documented the AUTO scale-3 threshold as 2880x1800; the code has always used 2560.
### Changed
- AUTO mode now returns GUI scale 2 for window widths from 1280 px up (previously scale 1).
own "Auto" would pick scale 3 at those sizes. Scale 3 remains reserved for 2560 px and very
high pixel counts.
### Fixed
- README documented the AUTO scale-3 threshold as 2880x1800; the code has always used 2560.
### Changed
- AUTO mode now returns GUI scale 2 for window widths from 1280 px up (previously scale 1).
own "Auto" would pick scale 3 at those sizes. Scale 3 remains reserved for 2560 px and very
high pixel counts.
### Fixed
- README documented the AUTO scale-3 threshold as 2880x1800; the code has always used 2560.
### Changed
- AUTO mode now returns GUI scale 2 for window widths from 1280 px up (previously scale 1).
own "Auto" would pick scale 3 at those sizes. Scale 3 remains reserved for 2560 px and very
high pixel counts.
### Fixed
- README documented the AUTO scale-3 threshold as 2880x1800; the code has always used 2560.
### Changed
- AUTO mode now returns GUI scale 2 for window widths from 1280 px up (previously scale 1).
own "Auto" would pick scale 3 at those sizes. Scale 3 remains reserved for 2560 px and very
high pixel counts.
### Fixed
- README documented the AUTO scale-3 threshold as 2880x1800; the code has always used 2560.
### Changed
- AUTO mode now returns GUI scale 2 for window widths from 1280 px up (previously scale 1).
own "Auto" would pick scale 3 at those sizes. Scale 3 remains reserved for 2560 px and very
high pixel counts.
### Fixed
- README documented the AUTO scale-3 threshold as 2880x1800; the code has always used 2560.
### Changed
- AUTO mode now returns GUI scale 2 for window widths from 1280 px up (previously scale 1).
own "Auto" would pick scale 3 at those sizes. Scale 3 remains reserved for 2560 px and very
high pixel counts.
### Fixed
- README documented the AUTO scale-3 threshold as 2880x1800; the code has always used 2560.
### Changed
- AUTO mode now returns GUI scale 2 for window widths from 1280 px up (previously scale 1).
own "Auto" would pick scale 3 at those sizes. Scale 3 remains reserved for 2560 px and very
high pixel counts.
### Fixed
- README documented the AUTO scale-3 threshold as 2880x1800; the code has always used 2560.
### Changed
- AUTO mode now returns GUI scale 2 for window widths from 1280 px up (previously scale 1).
own "Auto" would pick scale 3 at those sizes. Scale 3 remains reserved for 2560 px and very
high pixel counts.
### Fixed
- README documented the AUTO scale-3 threshold as 2880x1800; the code has always used 2560.
### Changed
- AUTO mode now returns GUI scale 2 for window widths from 1280 px up (previously scale 1).
own "Auto" would pick scale 3 at those sizes. Scale 3 remains reserved for 2560 px and very
high pixel counts.
### Fixed
- README documented the AUTO scale-3 threshold as 2880x1800; the code has always used 2560.
### Changed
- AUTO mode now returns GUI scale 2 for window widths from 1280 px up (previously scale 1).
own "Auto" would pick scale 3 at those sizes. Scale 3 remains reserved for 2560 px and very
high pixel counts.
### Fixed
- README documented the AUTO scale-3 threshold as 2880x1800; the code has always used 2560.
### Changed
- AUTO mode now returns GUI scale 2 for window widths from 1280 px up (previously scale 1).
own "Auto" would pick scale 3 at those sizes. Scale 3 remains reserved for 2560 px and very
high pixel counts.
### Fixed
- README documented the AUTO scale-3 threshold as 2880x1800; the code has always used 2560.
### Changed
- AUTO mode now returns GUI scale 2 for window widths from 1280 px up (previously scale 1).
own "Auto" would pick scale 3 at those sizes. Scale 3 remains reserved for 2560 px and very
high pixel counts.
### Fixed
- README documented the AUTO scale-3 threshold as 2880x1800; the code has always used 2560.
### Fixed
- Manual GUI scale changes being immediately reverted to auto. The #4 mixin rewrite dropped the window-size tracking from [#3](https://github.com/zendiik/gui-scaler/issues/3), so
applyAutoScaleran on everyresizeDisplay— including the one triggered by manually changing the GUI scale option — and overwrote the chosen value. Auto-scale now recomputes only when the window size actually changes ([#4](https://github.com/zendiik/gui-scaler/issues/4)).
### Fixed
- Manual GUI scale changes being immediately reverted to auto. The #4 mixin rewrite dropped the window-size tracking from [#3](https://github.com/zendiik/gui-scaler/issues/3), so
applyAutoScaleran on everyresizeDisplay— including the one triggered by manually changing the GUI scale option — and overwrote the chosen value. Auto-scale now recomputes only when the window size actually changes ([#4](https://github.com/zendiik/gui-scaler/issues/4)).
### Fixed
- Manual GUI scale changes being immediately reverted to auto. The #4 mixin rewrite dropped the window-size tracking from [#3](https://github.com/zendiik/gui-scaler/issues/3), so
applyAutoScaleran on everyresizeDisplay— including the one triggered by manually changing the GUI scale option — and overwrote the chosen value. Auto-scale now recomputes only when the window size actually changes ([#4](https://github.com/zendiik/gui-scaler/issues/4)).
### Fixed
- Manual GUI scale changes being immediately reverted to auto. The #4 mixin rewrite dropped the window-size tracking from [#3](https://github.com/zendiik/gui-scaler/issues/3), so
applyAutoScaleran on everyresizeDisplay— including the one triggered by manually changing the GUI scale option — and overwrote the chosen value. Auto-scale now recomputes only when the window size actually changes ([#4](https://github.com/zendiik/gui-scaler/issues/4)).
### Fixed
- Manual GUI scale changes being immediately reverted to auto. The #4 mixin rewrite dropped the window-size tracking from [#3](https://github.com/zendiik/gui-scaler/issues/3), so
applyAutoScaleran on everyresizeDisplay— including the one triggered by manually changing the GUI scale option — and overwrote the chosen value. Auto-scale now recomputes only when the window size actually changes ([#4](https://github.com/zendiik/gui-scaler/issues/4)).
### Fixed
- Manual GUI scale changes being immediately reverted to auto. The #4 mixin rewrite dropped the window-size tracking from [#3](https://github.com/zendiik/gui-scaler/issues/3), so
applyAutoScaleran on everyresizeDisplay— including the one triggered by manually changing the GUI scale option — and overwrote the chosen value. Auto-scale now recomputes only when the window size actually changes ([#4](https://github.com/zendiik/gui-scaler/issues/4)).
### Fixed
- Manual GUI scale changes being immediately reverted to auto. The #4 mixin rewrite dropped the window-size tracking from [#3](https://github.com/zendiik/gui-scaler/issues/3), so
applyAutoScaleran on everyresizeDisplay— including the one triggered by manually changing the GUI scale option — and overwrote the chosen value. Auto-scale now recomputes only when the window size actually changes ([#4](https://github.com/zendiik/gui-scaler/issues/4)).
### Fixed
- Manual GUI scale changes being immediately reverted to auto. The #4 mixin rewrite dropped the window-size tracking from [#3](https://github.com/zendiik/gui-scaler/issues/3), so
applyAutoScaleran on everyresizeDisplay— including the one triggered by manually changing the GUI scale option — and overwrote the chosen value. Auto-scale now recomputes only when the window size actually changes ([#4](https://github.com/zendiik/gui-scaler/issues/4)).
### Fixed
- Manual GUI scale changes being immediately reverted to auto. The #4 mixin rewrite dropped the window-size tracking from [#3](https://github.com/zendiik/gui-scaler/issues/3), so
applyAutoScaleran on everyresizeDisplay— including the one triggered by manually changing the GUI scale option — and overwrote the chosen value. Auto-scale now recomputes only when the window size actually changes ([#4](https://github.com/zendiik/gui-scaler/issues/4)).
### Fixed
- Manual GUI scale changes being immediately reverted to auto. The #4 mixin rewrite dropped the window-size tracking from [#3](https://github.com/zendiik/gui-scaler/issues/3), so
applyAutoScaleran on everyresizeDisplay— including the one triggered by manually changing the GUI scale option — and overwrote the chosen value. Auto-scale now recomputes only when the window size actually changes ([#4](https://github.com/zendiik/gui-scaler/issues/4)).
### Fixed
- Manual GUI scale changes being immediately reverted to auto. The #4 mixin rewrite dropped the window-size tracking from [#3](https://github.com/zendiik/gui-scaler/issues/3), so
applyAutoScaleran on everyresizeGui— including the one triggered by manually changing the GUI scale option — and overwrote the chosen value. Auto-scale now recomputes only when the window size actually changes ([#4](https://github.com/zendiik/gui-scaler/issues/4)).
### Fixed
- Manual GUI scale changes being immediately reverted to auto. The #4 mixin rewrite dropped the window-size tracking from [#3](https://github.com/zendiik/gui-scaler/issues/3), so
applyAutoScaleran on everyresizeGui— including the one triggered by manually changing the GUI scale option — and overwrote the chosen value. Auto-scale now recomputes only when the window size actually changes ([#4](https://github.com/zendiik/gui-scaler/issues/4)).
### Fixed
- Manual GUI scale changes being immediately reverted to auto. The #4 mixin rewrite dropped the window-size tracking from [#3](https://github.com/zendiik/gui-scaler/issues/3), so
applyAutoScaleran on everyresizeGui— including the one triggered by manually changing the GUI scale option — and overwrote the chosen value. Auto-scale now recomputes only when the window size actually changes ([#4](https://github.com/zendiik/gui-scaler/issues/4)).
### Fixed
- Manual GUI scale changes being immediately reverted to auto. The #4 mixin rewrite dropped the window-size tracking from [#3](https://github.com/zendiik/gui-scaler/issues/3), so
applyAutoScaleran on everyresizeGui— including the one triggered by manually changing the GUI scale option — and overwrote the chosen value. Auto-scale now recomputes only when the window size actually changes ([#4](https://github.com/zendiik/gui-scaler/issues/4)).