Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --//Services
- local ReplicatedStorage = game:GetService("ReplicatedStorage")
- local Players = game:GetService("Players")
- local RunService = game:GetService("RunService")
- local UserInputService = game:GetService("UserInputService")
- local CoreGui = game:GetService("CoreGui")
- local HttpService = game:GetService("HttpService")
- for _, Screen_GUI in pairs(CoreGui:GetChildren()) do
- if Screen_GUI:GetAttribute("Marked") then
- Screen_GUI:Destroy()
- end
- end
- --//Gui Loading
- local ScreenGui = Instance.new("ScreenGui")
- local Main_Frame = Instance.new("Frame")
- local Chart_Frame = Instance.new("Frame")
- local Boss_Info = Instance.new("Frame")
- local Boss_Name = Instance.new("TextLabel")
- local Damage_Chart = Instance.new("ScrollingFrame")
- local Players_Container = Instance.new("Folder")
- local UIListLayout = Instance.new("UIListLayout")
- local Frame = Instance.new("Frame")
- local Player_Name = Instance.new("TextLabel")
- local Damage = Instance.new("TextLabel")
- local ImageLabel = Instance.new("ImageLabel")
- local UIGradient_1 = Instance.new("UIGradient")
- local UIGradient_2 = Instance.new("UIGradient")
- local UIStroke = Instance.new("UIStroke")
- local UICorner = Instance.new("UICorner")
- local Boss_Notification = Instance.new("Sound")
- ScreenGui:SetAttribute("Marked", true)
- syn.protect_gui(ScreenGui)
- ScreenGui.ResetOnSpawn = false
- ScreenGui.Name = HttpService:GenerateGUID()
- ScreenGui.Parent = CoreGui
- ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
- Main_Frame.Name = "Main_Frame"
- Main_Frame.Parent = ScreenGui
- Main_Frame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- Main_Frame.BackgroundTransparency = 1.000
- Main_Frame.BorderSizePixel = 0
- Main_Frame.Size = UDim2.new(1, 0, 1, 0)
- Main_Frame.Position = UDim2.new(-0.5, 0, 0, 0)
- Main_Frame.SizeConstraint = Enum.SizeConstraint.RelativeYY
- Chart_Frame.Name = "Chart_Frame"
- Chart_Frame.Parent = Main_Frame
- Chart_Frame.AnchorPoint = Vector2.new(0, 0.5)
- Chart_Frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
- Chart_Frame.BackgroundTransparency = 0.300
- Chart_Frame.ClipsDescendants = true
- Chart_Frame.Position = UDim2.new(0.00999999978, 0, 0.5, 0)
- Chart_Frame.Size = UDim2.new(0.349999994, 0, 0.349999994, 0)
- Boss_Info.Name = "Boss_Info"
- Boss_Info.Parent = Chart_Frame
- Boss_Info.AnchorPoint = Vector2.new(0.5, 0)
- Boss_Info.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
- Boss_Info.BackgroundTransparency = 0.900
- Boss_Info.BorderSizePixel = 0
- Boss_Info.Position = UDim2.new(0.5, 0, 0.00999999978, 0)
- Boss_Info.Size = UDim2.new(0.980000019, 0, 0.0900000036, 0)
- Boss_Name.Name = "Boss_Name"
- Boss_Name.Parent = Boss_Info
- Boss_Name.AnchorPoint = Vector2.new(0, 0.5)
- Boss_Name.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- Boss_Name.BackgroundTransparency = 1.000
- Boss_Name.Position = UDim2.new(0, 0, 0.5, 0)
- Boss_Name.Size = UDim2.new(1, 0, 0.800000012, 0)
- Boss_Name.Font = Enum.Font.SourceSans
- Boss_Name.RichText = true
- Boss_Name.Text = "None ― [ N/A hp ]"
- Boss_Name.TextColor3 = Color3.fromRGB(255, 255, 255)
- Boss_Name.TextScaled = true
- Boss_Name.TextSize = 14.000
- Boss_Name.TextStrokeTransparency = 0.500
- Boss_Name.TextWrapped = true
- Damage_Chart.Name = "Damage_Chart"
- Damage_Chart.Parent = Chart_Frame
- Damage_Chart.Active = true
- Damage_Chart.AnchorPoint = Vector2.new(0.5, 1)
- Damage_Chart.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
- Damage_Chart.BackgroundTransparency = 1.000
- Damage_Chart.BorderSizePixel = 0
- Damage_Chart.Position = UDim2.new(0.5, 0, 0.99000001, 0)
- Damage_Chart.Size = UDim2.new(0.980000019, 0, 0.850000024, 0)
- Damage_Chart.CanvasSize = UDim2.new(0, 0, 1.22500002, 0)
- Damage_Chart.ScrollBarThickness = 0
- Damage_Chart.VerticalScrollBarPosition = Enum.VerticalScrollBarPosition.Left
- Players_Container.Name = "Players_Container"
- Players_Container.Parent = Damage_Chart
- UIListLayout.Parent = Players_Container
- UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
- UIListLayout.Padding = UDim.new(0.00999999978, 0)
- Frame.Parent = Damage_Chart
- Frame.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- Frame.BackgroundTransparency = 0.900
- Frame.BorderColor3 = Color3.fromRGB(255, 255, 255)
- Frame.BorderSizePixel = 0
- Frame.ClipsDescendants = true
- Frame.Size = UDim2.new(1, 0, 0.0500000007, 0)
- Frame.Visible = false
- Player_Name.Name = "Player_Name"
- Player_Name.Parent = Frame
- Player_Name.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- Player_Name.BackgroundTransparency = 1.000
- Player_Name.Size = UDim2.new(0.5, 0, 1, 0)
- Player_Name.Font = Enum.Font.SourceSans
- Player_Name.TextColor3 = Color3.fromRGB(255, 255, 255)
- Player_Name.TextScaled = true
- Player_Name.TextSize = 14.000
- Player_Name.TextStrokeColor3 = Color3.fromRGB(255, 255, 255)
- Player_Name.TextStrokeTransparency = 0.950
- Player_Name.TextWrapped = true
- Player_Name.TextXAlignment = Enum.TextXAlignment.Left
- Damage.Name = "Damage"
- Damage.Parent = Frame
- Damage.AnchorPoint = Vector2.new(1, 0)
- Damage.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- Damage.BackgroundTransparency = 1.000
- Damage.Position = UDim2.new(1, 0, 0, 0)
- Damage.Size = UDim2.new(0.5, 0, 1, 0)
- Damage.Font = Enum.Font.SourceSans
- Damage.TextColor3 = Color3.fromRGB(255, 255, 255)
- Damage.TextScaled = true
- Damage.TextSize = 14.000
- Damage.TextStrokeColor3 = Color3.fromRGB(255, 255, 255)
- Damage.TextStrokeTransparency = 0.950
- Damage.TextWrapped = true
- Damage.TextXAlignment = Enum.TextXAlignment.Right
- ImageLabel.Parent = Chart_Frame
- ImageLabel.AnchorPoint = Vector2.new(0.5, 0)
- ImageLabel.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
- ImageLabel.BorderSizePixel = 0
- ImageLabel.Position = UDim2.new(0.5, 0, 0.100000001, 0)
- ImageLabel.Size = UDim2.new(1, 0, 0.00499999989, 0)
- UICorner.Parent = Chart_Frame
- UIStroke.ApplyStrokeMode = "Border"
- UIStroke.Color = Color3.new(1, 1, 1)
- UIStroke.Thickness = 2
- UIStroke.Parent = Chart_Frame
- Boss_Notification.SoundId = "rbxassetid://4590662766"
- Boss_Notification.Volume = 1
- Boss_Notification.Parent = ScreenGui
- local Keypoints = {} do
- for Index, Colour in ipairs(Settings.Border_Colours) do
- if Settings.Border_Colours[Index + 1] then
- Keypoints[#Keypoints + 1] = ColorSequenceKeypoint.new((Index - 1) / #Settings.Border_Colours, Colour)
- else
- Keypoints[#Keypoints + 1] = ColorSequenceKeypoint.new(Index / #Settings.Border_Colours, Colour)
- end
- end
- end
- local ColorSequence = ColorSequence.new(Keypoints)
- UIGradient_1.Color = ColorSequence
- UIGradient_2.Color = ColorSequence
- UIGradient_1.Parent = UIStroke
- UIGradient_2.Parent = ImageLabel
- Main_Frame:TweenPosition(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Sine, 0.5, true)
- --//Instances
- local Fruit_Types = {
- ["Suke-Suke"] = Color3.fromRGB(255, 255, 255),
- ["Spin-Spin"] = Color3.fromRGB(255, 223, 208),
- ["Kilo-Kilo"] = Color3.fromRGB(70, 62, 62),
- ["Bari-Bari"] = Color3.fromRGB(0, 170, 255),
- ["Bomb-Bomb"] = Color3.fromRGB(255, 85, 0),
- ["Mero-Mero"] = Color3.fromRGB(255, 0, 255),
- ["Gomu-Gomu"] = Color3.fromRGB(216, 192, 247),
- ["Magu-Magu"] = Color3.fromRGB(255, 0, 0),
- ["Pika-Pika"] = Color3.fromRGB(250, 250, 43),
- ["Mera-Mera"] = Color3.fromRGB(255, 200, 0),
- ["Hie-Hie"] = Color3.fromRGB(164, 214, 255),
- ["Goro-Goro"] = Color3.fromRGB(104, 232, 255),
- ["Zushi-Zushi"] = Color3.fromRGB(170, 85, 255),
- ["Tori-Tori"] = Color3.fromRGB(85, 255, 255),
- ["Gura-Gura"] = Color3.fromRGB(0, 170, 255),
- ["Suna-Suna"] = Color3.fromRGB(255, 230, 178),
- ["Ito-Ito"] = Color3.fromRGB(200, 200, 200),
- ["Horo-Horo"] = Color3.fromRGB(248, 177, 248)
- }
- local Current = nil
- local Last_Time = 0
- local Toggle = false
- local Connections = {Damage_Chart = {}}
- --//Functions
- function Find_Nearest_Boss()
- local Found, Dist
- for _, NPC in pairs(workspace.NPCs:GetChildren()) do
- if table.find(Settings.Whitelist, NPC.Name) then
- local Magnitude = Players.LocalPlayer:DistanceFromCharacter(NPC.PrimaryPart.Position)
- if Magnitude < (Dist or 1e7) then
- Found, Dist = NPC:FindFirstChildWhichIsA("Humanoid"), Magnitude
- end
- end
- end
- return Found
- end
- function Find_Player_Ability(Player_Name)
- local Player_Data = ReplicatedStorage:FindFirstChild("Stats" ..Player_Name)
- if Player_Data and Player_Data.Stats:FindFirstChild("DF") then
- return Player_Data.Stats.DF.Value
- end
- end
- function Find_Player_Stat(Player_Name, Stat)
- local Player_Data = ReplicatedStorage:FindFirstChild("Stats" ..Player_Name)
- if Player_Data and Player_Data.Stats:FindFirstChild(Stat) then
- return Player_Data.Stats[Stat].Value
- end
- end
- function Clear_Gui()
- for _, UI_Obj in pairs(Players_Container:GetChildren()) do
- if UI_Obj:IsA("Frame") then
- UI_Obj:Destroy()
- task.wait()
- end
- end
- end
- function Format_Number(Number)
- return tostring(Number):reverse():gsub("%d%d%d", "%1,"):reverse():gsub("^,", "")
- end
- function Create_Chams(NPC)
- if Settings.Chams ~= true then
- return
- end
- for _, Obj in pairs(NPC:GetChildren()) do
- if Obj:IsA("BasePart") or Obj:IsA("UnionOperation") or Obj:IsA("MeshPart") then
- if (Obj.Name ~= "HumanoidRootPart" and Obj.Name ~= "camra") then
- if Obj:FindFirstChildWhichIsA("BoxHandleAdornment") then
- return
- end
- local Box = Instance.new("BoxHandleAdornment")
- Box.Adornee = Obj; Box.AlwaysOnTop = true; Box.Name = ""
- Box.Color3 = Color3.new(1, 1, 1); Box.Size = Obj.Size
- Box.ZIndex = 0; Box.Parent = Obj
- end
- end
- end
- end
- function Remove_Chams(NPC)
- for _, Obj in pairs(NPC:GetChildren()) do
- local Box = Obj:FindFirstChildWhichIsA("BoxHandleAdornment")
- if Box ~= nil and Box.Name == "" then
- Box:Destroy()
- end
- end
- end
- function Create_Tab(Player, Humanoid)
- if Players_Container:FindFirstChild(Player.Name) then
- return
- end
- local New_Tab = Frame:Clone()
- New_Tab.Name = Player.Name
- if Players:FindFirstChild(Player.Name) == Players.LocalPlayer then
- New_Tab.Player_Name.Text = string.format("[ %s ] (You)", Player.Name)
- else
- New_Tab.Player_Name.Text = string.format("[ %s ]", Player.Name)
- end
- local Tab_Color = Fruit_Types[Find_Player_Stat(Player.Name, "DF")] or Color3.new(1, 1, 1)
- New_Tab.BackgroundColor3 = Tab_Color
- New_Tab.Player_Name.TextColor3 = Tab_Color
- New_Tab.Damage.TextColor3 = Tab_Color
- New_Tab.Damage.Text = string.format("[ %s ] [ %.1f%% ] ", Format_Number(math.floor(Player.Value)), (math.floor((Player.Value / Humanoid.MaxHealth * 100) * 100) / 100))
- New_Tab.LayoutOrder = -(Player.Value)
- New_Tab.Visible = true
- New_Tab.Parent = Players_Container
- if math.floor(Player.Value) / Humanoid.MaxHealth * 100 < 5 then
- New_Tab.Damage.TextColor3 = Color3.new(1, 0, 0)
- else
- New_Tab.Damage.TextColor3 = Color3.new(0, 1, 0)
- end
- Connections.Damage_Chart[#Connections.Damage_Chart + 1] = Player.Changed:Connect(function(Value)
- New_Tab.Damage.Text = string.format("[ %s ] [ %.1f%% ] ", Format_Number(math.floor(Value)), (math.floor((Value / Humanoid.MaxHealth * 100) * 100) / 100))
- New_Tab.LayoutOrder = -(Value)
- if math.floor(Value) / Humanoid.MaxHealth * 100 < 5 then
- New_Tab.Damage.TextColor3 = Color3.new(1, 0, 0)
- else
- New_Tab.Damage.TextColor3 = Color3.new(0, 1, 0)
- end
- end)
- end
- function Render_Window(Humanoid, Folder)
- if Humanoid and Folder then
- local NPC = Humanoid.Parent
- Current = NPC
- for Index, Conn in pairs(Connections.Damage_Chart) do
- Conn:Disconnect()
- Connections.Damage_Chart[Index] = nil
- end
- local Progress = math.clamp(math.floor((255 * (Humanoid.Health / Humanoid.MaxHealth))), 0, 255)
- local Hex = Color3.fromRGB(255, Progress, Progress):ToHex()
- Boss_Name.Text = string.format("%s ― <font color='%s'>[ %s hp ] [ %.1f%% ]</font>", NPC.Name, "#"..Hex, Format_Number(math.floor(Humanoid.Health)), (math.floor((Humanoid.Health / Humanoid.MaxHealth * 100) * 100) / 100))
- Connections.Damage_Chart[#Connections.Damage_Chart + 1] = Humanoid.HealthChanged:Connect(function(Health)
- Progress = math.clamp(math.floor((255 * (Health / Humanoid.MaxHealth))), 0, 255)
- Hex = Color3.fromRGB(255, Progress, Progress):ToHex()
- Boss_Name.Text = string.format("%s ― <font color='rgb(255, %i, %i)'>[ %s hp ] [ %.1f%% ]</font>", NPC.Name, Progress, Progress, Format_Number(math.floor(Health)), (math.floor((Health / Humanoid.MaxHealth * 100) * 100) / 100))
- end)
- Clear_Gui()
- for _, Player in pairs(Folder:GetChildren()) do
- if Players:FindFirstChild(Player.Name) then
- Create_Tab(Player, Humanoid)
- end
- end
- Connections.Damage_Chart[#Connections.Damage_Chart + 1] = Folder.ChildAdded:Connect(function(Player)
- repeat task.wait() until Player.Name
- if Players:FindFirstChild(Player.Name) then
- Create_Tab(Player, Humanoid)
- end
- end)
- end
- end
- Connections[#Connections + 1] = RunService.Heartbeat:Connect(function()
- if UIGradient_1.Rotation >= 360 then
- UIGradient_1.Rotation = 0
- end
- UIGradient_1.Rotation += 5
- if os.clock() - Last_Time < (Settings.Update_Rate / 1000) then
- return
- end
- local Nearest_Boss = Find_Nearest_Boss()
- if Nearest_Boss ~= nil and Nearest_Boss.Parent ~= Current then
- if Current then
- Remove_Chams(Nearest_Boss.Parent)
- end
- Render_Window(
- Nearest_Boss,
- Nearest_Boss.Parent:WaitForChild("PlayerDMG", 5)
- )
- Boss_Notification:Play()
- Create_Chams(Nearest_Boss.Parent)
- end
- Last_Time = os.clock()
- end)
- ScreenGui.AncestryChanged:Connect(function(_, New_Parent)
- if New_Parent ~= nil then
- return
- end
- for Index, Conn in pairs(Connections) do
- if typeof(Conn) == "RBXScriptConnection" then
- Conn:Disconnect()
- end
- end
- for Index, Conn in pairs(Connections.Damage_Chart) do
- Conn:Disconnect()
- end
- table.clear(Connections)
- end)
- UserInputService.InputBegan:Connect(function(Input_Object)
- if Input_Object.KeyCode == Enum.KeyCode.F2 and ScreenGui.Parent == game.CoreGui then
- if Toggle then
- Main_Frame:TweenPosition(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Sine, 0.5, true)
- Toggle = false
- elseif not Toggle then
- Main_Frame:TweenPosition(UDim2.new(-0.5, 0, 0, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Sine, 0.5, true)
- Toggle = true
- end
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement