ArcHandles.MouseLeave has been broken ever since 8 YEARS ago

The .MouseLeave signal of ArcHandles is broken and does not trigger at all no matter what. This leaves developers unable to detect when the mouse leaves the ArcHandle, which is very useful in a lot of cases.

Here is a video showcasing this bug where .MouseEnter works correctly, but .MouseLeave does not:

I’ve heard reports of ArcHandles.MouseLeave not working going back to as far as 2017, and it used to error before. But now there is a difference: It doesn’t error, but it completely does NOT do anything.

Tested on Roblox Studio version-cc8f13de4c4e43de

Reproduction place:
archandle mouseleave bug repro.rbxl (57.4 KB) (Updated to use a LocalScript for connecting to the .MouseLeave signal, instead of a server script, but the bug still persists.)

Expected behavior

.MouseLeave triggers when mouse leaves ArcHandle

14 Likes

At least the problem is only with server scripts, I use this event in localscripts and it works (at least for me)

1 Like

the problem happens with serverscripts because of ancient changes such as FE release

they added backwards compatibility for serverside scripts to detect mouse events but roblox staff oficially said to use localscripts to detect those mouse events instead of server scripts

its more like a you problem not roblox problem just use localscripts and remote events to replicate the event

edit: ok nvm i was wrong

1 Like

It doesn’t seem to work for me in LocalScripts. I wanted to see before if this was a hardware related bug so I also tried it in a different computer, and even got my friend to test it out, and it didn’t work for them either.

3 Likes

The event also do not work on LocalScripts. Whereas Handles.MouseLeave does work.

I have edited the reproduction place above to use a LocalScript for the .MouseLeave connection, and also have added a Handles instance to show that Handles.MouseLeave does work, but ArcHandles.MouseLeave does not:

4 Likes

Worried. Leave it and I’ll take another look.

1 Like

Okay. This issue is a bug, so it needs to be published. Although it’s strange, I have a game using ArcHandles and the problem doesn’t occur there. Is this only for new games?

Maybe changing the RunContext can fix it?

the main problem here is using arc handles

1 Like

.MouseLeave also do not seem to fire in scripts with its RunContext set to Client.

1 Like

An update: If you connect to the MouseLeave signal with :ConnectParallel() inside a LocalScript that is parented under an actor, the signal does get triggered, but the error Invalid value for enum Axis gets thrown, which has been an error ever since 2017.

Theoretically, it would be possible to detect when the mouse leaves the ArcHandle by detecting when that error gets thrown, but that is a very hacky and unreliable method.

1 Like

Found the issue and am making sure MouseLeave gets sent correctly. Also taking this time to update MouseEnter so it only fires once instead of a million bajillion (large number I just made up) times. Will update here once that fix is live.

That being said, ArcHandles are more of a legacy instance type. I’d recommend the use of DragDetectors instead which are far more versatile and have better cross platform support.

7 Likes

Alright this issue is fixed, let me know if there are any issues.

1 Like

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