We have a ViewportFrame which connects to the InputEnded event and runs a script when MouseButton2 is provided by the InputObject. Our issue with this is that when pressing Right Click on the ViewportFrame the Roblox character is moving towards the point under the cursor. We want the event to be “eaten” by the ViewportFrame frame instead of being propagated to the player controller. Thus we tried to the ContextActionService to resolve this issue.
However, we noticed that the player character controller code located at Players.<PlayerName>.PlayerScripts.PlayerModule.ControlModule.ClickToMoveController, which handles the “Right Click to move input” does not respect the processed parameter in the case of MouseButton2. The relevant line is highlighted in the script below:
function ClickToMove:OnCharacterAdded(character)
-- ...
self.inputBeganConn = UserInputService.InputBegan:Connect(function(input, processed)
if input.UserInputType == Enum.UserInputType.Touch then
self:OnTouchBegan(input, processed)
end
-- Cancel path when you use the keyboard controls if wasd is enabled.
if self.wasdEnabled and processed == false and input.UserInputType == Enum.UserInputType.Keyboard
and movementKeys[input.KeyCode] then
CleanupPath()
ClickToMoveDisplay.CancelFailureAnimation()
end
if input.UserInputType == Enum.UserInputType.MouseButton1 then
self.mouse1DownTime = tick()
self.mouse1DownPos = input.Position
end
--------------------------------------------------------------
if input.UserInputType == Enum.UserInputType.MouseButton2 then
--------------------------------------------------------------
self.mouse2DownTime = tick()
self.mouse2DownPos = input.Position
end
end)
-- ...
This sounds like a bug, however we were not able to file a bug report in this forum.
What can I do about this? How can I fix this?