Methods relating to targeting the RS client and detecting client states.

if SRL_DISABLE_REMOTEINPUT is defined. RemoteInput plugin will not be loaded. if SRL_USE_REMOTEINPUT is defined. RemoteInput will be automatically setup. if SRL_USE_REMOTEINPUT_DEBUG is defined. Debug() calls will drawn on the RS client.


ERSClientMode = (
    UNKNOWN,            // Unable to detect mode (likely not logged in yet)
    FIXED,              // Fixed mode
    RESIZABLE_CLASSIC,  // Resizable with "classic" gametabs or "fixed mode gametabs"
    RESIZABLE_MODERN    // Resizable with gametabs being grouped together at the bottom

The modes of the client.


function TRSClient.DetectClientMode(Update: Boolean): ERSClientMode;

Detects the client mode. If Update is True ClientModeChanged will be called. Uses the music tab so will return RS_CLIENT_UNKNOWN when not logged in. Are there any other cases where music tab won’t be visible?


procedure TRSClient.ClientModeChanged();

Anything that needs an alert when the client mode changes should override this.


function TRSClient.IsLoggedIn(): Boolean;
function TRSClient.IsLoggedIn(waitTime: Int32; interval: Int32 = -1): Boolean; overload;

Returns true/false whether there’s a player logged in or not.


WriteLn RSClient.IsLoggedIn();


procedure TRSClient.LoseFocus();
procedure TRSClient.LoseFocus(delay: Int32);

Loses focus if available. Maybe useful for antiban. You can optionally delay losing focus by passing in a delay.


procedure TRSClient.Setup();

RSClient setup method.


This is automatically called on the RSClient variable.