• v0.2.9 fe9738ca46

    v0.2.9 Stable

    shawn released this 2026-07-06 03:55:26 +00:00 | 0 commits to main since this release

    v0.2.9 - Fixed weapon switching & scale

    🔧 Fixed

    • Weapon switching: Player now uses weapon_next/weapon_prev/weapon_slot_1-4 actions (was checking nonexistent weapon_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
  • v0.2.8 0723b75f7b

    v0.2.8 Stable

    shawn released this 2026-07-06 03:29:44 +00:00 | 1 commits to main since this release

    v0.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 91b878f347

    v0.2.7 Stable

    shawn released this 2026-07-06 03:03:42 +00:00 | 2 commits to main since this release

    v0.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 695e4db5cd

    v0.2.6 Stable

    shawn released this 2026-07-04 03:13:55 +00:00 | 3 commits to main since this release

    v0.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 c5b6b05801

    v0.2.5 Stable

    shawn released this 2026-07-04 02:35:04 +00:00 | 4 commits to main since this release

    v0.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 activation
    • Input.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, and on_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 ef4e4ccb80

    v0.2.4 Stable

    shawn released this 2026-07-04 00:08:04 +00:00 | 5 commits to main since this release

    v0.2.4 — Fix WeaponManager Script Compile Error

    Root cause of all weapon issues: A stray second _rollback_tick function (with spaces instead of tabs) was appended to weapon_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_tick function 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 7bbe4ba71d

    v0.2.3 Stable

    shawn released this 2026-07-03 22:24:33 +00:00 | 7 commits to main since this release

    v0.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, not MeshInstance3D. 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
  • v0.2.2 1ccd26bbab

    v0.2.2 Stable

    shawn released this 2026-07-03 21:48:33 +00:00 | 8 commits to main since this release

    v0.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() and Input.is_action_pressed() to return defaults.

    Fix: Added explicit get_window().grab_focus() calls after connection and server start in lan-bootstrapper.gd.

    Downloads
  • v0.2.1 9901f6a34d

    v0.2.1 Stable

    shawn released this 2026-07-03 21:32:22 +00:00 | 9 commits to main since this release

    v0.2.1 — Fix SCRIPT Error on Windows Client

    The blaster GLB model has a root node type of Node3D, but the WeaponManager variable was typed MeshInstance3D, causing a script error every time a player connected.

    Changes:

    • Fixed _gun_model type from MeshInstance3DNode3D in weapon_manager.gd
    • Added check_models.gd diagnostic script
    Downloads
  • v0.2.0 012d038025

    v0.2.0 Stable

    shawn released this 2026-07-03 21:13:36 +00:00 | 10 commits to main since this release

    v0.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 weapons
    • tests/economy.gd — 19 tests for economy constants and buy thresholds
    • tests/bomb.gd — 15 tests for bomb state machine and timing
    • tests/round_manager.gd — 10 tests for win conditions and elimination
    • tests/team_manager.gd — 8 tests for auto-balance
    • tests/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