Firstly have a look into network ownership: Network Ownership | Roblox Creator Documentation
If that doesn’t help try the following:
Store the tycoon in ReplicatedStorage. When a player joins:
- On the server, copy a model of the tycoon into the workspace
- On the client, delete that model. Then, copy a model of the tycoon from ReplicatedStorage into the workspace
This way you have two versions of the tycoon, one client-side and one server-side. When the player buys something, play the animation on the client-side and have the tycoon just pop into existence on the server. When I say “pop” into existence I mean change Transparency to 0 and CanCollide to true etc.; if you create a new instance then it will show on the client.
If you want all players to see a smooth animation of everyone else’s tycoons, you’ll need to do this for all the tycoons, for every client.