null nil true 0 -0.349999994 -0.649999976 1 -0 0 0 0 -1 0 1 0 OwnerCameraTool http://www.roblox.com/asset/?id=13506760 false CameraToolScript local function waitForChild(parent, childName) local child = parent:findFirstChild(childName) if child then return child end while true do child = parent.ChildAdded:wait() if child.Name==childName then return child end end end local Tool = script.Parent waitForChild(Tool,"ScreenshotGui") waitForChild(Tool.ScreenshotGui,"FlashFrame") waitForChild(Tool.ScreenshotGui,"ScreenshotFrame") waitForChild(Tool.ScreenshotGui.ScreenshotFrame, "ScreenshotText") local gui = Tool.ScreenshotGui local flashStep = 0.05 local active = false Tool.Activated:connect(function() if active then return end active = true local camera = game.Workspace.CurrentCamera local cframe = game.Workspace.CurrentCamera.CoordinateFrame local player = game.Players:GetPlayerFromCharacter(Tool.Parent) local cameraShot = game.Workspace:FindFirstChild("OwnerCameraShotRef") if not cameraShot then local newCameraShot = Instance.new("Model") newCameraShot.Name = "OwnerCameraShotRef" local cameraPos = Instance.new("Vector3Value") cameraPos.Name = "CameraPos" cameraPos.Value = Vector3.new(cframe.p.x,cframe.p.y,cframe.p.z) local cameraFocus = Instance.new("Vector3Value") cameraFocus.Name = "CameraFocus" cameraFocus.Value = game.Workspace.CurrentCamera.Focus.p cameraPos.Parent = newCameraShot cameraFocus.Parent = newCameraShot newCameraShot.Parent = game.Workspace local serverScript = Tool.UpdateServerCamera:clone() serverScript.Parent = newCameraShot serverScript.Disabled = false else if cameraShot:FindFirstChild("CameraPos") then cameraShot.CameraPos.Value = Vector3.new(game.Workspace.CurrentCamera.CoordinateFrame.p.x,game.Workspace.CurrentCamera.CoordinateFrame.p.y,game.Workspace.CurrentCamera.CoordinateFrame.p.z) end if cameraShot:FindFirstChild("CameraFocus") then cameraShot.CameraFocus.Value = game.Workspace.CurrentCamera.Focus.p end end gui.FlashFrame.BackgroundTransparency = 0 while gui.FlashFrame.BackgroundTransparency < 1 do gui.FlashFrame.BackgroundTransparency = gui.FlashFrame.BackgroundTransparency + flashStep wait(0.03) end active = false end) function setupGui() local player = game.Players:GetPlayerFromCharacter(Tool.Parent) if gui and player and player:FindFirstChild("PlayerGui") then gui.Parent = player.PlayerGui gui.FlashFrame.Visible = true gui.ScreenshotFrame.Visible = true end end function destroyGui() gui.FlashFrame.Visible = false gui.ScreenshotFrame.Visible = false end Tool.Equipped:connect(function(mouse) setupGui() end) Tool.Unequipped:connect(function() destroyGui() end) ScreenshotGui false 4288914085 0 4279970357 1 false ScreenshotFrame 0.5 -200 0 0 0 400 0 40 0 3 true 1 false 4288914085 1 4279970357 1 false 2 7 ScreenshotText 0 0 0 0 1 0 1 0 0 Click to Create Thumbnail 4294967295 0 false 2 1 true 1 false 4294967295 1 4279970357 1 false FlashFrame 0 0 0 0 1 0 1 0 0 0 true 1 false -0.5 0.5 0 0 -0.5 0.5 4 0 194 0 0.600000024 0 1 0 0 0 1 0 0 0 1 true 0.5 0.300000012 -0.5 0.5 0 0 -0.5 0.5 0 0 false 256 Handle 0 -0.5 0.5 0 0 0 0 0 -0.5 0.5 3 0 0 0 0 0 1 1 1 1.20000005 1 2 2 http://www.roblox.com/asset/?id=13506753 5 Mesh 0 0 0 2 2 1.79999995 http://www.roblox.com/asset/?id=13506786 1 1 1 true UpdateServerCamera local function waitForChild(parent, childName) local child = parent:findFirstChild(childName) if child then return child end while true do child = parent.ChildAdded:wait() if child.Name == childName then return child end end end local camRef = script.Parent waitForChild(camRef,"CameraPos") waitForChild(camRef,"CameraFocus") local camPos = camRef.CameraPos local camFocus = camRef.CameraFocus local debounce = false function updateServerCamera() if debounce then return end debounce = true game.Workspace.CurrentCamera.CameraType = Enum.CameraType.Fixed game.Workspace.CurrentCamera.CoordinateFrame = CFrame.new(camPos.Value,camFocus.Value) game.Workspace.CurrentCamera.Focus = CFrame.new(camFocus.Value) debounce = false end updateServerCamera() camFocus.Changed:connect(updateServerCamera)