ASSET MANIFESTS EXTRACTED: + 1,236 manifest files from RR3 APK + Covers ALL game content: - 400+ vehicles (F1, NASCAR, GT3, classics) - 30+ tracks (Silverstone, Monaco, Spa, etc.) - Audio, textures, UI, events + Stored in Assets/manifests/ MANIFEST FORMAT: path<TAB>md5<TAB>compressed_size<TAB>uncompressed_size Example: /data/events.dat.nct 0a21c68... 14461497 14461497 DOWNLOADER SCRIPT CREATED: + download-assets.ps1 + Features: - Parses manifests automatically - Downloads from EA CDN - Verifies MD5 integrity - Skips already cached files - Resumes interrupted downloads - Test mode for verification - Detailed logging ESTIMATED CONTENT: + 10,000+ individual asset files + 2-5 GB total when fully downloaded + Critical assets: ~500 MB CURRENT STATUS: ✅ Manifests extracted and documented ✅ Downloader script complete ✅ Storage structure organized ✅ Sample placeholders created ⏳ CDN URL needs discovery (see ASSET_DOWNLOAD_STATUS.md) PRESERVATION STRATEGY: Phase 1: Download from EA CDN while servers up Phase 2: Community contributions after shutdown Result: Complete game preservation forever! DOCUMENTATION: + Assets/manifests/README.md - Manifest format guide + ASSET_DOWNLOAD_STATUS.md - Complete instructions + Download script with inline help USAGE: # Test download .\download-assets.ps1 -TestMode # Download critical assets .\download-assets.ps1 # Download everything \ = Get-ChildItem Assets\manifests\*.txt | % { \.Name } .\download-assets.ps1 -ManifestFiles \ Ready to preserve RR3 for the community! 🎮💾 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Real Racing 3 Community Server
A cross-platform .NET 8+ community server implementation for Real Racing 3, enabling custom/private server functionality.
Overview
This server emulates EA's Synergy backend infrastructure, allowing players to:
- Host community servers
- Play offline or on private networks
- Customize game content and progression
- Preserve the game when official servers shut down
Features
- ✅ Cross-platform support (Windows, Linux, macOS)
- ✅ Minimal ASP.NET Core Web API implementation
- ✅ All critical Synergy API endpoints
- ✅ Session management & authentication
- ✅ User profile & device management
- ✅ DRM/Purchase verification (stub for community use)
- ✅ Product catalog management
- ✅ Analytics/tracking endpoints (optional logging)
- ✅ Configurable via JSON
- ✅ SQLite database for data persistence
Requirements
- .NET 8.0 SDK or later
- SQLite (included via NuGet)
- Port 443 (HTTPS) or custom port with SSL certificate
Quick Start
1. Build the Server
cd RR3CommunityServer
dotnet restore
dotnet build
2. Configure
Edit appsettings.json to customize server behavior.
3. Run
dotnet run
The server will start on https://localhost:5001 by default.
4. Redirect Game Traffic
You'll need to intercept DNS/HTTPS traffic from the game to redirect EA servers to your server:
Option A: Hosts File (Simple)
# Add to C:\Windows\System32\drivers\etc\hosts (Windows)
# or /etc/hosts (Linux/macOS)
127.0.0.1 syn-dir.sn.eamobile.com
127.0.0.1 director-stage.sn.eamobile.com
Option B: Proxy/VPN (Advanced) Use tools like Proxifier, mitmproxy, or custom VPN to redirect traffic.
Option C: SSL Interception (Full Control) Use mitmproxy with custom CA certificate installed on device.
Architecture
[Real Racing 3 App]
↓ HTTPS
[Community Server]
↓
[SQLite Database]
The server implements EA's Synergy API protocol:
- JSON request/response format
- Custom headers:
EAM-SESSION,EAM-USER-ID,EA-SELL-ID - Session-based authentication
- RESTful endpoints
API Endpoints
User Management
GET /user/api/android/getDeviceID- Register deviceGET /user/api/android/validateDeviceID- Validate deviceGET /user/api/android/getAnonUid- Get anonymous ID
Product Catalog
GET /product/api/core/getAvailableItems- Get item catalogGET /product/api/core/getMTXGameCategories- Get categoriesPOST /product/api/core/getDownloadItemUrl- Get download URLs
DRM & Purchases
GET /drm/api/core/getNonce- Get DRM nonceGET /drm/api/core/getPurchasedItems- Get purchasesPOST /drm/api/android/verifyAndRecordPurchase- Verify purchase
Tracking & Analytics
POST /tracking/api/core/logEvent- Log analytics event
Director (Discovery)
GET /director/api/android/getDirectionByPackage- Service discovery
Configuration
See appsettings.json for configuration options:
{
"Server": {
"EnableAnalytics": false,
"EnablePurchaseVerification": false,
"AllowUnverifiedDevices": true
},
"Catalog": {
"DataPath": "./catalog-data",
"EnableCustomContent": true
}
}
Security Notes
⚠️ For Community Use Only
This server is for:
- Private/LAN play
- Game preservation
- Educational purposes
- Offline gameplay
NOT for:
- Piracy or circumventing legitimate purchases
- Cheating in official multiplayer
- Redistributing EA's content
Project Structure
RR3CommunityServer/
├── Controllers/ # API endpoint controllers
│ ├── DirectorController.cs
│ ├── UserController.cs
│ ├── ProductController.cs
│ ├── DrmController.cs
│ └── TrackingController.cs
├── Models/ # Data models & DTOs
├── Services/ # Business logic
├── Data/ # Database context
├── Middleware/ # Session/auth middleware
├── appsettings.json # Configuration
└── Program.cs # Entry point
Development
Adding New Endpoints
- Create controller in
Controllers/ - Add models in
Models/ - Implement service logic in
Services/ - Update database schema if needed
Testing
# Run unit tests
dotnet test
# Test API endpoints
curl -k -H "EAM-SESSION: test-session" https://localhost:5001/user/api/android/getDeviceID?deviceId=test123
Contributing
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a pull request
License
This project is for educational and preservation purposes. Real Racing 3 and related trademarks are property of Electronic Arts Inc.
Disclaimer
This is an independent community project not affiliated with EA or Firemonkeys. Use responsibly and respect intellectual property rights.