> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bloxcord.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Connect your Roblox experience directly to BloxCord with game.BloxCord:Invoke. Access dashboard features like ranks, logbooks, points, sessions, webhooks, and more directly in-game.

Every feature is exposed through a single [`BindableFunction`](https://create.roblox.com/docs/reference/engine/classes/BindableFunction) named `BloxCord`, parented to `game`. One entry point, one call signature, zero HTTP boilerplate.

```lua theme={null}
local BloxCord = game:WaitForChild("BloxCord")

local result = BloxCord:Invoke("methodName", arg1, arg2, ...)
```

<Info>
  The first argument to `:Invoke()` is always the **method name** (a string). The remaining arguments depend on the method and are documented per method in the [API Reference](/reference/ranking).
</Info>

## What You Can Do

<CardGroup cols={2}>
  <Card title="Ranking" icon="user-tag">
    Promote, demote, or move users through your group ranks.
  </Card>

  <Card title="Logbook" icon="book">
    File warnings, suspensions, demotions, and more with full side effects.
  </Card>

  <Card title="Points & Reputation" icon="coins">
    Read balances, award points, and pull reputation scores.
  </Card>

  <Card title="Sessions" icon="calendar-check">
    Host, mark, strike, and progress sessions straight from in-game.
  </Card>

  <Card title="Webhooks" icon="paper-plane">
    Fire configured Discord webhook templates with dynamic data.
  </Card>

  <Card title="Batching" icon="layer-group">
    Bundle up to 20 operations into a single request.
  </Card>
</CardGroup>

## Requirements

<Warning>
  The `BloxCord` object **only exists when the Org-Functions API is enabled** for your organization. If it is disabled in the dashboard, the object is never created and `game:WaitForChild("BloxCord")` will yield forever.
</Warning>

Before you can use any method:

<Steps>
  <Step title="Install the BloxCord GameLink">
    The `BloxCord V3.0 Communications` script and its `BloxCordInternal` package must be present in `ServerScriptService`.
  </Step>

  <Step title="Enable Org-Functions">
    Turn on **Org-Functions API** in your organization dashboard. This is the master switch for every method listed in this documentation.
  </Step>

  <Step title="Wait for the object">
    The `BloxCord` `BindableFunction` is created asynchronously at startup, so always resolve it with `game:WaitForChild("BloxCord")` rather than indexing `game.BloxCord` directly.
  </Step>
</Steps>

## A First Call

Here's the simplest possible use of the API, fetching a player's permissions the moment they join.

```lua theme={null}
local BloxCord = game:WaitForChild("BloxCord")

game.Players.PlayerAdded:Connect(function(player)
    -- Fetch a player's permissions and print them
    local permissions = BloxCord:Invoke("getUserPermissions", player)
    print(player.Name, "has permissions:", permissions)
end)
```

## How It Works

Most methods make a network round-trip to the BloxCord backend, so treat every call as **yielding**. Never call them inside tight loops or on the render step, and consider batching related work when you can.

<Tip>
  Wrap calls that touch the network in `task.spawn` if you need the caller to keep moving, and always check the response shape documented per method before assuming a value exists.
</Tip>
