# Application Settings

Customize your application behavior, appearance, and integrations. ⚙️

***

## Overview

Application Settings give you full control over how your game behaves across all platforms and environments.

{% hint style="info" %}
**Access Settings**: Go to your application → Click **Settings** tab
{% endhint %}

***

## General Settings

### Basic Information

| Setting              | Description                                   | Example                                   |
| -------------------- | --------------------------------------------- | ----------------------------------------- |
| **Application Name** | Display name shown in dashboard and launcher  |                                           |
| **Description**      | Brief game description (supports markdown)    | "Epic fantasy adventure with multiplayer" |
| **Application ID**   | Unique identifier (auto-generated, read-only) |                                           |

***

### Application Icon

Upload a custom icon for your application:

**Requirements:**

* ✅ Format: PNG, JPG, or ICO
* ✅ Size: 512x512 pixels (recommended)
* ✅ Max file size: 5MB
* ✅ Transparent background supported

**Upload Steps:**

1. Click on the icon placeholder
2. Select image file
3. Adjust crop if needed
4. Click **Save**

{% hint style="success" %}
**Tip**: Use a square image with transparent background for best results!
{% endhint %}

***

## Control Panel

### App Status Control

Manage your app's availability and communicate status to players.

**Settings:**

| Setting              | Description                          | Default |
| -------------------- | ------------------------------------ | ------- |
| **Enable App**       | Enable or disable the app completely | ✅ true  |
| **Maintenance Mode** | Put app in maintenance mode          | ❌ false |
| **Alert Message**    | Display custom message to all users  | Empty   |

**How It Works:**

* **Enabled (Enable App: enabled)** - App appears normally in launcher, players can download and play
* **Maintenance Mode (Maintenance Mode: enabled)** - App visible but shows maintenance notice, download disabled
* **Disabled (Enable App: disabled)** - App hidden from launcher completely
* **Alert Message** - Custom message displayed on app card (works with any status)

**Use Cases:**

* **Maintenance Mode** - Display "Server maintenance in progress" during updates
* **Alert Message** - Announce "New DLC available!" or "Double XP Weekend!"
* **Disabled State** - Completely hide unreleased or deprecated games

**Example Alert Messages:**

```
"Server maintenance: 10:00 PM - 2:00 AM EST"
"New update available! Check patch notes."
"Double XP Event Active!"
"Beta Testing - Expect bugs and frequent updates"
```

{% hint style="info" %}
**Visibility:** Alert messages appear as banner on the app card in the launcher. Keep them short and actionable.
{% endhint %}

***

## Platform Settings

Configure platform-specific options for Windows, macOS, and Linux.

### Windows Platform

**Basic Settings:**

| Setting              | Description                             | Default |
| -------------------- | --------------------------------------- | ------- |
| **Enable App**       | Enable Windows platform for this app    | ✅ true  |
| **Link Only Mode**   | Launch button opens URL instead of game | ❌ false |
| **Link URL**         | URL to open when "Link Only" is enabled | Empty   |
| **Maintenance Mode** | Platform-specific maintenance           | ❌ false |

**Link Only Mode:**

When enabled, the "Play" button opens a website instead of launching the game.

**Use Cases:**

* Web-based games
* Browser-hosted games
* Redirect to external launchers (Steam, Epic)
* Early access/wishlist pages

**Example:**

```
isLinkOnly: true
linkUrl: "https://store.steampowered.com/app/123456/"

Result: "Play" button opens Steam page
```

***

**Primary Executable Configuration:**

| Setting                            | Description                     | Default |
| ---------------------------------- | ------------------------------- | ------- |
| **Executable Name**                | Name of the .exe file           | Empty   |
| **Display Name**                   | Display name for primary button | Empty   |
| **Abbreviated Name**               | Short name for UI               | Empty   |
| **Enable Custom Launch Arguments** | Enable custom launch arguments  | ❌ false |
| **Launch Arguments**               | Command-line parameters         | Empty   |

***

**Secondary Executable Configuration:**

| Setting                               | Description                               | Default      |
| ------------------------------------- | ----------------------------------------- | ------------ |
| **Enable Secondary Executable**       | Enable second executable option           | ❌ false      |
| **Secondary Executable Name**         | Name of secondary .exe file               | Empty        |
| **Secondary Display Name**            | Display name for secondary button         | Empty        |
| **Secondary Abbreviated Name**        | Short name for secondary                  | Empty        |
| **Enable Secondary Launch Arguments** | Enable arguments for secondary            | ❌ false      |
| **Secondary Launch Arguments**        | Command-line parameters for secondary     | Empty        |
| **Allow Simultaneous Execution**      | Allow both executables to run at once     | ❌ false      |
| **Play Button Display Mode**          | How to show options (Dropdown/TwoButtons) | 0 (Dropdown) |

**Display Modes:**

* **0 = Dropdown** - Single button with dropdown to select executable
* **1 = Two Buttons** - Two separate launch buttons side by side

**Common Use Cases:**

* 🎮 **Graphics API Selection** - DirectX vs OpenGL vs Vulkan
* 💻 **Architecture Options** - 32-bit vs 64-bit executables
* 🎨 **Build Variants** - Stable vs Experimental versions
* ⚙️ **Performance Modes** - Standard vs Low-Spec optimized

<figure><img src="/files/KPnqZseV8kQnymgslNEg" alt=""><figcaption></figcaption></figure>

**Player Experience:**

1. Player sees both options in launcher
2. Selects preferred executable
3. Launcher remembers their choice
4. Can switch anytime

{% hint style="info" %}
**User Preference:** The launcher automatically remembers each player's last selection for convenience.
{% endhint %}

***

### macOS Platform

| Setting              | Description              | Default |
| -------------------- | ------------------------ | ------- |
| **Enable App**       | Enable macOS platform    | ❌ false |
| **Executable Name**  | Name of the .app bundle  | Empty   |
| **Launch Arguments** | Command-line parameters  | Empty   |
| **Link Only Mode**   | Button opens URL instead | ❌ false |
| **Link URL**         | URL for link mode        | Empty   |
| **Maintenance Mode** | Platform maintenance     | ❌ false |

### Linux Platform

| Setting              | Description              | Default |
| -------------------- | ------------------------ | ------- |
| **Enable App**       | Enable Linux platform    | ❌ false |
| **Executable Name**  | Binary file name         | Empty   |
| **Launch Arguments** | Command-line parameters  | Empty   |
| **Link Only Mode**   | Button opens URL instead | ❌ false |
| **Link URL**         | URL for link mode        | Empty   |
| **Maintenance Mode** | Platform maintenance     | ❌ false |

{% hint style="warning" %}
**Platform Maintenance:** Use this to temporarily disable a specific platform (e.g., Windows only) while keeping others active.
{% endhint %}

{% hint style="warning" %}
**Admin Rights**: Only enable "Run as Admin" if absolutely necessary. Players will see UAC prompts.
{% endhint %}

**macOS-Specific Settings**

| Setting              | Description              | Example                     |
| -------------------- | ------------------------ | --------------------------- |
| **App Bundle**       | Name of the .app         |                             |
| **Launch Arguments** | Command-line parameters  | `--fullscreen`              |
| **Code Signing**     | Verify app signature     |                             |
| **Notarization**     | Apple notarization check | ✅ Required for macOS 10.15+ |

**Example Configuration:**

```
App Bundle: MyGame.app
Arguments: --fullscreen
Code Signing: Enabled
```

{% hint style="info" %}
**macOS Catalina+**: Apps must be notarized to run without warnings.
{% endhint %}

**Linux-Specific Settings**

| Setting               | Description             | Example              |
| --------------------- | ----------------------- | -------------------- |
| **Executable**        | Binary file name        |                      |
| **Launch Arguments**  | Command-line parameters | `--fullscreen`       |
| **Working Directory** | Directory to run from   |                      |
| **Dependencies**      | Required packages       | `libgl1, libasound2` |

**Example Configuration:**

```
Executable: game.x86_64
Arguments: --opengl-version=4.5
Directory: ./
```

{% hint style="warning" %}
**Dependencies**: Document required libraries in your README. Players may need to install them manually.
{% endhint %}

***

## Launch Configuration

### Launch Arguments

Customize how your game starts:

**Common Arguments:**

| Argument       | Purpose                  | Example                  |
| -------------- | ------------------------ | ------------------------ |
| `--fullscreen` | Start in fullscreen mode | `--fullscreen`           |
| `--windowed`   | Start in windowed mode   | `--windowed`             |
| `--resolution` | Set window resolution    | `--resolution=1920x1080` |
| `--quality`    | Graphics quality preset  | `--quality=high`         |
| `--language`   | Override game language   | `--language=es`          |
| `--debug`      | Enable debug mode        | `--debug`                |

**Custom Arguments:**

```bash
--server=myserver.com --port=7777 --username={player_name}
```

{% hint style="success" %}
**Variable Replacement**: Use `{player_name}`, `{player_id}` to inject player data into arguments!
{% endhint %}

***

## Advanced Settings

### Directory Configuration

| Setting                 | Description                      | Default |
| ----------------------- | -------------------------------- | ------- |
| **Root Directory Name** | Name of the app's root directory | `Apps`  |

**How It Works:**

The `rootName` defines the folder structure where your app is installed:

```
Launcher Directory/
└── Apps/                  ← rootName
    └── YourApp/
        ├── Game.exe
        ├── Data/
        └── Assets/
```

**Custom Root Names:**

You can customize this to match your branding:

```
rootName: "Games"       →  Launcher/Games/YourApp/
rootName: "Apps"        →  Launcher/Apps/YourApp/
rootName: "Content"     →  Launcher/Content/YourApp/
```

{% hint style="info" %}
**Coordination:** This should match the `mainAppSubdirectoryName` setting in your launcher's advanced settings for consistency.
{% endhint %}

***

## Auto-Update Settings

### Update Behavior

{% @mermaid/diagram content="stateDiagram-v2
\[\*] --> CheckUpdate: Launcher Starts
CheckUpdate --> UpdateAvailable: New Version Found
CheckUpdate --> UpToDate: No Update

```
UpdateAvailable --> Download: Auto-Download Enabled
UpdateAvailable --> Prompt: Manual Mode

Download --> Install: Download Complete
Prompt --> UserDecision: Ask Player

UserDecision --> Download: Player Accepts
UserDecision --> UpToDate: Player Declines

Install --> [*]: Ready to Play
UpToDate --> [*]: Ready to Play" %}
```

**Configuration Options:**

**Fully Automatic Updates**

* ✅ Check on every launch
* ✅ Download automatically in background
* ✅ Install before launching
* ⚡ Players always have latest version

**Best for:**

* Multiplayer games (version consistency)
* Frequent updates
* Critical bug fixes

**Ask Before Updating**

* ✅ Check on launch
* ❓ Ask player before downloading
* ⏸️ Player can postpone
* 🎮 Can play old version

**Best for:**

* Single-player games
* Large updates (>1GB)
* Player preference

**Manual Updates Only**

* ⏸️ No automatic checks
* 🔍 Player must click "Check for Updates"
* 🎮 Full player control

**Best for:**

* Beta versions
* Development builds
* Special circumstances

***

### Update Schedule

Control when updates are checked:

| Schedule         | Description                   | Check Frequency |
| ---------------- | ----------------------------- | --------------- |
| **Every Launch** | Check on every launcher start |                 |
| **Hourly**       | Check once per hour           | Moderate        |
| **Daily**        | Check once per day            |                 |
| **Manual**       | Only when player clicks       | Never automatic |

***

## File Verification

### Integrity Checking

Ensure game files are not corrupted:

{% @mermaid/diagram content="graph TD
Launch\[Player Clicks Play] --> Check{Verify Files?}
Check -->|Enabled| Scan\[Scan Game Files]
Check -->|Disabled| Play\[Launch Game]

```
Scan --> Compare[Compare Hashes]
Compare --> Valid{Files OK?}

Valid -->|Yes| Play
Valid -->|No| Repair[Download Missing/Corrupt Files]
Repair --> Play

style Launch fill:#4f46e5,stroke:#4338ca,color:#fff
style Play fill:#10b981,stroke:#059669,color:#fff
style Repair fill:#f59e0b,stroke:#d97706,color:#fff" %}
```

**Verification Options:**

| Option                | Description                | Impact                   |
| --------------------- | -------------------------- | ------------------------ |
| **None**              | No verification            |                          |
| **Quick Check**       | Verify critical files only | ⚡ Fast, basic protection |
| **Full Verification** | Check all files            |                          |
| **On Demand**         | Only when player requests  | ⚡ Fast, manual control   |

{% hint style="info" %}
**Recommended**: Use "Quick Check" for most games. Full verification for multiplayer/competitive games.
{% endhint %}

***

## Advanced Settings

### Custom Installation Paths

{% @mermaid/diagram content="graph LR
Default\[Default Path] --> Custom\[Custom Subdirectory]

```
Default --> A[C:/Games/GameLauncherCloud/MyGame/]
Custom --> B[C:/Games/GameLauncherCloud/custom-folder/]

style Default fill:#3b82f6,stroke:#2563eb,color:#fff
style Custom fill:#f59e0b,stroke:#d97706,color:#fff" %}
```

**Options:**

* **Default**: `{appname}/` (recommended)
* **Custom**: Any valid folder name (no special characters)

**Example:**

```
Default: MyAwesomeRPG/
Custom:  mmorpg-game/
```

***

### Prerequisites

Specify required software that must be installed:

| Prerequisite                   | Description           | Auto-Install |
| ------------------------------ | --------------------- | ------------ |
| **.NET Framework**             | .NET 6.0, 7.0, 8.0    |              |
| **Visual C++ Redistributable** | 2015-2022 versions    | ✅ Yes        |
| **DirectX**                    | DirectX 11/12 runtime |              |
| **Custom Prerequisites**       | Add download URL      | ❌ Manual     |

***

## Integrations

### Discord Rich Presence

Show game activity on Discord:

{% @mermaid/diagram content="graph LR
Game\[Your Game] --> Launcher\[Launcher]
Launcher --> Discord\[Discord Client]
Discord --> Status\[Playing MyGame]
Status --> Details\[Level 5 - Forest Area]

```
style Game fill:#4f46e5,stroke:#4338ca,color:#fff
style Discord fill:#5865f2,stroke:#4752c4,color:#fff" %}
```

**Configuration:**

* **Application ID**: Your Discord App ID
* **Large Image**: Game icon/logo
* **Small Image**: Status icon
* **Details**: Custom status text

**Example:**

```
Application ID: 123456789012345678
Details: {level} - {area}
State: {player_count} players online
```

{% hint style="info" %}
**Get Discord App ID**: Create an app at [Discord Developer Portal](https://discord.com/developers/applications)
{% endhint %}

***

### Webhooks

Receive notifications about events:

{% @mermaid/diagram content="sequenceDiagram
participant Game as Your Game
participant API as Game Launcher Cloud
participant Webhook as Your Webhook
participant Discord as Discord/Slack

```
Game->>API: Event Triggered
API->>API: Process Event
API->>Webhook: POST Event Data
Webhook->>Discord: Format & Send
Discord->>Discord: Show Notification" %}
```

**Supported Events:**

* 📥 Build uploaded
* 🚀 Build published
* 👥 New player registered
* 💥 Crash reported
* 📊 Milestone reached (downloads, etc.)

**Webhook URL:**

```
https://your-server.com/webhook/gamelauncher
```

***

## Control Panel

### Maintenance Mode

Temporarily disable access to your game:

{% @mermaid/diagram content="stateDiagram-v2
\[\*] --> Active: Normal Operation
Active --> Maintenance: Enable Maintenance
Maintenance --> Message: Show Custom Message
Message --> Active: Disable Maintenance

```
note right of Maintenance
    Players see maintenance
    message and cannot launch
end note" %}
```

**Use Cases:**

* 🔧 Server maintenance
* 🐛 Critical bug discovered
* 🔄 Major update deployment
* 📊 Database migration

**Configuration:**

* **Enable/Disable**: Toggle maintenance mode
* **Custom Message**: Explain why game is offline
* **Estimated Time**: When will it be back

**Example Message:**

```
🔧 Scheduled Maintenance

We're performing server updates to improve your experience.

Expected Downtime: 2 hours
Estimated Return: 15:00 UTC

Thank you for your patience!
```

***

## Danger Zone

### Destructive Actions

{% hint style="danger" %}
**Warning**: These actions are permanent and cannot be undone!
{% endhint %}

**⚠️ Delete Application**

Permanently delete this application, all builds, analytics, and settings. This cannot be recovered.

**Before Deleting:**

* ✅ Download any important data
* ✅ Export analytics reports
* ✅ Backup builds if needed
* ✅ Notify team members
* ✅ Remove from active launchers

***

## Best Practices

### ✅ Recommendations

**🎯 Launch Settings**

Test launch arguments on all platforms before releasing

**🔄 Auto-Update**

Enable automatic updates for multiplayer games

**🛡️ Verification**

Use file verification for competitive/online games

**🔔 Notifications**

Set up webhooks to monitor important events

***

## Next Steps

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>📦 Manage Builds</strong></td><td>Upload and deploy builds</td><td><a href="https://github.com/GameLauncherCloud/GameLauncherCloud-Gitbook/blob/main/docs/apps/broken-reference/README.md">https://github.com/GameLauncherCloud/GameLauncherCloud-Gitbook/blob/main/docs/apps/broken-reference/README.md</a></td></tr><tr><td><strong>🚀 Create Launcher</strong></td><td>Build your custom launcher</td><td><a href="/pages/1cNgvv5uy79qCeQbdGPa">/pages/1cNgvv5uy79qCeQbdGPa</a></td></tr><tr><td><strong>📰 Create News</strong></td><td>Engage players with updates</td><td><a href="/pages/uquAxcCnbM4zORBOKUyW">/pages/uquAxcCnbM4zORBOKUyW</a></td></tr></tbody></table>

***

{% hint style="success" %}
**Questions?** Contact <support@gamelauncher.cloud> or join our [Discord community](https://discord.com/invite/FpWvUQ2CJP)!
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gamelauncher.cloud/help/applications/app-settings.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
