Skip to content

fix(clienttranslator): Fill the generated table before parenting it - #848

Open
oiisin wants to merge 1 commit into
Quenty:mainfrom
oiisin:users/oiisin/translator-detached-until-start
Open

oiisin wants to merge 1 commit into
Quenty:mainfrom
oiisin:users/oiisin/translator-detached-until-start

Conversation

@oiisin

@oiisin oiisin commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

TranslatorService now creates its LocalizationTable unparented and parents it on Start, after any flush already queued has landed, because each write to a table under LocalizationService costs about 7 ms on a Studio client against 0.006 ms unparented, and a service bag whose Init spans several frames (SetInitFrameBudget, #839) flushes once per frame. In a game with a budgeted client Init this took the 10 flushes before Start from 45.8 ms to 4.2 ms plus one 10.5 ms parent; other services in the realm still share the table, and a table saved in the place is used where it is. The new specs pass in Studio (the 6 failures there are the same Roblox-translator timeouts as on main), and the numbers are written up in docs/engine-behavior.md.

Writes to a LocalizationTable under LocalizationService cost milliseconds each (about 7 ms on a
Studio client, against 0.006 ms unparented), and a service bag whose Init spans several frames
flushes once per frame. TranslatorService now creates its table unparented and parents it on
Start, after any flush already queued has landed. Other services in the realm still share it, the
last holder destroys a table that was never parented, and a table saved in the place is used where
it is.

This branch had an error being deployed

1 failed deployment
integration — 379b6b0d Deployed Oct 25, 2026 by oiisin via integration #692
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant