A low-poly Victorian sewer to build drains, tunnels and pumping stations from, and its machines work. 135 props in a muted, stylized look, their textures made in code: modular brick walls on a 2 m grid, plain, stained, mossy, rendered and patched, lettered with names and warnings, doorways, an arch, a culvert, an outfall, an inlet and a grille; brick-vaulted tunnels, their end, inlet and portal; vaulted ceilings and a street grating; channels straight, cornered, teed, crossed, weired and grated, and their water, foul or clear, with drips and a trickle that move; footbridges, railings, step irons, a ladder and steps; a sluice gate and its headstock, a flap valve, a sewage pump, its panel, an isolator, a generator, a bar screen, gauges, a gas monitor and a flood siren; sewer and flood doors, a pump station gate and its key, a manhole shaft; lamps, pipes, signs, safety gear, tools, sludge, a fatberg and a rat. 26 of them work, run by Machine.cs, wired by what needs what, with UnityEvents. A prefab per prop with colliders, and a demo sewer to walk round and pump out, for Built-in and URP. Built on Low Poly Industrial Facility's grid and look, so it combines with it and Low Poly Bunker.
What's inside
- The sewer (49): brick walls plain, stained, mossy, rendered and repaired in concrete, lettered for the outfall, the chamber, the overflow and deep water; half, low and broken walls, a wall with a hole, posts, a brick pier and an iron column; doorways and wide openings, an arch, a culvert, an outfall, an inlet and a grille; a pumping station's glazed walls, doorway and wide opening; brick-vaulted tunnels clean, stained and mossy, a tunnel end, an inlet and a portal; wet, silted and setted floors, a station floor, a gully and an upper floor; vaulted ceilings, a flat one, a street grating and the station's; brick stairs.
- Channels and water (14): channels straight, end, corner, tee, cross, weir, grated and a gutter, their copings at the floor; water clear and foul, a flood, a puddle, drips from the vault and a trickle from a pipe, the last two moving.
- Ways across (11): grating, plank and brick footbridges, iron railings long, short and chained, step irons short and tall, a ladder and steps down into a channel, a wall handrail.
- Machines and doors (20): a sluice gate and its headstock, a flap valve, a sewage pump and its panel, an isolator, a portable generator, a bar screen, a level gauge, a flow meter, a telemetry cabinet, a gas monitor, a flood siren, a beacon and a hoist gantry; a sewer door, a flood door, the pumping station's gate and its key, and a manhole shaft through the ceiling.
- Lights, pipes and signs (19): wall, tunnel, pendant and emergency lamps, a floodlight on a tripod and a lantern; clay and iron pipes, a bend, an outfall pipe, a cable run, a junction box and a manhole cover; six signs.
- Safety, tools and debris (22): a lifebuoy, a first aid box, a rescue tripod, a gas detector and a hard hat; drain rods, a shovel, a bucket, a wheelbarrow and a toolbox; sludge, silt, a fatberg, rubbish bags, a tyre, a shopping trolley, fallen bricks, planks, a drum, sandbags, flood boards and a rat.
- 26 working machines, 22 animations: the headstock's wheel winds a quarter at a time and the sluice gate rises with it, the generator starts and runs, the isolator turns, the pump panel's starter clicks to AUTO, the pump and the bar screen's rake run, the gauges read, the siren wails, the beacon spins, the gate takes its key, doors, the flap valve and the manhole's cover open, and the lamps light with the power. The moving parts are separate objects, so your code can drive them too.
- A demo sewer to walk and pump out: a shaft down into a chamber, a tunnel to the main sewer, its channel dammed at the sluice, and a pumping station gone dark behind its gate. The tunnel portals leave their openings clear for the player.
- Seamless textures (brick, render, floors, ceilings, the channel's lining; 128 px a metre) as their own PNGs, for your own geometry, and an icon per prop.
- One 2048x2048 texture atlas for the whole pack, filtered with mipmaps, the occlusion baked into the vertex colours, real-world scale.
One script, every machine
Each prop that works carries the same script, set up for it: a switch, a turn of so many steps, a slot that takes an item, an item to pick up, a machine that's powered, or a gauge. A machine is powered while everything it needs is live, so the isolator needs the generator, the pump panel needs the isolator and the pump needs its panel; the sluice gate reads its headstock. It says no when it's unpowered or wants an item, and its signals tell your game what happened.
Built on a grid
Everything snaps to a 2 m grid with 4 m storeys: a wall is 2 m long and 0.25 m thick, a floor or a channel covers a 2 x 2 m cell, and a tunnel piece runs 2 m along its cell. A channel's copings are at the floor, so the cells beside it are its walkways. Low Poly Industrial Facility's and Low Poly Bunker's pieces snap to the same points.
Unity 6.3
A .unitypackage with a prefab per prop (colliders and animation clips), Machine.cs on every prop that works, the same machines with UnityEvents, the pack's lit shader for Built-in and URP (baked occlusion, soft light, shadows, fog and a glow map for lamps and screens), a demo scene and the sewer to walk and pump out.
// panel, pump: the props in your level; carried: the items the player holds
pump.needs = new[] { panel };
panel.onSwitched.AddListener(on => Debug.Log("pump panel " + on));
panel.Use(carried);
Drips, trickle and rat loop automatically when their prefabs enter a scene; the machines wait for their controls.