<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>@dream_creators</title><author><name>@dream_creators</name></author><id>https://teletype.in/atom/dream_creators</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/dream_creators?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@dream_creators?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=dream_creators"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/dream_creators?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-04-04T16:52:56.031Z</updated><entry><id>dream_creators:SptJyFl4XZ1</id><link rel="alternate" type="text/html" href="https://teletype.in/@dream_creators/SptJyFl4XZ1?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=dream_creators"></link><title>Мини-карта в Roblox Studio</title><published>2024-01-05T15:49:21.523Z</published><updated>2024-01-05T15:49:21.523Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/3e/4b/3e4b62cd-c14a-4a23-8538-38b134183135.png"></media:thumbnail><category term="roblox" label="ROBLOX"></category><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/0c/02/0c025b73-2b6e-4efb-80a5-700e3ac916eb.png&quot;&gt;Всем доброго времени суток! В этом уроке мы разберем «создание мини-карты в Roblox». В ней будут функции масштабирования, отметка игроков и открыть всю карту местности.</summary><content type="html">
  &lt;p id=&quot;PeJk&quot;&gt;Всем доброго времени суток! В этом уроке мы разберем «создание мини-карты в Roblox». В ней будут функции масштабирования, отметка игроков и открыть всю карту местности.&lt;/p&gt;
  &lt;p id=&quot;5SnR&quot;&gt;Первым делом давайте откроем существующий стандартный проект в Roblox Studio, например &lt;strong&gt;«Suburban»&lt;/strong&gt;.&lt;/p&gt;
  &lt;figure id=&quot;T54P&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0c/02/0c025b73-2b6e-4efb-80a5-700e3ac916eb.png&quot; width=&quot;1904&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;SWsM&quot;&gt;Далее сделаем скриншот нашей карты с птичьего полета. Для этого:&lt;/p&gt;
  &lt;p id=&quot;tE7J&quot;&gt;1.       Выбираем &lt;strong&gt;Camera&lt;/strong&gt; и в &lt;strong&gt;свойствах&lt;/strong&gt; ищем &lt;strong&gt;FieldofView&lt;/strong&gt; и меняем &lt;strong&gt;с 70 на 1&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;4UrY&quot;&gt;2.       Далее выбираем &lt;strong&gt;Lighting&lt;/strong&gt; и &lt;strong&gt;свойство GlobalShadows&lt;/strong&gt; отключаем&lt;/p&gt;
  &lt;p id=&quot;Sm24&quot;&gt;3.       В самом Lighting выбираем &lt;strong&gt;Atmosphere&lt;/strong&gt; и &lt;strong&gt;Density&lt;/strong&gt; с 0.3 меняем на 0&lt;/p&gt;
  &lt;p id=&quot;sHnl&quot;&gt;Настройка готова, выбираем вкладку View и включаем &lt;strong&gt;Comand Bar&lt;/strong&gt;. Внизу у нас открывается форма ввода и в него вставляем следующий код:&lt;/p&gt;
  &lt;p id=&quot;EBxI&quot;&gt;&lt;code&gt;workspace.Camera.CFrame = CFrame.new(workspace.SpawnLocation.Position + Vector3.new(0, 30000, 0), workspace.SpawnLocation.Position)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;j7uD&quot;&gt;С помощью этого кода мы отдаляем камеру от спавна игрока на высоту 30000 юнитов (может вам понадобится и большее расстояние взять). Делаем скриншот, обрезаем лишнее и сохраняем на компьютер.&lt;/p&gt;
  &lt;figure id=&quot;SNnm&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/73/bb/73bb53f3-2cd8-4fab-88ba-874613516220.png&quot; width=&quot;592&quot; /&gt;
    &lt;figcaption&gt;Скриншот можете сделать и не один, а несколько и склеить их уже в редакторе. Тогда у вас карта получится четче и будут видны все элементы.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;v30j&quot;&gt;Теперь начнем делать нашу мини-карту.&lt;/h3&gt;
  &lt;p id=&quot;ce8G&quot;&gt;1.       В StarterGui создадим &lt;strong&gt;ScreenGui&lt;/strong&gt; и назовем его &lt;u&gt;«MinimapGui»&lt;/u&gt;&lt;/p&gt;
  &lt;p id=&quot;CLGI&quot;&gt;2.       Далее в нашем ScreenGui создадим &lt;strong&gt;LocalScript&lt;/strong&gt; &lt;u&gt;(“MinimapHandler”)&lt;/u&gt; и &lt;strong&gt;Frame&lt;/strong&gt; (&lt;u&gt;«MinimapClipping»&lt;/u&gt;)&lt;/p&gt;
  &lt;p id=&quot;PFfF&quot;&gt;3.       В Frame создадим &lt;strong&gt;UIAspectRatioConstraint, ImageLabel&lt;/strong&gt; (&lt;u&gt;«MapImage»&lt;/u&gt;) и &lt;strong&gt;ImageLaber&lt;/strong&gt; (&lt;u&gt;«PlayerPointer»&lt;/u&gt;)&lt;/p&gt;
  &lt;figure id=&quot;shty&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3a/b6/3ab6ca01-9651-4bc2-a941-0dce5eef375b.png&quot; width=&quot;324&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;McvH&quot;&gt;Далее используйте следующие настройки для UI:&lt;/p&gt;
  &lt;figure id=&quot;nmf0&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/fd/ed/fdedaf6c-8e40-4156-8a37-76f8f21dac26.png&quot; width=&quot;378&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;qIBY&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/5b/60/5b605de7-e43f-4e0f-939d-0892e515797f.png&quot; width=&quot;375&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;z4bd&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f4/f1/f4f116c5-56db-40f6-bfda-fe0350c95715.png&quot; width=&quot;384&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;vI2m&quot;&gt;Используем следующие ID для карты и курсора персонажа:&lt;/p&gt;
  &lt;p id=&quot;qCAU&quot;&gt;&lt;strong&gt;MapImage:&lt;/strong&gt; rbxassetid://15838194626 (В самом MapImage выберите Image и выберите свой скриншот карты. Если у вас roblox не попросит выбрать картинку, сохраните проект на сервере Roblox)&lt;/p&gt;
  &lt;p id=&quot;lNNU&quot;&gt;&lt;strong&gt;PlayerPointer:&lt;/strong&gt; rbxassetid://11450453200&lt;/p&gt;
  &lt;h3 id=&quot;HNVi&quot;&gt;Переходим к локальному скрипту на работу с нашей картой&lt;/h3&gt;
  &lt;p id=&quot;ffb4&quot;&gt;&lt;code&gt;-------------------------------Настройки------------------------------&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Jnqc&quot;&gt;&lt;code&gt;local zoom = 3&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;2ZUg&quot;&gt;&lt;code&gt;local maxZoom = 20&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Jokt&quot;&gt;&lt;code&gt;local canScrollToZoom = true&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;zKAt&quot;&gt;&lt;code&gt;local zoomSpeed = 1/7&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;470c&quot;&gt;&lt;code&gt;local openMapKeys = {Enum.KeyCode.M, Enum.KeyCode.CapsLock}&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;vDDs&quot;&gt;&lt;code&gt;local displayTeams = true&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;FCOR&quot;&gt;&lt;code&gt;local markerSize = UDim2.new(0.04, 0, 0.04, 0)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;7Fhc&quot;&gt;&lt;code&gt;local defaultColor = Color3.fromRGB(115, 115, 115)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;bDX8&quot;&gt;&lt;code&gt;local allyColor = Color3.fromRGB(71, 134, 132)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;srSx&quot;&gt;&lt;code&gt;local enemyColor = Color3.fromRGB(116, 59, 59)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;8i2I&quot;&gt;&lt;code&gt;----------------------------------------------------------------------&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;iIFl&quot;&gt;&lt;code&gt;--Переменные--&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;cQg4&quot;&gt;&lt;code&gt;local frame = script.Parent:WaitForChild(&amp;quot;MinimapClipping&amp;quot;)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;G0sa&quot;&gt;&lt;code&gt;local map = frame:WaitForChild(&amp;quot;MapImage&amp;quot;)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;gHll&quot;&gt;&lt;code&gt;local plrPointer = frame:WaitForChild(&amp;quot;PlayerPointer&amp;quot;)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;qKLh&quot;&gt;&lt;code&gt;local uis = game:GetService(&amp;quot;UserInputService&amp;quot;)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;4f8h&quot;&gt;&lt;code&gt;local mapOpen = false&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;C4Im&quot;&gt;&lt;code&gt;local xLowerBound, zLowerBound = 511, 511 – в этой и следующей строке указываем позицию края карты по одной диагонали&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;I85L&quot;&gt;&lt;code&gt;local xUpperBound, zUpperBound = -511, -511&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;lJEF&quot;&gt;&lt;code&gt;local realWidth = xUpperBound - xLowerBound&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;fNwz&quot;&gt;&lt;code&gt;local realHeight = zUpperBound - zLowerBound&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Yrsp&quot;&gt;&lt;code&gt;local plr = game.Players.LocalPlayer&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;bMCm&quot;&gt;&lt;code&gt;local char = plr.Character or plr.CharacterAdded:Wait()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;hNln&quot;&gt;&lt;code&gt;local hrp = char:WaitForChild(&amp;quot;HumanoidRootPart&amp;quot;)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;8Ehk&quot;&gt;&lt;code&gt;local runs = game:GetService(&amp;quot;RunService&amp;quot;)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;C8IK&quot;&gt;&lt;code&gt;local cam = workspace.CurrentCamera&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;k5KI&quot;&gt;&lt;code&gt;local playerMarkersFolder = Instance.new(&amp;quot;Folder&amp;quot;)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;DQY3&quot;&gt;&lt;code&gt;playerMarkersFolder.Name = &amp;quot;PLAYER MARKERS&amp;quot;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;C5by&quot;&gt;&lt;code&gt;playerMarkersFolder.Parent = map&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;E2TH&quot;&gt;&lt;code&gt;--Handling markers on the minimap, such as for other players or landmarks on the map&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;rcWf&quot;&gt;&lt;code&gt;function createMarker(markerName, positionToDisplay, imageToDisplay, colorToDisplay)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;yTd4&quot;&gt;&lt;code&gt;local marker = playerMarkersFolder:FindFirstChild(markerName)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;TYt0&quot;&gt;&lt;code&gt;if not marker then&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;GoZ1&quot;&gt;&lt;code&gt;marker = Instance.new(&amp;quot;ViewportFrame&amp;quot;)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;7nyz&quot;&gt;&lt;code&gt;marker.Name = markerName&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;npo6&quot;&gt;&lt;code&gt;marker.BorderSizePixel = 0&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;iVf3&quot;&gt;&lt;code&gt;marker.BackgroundTransparency = 1&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;tzJ0&quot;&gt;&lt;code&gt;marker.Size = markerSize&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;jnac&quot;&gt;&lt;code&gt;local imageDisplay = Instance.new(&amp;quot;Part&amp;quot;)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;udNs&quot;&gt;&lt;code&gt;imageDisplay.Shape = Enum.PartType.Cylinder&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;y6Iq&quot;&gt;&lt;code&gt;imageDisplay.Orientation = Vector3.new(0, -90, 0)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;aqJf&quot;&gt;&lt;code&gt;imageDisplay.Size = Vector3.new(1, 1, 1)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;nLeA&quot;&gt;&lt;code&gt;imageDisplay.Color = colorToDisplay or defaultColor&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;sM9Y&quot;&gt;&lt;code&gt;local decal = Instance.new(&amp;quot;Decal&amp;quot;, imageDisplay)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;5nex&quot;&gt;&lt;code&gt;decal.Face = Enum.NormalId.Right&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;KFte&quot;&gt;&lt;code&gt;decal.Texture = imageToDisplay&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;xCmg&quot;&gt;&lt;code&gt;local vpfCamera = Instance.new(&amp;quot;Camera&amp;quot;)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;1FkP&quot;&gt;&lt;code&gt;vpfCamera.CFrame = imageDisplay.CFrame * CFrame.Angles(0, math.rad(90), 0) + Vector3.new(0, 0, 1.25)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;y7Ci&quot;&gt;&lt;code&gt;marker.CurrentCamera = vpfCamera&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;v2yx&quot;&gt;&lt;code&gt;vpfCamera.Parent = marker&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;u3mn&quot;&gt;&lt;code&gt;imageDisplay.Parent = marker&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;tHcr&quot;&gt;&lt;code&gt;end&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;uqj5&quot;&gt;&lt;code&gt;local x = positionToDisplay.X - xLowerBound&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;WARv&quot;&gt;&lt;code&gt;local z = positionToDisplay.Z - zLowerBound&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;KEqg&quot;&gt;&lt;code&gt;local xScaled = x / realWidth&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;P7R9&quot;&gt;&lt;code&gt;local zScaled = z / realHeight&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;O0o3&quot;&gt;&lt;code&gt;marker.Position = UDim2.new(xScaled, 0, zScaled, 0)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;ZckD&quot;&gt;&lt;code&gt;marker.Parent = playerMarkersFolder&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Aot4&quot;&gt;&lt;code&gt;end&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;bvLu&quot;&gt;&lt;code&gt;function destroyMarker(markerName)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;fSRl&quot;&gt;&lt;code&gt;local marker = playerMarkersFolder:FindFirstChild(markerName)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;piBK&quot;&gt;&lt;code&gt;if marker then&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;TVCW&quot;&gt;&lt;code&gt;marker:Destroy()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;NnVX&quot;&gt;&lt;code&gt;end&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;2R3O&quot;&gt;&lt;code&gt;end&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;xgG5&quot;&gt;&lt;code&gt;runs.Heartbeat:Connect(function()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;tQyW&quot;&gt;&lt;code&gt;--Moving the map&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;M2WL&quot;&gt;&lt;code&gt;if not mapOpen then&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;YYmh&quot;&gt;&lt;code&gt;frame.Size = UDim2.new(0.168, 0, 0.311, 0)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;hP8U&quot;&gt;&lt;code&gt;frame.Position = UDim2.new(0.015, 0, 0.971, 0)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;vvO1&quot;&gt;&lt;code&gt;map.AnchorPoint = Vector2.new(0.5, 0.5)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;37Mj&quot;&gt;&lt;code&gt;map.Size = UDim2.new(zoom, 0, zoom, 0)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;9kQn&quot;&gt;&lt;code&gt;plrPointer.Size = UDim2.new(0.159, 0, 0.159, 0)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;7zYr&quot;&gt;&lt;code&gt;local guiSize = map.AbsoluteSize&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;QQ3j&quot;&gt;&lt;code&gt;local plrPos = hrp.Position&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;mIab&quot;&gt;&lt;code&gt;local plrX = xUpperBound - plrPos.X&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;HhTj&quot;&gt;&lt;code&gt;local plrZ = zUpperBound - plrPos.Z&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Tnjv&quot;&gt;&lt;code&gt;local plrXscaled = plrX / realWidth&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;JEiW&quot;&gt;&lt;code&gt;local plrZscaled = plrZ / realHeight&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Yw9S&quot;&gt;&lt;code&gt;plrXscaled = ((plrXscaled - 0.5) * zoom) + 0.5&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Dw8i&quot;&gt;&lt;code&gt;plrZscaled = ((plrZscaled - 0.5) * zoom) + 0.5&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;vKlZ&quot;&gt;&lt;code&gt;map.Position = UDim2.new(plrXscaled, 0, plrZscaled, 0)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;FqJh&quot;&gt;&lt;code&gt;plrPointer.Position = UDim2.new(0.5, 0, 0.5, 0)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;JooB&quot;&gt;&lt;code&gt;else&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;lisF&quot;&gt;&lt;code&gt;frame.Size = UDim2.new(0.259, 0, 0.605, 0)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;UUzR&quot;&gt;&lt;code&gt;frame.Position = UDim2.new(0.37, 0, 0.739, 0)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;tR5h&quot;&gt;&lt;code&gt;map.Size = UDim2.new(1, 0, 1, 0)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;WWTH&quot;&gt;&lt;code&gt;map.Position = UDim2.new(0.5, 0, 0.5, 0)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;frlN&quot;&gt;&lt;code&gt;plrPointer.Size = UDim2.new(0.08, 0, 0.08, 0)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;sY7S&quot;&gt;&lt;code&gt;local x = hrp.Position.X - xLowerBound&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;fa5m&quot;&gt;&lt;code&gt;local z = hrp.Position.Z - zLowerBound&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;7Mnn&quot;&gt;&lt;code&gt;local xScaled = x / realWidth&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;FJfH&quot;&gt;&lt;code&gt;local zScaled = z / realHeight&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;5RNL&quot;&gt;&lt;code&gt;plrPointer.Position = UDim2.new(xScaled, 0, zScaled, 0)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Sxyd&quot;&gt;&lt;code&gt;end&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;yY9S&quot;&gt;&lt;code&gt;--Rotating the pointer&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;VoiV&quot;&gt;&lt;code&gt;plrPointer.AnchorPoint = Vector2.new(0.5, 0.5)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;t2ij&quot;&gt;&lt;code&gt;local plrRot = -hrp.Orientation.Y&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;OW9M&quot;&gt;&lt;code&gt;plrPointer.Rotation = plrRot&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;MiHm&quot;&gt;&lt;code&gt;--Displaying other players&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Lnqh&quot;&gt;&lt;code&gt;for i, plrInGame in pairs(game.Players:GetPlayers()) do&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;P1V6&quot;&gt;&lt;code&gt;if plrInGame ~= plr and plrInGame.Character then&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;uZVo&quot;&gt;&lt;code&gt;local inGameChar = plrInGame.Character&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;ktrE&quot;&gt;&lt;code&gt;local inGameHRP = inGameChar:FindFirstChild(&amp;quot;HumanoidRootPart&amp;quot;)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Mxja&quot;&gt;&lt;code&gt;if inGameHRP and inGameChar.Humanoid.Health &amp;gt; 0 then&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;4Ror&quot;&gt;&lt;code&gt;local playerImage = game.Players:GetUserThumbnailAsync(plrInGame.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size48x48)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Nol5&quot;&gt;&lt;code&gt;if displayTeams then&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;JXmR&quot;&gt;&lt;code&gt;if plr.Team == plrInGame.Team then&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;4TG1&quot;&gt;&lt;code&gt;createMarker(plrInGame.Name, inGameHRP.Position, playerImage, allyColor)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;gOkR&quot;&gt;&lt;code&gt;else&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;HvZd&quot;&gt;&lt;code&gt;local worldPosition = inGameHRP.Position&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;o1ts&quot;&gt;&lt;code&gt;local _, visible = cam:WorldToScreenPoint(worldPosition)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;CCcj&quot;&gt;&lt;code&gt;if visible then&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;zWpD&quot;&gt;&lt;code&gt;local rayParams = RaycastParams.new()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;YVUv&quot;&gt;&lt;code&gt;rayParams.FilterType = Enum.RaycastFilterType.Blacklist&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;CPSG&quot;&gt;&lt;code&gt;rayParams.FilterDescendantsInstances = {inGameChar, char}&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;L7cS&quot;&gt;&lt;code&gt;local rayResult = workspace:Raycast(cam.CFrame.Position, inGameHRP.Position - cam.CFrame.Position, rayParams)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;ptb0&quot;&gt;&lt;code&gt;if not rayResult then&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;3UOs&quot;&gt;&lt;code&gt;createMarker(plrInGame.Name, inGameHRP.Position, playerImage, enemyColor)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;76Rx&quot;&gt;&lt;code&gt;else&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;jJeP&quot;&gt;&lt;code&gt;destroyMarker(plrInGame.Name)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;tkH1&quot;&gt;&lt;code&gt;end&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;jFdT&quot;&gt;&lt;code&gt;else&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;SWt8&quot;&gt;&lt;code&gt;destroyMarker(plrInGame.Name)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;JpL2&quot;&gt;&lt;code&gt;end&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;jwQE&quot;&gt;&lt;code&gt;end&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;U3Ey&quot;&gt;&lt;code&gt;else&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;9pld&quot;&gt;&lt;code&gt;createMarker(plrInGame.Name, inGameHRP.Position, playerImage)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;vSSG&quot;&gt;&lt;code&gt;end&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;7S4M&quot;&gt;&lt;code&gt;end&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;kVZI&quot;&gt;&lt;code&gt;end&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;NgHa&quot;&gt;&lt;code&gt;end&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;eTkx&quot;&gt;&lt;code&gt;end)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;HMFx&quot;&gt;&lt;code&gt;--Detect inputs to expand/minimize the map&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;inNa&quot;&gt;&lt;code&gt;uis.InputBegan:Connect(function(input, p)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;IQg5&quot;&gt;&lt;code&gt;if not p and table.find(openMapKeys, input.KeyCode) then&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;YRFN&quot;&gt;&lt;code&gt;mapOpen = not mapOpen&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;qqct&quot;&gt;&lt;code&gt;end&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;zjpI&quot;&gt;&lt;code&gt;end)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;YMIW&quot;&gt;&lt;code&gt;--Detect inputs to change the zoom of the map&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;1NAT&quot;&gt;&lt;code&gt;uis.InputChanged:Connect(function(input, p)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;6X95&quot;&gt;&lt;code&gt;if canScrollToZoom and input.UserInputType == Enum.UserInputType.MouseWheel then&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;1Mgy&quot;&gt;&lt;code&gt;local mousePos = uis:GetMouseLocation()&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;d2GR&quot;&gt;&lt;code&gt;local hovering = plr.PlayerGui:GetGuiObjectsAtPosition(mousePos.X, mousePos.Y)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;shp2&quot;&gt;&lt;code&gt;if table.find(hovering, frame) then&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;8kqs&quot;&gt;&lt;code&gt;zoom = math.clamp(zoom + (input.Position.Z * zoomSpeed), 1, maxZoom)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;CmYi&quot;&gt;&lt;code&gt;end&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;yvuV&quot;&gt;&lt;code&gt;end&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;S3l5&quot;&gt;&lt;code&gt;end)&lt;/code&gt;&lt;/p&gt;

</content></entry></feed>