mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-26 07:28:45 -07:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 911206a115 | |||
| cfd5724859 | |||
| 75d187acf8 | |||
| e1fc786ac1 | |||
| 8f7fc09266 | |||
| e3fb9477b1 | |||
| d1b75aba57 |
+1
-2
@@ -23,7 +23,7 @@ appsettings.Development.json
|
|||||||
.env
|
.env
|
||||||
.env.local
|
.env.local
|
||||||
.env.*.local
|
.env.*.local
|
||||||
|
.backups
|
||||||
# Runtime data
|
# Runtime data
|
||||||
data/*.db
|
data/*.db
|
||||||
data/*.db-shm
|
data/*.db-shm
|
||||||
@@ -68,4 +68,3 @@ Thumbs.db
|
|||||||
# Test outputs
|
# Test outputs
|
||||||
TestResults/
|
TestResults/
|
||||||
*.coverage
|
*.coverage
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
# DorkNet
|
# DorkNet
|
||||||
|
|
||||||
|
DorkNet lets you run your own private server for old versions of Rec Room.
|
||||||
|
It brings back the 2020-era game — logging in, hanging out in your dorm,
|
||||||
|
matchmaking, chatting with friends, building rooms — all on a server you
|
||||||
|
host yourself. You supply your own legally-owned copy of Rec Room, and
|
||||||
|
DorkNet handles the rest: the server, the client patcher, and the setup
|
||||||
|
tools to get you playing again.
|
||||||
|
|
||||||
> ⚠️ **Not affiliated with Rec Room Inc. or Against Gravity.**
|
> ⚠️ **Not affiliated with Rec Room Inc. or Against Gravity.**
|
||||||
> See [DISCLAIMER.md](DISCLAIMER.md). DorkNet ships no Rec Room game assets
|
> See [DISCLAIMER.md](DISCLAIMER.md). DorkNet ships no Rec Room game assets
|
||||||
@@ -102,8 +108,8 @@ branch's `BRANCHES.md` row for the exact deltas.
|
|||||||
| Store catalog + gifting | ✅ |
|
| Store catalog + gifting | ✅ |
|
||||||
| Game invites | ✅ |
|
| Game invites | ✅ |
|
||||||
| Image upload (polaroids, room thumbnails) | ✅ |
|
| Image upload (polaroids, room thumbnails) | ✅ |
|
||||||
| VR (Quest/Index/etc.) | ⚠️ Photon-dependent; works in dev, untested at scale |
|
| VR (Quest/Index/etc.) | ✅ |
|
||||||
| Mobile / Junior accounts | ⚠️ Partial — Junior chat-restrictions disabled by default in Easy mode |
|
| Mobile | ✅ |
|
||||||
| Voice chat | ❌ Routes through Photon Voice; needs separate Photon Voice AppId |
|
| Voice chat | ❌ Routes through Photon Voice; needs separate Photon Voice AppId |
|
||||||
| Cross-server federation | ❌ Out of scope |
|
| Cross-server federation | ❌ Out of scope |
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,10 @@
|
|||||||
alongside Windows. The shared Backend classes are written to
|
alongside Windows. The shared Backend classes are written to
|
||||||
OperatingSystem.IsWindows()-gate any Windows-only paths. -->
|
OperatingSystem.IsWindows()-gate any Windows-only paths. -->
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
<TargetFramework>net9.0</TargetFramework>
|
||||||
|
<!-- Declared so a RID-less restore produces assets for every target the
|
||||||
|
CI matrix / release pipeline later publishes with no-restore. Without
|
||||||
|
this, RID-specific publish fails with NETSDK1047. -->
|
||||||
|
<RuntimeIdentifiers>win-x64;linux-x64;linux-arm64;osx-x64;osx-arm64</RuntimeIdentifiers>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<RootNamespace>DorkNet.ServerCli</RootNamespace>
|
<RootNamespace>DorkNet.ServerCli</RootNamespace>
|
||||||
|
|||||||
@@ -14,8 +14,15 @@ public static class Program
|
|||||||
{
|
{
|
||||||
public static async Task<int> Main(string[] args)
|
public static async Task<int> Main(string[] args)
|
||||||
{
|
{
|
||||||
|
// --help / -h (and a bare invocation) print usage and exit cleanly.
|
||||||
|
if (args.Length == 0 || args.Contains("--help") || args.Contains("-h"))
|
||||||
|
{
|
||||||
|
PrintHelp();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
var parsed = ParseArgs(args);
|
var parsed = ParseArgs(args);
|
||||||
if (parsed is null) return 1; // ParseArgs already wrote --help or an error.
|
if (parsed is null) return 1; // ParseArgs already wrote the error.
|
||||||
|
|
||||||
// Validate required values up front so the user sees the
|
// Validate required values up front so the user sees the
|
||||||
// failure before any download / process spin-up.
|
// failure before any download / process spin-up.
|
||||||
@@ -216,17 +223,13 @@ public static class Program
|
|||||||
|
|
||||||
private static ParsedArgs? ParseArgs(string[] args)
|
private static ParsedArgs? ParseArgs(string[] args)
|
||||||
{
|
{
|
||||||
if (args.Length == 0 || args.Contains("--help") || args.Contains("-h"))
|
|
||||||
{
|
|
||||||
PrintHelp();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
string photon = "", voice = "", region = "us";
|
string photon = "", voice = "", region = "us";
|
||||||
string mode = "localtunnel", apex = "", name = "DorkNet Server";
|
string mode = "localtunnel", apex = "", name = "DorkNet Server";
|
||||||
string versionKey = "march_2020_03_10";
|
string versionKey = "march_2020_03_10";
|
||||||
string? serverDir = null;
|
string? serverDir = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
for (int i = 0; i < args.Length; i++)
|
for (int i = 0; i < args.Length; i++)
|
||||||
{
|
{
|
||||||
string Next()
|
string Next()
|
||||||
@@ -261,6 +264,12 @@ public static class Program
|
|||||||
|
|
||||||
return new ParsedArgs(photon, voice, region, parsedMode, apex, name, versionKey, serverDir);
|
return new ParsedArgs(photon, voice, region, parsedMode, apex, name, versionKey, serverDir);
|
||||||
}
|
}
|
||||||
|
catch (ArgumentException ex)
|
||||||
|
{
|
||||||
|
Console.Error.WriteLine($"error: {ex.Message} (try --help)");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void PrintHelp()
|
private static void PrintHelp()
|
||||||
{
|
{
|
||||||
|
|||||||
+19
@@ -10,6 +10,25 @@ modified game files anywhere.
|
|||||||
DorkNet's authors don't ship Rec Room IP and don't help users obtain it.
|
DorkNet's authors don't ship Rec Room IP and don't help users obtain it.
|
||||||
See [DISCLAIMER.md](../DISCLAIMER.md) for the full position.
|
See [DISCLAIMER.md](../DISCLAIMER.md) for the full position.
|
||||||
|
|
||||||
|
### Do I need to disable my antivirus?
|
||||||
|
|
||||||
|
No, and you shouldn't have to. A lot of closed-source private-server tools
|
||||||
|
ask you to turn your antivirus off or add exclusions before running them.
|
||||||
|
That's usually because they ship obfuscated or packed binaries — code
|
||||||
|
that's been deliberately scrambled so you can't see what it does, which
|
||||||
|
also happens to trip antivirus heuristics. You're being asked to lower
|
||||||
|
your guard for something you can't inspect.
|
||||||
|
|
||||||
|
DorkNet is the opposite. Everything is open source and nothing is
|
||||||
|
obfuscated — the server, the launcher, and the patcher are all right here
|
||||||
|
in the repo for anyone to read, and you can build them yourself instead of
|
||||||
|
trusting our prebuilt releases. There's nothing hidden for a scanner to
|
||||||
|
choke on, so there's no reason to weaken your protection to run it.
|
||||||
|
|
||||||
|
If a release binary ever does get flagged, that's a false positive on an
|
||||||
|
unsigned indie executable, not malware — and you always have the option to
|
||||||
|
build from source and verify it yourself.
|
||||||
|
|
||||||
### Will Rec Room Inc. shut this down?
|
### Will Rec Room Inc. shut this down?
|
||||||
|
|
||||||
Possibly. Fan-server projects exist in a grey zone. AGPL doesn't shield
|
Possibly. Fan-server projects exist in a grey zone. AGPL doesn't shield
|
||||||
|
|||||||
Reference in New Issue
Block a user