Problem
As a Roblox developer, it is currently too hard to equip tools to the left hand. Currently, the system defaults tools to be equipped to the right hand only. In order for developers to equip a tool to the left hand, a series of manual steps must be taken to do so. This tends to be cumbersome and error prone. Furthermore, the Humanoid tends to move left hand equipped tool back to the right hand, and also duplicate the welds.
Use Cases
The following use cases are presented:
Use Case 1
The first use case involves attaching a tool accessory in the left hand. Case in point is the control panel for the Yautja (The hunter alien from the Predator movie franchise). NPC characters.
Use Case 2
The second use case involves dual wielding, or having two weapons equipped (one in each hand). There are a number of games that use this that would benefit from having a way to properly attack a tool to the left hand.
Use Case 3
In RPG games, it is common for melee combat classes such as warriors and paladins to have a weapon in the right hand, and a shield in the left hand.
Additional Information
I have been thinking about this for awhile now. One of the things that I have considered is the following:
- Add a new Enum to the Tool class that would allow the tool to be equipped right hand only, left hand only, or both. Default would be right hand only.
- Add methods to Humanoid to equip and unequip tools for the left hand.
This would maintain the current API in the Humanoid class. In looking at the API, there is only Humanoid:EquipTool and Humanoid:UnequipTools. Therefore, I propose that the following methods be added:
- EquipToolRight - Equips a tool to the right hand only. Unequips any tool that is in the right hand.
- EquipToolLeft - Equips a tool in the left hand only. Unequips any tool that is in the left hand.
- UnequipToolRight - Unequips all tools in the right hand and places it in the backpack.
- UnequipToolLeft - Unequips all tools in the left hand and places them in the backpack.
In my professional opinion as a software engineer, this would bring the most flexibility while maintaining functional consistency with the existing EquipTool and UnequipTools.
Conclusion
If Roblox is able to address this issue, it would improve my development experience because then we would have an official means of individually equipping tools to the left and right hands.