Plum's minimap - Rotating map, bordersnapping blips and more!

Can I ask, does it work with underground things too? For example an SCP game?

You could remove the roof of your game and map out your map that way :slight_smile:

one way would be to have a cache of the formatted terrain data and load it in chunks perhaps I’ll write one soon! :ReadVoxels(Position,Region)

Made a script to add players as tags

Made something myself for this minimap since I didn’t find anything so might help some people idk I made a script so you can see players as tags on the map.

image

  1. first step
    add a local script inside of PlumsMinimap name it whatever you want and also add a normal script inside of serverscriptservice so like this
    image

  2. paste this inside the script that you just made in serverscriptservice

-->> Service
local CollectionService = game:GetService("CollectionService")
local Players = game:GetService("Players")

-->> Script
Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(char)
		if char.PrimaryPart then
			CollectionService:AddTag(char.PrimaryPart, player.Name)
		end
	end)
end)
  1. paste this inside the local script that you just made inside of PlumsMinimap module
-->> Services
local Players = game:GetService("Players")

-->> Modules
local Settings = require(script.Parent.Settings)

-->> Variables
local Tag = {
	tagName = nil; --This is the name of the tag you give the part in your workspace / ReplicatedStorage.
	toolTip = nil; --This is the text you want to show up if you hover over the blip on the map. You can set it to "" to hide it.
	iconID = 5254553771; --This is the image of your blip.
	color = Color3.fromRGB(255,255,255); --The color showing on the background
	size = UDim2.new(0, 20, 0, 20); --The size of the blip, when it shows on the map
	snapToBorder = true; --If you want it to snap on the border.
	rotate = true; --If you want the blip to rotate with its world orientation.
};

-->> Script
for _, player in pairs(Players:GetPlayers()) do
	if player ~= Players.LocalPlayer then
		local newTag = Tag
		newTag.tagName = player.Name
		newTag.toolTip = player.DisplayName.." @"..player.Name
		table.insert(Settings["Tags"], newTag)
	end
end

Players.PlayerAdded:Connect(function(player)
	if player ~= Players.LocalPlayer then
		local newTag = Tag
		newTag.tagName = player.Name
		newTag.toolTip = player.DisplayName.." @"..player.Name
		table.insert(Settings["Tags"], newTag)
	end
end)

Players.PlayerRemoving:Connect(function(player)
	if player ~= Players.LocalPlayer then
		local index = nil
		for i, tag in pairs(Settings["Tags"]) do
			if tag.tagName == player.Name then
				index = i
				break
			end
		end
		
		if index then
			table.remove(Settings["Tags"], index)
		end
	end
end)

and that should be it it should now work you can change the settings of the tag inside of the local script just don’t change the tagName cause then it will break everything and if you wanna change the toolTip delete line 23 and 32

I put this here since it didn’t take me long to make and some people with no experience in scripting might find this useful so here it is.

5 Likes

Wild, that is pretty nice. Will use this in my game for testing for sure, I feel my minimap gets too cluttered tho from all the points of interest… maybe I will disable some others.

1 Like

found some issues with this btw so I am working on fixing this and will maybe then send an updated version here since it bugs for some reason when playing with more then 2 players and also when your the first player in a server it doesn’t work

Replace in Blip (Minimap.Internal.MinimapController.Blip) Line 96-97 with the following:

				else
					if TagInfo.team == false and self.state.Visible == false then
						self.state.Visible = true
					elseif TagInfo.team == true then
						if plr.Team.Name == TagInfo.tagName then
							self.state.Visible = true
						else
							self.state.Visible = false
						end
					elseif self.state.Visible == false then
						self.state.Visible = true
					end
				end

Then with CollectionService, add Team Names to the HumanoidRootPart upon joining, then add all teams to the blips in Settings, make sure tagName is the exact same as the Team name and add a new boolean setting called “team” to all blips. Set it to true for all teams and to false for other blips.

This will display other team members but only if you are on the same team.

Also, if you don’t want your own player to display the blip, simply remove the tag locally

Welcome!

I wonder how you could make it fullscreen somehow like when u click on the minimap and its open up a big ui with the minimap in it and there an X button to close it ( my coding skill is trash so idk how to do it much)

If anyone does want the map itself to be draggable you can override the position of the player, to a position of your choice in MinimapController

For example:

	local ROOTPART_POS = humanoidRootPart.CFrame.p

			if Settings.Technical.overrideMapFocus then
				if Settings.Technical.isMinimapExpanded then
					ROOTPART_POS = Settings.Technical.overrideMapFocus
				end
			end

You can create this overrideMapFocus as a Vector3 which is where you want it to focus the map towards. Kind of like an invisible player, as that’s how it acts.

You need to create your own dragging functions to change this variable, my code to do this isn’t tested enough to recommend but you can use InputBegan/InputChanged to get the input position and change overrideMapFocus. You’ll need some good Lua knowledge to do this but hopefully it can be included with my contribution sent to OP. Once I finish and test my code for it I can send it here or you can message me and I can send over the prototype.

Hi, I’m new to scripting. Could you please share how you were able to make the map go fullscreen when clicking on the map or pressing a hotkey? also, where do you recommend adding the zoom script?

( I was wondering if you’d be willing to share the MapGUI as a .rblx file so I can learn from it?)

How do you make a Fullscreen Minimap when clicking on the map?

is there also a way to remove the player tag Background?

Hey how would I make a discoverable minimap kind of like the in Xaero’s World Map

Is there a way to click a blip and it will make a UI visible?

Does anyone know why my blips arent rotating? they snap to borders but dont rotate?

edit: So the reason they weren’t rotating is I had 2 parts using the same tag, the parts had different names, Gas Station and Gas Station2, but using the same tagname “GasStation”

so I just copied the tag twice in settings named it 2 and put the tag to the 2nd gas station part and it all works now!

How can i modify the mapPosition and mapSize in the settings with a different local script through a key input? like default it would be on top right corner of screen and then when I press M Key it would center the map to the middle and increase its size? or would i have to do it through a reference of the map itself and modify it there within a local script? , Never mind found the related functions

im having this same issue, how did you fix this?

Script timeout: exhausted allowed execution time for the current resumption point