Outrun is a custom server for Sonic Runners, reverse engineered from the Sonic Runners Revival (Now uses Outrun) project.
- Implement all non debug endpoints as fulfilled by the original server
- Maintain speed throughout runtime
- Consume little resources for conservative deployment
Notable:
- Timed Mode
- Story Mode
- Ring/Red Star Ring keeping
- Functional shop
- Character/Chao equipping
- Character leveling and progression
- Item/Chao roulette functionality
- Events
- Basic ranking
Functional:
- Android and iOS support
- High score keeping
- In game notices
- Deep configuration options
- Powerful RPC control functions
- Ticker notices
- Small database size and memory footprint
- Low CPU usage
- Analytics support
- Download and install Go 1.15.8 (NOTE: Go 1.16+ currently break the ability to build some or all of Outrun, such as RPC programs. A fix should hopefully be coming soon!)
- Download and install Git (for
go get
) - Set your GOPATH environment variable
- Open a terminal/command prompt
- Use
cd
(Windows, Linux/macOS) to navigate to a directory of choice - Run
go get github.com/fluofoxxo/outrun
and wait until the command line returns - Run
go build github.com/fluofoxxo/outrun
and wait until the build is complete - Run the produced executable (
outrun.exe
on Windows,outrun
on Linux/macOS)
Binary releases can be found in the releases tab.
- Install dnSpy (dnSpy-netcore-win64.zip)
- Install 7-Zip
- Install ZipSigner on an Android device or emulator
- Open a Sonic Runners v2.0.3 APK file with 7-Zip
- Navigate to assets/bin/Data/Managed and extract all the DLL files to their own folder
- Open Assembly-CSharp.dll in dnSpy
- Open the class
NetBaseUtil
, and find the variablemActionServerUrlTable
- Edit every string in the
mActionServerUrlTable
array tohttp://<IP>:<PORT>/
where<IP>
is replaced by the IP for your instance and<PORT>
is replaced by the port for your instance (Default: 9001) - Repeat step 7 for
mSecureActionServerUrlTable
- If you have an assets server, use its IP and port to replace the values in
mAssetURLTable
andmInformationURLTable
tohttp://<IP>:<PORT>/assets/
andhttp://<IP>:<PORT>/information/
respectively - Click File -> Save Module... and save the DLL file
- Drag the newly saved Assembly-CSharp.dll back into assets/bin/Data/Managed in 7-Zip, confirming to overwrite if asked
- Transfer the APK to an Android device and use ZipSigner to sign it
- Install the APK
Any pull requests deemed code improvements are strongly encouraged. Refactors may be merged into a different branch.
As of 1 September, 2019, an instance of this server named Palmbound is currently publicly accessible. App file downloads can be acquired by joining the Palmbound Download Discord server: https://discord.gg/eeQAe8R
Much thanks to:
- YPwn, whose closest point of online social contact I do not know, for creating and running the Sonic Runners Revival server upon which this project bases much of its code upon.
- @Sazpaimon for finding the encryption key I so desparately looked for but could not on my own.
- nacabaro (nacabaro#2138 on Discord) for traffic logging and the discovery of DaGuAr's asset archive.
- Story Mode items
- lukaafx (Discord @Kalu04#3243)
- TemmieFlakes
- SuperSonic893YT