> ## Documentation Index
> Fetch the complete documentation index at: https://gabibou-ui.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Installation

> Choose a supported client loader or set up Gabibou UI in Roblox Studio.

A **client** is the part of a Roblox game that runs for one player. The interface must be created on the client so that player can see and use it. Choose one of the methods below.

## Supported client environment: remote loader

Use this method only in a client environment that supports both `loadstring` and `game:HttpGet`. Open that environment's client code editor, paste this line, and run it. The library file is [gabibou\_ui.luau on GitHub](https://github.com/Gabibou455/GabibouUI/blob/main/gabibou_ui.luau):

```lua theme={null}
local UI = loadstring(game:HttpGet('https://raw.githubusercontent.com/Gabibou455/GabibouUI/main/gabibou_ui.luau'))()
```

This line downloads the current file from the repository's `main` branch and stores the library in `UI`. Put the window and control code from the [Quickstart](https://gabibou-ui.mintlify.site/getting-started/quickstart.md) on the next lines in the same script. When it runs, the window appears in that player's game.

The `main` link follows repository changes. To pin a version, replace `main` in the URL with a published tag from [GitHub Releases](https://github.com/Gabibou455/GabibouUI/releases).

Standard Roblox Studio does not provide this loading route. Use the ModuleScript steps below in Studio.

## When the interface does not appear

Check the first error in your environment's output. It tells you which step needs attention:

| What you see | What to check |
| - | - |
| `loadstring` is missing | This environment cannot compile a downloaded source string. In Studio, use the ModuleScript steps below. |
| Download failed or `HttpGet` is unavailable | Check the URL and network access. The [complete remote example](https://github.com/Gabibou455/GabibouUI/blob/main/gabibou_ui/remote_example.luau) also tries optional `request`, `http_request` and `syn.request` functions. |
| Compile failed | Use the standalone `gabibou_ui.luau` file, rather than a GitHub HTML page or an individual extension. Keep the compiler's error text when reporting the problem. |
| `PlayerGui did not become available` | Run on the player's client after joining. The default window waits up to eight seconds for `PlayerGui`. Advanced integrations can supply their own Instance through `Parent`. |
| The key screen opens but verification fails | Check your key provider, callback and network configuration. The UI loading step has already completed; see [key providers](https://gabibou-ui.mintlify.site/examples/key-providers.md). |

The one-line loader above needs `HttpGet` before any library code can run. To use its download fallbacks, copy the complete remote example into your environment's editor and change its window and controls to your own. Optional clipboard functions are used for copying links; a visible manual link remains available when copying is unavailable.

Support depends on the functions and Roblox client context available in your environment. When reporting a problem, include its name, the first error and whether the key screen or window appeared. These details let a developer reproduce the failing step.

## Roblox Studio: ModuleScript and LocalScript

A **ModuleScript** stores reusable code that another script can load with `require`. A **LocalScript** runs on one player's client. Set them up in Studio's Explorer panel:

1. Find `ReplicatedStorage`. If it is not shown, open the **View** tab in Studio and turn on **Explorer**.
2. Right-click `ReplicatedStorage`, choose **Insert Object**, then choose **ModuleScript**. Rename it `GabibouUI`.
3. Open the standalone [`gabibou_ui.luau` source on GitHub](https://github.com/Gabibou455/GabibouUI/blob/main/gabibou_ui.luau), copy all of its contents, and paste them into the `GabibouUI` ModuleScript, replacing the starter code. Save the place.
4. In Explorer, open `StarterPlayer`, then `StarterPlayerScripts`. Right-click `StarterPlayerScripts`, choose **Insert Object**, then choose **LocalScript**. This is where your interface code goes.
5. Paste this loader at the top of that `LocalScript`:

```lua theme={null}
local ReplicatedStorage = game:GetService('ReplicatedStorage')
local UI = require(ReplicatedStorage:WaitForChild('GabibouUI'))
```

6. Paste the window and control lines from the [Quickstart](https://gabibou-ui.mintlify.site/getting-started/quickstart.md) immediately below those two lines. Press **Play** in Studio to test. The window should appear in the game view; check **View > Output** to see printed callback messages when you use a control.

Keep private credentials and key lists on the server, not in a LocalScript. See [server validation](https://gabibou-ui.mintlify.site/examples/server-validation.md) for a server-side example.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.