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

Make a part (or meshpart) fade from one color to another?

So, I have a scripted button on a morph I made which should make a meshpart on the morph fade from black to a bright red as a test. I have a BoolValue parented to a script, value set to true, and in the script I have this block of code:

	if script.Value == true then
	repeat
	player.Headz.MeshPart.Color3 = Color3.fromRGB(r, g, b)
	r = r + 1
	wait(.1) until player.Headz.MeshPart.Color3 == Color3.fromRGB(255, g, b)
	end
end

however, this script stops working after the initial lines before this block and it appears I've done something wrong. The whole script:

local player = script.Parent.Parent.Parent.Parent.Parent.Parent.Character
local frame = script.Parent.Parent
local button = script.Parent
local r = 25
local g = 27
local b = 29
function One()
	frame.FP.Visible = false
	frame.KK.Visible = false
	frame.SSJ2.Visible = false
	frame.SSJ4.Visible = false
	frame.SSJB.Visible = false
	frame.SupSS.Visible = true
	button.TextStrokeTransparency = 1
	button.Text = "Base"

	if script.Value == true then
	repeat
	player.Headz.MeshPart.Color3 = Color3.fromRGB(r, g, b)
	r = r + 1
	wait(.1) until player.Headz.MeshPart.Color3 == Color3.fromRGB(255, g, b)
	end
end

function Two()
	frame.FP.Visible = true
	frame.KK.Visible = true
	frame.SSJ2.Visible = true
	frame.SSJ4.Visible = true
	frame.SSJB.Visible = true
	frame.SupSS.Visible = false
	button.TextStrokeTransparency = .7
	button.Text = "Super Saiyan"
	player.Chest.Middle.SS.Playing = false
	player.Chest.Middle.Aura.SS.Enabled = false
	player.Chest.Middle.Aura.SS2.Enabled = false
	player.Chest.Middle.Aura.SS3.Enabled = false
	wait(1)
	player.Headz.MeshPart.BrickColor = BrickColor.new("Black")
	player.Chest.Middle.Off.Playing = true
	player.Headz.G1.Transparency = 0
	wait(1)
	player.Headz.G1.Transparency = 1
	player.Headz.G2.Transparency = .1
	wait(.1)
	player.Headz.G2.Transparency = 1
	player.Headz.G3.Transparency = .3
	wait(.1)
	player.Headz.G3.Transparency = 1
	player.Headz.G4.Transparency = .5
	wait(.1)
	player.Headz.G4.Transparency = 1
	player.Headz.G5.Transparency = .6
	wait(.1)
	player.Headz.G5.Transparency = 1
	player.Headz.G6.Transparency = .7
	wait(.1)
	player.Headz.G6.Transparency = 1
	player.Headz.G7.Transparency = .9
	wait(.1)
	player.Headz.G7.Transparency = 1
end

local O = true
function onClicked()
	if O == true then
		O = false
		One()

	elseif O == false then
	O = true
	Two()
	end
	end
script.Parent.MouseButton1Down:connect (onClicked)

All of my functions, local variables, and part names are correct, and I've triple checked it now. I don't understand why my color fade script won't work, though, it seems right to me and the script and output show no errors besides the script just overall not working.

1 answer

✓ Accepted answer

If you want it to fade colors, I recommend using TweenService

local TweenService = game:GetService("TweenService")
local Object = script.Parent

local Info = TweenInfo.new(
	2,--Number Time (Seconds)
	Enum.EasingStyle.Bounce, -- EasingStyle
	Enum.EasingDirection.Out, --EasingDirection
	0, --Repeat Count
	false, --If it revers
	0 --Delay Time
)

local Properties = {
	Color=Color3.fromRGB(255,0,0)
}

TweenService:Create(Object,Info,Properties)

Tweenservice isn't that hard. I'm pretty sure you can take a couple looks at the script and understand what it's doing

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