OpenRVS-devs / OpenRVS

Source code for the OpenRVS Raven Shield patch
GNU General Public License v3.0
18 stars 4 forks source link

OpenRVS

By the OpenRVS team:

Thanks to: Tony, Psycho, Legacy, juguLator01, SMC and ShadowSquad clans, and the AllR6 community.

A patch to fix Red Storm Entertainment's mistakes (intentional and otherwise). Allows multiplayer again, enables more serious modding, implements some QOL fixes.

Installing or Updating OpenRVS (Client Instructions)

  1. Download the latest release ZIP from the Releases page.
  2. Stop your game if it's running.
  3. Extract the contents of the OpenRVS ZIP file to your game's system directory. For Steam, this is steamapps\common\Rainbow Six 3 Gold\system.
  4. Optionally adjust your FOV in openrvs.ini - see the [OpenRVS.OpenFOV] section.
  5. Launch the game! You'll see a list of servers to choose from, or you can join by IP address.

Installing or Updating OpenRVS (Server Instructions)

  1. Download the latest release ZIP from the Releases page.
  2. Stop your server process if it's running.
  3. Extract the contents of the OpenRVS ZIP file to your game's system directory.
  4. Edit RavenShield.mod in your game's Mods directory, and add the following lines. NOTE: The OpenRVS.OpenBeacon line should replace the IpDrv.UdpBeacon line. This may not be compatible with N4Admin installations.
    ServerActors=OpenRVS.OpenServer
    ServerActors=OpenRVS.OpenBeacon
    ServerActors=OpenRenderFix.OpenFix
    ServerPackages=OpenRenderFix
  5. Edit system/RavenShield.ini, and ensure that your ServerBeaconPort is set to exactly 1000 above your server's Port, and that BeaconPort is exactly 2000 above your server's Port.
  6. Launch the server!

NOTE: Server admins can ban users by IP address in the BanList.ini file, found in your game's Server directory.

Patching R6GameService.dll

The R6GameService.dll file contains code which makes requests to Ubisoft's historical infrastructure for the game, which is now shut down. This can result in lag or stutter.

To fix this, you can patch the file using ChrisWak's patcher, or simply replace the file with an already-patched version.

The OpenRVS Registry

Since v1.5, OpenRVS servers send an extra UDP beacon to a web server running openrvs-registry. This app tracks all known servers, healthchecks them to hide unhealthy serers, and automatically adds new servers to the list when the UDP beacon is received.

Since v1.6, the config key is RegistryServerHost instead of RegistryServerIP, and DNS domain names are supported (rather than just IP addresses).

The registry listens for beacons on UDP port 8080, and listens for server list requests on HTTP port 8080 (on the /servers URL).

The IP and port for the deployment can be configured in openrvs.ini:

[OpenRVS.OpenBeacon]
RegistryServerHost=api.openrvs.org
RegistryServerPort=8080

Local Development

Note: You should test your changes using this process BEFORE opening a pull request!

First, you will need to download Twi's Raven Shield SDK. Put this somewhere convenient (such as C:\rvssdk).

The SDK expects the OpenRVS code (both OpenRVS and OpenRenderFix directories) to be inside the Code Environment directory in the SDK folder. Be sure to copy \PATH\TO\GIT\REPO\{OpenRVS,OpenRenderFix} to \PATH\TO\SDK\Code Environment to operate on the latest version of your code.

  1. Open a command prompt in the SDK2 directory.
  2. Run "SDK ToolBelt.bat" to enter the CLI
  3. Run 160 to activate the SDK for Raven Shield v1.60
  4. Type compile to enter the compiler, and then type OpenRVS to compile OpenRVS. Address any errors or warnings if necessary. Type log to show more detail. Note: If you see an error regarding appPreExit, this can be ignored. This happens when building 1.60 code with the 1.56 compiler, and the compiled output will still be created successfully at \PATH\TO\SDK\OpenRVS.u
  5. Type strip to enter the symbol/docstring stripper, and then type OpenRVS.u to run it. This will reduce output file size by around 60%
  6. Copy OpenRVS.u and/or OpenRenderFix.u to your game directory's system folder (both client and server)
  7. Test your changes in-game by connecting to the server

Repeat the above process for OpenRenderFix instead of OpenRVS to compile changes to weapon rendering in multiplayer.

In order to enable debug logging, edit OpenLogger.uc and change false to true where instructed.

OpenRVS Libraries

We have included a number of reusable UnrealScript2 libraries in OpenRVS:

Version History

Release 1.6

Release 1.5

Release 1.4

Release 1.3

Release 1.2

Release 1.1

Release 1.0

Beta 0.9

Beta 0.8

Beta 0.7

Beta 0.6

Beta 0.5