Советую не использовать 'mouse' из аргумента.
Также, не стоит биндить функцию к эвенту .Activated во время срабатывания эвента .Equipped , её лучше биндить отдельно.
- Создай RemoteEvent в Tool и НАЗОВИ ЕГО BreakEvent (обязательно)
- Создай LocalScript в Tool
- Создай Script в Tool
Напиши в LocalScript:
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse() -- Получаем мышку игрока
local tool = script.Parent -- Твой инструмент (тул)
local breakEvent = tool:WaitForChild("BreakEvent") -- Эвент на ломание
tool.Activated:Connect(function()
local target = mouse.Target
-- Надо ВСЕГДА проверять существует ли target , потому что игрок может нажать мышкой в то место,
-- где не будет ничего, например, небо, или просто пустота.
if target and target.Name == "BreakebleBoard" then
breakEvent:FireServer(target) -- Активируем эвент BreakEvent , и тем самым говорим серверу что надо сломать объект target
end
end)
tool.Equipped:Connect(function()
print(("Инструмент %s взят в руки!"):format(tool.Name:lower()))
end)
А это напиши в Script:
local Debris = game:GetService("Debris")
local tool = script.Parent
local breakEvent = tool:WaitForChild("BreakEvent")
breakEvent.OnServerEvent:Connect(function(player, target) -- Когда срабатывает эвент BreakEvent
if target and target.Name == "BreakebleBoard" then -- Перепроверяем наличие target
target.Anchored = false
Debris:AddItem(target, 5)
end
end)
Всё сам лично проверял, работало как надо. Если что-то не так, пиши.
Если хочешь могу скинуть файл роблокс студии с этим всем, где всё работает