Cities: Skylines

Cities: Skylines

Building Vehicle Monitor
 This topic has been pinned, so it's probably important
kx36  [developer] 3 May, 2020 @ 10:09am
BUG REPORTS
Please post any bug reports here
Last edited by kx36; 3 May, 2020 @ 10:09am
< >
Showing 1-15 of 15 comments
Kage 11 Jun, 2020 @ 6:10pm 
All works fine in regular game mode, alongside other mods, but:

Asset editor > new > temperate (theme) > loading > (map and ui initialized) > ...

ModException: The Mod D:\Steam\steamapps\workshop\content\255710\2051693155 [BuildingVehicleManager.dll] has caused an error ---> System.NullReferenceException: Object reference not set to an instance of an object
at BuildingVehicleManager.Loading.SetupClickTrigger (System.String panelName, System.String labelName) [0x00000] in <filename unknown>:0
at BuildingVehicleManager.Loading.OnLevelLoaded (LoadMode mode) [0x00000] in <filename unknown>:0
at LoadingWrapper.OnLevelLoaded (UpdateMode mode) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---

I can still edit assets afterwards. Then when I close the editor to go back to the main menu, another mod error pops up:

ModException: The Mod D:\Steam\steamapps\workshop\content\255710\1658679290 [ForestBrush.dll] has caused an error ---> System.NullReferenceException:
at (wrapper managed-to-native) UnityEngine.Component:get_gameObject ()
at ForestBrush.ForestBrush.CleanUp () [0x00000] in <filename unknown>:0
at ForestBrush.UserMod.UninstallMod () [0x00000] in <filename unknown>:0
at ForestBrush.UserMod.OnLevelUnloading () [0x00000] in <filename unknown>:0
at LoadingWrapper.OnLevelUnloading () [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---

I don't know if that's the issue or your mod.
Last edited by Kage; 11 Jun, 2020 @ 6:23pm
kx36  [developer] 12 Jun, 2020 @ 2:36am 
Thanks for the detailed bug report, it was really helpful!

The stack trace at the top was a bug in my code which I have now fixed. Can't attach my mod to building panels in editor modes that don't have building panels. I should have checked for that and now I am doing so.

The stack trace at the bottom about the Forrest Brush mod may be completely unrelated to my mod or it might just be because the game had already had one error. Once you've had one error, you'll probably get a lot of other errors until you restart the game.

I use that Forrest Brush mod too and I have incidentally found when viewing the logs that Forrest Brush throws an absolute ton of NullReferenceExceptions, although the game handles most of them and hides them from the player. It's a really useful mod but it is buggy.

Thanks again.
Last edited by kx36; 12 Jun, 2020 @ 2:49am
M.S.Referee 24 Jun, 2020 @ 9:03am 
After change the language in-game, when check any text of buildings nothing happend.

Building Vehicle Manager should use function like this mod no affect by change language in-game. They are same check text to trigger panel.
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=1739993783&searchtext=CargoInfo

Or make a icon, hotkey for it. To use a icon to trigger will good.
Last edited by M.S.Referee; 24 Jun, 2020 @ 9:07am
M.S.Referee 29 Jul, 2020 @ 10:41pm 
And after testing, Building Vehicle Manager incompatible with
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=1739993783

When "Cargo Info Fix" mod be triggered once, and then when you check any text of service building, warehouse and others, "Building Vehicle Manager" lost ability and can't trigger panel.
Last edited by M.S.Referee; 29 Jul, 2020 @ 10:42pm
kx36  [developer] 2 Aug, 2020 @ 3:45am 
@M.S.Referee I am struggling to replicate either of your issues.

Issue 1. can't load Building Vehicle Manager panel when language changed
I've tried switching between english, german, french and chinese both in game and at the main menu and it all worked fine for me.

Issue 2. Incompatibility with Cargo Info
I get the Cargo Info panel when i click on freight train stations, I get the Building Vehicle Manager panel when i click on warehouses. I can go back and forth between the 2 with no problem.

What happens if you turn off all other mods except these two? still the same?

I will try to get in contact with the original author of Cargo Info and discuss.
M.S.Referee 2 Aug, 2020 @ 10:14am 
The problem of change language in-game made by unfixed "Transport Lines Manager" before. Now Klyte45 have updated and fixed that problem.

And Incompatibility with Cargo Info problem, before I build Cargo Train Station, Building Vehicle Manager work fine. And after build Cargo Train Station and click window of Cargo Info once, then Building Vehicle Manager lost ability and can't trigger panel.

I guess some mods may affect that:
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=816260433&searchtext=MetroOverhaul
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=1764208250&searchtext=More+Vehicles
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=451376483&searchtext=MMC+Multi+monitor+Cities
https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=1420955187&searchtext=Real+time
Last edited by M.S.Referee; 2 Aug, 2020 @ 10:15am
Lost Nomad 20 Nov, 2020 @ 10:30am 
Cashes the game by raising a SIGILL exception in TM:PE. This is on linux, I have not checked if it crashes the windows game client.

Simulation error: SIGILL
at TrafficManager.Custom.AI.CustomPassengerCarAI.FindParkingSpaceProp (Boolean isElectric, UInt16 ignoreParked, .PropInfo info, Vector3 position, Single angle, Boolean fixedHeight, Vector3 refPos, Single width, Single length, System.Single& maxDistance, UnityEngine.Vector3& parkPos, UnityEngine.Quaternion& parkRot) [0x00000] in <filename unknown>:0
at TrafficManager.Manager.Impl.AdvancedParkingManager+<>c__DisplayClass27_0.<FindParkingSpaceBuilding>g__LoopHandler|0 (Int32 i, Int32 j) [0x00000] in <filename unknown>:0
at TrafficManager.Util.LoopUtil+<>c__DisplayClass1_0.<SpiralLoop>b__0 (Int32 x, Int32 y) [0x00000] in <filename unknown>:0
at TrafficManager.Util.LoopUtil.SpiralLoop (Int32 width, Int32 height, TrafficManager.Util.TwoDimLoopHandler handler) [0x00000] in <filename unknown>:0
at TrafficManager.Util.LoopUtil.SpiralLoop (Int32 xCenter, Int32 yCenter, Int32 width, Int32 height, TrafficManager.Util.TwoDimLoopHandler handler) [0x00000] in <filename unknown>:0
at TrafficManager.Manager.Impl.AdvancedParkingManager.FindParkingSpaceBuilding (.VehicleInfo vehicleInfo, UInt16 homeID, UInt16 ignoreParked, UInt16 segmentId, Vector3 refPos, Single maxBuildingDistance, Single maxParkingSpaceDistance, Boolean randomize, UnityEngine.Vector3& parkPos, UnityEngine.Quaternion& parkRot, System.Single& parkOffset) [0x00000] in <filename unknown>:0
at TrafficManager.Manager.Impl.AdvancedParkingManager.FindParkingSpaceInVicinity (Vector3 targetPos, Vector3 searchDir, .VehicleInfo vehicleInfo, UInt16 homeId, UInt16 vehicleId, Single maxDist, TrafficManager.API.Traffic.Enums.ExtParkingSpaceLocation& parkingSpaceLocation, System.UInt16& parkingSpaceLocationId, UnityEngine.Vector3& parkPos, UnityEngine.Quaternion& parkRot, System.Single& parkOffset) [0x00000] in <filename unknown>:0
at TrafficManager.Manager.Impl.AdvancedParkingManager.TryMoveParkedVehicle (UInt16 parkedVehicleId, .VehicleParked& parkedVehicle, Vector3 refPos, Single maxDistance, UInt16 homeId) [0x00000] in <filename unknown>:0
at TrafficManager.Manager.Impl.AdvancedParkingManager+<>c__DisplayClass18_0.<OnCitizenPathFindFailure>b__1 (UInt16 parkedVehId, .VehicleParked& parkedVehicle) [0x00000] in <filename unknown>:0
at CitiesGameBridge.Service.VehicleService.ProcessParkedVehicle (UInt16 parkedVehicleId, GenericGameBridge.Service.ParkedVehicleHandler handler) [0x00000] in <filename unknown>:0
at TrafficManager.Manager.Impl.AdvancedParkingManager.OnCitizenPathFindFailure (UInt16 instanceId, .CitizenInstance& instanceData, TrafficManager.API.Traffic.Data.ExtCitizenInstance& extInstance, TrafficManager.API.Traffic.Data.ExtCitizen& extCitizen) [0x00000] in <filename unknown>:0
at TrafficManager.Manager.Impl.AdvancedParkingManager.UpdateCitizenPathState (UInt16 citizenInstanceId, .CitizenInstance& citizenInstance, TrafficManager.API.Traffic.Data.ExtCitizenInstance& extInstance, TrafficManager.API.Traffic.Data.ExtCitizen& extCitizen, .Citizen& citizen, ExtPathState mainPathState) [0x00000] in <filename unknown>:0
at TrafficManager.Custom.AI.CustomHumanAI.CustomSimulationStep (UInt16 instanceId, .CitizenInstance& instanceData, Vector3 physicsLodRefPos) [0x00000] in <filename unknown>:0
at CitizenManager.SimulationStepImpl (Int32 subStep) [0x00000] in <filename unknown>:0
at SimulationManagerBase`2[Manager,Properties].SimulationStep (Int32 subStep) [0x00000] in <filename unknown>:0
at CitizenManager.ISimulationManager.SimulationStep (Int32 subStep) [0x00000] in <filename unknown>:0
at SimulationManager.SimulationStep () [0x00000] in <filename unknown>:0
at SimulationManager.SimulationThread () [0x00000] in <filename unknown>:0 [Core]

(Filename: /home/builduser/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)
kx36  [developer] 28 Nov, 2020 @ 3:54pm 
Lost Nomad,
Thank you for posting the exception, but I'm afraid I can't see how this mod ties into that crash from the info you provided. It just looks like an exception in TM:PE. This mod doesn't interact with any parking AI.

Chaos,
Thanks, I have removed my very basic implementation of scaling and I'll just leave it to other mods such as ScaleUI to handle scaling. That should fix the bug you were seeing where the BuildingVehicleManager panel was maintaining its size relative to the screen but the contents were scaling based on the setting in ScaleUI.

As for the NullReferenceException, I'm not sure why that happened. I couldn't replicate it, but I have added null checks to everything in that method so it shouldn't happen exactly like that again. When you disabled and re-enabled ScaleUI did you come out of a game to the main menu, disable and re-enable and then go straight back into a game? Doing so is known to cause many exceptions. In this game, it is usually advised you should always quit to desktop, never to main menu.
Last edited by kx36; 28 Nov, 2020 @ 5:22pm
kx36  [developer] 27 Dec, 2020 @ 8:23am 
Thanks, Chaos. That's very helpful.
The panel wasn't always a singleton and I should have removed the Destroy in OnLevelUnloading when I made it one. I have removed that now.

I have also added the Shift+B hotkey, which I hope to make configurable in the future but that's a lot more work so at the moment is hard coded in.

And I have renamed the mod from "Building Vehicle Manager" to "Building Vehicle Monitor" to manage people's expectations as it can't create or modify vehicles, just monitor and delete them.

I am considering publishing the source. Initially I didn't because it was changing too fast, but now it is "finished". Although I have spoken to a few modders who have had their code completely ripped off and republished with a "2" on the end of it by people who justify it by saying the mod is inactive which kinda puts me off.

The advice still stands not to quit to main menu and reload a map, and it's not just my advice, it's long standing community advice to avoid crashes and corrupted savegames. A lot of mods don't handle map loading and unloading gracefully, and I have even seen bugs caused by this in the vanilla game, but the worst offenders are mods which use Detours or Harmony to essentially modify the game's API at runtime by sticking code on the front or back of the game's own methods or replacing those methods entirely. They're very powerful but it's really hard to use these safely. e.g. people end up applying patches on top of patches when you reload a map.
rkumob 22 Feb, 2021 @ 3:25pm 
Having an error when clicking on Cargo Airport

An error has occured in mod's OnUpdate method. Mod name: Building Vehicle Monitor - Monitor a building's associated vehicles. To use, open a building and click on the text which mentions vehicles or use the hotkey Shift+B Assembly: BuildingVehicleManager, Version=1.6.0.28200, Culture=neutral, PublicKeyToken=null Severity: Medium System.NullReferenceException: Object reference not set to an instance of an object at BuildingVehicleManager.SimpleVehicle.Equals (BuildingVehicleManager.SimpleVehicle other) [0x00000] in <filename unknown>:0 at BuildingVehicleManager.SimpleVehicle.Equals (System.Object obj) [0x00000] in <filename unknown>:0 at System.ValueType.DefaultEquals (System.Object o1, System.Object o2) [0x00000] in <filename unknown>:0 at System.ValueType.Equals (System.Object obj) [0x00000] in <filename unknown>:0 at System.Collections.Generic.EqualityComparer`1+DefaultComparer[System.Collections.Generic.KeyValuePair`2[System.UInt16,BuildingVehicleManager.SimpleVehicle]].Equals (KeyValuePair`2 x, KeyValuePair`2 y) [0x00000] in <filename unknown>:0 at System.Linq.Enumerable.Contains[KeyValuePair`2] (IEnumerable`1 source, KeyValuePair`2 value, IEqualityComparer`1 comparer) [0x00000] in <filename unknown>:0 at System.Linq.Enumerable+<CreateExceptIterator>c__Iterator4`1[System.Collections.Generic.KeyValuePair`2[System.UInt16,BuildingVehicleManager.SimpleVehicle]].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable.Any[KeyValuePair`2] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 at BuildingVehicleManager.VehicleHelpers.VehiclesChanged (UInt16 buildingID) [0x00000] in <filename unknown>:0 at BuildingVehicleManager.Checker.OnUpdate (Single realTimeDelta, Single simulationTimeDelta) [0x00000] in <filename unknown>:0 at HealkitMod.Patches.ThreadingWrapperOnUpdatePatch.Prefix (Single realTimeDelta, Single simulationTimeDelta, System.Collections.Generic.List`1 ___m_ThreadingExtensions) [0x00000] in <filename unknown>:0

Prior to selecting a Cargo Airport a Park Maintenance building was selected and its vehicles in monitor window were shown.
Last edited by rkumob; 22 Feb, 2021 @ 3:27pm
buda atum 26 Jan, 2022 @ 12:51pm 
An error has occured in mod's OnUpdate method.
Mod name: Building Vehicle Monitor - Monitor a building's associated vehicles. To use, open a building and click on the text which mentions vehicles or use the hotkey Shift+B
Assembly: BuildingVehicleManager, Version=1.7.0.2078, Culture=neutral, PublicKeyToken=null
Severity: Medium

System.NullReferenceException: Object reference not set to an instance of an object
at BuildingVehicleManager.SimpleVehicle.Equals (BuildingVehicleManager.SimpleVehicle other) [0x00000] in <filename unknown>:0
at BuildingVehicleManager.SimpleVehicle.Equals (System.Object obj) [0x00000] in <filename unknown>:0
at System.ValueType.DefaultEquals (System.Object o1, System.Object o2) [0x00000] in <filename unknown>:0
at System.ValueType.Equals (System.Object obj) [0x00000] in <filename unknown>:0
at System.Collections.Generic.EqualityComparer`1+DefaultComparer[System.Collections.Generic.KeyValuePair`2[System.UInt16,BuildingVehicleManager.SimpleVehicle]].Equals (KeyValuePair`2 x, KeyValuePair`2 y) [0x00000] in <filename unknown>:0
at System.Linq.Enumerable.Contains[KeyValuePair`2] (IEnumerable`1 source, KeyValuePair`2 value, IEqualityComparer`1 comparer) [0x00000] in <filename unknown>:0
at System.Linq.Enumerable+<CreateExceptIterator>c__Iterator4`1[System.Collections.Generic.KeyValuePair`2[System.UInt16,BuildingVehicleManager.SimpleVehicle]].MoveNext () [0x00000] in <filename unknown>:0
at System.Linq.Enumerable.Any[KeyValuePair`2] (IEnumerable`1 source) [0x00000] in <filename unknown>:0
at BuildingVehicleManager.VehicleHelpers.VehiclesChanged (UInt16 buildingID) [0x00000] in <filename unknown>:0
at BuildingVehicleManager.Checker.OnUpdate (Single realTimeDelta, Single simulationTimeDelta) [0x00000] in <filename unknown>:0
at HealkitMod.Patches.ThreadingWrapperOnUpdatePatch.Prefix (Single realTimeDelta, Single simulationTimeDelta, System.Collections.Generic.List`1 ___m_ThreadingExtensions) [0x00000] in <filename unknown>:0
kx36  [developer] 26 Jan, 2022 @ 4:22pm 
Hi buda atum,

Thanks for reporting this bug. Looks like the Airports update has broken something. Could you tell me what you were doing when you got this error? e.g. If it happened when you clicked on a building, what building was it etc.?

I've added extra redundant null reference checks into that method, which might have fixed it, but I would still like this info to help me debug it if possible.

Thanks
Last edited by kx36; 26 Jan, 2022 @ 6:03pm
buda atum 27 Jan, 2022 @ 8:02pm 
Hi kx36. I clicked on the Double Track Cargo Station https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=703597323&searchtext=double+track .

I had a back log of trains spawning and it threw an error. I reset the station and the error went away. I do not think this was airport related. That station has issues of its own.
Appears to be a similar issue to others. Method to reproduce in my case is to click on one of the "bugged" cargo train stations. There are a few vehicles which appear to be trains, which do not have names in the name column - my guess is that these entries with missing names have something to do with it? The error continues to repeat indefinitely and without an Error handling mod it'll force me to restart the game.

Otherwise, the cargo train stations appear to operate just fine. I haven't noticed any issues.

An error has occured in mod's OnUpdate method.
Mod name: Building Vehicle Monitor - Monitor a building's associated vehicles. To use, open a building and click on the text which mentions vehicles or use the hotkey set in the options page.
Assembly: BuildingVehicleManager, Version=1.7.0.2990, Culture=neutral, PublicKeyToken=null
Severity: Medium

System.NullReferenceException: Object reference not set to an instance of an object

at BuildingVehicleManager.SimpleVehicle.Equals (BuildingVehicleManager.SimpleVehicle other) [0x00000] in <filename unknown>:0

at BuildingVehicleManager.SimpleVehicle.Equals (System.Object obj) [0x00000] in <filename unknown>:0

at System.ValueType.DefaultEquals (System.Object o1, System.Object o2) [0x00000] in <filename unknown>:0

at System.ValueType.Equals (System.Object obj) [0x00000] in <filename unknown>:0

at System.Collections.Generic.EqualityComparer`1+DefaultComparer[System.Collections.Generic.KeyValuePair`2[System.UInt16,BuildingVehicleManager.SimpleVehicle]].Equals (KeyValuePair`2 x, KeyValuePair`2 y) [0x00000] in <filename unknown>:0

at System.Linq.Enumerable.Contains[KeyValuePair`2] (IEnumerable`1 source, KeyValuePair`2 value, IEqualityComparer`1 comparer) [0x00000] in <filename unknown>:0

at System.Linq.Enumerable+<CreateExceptIterator>c__Iterator4`1[System.Collections.Generic.KeyValuePair`2[System.UInt16,BuildingVehicleManager.SimpleVehicle]].MoveNext () [0x00000] in <filename unknown>:0

at System.Linq.Enumerable.Any[KeyValuePair`2] (IEnumerable`1 source) [0x00000] in <filename unknown>:0

at BuildingVehicleManager.VehicleHelpers.VehiclesChanged (UInt16 buildingID) [0x00000] in <filename unknown>:0

at BuildingVehicleManager.Checker.OnUpdate (Single realTimeDelta, Single simulationTimeDelta) [0x00000] in <filename unknown>:0

at HealkitMod.Patches.ThreadingWrapperOnUpdatePatch.Prefix (Single realTimeDelta, Single simulationTimeDelta, System.Collections.Generic.List`1 ___m_ThreadingExtensions) [0x00000] in <filename unknown>:0
Last edited by SgtMustang (Slava Ukraini); 17 Apr, 2022 @ 11:53am
kx36  [developer] 27 Apr, 2022 @ 12:42pm 
I have had another go at fixing this SimpleVehile.Equals() bug along. Believe it or not I have been trying to fix it between these error reports. It's just hard when I can't reproduce the bug and I have to wait months to see if someone reports the bug again to know if it's fixed. I've gone for a brute force approach and it now checks literally every nullable variable in that method for null, even things that should be impossible to be null.

Some other bugs fixed too, relating to crashes on quitting to main menu and then opening a level again. But it's still common advice in the Cities:Skylines community not to do this as the base game itself has bugs in in which can crash the game and/or corrupt savegame files. Please always quit to desktop.
< >
Showing 1-15 of 15 comments
Per page: 1530 50