0 of 0

File information

Last updated

Original upload

Created by

ELS122

Uploaded by

ELS122

Virus scan

Safe to use

72 comments

  1. uselessmoron
    uselessmoron
    • member
    • 2 kudos
    For some reason this mod only works when:
    Having saved the game at Teimo's Toilet with your vehicle you want to fill at the pumps:

    1. Freshly loaded up MSC.
    2. Load your save.
    3. Teimo's shop is open.

    It will work.  If you reload a save without first closing MSC and then reloading MSC and then reloading your save, the mod won't work.

    I'm trying to work out why but it's testing the limits of my brain's abilities due to my being a casual tinkerer.
  2. SomSheet
    SomSheet
    • member
    • 0 kudos
    mod broken - 

    DO NOT CLICK ON PUMPS IF TAIMO IS NOT OPEN - WILL BUG your hands
  3. Chanse1629
    Chanse1629
    • member
    • 0 kudos
    not work
    1. Valent1nus1
      Valent1nus1
      • member
      • 0 kudos
      press f
  4. ItsjustmeNM
    ItsjustmeNM
    • supporter
    • 0 kudos
    This mod is no longer supported it seems as using it will just cause bugs.
  5. aspe20
    aspe20
    • member
    • 0 kudos
    This mod no longer works.
  6. deleted126766383
    deleted126766383
    • account closed
    • 0 kudos
    i cant close the filler cap now
  7. terrier2603
    terrier2603
    • member
    • 7 kudos
    basically required if you are going to use the gifu lmfao
  8. yvesn
    yvesn
    • member
    • 3 kudos
    way better than just constantly manually fuelling gifu
  9. worked for a while then stopped anyone can help ?
  10. uselessmoron
    uselessmoron
    • member
    • 2 kudos
    If you could fix this mod that would be much appreciated or upload the source to github so I can play with it :P
    1. ELS122
      ELS122
      • member
      • 52 kudos
      Here you go:

      using MSCLoader;
      using UnityEngine;
      using System.Linq;
      using HutongGames.PlayMaker;
      using HutongGames.PlayMaker.Actions;
      using RaycastCore;

      namespace AutoFuel
      {
       public class FuelingTrigger : MonoBehaviour
       {
       public PistolAutoFuelController pistolController;
       public PlayMakerFSM fuelingFsm;
       public FsmFloat fuelLevel;
       public FsmString fuelType;
       public FsmString fluidType;
       public FsmString name;
       public FsmGameObject fluidTrigger;
       public FsmGameObject vehicleGUI;
       public FsmGameObject vehicleTank;
       public FsmBool pouring;
       public FsmFloat maxCapacity;

       public FsmFloat tankFuelLevel;
       public FsmFloat tankFluidSpecific;

       public FsmFloat fluidTriggerFluidLevel;
       public float fillSpeed;
       public SphereCollider collider;
       public Transform pouringSound;
       public Transform disabledAudioParent;
       public Transform enabledAudioParent;
       public PlayMakerFSM screwFsm;

       public bool filling;
       public bool wasFilling;

       public PlayMakerFSM fluidTriggerFsm;
       public FsmGameObject pump;
       public PlayMakerFSM tankFsm;
       public FsmString fuelType2;


       public FsmBool pour;
       public Vector3 nozzlePlace;
       public Vector3 nozzleRotation;


       public void Start()
       {
      fuelingFsm = GetComponent();
      fuelLevel = fuelingFsm.FsmVariables.FindFsmFloat("FuelLevel");
      fuelType = fuelingFsm.FsmVariables.FindFsmString("FuelType");
      fuelType2 = fuelingFsm.FsmVariables.FindFsmString("FuelType2");
      fluidType = fuelingFsm.FsmVariables.FindFsmString("FluidType");
      name = fuelingFsm.FsmVariables.FindFsmString("Name");
      fluidTrigger = fuelingFsm.FsmVariables.FindFsmGameObject("FluidTrigger");
      vehicleGUI = fuelingFsm.FsmVariables.FindFsmGameObject("VehicleGUI");
      vehicleTank = fuelingFsm.FsmVariables.FindFsmGameObject("VehicleTank");
      pouring = fuelingFsm.FsmVariables.FindFsmBool("Pouring");
      maxCapacity = fuelingFsm.FsmVariables.FindFsmFloat("MaxCapacity");
      GameObject.Find("FuelPouringSound");
      tankFsm = vehicleTank.Value.GetComponent();
      tankFuelLevel = tankFsm.FsmVariables.FindFsmFloat("FuelLevel");
      fuelingFsm.enabled = false;
      collider = transform.GetComponent();
      pouringSound = (fuelingFsm.FsmStates.FirstOrDefault((FsmState state) => state.Name == "Jerry can").Actions[1] as SetParent).gameObject.GameObject.Value.transform;
      enabledAudioParent = (fuelingFsm.FsmStates.FirstOrDefault((FsmState state) => state.Name == "Jerry can").Actions[1] as SetParent).parent.Value.transform;
      disabledAudioParent = (fuelingFsm.FsmStates.FirstOrDefault((FsmState state) => state.Name == "State 4").Actions[0] as SetParent).parent.Value.transform;
      screwFsm = transform.parent.GetComponent();
       }
       public void Update()
       {
      if (tankFuelLevel.Value >= (maxCapacity.Value - ((pistolController != null && pistolController.autoMode) ? 0.4f : 0)) || !(pouring == null || pouring.Value))
       filling = false;

      if (filling)
      {
       if(!wasFilling && pour != null)
       pour.Value = true;
       wasFilling = true;

       tankFuelLevel.Value += fillSpeed * Time.deltaTime;
       if (fluidTriggerFluidLevel != null)
       fluidTriggerFluidLevel.Value -= fillSpeed * Time.deltaTime;
       if (tankFluidSpecific != null)
       tankFluidSpecific.Value += fillSpeed * Time.deltaTime;
       fuelLevel.Value = tankFuelLevel.Value;


       if (cInput.GetButtonDown("Use") && pistolController?.autoMode == false)
      SetupAutoMode();
       
      }
      else if (wasFilling)
      {
       wasFilling = false;

       if (pour != null)
       pour.Value = false;

       if(pump != null)
      {
       MasterAudio.StopAllOfSound("Store");
       MasterAudio.PlaySound3DAndForget("Store", pump.Value.transform, false, 1f, null, 0f, "fueling_3");
       }
       pouringSound.parent = disabledAudioParent;
       pouringSound.localPosition = Vector3.zero;
       pouringSound.localEulerAngles = Vector3.zero;
      }
       }
       public void SetupAutoMode()
       {
      pistolController.Setup(transform.parent.parent, nozzlePlace, nozzleRotation, Vector3.one, (LayerMask)0);

      collider.radius = 0.1f;

      vehicleGUI.Value.SetActive(false);
      if (screwFsm != null)
       screwFsm.enabled = false;
       }
       public void ResetAutoMode()
       {
      collider.radius = 0.03f;
      OnTriggerExit();
      if (screwFsm != null)
       screwFsm.enabled = true;
       }

       public void OnTriggerEnter(Collider col)
       {
      if (col.tag == "Trigger")
      {
       fluidTrigger.Value = col.gameObject;
       fluidTriggerFsm = fluidTrigger.Value.GetComponent();

       fluidType.Value = "Fluid" + fluidTriggerFsm?.FsmVariables.FindFsmString("FluidType")?.Value;
       name.Value = fluidTrigger.Value.name;
       if (fluidType.Value == fuelType.Value || (fuelType2 != null && fluidType.Value == fuelType2.Value))
       {
       switch (name.Value)
       {
      case "FluidTrigger":
       // sounds
       pouring = fluidTriggerFsm.FsmVariables.GetFsmBool("Pouring");
       pump = null;
       fluidTriggerFluidLevel = fluidTriggerFsm.FsmVariables.FindFsmFloat("Fluid");
       fillSpeed = 0.7f;
       tankFluidSpecific = tankFsm.FsmVariables.FindFsmFloat(fluidType.Value);
       filling = true;
       
       vehicleGUI.Value.SetActive(true);
       pouringSound.parent = enabledAudioParent;
       pouringSound.localPosition = Vector3.zero;
       pouringSound.localEulerAngles = Vector3.zero;
       break;
      case "FuelNozzle":

       // sounds
       pistolController = fluidTrigger.Value.GetComponent();
       pistolController.currentTrigger = this;
       pour = fluidTriggerFsm.FsmVariables.GetFsmBool("Pour");
       pouring = null;
       pump = fluidTriggerFsm.FsmVariables.FindFsmGameObject("Pump");
       fluidTriggerFluidLevel = fluidTriggerFsm.FsmVariables.FindFsmFloat("Fluid");
       fillSpeed = 0.85f;
       tankFluidSpecific = tankFsm.FsmVariables.FindFsmFloat(fluidType.Value);
       filling = true;
       if(pistolController?.autoMode == false)
       vehicleGUI.Value.SetActive(true);
       break;

       }
       }
      }
       }

       public void OnDisable()
        {
      wasFilling = false;
      filling = false;

      if (pour != null)
       pour.Value = false;
      if (pump != null)
      {
       MasterAudio.StopAllOfSound("Store");
       MasterAudio.PlaySound3DAndForget("Store", pump.Value.transform, false, 1f, null, 0f, "fueling_3");
      }
      vehicleGUI.Value.SetActive(false);
      pouringSound.parent = disabledAudioParent;
      pouringSound.localPosition = Vector3.zero;
      pouringSound.localEulerAngles = Vector3.zero;

       }

       public void OnTriggerExit()
       {
      vehicleGUI.Value.SetActive(false);
      filling = false;
       }
       }
       public class PistolAutoFuelController : MonoBehaviour
      {
       public PistolHandTriggerController handTrigger;
       public Transform ogParent;
       public GameObject hand;
       public float distanceThreshold = 0.8f;
       public FsmBool guiUse = PlayMakerGlobals.Instance.Variables.GetFsmBool("GUIuse");
       public FsmString guiText = PlayMakerGlobals.Instance.Variables.GetFsmString("GUIinteraction");
       public FsmBool handLeft = PlayMakerGlobals.Instance.Variables.GetFsmBool("PlayerHandLeft");
       public GameObject nozzleObject;
       public bool autoMode;
       public CapsuleCollider collider;
       public FuelingTrigger currentTrigger;
       public void Start()
        {
      nozzleObject = transform.parent.gameObject;
      collider = transform.GetComponent();
      handTrigger.continueAutoMode += SetupNozzle;
       }
       public void Setup(Transform newParent, Vector3 position, Vector3 rotation, Vector3 scale, LayerMask layer)
        {
      this.newParent = newParent;
      this.position = position;
      this.rotation = rotation;
      this.scale = scale;
      this.layer = layer;

      handTrigger.EnterAutoMode();
       }
       public Transform newParent;
       public Vector3 position;
       public Vector3 rotation;
       public Vector3 scale;
       public LayerMask layer;
       public void SetupNozzle()
        {
      collider.radius = 0.25f;
      gameObject.layer = layer;
      autoMode = true;
      nozzleObject.transform.parent = newParent;
      nozzleObject.layer = layer;
      nozzleObject.transform.localScale = scale;
      nozzleObject.transform.localEulerAngles = rotation;
      nozzleObject.transform.localPosition = position;
       }
       public void Reset()
       {
      collider.radius = 0.08f;
      gameObject.layer = (LayerMask)16;
      autoMode = false;
      nozzleObject.transform.parent = ogParent;
      nozzleObject.layer = (LayerMask)20;
      nozzleObject.transform.localScale = new Vector3(-1f, 1f, 1f);
      nozzleObject.transform.localEulerAngles = Vector3.zero;
      nozzleObject.transform.localPosition = Vector3.zero;

      handTrigger.ExitAutoMode();
       

      if(currentTrigger != null)
       currentTrigger.ResetAutoMode();
       }
       public void OnRaycastEnter(RaycastHit hit) => PlayerRaycast.Instance.IsInRange(hit, distanceThreshold);
       public void OnRaycastStay(RaycastHit hit)
       {
      if (PlayerRaycast.Instance.IsInRange(hit, distanceThreshold) && autoMode)
      {
       if (!handLeft.Value)
      {
       guiUse.Value = true;
       guiText.Value = "PICK NOZZLE";
       if (Input.GetMouseButtonDown(0))
       {
      Reset();
      OnRaycastExit(hit);
       }
       }
       if(!didSetActive)
       currentTrigger.vehicleGUI.Value.gameObject.SetActive(true);
       didSetActive = true;
      }
       }
       public bool didSetActive;
       public void OnRaycastExit(RaycastHit hit)
       {
      if(PlayerRaycast.Instance.IsInRange(hit, distanceThreshold))
      {
       guiUse.Value = false;
       guiText.Value = "";
       if(didSetActive)
       currentTrigger.vehicleGUI.Value.gameObject.SetActive(false);
       didSetActive = false;
      }
       }
       }
       

       public class PistolHandTriggerController : MonoBehaviour
      {
       public PistolAutoFuelController autoFuelController;
       public PlayMakerFSM useFsm;
       public FsmBool guiUse = PlayMakerGlobals.Instance.Variables.GetFsmBool("GUIuse");
       public FsmString guiText = PlayMakerGlobals.Instance.Variables.GetFsmString("GUIinteraction");
       public FsmBool handLeft = PlayMakerGlobals.Instance.Variables.GetFsmBool("PlayerHandLeft");
       public delegate void ContinueAutoMode();
       public event ContinueAutoMode continueAutoMode;

       public GameObject cops;
       public void Start()
        {
      useFsm = GetComponent();
      fuelingAnim = GameObject.Find("PLAYER/Pivot/AnimPivot/Camera/FPSCamera/FPSCamera/Fuel").transform.GetChild(0).GetComponent();
      cost = useFsm.FsmVariables.FindFsmFloat("Cost");
      distanceFromPump = useFsm.FsmVariables.FindFsmFloat("Distance");
      fuel = useFsm.FsmVariables.FindFsmFloat("Fuel");
      fuelPrice = useFsm.FsmVariables.FindFsmFloat("FuelPrice");
      cops = (useFsm.FsmStates.FirstOrDefault((FsmState state) => state.Name == "Check lock").Actions[0] as IsActive).gameObject.Value;
      storeOpen = GameObject.Find("STORE").GetComponents()[1].FsmVariables.FindFsmBool("OpenStore");
      switchLock = GameObject.Find("STORE").transform.GetChild(6).GetChild(25).GetChild(2).GetChild(1).GetComponent().FsmVariables.FindFsmBool("SwitchOn");
      fuelPurchaseCost = useFsm.FsmVariables.FindFsmGameObject("CashRegister").Value.GetComponent().FsmVariables.FindFsmFloat("FuelPurchase");
      pistolOnPump = useFsm.FsmVariables.FindFsmGameObject("Pistol");
      pistolInHand = useFsm.FsmVariables.FindFsmGameObject("PistolInHand");
      hand = useFsm.FsmVariables.FindFsmGameObject("FuelHand");
      literText = transform.parent.GetChild(1).GetChild(0).GetComponent();
      priceText = transform.parent.GetChild(1).GetChild(1).GetComponent();

      useFsm.enabled = false;
       }
       public FsmBool storeOpen;
       public FsmBool switchLock;
       public float distanceThreshold = 1f;
       public FsmGameObject pistolOnPump;
       public FsmGameObject pistolInHand;
       public FsmGameObject hand;

       public FsmFloat fuel;
       public FsmFloat fuelPrice;
       public FsmFloat cost;
       public float previousPrice;
       public FsmFloat fuelPurchaseCost;

       public TextMesh literText;
       public TextMesh priceText;
       public Animation fuelingAnim;
       public bool calculateFuel;
       public FsmFloat gasStatistic;
       public float previousLiters;
       public FsmFloat distanceFromPump;
       public float maxDistance = 3f;
       public void Update()
        {
      if (calculateFuel)
      {
       cost.Value = fuel.Value * fuelPrice.Value;
       literText.text = $"{(fuel.Value * 10f):0000}";
       priceText.text = $"{cost.Value:0000}";

       if(cost.Value > previousPrice)
       fuelPurchaseCost.Value += (cost.Value - previousPrice);
       previousPrice = cost.Value;

       if(gasStatistic != null && fuel.Value > previousLiters)
       gasStatistic.Value += (fuel.Value - previousLiters);
       previousLiters = fuel.Value;

       distanceFromPump.Value = Vector3.Distance(transform.position, pistolInHand.Value.transform.position);
       if(distanceFromPump.Value >= maxDistance)
       DropNozzle();
      }

      if (!animationPlayed && !fuelingAnim.IsPlaying("fueling_pistol_drop"))
      {
       animationPlayed = true;
       if (!intoAutoMode)
       FinishDroppingNozzle();
       else
       FinishAutoMode();
       intoAutoMode = false;
      }
       }

       public bool animationPlayed;
       public bool intoAutoMode;
       public void FinishDroppingNozzle()
       {
      MasterAudio.PlaySound3DAtTransformAndForget("Store", transform, 1f, null, 0f, "fueling_nozzle");

      calculateFuel = false;
      pistolInHand.Value.SetActive(false);
      pistolOnPump.Value.SetActive(true);
      hand.Value.SetActive(false);
      handLeft.Value = false;
       }
       public void FinishAutoMode()
        {
      hand.Value.SetActive(false);
      handLeft.Value = false;
      continueAutoMode?.Invoke();
       }
       public void EnterAutoMode()
        {
      intoAutoMode = true;
      fuelingAnim.Play("fueling_pistol_drop", AnimationPlayMode.Stop);

      animationPlayed = false;
        }
       public void ExitAutoMode()
       {
      handLeft.Value = true;
      hand.Value.SetActive(true);
       }
       public void PickNozzle()
        {
      handLeft.Value = true;
      hand.Value.SetActive(true);
      pistolOnPump.Value.SetActive(false);
      pistolInHand.Value.SetActive(true);
       }
       public void DropNozzle()
       {
      if (autoFuelController.autoMode)
      {
       autoFuelController.Reset();
       FinishDroppingNozzle();
      }
      else
      {
       fuelingAnim.Play("fueling_pistol_drop", AnimationPlayMode.Stop);
       animationPlayed = false;
      }
       }
       public void OnRaycastEnter(RaycastHit hit) => PlayerRaycast.Instance.IsInRange(hit, distanceThreshold);
       public void OnRaycastStay(RaycastHit hit)
       {
      if (PlayerRaycast.Instance.IsInRange(hit, distanceThreshold))
      {
       if(!autoFuelController.autoMode)
      {
       if (calculateFuel)
       {

      guiUse.Value = true;
      guiText.Value = "DROP NOZZLE";
      if (Input.GetMouseButtonDown(0))
      {
       guiUse.Value = false;
       guiText.Value = "";
       DropNozzle();
      }
       }
       else
       {
      if (!handLeft.Value)
      {
       guiUse.Value = true;
       guiText.Value = "PICK NOZZLE";
       if (Input.GetMouseButtonDown(0))
       {
       if ((storeOpen.Value || !switchLock.Value) && !cops.activeSelf)
       {
      MasterAudio.PlaySound3DAtTransformAndForget("Store", transform, 1f, null, 0f, "fueling_nozzle");
      PickNozzle();
      guiUse.Value = false;
      guiText.Value = "";

      calculateFuel = true;
       }
       else
      MasterAudio.PlaySound3DAtTransformAndForget("Store", transform, 0.4f, null, 0f, "door_locked");
       }
      }
       }
       }
      }
       }
       public void OnRaycastExit(RaycastHit hit)
       {
      if (PlayerRaycast.Instance.IsInRange(hit, distanceThreshold))
      {
       guiUse.Value = false;
       guiText.Value = "";
      }
       }
       }
      public class AutoFuel : Mod
      {
        public override string ID => "AutoFuel";
        public override string Name => "AutoFuel";
        public override string Author => "ELS";
        public override string Version => "1.1";

        public override bool UseAssetsFolder => false;

       public FuelingTrigger AddFuelTrigger(Transform fuelFiller)
        {
      FuelingTrigger ft = fuelFiller?.GetChild(fuelFiller.childCount - 1).GetChild(1)?.gameObject?.AddComponent();
      if (ft != null)
      {
      switch (ft.gameObject.name)
      {
       case "CapTrigger_FuelSatsuma":
      ft.nozzlePlace = new Vector3(-0.012f, 0.1f, 0.019f);
      ft.nozzleRotation = new Vector3(90f, 0f, 0f);
      break;
       case "CapTrigger_FuelHayosiko":
      ft.nozzlePlace = new Vector3(-0.09f, 0.1f, 0.01f);
      ft.nozzleRotation = new Vector3(70f, 180f, 0);
      break;
       case "CapTrigger_FuelGifu":
      ft.nozzlePlace = new Vector3(-0.13f, -0.05f, -0.05f);
      ft.nozzleRotation = new Vector3(30f, 270f, 180f);
      break;
       case "CapTrigger_FuelRuscko":
      ft.nozzlePlace = new Vector3(0.11f, 0f, -0.05f);
      ft.nozzleRotation = new Vector3(0f, 300f, 270f);
      break;
       case "CapTrigger_FuelKekmet":
      ft.nozzlePlace = new Vector3(-0.09f, -0.03f, -0.05f);
      ft.nozzleRotation = new Vector3(30f, 270f, 180f);
      break;
       case "CapTrigger_FuelCombine":
      ft.nozzlePlace = new Vector3(0.07f, -0.028f, -0.01f);
      ft.nozzleRotation = new Vector3(0f, 270f, 180f);
      break;
       case "CapTrigger_FuelFerndale":
      ft.nozzlePlace = new Vector3(-0.13f, 0.02f, 0f);
      ft.nozzleRotation = new Vector3(90f, 90f, 0);
      break;
       }
      }
      return ft;
       }
       public PistolAutoFuelController AddAutoFuelController(GameObject fuelingTrigger, GameObject pumpTrigger, Transform hand, FsmFloat statistic = null)
        {
      try
      {
       PlayMakerFSM pumpTriggerFsm = pumpTrigger.GetComponent();
       pumpTriggerFsm.FsmStates.Initialize();
       (pumpTriggerFsm.FsmStates[3].Actions[11] as GetDistance).target = fuelingTrigger.transform.parent.gameObject;
       PistolAutoFuelController autoFuelController = fuelingTrigger.AddComponent();
       autoFuelController.hand = hand.gameObject;
       autoFuelController.ogParent = fuelingTrigger.transform.parent.parent;
       PistolHandTriggerController handTrigger = pumpTrigger.AddComponent();
       handTrigger.gasStatistic = statistic;
       handTrigger.autoFuelController = autoFuelController;
       autoFuelController.handTrigger = handTrigger;
       return autoFuelController;
      }
      catch
      {
       return null;
      }
       }

        public override void SecondPassOnLoad()
        {
      Transform hand = GameObject.Find("PLAYER/Pivot/AnimPivot/Camera/FPSCamera/FPSCamera/Fuel").transform.GetChild(0);
      Transform nozzles = hand.GetChild(0).GetChild(0).GetChild(0).GetChild(0).GetChild(5);
      FsmVariables statistics = GameObject.Find("System")?.transform.GetChild(12)?.GetComponent().FsmVariables;

      AddAutoFuelController(nozzles.GetChild(0).GetChild(0).gameObject, GameObject.Find("Trigger98"), hand, statistics?.FindFsmFloat("PumpGas"));
      AddAutoFuelController(nozzles.GetChild(1).GetChild(0).gameObject, GameObject.Find("TriggerD"), hand, statistics?.FindFsmFloat("PumpDiesel"));
      AddAutoFuelController(nozzles.GetChild(2).GetChild(0).gameObject, GameObject.Find("TriggerPÖ"), hand);

      Transform[] fuelFillers = (from x in Resources.FindObjectsOfTypeAll() where x.name.Contains("FuelFiller") select x)?.ToList()?.ToArray();
      foreach (Transform fuelFiller in fuelFillers)
       AddFuelTrigger(fuelFiller);
       }
       public override bool SecondPass => true;
      }
      }



    2. uselessmoron
      uselessmoron
      • member
      • 2 kudos
      Oh wow, thank you.
      It is too hard for you to fix?  I'm sort of getting my head around how it works but it's all those getchild's that are quite confusing amongst, well, all of it haha.
    3. ELS122
      ELS122
      • member
      • 52 kudos
      It is impossible for me to fix it because I never experience the problems with the mod that get reported.
      I'm almost starting to think the modloader is sabotaging some of my mods for other players but that's just narcissistic
      nope it doesn't seem like it
    4. uselessmoron
      uselessmoron
      • member
      • 2 kudos
      MSCLoader ERROR: Mod AutoFuel throw an error!
      Details: Transform child out of bounds in AutoFuel.FuelingTrigger AddFuelTrigger(UnityEngine.Transform)
      UnityEngine.UnityException: Transform child out of bounds
        at (wrapper managed-to-native) UnityEngine.Transform:GetChild (int)
        at AutoFuel.AutoFuel.AddFuelTrigger (UnityEngine.Transform fuelFiller) [0x00000] in <filename unknown>:0
        at AutoFuel.AutoFuel.SecondPassOnLoad () [0x00000] in <filename unknown>:0
        at MSCLoader.ModLoader+<LoadModsAsync>d__40.MoveNext () [0x00000] in <filename unknown>:0

      Does that not help at all?  Its aas though its trying to find a non-existant child.  I poked around the hierachy and to my zero experience eye is looks like the line
      switchLock = GameObject.Find("STORE").transform.GetChild(6).GetChild(25).GetChild(2).GetChild(1).GetComponent().FsmVariables.FindFsmBool("SwitchOn");

      could be an issue.  I couldn't find the SwitchOn thing anywhere.  I'm really wanting to help out I'm just not very good at this lol.
    5. ELS122
      ELS122
      • member
      • 52 kudos
      Well I looked into it, and I don't know why this stuff runs for me.
      That object indeed isn't there, the object it should reference is switch_pumps instead

      I guess I just have the mojo version of the modloader, the one that makes it work anyway :D
    6. uselessmoron
      uselessmoron
      • member
      • 2 kudos
      It works!  Nice work man, thank you, much appreciated.  Its onwards for me to fiddle with the next broken mod :P
    7. Holy crap did y'all manage to fix it? If so, that's amazing!