A closer look at how I build things.
Screenshots from the games and tools I’ve worked on, what each system does, and a few Luau samples you can read through.
Ring matches
Two players take the corner pads and get a VS intro, three rounds, and a corner screen between each one where they pick hydrate, treatment, or a pep talk. The server runs every ring on its own, so five fights can happen at once.
Luau, CollectionService, server-run match state
AI opponents and spectating
If you wait alone on a pad, an AI boxer steps in with a style and skill that match your rank. Anyone else can watch any live ring, and the server streams that ring to them and sends them its round calls.
AI brain on a 0.12s tick, StreamingEnabled, rate-limited remotes
Animation pipeline
Around 75 R6 animations, made and polished in Blender. I wrote scripts that check every frame for joint pops, loop seams, and feet sliding, so problems show up as numbers before anyone plays it.
Blender, Python, KeyframeSequences, Open Cloud publishing
Box scores and career records
In Limitless the server records stats for every match, then feeds box scores, career records, and the league tools.
Persistence, server validation, responsive UI
Build a Basketball Team
A team-building game with player collections, rosters, career progression, and online modes.
Persistent data, economy, UI systems
Roblox and Discord sync
Tools that bring Roblox player profiles into Discord and help staff manage rosters, permissions, and transactions.
Node.js, Discord.js, REST, SQLite
Luau samples
Short pieces adapted from real systems. No private endpoints or keys, just the approach.
Punch repeat falloff
How Second Wind Boxing stops jab spam from stunlocking, and the test that keeps it fixed.
Read the sample
Server-validated profile sync
Checks profile data, retries failed requests, and batches updates before sending them out.
Read the sample
Timed ability state
Saves a character’s settings before a temporary ability and puts them back when it ends.
Read the sample