Repository navigation
Releases: afterhours-crew/afterhours-2015
Release list
Afterhours 0.4.1
Afterhours 0.4.1 stops old session logs from piling up in your data folder.
Download Afterhours-windows-x64.zip below, extract it and place Afterhours.exe beside NFS16.exe, replacing the old one. Close the game and Afterhours first. Your saves in %LOCALAPPDATA%\Afterhours2015 carry over; back that folder up before trying a new version.
Fixed
- Old sessions no longer pile up. Each session left its logs and recording behind forever. Now, when a session starts, only the newest 20 sessions are kept, and older session logs and recordings are removed. Your current session, saves, account and settings are never touched. To keep a session longer, copy its folder from
%LOCALAPPDATA%\Afterhours2015\artifacts\launchersomewhere else. (#152)
Known limits
- Traffic stops at 3x. At 5x the game itself crashed: it has a fixed limit of about 45–50 AI cars around one player. Higher traffic also costs some performance.
- Rivals and traffic belong to each player. Sharing them between players in one world isn't there yet (#131).
- No cops yet.
This is an early tester release, not the complete game. It needs the supported, previously activated 64-bit Windows installation (EA or Steam) and does not activate the game. No game content is distributed.
For feedback, include the release version, what you did, what happened and what you expected. Check logs for personal information before sharing them, and never upload game files, saves or activation credentials.
Afterhours 0.4.0
Afterhours 0.4.0 fills free roam with traffic and roaming rivals, and lets you choose how much of each, even while you play.
Download Afterhours-windows-x64.zip below, extract it and place Afterhours.exe beside NFS16.exe, replacing the old one. Close the game and Afterhours first. Your saves in %LOCALAPPDATA%\Afterhours2015 carry over; back that folder up before trying a new version.
Added
-
Traffic in free roam. Ambient cars drive Ventura Bay as in the original game. They appear out of sight, follow the roads, react to you and leave once you're gone. (#132)
-
Roaming rivals. Rival racers roam the city and are handed to the game as real cars when you get close, about 800 m away. They show on the map. (#132)
-
Choose the amount of traffic and rivals. Traffic can be off, the game's own amount, or 2x or 3x. Rivals can be 0 to 15, or the game's own number. Above the game's own, other rivals from the game join near you. Open a terminal in the game folder and run, for example:
.\Afterhours.exe settings --traffic 200 --rivals 10--trafficis a percentage from 0 to 300, where 100 is the game's own amount;--rivals originalgoes back to the game's own number of rivals. Your choice is saved and used every time you start. (#132, #123, #136) -
Changes apply while you play. Run the same command in a second terminal during a session: the game picks the change up within about a second, with no restart. More traffic fills in as you drive; less lets cars leave once they're out of sight. (#136)
-
New commands. None of them changes your save.
profileshows your driver: REP, bank, stats, garage and every car you own, named as in your game's language. (#123)sessionslists past sessions with their logs, warnings and any crash dumps. (#123)car-imagescopies each car's picture out of your own installation into your data folder. Nothing is downloaded or shipped. (#133)playstarts the game inside a runningservesession, so you can host first and join later. (#123)--jsonon every command,version --jsonand--eventsprint a documented, versioned format for tools to read. The schemas ship with each release. (#123)
Changed
serveon Windows is ready to host the game. It runs the same checks asstart, so it refuses while the EA app or the game is running. Useserve --server-onlyfor the old server-only behaviour. (#123)status --jsonprints{"version": 1, "session": …}instead of a bare status. This only matters if you read it from a script. (#123)
Fixed
- Logs keep their end. A session log used to stop at 4 MiB, losing the last part of a long session, where a crash shows. Now, once a log is full, its oldest part is removed, and a line at the top says how much. (#135)
- Startup no longer fails when one of the game's threads ends while Afterhours is preparing the game's connection; it retries instead. (#122)
Known limits
- Traffic stops at 3x. At 5x the game itself crashed: it has a fixed limit of about 45–50 AI cars around one player. Higher traffic also costs some performance.
- Rivals and traffic belong to each player. Sharing them between players in one world isn't there yet (#131).
- No cops yet.
This is an early tester release, not the complete game. It needs the supported, previously activated 64-bit Windows installation (EA or Steam) and does not activate the game. No game content is distributed.
For feedback, include the release version, what you did, what happened and what you expected. Check logs for personal information before sharing them, and never upload game files, saves or activation credentials.
Afterhours 0.3.0
Afterhours 0.3.0 is the first release with a downloadable Windows terminal bundle for local single-player testing in Need for Speed (2015).
Download Afterhours-windows-x64.zip from the assets below, extract it, and place Afterhours.exe beside NFS16.exe in your game folder. Close the EA app and any running game, then double-click Afterhours.exe as an ordinary user. Keep the terminal open while playing and wait for Ready to play before pressing Space in the game.
NOTE: This works with both the EA and Steam versions of the game. As long as you own them.
Included in this release:
- One executable containing the launcher and local server, with the Afterhours icon embedded.
- Clear, colored setup and activation messages, including each content-extraction stage and cache reuse.
- New tester accounts start at REP level 69 with $10,000,000. Existing saves retain their level, balance and progression.
- Car buying, secondary-car selling, active-car selection, five garage slots, and warehouse storage, retrieval and swaps with persistent customization.
- Existing free-roam REP progression, unlocks and garage customization support.
- Windows process supervision and cleanup, including the File Explorer startup fix.
The first launch extracts data from your installed game; updates may rebuild the generated cache. Saves and logs remain in %LOCALAPPDATA%\Afterhours2015. Close the game and Afterhours before replacing an older executable, and back up that data directory before testing a new version.
This is an early tester release, not the complete game. It requires the supported, previously activated 64-bit Windows PC installation and existing EA registration/license cache. Afterhours does not activate the game. If EA's activation window appears, complete it there; connectivity may be required. The currently unsupported prologue is skipped for new local drivers. No game content is distributed.
The ZIP includes Afterhours.exe, the quickstart, licenses and build information. SHA256SUMS.txt verifies the ZIP; build-info.json identifies the exact source revision and executable hash.
Local validation includes all 1,627 workspace tests, formatting, Clippy, package smoke checks, all seven embedded icon sizes, and isolated setup/cache/save-preservation checks. Car and warehouse gameplay acceptance is documented separately; broader gameplay and fresh-install activation independence remain outside this release's established scope.
Quickstart · Car ownership and warehouse support · Gameplay roadmap
For feedback, include the release version, the terminal's last step, what happened and what you expected. Review logs for personal information before sharing; do not upload game files, saves or activation credentials.
Contributor checkpoint: car ownership and warehouse storage
This source-only contributor checkpoint completes car ownership and garage management (#52), including warehouse storage and retrieval (#98). It contains PR #97 and its test-isolation follow-up #102, merged on main at c750e65.
Included
- Purchases with installed prices, distinct stock inventories and the five-slot garage limit.
- Active-car selection with persistent, separate paint, parts and tuning for each car.
- Secondary-car sales with atomic cash credit, slot clearing and removal of the car's owned parts; account-owned wraps remain available.
- Warehouse transfer, retrieval and occupied-slot swaps that preserve car identity, inventory and cash. The local capacity policy is 100 stored cars.
- Correct stock light/spoiler construction, Participant authorization and deletion-only replication, plus isolated Windows test fixtures.
Validation
Formatting, Clippy and 1,612 canonical workspace tests pass. Hosted Linux/Windows workspace and network-feature checks, plus Windows launcher tests, pass on the final repair PR head and the merged release commit. Private reference checks cover all 54 eligible installed stock-car offers, recorded garage commands, and 100 stored plus five garage cars within bounded inventory limits.
Live checks cover purchases, two sales without disconnecting, freed-slot reuse, five-slot capacity, active selection and separate customization through game/server restart. Warehouse checks stored and retrieved the customized MX-5, bought a Volvo 242 into the freed slot, and swapped the stored car into an occupied slot. A fresh game/server restart restored both stored cars; retrieving and selecting the MX-5 restored its green wrap. All 350 owned records, including installed parts and tuning, and cash remained unchanged through warehouse operations and restart. Both final runs exited normally. The owner accepted the milestone and authorized this release.
Build and limits
No executables, game content, profiles or credentials are distributed. Build from source with the pinned toolchain and documented prerequisites:
- Build and launch instructions
- Car ownership, warehouse behavior and validation
- Garage customization
- Gameplay roadmap
The supported installation and its documented activation prerequisites remain required. This does not establish fresh-install or activation-independent operation. Live coverage includes six car models, not every offer; capacity100, retries, hostile requests and concurrent-account behavior have automated coverage. Stock garage fade timers remain unchanged, as documented in #96. Other gameplay systems retain their own acceptance gates.
Work stops at this checkpoint at the owner's request. GitHub source archives are the only release assets.
Contributor checkpoint: free-roam REP and unlocks
This source-only contributor checkpoint completes free-roam REP and unlocks (#50), including the remaining reward and purchase-offer checks in #92. It contains merged PR #89 at 2f9db3c.
Included
- Server-owned driving scores, durable REP, installed level thresholds and transactional unlocks.
- Installed nitrous fuel/recharge and handling configuration, bounded input timing, and replicated airborne state.
- Installed wrap rewards at levels 51–60 and decal rewards at levels 61–70, with duplicate prevention and restart persistence.
- Immediate replacement offers after eligible part purchases, preserving the purchased item and single debit.
- Windows SQLite path normalization for concurrent writers and activation-helper path handling.
Validation
Formatting, Clippy and 1,584 canonical workspace tests pass, with Linux/Windows CI and Windows launcher tests. Independent reference checks cover 18 nitrous configurations, recorded airborne movement, 40 reward threshold cases and notification bytes.
Owner-confirmed live checks cover nitrous behavior, airtime, overlapping popups and multiplier stacking; earned level crossings; same-session buying/fitting; and retained REP, parts and decal after game/server restart. A test account prepared one point below level 61 earned that crossing and received a usable decal. A level-3 tire purchase delivered a replacement offer 200 ms after the purchase reply without another REP credit. Both item identities persisted. Both final game sessions exited normally.
Build and limits
No executables, game content, profiles or credentials are distributed. Build from source with the pinned toolchain and documented prerequisites:
The supported installation and its documented activation prerequisites remain required. This does not establish fresh-install or activation-independent operation. The owner accepted the existing activation wait; prolonged-wait cancellation was not newly verified. Individual reward presentation is not exhaustively covered. Daily challenges, police and crew-dependent progression remain separate systems. The menu's Jump to Garage observation is tracked under #61; direct garage entry worked.
Next priority is car ownership and garage management (#52), already assigned to the owner. GitHub source archives are the only release assets.
Contributor checkpoint: garage customization and Rust launcher
This source-only development milestone completes garage upgrades/customization and the Rust command-line launcher checkpoint at 4417d08a84f2424d3fdf656d345d207c52f384c1.
Included
- Garage upgrades and customization (#49, #81): durable performance/visual purchases and equipment, exact debits, handling and stance, paint, tint, plates, rims, supported body kits, local wraps, stock resets and nitrous transitions. Tested changes persist through free roam, garage return and restart.
- Rust launcher (#79, #84): build and start the local server/game from this repository without private runtime scripts or runtime administrator access. The CLI replaces the PowerShell launcher and provides setup, status, stop, recovery and server-only operation. JSON results remain separate from diagnostics; interrupted supervisors report failure and owned Windows processes are cleaned up.
- Development diagnostics (#82): visible, bounded warnings for received LSX/backend/world operations that are not handled, with raw recording off by default.
Build and run
No binaries, game content, profiles or credentials are distributed. Compile nfs-server and nfs-afterhours from source using the pinned Rust toolchain and documented native build prerequisites.
A supported, legitimately installed game and its documented registration/activation prerequisites remain required. This does not establish fresh-install or activation-independent operation.
Validation and limits
Local formatting, Clippy and 1,344 workspace tests passed. PR #84 passed Linux and Windows workspace CI plus Windows launcher tests. Live Windows checks cover the documented garage scope, launcher cleanup, fresh local setup, crash/recovery, saved-game restart and continuation after owner-completed activation.
The owner accepted this checkpoint with these live checks explicitly untested:
- Activation waiting beyond the startup timeout, visible activation-state reporting and cancellation while the dialog is open.
- Cold disconnected startup/restart through the Rust CLI; earlier PowerShell results do not establish this.
- Real Linux setup/serve using installed game content, including orphan/status behavior after a supervisor crash. CI coverage is separate.
Garage completion covers the documented combinations, not every catalog item or measured slider effect. The previously reported long purchase delay was not reproduced. Multi-car ownership/selling and story-gated unlocks belong to later roadmap items.
Next priority: free-roam REP earning and unlock progression (#50), followed by one complete event (#51). Full story, traffic/AI, police and multiplayer remain future work.
No binary assets are attached; GitHub's source archives identify this contributor checkpoint.
Contributor checkpoint: local PowerShell launch and garage/free-roam loop
This source-only checkpoint marks the merged contributor-ready PowerShell launch path at commit 5afba49d557451266d4dd40319c05cbabddf8122 (PR #48).
- Build all runtime components from this public repository. No private scripts, copied profiles, bundled game content or server binaries are required or supplied.
- Start a local server and the supported installed game from one PowerShell script without administrator privileges or the EA app running.
- Create an independent local account, reach the garage/free roam, display the driving HUD and own-car minimap marker, and repeat the garage return loop.
- Keep visible logs and clean up the owned game/server processes when the session ends.
Start with the build and run instructions. They document the Rust/MSVC/Perl/NASM prerequisites, supported installation hash, setup, logs and recovery.
Validation includes the documented local game runs, a user-reported cold reboot with networking disconnected (existing account twice and a fresh local account once), and the workspace's format, Clippy and 1,108 automated tests. Installed registration and valid activation state remain required; this is not fresh-install or activation independence.
This is a development milestone, not complete game support. Purchase/equip persistence, earned cash/REP, complete events and rewards, AI/traffic/police, story progression and multiplayer remain unfinished. The ongoing garage-upgrade changes are not included in this release.
No binary assets are attached. GitHub's source archives identify this checkpoint for further development.