local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") -- Global Variables local money = 0 -- current money local steps = 0 -- step counter local multiplier = 1 -- initial multiplier local rebirthCost = 50 -- cost of first rebirth local taxRarity = 1/4 -- rarity of tax payment (less than one means greater rarity) local moneyByStepInterval = 0.5 -- initial interval of receiving money per step local minMoneyByStepInterval = 0.1 -- minimum possible interval between earnings -- User Interface local screenGui = Instance.new("ScreenGui") screenGui.Parent = PlayerGui local mainFrame = Instance.new("Frame") mainFrame.AnchorPoint = Vector2.new(0.5, 0.5) mainFrame.Position = UDim2.new(0.5, 0, 0.5, 0) mainFrame.Size = UDim2.new(0.6, 0, 0.3, 0) mainFrame.BackgroundColor3 = Color3.fromRGB(50, 50, 50) mainFrame.BorderSizePixel = 0 mainFrame.Parent = screenGui local titleLabel = Instance.new("TextLabel") titleLabel.Text = "Speed Game" titleLabel.Font = Enum.Font.GothamBold titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) titleLabel.TextScaled = true titleLabel.Size = UDim2.new(1, 0, 0.2, 0) titleLabel.BackgroundTransparency = 1 titleLabel.Parent = mainFrame local moneyLabel = Instance.new("TextLabel") moneyLabel.Text = "Money: $"..tostring(money) moneyLabel.Font = Enum.Font.GothamMedium moneyLabel.TextColor3 = Color3.fromRGB(255, 255, 255) moneyLabel.TextScaled = true moneyLabel.Size = UDim2.new(1, 0, 0.2, 0) moneyLabel.Position = UDim2.new(0, 0, 0.2, 0) moneyLabel.BackgroundTransparency = 1 moneyLabel.Parent = mainFrame local rebirthButton = Instance.new("TextButton") rebirthButton.Text = "Rebirth ($" .. tostring(rebirthCost) .. ")" rebirthButton.Font = Enum.Font.GothamBold rebirthButton.TextColor3 = Color3.fromRGB(255, 255, 255) rebirthButton.TextScaled = true rebirthButton.Size = UDim2.new(1, 0, 0.3, 0) rebirthButton.Position = UDim2.new(0, 0, 0.4, 0) rebirthButton.BackgroundColor3 = Color3.fromRGB(70, 70, 70) rebirthButton.Parent = mainFrame -- Additional upgrade menu local upgradeMenuButton = Instance.new("TextButton") upgradeMenuButton.Text = "Upgrades" upgradeMenuButton.Font = Enum.Font.GothamBold upgradeMenuButton.TextColor3 = Color3.fromRGB(255, 255, 255) upgradeMenuButton.TextScaled = true upgradeMenuButton.Size = UDim2.new(1, 0, 0.3, 0) upgradeMenuButton.Position = UDim2.new(0, 0, 0.7, 0) upgradeMenuButton.BackgroundColor3 = Color3.fromRGB(70, 70, 70) upgradeMenuButton.Parent = mainFrame local upgradeFrame = Instance.new("Frame") upgradeFrame.AnchorPoint = Vector2.new(0.5, 0.5) upgradeFrame.Position = UDim2.new(0.5, 0, 0.5, 0) upgradeFrame.Size = UDim2.new(0.6, 0, 0.3, 0) upgradeFrame.BackgroundColor3 = Color3.fromRGB(50, 50, 50) upgradeFrame.BorderSizePixel = 0 upgradeFrame.Visible = false upgradeFrame.Parent = screenGui -- Navigation button "<" to return to the main menu local backButton = Instance.new("TextButton") backButton.Text = "<" backButton.Font = Enum.Font.GothamBold backButton.TextColor3 = Color3.fromRGB(255, 255, 255) backButton.TextScaled = true backButton.Size = UDim2.new(0.1, 0, 0.1, 0) backButton.Position = UDim2.new(0, 0, 0, 0) backButton.BackgroundColor3 = Color3.fromRGB(70, 70, 70) backButton.Parent = upgradeFrame local payTaxesUpgradeButton = Instance.new("TextButton") payTaxesUpgradeButton.Text = "Increase Tax Rarity\nPrice: $"..tostring(25) payTaxesUpgradeButton.Font = Enum.Font.GothamBold payTaxesUpgradeButton.TextColor3 = Color3.fromRGB(255, 255, 255) payTaxesUpgradeButton.TextScaled = true payTaxesUpgradeButton.Size = UDim2.new(1, 0, 0.3, 0) payTaxesUpgradeButton.Position = UDim2.new(0, 0, 0.1, 0) payTaxesUpgradeButton.BackgroundColor3 = Color3.fromRGB(70, 70, 70) payTaxesUpgradeButton.Parent = upgradeFrame local moneyByStepUpgradeButton = Instance.new("TextButton") moneyByStepUpgradeButton.Text = "Increase the speed of receiving money\nPrice: $"..tostring(50) moneyByStepUpgradeButton.Font = Enum.Font.GothamBold moneyByStepUpgradeButton.TextColor3 = Color3.fromRGB(255, 255, 255) moneyByStepUpgradeButton.TextScaled = true moneyByStepUpgradeButton.Size = UDim2.new(1, 0, 0.3, 0) moneyByStepUpgradeButton.Position = UDim2.new(0, 0, 0.5, 0) moneyByStepUpgradeButton.BackgroundColor3 = Color3.fromRGB(70, 70, 70) moneyByStepUpgradeButton.Parent = upgradeFrame -- Top information panel displaying tax rates and earning speed local infoPanel = Instance.new("Frame") infoPanel.AnchorPoint = Vector2.new(0.5, 0) infoPanel.Position = UDim2.new(0.5, 0, 0, 0) infoPanel.Size = UDim2.new(1, 0, 0.1, 0) infoPanel.BackgroundColor3 = Color3.fromRGB(90, 90, 90) infoPanel.BorderSizePixel = 0 infoPanel.Parent = screenGui local taxInfoLabel = Instance.new("TextLabel") taxInfoLabel.Text = "Taxes are collected every "..math.ceil(1/taxRarity).."." taxInfoLabel.Font = Enum.Font.GothamMedium taxInfoLabel.TextColor3 = Color3.fromRGB(255, 255, 255) taxInfoLabel.TextScaled = true taxInfoLabel.Size = UDim2.new(0.5, 0, 1, 0) taxInfoLabel.BackgroundTransparency = 1 taxInfoLabel.Parent = infoPanel local speedInfoLabel = Instance.new("TextLabel") speedInfoLabel.Text = "Receive money every "..string.format("%.2f", moneyByStepInterval).." seconds." speedInfoLabel.Font = Enum.Font.GothamMedium speedInfoLabel.TextColor3 = Color3.fromRGB(255, 255, 255) speedInfoLabel.TextScaled = true speedInfoLabel.Size = UDim2.new(0.5, 0, 1, 0) speedInfoLabel.Position = UDim2.new(0.5, 0, 0, 0) speedInfoLabel.BackgroundTransparency = 1 speedInfoLabel.Parent = infoPanel -- Function to receive money for each step local function getMoneyFromSteps() steps += 1 money += 1*multiplier moneyLabel.Text = "Money: $"..tostring(math.floor(money)) end -- Apply random taxes according to the given frequency local function applyTax() if math.random() <= taxRarity then local taxAmount = math.min(money, 4) -- Always pay at least $4, even if you don't have enough money = money - taxAmount moneyLabel.Text = "Money: $"..tostring(math.floor(money)) taxInfoLabel.Text = "Paid taxes: -$"..tostring(taxAmount) end end -- Rebirth function local function performRebirth() if money >= rebirthCost then money = money - rebirthCost multiplier = multiplier + 1 rebirthCost = rebirthCost + 50 steps = 0 rebirthButton.Text = "Rebirth ($" .. tostring(rebirthCost) .. ")" moneyLabel.Text = "Money: $"..tostring(math.floor(money)) end end -- Upgrade: Increase tax rarity local function buyPayTaxesUpgrade() if money >= 25 then money = money - 25 taxRarity = taxRarity / 2 -- Double the tax rarity (reduce how often they occur) taxInfoLabel.Text = "Taxes are collected every "..math.ceil(1/taxRarity).."." moneyLabel.Text = "Money: $"..tostring(math.floor(money)) end end -- Upgrade: Increase the speed of receiving money local function buyMoneyByStepUpgrade() if money >= 50 and moneyByStepInterval > minMoneyByStepInterval then money = money - 50 moneyByStepInterval = moneyByStepInterval - 0.05 -- Decrease the interval by 0.05 speedInfoLabel.Text = "Receive money every "..string.format("%.2f", moneyByStepInterval).." seconds." moneyLabel.Text = "Money: $"..tostring(math.floor(money)) end end -- Button event handlers rebirthButton.MouseButton1Click:Connect(performRebirth) payTaxesUpgradeButton.MouseButton1Click:Connect(buyPayTaxesUpgrade) moneyByStepUpgradeButton.MouseButton1Click:Connect(buyMoneyByStepUpgrade) -- Go back to the main menu via the "<" button backButton.MouseButton1Click:Connect(function() upgradeFrame.Visible = false end) -- Toggle visibility of the upgrade menu upgradeMenuButton.MouseButton1Click:Connect(function() upgradeFrame.Visible = not upgradeFrame.Visible end) -- Regularly check for taxes task.spawn(function() while true do task.wait(10) -- Check every 10 seconds applyTax() end end) -- Receive money every N seconds only when you're moving task.spawn(function() while true do task.wait(moneyByStepInterval) if LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then local humanoid = LocalPlayer.Character:FindFirstChildOfClass("Humanoid") if humanoid.MoveDirection.Magnitude > 0.1 then getMoneyFromSteps() end end end end) -- Red transparent flashing effect when money is critically low task.spawn(function() while true do task.wait(1) if money < 0 or money < 2 then local flashEffect = Instance.new("Frame") flashEffect.BackgroundColor3 = Color3.fromRGB(255, 0, 0) flashEffect.BackgroundTransparency = 0.5 flashEffect.Size = UDim2.new(1, 0, 1, 0) flashEffect.Visible = true flashEffect.Parent = screenGui task.wait(0.5) flashEffect.Visible = false task.wait(0.5) end end end)