Script Debugging: My code to simulate spin for each moon is not working right

So I ran the code below. No errors are flagged and the print command returned values that were behaving properly. In-game though the moon only spins if a value is already input for the smart property Moon Rotation and then it moves exponentially in decay to no movement instead of a linear increase as is expected and output via print command. The moon won't spin at all if the starting Vector3 for Moon Rotation is 0,0,0. What in the world is going on?

local moon = script.parent

local propRotationRate = script:GetCustomProperty("RotationRate")

local propMoonRotation = script:GetCustomProperty("MoonRotation")
local propMoonSpin = moon:GetSmartProperty("Moon Rotation")
local moonSpin = propMoonRotation

moon:RotateContinuous(propRotationRate)

function Tick()
  Task.Wait(0.1)

  local propMoonSpin = moon:GetSmartProperty("Moon Rotation")
  local moonSpin = moonSpin + propMoonSpin

  moon:SetSmartProperty("Moon Rotation", moonSpin)

  print(moonSpin)
end

So the rotation property of the effect is a bit misleading. There are only around 3 images for the moon rotation so you can't actually rotate it. A solution for this is to instead create a large sphere and rotate that.

Thank you this helps explain the weird behavior of the moons, the planet smart objects actually work perfectly with a nearly identical script which is part of what was confusing, I'm using sky dome items and actually rotating the entire dome to simulate planetary rotation on the world along with giving each planet its own trajectory and rotation, so the moons may take some really fancy coding which I'm not good enough at yet... :joy: I may try and hack my way through it all with some tricks.