Repository navigation
Conversation
The round state is only known on the client after the TTT_RoundState net message. In singleplayer the predicted SetupMove hook is not called on the client, so the ready handshake that triggers gameloop.PlayerReady never runs and no round state is sent. With only one player the game also stays in ROUND_WAIT, so no state change is broadcast that would repair the client. The info panel then looked up L[nil], which the language metatable turns into "[ERROR: Translation of nil not found]". Fall back to the waiting text while the round state is unknown, in both the pure skin and the old info panel. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Author
|
@saibotk just tagging you as I saw you were the most recently active in other prs! |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the bottom-left info panel rendering
[ERROR: Translation of nil not found]in all caps when the client has not received a round state yet.This was discovered while doing singleplayer testing, so it's a rare edge case — but it is fully deterministic there:
TTT_RoundStatenet message (GAMEMODE.round_state).gameloop.PlayerReady, which is triggered by the client's ready handshake inGM:SetupMove.GM:SetupMoveis a predicted hook and is not called in the client realm in singleplayer, so the handshake never runs.ttt_minimum_playersat its default of 2, the server also never leavesROUND_WAIT, so no later state-change broadcast repairs the client.L[self.roundstate_string[nil]], and the default-language metatable incl_lang.luareturns"[ERROR: Translation of nil not found]"for the nil key. The HUD uppercases the text, which is why it shows up in all caps.Fix
The round-state lookup now falls back to the
round_waittranslation while the state is unknown, in both HUD skins:gamemodes/terrortown/gamemode/shared/hud_elements/tttinfopanel/pure_skin_playerinfo.luagamemodes/terrortown/gamemode/shared/hud_elements/tttinfopanel/old_ttt_info.lua(two lookup sites)This is display-only; the underlying singleplayer ready-handshake behaviour is unchanged.
Screenshots
Before
After
🤖 Generated with Claude Code