About GTween

Type: Gideros class
License: MIT License
Supported platforms:


  • Animations

GTween is a light-weight instance oriented tween engine. This means that you instantiate tweens for specific purposes, and then reuse, update or discard them. This is different than centralized tween engines where you "register" tweens with a global object. This provides a more familiar and useful interface for object oriented programmers.

GTween boasts a number of advanced features:

  • frame and time based durations/positions which can be set per tween
  • simple sequenced tweens using .nextTween
  • pause and resume individual tweens or all tweens
  • jump directly to the end or beginning of a tween with :toEnd() or :toBeginning()
  • jump to any arbitrary point in the tween with :setPosition()
  • complete, init, and change callbacks
  • smart garbage collector interactions (prevents collection while active, allows collection if target is collected)
  • easy to set up in a single line of code
  • can repeat or reflect a tween a specified number of times
  • deterministic, so setting a position on a tween will (almost) always result in predictable results

Download GTween

Developed by: Gideros

Sharing is caring:

Code example:

--define what to animate
local animate = {}
animate.y = 100
animate.x = 100
animate.alpha = 0.5
animate.scaleX = 0.5
animate.scaleY = 0.5
animate.rotation = math.random(0, 360)
--define GTween properties
local properties = {}
properties.delay = 0
properties.ease = easing.inElastic
properties.dispatchEvents = true
--animate them
--- First argument: sprite to animate
--- Second argument: duration of animation in seconds or frames
--- Third argument: properties to animate
--- Fourth argument: GTween properties
local tween =, 10, animate, properties)
--adding event on animaiton complete
tween:addEventListener("complete", function()
    sprite = nil