I am making a C4 tool, when you hold the mouse button in for five seconds it should place the bomb.
When it places, it creates a clone of a C4 model that has a script in it that is supposed to start counting down when the remote event activates it. (I'm new to remote events and functions by the way so I don't exactly know what I am doing entirely.)
After it creates the placed c4 model, it is supposed to activate the remote event inside of it and then the C4 tool should disappear. The issue is that it gives me this error:
21:28:10.763 - Players.William12355.Backpack.C4.C4_Script:72: attempt to index local 'plantBombEvent' (a nil value) 21:28:10.763 - Stack Begin 21:28:10.764 - Script 'Players.William12355.Backpack.C4.C4_Script', Line 72 - global plantbomb 21:28:10.764 - Script 'Players.William12355.Backpack.C4.C4_Script', Line 38 21:28:10.765 - Stack End
Here is the script inside the C4 tool:
local ReplicatedStorage = game:GetService("ReplicatedStorage") local plantBombEvent = ReplicatedStorage:FindFirstChild("PlantBombEvent") local Cnplnt = script.Parent:WaitForChild("CanPlant") local CanPlant = Cnplnt.Value local held = false local timeheld = 0 local UserInputService = game:GetService("UserInputService") local pressed = UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) local Tool = script.Parent local a = game.Workspace.A_Site Tool.Equipped:Connect(function(mouse) end) Tool.Activated:Connect(function(plantBombEvent) CanPlant = CheckCanPlant() if CanPlant == false then print("cannot plant here") else held = true while held do wait(1) if CanPlant == true then timeheld = timeheld + 1 -- adds 1 to ``timeheld`` while held = true print(timeheld) CanPlant = CheckCanPlant() game:GetService("UserInputService").InputEnded:connect(function(input) -- Fires when input ended print("ended") held = false CanPlant = false end) if timeheld == 5 then plantbomb(plantBombEvent) end else held = false timeheld = 0 end end end end) function CheckCanPlant() local magnitude = (a.Position - Tool.Handle.Position).magnitude if a.Name == "A_Site" and magnitude < 30.000000000000 then CanPlant = true return CanPlant --elseif a.Name == "B_Site" and magnitude < 100 then --script.Parent.CanPlant.Value = true --print("Ys") else CanPlant = false return CanPlant end end function plantbomb(plantBombEvent) local plantloc = script.Parent plantloc = plantloc.Handle local Planted_C4 = game.Lighting.C4_Planted:Clone() Planted_C4.Parent = game.Workspace Planted_C4:MoveTo(plantloc.Position - Vector3.new(0,3.5,0)) plantBombEvent:FireServer() Tool:Destroy() script:Destroy() end
Here is the script (a normal script) inside the placed C4 model (Which ends up in workspace after cloned and moved)
--Counts down and explodes, destroys itself, and launches the ghost win function when --it reaches 0 local currtime = 10 local C4 = script.Parent local ReplicatedStorage = game:GetService("ReplicatedStorage") local plantBombEvent = Instance.new("RemoteEvent", ReplicatedStorage) plantBombEvent.Name = "PlantBombEvent" local function plantBombFired() print("Yees") while script.Parent.Parent == game.Workspace do wait(1) print(currtime) currtime = currtime - 1 if currtime == 0 then _G.Ghost_Win() C4:Destroy() end end end
The C4 works fine, up until it has to call the remote event.
If someone could explain to me what I am doing wrong, it would be very helpful. I don't know how to reply to comments, I created my account here last night. Also this C4 is not a weapon for a game, it is a part of the game I should say. It is gonna be used like a c4 would in Search in Destroy type game modes.