node-sro-proxy
SOURCE:
What is it?- Filter/Proxy framework written in ES6+ JavaScript using BabelJS and NodeJS v14+.
- This is designed to definitely be the easiest way of getting your own edits/custom stuff running.
- Connection is as stable and smooth like there "would be no proxy" when running in production.
- GatewayServer, AgentServer, DownloadServer filters with configuration.
- IP:PORT redirection system for multiple DownloadServer, AgentServer.
- Unlimited connections (RAM, CPU is your limit) - very low usage.
- Special API designed to allow easily implementing new back-end features or packet handles.
- Session detection (online/offline), updating in database, recording users to rows.
- Web APIs providing full CRUD over entire VSRO database.
- Multiple pre-built controllers to help getting you started creating new content straight away.
- Some fun stuff like modified weather packet (see src/controllers).
Basic Architecture
Prerequesities
- Extract
data folder from

to the project root (.bin files are for IP geolocation and Proxy).
- Inject
HWID.dll from
HWID_DLL into your client (comes from isolines SR_Proxy).
- NodeJS LTS:

- Silkroad Online game client & server (project is aligned with VSRO188).
- Yarn package manager:
npm i -g yarn
Setup
- Install rpm dependencies with
yarn --ignore-scripts.
- Setup
src/config/AgentServer.js,
src/config/GatewayServer.js and
src/config/DownloadServer.js accordingly or use ENV.
- Rename
src/config/Database.js.example to
Database.js and configure accordingly.
- Run
yarn install:db to create (or drop & create again) the initial database.
Launch in development mode
GatewayServer
yarn dev:GatewayServer
AgentServer
yarn dev:AgentServer
DownloadServer
yarn dev
ownloadServer
Launch in production mode
- GatewayServer
yarn GatewayServer
- AgentServer
yarn AgentServer
- DownloadServer
yarn DownloadServer
Other launching options:
- See
.bat or
.sh files for use-cases.
Create optimised production build:
yarn build
What else?- packet docs

- silkroad-security

- SequelizeJS (for MSSQL)

Contributions?- For bug reporting use issues.
- For code contributions do a pull request.
Built with ♡ by Artuuro @