Singleplayer, main branch, scripts and Desktop/Start launchers on Windows + Linux + FreeBSD

Notes:

Information:

  • Combination of commands and scripts (not a repack)
  • All official files
  • Minimal dependencies (no Flatpak/containers)
  • CMD Windows, Bash Linux, sh FreeBSD
  • Easy save data back-ups (tar’s player .json all OSs)
  • XDG launcher with right-click options (Linux and FreeBSD)

Windows:

Linux:

  • Notes still use old 2004Scape/Server repo

FreeBSD:

  • 2025/05/23: Engine-TS updates locked to last npm-supporting commit

Other:

Enjoy!

8 Likes

Really nice, I appreciate the contribution.

1 Like

Updated FreeBSD notes!

1 Like

Updated Windows notes (notably Firewall rule)


Also runs on a Peloton bike with on-screen bike stats!

Latest arm64 Firefox and F-Droid Fennec sideload no-problem, and bike stats overlay via grupetto.

Also on official/Live 2004Scape servers:

4 Likes

is there anything about editing save info? trying to give myself admin rights and looking into commands. or could you point me in the direction i can get this info. thanks!

Works at 35,000 ft in Airplane Mode :stuck_out_tongue:

Sorry I’m not familiar with save editing:

For giving yourself admin though, I believe setting your account name in a .env with NODE_STAFF= would work (upstream .env) (--env-file= needs to be set on bun.exe or node.exe, not npm).


Edit: Type ::~help (commands need the ~ after this commit)

Setting NODE_DEBUGPROC_CHAR=: allows doing 3 : instead like :::help


There’s a hint on Discord about save editing: Discord

there’s no standalone save editor, you would have to boot the server in dev mode, log in and make changes, then boot back into prod mode

or copy the .sav to a server in dev mode, log in, make changes, copy back

FreeBSD video:

1 Like

Updated Linux notes!

  • Now Ubuntu with gnome-terminal
  • Notifications named 2004Scape instead of generic notify-send
  • Symlink for TimGM6mb SoundFont (info, other SFs)

1 Like

Updated Linux notes!

  • Debian 12.10 (Xfce with xfce4-terminal)
  • Java 17 (openjdk-17-jre-headless)
  • Latest Node.JS used from upstream (new PATH=$PWD:$PATH and --prefix usage)

And symlink tests for Windows for the SoundFont (SC55_zzdenis sounds good)

General Windows and Linux notes updates!

Linux:

  • Now openSUSE Tumbleweed + GNOME (kgx Terminal)
  • gnome-terminal, konsole, ptyxis, and xfce4-terminal drop-ins
  • Fluid GM SoundFont (easy to switch .sf2/distros like TimGM6mb/Debian)
  • zenity for notifications (previous was generic notify-send)

Windows:

1 Like

WebKitGTK has a MiniBrowser that works nicely to have 2004Scape standalone, and it supports native Wayland!

Works Live too:


On openSUSE MiniBrowser is provided by webkit2gtk4-minibrowser package (there’s gtk3/etc versions)

I launch with:

'/usr/libexec/libwebkitgtk-6_0-0/MiniBrowser' --autoplay-policy 'allow' --private --features='-PreferPageRenderingUpdatesNear60FPS' 'http://localhost:8888/rs2.cgi'

I’m not sure if PreferPageRenderingUpdatesNear60FPS is needed (I still get 70+ on vsynctester), but apparently there was a thing on iOS with iPhones and 120Hz screens where Safari would lock to 60Hz unless that setting was disabled.

1 Like

Updated Windows notes!

  • Updater script now firewall blocks incoming by-default
  • SC55_zzdenis SoundFont back (others had subtle pops in music)
  • Edge standalone connection drops resolved with tweaks
  • New updater script tailored for LAN play:

LAN Opener :sunglasses:

  • Removes custom SoundFont (low-end devices don’t handle large SFs)
  • Deletes default firewall block rule
  • Creates new firewall rule that allows LAN access via browser
  • Regular updater script resets firewall to block all (and can include a SF MKLINK)

Enjoy high-quality music on PC, run a quick shortcut for LAN, and play on another device like a Peloton bike :stuck_out_tongue:

2 Likes

This is very impressive, keep up the good work!

1 Like

Windows notes now uses msedge_proxy by-default for the client shortcuts!

"%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge_proxy.exe" --proxy-server="localhost:80" --kiosk --edge-kiosk-type="public-browsing" --new-window --window-size="830,640" --app="http://localhost:80/rs2.cgi"

It works good Live too:

World 2:

"%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge_proxy.exe" --kiosk --edge-kiosk-type="public-browsing" --new-window --window-size="830,780" --app="https://2004.lostcity.rs/client?world=2&detail=high&method=0"
1 Like

This is really cool, thanks for the hard work! I should really get a local instance running so I can play around with the code a bit, seems like fun!

2 Likes

Updated FreeBSD notes!

  • Java 24 and Node.js 23
  • Switched to new Engine-TS and Content repos
  • painting2.png used for icons/notifications (back to old favicon.ico)
  • SC55_zzdenis SoundFont
  • FreeBSD notes locked to last Node.js/npm supported commit (no Bun support)

Other:

  • Linux notes still use the old 2004Scape repo
  • Brief testing shows Windows 7 likely isn’t compatible (Node + security algos)
1 Like

Do you have a way to launch this on an android phone? Would love to be playing rs offline on plane flights and such!

1 Like

Not quite; last year I tried Termux but ran into something with Node dependencies (was before tsx stuff so might be different nowadays).

I’ve heard Google Pixels got a native Android terminal around March 2025 that apparently has a Debian environment. I have notes for Debian 12 that might work as a base and it might also work for Chromebook’s Linux environment.

Winlator might also work (it booted World of Warcraft 3.3.5 :stuck_out_tongue:). 2004Scape server worked through Wine with Node on FreeBSD in the past (pre-tsx).

I also have a small router box that could theoretically run a server with Linux config (Node.JS exists on OpenWRT).


Bun may run under Termux; I’ll likely try something eventually :stuck_out_tongue:

1 Like

Updated Windows notes!

  • Switched to new Engine-TS and Content repos
  • bun.exe used now (previously Node.js/npm)
  • Auto-fill login with sed script via Git’s sh.exe (notes)
  • .env file works easy with bun --env-file=localhost.env (notes)
  • Firewall rules and LAN opener removed for now (bun.exe uses random dir in temp and looks odd to try to firewall)

Save back-up batch is tuned for my NAS share for even quicker backups :stuck_out_tongue: That and the sed auto-fill log-in makes for even easier convenience!

Having sh.exe and bash.exe from Git will make future scripting more interesting :sunglasses: (like 2009Scape)

2 Likes