# Client parameters ## Command-line interface The command-line interface takes four required parameters: * `worldid` * `modewhere` (`live`, `rc` or `wip`) * `lang` (`en`/`english`, `de`/`german`, `fr` or `pt`) * `game` (`game0` or `game1`) Each parameter is described in the applet parameter table below. `modewhat` is always set to `local`. All other parameters share their default value with the applet. A typical invocation looks like: ``` java -cp ... client 1 live en game0 ``` ## Applet The applet supports the following parameters: | Name | Default value | Description | |--------------------|---------------|------------------------------------------| | `advertsuppressed` | `0` | Disable adverts | | `affid` | `0` | Affiliate ID (see below) | | `cachesubdir` | `"runescape"` | Cache subdirectory | | `cookiehost` | | Settings cookie host | | `cookieprefix` | | Settings cookie name prefix | | `country` | `0` | Country ID | | `crashurl` | `null` | Override `error_loader_.ws` URL | | `game` | `0` | Game ID (see below) | | `haveie6` | `0` | Set if browser is Internet Explorer 6 | | `js` | `0` | Set if JavaScript is supported | | `lang` | `0` | Language ID | | `modewhat` | | See below | | `modewhere` | | See below | | `objecttag` | `0` | Set if applet loaded with `` tag | | `openwinjs` | `0` | Use JavaScript to open URLs in a new tab | | `pre142url` | `null` | Enable pre-Java 1.4.2 check | | `settings` | `""` | Settings cookie value | | `suppress_sha` | `null` | Disable SHA-1 validation in the loader | | `unsignedurl` | `null` | Enable unsigned applet check | | `worldid` | | World ID | Parameters without a default value listed in the table above are required by the applet. All other parameters are optional. ## Affiliate ID | ID | Description | |----|----------------------------------------------------------------------------------| | 0 | No affiliate | | 99 | Enables 'share details with business partners' checkbox in the registration form | ## Games | ID | Name | Command-line name | |----|------------------------|-------------------| | 0 | RuneScape | `game0` | | 1 | MechScape/Stellar Dawn | `game1` | At the time 550 was released, MechScape used the same engine as RuneScape. While changing the parameter affects the client in a small number of ways, the majority of differences between the two games is in the cache. When `game1` is used, the following changes are made in the client: * The default cache subdirectory used by the command-line interface is `"mechscape"` instead of `"runescape"`. * The "RuneScape is loading" text changes to "Mechscape is loading". * "(level: \)" after a player's username is changed to "(rating: \)". * The "Attack" option on players, if sent by the server, does not use combat levels to determine its priority dynamically. * The 3D login screen is always disabled, even in HD mode. * `::shiftclick` is enabled by default, instead of disabled. * The default fog colour is black in MechScape. * MechScape uses a different palette for recolouring players and objs. * MechScape supports four username prefixes and suffixes. * The box drawn around the current area in the world overview is white instead of red. * A "Face here" action is added to every menu where there is a "Walk here" action. MechScape was never released so the cache is unavailable. As such, OpenRS2 only supports `game0`. ## Languages | ID | Name | Command-line names | |----|------------|--------------------| | 0 | English | `en`, `english` | | 1 | German | `de`, `german` | | 2 | French | `fr` | | 3 | Portuguese | `pt` | The language parameter only controls the language of the strings hard-coded in the loader and client. The majority of strings are stored in the cache and are not translated. Presumably each language had a different cache at the time. However, only the English cache was archived. As such, OpenRS2 only supports English. ## `modewhat` | ID | Name | Command-line name | |----|------------------------|-------------------| | 0 | Live | `live` | | 1 | Release candidate (RC) | `rc` | | 2 | Work in progress (WIP) | `wip` | `modewhat` is primarily used to select which cache directory is used. The following table summarises the differences between each `modewhat` value: | | Live | RC | WIP | |------------------------------------------------------------------|------|----|-----| | **File store ID** | 32 | 33 | 34 | | **Allocate and release 100 KiB chunks to test `SoftReference`s** | N | Y | Y | ## `modewhere` | ID | Name | Command-line name | |----|--------|-------------------| | 0 | Live | `live` | | 1 | Office | `office` | | 2 | Local | `local` | The applet only supports the `live` and `office` environments. The command-line interface always uses the `local` environment. (The command-line names above are taken from an earlier revision where `modewhere` is specified on the command line.) `modewhere` is primarily used to control which server the client connects to. The following table summarises the differences between each `modewhere` value: | | Live | Office | Local | |----------------------------------|-----------------|-----------------|---------------| | **World hostname** | Applet codebase | Applet codebase | localhost | | **Game server primary port** | 43594 | 40000 + world | 40000 + world | | **Game server secondary port** | 443 | 50000 + world | 50000 + world | | **World web server port** | 80 | 7000 + world | 7000 + world | | **Website hostname** | www | www-wtqa | www-wtqa | | **CS2 errors shown in chat box** | N | Y | Y | | **FPS shown by default** | N | Y | Y | | **`::fps ` command enabled** | N | Y | Y | | **Advert refreshed** | Y | Y | N |