Is there a way to disable equipping/unequipping tools when performing an action?

you could also just remove all the other weapons whilst the gun is reloading and add them back once it’s done

this doesn’t really seem like a stupid idea, but then won’t the order of the weapons get mixed up?

as in:

1 - banana
2 - apple
3 - orange

take the tools

give them back

order is now:

1 - apple
2 - orange
3 - banana

Just use the module I gave you if you do not want to change the parent of the tools and mix the order up.

Let me elaborate on what the module is supposed to do (make sure to fill in the gaps such as the humanoid etc.

First when another tool gets unequipped / another tool gets equipped while you do not want other tools to get equipped and the main tool unequipped. When you detect this unequip all other tools and reequip the tool.
Furthermore the tool replaces the Equipped etc functions so that they do not unnecessary run all the time and your other scripts break.

hm true, but you could do a quick switch where you do e.g.

OrigTool.Parent = Backpack
Tool1.Parent = Backpack
OrigTool.Parent = Backpack
Tool2.Parent = Backpack

or you could make a folder for each weapon and name then “1” “2” “3” etc and then after that add the tools from every folder back

Yeah no that will not work, because the player can switch the order up themselves and you will not be able to detect that. Unless you are using a custom backpack system.

Which will switch the order up once again when equipping, even so if you do everything correctly you will not be able to set a tool to slot 9 or the inventory with only a couple of tools.

how exactly would they switch up the order though??

You can try connecting Humanoid:EquipTool() to Tool.Unequipped?

what if i’m not using .Activated, but InputBegan (via userinput service)?

not a mouse input, but a keyboard input