So I have this minimap, which DOES work, but when I go too far, the frame of the part goes past the minimap itself! How do I fix this and not have the frame spawn if it goes too far past that distance? P.S. the mini map is a circle decal
local player = game:GetService("Players").LocalPlayer local character = player.Character or player.CharacterAdded:wait() local torso = character:WaitForChild("HumanoidRootPart") local head = character:WaitForChild("Head") local main = script.Parent.Main --Frame to contain Everything local map = main.Map --Image label to create a circular GUI for the minimap local mapParts = game.Workspace.MiniMup local content = game:GetService("ContentProvider") local arrow = "rbxassetid://1940322272" content:Preload(arrow) function createFrame(part) map:ClearAllChildren() local torsoPos = CFrame.new(torso.CFrame.p) local position = torsoPos:toObjectSpace(part.CFrame) local relPos = CFrame.new(-position.X + (map.Size.X.Offset/2), 0, -position.Z + (map.Size.Y.Offset/2)) local object = Instance.new("Frame", map) object.Name = part.Name object.BackgroundColor3 = part.Color object.BorderSizePixel = 0.1 object.Size = UDim2.new(0, (part.Size.X) + 5, 0, (part.Size.Z) + 5) object.Position = UDim2.new(0, (relPos.X) - (object.Size.X.Offset)/2, 0, (relPos.Z) - (object.Size.Y.Offset)/2) map.Rotation = math.deg(math.atan2(head.CFrame.lookVector.X, head.CFrame.lookVector.Z)) end function createPlayerFrame(part) local torsoPos = CFrame.new(torso.CFrame.p) local enemyTorsoPos = torsoPos:toObjectSpace(part.CFrame) local relativePos = CFrame.new(-enemyTorsoPos.X + (map.Size.X.Offset/2), 0, -enemyTorsoPos.Z + (map.Size.Y.Offset/2)) local enemyPlayer = Instance.new("Frame", map) enemyPlayer.BackgroundColor3 = Color3.new(1,1,1) enemyPlayer.Size = UDim2.new(0, 7.5, 0, 7.5) enemyPlayer.Name = part.Name enemyPlayer.BorderSizePixel = 0 enemyPlayer.Position = UDim2.new(0, (relativePos.X) - (enemyPlayer.Size.X.Offset)/2, 0, (relativePos.Z) - (enemyPlayer.Size.Y.Offset)/2) end function buildMap() local playerPos = Instance.new("ImageLabel", main) playerPos.BackgroundTransparency = 1 playerPos.Name = "Player" playerPos.Image = arrow playerPos.Size = UDim2.new(0,15,0,15) playerPos.Position = UDim2.new(0, 92.5, 0, 92.5) for i,v in ipairs(mapParts:GetChildren()) do if v:IsA("Model") then for a,b in ipairs(v:GetChildren()) do if #v:GetChildren() > 10 then elseif b:IsA("Part") or b:IsA("UnionOperation") or b:IsA("MeshPart") then createFrame(b) end end elseif v:IsA("Part") or v:IsA("UnionOperation") or v:IsA("MeshPart") then createFrame(v) end end --Part that triggers the createPlayFrame function! for c, d in ipairs(game.Workspace:GetChildren()) do if d:FindFirstChild("Humanoid") and d:IsA("Model") and d.Name ~= player.Name then local enemyTorso = d:FindFirstChild("HumanoidRootPart") createPlayerFrame(enemyTorso) end end end while wait(1/25) do buildMap() end