RobloxUserOnlineTracker 1.2.2

dotnet add package RobloxUserOnlineTracker --version 1.2.2
                    
NuGet\Install-Package RobloxUserOnlineTracker -Version 1.2.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RobloxUserOnlineTracker" Version="1.2.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RobloxUserOnlineTracker" Version="1.2.2" />
                    
Directory.Packages.props
<PackageReference Include="RobloxUserOnlineTracker" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add RobloxUserOnlineTracker --version 1.2.2
                    
#r "nuget: RobloxUserOnlineTracker, 1.2.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=RobloxUserOnlineTracker&version=1.2.2
                    
Install as a Cake Addin
#tool nuget:?package=RobloxUserOnlineTracker&version=1.2.2
                    
Install as a Cake Tool

RobloxUserOnlineTracker

RobloxUserOnlineTracker is a lightweight .NET library that allows you to track the online presence of Roblox users in real-time.

⚠️ This project is not affiliated with Roblox Corporation. Use at your own risk and comply with Roblox's Terms of Service.


✨ Features

  • ✅ Track multiple Roblox user IDs for presence changes.
  • 🔰 Supports .NET 5, .NET 6, .NET 7, .NET 8 and .NET 9.
  • 🏃‍♂️ Fully supports AOT compilation and trimming (.NET 6+).
  • ⏱️ Set custom tracking intervals.
  • 🪝 Event-driven architecture with two key events:
    • UserOnlinePresenceChanged — triggered when a user's online status changes.
    • TrackingErrorOccurred — triggered when an error occurs during tracking.
  • 👍 Easy to use.

🚀 Getting Started

Installation

Install the NuGet package:

dotnet add package RobloxUserOnlineTracker

Or via the NuGet Gallery.


Usage

Tracking example
using RobloxUserOnlineTracker;

var tracker = new RobloxUserOnlineTrackerClient(".ROBLOSECURITY_COOKIE_HERE");

tracker.UserOnlinePresenceChanged += (sender, args) =>
{
    Console.WriteLine($"User {args.UserPresence.User.Id} is now {args.UserPresence.Presence}");
};

tracker.TrackingErrorOccurred += (sender, ex) =>
{
    Console.WriteLine($"Error occurred: {ex.Message}");
};

long[] userIdsToTrack = { 123456, 789012 };
tracker.StartTracking(userIdsToTrack, trackInterval: 10000); // Every 10 seconds
Onetime call example
using RobloxUserOnlineTracker;

var tracker = new RobloxUserOnlineTrackerClient(".ROBLOSECURITY_COOKIE_HERE");

long[] userIds = { 123456, 789012 };
var usersStatusOnline = await tracker.GetUserOnlinePresenceAsync(userIds);
Real case example

In the following screenshots I have included a real use case. I decide to track the online status of myself and another test account and send a real-time notification to myself with Telegram using a bot. Finally I started the application in a Docker container.

Screenshot 1

Screenshot 2


📦 API Reference

RobloxUserOnlineTrackerClient - instantiable - disposable

Member Description
RobloxUserOnlineTrackerClient(string cookieValue) Initializes the tracker with a Roblox .ROBLOSECURITY cookie.
void Dispose() Releases the resources used by the client instance.
void StartTracking(long[] userIds, int trackInterval = 5000, CancellationToken cancellationToken = default) Begins polling user presence every N milliseconds (minimum 5000).
void StopTracking() Stops polling and clears tracked data.
Task<RobloxUserOnlinePresence[]> GetUserOnlinePresenceAsync(long[] userIds) Manually query user presence without event logic.
event UserOnlinePresenceChanged Fired when a user's online status changes.
event TrackingErrorOccurred Fired when an error occurs during tracking.

RobloxUserOnlinePresence - not instantiable - readonly fields - returned

Member Description
RobloxUser User Get the user informations as a RobloxUser object.
UserPresenceType Presence Gets the actual presence of the user.
string CurrentLocation Get the location name where the user is currently located. This information is only available if the user shares this information with you or publicly.
long? GameId Get the location ID where the user is currently located. This information is only available if the user shares this information with you or publicly.
Guid? GameInstanceId Get the instance ID of the location where the user is currently located. It can be used to join the user experience. This information is only available if the user shares this information with you or publicly.

RobloxUser - not instantiable - readonly fields

Member Description
string About Get the user about description.
DateTime Created Get the date and time when the user was created.
bool IsBanned Get if the user is banned.
bool HasVerifiedBadge Get if the user has the verified badge.
long Id Get the user ID.
string Username Get the user name.
string? DisplayName Get the user display name.

🛡 License

Licensed under the Mozilla Public License 2.0 (MPL-2.0).
You are free to use, modify, and distribute the source, provided that modified files are disclosed.

🔗 https://mozilla.org/MPL/2.0/


👨‍💻 Author

Marco Concas
GitHub


❤️ Support & Contributions

Pull requests and issues are welcome!
If you find this project useful, consider leaving a ⭐ on the repository.

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net5.0

    • No dependencies.
  • net6.0

    • No dependencies.
  • net7.0

    • No dependencies.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.