Hi, I'm Xrelalso known as Kvex

I'm a full stack developer with 10+ years of experience. I build games, Discord bots, websites, and the systems behind them. My work covers multiplayer networking, live economies, anti-cheat, and admin tools, along with combat systems, AI and pathfinding, inventory and saving, and reactor and generator simulations.

9.27 million+ combined visits across games I've worked on.

View My Work
Join My Discord

Discord: xrel

Reach me in my server or add me directly.

About Me

I'm Xrel, also known as Kvex. I'm 23, I work as an Aerospace Engineer at RTX Raytheon, and I've spent over 10 years programming. I work with Lua, Luau, Java, JavaScript, CSS, and Python, and use Eclipse for Java development.

Building new features from scratch is what I do best. I like taking an idea, figuring out how it should work, and building it through to release. That includes websites, Discord bots, multiplayer gameplay, pathfinding, AI, anti-cheat, and the admin and backend tools a game needs.

On Roblox, you may know me as KvexReju. I'm Head Developer on Site Zulu, Site Arcadia, and 91st. I also own and lead development on Sell Scrap: Scrapocalypse, and I've done programming work for Eastern Front by Red Bear Community.

A lot of my game work happens on the server: saving player progress, keeping combat fair, moving data between players, and making sure an economy holds up after weeks of live play.

I'm also comfortable working through an older codebase. I can go into a script that's grown for a year, find the line causing a race condition or network bottleneck, and fix it without changing the behavior around it.

I keep devlogs and clear bug-fix task lists so testers know what changed and how to check it. I also handle bug reports, write testing guidelines, and review releases before they reach the main game. For me, checking the work is part of finishing it.

Skills

Lua

I work with Lua inside C/C++ engines. I handle the connection between scripts and native objects, keep scripts isolated, and tune memory use and garbage collection. I can also reload scripts without throwing away their state.

Luau & Roblox Studio

I build multiplayer systems in Luau, with the server checking player actions. I work on inventories, saving, combat under latency, and large simulations, using typed modules to keep the code manageable as it grows.

Java

I build backend services that handle work at the same time without losing track of orders or inventory when something fails. I also work on database migrations and track down deadlocks, memory leaks, and slow requests.

JavaScript

I build live dashboards and collaborative tools. I handle reconnects, conflicting changes, and asynchronous state, and investigate memory leaks or interactions that make a page feel slow.

CSS

I design reusable styles and responsive layouts. I account for different screen sizes, languages, zoom levels, themes, and reduced motion, and fix styling conflicts or layouts that jump around between browsers.

Python

I use Python for data pipelines, APIs, and background workers. I work with large datasets within memory limits and build in retries, timeouts, cancellation, and recovery when a job fails. I can also handle model-serving systems.

Eclipse

I use Eclipse to work through large Java applications, refactor modules, and fix build or dependency problems. I can build plugins, code-analysis tools, and automated refactorings too.

Websites & Discord bots

I design websites and build the services behind them. I also make Discord bots for automation and connect them to backend systems.

AI & pathfinding

I build NPC navigation and decision-making systems. I work on how characters find a route, react to players, and behave under load without wasting server time.

Networking & performance

I reduce unnecessary network traffic with packet schemas, batching, throttling, and replication limits. I also look for slow startup work and systems doing more work each frame than they need to.

Saving & persistence

I build saving systems with DataStoreService and ProfileService. I use caching, autosaves, and safe offline updates to protect progress when players leave or a server fails.

Anti-cheat & admin tools

I validate actions on the server, limit request rates, and investigate exploits. I also build staff tools with permission checks so moderators can manage players and inventories safely.

Game systems

I build progression, live economies, and reputation systems. I also work on simulations such as power, fuel, and heat, where the numbers need to feel right during actual play.

Testing & team leadership

I organize bug reports, keep devlogs, and write tasks testers can follow. I help onboard test teams and check that fixes hold up before a release.

Projects

SCPF Site Zulu 212.5K+ visits

Head Developer

I'm Head Developer on Site Zulu. I build and maintain its combat, SCP AI, shops, storage, and staff tools, and handle security fixes and testing across the game. I'm under a strict NDA, so I can't share images or videos of this work on my website. Here's some of what I've worked on.

Shipped & live

Gameplay, AI & live systems

SCP AI, pathfinding & stealth

I rebuilt mobile SCP behavior around a shared AI framework with individual profiles. SCP-939 hunts by sound and investigates gunfire from roughly 220 studs away; SCP-1000 stalks before attacking and retreats when heavily injured.

Friendly SCPs (999, 2295, 529, 131, and 111) avoid hostile SCPs and follow players at an offset. I fixed SCP-173 observation logic, added sleep behavior when players are absent, and disabled AI movement on player-controlled SCPs.

The Labyrinth entity uses per-player detection driven by noise, sight, proximity, and gunfire, with louder sprinting, quieter crouching, close-range detection, and a live HUD meter.

Hacking tools & server validation

I built an interactive hacking minigame for Class-D and CI that targets compatible door readers, security robots, and fridges. Successful hacks temporarily open doors to everyone or disable robots.

The server validates distance, targets, and active sessions. The Hacking Tool gamepass provides a free GET action in the Class-D shop, limited to one tool per life and locked to its owner.

The tool cannot be dropped, stored, or sold.

Gadget shops, stock & economy

I added an MTF Gadget Shop and shopkeeper using the existing FP and Class-D interaction flow, with limited stock per restock for smoke grenades, grenades, EMP grenades, explosive drones, and an exclusive grenade launcher. I unified credit notifications to show earnings, source, and active percentage bonuses, with an income sound.

Passive income adds 2% for each department rank above its base rank, stacks with Double Credits, and displays the combined bonus.

Storage, gamepasses & purchase integrity

I separated private storage by team and implemented the x2 Private Storage gamepass, increasing each team's capacity from 48 to 96 slots immediately after purchase. I serialized shop purchases per player to stop purchase-spam duplication, preserved purchased-item origin data through SCP-914 transformations to prevent laundering into sellable items, and fixed grenade-launcher duplication.

A staff inspection command exposes held inventory and private storage for duplication investigations.

Testing access & administration

I added automatic testing-branch admin permissions for Testers, Advanced Testers, and Head Coordinators using tester-group checks. Access is hard locked to the testing place ID, so these permissions have no effect in the main game.

I also cleared the bugs recorded in the tracker during this release.

Faction balance, equipment & simulation

I reduced all Class-D armor protection from 30% to 20% and shop stock by approximately half. Explosive-drone restocks now have a 75% chance of zero stock and a 25% chance of one.

Class-D cannot store explosive drones or grenade launchers, or open SCD and MD fridges. SCP-323 morphs decay continuously, die after approximately 20 minutes, and cannot be healed.

I increased robot health by 50%, added a Roomba use cooldown, and gave SD Lieutenants and above the M202 shotgun. Vial purity drops by 1% per hour outside a freezer.

Player, NPC, and equipment rigs share a unified body scale, adjusted to fix accessory clipping.

Player onboarding, combat feedback & community UI

I added readable single-beam yellow weapon tracers and a new-player intro video that replaces the acknowledgment screen. The App Center now offers a Join Community button to players outside the main group, department application pages include department group buttons, and Class-D ranks display faction icons.

Combat architecture & earlier system work

Combat networking rebuild: RemoteEvents → ByteNet

I rebuilt the combat packets with ByteNet to cut down the data sent for every shot. I used position and look vectors to avoid a rotation-decoding issue, and grouped each pellet's data together so a destroyed instance couldn't shift the remaining hit claims.

I kept a fallback to the old remotes so I could roll the change back safely. Before release, I checked hit registration, damage, tracers, and hit markers across hitscan weapons, shotguns, and melee.

Server-side combat security & anti-cheat

I wrote CombatSecurityService to check where attacks come from, whether the player can act, whether they own the tool, and whether requests arrive at a reasonable rate. I added lag compensation for melee so a legitimate hit isn't rejected just because a target moved on a slower connection.

I log rejected actions so I can see which checks are firing in production. I also stopped recalculating every weapon attachment stat on every bullet; I cache the result and update it when the attachments change.

Vehicle replication optimization

I tracked vehicle-related lag to four position messages being sent about 25 times a second for each active vehicle. I combined messages, lowered the update rate to roughly 15 Hz, and checked the brake lights that used the same code.

I cut the vehicle network traffic by roughly half, without a noticeable change in how driving looked or felt to passengers and spectators.

Exploit & integrity fixes

I fixed weapon fire rates depending on frame rate, an infinite-sprint exploit caused by mismatched aim and stamina state, and a ragdoll recovery bug that could leave a player headless with a locked camera.

I moved firing onto a fixed timer, corrected the sprint notifications, and made recovery retry until the player was alive. I also fixed interrupted SCP-323 kills by blocking grabs in elevators and adding recovery if a grab was interrupted another way.

Admin tooling & player marketplace economy

I built an inventory panel and Cmdr commands so staff can inspect and edit inventories, storage, purchases, and faction stock. I check read and write permissions separately on the server. For offline players, I queue changes through ProfileService rather than risk overwriting a live save.

I also built the player marketplace, with seven-day listings and seller payouts delivered immediately or queued while they're offline. I flag destructive staff actions in the interface and document unresolved edge cases, including a possible repeated offline removal after a crash.

SCPF Site Arcadia 19.1K+ visits

Head Developer

I'm Head Developer on Site Arcadia. I work on the game's architecture, reactor simulation, progression, and day-to-day fixes. I've also worked through the codebase to reduce server load, network traffic, and memory problems.

Shipped & live

Optimization, reliability & systems audit

Here's what I changed during my September 2026 optimization pass, what I tested, and what I still need to follow up on.

Full-game audit & measured optimization

I inspected 1,425 scripts and audited 354,324 instances across the scriptbase, networking, AI, physics, memory, and client/server performance. Five full Studio play-test cycles introduced no new Output errors attributable to the pass.

Executable scripts fell from 1,425 to 1,282: server Script instances from 385 to 241, LocalScripts from 152 to 153, and ModuleScripts unchanged at 888. Permanent server loops fell from approximately 221 to 79.

World organization & runtime isolation

I reduced Workspace root children from 929 to 13 and organized 893 loose instances into Map and Interactables. Map content is grouped into Regions, Structures, and Decorations; interactions into doors, ore nodes, amenities, utilities, teleporters, and weapons crates.

I introduced a Runtime container and organized StarterPlayerScripts into Systems, UI, and Effects. Existing literal script paths were preserved, including approximately 180 ServerStorage tools resolved directly by loadout, loot, morph, uniform, and admin systems.

Decorative systems & legacy cleanup

I replaced 144 permanent server GifScripts with one distance-culled client GifTextureController, eliminating approximately 860 decorative property replications per second. I removed 42.7 KB of dead DistanceFade code, unused Defibrillator comments, and 706 unused Workspace rig/template instances containing two active Humanoids.

QueryAuthTest no longer runs at production startup. Duplicate or superseded systems, including 939_dup2, SCP087Old, TagList_dup2, OLD, and testcloak, were moved to LegacyReview rather than discarded.

Networking & nearby pose replication

I capped head/waist aim updates at 20 Hz and send only changed aim. Normal turning measured approximately 8 packets per second instead of roughly 60, with approximately zero idle packets.

Server pose delivery now targets observers within roughly 250 studs and skips the sender instead of broadcasting to everyone. Existing UnreliableRemoteEvents for transient poses and effects were reviewed and retained.

Medical tools, targeting & asynchronous work

I replaced Defibrillator full-Workspace scans with GetPartBoundsInRadius broadphase queries on client and server, throttled client scanning to approximately 15 Hz, removed redundant Highlight writes, and moved routine logging behind DEBUG. XPServer filters added instances before deferring work, and a duplicate scan of roughly 130,000 instances used only for a count was removed.

DroneClientControl filters invalid candidates before creating asynchronous work instead of spawning a coroutine for every descendant.

SCP AI scheduling & memory

I optimized all seven Chase scripts covering SCP-457, SCP-173, SCP-087 variants, SCP-076-2, and SCP-939 variants. I eliminated approximately 2,700 permanently parked Humanoid-wait threads (around 389 per script), and replaced scans of roughly 931 Workspace children with direct player iteration.

SCP-939 sound detection and SCPACT/Invisible exclusions were preserved. SCP-457 sleeps without nearby valid targets, checks approximately every 0.4 seconds while idle, and corrects network ownership only when needed.

Active-chase pathfinding cadence was left unchanged and remains follow-up work.

Event-driven interactions & lifecycle cleanup

I replaced per-Heartbeat UnequipTools calls while carrying a body with Character.ChildAdded handling, and fixed the Anchored listener to observe the actual property so carried or cuffed bodies can detach correctly. Terminal range checks now run about every 0.2 seconds, sessions clean up on character/player removal, and duplicate ChildAdded/log-refresh connections were removed.

Four consecutive respawns added approximately 28 Workspace instances and 3.9 MB of server memory, with no continuous upward memory trend observed during that test.

Physics, map correctness & interaction filtering

I anchored six incorrectly unanchored static parts, including a large piece that fell approximately 17.6 studs at startup. I removed two unnecessary Humanoid state machines, disabled CanQuery/CanTouch on 144 decorative GIF surfaces, and stopped dirt decal pads from blocking raycasts or triggering touch events.

TransitCarriage physics was reviewed and preserved because its unanchored parts are correctly welded at runtime.

Backend reliability & system refactoring

I made PluginLoader preserve useful plugin names such as metaldetectorscreens, radio, giantfans, and GeneratorSystem. RioterManager binds remotes before yielding for DataStore loading, protects DataStore calls, type-checks Bindable arguments, and validates table.find results before removal.

This fixes startup gaps, unknown-Rioter crashes, and accidental deletion of the last entry. I fixed InterloperDimension's reference to the removed Mechanics.Entering member and cleaned up deprecated Velocity, position, and connect usage in HumanoidServer.

Remote security review

I reviewed approximately 100 server event/function handlers. Medical tools, terminals, and gun systems validate sender identity, argument types, and/or distance where applicable.

The audit found no loadstring or getfenv usage and no obvious arbitrary-instance remote backdoors. I inspected the misleadingly named PashBackdoor script, confirmed it only animated a decorative Fumo model, and renamed it FumoSpinner.

Weapon spread and recoil remain partly client-authoritative and need a separate security pass.

Editor data & source preservation

I isolated 55,557 editor/plugin instances from active runtime areas, including 54,701 RBX_ANIMSAVES instances, 708 MoonAnimator2Saves instances, and Archimedes/BrushTool storage. Animation projects remain editable in EditorData.

Duplicate SCP content went to LegacyReview; TemplateR15, R15 development rigs, and orphaned GUI/debug objects were moved out of active Workspace areas. Uncertain content was preserved for review.

Regression testing & remaining validation

I tested server boot, joining, spawning, four respawns, team changes, loadouts, tool equip/unequip, seating, GIF signs, head-aim replication, generators, doors/keycards, XP/DataStore behavior, client plugins, and moved teleporters in Studio. Those checks passed. I confirmed that all 28 weapons crates initialized, 80 ore nodes retained their tags, and 1,445 ProximityPrompts remained active.

Two-client pose and corpse carry/drop regression tests, full vehicle/helicopter testing, and a live SCP chase test remain outstanding.

Documented follow-up work

I still need to run the two-client regression tests and fix 12 zero-ID animations. My next priorities include investigating the measured 2.6 to 3.0 second spawn delay, including gamepass checks; optimizing active-chase path refreshes; and exporting EditorData into a separate development place. I also need to review startup scans of the roughly 122,000-instance Facility, organizing 19 loose remotes with roughly 178 literal references, fixing missing ReactorScreen and GeneratorMonitor configuration, consolidating the three revive tools, distance-culling 19 DoorEvent broadcast sites, reviewing roughly 1,924 LegacyReview instances and 102 empty folders, and moving FumoSpinner client-side.

I haven't completed these follow-up tasks yet.

Architecture, simulation & earlier system work

GameServer refactor: 1,700-line monolith → 60-line orchestrator

I split a roughly 1,700-line GameServer script into 11 focused modules and a startup script of about 60 lines. I kept the existing behavior, moved shared state into explicit tables, and protected each module's startup so one failure wouldn't stop everything after it.

I moved the loading-screen unlock to the start of boot, fixed a duplicate terminal connection, and made plugin failures report the plugin's name so I could diagnose them.

Startup rewrite: sequential boot → parallel phases

I rewrote the client startup so independent systems can start together. Previously, alarms, prompts, the death screen, and plugins all waited on earlier steps even when they didn't depend on them.

I kept each system's behavior intact while removing those unnecessary waits and reducing the chance of one early failure blocking the whole startup.

Reactor & generator system

I created the entire reactor and generator system for Site Arcadia from scratch.

XP/Level progression & Class-D reputation economy

I built XPService to handle levels 0 to 50 and Class-D reputation, including its effect on shop prices. I cache live data, autosave changed records every 180 seconds, support offline admin updates, and prevent a failed load from overwriting a real save with zeros.

I publish progress through player attributes so the UI can read it without extra remotes. I cap repeated-victim rewards and hourly combat XP to keep departmental work worthwhile. I tuned the curve around roughly 300 XP an hour, with reputation ranks becoming progressively harder to reach.

Hotbar tool-swap race condition (physics-launch bug)

I traced a physics-launch bug to overlapping equip requests fighting over the same grip weld. Rapid hotbar input could attach a tool with another tool's transform and launch or damage the player.

I rebuilt swapping around a request queue that lets only the newest request finish, with a short delay between removing and pulling tools. I kept the existing keybinds, layout, and drag-and-drop behavior.

Suit & armor health system rebuild

I rebuilt the health-bonus tracking for suits, morphs, and armor after finding that re-equipping items stacked bonuses and removing them didn't restore the original health.

I track each equipment slot separately and calculate the combined bonus consistently. I also protect players from being dropped to one HP during recalculation and route locker removal through the same system.

Reliability fixes: Studio testing, doors, admin tools

I fixed Studio startup failures by protecting DataStore calls and using local defaults when Studio doesn't have API access. I kept live-server failure handling separate so testing defaults wouldn't affect real saves.

I fixed door repairs that consumed a crate and then stopped at a missing animation. I also fixed the admin Fly tool by resolving the character's root part instead of confusing an armor item named Torso with the player's body.

Warfronts WWII | Eastern Front 2.7M+ visits

Programming contributor

I did programming work for Eastern Front by Red Bear Community. The game later became Warfronts WWII, which has grown to over 2.7 million visits.

View Warfronts WWII on Roblox View Eastern Front on Roblox

Site-226 | HACF 260.7K+ visits

Former Head Developer

I was Head Developer on Site-226 | HACF by JetReju SCPF. I designed most of the backend systems behind the game.

View Site-226 | HACF on Roblox

Area-59 | RP 18.8K+ visits

Former Head Developer

I was also Head Developer on Area-59 | RP, another game by JetReju SCPF.

View Area-59 | RP on Roblox

91st

Head Developer

I'm Head Developer on 91st. I'll add a closer look at my work here once I've finished writing it up.

Sell Scrap | Scrapocalypse

Owner & Head Developer

Sell Scrap | Scrapocalypse is a Roblox scrapyard tycoon by Idlecore Entertainment, where players claim a yard, collect scrap, and grow it with machines and upgrades. I own the game and lead its development. This update covers the foundations I've built so far, including progression, the collection loop, pets, shops, and the custom interface. The game is in active development and hasn't been released yet.

Active development • Not released yet
Your yard, saved progress & customization

When you join, you claim one of eight yards and keep it for that session. I built the claim system around a shared pool so a full server can give everyone a plot without double claims. Every plot has Repair, Pets, Luckybolts, and Upgrade pads in matching positions, with a themed display behind each one.

Your scrap, cash, gems, energy, pets, equipped pets, purchased machines, and plot upgrade levels come back when you rejoin. Decorations can be unlocked and placed in fixed slots, and I save both your collection and where you've placed them. I built the save format so I can add content later without damaging or resetting existing progress.

Energy also refills while you're away. I account for the time spent offline when you return, so you don't need to leave the game running for it to recover.

Scrap collection, currencies & machines

Scrap spawns around your yard in six tiers: Common, Uncommon, Rare, Epic, Legendary, and Mythic, each with its own colour and value. Walk up to a piece and hold the interact key to collect it. I limit the amount on each plot and across the server so the yards stay readable instead of flooding with props.

The top-left HUD keeps Scrap, Cash, Gems, and Luckybolts visible and updates as the balances change. You can browse the shop's category pages and purchase cards to buy crushers and scanners that improve your yard's production. I check prices and ownership on the server, so client tampering can't hand out machines.

Pets, hatching & inventory

You can collect Sparky, Clicky, Bolt, Rex, Rusty, and Glitch, ranging from Common to Mythic, with bonuses for scrap, cash, or clicks. Pets level up and come in Normal, Golden, and Rainbow variants that multiply those bonuses. Golden and Rainbow pets are visibly larger, and players start with three equip slots.

Equipped pets hover behind you, spread into a row, turn with your movement, and catch up when they fall behind. Everyone in the server can see each other's pets. I built a dedicated inventory that shows every pet's icon, name, rarity, and exact bonus, with controls to equip, unequip, lock, or release it.

The hub has five eggs with separate pet pools and hatch odds. I charge before hatching and automatically refund a failed hatch, so a failed attempt doesn't leave you paying for a pet you never received. Locking a pet also protects it from being released by accident.

Custom interface & pickup feedback

Approaching scrap shows its name, rarity, and value in a custom panel before you pick it up. A toast then shows what you gained. I replaced the default Roblox prompt so collecting scrap feels like part of the same interface as the rest of the game.

The HUD, shop, pet inventory, and interaction panels all use custom art, with navigation along the bottom of the screen. I built them around a consistent style so moving between your yard, shopping, and managing pets feels familiar.

What's next

I'm still working on selling scrap for cash at the sell pad, workers, and themes that change the look of a plot. Daily rewards and limited-time events are also in progress. The pads and displays are placed, but those unfinished systems aren't part of the working feature list yet.

Update changelog

  • Built eight session-owned plots with protection against double claims.
  • Added saved progression for balances, energy, pets, machines, decorations, and plot upgrades.
  • Added six scrap rarity tiers, spawn limits, custom pickup panels, and reward toasts.
  • Built a live four-currency HUD and a shop with server-checked machine purchases.
  • Added six pet types, three variants, leveling, following behaviour, and inventory controls.
  • Added five hub eggs with distinct pet pools and automatic refunds for failed hatches.
  • Added offline energy recovery, saved decoration placement, and matching plot pads.
  • Built custom interface screens; selling, workers, themes, daily rewards, and events remain in progress.

Creations

Upgradeable Industrial Machine Pack

I made 12 industrial props for tycoon and factory games: Scrap Crushers, Metal Smelters, Power Generators and Conveyor Sorters, each with three upgrade tiers. Each tier changes the shape and mechanical detail while keeping a matching placement footprint.

Two editions, each totalling 27,352 triangles. Includes 24 FBXs, Blender source, four shared 1024 × 1024 maps, material-assignment Lua and attachment references. Geometry and FBX reimport checks passed; Roblox Studio imports, collisions and mobile performance are not yet tested.

For sale

Sell Scrap Blender Pets Pet models for Sell Scrap | Scrapocalypse

I modeled these pets in Blender for my game, Sell Scrap | Scrapocalypse. The lineup includes Sparky, Clicky, Bolt, Rex, Rusty, and Glitch. I gave each one its own colours and details, from lightning accents and metal plates to rusty parts and Glitch's bright purple finish.

See my work on Sell Scrap

Blender Scrap Models Collectible models for Sell Scrap | Scrapocalypse

I modeled this scrap collection in Blender for Sell Scrap | Scrapocalypse. It includes the Star Core, Black Hole Shard, Null Core, Admin Hammer Fragment, Experimental Battery, Alien Battery, Quantum Core, and Quantum Gear. I used chunky shapes, metal frames, and bright accents to give each item a distinct look.

Collection totals: 8 props · 6,328 triangles · 52 meshes · 13 shared materials.

More scrap props: colour & wireframe

Another batch I modeled in Blender: the Singing Can, Evil Shopping Cart, Mini Black Hole, Glowing Tire, Radioactive Engine, Two-Headed Toaster, and Floating Fridge. Here are the colour and wireframe views side by side.

Collection totals: 7 props · 7,332 triangles · 57 meshes · 16 shared materials.

See my work on Sell Scrap

Procedural IK Walker Six-legged procedural animation in Roblox

I built this six-legged walker in under 400 lines of code. It follows the player and adapts to the ground beneath it. Raycasts place the feet, an analytical IK solve positions the knees, and the chassis rides on the plane formed by the planted feet.

My procedural walker running in Roblox Studio.

How it works

  • Two-bone IK: I solve each leg with the law of cosines. It is a closed-form calculation with no iteration, so the solve cost per leg stays constant regardless of limb configuration.
  • Raycast foot placement: Each leg probes below its rest target and plants on the surface it finds, letting the rig adapt to stairs, slopes and rubble.
  • Tripod gait: Two alternating groups handle stepping, with a hard budget that keeps at least half the legs grounded. A leg approaching its reach limit can jump the queue.
  • Body plane solve: Average planted-foot height sets the ride height. Differences between front and rear feet, and left and right feet, determine pitch and roll so the chassis banks into slopes.
  • Framerate-independent smoothing: Exponential easing smooths ride height and rotation, keeping the settling response consistent across frame rates.

Running it

Place ProceduralIkWalker.lua in StarterPlayer/StarterPlayerScripts as a LocalScript. It builds its own rig at runtime, with no models or assets required, and follows the local player's character while keeping a standoff distance.

I keep the settings in the CONFIG table at the top. The leg layout is generated rather than hardcoded, so changing LEG_COUNT generates the rig for that count.

The important tuning constraint is reach: the combined limb length needs enough spare reach beyond the rest pose to cover the body's travel between that leg's steps. Without that margin, feet drag instead of stepping.

Why I run it on the client

This is cosmetic animation, so I keep it self-contained in one LocalScript. Each client builds and drives its own rig. Running the six-leg solve on the server would add two CFrame writes per leg per update to replicate to observers without changing a gameplay outcome.

SCP-173 Leaning Keystone

I built this concrete statue from scratch, with a tilted head, uneven limbs, exposed rebar and faded spray paint. I made three separate poses, Idle, Reaching and Lunging, so it can change position between blinks.

Each full pose has 11,880 triangles, with a 3,000-triangle LOD and 1024 × 1024 colour, normal and roughness textures.

For sale

SCP-914 The Clockworks

Here's my take on SCP-914, with its two glass chambers and exposed clockwork mechanism.

In the SCP universe, SCP-914 is a mysterious machine that changes objects placed in its intake booth. Its five settings, Rough, Coarse, 1:1, Fine, and Very Fine, determine how it processes them before they appear in the output booth. The results can be useful, unexpected, or dangerous.

Based on SCP-914 by Dr Gears, SCP Wiki, CC BY-SA 3.0.

For sale

SCP-409

I built this SCP-409 model with 7 parts and 2,766 triangles in total, keeping the geometry light for scenes that use several copies.

In the SCP universe, SCP-409 is a quartz-like crystal that causes crystallization after contact. A fully crystallized subject can shatter, and the fragments spread the effect. Granite is immune, which is why I used it for the base and containment walls.

I made two large milky quartz points standing 9.6 studs tall, surrounded by 49 clear points arranged in rings and tilted outward. The points use irregular hexagonal shapes with pyramid tips. The granite slab and open-top walls are separate, so I can remove or adjust the walls for different setups.

I also made small, medium, and large growth clusters at 0.16, 0.34, and 0.62 scale. They're ready to use as stages of a crystallization effect on objects or characters that touch the crystal.

Based on SCP-409 by Dr Gears, SCP Wiki, CC BY-SA 3.0.

Random Blender Work

Helmet model

Let's Work Together

Have something you'd like me to build, or a system that needs fixing? Email me at kvex@xrel.dev and tell me what you have in mind.

Discord

Reach me in my server or add me directly at xrel for the quickest response.

Join Discord