# RSClient 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 ```pascal 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. - - - ## RSClient.DetectClientMode() ```pascal 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? - - - ## RSClient.ClientModeChanged() ```pascal procedure TRSClient.ClientModeChanged(); ``` Anything that needs an alert when the client mode changes should override this. - - - ## RSClient.IsLoggedIn() ```pascal 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. Example: ```pascal WriteLn RSClient.IsLoggedIn(); ``` - - - ## RSClient.LoseFocus() ```pascal 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`. - - - ## RSClient.Setup() ```pascal procedure TRSClient.Setup(); ``` RSClient setup method. ```{note} This is automatically called on the **RSClient** variable. ```