Alpha v0.19 - Steam Integration and Achievements
Usurper Reborn v0.19.0-alpha - Steam Integration
Release Date: February 2026
This release adds Steam platform integration, fixes several achievement tracking bugs, resolves a team system issue, and improves BBS door mode error handling.
Steam Platform Support
Usurper Reborn now supports Steam integration for achievement syncing and stats tracking.
Features
- Steam Build Configuration - The project now supports conditional compilation for Steam builds. Use
dotnet build -c Steamordotnet publish -c SteamReleaseto create Steam-enabled builds. - Steamworks.NET Integration - When compiled with STEAM_BUILD flag and launched through Steam, achievements automatically sync to your Steam profile.
- 47 Steam Achievements - All in-game achievements now sync to Steam when playing through the Steam client.
- Steam Stats API - Player statistics are tracked via Steam's stats system.
- Graceful Fallback - The game works identically when not launched through Steam. Achievements are still tracked locally.
Building Steam Version
# Steam build (development)
dotnet build usurper-reloaded.csproj -c Steam
# Steam release (self-contained)
dotnet publish usurper-reloaded.csproj -c SteamRelease -r win-x64 --self-containedAchievement System Fixes
Several achievements were not being tracked correctly. This release fixes all known achievement tracking issues.
Fixed Achievements
- treasure_hunter - Chests opened are now properly tracked when opening treasure chests in dungeons
- secret_finder - Secret discoveries now tracked when finding hidden passages and secret rooms
- social_butterfly - New friendships now tracked when relationship crosses friendship threshold
- flawless_victory - Fixed detection logic that was checking total lifetime damage instead of damage taken in the current combat
- easter_egg_1 - Added hidden trigger in Dark Alley (press X to examine the shadows)
Achievement Audit
A comprehensive audit was performed on all 47 achievements to ensure they are all achievable and properly tracked.
Team System Bug Fix
Fixed a significant bug where joining a gang through a street encounter would result in an empty team with no NPC members.
The Problem
When a player was approached to join a gang (e.g., "Blood Ravens") in the Dark Alley, they could accept and join, but the team would have no other members. This occurred because the gang names were hardcoded strings that didn't correspond to any actual teams in the game world.
The Fix
- Gang encounters now use actual existing teams from the world simulation
- When joining, players receive the real team password from existing members
- The team's member list is properly updated to include the player
- If no eligible teams exist, the gang politely declines to recruit
BBS Door Mode Improvements
Improved error handling and guidance for BBS sysops using FOSSIL drivers.
FOSSIL Driver Limitation
.NET applications cannot use traditional FOSSIL drivers because FOSSIL relies on DOS INT 14h interrupts that .NET cannot access. When serial/FOSSIL mode fails, the game now displays a clear explanation and solution.
New Error Message
When FOSSIL mode fails, users now see:
SERIAL/FOSSIL MODE FAILED
.NET applications cannot use traditional FOSSIL drivers.
FOSSIL uses DOS INT 14h interrupts which .NET cannot access.
SOLUTION: Use --stdio flag for Standard I/O mode:
UsurperReborn --doorsys "path/to/door.sys" --stdio
Configure your BBS to redirect stdin/stdout to the door.
EleBBS Users
For EleBBS and other FOSSIL-based BBS software, configure the door to use Standard I/O mode and add the --stdio flag to the command line.
Test Suite Improvements
The test suite has been streamlined and made more reliable.
Changes
- Removed redundant validation tests that were duplicating unit test coverage
- Fixed flaky
CastSpell_ReturnsResulttest by setting spell proficiency to Legendary (0% failure chance) for deterministic behavior - Test suite now contains 212 focused, passing tests
- All tests run deterministically with no random failures
Technical Changes
Files Added
Scripts/Systems/SteamIntegration.cs- Steam API wrapper with conditional compilationsteam_appid.txt- Steam App ID for development testing
Files Modified
usurper-reloaded.csproj- Added Steam build configuration and Steamworks.NET package referenceConsole/Bootstrap/Program.cs- Steam initialization and shutdown callsScripts/Systems/StreetEncounterSystem.cs- Team system bug fixScripts/Systems/StatisticsSystem.cs- Achievement stat tracking methodsScripts/Systems/AchievementSystem.cs- Steam achievement unlockingScripts/Locations/DarkAlleyLocation.cs- Easter egg implementationScripts/Locations/DungeonLocation.cs- Chest and secret trackingScripts/Systems/RelationshipSystem.cs- Friendship trackingScripts/Systems/CombatEngine.cs- Flawless victory fixScripts/BBS/DoorMode.cs- Improved FOSSIL error handlingScripts/BBS/SerialTerminal.cs- FOSSIL error messagingTests/SpellSystemTests.cs- Deterministic spell test
Upgrade Notes
- Save files from v0.18 are compatible with v0.19
- Steam achievements will not retroactively unlock for progress made before v0.19
- If using BBS door mode with FOSSIL, switch to
--stdioflag
Known Issues
- Steam achievements only sync when the game is launched through the Steam client
- BBS FOSSIL mode is not supported (use
--stdioflag instead) - Some edge cases in combat may cause unexpected behavior
Download
- Windows (x64): usurper-reborn-win-x64.zip
- Windows (x86): usurper-reborn-win-x86.zip
- Linux (x64): usurper-reborn-linux-x64.zip
- Linux (ARM64): usurper-reborn-linux-arm64.zip
- macOS (Intel): usurper-reborn-osx-x64.zip
- macOS (Apple Silicon): usurper-reborn-osx-arm64.zip
Full Changelog
See the README for complete feature list and documentation.
Report bugs: https://discord.gg/EZhwgDT6Ta or GitHub Issues