local HealthbarFrame = script.Parent:WaitForChild("HealthbarFrame")
local Holder = HealthbarFrame:WaitForChild("Holder")
local Background = HealthbarFrame:WaitForChild("Background")
local Player = game.Players.LocalPlayer
local Character = Player.Character
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local OldTween = nil
repeat wait() until Character:FindFirstChild("Humanoid")
local Humanoid = Character:FindFirstChild("Humanoid")
local DotSize = Holder.Left.AbsoluteSize.X
Holder.Center.Size = UDim2.new(1,-DotSize,1,0)
Background.Center.Size = UDim2.new(1,-DotSize,1,0)
Humanoid.Changed:Connect(function(Property)
if Property == "Health" then
local MaxHealth = Humanoid.MaxHealth
local Health = Humanoid.Health
if OldTween ~= nil then
OldTween:Cancel()
end
OldTween = TweenService:Create(Holder,TweenInfo.new(.5,Enum.EasingStyle.Back),{Size = UDim2.new(Health/MaxHealth,0,1,0)})
OldTween:Play()
end
end)
Here is the mob damage script. I put this in the upper torso
script.Parent.Touched:Connect(function(part)
if part.Parent:FindFirstChild("Humanoid") then
part.Parent.Humanoid:TakeDamage(1)
end
end)

2 comments
Maybe the mob is damaging the player on the client? Show us the mob script too
If the tween was actually working through changing properties, it's probably a problem with the mob script. Your mob may not have a humanoid.