Jump to content

[1.10.1+] Contract Configurator [v1.30.5] [2020-10-05]


nightingale

Recommended Posts

Exception occured while saving ScenarioModule 'ContractVesselTracker':

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

at ContractConfigurator.ContractVesselTracker+<>c__DisplayClass6.<OnSave>b__3 (.Vessel v) [0x00000] in <filename unknown>:0

at System.Collections.Generic.List`1[Vessel].GetIndex (Int32 startIndex, Int32 count, System.Predicate`1 match) [0x00000] in <filename unknown>:0

at System.Collections.Generic.List`1[Vessel].Find (System.Predicate`1 match) [0x00000] in <filename unknown>:0

at ContractConfigurator.ContractVesselTracker.OnSave (.ConfigNode node) [0x00000] in <filename unknown>:0

Link to comment
Share on other sites

New version, fixes all those exceptions! Download now!

Contract Configurator 1.3.4

  • Added support in parameters for completedMessage.
  • Fixed NRE in ContractVesselTracker (thanks Morashtak).
  • Fixed loading of duplicate Contract Types (thanks jakkarth).
  • Fixed issue where random orbits aren't so random (thanks KerbMav).
  • Fixed exception loading SpawnKerbal (thanks mega_newblar).

Link to comment
Share on other sites

New save, same story.

Three orbits for the contract and some extra withoug AP/PE respectively the one inside Kerbin.

Am I generating my orbits wrong?

https://www.dropbox.com/sh/ne0gog5vopgmpui/AACFwVRUOmi4jh4p3GCgBB3oa?dl=0

Everything looks fine. Can you tell what contract it's coming from (the agency should give you a hint). Maybe provide the save file and I'll look at that.

Link to comment
Share on other sites

Still broken for me :(

Exception occured while loading contract 'LSResupply':

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object

at ContractConfigurator.ConfigNodeUtil+<>c__DisplayClass1e.<ParseVesselValue>b__1d (.Vessel v) [0x00000] in <filename unknown>:0

at System.Collections.Generic.List`1[Vessel].GetIndex (Int32 startIndex, Int32 count, System.Predicate`1 match) [0x00000] in <filename unknown>:0

at System.Collections.Generic.List`1[Vessel].Find (System.Predicate`1 match) [0x00000] in <filename unknown>:0

at ContractConfigurator.ConfigNodeUtil.ParseVesselValue (System.String name) [0x00000] in <filename unknown>:0

at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Vessel] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0

at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)

at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0

--- End of inner exception stack trace ---

at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0

at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0

at ContractConfigurator.ConfiguredContract.OnLoad (.ConfigNode node) [0x00000] in <filename unknown>:0

Link to comment
Share on other sites

Still broken for me :(

Exception occured while loading contract 'LSResupply':

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object

at ContractConfigurator.ConfigNodeUtil+<>c__DisplayClass1e.<ParseVesselValue>b__1d (.Vessel v) [0x00000] in <filename unknown>:0

at System.Collections.Generic.List`1[Vessel].GetIndex (Int32 startIndex, Int32 count, System.Predicate`1 match) [0x00000] in <filename unknown>:0

at System.Collections.Generic.List`1[Vessel].Find (System.Predicate`1 match) [0x00000] in <filename unknown>:0

at ContractConfigurator.ConfigNodeUtil.ParseVesselValue (System.String name) [0x00000] in <filename unknown>:0

at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Vessel] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0

at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)

at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0

--- End of inner exception stack trace ---

at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0

at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0

at ContractConfigurator.ConfiguredContract.OnLoad (.ConfigNode node) [0x00000] in <filename unknown>:0

That is an entirely different (and easy to fix) error. Still concerned as it implies issues/exceptions elsewhere in KSP (as it means there's a null vessel in KSP's list of vessels).

Link to comment
Share on other sites

That is an entirely different (and easy to fix) error. Still concerned as it implies issues/exceptions elsewhere in KSP (as it means there's a null vessel in KSP's list of vessels).

Glad to hear it's an easy fix! I thought I had fixed it by running as admin but errors are still popping up. I'm on 64bit though so might be the issue, I'll copy files to my 32bit install in the morning to confirm it's not just 64bit silliness... had absolutely no problem with any other contract pack though, just the space stations.

What is a "null" vessel, and is there any way to find which one it is (so I can delete it).

- - - Updated - - -

Update - I don't even have any current contracts but this just popped up when switching from my station back to KSC.

Exception occured while loading contract 'CrewRotation':

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object

at ContractConfigurator.ConfigNodeUtil+<>c__DisplayClass1e.<ParseVesselValue>b__1d (.Vessel v) [0x00000] in <filename unknown>:0

at System.Collections.Generic.List`1[Vessel].GetIndex (Int32 startIndex, Int32 count, System.Predicate`1 match) [0x00000] in <filename unknown>:0

at System.Collections.Generic.List`1[Vessel].Find (System.Predicate`1 match) [0x00000] in <filename unknown>:0

at ContractConfigurator.ConfigNodeUtil.ParseVesselValue (System.String name) [0x00000] in <filename unknown>:0

at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Vessel] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0

at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)

at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0

--- End of inner exception stack trace ---

at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0

at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0

at ContractConfigurator.ConfiguredContract.OnLoad (.ConfigNode node) [0x00000] in <filename unknown>:0

Link to comment
Share on other sites

There's definitely some issues with contract handles of the API under Windows KSP 64. Contract parameter completion states that shouldn't switch after completing do, for example. Dunno about Linux. So definitely reproduce the problem under 32bit to confirm it's a problem.

Link to comment
Share on other sites

Everything looks fine. Can you tell what contract it's coming from (the agency should give you a hint). Maybe provide the save file and I'll look at that.

I deactivated all contracts to facilitate testing. Only my contract and your Field Research Contacts should be active.

I put the persistent into the same dropbox folder - game is heavily modded as you have probably seen.

(Maybe should run a clean stock game tomorrow.)

Link to comment
Share on other sites

Glad to hear it's an easy fix! I thought I had fixed it by running as admin but errors are still popping up. I'm on 64bit though so might be the issue, I'll copy files to my 32bit install in the morning to confirm it's not just 64bit silliness... had absolutely no problem with any other contract pack though, just the space stations.

What is a "null" vessel, and is there any way to find which one it is (so I can delete it).

- - - Updated - - -

Update - I don't even have any current contracts but this just popped up when switching from my station back to KSC.

Exception occured while loading contract 'CrewRotation':

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object

at ContractConfigurator.ConfigNodeUtil+<>c__DisplayClass1e.<ParseVesselValue>b__1d (.Vessel v) [0x00000] in <filename unknown>:0

at System.Collections.Generic.List`1[Vessel].GetIndex (Int32 startIndex, Int32 count, System.Predicate`1 match) [0x00000] in <filename unknown>:0

at System.Collections.Generic.List`1[Vessel].Find (System.Predicate`1 match) [0x00000] in <filename unknown>:0

at ContractConfigurator.ConfigNodeUtil.ParseVesselValue (System.String name) [0x00000] in <filename unknown>:0

at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Vessel] (System.String key, System.String stringValue, Boolean allowExpression) [0x00000] in <filename unknown>:0

at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)

at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0

--- End of inner exception stack trace ---

at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0

at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0

at ContractConfigurator.ConfiguredContract.OnLoad (.ConfigNode node) [0x00000] in <filename unknown>:0

Same issue that I fixed. :) I'll release it very soon.

There's definitely some issues with contract handles of the API under Windows KSP 64. Contract parameter completion states that shouldn't switch after completing do, for example. Dunno about Linux. So definitely reproduce the problem under 32bit to confirm it's a problem.

Yeah, I think I'm actually going to go so far as to disable Win64 support, because if that is the reason it is pretty rediculous the amount of wasted time it has caused me.

I deactivated all contracts to facilitate testing. Only my contract and your Field Research Contacts should be active.

I put the persistent into the same dropbox folder - game is heavily modded as you have probably seen.

(Maybe should run a clean stock game tomorrow.)

Hmmm, nothing unusual, and I still haven't been able to reproduce. Let me know if there's any change with no/fewer mods...

Link to comment
Share on other sites

Alright, new version with wider support for science mods for Field Research. Also I'm testing the waters to see what the reaction is if I disable Win64 support, because I've spent all week debugging impossible to reproduce issues and have enough reason to believe there's a link. Anyway, download link here.

Contract Configurator 1.4.0

  • Move extra science experiment definition to configuration files.
  • Add support in science modules for Station Science.
  • Add support in science modules for Solar Science.
  • Add support in science modules for N3h3miah's science mods.
  • Add additional experiment validation.
  • Fix possible NRE in vessel expressions (thanks Mulbin).
  • De-support buggy Win64 hacked version until Unity5.

Link to comment
Share on other sites

Alright, new version with wider support for science mods for Field Research. Also I'm testing the waters to see what the reaction is if I disable Win64 support, because I've spent all week debugging impossible to reproduce issues and have enough reason to believe there's a link.

Just state up front that you will not provide support for Win64 workaround and make people submit log files that show what version they are running. Please don't lock us out from even using your mod. A simple "I will not provide support at all for issues from 64-bit Windows KSP and any attempts to receive support from me will result in public ridicule" would suffice.

I understand it's frustrating to chase ghosts from bug reports from morons who cannot accept the fact that their bugs are caused from a buggy game, hacked, game build. But come on... Please ;)

Edit: Eh, you are under MIT license. I'll just recompile the source after removing the checks and use it for my own personal use and just not bother you with any bugs. Win/win

Edited by tito13kfm
Link to comment
Share on other sites

Just state up front that you will not provide support for Win64 workaround and make people submit log files that show what version they are running. Please don't lock us out from even using your mod. A simple "I will not provide support at all for issues from 64-bit Windows KSP and any attempts to receive support from me will result in public ridicule" would suffice.

I understand it's frustrating to chase ghosts from bug reports from morons who cannot accept the fact that their bugs are caused from a buggy game, hacked, game build. But come on... Please ;)

Are you using 64-bit windows KSP? Are you using Contract Configurator without issues? Which contract pack(s)? Are you sure there's no issues (no odd exceptions in the log)?

If I am able to get confirmation from you and others that it is working completely correctly for at least some people, then I will consider releasing the next patch with re-enabled Win64 support with the addition of a nag screen, and in-line warning messages for every exception (because to be honest, that's usually all I get in bug reports - count how many logs were posted without having been specifically asked for, versus the number of exceptions-as-posts).

- - - Updated - - -

What is a "null" vessel, and is there any way to find which one it is (so I can delete it).

Missed this part. A null vessel is programmer-speak for a empty vessel record (in the global list of vessels, in this case). It shouldn't happen unless something went really wrong, so really nothing you can do to fix.

Let me know what it looks like on the 32-bit install... that'll help me come to my final decision on Win64 support.

- - - Updated - - -

Edit: Eh, you are under MIT license. I'll just recompile the source after removing the checks and use it for my own personal use and just not bother you with any bugs. Win/win

Not really, because then I miss out on what might've been legit bug reports.

Link to comment
Share on other sites

With you 100% nightingale. I think locking it out is a bit extreme (but understandable) - but it's your mod and I'm happy to support it.

Just to be clear, anybody posting on KSS/USS who turns out to be using x64 will be politely told to shove off. (the exact level of politeness will vary depending on how much sleep the baby has let me have ;))

I doubt I'll see it as much as the CC thread, but still, it's there. I have better things to do with my time than chasing ghost issues, as I'm sure nightingale does too.

Link to comment
Share on other sites

Are you using 64-bit windows KSP? Are you using Contract Configurator without issues? Which contract pack(s)? Are you sure there's no issues (no odd exceptions in the log)?

If I am able to get confirmation from you and others that it is working completely correctly for at least some people, then I will consider releasing the next patch with re-enabled Win64 support with the addition of a nag screen, and in-line warning messages for every exception (because to be honest, that's usually all I get in bug reports - count how many logs were posted without having been specifically asked for, versus the number of exceptions-as-posts).

I did get one exception in my log file, but it hasn't caused me any issues.

[EXC 01:50:39.426] NullReferenceException: Object reference not set to an instance of an object    FinePrint.WaypointManager.RemoveWaypoint (FinePrint.Waypoint wp)
ContractConfigurator.Behaviour.WaypointGenerator.OnUnregister ()
ContractConfigurator.ContractBehaviour.Unregister ()
ContractConfigurator.ConfiguredContract.OnUnregister ()
Contracts.Contract.Unregister ()
Contracts.ContractSystem.OnDestroy ()

That's at the very end of my log right around the time when I alt+f4'd my way back to desktop. Probably not related to that action, but thought I'd mention it.

The packs I use are Anomaly Surveyor, Kerbin Space Station, SCANSat Lite, Tourism Plus

Been running the 64-bit hackaround for a few weeks now with only the "normal" bugs (right click bugged on exit, buildings upgraded randomly)

Ultimately it's your mod, and your time that you choose to spend coding it. Like I said, I personally can recompile it for my own use after stripping out the code which disables it if it comes to that. Although I'm pretty sure most wouldn't be able to do that.

Edit: And of course as soon as I speak that I have no problems, I exhibit problems.

[ERR 03:37:12.695] ContractConfigurator.ConfiguredContract: Error loading contract from persistance file!

[EXC 03:37:12.696] NullReferenceException: Object reference not set to an instance of an object
ContractConfigurator.ConfigNodeUtil+<>c__DisplayClass1e.<ParseVesselValue>b__1d (.Vessel v)
System.Collections.Generic.List`1[Vessel].GetIndex (Int32 startIndex, Int32 count, System.Predicate`1 match)
System.Collections.Generic.List`1[Vessel].Find (System.Predicate`1 match)
ContractConfigurator.ConfigNodeUtil.ParseVesselValue (System.String name)
ContractConfigurator.ConfigNodeUtil.ParseSingleValue[Vessel] (System.String key, System.String stringValue, Boolean allowExpression)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
ContractConfigurator.ConfiguredContract.OnLoad (.ConfigNode node)
UnityEngine.Debug:LogException(Exception)
ContractConfigurator.LoggingUtil:LogException(Exception)
ContractConfigurator.ConfiguredContract:OnLoad(ConfigNode)
Contracts.Contract:Load(Contract, ConfigNode)
Contracts.ContractSystem:LoadContract(ConfigNode)
Contracts.
:MoveNext()

So there does seem to be a big problem in the way that the 64-bit hackaround of KSP is doing something in relation to your mod. Something I'll deal with though until Unity 5, not a big deal to me.

Will attempt to replicate in 32-bit and report back in an edit.

Edit: Cannot replicate in either 32-bit or 64-bit version of game. Reloading exact same quicksave and jumping back to KSC which triggered it the first time did not trigger it this time. If I get it to trigger the error in the 32-bit version I will post

Edited by tito13kfm
Link to comment
Share on other sites

Just to confirm 64 runs perfectly for me with CC.... USS is the only pack having issues. I'll have to try 32 again this evening, been unable to get it to run at all so far, just getting a black screen with "loading" written in pink!

looking into building a config for sweetfx 2 to allow post processing on 32bit opengl, until then 64 is the only way to have decent graphics on ksp... cant go back to non gemfx ksp!

Link to comment
Share on other sites

Hey nightingale, I never had any problems with 64-bit CC. I agree with some of the other suggestions, I think you should re-enable 64-bit support, but tell people who have issues with it that you're not officially supporting or endorsing it.

I really enjoy your work, I hope you continue to work on and improve it! :)

Link to comment
Share on other sites

Yeah, I think I'm actually going to go so far as to disable Win64 support, because if that is the reason it is pretty rediculous the amount of wasted time it has caused me.

It's why as a developer I have gotten in to the habit of confirming whether a reported issue is under 32 or 64 bit and why as a player I have gotten in to the habit of reproducing issues under 32 bit before reporting them (unless I forget and PM the poor bugger before I remember. Ahem. Sorry.)

Disabling Win 64 support is one way to go. Less of a time-waste than chasing confirmations. At least now you know to check before burning time on ghost issues. Been there done that. Here's my t-shirt.

tshirt1.png

Edited by AlphaAsh
Link to comment
Share on other sites

Alright, based on the feedback so far I think I'll reenable the 64-bit support with warnings. Look for that in the next relesae.

On the train, will test 32 when I get in. Your plugin already spits out a very usefull error log for us to copy and paste, is it possible for it to detect 64bit and add that info to your error log? Would save you all the time if you could instantly see if someone has posted a 64 bit error... you could just copy and paste "please replicate in 32 bit" in reply :)

Link to comment
Share on other sites

Thank you for enabling zee 64 bit support. Currently hacking away on 64 bit to get the game to function even remotely well, and it's a great effort to rip out the 64 bit disablement on over 40 mods that add it in.

I'm aware folks should test 32 bit first on these errors. Isn't there some way to get it to check what version it is and write that down on the crash file to save time?

Link to comment
Share on other sites

Hmmm, nothing unusual, and I still haven't been able to reproduce. Let me know if there's any change with no/fewer mods...

Cleared out all mods - not CC and MM.

https://www.dropbox.com/sh/2jqcccmnqi8lgah/AAD5wd2c5lBG4IOmLxg4lqyOa?dl=0

Four contracts available, I see four orbits for these and the usual AP=PE orbit, BUT this time just outside of Kerbin.

Agent does not belong to any of the contracts.

Link to comment
Share on other sites

Cleared out all mods - not CC and MM.

https://www.dropbox.com/sh/2jqcccmnqi8lgah/AAD5wd2c5lBG4IOmLxg4lqyOa?dl=0

Four contracts available, I see four orbits for these and the usual AP=PE orbit, BUT this time just outside of Kerbin.

Agent does not belong to any of the contracts.

Can I get a screenshot too so I can correlate?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...