Roblox scripting,
done fast and fair.

I'm Soulviir. I write the systems your game runs on, combat, AI, data, shops, UI, whatever you need, server side in typed Luau. You get working code in days without paying studio prices for it.

Turnaround
Days, not months
Code
Typed, tested, server-side
Rates
Solo dev, no markup
01Selected work

Combat Arena

A melee fighting demo I built to show how I write gameplay. R15 combat, a parry and block system, and a dummy that actually fights back. It's live, you can go hit it.

Server-authoritativeStrict LuauTestEZRojo + GitPathfinding AI
Full run
Combos, parries, dashes, and a live fight against the AI dummy.
// the hit detection that runs on the server
-- server-authoritative hit sweep (Combat.luau)
local params = OverlapParams.new()
params.FilterType = Enum.RaycastFilterType.Exclude
params.FilterDescendantsInstances = { attackerCharacter }

local center = (root.CFrame * CFrame.new(0, 0, -REACH)).Position
local hits = Workspace:GetPartBoundsInRadius(center, RADIUS, params)

for _, part in hits do
    local model = findDamageModel(part)
    if model and not alreadyHit[model] then
        alreadyHit[model] = true
        -- no hitting through walls
        if not blockedByWall(center, part.Position) then
            applyDamage(model, baseDamage + (combo - 1) * STEP)
        end
    end
end
// how the code is laid out
ReplicatedStorage/
└─ CombatArena       shared config, remotes
ServerScriptService/
├─ CombatService     routing, dummy spawns
└─ CombatArena/
   ├─ Combat         hit + damage core
   ├─ SmartDummy     line-of-sight AI
   ├─ AnimController NPC animation
   └─ DummyLifecycle clone + respawn
StarterPlayer/
└─ CombatArena       input, HUD, camera

Piece by piece

Combo & feedback
Three-hit combo with floating damage numbers and hit sparks.
Block & parry
Blocking cuts damage; a well-timed parry cancels it with a gold flash.
Dash
Directional dash with its cooldown tracked server-side.
AI dummy
The dummy hunts line of sight, chases through the maze, and fights back.

More systems on the way: inventory and saving, shops, round loops, UI suites.

02What I build

Whole systems, or the one piece that's fighting you

Most of my work is gameplay and backend logic. If it runs in your game and needs to be written or fixed, it's probably something I can do.

Combat & abilities
Melee and ranged kits, hitboxes, cooldowns, parries, dashes. Built to feel good and validated on the server so they hold up in a real game.
Enemies & AI
State-machine NPCs, pathfinding, wave spawners, bosses. Behaviour that reacts to the player instead of standing still.
Data & economy
Inventories, currency, shops, and player saving that retries instead of losing progress when a DataStore call fails.
Rounds & game loops
Lobby to match to win condition to reset. Teams, timers, scoring, the whole loop wired together.
UI & feedback
HUDs, menus, action bars, damage numbers. Mobile-safe layouts hooked up to clean client code.
The thing that's stuck
Sometimes you just need one broken system fixed or one mechanic that won't behave. I take those too.

How a job runs

  1. 01

    Scope

    Tell me what you want and a rough range if you have one. I turn that into milestones.

  2. 02

    Build

    I write it in typed Luau with version control, and you see progress along the way instead of silence.

  3. 03

    Check

    I can test in a clean place first, or in your place if you want me there.

  4. 04

    Hand off

    Drop it into your place, hand you a package, or both. You get notes on how it works.

03Pricing

A rough range keeps the scope honest

If you have a rough range, say it early. It helps me shape the first cut around what matters instead of guessing at scope.

One system

A single feature done right. A combat kit, an inventory, a round loop. Scoped, built, handed over.

  • Rough range up front
  • Usually days
  • Drop-in or package handoff
Talk scope
most jobs

A few systems

Several pieces that work together, like the core loop of a game wired up and tested as one thing.

  • Milestones match the range
  • Progress you can watch
  • Notes on how it works
Talk scope

Ongoing

Repeat or retainer work for a game in active development. I become the scripter you call when something's needed.

  • Monthly scope
  • First in line
  • Better long-term rate
Let's talk

Rough range, real scope. We adjust from there.

04Contact

Tell me what you're building

Send the gist of your game, what you need scripted, and a rough range if you have one. I usually reply the same day with questions or the next step.

Email contact@soulviir.com opens your mail app
Where should I reply