This is a big question. I am in the process of developing a tycoon myself and can share a few things I have learned whilst making it.
Plan, plan and plan!
Whilst making my game I have ran into numerous issues from not planning out the structure of my game and how pieces will fall into place.
I had planned to allow the user to choose a tycoon building but then half way through realised I had forgotten about saves which has added to the development time.
Tycoon Theme
When deciding on how users should play your game it is extremely important that you understand the type of players that will play your game.
If your game is a tycoon about something that can be customised a lot then you might want to consider a custom building system for the type of players who would enjoy that type of tycoon, however if the type of people playing your game are going to be people who just want 100% completion then it’s better to just make a traditional tycoon where it’s linear.
Linear or Non-linear?
I mentioned that depending on the type of players to play your game they may enjoy linear or non-linear but why choose? You have the freedom to express your creativity here so why not try and make a game for both types of players?
Try to make the customisation aspect of your game unrequired to proceed in the game so that a user who doesn’t like to waist time on small things can just speed through the game and complete it if he/she chooses whereas another player may spend more time on the customisation aspect which you can reward in your game when they complete the tycoon.
Or… of course you can just choose to make the whole game non-linear so there is never a way to truly complete the tycoon, only the player can decide when they are done. (You have so much choice)
Saving
I recommend you have 3 slots for the player (You can use tables for this) when a player selects there save they can choose to delete it or continue it.
local Saves = table.create(3)
Saves[1] = {Owner = "MineDevs", Building = "1", Kills = "10"}
Saves[2] = {Owner = "Korvbagarens", Building = "1", Kills = "10"}
Always auto-save your tycoon! Nobody likes it when they lose their progress on something especially when they have spend hours on it, make sure to use a good data saving system to ensure data loss is to a minimum.
Server Management
Most people believe this is the hardest part… NOPE!
Don’t think that even for a second.
Create a system where each player who joins get’s a tycoon slot created (Like a plate on the floor) this is where their tycoon will go (use some math to make each player’s slot spaced out from each other) send this slot to the client where you can handle any additional things.
You don’t need to have the player claim a slot, just give it to them! They will probably prefer it than having to look for a space.
Thanks for reading
Well, that’s a lot of reading for you! I have probably made a mistake somewhere (maybe) Goodluck