public override void Update()
        {
            if (versionOK && setupOK)
            {
                if (fixABS)
                {
                    if (!_satsuma.GetComponent <CarController>().ABS)
                    {
                        _satsuma.GetComponent <CarController>().ABS = true;
                    }
                }

                if (fixESP)
                {
                    if (!_satsuma.GetComponent <CarController>().ESP)
                    {
                        _satsuma.GetComponent <CarController>().ESP = true;
                    }
                }

                if (fixDrivetype)
                {
                    if (_satsumaDriveTrain.transmission != sixGearsMod.lastDrivetype)
                    {
                        _satsumaDriveTrain.SetTransmission(sixGearsMod.lastDrivetype);
                    }
                }

                if (sixGears)
                {
                    if (_satsumaDriveTrain.gearRatios != sixGearsMod.newRatio)
                    {
                        _satsumaDriveTrain.gearRatios = sixGearsMod.newRatio;
                        _satsumaDriveTrain.maxRPM     = 8400f;
                    }
                }

                if (sixGearsMod.autoTransEnabled)
                {
                    if (_satsumaDriveTrain.automatic)
                    {
                        _satsumaDriveTrain.automatic   = true;
                        _satsumaDriveTrain.autoReverse = false; // Force autoReverse off.
                    }
                }

                if (boost)
                {
                    _satsumaDriveTrain.canStall = false;

                    if (_satsumaDriveTrain.powerMultiplier != powerMultiplier)
                    {
                        _satsumaDriveTrain.powerMultiplier = powerMultiplier;
                    }
                }


                if (ShowUIBind.IsDown())
                {
                    uiHandler.ShowUI();
                }

                if (uiHandler.rootUI.activeSelf)
                {
                    uiHandler.boostPowerText.text = Math.Round(powerMultiplier, 2).ToString();
                }

                if (engineFixer)
                {
                    if (engineFixerMod._wearAlternator != null)
                    {
                        if (CalcPercentage(engineFixerMod._wearAlternator.Value, 100f) < 30)
                        {
                            engineFixerMod._wearAlternator.Value = 100f;
                        }
                    }

                    if (engineFixerMod._wearCrankshaft != null)
                    {
                        if (CalcPercentage(engineFixerMod._wearCrankshaft.Value, 100f) < 30)
                        {
                            engineFixerMod._wearCrankshaft.Value = 100f;
                        }
                    }

                    if (engineFixerMod._wearGearbox != null)
                    {
                        if (CalcPercentage(engineFixerMod._wearGearbox.Value, 100f) < 30)
                        {
                            engineFixerMod._wearGearbox.Value = 100f;
                        }
                    }

                    if (engineFixerMod._wearHeadgasket != null)
                    {
                        if (CalcPercentage(engineFixerMod._wearHeadgasket.Value, 100f) < 30)
                        {
                            engineFixerMod._wearHeadgasket.Value = 100f;
                        }
                    }

                    if (engineFixerMod._wearPiston1 != null)
                    {
                        if (CalcPercentage(engineFixerMod._wearPiston1.Value, 100f) < 30)
                        {
                            engineFixerMod._wearPiston1.Value = 100f;
                        }
                    }

                    if (engineFixerMod._wearPiston2 != null)
                    {
                        if (CalcPercentage(engineFixerMod._wearPiston2.Value, 100f) < 30)
                        {
                            engineFixerMod._wearPiston2.Value = 100f;
                        }
                    }

                    if (engineFixerMod._wearPiston3 != null)
                    {
                        if (CalcPercentage(engineFixerMod._wearPiston3.Value, 100f) < 30)
                        {
                            engineFixerMod._wearPiston3.Value = 100f;
                        }
                    }

                    if (engineFixerMod._wearPiston4 != null)
                    {
                        if (CalcPercentage(engineFixerMod._wearPiston4.Value, 100f) < 30)
                        {
                            engineFixerMod._wearPiston4.Value = 100f;
                        }
                    }

                    if (engineFixerMod._wearRockershaft != null)
                    {
                        if (CalcPercentage(engineFixerMod._wearRockershaft.Value, 100f) < 30)
                        {
                            engineFixerMod._wearRockershaft.Value = 100f;
                        }
                    }

                    if (engineFixerMod._wearStarter != null)
                    {
                        if (CalcPercentage(engineFixerMod._wearStarter.Value, 100f) < 30)
                        {
                            engineFixerMod._wearStarter.Value = 100f;
                        }
                    }

                    if (engineFixerMod._wearWaterpump != null)
                    {
                        if (CalcPercentage(engineFixerMod._wearWaterpump.Value, 100f) < 30)
                        {
                            engineFixerMod._wearWaterpump.Value = 100f;
                        }
                    }

                    if (engineFixerMod._oilLevel != null)
                    {
                        if (CalcPercentage(engineFixerMod._oilLevel.Value, 3f) < 30)
                        {
                            engineFixerMod._oilLevel.Value = 3f;
                        }
                    }

                    if (engineFixerMod._satsumaFuel != null)
                    {
                        if (CalcPercentage(engineFixerMod._satsumaFuel.Value, 36f) < 30)
                        {
                            engineFixerMod._satsumaFuel.Value = 36f;
                        }
                    }

                    if (engineFixerMod._racingWater != null)
                    {
                        if (CalcPercentage(engineFixerMod._racingWater.Value, 7f) < 30)
                        {
                            engineFixerMod._racingWater.Value = 7f;
                        }
                    }

                    if (engineFixerMod._brakeFluidF != null)
                    {
                        if (CalcPercentage(engineFixerMod._brakeFluidF.Value, 1f) < 30)
                        {
                            engineFixerMod._brakeFluidF.Value = 1f;
                        }
                    }

                    if (engineFixerMod._brakeFluidR != null)
                    {
                        if (CalcPercentage(engineFixerMod._brakeFluidR.Value, 1f) < 30)
                        {
                            engineFixerMod._brakeFluidR.Value = 1f;
                        }
                    }

                    if (engineFixerMod._cluthFluid != null)
                    {
                        if (CalcPercentage(engineFixerMod._cluthFluid.Value, .5f) < 30)
                        {
                            engineFixerMod._cluthFluid.Value = .5f;
                        }
                    }

                    if (engineFixerMod._engineTemp != null)
                    {
                        if (engineFixerMod._engineTemp.Value < 83f)
                        {
                            engineFixerMod._engineTemp = 80f;
                        }
                    }
                }

                if (soundControllerMod.sfx && _satsumaDriveTrain.gear != 0 && _satsumaDriveTrain.gear != 1 && _satsumaDriveTrain.gear != sixGearsMod.rememberGear && _satsumaDriveTrain.gear > sixGearsMod.rememberGear && _satsumaDriveTrain.rpm > 3500f && Mathf.Round(_satsumaDriveTrain.differentialSpeed) > 30f)
                {
                    soundControllerMod._bovSound.GetComponent <AudioSource>().PlayOneShot(soundControllerMod._sfxSounds[soundControllerMod.bovChoice], .1f); // We play the BOV sound with the volume.
                    sixGearsMod.rememberGear = _satsumaDriveTrain.gear;                                                                                      // We get the current gear and store it as the last used gear.
                }
                else
                {
                    sixGearsMod.rememberGear = _satsumaDriveTrain.gear; // We get the new gear as the last remembered.
                }
                if (uiHandler.statsPanel.activeSelf)
                {
                    //Add all text updates...
                    uiHandler.currentHP.text         = "Current Power: " + Mathf.Round(_satsumaDriveTrain.currentPower).ToString();
                    uiHandler.currentSpeed.text      = "Speed: " + Mathf.Round(_satsumaDriveTrain.differentialSpeed).ToString();
                    uiHandler.currentRPM.text        = "RPM: " + Mathf.Round(_satsumaDriveTrain.rpm).ToString();
                    uiHandler.currentEngineTemp.text = "Engine temp: " + Mathf.Round(engineFixerMod._engineTemp.Value).ToString();

                    if (enableEngineFixer)
                    {
                        uiHandler.wearAlternator.text  = "Alternator: " + WearStatus(uiHandler.wearAlternator, engineFixerMod._wearAlternator, 100f);
                        uiHandler.wearCrankshaft.text  = "Crankshaft: " + WearStatus(uiHandler.wearCrankshaft, engineFixerMod._wearCrankshaft, 100f);
                        uiHandler.wearGearbox.text     = "Gearbox: " + WearStatus(uiHandler.wearGearbox, engineFixerMod._wearGearbox, 100f);
                        uiHandler.wearHeadgasket.text  = "Headgasket: " + WearStatus(uiHandler.wearHeadgasket, engineFixerMod._wearHeadgasket, 100f);
                        uiHandler.wearPiston1.text     = "Piston1: " + WearStatus(uiHandler.wearPiston1, engineFixerMod._wearPiston1, 100f);
                        uiHandler.wearPiston2.text     = "Piston2: " + WearStatus(uiHandler.wearPiston2, engineFixerMod._wearPiston2, 100f);
                        uiHandler.wearPiston3.text     = "Piston3: " + WearStatus(uiHandler.wearPiston3, engineFixerMod._wearPiston3, 100f);
                        uiHandler.wearPiston4.text     = "Piston4: " + WearStatus(uiHandler.wearPiston4, engineFixerMod._wearPiston4, 100f);
                        uiHandler.wearRockershaft.text = "Rockershaft: " + WearStatus(uiHandler.wearRockershaft, engineFixerMod._wearRockershaft, 100f);
                        uiHandler.wearStarter.text     = "Starter: " + WearStatus(uiHandler.wearStarter, engineFixerMod._wearStarter, 100f);
                        uiHandler.wearWaterpump.text   = "Waterpump: " + WearStatus(uiHandler.wearWaterpump, engineFixerMod._wearWaterpump, 100f);

                        uiHandler.oilLevel.text    = "Oil: " + WearStatus(uiHandler.oilLevel, engineFixerMod._oilLevel, 3f);
                        uiHandler.satsumaFuel.text = "Fuel: " + WearStatus(uiHandler.satsumaFuel, engineFixerMod._satsumaFuel, 36f);
                        if (engineFixerMod._racingWater != null)
                        {
                            uiHandler.racingWater.text = "Water: " + WearStatus(uiHandler.racingWater, engineFixerMod._racingWater, 7f);
                        }
                        uiHandler.brakeFluidF.text = "Brake F: " + WearStatus(uiHandler.brakeFluidF, engineFixerMod._brakeFluidF, 1f);
                        uiHandler.brakeFluidR.text = "Brake R: " + WearStatus(uiHandler.brakeFluidR, engineFixerMod._brakeFluidR, 1f);
                        uiHandler.cluthFluid.text  = "Clutch F: " + WearStatus(uiHandler.cluthFluid, engineFixerMod._cluthFluid, .5f);
                    }
                }
            }

            string WearStatus(Text obj, FsmFloat wear, float max)
            {
                string returnString    = "";
                int    _wearPercentage = CalcPercentage(wear.Value, max);
                int    _colorFixer     = 0;

                if (_wearPercentage > 99)
                {
                    _colorFixer = 9;
                }
                else
                if (_wearPercentage.ToString().Contains("-"))
                {
                    _colorFixer = 0;
                }
                else
                {
                    _colorFixer = _wearPercentage;
                }

                if (_wearPercentage.ToString().Contains("-"))
                {
                    returnString = "UNACCESSABLE";
                }
                else
                {
                    returnString = _wearPercentage.ToString() + "%";
                }

                obj.color = ColorFromGradient(float.Parse(_colorFixer.ToString().Insert(0, "0.")));

                return(returnString);
            }

            Color ColorFromGradient(float value)  // float between 0-1
            {
                return(gradient.Evaluate(value));
            }

            int CalcPercentage(float val, float max)
            {
                int value = Mathf.RoundToInt((val / max) * 100f);

                return(value);
            }
        }