Skip to main content
The Auto-Config system provides automated configuration management for LiquidBounce, allowing you to load pre-configured settings optimized for specific servers and protocols.

Overview

Auto-Config enables you to:
  • Load server-specific configurations from the cloud
  • Serialize and share your own configurations
  • Automatically apply optimal settings for different protocols
  • Sync configurations with metadata and validation

Core Components

AutoConfig Object

The main entry point for auto-configuration functionality is located at AutoConfig.kt:61.
suspend fun loadAutoConfig(autoConfig: AutoSettings) = withLoading {
    ClientApi.requestSettingsScript(autoConfig.settingId).use(::loadAutoConfig)
}

Configuration Metadata

Auto-Config stores comprehensive metadata about each configuration (AutoConfigMetadata.kt:33):
name
string
required
Configuration identifier
author
string
Creator of the configuration
serverAddress
string
Target server domain
protocolName
string
Minecraft protocol name (e.g., “1.20.1”)
protocolVersion
int
Protocol version number
clientVersion
string
LiquidBounce version used
date
string
Creation date
type
AutoSettingsType
Configuration type (RAGE, LEGIT, etc.)
status
AutoSettingsStatusType
Current status (BYPASSING, PATCHED, etc.)

Loading Configurations

From Cloud

// Reload available configs from API
AutoConfig.reloadConfigs()

// Load specific config
val autoConfig: AutoSettings = configs[0]
AutoConfig.loadAutoConfig(autoConfig)

From File

val reader: Reader = File("config.json").reader()
AutoConfig.loadAutoConfig(reader)

From JSON

val jsonObject: JsonObject = parseConfigJson()
AutoConfig.loadAutoConfig(jsonObject)

Creating Auto-Configs

Serialization

Create and export your current configuration:
val writer = File("my-config.json").writer()
AutoConfig.serializeAutoConfig(
    writer,
    includeConfiguration = IncludeConfiguration(
        includeBinds = true,
        includeAction = false,
        includeHidden = false
    ),
    autoSettingsType = AutoSettingsType.RAGE,
    statusType = AutoSettingsStatusType.BYPASSING
)

Include Configuration

Control what gets included in the serialized config (IncludeConfiguration.kt:23):
includeBinds
boolean
default:"false"
Include keybinds in the configuration
includeAction
boolean
default:"false"
Include action settings
includeHidden
boolean
default:"false"
Include hidden values

Protocol Validation

Auto-Config automatically validates protocol compatibility (AutoConfig.kt:211):
1

Protocol Detection

Extracts protocol information from the configuration metadata
2

Comparison

Compares with your current protocol version
3

ViaFabricPlus Integration

Automatically switches protocol if ViaFabricPlus is installed
4

User Notification

Displays warnings if protocols don’t match
If the config protocol doesn’t match your current protocol, you’ll receive a notification. With ViaFabricPlus installed, the protocol can be automatically switched.

Configuration Structure

Auto-Config files support two main structures:

Full Auto-Config

{
  "name": "autoconfig",
  "modules": { /* module settings */ },
  "spoofers": { /* spoofer settings */ },
  "author": "PlayerName",
  "date": "03/03/2026",
  "time": "14:30:00",
  "clientVersion": "1.0.0",
  "serverAddress": "example.com",
  "protocolName": "1.20.1",
  "protocolVersion": 763,
  "type": "RAGE",
  "status": "BYPASSING"
}

Modules-Only Config

{
  "name": "modules",
  "value": [ /* module configurations */ ]
}

Cloud Sync

Auto-Config integrates with the LiquidBounce API for cloud synchronization:
// Request settings list from cloud
val configs = ClientApi.requestSettingsList()

// Download specific configuration
val scriptReader = ClientApi.requestSettingsScript(settingId)
Cloud configs are fetched from the official LiquidBounce API and are regularly updated by the community.

Loading States

The system tracks loading state to prevent conflicts (AutoConfig.kt:63):
@Volatile
var loadingNow = false
    set(value) {
        field = value
        // After completion of loading, sync ClickGUI
        if (!value) {
            ModuleClickGui.sync()
        }
    }

Best Practices

Test Configurations

Always test auto-configs in a safe environment before using on important servers

Protocol Matching

Ensure the config protocol matches your target server’s version

Metadata Accuracy

Provide accurate metadata when creating configs to help other users

Regular Updates

Reload configs regularly to get the latest server-specific settings

Error Handling

The system includes comprehensive error handling:
try {
    configs = ClientApi.requestSettingsList()
    true
} catch (e: Exception) {
    logger.error("Failed to load auto configs", e)
    false
}
Always check the return value of reloadConfigs() to ensure successful loading.

Configuration System

Learn about the underlying configuration system

Module System

Understand how modules are configured

Build docs developers (and LLMs) love