The question seems stupid, I know, but if you really think about it, how exactly is BindCoreAction special other than just (maybe) not sharing the same name table? I’m trying to figure it out right now because I’m building a 2016 emulator, and I’d like to make it distinct from regular SetAction.
Does it have priority over BindAction? Does BindAction have priority over BindCoreAction? I need answers and I need them fast. Any help is appreciated.
It’s really a shame that ROBLOX removed most of the RobloxScriptSecurity api from their documentation, because that would really help right now.
So, I’ve got two options here. I can either, A: Separate the two by automatically appending a # symbol to the beginning of core actions, and a $ symbol at the beginning of regular actions, that way they never interact. Or, B: I could fake the method entirely and make a table of passed callbacks, executing the core ones first. What do you think I should do?
B requires an action that listens to so many keys and the debug list for context actions will only show one confusing action. For A, I see how the prefix stops the normal unbind from seeing it but the priorities aren’t really in order. Would you be okay with limiting both sides to half their priority range and just making core action use the higher half?
On a separate note, the inner wrapper in the snippet you sent should return the call to functionToBind otherwise it’ll return nil which sinks input by default instead of whatever context decision the function gave.
I probably will do the half priority thing. Besides, nobody would really notice the difference, and also I don’t thin 2016 had BindActionAtPriority anyway. Also, ye I fixed that now, it returns Enum.ContextActionResult.Pass by default if the callback returns nil. Thanks.