Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

How do I change the color of the fog created by ninja blink potion?

local Tool = script.Parent local vChar = nil local torso = nil

local maxRange = 100

local lowerBound = nil local upperBound = nil

local debris = game:GetService("Debris") local r = game:GetService("RunService")

local blinkSound = Tool.Blink

function onEquipped() torso = nil vChar = Tool.Parent if vChar ~= nil then torso = vChar:FindFirstChild("Torso") end end

Tool.Enabled = true

function getAABB() local torsoXAxis = torso.CFrame:vectorToWorldSpace(Vector3.new(1, 0, 0)).unit local torsoYAxis = torso.CFrame:vectorToWorldSpace(Vector3.new(0, 1, 0)).unit local torsoZAxis = torso.CFrame:vectorToWorldSpace(Vector3.new(0, 0, 1)).unit lowerBound = nil upperBound = nil -- create bounding box for blinking charChildren = vChar:GetChildren() for i = 1, #charChildren do local handle = nil if charChildren[i].className == "Hat" or charChildren[i].className == "Tool" then handle = charChildren[i]:FindFirstChild("Handle") elseif charChildren[i].className == "Part" then handle = charChildren[i] end if handle ~= nil then lowCornerTC = handle.CFrame:vectorToWorldSpace(-handle.Size / 2) + handle.Position - torso.Position highCornerTC = handle.CFrame:vectorToWorldSpace(handle.Size / 2) + handle.Position - torso.Position if lowerBound == nil then lowerBound = lowCornerTC end if upperBound == nil then upperBound = highCornerTC end lowerBound = Vector3.new(math.min(lowerBound.X, lowCornerTC.X), math.min(lowerBound.Y, lowCornerTC.Y), math.min(lowerBound.Z, lowCornerTC.Z)) upperBound = Vector3.new(math.max(upperBound.X, lowCornerTC.X), math.max(upperBound.Y, lowCornerTC.Y), math.max(upperBound.Z, lowCornerTC.Z)) lowerBound = Vector3.new(math.min(lowerBound.X, highCornerTC.X), math.min(lowerBound.Y, highCornerTC.Y), math.min(lowerBound.Z, highCornerTC.Z)) upperBound = Vector3.new(math.max(upperBound.X, highCornerTC.X), math.max(upperBound.Y, highCornerTC.Y), math.max(upperBound.Z, highCornerTC.Z)) end end end

function onActivated() if not Tool.Enabled then return end if torso == nil or vChar == nil then return end local head = vChar:FindFirstChild("Head") if head then local torsoPos = torso.Position local headPos = head.Position hum = vChar:FindFirstChild("Humanoid") if hum == nil then return end Tool.Enabled = false getAABB() print(lowerBound) print(upperBound) hum.WalkSpeed = 0 --hum.Jump = true

	local newBG = torso:FindFirstChild("TinyFloat")
	if newBG == nil then
		newBG = Instance.new("BodyPosition")
		newBG.position = torso.Position + Vector3.new(0, 0.5, 0)
		newBG.P = 1000000
		newBG.maxForce = Vector3.new(0, newBG.P, 0)
		newBG.Name = "TinyFloat"
		newBG.Parent = torso
	end

	-- changed torsoPos for headPos here...
	local teleportSpot = hum.TargetPoint * Vector3.new(1, 0, 1) + Vector3.new(0, headPos.Y, 0)
	local teleportDir = (teleportSpot - headPos).unit
		--local highTeleportSpot = teleportSpot + Vector3.new(0, (upperBound.Y - lowerBound.Y)/2, 0)  -- allow for slight height gain in blinking
	
	local charWidth = upperBound.Z - lowerBound.Z
	local teleRise = upperBound.Y - lowerBound.Y

	tZ = teleportDir
	tY = Vector3.new(0, 1, 0)
	tX = tZ:Cross(tY).unit

	blinkSound:Play()
	local smoker = Instance.new("Part")
	smoker.Name = "NinjaSmoke"
	smoker.Transparency = 1
	smoker.CanCollide = false
	smoker.Anchored = true
	smoker.CFrame = torso.CFrame - Vector3.new(0, 4, 0)
	smoker.Parent = game.Workspace

	local smoke = Instance.new("Smoke")
	smoke.Name = "smoke"
	smoke.Color = Color3.new(5,0,5)
	smoke.Opacity = .9
	smoke.RiseVelocity = 2
	smoke.Parent = smoker

	local smoke2 = Instance.new("Smoke")
	smoke2.Name = "smoke2"
	smoke2.Color = Color3.new(5, 0, 5)
	smoke2.Opacity = .8
	smoke2.RiseVelocity = 3
	smoke2.Parent = smoker

	local collision = false
	local parts = {}
	for i = maxRange, charWidth, -charWidth do ---charWidth/2 do
		teleportSpot = torsoPos + i*teleportDir
		parts = game.Workspace:FindPartsInRegion3(Region3.new(teleportSpot+lowerBound, teleportSpot+upperBound), vChar, 100)
		collision = false
		for p = 1, #parts do
			if parts[p] ~= nil and parts[p].CanCollide then collision = true break end
		end
		if not collision then
			-- teleport!!
			wait(1)
			hum.WalkSpeed = 16
			if newBG ~= nil then newBG:remove() end
			torso.CFrame = CFrame.new(teleportSpot, teleportSpot+tZ)
			--torso.CFrame = CFrame.new(teleportSpot+tZ*(upperBound.Z - lowerBound.Z)/2, teleportSpot+tZ*(upperBound.Z-lowerBound.Z))
			break
		end

		-- try lifting teleportSpot a bit before discounting it as blocked
		teleportSpot = teleportSpot + Vector3.new(0, teleRise, 0)
		parts = game.Workspace:FindPartsInRegion3(Region3.new(teleportSpot+lowerBound, teleportSpot+upperBound), vChar, 100)
		collision = false
		for p = 1, #parts do
			if parts[p] ~= nil and parts[p].CanCollide then collision = true break end
		end
		if not collision then
			-- teleport!!
			wait(1)
			hum.WalkSpeed = 16
			if newBG ~= nil then newBG:remove() end
			torso.CFrame = CFrame.new(teleportSpot, teleportSpot+tZ)
			--torso.CFrame = CFrame.new(teleportSpot+tZ*(upperBound.Z - lowerBound.Z)/2, teleportSpot+tZ*(upperBound.Z-lowerBound.Z))
			break
		end
	end
	smoker.smoke.RiseVelocity = .5
	smoker.smoke2.RiseVelocity = .75
	wait(1)
	smoker:remove()
	hum.WalkSpeed = 16
	if newBG ~= nil then newBG:remove() end
	Tool.Enabled = true
end

end

Tool.Equipped:connect(onEquipped) Tool.Activated:connect(onActivated)

Where would I change the script to make the color green? Please send me updated script and how you did it so I can learn... thanks a ton!!!

1 comment

0

Thank you so much, this really helped, I cant believe I didn't realize it was on a RGB scale.... Thanks!!

4 answers

You need to change the following:

smoke.Color = Color3.new(5,0,5)
-- to
smoke.Color = Color3.new(0, 1, 0)

and

smoke2.Color = Color3.new(5,0,5)
-- to
smoke2.Color = Color3.new(0, 1, 0)

This is because Color3 values use RGB values (red, green and blue). So changing the value to (0, 1, 0) makes the colour green.

Alright, in the script, you see local smoke = Instance.new("Smoke") and smoke2 = Instance.new("Smoke")?

Set the "Color" property to Color3.new(0,255/255,0) like

smoke.Color = Color3.new(0,255/255,0)

when the smoke is created, you can change the color (5, 0, 5). I believe it's based on a RGB color scale.

    local smoke = Instance.new("Smoke")
    smoke.Name = "smoke"
    smoke.Color = Color3.new(5,0,5)
    smoke.Opacity = .9
    smoke.RiseVelocity = 2
    smoke.Parent = smoker
 
    local smoke2 = Instance.new("Smoke")
    smoke2.Name = "smoke2"
    smoke2.Color = Color3.new(5, 0, 5)
    smoke2.Opacity = .8
    smoke2.RiseVelocity = 3
    smoke2.Parent = smoker

In the script, you will see

 smoke.Color = Color3.new(5,0,5)

In order for you to change the color of it, please change the (5,0,5) to any combination like (0,5,0). 0.5.0 is Green, and the color code is in a RGB order. If it were to be (5,0,0) it would be Red.

 smoke.Color = Color3.new(5,0,0)

That makes the color of the smoke Red.

You must also change

smoke2.Color = Color3.new(5, 0, 5)

to

smoke2.Color = Color3.new(5, 0, 0)

Well, of course you don't have to have the same smoke colors. Have a little play around with it, and make cool smoke effects, like.. Red and Blue mixed together.

Have any other questions, please PM me on ROBLOX. My Username is DurstAuric.

This discussion is preserved as it was. New answers, comments, and votes are closed.