Right okay so you can use this logic:
local Directions = {Vector3.new(1,1,0),Vector3.new(1,-1,0),Vector3.new(-1,1,0),Vector3.new(-1,-1,0),
Vector3.new(1,0,1),Vector3.new(1,0,-1),Vector3.new(-1,0,1),Vector3.new(-1,0,-1),Vector3.new(0,1,1),
Vector3.new(0,1,-1),Vector3.new(0,-1,1),Vector3.new(0,-1,-1)}
local function Update()
local maxX,maxY = 0,0
local i = 1
while i < #Directions do
local Dis = Camera:WorldToScreenPoint((Object.CFrame * CFrame.new(Object.Size/2*Directions[i])).Position)
-Camera:WorldToScreenPoint((Object.CFrame * CFrame.new(Object.Size/2*Directions[(i%#Directions)+1])).Position)
maxX = math.max(maxX,math.abs(Dis.X))
maxY = math.max(maxY,math.abs(Dis.Y))
i += 1
end
local MP = Camera:WorldToScreenPoint(Object.Position)
Frame.Position = UDim2.fromOffset(MP.X,MP.Y)
Frame.Size = UDim2.fromOffset(maxX+50,maxY+50)
end
To size the frame and then apply the blur to that frame object.
This is the code im using to apply the neon blur:
neon:BindFrame(Frame,{
Transparency = 0.5;
BrickColor = BrickColor.new("White");
})
The Result:
It adjusts pretty nicely.
And because everything updates frequently, you can use this to blur player heads!
Kind of like Bodycam I’d say.