Skip to content

Initiator

The Initiator class in RadiantConnect provides flexible ways to initialize your client session and access Valorant services. This page will guide you through the different constructors, available properties, and how to work with the ClientData variable.

Info

Some APIs are locked to local client only, and will error during request (Noteable one is, 'ChatEndpoints'), and some endpoints just wont work without the game, such as 'GetLocalParty'.


Creating an Initiator

1. Using RSOAuth

You can initialize Initiator directly with an RSOAuth object. This is useful if you already have authentication tokens:

Authentication

To see the the different ways to get RSOData, see Authentication

C#
1
2
RSOData auth; // Do an authentication method.
Initiator initiator = new Initiator(auth);
  • Internally, this constructor creates a ValorantNet instance using the provided RSOAuth.
  • It then calls the Initialize method, which sets up endpoints and internal systems.

2. Using Local Client (Default)

The default constructor initializes the Initiator from the local Valorant client:

Local Client

To use the local client, valorant must be running.

C#
1
Initiator initiator = new Initiator();

Optional parameter:

C#
1
Initiator initiator = new Initiator(ignoreVpn: true);
  • ignoreVpn — if set to false, the initializer checks for running VPNs and throws an exception if any are detected.
  • The constructor sets up:
    • ValorantService client data
    • LogService for event logging
    • ClientData variable
    • All endpoint groups (ChatEndpoints, PVPEndpoints, etc.)
  • It also starts internal event listeners via LogService.InitiateEvents.

Note: In non-debug mode, the constructor waits up to 1 minute for the client to be ready, throwing a TimeoutException if it doesn’t become ready in time.


3. Using Riot Client

The default constructor initializes the Initiator from the local Valorant client:

Riot Client

To use the riot client authentication, riot client must be running AND ACTIVE.

C#
1
2
3
4
5
Initiator initiator = new Initiator(
    riotClient: true, // Required to be true 
    shard: LogService.ClientData.ShardType.NA
    ignoreVpn: true
);

Optional parameter:

C#
1
2
3
4
5
Initiator initiator = new Initiator(
    riotClient: true, // Required to be true 
    shard: LogService.ClientData.ShardType.NA
    ignoreVpn: true
);
  • riotClient — must be set to true for it to work.
  • shard — What region you're logging into.
  • ignoreVpn — if set to false, the initializer checks for running VPNs and throws an exception if any are detected.
  • The constructor sets up:
    • ValorantService client data
    • ClientData variable
    • All endpoint groups (ChatEndpoints, PVPEndpoints, etc.)

Initiator Properties

After initialization, Initiator exposes the following key properties:

  • Client — Contains client-specific information, see ClientData below.
  • ExternalSystem — Handles internal service connections (ValorantService, ValorantNet, LogService, ClientData).
  • Endpoints — Contains grouped endpoints for interacting with Valorant services:
    • ChatEndpoints
    • ContractEndpoints
    • CurrentGameEndpoints
    • LocalEndpoints
    • PartyEndpoints
    • PreGameEndpoints
    • PVPEndpoints
    • StoreEndpoints

You can access these endpoints to interact directly with Valorant systems.


ClientData Variable

The ClientData object contains information about the local client session:

C#
1
2
3
4
5
6
7
8
9
public record ClientData(
    ClientData.ShardType Shard,
    string UserId,
    string PdUrl,
    string GlzUrl,
    string SharedUrl
){
    public enum ShardType { Na, Latam, Br, Eu, Ap, Kr }
}
  • Shard — the server region the client is connected to.
  • UserId — Riot/Valorant account identifier.
  • PdUrl — Player Data API URL.
  • GlzUrl — Game Lifecycle API URL.
  • SharedUrl — Shared service URL for auxiliary requests.

Accessing ClientData:

C#
1
2
ClientData clientData = initiator.Client;
Console.WriteLine($"UserID: {clientData.UserId}, Shard: {clientData.Shard}");

This allows you to inspect the active session, determine region, and configure API calls accordingly.


Example: Full Initiator Usage

C#
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// Initialize from local client
Initiator initiator = new Initiator(ignoreVpn: true);

// Access client data
ClientData clientData = initiator.Client;
Console.WriteLine($"Connected to shard {clientData.Shard}, user {clientData.UserId}");

// Call an endpoint
var matchHistory = await initiator.Endpoints.Endpoints.PVPEndpoints.GetMatchHistoryAsync();
Console.WriteLine($"Matches retrieved: {matchHistory.Matches.Count}");