Quick Answer: The Arknights Stronghold Protocol remake is an open-source, browser-based auto-battler tower defense game that recreates the official seasonal event. You can play it by downloading the release package, running the local Node.js server via the provided script, and accessing http://localhost:3000 in your web browser for 1–4 player co-op.

Seasonal game modes in live-service titles create a specific kind of frustration. You spend weeks mastering a complex meta, only for the developer to remove the mode entirely. The Arknights Stronghold Protocol remake solves this exact problem. Built by the community, this non-commercial project resurrects the beloved auto-battler mechanics in a lightweight, browser-based format. You get the full 1–4 player co-op experience, complete with 112 operators, without waiting for an official rerun.

Here is exactly how to deploy, configure, and master this standalone server.

The Anatomy of a Perfect Fan Remake

Most fan projects fail because they try to reinvent the wheel. This repository succeeds because it acts as a strict, faithful simulation of the original official data tables.

The developer has meticulously reconstructed the core loop: a preparation phase in the dispatch center followed by an automated combat phase. You manage economy, refresh the shop, freeze desired units, and combine three identical operators to create an elite version. The browser based auto battler tower defense hybrid runs entirely on client-side simulation for combat, meaning the server only handles economy and turn synchronization.

This architectural choice is brilliant. Because the server isn't calculating collision physics or line-of-sight for 112 different operators, you can host a four-player Arknights co-op multiplayer session on a low-power mini PC or even a Raspberry Pi.

The game includes four difficulty tiers (Standard, Perilous, Desperate, Ultimate) pulling parameters directly from official data. It even includes the 15th round "Hidden Core" for players who meet the strict survival conditions on Perilous difficulty or higher.

Here's where most guides go wrong: they assume you can just double-click an executable and play with friends across the country. The reality of self-hosting requires a bit more networking knowledge.

The Tech Stack: Node.js Game Server Setup

Under the hood, this project relies on a modern JavaScript ecosystem. The backend is a Node.js server communicating with clients via WebSockets. The frontend renders the game using WebGL (via PixiJS and Three.js for the 3D board), falling back to a simplified 2D canvas if your hardware struggles.

To run this, you need a proper Node.js game server setup. The project strictly requires Node.js version 22 or 24 (LTS). Attempting to run this on older versions like Node 18 will result in immediate dependency errors during the installation phase.

As a practitioner, I highly recommend using a version manager like nvm (Node Version Manager) or fnm rather than installing Node directly to your system path. This prevents global package conflicts if you host other web applications on the same machine.

The legal boundary here is also clearly defined. The codebase itself is licensed under GPL-3.0, but the visual and audio assets belong to Hypergryph and Yostar. The GitHub repository intentionally excludes these copyrighted assets. You either download the pre-packaged release (which includes them for convenience) or run a script to pull them from public mirrors.

That said, there's a real catch here when it comes to playing with friends outside your house.

How to Host Stronghold Protocol Locally

If you just want to play solo or with AI teammates, the setup is trivial.

  1. Download the latest v0.1.0 zip file from the GitHub Releases page.
  2. Extract it to a folder with a short path (e.g., C:\Games\Stronghold). Avoid extracting it into OneDrive or Dropbox folders, as aggressive file syncing will lock the Node modules and crash the server.
  3. Run the startup script. On Windows, double-click scripts\start-windows.bat. On macOS or Linux, execute ./scripts/start.sh in your terminal.
  4. Open your browser and navigate to http://localhost:3000.

The server runs entirely in memory. If you close the terminal window, the server dies, and all active matches are instantly wiped. There is no persistent database saving your mid-game progress across server restarts. If you disconnect from a live game, the server holds your seat for 10 minutes in co-op, or 24 hours in solo play, provided the server process remains active.

This next part matters more than it looks if you plan to invite other people.

Network Configuration for Co-op Multiplayer

Because this is a self-hosted web application, your friends need a way to route their browser traffic to your specific machine.

When your local network uses AP isolation (common on guest Wi-Fi networks or college dorms), your friends won't connect because the router physically blocks client-to-client traffic. You will see the server running perfectly on your machine, but their browsers will just time out.

Here is a breakdown of the three viable ways to handle multiplayer routing:

Routing MethodSetup DifficultyLatencyBest Use Case
Local LANLow< 5msRoommates on the same private Wi-Fi network.
Mesh VPN (Tailscale)Medium20–50msPlaying with a fixed group of trusted friends remotely.
Cloudflare TunnelsHigh50–100msSharing a public link without exposing your IP address.

If you opt for a VPS (Virtual Private Server) deployment to keep the game running 24/7, you must place the Node application behind a reverse proxy like Nginx or Caddy. Because the game relies heavily on real-time state sync, your proxy configuration must explicitly allow WebSocket upgrades. Missing the proxy_set_header Upgrade $http_upgrade; directive in Nginx is the number one reason players can load the menu but fail to join a lobby.

Advanced Gameplay Mechanics and Logic

The popular misconception about auto-battlers is that they are purely RNG-driven slot machines. In this remake, positioning and directional facing dictate the outcome entirely.

When you drag an operator from the staging area to the board, you must use the directional wheel to set their facing. This isn't just for attack range. The game simulates a "contact radius" for blocking. When a blocking operator is defeated, the enemy doesn't just walk past immediately; the block is dynamically handed off to any adjacent operator whose contact radius overlaps the enemy.

Furthermore, the remake faithfully implements the shared boss mechanics in the final wave.

  • Two players share a single battlefield.
  • The entire team must whittle down a shared boss health bar.
  • The game applies the official damage-cap rules to massive leaders (who occupy a 5x3 grid hit-box).

If one player leaks an enemy, but another player achieves a perfect defense, the successful player's surviving squad will actually intercept the leaked enemies. This "joint defense" mechanic requires tight communication regarding who is building single-target burst damage versus who is building AoE crowd control.

Extracting Official 3D Assets

By default, the game uses a 2D fallback board. It's functional, but it lacks the spatial depth of the official client.

If you have the official Arknights PC client installed (either the native Windows version or via CrossOver/PlayCover on macOS), you can extract the actual 3D board textures. The repository includes a Python extraction tool specifically for this.

Run npm run setup in your terminal. The script will detect your local installation and prompt you to extract the assets. It builds an isolated Python 3.8+ environment in .venv-extract so it won't pollute your system's global Python packages. If the auto-detection fails, you can force it by running node tools/setup.mjs --local --game "C:\Path\To\Arknights\StreamingAssets\AB\Windows".

Most people stop here — don't. Once extracted, you need to clear your browser cache. Browsers aggressively cache WebGL textures, and if you load the game before extracting the 3D assets, your browser will stubbornly hold onto the 2D fallback until you force a hard refresh (Ctrl+F5).

Frequently Asked Questions

What is the Arknights Stronghold Protocol remake?

It is a fan-made, open-source browser game that recreates the seasonal auto-battler tower defense mode from Arknights. It supports solo play and up to 4-player co-op, running entirely locally via a Node.js server without any monetization or official affiliation.

How to host Stronghold Protocol locally without port forwarding?

The safest method is using a mesh VPN like Tailscale or ZeroTier. Install the VPN on your host machine and your friends' computers. They can then connect to your game server by typing your secure Tailscale IP address followed by port :3000 into their browser.

Why does the game server crash on startup?

This usually happens due to a port conflict or an outdated Node version. Ensure you are running Node.js 22 or 24 LTS. If port 3000 is already in use by another application, you can change it by setting an environment variable, such as running PORT=8080 npm start in your terminal.

Can I play this on a mobile device?

Yes. As long as the host computer is running the server, you can access the game via your phone or tablet's web browser by navigating to the host's IP address. The UI supports touch-and-drag controls, though playing in landscape mode is highly recommended.

Final Thoughts

Running the Arknights Stronghold Protocol remake gives you total control over one of the best tower defense auto-battlers ever designed. By understanding the underlying Node.js architecture and utilizing secure tunneling for multiplayer, you bypass the limitations of seasonal gacha schedules entirely.

Try setting up a local server this weekend, invite three friends via Tailscale, and see if your squad can survive the Hidden Core on Ultimate difficulty. If you found this technical breakdown useful, pass this to someone wrestling with Node.js game server setup or read our deep dive into browser based auto battler tower defense mechanics next.