DataModel:Reset()

Doing regeneration can be a huge pain, especially with dynamic and multi-location scripts all carefully networked together in order to work. Regeneration can cause serious problems with those.

What’d be nice is a way to simply force the game to restart, returning it to the template state, and then ‘rejoining’ each of the players (more like a faux rejoin that fires .PlayerAdded).

Make regeneration easy for us, please!

1 Like

It also make the user experience way worse.

Degrading the user experience just so that you don’t have to write proper regeneration code isn’t a very good solution.

stravy hrt feelinz

i cri evertim

But I’m confused as to why this would ruin user experience. Perhaps I’ve explained it wrong?

[quote] It also make the user experience way worse.

Degrading the user experience just so that you don’t have to write proper regeneration code isn’t a very good solution. [/quote]

Because shutting down the server and having a bunch of confused players not know the game was updated/ rebooted to be fixed is totes better

I still don’t understand what this method would do. Seems Uber complicated tbh

I completely understand what you are asking for. I just don’t think you’d want to traumatize the users by making them rejoin the game.

Oh, this is like restartin the server?

ALLOW ME TO EXPLAIN AGAIN:

Without affecting the players at all, completely reset the game to the way it is stored on ROBLOX’s servers and simulate the PlayerAdded event on Players.

[quote] ALLOW ME TO EXPLAIN AGAIN:

Without affecting the players at all, completely reset the game to the way it is stored on ROBLOX’s servers and simulate the PlayerAdded event on Players. [/quote]

That seems like it would be useful. I’ve actually done something like this a while back. I can give you the scripts if you want.

“Without affecting the players at all, completely reset the game to the way it is stored on ROBLOX’s servers and simulate the PlayerAdded event on Players.”

DataModel:Reset() certainly does not do that. Unfortunately that wouldn’t actually work as well. Or at least it would take sweeping architectural changes to actually be feasible to implement. There’s no good way right now to reset the game’s code without also resetting the core game / player user-interface code.

Plus, it’s of limited value as a feature, since as soon as you want to improve the user experience at all you would stop using it and write your own more fine grained regeneration.

What the hell I didn’t even know it was a real function

this wasn’t an unlock request it was a create the function request

dear god that’s why everyone was so confused

[quote] “Without affecting the players at all, completely reset the game to the way it is stored on ROBLOX’s servers and simulate the PlayerAdded event on Players.”

DataModel:Reset() certainly does not do that. Unfortunately that wouldn’t actually work as well. Or at least it would take sweeping architectural changes to actually be feasible to implement. There’s no good way right now to reset the game’s code without also resetting the core game / player user-interface code.

Plus, it’s of limited value as a feature, since as soon as you want to improve the user experience at all you would stop using it and write your own more fine grained regeneration. [/quote]

I can’t seem to ever get it to work quite right. I always get obnoxious edge cases that end up completely busting it.

When you use as much abstraction as I do it gets hard to regen without breaking everything, and you just want to completely reset the entire game.

“When you use as much abstraction as I do…”

… then it should be easier than normal to handle regeneration of your level. You just have to build regeneration into your abstractions as a first class concept from the start.

Sorry, but can’t you for example store all important scripts in ServerStorage, clone those in ServerScriptService if you need them ?

  1. PlayerAdded event is connected to a function. So you could easily use a RemoteEvent so simulate the Players again…