I have a script that uses tweening to make the stats of a gun visible while the gun hovers over it, and the script works, but by using multiple UIs it's shown as behind of the UI that's next of the mouse hovering UI.
I've decided to use ZIndex to change the values of the UIs while the cursor hovers, but the ZIndex keeps the same value and it doesn't change. I've wrote the ZIndex changing values like the example shown below.
local sliding = script.Parent.Stats
--local symbol = script.Parent.HideBar.Symbol
b=true
function OnMouseHover()
b=false
sliding:TweenPosition(UDim2.new(0,140,0,0),"Out","Linear",0.25,true)
--symbol:TweenPosition(UDim2.new(0,0,-0.5,0),"Out","Linear",0.5,true)
--ZIndex Changing
sliding.Damage.ZIndex = 2
sliding.Damage.Symbol.ZIndex = 2
sliding.Damage.Fill.ZIndex = 2
sliding.Firerate.ZIndex = 2
sliding.Firerate.Symbol.ZIndex = 2
sliding.Firerate.Fill.ZIndex = 2
sliding.Movement.ZIndex = 2
sliding.Movement.Symbol.ZIndex = 2
sliding.Movement.Fill.ZIndex = 2
sliding.Zoom.ZIndex = 2
sliding.Zoom.Symbol.ZIndex = 2
sliding.Zoom.Fill.ZIndex = 2
sliding.GunType.ZIndex = 2
script.Parent.Background.ZIndex = 3
script.Parent.GunImage.ZIndex = 5
script.Parent.RarityBar.ZIndex = 4
script.Parent.GunTitle.ZIndex = 3
script.Parent.SkinTitle.ZIndex = 3
if b == true then
sliding:TweenPosition(UDim2.new(0,0,0,0),"Out","Linear",0.25,true)
sliding.Damage.ZIndex = 1
sliding.Damage.Symbol.ZIndex = 1
sliding.Damage.Fill.ZIndex = 1
sliding.Firerate.ZIndex = 1
sliding.Firerate.Symbol.ZIndex = 1
sliding.Firerate.Fill.ZIndex = 1
sliding.Movement.ZIndex = 1
sliding.Movement.Symbol.ZIndex = 1
sliding.Movement.Fill.ZIndex = 1
sliding.Zoom.ZIndex = 1
sliding.Zoom.Symbol.ZIndex = 1
sliding.Zoom.Fill.ZIndex = 1
sliding.GunType.ZIndex = 1
script.Parent.Background.ZIndex = 2
script.Parent.GunImage.ZIndex = 4
script.Parent.RarityBar.ZIndex = 3
script.Parent.GunTitle.ZIndex = 2
script.Parent.SkinTitle.ZIndex = 2
--symbol:TweenPosition(UDim2.new(0,0,0,0),"Out","Linear",0.5,true)
end
end
script.Parent.MouseEnter:connect(OnMouseHover)
function OnMouseNotHover()
b=true
sliding:TweenPosition(UDim2.new(0,0,0,0),"Out","Linear",0.25,true)
sliding.Damage.ZIndex = 1
sliding.Damage.Symbol.ZIndex = 1
sliding.Damage.Fill.ZIndex = 1
sliding.Firerate.ZIndex = 1
sliding.Firerate.Symbol.ZIndex = 1
sliding.Firerate.Fill.ZIndex = 1
sliding.Movement.ZIndex = 1
sliding.Movement.Symbol.ZIndex = 1
sliding.Movement.Fill.ZIndex = 1
sliding.Zoom.ZIndex = 1
sliding.Zoom.Symbol.ZIndex = 1
sliding.Zoom.Fill.ZIndex = 1
sliding.GunType.ZIndex = 1
script.Parent.Background.ZIndex = 2
script.Parent.GunImage.ZIndex = 4
script.Parent.RarityBar.ZIndex = 3
script.Parent.GunTitle.ZIndex = 2
script.Parent.SkinTitle.ZIndex = 2
--symbol:TweenPosition(UDim2.new(0,0,0,0),"Out","Linear",0.5,true)
if b == false then
sliding:TweenPosition(UDim2.new(0,140,0,0),"Out","Linear",0.25,true)
sliding.Damage.ZIndex = 2
sliding.Damage.Symbol.ZIndex = 2
sliding.Damage.Fill.ZIndex = 2
sliding.Firerate.ZIndex = 2
sliding.Firerate.Symbol.ZIndex = 2
sliding.Firerate.Fill.ZIndex = 2
sliding.Movement.ZIndex = 2
sliding.Movement.Symbol.ZIndex = 2
sliding.Movement.Fill.ZIndex = 2
sliding.Zoom.ZIndex = 2
sliding.Zoom.Symbol.ZIndex = 2
sliding.Zoom.Fill.ZIndex = 2
sliding.GunType.ZIndex = 2
script.Parent.Background.ZIndex = 3
script.Parent.GunImage.ZIndex = 5
script.Parent.RarityBar.ZIndex = 4
script.Parent.GunTitle.ZIndex = 3
script.Parent.SkinTitle.ZIndex = 3
--symbol:TweenPosition(UDim2.new(0,0,-0.5,0),"Out","Linear",0.5,true)
end
end
script.Parent.MouseLeave:connect(OnMouseNotHover)
Why doesn't the ZIndex change?

1 comment
Check output for errors, if there are none it's either working or not running. Print something on line 1 to see if it is. If it's not then it's either disabled or misplaced. If it's running you've made a logical error you need to find.