Table of Contents

Clan & Nexus

Clan

The clan family mirrors the in-game clan system: info, message of the day, and clan chat.

var clan = await rustPlus.GetClanInfoAsync();        // Response<ClanInfo?>
if (clan.IsSuccess)
{
    Console.WriteLine(clan.Data!.Name);
    foreach (var member in clan.Data.Members ?? [])
        Console.WriteLine($"  {member.SteamId} (role {member.RoleId})");
}

await rustPlus.SetClanMotdAsync("Welcome to the clan!");
var chat = await rustPlus.GetClanChatAsync();         // Response<ClanChatInfo?>
await rustPlus.SendClanMessageAsync("gg");

ClanInfo properties

GetClanInfoAsync() returns a ClanInfo snapshot with the following properties:

Property Type Description
ClanId long Unique identifier of the clan.
Name string Display name of the clan.
Created DateTime UTC timestamp when the clan was created.
Creator ulong Steam64 ID of the clan creator.
Motd string? Message of the day, or null if not set.
MotdTimestamp DateTime? UTC timestamp when the MOTD was last changed.
MotdAuthor ulong? Steam64 ID of the player who last changed the MOTD.
Logo byte[]? Raw bytes of the clan logo image, or null.
Color int? Clan colour as a packed ARGB integer, or null.
Roles IEnumerable<ClanRole>? Roles defined in this clan.
Members IEnumerable<ClanMember>? Current members of the clan.
Invites IEnumerable<ClanInvite>? Pending invitations to the clan.
MaxMemberCount int? Member cap, or null if uncapped.
Score long? Clan score, or null if not reported.

Optional fields are null when the server does not include them in the response.

ClanRole properties

Each ClanRole in ClanInfo.Roles describes a permission role:

Property Type Description
RoleId int Unique identifier within the clan.
Rank int Rank order; lower values are higher ranks.
Name string Display name of the role.
CanSetMotd bool May set the clan MOTD.
CanSetLogo bool May set the clan logo.
CanInvite bool May invite players.
CanKick bool May kick other members.
CanPromote bool May promote others.
CanDemote bool May demote others.
CanSetPlayerNotes bool May set officer notes on members.
CanAccessLogs bool May view clan audit logs.
CanAccessScoreEvents bool May view clan score events.

ClanMember properties

Each ClanMember in ClanInfo.Members:

Property Type Description
SteamId ulong Steam64 ID of the member.
RoleId int References ClanRole.RoleId.
Joined DateTime UTC timestamp when the member joined.
LastSeen DateTime UTC timestamp of last online activity.
Notes string? Officer notes attached to this member.
Online bool? true if currently online, null if not reported.

ClanInvite properties

Each ClanInvite in ClanInfo.Invites:

Property Type Description
SteamId ulong Steam64 ID of the invited player.
Recruiter ulong Steam64 ID of the member who sent the invite.
Timestamp DateTime UTC timestamp when the invitation was created.

Clan events

rustPlus.OnClanChatReceived += (_, message) =>
    Console.WriteLine($"[{message.ClanId}] {message.Name}: {message.Message}");

rustPlus.OnClanChanged += (_, e) =>
    Console.WriteLine($"Clan updated: {e.ClanInfo?.Name}");

OnClanChanged fires whenever the clan snapshot changes โ€” role assignments, member joins/leaves, MOTD updates, etc. โ€” and carries the full updated ClanInfo. It is a push broadcast from the server; no polling is required.

OnClanChatReceived fires for each individual clan chat message as it arrives. The two events are independent: a new message in chat fires only OnClanChatReceived, while structural clan changes (membership, MOTD, roles) fire only OnClanChanged.

Nexus

Nexus auth is used by servers participating in Rust's Nexus (cross-server) system.

var nexus = await rustPlus.GetNexusAuthAsync(appKey);   // Response<NexusAuth?>
if (nexus.IsSuccess)
    Console.WriteLine($"{nexus.Data!.ServerId} / {nexus.Data.PlayerToken}");