Easy Tycoon Engine
Config-driven upgrade and income engine for Roblox
Build a tycoon game without writing gameplay code.
What Is This?
Easy Tycoon Engine is a complete tycoon framework for Roblox — economy, plot assignment, and model spawning, all built in.
Define your upgrades in a config table, set up plots in your map, drop models in ServerStorage, and the engine handles the rest: cost scaling, income, persistence, rebirth, plot assignment, and on-purchase model spawning.
Open the bundled demo place and you've got a working factory tycoon with 8 plots and 8 themed upgrades — ship it as-is for testing or reskin and extend.
Features
- Plot system — auto-assignment when players join, spectator mode when servers fill up, oldest spectator promoted when a plot frees
- Model spawning on purchase — drop models in
ServerStorage.TycoonModels, add marker Parts to your plots, and the engine clones the right model onto the right marker every time - Rebuild on rejoin — saved upgrade levels rebuild as models automatically when a player gets their plot back
- Config-table driven — define every upgrade in a Lua table: name, cost, scaling, income, max level
- Automatic cost scaling — exponential formula tunable per upgrade
- Income-per-second — configurable tick rate, passive earning
- Built-in rebirth — reset upgrades for permanent income multipliers, with fade-out animation on cleanup
- Server-authoritative — all purchases and income validated server-side
- Automatic button detection — CollectionService tags or folder-based, ProximityPrompts auto-created
- Touch button support — mobile-ready with configurable debounce
- DataStore persistence — autosave, shutdown-safe saves, exponential backoff retry logic
- Easy Economy integration — optional pairing for shared currency and transaction logging
- Standalone mode — works with plain leaderstats, zero dependencies
- Playable factory demo — included
.rbxlplace with 8 plots, 8 upgrades, owner signs, income animations, rebirth particles
How It Works
Code:
-- 1. Set up your plots in Studio:
-- workspace.TycoonPlots.Plot1 (Model)
-- ├── Base
-- ├── Generator -- marker Part for the Generator upgrade
-- ├── Furnace -- marker for Furnace
-- └── ...
-- 2. Drop model templates in ServerStorage:
-- ServerStorage.TycoonModels.Generator (Model)
-- ServerStorage.TycoonModels.Furnace
-- ...
-- 3. In a server script:
local Tycoon = require(game.ServerScriptService.EasyTycoonEngine.Tycoon)
local TycoonPlot = require(game.ServerScriptService.EasyTycoonEngine.TycoonPlot)
Tycoon.Init(nil)
TycoonPlot.Init(Tycoon)
-- That's it. When a player buys "Generator", the Generator
-- model clones onto the Generator marker on their plot.
Config Preview
Every upgrade is defined in a single table:
Code:
Config.Upgrades = {
Generator = {
DisplayName = "Power Generator",
BaseCost = 25,
CostMultiplier = 1.30,
IncomePerLevel = 1,
MaxLevel = 10,
},
Reactor = {
DisplayName = "Fusion Reactor",
BaseCost = 75000,
CostMultiplier = 1.70,
IncomePerLevel = 600,
MaxLevel = 3,
},
}
Rebirth and plot config:
Code:
Config.RebirthEnabled = true
Config.RebirthBonusMultiplierPerRebirth = 0.25 -- +25% per rebirth
Config.PlotEnabled = true -- set false for economy-only mode
Config.RebirthFadeOutSeconds = 0.5 -- smooth model fade on rebirth
API
Code:
-- Tycoon (economy)
Tycoon.Init(economyModuleOrNil)
Tycoon.GetLevel(player, upgradeId)
Tycoon.GetCost(player, upgradeId)
Tycoon.CanPurchase(player, upgradeId)
Tycoon.Purchase(player, upgradeId)
Tycoon.GetIncome(player)
Tycoon.TryRebirth(player)
Tycoon.Save(player)
-- Tycoon signals
Tycoon.OnPurchase:Connect(function(player, upgradeId, newLevel) end)
Tycoon.OnRebirth:Connect(function(player, rebirthCount) end)
-- TycoonPlot (plots + model spawning)
TycoonPlot.Init(tycoon, economyModuleOrNil)
TycoonPlot.GetPlot(player)
TycoonPlot.GetOwner(plotModel)
TycoonPlot.AssignPlot(player, plotModel)
TycoonPlot.SpawnModel(player, upgradeId)
TycoonPlot.IsSpectating(player)
-- TycoonPlot signals
TycoonPlot.OnPlotAssigned:Connect(function(player, plot) end)
TycoonPlot.OnPlotFreed:Connect(function(player, plot) end)
TycoonPlot.OnModelSpawned:Connect(function(player, upgradeId, model) end)
Quick Start
- Place the
EasyTycoonEnginefolder intoServerScriptService - Open the bundled
.rbxldemo to see everything working immediately - To use in your own game: set up plots and models per the API docs, then call
Tycoon.Init()andTycoonPlot.Init(Tycoon)from a server script - Edit
Config.luato define your upgrades - Hit Play
Use Cases
- Visual Tycoons — Buy an upgrade, watch a factory/spaceship/building model spawn on your plot. The engine handles the visuals.
- Classic Tycoons — Define upgrades, costs, and income in a config table. The engine does the rest.
- Idle / AFK Games — Income-per-second works out of the box for idle loops.
- Simulator Upgrades — Use the upgrade system for tools, pets, or backpack tiers.
- Rebirth Systems — Built-in rebirth logic with multipliers, thresholds, currency costs, and fade-out animation.
What's Included
- Full source code — Tycoon engine, TycoonPlot module, persistence, config
- Playable factory demo place — 8 plots, 8 upgrades, animations, particles
- Demo scripts — server and client with full UI + spectator banner
- Documentation — installation, configuration, API reference, FAQ, migration guide
- Example scripts — basic setup, Economy integration, plot spawning, custom upgrade patterns
- Changelog — structured release history
Requirements
- Roblox Studio (latest recommended)
- LuaU
- No dependencies (Easy Economy System optional)
FAQ
Can upgrades spawn physical models?
Yes. As of 2.0.0, the included TycoonPlot module clones a model from ServerStorage onto the player's plot every time they buy an upgrade. Drop your models in a folder, add marker Parts to each plot, and it works automatically.
Do I have to use the plot system?
No. Set
Config.PlotEnabled = false and the engine behaves exactly like v1.2.0 (economy only). Plots are opt-in.What happens when there are more players than plots?
Extra players enter spectator mode — they can still purchase upgrades and their progress saves, but no models spawn until a plot opens up. The longest-waiting spectator is promoted automatically.
Do I need Easy Economy System?
No. The engine works standalone using leaderstats. Easy Economy is optional — adds shared currency, transaction logging, and dashboard visibility.
Can I customize cost scaling?
Yes. Each upgrade has its own
BaseCost and CostMultiplier. Change them per upgrade for any cost curve.Does it save player data?
Yes. Upgrade levels and rebirth count are saved to DataStore with autosave, shutdown safety, and retry logic. When a player rejoins, their factory rebuilds from saved state automatically.
Can I add unlimited upgrades?
Yes. Add entries to the config table. Set
MaxLevel = nil for infinite upgrades.Are updates included?
Yes. Your license includes all future updates at no extra cost.
