Open for commissions Luau · Roblox 6 years on platform ~18 hrs / week

Gameplay
systems, built
from scratch.

I write Luau: character controllers, enemy AI, matchmaking, saving and loading, UI. No toolbox parts, server-authoritative, and light enough to run on a cheap phone. Both games below are my own, so the code I'd write for you is the same kind I have to live with afterwards.

Live capture · unedited

See it move before
you read about it.

Three recordings straight out of Roblox Studio from the horror project. Greybox on purpose — systems first, art later. Sound is on the clips if you want it.

wirebox.mp40:10 · 1280×720in-engine · Studio playtest
Wire box objective. The proximity prompt reads the objective's own state, and interacting opens a splice minigame where wires are re-routed between terminals. The panel reports SYSTEM STATUS: DOWN and the completion is logged server-side, feeding the round's win condition.
generator.mp40:11 · 1280×720in-engine · Studio playtest
Generator objective. A held interaction with a timing ring and a four-stage progress bar. Each stage commits separately, so per-objective progress survives a survivor being interrupted mid-repair.
chase.mp40:13 · 1322×768in-engine · map build
Movement and camera in the map proper. The custom controller and soft shift-lock camera running in built geometry rather than a test room — signposted routes, lighting, and the health / stamina HUD tracking sprint drain.

Selected work · 02

Two games, both mine.

Tower defense / Playable now / Solo: code, UI, art direction, balance

Untitled Tower Defense

roblox.com/games/119472908687736

A full tower defense game built alone: code, UI, enemy behaviour, economy, balance, mobile support. It's live, which is the main reason it's here — everything below is something you can go and check for yourself.

Unit shop interface with a hexagonal stat radar chart for the selected unit Unit shop with per-unit hexagonal stat radar. Custom UI, no plugins.
A wave in progress showing placed units, the enemy path and the economy HUD Live wave in progress: placed units, enemy path, economy HUD.
  • Hexagonal stat radar

    A data-driven radar chart that reads each unit's stat table and renders the filled polygon, axis web and letter grades at runtime, built from primitives rather than an off-the-shelf charting module, so adding a new unit needs no UI work.

  • Wave and enemy director

    Scaling wave composition with distinct enemy movement behaviours and multi-phase bosses that shift attack patterns and pacing mid-fight.

  • Tower placement system

    Validation that keeps the placement preview and the committed placement in exact agreement — a common source of "it looked legal but failed" bugs — with parity between mouse and touch input.

  • Economy and support units

    Income-generating towers and wave-based payout mechanics designed with explicit anti-snowball levers, so a strong early game doesn't flatten the rest of the run.

  • Loadout system

    Slot management with equip, unequip and reordering, including the sparse-array pitfalls that quietly break Lua table iteration.

  • Responsive UI and performance

    Layouts that hold from small phones to widescreen, plus client/server animation splitting and consolidated per-frame loops to keep frame rate stable during heavy waves.

Asymmetric horror / In development / Role: sole programmer

Unannounced Asymmetric Horror Project

A 12-survivor / 2-striker asymmetric horror game across two maps, in the vein of Dead by Daylight. The title is withheld until we announce. I'm the only programmer on it; a partner handles design and map layout. Nothing here is a free model — the screenshots are from a working build, so it's still greybox.

Objective interaction prompt with a custom health and stamina HUD on a greybox map Objective interaction prompt and custom health / stamina HUD, in-engine on a greybox test map.
Striker mid-pursuit with a red debug trail showing the computed path Striker mid-pursuit. The red trail is the computed path being consumed waypoint by waypoint — a debug view of the routing logic.
  • Custom character controller

    Ground-up movement replacing the default humanoid feel: sprint, crouch and state transitions with weight-based animation crossfading, so movement reads smoothly instead of snapping between poses.

  • Soft shift-lock camera

    A custom camera rig tuned for over-the-shoulder horror framing, with easing that keeps aim responsive without the stiffness of stock shift-lock.

  • Striker AI

    PathfindingService routing with waypoint traversal and recompute-on-failure handling, driven by a stamina model. Sprint drains, exhaustion drops the chase to walk speed, and a re-engage threshold decides when the pursuit resumes.

  • Objective and interaction system

    Proximity-driven objective prompts with per-objective state, feeding the round's win conditions.

  • Server-authoritative movement

    Walk speed, position and player state validated server-side, closing the client-trust holes that let exploiters outrun or clip through an asymmetric match.

Luau source showing stamina-gated chase speed and pathfinding helpers The code driving it: stamina-gated chase speed with an exhaustion and re-engage threshold, and pathfinding that fails safe when a route can't be computed.

What I build

The parts of a game
nobody sees.

Data & persistence
DataStores and ProfileService. Save structures, session locking, and migrating old player data without wiping anyone.
Matchmaking & rounds
Queueing, team assignment, the round lifecycle, and deciding who won.
Character & camera
Custom controllers, sprint / crouch / stamina states, animation blending, custom camera rigs.
Enemy & NPC AI
PathfindingService routing, waypoint traversal, chase / search state machines, multi-phase bosses.
UI from scratch
HUDs, shops, upgrade panels, data-driven stat displays, and layouts that survive being opened on a small phone.
Performance & security
Finding what's eating your frame rate, moving work off the server, validating remotes so exploiters can't just ask nicely.

How I work · in order

01Scope
You tell me the system or the bug. I ask the questions that actually change the estimate, then write down what's included and what isn't.
02Estimate
A fixed deliverable and a real timeline before I start. If the job grows halfway through, we re-quote. I don't overrun quietly and hand you a surprise.
03Build
Updates with something testable in them, rather than a week of silence and then a wall of code.
04Handoff
Commented, modular code that drops into your place, a short walkthrough of how it fits together, and a window afterwards for fixes.

Background

Publishing on Roblox since 2021. Early work is still up, including Super Clickers and an early gun / combat system. Full history at roblox.com/users/807959354.

Working with me

Have a system that needs building, or a bug that won't die?

Send me the game, the problem and your deadline. If I'm not the right person for it, I'll say so rather than waste your week.

Availability · Eastern Time

Thu & Fri 6–8 PM, Sat & Sun 3–10 PM. Around 18 hours a week — I'd rather quote against that honestly than promise you full-time.

Best fit

One system, a feature, an optimization pass, exploit hardening, or a bug hunt. Usually a few days to a few weeks.

Rates & references

Quoted per project once we've agreed the scope. Crit (critical_dummy) and Pearl (pearlsnivy1) are happy to vouch. More on request.