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

Changing texture of a texture mid script?

So I'm making a script that changes the StudsPerTileU/V every few seconds, and I need the texture to change aswell, but it isn't working and I'm not sure why. If anyone could help that'd be great.

Texture = script.Parent.Texture

while true do
	Texture.StudsPerTileU = 2.1
    Texture.StudsPerTileV = 2.1
	wait(0)
	Texture.StudsPerTileU = 2.2
	Texture.StudsPerTileV = 2.2
	wait(0)
	Texture.StudsPerTileU = 2.3
	Texture.StudsPerTileV = 2.3
	wait(0)
	Texture.StudsPerTileU = 2.4
	Texture.StudsPerTileV = 2.4
	wait(0)
	Texture.StudsPerTileU = 2.5
	Texture.StudsPerTileV = 2.5
	wait(0)
	Texture.StudsPerTileU = 2.6
    Texture.StudsPerTileV = 2.6
	wait(0)
	Texture.StudsPerTileU = 2.7
	Texture.StudsPerTileV = 2.7
	wait(0)
	Texture.StudsPerTileU = 2.8
	Texture.StudsPerTileV = 2.8
	wait(0)
	Texture.StudsPerTileU = 2.9
	Texture.StudsPerTileV = 2.9
	wait(0)
	Texture.StudsPerTileU = 3
	Texture.StudsPerTileV = 3
	wait(0)
	Texture.StudsPerTileU = 3.1
	Texture.StudsPerTileV = 3.1
	wait(0)
	Texture.StudsPerTileU = 3.12
    Texture.StudsPerTileV = 3.12
	wait(0)
	Texture.StudsPerTileU = 3.14
	Texture.StudsPerTileV = 3.14
	wait(0)
	Texture.StudsPerTileU = 3.15
	Texture.StudsPerTileV = 3.15
	wait(.1)
	Texture.StudsPerTileU = 3.14
	Texture.StudsPerTileV = 3.14
	wait(0)
	Texture.StudsPerTileU = 3.12
	Texture.StudsPerTileV = 3.12
	wait(0)
	Texture.StudsPerTileU = 3.1
	Texture.StudsPerTileV = 3.1
	wait(0)
	Texture.StudsPerTileU = 3
	Texture.StudsPerTileV = 3
	wait(0)
	Texture.StudsPerTileU = 2.9
    Texture.StudsPerTileV = 2.9
	wait(0)
	Texture.StudsPerTileU = 2.8
	Texture.StudsPerTileV = 2.8
	wait(0)
	Texture.StudsPerTileU = 2.7
	Texture.StudsPerTileV = 2.7
	wait(0)
	Texture.StudsPerTileU = 2.6
	Texture.StudsPerTileV = 2.6
	wait(0)
	Texture.StudsPerTileU = 2.5
	Texture.StudsPerTileV = 2.5
	wait(0)
	Texture.StudsPerTileU = 2.4
    Texture.StudsPerTileV = 2.4
	wait(0)
	Texture.StudsPerTileU = 2.3
	Texture.StudsPerTileV = 2.3
	wait(0)
	Texture.StudsPerTileU = 2.2
	Texture.StudsPerTileV = 2.2
	wait(0)
	Texture.StudsPerTileU = 2.1
	Texture.StudsPerTileV = 2.1
	wait(0)
	Texture.StudsPerTileU = 2
	Texture.StudsPerTileV = 2
	wait(0.1)
	script.Parent.Texture.Texture = "http://www.roblox.com/asset/?id=1677527003"
	wait(0)
    Texture.StudsPerTileU = 2.1
    Texture.StudsPerTileV = 2.1
	wait(0)
	Texture.StudsPerTileU = 2.2
	Texture.StudsPerTileV = 2.2
	wait(0)
	Texture.StudsPerTileU = 2.3
	Texture.StudsPerTileV = 2.3
	wait(0)
	Texture.StudsPerTileU = 2.4
	Texture.StudsPerTileV = 2.4
	wait(0)
	Texture.StudsPerTileU = 2.5
	Texture.StudsPerTileV = 2.5
	wait(0)
	Texture.StudsPerTileU = 2.6
    Texture.StudsPerTileV = 2.6
	wait(0)
	Texture.StudsPerTileU = 2.7
	Texture.StudsPerTileV = 2.7
	wait(0)
	Texture.StudsPerTileU = 2.8
	Texture.StudsPerTileV = 2.8
	wait(0)
	Texture.StudsPerTileU = 2.9
	Texture.StudsPerTileV = 2.9
	wait(0)
	Texture.StudsPerTileU = 3
	Texture.StudsPerTileV = 3
	wait(0)
	Texture.StudsPerTileU = 3.1
	Texture.StudsPerTileV = 3.1
	wait(0)
	Texture.StudsPerTileU = 3.12
    Texture.StudsPerTileV = 3.12
	wait(0)
	Texture.StudsPerTileU = 3.14
	Texture.StudsPerTileV = 3.14
	wait(0)
	Texture.StudsPerTileU = 3.15
	Texture.StudsPerTileV = 3.15
	wait(.1)
	Texture.StudsPerTileU = 3.14
	Texture.StudsPerTileV = 3.14
	wait(0)
	Texture.StudsPerTileU = 3.12
	Texture.StudsPerTileV = 3.12
	wait(0)
	Texture.StudsPerTileU = 3.1
	Texture.StudsPerTileV = 3.1
	wait(0)
	Texture.StudsPerTileU = 3
	Texture.StudsPerTileV = 3
	wait(0)
	Texture.StudsPerTileU = 2.9
    Texture.StudsPerTileV = 2.9
	wait(0)
	Texture.StudsPerTileU = 2.8
	Texture.StudsPerTileV = 2.8
	wait(0)
	Texture.StudsPerTileU = 2.7
	Texture.StudsPerTileV = 2.7
	wait(0)
	Texture.StudsPerTileU = 2.6
	Texture.StudsPerTileV = 2.6
	wait(0)
	Texture.StudsPerTileU = 2.5
	Texture.StudsPerTileV = 2.5
	wait(0)
	Texture.StudsPerTileU = 2.4
    Texture.StudsPerTileV = 2.4
	wait(0)
	Texture.StudsPerTileU = 2.3
	Texture.StudsPerTileV = 2.3
	wait(0)
	Texture.StudsPerTileU = 2.2
	Texture.StudsPerTileV = 2.2
	wait(0)
	Texture.StudsPerTileU = 2.1
	Texture.StudsPerTileV = 2.1
	wait(0.1)
	script.Parent.Texture.Texture = "http://www.roblox.com/asset/?id=1712674561"
	wait(0)
    Texture.StudsPerTileU = 2.1
    Texture.StudsPerTileV = 2.1
	wait(0)
	Texture.StudsPerTileU = 2.2
	Texture.StudsPerTileV = 2.2
	wait(0)
	Texture.StudsPerTileU = 2.3
	Texture.StudsPerTileV = 2.3
	wait(0)
	Texture.StudsPerTileU = 2.4
	Texture.StudsPerTileV = 2.4
	wait(0)
	Texture.StudsPerTileU = 2.5
	Texture.StudsPerTileV = 2.5
	wait(0)
	Texture.StudsPerTileU = 2.6
    Texture.StudsPerTileV = 2.6
	wait(0)
	Texture.StudsPerTileU = 2.7
	Texture.StudsPerTileV = 2.7
	wait(0)
	Texture.StudsPerTileU = 2.8
	Texture.StudsPerTileV = 2.8
	wait(0)
	Texture.StudsPerTileU = 2.9
	Texture.StudsPerTileV = 2.9
	wait(0)
	Texture.StudsPerTileU = 3
	Texture.StudsPerTileV = 3
	wait(0)
	Texture.StudsPerTileU = 3.1
	Texture.StudsPerTileV = 3.1
	wait(0)
	Texture.StudsPerTileU = 3.12
    Texture.StudsPerTileV = 3.12
	wait(0)
	Texture.StudsPerTileU = 3.14
	Texture.StudsPerTileV = 3.14
	wait(0)
	Texture.StudsPerTileU = 3.15
	Texture.StudsPerTileV = 3.15
	wait(.1)
	Texture.StudsPerTileU = 3.14
	Texture.StudsPerTileV = 3.14
	wait(0)
	Texture.StudsPerTileU = 3.12
	Texture.StudsPerTileV = 3.12
	wait(0)
	Texture.StudsPerTileU = 3.1
	Texture.StudsPerTileV = 3.1
	wait(0)
	Texture.StudsPerTileU = 3
	Texture.StudsPerTileV = 3
	wait(0)
	Texture.StudsPerTileU = 2.9
    Texture.StudsPerTileV = 2.9
	wait(0)
	Texture.StudsPerTileU = 2.8
	Texture.StudsPerTileV = 2.8
	wait(0)
	Texture.StudsPerTileU = 2.7
	Texture.StudsPerTileV = 2.7
	wait(0)
	Texture.StudsPerTileU = 2.6
	Texture.StudsPerTileV = 2.6
	wait(0)
	Texture.StudsPerTileU = 2.5
	Texture.StudsPerTileV = 2.5
	wait(0)
	Texture.StudsPerTileU = 2.4
    Texture.StudsPerTileV = 2.4
	wait(0)
	Texture.StudsPerTileU = 2.3
	Texture.StudsPerTileV = 2.3
	wait(0)
	Texture.StudsPerTileU = 2.2
	Texture.StudsPerTileV = 2.2
	wait(0)
	Texture.StudsPerTileU = 2.1
	Texture.StudsPerTileV = 2.1
	wait(0.1)
	script.Parent.Texture.Texture = "http://www.roblox.com/asset/?id=1577797983"
end

1 comment

0

Use 'rbxassetid://'..id instead

2 answers

✓ Accepted answer
  1. wait(0) is actually wait(0.03) and you can just say wait()
  2. Use a loop god damnit, even if it's just looping through a table of predetermined numbers if there's no pattern to the way the number is changing (or loop and use math.random)
  3. You reference the texture at the start of the script and then never use the reference.
local texture = script.Parent:WaitForChild"Texture"
local weirdIncrements = {3.12, 3.14, 3.15}
local textures = {1577797983, 1677527003, 1712674561}

local function changeValues(val)
	texture.StudsPerTileU = val
	texture.StudsPerTileV = val
	wait()
end

while true do
	for j = 1, #textures do
		texture.Texture = "rbxassetid://" .. textures[j]
		for i = 2.1, 3.1, 0.1 do
			changeValues(i)
		end
		for i = 1, #weirdIncrements do
			changeValues(i)
		end
		for i = 1, #weirdIncrements do
			changeValues(#weirdIncrements - i + 1)
		end
		for i = 3.1, 2.1, -0.1 do
			changeValues(i)
		end
	end
end

just tween it

and for god sake make your top variables local

local TweenService = game:GetService("TweenService")
local Texture = script.Parent.Texture
local Info = TweenInfo.new(
	3, -- seconds
	Enum.EasingStyle.Linear, -- easing type
	Enum.EasingDirection.In, -- this does not matter if its linear
	0, -- dont repeat for this case
	true, -- reverses
	0, -- no delaying
)
local Dictionary = {
	StudsPerTileU = 3,
	StudsPerTileV = 3
}
local Tween = TweenService:Create(Texture, Info, Dictionary)

while true do
	wait() -- because i feel like it
	Tween:Play()
	wait(3) -- "EVERY INSTANCE FOR ITSELF" - tween
	Texture.Texture = "http://www.roblox.com/asset/?id=1677527003"

	Tween:Play()
	wait(3)
	Texture.Texture = "http://www.roblox.com/asset/?id=1712674561"

	Tween:Play()
	wait(3)
	Texture.Texture = "http://www.roblox.com/asset/?id=1577797983"
end

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