I've been busy discussing this question with a friend and we're kinda stuck. How do you make a shop such that it rotates daily, is the same for every server, and is the same for every client?
As for the rotating daily part, that's easy. Just work with OS.Time on the server. When you start talking about adding server communication, things start to become a different story. We would need two things: A triggering event (OS.Time), Cross Server messaging (MessagingService??). My issue is that this triggering event does not trigger one server, but would rather trigger all of them at once. I have no testing to confirm this or confirm the results of every server messaging every server so I don't know the results, but I assume it's not good.
How could I make a shop exactly as Arsenal does?

3 comments
whenever you open the shop tell the server to request a GUI and on the server detect what is os.time and then return the new shop
Thank you for this solution. I do believe this would work. If you put this as an Answer, I'd be glad to accept this as the answer.
In addition to this, math.randomseed should be able to act as the cross server messaging system.