====== Information ======
* 2004Scape Server ((https://github.com/2004Scape/Server))
* ''main'' Branch ((https://github.com/2004Scape/Server/tree/main))
* These notes provide a local singleplayer server for 2004Scape ((RSPS/RuneScape Private Server based on cache ''225'' from May 18th, 2004)) on Windows (see [[games;linux;2004scape_localhost|these notes]] for Linux)
===== Media =====
* [[https://www.youtube.com/watch?v=RFmbHS4w9mU|Desktop and Start Menu Shortcuts Presentation Video]]
* [[https://www.facebook.com/media/set/?set=a.1020728566088031|My Progress Photo Album]]
===== Prerequisites =====
* [[windows:10|Windows 10]] ((later use of ''tar'' commands for Save Data requires Windows 10 1803+; presumably fine on W11; [[https://rune-server.org/threads/lost-city-225-emulation.701698/page-4#post-5805881|can apparently run on XP too]]))
===== Resources =====
* [[https://www.2004scape.org/img/rs2/worldmap/worldmap2.jpg|World Map]]
==== Web ====
* [[https://github.com/2004scape/Server/wiki/Feature-Complete-Progress|Feature Complete Progress]]
* [[https://github.com/orgs/2004Scape/projects/3|Progress - Quests]]
* [[https://github.com/orgs/2004Scape/projects?query=is%3Aopen|Projects List]]
* [[https://rune-server.org/threads/lost-city-225-emulation.701698/|Rune-Server Forums]]
* [[https://rune-server.org/threads/lost-city-225-emulation.701698/page-4#post-5805881|Info post]] (Jul 3, 2024)
====== Dependencies ======
* https://github.com/2004Scape/Server?tab=readme-ov-file#getting-started
* https://github.com/2004Scape/Server?tab=readme-ov-file#environment-dependencies
* 2024/07/24: Git, Java, NodeJS
===== Git =====
* https://www.git-scm.com/download/win
* Last tested: ''Git-2.46.0-64-bit.exe''
* :!: Git from the command line and also from 3rd-party software (make sure it's selected)
===== Java =====
* https://www.oracle.com/java/technologies/downloads/
* Last tested: ''jdk-22_windows-x64_bin.msi''
===== Node.js =====
* https://nodejs.org/en/download/prebuilt-installer
* Last tested: ''node-v22.6.0-x64.msi''
* Node.js runtime, npm package manager, Add to PATH (corepack manager and Online documentation not required)
* Tools for Native Modules not required (leave "Automatically install the tools" unchecked)
====== Firewall ======
===== LAN =====
* ''80'' TCP
* ''43594'' TCP
* ''43595'' TCP
* Allows loading the game applet and connecting to the server from other devices on LAN
* :!: This is optional if only doing ''localhost''
netsh advfirewall firewall add rule name="2004Scape Server" dir="in" action="allow" protocol="tcp" localport="80,43594,43595" remoteip="localsubnet"
====== Download Source ======
git clone --branch "main" --depth "1" --recurse-submodules "https://github.com/2004Scape/Server.git" "%UserProfile%\Projects\2004scape-server\src"
explorer "%UserProfile%\Projects\2004scape-server\src"
====== Launcher Scripts ======
****
MKDIR "%UserProfile%\Projects\2004scape-server\scripts\"
===== Server Start =====
notepad "%UserProfile%\Projects\2004scape-server\scripts\localhost-server-start.bat"
@echo off
CD "%UserProfile%\Projects\2004scape-server\src\"
npm start
:: End
===== Server Update =====
notepad "%UserProfile%\Projects\2004scape-server\scripts\localhost-server-update.bat"
@echo off
start "" "https://github.com/2004Scape/Server/commits/main/"
git -C "%UserProfile%\Projects\2004scape-server\src" reset --hard
git -C "%UserProfile%\Projects\2004scape-server\src" pull origin "main" --rebase
echo If there are no updates, Ctrl + C to terminate, or Press any key to continue.
pause
CD "%UserProfile%\Projects\2004scape-server\src\"
npm run "clean" && pause
:: End
==== Streamlined ====
notepad "%UserProfile%\Projects\2004scape-server\scripts\localhost-server-update.bat"
@echo off
git -C "%UserProfile%\Projects\2004scape-server\src" reset --hard
git -C "%UserProfile%\Projects\2004scape-server\src" pull origin "main" --rebase
CD "%UserProfile%\Projects\2004scape-server\src\"
npm run "clean" && pause
:: End
===== Save Data Back-up =====
notepad "%UserProfile%\Projects\2004scape-server\scripts\localhost-save-backup.bat"
@echo off
tar -cvzf "%UserProfile%\Downloads\%RANDOM%-2004Scape-Server-localhost-Saves.tar.gz" -C "%UserProfile%\Projects\2004scape-server\src\data" "players"
echo 2004Scape Save Data Backed-up Successfully to Downloads
explorer "%UserProfile%\Downloads\"
pause
:: End
====== Launcher Shortcuts ======
===== Desktop =====
* Right-click Desktop -> New -> Shortcut
==== Server Start ====
"%UserProfile%\Projects\2004scape-server\scripts\localhost-server-start.bat"
2004Scape localhost Start
==== Client ====
http://localhost:80
2004Scape localhost
=== Icon ===
****
"%UserProfile%\Projects\2004scape-server\src\public\favicon.ico"
===== Start Menu =====
****
MKDIR "%AppData%\Microsoft\Windows\Start Menu\Programs\2004Scape\"
==== Shortcuts ====
* Right-click -> New -> Shortcut
explorer "%AppData%\Microsoft\Windows\Start Menu\Programs\2004Scape\"
=== Server Start ===
"%UserProfile%\Projects\2004scape-server\scripts\localhost-server-start.bat"
localhost Server Start
=== Client ===
http://localhost:80
localhost Client
== Icon ==
****
"%UserProfile%\Projects\2004scape-server\src\public\favicon.ico"
=== Update ===
"%UserProfile%\Projects\2004scape-server\scripts\localhost-server-update.bat"
localhost Server Updater
=== Save Backup ===
"%UserProfile%\Projects\2004scape-server\scripts\localhost-save-backup.bat"
localhost Save Data Back-up
=== Install Notes ===
https://wiki.realmofespionage.xyz/games;windows;2004scape_localhost
localhost Install Notes
====== Quick Commands ======
===== Execute =====
==== Server ====
CD "%UserProfile%\Projects\2004scape-server\src\" && npm start
"%UserProfile%\Projects\2004scape-server\scripts\localhost-server-start.bat"
==== Client ====
* http://localhost:80
===== Update =====
* https://github.com/2004Scape/Server/commits/main/
* :!: Running ''npm run clean'' requires starting the server once afterwards with an internet connection to download packages to start the server for playing offline
git -C "%UserProfile%\Projects\2004scape-server\src" reset --hard && git -C "%UserProfile%\Projects\2004scape-server\src" pull origin "main" --rebase && CD "%UserProfile%\Projects\2004scape-server\src\" && npm run "clean"
"%UserProfile%\Projects\2004scape-server\scripts\localhost-server-update.bat"
===== Save Data =====
==== Back-up ====
* :!: The ''tar'' command replaces ''Downloads\2004Scape-Server-localhost-Saves.tar.gz'' each time without back-up or date codes
explorer "%UserProfile%\Projects\2004scape-server\src\data\players\"
tar -cvzf "%UserProfile%\Downloads\2004Scape-Server-localhost-Saves.tar.gz" -C "%UserProfile%\Projects\2004scape-server\src\data" "players"
"%UserProfile%\Projects\2004scape-server\scripts\localhost-save-backup.bat"
==== Restore ====
* Expects ''Downloads\2004Scape-Server-localhost-Saves.tar.gz'' ((contents should look like ''\Downloads\2004Scape-Server-localhost-Saves.tar.gz\2004Scape-Server-localhost-Saves.tar\players\espionage724.sav''))
* :!: Backups made from the above [[#save_data_back-up|batch file]] need renamed to remove the ''%RANDOM%-'' characters to work as-is for the following ''tar'' command
* :!: The ''DEL'' command deletes existing files in the ''data\players'' folder
DEL /Q "%UserProfile%\Projects\2004scape-server\src\data\players\*"
tar -xvzf "%UserProfile%\Downloads\2004Scape-Server-localhost-Saves.tar.gz" -C "%UserProfile%\Projects\2004scape-server\src\data" "players"
===== npm =====
* Lists available ''npm'' commands
CD "%UserProfile%\Projects\2004scape-server\src\" && npm run
===== File Manager =====
==== Root ====
****
explorer "%UserProfile%\Projects\2004scape-server\src\"
==== Save Data ====
****
explorer "%UserProfile%\Projects\2004scape-server\src\data\players\"