local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer local pGui = player:WaitForChild("PlayerGui") local screenGui = Instance.new("ScreenGui") screenGui.Name = "Evidence" screenGui.ResetOnSpawn = false screenGui.Parent = pGui local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 300, 0, 220) mainFrame.Position = UDim2.new(0.5, -150, 0.5, -110) mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) mainFrame.Parent = screenGui Instance.new("UICorner", mainFrame) local textBox = Instance.new("TextBox") textBox.Size = UDim2.new(0.85, 0, 0, 45) textBox.Position = UDim2.new(0.075, 0, 0.25, 0) textBox.PlaceholderText = "Put player name" textBox.BackgroundColor3 = Color3.fromRGB(40, 40, 40) textBox.TextColor3 = Color3.new(1, 1, 1) textBox.Parent = mainFrame Instance.new("UICorner", textBox) local createBtn = Instance.new("TextButton") createBtn.Size = UDim2.new(0.85, 0, 0, 45) createBtn.Position = UDim2.new(0.075, 0, 0.55, 0) createBtn.Text = "Create" createBtn.BackgroundColor3 = Color3.fromRGB(0, 150, 255) createBtn.TextColor3 = Color3.new(1, 1, 1) createBtn.Font = Enum.Font.GothamBold createBtn.Parent = mainFrame Instance.new("UICorner", createBtn) local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 30, 0, 30) closeBtn.Position = UDim2.new(1, -35, 0, 5) closeBtn.Text = "X" closeBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50) closeBtn.TextColor3 = Color3.new(1, 1, 1) closeBtn.Parent = mainFrame Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(1, 0) local dragging, dragInput, dragStart, startPos local function update(input) local delta = input.Position - dragStart mainFrame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end mainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then if UserInputService:GetFocusedTextBox() then return end dragging = true dragStart = input.Position startPos = mainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) mainFrame.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then update(input) end end) local function createPlayerNPC(userId, username) local targetPart = workspace:WaitForChild("Lobby"):WaitForChild("_Obby"):WaitForChild("Quidz") local afkLabelTemplate = workspace:WaitForChild(player.Name):FindFirstChild("_AFKLabel") local npc = Players:CreateHumanoidModelFromUserId(userId) npc.Name = username npc.Parent = workspace local quidzCFrame = (targetPart.CFrame + Vector3.new(0, 3, 0)) * CFrame.Angles(0, math.rad(-90), 0) local tempPos = CFrame.new(142.00009155273438, 10.9980177879333496, -19.999996185302734) * CFrame.Angles(0, math.rad(-180), 0) npc:PivotTo(quidzCFrame) task.spawn(function() while npc and npc.Parent do task.wait(8) if not npc.Parent then break end npc:PivotTo(tempPos) task.wait(0.4) if not npc.Parent then break end npc:PivotTo(quidzCFrame) end end) if afkLabelTemplate then local newLabel = afkLabelTemplate:Clone() newLabel.Parent = npc:FindFirstChild("Head") or npc.PrimaryPart newLabel.Adornee = npc:FindFirstChild("HumanoidRootPart") end local humanoid = npc:WaitForChild("Humanoid") local animator = humanoid:FindFirstChildOfClass("Animator") or Instance.new("Animator", humanoid) task.spawn(function() while npc and npc.Parent do humanoid.Jump = true task.wait(5) end end) task.defer(function() local animate = npc:WaitForChild("Animate", 5) if not animate then return end local function loadTrack(name, priority) local folder = animate:FindFirstChild(name) if folder then local animObj = folder:FindFirstChildOfClass("Animation") if animObj then local track = animator:LoadAnimation(animObj) track.Priority = priority return track end end return nil end local idleTrack = loadTrack("idle", Enum.AnimationPriority.Idle) local jumpTrack = loadTrack("jump", Enum.AnimationPriority.Action) local fallTrack = loadTrack("fall", Enum.AnimationPriority.Action) if idleTrack then idleTrack.Looped = true idleTrack:Play() end humanoid.StateChanged:Connect(function(_, newState) if newState == Enum.HumanoidStateType.Jumping then if fallTrack then fallTrack:Stop() end if jumpTrack then jumpTrack:Play() end elseif newState == Enum.HumanoidStateType.Freefall then if jumpTrack then jumpTrack:Stop() end if fallTrack then fallTrack:Play() end elseif newState == Enum.HumanoidStateType.Landed then if jumpTrack then jumpTrack:Stop() end if fallTrack then fallTrack:Stop() end if idleTrack and not idleTrack.IsPlaying then idleTrack:Play() end end end) animate.Disabled = true end) end createBtn.MouseButton1Click:Connect(function() local inputName = textBox.Text if inputName == "" then return end local idSuccess, userId = pcall(function() return Players:GetUserIdFromNameAsync(inputName) end) if idSuccess and userId then local UserService = game:GetService("UserService") local infoSuccess, infoResult = pcall(function() return UserService:GetUserInfosByUserIdsAsync({userId}) end) local displayName = inputName if infoSuccess and infoResult and #infoResult > 0 then displayName = infoResult[1].DisplayName end createPlayerNPC(userId, displayName) end end) closeBtn.MouseButton1Click:Connect(function() screenGui:Destroy() end)