XInput digital button masks (1 to 65535) and an optional controller index (0 to 3, default 0). Combine buttons with bitwise OR. Extra held buttons do not stop a registered chord from matching.
Button
Value
D-pad Up / Down / Left / Right
0x0001 / 0x0002 / 0x0004 / 0x0008
Start / Back
0x0010 / 0x0020
L3 / R3
0x0040 / 0x0080
LB / RB
0x0100 / 0x0200
A / B / X / Y
0x1000 / 0x2000 / 0x4000 / 0x8000
Controllers XInput does not report are read from HID over USB or Bluetooth and returned with XInput button values. A HID gamepad takes the first controller index XInput leaves empty, in connection order. When Steam Input also presents the controller as an Xbox pad, it appears at two indices.
PlayStation pads (DualSense, DualSense Edge, DualShock 4): Cross is A, Circle is B, Square is X, Triangle is Y, L1/R1 are the shoulders, Create/Share is Back, Options is Start. PS, touchpad and mute are not reported. Other HID pads: buttons 1 to 12 are X, A, B, Y, LB, RB, LT, RT, Back, Start, LS, RS; the hat switch is the D-pad.
Suppression filters Fallout 76's XInput calls only. Fallout 76 reads a USB DualShock 4 and a Bluetooth DualSense through its own PlayStation code, so suppression has no effect on those. A Bluetooth DualShock 4 is passed to the game through XInput and is suppressed like an Xbox pad. If xScal could not hook Fallout's XInput import, every suppression call returns false and the game's input is unchanged.
XInput button mask. 1 to 65535; see the button table.
controller
uint
Optional. Default 0. XInput controller index, 0 to 3.
Returns Boolean
Registering the same mask again returns true.
Example
var l3AndR3:uint = 0x0040 | 0x0080; // 0x00C0__SFCodeObj.call("Input.RegisterGamepadButtons", l3AndR3, 0);
if (__SFCodeObj.call("Input.AreGamepadButtonsPressed", l3AndR3, 0)) {
// L3 and R3 are both held.
}
Physical state in the XInput layout, read before suppression. Returns connected:false with zero values while Fallout 76 is not the foreground process, when no controller is at that index, or when the index is out of range.
XInput button mask. 1 to 65535; see the button table.
controller
uint
Optional. Default 0. XInput controller index, 0 to 3.
Returns Boolean
Hides the mask from Fallout 76's XInput reads. xScal polling still sees the real buttons. Enable it when a custom window opens and remove it on every close path.
Example
var navigation:uint = 0x0001 | 0x0002; // D-pad Up and Down__SFCodeObj.call("Input.SuppressGamepadButtons", navigation, 0);
// ...__SFCodeObj.call("Input.UnsuppressGamepadButtons", navigation, 0);
Optional. Default 0. XInput controller index, 0 to 3.
Returns Boolean
Fallout 76 reads zero triggers and centered sticks from that controller. Buttons are suppressed separately. Input.PollGamepad still returns the real values. Returns false for an index over 3 or when the XInput hook is not installed.
For teardown and error paths. Held buttons stay hidden until released, as with Input.UnsuppressGamepadButtons. Returns false when the XInput hook is not installed.