Rig Builder will only load blocky rigs

Issue Type: Other
Impact: High
Frequency: Very Rare
Date First Experienced: 2021-04-19 12:04:00 (-03:00)
Date Last Experienced:

Reproduction Steps:

  1. Open an empty baseplate in Roblox Studio 0.474.0.420553 with no user plugins enabled
  2. Try to insert any rig from the Rig Builder plugin
  3. Regardless of the rig selection, it will always load the blocky R15/R6 rigs.

Expected Behavior:
I expected the Rig Builder to load the correct rig types when I click the buttons, such as the Rthro models when I click the Rthro buttons.

Actual Behavior:
The Rig Editor always loads the blocky rigs. If the R15 tab is selected, it loads the R15 blocky rig. If the R6 tab is selected, it loads the R6 blocky rig.

Video demonstration of the issue:

Workaround:
The most immediate workaround is forking the plugin, modifying the broken code, removing protected calls and loading it as an user plugin (highly impractical). Namely, the offending lines are lines 75-99 in the RigBuilder script inside the plugin model:

if mode == "R6" then
	if name == RigBuilderLocalized and localization:getText("RigOption", "BlockRig") or "Block Rig" then
		rig = rigModule.CreateR6Rig()
	elseif name == RigBuilderLocalized and localization:getText("RigOption", "MeshRig") or "Mesh Rig" then
		rig = rigModule.CreateR6MeshRig()
	elseif name == RigBuilderLocalized and localization:getText("RigOption", "ManRig") or "Man Rig" then
		rig = rigModule.CreateR6MeshBoyRig()
	-- ...
        end
elseif mode == "R15" then
	if name == RigBuilderLocalized and localization:getText("RigOption", "BlockRig") or "Block Rig" then
		rig = rigModule.BuildR15Rig()
	elseif name == RigBuilderLocalized and localization:getText("RigOption", "ManRig") or "Man Rig" then
		rig = rigModule.BuildR15Rig(86500185)
	elseif name == RigBuilderLocalized and localization:getText("RigOption", "WomanRig") or "Woman Rig" then
		rig = rigModule.BuildR15Rig(86499905)
	-- ...
        end
end

Regardless of the button selection, the program always ends up following the first branch:

  • name is always equal to RigBuilderLocalized
  • localization:GetText(...) always returns a string, which are truthy in Lua.
  • The last expression following the or is not evaluated.

The fix is to parenthesize the conditions, as in the example:

if name == RigBuilderLocalized and localization:getText("RigOption", "BlockRig") or "Block Rig" then
-- becomes...
if name == (RigBuilderLocalized and localization:getText("RigOption", "BlockRig") or "Block Rig") then

Which is probably what the code was supposed to be.

This has been happening for some time now:

7 Likes

I had this same problem, however only with R6 rigs. I hope they patch it soon.

1 Like

Yes this is a problem with R6 and R15.

@Roblox please see this.

1 Like

yep this is a big problem in roblox studio but I haven’t really seen it too much on my end in roblox studio. The code is probably messed up somewhere as you have stated so I would probably wait it out and they would probably fix the issue or you could uninstall roblox studio the reinstall it and see if it works but not sure just throwing ideas. Hopefully fixed very soon!

1 Like

Hi all, we have fixed the issue and the fix should be on production this Wednesday.

7 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.