================================================================================
                            DART for SpeedRunners 2
================================================================================

DART is an all-in-one community mod for SpeedRunners 2.

Features include:
• 0 input delay rollback
• Custom ranked queue
• 3D custom skins
• Challenges
• Savestates
• Performance & visual options
• HUD overlays
• ...and much more.

================================================================================
INSTALL
================================================================================

1. Extract this ZIP to a permanent folder.
   Example:
   Documents\DART\

   IMPORTANT:
   Do NOT run DART directly from inside the ZIP.

2. Double-click:
   installer.bat

3. Launch SpeedRunners 2 through Steam.

4. Open the DART menu in-game using:
   • INS
   • F2
   • Shift + P
   • The ingame menu option "DART"

DART checks for updates every time the game starts. When a new version is
found, the game shows an update screen and closes; the update is applied
right after it closes. Start SpeedRunners 2 again and you are on the new
version. You never need to run the installer again unless you reinstall
(installer.bat also applies a pending update by hand if that ever fails).

LINUX (Steam / Proton): open a terminal in this folder and run
   bash linux/install.sh
See linux/README.txt for requirements (.NET runtime) and the Linux uninstaller.

================================================================================
UNINSTALL
================================================================================

Run:

    uninstaller.bat

Choose one of the following:

[1] Remove DART only (keep SpeedRunners 2 installed)

[2] Remove DART and uninstall SpeedRunners 2 from Steam

The uninstaller automatically:

• Closes SpeedRunners 2 if it's running
• Removes DART's automatic updater
• Restores the original game files
• Deletes DART save data
• Removes the DART installation folder

================================================================================
LINK WITH DISCORD
================================================================================

1. Open the DART menu.
2. Go to the "Dart Circuit" tab.
3. Press "Copy Steam ID".
4. In the community SpeedRunners 2 Discord

   /link <your Steam ID>

• https://sr2.community/
• https://discord.me/speedrunners2
• https://dsc.gg/speedrunners2
• https://discord.gg/gxUs9xTk8X
================================================================================
ANTIVIRUS / WINDOWS DEFENDER
================================================================================

DART is an open-source game mod. Because its installer patches SpeedRunners 2's
files and keeps itself updated, some antivirus tools (including Windows
Defender) may show a false-positive warning. DART contains no malware.

If Windows blocks or deletes a DART file:

1. If SmartScreen shows "Windows protected your PC":
   click "More info" -> "Run anyway".

2. If Defender quarantined a file, restore it:
   Windows Security -> Virus & threat protection -> Protection history ->
   select the DART item -> Allow / Restore.

3. Optional: add your DART folder as an exclusion:
   Windows Security -> Virus & threat protection ->
   Manage settings -> Add or remove exclusions -> Add a folder.

You can verify DART is open source and report a false positive at
https://sr2.community/ or in the community Discord.

src\DART.exe is a plain .NET program: the standard Microsoft application
host, with DART.dll, the Mono.Cecil library and the .NET runtime files next
to it (nothing has to be installed). The exe is byte-identical across
releases, so an allow entry keeps working. Its SHA-256 (check with:
certutil -hashfile src\DART.exe SHA256):
A991453F3A61F6D2AB0864AECE99E2C8964945CC93666D6027E960DFB85CD5BA

Since 2.6.128 DART no longer runs hidden PowerShell scripts: the in-game
updater downloads new versions itself and applies them with DART.exe.

--------------------------------------------------------------------------------

Game progress (XP / unlocked characters) got reset?
--------------------------------------------------------------------------------

SpeedRunners 2 keeps all progress in ONE file:
  %USERPROFILE%\AppData\LocalLow\tinyBuild LLC\SpeedRunners 2 King of Speed\SaveData
If the game is closed while it is writing that file (crash, forced quit), the
file can end up empty and the game silently starts a fresh save next time.

DART now (1) waits for the save to finish before any quit and (2) keeps rolling
backups of your SaveData every time the game starts, in:
  %USERPROFILE%\AppData\LocalLow\tinyBuild LLC\SpeedRunners 2_ King of Speed\DART\savebackups\
(the newest 6 plus the largest one ever seen). To restore: close the game, copy
the backup you want over the SaveData file above (remove the -date.bak part of
the name so it is called exactly SaveData), then start the game. If Steam asks
about a cloud conflict, keep the LOCAL file.

NOTE: backups start with DART 2.6.137 - progress lost before that cannot be
recovered by DART.

--------------------------------------------------------------------------------

Steam: "Failed to start process for this game:
        An Application Control policy has blocked this file." (0x11C7)
--------------------------------------------------------------------------------

This is Windows 11 SMART APP CONTROL refusing to run the game's own
SpeedRunners 2.exe, which tinyBuild ships WITHOUT a digital signature (every
other file in the game folder is signed). It happens with or without DART,
usually right after a game update (new exe = no reputation yet). DART never
touches that file and cannot fix it.

What works:
 - Try again / reboot: Windows re-checks the file and often allows it.
 - Turn Smart App Control off:
   Settings -> Privacy & security -> Windows Security -> App & browser control
   -> Smart App Control settings -> Off
   (Windows will not let you turn it back on without reinstalling Windows.)

The real fix is for tinyBuild to code-sign SpeedRunners 2.exe - please report
it to them too. Smart App Control can also block src\DART.exe (see above).

--------------------------------------------------------------------------------

Game progress (XP / unlocked characters) got reset?
--------------------------------------------------------------------------------

SpeedRunners 2 keeps all progress in ONE file:
  %USERPROFILE%\AppData\LocalLow\tinyBuild LLC\SpeedRunners 2 King of Speed\SaveData
If the game is closed while it is writing that file (crash, forced quit), the
file can end up empty and the game silently starts a fresh save next time.

DART now (1) waits for the save to finish before any quit and (2) keeps rolling
backups of your SaveData every time the game starts, in:
  %USERPROFILE%\AppData\LocalLow\tinyBuild LLC\SpeedRunners 2_ King of Speed\DART\savebackups\
(the newest 6 plus the largest one ever seen). To restore: close the game, copy
the backup you want over the SaveData file above (remove the -date.bak part of
the name so it is called exactly SaveData), then start the game. If Steam asks
about a cloud conflict, keep the LOCAL file.

NOTE: backups start with DART 2.6.137 - progress lost before that cannot be
recovered by DART.

--------------------------------------------------------------------------------

Steam: "Failed to start process for this game: Operation did not complete
        successfully because the file contains a virus or potentially unwanted
        software." (0xE1)
--------------------------------------------------------------------------------

Your antivirus (usually Windows Defender) refused to START the game's own
SpeedRunners 2.exe - Windows returns this exact error when the antivirus blocks
an executable at launch. DART never modifies SpeedRunners 2.exe. This is an
antivirus false positive on the game's unsigned executable (typically for a few
hours/days after a game update, until the antivirus vendor updates its
definitions); it happens with or without DART.

Fix:
 1. Windows Security -> Virus & threat protection -> Protection history:
    open the newest entry that mentions SpeedRunners 2 -> Actions -> Allow
    (or Restore if it was quarantined).
 2. Steam -> right-click SpeedRunners 2 -> Properties -> Installed Files ->
    Verify integrity of game files (re-downloads anything that was removed).
 3. Start the game again. If it happens again, add the game folder as an
    exclusion (Windows Security -> Virus & threat protection -> Manage settings
    -> Exclusions), or wait for the next definitions update.
 4. Please report the false positive so it gets fixed for everyone:
    https://www.microsoft.com/wdsi/filesubmission

Running installer.bat again shows the exact Defender detection (threat name and
file) when there is one.

================================================================================
TROUBLESHOOTING
================================================================================

Steam is running
----------------
If the installer says Steam is still running:

• Right-click the Steam icon in the system tray.
• Click "Exit".

Simply closing the Steam window is NOT enough.

--------------------------------------------------------------------------------

Installer cannot find SpeedRunners 2
------------------------------------

Open:

    src\install_path.txt

Paste the full path to your:

    Speedrunners 2 King of Speed

installation folder.

Save the file and run installer.bat again.

--------------------------------------------------------------------------------

Forcing an update
-----------------

Open a terminal inside the src folder and run:
To open on terminal:
Windows searchbar > cmd > open as administrator


powershell -ExecutionPolicy Bypass -File update.ps1 -Force

================================================================================
REPORTING BUGS
================================================================================

Inside DART:

Settings → Send log to maintainer

If your Discord account is linked, your logs will automatically include your
account information.

You can also send bug reports directly to:

Discord: @bartvanm
or post it in the community discord under #dart-bugs

================================================================================
FOLDER CONTENTS
================================================================================

installer.bat
    Installs DART

uninstaller.bat
    Removes DART

README.txt
    This file

logs\
    Installation and update logs

src\
    Runtime files, updater, patcher and supporting tools

================================================================================
