How to properly make pseudotools?

  1. What do you want to achieve? Keep it simple and clear!
    I would like to learn how to create pseudotools. Basically a weapon that isn’t a tool.

  2. What is the issue? Include screenshots / videos if possible!
    I’m trying to make a game with weapons without the use of tools. I know it sounds ambitious for someone who hasn’t even finished a proper game yet, but I’ve read about the benefits of using pseudotools instead of regular tools, and it sounds like the former are overall extremely superior to the latter. The only problem is that I can’t find anything on the Dev Forum that actually tells how to make a pseudotool.

  3. What solutions have you tried so far? Did you look for solutions on the Developer Hub?
    I’ve found several posts on the benefits of pseudotools, and also plenty of tutorials on how to weld objects to a player’s hand and stuff like that. I’ve actually managed to weld a sword to a player’s arm using Motor6Ds. All I’m really asking here is if anyone has any resources, such as forum pages or videos, that would help me learn how to accomplish this. I’ve searched for a while now, looking up ‘pseudotools’ and ‘without tools’ and the sort, but I haven’t found any people actually asking questions about how to make them. It seems like everyone already knows. I would really prefer not to have to give up on this idea, since the default toolbar and just tools in general seem really basic, and there’s so much more I’d be able to do if I knew. I’m willing to spend time learning this stuff, I just need to know where to start.

You would have to make your own equip and activate functions. That is largely all a tool is in Roblox. For equipping it could be as simple as assigning an “activate” function, and activating is as simple as a context action or user input service.

-- this variable is used to hold any function or nil
local equipped = function()
    print("Activated")
end

-- as part of the context action service we check if equipped is valid,
-- if so we run the equipped function. This "activates" like a tool
local function context_action_handler()
    if equipped then
        equipped()
    end
end

ContextActionService:BindAction("Activate", context_action_handler, true, Enum.KeyCode.E, Enum.KeyCode.ButtonY, Enum.UserInputType.MouseButton1)

There isn’t a “proper” way to do this since you are intentionally disregarding the proper Roblox built in tools.

1 Like

I made a post just about this topic! I’ll link it here:

1 Like