luau / UniversalSynSaveInstance

Shortly USSI. A universal saveinstance revival. This can also be edited and used as a Roblox-Format-File writer.
https://luau.github.io/UniversalSynSaveInstance/
Other
88 stars 38 forks source link

[BUG] gethiddenproperty check crashes roblox internally in some games. #56

Open dumpstring opened 1 week ago

dumpstring commented 1 week ago

its on line 121.

if gethiddenproperty then
        local o, r = pcall(gethiddenproperty, workspace, "StreamOutBehavior")
        if not o or r ~= nil and typeof(r) ~= "EnumItem" then -- * Tests if gethiddenproperty is broken
            gethiddenproperty = nil
        else
            o, r = pcall(gethiddenproperty, Instance.new("AnimationRigData", Instance.new("Folder")), "parent") -- * Tests how it reacts to property overlap (shadowing) due to AnimationRigData.parent; expected BinaryString

            if o and r ~= nil and type(r) ~= "string" then
                gethiddenproperty = nil
            end
        end
    end

i used synapse z, doesnt seem like its a synz environment issue. roblox itself screamed in the log file.

2024-11-20T18:59:04.456Z,43.456814,1968,6 [LOGCHANNELS + 1] RBXCRASH: UnhandledException (class std::runtime_error AnimationRig entity id out of bounds)
2024-11-20T18:59:04.456Z,43.456814,0d88,6 [LOGCHANNELS + 1] RBXCRASH: UnhandledException (class std::runtime_error AnimationRig entity id out of bounds)

i removed that check, and it worked flawlessly. maybe try something else?

phoriah commented 1 week ago

It is there for a reason. @dumpstring What happens when you run (try to find a game where there is AnimationRigData present)

local rig = game:FindFirstChildWhichIsA("AnimationRigData",true) print(rig) if rig then
print(pcall(gethiddenproperty, rig , "parent")) end
dumpstring commented 1 week ago

in the same game, nothing. the game wasnt updated, it just prints nil. it didnt find an animationrigdata, even though there should be one.

i even tried finding an animationrigdata in nilinstances to be sure.

anyways, it might actually be a synapse z environment issue / just a general bug with getting the parent property of an animationrigdata instance specifically.

phoriah commented 2 days ago

in the same game, nothing. the game wasnt updated, it just prints nil. it didnt find an animationrigdata, even though there should be one.

i even tried finding an animationrigdata in nilinstances to be sure.

anyways, it might actually be a synapse z environment issue / just a general bug with getting the parent property of an animationrigdata instance specifically.

It does seem like a Syn Z issue because the script runs past that line just fine on just about any other executor. Keep me updated. The point of that check is to see if executor's gethiddenproperty returns an overloaded property or not (because AnimationRigData has a parent property of it's own and it's a bit different than the deprecated parent property of all Instances)