Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/BestProjectTeam/BestClient/llms.txt

Use this file to discover all available pages before exploring further.

The Components Editor is a dedicated fullscreen toggle page built into BestClient that gives you complete control over every BestClient and TClient module installed in the client. Rather than scattering individual on/off switches across multiple settings tabs, it gathers all 52 component toggles into a single organised panel with grouped categories, staged change tracking, discard warnings, and a post-apply restart prompt so you never accidentally lose a partial configuration.

Opening the Editor

Navigate to BestClient Settings → Components tab. The Components Editor occupies the full settings panel and replaces the normal settings content while it is open.

How Staging Works

Every toggle you flip in the Components Editor is held in a pending state — it is not written to the config or applied to the running client until you press Apply. If you try to close the editor or navigate away with unapplied changes, the editor warns you before discarding them. After you apply a new component mask the client shows a restart prompt, because most modules only fully start or stop during initialisation.
Applying the component mask always requires a client restart to take effect. The editor will prompt you automatically after you press Apply.
Do not edit bc_disabled_components_mask_lo or bc_disabled_components_mask_hi by hand in your config file unless you know exactly which bit corresponds to which module. Each integer encodes 31 component slots, and a wrong value will silently disable unrelated features.

Component Groups

Visuals

Visual modules control rendering effects that appear during gameplay and in menus.
ModuleDescription
Music PlayerIn-game music player HUD widget
Media BackgroundCustom video or image background for menus and in-game
OptimizerFPS optimisation including particle culling and FPS fog
AnimationsBestClient UI, chat, killfeed, and menu animations
Crystal LaserRifle and shotgun lasers rendered with crystal shards and icy glow
Focus ModeMinimises visual distractions by hiding names, effects, HUD, and chat
3D ParticlesFloating 3D cube or heart particles around your character
Custom Aspect RatioLetterbox or stretch the rendered game area to a custom aspect ratio
Jelly TeePhysics-based tee body deformation on movement
Player TrailGrenade, invisible, or ninja trail effect behind your tee
Motion BlurPrevious-frame blending motion blur
Flying Name PlatesName plates rendered like kites trailing behind players
KeystrokesOn-screen keyboard and mouse keystroke HUD displays
Eye ComfortWarm overlay to reduce eye strain during long sessions

Gameplay

Gameplay modules affect input timing, movement decisions, and race tools.
ModuleDescription
InputFast input, delta input, best input, Saiko+, and related input systems
Fast ActionsQuick-use action shortcuts for competitive play
Speedrun TimerConfigurable countdown speedrun timer HUD
Finish PredictionProgress bar and time estimate toward map completion
Auto Team LockAutomatically lock your team after joining it
Gores ModeEntity-like gores mode for visual clarity
Hook ComboHook combo popup with combo sounds

Others

Social and utility modules that operate outside of pure rendering or input.
ModuleDescription
Client IndicatorUDP presence indicator showing other BestClient users
Voice ChatIntegrated in-client voice communication system
Voice BindsPush-to-talk and voice command key bindings
Chat MediaInline image and GIF preview inside the chat window
Streamer ModeHides sensitive information for streaming and recording
MiscMiscellaneous utility helpers

TClient

TClient entries expose tabs, pages, and settings rows contributed by the upstream TClient fork. Disabling them removes their UI surface without affecting BestClient-native features.
ModuleDescription
Settings TabTClient settings tab in the main settings panel
Bind Wheel TabBind wheel tab entry
War List TabWar list management tab
Chat Binds TabChat bind shortcuts tab
Status Bar TabServer status bar tab
Info TabTClient info/about tab
Profiles PageProfile switcher page
Configs PageConfig file manager page
Visual SettingsTClient visual settings section
Anti-LatencyAnti-latency settings entry
Anti-Ping SmoothingPing smoothing settings entry
Auto ExecuteAuto-execute on connect settings
VotingVoting helper settings entry
Auto ReplyAuto-reply settings entry
Player IndicatorPlayer indicator settings entry
PetPet/companion settings entry
HUD (TClient)TClient HUD settings section
Frozen Tee DisplayFrozen tee visual indicator settings
Tile OutlinesMap tile outline settings
Ghost ToolsGhost replay tools settings
RainbowRainbow colour cycle settings
Tee TrailsTClient tee trail settings entry
Background DrawCustom background draw settings
Finish NameFinish name display settings

The Bitmask Under the Hood

Internally, the Components Editor writes to two config integers that together encode a 62-bit field (two signed 31-bit values):
bc_disabled_components_mask_lo 0
bc_disabled_components_mask_hi 0
Each bit position maps to one EBestClientComponent enum value defined in bestclient.h. When a bit is set, that component is disabled. Both values default to 0, meaning all components are enabled. The split into _lo and _hi exists because DDNet config integers are capped at 2147483647 (a signed 32-bit max), so each half covers components 0–30 and 31–54 respectively. The editor always writes both values atomically when you press Apply, so there is no risk of a partial save leaving the mask in a half-updated state.

Full Component Reference

The 55 registered EBestClientComponent slots (from bestclient.h) in order are:
COMPONENT_VISUALS_MUSIC_PLAYER
COMPONENT_VISUALS_LEGACY_RESERVED_2
COMPONENT_VISUALS_LEGACY_RESERVED_1
COMPONENT_VISUALS_MEDIA_BACKGROUND
COMPONENT_VISUALS_OPTIMIZER
COMPONENT_VISUALS_ANIMATIONS
COMPONENT_VISUALS_LEGACY_RESERVED_3
COMPONENT_VISUALS_CRYSTAL_LASER
COMPONENT_VISUALS_FOCUS_MODE
COMPONENT_VISUALS_LEGACY_RESERVED_4
COMPONENT_VISUALS_3D_PARTICLES
COMPONENT_VISUALS_ASPECT_RATIO
COMPONENT_GAMEPLAY_INPUT
COMPONENT_GAMEPLAY_FAST_ACTIONS
COMPONENT_GAMEPLAY_SPEEDRUN_TIMER
COMPONENT_GAMEPLAY_FINISH_PREDICTION
COMPONENT_GAMEPLAY_AUTO_TEAM_LOCK
COMPONENT_GAMEPLAY_GORES_MODE
COMPONENT_GAMEPLAY_HOOK_COMBO
COMPONENT_OTHERS_CLIENT_INDICATOR
COMPONENT_TCLIENT_SETTINGS_TAB
COMPONENT_TCLIENT_BIND_WHEEL_TAB
COMPONENT_TCLIENT_WAR_LIST_TAB
COMPONENT_TCLIENT_CHAT_BINDS_TAB
COMPONENT_TCLIENT_STATUS_BAR_TAB
COMPONENT_TCLIENT_INFO_TAB
COMPONENT_TCLIENT_PROFILES_PAGE
COMPONENT_TCLIENT_CONFIGS_PAGE
COMPONENT_TCLIENT_SETTINGS_VISUAL
COMPONENT_TCLIENT_SETTINGS_ANTI_LATENCY
COMPONENT_TCLIENT_SETTINGS_ANTI_PING_SMOOTHING
COMPONENT_TCLIENT_SETTINGS_AUTO_EXECUTE
COMPONENT_TCLIENT_SETTINGS_VOTING
COMPONENT_TCLIENT_SETTINGS_AUTO_REPLY
COMPONENT_TCLIENT_SETTINGS_PLAYER_INDICATOR
COMPONENT_TCLIENT_SETTINGS_PET
COMPONENT_TCLIENT_SETTINGS_HUD
COMPONENT_TCLIENT_SETTINGS_FROZEN_TEE_DISPLAY
COMPONENT_TCLIENT_SETTINGS_TILE_OUTLINES
COMPONENT_TCLIENT_SETTINGS_GHOST_TOOLS
COMPONENT_TCLIENT_SETTINGS_RAINBOW
COMPONENT_TCLIENT_SETTINGS_TEE_TRAILS
COMPONENT_TCLIENT_SETTINGS_BACKGROUND_DRAW
COMPONENT_TCLIENT_SETTINGS_FINISH_NAME
COMPONENT_OTHERS_MISC
COMPONENT_OTHERS_CHAT_MEDIA
COMPONENT_OTHERS_VOICE_SETTINGS
COMPONENT_OTHERS_VOICE_BINDS
COMPONENT_OTHERS_STREAMER
COMPONENT_VISUALS_JELLY_TEE
COMPONENT_VISUALS_PLAYER_TRAIL
COMPONENT_VISUALS_MOTION_BLUR
COMPONENT_VISUALS_FLYING_NAMEPLATES
COMPONENT_VISUALS_KEYSTROKES
COMPONENT_VISUALS_EYE_COMFORT
NUM_COMPONENTS_EDITOR_COMPONENTS
Legacy reserved slots (COMPONENT_VISUALS_LEGACY_RESERVED_1/2/3/4) occupy fixed bit positions but render no toggle in the UI; their bits are always preserved as-is to avoid shifting the mask of existing configs.

Build docs developers (and LLMs) love