How does dungeon quest teleporting work?

I plan on making a dungeon style game, but one thing that is really setting me back is the whole teleportation of the players. I have many questions: Will i need to create hundreds of places prior that all hold the game scripts? Will i need to update all the scripts in all those places? How does data persist through all the places? Will i need a separate script in different places since some places are lobbies and some are the dungeons?

3 Likes

I don’t know all the answers. I will try to answer some of them:
I don’t think you would need to create hundreds of places because roblox just clones them and make it a new server. I think to retain data in another place you would need to use teleport service.

It seems that the way Dungeon Quest is set up is:

  1. Player creates/joins a group in the main lobby using server logic, remote events and whatnot

  2. Once the group decides to start their game, a server is made with TeleportService:ReserveServer. This server is then joined using TeleportService:TeleportToPrivateServer

  3. The private server starts up and gets information from the teleportData argument of TeleportToPrivateServer using Player:GetJoinData when the first player joins, and procedurally generates the dungeon using this information and its assets.

  4. Gameplay ensues, which requires more remotes for the most part.

So in theory, you could create your places such that you have:

  • A main lobby, and

  • An empty void/baseplate as a template for the generated dungeons

You can then place the appropriate scripts there without worrying about copying them over to a hundred other places, same for dungeons and enemies.

Make sure to plan this out! Making a procedurally-generated game requires a lot of concepts and visualization to make sure all the pieces fit together properly and cleanly, especially when it comes to sticking to themes and making/randomizing the details.

I’m not speaking from experience by the way, this just seems like the smartest way to go about it

8 Likes

Small comment: only the first map has any kind of arbitrary generation applied to it. The rest is just the standard reserved server method of creating parties for games. JoinData would definitely be present as far as determining difficulty though, or there may be another underlying process to it. Ephemeral DataStores would be amazing to have for situations like this.

Anyway, a message for the OP @Marmalados: despite the above post resolving your question, it’s worth noting that this question has been asked before. Please do search first before posting threads.

2 Likes