Tycoon Optimization and Architecture

I’ve been thinking about this a bit recently and would like some opinions from other developers.
I’ve seen that quite a lot of tycoons on Roblox (mostly older ones, to be fair) are purely serverside, and this seems to be quite straining on the server (especially with a lot of droppers). This leads me to my question:
What kind of compromise could one make where the server isn’t strained yet the client doesn’t have too much authority over stats, drops, etc?
Is only giving the clients network ownership over the drops and handling everything else on the server fine? Should the client handle everything apart from vital stats?

Interested in hearing your opinions!

There should be a little more performance efficient way..

If the server creates the dropper item and gives the client ownership over it, with correct threading, waiting and accurate server checks the only possible vulnerability would be changing the part’s position to dropper collector part, and that shouldn’t be a problem as at some point the item gets “redeemed” and since there would be waiting, no issues should happen.

I don’t see how tycoons of all games are straining to Roblox servers in 2026, I guess droppers may cause issues in big numbers but.. that’s still negligible compared to the true capacity of the engine in most cases.

If you wanted to optimize droppers as much as possible though, you could simply have a registry on the server that tags each dropper item but then signals the client to simulate it, and then the client signals back the ID to the server upon the end of the simulation. That would eliminate client spoofed simulations. You can also use UnreliableRemoteEvents for faster signalling or a compressive + buffered networking library for lower bandwidth.

That’s about all I can think of when it comes to optimizing tycoons (because there isn’t much to optimize)

1 Like

I imagined how I would do it and here’s my process on how to make it efficient.

When player buys a new dropper,
Have the drops on the client be played on the client but have the server drop 1 invisible part. Then the server will get the time it takes for the invisible part to drop. Assuming the client drop and the server drop have the same time it takes to get to the collector.

Then have the server initiate the drop for the client, at whatever interval then have a delay on when to update the players collection money. No stress on server physics due to it handling just when the drops happen and when to update the players money. Only the client handles the drop physics which are pointless and only are just for show.

Which in short makes the drops all just aesthetics and is unexploitable since the server handles when to give the money.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.