# I WAS A KING — Recent Update Notes V30.64 ~ V30.72
Your Majesty,
Since the last cumulative update notice, I WAS A KING has received another round of important patches focused on court agenda content, typewriter presentation, Linux UTF-8 behavior, build warning cleanup, input responsiveness, and Steam achievement synchronization.
The biggest change in this cycle is that the court agenda system has been expanded and stabilized around a 300-issue CSV-based agenda pool. Earlier builds still carried traces of the older hardcoded agenda generator, which meant that some new agenda text could be mixed with older fallback wording or keyword-like fragments. This has now been cleaned up so that the game uses the intended CSV agenda set more consistently.
V30.64 began this work by rewriting the court agenda and petition CSV surface. Issue titles, setup text, and choice descriptions were rewritten to sound more like royal memorials and court reports rather than debug-style prompts. The goal was to make each case feel like something being formally submitted to the throne.
V30.65 replaced the agenda data with a larger 300-issue rebalanced CSV set. This brought the agenda pool to 300 issues and 1,200 choices, while keeping each issue structured around A, B, C, and D choices. The balance values were kept controlled, with no single stat change exceeding 2 and no choice exceeding a total absolute stat impact of 4.
V30.66 replaced that agenda set again with a text-surface-cleaned version. This pass focused on improving the visible wording without changing the underlying balance logic. The issue count, option count, choice structure, and numeric balancing rules were preserved.
V30.67 then replaced the agenda CSV one final time with the options-rewritten set. This was the major content polish pass for the 300-issue agenda system. The purpose was to reduce repetitive template wording, improve the match between each issue and its available choices, and make the choices feel less like generated placeholders and more like actual royal policy decisions.
V30.68 addressed two deeper runtime problems that became visible after the new agenda data was added. First, the typewriter effect was not behaving like a real typewriter effect. Cards were appearing as complete boxes first, and then the text would appear inside them, which made the effect feel weak. The GUI pipeline was changed so that normal court output now appears character by character, with the message card growing along with the visible text instead of appearing at full height immediately.
The second V30.68 fix was the agenda output pipeline. The game was still partly treating the CSV agenda data as an override layer on top of older hardcoded issue generation. This could cause certain issues to appear with fallback text, keyword-like fragments, or mismatched output. The runtime agenda draw was changed so that the 300-row CSV agenda pair becomes the authoritative ordinary agenda pool. Special forced or dynamic issues still exist where needed, but the ordinary court agenda flow now follows the intended CSV set.
V30.69 fixed a Linux-specific UTF-8 issue. On Linux, especially under Steam, the runtime locale can sometimes be set to C, POSIX, or another non-UTF-8 environment. The Linux Royal GUI was still receiving payload output through a text pipe, which could cause Korean text to decode incorrectly and break the typewriter effect. Linux now receives payload stdout as raw bytes and decodes it through a controlled UTF-8 path. The Linux runtime also now forces UTF-8-related environment variables for the payload and GUI process. This makes Korean output and typewriter rendering much more reliable on Linux.
V30.70 cleaned up PyInstaller warning behavior. Most of the warnings were platform-conditional import noise, but two areas were worth addressing. Pillow is now treated as a required GUI dependency instead of a loose optional dependency, because the Royal GUI compositor depends on it for background and glass rendering. The old optional Python steamworks import was also hidden behind a dynamic import path so that PyInstaller does not treat it like a required release dependency. Steam API handling remains the responsibility of the C# Steamworks.NET host.
V30.71 improved typewriter responsiveness and player input flow. The maximum typewriter speed was increased to three times the previous effective top speed. More importantly, the game no longer leaves the player staring at an empty or delayed typewriter screen after entering a decree. When the player submits a royal command, any previous typewriter output is immediately completed, the player’s decree is shown immediately, and the court’s response then appears with the typewriter effect. This makes the game feel much more responsive while preserving the theatrical presentation of court replies.
V30.72 focused on Steam achievement synchronization. A remaining issue was that achievements already recorded in the local IWAK profile might not be sent to Steam if they were earned before the Steam bridge was fully stabilized. The C# Steam host now reads local profile achievements and attempts to synchronize them with Steam through SteamUserStats. This means already-earned local achievements can be pushed to Steam instead of requiring the player to trigger them again from scratch.
This update cycle also kept the core architecture intact. The Python/Tk Royal GUI still handles presentation, input, panels, background rendering, document tabs, and semantic token relay. The payload still handles deterministic game rules, state changes, agenda logic, endings, and achievement conditions. The C# Steam host still owns Steamworks.NET initialization, achievements, stats, and launch supervision. The AI still does not decide gameplay outcomes. Player decrees are processed by the deterministic rule system; AI remains responsible for advisor voice, court flavor, and dialogue.
In practical terms, this patch cycle improves three major parts of the game. First, the court now has a much larger and more polished agenda pool. Second, the screen output now feels more like a deliberate royal-court text presentation instead of boxes appearing abruptly. Third, Steam achievement handling is now much more transparent and recoverable, especially for players who already earned local achievements before the bridge was fully corrected.
The main issues addressed since the previous notice were agenda text repetition, mismatched choice wording, keyword-like issue output, incomplete CSV agenda integration, weak typewriter presentation, Linux UTF-8 instability, delayed decree feedback, PyInstaller dependency warnings, and local-to-Steam achievement synchronization.
The next focus will be final verification of Steam achievements, advisor voice differentiation, demo polish, and first-session readability. The court is now much closer to its intended form: a strange, theatrical, text-driven monarchy simulator where every decree feels like it is being recorded before the throne.
