Client settings reference

About 58 minutes to read

A user-facing reference to the settings exposed by the current Moonlight client, organized by the sidebar page where each control appears.

Updated against the client source on October 16, 2026.


#How to use this guide

This is a UI reference, not a dump of every internal compatibility key in the configuration schema. It documents controls that a customer can reach in the current client and identifies important conditional controls.

Labels used below:

  • Conditional — shown only for the selected device, backend, model, edition, or enabled parent control.
  • Per class — stored separately for the active weapon class.
  • More settings — on the Aim and Flick pages, rarely changed settings sit in a more settings bar at the bottom of their card. Click it to show them; the bar names what it holds and shows how many are changed from their defaults. Each bar remembers whether you left it open.
  • AI, Color, and Console — available only in the named product edition.

Most controls save automatically and are pushed to the running engine. Controls that rebuild capture, detection, or hardware connections may require Stop Moonlight followed by Start Moonlight. The relevant sections call this out.

#Current client layout

The current client no longer uses one large Settings tab. It uses a grouped sidebar and a three-pane workspace.

AreaPurpose
ConfigSelects the active edition-scoped configuration profile.
Refresh ListRescans the config folder for the current edition. Next to Config in the top bar.
ClassSelects the active weapon class. Aim, Flick, Trigger, RCS, Humanizer, and plugin state can change with it.
EditionRead-only; set at sign-in.
Toggle Debug ViewShows or hides the Live Preview; remembered per config.
Full screen (F11)Borderless full screen; also F11.
✦ AssistantOpens the tuning assistant chat beside the pages.
Settings paneHolds the collapsible cards for the selected sidebar page.
Center paneShows the unified live preview or a full-size Configs, Marketplace, Logs, plugin-authoring, or RCS-editor view.
Monitor paneShows capture, detection, inference, latency (including the Output delay prediction uses), target lock, weapon class, and device/controller telemetry.
Output LogA collapsible bottom strip for recent runtime messages. Shows FPS, DPS and LAT.
Start / Stop MoonlightStarts or stops the active capture, detection, and output pipeline.
Reset SessionClears session state without changing the saved profile.
  • AIM ENGINE
    • Aim
    • Flick
    • Trigger
    • Recoil Control
  • VISION
    • Capture
    • Detection — AI and Console
    • Color — Color edition
    • Prediction
    • Filtering
  • SYSTEM
    • Game Profiles
      • Calibration
      • OCR
      • Template Match
      • AI Weapon
    • Configs
    • Input Device
    • Plugins — AI and Console
      • Library
      • Code Editor
      • Designer
    • Marketplace — AI and Console
      • Game Packs
      • Targeting Models
      • Plugins
      • Configs
    • Logs

Enabled plugins can also create an Active Plugins section with a dedicated settings page for each running plugin. The account card at the bottom of the sidebar has Log out.

#Setting scope and edition behavior

ScopeWhat it means
Global profile settingApplies to the active config regardless of weapon class.
Per-class settingLoads from the selected class. Switching Class can immediately change the behavior.
Edition-scoped configAI, Color, and Console keep separate config folders. A profile is not activated across editions.
Authenticated editionThe signed-in product determines which pages and hardware choices appear. There is no current in-app edition switch.

Edition differences:

EditionCurrent differences
AIDetection, Plugins, and Marketplace are available.
ConsoleUses the AI detection surface, limits Capture to Capture Card, Magewell SDK or PS5 Remote Play, and limits output to Titan Two, Makcu Controller, Ferrum Controller or PS5 Remote Play. Moonlight Stream is two PCs only, so Console does not offer it.
ColorUses Color instead of Detection and omits Plugins and Marketplace. PS5 Remote Play is not available.

#Aim

Controls continuous target acquisition and tracking. All behavior in this chapter is per class unless noted otherwise. These are global (one value for the config): Aim Multiplier, Restricted Tracking X/Y, Manual Override Delay and Stick Sensitivity. The humanizer is always on; its Strength is per class and set separately on Aim, Flick and Recoil Control.

The old PID, Aim V2, Legacy, WindMouse, GAN, and Human selections are no longer client aim engines. The current choices are Moonlight Aim and, where supported, Script.

#Activation & Access

SettingWhat it does
AimMaster switch for continuous aim tracking.
Aim EngineSelects Moonlight Aim or a plugin-backed Script provider. Script is not offered in Color edition.
ProviderConditional: Script. Selects the enabled plugin that supplies aim output.
Apply our humanizationConditional: Script. Applies Moonlight profile humanization to the plugin output.
Target StabilityConditional: Script. Mouse output only; global. Waits until the same target has been selected for this long before the plugin's aim output is sent. Checkbox with a slider shown in ms, 0–241.7 ms, default 91.7 ms; off by default. Does not affect Moonlight Aim, Flick or controller output.
Aim ModeHold runs while the key is held, Toggle changes state on each press, and Always On does not require a held key.
Aim KeySelects one or more activation buttons supported by the active input device.
ADS KeyIdentifies the aim-down-sights input so hip and ADS response can differ.
Hip Aim SpeedConditional: ADS Key. Scales Aim Speed while not aiming down sights. 10–200%, default 70%; choosing Disabled for ADS Key resets it to 100%.
Foot PedalEnables a second keyboard or mapped input as an aim activator.
Foot Pedal KeyConditional: Foot Pedal on. Selects the secondary activation key.
Activation DelayWait time between valid activation and the first aim movement. 0–300 ms, default 150 ms.
Max Aim Time (checkbox)Stops aiming this long after the crosshair lands on the target (not from the key press). Release the key to aim again.
Max Aim TimeConditional: the Max Aim Time checkbox is ticked. 0.00–10.00 s, default 3.00 s; 0 s stops on landing.

The legacy Aim Preset selector is retained only for config compatibility and is not part of the current customer UI.

#Targeting & Position

SettingWhat it does
FOV ShapeCircle, Ellipse or Rectangle. Circle uses Aim FOV; Ellipse/Rectangle use FOV Width, FOV Above and FOV Below. Dynamic FOV and Shrink FOV scale the whole shape.
FOV WidthConditional: FOV Shape is Ellipse or Rectangle. Full width, 2–800 px, default 70.
FOV AboveConditional: FOV Shape is Ellipse or Rectangle. Reach above the crosshair, 1–400 px, default 35.
FOV BelowConditional: FOV Shape is Ellipse or Rectangle. Reach below the crosshair, 1–400 px, default 35.
Aim FOVConditional: FOV Shape = Circle. Radius around the calibrated crosshair in which a target can be selected. 1–300 px, default 35.
Dynamic FOVScales the search radius using the detected target size.
Shrink FOV While AimingKeeps the normal FOV for acquisition, then contracts toward Aiming FOV Size as the locked target approaches the crosshair. Works with or without Dynamic FOV.
Aiming FOV SizeConditional: Shrink FOV While Aiming. Sets the locked search radius, 1–300 px, default 20.
Reference SizeConditional: Dynamic FOV. Target size used as the scaling reference.
FOV RangeConditional: Dynamic FOV. Min and Max Dynamic FOV radius, 1–300 px (defaults 20 / 50).
X OffsetMoves the selected aim point left or right, as a percentage of the target box width (-99 to 99%).
Y OffsetMoves the selected aim point up or down, as a percentage of the target box height (-99 to 99%), so it stays on the same part of the body at any distance; positive moves up. Used for Body classes (Detection → Classes).
Icon Y OffsetConditional: the selected model has a class set to Icon in Detection → Classes. Icon classes (an icon, tag or health bar the game draws above the enemy) are aimed from the bottom edge of the icon box, moved by this many pixels: -300 to 300, measured at the 1920-wide reference capture and scaled to your capture resolution, so one value works at 1080p and 1440p; negative moves below the icon. Body classes use Y Offset.
Target DeadzoneStops small corrections once the aim point is sufficiently close to the target. 0–20 px, default 0.5; 0 disables.
Enable Aim BonesOff uses the neutral Lower Chest point.
Aim BonesConditional: Enable Aim Bones. Selects eligible target points: Top Head, Upper Head, Head, Neck, Upper Chest, Chest, Lower Chest, Upper Stomach, Stomach, Lower Stomach, Pelvis. Most meaningful when the detector supplies keypoints/pose output.
Vertical ScaleConditional: Enable Aim Bones. 0.10–2.00, 1.00 neutral.

#Moonlight Aim

SettingWhat it does
Aim MultiplierMouse devices only. Overall mouse response for this page, 0.01–10.00x, default 1.00x.
Aim SpeedPrimary movement authority toward the target.
Split Aim Speed X/YAllows the vertical speed to differ from horizontal speed.
Aim Speed YConditional: Split Aim Speed X/Y. Sets vertical movement authority.
Track StrengthControls how tightly Aim follows continuing target motion after acquisition.
Restricted Tracking XHolds back physical horizontal input while Aim is active, 0–100%. Controller output: default 79%; 0% keeps full manual adjustment, 100% gives Moonlight full authority. Moonlink, Moonlink Direct, Ferrum, MAKCU (both APIs) and Medius: default 0% = off; sets how strongly physical movement restricts injected tracking.
Restricted Tracking YThe same for vertical input. Lower it to keep your own pull-down against recoil.
Manual Override DelayConditional: controller output, or Moonlink, Moonlink Direct, Ferrum, MAKCU (Legacy API) and Medius. On by default. Hold physical mouse movement or right-stick deflection for this long (25–2000 ms, default 500 ms) to take manual control while Restricted Tracking is active; aim resumes when the mouse stops or the stick returns to neutral.
Stick SensitivityConditional: controller output. In-game stick sensitivity (1–10, default 5.5), Deadzone compensation (No deadzone 0%, Small 5%, Large 10%, Very large 15%, Custom) and Exact compensation (0–30%). Shared with Flick. See Tune aim for a controller.
X DampenerReduces horizontal correction response. 0–10; 0 = hard snap-on, 10 = long glide-in. Mouse devices only.
Y DampenerReduces vertical correction response.

#Physical Control

This device-dependent card appears only when Moonlight can read useful physical motion feedback.

SettingWhat it does
Physical Control AssistEnables shared control driven by real physical movement.
Assist AmountSets how much configured Aim movement remains while the user is moving the mouse.
Stationary AssistSets how much assistance remains after physical movement stops.
Activation SensitivitySets how easily physical motion activates shared control.
Physical input sourceRead-only status showing whether usable device feedback is available.

#Humanizer

The Humanizer is part of Aim and always on. It uses its built-in movement profile; personal mouse training (ML Mouse) is retired, so there is nothing to record or train.

SettingWhat it does
StrengthHow strongly AB Curves shapes the movement path, 1–100%, default 45%. The learned report texture always runs at full strength, except on Medius: the device renders the movement, so Moonlight's own report texture is not used (Strength, Tracking Pauses and Prefix Strength still apply).
Continuous Tracking PlannerOn/off, per weapon class, default on; mouse outputs only, not in the Color edition. On: while you track a moving target, a learned human tracking model shapes the movement (set with Tracking Pauses and Prefix Strength). It never runs on a still target. Off: the normal aim controller follows the target directly, and Tracking Pauses and Prefix Strength have no effect (they are greyed out).
Tracking PausesMouse outputs only; not in Color; only while Continuous Tracking Planner is on. How much of the learned pauses to keep: the wait before following a moving target and the hold after catching up. 0–100%, default 100% (the trained timing). Lower values shorten every pause and cap it at that percentage of 250 ms; 0% follows on the next step. Lower it if aim is late to follow a moving target.
Prefix StrengthMouse outputs only; not in Color; only while Continuous Tracking Planner is on. How much of the movement already underway the tracking humanizer carries when it takes over. 0–100%, default 100%: the fastest start, but it can carry past the target. 0% starts from rest. Lower it if aim swings past a target as tracking begins. A start from rest never overshoots.
ProfileRead-only diagnostic showing whether a profile is loaded and summarizing recorded sessions, engagements, jitter, overshoot, and settling.
Post-Click Y SuppressionTemporarily stops vertical Aim correction after a shot.
Suppression DurationConditional: Post-Click Y Suppression. Sets the suppression window, 0–1000 ms, default 150 ms.
Tracking Reaction DelayMin/Max 0–500 ms, default 0 / 0 = Off. Once the first flick lands, one settle period is picked from the range, then aim returns to live tracking. Equal values give a fixed delay; physical input and recoil control continue.
Direction Change DelayMin/Max 0–250 ms, default 0 / 0 = Off. One delay per confirmed direction reversal.
Finish current correctionConditional: Direction Change Delay Max above 0. Continues to the aim point active before the reversal.
Return to live trackingMin/Max 0–500 ms, default 20 / 20. Blends back to the live target after landing settle or a direction-change reaction. Always shown.

Color edition shows Strength, Post-Click Y Suppression, Tracking Reaction Delay and the direction-delay controls.

#Guided Setup

Guided Setup, in the Activation & Access card header, walks through the page's controls one at a time: Activation & Access, then Targeting & Position, then Moonlight Aim. It needs the Assistant panel. On controllers it first asks for In-game Stick Sensitivity and Deadzone Compensation (No deadzone 0%, Small 5%, Large 10%, Very large 15%, or an exact 0–30%).


#Flick

Controls snap-to-target movement. Flick settings are per class.

On controller outputs (Titan Two, Makcu Controller, Ferrum Controller and PS5 Remote Play), the client currently redirects the Flick page to Trigger because those controller paths do not expose the desktop Flick surface.

#Activation & Access

SettingWhat it does
FlickMaster switch for Flick.
Flick ModeSelects Hold, Toggle, or Always On activation.
Flick KeySelects the activation button supported by the current device.
Foot PedalEnables a second activation key.
Foot Pedal KeyConditional: Foot Pedal on. Selects the secondary key.
Activation DelayWait time before the flick begins. 0–300 ms, default 150 ms.
Max Flick TimeWhen on, Flick stops this long after the crosshair reaches the target. Release the key to flick again.
Max Flick Time durationConditional: Max Flick Time. 0.00–10.00 s, default 3.00 s; 0 s stops on arrival.
Post-Shot Flick PausePauses Flick briefly after a shot, useful for semi-automatic weapons.
Pause DurationConditional: Post-Shot Flick Pause. Sets the post-shot pause, 0–500 ms, default 100 ms.

The legacy Flick Preset selector is hidden in the current UI.

#Targeting & Position

SettingWhat it does
FOV ShapeCircle, Ellipse or Rectangle (default Circle).
FOV WidthConditional: Ellipse/Rectangle. Full width in capture pixels, 2–800, default 66.
FOV Above / FOV BelowConditional: Ellipse/Rectangle. Reach above/below the crosshair, 1–400 px, default 33. Keep Below short to ignore targets on the ground.
Flick FOVConditional: Circle. Search radius around the crosshair for a flick target, 1–400 px, default 33.
Dynamic FOVScales Flick FOV using target size.
Shrink FOV While FlickingKeeps the normal Flick FOV for acquisition, then contracts toward Flicking FOV Size while Flick is active. Works with or without Dynamic FOV.
Flicking FOV SizeConditional: Shrink FOV While Flicking. Sets the engaged radius, 1–400 px, default 20.
Reference SizeConditional: Dynamic FOV. Target-size reference for scaling.
FOV RangeConditional: Dynamic FOV. Minimum and maximum Dynamic FOV radius, 1–400 px (defaults 20 / 50).
X Offset / Y OffsetPercent of the target box width/height (-99 to 99%). Positive X moves the aim point left, positive Y moves it up.
Icon Y OffsetConditional: the selected model has a class set to Icon in Detection → Classes. As on Aim, for Flick: pixels from the bottom edge of an Icon box (-300 to 300, scaled to your capture resolution); negative moves below the icon. Body classes use the X Offset / Y Offset percentages.
Target DeadzoneStops small corrections near the selected flick point. 0–20 px, default 0.5; 0 disables.
Enable Flick BonesTurns on bone selection for Flick.
Flick BonesConditional: Enable Flick Bones. Selects eligible target points, the same 11 as Aim Bones (Top Head … Pelvis); most meaningful when the detector supplies keypoints/pose output.
Vertical ScaleConditional: Enable Flick Bones. 0.10–2.00, 1.00 neutral.

#Moonlight Flick

SettingWhat it does
Flick MultiplierConditional: mouse outputs. Overall Flick mouse response, 0.01–10.00x, default 1.00x. Global for the config, not per class.
Aim SpeedPrimary flick movement authority.
Track StrengthFollow-up authority while the target continues moving.
Restricted Tracking X / Restricted Tracking Y0–100%. Controller: suppresses horizontal/vertical physical stick input while Flick is active, default 79%. Mouse devices (Moonlink, Moonlink Direct, Ferrum, MAKCU incl. New API, Medius): suppresses opposing mouse movement, default 0%.
Manual Override DelayConditional: Moonlink, Moonlink Direct, Ferrum, MAKCU (Legacy API), Medius, or controller output. When checked (default on), sustained opposing input for this long (25–2000 ms, default 500 ms) temporarily takes manual control; Flick resumes when the mouse stops or the stick returns to neutral.
Stick SensitivityConditional: controller output. In-game stick sensitivity (1–10), Deadzone compensation preset (No deadzone 0%, Small 5%, Large 10%, Very large 15%, Custom) and Exact compensation (0–30%). Shared with Aim.
X Dampener / Y DampenerReduces response independently on each axis. 0–10; defaults X 0, Y 1.

#Flick Humanizer

SettingWhat it does
StrengthHow strongly AB Curves shapes the Flick path, 1–100%, default 45%. The learned report texture always runs at full strength, except on Medius: the device renders the movement, so Moonlight's own report texture is not used (Strength, Tracking Pauses and Prefix Strength still apply).
Continuous Tracking PlannerOn/off, per weapon class, default on; mouse outputs only, not in the Color edition. On: while you track a moving target, a learned human tracking model shapes the movement (set with Tracking Pauses and Prefix Strength). It never runs on a still target. Off: the normal aim controller follows the target directly, and Tracking Pauses and Prefix Strength have no effect (they are greyed out).
Tracking PausesMouse outputs only; not in Color; only while Continuous Tracking Planner is on. How much of the learned pauses to keep: the wait before following a moving target and the hold after catching up. 0–100%, default 100% (the trained timing). Lower values shorten every pause and cap it at that percentage of 250 ms; 0% follows on the next step. Lower it if aim is late to follow a moving target.
Prefix StrengthMouse outputs only; not in Color; only while Continuous Tracking Planner is on. How much of the movement already underway the tracking humanizer carries when it takes over. 0–100%, default 100%: the fastest start, but it can carry past the target. 0% starts from rest. Lower it if aim swings past a target as tracking begins. A start from rest never overshoots.
ProfileRead-only learned-profile status.
Post-Click Y SuppressionSuppresses vertical Flick correction immediately after a click.
Suppression DurationConditional: suppression enabled. Sets the suppression window, 0–1000 ms, default 150 ms.
Tracking Reaction DelayMin/Max 0–500 ms (default 0 / 0 = Off). Once the first flick lands, picks one settle period from the range, then returns to live tracking. Equal values give a fixed delay.
Direction Change DelayMin/Max 0–250 ms (default 0 / 0 = Off).
Finish current correctionConditional: Direction Change Delay Max above 0. Continues to the aim point active before the reversal.
Return to live trackingMin/Max 0–500 ms (default 20 / 20).

Color edition titles this card Flick Humanization and shows Strength, Post-Click Y Suppression, Tracking Reaction Delay and the direction-delay controls.

#Flick Guided Setup

Flick has the same Guided Setup button in its Activation & Access card header; it walks the whole Flick page.


#Trigger

Automatically fires when a valid target overlaps the trigger zone. Trigger settings are per class.

SettingWhat it does
Trigger Preset / Apply PresetSelects Custom, Safe & Legit, Balanced Default, or Instant. Apply currently changes only Trigger Scale; the delay values in these presets are legacy and do not affect First-Shot or Multishot Delay.
TriggerMaster switch for automated firing.
Trigger KeySelects the activation input.
Foot PedalEnables a secondary Trigger activation key.
Foot Pedal KeyConditional: Foot Pedal on. Selects that key.
Trigger Activates RCSAllows a Trigger-fired shot to activate recoil control.
Trigger ScaleSets the size of the trigger zone. 1–200, default 10; hidden while Head/Body Split is on.
Trigger FOVColor edition. How close target color must be to the crosshair, in pixels (0–50, default 4; 0 = exactly under the crosshair). Trigger Scale or Head/Body Split must also contain the crosshair. Global, not per class.
Head/Body SplitEnables independent head and body trigger zones.
Head ScaleConditional: split enabled. Head-zone size, % of target box width, 1–200, default 25.
Body ScaleConditional: split enabled. Body-zone size, % of target box width, 1–200, default 50.
Head/Body Split %Conditional: split enabled. % of box height from the top where the head zone ends, 1–99, default 35.
First-Shot Delay — Min / MaxRandomized delay range before the first shot. 0–300 ms, default 82–124 ms.
Multishot Delay — Min / MaxRandomized interval range for later shots while Trigger remains active. 0–990 ms in 10 ms steps, default 160–380 ms; 0 = full auto.
Trigger PollingThe longest Trigger waits before checking the target again. Trigger already reacts at once to every new detection, so this only paces re-checks in between (while a delay runs or after you release the key). Shown as rate and interval, for example 1000 Hz (1 ms). 0–10 ms, default 1 ms, the fastest; 0 reads Max rate and behaves like 1 ms.

#Recoil Control

RCS pulls against recoil while you fire. RCS settings are per class unless noted. The page is split into cards, and each card shows only the rows that apply to the selected Activation Mode and output device. Controller outputs are Titan Two, Makcu Controller, Ferrum Controller and PS5 Remote Play; every other output is a mouse output.

#Activation Mode

The first card, Recoil Control, holds the master switch and the mode that decides every other card.

SettingWhat it does
RCSMaster switch for recoil compensation.
Activation ModeWhen RCS runs and how it pulls. Default Within FOV.
ModeBehavior
Always ActivePulls down by RCS Strength whenever you fire.
Enemy DetectedAs Always Active, but only while the crosshair is near an enemy box (Enemy Detection Threshold).
Within FOVAs Always Active, but only while an enemy is inside the aim FOV.
Pattern BasedPlays the weapon class's recoil pattern file (Pattern card).
Script (Plugin)Moonlight adds no recoil of its own; enabled Lua plugins with the RCS hook provide all of it while you fire. RCS still follows Activation Delay and Max Time. On Titan Two and Makcu Controller the plugin output drives the right stick.
Recoil BoostRCS activity follows firing like Always Active (Activation Delay, Max Time, Trigger Activates RCS), but Moonlight emits no recoil of its own. While RCS is active, aim pulls down harder on the locked target by the Recoil Boost %. Works on mouse and controller.

Which rows each mode shows:

Card → rowShown for
Strength → RCS StrengthAlways Active, Enemy Detected, Within FOV.
Strength → Fine StrengthController outputs, in Always Active, Enemy Detected, Within FOV and Pattern Based.
Strength → Recoil BoostRecoil Boost. Script (Plugin) shows a short note in this card instead; the card is hidden when it has nothing to show (Pattern Based on a mouse output).
Timing → Activation Delay (ms), Max Time (ms)Every mode.
Timing → Enemy Detection ThresholdEnemy Detected.
Timing → Require Enemy VisiblePattern Based.
Timing → RCS Pull RateAlways Active, Enemy Detected, Within FOV and Script (Plugin), on mouse outputs.
Pattern cardPattern Based. Recoil-Assisted Acquisition only on mouse outputs.
RCS Humanizer cardAlways Active, Enemy Detected and Within FOV, on mouse outputs.

#Strength

SettingWhat it does
RCS StrengthHow strongly RCS pulls down, 1–999, default 1. Raise it in small steps if the crosshair still climbs while firing; lower it if the crosshair is pulled below the target. How often it pulls is set by RCS Pull Rate in Timing.
Fine StrengthController outputs. Multiplies the vertical recoil pull, 0.10x–2.00x, default 1.00x. Fills the gap between whole RCS Strength steps (for example when 1 is too weak and 2 too much); in Pattern Based it scales the pattern's vertical pull. It stacks with Recoil Scale in the Titan Two settings.
Recoil BoostRecoil Boost mode. 0–200%, step 5, default 0%. While RCS is active and aim is locked on a target, vertical aim correction is pulled down this much harder and the Y Dampener is ignored.

#Timing

SettingWhat it does
Activation Delay (ms)Wait after you start firing before RCS begins, 1–4000 ms, default 130 ms, with about 2 ms of random variation per spray. In Pattern Based the pattern's clock still starts at your first shot: nothing is pulled during the delay, then the pull jumps to where the pattern would be by then and continues on schedule.
Max Time (ms)RCS stops this long after you start firing, even if you keep firing. 1–20000 ms, default 20000 ms. In Pattern Based the last pattern row repeats until this time is reached or you release fire.
Enemy Detection ThresholdEnemy Detected. 0–100%, default 50%. RCS runs while the distance from the crosshair to an enemy box centre (the locked target first, then any other box) is at most this % of the box's diagonal. Lower is stricter.
Require Enemy VisiblePattern Based. On: a spray starts only while an enemy is detected, then plays on even if the enemy is lost. Off (default): the pattern runs whenever you fire.
RCS Pull RateAlways Active, Enemy Detected, Within FOV and Script (Plugin), mouse outputs. Interval between recoil pulls, 1–10 ms, default 6 ms; shown as rate and interval, for example 166 Hz (6 ms). Each pull moves the full RCS Strength amount, so a faster rate pulls more often and compensates more strongly. In Script (Plugin) it paces the plugin's recoil. One value for all weapon classes.

#Pattern

Shown only in Pattern Based mode.

SettingWhat it does
Pattern FileText field and Browse...: the recoil pattern (CSV) this weapon class plays. Each row is one shot: horizontal move, vertical move (negative = pull down), delay in ms.
Open Pattern EditorOpens the pattern editor in the center pane with this class's pattern file.
Units lineUnder the editor button: Portable (degrees) or Legacy units (see below). Pick your game so this pattern can be converted. appears when a portable pattern has no game set.
GameThe game you play; one setting for all weapon classes. Listed: CS2, CS:GO, Apex Legends, Titanfall 2, Team Fortress 2, Valorant, Overwatch 2, Call of Duty (Modern Warfare 2019 and later, Warzone). For any other game choose Other game (calibrate 360°).
Calibrate 360°Under Game. Measures the turn rate of a game that is not listed. Needs Moonlight started, a mouse output and Game Sens set on Input Device. Turn sends Counts per 360° after a 3-second countdown (click into the game during it); adjust the count until one Turn spins the view exactly once, then Save.
Scope SensitivityPortable patterns only. The game's ADS/scope sensitivity multiplier for this weapon class, 0.01x–5.00x, default 1.00x (the same as hip fire). Set it to the in-game scoped sensitivity ratio so the pattern pulls the right amount while aiming down sights.
Pattern StrengthHow hard this weapon class pulls the pattern, on both axes, 0.1x–100.0x, default 1.0x (as written in the file). Raise it if the pattern under-corrects, lower it if it pulls too far; shot timing is unchanged. For portable patterns 1.0x is usually right.
Pattern RandomnessRandom variation on each shot, 0.0–5.0 pattern units, default 0.5; 0.0 plays the pattern exactly as written. Adds noise on both axes, a slow drift, a small wobble and timing jitter. Pattern Strength does not scale it.
Recoil-Assisted AcquisitionMouse outputs. With Aim held, gradually acquires upper chest or neck during the pattern; with Aim released the full pattern plays unchanged. Uses box proportions. Default off.

Portable and legacy patterns. A portable pattern is stored in degrees of camera turn. Once Game is set (from the list, or with Calibrate 360° for any other game), it pulls the same whatever your resolution, game FOV, DPI, Game Sens or Aim Multiplier, because Moonlight converts it with your Game Sens, Scope Sensitivity and the game's turn rate. Until a game is set, a portable pattern pulls nothing. A legacy pattern behaves exactly as before: its strength depends on this PC's settings (resolution, game FOV, Game Sens, Aim Multiplier), so it may need a different Pattern Strength on another setup. To convert one, open it with Open Pattern Editor, choose Make Portable in the Units card, then Save.

#Pattern editor

Open Pattern Editor shows the editor in the center pane with the active weapon class's pattern. The canvas draws the path the crosshair is pulled along, from the origin, one point per shot; down = pull down.

ControlWhat it does
Pattern listPatterns in the rcs_patterns folder. Pick one to open it.
Open... / NewOpens a pattern CSV from anywhere, or starts an empty pattern.
SaveSaves the pattern (Ctrl+S). When the editor was opened from a weapon class, that class now uses the saved file. Patterns that ship with Moonlight are never overwritten: Save offers a copy. The previous version of your own file is kept in rcs_patterns/.history.
Save As... / DuplicateSaves into a game folder inside rcs_patterns under a new name, or saves an editable copy next to this file and switches to it.
Undo / RedoCtrl+Z / Ctrl+Y.
SelectClick a shot to select it and drag to move it; drag on empty space for a selection box (Shift/Ctrl adds). Arrow keys nudge (Shift ×10, Ctrl ×0.1). Right-click a shot for Delete or Insert point after.
DrawDrag to draw the whole pattern freehand from the origin. The stroke becomes shots by Bullet count (evenly spaced; Bullets 2–2000, default 30) or Drawing speed (one shot per fire-rate interval of the time you took), set in the Draw card with Fire rate (RPM).
AddClick on a line to insert a shot there, or on empty space to add one at the end.
- / + / FitZoom out and in (also the mouse wheel), or fit the whole pattern in view (F). Middle-drag or Space+drag pans.
PlayAnimates the shots in time order with their delays.
Side cardWhat it does
Selected ShotShown while shots are selected: Row dx, Row dy (negative = pull down) and Delay (ms); later shots move with an edited shot. With several shots selected, Delay sets all of them. Delete and Insert After.
UnitsSays whether the pattern is portable (degrees) or legacy. Make Portable converts a legacy pattern to degrees with this PC's current settings and your Game (Pattern card), so it feels the same here and keeps that feel on other setups. Set Game first, then Save.
TransformScale X / Scale Y in percent about the origin (Same for both links them) with Apply Scale, and Mirror X to flip left and right; both act on the selected shots, or the whole pattern when nothing is selected. Total pull with Set Total Pull scales the whole pattern to that total vertical pull.
SmoothMoving average evens out the shot positions (same shots and timing); Catmull-Rom curve adds shots on a smooth curve between existing ones and splits their delays, so the total time stays the same. Strength 1–10. A green dashed line previews the result while the card is open; Apply Smoothing applies it.
TimingFire rate (RPM) and Delay (ms) (60000 / RPM), with Apply Delay for the selected shots, or every shot when nothing is selected.
DetailsOptional Name, Game, Weapon and Notes, stored next to the CSV. The engine never reads them.

The strip under the canvas shows the number of shots, the total time, the weapon class the editor was opened from and save messages. Lines the engine cannot read are skipped and reported, and you are asked before a save drops them.

#RCS Humanizer

This card is limited to Always Active, Enemy Detected and Within FOV, and is hidden on controller outputs.

SettingWhat it does
StrengthHow strongly AB Curves shapes recoil output, 1–100%, default 45%.
ProfileRead-only movement-profile status.

The humanizer is always on. Color edition shows only Strength, titled Recoil Humanization.


#Capture

Selects the frame source and debug presentation.

Changes to source, format, resolution, crop, or hardware connection should be applied with Stop Moonlight → Start Moonlight.

#Capture Mode

SettingWhat it does
Capture ModeSelects Capture Card, Magewell SDK, NDI-V2, Screenshot, UDP, Moonlight Stream or PS5 Remote Play. PS5 Remote Play is AI and Console only. Console offers Capture Card, Magewell SDK, PS5 Remote Play and Moonlight Stream. Default: Capture Card.
Enable CropOn (default): the detector sees only the square Detection Area at the screen centre. Off: it sees the whole captured frame and Detection Area is ignored. Applies after Stop Moonlight → Start Moonlight.
Detection AreaSize in pixels of that centre square. Apply saves a typed size; Match model (on by default) uses the model's input size, so pixels reach the model 1:1 without resizing, and disables typing. Smaller is faster and only finds targets near the crosshair; larger sees more of the screen. Greyed out while Enable Crop is off. Applies after Stop Moonlight → Start Moonlight.
Skip duplicate framesDefault On (recommended). When the game or capture card sends the same image again, detection is not run on it, because the result would be identical, so DPS follows the game's real frame rate. Off runs detection on every captured frame, duplicates included, up to the capture FPS: DPS reads higher, but the extra detections are copies of the previous one and add load, not accuracy.

#PS5 Remote Play

Shown when Capture Mode or Output is PS5 Remote Play. Changes apply after Stop Moonlight → Start Moonlight. Setup: PS5 Remote Play.

SettingWhat it does
ConsoleThe paired console. Pair a console, Wake, Login passcode, Forget.
Resolution1080p or 720p, default 1080p.
Frame rate60 or 30, default 60.
CodecH.264 or H.265, default H.264.

#Moonlight Stream

Shown for Moonlight Stream. Changes apply after Stop Moonlight → Start Moonlight. Setup: Moonlight Stream.

SettingWhat it does
HostThe gaming PC's host name or IP address.
AppThe app name as it appears in Sunshine, default Desktop.
Resolution1280x720, 1920x1080, 2560x1440 or 3840x2160, default 1920x1080.
FPS10–240, default 60.
Bitrate500–200000 Kbps, default 20000.
Pair hostShows a 4-digit PIN to enter on the host within 3 minutes.

#Debug Display

SettingWhat it does
Debug ViewWhat the preview shows: Detection Area (default; only the square the detector analyses), Full Frame (the whole captured frame with the Detection Area outlined) or Off.
Display FPSLimits preview refresh rate without changing capture FPS. 30/60/120/144/240, default 30.

#Crosshair Calibration

This card moved from Game Profiles to Capture.

SettingWhat it does
Enable crosshair center calibrationUses custom crosshair coordinates rather than the geometric frame center.
Offset sliders (X, then Y)Two unlabeled sliders. The first moves the calibrated capture center horizontally, the second vertically. -200 to 200 px, default 0.

#UDP Stream

Shown only for UDP capture.

SettingWhat it does
UDP URLOnly the port is used: Moonlight listens on that port on every network adapter, so the address part is ignored (for example udp://0.0.0.0:1234).

UDP always uses MJPEG with TurboJPEG; the old H.264 options are hidden.

#NDI Source

Shown only for NDI-V2.

SettingWhat it does
SourceSelects a discovered NDI sender.
RefreshRe-runs NDI source discovery.
StatusReports the selected source and connection state.

#Capture Card / Magewell

Shown for Capture Card and Magewell SDK.

SettingWhat it does
Capture SourceSelects the card/input device.
FormatSelects an enumerated card format; it sets resolution, FPS and pixel format together. Refresh re-queries the device.
Custom FormatAdds or removes a manual format string when enumeration is incomplete.
Capture MethodCurrent shipped path is Native DirectShow C++.

Legacy OpenCV buffer, FFmpeg capture options, capture subprocess mode, and the manual GPU Direct switch are not current customer settings. GPU Direct is selected automatically from the detection backend.


#Detection

Available in AI and Console editions. The shipped native path uses synchronous inference.

Cards, in order: Backend & Model, Classes, Target Continuity, Optic Detection.

#Backend & Model

SettingWhat it does
BackendSelects ONNX, TensorRT, or OpenVINO. ONNX uses DirectML in the current client.
TRT OptimizationConditional: TensorRT. TensorRT engine build level, Level 1–5, default Level 3 (the recommended low-latency level). Higher levels build longer and are not guaranteed faster.
Rebuild TRT CacheConditional: TensorRT. Deletes Moonlight's local TensorRT compiled caches; stop Moonlight first. The next Start rebuilds the selected model. The original model file is never deleted.
OpenVINO DeviceConditional: OpenVINO. Selects the OpenVINO execution device.
OpenVINO PrecisionConditional: OpenVINO. Selects the model precision.
Model FileSelects a local or imported targeting model.
Input SizeConditional: dynamic models (model file name contains "dynamic"). Sets detector input width and height. 128–1280, default 640.
Confidence FloorMinimum score accepted as a detection. 0–100%, default 20%.
NMS ThresholdIntersection-over-union threshold used to merge overlapping detections. 1–99%, default 70%.

Shipped builds run object detection models only, so Model Type and Target Keypoints are not shown. ONNX provider/thread selectors, Async Inference, Log detailed inference timing, Detector Process Mode, and Detector Delay are compatibility-only or retired and are not current client controls.

#Classes

One block per class of the selected model, named from the model itself (for example body (0) and icon (1)). A model without class names shows Class 0–3; a store model uses the class names its pack publishes. Settings are saved per model file, so each model keeps its own. Where to aim stays on the Aim and Flick pages (Targeting & Position).

SettingWhat it does
Side SelectorConditional: supported CS2 models. Selects CT or T and turns off Target for the corresponding classes.
Target (the class checkbox)Aim at this class. Off ignores its boxes everywhere.
Priority1 is picked first when several classes are in view, then 2, and so on. Any has no preference and comes after the ranked classes, nearest first. A locked target is kept until it is lost.
ConfidenceMinimum confidence for this class, 1–100%. It can be lower or higher than Confidence Floor. Global uses Confidence Floor.
Box isBody (default): the box is the player, aimed with the Aim/Flick Targeting & Position settings (bones, Y Offset as a % of the box). Icon: the box is an icon, tag or health bar the game draws above the enemy, aimed below its bottom edge by the Icon Y Offset in pixels on the Aim and Flick pages.
Ignore when inside another classDrops a box of this class when it overlaps a box of another class (the former Class Filter).
Apply recommended settingsConditional: the model or its store pack publishes recommended class settings. Fills Priority, Confidence, Box is and the switches with the maker's values.

Classes 0–3 use the same saved switches as the former Disable Classes and Class Filter, so older configs, the CS2 Side Selector and the web panel keep working.

#Target Continuity

SettingWhat it does
Target Switch DelayMinimum time on the current target before switching, 0–1500 ms, default 500. A target that moves far from the crosshair still drops the lock immediately.
Detection CoastingBriefly preserves target state through a missed detector frame. Checkbox with a 20–300 ms slider, default 100 ms.
Idle ResetClears retained legacy aim state. 100–3000 ms, default 500. Current Aim/Flick already clear their target state when a target is lost.

Target Stability (Script Aim only) is on the Aim page, in Activation & Access.

#Optic Detection

The last card on the page. It starts collapsed unless Optic Detection is on with at least one optic set up.

SettingWhat it does
Optic Detection (experimental)Turns optic detection on.
AI Optic Detection / Template / OCRThe two method tabs.
Add optic from captureTemplate / OCR. Adds an optic from the current frame.
Edit adjustments for selected opticTemplate / OCR. Opens the selected optic's adjustments.

See the Optic Detection guide.


#Color

Available only in Color edition and shown instead of Detection.

#Color Detection

SettingWhat it does
Detection modeSelects OpenCV Contours or Pixel detection.
Aim pointChooses the detected-region point used as the target, including X/Y and nearest-point behavior.
Color presetSelects a built-in target-color range or Custom.
Custom color spaceSelects HSV or RGB. Always shown; used only when Color preset is Custom.

#Custom Color Bounds (preset = Custom)

SettingWhat it does
H/S/V min / maxConditional: Custom HSV. Accepted HSV range. H 0–179, S and V 0–255.
R/G/B min / maxConditional: Custom RGB. Accepted RGB range, 0–255.

#Detection Tuning

SettingWhat it does
Min blob sizeRejects regions smaller than the threshold. 1–2000, default 1.
Max blob sizeRejects regions larger than the threshold. 0–20000, default 20000; 0 = no limit.
Nearest cluster areaMinimum pixel area (1–100, default 8) for a cluster to count as a target in nearest mode.

#Target Lock (anti-switch)

SettingWhat it does
Enable target lock hysteresisReduces rapid switching between nearby color targets.
Hysteresis distanceDistance within which the existing target receives lock preference. Default 40.
Switch thresholdImprovement required before another target replaces the current lock. Default 20.
Min lock (s)Minimum lock duration.
Switch cooldown (s)Minimum time between target switches.

#Mask Morphology

SettingWhat it does
Dilation / IterationsExpands the color mask and controls how many dilation passes run. Default On, 5 iterations (0–15).
ClosingFills small gaps in mask regions. Default On.
Blur / SizeSmooths mask noise before region selection. Default Off, size 0 (0–25).

#Prediction

This page was formerly called Smoothing. Predictor V2 is now the only user-facing prediction system and is enabled by default.

SettingWhat it does
Enable Predictor V2Enables measured-latency target-motion lead. Disabling it requires confirmation.
Extra LeadExtra milliseconds of lead on top of the delays Moonlight measures itself (detection time and the Output delay shown in the Monitor). Raise it if shots land behind moving targets, lower it if aim sits ahead. 0–300 ms, default 0 ms.
Lock Delay (ms)Wait time after acquiring a new target before lead begins. 0–1000 ms, default 100 ms. Prediction keeps calculating during the delay; 0 applies lead immediately.
Maximum Prediction DistanceCheckbox. Off uses 160 px. On reveals a 5–160 px slider (default 50 px) that caps the final prediction offset.
Lead Engage DistanceCheckbox. Off uses 300 px. On reveals a 0–300 px slider (default 40 px): distance beyond the target box at which lead may engage.
Stabilize Box Size (experimental)Per class. Replaces size smoothing with a bounded time-based filter; target center movement is unchanged. Default off.
Distance Extra Lead (experimental)Per class. Adds extra lead by target box height from up to 8 calibration points (Box height (px) / Additional lead (ms), 0–300 ms each; Snapshot target box, Remove selected). Values interpolate and add to Extra Lead; total extra lead is capped at 300 ms. Hidden while Detection → Optic Detection is enabled (optic-specific curves are used instead).
Velocity LeadMultiplies the velocity component of lead. 0–200%, default 100%.
Vertical LeadShare of predicted vertical movement to lead (jumping, crouching, stairs), 0–100%, default 0%. 0% leads horizontally only. Applies to every device.

Movement prediction is automatic when supported input is available.

Measured latency and lag calibration are automatic. The Monitor's Output delay row shows the output-path delay prediction leads by: the time from Moonlight's output to the first captured frame that shows it, learned from your own aim movement during normal play. It reads (measured) once learned, (learning) while a starting value is used, and (controller) when a controller's measured stick delay is used. Do not add it to Extra Lead; prediction already includes it. The former Kalman/V1 modes, shared Target Deadzone, Queue Age, manual latency debug block, and Measurement Stability firewall are not exposed on the current page. Aim and Flick now own separate Target Deadzone controls, and post-click suppression moved into their Humanizer cards.


#Filtering

Filtering rejects detections that match exclusion rules.

#Enemy Color Filter

SettingWhat it does
Enemy Color FilterEnables team-color filtering. Ticked = on. Default off.
ColorSelects the enemy/team color to retain. Default purple.

#Color Ignore Filter (Native)

SettingWhat it does
Color+Shape Ignore FilterRejects detections that match any enabled color rule.
Show Debug OverlayDraws filter regions and matches in the debug view.
Decay (ms)Keeps a recent rule match active briefly to prevent flicker. 0–500 ms, default 150 ms; 0 disables.
Rule listShows configured exclusion rules.
Add / Edit / RemoveManages rules.
ColorSelects the color to match: R, G, B, or Pick.
ToleranceSets allowed color distance. 1–100, default 30.
Area (Min / Max)Restricts matching by colored-region size, 1–100000 px.
Aspect Ratio (Min / Max)Restricts matching by region proportions, 0.1–10.
Search RegionSearches inside, above, below, or at custom offsets from a detection box.

Native releases do not currently perform the legacy shape-classification or rotation-lock behaviors. The non-native development UI may still call this Color + Shape Ignore Filter. Template Matching Ignore Filter is omitted from shipped native builds.

#Detection Masks

For third-person games: cover your own character so it is never a target. A detection whose box centre is inside an enabled mask is ignored by Aim, Flick, Trigger and Recoil Control's enemy check.

  1. Tick Enable Detection Masks.
  2. Click + Rectangle or + Ellipse. The new mask starts at the bottom middle of the detection area.
  3. With the game running, click Capture Frame to see the detection area behind the masks.
  4. Drag the mask over your character. Drag a corner to resize it, or use the arrow keys (Shift for bigger steps). You can also type Centre X, Centre Y, Width and Height as a % of the detection area.
  5. Check it on the Debug view (Capture → Debug View: Detection Area): masks are violet, and a masked detection is a thin grey box.
  • Make the mask a little larger than your character so crouching and emotes stay inside it.
  • Masks follow the detection area, so they stay in place when you change the crop size or resolution.
  • Up to 16 masks. Untick one in the list to keep it without using it.
  • An enemy behind your character is ignored only while its box centre is inside the mask. If aiming down sights moves the camera, cover both positions.

#Visuals

AI, Color and Console. The Visuals page sets what the Debug view draws. Every change applies immediately. Raw boxes show the detection score; tracking boxes show ID: and the number Moonlight gives the target it follows.

#Detection Boxes

SettingDescription
Show raw boxesOn by default. Every box the detector finds this frame, before tracking.
Raw box colorConditional: Show raw boxes on. Default yellow (#ffff09).
Raw box styleConditional: Show raw boxes on. Solid draws the full outline, Dashed a broken outline, Corners only marks the four corners. Default Solid.
Raw box thicknessConditional: Show raw boxes on. Line width of the raw boxes, 1–6 px, default 2.
Show tracking boxesOn by default. The boxes of the targets Moonlight is following.
Tracking box colorConditional: Show tracking boxes on. Default purple (#a78bfa).
Tracking box styleConditional: Show tracking boxes on. Solid, Dashed or Corners, default Solid.
Tracking box thicknessConditional: Show tracking boxes on. 1–6 px, default 2. A target just picked up is drawn one pixel thinner.
Show tracking IDsOn by default. Labels the tracking boxes ID:n, the number Moonlight gives each followed target, so you can see when it keeps or swaps a target. Lost boxes have their own label switch.
Show lost / estimated boxesOn by default. Where a target that just disappeared is expected to be. These boxes are always drawn red.
Lost box styleConditional: Show lost / estimated boxes on. Solid, Dashed or Corners, default Dashed.
Lost box thicknessConditional: Show lost / estimated boxes on. 1–6 px, default 1.
Show lost labelsConditional: Show lost / estimated boxes on. On by default. Writes ID:n lost under each lost box, so you can see which target Moonlight is estimating.

#Target Line

SettingDescription
Show target lineOn by default. A line from the screen center to the target being aimed at.
Line colorConditional: Show target line on. Default orange (#ffa500).

#Aim Point

SettingDescription
Show aim pointOn by default. Draw a marker on the spot Moonlight aims at. Style, Size and Color apply while it is on.
StyleConditional: Show aim point on. The marker's shape: a filled Dot, a Ring, an X, a Cross (+), a Square or a Diamond. Default Dot.
SizeConditional: Show aim point on. 2–40 px, default 9.
ColorConditional: Show aim point on. Default red (#ff3b3b).
Show predicted aim pointOn by default. Also marks where Moonlight actually aims: the aim point moved by aim prediction's lead, joined to the aim point by a dashed line. It is shown only while prediction leads the target. While it is shown, the target line ends at the predicted point.
Predicted colorConditional: Show predicted aim point on. Default cyan (#22d3ee).
Predicted styleConditional: Show predicted aim point on. The same six shapes, default Dot. It can differ from the aim point's, so the two are easy to tell apart.
Predicted sizeConditional: Show predicted aim point on. 2–40 px, default 9.

Reset to defaults (in the app) puts every setting on the page back to its default. On the web panel, colors are picked with the swatch or typed as a hex value.


#Game Profiles

Game Profiles contains weapon-class management and three automatic weapon-recognition methods. AI Weapon, OCR, and Template Match are mutually exclusive so they cannot compete to change the active class.

#Calibration

#Weapon Class

Setting or actionWhat it does
Weapon ClassThe class selector is in the top bar (Class).
ManageOpens class creation, rename, duplicate, and removal tools.
HotkeyOne keyboard shortcut (default End) that cycles to the next weapon class. Applies to the whole config, not to one class.
SetRecords a class-switch hotkey.
ClearRemoves the class-switch hotkey.

#Magewell: Card-Side Crop

Shown only when Capture uses Magewell SDK. This crop happens on the card and is independent of Aim/Flick FOV. Left / Top / Right / Bottom are source pixels, 0–4096 (defaults 0, 0, 1280, 720). The presets assume a 1920x1080 source and also enable Crop input. Restart capture to apply.

SettingWhat it does
Crop inputEnables hardware-side crop.
Left / Top / Right / BottomDefines the crop rectangle.
128 / 320 / 416 / 512 / 640 presetsCenters a square crop of the selected size.

#Setup Wizard

ActionWhat it does
Run Setup WizardRe-runs first-time capture, game-FOV, input-device, and basic setup.

#Display & Misc

SettingWhat it does
Show Referral Tips in Status BarShows or hides rotating referral/status tips.
Advanced Debug View StatsAdds detailed runtime values to the debug presentation.

Profile management moved to Configs. Crosshair calibration moved to Capture.

#OCR

Uses native Windows OCR to read a weapon name from a configured HUD region and switch weapon class.

#OCR Weapon Detection

SettingWhat it does
Auto Weapon Detection (OCR)Starts periodic OCR-based weapon switching.
OCR EngineRead-only Native selection in the current client.
StatusShows whether OCR is idle, active, initialized, or matching.

#Detection Settings

SettingWhat it does
Detection Interval (ms)Time between OCR scans. 1–1000, default 1000.
Similarity ThresholdGlobal minimum text similarity. 0.50–1.00, default 0.50.
OCR LanguagesMulti-select list of recognition languages.
Enable OCR Debug LoggingWrites recognized text, confidence, and matching decisions to Logs.

#Weapon Text Mappings

ControlWhat it does
Rule listOrdered text-to-class mappings.
Add Rule / Edit / Duplicate / RemoveManages mapping rules.
TestTests sample text against the rules.

Each mapping rule can configure:

Rule settingWhat it does
Keyword to MatchWeapon text expected in the HUD.
Target Weapon ClassClass loaded on a match.
Similarity ThresholdRule-specific fuzzy-match threshold.
Case Sensitive MatchingRequires letter case to match.
ROI X / Y / W / HRule-specific OCR search rectangle.
Convert to GrayscalePreprocesses the ROI as grayscale.
Apply ThresholdApplies binary thresholding before OCR.
ContrastAdjusts ROI contrast.
Scale (Upscale)Enlarges small text before recognition.

#OCR Debug Status

Read-only fields show Status, Engine, ROI, Timing, Scans/Results, Last Text, and Last Match. The former embedded ROI preview is hidden; use the unified center preview.

#Template Match

Switches weapon class by comparing captured HUD imagery against template images.

#Common controls

SettingWhat it does
Weapon Template MatchingEnables periodic template checks.
Matching ModeSelects Per-Rule (Manual ROI) or Slotted (Hotbar Grid).
Check IntervalTime between checks. 100–5000 ms, default 500.
Switch CooldownMinimum time between class changes. 100–5000 ms, default 1000.
Require Consecutive MatchesNumber of repeated matches required before switching. 1–10, default 3.
Enable FallbackSwitches to a fallback class after no template matches.
TimeoutTime with no match before fallback. 1000–30000 ms, default 5000 ms. Disabled (greyed) while Enable Fallback is off.
Fallback ClassClass selected on timeout. Disabled (greyed) while Enable Fallback is off.

#Per-Rule mode

ControlWhat it does
Template RulesOrdered per-icon rules.
AddCreates a rule.
Capture from frameCaptures a template from the current frame.
Edit / Duplicate / RemoveManages the selected rule.
Test SelectedTests the selected rule against the current frame.
Up / DownChanges rule priority.
Export Rules / Import RulesShares or restores rules and their image assets.

The per-rule editor includes:

  • One or more template images and a target weapon class.
  • Preprocessing presets; Grayscale; Threshold type/value; Fill Contours; Post-fill Blur.
  • Show Advanced Options for Blur, Morph operation, Invert Colors, Min Area, Keep Largest Only, and Crop Border.
  • Match Threshold, Calibrate, matching Method, Multi-scale, and scale list.
  • Per-icon search ROI X, Y, W, and H.
  • Optional Color Filter with target color and color threshold.
  • Optional Brightness Filter with minimum brightness.
  • Original, processed, and live-ROI previews inside the editor dialog.

#Slotted mode

SettingWhat it does
SlotsNumber of hotbar slots.
X / Y / Width / HeightDefines the hotbar grid rectangle.
SpacingGap between slots.
Crop Padding / InsetAdjusts the region sampled inside each slot.
DirectionSelects Horizontal or Vertical layout.
Detection MethodSelects Auto Detect, Color Match, Brightness, or Blue Channel.
Sample ThicknessSets the slot-border sample width.
Lower / Upper BoundConditional: Color Match. Accepted selected-slot color range.
Min BrightnessConditional: Brightness. Selected-border brightness threshold.
Blue Min / MaxConditional: Blue Channel. Blue-channel range.
Slot TemplatesAdds, edits, duplicates, or removes the template mapped to each slot.

Slot status reports the selected slot, scores, sampled border colors, and last match. The former page-level live preview is hidden in favor of the center preview.

#AI Weapon

Uses a small per-game classifier on a resolution-aware HUD crop.

#AI Weapon Detection

SettingWhat it does
Enable AI weapon detectionEnables classifier-based class switching.
ModelSelects the classifier; Refresh rescans available models.
Check everyClassifier interval. 50–1000 ms, default 200.
Min confidenceMinimum accepted class confidence. 50–99%, default 70%.
Confirm framesConsecutive classifications required before switching. 1–10, default 3.
Switch cooldown (ms)Minimum time between class changes. 100–5000, default 1000.
Inference backendCurrent supported choice is OpenVINO (CPU).
CPU threadsCaps classifier inference threads. 1–8, default 1.
AnchorAnchors the relative HUD crop to a screen edge or center. Default bottom_right.
X / Y / W / HFractional crop coordinates that scale across resolutions. 0.000–1.000 (defaults 0.02 / 0.05 / 0.16 / 0.10).
Set HUD RegionOpens a drag-to-select region tool using the current frame.
Resolved region / StatusRead-only crop dimensions and classifier state.

The retired ONNX CPU weapon-classifier choice is not offered.

#Weapon Model Trainer

Setting or actionWhat it does
GameSelects the dataset/model namespace.
NewCreates a per-game dataset.
Open folderOpens that dataset folder.
ClassSelects the label for captured samples, including Background (none).
CaptureSaves one labeled HUD crop.
Burst everySets the interval for repeated captures.
Record / StopStarts or stops burst collection.
Dataset countsShows samples recorded for each class.
Train ModelOpens the native classifier training workflow.

The page-level trainer preview is hidden; the unified center preview shows the live HUD region.


#Configs

Configs is now a separate top-level page.

#Side pane

The side pane has the Config Profiles, Language, Web Panel and Community configs cards.

ControlWhat it does
ActiveConfig Profiles. Shows the active config name.
UI LanguageLanguage. Changes the client interface language: English, Arabic, German, Spanish, Filipino, French, Indonesian, Japanese, Korean, Polish, Portuguese (Brazil), Russian, Swedish, Thai, Turkish, Chinese.
UI scaleLanguage. 70–150%, default 100%. Takes effect the next time Moonlight starts.
Settings textLanguage. 80–130%, default 100%. Makes the text in the settings pane smaller or larger; only the settings pane changes, so the preview keeps its size. Applies right away.
Allow changes from the web panelWeb Panel. On by default. Turning it off stops web changes and support sessions.
Allow device and model changes from the web / Allow plugin changes from the web / Allow the web assistant to read live aim statsWeb Panel. Each on by default; available only while Allow changes from the web panel is on.
Open web panel / Assistant / Unlink this PC / Link this PC again / Share Live view with support (24 h)Web Panel buttons.
Share this config... / Browse community configsCommunity configs, AI and Console only. Browse opens Marketplace → Configs.

#Center view

ControlWhat it does
Config listLists profiles in the authenticated edition's config folder. Double-clicking activates a profile.
SummaryShows Name, Edition, total setting count, and modified time derived from the selected file.
Set Active / ActiveActivates the selected profile or shows that it is already active.
RenameRenames the selected profile and updates references.
DuplicateCreates a copy.
DeleteRemoves an inactive profile after confirmation.
Open FolderOpens the selected profile's config folder.

#Input Device

Selects the output hardware and its device-specific controls. Output device and COM-port changes should be applied with Stop Moonlight → Start Moonlight.

#Output Device

SettingWhat it does
OutputSelects Cronus Zen (Xbox Only), Ferrum, Ferrum Controller, KMBox, MAKCU, Makcu Controller, MAKXD, Medius, Moonlink Direct, PS5 Remote Play or Titan Two. Color has no PS5 Remote Play. Console offers Titan Two, Cronus Zen (Xbox Only), Makcu Controller, Ferrum Controller and PS5 Remote Play.
COM PortConditional: KMBox, Ferrum or Ferrum Controller. Selects the connected hardware port. MAKCU-class and other controller paths use their own discovery.
MAKCU APIConditional: MAKCU. Legacy API (old firmware) or New API (bare-metal firmware). Default Legacy API. Must match the firmware.
Device tuningConditional: MAKCU on New API, MAKXD, Makcu Controller. Opens MAK Device Tuning: Read, Apply live, Save to Device, presets, import/export of the device's own settings.
Log MAKCU HealthConditional: Makcu Controller. Queries the firmware health snapshot and writes it to Logs.
Medius live statusConditional: Medius. Read-only device status.
Aim AxisEvery output device; global. Both Axes (Normal) (default), Horizontal Only (X) or Vertical Only (Y): zeroes one axis in software before movement reaches the device, so aim and flick move only horizontally or only vertically. Recoil control (RCS) always keeps both axes.

Medius: the device always renders the movement, including your own physical mouse movement. There are no renderer settings. Moonlight's humanizer still plans the path (Strength, Tracking Pauses, Prefix Strength on the Aim and Flick pages).

The legacy Moonlink choice is globally hidden and superseded by Moonlink Direct. The shipped runtime requires Native Serial for the supported serial devices.

#Keyboard device

Shown for every mouse device; hidden for Titan Two, Makcu Controller, Ferrum Controller and PS5 Remote Play.

SettingWhat it does
Keyboard deviceSame as mouse device (default), Ferrum (Ferrum App port), MAKCU (New API firmware), MAKXD or Medius: the device that presses keys, blocks keys and reports held keys for plugins and Predictor V2.
Keyboard COM PortShown when Keyboard device is not Same as mouse device. Must differ from the mouse device's port.
RefreshRe-scans serial ports.
Test (types F)Sends a simple keyboard-output test.

Counter-strafe and auto-stop are now the Counter-Strafe & Auto-Stop plugin, set per weapon class in Plugins → Library.

#Controller Setup (Titan Two)

Shown for Titan Two.

SettingWhat it does
Console OutputSelects Auto, PS4, PS5, Xbox 360, Xbox One, Xbox Series X/S, or HID output.
ControllerSelects the attached controller family.
Edge FixApplies edge handling for stick output.
Disable Joystick HIDPrevents the extra joystick HID path from conflicting with the intended output.
X Scale / Y ScaleScales solved stick output by axis. 0.10–3.00x, default 1.00.
Ramp InBlends injected output in over time. 0–500 ms, default 12.
ReleaseBlends it out when assistance ends. 0–500 ms, default 24.
Output IntervalControls synchronous send interval. 0.5–8 ms, default 2.0; unavailable while Async 1 kHz Output is on.
Async 1 kHz OutputRe-sends the latest solved state on the high-rate native output worker.
Trigger ThresholdSets the physical trigger threshold used as a firing state. 1–99%, default 30.
Recoil ScaleScales controller recoil output. 0.10–3.00x, default 1.00.
Override DeadzonePhysical-stick magnitude required to begin override. 0–99%, default 18.
Override TakeoverFade rate from Moonlight output to physical input. 0–1000 ms, default 40.
Override ReturnFade rate back to Moonlight output. 0–1000 ms, default 150.
Physical Stick OverrideEnables the physical-stick takeover behavior. On by default.
Invert Y OutputInverts vertical injected stick output.
Controller DiagnosticsShows connection, input, output, HID, and Aim-rate status.
Test X / Test Y / NeutralSends bounded axis tests or immediately returns output to neutral.

The generic Titan receiver is managed by the client. Legacy Script Mode and Packet Format controls are hidden and should not be used as setup steps.

#Controller Setup

Shown for Makcu Controller, Ferrum Controller and Cronus Zen (Xbox Only).

SettingWhat it does
Controller layoutXbox 360 (default), Xbox One, Xbox Series X|S, PS3, PS4, PS5. Sets the button names for Aim, Flick, Trigger and ADS binds; does not change firmware or console output.

#Input Masking

Shown for KMBox, MAKCU, MAKXD, Medius and Ferrum.

SettingWhat it does
Mouse 1 / Mouse 2 / Mouse 4 / Mouse 5Blocks the selected physical button from passing through while the configured condition is active. Mouse 4 and Mouse 5 are on by default, Mouse 1 and Mouse 2 off.
M1 Block ThresholdConditional: Mouse 1 masking. Releases M1 masking when the crosshair is sufficiently close to the target. 0–100% of box width, default 25%.
Masked Click-Through (M2)Conditional: Ferrum, Medius, MAKCU, MAKXD. Right-click stays masked; short taps send a click after release, held presses stay blocked. Locks Mouse 2 masking on while enabled.
Maximum tap durationConditional: Masked Click-Through. 1–1000 ms, default 180.
Click durationConditional: Masked Click-Through. Range 1–250 ms, default 35–65 ms.

#MAKCU Hardware Humanization (Bezier)

Conditional: MAKCU with MAKCU API set to Legacy API. Mode, Curve type, Segments and control points are per weapon class and apply to both Aim and Flick.

SettingWhat it does
Enable MAKCU Bezier humanizationUses the device's hardware curve rendering.
ModeSelects Traditional or MAKU Hardware Humanization.
Curve typeSelects Quadratic Inward, Quadratic Outward, Cubic Inward, or Cubic Outward.
SegmentsSets curve segmentation. 2–64, default 8.
Control pointsAdjusts the curve geometry for the selected type. -100 to 100, default 5.

#Sensitivity / Look Scaling

Hidden in Console edition. Global.

SettingWhat it does
DPI ValueYour mouse's DPI, 100–16000, default 800. It does not change aim, flick or recoil strength: Physical Control Assist uses it to measure how fast your hand moves, and the humanizer keeps a separate learned profile for each device and DPI, so changing it switches to that DPI's profile.
Game Sens / Look SensYour in-game (look) sensitivity, 0.01–10.00, default 0.70. Every mouse output (aim, flick, recoil and plugins) is scaled by it, so enter the exact value from your game. Controller outputs do not use it.
Game FOVYour in-game horizontal field of view in degrees, 60–130, default 103. It scales mouse output together with Game Sens, and it also scales the size of the Aim and Flick FOV circles.

The former Reference Sensitivity and visual tracking-calibration workflow are withdrawn from the production UI.

Trigger Polling is on the Trigger page and RCS Pull Rate (formerly RCS Delay) is in Recoil Control → Timing.

Sens Multiplier is replaced: use Aim Multiplier on the Aim page and Flick Multiplier on the Flick page.

Legacy Physical Input Lock/Fusion and Anti-Flick Speed Cap are not current cards. Restricted Tracking on Aim and Flick replaces that competing physical-control path.


#ML Mouse

Personal mouse training is retired. The ML Mouse page is hidden in every edition, so there is nothing to record or train: the humanizer on Aim, Flick and RCS uses its built-in movement profile.


#Plugins

Available in AI and Console editions. Plugin enablement and plugin settings are stored per class.

#Library

ControlWhat it does
Reload AllReloads local and available runtime plugins.
Open FolderOpens the local Lua plugin folder.
Search pluginsFilters the plugin list.
Plugin list checkboxesEnables or disables each plugin for the active weapon class.
Plugin detailsShows type, hooks, capabilities, permissions, and errors.
Aim ProviderIn the collapsed Live Diagnostics card. Shows the plugin currently supplying Script aim output.
Plugin OutputIn the collapsed Live Diagnostics card. Displays values published by a plugin through its monitor hook.

Plugin settings are edited only on the plugin's Active Plugins page, not in Library. Marketplace plugins are run-only and held in memory; they cannot be edited in Code Editor or Designer.

#Active Plugins

Each enabled plugin receives a sidebar page with:

  • Status, type, active hooks, and last error.
  • Schema-generated plugin controls.
  • Disable Plugin for the active weapon class.

Plugin controls can be on/off switches, choice lists, whole-number and decimal sliders (0–100 unless the plugin sets a range), text, file pickers (Browse... copies the file into the plugin's folder), color pickers, and read-only charts and labels. Changes are applied through the running plugin manager.

#Code Editor

The Code Editor is a full center-pane Lua authoring workspace.

ControlWhat it does
TemplateSelects a blank aim plugin or an existing example as the starting point.
NewCreates a plugin from the selected template.
SaveValidates, saves, and hot-reloads the plugin into Library.
Save AsWrites a new plugin file.
ValidateCompiles the source in the plugin sandbox and reports errors.
ReloadDiscards editor changes and reloads the file from disk.
DeleteRemoves the selected local plugin after the editor's backup workflow.
FolderOpens the plugin folder.
Editor / StatusProvides syntax-highlighted Lua editing and validation feedback.

#Designer

The Designer is a visual node-graph authoring workspace.

ControlWhat it does
New / OpenStarts or loads a Designer-authored plugin graph.
Generate & SaveConverts the graph to Lua and saves it into Library.
Auto-arrangeLays nodes out by dependency depth.
Zoom + / Zoom - / FitControls the graph viewport.
PaletteAdds supported Sources, Vision, Input, Control, GUI, Math, Curves, Filters, Gates, Logic, State, Debug, Code, and Output nodes.
PropertiesEdits plugin metadata (Name, Author) and the selected node's settings.
Apply Moonlight humanizationMarks generated aim output for the shared humanization path.

#Marketplace

Available in AI and Console editions. The center pane shows the Store; the side card controls the catalog.

Item typeWhat it is
Game PacksPackages that can include weapon classes, tuned Aim/RCS/Trigger settings, HUD region, and an AI weapon model.
Targeting ModelsCompatible detection models that can be added to or removed from Detection.
PluginsRun-only marketplace plugins.
ConfigsFree community configs.

#Store view

ControlWhat it does
Search boxSearches the Store.
All / Game Packs / Targeting Models / Plugins / ConfigsType chips.
PriceAny price, Free, Paid or Owned.
GameFilters by game.
SortRecommended, Newest, Name, Price: low to high, Price: high to low.
GetAdds a free item to your account.
Buy on websiteOpens the item on the website. Buying happens there.
Install / ReinstallInstalls or refreshes an owned item.
Use model / Add to Detection / Remove from DetectionManages a targeting model's Detection availability and selection.

#Configs tab

Free community configs. Each config has Install; your own also have Update from my config and Unpublish, others have Report. Installing creates <name> (community).json, and you are asked whether to use the included keybinds.

#Side card

ControlWhat it does
Browse Server PacksFetches the current catalog.
RefreshRefreshes account ownership and catalog state after a purchase or update.
Import Pack File...Imports a local Moonlight pack file.
StatusReports catalog, ownership, import, and library-update results.

The legacy cards with Import / Re-import, Buy / View and Select Model are shown only if the Store fails to load.

Importing a Game Pack creates a new config but does not replace the active config automatically; activate it from Configs afterward. Imported Marketplace plugins enter Library disabled and remain run-only. Plugins that request powerful capabilities require a consent prompt before they are retained.


#Logs

Logs is a full center-pane diagnostic view.

ControlWhat it does
Clear LogsClears the visible pane; it does not remove saved log files.
Auto-scrollKeeps the view at the newest message.
Word WrapWraps long lines to the pane width.
Pipeline TelemetryEnables stage timing rings, p50/p95/p99/max reports, coast/velocity samples, and worker-heartbeat warnings. It has small non-zero overhead and is intended for diagnostics.
Detector Metrics / GC TrackingLogs detector FPS and garbage-collection timing approximately every 30 seconds.
Audit SyncCompares saved config values with live runtime values and prints any drift.
FilterOffers All, Info, Warning, and Error views. Applies to new lines only. Info shows everything. In languages other than English the filter currently has no effect.
Diagnostics LogCenter view. A live copy of the Output Log.

Benchmark Isolation is forced off and hidden in the shipped native client.


#Removed, relocated, or compatibility-only controls

The following old-guide sections should not be used to configure the current client.

Old guide itemCurrent status
PID, Aim V2, Aim Legacy, WindMouse, GAN, Human aim typesRemoved from the selector; old saved values migrate to Moonlight Aim.
Standalone Humanizer page and its roughly 40 slidersReplaced by inline profile-driven Enable/Strength controls on Aim, Flick, and RCS.
Aim and Flick preset selectorsRetained internally for compatibility but hidden in the current UI. Trigger Preset remains visible.
Smoothing / Kalman / Prediction V1Replaced by the Predictor V2 page.
Shared Target DeadzoneReplaced by independent Aim and Flick deadzones.
Post-Click Y Suppression on PredictionMoved to Aim and Flick Humanizer cards.
Capture Process ModeRemoved; capture is threaded in the current client.
ML Mouse (recording, training, personal models)Removed: personal mouse training is retired; the humanizer uses its built-in profile.
Firmware Movement Rendering / Render Physical Mouse Movement (Input Device, Medius)Removed 2026-10-19. Always on: the Medius device renders all movement.
Use MJPEG + TurboJPEG, H.264 Decode, Frame Dropping, Debug CaptureHidden: UDP always uses MJPEG with TurboJPEG.
OpenCV and FFmpeg capture methodsRemoved from the shipped Capture Method selector.
Manual GPU DirectRemoved; managed automatically by detector backend.
ONNX Provider and ONNX ThreadsRemoved; current ONNX path is DirectML.
Async InferenceHidden and forced out of the shipped synchronous path.
Detector Process Mode / Detector DelayNot consumed by the current native engine.
Old automatic TensorRT INT8 calibration groupDormant.
Physical Input Lock / FusionReplaced by Restricted Tracking and Physical Control Assist.
Reference Sensitivity and visual tracking calibrationWithdrawn from the production UI.
Titan Script Mode / Packet FormatHidden; the client manages the generic receiver path.
Embedded OCR, Template, and AI trainer previewsReplaced by the unified center preview.
Template Matching Ignore FilterNot included in shipped native builds.
Shape classification / rotation matching in ignore rulesNot implemented by the native filter.
Entropy pageRelease-disabled and not present in current navigation.
Benchmark IsolationHidden in the shipped native client.
Legacy Moonlink output choiceHidden; Moonlink Direct is the selectable replacement.
Upload Logs buttonRemoved 2026-10-14; Moonlight support views your app and Live view through the web panel.
Enable Humanizer, Humanizer mode, Humanize continuous trackingRemoved 2026-10-17. The humanizer is always on, using your movement profile.
Import Config / Export Config (Discord)Replaced by Configs → Community configs and Marketplace → Configs.
Debug Size, Apply and Auto (Capture)One Detection Area row under Enable Crop: size, Apply and Match model.
Visual Type (Capture)Renamed Debug View: Detection Area, Full Frame or Off.
Display Scale (Capture → Debug Display)No longer shown; it did not change the current preview.
Enable Capture Yield, Force Window Focus (Capture → Performance)The Performance card is gone. Force Window Focus was not used by the current capture path; a saved Enable Capture Yield value still applies.
Model Type, Target Keypoints (Detection → Model Settings)No longer shown; shipped builds run object detection models only. TRT Optimization, Rebuild TRT Cache and Input Size are in Backend & Model.
Log detailed inference timing (Detection → Diagnostics)Removed; it had no effect in the current client.
Target Stability (Script Aim) (Detection → Target Continuity)Moved to Aim → Activation & Access as Target Stability, shown while Aim Engine is Script.
RCS Delay (Input Device → Polling & Delays)Renamed RCS Pull Rate and moved to Recoil Control → Timing.
Trigger Polling (Input Device → Polling & Delays)Moved to the Trigger page (Trigger Controls card).
KMBox Query Delay (Input Device)No longer shown; it had no effect.
Software Axis Zeroing card (Input Device)Its Aim Axis setting is a row in Output Device.
Debug & Analysis (Input Device)Hidden for regular accounts; its logging switches have no effect in the current engine.
Normalization / eDPI / scaling readouts (Input Device)Removed; they were display only and did not match the current aim scaling.
Pattern Sensitivity (Recoil Control)Renamed Pattern Strength.
Pattern Interpolation (Recoil Control)No longer shown; a saved value still applies to legacy patterns. To add shots between points, use the pattern editor's Smooth → Catmull-Rom curve.
RCS Controls, Mode Settings, Pattern Settings, Pattern Visualization and the old pattern editor (Recoil Control)Replaced by the Recoil Control, Strength, Timing and Pattern cards and the new pattern editor.
Simple / Advanced (top bar)Removed. Every setting is always shown; on the Aim and Flick pages rarely changed settings are under More settings. Nothing is reset or forced any more, and the web control panel no longer switches modes.
Health Bar Mode (Aim and Flick → Targeting & Position)Removed. Set the class's Box is to Icon in Detection → Classes; the pixel value is kept and applies to Icon classes as the Icon Y Offset. A saved Health Bar Mode setting is ignored.

  1. Select or create a profile on Configs.
  2. Choose the correct Input Device and COM port, then restart Moonlight if the connection changed.
  3. Configure Capture, confirm the center preview, and calibrate the crosshair center if required.
  4. Select a compatible model and backend on Detection, or configure Color in Color edition.
  5. Create weapon classes under Game Profiles → Calibration. (Optional)
  6. Configure Aim, Flick, Trigger, and Recoil Control for each class. (Optional)
  7. Tune Prediction only after base tracking is stable. (Optional)
  8. Choose at most one automatic weapon-class method: OCR, Template Match, or AI Weapon. (Optional)
  9. Use ML Mouse to record and train a personal movement profile if desired. (Optional)
  10. Enable diagnostic telemetry only while troubleshooting, then review Monitor and Logs.

Change one subsystem at a time and duplicate a known-good config before large tuning sessions.

Stuck on a step? Ask in the Moonlight Discord and a staff member will help.