local buyHomeRemote = Instance.new("RemoteEvent") buyHomeRemote.Name = "BuyHome" buyHomeRemote.Parent = remotes
-- Remote events for client communication local remotes = Instance.new("Folder") remotes.Name = "TycoonRemotes" remotes.Parent = ReplicatedStorage
-- Create leaderstats for each player local function setupLeaderstats(player) local leaderstats = Instance.new("Folder") leaderstats.Name = "leaderstats" local cash = Instance.new("NumberValue") cash.Name = "Cash" cash.Value = playerData[player].Money cash.Parent = leaderstats local home = Instance.new("StringValue") home.Name = "Home" home.Value = playerData[player].CurrentHome home.Parent = leaderstats leaderstats.Parent = player end
-- Start income generation coroutine.wrap(startIncomeLoop)()
-- Auto-income loop local function startIncomeLoop() while true do wait(INCOME_INTERVAL) for player, data in pairs(playerData) do if player and player.Parent then -- player still in game local baseIncome = HOME_INCOMES[data.CurrentHome] or 0 local multiplier = data.Upgrades.IncomeMultiplier or 1 local income = math.floor(baseIncome * multiplier) if income > 0 then giveMoney(player, income) -- Optional: floating text effect local remote = remotes:FindFirstChild("ShowIncome") if remote and remote:IsA("RemoteEvent") then remote:FireClient(player, income) end end end end end end
local buyHomeRemote = Instance.new("RemoteEvent") buyHomeRemote.Name = "BuyHome" buyHomeRemote.Parent = remotes
-- Remote events for client communication local remotes = Instance.new("Folder") remotes.Name = "TycoonRemotes" remotes.Parent = ReplicatedStorage
-- Create leaderstats for each player local function setupLeaderstats(player) local leaderstats = Instance.new("Folder") leaderstats.Name = "leaderstats" local cash = Instance.new("NumberValue") cash.Name = "Cash" cash.Value = playerData[player].Money cash.Parent = leaderstats local home = Instance.new("StringValue") home.Name = "Home" home.Value = playerData[player].CurrentHome home.Parent = leaderstats leaderstats.Parent = player end
-- Start income generation coroutine.wrap(startIncomeLoop)()
-- Auto-income loop local function startIncomeLoop() while true do wait(INCOME_INTERVAL) for player, data in pairs(playerData) do if player and player.Parent then -- player still in game local baseIncome = HOME_INCOMES[data.CurrentHome] or 0 local multiplier = data.Upgrades.IncomeMultiplier or 1 local income = math.floor(baseIncome * multiplier) if income > 0 then giveMoney(player, income) -- Optional: floating text effect local remote = remotes:FindFirstChild("ShowIncome") if remote and remote:IsA("RemoteEvent") then remote:FireClient(player, income) end end end end end end