Preference for handling tools?

I’ve always had a long debate to myself about choosing a preference between tools and pseudotools. Sometimes, I even ask questions about the two. This time, I’d like to take an opinion approach over one that asks for advice when working with either.

For the purposes of this thread, let’s define terms.

Tool: Refers to the usage of a Tool instance to create equipment for a user. They have a full backend to work with and handle a lot of interactions for you. Widely used and easy to get into. An example is a LinkedSword.

Pseudotool: Refers to the practice of a fully Lua-implemented tool, where you code everything from the tool’s backend to systems that the tools rely on (equipping, inventory, so on). You write the backend and have complete control over the tool’s behaviour. An example is a gun framework like that used in Phantom Forces or accessory-based weapons like in Dungeon Quest (accessory attached, base code loaded).

Let me get this out of the way firsthand that tools can do everything pseudotools can and vice versa. One isn’t necessarily better than the either and the choice is purely preferential.

So, with that out of the way, my question: for those of you who have worked with tools, which approach have you taken or which one do you prefer and why?

2 Likes

Up until recently I’ve been using tools because that’s what’s easier. Recently I’ve switched to completely script-based tools, which has been a blessing. If you’re willing to put in the time and effort, I can’t recommend making your own tools enough, having complete control over what your player can do with an item/weapon is 100% a benefit.

I’m afraid this answer doesn’t provide much information as far as a choice goes, though thanks for replying.

Care to share how pseudotools have been a blessing to you? As far as I’m aware, you still have relative control over tools but with some exceptions (such as backspace being hard-implemented to unequip a tool).

Well that’s exactly what I mean. With pseudotools, I don’t have to worry about anything changing that I don’t want to change, an example being unequipping. Before I started implementing pseudotools, I had to worry about if a player unequipped the tool during an action, and implement special cases for when that happens (because it will). Now that I’m not using tools, I don’t have to worry about implementing those special cases, as I just disable unequipping while certain actions are playing.
Another improvement that I’ve found, although this is admittedly easily done with standard tools as well, is the fact that I no longer have to create a clone of the tool to show the tool on the character when it’s not equipped. I just change the weld from the arm (or hand) to the torso (or lower torso).

2 Likes