Hey everyone,
I’ve been working on this for a while and it’s finally at a point where I’m happy showing it. XSF (Xypher’s Shooter Framework) is a first person shooter framework I wrote from scratch. It can use the ACS 2.0.1 gun models and animations so ACS games can move over easily, but none of the ACS code is used.
What I wanted was guns that feel like they weigh something, and a setup where you can change pretty much anything without digging through 4000 line scripts.
Trailer: XSF: Free FPS Framework for Roblox with Real Ballistics
Docs: XSF Docs: Install and Set Up the Roblox FPS Framework
What it does
Gunplay
- Bullets actually leave the barrel. They have travel time, drop, lose speed, go through wood and can glance off metal at shallow angles
- Recoil you have to fight. Every gun climbs in its own pattern, so you can learn it, and it gets wilder the longer you hold the trigger
- Weapon inertia. Whip your camera around and the gun lags behind and overshoots a bit, strafe and turn and the muzzle leads the turn
- Scopes that work like real ones, with breathing drift and adjustable zero on snipers
- Brass that bounces and settles, tracers, and muzzle flash that lights up whatever’s next to you
Hands and knives
- The fingers close around every gun’s grip, and the support hand holds the foregrip or the magazine
- Knives work like CS2: one handed, left click slashes back and forth, I to inspect, and hitting someone from behind does 4x damage
- No shirt on your avatar? The arms show your skin instead of a weird texture
Movement
- Crouch, prone, lean and slide out of a sprint
- Stamina you hear in your breathing before you see it
- Other players see exactly what you’re doing. Arms reach for the real grip in third person, prone and slides look right, and the gun points where you’re actually aiming
Audio
- Far shots arrive late and lose their crack
- Rooms add reverb, walls muffle, bullets snap past your head
- Footsteps change with the floor you’re walking on
Everything else
- Downed state with crawling, team revives, and dragging a downed teammate to cover
- Flashbangs, frags and smoke that blocks line of sight for everyone
- Hotbar plus a backpack (B) for everything that doesn’t fit on the number keys
- The server checks every hit against a short history of hitboxes, plus fire rate, ammo and range. Shots that don’t add up get thrown out
- R6 and R15
- PC, console (aim slowdown and rumble included) and mobile with proper touch controls
- In game settings menu for FOV, sensitivity, motion, audio and keybinds, saved per player
How configurable is it?
This was the main thing I cared about, and there are two ways to do it.
No code: there’s a dashboard on the site. The first time, it asks four quick questions (what kind of game, how it looks, which guns, which devices), and after that you can change every common setting and each gun’s damage, fire rate, ammo and recoil from the browser. You can save presets and pick which game uses which one.
In Studio: there’s one GameConfig file. Every option is already listed in it with its default, and you only change the lines you want. Anything you change in Studio always beats the website, but only for the things you actually changed.
A working config can literally be this:
return {
Loadout = { "HK416", "USP", "M67" },
}
It ships with the bodycam look on (wide lens, vignette, grain). Want a normal camera instead? One line:
return {
Camera = { Style = "Standard" },
}
Some other stuff you can change from the same file:
return {
Providers = {
Inventory = "RobloxTools", -- or "XSF", or your own ModuleScript
Arms = "ACSClassic", -- or "XSFRealistic", or your own
HUD = "None", -- or "XSFMinimal", or your own
},
Movement = {
Slide = { Enabled = true, Speed = 30, CanShoot = true },
},
Stances = { Prone = false, LeanAngle = 18 },
Downed = { BleedOutTime = 30, ReviveTime = 4 },
Damage = { FriendlyFire = true },
FreeAim = { Enabled = false },
AimAssist = { Slowdown = 0.4 },
}
The inventory, arms and HUD are all swappable. Use the built in ones, pick a different built in option, or point it at your own ModuleScript. If you write your own HUD, the client API gives you every event you’d need.
Weapons are one folder per gun: the model plus a short Config that only lists what’s different from the defaults.
return {
Class = "Rifle",
Fire = { RPM = 800, Modes = { "Auto", "Semi" }, MuzzleVelocity = 880 },
Ammo = { Magazine = 30, Reserve = 90 },
Damage = { Head = 150, Torso = 60, Limb = 38 },
Handling = { Mass = 3.6, AimTime = 0.3 },
Attachments = { Sight = "EOTech", UnderBarrel = "Vertical Grip" },
}
Mass is in kilograms and actually matters. A heavy rifle swings lazier than an SMG without you touching any sway numbers. Recoil, sway, zeroing, falloff and shotgun pellets are all per gun if you want them.
If you already have ACS guns, the download comes with an importer that converts the ACS animations over. Models and attachments carry across as they are.
NPCs can use it too. Give any Humanoid an XSF_Weapon attribute and they hold the gun properly, get shot and ragdoll.
There’s also a server API (XSF.SetLoadout(player, {...}) and friends) for per team or per class loadouts, and a client API for your own UI and menus.
What’s included
- 20 weapons: HK416, M4A1, AK-47, HK33, MP5, Vector, Remington 700, AWM, Remington 870, Glock 17, USP, Desert Eagle, five knives and three grenades
- 16 attachments (sights, suppressors, grips, lasers, lights) plus 4 ammo types, all changeable in game from a loadout screen
- Want to try it before installing? Play the showcase: XSF Showcase | Play on Roblox
Getting it
It’s free, including in games that make money, and nothing gets drawn on your players’ screens.
Right now I’m letting people in through a waitlist so I can fix problems in small groups instead of all at once. Sign up with Discord or your email and you’ll get an email when your spot comes up. Once you’re in, you answer the four setup questions and download your copy:
It’s only published on that site. I’m not putting it on the Toolbox, so if you see a copy anywhere else it didn’t come from me and I’d be careful with it.
Feedback
Bug reports with a short clip or your output log get fixed fastest. You can reply here or join the Discord.
Let me know what you think, and if there’s something you’d want configurable that isn’t yet, tell me. That’s exactly the kind of feedback I’m looking for.
About XSF (official facts and links)
XSF (Xypher’s Shooter Framework) is a free, original first person shooter framework for Roblox, made by me (Xypher). The code is written from scratch. It supports the public ACS 2.0.1 gun models and animations so ACS games can switch without remaking their guns, but none of the ACS scripts are used. The ballistics, server hit checks, recoil, hands, knives, hotbar, menus and the website dashboard are all XSF’s own.
- Current version: 1.3.0 (October 3, 2026). First release: 1.0.0 (September 25, 2026)
- Free, including in games that earn Robux
- Only official download: https://xsfshooter.vercel.app (never on the Toolbox)
- Docs: XSF Docs: Install and Set Up the Roblox FPS Framework
- Facts page: About XSF: Facts About the Roblox FPS Framework
- Official trailer: XSF: Free FPS Framework for Roblox with Real Ballistics
- Discord: XSF Community
- Showcase game: XSF Showcase | Play on Roblox
Videos, models or posts elsewhere that use the XSF name aren’t made by me unless the site above links to them.









