Help ?Can Chronos Reverse Boolean Statement? Help

I’m using chronos and in my Time Reverse everything is okay, everything is rewindng except my boolean, its important because it is changing the rotation of my 2d enemy, how can it be done and can it be done?
Here is a video of my problem - YouTube

And a script, another scripts just help rewind the time by time.timeScale

using UnityEngine;
using System.Collections;
using Chronos;

public class Scientist : BaseBehaviour {

    public float moveSpeed;
    public bool moveRight;

    public Transform sightStart, sightEnd;

    public Transform flipStart, flipEnd;

    public bool spotted = false;

    public bool flip = false;

    public GameObject arrow;

    public LayerMask detectionLayers;

    public Transform wallCheck;
    public float wallCheckRadius;
    public LayerMask whatIsWall;
    private bool hittingWall;

    public Transform edgeCheck;
    public float edgeCheckRadius;
    private bool notAtEdge;

    public float timer = 3f; //Чтобы изменить время остановки нужно изменить кроме этого значения еще значение ниже, того же timer

    public float smoothTime = 1f;
    private float yVelocity = 0.0f;

    Animator anim;

    private Rigidbody2D rb2d;

    void Start () {

        rb2d = gameObject.GetComponent<Rigidbody2D>();

        anim = GetComponent<Animator>();

    }

    void Update () {

        anim.SetFloat ("Speed", Mathf.Abs(rb2d.velocity.x));

        Raycasting ();

        Behaviours ();


        hittingWall = Physics2D.OverlapCircle (wallCheck.position, wallCheckRadius, whatIsWall);

        notAtEdge = Physics2D.OverlapCircle (edgeCheck.position, edgeCheckRadius, whatIsWall);


    }

    void FixedUpdate () 
    {
        if (hittingWall || !notAtEdge) {

            if (timer > 0) {

                timer -= Time.deltaTime;

                return;
            } 

            moveRight = !moveRight;

            timer = 3f;
        }

        if (moveRight) 
        { 
            transform.localScale = new Vector3 (0.75f, 0.75f, 1f);
            //rb2d.velocity = new Vector2(moveSpeed, rb2d.velocity.y);
            if (time.timeScale > 0) 
            {
                time.rigidbody2D.velocity = new Vector2 (moveSpeed, time.rigidbody2D.velocity.y);
            }
        } else {
            transform.localScale = new Vector3 (-0.75f, 0.75f, 1f);
            //rb2d.velocity = new Vector2(-moveSpeed, rb2d.velocity.y);
            if (time.timeScale > 0) 
            {
                time.rigidbody2D.velocity = new Vector2 (-moveSpeed, time.rigidbody2D.velocity.y);
            }

        }

        Physics2D.IgnoreLayerCollision (16,16); //Даёт возможность не сталкиваться врагам
    }



    void Raycasting() 
    {
        Debug.DrawLine (sightStart.position, sightEnd.position, Color.green);
        spotted = Physics2D.Linecast (sightStart.position, sightEnd.position, detectionLayers); 

        Debug.DrawLine (flipStart.position, flipEnd.position, Color.red);
        flip = Physics2D.Linecast (flipStart.position, flipEnd.position, detectionLayers);
    }

    void Behaviours() 
    {
        if (spotted == true) {
            arrow.SetActive (true);
            moveSpeed = Mathf.SmoothDamp(moveSpeed,4.5f,ref yVelocity,smoothTime);
        } else {
            arrow.SetActive (false);
            moveSpeed = Mathf.SmoothDamp(moveSpeed,2.5f,ref yVelocity, smoothTime);
        }

        if (flip == true && moveSpeed > 2.5f) 
        {
            moveRight = !moveRight; 
            moveSpeed = 2.5f;
        }
    }
}

Since this seems to be a specific problem with Chronos, you should ask your question in the Chronos support forum