
Soulslike leveling for Minecraft
Earn levels from combat, stage your attribute points, watch every stat change before it happens, and confirm your build with one press. Every number on screen comes from the server, so your armor, weapon, potion effects and other mods are already counted.
5.0 "The Ascendant Update" is available for Fabric, Forge and NeoForge on 1.20.1, 1.21.1, 26.1.2, 26.2 and 26.3.



Press K. Your attributes sit on the left, the stats they drive in the middle, and the selected attribute's details on the right.
- Stage. Use ← / → or the chevrons to add or remove points. Hold Shift to move 5 at a time.
- Preview. Every attribute, stat and configured total reads current → after. Gains are blue, and the points you will keep are red. Stats affected by the selected attribute are marked with a gold diamond.
- Confirm. Press Enter to commit the whole build, or Reset to take it all back. Press Esc with unconfirmed points and the screen asks before discarding them.



Most stat menus only show what your client can guess. RAS asks the server instead:
- Base Stats are measured on the server from your live attributes, including equipment modifiers, effects and attribute modifiers added by other mods.
- Previews use Minecraft's real modifier formula and attribute limits. If your armor already pushes a stat to its cap, the preview stops at the cap too.
- Stats the client never receives, such as attack damage, are finally shown correctly.
- The server measures only while a RAS menu is open, twice a second, and sends an update only when something changed.

Confirm is atomic. One request carries the exact points for each attribute. The server checks that each attribute exists, is unlocked for you, and that you can afford the total, all before spending anything. It then applies the points with your existing caps and per-point commands. A refused request changes nothing.


Level up and a gold banner sweeps across the screen, with expanding rules, a shimmer and a deep bell. It shows the levels and points you gained and which key opens the Level Up screen. A slim HUD in the same style keeps your level, experience and unspent points in view.



- Status: your live character model, measured stats and attribute values.
- Records: experience earned, points invested and available, bonuses per attribute, and your configured totals.
- Press Tab to switch pages. Hover any row for exact values.

- Three columns on wide screens, two at GUI scale 4 on 1080p, one on very small windows.
- The bundled serif fonts are rasterized for your GUI scale, so text stays sharp instead of blurry.
- Long lists scroll, every control is at least 20 GUI pixels, and every action works from the keyboard.

Prefer the vanilla look? Set "font": "minecraft" and "hud_style": "classic". Want no motion at all? Set "animations": false. Blur, motes, sounds and the banner can each be switched off in config/ras/display/ui.json.


The progression system under the new screen:
- Valor Points from combat. Earn VP based on a mob's max health, with per-dimension multipliers and optional per-mob and per-tag rules, difficulty weighting and armor weighting.
- Your own curve. Configure the XP curve, per-level overrides, scale intervals, maximum level and points per level.
- Data-driven attributes. Eight attributes ship by default, and up to 15 are supported. Each has a base value, per-point gain, cap, lock state, icon, description and commands, so it can drive any vanilla or modded attribute.
- Respec with
/ras respecor the Scroll of Rebirth, with optional costs, cooldowns and permissions. - Build templates players apply with one command, such as
/ras template apply warrior. - Item and block locks tied to attribute or RPG level, with colored requirement tooltips.
- Level-up rewards: items, effects or commands at fixed levels or by chance.
- Tome of Ascension: an item that grants levels.
- Shared XP for nearby players, fully server-authoritative multiplayer, and a public API for other mods.
- Configuration studio: a standalone, local-only web editor for RAS configuration, with previews, validation and safe exports.

| Minecraft | Loaders | Also install |
|---|---|---|
| 1.20.1 | Fabric, Forge | Fabric API (Fabric), jauml (both loaders) |
| 1.21.1 | Fabric, NeoForge | Fabric API (Fabric), jauml (both loaders) |
| 26.1.2 · 26.2 · 26.3 | Fabric, NeoForge | Fabric API (Fabric) |
- Download the file whose name matches your loader:
-fabric-,-forge-(1.20.1 only) or-neoforge-. - Install RAS on both the server and every client, at the same version. 5.0.0 adds new network messages.
- Updating from 4.x keeps your configuration and player data. New client settings are added in
ui.json. - RAS is a mod. It does not work as a Paper, Spigot or Folia plugin.

Can I keep the Minecraft look?
Yes. "font": "minecraft" uses the vanilla pixel font, "hud_style": "classic" restores the old HUD bar, and "animations": false removes all motion.
Does the preview know about my other mods?
The stats are measured on the server, so other mods' attribute modifiers are included. Previews cover attributes that use RAS's attribute ... base set [param] command form, which every default attribute uses. Other command forms still apply when you confirm.
What if my client and the server disagree? They can't spend points differently. The server validates the whole request and applies it with its own rules. Your screen updates when the server confirms.
Is it heavy? Measurements run only while a RAS menu is open, twice a second, and are sent only when they change. The HUD and banner draw once per frame.
Where are the docs? Documentation · Level Up screen guide · Commands · Issues






RPG Attribute System is licensed under Apache-2.0. The bundled EB Garamond and Cinzel fonts are licensed under the SIL Open Font License 1.1. RAS is an independent project and is not affiliated with any game it takes inspiration from.
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 | ||||
| 13d ago | 1 | ||||
| 13d ago | 1 | ||||
| 13d ago | 1 | ||||
| 13d ago | 1 | ||||
| 13d ago | 1 | ||||
| 13d ago | 1 | ||||
| 13d ago | 1 | ||||
| 13d ago | 1 | ||||
| 13d ago | 1 | ||||
| 13d ago | 1 | ||||
| 29d ago | 1 | ||||
| 29d ago | 1 | ||||
| 1mo ago | 1 | ||||
| 1mo ago | 1 | ||||
| 1mo ago | 1 | ||||
| 1mo ago | 1 | ||||
| 1mo ago | 1 | ||||
| 1mo ago | 1 | ||||
| 1mo ago | 1 | ||||
| 1mo ago | 1 | ||||
| 1mo ago | 1 | ||||
| 1mo ago | 1 | ||||
| 1mo ago | 1 | ||||
| 1mo ago | 1 | ||||
| 1mo ago | 1 | ||||
| 1mo ago | 1 | ||||
| 1mo ago | 1 | ||||
| 1mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 2mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 3mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 4mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 5mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 6mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 7mo ago | 1 | ||||
| 9mo ago | 1 | ||||
| 9mo ago | 1 | ||||
| 9mo ago | 1 | ||||
| 9mo ago | 1 | ||||
| 11mo ago | 1 | ||||
| 11mo ago | 1 | ||||
| 11mo ago | 1 | ||||
| 11mo ago | 1 | ||||
| 11mo ago | 1 | ||||
| 11mo ago | 1 | ||||
| 11mo ago | 1 | ||||
| 11mo ago | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 |
## A new Level Up screen
The stats menu (**K**) is rebuilt as a soulslike Level Up screen with three columns: your attributes, the stats they drive, and a detail card for the selected attribute, in the style of soulslike RPG menus.
- Stage, preview, then confirm.** Use **←/→** or the chevrons to stage points; right-click a row to remove one. Every attribute, stat and configured total shows
current → after. Increases are blue and the remaining points are red. **Enter** or **Confirm** commits the batch. **Reset** returns the staged points. - Atomic, server-validated commits.** The server checks the whole request first: every attribute must be configured and unlocked, and the total cost must fit your available points. Only then does it spend points one at a time, with the same rules, caps, per-point
on_level_eventcommands and attribute commands as before. A rejected request changes nothing. - Server-measured stats.** Base Stats come from the server's live attribute values, so they include equipment, effects and other mods' modifiers. Each value is shown after your configured
display_modifer. Previews use the real modifier formula and range clamp. This also fixes values the client never receives: vanilla does not syncattack_damage, so the old combat viewer showed the client's default value. - See what a point changes.** Stats and totals affected by the selected attribute are marked with a gold diamond.
- Readable small changes.** Rows add decimals only when a change would otherwise be invisible, for example Agility
0.1 → 0.1025. Tooltips keep exact values. - Status and Records pages.** **Tab** switches pages. Status shows your live character model, measured stats and attribute values. Records shows experience earned, points invested and bonuses per attribute, and your configured totals.
- Keyboard first.** **↑/↓** or **W/S** select, **←/→** or **A/D** adjust, **Shift** adjusts by 5, **Enter** confirms, **Backspace/R** resets, **Tab** changes page, and **K** or **Esc** closes. If you have unconfirmed points, the first **Esc** asks before discarding them.
- Responsive layout.** Three columns on wide screens, two at GUI scale 4 on 1080p, and one on very small windows. Long attribute and stat lists scroll. Text is never fractionally scaled, and every control is at least 20 GUI pixels.
## Presentation
- Bundled serif typography** (EB Garamond and Cinzel, SIL Open Font License), rasterized to match your GUI scale for crisp text. Set
"font": "minecraft"to keep the vanilla pixel font. - Animations:** staggered column entrance, a selection highlight that glides between rows, eased hover states, a pulse on changed values, a golden sweep on Confirm, a tab underline that slides between pages, and slow golden motes behind the menu. All motion can be turned off.
- Cinematic level-up banner:** when your RAS level rises, a gold banner fades in with expanding rules, a shimmer and a bell, and shows your new level and points gained.
- Soulslike HUD:** a slim level, experience and unspent-points overlay that matches the menu. The previous pixel-art bar is still available with
"hud_style": "classic". Existingoverlay.jsonanchors, offsets and JEI/REI/EMI avoidance apply to both styles.
## New client settings
config/ras/display/ui.json (client only; missing keys use these defaults):| Key | Default | Effect |
| --- | --- | --- |
|
font | serif | serif or minecraft ||
animations | true | All menu, banner and HUD motion ||
animation_speed | 1.0 | 0.25–4 ||
ambient_particles | true | Golden motes behind the menu ||
background_blur | true | Blur the world behind the menu where the version supports it ||
menu_sounds | true | Navigation, staging and confirm sounds ||
hud_style | soulslike | soulslike or classic ||
hud_scale | 1.0 | Soulslike HUD scale, 0.5–2 ||
level_up_banner | true | Show the level-up banner ||
level_up_sound | true | Play the banner sound |## Fixes
- NeoForge: the HUD overlay was drawn once for every vanilla HUD layer, every frame. It is now registered as its own GUI layer and draws once.
## Compatibility
- Clients and servers must both run 5.0.0.** This release adds two network messages and changes the stats menu protocol.
- Existing configuration, player data and server allocation rules are unchanged.
ui.jsonis created only if it is missing, and imported files are not rewritten. - The previous one-click allocation message and the
modifierserver state still exist for compatibility, but the new screen no longer uses them. - The public API is unchanged.
## A new Level Up screen
The stats menu (**K**) is rebuilt as a soulslike Level Up screen with three columns: your attributes, the stats they drive, and a detail card for the selected attribute, in the style of soulslike RPG menus.
- Stage, preview, then confirm.** Use **←/→** or the chevrons to stage points; right-click a row to remove one. Every attribute, stat and configured total shows
current → after. Increases are blue and the remaining points are red. **Enter** or **Confirm** commits the batch. **Reset** returns the staged points. - Atomic, server-validated commits.** The server checks the whole request first: every attribute must be configured and unlocked, and the total cost must fit your available points. Only then does it spend points one at a time, with the same rules, caps, per-point
on_level_eventcommands and attribute commands as before. A rejected request changes nothing. - Server-measured stats.** Base Stats come from the server's live attribute values, so they include equipment, effects and other mods' modifiers. Each value is shown after your configured
display_modifer. Previews use the real modifier formula and range clamp. This also fixes values the client never receives: vanilla does not syncattack_damage, so the old combat viewer showed the client's default value. - See what a point changes.** Stats and totals affected by the selected attribute are marked with a gold diamond.
- Readable small changes.** Rows add decimals only when a change would otherwise be invisible, for example Agility
0.1 → 0.1025. Tooltips keep exact values. - Status and Records pages.** **Tab** switches pages. Status shows your live character model, measured stats and attribute values. Records shows experience earned, points invested and bonuses per attribute, and your configured totals.
- Keyboard first.** **↑/↓** or **W/S** select, **←/→** or **A/D** adjust, **Shift** adjusts by 5, **Enter** confirms, **Backspace/R** resets, **Tab** changes page, and **K** or **Esc** closes. If you have unconfirmed points, the first **Esc** asks before discarding them.
- Responsive layout.** Three columns on wide screens, two at GUI scale 4 on 1080p, and one on very small windows. Long attribute and stat lists scroll. Text is never fractionally scaled, and every control is at least 20 GUI pixels.
## Presentation
- Bundled serif typography** (EB Garamond and Cinzel, SIL Open Font License), rasterized to match your GUI scale for crisp text. Set
"font": "minecraft"to keep the vanilla pixel font. - Animations:** staggered column entrance, a selection highlight that glides between rows, eased hover states, a pulse on changed values, a golden sweep on Confirm, a tab underline that slides between pages, and slow golden motes behind the menu. All motion can be turned off.
- Cinematic level-up banner:** when your RAS level rises, a gold banner fades in with expanding rules, a shimmer and a bell, and shows your new level and points gained.
- Soulslike HUD:** a slim level, experience and unspent-points overlay that matches the menu. The previous pixel-art bar is still available with
"hud_style": "classic". Existingoverlay.jsonanchors, offsets and JEI/REI/EMI avoidance apply to both styles.
## New client settings
config/ras/display/ui.json (client only; missing keys use these defaults):| Key | Default | Effect |
| --- | --- | --- |
|
font | serif | serif or minecraft ||
animations | true | All menu, banner and HUD motion ||
animation_speed | 1.0 | 0.25–4 ||
ambient_particles | true | Golden motes behind the menu ||
background_blur | true | Blur the world behind the menu where the version supports it ||
menu_sounds | true | Navigation, staging and confirm sounds ||
hud_style | soulslike | soulslike or classic ||
hud_scale | 1.0 | Soulslike HUD scale, 0.5–2 ||
level_up_banner | true | Show the level-up banner ||
level_up_sound | true | Play the banner sound |## Fixes
- NeoForge: the HUD overlay was drawn once for every vanilla HUD layer, every frame. It is now registered as its own GUI layer and draws once.
## Compatibility
- Clients and servers must both run 5.0.0.** This release adds two network messages and changes the stats menu protocol.
- Existing configuration, player data and server allocation rules are unchanged.
ui.jsonis created only if it is missing, and imported files are not rewritten. - The previous one-click allocation message and the
modifierserver state still exist for compatibility, but the new screen no longer uses them. - The public API is unchanged.
## A new Level Up screen
The stats menu (**K**) is rebuilt as a soulslike Level Up screen with three columns: your attributes, the stats they drive, and a detail card for the selected attribute, in the style of soulslike RPG menus.
- Stage, preview, then confirm.** Use **←/→** or the chevrons to stage points; right-click a row to remove one. Every attribute, stat and configured total shows
current → after. Increases are blue and the remaining points are red. **Enter** or **Confirm** commits the batch. **Reset** returns the staged points. - Atomic, server-validated commits.** The server checks the whole request first: every attribute must be configured and unlocked, and the total cost must fit your available points. Only then does it spend points one at a time, with the same rules, caps, per-point
on_level_eventcommands and attribute commands as before. A rejected request changes nothing. - Server-measured stats.** Base Stats come from the server's live attribute values, so they include equipment, effects and other mods' modifiers. Each value is shown after your configured
display_modifer. Previews use the real modifier formula and range clamp. This also fixes values the client never receives: vanilla does not syncattack_damage, so the old combat viewer showed the client's default value. - See what a point changes.** Stats and totals affected by the selected attribute are marked with a gold diamond.
- Readable small changes.** Rows add decimals only when a change would otherwise be invisible, for example Agility
0.1 → 0.1025. Tooltips keep exact values. - Status and Records pages.** **Tab** switches pages. Status shows your live character model, measured stats and attribute values. Records shows experience earned, points invested and bonuses per attribute, and your configured totals.
- Keyboard first.** **↑/↓** or **W/S** select, **←/→** or **A/D** adjust, **Shift** adjusts by 5, **Enter** confirms, **Backspace/R** resets, **Tab** changes page, and **K** or **Esc** closes. If you have unconfirmed points, the first **Esc** asks before discarding them.
- Responsive layout.** Three columns on wide screens, two at GUI scale 4 on 1080p, and one on very small windows. Long attribute and stat lists scroll. Text is never fractionally scaled, and every control is at least 20 GUI pixels.
## Presentation
- Bundled serif typography** (EB Garamond and Cinzel, SIL Open Font License), rasterized to match your GUI scale for crisp text. Set
"font": "minecraft"to keep the vanilla pixel font. - Animations:** staggered column entrance, a selection highlight that glides between rows, eased hover states, a pulse on changed values, a golden sweep on Confirm, a tab underline that slides between pages, and slow golden motes behind the menu. All motion can be turned off.
- Cinematic level-up banner:** when your RAS level rises, a gold banner fades in with expanding rules, a shimmer and a bell, and shows your new level and points gained.
- Soulslike HUD:** a slim level, experience and unspent-points overlay that matches the menu. The previous pixel-art bar is still available with
"hud_style": "classic". Existingoverlay.jsonanchors, offsets and JEI/REI/EMI avoidance apply to both styles.
## New client settings
config/ras/display/ui.json (client only; missing keys use these defaults):| Key | Default | Effect |
| --- | --- | --- |
|
font | serif | serif or minecraft ||
animations | true | All menu, banner and HUD motion ||
animation_speed | 1.0 | 0.25–4 ||
ambient_particles | true | Golden motes behind the menu ||
background_blur | true | Blur the world behind the menu where the version supports it ||
menu_sounds | true | Navigation, staging and confirm sounds ||
hud_style | soulslike | soulslike or classic ||
hud_scale | 1.0 | Soulslike HUD scale, 0.5–2 ||
level_up_banner | true | Show the level-up banner ||
level_up_sound | true | Play the banner sound |## Fixes
- NeoForge: the HUD overlay was drawn once for every vanilla HUD layer, every frame. It is now registered as its own GUI layer and draws once.
## Compatibility
- Clients and servers must both run 5.0.0.** This release adds two network messages and changes the stats menu protocol.
- Existing configuration, player data and server allocation rules are unchanged.
ui.jsonis created only if it is missing, and imported files are not rewritten. - The previous one-click allocation message and the
modifierserver state still exist for compatibility, but the new screen no longer uses them. - The public API is unchanged.
## A new Level Up screen
The stats menu (**K**) is rebuilt as a soulslike Level Up screen with three columns: your attributes, the stats they drive, and a detail card for the selected attribute, in the style of soulslike RPG menus.
- Stage, preview, then confirm.** Use **←/→** or the chevrons to stage points; right-click a row to remove one. Every attribute, stat and configured total shows
current → after. Increases are blue and the remaining points are red. **Enter** or **Confirm** commits the batch. **Reset** returns the staged points. - Atomic, server-validated commits.** The server checks the whole request first: every attribute must be configured and unlocked, and the total cost must fit your available points. Only then does it spend points one at a time, with the same rules, caps, per-point
on_level_eventcommands and attribute commands as before. A rejected request changes nothing. - Server-measured stats.** Base Stats come from the server's live attribute values, so they include equipment, effects and other mods' modifiers. Each value is shown after your configured
display_modifer. Previews use the real modifier formula and range clamp. This also fixes values the client never receives: vanilla does not syncattack_damage, so the old combat viewer showed the client's default value. - See what a point changes.** Stats and totals affected by the selected attribute are marked with a gold diamond.
- Readable small changes.** Rows add decimals only when a change would otherwise be invisible, for example Agility
0.1 → 0.1025. Tooltips keep exact values. - Status and Records pages.** **Tab** switches pages. Status shows your live character model, measured stats and attribute values. Records shows experience earned, points invested and bonuses per attribute, and your configured totals.
- Keyboard first.** **↑/↓** or **W/S** select, **←/→** or **A/D** adjust, **Shift** adjusts by 5, **Enter** confirms, **Backspace/R** resets, **Tab** changes page, and **K** or **Esc** closes. If you have unconfirmed points, the first **Esc** asks before discarding them.
- Responsive layout.** Three columns on wide screens, two at GUI scale 4 on 1080p, and one on very small windows. Long attribute and stat lists scroll. Text is never fractionally scaled, and every control is at least 20 GUI pixels.
## Presentation
- Bundled serif typography** (EB Garamond and Cinzel, SIL Open Font License), rasterized to match your GUI scale for crisp text. Set
"font": "minecraft"to keep the vanilla pixel font. - Animations:** staggered column entrance, a selection highlight that glides between rows, eased hover states, a pulse on changed values, a golden sweep on Confirm, a tab underline that slides between pages, and slow golden motes behind the menu. All motion can be turned off.
- Cinematic level-up banner:** when your RAS level rises, a gold banner fades in with expanding rules, a shimmer and a bell, and shows your new level and points gained.
- Soulslike HUD:** a slim level, experience and unspent-points overlay that matches the menu. The previous pixel-art bar is still available with
"hud_style": "classic". Existingoverlay.jsonanchors, offsets and JEI/REI/EMI avoidance apply to both styles.
## New client settings
config/ras/display/ui.json (client only; missing keys use these defaults):| Key | Default | Effect |
| --- | --- | --- |
|
font | serif | serif or minecraft ||
animations | true | All menu, banner and HUD motion ||
animation_speed | 1.0 | 0.25–4 ||
ambient_particles | true | Golden motes behind the menu ||
background_blur | true | Blur the world behind the menu where the version supports it ||
menu_sounds | true | Navigation, staging and confirm sounds ||
hud_style | soulslike | soulslike or classic ||
hud_scale | 1.0 | Soulslike HUD scale, 0.5–2 ||
level_up_banner | true | Show the level-up banner ||
level_up_sound | true | Play the banner sound |## Fixes
- NeoForge: the HUD overlay was drawn once for every vanilla HUD layer, every frame. It is now registered as its own GUI layer and draws once.
## Compatibility
- Clients and servers must both run 5.0.0.** This release adds two network messages and changes the stats menu protocol.
- Existing configuration, player data and server allocation rules are unchanged.
ui.jsonis created only if it is missing, and imported files are not rewritten. - The previous one-click allocation message and the
modifierserver state still exist for compatibility, but the new screen no longer uses them. - The public API is unchanged.
## A new Level Up screen
The stats menu (**K**) is rebuilt as a soulslike Level Up screen with three columns: your attributes, the stats they drive, and a detail card for the selected attribute, in the style of soulslike RPG menus.
- Stage, preview, then confirm.** Use **←/→** or the chevrons to stage points; right-click a row to remove one. Every attribute, stat and configured total shows
current → after. Increases are blue and the remaining points are red. **Enter** or **Confirm** commits the batch. **Reset** returns the staged points. - Atomic, server-validated commits.** The server checks the whole request first: every attribute must be configured and unlocked, and the total cost must fit your available points. Only then does it spend points one at a time, with the same rules, caps, per-point
on_level_eventcommands and attribute commands as before. A rejected request changes nothing. - Server-measured stats.** Base Stats come from the server's live attribute values, so they include equipment, effects and other mods' modifiers. Each value is shown after your configured
display_modifer. Previews use the real modifier formula and range clamp. This also fixes values the client never receives: vanilla does not syncattack_damage, so the old combat viewer showed the client's default value. - See what a point changes.** Stats and totals affected by the selected attribute are marked with a gold diamond.
- Readable small changes.** Rows add decimals only when a change would otherwise be invisible, for example Agility
0.1 → 0.1025. Tooltips keep exact values. - Status and Records pages.** **Tab** switches pages. Status shows your live character model, measured stats and attribute values. Records shows experience earned, points invested and bonuses per attribute, and your configured totals.
- Keyboard first.** **↑/↓** or **W/S** select, **←/→** or **A/D** adjust, **Shift** adjusts by 5, **Enter** confirms, **Backspace/R** resets, **Tab** changes page, and **K** or **Esc** closes. If you have unconfirmed points, the first **Esc** asks before discarding them.
- Responsive layout.** Three columns on wide screens, two at GUI scale 4 on 1080p, and one on very small windows. Long attribute and stat lists scroll. Text is never fractionally scaled, and every control is at least 20 GUI pixels.
## Presentation
- Bundled serif typography** (EB Garamond and Cinzel, SIL Open Font License), rasterized to match your GUI scale for crisp text. Set
"font": "minecraft"to keep the vanilla pixel font. - Animations:** staggered column entrance, a selection highlight that glides between rows, eased hover states, a pulse on changed values, a golden sweep on Confirm, a tab underline that slides between pages, and slow golden motes behind the menu. All motion can be turned off.
- Cinematic level-up banner:** when your RAS level rises, a gold banner fades in with expanding rules, a shimmer and a bell, and shows your new level and points gained.
- Soulslike HUD:** a slim level, experience and unspent-points overlay that matches the menu. The previous pixel-art bar is still available with
"hud_style": "classic". Existingoverlay.jsonanchors, offsets and JEI/REI/EMI avoidance apply to both styles.
## New client settings
config/ras/display/ui.json (client only; missing keys use these defaults):| Key | Default | Effect |
| --- | --- | --- |
|
font | serif | serif or minecraft ||
animations | true | All menu, banner and HUD motion ||
animation_speed | 1.0 | 0.25–4 ||
ambient_particles | true | Golden motes behind the menu ||
background_blur | true | Blur the world behind the menu where the version supports it ||
menu_sounds | true | Navigation, staging and confirm sounds ||
hud_style | soulslike | soulslike or classic ||
hud_scale | 1.0 | Soulslike HUD scale, 0.5–2 ||
level_up_banner | true | Show the level-up banner ||
level_up_sound | true | Play the banner sound |## Fixes
- NeoForge: the HUD overlay was drawn once for every vanilla HUD layer, every frame. It is now registered as its own GUI layer and draws once.
## Compatibility
- Clients and servers must both run 5.0.0.** This release adds two network messages and changes the stats menu protocol.
- Existing configuration, player data and server allocation rules are unchanged.
ui.jsonis created only if it is missing, and imported files are not rewritten. - The previous one-click allocation message and the
modifierserver state still exist for compatibility, but the new screen no longer uses them. - The public API is unchanged.
## A new Level Up screen
The stats menu (**K**) is rebuilt as a soulslike Level Up screen with three columns: your attributes, the stats they drive, and a detail card for the selected attribute, in the style of soulslike RPG menus.
- Stage, preview, then confirm.** Use **←/→** or the chevrons to stage points; right-click a row to remove one. Every attribute, stat and configured total shows
current → after. Increases are blue and the remaining points are red. **Enter** or **Confirm** commits the batch. **Reset** returns the staged points. - Atomic, server-validated commits.** The server checks the whole request first: every attribute must be configured and unlocked, and the total cost must fit your available points. Only then does it spend points one at a time, with the same rules, caps, per-point
on_level_eventcommands and attribute commands as before. A rejected request changes nothing. - Server-measured stats.** Base Stats come from the server's live attribute values, so they include equipment, effects and other mods' modifiers. Each value is shown after your configured
display_modifer. Previews use the real modifier formula and range clamp. This also fixes values the client never receives: vanilla does not syncattack_damage, so the old combat viewer showed the client's default value. - See what a point changes.** Stats and totals affected by the selected attribute are marked with a gold diamond.
- Readable small changes.** Rows add decimals only when a change would otherwise be invisible, for example Agility
0.1 → 0.1025. Tooltips keep exact values. - Status and Records pages.** **Tab** switches pages. Status shows your live character model, measured stats and attribute values. Records shows experience earned, points invested and bonuses per attribute, and your configured totals.
- Keyboard first.** **↑/↓** or **W/S** select, **←/→** or **A/D** adjust, **Shift** adjusts by 5, **Enter** confirms, **Backspace/R** resets, **Tab** changes page, and **K** or **Esc** closes. If you have unconfirmed points, the first **Esc** asks before discarding them.
- Responsive layout.** Three columns on wide screens, two at GUI scale 4 on 1080p, and one on very small windows. Long attribute and stat lists scroll. Text is never fractionally scaled, and every control is at least 20 GUI pixels.
## Presentation
- Bundled serif typography** (EB Garamond and Cinzel, SIL Open Font License), rasterized to match your GUI scale for crisp text. Set
"font": "minecraft"to keep the vanilla pixel font. - Animations:** staggered column entrance, a selection highlight that glides between rows, eased hover states, a pulse on changed values, a golden sweep on Confirm, a tab underline that slides between pages, and slow golden motes behind the menu. All motion can be turned off.
- Cinematic level-up banner:** when your RAS level rises, a gold banner fades in with expanding rules, a shimmer and a bell, and shows your new level and points gained.
- Soulslike HUD:** a slim level, experience and unspent-points overlay that matches the menu. The previous pixel-art bar is still available with
"hud_style": "classic". Existingoverlay.jsonanchors, offsets and JEI/REI/EMI avoidance apply to both styles.
## New client settings
config/ras/display/ui.json (client only; missing keys use these defaults):| Key | Default | Effect |
| --- | --- | --- |
|
font | serif | serif or minecraft ||
animations | true | All menu, banner and HUD motion ||
animation_speed | 1.0 | 0.25–4 ||
ambient_particles | true | Golden motes behind the menu ||
background_blur | true | Blur the world behind the menu where the version supports it ||
menu_sounds | true | Navigation, staging and confirm sounds ||
hud_style | soulslike | soulslike or classic ||
hud_scale | 1.0 | Soulslike HUD scale, 0.5–2 ||
level_up_banner | true | Show the level-up banner ||
level_up_sound | true | Play the banner sound |## Fixes
- NeoForge: the HUD overlay was drawn once for every vanilla HUD layer, every frame. It is now registered as its own GUI layer and draws once.
## Compatibility
- Clients and servers must both run 5.0.0.** This release adds two network messages and changes the stats menu protocol.
- Existing configuration, player data and server allocation rules are unchanged.
ui.jsonis created only if it is missing, and imported files are not rewritten. - The previous one-click allocation message and the
modifierserver state still exist for compatibility, but the new screen no longer uses them. - The public API is unchanged.
## A new Level Up screen
The stats menu (**K**) is rebuilt as a soulslike Level Up screen with three columns: your attributes, the stats they drive, and a detail card for the selected attribute, in the style of soulslike RPG menus.
- Stage, preview, then confirm.** Use **←/→** or the chevrons to stage points; right-click a row to remove one. Every attribute, stat and configured total shows
current → after. Increases are blue and the remaining points are red. **Enter** or **Confirm** commits the batch. **Reset** returns the staged points. - Atomic, server-validated commits.** The server checks the whole request first: every attribute must be configured and unlocked, and the total cost must fit your available points. Only then does it spend points one at a time, with the same rules, caps, per-point
on_level_eventcommands and attribute commands as before. A rejected request changes nothing. - Server-measured stats.** Base Stats come from the server's live attribute values, so they include equipment, effects and other mods' modifiers. Each value is shown after your configured
display_modifer. Previews use the real modifier formula and range clamp. This also fixes values the client never receives: vanilla does not syncattack_damage, so the old combat viewer showed the client's default value. - See what a point changes.** Stats and totals affected by the selected attribute are marked with a gold diamond.
- Readable small changes.** Rows add decimals only when a change would otherwise be invisible, for example Agility
0.1 → 0.1025. Tooltips keep exact values. - Status and Records pages.** **Tab** switches pages. Status shows your live character model, measured stats and attribute values. Records shows experience earned, points invested and bonuses per attribute, and your configured totals.
- Keyboard first.** **↑/↓** or **W/S** select, **←/→** or **A/D** adjust, **Shift** adjusts by 5, **Enter** confirms, **Backspace/R** resets, **Tab** changes page, and **K** or **Esc** closes. If you have unconfirmed points, the first **Esc** asks before discarding them.
- Responsive layout.** Three columns on wide screens, two at GUI scale 4 on 1080p, and one on very small windows. Long attribute and stat lists scroll. Text is never fractionally scaled, and every control is at least 20 GUI pixels.
## Presentation
- Bundled serif typography** (EB Garamond and Cinzel, SIL Open Font License), rasterized to match your GUI scale for crisp text. Set
"font": "minecraft"to keep the vanilla pixel font. - Animations:** staggered column entrance, a selection highlight that glides between rows, eased hover states, a pulse on changed values, a golden sweep on Confirm, a tab underline that slides between pages, and slow golden motes behind the menu. All motion can be turned off.
- Cinematic level-up banner:** when your RAS level rises, a gold banner fades in with expanding rules, a shimmer and a bell, and shows your new level and points gained.
- Soulslike HUD:** a slim level, experience and unspent-points overlay that matches the menu. The previous pixel-art bar is still available with
"hud_style": "classic". Existingoverlay.jsonanchors, offsets and JEI/REI/EMI avoidance apply to both styles.
## New client settings
config/ras/display/ui.json (client only; missing keys use these defaults):| Key | Default | Effect |
| --- | --- | --- |
|
font | serif | serif or minecraft ||
animations | true | All menu, banner and HUD motion ||
animation_speed | 1.0 | 0.25–4 ||
ambient_particles | true | Golden motes behind the menu ||
background_blur | true | Blur the world behind the menu where the version supports it ||
menu_sounds | true | Navigation, staging and confirm sounds ||
hud_style | soulslike | soulslike or classic ||
hud_scale | 1.0 | Soulslike HUD scale, 0.5–2 ||
level_up_banner | true | Show the level-up banner ||
level_up_sound | true | Play the banner sound |## Fixes
- NeoForge: the HUD overlay was drawn once for every vanilla HUD layer, every frame. It is now registered as its own GUI layer and draws once.
## Compatibility
- Clients and servers must both run 5.0.0.** This release adds two network messages and changes the stats menu protocol.
- Existing configuration, player data and server allocation rules are unchanged.
ui.jsonis created only if it is missing, and imported files are not rewritten. - The previous one-click allocation message and the
modifierserver state still exist for compatibility, but the new screen no longer uses them. - The public API is unchanged.
## A new Level Up screen
The stats menu (**K**) is rebuilt as a soulslike Level Up screen with three columns: your attributes, the stats they drive, and a detail card for the selected attribute, in the style of soulslike RPG menus.
- Stage, preview, then confirm.** Use **←/→** or the chevrons to stage points; right-click a row to remove one. Every attribute, stat and configured total shows
current → after. Increases are blue and the remaining points are red. **Enter** or **Confirm** commits the batch. **Reset** returns the staged points. - Atomic, server-validated commits.** The server checks the whole request first: every attribute must be configured and unlocked, and the total cost must fit your available points. Only then does it spend points one at a time, with the same rules, caps, per-point
on_level_eventcommands and attribute commands as before. A rejected request changes nothing. - Server-measured stats.** Base Stats come from the server's live attribute values, so they include equipment, effects and other mods' modifiers. Each value is shown after your configured
display_modifer. Previews use the real modifier formula and range clamp. This also fixes values the client never receives: vanilla does not syncattack_damage, so the old combat viewer showed the client's default value. - See what a point changes.** Stats and totals affected by the selected attribute are marked with a gold diamond.
- Readable small changes.** Rows add decimals only when a change would otherwise be invisible, for example Agility
0.1 → 0.1025. Tooltips keep exact values. - Status and Records pages.** **Tab** switches pages. Status shows your live character model, measured stats and attribute values. Records shows experience earned, points invested and bonuses per attribute, and your configured totals.
- Keyboard first.** **↑/↓** or **W/S** select, **←/→** or **A/D** adjust, **Shift** adjusts by 5, **Enter** confirms, **Backspace/R** resets, **Tab** changes page, and **K** or **Esc** closes. If you have unconfirmed points, the first **Esc** asks before discarding them.
- Responsive layout.** Three columns on wide screens, two at GUI scale 4 on 1080p, and one on very small windows. Long attribute and stat lists scroll. Text is never fractionally scaled, and every control is at least 20 GUI pixels.
## Presentation
- Bundled serif typography** (EB Garamond and Cinzel, SIL Open Font License), rasterized to match your GUI scale for crisp text. Set
"font": "minecraft"to keep the vanilla pixel font. - Animations:** staggered column entrance, a selection highlight that glides between rows, eased hover states, a pulse on changed values, a golden sweep on Confirm, a tab underline that slides between pages, and slow golden motes behind the menu. All motion can be turned off.
- Cinematic level-up banner:** when your RAS level rises, a gold banner fades in with expanding rules, a shimmer and a bell, and shows your new level and points gained.
- Soulslike HUD:** a slim level, experience and unspent-points overlay that matches the menu. The previous pixel-art bar is still available with
"hud_style": "classic". Existingoverlay.jsonanchors, offsets and JEI/REI/EMI avoidance apply to both styles.
## New client settings
config/ras/display/ui.json (client only; missing keys use these defaults):| Key | Default | Effect |
| --- | --- | --- |
|
font | serif | serif or minecraft ||
animations | true | All menu, banner and HUD motion ||
animation_speed | 1.0 | 0.25–4 ||
ambient_particles | true | Golden motes behind the menu ||
background_blur | true | Blur the world behind the menu where the version supports it ||
menu_sounds | true | Navigation, staging and confirm sounds ||
hud_style | soulslike | soulslike or classic ||
hud_scale | 1.0 | Soulslike HUD scale, 0.5–2 ||
level_up_banner | true | Show the level-up banner ||
level_up_sound | true | Play the banner sound |## Fixes
- NeoForge: the HUD overlay was drawn once for every vanilla HUD layer, every frame. It is now registered as its own GUI layer and draws once.
## Compatibility
- Clients and servers must both run 5.0.0.** This release adds two network messages and changes the stats menu protocol.
- Existing configuration, player data and server allocation rules are unchanged.
ui.jsonis created only if it is missing, and imported files are not rewritten. - The previous one-click allocation message and the
modifierserver state still exist for compatibility, but the new screen no longer uses them. - The public API is unchanged.
## A new Level Up screen
The stats menu (**K**) is rebuilt as a soulslike Level Up screen with three columns: your attributes, the stats they drive, and a detail card for the selected attribute, in the style of soulslike RPG menus.
- Stage, preview, then confirm.** Use **←/→** or the chevrons to stage points; right-click a row to remove one. Every attribute, stat and configured total shows
current → after. Increases are blue and the remaining points are red. **Enter** or **Confirm** commits the batch. **Reset** returns the staged points. - Atomic, server-validated commits.** The server checks the whole request first: every attribute must be configured and unlocked, and the total cost must fit your available points. Only then does it spend points one at a time, with the same rules, caps, per-point
on_level_eventcommands and attribute commands as before. A rejected request changes nothing. - Server-measured stats.** Base Stats come from the server's live attribute values, so they include equipment, effects and other mods' modifiers. Each value is shown after your configured
display_modifer. Previews use the real modifier formula and range clamp. This also fixes values the client never receives: vanilla does not syncattack_damage, so the old combat viewer showed the client's default value. - See what a point changes.** Stats and totals affected by the selected attribute are marked with a gold diamond.
- Readable small changes.** Rows add decimals only when a change would otherwise be invisible, for example Agility
0.1 → 0.1025. Tooltips keep exact values. - Status and Records pages.** **Tab** switches pages. Status shows your live character model, measured stats and attribute values. Records shows experience earned, points invested and bonuses per attribute, and your configured totals.
- Keyboard first.** **↑/↓** or **W/S** select, **←/→** or **A/D** adjust, **Shift** adjusts by 5, **Enter** confirms, **Backspace/R** resets, **Tab** changes page, and **K** or **Esc** closes. If you have unconfirmed points, the first **Esc** asks before discarding them.
- Responsive layout.** Three columns on wide screens, two at GUI scale 4 on 1080p, and one on very small windows. Long attribute and stat lists scroll. Text is never fractionally scaled, and every control is at least 20 GUI pixels.
## Presentation
- Bundled serif typography** (EB Garamond and Cinzel, SIL Open Font License), rasterized to match your GUI scale for crisp text. Set
"font": "minecraft"to keep the vanilla pixel font. - Animations:** staggered column entrance, a selection highlight that glides between rows, eased hover states, a pulse on changed values, a golden sweep on Confirm, a tab underline that slides between pages, and slow golden motes behind the menu. All motion can be turned off.
- Cinematic level-up banner:** when your RAS level rises, a gold banner fades in with expanding rules, a shimmer and a bell, and shows your new level and points gained.
- Soulslike HUD:** a slim level, experience and unspent-points overlay that matches the menu. The previous pixel-art bar is still available with
"hud_style": "classic". Existingoverlay.jsonanchors, offsets and JEI/REI/EMI avoidance apply to both styles.
## New client settings
config/ras/display/ui.json (client only; missing keys use these defaults):| Key | Default | Effect |
| --- | --- | --- |
|
font | serif | serif or minecraft ||
animations | true | All menu, banner and HUD motion ||
animation_speed | 1.0 | 0.25–4 ||
ambient_particles | true | Golden motes behind the menu ||
background_blur | true | Blur the world behind the menu where the version supports it ||
menu_sounds | true | Navigation, staging and confirm sounds ||
hud_style | soulslike | soulslike or classic ||
hud_scale | 1.0 | Soulslike HUD scale, 0.5–2 ||
level_up_banner | true | Show the level-up banner ||
level_up_sound | true | Play the banner sound |## Fixes
- NeoForge: the HUD overlay was drawn once for every vanilla HUD layer, every frame. It is now registered as its own GUI layer and draws once.
## Compatibility
- Clients and servers must both run 5.0.0.** This release adds two network messages and changes the stats menu protocol.
- Existing configuration, player data and server allocation rules are unchanged.
ui.jsonis created only if it is missing, and imported files are not rewritten. - The previous one-click allocation message and the
modifierserver state still exist for compatibility, but the new screen no longer uses them. - The public API is unchanged.
## A new Level Up screen
The stats menu (**K**) is rebuilt as a soulslike Level Up screen with three columns: your attributes, the stats they drive, and a detail card for the selected attribute, in the style of soulslike RPG menus.
- Stage, preview, then confirm.** Use **←/→** or the chevrons to stage points; right-click a row to remove one. Every attribute, stat and configured total shows
current → after. Increases are blue and the remaining points are red. **Enter** or **Confirm** commits the batch. **Reset** returns the staged points. - Atomic, server-validated commits.** The server checks the whole request first: every attribute must be configured and unlocked, and the total cost must fit your available points. Only then does it spend points one at a time, with the same rules, caps, per-point
on_level_eventcommands and attribute commands as before. A rejected request changes nothing. - Server-measured stats.** Base Stats come from the server's live attribute values, so they include equipment, effects and other mods' modifiers. Each value is shown after your configured
display_modifer. Previews use the real modifier formula and range clamp. This also fixes values the client never receives: vanilla does not syncattack_damage, so the old combat viewer showed the client's default value. - See what a point changes.** Stats and totals affected by the selected attribute are marked with a gold diamond.
- Readable small changes.** Rows add decimals only when a change would otherwise be invisible, for example Agility
0.1 → 0.1025. Tooltips keep exact values. - Status and Records pages.** **Tab** switches pages. Status shows your live character model, measured stats and attribute values. Records shows experience earned, points invested and bonuses per attribute, and your configured totals.
- Keyboard first.** **↑/↓** or **W/S** select, **←/→** or **A/D** adjust, **Shift** adjusts by 5, **Enter** confirms, **Backspace/R** resets, **Tab** changes page, and **K** or **Esc** closes. If you have unconfirmed points, the first **Esc** asks before discarding them.
- Responsive layout.** Three columns on wide screens, two at GUI scale 4 on 1080p, and one on very small windows. Long attribute and stat lists scroll. Text is never fractionally scaled, and every control is at least 20 GUI pixels.
## Presentation
- Bundled serif typography** (EB Garamond and Cinzel, SIL Open Font License), rasterized to match your GUI scale for crisp text. Set
"font": "minecraft"to keep the vanilla pixel font. - Animations:** staggered column entrance, a selection highlight that glides between rows, eased hover states, a pulse on changed values, a golden sweep on Confirm, a tab underline that slides between pages, and slow golden motes behind the menu. All motion can be turned off.
- Cinematic level-up banner:** when your RAS level rises, a gold banner fades in with expanding rules, a shimmer and a bell, and shows your new level and points gained.
- Soulslike HUD:** a slim level, experience and unspent-points overlay that matches the menu. The previous pixel-art bar is still available with
"hud_style": "classic". Existingoverlay.jsonanchors, offsets and JEI/REI/EMI avoidance apply to both styles.
## New client settings
config/ras/display/ui.json (client only; missing keys use these defaults):| Key | Default | Effect |
| --- | --- | --- |
|
font | serif | serif or minecraft ||
animations | true | All menu, banner and HUD motion ||
animation_speed | 1.0 | 0.25–4 ||
ambient_particles | true | Golden motes behind the menu ||
background_blur | true | Blur the world behind the menu where the version supports it ||
menu_sounds | true | Navigation, staging and confirm sounds ||
hud_style | soulslike | soulslike or classic ||
hud_scale | 1.0 | Soulslike HUD scale, 0.5–2 ||
level_up_banner | true | Show the level-up banner ||
level_up_sound | true | Play the banner sound |## Fixes
- NeoForge: the HUD overlay was drawn once for every vanilla HUD layer, every frame. It is now registered as its own GUI layer and draws once.
## Compatibility
- Clients and servers must both run 5.0.0.** This release adds two network messages and changes the stats menu protocol.
- Existing configuration, player data and server allocation rules are unchanged.
ui.jsonis created only if it is missing, and imported files are not rewritten. - The previous one-click allocation message and the
modifierserver state still exist for compatibility, but the new screen no longer uses them. - The public API is unchanged.
## Per-mob VP and configuration safety
- Optional server-authoritative
config/ras/mob_xp.jsonadds exact entity and entity-type tag rules, base VP overrides, and multipliers. Exact entity rules take precedence over tag rules; priority and file order resolve ties within each tier. Only one rule contributes to an award. - Optional victim-world difficulty and effective armor weighting, including fractional armor modifiers.
- Rules are cached. Administrators can use
/ras reload mob_xpto reload this file; malformed, unsupported, or unreadable replacements retain the last good rules. Diagnostics identify skipped individual rules and failed whole-file reloads. - Invalid or nonfinite XP input and overflowing awards/player totals are rejected.
The generated per-mob file and both weighting options are disabled by default. Updating does not enable them, change existing dimension/global rates or shared-XP behavior, or rewrite imported configuration. Existing loader-specific boss item-drop behavior is unchanged. The new file requires RAS 4.3.0; 4.2.6 does not read it.
## Stats menu
- Responsive native-size text, larger labeled controls, dynamic paging, full tooltips, and keyboard-focus feedback.
- Precise current/next-value tooltips reveal small upgrades such as Agility
0.1→0.1025, while visible rows keep compact values. - Fresh stats-summary defaults correctly label attribute 3 as Attack Speed. Imported labels and custom settings retain their existing values.
- Point allocation remains server-authoritative, with loaded attribute IDs and configured locks checked on the server.
## Standalone configuration studio
The local-only editor source is included under
tools/config-studio/, separately from the Minecraft JARs. Its 4.3.0 target supports the versioned per-mob contract and corrected fresh stats labels. The editor preserves untouched imported files, unknown fields, and intentional custom labels, with validation and ZIP-safety checks before export. Shared tests compare real exports and previews with the production Java rules in all five version roots.Serve the editor locally and export before closing or reloading. Hosting and rendered-browser acceptance are separate from source/formula verification.
## Verification scope
Representative gameplay QA uses programmatic Skeleton damage through real loader death hooks on a Fabric integrated server, alongside physical menu input and server/client state checks. It does not prove physical combat, multiplayer, dedicated-server or other-loader runtime, exhaustive death-event cancellation/deduplication, Forge boss drops, or live datapack/admin-command reloads. See the [commit-bound verification record](https://github.com/MeherBenSalem/RPG-Attribute-System/blob/main/docs/verification/4.3.0.md) for exact results and release gates.
## Per-mob VP and configuration safety
- Optional server-authoritative
config/ras/mob_xp.jsonadds exact entity and entity-type tag rules, base VP overrides, and multipliers. Exact entity rules take precedence over tag rules; priority and file order resolve ties within each tier. Only one rule contributes to an award. - Optional victim-world difficulty and effective armor weighting, including fractional armor modifiers.
- Rules are cached. Administrators can use
/ras reload mob_xpto reload this file; malformed, unsupported, or unreadable replacements retain the last good rules. Diagnostics identify skipped individual rules and failed whole-file reloads. - Invalid or nonfinite XP input and overflowing awards/player totals are rejected.
The generated per-mob file and both weighting options are disabled by default. Updating does not enable them, change existing dimension/global rates or shared-XP behavior, or rewrite imported configuration. Existing loader-specific boss item-drop behavior is unchanged. The new file requires RAS 4.3.0; 4.2.6 does not read it.
## Stats menu
- Responsive native-size text, larger labeled controls, dynamic paging, full tooltips, and keyboard-focus feedback.
- Precise current/next-value tooltips reveal small upgrades such as Agility
0.1→0.1025, while visible rows keep compact values. - Fresh stats-summary defaults correctly label attribute 3 as Attack Speed. Imported labels and custom settings retain their existing values.
- Point allocation remains server-authoritative, with loaded attribute IDs and configured locks checked on the server.
## Standalone configuration studio
The local-only editor source is included under
tools/config-studio/, separately from the Minecraft JARs. Its 4.3.0 target supports the versioned per-mob contract and corrected fresh stats labels. The editor preserves untouched imported files, unknown fields, and intentional custom labels, with validation and ZIP-safety checks before export. Shared tests compare real exports and previews with the production Java rules in all five version roots.Serve the editor locally and export before closing or reloading. Hosting and rendered-browser acceptance are separate from source/formula verification.
## Verification scope
Representative gameplay QA uses programmatic Skeleton damage through real loader death hooks on a Fabric integrated server, alongside physical menu input and server/client state checks. It does not prove physical combat, multiplayer, dedicated-server or other-loader runtime, exhaustive death-event cancellation/deduplication, Forge boss drops, or live datapack/admin-command reloads. See the [commit-bound verification record](https://github.com/MeherBenSalem/RPG-Attribute-System/blob/main/docs/verification/4.3.0.md) for exact results and release gates.
## Per-mob VP and configuration safety
- Optional server-authoritative
config/ras/mob_xp.jsonadds exact entity and entity-type tag rules, base VP overrides, and multipliers. Exact entity rules take precedence over tag rules; priority and file order resolve ties within each tier. Only one rule contributes to an award. - Optional victim-world difficulty and effective armor weighting, including fractional armor modifiers.
- Rules are cached. Administrators can use
/ras reload mob_xpto reload this file; malformed, unsupported, or unreadable replacements retain the last good rules. Diagnostics identify skipped individual rules and failed whole-file reloads. - Invalid or nonfinite XP input and overflowing awards/player totals are rejected.
The generated per-mob file and both weighting options are disabled by default. Updating does not enable them, change existing dimension/global rates or shared-XP behavior, or rewrite imported configuration. Existing loader-specific boss item-drop behavior is unchanged. The new file requires RAS 4.3.0; 4.2.6 does not read it.
## Stats menu
- Responsive native-size text, larger labeled controls, dynamic paging, full tooltips, and keyboard-focus feedback.
- Precise current/next-value tooltips reveal small upgrades such as Agility
0.1→0.1025, while visible rows keep compact values. - Fresh stats-summary defaults correctly label attribute 3 as Attack Speed. Imported labels and custom settings retain their existing values.
- Point allocation remains server-authoritative, with loaded attribute IDs and configured locks checked on the server.
## Standalone configuration studio
The local-only editor source is included under
tools/config-studio/, separately from the Minecraft JARs. Its 4.3.0 target supports the versioned per-mob contract and corrected fresh stats labels. The editor preserves untouched imported files, unknown fields, and intentional custom labels, with validation and ZIP-safety checks before export. Shared tests compare real exports and previews with the production Java rules in all five version roots.Serve the editor locally and export before closing or reloading. Hosting and rendered-browser acceptance are separate from source/formula verification.
## Verification scope
Representative gameplay QA uses programmatic Skeleton damage through real loader death hooks on a Fabric integrated server, alongside physical menu input and server/client state checks. It does not prove physical combat, multiplayer, dedicated-server or other-loader runtime, exhaustive death-event cancellation/deduplication, Forge boss drops, or live datapack/admin-command reloads. See the [commit-bound verification record](https://github.com/MeherBenSalem/RPG-Attribute-System/blob/main/docs/verification/4.3.0.md) for exact results and release gates.
## Per-mob VP and configuration safety
- Optional server-authoritative
config/ras/mob_xp.jsonadds exact entity and entity-type tag rules, base VP overrides, and multipliers. Exact entity rules take precedence over tag rules; priority and file order resolve ties within each tier. Only one rule contributes to an award. - Optional victim-world difficulty and effective armor weighting, including fractional armor modifiers.
- Rules are cached. Administrators can use
/ras reload mob_xpto reload this file; malformed, unsupported, or unreadable replacements retain the last good rules. Diagnostics identify skipped individual rules and failed whole-file reloads. - Invalid or nonfinite XP input and overflowing awards/player totals are rejected.
The generated per-mob file and both weighting options are disabled by default. Updating does not enable them, change existing dimension/global rates or shared-XP behavior, or rewrite imported configuration. Existing loader-specific boss item-drop behavior is unchanged. The new file requires RAS 4.3.0; 4.2.6 does not read it.
## Stats menu
- Responsive native-size text, larger labeled controls, dynamic paging, full tooltips, and keyboard-focus feedback.
- Precise current/next-value tooltips reveal small upgrades such as Agility
0.1→0.1025, while visible rows keep compact values. - Fresh stats-summary defaults correctly label attribute 3 as Attack Speed. Imported labels and custom settings retain their existing values.
- Point allocation remains server-authoritative, with loaded attribute IDs and configured locks checked on the server.
## Standalone configuration studio
The local-only editor source is included under
tools/config-studio/, separately from the Minecraft JARs. Its 4.3.0 target supports the versioned per-mob contract and corrected fresh stats labels. The editor preserves untouched imported files, unknown fields, and intentional custom labels, with validation and ZIP-safety checks before export. Shared tests compare real exports and previews with the production Java rules in all five version roots.Serve the editor locally and export before closing or reloading. Hosting and rendered-browser acceptance are separate from source/formula verification.
## Verification scope
Representative gameplay QA uses programmatic Skeleton damage through real loader death hooks on a Fabric integrated server, alongside physical menu input and server/client state checks. It does not prove physical combat, multiplayer, dedicated-server or other-loader runtime, exhaustive death-event cancellation/deduplication, Forge boss drops, or live datapack/admin-command reloads. See the [commit-bound verification record](https://github.com/MeherBenSalem/RPG-Attribute-System/blob/main/docs/verification/4.3.0.md) for exact results and release gates.
## Per-mob VP and configuration safety
- Optional server-authoritative
config/ras/mob_xp.jsonadds exact entity and entity-type tag rules, base VP overrides, and multipliers. Exact entity rules take precedence over tag rules; priority and file order resolve ties within each tier. Only one rule contributes to an award. - Optional victim-world difficulty and effective armor weighting, including fractional armor modifiers.
- Rules are cached. Administrators can use
/ras reload mob_xpto reload this file; malformed, unsupported, or unreadable replacements retain the last good rules. Diagnostics identify skipped individual rules and failed whole-file reloads. - Invalid or nonfinite XP input and overflowing awards/player totals are rejected.
The generated per-mob file and both weighting options are disabled by default. Updating does not enable them, change existing dimension/global rates or shared-XP behavior, or rewrite imported configuration. Existing loader-specific boss item-drop behavior is unchanged. The new file requires RAS 4.3.0; 4.2.6 does not read it.
## Stats menu
- Responsive native-size text, larger labeled controls, dynamic paging, full tooltips, and keyboard-focus feedback.
- Precise current/next-value tooltips reveal small upgrades such as Agility
0.1→0.1025, while visible rows keep compact values. - Fresh stats-summary defaults correctly label attribute 3 as Attack Speed. Imported labels and custom settings retain their existing values.
- Point allocation remains server-authoritative, with loaded attribute IDs and configured locks checked on the server.
## Standalone configuration studio
The local-only editor source is included under
tools/config-studio/, separately from the Minecraft JARs. Its 4.3.0 target supports the versioned per-mob contract and corrected fresh stats labels. The editor preserves untouched imported files, unknown fields, and intentional custom labels, with validation and ZIP-safety checks before export. Shared tests compare real exports and previews with the production Java rules in all five version roots.Serve the editor locally and export before closing or reloading. Hosting and rendered-browser acceptance are separate from source/formula verification.
## Verification scope
Representative gameplay QA uses programmatic Skeleton damage through real loader death hooks on a Fabric integrated server, alongside physical menu input and server/client state checks. It does not prove physical combat, multiplayer, dedicated-server or other-loader runtime, exhaustive death-event cancellation/deduplication, Forge boss drops, or live datapack/admin-command reloads. See the [commit-bound verification record](https://github.com/MeherBenSalem/RPG-Attribute-System/blob/main/docs/verification/4.3.0.md) for exact results and release gates.
## Per-mob VP and configuration safety
- Optional server-authoritative
config/ras/mob_xp.jsonadds exact entity and entity-type tag rules, base VP overrides, and multipliers. Exact entity rules take precedence over tag rules; priority and file order resolve ties within each tier. Only one rule contributes to an award. - Optional victim-world difficulty and effective armor weighting, including fractional armor modifiers.
- Rules are cached. Administrators can use
/ras reload mob_xpto reload this file; malformed, unsupported, or unreadable replacements retain the last good rules. Diagnostics identify skipped individual rules and failed whole-file reloads. - Invalid or nonfinite XP input and overflowing awards/player totals are rejected.
The generated per-mob file and both weighting options are disabled by default. Updating does not enable them, change existing dimension/global rates or shared-XP behavior, or rewrite imported configuration. Existing loader-specific boss item-drop behavior is unchanged. The new file requires RAS 4.3.0; 4.2.6 does not read it.
## Stats menu
- Responsive native-size text, larger labeled controls, dynamic paging, full tooltips, and keyboard-focus feedback.
- Precise current/next-value tooltips reveal small upgrades such as Agility
0.1→0.1025, while visible rows keep compact values. - Fresh stats-summary defaults correctly label attribute 3 as Attack Speed. Imported labels and custom settings retain their existing values.
- Point allocation remains server-authoritative, with loaded attribute IDs and configured locks checked on the server.
## Standalone configuration studio
The local-only editor source is included under
tools/config-studio/, separately from the Minecraft JARs. Its 4.3.0 target supports the versioned per-mob contract and corrected fresh stats labels. The editor preserves untouched imported files, unknown fields, and intentional custom labels, with validation and ZIP-safety checks before export. Shared tests compare real exports and previews with the production Java rules in all five version roots.Serve the editor locally and export before closing or reloading. Hosting and rendered-browser acceptance are separate from source/formula verification.
## Verification scope
Representative gameplay QA uses programmatic Skeleton damage through real loader death hooks on a Fabric integrated server, alongside physical menu input and server/client state checks. It does not prove physical combat, multiplayer, dedicated-server or other-loader runtime, exhaustive death-event cancellation/deduplication, Forge boss drops, or live datapack/admin-command reloads. See the [commit-bound verification record](https://github.com/MeherBenSalem/RPG-Attribute-System/blob/main/docs/verification/4.3.0.md) for exact results and release gates.
## Per-mob VP and configuration safety
- Optional server-authoritative
config/ras/mob_xp.jsonadds exact entity and entity-type tag rules, base VP overrides, and multipliers. Exact entity rules take precedence over tag rules; priority and file order resolve ties within each tier. Only one rule contributes to an award. - Optional victim-world difficulty and effective armor weighting, including fractional armor modifiers.
- Rules are cached. Administrators can use
/ras reload mob_xpto reload this file; malformed, unsupported, or unreadable replacements retain the last good rules. Diagnostics identify skipped individual rules and failed whole-file reloads. - Invalid or nonfinite XP input and overflowing awards/player totals are rejected.
The generated per-mob file and both weighting options are disabled by default. Updating does not enable them, change existing dimension/global rates or shared-XP behavior, or rewrite imported configuration. Existing loader-specific boss item-drop behavior is unchanged. The new file requires RAS 4.3.0; 4.2.6 does not read it.
## Stats menu
- Responsive native-size text, larger labeled controls, dynamic paging, full tooltips, and keyboard-focus feedback.
- Precise current/next-value tooltips reveal small upgrades such as Agility
0.1→0.1025, while visible rows keep compact values. - Fresh stats-summary defaults correctly label attribute 3 as Attack Speed. Imported labels and custom settings retain their existing values.
- Point allocation remains server-authoritative, with loaded attribute IDs and configured locks checked on the server.
## Standalone configuration studio
The local-only editor source is included under
tools/config-studio/, separately from the Minecraft JARs. Its 4.3.0 target supports the versioned per-mob contract and corrected fresh stats labels. The editor preserves untouched imported files, unknown fields, and intentional custom labels, with validation and ZIP-safety checks before export. Shared tests compare real exports and previews with the production Java rules in all five version roots.Serve the editor locally and export before closing or reloading. Hosting and rendered-browser acceptance are separate from source/formula verification.
## Verification scope
Representative gameplay QA uses programmatic Skeleton damage through real loader death hooks on a Fabric integrated server, alongside physical menu input and server/client state checks. It does not prove physical combat, multiplayer, dedicated-server or other-loader runtime, exhaustive death-event cancellation/deduplication, Forge boss drops, or live datapack/admin-command reloads. See the [commit-bound verification record](https://github.com/MeherBenSalem/RPG-Attribute-System/blob/main/docs/verification/4.3.0.md) for exact results and release gates.
## Per-mob VP and configuration safety
- Optional server-authoritative
config/ras/mob_xp.jsonadds exact entity and entity-type tag rules, base VP overrides, and multipliers. Exact entity rules take precedence over tag rules; priority and file order resolve ties within each tier. Only one rule contributes to an award. - Optional victim-world difficulty and effective armor weighting, including fractional armor modifiers.
- Rules are cached. Administrators can use
/ras reload mob_xpto reload this file; malformed, unsupported, or unreadable replacements retain the last good rules. Diagnostics identify skipped individual rules and failed whole-file reloads. - Invalid or nonfinite XP input and overflowing awards/player totals are rejected.
The generated per-mob file and both weighting options are disabled by default. Updating does not enable them, change existing dimension/global rates or shared-XP behavior, or rewrite imported configuration. Existing loader-specific boss item-drop behavior is unchanged. The new file requires RAS 4.3.0; 4.2.6 does not read it.
## Stats menu
- Responsive native-size text, larger labeled controls, dynamic paging, full tooltips, and keyboard-focus feedback.
- Precise current/next-value tooltips reveal small upgrades such as Agility
0.1→0.1025, while visible rows keep compact values. - Fresh stats-summary defaults correctly label attribute 3 as Attack Speed. Imported labels and custom settings retain their existing values.
- Point allocation remains server-authoritative, with loaded attribute IDs and configured locks checked on the server.
## Standalone configuration studio
The local-only editor source is included under
tools/config-studio/, separately from the Minecraft JARs. Its 4.3.0 target supports the versioned per-mob contract and corrected fresh stats labels. The editor preserves untouched imported files, unknown fields, and intentional custom labels, with validation and ZIP-safety checks before export. Shared tests compare real exports and previews with the production Java rules in all five version roots.Serve the editor locally and export before closing or reloading. Hosting and rendered-browser acceptance are separate from source/formula verification.
## Verification scope
Representative gameplay QA uses programmatic Skeleton damage through real loader death hooks on a Fabric integrated server, alongside physical menu input and server/client state checks. It does not prove physical combat, multiplayer, dedicated-server or other-loader runtime, exhaustive death-event cancellation/deduplication, Forge boss drops, or live datapack/admin-command reloads. See the [commit-bound verification record](https://github.com/MeherBenSalem/RPG-Attribute-System/blob/main/docs/verification/4.3.0.md) for exact results and release gates.
## Per-mob VP and configuration safety
- Optional server-authoritative
config/ras/mob_xp.jsonadds exact entity and entity-type tag rules, base VP overrides, and multipliers. Exact entity rules take precedence over tag rules; priority and file order resolve ties within each tier. Only one rule contributes to an award. - Optional victim-world difficulty and effective armor weighting, including fractional armor modifiers.
- Rules are cached. Administrators can use
/ras reload mob_xpto reload this file; malformed, unsupported, or unreadable replacements retain the last good rules. Diagnostics identify skipped individual rules and failed whole-file reloads. - Invalid or nonfinite XP input and overflowing awards/player totals are rejected.
The generated per-mob file and both weighting options are disabled by default. Updating does not enable them, change existing dimension/global rates or shared-XP behavior, or rewrite imported configuration. Existing loader-specific boss item-drop behavior is unchanged. The new file requires RAS 4.3.0; 4.2.6 does not read it.
## Stats menu
- Responsive native-size text, larger labeled controls, dynamic paging, full tooltips, and keyboard-focus feedback.
- Precise current/next-value tooltips reveal small upgrades such as Agility
0.1→0.1025, while visible rows keep compact values. - Fresh stats-summary defaults correctly label attribute 3 as Attack Speed. Imported labels and custom settings retain their existing values.
- Point allocation remains server-authoritative, with loaded attribute IDs and configured locks checked on the server.
## Standalone configuration studio
The local-only editor source is included under
tools/config-studio/, separately from the Minecraft JARs. Its 4.3.0 target supports the versioned per-mob contract and corrected fresh stats labels. The editor preserves untouched imported files, unknown fields, and intentional custom labels, with validation and ZIP-safety checks before export. Shared tests compare real exports and previews with the production Java rules in all five version roots.Serve the editor locally and export before closing or reloading. Hosting and rendered-browser acceptance are separate from source/formula verification.
## Verification scope
Representative gameplay QA uses programmatic Skeleton damage through real loader death hooks on a Fabric integrated server, alongside physical menu input and server/client state checks. It does not prove physical combat, multiplayer, dedicated-server or other-loader runtime, exhaustive death-event cancellation/deduplication, Forge boss drops, or live datapack/admin-command reloads. See the [commit-bound verification record](https://github.com/MeherBenSalem/RPG-Attribute-System/blob/main/docs/verification/4.3.0.md) for exact results and release gates.
## Per-mob VP and configuration safety
- Optional server-authoritative
config/ras/mob_xp.jsonadds exact entity and entity-type tag rules, base VP overrides, and multipliers. Exact entity rules take precedence over tag rules; priority and file order resolve ties within each tier. Only one rule contributes to an award. - Optional victim-world difficulty and effective armor weighting, including fractional armor modifiers.
- Rules are cached. Administrators can use
/ras reload mob_xpto reload this file; malformed, unsupported, or unreadable replacements retain the last good rules. Diagnostics identify skipped individual rules and failed whole-file reloads. - Invalid or nonfinite XP input and overflowing awards/player totals are rejected.
The generated per-mob file and both weighting options are disabled by default. Updating does not enable them, change existing dimension/global rates or shared-XP behavior, or rewrite imported configuration. Existing loader-specific boss item-drop behavior is unchanged. The new file requires RAS 4.3.0; 4.2.6 does not read it.
## Stats menu
- Responsive native-size text, larger labeled controls, dynamic paging, full tooltips, and keyboard-focus feedback.
- Precise current/next-value tooltips reveal small upgrades such as Agility
0.1→0.1025, while visible rows keep compact values. - Fresh stats-summary defaults correctly label attribute 3 as Attack Speed. Imported labels and custom settings retain their existing values.
- Point allocation remains server-authoritative, with loaded attribute IDs and configured locks checked on the server.
## Standalone configuration studio
The local-only editor source is included under
tools/config-studio/, separately from the Minecraft JARs. Its 4.3.0 target supports the versioned per-mob contract and corrected fresh stats labels. The editor preserves untouched imported files, unknown fields, and intentional custom labels, with validation and ZIP-safety checks before export. Shared tests compare real exports and previews with the production Java rules in all five version roots.Serve the editor locally and export before closing or reloading. Hosting and rendered-browser acceptance are separate from source/formula verification.
## Verification scope
Representative gameplay QA uses programmatic Skeleton damage through real loader death hooks on a Fabric integrated server, alongside physical menu input and server/client state checks. It does not prove physical combat, multiplayer, dedicated-server or other-loader runtime, exhaustive death-event cancellation/deduplication, Forge boss drops, or live datapack/admin-command reloads. See the [commit-bound verification record](https://github.com/MeherBenSalem/RPG-Attribute-System/blob/main/docs/verification/4.3.0.md) for exact results and release gates.
- Supported platforms:** Minecraft 1.20.1 (Fabric, Forge) · Minecraft 1.21.1 (Fabric, NeoForge) · Minecraft 26.1.2 (Fabric, NeoForge) · Minecraft 26.2 (Fabric, NeoForge) · Minecraft 26.3 (Fabric, NeoForge)
## Platforms
- Minecraft 26.3** — Fabric and NeoForge jars for this line. Gameplay matches the 4.2.6 26.2 port.
## Bug fixes
- HUD respects Hide GUI (F1)** — the RAS level/VP overlay now hides with the vanilla HUD when Hide GUI is on.
## Upgrade
Replace the loader jar for your Minecraft version with **4.2.6**. Server and clients should run the same RAS version.
- Supported platforms:** Minecraft 1.20.1 (Fabric, Forge) · Minecraft 1.21.1 (Fabric, NeoForge) · Minecraft 26.1.2 (Fabric, NeoForge) · Minecraft 26.2 (Fabric, NeoForge) · Minecraft 26.3 (Fabric, NeoForge)
## Platforms
- Minecraft 26.3** — Fabric and NeoForge jars for this line. Gameplay matches the 4.2.6 26.2 port.
## Bug fixes
- HUD respects Hide GUI (F1)** — the RAS level/VP overlay now hides with the vanilla HUD when Hide GUI is on.
## Upgrade
Replace the loader jar for your Minecraft version with **4.2.6**. Server and clients should run the same RAS version.
- Supported platforms:** Minecraft 1.20.1 (Fabric, Forge) · Minecraft 1.21.1 (Fabric, NeoForge) · Minecraft 26.1.2 (Fabric, NeoForge) · Minecraft 26.2 (Fabric, NeoForge)
## Bug fixes
- HUD respects Hide GUI (F1)** — the RAS level/VP overlay now hides with the vanilla HUD when Hide GUI is on.
## Upgrade
Replace the loader jar for your Minecraft version with **4.2.6**. Server and clients should run the same RAS version.
- Supported platforms:** Minecraft 1.20.1 (Fabric, Forge) · Minecraft 1.21.1 (Fabric, NeoForge) · Minecraft 26.1.2 (Fabric, NeoForge) · Minecraft 26.2 (Fabric, NeoForge)
## Bug fixes
- HUD respects Hide GUI (F1)** — the RAS level/VP overlay now hides with the vanilla HUD when Hide GUI is on.
## Upgrade
Replace the loader jar for your Minecraft version with **4.2.6**. Server and clients should run the same RAS version.
- Supported platforms:** Minecraft 1.20.1 (Fabric, Forge) · Minecraft 1.21.1 (Fabric, NeoForge) · Minecraft 26.1.2 (Fabric, NeoForge) · Minecraft 26.2 (Fabric, NeoForge)
## Bug fixes
- HUD respects Hide GUI (F1)** — the RAS level/VP overlay now hides with the vanilla HUD when Hide GUI is on.
## Upgrade
Replace the loader jar for your Minecraft version with **4.2.6**. Server and clients should run the same RAS version.
- Supported platforms:** Minecraft 1.20.1 (Fabric, Forge) · Minecraft 1.21.1 (Fabric, NeoForge) · Minecraft 26.1.2 (Fabric, NeoForge) · Minecraft 26.2 (Fabric, NeoForge)
## Bug fixes
- HUD respects Hide GUI (F1)** — the RAS level/VP overlay now hides with the vanilla HUD when Hide GUI is on.
## Upgrade
Replace the loader jar for your Minecraft version with **4.2.6**. Server and clients should run the same RAS version.
- Supported platforms:** Minecraft 1.20.1 (Fabric, Forge) · Minecraft 1.21.1 (Fabric, NeoForge) · Minecraft 26.1.2 (Fabric, NeoForge) · Minecraft 26.2 (Fabric, NeoForge)
## Bug fixes
- HUD respects Hide GUI (F1)** — the RAS level/VP overlay now hides with the vanilla HUD when Hide GUI is on.
## Upgrade
Replace the loader jar for your Minecraft version with **4.2.6**. Server and clients should run the same RAS version.
- Supported platforms:** Minecraft 1.20.1 (Fabric, Forge) · Minecraft 1.21.1 (Fabric, NeoForge) · Minecraft 26.1.2 (Fabric, NeoForge) · Minecraft 26.2 (Fabric, NeoForge)
## Bug fixes
- HUD respects Hide GUI (F1)** — the RAS level/VP overlay now hides with the vanilla HUD when Hide GUI is on.
## Upgrade
Replace the loader jar for your Minecraft version with **4.2.6**. Server and clients should run the same RAS version.
- Supported platforms:** Minecraft 1.20.1 (Fabric, Forge) · Minecraft 1.21.1 (Fabric, NeoForge) · Minecraft 26.1.2 (Fabric, NeoForge) · Minecraft 26.2 (Fabric, NeoForge)
## Bug fixes
- HUD respects Hide GUI (F1)** — the RAS level/VP overlay now hides with the vanilla HUD when Hide GUI is on.
## Upgrade
Replace the loader jar for your Minecraft version with **4.2.6**. Server and clients should run the same RAS version.
- Supported platforms:** Minecraft 1.20.1 (Fabric, Forge) · Minecraft 1.21.1 (Fabric, NeoForge) · Minecraft 26.1.2 (Fabric, NeoForge) · Minecraft 26.2 (Fabric, NeoForge)
## Bug fixes
- HUD respects Hide GUI (F1)** — the RAS level/VP overlay now hides with the vanilla HUD when Hide GUI is on.
## Upgrade
Replace the loader jar for your Minecraft version with **4.2.6**. Server and clients should run the same RAS version.