Server cannot see children in tools when they are equipped

My game was working fine up until recently, when randomly during a running server, tools suddenly stopped working properly. After an investigation, I realised the server could not see anything inside the tools.

Expected behaviour:
Tools have all children in them as normal when put into the Backpack for the first time. Tools should equip as normal, with all children being visible from the server side view.

Actual behaviour
Tools have all children in them as normal when put into the Backpack for the first time, however after equipping a tool for the first time, the server no longer sees any children in it. The warning “Something unexpectedly tried to set the parent of (tool) to NULL while trying to set the parent of (tool). Current parent is (character model)” appears when equipping a tool.

1 Like

Have you made any changes at all to the game before this issue?
If you did are you using any new items in the game like free items from the toolbox, or a new Plugin?

No, my game was running fine last night with a full server where the tools were working, however suddenly at 9:15 PM GMT they stopped working with this behaviour. Previous versions of the game also do not work which is very strange. There are also no foreign scripts, since I use a rojo workflow and the game is entirely scripted by me.

Can you give more info? I’m not able to reproduce this.

Is Streaming enabled? Do you have any special backpack handling code (unequipping via script)? Could you DM me a copy of one of the tools? (Right click in Explorer → Save to File… to export)

Hi, firstly thank you for looking into this for me.

Streaming is enabled, yes. The streaming mode is set to opportunistic along with MinimumRadiusPause set as the streaming integrity mode. A custom backpack GUI handles tool equipping, however I do not suspect this to be the cause as this has been virtually untouched since the game’s release. City of Vancouver, British Columbia - Roblox is a link to the affected place. I will shortly send you a copy of some tools that occassionally work, along with some that occassionally do not.

Ah, would you mind sharing that? I’m guessing the changes somehow interact poorly with some detail of how your custom backpack GUI does things.

My game uses a single script architecture, would you like the backpack modulescript on its own? It uses humanoid:EquipTool(tool) and humanoid:UnequipTools() to handle this.

Who would put children in tools? What kind of tool is it that you can even in the first place put children in it? It sounds kind of cruel and illegal, but what do I know

Seems like something is parenting it to nil or trying to destroy it.

Well, since tools are now models, my guess is that this is related to streaming. Does disabling streaming fix the issue? Or, with streaming enabled, does walking close to the tool’s origin and equipping it work?

After a thorough investigation into my game, my team found out a script that would create copies of tools on the character’s back for a sling effect was detecting tools as models and deleting them which makes sense now. I’ve since changed the behaviour to use ClassName temporarily while the script is being rewritten.

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