Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

How to efficiently make a non-tool AND non-hopperbin weapon?

``I've searched the question I've asked, but the answer was pretty much to weld the weapon to the player's right hand and use hopperbins.

** Problems:**

  1. I'm trying to make a weapon without using tools, and I feel like I can do it in a much better way.
    1. Should I copy the weapon and place it into the Character, or should I just put the weapon into the Character?
    2. Are there any other methods I should be using in order to have a more efficient script?
    3. Should I be doing anything else differently in order to have a more efficient script?
2. Is there an easier way to weld? (If you have an answer for this, please post.)
	 I use functions to where it just welds it into its original position, but sometimes the function does not do its job.
	
--------------------------------------------------------------------------------------------------------------------

Code errors: The weapon doesn't weld into its original place.

If this helps, I want it to be like the weapons you see in the ROBLOX game, Shard Online.

(I am using r15 in this script, but it would help me if you could tell me how to turn off r15.)

Code Info: This is a LocalScript located in the StarterPack. There are two unions inside of the LocalScript. The two unions are called Blade and Handle.

Code so far:

~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~
local UserInput = game:GetService("UserInputService")
local Player = game:GetService("Players").LocalPlayer

local Character
local RightHand

local Enabled = true
local Equipped = false


--Equip Function--
	local function Equipped(key, GPE)
		if not Enabled then return end
		Enabled = false
		
		if key.KeyCode == Enum.KeyCode.Q and not GPE then
			if not Equipped then
	
				for _,v in pairs(script:GetChildren()) do
					if v.ClassName == "UnionOperation" or v.ClassName == "Part" or v.ClassName == "WedgePart" then
						local new = v:Clone()
						new.Parent = Character
					end
				end
				local Handle = Character:FindFirstChild("Handle")
				local Blade = Character:FindFirstChild("Blade")
								
				local weld = Instance.new("ManualWeld", Handle)
				weld.Part0, weld.Part1 = Handle, RightHand
				weld.C0 = Handle.CFrame:toObjectSpace(RightHand.CFrame)
				
				local weld = Instance.new("ManualWeld", Handle)
				weld.Part0, weld.Part1 = Handle, Blade
				weld.C0 = Handle.CFrame:toObjectSpace(Blade.CFrame)				
				
				Equipped = true		
				
			elseif Equipped then 
				
				for _,v in pairs(Character:GetChildren()) do
					if v.ClassName == "UnionOperation" or v.ClassName == "Part" or v.ClassName == "WedgePart" then
						if v.Name == "Blade" or v.Name == "Handle" then
							v:Destroy()
						end
					end
				end				
				
				Equipped = false
			end
		end
		Enabled = true
	end
------------------

UserInput.InputBegan:connect(Equipped)

--Gets Character--
	local function GetCharacter(char)
		Character = char
		RightHand = Character:WaitForChild("RightHand")
	end
	
	if Player.Character then
		GetCharacter(Player.Character)
	end
	
	Player.CharacterAdded:connect(GetCharacter)
------------------
~~~~~~~~~~~~~~~~~

Basically, I want to know the best methods to make an efficient non-tool and non-hopperbin weapon. I also want to know if there is an easier way to weld. 





13 comments

0

Please fix your code block.

0

Oh, sorry. How do I do it though?

0

I am new to Scripting Helpers, so I do not know how to make code blocks and stuff.

0

Also, what's wrong with using a Tool? Hopperbins are currently deprecated because Tools can work w/o a handle. Are you actually trying to just have a weapon that doesn't use ROBLOX backpack?

0

Never mind. I figured it out.

0

@alphawolvess, yes I want the weapon to not use ROBLOX backpack. I don't want the weapon to appear in the player's backpack. I want the tool to be equipped by using a key

0

@kingdom5, thanks for the link, but the player is still able to equip the weapon by using a number.

0

It seems to work ok for me? can you include a gif of what is happening and the code if possible

0

Okay, but the sword still isn't fixed. You'll see some random objects on my player's hand.

0

@kingdom5, actually the tool doesn't work at all when I turn off the backpack. sorry

0

Sorry for not being clear guys, but i want to know how to script the weapon efficiently. I'm not wanting to know how to make the weapon.

0

I am going to close this forum and accept the only answer.

1 answer

✓ Accepted answer

A LocalScript in StarterPack or StarterGui can solve your problem very easily. You need to put your model in a storage folder like ReplicatedStorage, then weld handle part of the weapon to character's hand every time character spawns. To make it more efficiently, you can use Keyboard Input for pulling out and in your weapon. All of those scripts needs to be local in order to get mouse, get keyboard input and get player and character easily. I made a sword myself two weeks ago by using this technique. It works, but takes long time if you are going to use too much feature.

2 comments

0

Thanks for your response, but I'm doing the same thing except my model is inside the script.

0

I am sorry I respond late. I can privately help you on Roblox Private Message System.

This discussion is preserved as it was. New answers, comments, and votes are closed.