Developers need to be able to reserve player slots! (ie prevent players from joining reserved slots)

As a Roblox developer, I think it is too hard currently to hold a slot for specific players in game servers, and overall control the flow of players into individual servers. By player slot, I am referring to the amount of players that can fit into a game, each player taking up a slot.

Currently, you can pseudo-reserve a slot using a setting in your experience, but this is a soft option - It applies to all servers, always, and only tells matchmaking to avoid a server, but still allows players to join a friend - Overall, it’s not true reservation the developer can use.

If developers could, in individual servers, set a ‘Reserved Slots’ property, or similar, I think it would be much more beneficial to developers - This would work similar to the current ‘reserved slots’ experience setting, but act as a hard reservation, informing roblox’s matchmaking that it cannot put players here, and players cannot join their friends here until the slot is unreserved or the player count decreases. The benefit of this would be that Teleports coming from inside the experience, being that you are in control of those, could still bypass this reservation - This in turn gives players tremendous control over how players get put into servers, without resorting to things like Reserved Servers, which I think are not the solution here.

There are many cases when a developer might feel the need to use a ‘reserved slot’ option that can be used in individual servers, that when active can prevent players from filling up a specific server beyond a limit;

  • In a Survival game, it can be vital to re-connect a player via a teleport back to the original server they were set up in - This is only realistically feasible if you can ensure that server doesn’t fill up! In this case, a dedicated lobby system isn’t as useful of a solution.

  • In building games, while you can save main structures, there are many sandbox servers that have lots of unsaved, miscellaneous builds - a reserved slot lets you redirect players with ease back to a server like this should it be approaching full with a single setting and a teleport back!

  • In a team-based game, a developer might want to reserve all slots when a match starts, so that players cannot be matchmade into a game during active gameplay. This would work even with a lobby system - Allowing friends to join that lobby with the ‘follow’ option, until the lobby is in an active game, without needing to code your own custom friend joining method.

  • For any game, the ability to hard reserve a single slot for moderators & developers to get in is very useful - Good practices relieve this, but nothing replaces being able to join a running game to see what’s going on.

  • Some games might benefit from the ability to ‘sundown’ a server, by reserving all slots you can ensure a server will, over time, perish, without having to hard shut down the game

  • Many games can benefit simply from a ‘grace period’ - My game is one of those, where it is not beneficial to save all of the items and progress during the game, but that I still want players to be able to recover where they left off should they crash or lose connection.


For my own personal example, it is quite important to have a feature like this; Currently, to reserve a player’s space for Two Minutes after they disconnect, I had to devise an entire system that logs all servers as if they’re lobbies in memorystore, and teleports players who show up during this 2-minute grace period into an open server (Which roblox’s matchmaking won’t be able to optimize the choice for anymore), and if that fails I teleport them to a new reserved server. I repeat this process until the 2 minutes expire, or the player rejoins a server and gets directed back.

Some of these problems only really have, to me, the one solution - I could just make everything it’s own lobby, and handle all matchmaking myself, but in that case I’m already left with something where not only can friends not join eachother ever without extra work on my part, but that does not benefit at all from roblox’s matchmaking system, which I know does factor in various things to choose a good server.

Letting developers decide, at will, if players can or cannot join via matchmaking or friend joins - AKA, reserving a slot only to be teleported to specifically, to me seems like a very useful, multi-purpose improvement that could be as simple as a single property of ‘Game’.


- Post has been edited because it sucked before, sorry

10 Likes

Seems like a simpler solution is to just save and load the placed objects in their player data?

There are many reasons why a player might leave and come back, not just crashes and not just a small time period. Seems like you are asking for a really convoluted solution here that doesn’t really fulfil many use cases.

5 Likes

Yeah and let me just copy the consciousness of everybody else into that server, while I’m at it.
The context of a server is as important as the player-owned objects in it, sometimes

People who leave and reconnect within a minute most often did so through bad connection or other issue, and it is good practice to let them recover where they left off in a previous server.

If it doesn’t fulfil many use cases to you, you haven’t been working on enough games!

No offense, it just seems like something more developers should be thinking about.

In my case, I don’t want the player’s progress to be preserved for an extended period of time, so it’s really more useful to load them back into their prior server.

Specifically, if we’re talking about usecases, survival games, of which there are plenty of on roblox, likely benefit a lot from this. A game called ‘Island gods’ I know made an entire server browser system infact, likely to do with this exact same premise, that servers where players are building things in benefit from keeping the context around those things, not just the things themselves.

Whether through reserved slots, or whatever other possible way roblox could implement this, a way to ensure a player can be inserted into a server they are required in is important.

While we’re talking about use cases; Come now, I’ve heard similar things suggested simply to allow developers to join full servers to troubleshoot games. I was surprised to search up this suggestion and not find much, because I have definitely heard many developers talk about how it’d be nice to have a slot reserved for them, especially during testing phases, rather than requiring some large workarounds to make sure players can get to where they need to be.

No. That’s not how this works.
You need to adjust your tone, it dramatically weakens your presentation as a whole.

No offense, it just seems like something more developers should be thinking about.

Also no, most developers shouldn’t be thinking about this. A majority of games don’t rely on context that only exists in that server, the context is purely based around the users data itself, which upon game-leave is typically automatically saved (and by the time they rejoin, is already stored and ready to be used).

A game called ‘Island gods’ I know made an entire server browser system infact, likely to do with this exact same premise, that servers where players are building things in benefit from keeping the context around those things, not just the things themselves

You don’t need to make a server-browser to achieve this and it can be done with straight Roblox servers. People do it for better and more direct server discoverability so that user powered communities can grow far easier and persist even when nobody is in them (something public servers would not be able to do).

Come now, I’ve heard similar things suggested simply to allow developers to join full servers to troubleshoot games.

This actually should be done with better tooling being provided to Developers that doesn’t require us to be in the game. The goal shouldn’t be to “patch” this problem doing what is suggested, but instead actually creating tools that would surpass even this.

Overall, from what you talked about in your original post, it seems what you’re really asking Roblox to do is follow in the steps of Valve online multiplayer games: reserve a player-slot for when they get disconnected not through their own choice.

(and ideally the same being done for when a friend is invited)

I did honestly try to come up with other use-cases and examples but I really couldn’t come up with any that a Developer would actually use that can’t already be done with Reserved Servers. I can’t recall if friends can join reserved-servers directly, but if they can’t then I believe that should be its own feature request.

4 Likes

Your use case isn’t clear in the first post – it doesn’t explain what kind of gameplay this is for or why it’s not possible to save/load the building context. This is the most critical part of any feature request. Without more context, it seems like there are multiple good solutions:

  • Save and load the context when they rejoin
  • Roblox could implement this behind-the-scenes, just allow the player to rejoin within X seconds, without you needing to do any programming

If there’s some social component here (e.g. the context is only valid for a group of people instead of per person) please explain that in your thread.

Your tone is inappropriate, you should assume good faith of the other person when posting on this forum. I have more working experience than you.

2 Likes

No, I don’t believe they can. True, that should be a feature request of it’s own.

I don’t see the exact issue here with just using reserved servers + memory store to make your own matchmaking/player-placement system. You can then add a system that places players who left into the new server if they join back.

1 Like

There is no inherent reason my game needs a matchmaking system; Roblox’s built in matchmaking system seems to understand more about a player’s region and ping anyways. I merely think it makes sense to have the ability to prevent new players from filling a server in the event of a player disconnecting, should they make the very reasonable decision to rejoin after an abrupt disconnection; I see no reasonable necessity to re-make an entire matchmaking or lobby system to provide this functionality to my playerbase, as well as seeing other usecases are clear (such as developers being able to load into a server at any time for any reason, for whatever varied reasons they may have to do so)

It is, quite simply, a significant amount of time and effort for a system that will inevitably be worse than roblox’s default matchmaking. Currently, I have a hybrid system that does just that, utilizing teleporting players to other servers upon joining if a slot is reserved. This works very well… But, has problems like preventing players from joining friends who happen to need a new server made (as there is no public server creation method)

It just feels like something that should be simple, and that the ramifications of likely could impact a significant amount of developers, so it is weird to me that it’s so hard to do currently.

Beyond that, sometimes Memory store reads fail, which can lead to some weird results in my system that I further have to code around that… well, if roblox let me either reserve slots or at the very least alternatively allowed me to use teleport options to create a new public server, would likely not be as worrisome issues.

The thing is, while my usecase is very admittedly specific, as a developer with lots of projects currently underway, I can see where in the future things like this would come in handy. It’s not the first time I’ve wanted to enter a random project but found roblox’s rigid player limit and inability to reserve custom slots has made it hard to orchestrate getting players together. It is in my humble opinion that this is something that while overlooked, is likely more useful to more people than you might think on first glance

(*As a side note, I do recognize I could have worded this post better and less vaguely. I’ve been quite dumfounded by this quite specific issue for a while now, and didn’t word it in quite a poignant way
I may go back and re-edit the initial thread post to clarify usecases)

1 Like

The tone in this post makes it sound more like a rant rather than a professional request. This sounds like you are trying to overcomplicate what could be fixed with some changes in game design, like what buildthomas suggested.

1 Like

Realistically, the main problem they are advocating for cannot be fixed through game design and is something Roblox would have to do themselves on their backend (which they should).

The OP hasn’t posted any other use-cases, and since @Maxwell_Edison your main complaint is this:

Overall, from what you talked about in your original post, it seems what you’re really asking Roblox to do is follow in the steps of Valve online multiplayer games: reserve a player-slot for when they get disconnected not through their own choice.

I think it would be reasonable for you to close this post and open another one specifically addressing it, your existing post is all over the place, mentioning multiple different features rather than just focusing on one.

1 Like

So what is the reserved server slots for then?

To me, this sets the number of reserved slots for friends of players in the server.

This is not an enforced limit, that you can hold for a specific player/players; This is simply roblox’s matchmaking attempting to not fill the maximum player slots. It is not adjustable while in-game, either, so to make use of it would require permanently reserving slots that could just get filled up relatively easy, as there’s nothing STOPPING a player from joining in this regard

i genuinely don’t think any developer has faced this problem, ever
i can see why you would want this but it wouldn’t work well at roblox scale

Hello friends I have re-worded the post entirely to make it much more clear about usecases, thank you for your critique, I recognize it was poorly worded.
I also appreciate the few hearts we’ve gotten on the topic, I’m glad it made sense to at least a few people before

I welcome anyone who commented before to review the new post (Completely reworded/remade) and tell me if it makes any more sense, thanks :slight_smile:

I’m sorry but I just don’t believe this.
I originally worded it poorly, but at this point I’ve remade the OP & expressed a few use cases, of which I think really clarify what I want.

Actually, there is a valid use case that would apply to me.

If there’s a problem in the server, like something going on or an exploiter, it would be advantageous to be able to have a moderator or developer log in to observe the problem. They wouldn’t be an active participant in the game itself, but they could spectate to see what’s going on.

What do all of you think? It would be a setting separate from the two that I have shown, and you can set the place where it will only allow it from. That way, an admin/dev/mod can be logged into the game, but in a admin holding area and then teleport to the specific server as needed. They would have to teleport from the admin area to be able to override the server max limit (or other place that is specified by the place Id).

1 Like

Realistically, there are so many usecases this sort of thing has for individual games that it’s almost hard to list them all on a case-by-case basis, especially for something that could be very easily leveraged by a few lines of code if implemented right by roblox. Would certainly save me hundreds of lines of code, that’s for sure!

It actually kind of dumbfounds my tone is considered ‘inappropriate’ for enthusiastically wanting a setting that most people don’t actually have any counter argument for whatsoever, though I understand my initial post was rough before editing. Especially at this point I think it’s clear that there are tons of developers that could benefit from this, to the point where while I haven’t seen a post about it on this forum, I have individually heard lots of people talk about how they wish as a developer they could join their full games or preserve a slot for someone else to join their full games.

But practically speaking the closest thing i’ve gotten to a real response is “You shouldn’t be thinking about this”

Either way, not having this presents itself as a problem that is only solvable with making a complete lobby system… which just seems like I’m being told to do a lot of effort for something that will only be objectively worse, since using lobbies and reserved servers completely turns a “join and play with roblox matchmaking” game into a “The developer has to waste time coding a lobby system and then players have to waste time dealing with a lobby system”, when it could be seamless to all involved.

Allowing devs to bypass the limit doesn’t need a complete slot reservation system. It should become possible for creators with Edit permission to ignore the limit and join straight in.

The reconnect use case could be integrated by Roblox themselves, without you having to write any code yourself (see reply from buildthomas).

Any other use case doesn’t sound valid to me. They’re either about the reconnect feature or something achievable with data saving.

It gets inappropriate when you start using personal attacks, eg making a negative remark about your assumption of someone’s experience.

You cannot assume that a large-scale platform as Roblox is as easy to create as your hobby game. You need to be careful with new settings, especially if other solutions can solve your problem. See this reply from staff member tnavarts on engine options.

Unfortunately I still really don’t know what I’m supposed to use in this instance to get a desired result. The massive amount of programming I have had to do in order to get this pseudo-reserved slot system to allow players to rejoin has been so large that it could have been a new content update, and presents itself with lots of issues including being unable to join friends

The reason I was not particularly responsive to Thomas’s post is because it did not actually address anything. This is still a feature I would like and as of now other than somewhat petty interjections there has been no actual real solution presented to this problem other than “maybe roblox should deal with reconnects themselves”.

From the likes and the few positive replies this post does have, I’d appreciate it to be taken more seriously & if someone has any actual reasoning to present - whether alternative features or ways I can program my game that would remedy the need for this feature - I am all ears. But as of now I very unfortunately do not think the posturing in this thread really is going to benefit anybody.

This thread just has a complete lack of addressing the issue or event attempting to understand the issue by most, seemingly, though those who understand the problem more immediately seem to resonate well with the reasoning I provide.

At the end of the day, I have a game. If someone leaves this game I need potentially hundreds of lines of code to get them back into the game they were just in if they rejoin, that overall has been so disastrous I’ve considered completely tearing the system out and just giving up on the idea that players should ever be given the ability to rejoin like this. So simple a problem, yet so much effort.