# Interactive loading screens: cursor, buttons and opening links

> Make a FiveM loading screen interactive: enable the mouse with loadscreen_cursor, add music toggles, tabs and rules, open Discord and website links in the player’s browser with window.invokeNative('openUrl'), and keep it usable.

Source: https://fam-tools.com/guides/fivem-loading-screen-cursor-interactive · FAM Tools · published 2026-09-11 · updated 2026-09-11 · about 9 min

**Short answer.** Add `loadscreen_cursor 'yes'` to the loading screen’s manifest to show the mouse. Normal HTML buttons then work. Links do not navigate the loading screen — open them in the player’s browser with `window.invokeNative('openUrl', 'https://…')`, which only accepts http and https URLs.

## Key points

- `loadscreen_cursor 'yes'` shows the mouse on the loading screen.
- Buttons, tabs and toggles are ordinary HTML and JavaScript.
- Open external links with `window.invokeNative('openUrl', url)` — http/https only.
- Never navigate the loading screen page itself to another site.
- Keep interaction optional; the screen must also work untouched.

A long load is a captive audience. With the mouse enabled, a loading screen can let players read the rules in tabs, pause the music, browse staff or click through to your Discord — turning waiting time into onboarding. It takes one manifest line and a little JavaScript.

## Enabling the cursor

*fxmanifest.lua*

```lua
fx_version 'cerulean'
game 'gta5'

loadscreen 'index.html'
loadscreen_cursor 'yes'

files { 'index.html', 'style.css', 'script.js' }
```

## Opening links in the player’s browser

*script.js*

```javascript
function openExternal(url) {
  if (window.invokeNative) {
    window.invokeNative('openUrl', url); // opens the default browser
  } else {
    window.open(url, '_blank');         // when testing in a normal browser
  }
}

document.querySelector('#discord').addEventListener('click', () => {
  openExternal('https://discord.gg/yourinvite');
});
```

`invokeNative('openUrl')` hands the URL to the operating system, which opens it in the default browser. FiveM only accepts addresses starting with `http://` or `https://`.

> **Do not use plain <a href> links** — A normal link navigates the loading screen itself away from your page, leaving the player with a website instead of a loading screen until the game finishes. Always open external links with `openUrl`.

## Interactive elements worth adding

| Element | Why |
| --- | --- |
| Music play/pause and volume | The most requested control — see [audio and volume controls](/guides/fivem-loading-screen-audio-volume-controls) |
| Rules tabs | New players actually read them while waiting — see [rules and info](/guides/fivem-loading-screen-rules-and-info) |
| Discord / website / store buttons | Converts waiting time into community joins |
| Staff and team | Makes the server feel run by people — see [staff and team](/guides/fivem-loading-screen-staff-and-team) |
| Keybind cheat sheet | Answers the questions players ask in the first five minutes |

## Keeping it usable

- Large click targets — players are on a gaming mouse, often on a large screen.
- Nothing essential behind interaction: the screen must also work if nobody touches it.
- Remember choices (like muted music) with `localStorage` so the next join respects them.
- Do not trap focus or disable scrolling in text panels.

## Questions

### How do I show the mouse on my FiveM loading screen?

Add `loadscreen_cursor 'yes'` to the loading screen resource’s fxmanifest.lua.

### How do I open a Discord link from the loading screen?

Call `window.invokeNative('openUrl', 'https://discord.gg/yourinvite')` from a click handler. It opens the player’s default browser.

### Why does clicking a link break my loading screen?

A normal link navigates the loading screen page itself. Use `openUrl` instead of an `<a href>`.

### Can openUrl open any address?

Only addresses beginning with `http://` or `https://`.

## Related

- https://fam-tools.com/guides/fivem-loading-screen-audio-volume-controls
- https://fam-tools.com/guides/fivem-loading-screen-rules-and-info
- https://fam-tools.com/guides/fivem-loading-screen-html-tutorial
- https://fam-tools.com/guides/fxmanifest-loadscreen
