-
Notifications
You must be signed in to change notification settings - Fork 38
Gamepad
Woof! provides modern gamepad support with deep customization options. Features include rumble, gyro, flick stick, custom weapon slots, and full control of sensitivities, response curves, and deadzones.
Contents:
Basic options are located under Options > General > Gamepad.
The deadzone sliders show the current stick offset to help with identifying stick drift.
Name | Description |
---|---|
Turn Speed | How quickly the view turns left or right in degrees per second. |
Look Speed | How quickly the view looks up or down in degrees per second. |
Movement Deadzone | Decrease this value for finer control of movement, or increase it to prevent stick drift. |
Camera Deadzone | Decrease this value for finer control of turning and looking, or increase it to prevent stick drift. |
Rumble | Adjusts the intensity of controller vibration. |
Free Look | Enables looking up or down. Note: To actually fire up or down, enable Direct Vertical Aiming. |
Invert Look | Inverts the direction for looking up or down. |
Advanced Options | See below. |
Gyro Options | See below. |
Advanced options are located under Options > General > Gamepad > Advanced.
Interactive Demo: Response Curves and Deadzones
Interactive Demo: Movement Types
Name | Description |
---|---|
Stick Layout | Configuration for left and right analog sticks.
|
Flick Time | (Flick Stick) How long it takes to face a direction, in milliseconds, when tilting the stick. |
Movement Type | Prefer movement similar to modern games or prefer Doom's behavior.
|
Forward Sensitivity | Increase this value for a more digital than analog forward/backward response. |
Strafe Sensitivity | Increase this value for a more digital than analog strafe response. |
Extra Turn Speed | How much extra turn speed to apply, in degrees per second, when the stick is fully tilted. |
Extra Ramp Time | How long it takes the extra turn speed to reach maximum, in milliseconds. |
Response Curve | Affects turn and look sensitivity across the stick's input range. Lower values are more responsive, whereas higher values are more steady. |
Gyro options are located under Options > General > Gamepad > Gyro. A DualShock 4 (PS4) or DualSense (PS5) controller is recommended for gyro aiming.
Interactive Demo: Gyro Acceleration
Name | Description |
---|---|
Gyro Aiming | Enables gyro aiming. |
Gyro Space | How motion input is converted into turn and look rotations.
|
Gyro Button Action | Controls the behavior of the Gyro Button.
|
Camera Stick Action | Forces gyro aiming off or on while using the camera stick, regardless of the gyro button action.
|
Turn Sensitivity | How quickly the view turns left or right. A value of 1.0 means one full rotation of the controller rotates the in-game view by 360 degrees. |
Look Sensitivity | How quickly the view looks up or down. |
Acceleration | Multiplier that increases turn and look sensitivity when rotating the controller quickly. Acceleration is applied linearly, ramping up from the lower to upper threshold. |
Lower Threshold | The lower input threshold, in degrees per second, from which acceleration starts ramping up towards the upper threshold. |
Upper Threshold | The upper input threshold, in degrees per second, at which full acceleration is applied. |
Steadying | How much filtering to apply when trying to keep the view still. Controls the strength of both the smoothing and tightening filters. |
Calibrate | Calibration steps:Calibrate the gyro at the start of a play session, when switching controllers, or whenever gyro drift is noticeable. Calibration data is saved to the configuration file and loaded when the game is launched. |
Custom weapon slots are located under Options > Weapons > Slots. Weapon switching behavior may vary slightly depending on the active Compatibility Level.
In the above example, the chaingun is selected by tapping d-pad right once. The BFG is selected by tapping d-pad left twice, skipping the plasma gun.
Name | Description |
---|---|
Enable Slots | Method for enabling weapon slots.
|
Select Slots | Button set used to select weapon slots.
|
Button Name 1st/2nd/3rd | One of four weapon slots, with up to three weapons per slot. |
Some options are located only in the configuration file. Below is a complete list of gamepad-related options in woof.cfg
.
Name | Default | Min | Max | Description |
---|---|---|---|---|
joy_enable | 1 | 0 | 1 | Enable gamepad |
joy_platform | 0 | 0 | 6 | Gamepad platform (0 = Auto; 1 = Xbox 360; 2 = Xbox One/Series; 3 = Playstation 3; 4 = Playstation 4; 5 = Playstation 5; 6 = Switch) |
menu_help | 1 | 0 | 3 | Menu help (0 = Off; 1 = Auto; 2 = Always Keyboard; 3 = Always Gamepad) |
joy_rumble | 5 | 0 | 10 | Rumble intensity (0 = Off; 10 = 100%) |
joy_stick_layout | 1 | 0 | 6 | Analog stick layout (0 = Off; 1 = Default; 2 = Southpaw; 3 = Legacy; 4 = Legacy Southpaw; 5 = Flick Stick; 6 = Flick Stick Southpaw) |
joy_invert_forward | 0 | 0 | 1 | Invert forward axis |
joy_invert_strafe | 0 | 0 | 1 | Invert strafe axis |
joy_invert_turn | 0 | 0 | 1 | Invert turn axis |
joy_invert_look | 0 | 0 | 1 | Invert look axis |
padlook | 0 | 0 | 1 | Padlook |
direct_vertical_aiming | 0 | 0 | 1 | Direct vertical aiming |
input_freelook | NONE | - | - | Toggle free look |
Name | Default | Min | Max | Description |
---|---|---|---|---|
joy_forward_sensitivity | 10 | 0 | 40 | Forward sensitivity (0 = 0.0x; 40 = 4.0x) |
joy_strafe_sensitivity | 10 | 0 | 40 | Strafe sensitivity (0 = 0.0x; 40 = 4.0x) |
joy_turn_speed | 240 | 0 | 720 | Turn speed [degrees/second] |
joy_look_speed | 135 | 0 | 720 | Look speed [degrees/second] |
joy_outer_turn_speed | 0 | 0 | 720 | Extra turn speed at outer deadzone [degrees/second] |
joy_outer_look_speed | 0 | 0 | 720 | Extra look speed at outer deadzone [degrees/second] |
joy_outer_ramp_time | 20 | 0 | 100 | Ramp time for extra speed (0 = Instant; 100 = 1000 ms) |
joy_movement_type | 1 | 0 | 1 | Movement type (0 = Normalized; 1 = Faster Diagonals) |
joy_movement_curve | 10 | 10 | 30 | Movement response curve (10 = Linear; 20 = Squared; 30 = Cubed) |
joy_camera_curve | 20 | 10 | 30 | Camera response curve (10 = Linear; 20 = Squared; 30 = Cubed) |
autostrafe50 | 0 | 0 | 1 | Automatic strafe50 (SR50) |
Name | Default | Min | Max | Description |
---|---|---|---|---|
joy_movement_deadzone_type | 1 | 0 | 1 | Movement deadzone type (0 = Axial; 1 = Radial) |
joy_camera_deadzone_type | 1 | 0 | 1 | Camera deadzone type (0 = Axial; 1 = Radial) |
joy_movement_inner_deadzone | 15 | 0 | 50 | Movement inner deadzone [percent] |
joy_camera_inner_deadzone | 15 | 0 | 50 | Camera inner deadzone [percent] |
joy_movement_outer_deadzone | 2 | 0 | 30 | Movement outer deadzone [percent] |
joy_camera_outer_deadzone | 2 | 0 | 30 | Camera outer deadzone [percent] |
joy_trigger_deadzone | 15 | 0 | 50 | Trigger deadzone [percent] |
Name | Default | Min | Max | Description |
---|---|---|---|---|
joy_flick_mode | 0 | 0 | 2 | Flick mode (0 = Default; 1 = Flick Only; 2 = Rotate Only) |
joy_flick_time | 10 | 10 | 50 | Flick time (10 = 100 ms; 50 = 500 ms) |
joy_flick_rotation_smooth | 8 | 0 | 50 | Flick rotation smoothing threshold (0 = Off; 50 = 5.0 rotations/second) |
joy_flick_rotation_speed | 10 | 0 | 50 | Flick rotation speed (0 = 0.0x; 50 = 5.0x) |
joy_flick_deadzone | 90 | 0 | 100 | Flick deadzone relative to camera deadzone [percent] |
joy_flick_forward_deadzone | 7 | 0 | 45 | Forward angle range where flicks are disabled [degrees] |
joy_flick_snap | 0 | 0 | 2 | Snap to cardinal directions (0 = Off; 1 = 4-way; 2 = 8-way) |
Name | Default | Min | Max | Description |
---|---|---|---|---|
input_gyro | tptouch, lt | - | - | Gyro button |
gyro_enable | 0 | 0 | 1 | Enable gamepad gyro aiming |
gyro_space | 1 | 0 | 1 | Gyro space (0 = Local; 1 = Player) |
gyro_local_roll | 1 | 0 | 2 | Local gyro space uses roll (0 = Off; 1 = On; 2 = Invert) |
gyro_button_action | 2 | 0 | 3 | Gyro button action (0 = None; 1 = Disable Gyro; 2 = Enable Gyro; 3 = Invert) |
gyro_stick_action | 0 | 0 | 2 | Camera stick action (0 = None; 1 = Disable Gyro; 2 = Enable Gyro) |
gyro_turn_sensitivity | 25 | 0 | 200 | Gyro turn sensitivity (0 = 0.0x; 200 = 20.0x) |
gyro_look_sensitivity | 25 | 0 | 200 | Gyro look sensitivity (0 = 0.0x; 200 = 20.0x) |
gyro_acceleration | 10 | 10 | 200 | Gyro acceleration multiplier (10 = 1.0x; 200 = 20.0x) |
gyro_accel_min_threshold | 0 | 0 | 300 | Lower threshold for applying gyro acceleration [degrees/second] |
gyro_accel_max_threshold | 75 | 0 | 300 | Upper threshold for applying gyro acceleration [degrees/second] |
gyro_smooth_threshold | 30 | 0 | 500 | Gyro steadying: smoothing threshold (0 = Off; 500 = 50.0 degrees/second) |
gyro_smooth_time | 125 | 0 | 500 | Gyro steadying: smoothing time [milliseconds] |
gyro_tightening | 30 | 0 | 500 | Gyro steadying: tightening threshold (0 = Off; 500 = 50.0 degrees/second) |
gyro_calibration_a | 0 | - | - | Accelerometer calibration |
gyro_calibration_x | 0 | - | - | Gyro calibration (x-axis) |
gyro_calibration_y | 0 | - | - | Gyro calibration (y-axis) |
gyro_calibration_z | 0 | - | - | Gyro calibration (z-axis) |
Name | Default | Min | Max | Description |
---|---|---|---|---|
input_lastweapon | NONE | - | - | Switch to last used weapon |
weapon_slots_activation | 0 | 0 | 2 | Weapon slots activation (0 = Off; 1 = Hold "Last"; 2 = Always On) |
weapon_slots_selection | 0 | 0 | 2 | Weapon slots selection (0 = D-Pad; 1 = Face Buttons; 2 = 1-4 Keys) |
weapon_slots_1_1 | 9 | 0 | 9 | Slot 1, weapon 1 |
weapon_slots_1_2 | 3 | 0 | 9 | Slot 1, weapon 2 |
weapon_slots_1_3 | 0 | 0 | 9 | Slot 1, weapon 3 |
weapon_slots_2_1 | 5 | 0 | 9 | Slot 2, weapon 1 |
weapon_slots_2_2 | 8 | 0 | 9 | Slot 2, weapon 2 |
weapon_slots_2_3 | 1 | 0 | 9 | Slot 2, weapon 3 |
weapon_slots_3_1 | 6 | 0 | 9 | Slot 3, weapon 1 |
weapon_slots_3_2 | 7 | 0 | 9 | Slot 3, weapon 2 |
weapon_slots_3_3 | 0 | 0 | 9 | Slot 3, weapon 3 |
weapon_slots_4_1 | 4 | 0 | 9 | Slot 4, weapon 1 |
weapon_slots_4_2 | 2 | 0 | 9 | Slot 4, weapon 2 |
weapon_slots_4_3 | 0 | 0 | 9 | Slot 4, weapon 3 |