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?