InputSink not preventing input processes on UI behind it

As you can see in the video below, the UI still accepts hover inputs even though there’s an overlay on top of it.


The overlay is the dark transparent frame that fills the whole menu behind the popup when it shows, it has its EnumInput.Sink.All set. It’s also active, on a higher ZIndex, and higher layout order than the button (if it matters).

Here’s how I tried EnumInput.Sink.All in a local script if anyone was wondering (this was the only official fix I found but it still didn’t work):

local CollectionService = game:GetService("CollectionService")

local function apply(instance)
	if instance:IsA("GuiObject") then
		instance.InputSink = Enum.InputSink.All
	end
end

for i, instance in ipairs(CollectionService:GetTagged("Sink All")) do
	apply(instance)
end

CollectionService:GetInstanceAddedSignal("Sink All"):Connect(apply)

If you want to try it out yourself:
BugExample.rbxl (70.3 KB)

System Info: Windows 11: NVIDIA GeForce RTX 3060, AMD Ryzen 7 3700x 8-Core Processor

Expected behavior

If everything was working correctly, the EnumInput.Sink.All would force UI objects beneath it (physically) to stop processing inputs.

InputSink as a feature is not currently enabled, which is why it is hidden in the Studio properties panel. We’re working on some fixes to make this feature available soon.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.