Initial commit

This commit is contained in:
Sainan 2025-02-05 15:41:03 +01:00
commit 6e3c13cbb9
9 changed files with 159 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
supplementals/

2
0.git/index.php Normal file
View File

@ -0,0 +1,2 @@
<?php
header("Location: https://github.com/de-eznuts/stripped-assets.git".substr($_SERVER["REQUEST_URI"], 6)); // "/0.git"

View File

@ -0,0 +1,3 @@
<?php
//header("Location: https://github.com/spaceninjaserver/SpaceNinjaServer".substr($_SERVER["REQUEST_URI"], 21)); // "/SpaceNinjaServer.git"
header("Location: http://209.141.38.3/OpenWF/SpaceNinjaServer".substr($_SERVER["REQUEST_URI"], 21)); // "/SpaceNinjaServer.git"

57
bootstrapper-manual.html Normal file
View File

@ -0,0 +1,57 @@
<!DOCTYPE html>
<html>
<head>
<title>OpenWF Bootstrapper Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://calamity-inc.github.io/Silver/base.css">
</head>
<body>
<h1>OpenWF Bootstrapper Manual</h1>
<p>While the main feature of the dwmapi.dll is to use a custom server with the game, it has other features as well.</p>
<h2>client_config.json</h2>
<p>The bootstrapper creates a client_config.json in your game folder. It has the following fields:</p>
<ul>
<li><code>server_host</code> — The hostname or IP address to redirect game traffic to. This should match <code>myAddress</code> in SpaceNinjaServer.</li>
<li><code>http_port</code> — The port to use for HTTP traffic. This should match <code>httpPort</code> in SpaceNinjaServer.</li>
<li><code>https_port</code> The port to use for HTTPS traffic. This should match <code>httpsPort</code> in SpaceNinjaServer.</li>
<li><code>fallback_language</code> — The language to use when Warframe.x64.exe was double-clicked or the argument was simply omitted.</li>
<li><code>fallback_graphicsDriver</code> — The graphics driver to use when Warframe.x64.exe was double-clicked or the argument was simply omitted.</li>
<li><code>fallback_cluster</code> — The cluster to use when Warframe.x64.exe was double-clicked or the argument was simply omitted. Can be <code>public</code>, <code>test</code>, or <code>dev</code> — the latter two enable some more logging.</li>
<li><code>high_damage_numbers_patch</code> — If true, patches the game to display the exact number of damage that you dealt to fix -2147483648 showing up on high damage.</li>
<li><code>skip_mission_start_timer</code> — If true, disables the 5 second wait before a mission starts.</li>
<li><code>fov_override</code> — If not 0, overrides the game's FOV setting. You can use any value from 1 to 226.</li>
<li><code>simulacrum_blacklisted</code> — If true, blacklisted enemies are shown in the Simulacrum. Defaults to false to match the game.</li>
<li><code>simulacrum_whitelisted</code> — If true, whitelisted enemies are shown in the Simulacrum. Defaults to true to match the game.</li>
<li><code>pause_always_stops_time</code></li>
<li><code>disable_nrs_connection</code> — If true, disables NRS connections, preventing the game from showing "Please ensure that your firewall permits UDP ports 4950 & 4955."</li>
<li><code>autologin</code></li>
<li><code>autologin_email</code></li>
<li><code>autologin_password</code> — The whirlpool hash of the password to use for autologin. You can simply enter your password and it will automatically be hashed and overwritten.</li>
<li><code>auto_start_scripts</code> — A list of scripts to automatically start, e.g. <code>["samples/Cycle Camera Hotkey (K).pluto"]</code>.</li>
<li><code>forced_profile_dir</code> — An absolute path to a folder that will be used to read and write your game settings. Notably, this can be used to have the same settings regardless of username.</li>
<li><code>ee_log_in_console</code> — If true, writes everything that gets written to EE.log to the console as well.</li>
</ul>
<h2>HTTP Interface</h2>
<p>While the game is running, the you can visit <a href="http://localhost:61558/" target="_blank">http://localhost:61558/</a> to modify some of the above options, access additional features like teleportation, and use scripts.</p>
<h2>Command Line Arguments</h2>
<p>The bootstrapper adds the <code>owfServerHost</code> command line argument, which can be used to override the <code>server_host</code> in the config.</p>
<h2>Pre-Login</h2>
<p>While in the pre-login state, the overlay indicates the current server host, which can also be changed by typing <code>@server_host</code> (e.g. <code>@localhost</code>) in the email field with any password and attempting to log in.</p>
<h2>Tunables</h2>
<p>When connecting to a server, the bootstrapper requests <code>/custom/tunables.json</code> to check the JSON object for the presence of the following fields:</p>
<ul>
<li><code>prohibit_skip_mission_start_timer</code></li>
<li><code>prohibit_fov_override</code></li>
<li><code>prohibit_freecam</code></li>
<li><code>prohibit_teleport</code></li>
<li><code>prohibit_scripts</code></li>
</ul>
<p>The presence of a field disables the respective feature.</p>
<h2>HTTP Traffic Deviations</h2>
<ul>
<li>login.php & worldState.php requests have the extra query parameter <code>buildLabel</code> to indicate the client's buildLabel.</li>
<li>login.php requests also have an extra <code>clientMod</code> parameter to indicate that the OpenWF Bootstrapper is being used and what version of it.</li>
<li>inventory.php & missionInventoryUpdate.php requests have the extra query parameter <code>xpBasedLevelCapDisabled</code> to indicate that the client has been patched to accept any PlayerLevel and doesn't need XPInfo to match.</li>
</ul>
</body>
</html>

1
dll-source-code.html Normal file
View File

@ -0,0 +1 @@
<meta http-equiv="refresh" content="0;url=https://www.youtube.com/watch?v=dQw4w9WgXcQ">

BIN
favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

54
guide.php Normal file
View File

@ -0,0 +1,54 @@
<?php
$dll_version = file_get_contents("supplementals/client drop-in/latest.txt");
$version = json_decode(file_get_contents("supplementals/static data/buildConfig.json"), true)["version"];
?>
<!DOCTYPE html>
<html>
<head>
<title>OpenWF Guide</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://calamity-inc.github.io/Silver/base.css">
</head>
<body>
<h1>OpenWF Guide</h1>
<h2>Client Installation</h2>
<p>To use OpenWF, you only need to download the <a href="/supplementals/client%20drop-in/<?=$dll_version;?>/dwmapi.dll" download>dwmapi.dll</a> and put it in your game's installation folder (the one where Warframe.x64.exe is in).</p>
<ul>
<li>As long as this DLL is in the game folder, you can double-click Warframe.x64.exe to start the game with OpenWF.</li>
<li>Opening the game's launcher will revert it back to normal.</li>
</ul>
<p>By default, the DLL redirects requests to localhost meaning the same machine you're playing on — so you'll either need to set up a server or change the server_host to point to a different machine that's already got a server running.</p>
<p>The DLL is <a href="bootstrapper-manual" target="_blank">fully documented here</a>, but I know you're not going to click that link and read that page, so just know that when the game is running, you can visit <a href="http://localhost:61558/" target="_blank">http://localhost:61558/</a> to manage options, cheats, and scripts.</p>
<h2>Server Prerequisites</h2>
<ul>
<li>Git (<a href="https://git-scm.com/downloads" target="_blank">Download</a>)</li>
<li>Node.js (<a href="https://nodejs.org/en/download" target="_blank">Download</a>)</li>
<li>MongoDB (<a href="https://www.mongodb.com/try/download/community" target="_blank">Download</a>)</li>
</ul>
<h2>Server Installation</h2>
<ol>
<li>Run <code>git clone https://openwf.io/SpaceNinjaServer.git</code> in a command prompt to download SpaceNinjaServer in the current working directory</li>
<li>Open the SpaceNinjaServer folder (<code>cd SpaceNinjaServer</code>)</li>
<li>Run <code>copy config.json.example config.json</code> to create a config.json from config.json.example</li>
<li>(Optional) Edit the config.json to match your MongoDB settings (if not default) and however else you would like to configure the server</li>
<!-- <li>Download <a href="/supplementals/static%20data/buildConfig.json" download>buildConfig.json</a> and <a href="/supplementals/static%20data/H.Cache_<?=$version;?>.bin" download>H.Cache_<?=$version;?>.bin</a> and put them in the server's <code>static/data</code> folder</li> -->
<li>(Optional) If you want stripped assets (~622 <abbr title="mebibytes (1 MiB = 1048576 bytes)">MiB</abbr>) which the client will request from the server on-demand (most notably, <abbr title="Ability videos show a brief clip of an ability in action. They can be seen by hovering over an ability in the Arsenal, Codex, etc.">ability videos</abbr>), run <code>git clone https://openwf.io/0.git</code> in the <code>static/data</code> folder</li>
<li>Run <code>npm i</code> (or <code>npm install</code>) to install library dependencies</li>
<li>Now, to start the server, run <code>npm run dev</code> (if this is too slow on your machine, you can use <code>npm run build</code> followed by <code>npm run start</code>)</li>
</ol>
<h2>Server Update</h2>
<!-- <p>Windows users can simply double-click the <code>UPDATE AND START SERVER.bat</code>, but otherwise the steps are pretty simple:</p> -->
<ol>
<!-- <li>For game updates, ensure the <code>static/data</code> folder has the latest <a href="/supplementals/static%20data/buildConfig.json" download>buildConfig.json</a> and cache (<a href="/supplementals/static%20data/H.Cache_<?=$version;?>.bin" download>H.Cache_<?=$version;?>.bin</a>)</li> -->
<li>
Run <code>git pull</code> in the SpaceNinjaServer folder
<ul>
<li>You may see an error if you cloned SpaceNinjaServer from GitHub to fix this, run <code>git config remote.origin.url https://openwf.io/SpaceNinjaServer.git</code></li>
</ul>
</li>
<li>(Optional) If you have the stripped assets, run <code>git pull</code> in the <code>static/data/0</code> folder</li>
<li>Run <code>npm i</code> (or <code>npm install</code>) to synchronize library dependencies</li>
<li>Now to start the server again, run <code>npm run dev</code> (if this is too slow on your machine, you can use <code>npm run build</code> followed by <code>npm run start</code>)</li>
</ol>
</body>
</html>

17
index.html Normal file
View File

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<title>OpenWF</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://calamity-inc.github.io/Silver/base.css">
</head>
<body>
<h1>OpenWF</h1>
<p>OpenWF is all about customizing Warframe. To that end, we have <a href="https://openwf.io/SpaceNinjaServer.git">open-source server software</a> and client patches to connect to custom servers. The client-side part also has some QoL features, cheats, and scripting capabilities — subject to server prohibitions.</p>
<ul>
<li><a href="guide">Installation Guide</a></li>
<li><a href="server-list">Public Server List</a></li>
<li><a href="https://discord.gg/PNNZ3asUuY">Discord Community</a></li>
</ul>
</body>
</html>

24
server-list.html Normal file
View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<title>OpenWF Server List</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://calamity-inc.github.io/Silver/base.css">
</head>
<body>
<h1>OpenWF Server List</h1>
<p>The following are public servers you may use for your OpenWF adventures. Note that OpenWF currently doesn't have any multiplayer interactions beyond IRC/chat.</p>
<ul>
<li>
athena.source.wf
<ul>
<li>HTTP Port: 80</li>
<li>HTTPS Port: 443</li>
<li>Software: SpaceNinjaServer</li>
<li>Cheats Allowed: Yes</li>
<li>IRC Server: Yes</li>
</ul>
</li>
</ul>
</body>
</html>