Post-Apocalyptic Open World Survival
CORRUPT
EARTH
The world ended. Every night the dead grow in number. Every boss you kill makes it worse. Build. Scavenge. Fight. Survive what remains.
An open-world zombie survival game where every wall, building, and structure can be torn apart. By you, by the horde, or by the laws of physics catching up with your questionable architecture.
Scavenge. Craft. Build.
Then watch it all come crashing down when you forgot to account for structural integrity.
Survive the Day
Loot. Learn. Live.
Loot abandoned towns, farms, and military outposts. Master a skill system that rewards doing over grinding: the more you swing an axe, the better you get with one.
Fear the Night
The Horde Hunts.
Hordes don’t just wander; they hunt. They target your noise, your light, your base. The bigger your ambitions, the louder your problems.
Build Something Worth Defending
Block by Block.
Construct and fortify your base, wire up power systems, grow crops, and field vehicles. Or don’t. A well-placed demolition run works too.
Watch the World Spiral
The Collapse.
Every boss you kill escalates the threat. Kill enough and the world enters The Collapse. Survive that, and you can push into Rebirth: a harder cycle, better loot, no mercy.
Oh, and everything is destructible.
The buildings. The roads. The trader’s base.
Whether he still wants to trade with you after that… is between you and him.
Core Systems
Built to Survive Scale
Every system is designed to create emergent chaos — the kind of moments you don’t plan for.
For Creators
If You Can Imagine It,
You Can Script It
Every system in Corrupt Earth is defined in Lua scripts that ship with the game. Want a zombie that explodes, drops rare loot, and plays a sound on death? There’s a callback for that.
-- Inherits base zombie
ExploderZombie = Zombie:extend()
ExploderZombie.health = 80
ExploderZombie.moveSpeed = 1.8
ExploderZombie.rarity = "rare"
ExploderZombie.dropTable = "rare_military"
function ExploderZombie:onDeath(pos)
World.explosion(pos, 4.5)
Sound.play3D("explode_wet", pos)
Loot.drop(pos, self.dropTable)
end
From the Trenches