Different framerate interfering with effects speed

I am working on an effects system for my game: but there is one small issue:

I am updating a part every frame in the duration of a for loop, but that means people with higher framerates will make the effect complete faster.

How would I make the duration of the effect always the same length regardless of framerate?

for i = 0,1,self.Steps do
			rstep:Wait()
			self.Animate(self,i)
			while self.Pause == true do
				twait()
			end

			if self.Break or not self.Part.Parent then break end
		end

Also I would like to not use tweens because I am trying to focus on optimization