SeranokJoin Date: 2009-12-12 Post Count: 11083 |
http://www.roblox.com/Seranoks-Live-Update-Plugin-item?id=176458422
With this plugin you can update your ROBLOX games without shutting down.
1. Install the plugin
2. Open the place you want to live update
3. Click the "Live Update" button to enable the plugin for the current place
4. Publish!
Now whenever you publish again, all running servers will be restarted and turned into the latest version of the place.
How It Works
------------
Whenever you publish to one of your places, this plugin packs the entire DataModel into ServerStorage. Then there's a server script which checks every couple of seconds to see if your place has been updated. If it has, it uses InsertService:LoadAssetVersion() to insert the latest version of the place. Then it clears the entire DataModel except for players and unpacks the newest version of your place. Once everything's done, it re-enables all server scripts so they start running and then respawns all players.
But Why?
--------
Sometimes you get really tired of shutting down that one test server and begging everyone to rejoin. And the only way ROBLOX will implement this as an official feature is if there is a working demo to show how useful it is. And teleporting is unreliable because players often end up in different servers.
So this is for Front Page Games Right?
--------------------------------------
I advise that you don't enable this plugin for popular games, for the simple reason that it's likely to break with ROBLOX updates and you don't want thousands of angry messages. The intention of this plugin is that you use it to DEVELOP your game. So please use a separate test place.
Why Do I have to enable HttpService?
------------------------------------
ROBLOX provides no API for getting an asset's latest asset version ID, so I have to proxy that through another website. As soon as ROBLOX makes such an API I will gladly remove this dependency.
But Can You Access My Place?
----------------------------
Nope. I never upload your place to my servers or anything like that so your secrets are safe. But if you don't trust me, you don't need to use this plugin.
Players Already Present
-----------------------
When the server gets restarted, your server scripts will start running and there will already be players in the game. So it is necessary to loop through players. This is a good practice anyway.
function onPlayerAdded(player)
print(player.Name, player.userId)
end
for _, player in pairs(game.Players:GetPlayers()) do
onPlayerAdded(player)
end
game.Players.PlayerAdded:connect(onPlayerAdded)
DataStore
--------
If you are using the Data Store, and you want to save player data before the server gets restarted, you can set `_G.OnClose` to a function which will be called right before the DataModel is cleared. This will ensure that all your player data gets saved. Example code:
_G.OnClose = function()
for _, player in pairs(game.Players:GetPlayers()) do
savePlayerData(player)
end
end
Known Issues
------------
* If you add new CSG parts to your level, they won't show up except in new servers
* The "Restart Server" button doesn't work under FilteringEnabled
* Only changes properties which can be set by scripts. So if you check the LoadStringEnabled property of ServerScriptService, it will still be disabled in running games.
* Please don't have your scripts parent themselves to nil. It will break everything because they won't be stopped when the server restarts. Just don't. |
|
RocketaryJoin Date: 2014-08-18 Post Count: 7834 |
Cool |
|
bohdan77Join Date: 2008-08-10 Post Count: 7944 |
@jaredmai
everything is possible
|
|
Dev_TonyJoin Date: 2012-11-26 Post Count: 5351 |
If you try and keep at it you'll be able to do it. He did it. |
|
|
|
What if a player was in the middle of a game? If there was no advanced,high-tech autosaving system and it was a save-game game,then they would lose all their previous unsaved data! |
|
|
Tony,it's only because Seranok can skip/take days off school,and stays up 24 hours straight sometimes,even multiple days straight to get his amazing coding done. It's unfair how you're bad treated for using free models,not everyone has the time to make advanced,high-technology scripting. |
|
RBXJaredJoin Date: 2011-09-08 Post Count: 469 |
@Trinibot10, Using free models is alright, but if your entire game is free models then it's too much. I'm almost positive Seranok does not stay up 24 hours. His extremely advanced scripting abilities are most likely from college or self learning. Even I know a lot about scripting and I don't stay up that long just to develop. I also don't miss school |
|
Klink45Join Date: 2011-06-06 Post Count: 26054 |
Cool, but I can't use it because pretty much all of my games have CSG parts in them.
u sicko! |
|
Keanu73Join Date: 2013-08-17 Post Count: 122 |
Actually, Seranok works at ROBLOX. He's on the web team.
He doesn't go to school. He's employed. |
|
GooIzJoin Date: 2013-09-14 Post Count: 16574 |
gg
-Goolgool add 13k+ to my posts |
|
GooIzJoin Date: 2013-09-14 Post Count: 16574 |
first page ;p
-Goolgool add 13k+ to my posts |
|
PlutocratJoin Date: 2009-08-17 Post Count: 43448 |
ok |
|
CollasoJoin Date: 2013-08-25 Post Count: 1725 |
Kool! |
|
Happ_yyJoin Date: 2012-01-06 Post Count: 9600 |
Better to store updated games than shutting it down.
I have one question, will this work locally like in all of the servers instead of joining all of them?
For example, I go to a place and I update my game pressing the GUI.
Does it update in all games without joining them everytime or just I have to join every server to update?
Follow me on Twitter! HappyRocket_RBLX. |
|
|
well dang
CoejoeTheGreat, the Peacekeeper of Fire Warriors Clan |
|