1. Help us improve the editor usability and artist workflows. Join our discussion to provide your feedback.
    Dismiss Notice
  2. We're looking for feedback on Unity Starter Kits! Let us know what you’d like.
    Dismiss Notice
  3. We’re giving 2017.1 beta testers a chance to win t-shirts and a Nintendo Switch. Read more on the blog.
    Dismiss Notice
  4. We want to know how you learned Unity! Help us by taking this quick survey and have a chance at a $25 gift card
    Dismiss Notice
  5. Unity 5.6 is now released.
    Dismiss Notice
  6. Check out all the fixes for 5.6 on the patch releases page.
    Dismiss Notice

HOTween: a fast and powerful Unity tween engine

Discussion in 'Assets and Asset Store' started by Izitmee, Jan 7, 2012.

  1. hierro__

    hierro__

    Joined:
    Sep 22, 2014
    Posts:
    34
    so no hope for me, i work only with nested one, thank you a lot.
     
  2. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,221
    You could use a workaround if nested callbacks are so necessary to you. Tween callbacks like OnComplete still work even inside a nested tween (only Sequence callbacks placed using Insert/AppendCallback don't). So, if for example you need a nested callback at 0.2 duration, you could Insert a 0.2 duration nested tween (using a float just to tween something) and take advantage of its OnComplete.
     
  3. hierro__

    hierro__

    Joined:
    Sep 22, 2014
    Posts:
    34
    Il give it a try,thank you for precious suggestion, at the end I need a dummy variable in all required items.
     
  4. ba01

    ba01

    Joined:
    May 8, 2014
    Posts:
    10
    Hello lzitmee.

    I am doing a game unity 2d with HOTween.
    I use HOTween to move my object with specific path.

    Exemple: my gameobject is at [0, 0].
    I would like to move it to [1,0] (node 1), [2,0] (node 2), [2,1] (node 3).....

    Which function callback can i use to handle my gameobject's animation when my gameobject is finish 1 node in path.
    The reason i want this, because My gameobject calls animation MoveUp when it moves up in path.
    I need a function callback is similar OnComplete when my gameobject has finished moving to a node.

    Right now, i loop each node, and move to next node in function OnComplete.
    It create a lot of tweens by this way. so i think you have the way better than mine.
    Please tell me about your comment.

    Thanks.
     
  5. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,221
    Hi @ba01

    You would need an OnWaypointChange callback, but I'm afraid HOTween doesn't implement it. My suggestion would be to switch to HOTween v2 (DOTween), which has it :)
     
    ba01 likes this.
  6. ba01

    ba01

    Joined:
    May 8, 2014
    Posts:
    10
    Hello lzitmee.

    Could you please tell me aboout HOTween and HOTween v2 (DOTween). Which lib is better and easier to use ??

    Thanks
     
  7. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,221
    @ba01 DOTween is definitely much better (I would be crazy to do a new tween engine that is worse than the previous one :D), more performant, has more options, and is much easier to use thanks to shortcuts like this:
    Code (csharp):
    1. transform.DOMove(new Vector(1,2,3), 1);
     
    ba01 likes this.
  8. omatase

    omatase

    Joined:
    Jul 31, 2014
    Posts:
    153
    OK, been using HOTween for months now. This is the second time I added a simple line of code that I've used before in many places with really bizarre crashing (the first time is because I was providing too large of a value in the p_endVal argument for Prop, this is a different issue).

    I have this line of code:

    HOTween.To(StatsPanel.rect, .5f, new TweenParms().AutoKill(true).Ease(EaseType.EaseOutExpo).Prop("y", 88f)).Play();

    Pretty dang basic. It gives me this ugly error about 10k times and crashes unity even if I only run the code once.

    NullReferenceException: Object reference not set to an instance of an object
    Holoville.HOTween.Tweener.Update (Single p_shortElapsed, Boolean p_forceUpdate, Boolean p_isStartupIteration, Boolean p_ignoreCallbacks, Boolean p_ignoreDelay) (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__HOTween.Assembly/HOTweenV1/Tweener.cs:717)
    Holoville.HOTween.Tweener.Update (Single p_shortElapsed, Boolean p_forceUpdate, Boolean p_isStartupIteration, Boolean p_ignoreCallbacks) (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__HOTween.Assembly/HOTweenV1/Tweener.cs:684)
    Holoville.HOTween.Core.ABSTweenComponent.Update (Single p_elapsed) (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__HOTween.Assembly/HOTweenV1/Core/ABSTweenComponent.cs:954)
    Holoville.HOTween.HOTween.DoUpdate (UpdateType p_updateType, Single p_elapsed) (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__HOTween.Assembly/HOTweenV1/HOTween.cs:2173)
    Holoville.HOTween.HOTween.Update () (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__HOTween.Assembly/HOTweenV1/HOTween.cs:728)

    None of my arguments are null, StatsPanel is a RectTransform. "y" is a property that exists on the rect property of StatsPanel. Everything else seems kosher, any ideas?
     
  9. omatase

    omatase

    Joined:
    Jul 31, 2014
    Posts:
    153
    Nevermind I figured out that rect.y is unassignable. Still if it's something that can be done it would be nice for a better error message. Although I realize that may not be on your side. I don't know.
     
  10. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,221
    @omatase Sorry for this, but I can't catch that error and it's unassignable on Unity's side, not HOTween's side. If you try to do
    Code (csharp):
    1. StatsPanel.rect.y = 12;
    without any tweening you'll see that you get an exception too.
     
  11. omatase

    omatase

    Joined:
    Jul 31, 2014
    Posts:
    153
    Yes, after I couldn't get the HOTween animation to work I just decided to do

    Code (CSharp):
    1. StatsPanel.rect.y = 12;
    and then wait to hear back from you. That's when I immediately saw the problem. It is certainly my fault that the code I wrote didn't work, but I think It would be great if the problem had been more obvious from the start.
     
  12. ba01

    ba01

    Joined:
    May 8, 2014
    Posts:
    10
    Hello lzitmee.

    Thanks for your recommend to DoTween, but i have a bit problem when convert code from HoTween to DoTween. I don't know how to use Dotween although i take 2 hours to research document about Dotween, it's quite straight to me.

    Code (CSharp):
    1.  
    2.        TweenParms parm = new TweenParms();
    3.  
    4.         parm.Prop("localPosition", _targetPosition); // Position tween    
    5.         parm.Ease(EaseType.Linear); // Easing type
    6.  
    7.         parm.AutoKill(true);
    8.         parm.OnUpdate(OnMoving);
    9.         parm.OnComplete(OnCompleteMoving);
    10.  
    11.         if (this.gameObject.tag == "Enemy") {
    12.             parm.TimeScale(CharacterUtil.GetEnemeySpeed(this.gameObject));        
    13.         }
    14.         else {
    15.             parm.TimeScale(GlobalVariable.GetInstance().TimeSpeedHead);
    16.         }
    17.  
    18.         HOTween.To(this.gameObject.transform, 1, parm);
    19.  
    Could you please to help me write it in DoTween, base on your help, it help me to convert all Hotween code to Dotween.

    Where posts examples about moving by path in Dotween ?
    My input is List<Vector3>, how to move my object witth the input ?

    Thanks for you help a lot.
     
  13. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,221
    Hi @ba01

    That code you wrote would translate like this:
    Code (csharp):
    1. Tween t = this.transform.DOLocalMove(_targetPosition, 1)
    2.    .SetEase(Ease.Linear)
    3.    .SetAutoKill(true) // Actually no need to set this, since autoKill is TRUE by default
    4.    .OnUpdate(OnMoving)
    5.    .OnComplete(OnCompleteMoving);
    6. if (this.gameObject.tag == "Enemy") {
    7.    t.timeScale = CharacterUtil.GetEnemeySpeed(this.gameObject);
    8. } else {
    9.    t.timeScale = GlobalVariable.GetInstance().TimeSpeedHead;
    10. }
    Here you should find examples about moving on a path (I actually don't remember what's in that download, but there should be path stuff). In short, you use DOPath like this:
    Code (csharp):
    1. // Move along a Catmull-Rom (curved) path along "myWaypoints" for 4 seconds,
    2. this.transform.DOPath(myWaypoints, 4, PathType.CatmullRom);
     
    ba01 likes this.
  14. ba01

    ba01

    Joined:
    May 8, 2014
    Posts:
    10
    Thanks lzitmee.
    Thanks for you help so much.

    I have a quite dummy question to ask you.

    For instance, i put first code tween (code is converted from Hotween to Dotween by you), in function ProcessMoving.
    In case, i turn my gameobject to left or to right while my gameobject is moving.

    now, i check in OnMoving callback
    Code (CSharp):
    1.  
    2.  
    3.      void OnMoving(){
    4.         if (_nextDirection != _targetDirection){
    5.  
    6.             if (DetectNextCell(this.gameObject, _nextDirection) == true) {
    7.                 //HOTween.Kill(this.gameObject.transform);
    8.                 DOTween.Kill(this.gameObject.transform); //i have to kill current tween so that new tween will be install in ProcessMoving again
    9.                 ProcessMoving(_nextDirection);
    10.             }
    11.         }
    12.     }
    In case, i have to kill current tween so that new tween will be install in ProcessMoving again. unless my gameobject's speed is out of control (so fast).

    I think there is a way to do it without calling DOTween.Kill(this.gameObject.transform);

    How about your comment ??
    Thanks a lot.
     
  15. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,221
    Hi,

    I'm not 100% sure if I understood this question correctly. But if you want to stop a possibly running tween and create another, then killing the old one is the most correct thing to do, so you're right. Possibly, the other options are that you could store the tween and just call
    Code (csharp):
    1. myTween.Kill();
    instead of
    Code (csharp):
    1. DOTween.Kill(this.gameObject.transform);
     
  16. ShahSoft

    ShahSoft

    Joined:
    Jan 13, 2013
    Posts:
    11
    Hello DEMIGIANT,

    I have been using HOTween for quite some time. I love it! :D

    Here is my Problem. I want to Move some objects for collection by Player along a Path. Path is per-determined but very last point or Player Position can be dynamic. How can I handle dynamic changing of path or one of its points while its already playing. Any Solution with HOT or DOT is much appreciated.
     
  17. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,221
    Hello :)

    I'm afraid there is no way to change waypoints once they're created. And the only trick that comes to my mind wouldn't work because the final waypoint distance would be dynamic too.

    I'm planning to implement a DOFollow shortcut in DOTween though. With that, you could just cut the path at the penultimate waypoint and continue from there with a DOFollow.
     
    ShahSoft likes this.
  18. cowlinator

    cowlinator

    Joined:
    Mar 15, 2012
    Posts:
    67
    Thanks for HOTween and HOTweenMicro! They are very useful!

    You should probably mention that only HOTweenMicro works with the current version of WebGL on your website/asset store page.
     
  19. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,221
    Thanks for the info! I had no idea that only Micro worked on WebGL, because for some yet unknown reason I can't compile anything in WebGL: even an empty project with a cube fails with errors :/

    Will add that information to the website this evening :)
     
  20. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,221
    @cowlinator Done! By the way, I don't know if you noticed that HOTween v2 (DOTween) is also out: much faster and easier to use ;)
     
  21. -RaganorK-

    -RaganorK-

    Joined:
    May 9, 2014
    Posts:
    14
    Hi @Izitmee, I am using HOTween in my game called Skatelander (its live on IOS). Its basically an endless skateboarding game and user can do various stunts. All stunts are just the HOtweens.
    Now with the problem, the game is more physics based. So the tweens and physics are just not going along. For example, I have made a tween for the player to jump, but due to physics attached, it gets pulled down and the output is not what I expected. Sometimes it goes beyond weird. Do you have any solution for this?
     
  22. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,221
    Hi @-RaganorK- ,

    You can't really use physics plus tweens, but either one or the other, otherwise they'll conflict with each other. Still, if you want to have your "base ground object" be controlled with physics, while using tweens for acrobatics, you could use a parent/child system, where the physics control the parent and the tweens control the child.
     
  23. -RaganorK-

    -RaganorK-

    Joined:
    May 9, 2014
    Posts:
    14
    @Izitmee: I knew the tween and physics won't ever go hand in hand. Just that I was hoping that somehow someway, they will. Very well then, I have to invent some tricks to make it work. I have already implemented what you suggested, may be I have to modify it more.
     
  24. wightwhale

    wightwhale

    Joined:
    Jul 28, 2011
    Posts:
    329
    I'm having an issue where when I load a scene from one which had a few tweens going then I go back to my main menu which also has a few tweens the game suddenly had 3000 physics objects updating and I can't figure out why. Is there a good way to cleanup hotweens which were in use during a playmaker action? Or do you think the issue is coming from somewhere else?
     
  25. Kirbychwan

    Kirbychwan

    Joined:
    Aug 14, 2012
    Posts:
    406
    @Izitmee

    Hi! I'm having a bit of trouble trying to access tweens generated by the visual editor. (I'm trying to pause or stop a tween via script) and I took a look at the example code posted:

    Code (CSharp):
    1. HOTweenComponent tweenComponent = myGameObject.GetComponent<HOTweenComponent>();
    2. if (tweenComponent != null) {
    3.   List<Tweener> tweeners = tweenComponent.generatedTweeners;
    4.    // Do something with the Tweeners
    5. }
    But I get this error:

    'The type or namespace name `Tweener' could not be found. Are you missing a using directive or an assembly reference?'

    My coding skill and knowledge is pretty abysmal, what am I doing wrong? Am I missing a Tweener class, or something?
     
    Last edited: Sep 7, 2015
  26. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,221
    Hi,

    You're missing the namespace import. Add this to the top of your script:
    Code (csharp):
    1. using Holoville.HOTween;
     
  27. Kirbychwan

    Kirbychwan

    Joined:
    Aug 14, 2012
    Posts:
    406
    Ah! Thanks a ton, I'm an idiot.
     
  28. Sinfritz

    Sinfritz

    Joined:
    Nov 18, 2012
    Posts:
    72
    Hi,

    There's an issue with Sequence where if you only insert callbacks, but no tweens, these callbacks do not follow the timeline and get triggered right away. The workaround is that you have to add at least one tween for it to work.

    For example:

    sequence.InsertCallback(0f, SomeCallback);
    sequence.InsertCallback(0.5f, SomeCallback);
    sequence.InsertCallback(1f, SomeCallback);

    If this gets played, those get called right away. But if you at least add:

    sequence.Insert(0f, Hotween.To(someTarget, 1f, destination));

    Then the callbacks get triggered at their respective time.

    I don't know if this is an easy fix, but I figure I'd reach out to you first and avoid trying some workarounds. Or if you have a suggestion. It's not often that a Sequence only has a bunch of callbacks, but still would be nice.

    At some point I will transfer to using DOTween, but that would take some time to do so. (some projects are relying on HOTween at the moment)
     
  29. beyondthehappiness

    beyondthehappiness

    Joined:
    Jul 2, 2015
    Posts:
    3
    Hi,

    I met a strange problem with Hotween. if i add a animator component on a gameobject and without apply root motion then any of the tween animation didn't work unless apply the root motion.

    the gameobject has to use hotween and mecanim together.

    Does anyone know why?
     
  30. yi.yang

    yi.yang

    Joined:
    Nov 30, 2015
    Posts:
    1
    Hi,

    i met a problem when animate the material color.
    my code is below
    HOTween.To(material, 0.5f, new TweenParms().Prop("color", new PlugSetColor(Color.red).Property("_TintColor")).
    Ease(EaseType.Linear).
    OnComplete(ArrowSwith, false));

    but it crashed with the infomation is:
    NullReferenceException: Object reference not set to an instance of an object
    Holoville.HOTween.Plugins.Core.ABSTweenPlugin.SetUndefinedValue (System.Object p_value) (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__HOTween.Assembly/HOTweenV1/Plugins/Core/ABSTweenPlugin.cs:693)
    Holoville.HOTween.Plugins.Core.ABSTweenPlugin.SetValue (Color p_value) (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__HOTween.Assembly/HOTweenV1/Plugins/Core/ABSTweenPlugin.cs:618)
    Holoville.HOTween.Plugins.PlugSetColor.DoUpdate (Single p_totElapsed) (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__HOTween.Assembly/HOTweenV1/Plugins/PlugSetColor.cs:250)
    Holoville.HOTween.Plugins.Core.ABSTweenPlugin.Update (Single p_totElapsed) (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__HOTween.Assembly/HOTweenV1/Plugins/Core/ABSTweenPlugin.cs:469)
    Holoville.HOTween.Tweener.Update (Single p_shortElapsed, Boolean p_forceUpdate, Boolean p_isStartupIteration, Boolean p_ignoreCallbacks, Boolean p_ignoreDelay) (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__HOTween.Assembly/HOTweenV1/Tweener.cs:844)
    Holoville.HOTween.Tweener.Update (Single p_shortElapsed, Boolean p_forceUpdate, Boolean p_isStartupIteration, Boolean p_ignoreCallbacks) (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__HOTween.Assembly/HOTweenV1/Tweener.cs:710)
    Holoville.HOTween.Core.ABSTweenComponent.Update (Single p_elapsed) (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__HOTween.Assembly/HOTweenV1/Core/ABSTweenComponent.cs:954)
    Holoville.HOTween.HOTween.DoUpdate (UpdateType p_updateType, Single p_elapsed) (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__HOTween.Assembly/HOTweenV1/HOTween.cs:2252)
    Holoville.HOTween.HOTween.Update () (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__HOTween.Assembly/HOTweenV1/HOTween.cs:734)

    so how could i animate the material color?
     
  31. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,221
    Hi,

    Are you sure the material has a "_TintColor" property? If it's a regular diffuse material, it won't, but you don't have to add the Property method at all, since HOTween will take the default color (which is "_Color") and use that.
     
  32. ruiwang

    ruiwang

    Joined:
    Oct 15, 2014
    Posts:
    2
    I am using hotween to scale a UIsprite. When the fps is low, the uisprite does not achieve target value.
    but uisprite's value is correct in inspector.
    Please help me
     
  33. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,221
    Hi!

    That is probably due to floating point imprecision, which depends on the machine. Which means that 1 can sometimes be 0.99999999, but that's how floating points work. If instead you have a bigger imprecision let me know.
     
  34. ruiwang

    ruiwang

    Joined:
    Oct 15, 2014
    Posts:
    2
    it's not floating point imprecision. the animation plays half.It's look like not refreshing.
    when I set active from true to false, then to true in inspector, it's correct.
     
  35. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,221
    That looks very weird. Then can you check if there's something else interfering with the tween? I'm pretty sure the framerate shouldn't be an issue, since I used HOTween with as low as 2 FPS (to test stuff).
     
  36. SarahLee

    SarahLee

    Joined:
    Sep 6, 2014
    Posts:
    2
    I want to use HOTween achieve method like DrawBezier(Vector3 startPosition, Vector3 endPosition, Vector3 startTangent, Vector3 endTangent), I do not know how to use HOTween achieve bezier curve
     
  37. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,221
    Sorry but HOTween has no Bezier curves, only CatmullRom ones.
     
  38. john-essy

    john-essy

    Joined:
    Apr 17, 2011
    Posts:
    417
    Hey there,

    I only just stumbled accross this amazing tool! Saving me tonnes of time with my UI animations rather than Keyframing.

    My question is here, On my main menu on start i tween in my objects in my mind this is my animation, Now say i click the play button but i want it to come out a different way so i go ahead and create new tweens for the out animation.

    How exactly would i group these tweens to say MainMenuIn, MainMenuOut etc so its a simple call in code?

    Thanks man

    John
     
  39. Izitmee

    Izitmee

    Joined:
    Jan 27, 2011
    Posts:
    3,221
    @john essy Hey John!

    Sorry for the superlate reply. But Unity often stops sending me notifications, and I didn't think to check HOTween's thread sooner (almost nobody writes here anymore, now that DOTween is out since a while).
    To group tweens, you can use Sequences, which are like a single tween that contains more tweens.
    By the way, I saw you wrote on DOTween's thread too, so you moved to it? Being the new version of HOTween, I recommend it since it's much better, and it has Sequences too :)

    Cheers,
    Daniele
     
  40. Rock-Soft

    Rock-Soft

    Joined:
    Nov 3, 2012
    Posts:
    4
    Hello.

    I'm having issues with building my game with Hotween on iOS 10. (well Xcode 8.3.3) I can't get my tweens to work when I'm running the game on my device. I'm seeing this:

    MissingMethodException: No constructor found for Holoville.HOTween.Plugins.PlugVector3Y::.ctor(System.Single, System.Boolean)

    at System.Activator.CreateInstance (System.Type type, BindingFlags bindingAttr, System.Reflection.Binder binder, System.Object[] args, System.Globalization.CultureInfo culture, System.Object[] activationAttributes) [0x00000] in <filename unknown>:0

    at HOTweenManager.CreateTween (.HOTweenData p_twData, Single p_globalDelay, Single p_globalTimeScale) [0x00000] in <filename unknown>:0

    at HOTweenComponent.Awake () [0x00000] in <filename unknown>:0

    (Filename: currently not available on il2cpp Line: -1)


    MissingMethodException: No constructor found for Holoville.HOTween.Plugins.PlugVector3Y::.ctor(System.Single, System.Boolean)

    at System.Activator.CreateInstance (System.Type type, BindingFlags bindingAttr, System.Reflection.Binder binder, System.Object[] args, System.Globalization.CultureInfo culture, System.Object[] activationAttributes) [0x00000] in <filename unknown>:0

    at HOTweenManager.CreateTween (.HOTweenData p_twData, Single p_globalDelay, Single p_globalTimeScale) [0x00000] in <filename unknown>:0

    at HOTweenComponent.Awake () [0x00000] in <filename unknown>:0

    (Filename: currently not available on il2cpp Line: -1)

    Discarding unnecessary tk2dUIManager instance.

    tk2dUIManager:Awake()

    (Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)


    Any tips on what I can do to solve? Works great in Unity.


    UPDATE:
    After messing with things A LOT, I discovered that my tweetparms are animating as should. Half my Hotweens are in code, the rest are in visual component so I can make tweaks fast. I suppose a solution would be to transfer all my visual component tweens to tweetparms instead but I have hundreds of these (i might kill something, probably my computer screen). Any ideas?

    I have also tried using HOTweenMicro v1.3.380 instead of the regular HOTween.

    Also, if I switch to Mono instead of II2cpp and build in Xcode, it works perfectly. Again, this is not a solid solution because all iOS apps will need to be 64-bit moving forward. Is there something I can do to fix this somehow? I think I've tried everything I know to try...

    Thank you!!


    UPDATE 2:
    I discovered it was the PlugVector3Y causing the issue only. When I change it PlugVector3 and set the X, Y, and Z individually, it works. Very confusing. Maybe something you'd like to look into for the future. I will go through each level and make the change to fix it.
     
    Last edited: Jun 13, 2017