bring player ui upgrade  All credits for JustAMale
Key Required

bring player ui upgrade All credits for JustAMale

Furry Infection OutbreakNormalplayerNormalplayer 1.6K views 798 executesUpdated Jan 17, 2026
3.3/ 5(3 votes)
2167% Positive
Lua Script•238 lines (6322 chars)
-- SERVICES
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local event = player.Backpack:WaitForChild("Grab"):WaitForChild("ActionEvent")

-- GUI
local gui = Instance.new("ScreenGui")
gui.Parent = player:WaitForChild("PlayerGui")
gui.ResetOnSpawn = false

-- SHADOW
local shadow = Instance.new("ImageLabel")
shadow.Parent = gui
shadow.AnchorPoint = Vector2.new(0.5,0.5)
shadow.Position = UDim2.fromScale(0.5,0.5)
shadow.Size = UDim2.fromScale(0.38,0.48)
shadow.BackgroundTransparency = 1
shadow.Image = "rbxassetid://1316045217"
shadow.ImageTransparency = 0.6
shadow.ScaleType = Enum.ScaleType.Slice
shadow.SliceCenter = Rect.new(10,10,118,118)

-- MAIN FRAME
local frame = Instance.new("Frame", gui)
frame.AnchorPoint = Vector2.new(0.5,0.5)
frame.Position = UDim2.fromScale(0.5,0.5)
frame.Size = UDim2.fromScale(0.35, 0.45)
frame.BackgroundColor3 = Color3.fromRGB(22,22,22)
frame.BorderSizePixel = 0
Instance.new("UICorner", frame).CornerRadius = UDim.new(0,14)

local stroke = Instance.new("UIStroke", frame)
stroke.Color = Color3.fromRGB(80,80,80)
stroke.Thickness = 1
stroke.Transparency = 0.4

shadow.Position = frame.Position
shadow.Size = frame.Size + UDim2.fromOffset(30,30)

-- TITLE
local title = Instance.new("TextLabel", frame)
title.Size = UDim2.fromScale(1,0.12)
title.BackgroundTransparency = 1
title.Text = "BRING PLAYER"
title.Font = Enum.Font.GothamBold
title.TextScaled = true
title.TextColor3 = Color3.fromRGB(240,240,240)

-- SCROLL
local scroll = Instance.new("ScrollingFrame", frame)
scroll.Size = UDim2.fromScale(0.9,0.55)
scroll.Position = UDim2.fromScale(0.05,0.14)
scroll.CanvasSize = UDim2.new(0,0,0,0)
scroll.ScrollBarImageTransparency = 0.6
scroll.BackgroundColor3 = Color3.fromRGB(30,30,30)
scroll.BorderSizePixel = 0
Instance.new("UICorner", scroll).CornerRadius = UDim.new(0,10)

local scrollStroke = Instance.new("UIStroke", scroll)
scrollStroke.Color = Color3.fromRGB(70,70,70)
scrollStroke.Transparency = 0.5

local padding = Instance.new("UIPadding", scroll)
padding.PaddingTop = UDim.new(0,8)
padding.PaddingLeft = UDim.new(0,8)
padding.PaddingRight = UDim.new(0,8)

-- CONTENT
local content = Instance.new("Frame", scroll)
content.Size = UDim2.new(1,0,0,0)
content.BackgroundTransparency = 1

local layout = Instance.new("UIListLayout", content)
layout.Padding = UDim.new(0,8)

-- SELECTED
local selectedPlayer = nil

-- CREATE BUTTON
local function addPlayer(plr)
	if plr == player then return end

	local btn = Instance.new("TextButton")
	btn.Size = UDim2.new(1,0,0,36)
	btn.Text = plr.Name
	btn.Font = Enum.Font.Gotham
	btn.TextScaled = true
	btn.BackgroundColor3 = Color3.fromRGB(45,45,45)
	btn.TextColor3 = Color3.fromRGB(230,230,230)
	btn.Parent = content
	Instance.new("UICorner", btn).CornerRadius = UDim.new(0,8)

	local btnStroke = Instance.new("UIStroke", btn)
	btnStroke.Transparency = 0.6

	btn.MouseButton1Click:Connect(function()
		selectedPlayer = plr

		for _,v in ipairs(content:GetChildren()) do
			if v:IsA("TextButton") then
				v.BackgroundColor3 = Color3.fromRGB(45,45,45)
			end
		end

		btn.BackgroundColor3 = Color3.fromRGB(130,35,35)
	end)
end

-- REFRESH LIST
local function refresh()
	for _,v in ipairs(content:GetChildren()) do
		if v:IsA("TextButton") then
			v:Destroy()
		end
	end

	selectedPlayer = nil

	for _,plr in ipairs(Players:GetPlayers()) do
		addPlayer(plr)
	end

	task.wait()
	content.Size = UDim2.new(1,0,0,layout.AbsoluteContentSize.Y)
	scroll.CanvasSize = UDim2.new(0,0,0,layout.AbsoluteContentSize.Y + 12)
end

Players.PlayerAdded:Connect(refresh)
Players.PlayerRemoving:Connect(refresh)
refresh()

-- BRING BUTTON
local bring = Instance.new("TextButton", frame)
bring.Size = UDim2.fromScale(0.9,0.12)
bring.Position = UDim2.fromScale(0.05,0.72)
bring.Text = "BRING"
bring.Font = Enum.Font.GothamBold
bring.TextScaled = true
bring.BackgroundColor3 = Color3.fromRGB(140,40,40)
bring.TextColor3 = Color3.new(1,1,1)
bring.BorderSizePixel = 0
Instance.new("UICorner", bring).CornerRadius = UDim.new(0,10)

local bringStroke = Instance.new("UIStroke", bring)
bringStroke.Transparency = 0.4

-- STATUS
local status = Instance.new("TextLabel", frame)
status.Size = UDim2.fromScale(0.9,0.1)
status.Position = UDim2.fromScale(0.05,0.86)
status.BackgroundTransparency = 1
status.Font = Enum.Font.Gotham
status.TextScaled = true
status.TextColor3 = Color3.fromRGB(255,80,80)

local function setStatus(txt,color)
	status.Text = txt
	status.TextColor3 = color
	task.delay(2,function()
		if status.Text == txt then
			status.Text = ""
		end
	end)
end

-- BRING LOGIC (INALTERADO)
bring.MouseButton1Click:Connect(function()
	if not selectedPlayer then
		setStatus("Select a player", Color3.fromRGB(255,80,80))
		return
	end

	if not selectedPlayer.Character then
		setStatus("Character not loaded", Color3.fromRGB(255,160,80))
		return
	end

	local hum = selectedPlayer.Character:FindFirstChildOfClass("Humanoid")
	if not hum then
		setStatus("No humanoid", Color3.fromRGB(255,80,80))
		return
	end

	event:FireServer("Zahvat", hum, "ToolLocal")
	setStatus("Player brought!", Color3.fromRGB(80,255,80))
end)

-- 🔷 DRAGGABLE UI (FRAME + SHADOW) 🔷
local UserInputService = game:GetService("UserInputService")

local dragging = false
local dragStart
local frameStartPos
local shadowStartPos

local function updateDrag(input)
	local delta = input.Position - dragStart

	frame.Position = UDim2.new(
		frameStartPos.X.Scale,
		frameStartPos.X.Offset + delta.X,
		frameStartPos.Y.Scale,
		frameStartPos.Y.Offset + delta.Y
	)

	shadow.Position = UDim2.new(
		shadowStartPos.X.Scale,
		shadowStartPos.X.Offset + delta.X,
		shadowStartPos.Y.Scale,
		shadowStartPos.Y.Offset + delta.Y
	)
end

frame.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1
	or input.UserInputType == Enum.UserInputType.Touch then

		dragging = true
		dragStart = input.Position
		frameStartPos = frame.Position
		shadowStartPos = shadow.Position

		input.Changed:Connect(function()
			if input.UserInputState == Enum.UserInputState.End then
				dragging = false
			end
		end)
	end
end)

UserInputService.InputChanged:Connect(function(input)
	if dragging and (
		input.UserInputType == Enum.UserInputType.MouseMovement
		or input.UserInputType == Enum.UserInputType.Touch
	) then
		updateDrag(input)
	end
end)

Features & Information

Bring players. you need to be a furry for this work. Used chat gpt.

Community Comments (6)

Cryabou*35Cryabou*35Jan 17, 2026

Ty

TriasnTriasnJan 17, 2026

Dang

GuyHarleyQuinnGuyHarleyQuinnJan 18, 2026

does not work so ty

Replying to @GuyHarleyQuinn
NormalplayerNormalplayerJan 18, 2026

@GuyHarleyQuinn don't work mobile

JustAMaleJustAMaleJan 18, 2026

very cool ui but it doesn't work with mobile to type username, thanks

Replying to @JustAMale
NormalplayerNormalplayerJan 18, 2026

@JustAMale k

More Scripts for Furry Infection Outbreak