Roblox Studio killing my entire network at home

When interacting with larger Models (such as: moving, duplicating, rotating or scaling) in Studio my network usage goes up.
It’s only happening within Team-Create in any game.

It happens like 50% and when it does kill my network I have to force close studio with Task Manager otherwise it will load forever.

Task Manager while interacting with larger Models:

And eventually soon after:

Any page tries to load but it won’t succeed.
This replicates to any other device connected to the network.

It started happening months ago but I wanted to report it now, since it didn’t stop.

Repo

(and yes I really forced it there, however this happens without forcing it too)

  • I believe the network goes up because this is disabled and it tries to send every little movement to the server
    image

PC specs

GPU: RTX 3060 Ti 8 GB
CPU: Ryzen 7 5800X
RAM: 32 GB 3733 MHz

Windows 11 Pro

7 Likes

Unfortunately, expected behavior at this time.

When you drag a 1,000 part model, you’re really dragging 1,000 individual parts. Thus sending 1,000 part positions x 60 FPS = 60,000 positions per second across the network.

Long term the groundwork has been laid for some potential architectural changes which can avoid this, but there’s no hope of a fix any time soon.

As a workaround you can join the parts in the model with Welds or WeldConstraints rather than having them anchored (select all the parts in the model, and hit the “Weld” button in the “Constraints” menu to automatically generate a set of WeldConstraints joining the parts), so that they’re treated as part of a single assembly, and the engine only has to send the single assembly position across the network instead of many separate part positions.

3 Likes

I reckon it would be also possible to edit the place in a file and when the model is ready I could just copy and paste with original position, however it’s quite annoying. Thanks though!

2 Likes

Maybe not perfect solution, but many games on roblox did it so until you not finished moving certain object, it won’t be replicated to server and will only affect one client who currently moving object. This will send data to server only once, and not every frame.

2 Likes

Yup, that’s the idea. In practice that’s not as simple as it sounds. The difficult part is that you don’t want to stop all replication, just modify replication in targeted ways. Getting the relevant systems to understand each other sufficiently is not easy, requiring some significant refactoring.

E.g.: I insert Roblox HQ. This make take a moment to replicate to the server. What if I start dragging it before it’s done replicating? Should users see the half-replicated building while I’m doing the drag and replication is halted for those parts? That demonstrates how it’s not even enough to temporarily limit the replication of specific objects.

2 Likes

Maybe don’t allow to interact with model until it got replicated? And when it fully replicates to server, you will be able to do smth with it again. I think it won’t take a lot of time to replicate unless there’s very big model or/and very slow internet (may be wrong statement).

2 Likes