Hello,
I want this script below to work, it works fine. However it doesn’t detect which part I clicked.
I want the script to print the clicked part’s name, I have lucky block 1, 2, 3, etc. but it only prints LuckyBlock1 even though I am clicking on the other ones too.
local CollectionService = game:GetService("CollectionService")
local Tag = "Lucky Block"
local TaggedParts = CollectionService:GetTagged(Tag)
local debounce = false
for _, TaggedPart in ipairs(TaggedParts) do
local function onClicked(Player)
print(TaggedPart.Name) --Here
if debounce == false then
debounce = true
local Health = TaggedPart.Health
local Open = TaggedPart.Open
if Open.Value == false then
if Health.Value > 0 then
local Character = Player.Character or Player.CharacterAdded:Wait()
local HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")
local Humanoid = Character:FindFirstChild("Humanoid")
local shouldLookAt = Vector3.new(TaggedPart.HumanoidRootPart.Position.X, HumanoidRootPart.Position.Y, TaggedPart.HumanoidRootPart.Position.Z)
HumanoidRootPart.CFrame = CFrame.lookAt(HumanoidRootPart.Position, shouldLookAt)
local Animation = script.SmashAnimation
local AnimationTrack = Humanoid:LoadAnimation(Animation)
AnimationTrack:Play()
wait(0.75)
debounce = false
end
end
local EffectsFolder = TaggedPart.Effect
local Effect1 = EffectsFolder.Area.Sparkles
local Effect2 = EffectsFolder.Core.Attachment.Glow
local Effect3 = EffectsFolder.Core2.Attachment.Rays1
local Effect4 = EffectsFolder.Core2.Attachment.Rays2
local Effect5 = EffectsFolder.Core2.PointLight
local RS = game:GetService("ReplicatedStorage")
local Event = RS:FindFirstChild("Health")
local Health = TaggedPart.Health
local OpenValue = TaggedPart.Open
if OpenValue.Value == false then
if Health.Value > 0 then
Health.Value -= 50
Event:FireClient(Player, Health.Value)
wait(0.5)
if Health.Value < 50 then
local Animation = script:WaitForChild("OpenAnimation")
local AnimationController = TaggedPart:WaitForChild("AnimationController")
local Open = AnimationController:LoadAnimation(Animation)
wait(0.25)
Open:Play()
Effect1.Enabled = true
Effect2.Enabled = true
Effect3.Enabled = true
Effect4.Enabled = true
Effect5.Enabled = true
OpenValue.Value = true
wait(1)
TaggedPart.Top:Destroy()
wait(0.75)
debounce = false
end
end
end
end
end
local function onClicked2(Player)
local InsertService = game:GetService("InsertService")
local Gears = {
47620, -- Slingshot
47586, -- Time Bomb
246270069, -- Katana
47637, -- Rocket Launcher
}
local Health = TaggedPart.Health
local Open = TaggedPart.Open
if Open.Value == true then
if Health.Value < 50 then
TaggedPart.ClickDetector:Destroy()
local Character = Player.Character or Player.CharacterAdded:Wait()
local HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")
local shouldLookAt = Vector3.new(TaggedPart.HumanoidRootPart.Position.X, HumanoidRootPart.Position.Y, TaggedPart.HumanoidRootPart.Position.Z)
local Humanoid = Character:FindFirstChild("Humanoid")
local Animation = script.GrabAnimation
local AnimationTrack = Humanoid:LoadAnimation(Animation)
HumanoidRootPart.CFrame = CFrame.lookAt(HumanoidRootPart.Position, shouldLookAt)
AnimationTrack:Play()
wait(0.4)
local RandomGear = Gears[math.random(1,#Gears)]
local Backpack = Player:WaitForChild("Backpack")
local NewGear = InsertService:LoadAsset(RandomGear)
local Tool = NewGear:FindFirstChildOfClass("Tool")
if Tool then
wait(0.5)
Tool.Parent = Backpack
wait(0.75)
end
end
end
local connections = {}
local function onInstanceAdded(object)
if object:IsA("Model") then
connections[object] = object.ClickDetector.MouseClick:Connect(onClicked)
connections[object] = object.ClickDetector.MouseClick:Connect(onClicked2)
end
end
local function onInstanceRemoved(object)
if connections[object] then
connections[object]:disconnect()
connections[object] = nil
end
end
CollectionService:GetInstanceAddedSignal(Tag):Connect(onInstanceAdded)
for _, object in pairs(CollectionService:GetTagged(Tag)) do
onInstanceAdded(object)
end
end
TaggedPart.ClickDetector.MouseClick:Connect(onClicked)
TaggedPart.ClickDetector.MouseClick:Connect(onClicked2)
end