Is this ever going to be fixed? Might want to mark as deprecated on the wiki if not
Maybe not right away but in general a staff notice would be nice.
Deprecating it wouldn’t be ideal. Some users may want it to fire even if it is changed to the same value it already was, but you won’t be able to tell if it was changed using GetAsync.
The problem with it is that it only fires on the server that changed the value of the stat. Every other server never acknowledges it changed values.
Really? What’s even the point in it then? We can just use bindable events. If there are no plans to change that behavior, then yeah just deprecate it regardless of this bug.
This bug almost completely nullifies the purpose of OnUpdate. Data in DataStores is supposed to be cross-server, available to the whole game. If I just wanted a method that tracks the cache, I could very well just write my own non-saving data mechanisms.
I was working on a Script that Detects when a New Place Version is Out and I was spending a lot of time debugging, turns out it wasn’t my fault.
Hope this is fixed soon I don’t know why there are no replies from Any of the Staff members, this is a very important feature what’s going on?
I hope it’s fixed soon.
I know I was using OnUpdate a while ago and was relying on it for my matchmaking system (which my whole game was based around). Looks like nobody’s tagged a staff member so I’ll tag @Tiffblocks since this is a fairly big bug and if they’d have seen it I’m sure they would have said something.
OnUpdate polls once every 60 seconds for any watched keys that may be set by other game servers. For any updates that are made by the local game server, OnUpdate will pick up on those changes immediately.
This part of the process still isn’t working. I tried the example code in my test place (1 live server and 1 studio instance), and gave it about 5 minutes. The other server never got updated until I called GetAsync.
No rest for the wicked here either
spawn(function()
while (FlagOnUpdateGetAsyncBugWorkaround) do
wait(10)
repeat wait() until hasGetAsyncBudget()
self.datastore:GetAsync(key)
end
end)
Probably should mention it has been 6 months since this bug was posted and it still isn’t fixed. Really bad for developers who want to use this functionality but don’t know the workaround to get it working.
Thanks for bumping this, I’ll see about prioritizing it.
Note: this may not be a priority given that cross server messaging is a solution designed specifically for this, and we may end up deprecating OnUpdate. We will see.
Any updates on this? I know the messaging system is getting close to being live, but there are still use cases for OnUpdate (ex: Setting promotion codes in 1 server and updating the test).
please consider fixing this, I’m using OnUpdate to allow players to buy items from each other across servers
If the player is in another server I want the player to receive the money instantly, but if he is offline then I want it to be stored in the datastore so the player can add the money to his account when he joins back
I’m using IncrementAsync+OnUpdate right now, but if I were to use MessagingService I would have to use IncrementAsync+MessagingService pub+MessagingService sub (and since messagingservice also has a dreadfully low budget I’d probably have to check if the player is playing the game with GetPlayerPlaceInstanceAsync)
I would look into using MessagingService at this point
While the MessagingService does exist, it is a bit clunky potentially having to rely on 2 services instead of 1. This also doesn’t help games that assume OnUpdate to work, and developers who still use it because it wasn’t been deprecated yet.
Seranok has confirmed at RDC 2019 that this function will be deprecated last year due to the messaging service and potential new DataStore system. This means that this will not be fixed.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.