I'll try to explain as best as I can.
Updates are cheap timewise, mostly.
Refreshes draw the Graphics and are Time Consuming.
Infinite hangs:
update until 1 == 0
#do something
end
This will cause an Infinite loop.
You can try putting "print" inside the script you are using in either its Update or Refresh methods and might be able to find for yourself where your script is hanging.
NOTE: If the script you are using is calling Refresh every Frame, you'll get a LOT of lag. Refresh should really only be used when something needs to be completely redrawn, like you change a character Graphic from one graphic to a completely different Graphic. So what could be causing Hanging is something like this:
def update
# Redraw the Graphic
graphic.refresh
# Other Stuff
end
def refresh
self.contents.clear
bar.draw(some arguments)
end
I do suspect you have something that is causing an infinite loop however.
while 1 == 1
# do stuff
end
graphic.refresh
That will never get to graphic.refresh because 1 is always equal to 1, and will cause the game to spit out the error "Script is hanging".