-
v0.2.9 Stable
released this
2026-07-06 03:55:26 +00:00 | 0 commits to main since this releasev0.2.9 - Fixed weapon switching & scale
🔧 Fixed
- Weapon switching: Player now uses
weapon_next/weapon_prev/weapon_slot_1-4actions (was checking nonexistentweapon_toggle) - Q key: Added Q as keyboard bind for weapon_next
- Weapon scale: Reduced from 0.3x to 0.07-0.08x (was still too large)
- Mouse wheel: Weapon switching via scroll wheel now works
- Number keys: 1-2 to select weapons directly
Downloads
- Weapon switching: Player now uses
-
v0.2.8 Stable
released this
2026-07-06 03:29:44 +00:00 | 1 commits to main since this releasev0.2.8 - Weapon position/scale fix
🔧 Fixed
- Weapon size: Reduced scale 10-13x (models were using OBJ native size, way too big)
- Weapon position: Adjusted on-screen position for each weapon type
- Switched to GLB imports: GLB files have proper pivot points vs broken OBJ offsets
- Fixed Revolver: Had a corrupted OBJ with misplaced pivot
⚙️ Default loadout
- Pistol + Rifle, press Q or mouse wheel to swap
Downloads
-
v0.2.7 Stable
released this
2026-07-06 03:03:42 +00:00 | 2 commits to main since this releasev0.2.7 - Quaternius Weapons & Bug Fixes
✨ New
- 6 Quaternius weapon models added: Pistol, Revolver, Rifle, Shotgun, P90, SniperRifle
- Weapons use OBJ imports with proper balanced stats
- Player starts with Pistol + Rifle (Q/mouse wheel to swap)
🐛 Bug Fixes
- WASD movement — Input map action names now match the player script
- Escape key — Now properly toggles mouse capture on/off
- Weapon sounds — Added Audio autoload singleton, fixed all broken sound asset paths
- Scene paths — Fixed all ext_resource text paths for assets nested under assets/kenney-fps/
- Import paths — Fixed all .import source_file paths
🗑️ Housekeeping
- Removed stale .import files (will regenerate on editor open)
Note: Open the project in the Windows editor to trigger full asset reimport + UID rebuild.
Downloads
-
v0.2.6 Stable
released this
2026-07-04 03:13:55 +00:00 | 3 commits to main since this releasev0.2.6 — Input Diagnostics via Window Title
Added real-time input state display in the window title bar. When the game is running, the title will show:
TS [mv=0.0,0.0] [sl=0,0,0,0] [fire=0]- mv: Input.get_axis() values for horizontal (west/east) and vertical (north/south) — should go non-zero when pressing WASD
- sl: Weapon slot button states (1-4)
- fire: Fire button state
If the values never change from 0 when pressing keys, the issue is that keyboard events never reach the Godot Input singleton (likely a window focus issue on Windows GUI exports). If they DO change but the character still doesn't move, the issue is in the rollback/network layer.
Also includes all fixes from v0.2.1-v0.2.5.
Downloads
-
v0.2.5 Stable
released this
2026-07-04 02:35:04 +00:00 | 4 commits to main since this releasev0.2.5 — OS-Level Window Focus Fix
Problem: Keyboard input (WASD, weapon keys, Escape) stopped working after the connection UI was dismissed. Mouse look still worked. The root cause was the game window not holding keyboard focus on Windows GUI exports.
Fix: Replaced
get_window().grab_focus()with:OS.move_to_foreground()— OS-level window activationInput.set_mouse_mode(CAPTURED)— ensures mouse capture + focus- Deferred retries via
call_deferred()— handles race conditions
The same fix is applied in all paths:
join(),on_client_start, andon_server_start.Also included:
- v0.2.4: Fixed WeaponManager compile error (duplicate function broke all weapons)
- v0.2.3: Removed is_predicting() gate + client-side loadout init
- v0.2.2: Initial window focus attempt
- v0.2.1: Blaster type annotation fix
Downloads
-
v0.2.4 Stable
released this
2026-07-04 00:08:04 +00:00 | 5 commits to main since this releasev0.2.4 — Fix WeaponManager Script Compile Error
Root cause of all weapon issues: A stray second
_rollback_tickfunction (with spaces instead of tabs) was appended toweapon_manager.gd, causing the ENTIRE script to fail compilation. The WeaponManager node had NO script attached at runtime.has_method(\"set_default_loadout\")→ false → loadout never initialized- All weapon operations silently did nothing (no gun visible, no switching, no firing)
- Player movement still worked (handled in player.gd, not weapon_manager.gd)
Changes in this release:
- Removed duplicate
_rollback_tickfunction from weapon_manager.gd - Removed
is_predicting()gate (from v0.2.3) so weapon actions process on client - Client-side loadout init (from v0.2.3) so weapons available immediately
- Window focus grab (from v0.2.2) so keyboard input works
v0.2.3 was broken — the compile error was already present, making all v0.2.3 weapon fixes dead code. This release actually contains the working fixes.
Downloads
-
v0.2.3 Stable
released this
2026-07-03 22:24:33 +00:00 | 7 commits to main since this releasev0.2.3 — Fix Weapons on Client
Three issues fixed across v0.2.1–v0.2.3:
v0.2.1 — Blaster model type error
Blaster GLB root type was
Node3D, notMeshInstance3D. Fixed type annotation.v0.2.2 — Keyboard input (v0.2.2)
Window wasn't holding keyboard focus after connection UI was hidden. Added
get_window().grab_focus()calls.v0.2.3 — Weapons (this release)
- Removed
is_predicting()early-return in weapon_manager._rollback_tick that blocked all weapon actions on the client (the player is owned by the server, so the client often enters prediction mode on early ticks) - Added client-side weapon loadout initialization in player-spawner so the player has weapons immediately — no need to wait for server state sync
- Server still reconciles weapon state via normal rollback
Downloads
- Removed
-
v0.2.2 Stable
released this
2026-07-03 21:48:33 +00:00 | 8 commits to main since this releasev0.2.2 — Fix Keyboard Input on Windows
Mouse look worked but keyboard input (WASD, Escape, weapon switching) did not. The root cause was the game window not holding keyboard focus after the connection UI was dismissed, causing
Input.get_axis()andInput.is_action_pressed()to return defaults.Fix: Added explicit
get_window().grab_focus()calls after connection and server start inlan-bootstrapper.gd.Downloads
-
v0.2.1 Stable
released this
2026-07-03 21:32:22 +00:00 | 9 commits to main since this releasev0.2.1 — Fix SCRIPT Error on Windows Client
The blaster GLB model has a root node type of
Node3D, but theWeaponManagervariable was typedMeshInstance3D, causing a script error every time a player connected.Changes:
- Fixed
_gun_modeltype fromMeshInstance3D→Node3Din weapon_manager.gd - Added
check_models.gddiagnostic script
Downloads
- Fixed
-
v0.2.0 Stable
released this
2026-07-03 21:13:36 +00:00 | 10 commits to main since this releasev0.2.0 — Kenney Assets + Full Test Suite
New Assets (CC0 from Kenney Starter Kit FPS)
- Blaster gun model — replaces placeholder box mesh
- 11 sound effects — blaster fire, impacts, footsteps, jumps, weapon change
- New crosshair, hit marker, muzzle flash, skybox sprites
- Lilita One UI font
Test Suite (100 unit tests + 4 integration scenarios)
tests/weapon_data.gd— 27 tests for all 6 weaponstests/economy.gd— 19 tests for economy constants and buy thresholdstests/bomb.gd— 15 tests for bomb state machine and timingtests/round_manager.gd— 10 tests for win conditions and eliminationtests/team_manager.gd— 8 tests for auto-balancetests/headless_test_bot.gd— integration bot (movement/idle/rounds)tests/run_multi_bot.sh— multi-client launcher
Fixes carried from v0.1.x
- Server clock no longer resets on NetworkTime.start() (fixes -1.78B offset panic)
- Clients skip spawning peer 1's avatar (no duplicate)
- netfox typed array patches for Godot 4.7
- Dev server IP baked in (192.168.0.127:34197)
Downloads