-
Notifications
You must be signed in to change notification settings - Fork 6
Trigger Deadzones
The Triggers tab controls how trigger input is processed. Each trigger has independent floor, ceiling, anti-deadzone, and sensitivity curve settings.

Triggers are single-axis, one-direction inputs (0% released to 100% pressed). Deadzone settings control which portion of the physical range maps to virtual output. Sensitivity curves reshape the response.
Each trigger has a range slider with two handles defining the active physical range.
Any physical trigger value below the floor is treated as 0% output.
Solves: Trigger drift. Worn controllers often report a small non-zero value when fully released. A floor of 5-10% ignores that false input.
Example: Floor at 8%. Trigger reports 3% at rest due to wear. PadForge treats anything below 8% as zero.
The physical trigger only needs to reach the ceiling to register as 100% output.
Solves: Triggers that cannot reach full travel, or creating a "hair trigger" effect.
Example: Ceiling at 60%. The moment the trigger reaches 60% travel, the game sees 100%. The remaining 40% is ignored.
Output is linearly rescaled between floor and ceiling, so you always get the full 0–100% virtual range within your chosen physical range.
Example (floor 8%, ceiling 60%):
| Physical | Virtual |
|---|---|
| Below 8% | 0% (deadzone) |
| 8% | 0% |
| 34% | 50% |
| 60% | 100% |
| Above 60% | 100% (clamped) |
The Anti-Deadzone slider (0-100%) compensates for in-game deadzones stacking on top of PadForge's floor.
Many games apply their own internal deadzones. PadForge rescales output to start at 0% at the floor edge, but if the game also has a 10% deadzone, your trigger must travel past both before anything happens.
Anti-deadzone adds an immediate jump the moment the trigger crosses the floor. Output starts at the anti-deadzone percentage instead of 0%, then climbs to 100%.
Example: Anti-deadzone at 15%. The moment the trigger crosses the floor, output jumps to 15%, defeating the game's internal deadzone.
| Value | Effect |
|---|---|
| 0% (default) | No jump. Output climbs from 0%. Use when the game has no internal deadzone. |
| 5-15% | Compensates for typical in-game deadzones. Good starting point. |
| 20-30% | Stronger compensation for sluggish triggers. |
| 50%+ | Near-digital feel (on/off) at light press. |

Each trigger has a Sensitivity Curve editor that reshapes how deflection translates to output. Applied after floor, ceiling, and anti-deadzone processing.
Horizontal axis = physical trigger position (post-processing). Vertical axis = final output sent to the game.
| Preset | Behavior | Best for |
|---|---|---|
| Linear | 1:1 input-to-output. Straight diagonal line. | General use (default). |
| Smooth | Precision at light press; flattened at bottom. | Fine low-end control with full output at full press. |
| Aggressive | Amplifies small inputs; steep early rise. | Quick response to light presses. Faster fire threshold. |
| Instant | Near-digital; almost a step function. | Triggers used as binary buttons. |
| S-Curve | Flat at bottom, steep at top. | Driving. Fine throttle at low speed, quick ramp to full. |
| Delay | Flat at bottom, steep later. | Larger dead area before the trigger kicks in. |
| Custom | Appears when you edit control points. | When no preset fits. |
A curve chart appears to the right of the trigger settings.
| Action | Result |
|---|---|
| Double-click chart | Add a control point |
| Drag a point | Reshape the curve |
| Right-click a point | Remove it |
A live indicator dot tracks your trigger's current position on the curve.
Editing control points switches the preset to "Custom." A reset button restores Linear.

Fine analog control across the full range.
| Setting | Left Trigger (Brake) | Right Trigger (Throttle) |
|---|---|---|
| Floor | 0–5% | 0–5% |
| Ceiling | 100% | 100% |
| Anti-Deadzone | 0–5% | 0–5% |
| Sensitivity Curve | S-Curve or Smooth | S-Curve or Smooth |
Full physical range with a curve that adds precision at partial press.
Fire trigger must reach full output as fast as possible.
| Setting | Left Trigger (Aim) | Right Trigger (Fire) |
|---|---|---|
| Floor | 0–5% | 0% |
| Ceiling | 80–100% | 40–60% |
| Anti-Deadzone | 10–15% | 15–25% |
| Sensitivity Curve | Linear or Smooth | Aggressive or Instant |
Low fire ceiling means you only press halfway. Aggressive sensitivity makes light presses send high values. Keep the aim trigger range wider for control.
Triggers used as binary buttons (jump, dash, ability). Snappy feel.
| Setting | Both Triggers |
|---|---|
| Floor | 5–10% |
| Ceiling | 70–80% |
| Anti-Deadzone | 10–20% |
| Sensitivity Curve | Aggressive |
Full precision across the entire range.
| Setting | Throttle Trigger |
|---|---|
| Floor | 0% |
| Ceiling | 100% |
| Anti-Deadzone | 0% |
| Sensitivity Curve | Linear |
Keep defaults. Full physical range maps 1:1 to virtual range.
Every row has a reset button (circular arrow icon) that restores the default. A Reset All button at the top of each trigger section resets everything for that trigger at once.
All sliders support 0.1% precision (one decimal place). Each row has two input fields:
| Field | Description |
|---|---|
| Percentage | Human-friendly value (e.g., 12.5 for 12.5%) |
| Digit | Raw 16-bit axis unit (0–65535). Reference: 0 = 0%, 32768 = 50%, 65535 = 100%. |
Changes apply immediately.
A bar and numeric readout below each trigger show current output after all processing (floor, ceiling, anti-deadzone, and sensitivity curve).
Press and release the trigger to see how your settings affect the output. The display shows both raw value and percentage (e.g., "32768 (50.0%)").
When a slot uses DirectInput with the Custom preset, the Triggers tab adjusts based on TriggerCount:
| TriggerCount | Display |
|---|---|
| 0 | Triggers tab is empty |
| 1 | Controls for Trigger 1 only |
| 2 | Controls for Trigger 1 and 2 (same as Xbox 360 / DualShock 4) |
| 3–8 | Controls for each additional trigger (each uses 1 of 8 axes shared with sticks) |
Each trigger gets independent range slider, anti-deadzone, sensitivity curve, and live value bar.
- Controller Slots: Create and configure virtual controllers
- Button and Axis Mappings: Map physical triggers to virtual outputs
- Stick Deadzones: Similar settings for thumbsticks
- 3D and 2D Visualization: See trigger movement on the controller model
- Force Feedback: Adjust rumble response alongside triggers