I’d like to revisit the issue raised in these two posts:
- ContextActionService:GetButton() Button Limit?
- ContextActionService:GetButton() Doesn’t Work With More Than 7 Buttons
Last year @PhoenixSigns made this post outlining a bug in ContextActionService:Get(Button). After much discussion @Ozzypig suggested to set the mobile button generation to false when BindAction is called and manage buttons elsewhere.
My suggestion is never rely on the touch buttons created by BindAction - aka always keep the 3rd argument to ContextActionService false. Create your own buttons using TextButton/ImageButton, and call your action handler manually according to InputBegan/InputChanged/InputEnded events firing. It’s a bit of a non-solution to your question, but I’ve always considered CAS buttons an OK temporary solution until you implement your own touch UI.
Is that really the solution? This seems horribly inadequate. Not only can you not call :GetButton, but the use of :SetTitle also causes the error. One challenge is that every button is called “ContextActionButton” in …LocalPlayer.PlayerGui.ContextActionGui.ContextButtonFrame. If these buttons were named by their actionName then they could be manipulated easily.
If this is an intended limit, please tell me how I can use context bindings with custom buttons.
Thanks and #firstpost !