I can build pretty much whatever a Roblox project needs.
Systems, UI, bosses, quests, NPCs, data work, old code cleanup, and custom features. I work in LuaU with Rojo. I can also work with whatever framework or module setup your project already uses.
Profile
discord profile
If it needs code, there is a good chance I can build it or clean it up.
What I can build
Work
I usually end up doing the parts that grow fast
That usually means UI, class logic, quests, bounties, NPC behavior, bosses, server support, and all the parts between them.
Code Style
I keep the code modular so updates stay easy
Most of it is split into modules, services, and controller objects so new features do not wreck the rest of the game.
Payments
USD through Stripe is preferred, Robux works too
Small jobs are fine, full systems are fine, and long term work is fine too. Clients can pay at /payments.
What I Work On
What I can actually do
If it needs code, there is a good chance I can handle it. New systems, missing features, broken old code, party systems, boss logic, security wrappers, or cleanup after messy updates.
Gameplay Systems
Classes, quests, bounties, progression, combat systems, and the server logic that ties everything together.
UI and UX
Inventory UI, lobby systems, settings, status panels, shops, and whatever players spend time looking at.
NPC and AI Architecture
Controller-based NPC code, combat behavior, movement, threat logic, dialogue, and encounter scripting.
Boss Encounters
Phase logic, ability managers, state handling, punish windows, and boss scripting that can still be tuned later.
Data and Persistence
Player data, inventory saves, unlock checks, progression flags, and clean links between storage and game logic.
Anti-Cheat and Validation
Remote checks, action validation, movement checks, and server rules that stop the obvious abuse.
Tools
Modules and tooling I already know
I am not limited to raw Roblox APIs. I can work with common modules and tooling too, including the stuff most projects already depend on.
Workflow & Tooling
UI & State Management
Logic, Data & Network
Code
Real code, cleaner layout
This is real project code. Alive NPCs, party code, security wrappers, and boss work are all in here. Pick a file on the left and read it in one viewer.
Payments
Preferred: USD via Stripe
Best for direct client work, milestones, and longer jobs.
Also available: Robux
Fine for smaller jobs too.
Showcase files
AliveNpcController.lua
ServerScriptService/Modules/AliveNpc/AliveNpcController.lua
LuaU
local AliveNpcController = {}
AliveNpcController.__index = AliveNpcController
function AliveNpcController.new(model, config)
local self = setmetatable({}, AliveNpcController)
self.Model = model
self.Config = config
self.Name = model.Name
self.Humanoid = model:FindFirstChildOfClass("Humanoid")
self.HumanoidRootPart = model:FindFirstChild("HumanoidRootPart")
self.Animator = self.Humanoid:FindFirstChildOfClass("Animator") or Instance.new("Animator", self.Humanoid)
self.SpawnPosition = self.HumanoidRootPart.Position
self.SpawnCFrame = self.HumanoidRootPart.CFrame
self.State = BehaviorState.IDLE
self.Target = nil
self.HitCount = 0
self.ConsecutiveHits = 0
self.LastHitTime = 0
self.Hostile = false
self.WeaponEquipped = false
self.Dead = false
self.LastStateChange = tick()
self.LastAttack = 0
self.LastSkill = 0
self.LastWander = 0
self.LastStrafe = tick()
self.LastParry = 0
self.LastBlock = 0
self.LastEquipToggle = 0
self.LastDialogueTime = 0
self.LastSocialUpdate = 0
self.LastRagdollCancel = 0
self.SocialTarget = nil
self.Attacking = false
self.HyperArmor = false
self.TrueHyperArmor = false
self.StrafeDirection = 1
self.ComboIndex = 1
self.SkillTimers = {}
self.ThreatTable = {}
self.LastTargetAttacking = false
local classModule = self.Config.Class and script.Parent.Classes:FindFirstChild(self.Config.Class)
if classModule then
self.Class = require(classModule)
end
self.WalkTrack = nil
self.IdleTrack = nil
self.RunTrack = nil
self.Connections = {}
self.SkillAnimTracks = {}
self.Path = NpcPathfinder.new(self.Humanoid, model:FindFirstChild("HumanoidRootPart"), {
AgentRadius = 2,
AgentHeight = 5,
AgentCanJump = true,
})
self:Setup()
return self
end