Quorum API Usage Guide
This guide explains how to use the Quorum API within your Visual Studio project to
interact with Roblox.
Prerequisites:
* A Visual Studio project set up.
* The Quorum API library (.dll file).
Steps:
1. Prepare the Project and Files:
* Switch to x64 Build: In Visual Studio, go to "Build" -> "Configuration
Manager". Under "Active solution platform", select "x64" from the dropdown. If it's
not available, click "New..." and choose "x64".
* Extract Files: From the Quorum API archive, extract the `QuorumAPI.dll` file
and the `bin` folder.
* Place Files: Move both the `QuorumAPI.dll` file and the entire `bin` folder
into the output directory of your project. This is typically located in `[Your
Project Folder]\bin\x64\Debug` or `[Your Project Folder]\bin\x64\Release`,
depending on your build configuration.
2. Add Reference:
* In your Visual Studio project, right-click on "References" in the Solution
Explorer.
* Select "Add Reference".
* Browse to the location of the Quorum API library .dll file.
* Select the library and click "Add".
3. Include Namespace:
* In your C# code files, add the following line at the top:
using QuorumAPI;
4. In your WinForms form class (usually Form1.cs), make sure to initialize the
QuorumModule like this:
private QuorumModule quorum;
public Form1()
{
InitializeComponent();
quorum = new QuorumModule();
quorum.StartCommunication();
}
5. Add a Manifest File:
* Right-click your project > Add > New Item > Application Manifest File.
* In the added file (app.manifest), find the <requestedExecutionLevel> line.
* Replace it with:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
6. API Functions:
* AutoUpdate Console:
QuorumAPI.QuorumModule._AutoUpdateLogs = false/true;
Enables or disables console logs with auto-update progress.
* Start Communication:
quorum.StartCommunication();
Initializes internal API communication. Call this before anything else.
* Stop Communication:
quorum.StopCommunication();
Cleans up internal API state. Optional, but recommended on shutdown.
* Attach by PID:
await quorum.Attach(pid);
Attaches to a specific Roblox process by its Process ID.
* Execute by PID:
quorum.Execute(pid, "script here");
Executes a script in the specific Roblox process.
* Execute Script (All Clients):
quorum.ExecuteScript(script);
Executes a script in all Roblox processes.
* AttachAPI (All Clients):
await quorum.AttachAPI();
Attaches to all Roblox proccesses.
* Kill Roblox:
QuorumAPI.QuorumModule.KillRoblox();
Closes the Roblox process.
* Auto Attach:
quorum.SetAutoAttach(true/false);
Enables/disables auto attach.
* Attach API (with result):
var result = await quorum.AttachAPI();
Returns an enum indicating the result. See Quorum States below.
* Is PID Attached:
bool isAttached = QuorumAPI.QuorumAPI.IsPIDAttached(pid);
Checks if attached to a specific process.
* Is Any Process Attached:
bool isAttached = quorum.IsAttached();
Checks if attached to any Roblox process.
* Set Attach Notification:
QuorumAPI.QuorumModule.SetAttachNotify("Title", "Text");
Sets a custom attach notification.
6. Quorum States:
These are possible values returned from `await quorum.AttachAPI()`:
Attaching
Attached
NotAttached
NoProcessFound
TamperDetected
Error
7. Basic Usage Example:
using QuorumAPI;
public partial class Form1 : Form
{
private QuorumModule quorum; // Adding Quorum Module
public Form1()
{
InitializeComponent();
QuorumAPI.QuorumModule._AutoUpdateLogs = true;
quorum = new QuorumModule();
quorum.StartCommunication(); // Starting communication. Very
Important!!
}
private async void InjectButton_Click(object sender, EventArgs e)
{
await quorum.AttachAPI();
}
private void ExecuteButton_Click(object sender, EventArgs e)
{
string script = richTextBox1.Text;
var result = quorum.Execute(script);
MessageBox.Show("Execute result: " + result.ToString());
}
private void KillButton_Click(object sender, EventArgs e)
{
QuorumAPI.QuorumModule.KillRoblox();
}
private void AutoAttachCheck_CheckedChanged(object sender, EventArgs e)
{
quorum.SetAutoAttach(AutoAttachCheck.Checked);
}
private void CheckStateButton_Click(object sender, EventArgs e)
{
bool isAttached = quorum.IsAttached();
MessageBox.Show(isAttached ? "Attached" : "Not attached");
}
private void SetAttachNotifyButton_Click(object sender, EventArgs e)
{
QuorumAPI.QuorumModule.SetAttachNotify("Quorum Executor",
"Successfully Attached!");
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
quorum.StopCommunication();
}
}