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
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.
-
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
-
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)
- 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.
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.
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.