Skies (Beta)
An arena FPS built around the hardest problem on the platform: authoritative hit registration.

346,760
Lifetime visits
Roblox public game data
4,408
Favourites
Roblox public game data
83.3% positive
Player rating
1,855 up / 373 down votes
20
Players per match
Roblox public game data
Public Roblox figures, captured 18 August 2026. Check them on the game page.
Skies is a 20-player arena shooter with laser weapons, special abilities, and scorestreaks. It launched in October 2021 and has passed 346,000 visits with an 83.3% positive rating.
FPS is the hardest genre to build well on Roblox, for one specific reason.
Hit registration is a trust problem
Every other genre can afford to be strict about client authority. Shooters cannot be, quite. If the server alone decides whether a shot connected, players on higher latency will miss shots that visually landed, and the game feels broken. If the client decides, an exploiter reports a hit on every shot fired and the game genuinely is broken.
The workable position is that the client reports what it believes it hit, and the server independently validates whether that claim was physically possible: was the target within weapon range, was there line of sight, was the shooter's fire rate within limits, is the reported position consistent with recent movement.
A claim that fails validation is discarded. A claim that passes is applied. That gives responsive-feeling combat without handing damage authority to the client, and it is a considerably more involved system than the simple server-authoritative model that works for most genres.
Spawn systems decide whether a match is fun
The published update history flags a rebuilt spawning system as a major change, which matches our experience of the genre. Spawn logic is invisible when it works and ruinous when it does not.
Spawning a player within an enemy's line of fire produces an immediate death and a player who quits. Spawning them too far from the action produces a boring match. Good spawn selection weighs proximity to teammates, distance from enemy sightlines, and recent death locations, and it has to run fast enough to be imperceptible.
Making latency invisible
Validation alone is not enough to make a shooter feel good. If a player has to wait for a server round trip before their weapon fires, the game feels sluggish regardless of how correct it is.
The answer is to let the client act immediately and reconcile afterwards. The muzzle flash, the sound, the recoil, and the projectile all start on the client the instant the trigger is pulled. The server is informed in parallel and returns the authoritative outcome. In the overwhelming majority of cases the two agree and the player never knows a negotiation happened.
When they disagree, the correction has to be handled with some care. Snapping a player's view or rewinding a kill they believe they earned is worse than the inconsistency it fixes. Corrections should be applied to game state rather than to the player's camera, and the player should never be shown a result that is later taken away.
Round lifecycle and match state
An arena shooter is a state machine that has to survive players joining mid-round, leaving mid-round, and disconnecting at arbitrary moments. Every transition, from lobby through active round to scoring and back, needs to be safe against a player count that changes underneath it.
The published update history records the kill limit being raised to 20, which is exactly the kind of change that exercises this. Round length, scoring thresholds, and respawn timing are all interdependent, and adjusting one without the others produces matches that end too early or drag past the point where players stay.
Weapon economy tuning
The game runs an in-match Elixir currency for weapon purchases, alongside scorestreak rewards. The update history records exactly the kind of tuning this demands: weapon prices halved across the board, a specific weapon's fire rate increased, another repriced, the kill limit raised, and scorestreaks made easier to earn.
That is what live balance work actually looks like. None of those values are knowable in advance; they come from watching real matches and adjusting. Building the systems so those numbers are configurable rather than hard-coded is what makes the tuning cycle fast enough to be worth doing.
Where the project stands
Skies was last updated in August 2025 and is not in active development. Its lifetime figures are public and checkable on the Roblox game page. We include it because the hit registration and spawn selection work is the transferable part, and both apply directly to any competitive real-time game on the platform. See our Luau scripting services for how we approach this work.
Want something built to this standard?
Free consultation, honest scope, written quote before anyone commits.
