From d6bda1fff0f00b0cb8574e3cef00c2af18dc297f Mon Sep 17 00:00:00 2001 From: MagicBot Date: Thu, 22 Oct 2026 07:10:03 -0400 Subject: [PATCH] Cap creation at 10 runes and 8 talents like the client The rune count limit drops from 16 to the client's 10 slots, race and class included (CharCreate_ApplyRune 0xBA8C80), and more than 8 talents is refused (ArcCharacter_AddRune 0x4695D0). Co-Authored-By: Claude Opus 5.5 --- src/engine/objects/PlayerCharacter.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/engine/objects/PlayerCharacter.java b/src/engine/objects/PlayerCharacter.java index 9203a28a..b4eb145e 100644 --- a/src/engine/objects/PlayerCharacter.java +++ b/src/engine/objects/PlayerCharacter.java @@ -851,10 +851,10 @@ public class PlayerCharacter extends AbstractCharacter { short intMax = race.getIntMax(); short spiMax = race.getSpiMax(); - // Verify not too many runes applied + // 10 rune slots including race and class (client 0xBA8C80) int numRunes = msg.getNumRunes(); - if (numRunes > 16) { + if (numRunes > 10) { Logger.info("Too many Runes applied"); return null; } @@ -936,6 +936,12 @@ public class PlayerCharacter extends AbstractCharacter { usedRunes.add(runeBase); + // Talent cap of 8 (client 0x4695D0) + if (usedRunes.size() > 8) { + Logger.info("Too many talents applied"); + return null; + } + int maxValue = 0; // Every attempt is made to load MIN_NEEDED_ATTRIBUTES first.