+ Before we start: know what you're replacing. I am going to be using /Lotus/Interface/PolarityPoint.png as an example, which is the icon for the Vazarin polarity.
+ To explore textures, I can recommend using the GUI of Puxtril's Warframe Exporter.
-
Within your copy of warframe-cache-tools, you can now run pluto extract.pluto /Lotus/Interface/PolarityPoint.png to download & export the texture to the assets folder.
+
Head inside of the assets folder until you find PolarityPoint.png.dds.
+
Open the DDS file inside of a hex editor like HexEd.it or HxD and take note of the format, e.g. you will see the string DXT1 or DXT5 in the 6th row.
+
You are now free to modify the image however you want. Just take care that the file has the same name, dimensions/resolution, and format/encoding as seen before.
+
To build your assets, run pluto build.pluto within the warframe-cache-tools directory.
+
Finally, to get the assets into the game, you can copy the content (managed) folder from warframe-cache-tools into the OpenWF folder of your client. The Bootstrapper will automatically patch the game to use your modified content, and if you ever wanna stop using it, you can simply remove the client's content (managed) folder.
To use OpenWF, you only need to download the dwmapi.dll and put it in your game's installation folder (the one where Warframe.x64.exe is in).
-
=loc("setup.c.dblclk");?>
-
=loc("setup.c.laurvt");?>
+
As long as this DLL is in the game folder, you can double-click Warframe.x64.exe to start the game with OpenWF.
+
Opening the game's launcher will revert it back to normal.
-
=loc("setup.c.docshttp");?>
-
=loc("setup.c.next");?>
-
=loc("setup.s.prereq");?>
+
The DLL is fully documented here, but the most important point is that, while the game is running, you can visit http://localhost:6155/ to manage options, cheats, and scripts.
+
Next steps: 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.
Run git clone https://openwf.io/SpaceNinjaServer.git in a command prompt to download SpaceNinjaServer in the current working directory
+
Open the SpaceNinjaServer folder (cd SpaceNinjaServer)
+
Run copy config.json.example config.json to create a config.json from config.json.example
+
(Optional) Edit the config.json to match your MongoDB settings (if not default) and however else you would like to configure the server
+
(Optional) If you want stripped assets (~622 MiB) which the client will request from the server on-demand (most notably, ability videos), run git clone https://openwf.io/0.git in the static/data folder
+
Run npm install --omit=dev to install library dependencies
+
Run npm run build to build the server
+
Now you can run npm run start to start the server anytime
-
=loc("setup.s.update");?>
-
=loc("setup.s.update.wineasy");?>
+
Server Update
+
Windows users can simply double-click the UPDATE AND START SERVER.bat, but otherwise the steps are pretty simple:
-
=loc("setup.s.update.1");?>
-
=loc("setup.s.update.2");?>
-
=loc("setup.s.update.3");?>
-
=loc("setup.s.install.7");?>
-
=loc("setup.s.update.5");?>
+
Run git pull in the SpaceNinjaServer folder
+
(Optional) If you have the stripped assets, run git pull in the static/data/0 folder
+
Run npm install --omit=dev to synchronize library dependencies
+
Run npm run build to build the server
+
Now you can use npm run start to start the server again
-
=loc("setup.irc");?>
-
=loc("setup.irc.leadin");?>
+
IRC Server
+
In addition to SpaceNinjaServer, you can also set up an IRC server for the in-game chat:
-
=loc("setup.irc.wheel");?>
-
=loc("setup.irc.inspircd");?>
+
warframe-irc-server — an IRC server specifically made for Warframe. Talks to SpaceNinjaServer to give "chat moderator" permissions and report dropped connections.
+
InspIRCd — a well-known IRC server implementation used by DE themselves (albeit with unknown modifications). A pre-configured Windows copy of it can be downloaded here.
If you use AlecaFrame, you already have an encrypted version of your inventory. You can use this tool to help you locate and decrypt it.
+
Alternatively, you can use warframe-api-helper to get a fresh copy by running it while the game is running & logged in on live. It will store it in inventory.json.
-
=loc("import.import.title")?>
-
=loc("import.import.desc")?>
+
Importing Your Inventory To SpaceNinjaServer
+
Now that you have your inventory, open the SpaceNinjaServer WebUI and locate the "Import" tab. You can simply paste the entire thing in the textbox and press the "Submit" button.
OpenWF is a software suite centered around customizing Warframe, including:
-
=loc("about.1");?>
-
=loc("about.2");?>
+
SpaceNinjaServer — an open-source reimplementation of the game's web services. As we have custom server software, OpenWF avoids interference with the live game while allowing full customization of savedata.
+
The Bootstrapper — our main DLL targeting the latest game version. Its core precept is connecting to custom servers, but it also has some QoL features and cheats as well as a scripting API, label replacements and metadata patches, allowing for extensive customization of the game.
+ A long-term goal of the project is to preserve Warframe after the official servers have shut down, and indeed being able to play any update.
+ Our main focus right now is on staying up-to-date with the game, but there is a DLL + fork of SpaceNinjaServer that can be used to revisit 2013 Warframe. More information about this can be found on our Discord, specifically in this thread.
-
=loc("tm_disclaimer");?>
+
Warframe is a registered trademark of Digital Extremes. Its use is for identification purposes only and does not imply any affiliation with or endorsement by Digital Extremes.