I’m in the middle of making a system that allows players to pick up and move objects around using remote events being fired through Run Service to update the position of their attachment in the workspace.
Each time a player joins the game, a unique folder for their own RemoteEvents is added to their player folder. I did this to avoid any overload from multiple players firing the same RemoteEvents at once, which seems to have worked, but I was wondering what effect this would have on the server or the other clients if there are a lot of players (say, 10 or more).
I had the same concerns with my game, considering I have just one remote event, and all messages from all players go through it.
What I was told (and this was back then they first announced that there would be throttling and limits on the number of messages sent) is that you would really have to be spamming a lot of unnecessary events to cause it to reach the limit.
I am still using just the one remote event for most of the data exchange in my game.
So I feel you will be fine, as long as you take a few precautions, such as, each Run Service event, check first to see if the object (block etc) has actually moved position since the last Run Service event, and only send an update coordinate if it has changed. Even better you can send only the updated axis, such as if it only changed along the x and z, then only send an x,z update to the server.
Hope this helps.
Thanks for the help!
I guess part of the reason I’m using dedicated player events, too, is to make it easier to detect if the player firing the event is actually THAT player lol
I recommend finding an alternative so you don’t have to send that many requests to the server. Especially if you’re binding it to — say —
.RenderStepped. Even if it doesn’t throttle, that could cause performance issues or raise the players’ ping.
And to make sure it’s actually that player firing the event, just check the first parameter, since it is the player object. You could even store the player object somewhere else in memory (like an array or dictionary) and compare them later.
I mean, it all depends on how your game works. I have seen Roblox Gear, that would attach to heartbeat or whatever, and send a remote event to the server, and those had no issues, but then again, they had checks to make sure it wasnt spamming.
If there is a better way to do what you want to do, as BearPlusPlus suggested, maybe see if there is an alternate way to achieve your goals without using Run Service events.
If its just picking up things an moving them, you can always just fire a ‘pick up’ event, and then weld the block to the player’s hand and allow them to move it around, etc… then send a ‘place item’ event to place it.
No, think more of how you’d grab something in Gmod or Elder Scrolls
You can determine where the object should move based on the HumanoidRootPart or the visual feedback (like a physics gun) you’re using to move the object. The logic should be handled by the server.
I already have a working model, hold on lol
I am not too familiar with Elder Scrolls, but Gmod, seems to be more of a physics based movement.
You can (when picked up) assign some Body Movers to the object, and set its network ownership to the player (done all on the server) then if the player moves them (with mouse etc…) just make the body movers move the object, and it will replicate. Send signal to server to drop, and the server, will remove body movers and set network ownership back to auto or server.
I would definately use network ownership with body movers, you only need to fire 2 events, pick up and drop
This is definitely the way to go. I recommend AlignPosition, it’s easy to use (it just requires an attachment under the part)
It’s an attachment positioned in front of the camera, and when you click on a part, it adds a second attachment to the part with an alignposition
That’s exactly what Im using lol
Then perfect, you’ve solved your own problem!
I was literally only asking about the RemoteEvents
I meant the performance problem that inevitably came with firing remotes that often, the model you have now seems to do wonders
Thanks lol, I was just worrying about tons of people grabbing and throwing things at once
Thats what I am saying ‘when I say body movers’ I am saying things like the AlignPosition
I am suggesting though, that you use network ownership, as this can only be set by the server, and it will make sure you see the movement on your screen smoothly, and that it replicates to all other clients.
P sure that’s what I said I did in one of my replies?