Help with blaster handling

Hello! I need help with some handling for my blaster. Whenever I go into playing mode and select the blaster, it just spawns somewhere on the baseplate. I tried to rename a part to Handle but it breaks the animations and it doesn’t face the right way I want it to. I have the Tool Grip Editor and I used it but it breaks the animations because I name the part Handle. If anyone could help that would be great! Thank you!

1 Like

I’m not a tool master or anything but here’s some things that will help with performance, data cost, cleanliness, and your problem, it’s a lot of steps and information but if you really want your tool to work you should try to implement this.
BARE MINIMUM

  1. Have a main part called “Handle”, this will be the main part of the tool. The handle should handle the collisions, grip and orientation, and stuff like that.
  • Handle should be unanchored ( Anchored = false (off) )
  • Since we don’t want the handle in the way of the blaster parts, turn the transparency to 1.
  1. Put every other part in the tool that isn’t the handle parented to the handle.
    image
  2. Select all the parts under the Handle and change these settings
  • CanCollide = False (off)
  • Anchored = False (off)
  1. Still have all the parts selected, and add weld constraints to every part.
    image
  2. Weld all these extra parts to the handle
  • Part0: Handle
  • Part1: Itself (the actual part being welded)
    image
  1. Use the tool grip editor to change it the grip to your likings.
    (if you did all these steps correctly then it should work.)

EXTRA PERFORMANCE / CLEANLINESS (save the server)
Now if you care about performance, create a folder and name it “Animations” in ReplicatedStorage, then put all the weapon animations into the folder we created. (we’re gonna save some data cost)
image
dont mind my other folder
Now in the script just grab and load the animations the same way just using this pathway instead.

-- // EXAMPLE CODE
local RepS = game:GetService("ReplicatedStorage")
local AnimFolder = RepS:WaitForChild("Animations")

local Animator = script.Parent:FindFirstChildWhichIsA("Animator")
local ExampleAnimation = Animator:LoadAnimation(AnimFolder.Aim)
ExampleAnimation:Play()

Now please for the love of god rename all those parts that are named "Meshes/AlienGun7_CubeSwordThingyAimer"
to something readable like
"BlasterBody" or "GunBody"

Also put your values into a configuration folder for cleanliness.
image
image
See how clean this is? I love it!

There those are all the things you should implement, I recommend doing it all. Wait…
MY PERFORMANCE NITPICKING DEMONS ARE COMING OUT
Handle Properties:

  • Massless = true
  • Anchored = false
  • CanCollide = true
  • Transparency = 1
  • CollisionFidelity = Box

All other parts under Handle:

  • Massless = true
  • CanCollide = false
  • CanTouch = false
  • CanQuery = false
  • Anchored = false
  • Transparency (preferably 0 if possible transparency is expensive)
  • CollisionFidelity = Box

I hope this helps you!