How To Highlight BaseParts/Models through fully opaque bricks?

Something like this

and this

BUT

It’s not for Characters I want to Highlight Objectives

How do I achieve that without using Parts in front of the Camera?

1 Like

If you’re just using BaseParts is there a reason that you couldn’t use SurfaceGuis and AlwaysOnTop?

I am already using Billboard Guis to pin point the location of the “Objective”

https://gyazo.com/fe08a028960cbe1c389af8655006d44c

and the problem with Surface Guis is that you have to do extra work, I’m asking for a method that I can just insert it to the Part or Model and then it takes it’s shape like SelectionBox.

If the BaseParts that you’re using are pure in shape (no meshes etc), then you should be able to write a module or function for this. Have it create a SurfaceGui for each possible side of the object. Then when you need to highlight a BasePart you could just call the module/function. Would this work?

I could use SurfaceGuis like that if there isn’t an easier way like possibly using a HandleAdornment Class Object.

If not then I would script it no problem but if there is an easier way then why do it the hard way?

1 Like

There very well could be an easier way (I’m just unaware of it), but I don’t think this way is necessarily hard.

I think this is done by making a smaller clone of the model and moving it close to the camera.

It is, but I want to achieve something similar to that.

I’m not using trying to Highlight a Character but a Model so the player can see where they need to go to.

Sadly, no. There isn’t an easy way for that.

Wrote this for you real quick - maybe it can save you a bit of time:

local HighlightModule = {}

HighlightModule.BasePart = function(Part)
	local Sides = {
		"Front";
		"Back";
		"Bottom";
		"Left";
		"Right";
		"Top"
	}
	
	for num = 1,6 do
		local SurfaceGui = Instance.new("SurfaceGui")
		SurfaceGui.Parent = Part
		SurfaceGui.Face = Sides[num]
		SurfaceGui.AlwaysOnTop = true
		local TextLabel = Instance.new("TextLabel")
		TextLabel.Parent = SurfaceGui
		TextLabel.Size = UDim2.new(1,0,1,0)
		TextLabel.Text = ""
	end
end

return HighlightModule
1 Like

You can only achieve what is done in Super Knife Capsules (whatever the new name is) using parts.

Can you illustrate an example of what exactly your goal is?

What I want exactly is something like using SelectionBox with AlwaysOnTop = true (Sadly that’s not a thing, Feature Request?)

Contrary to what some people in this thread have been saying, no, this is not impossible. You can achieve what you’re wanting using BoxHandleAdornments. This is how I achieved the X-Ray gamepass in I Spy.

Here’s a rough usage example:

local newAdornee = Instance.new("BoxHandleAdornment")
newAdornee.Adornee = part
newAdornee.Size = part.Size
newAdornee.Transparency = 0.6
newAdornee.Parent = plr.PlayerGui
newAdornee.ZIndex = 5
newAdornee.AlwaysOnTop = true
8 Likes

YAS!

You are the man I have been waiting for!!

Thank you!


Thanks for the code @SummerEquinox :+1:

I appreciate everyone’s reply.

1 Like