I joined my game on the 19th (today) and saw that my menu wasn’t loading and there was an error in the console. This error is completely impossible, and I’ve done everything I can to verify that it is impossible. I’ve even added debug code after it first started happening to try and see if somehow I’m making a mistake, and I don’t think I am.
In my game this is happening with a module required to load the game’s menu. This module defines a dictionary of words to translated words like this: dict["FESTIVAL"] = "thikliixtot"
, and provides some functions to access metadata about the dictionary. This entire table is hardcoded into the module, is not exposed, and can never change.
This is the entire ModuleScript: SkiedonicDictionary.lua (60.4 KB) It’s old and weird code but it has worked flawlessly for almost 3 years. It just broke on the 19th around 9:00 PST, which coincides with some flags being enabled related to Luau (e.g. LuauStringFastcall
).
The problem is that string.len is erroring because the value passed to it is allegedly not a string, but is instead a table. This is not true, as you can see I have debug prints set up to report if a value in this table is a table. I would expect to see “WHAT” printed in output if this table actually contained a table instead of a string, but I do not see that.
Error
Dictionary module
for i,v in pairs(dict) do
print("Dict", i,v)
if typeof(v) == "table" then
for j,k in pairs(v) do
print("WHAT ------",j,k) -- What the actual heck
end
end
avg = avg + string.len(v)
dictSize = dictSize + 1
table.insert(dictArr, v)
end
Where the module is required
This was happening here in about 3/50 servers earlier in the day, it seems more common now that hours have passed (new servers have cycled in?). You can tell that the game is broken if you do not load into the menu showing a “Play” button.
To reproduce, you can just join a VIP server. I think that reproduces it every time, or else much more often.
Other important details:
- This does not reproduce in Studio.
- If I require this module on the server from the console, it works perfectly fine. This is only broken on the client.
- This happens to new servers, and seems broken in that server for all players who join. Some players manage to be in-game correctly in these broken servers. Perhaps something broke mid-flight and now only breaks on new joins?
I suspect this might end up magically fixed tomorrow, but I figured I should report it anyway.