Jump to content

Contract Pack: Giving Aircraft a Purpose (GAP) 2.11 - Milestones, Air Flights, Coast Guard (Now Updated for KSP 1.12.5)


inigma

Recommended Posts

31 minutes ago, KawaiiLucy said:

Is it possible though to make this 'automatic'? I've been playing on 2.5x rescale, and noticed it wasn't possible to complete the barnstorming contracts, since the maximum allowed altituted was then below the ground. Adding a few meters manually in the config made it possible though, but it's kinda tedious.

Probably. By using custom MM patch that would multiply altitude values by rescale factor. Can't say if that should be within scope of this mod or not. Although, it probably not wise idea to multiply required altitude for each contract, only for those that are near or on ground levels. Or to write exact altitude for each contract and for each rescaled world.

Link to comment
Share on other sites

  • 2 months later...

I'm getting a bug I can't debug. It shouldn't be happening.

Wright group contracts aren't loading because CC can't find modules from FerramAerospaceResearchand AJE. But the config files have proper requirements so these errors shouldn't be showing up.

bhxvFSU.png

Spoiler

kzsN3P4.png

 

 

		REQUIREMENT:NEEDS[FerramAerospaceResearch]
		{
			name = PartModuleUnlocked
			type = PartModuleUnlocked
			title = Aileron or Elevon
			
			partModule = FARControllableSurface

		}
Edited by Krzeszny
Link to comment
Share on other sites

13 hours ago, Krzeszny said:

I'm getting a bug I can't debug. It shouldn't be happening.

Wright group contracts aren't loading because CC can't find modules from FerramAerospaceResearchand AJE. But the config files have proper requirements so these errors shouldn't be showing up.

bhxvFSU.png

  Hide contents

kzsN3P4.png

 

 

		REQUIREMENT:NEEDS[FerramAerospaceResearch]
		{
			name = PartModuleUnlocked
			type = PartModuleUnlocked
			title = Aileron or Elevon
			
			partModule = FARControllableSurface

		}

Based on that error, it looks like FARControllableSurface doesn't exist in your game anywhere. It may be that FAR has changed and no longer uses that.

It might be worth downloading an old version of FAR, seeing what part(s) this was attached to, and then comparing it to the new one and replacing.

And then report back here so we know :D

Link to comment
Share on other sites

27 minutes ago, etmoonshade said:

Based on that error, it looks like FARControllableSurface doesn't exist in your game anywhere. It may be that FAR has changed and no longer uses that.

It might be worth downloading an old version of FAR, seeing what part(s) this was attached to, and then comparing it to the new one and replacing.

And then report back here so we know :D

You don't understand and I didn't explain it well.

FAR isn't installed. AJE isn't installed either. Those folders don't exist in GameData. That's why the requirements that cause the errors shouldn't be trying to load at all.

In other words, 

NEEDS[FerramAerospaceResearch]

is not functioning properly (same with the one that needs AJE).

Edited by Krzeszny
Link to comment
Share on other sites

29 minutes ago, Krzeszny said:

You don't understand and I didn't explain it well.

FAR isn't installed. AJE isn't installed either. Those folders don't exist in GameData. That's why those requirements shouldn't be trying to load. They should be skipped, so no errors are to be expected.

ah.

Search under <KSP directory>\Logs\ModuleManager\ModuleManager.log for "FOR[FerramAerospaceResearch] maybe? See if something's mistakenly providing it?

Double edit: First, you can also search that file for "FerramAerospaceResearch" as well and see what's referencing it.

Second, I realize this is based on Contract Configurator, but my suspicion is that you've got something that thinks it's providing the entirety of FAR.

Third edit: First, it's FOR and not HAS. Second, no colon between HAS and the first bracket. :D

Edited by etmoonshade
Link to comment
Share on other sites

31 minutes ago, etmoonshade said:

ah.

Search under <KSP directory>\Logs\ModuleManager\ModuleManager.log for "HAS:[FerramAerospaceResearch]" maybe? See if something's mistakenly providing it?

btw it's :HAS, not HAS:

(to be clear, the same error is caused by missing FerramAerospaceResearch and AJE)

I checked the last ModuleManager.log without launching the game and there's no :HAS[Ferram or [AJE

The only [AJE] mentions are these

[LOG 00:08:12.064] :BEFORE[AJE] pass
[LOG 00:08:12.064] :FOR[AJE] pass
[LOG 00:08:12.066] :AFTER[AJE] pass
Edited by Krzeszny
Link to comment
Share on other sites

1 hour ago, Krzeszny said:

 This looks interesting, but I don't know what it means:

Non-DLL mods added (:FOR[xxx]):
  FerramAerospaceResearch
  (...)
  AJE

 

I haven't had enough caffeine or I'd have pointed that out earlier. Check my edit that your post didn't catch. :D

Mentioning HAS was a mistake on my part, my bad.

Edit: To be clear about it:

Those "FOR" statements from MM basically say that whatever has the FOR provides the full functionality of the mod specified. So if you have a "FOR[FerramAerospaceResearch]" statement, MM thinks that you have FAR fully installed. Essentially, you've found the problem - you just need to find (again, MM logs) whatever has those FOR statements.

Edited by etmoonshade
Link to comment
Share on other sites

2 hours ago, etmoonshade said:

I haven't had enough caffeine or I'd have pointed that out earlier. Check my edit that your post didn't catch. :D

Mentioning HAS was a mistake on my part, my bad.

I can't read either. Ok, so it's FOR. I looked for :FOR[Ferram and [AJE in GameData and found something.

First, there's a file called Custom_FARAeroData.cfg in GameData root directory and it contains the line "@FARAeroData:FOR[FerramAerospaceResearch]"

Second, there's AJE.cfg in DaMichel/Fuselage/Patches and it contains "@PART[DM-fuselage-intake]:NEEDS[AJE]:FOR[AJE]"

The first file obviously shouldn't be in GameData but is the second one also coded wrong? It would seem like MM loads FOR despite the NEEDS part not being correct. Anyway, I'm removing both and seeing if KSP works now.

EDIT: It works! So this is what was causing the bug that prevents the Wright group contracts from appearing.

Edited by Krzeszny
Tested
Link to comment
Share on other sites

25 minutes ago, Krzeszny said:

I can't read either. Ok, so it's FOR. I looked for :FOR[Ferram and [AJE in GameData and found something.

First, there's a file called Custom_FARAeroData.cfg in GameData root directory and it contains the line "@FARAeroData:FOR[FerramAerospaceResearch]"

Second, there's AJE.cfg in DaMichel/Fuselage/Patches and it contains "@PART[DM-fuselage-intake]:NEEDS[AJE]:FOR[AJE]"

The first file obviously shouldn't be in GameData but is the second one also coded wrong? It would seem like MM loads FOR despite the NEEDS part not being correct. Anyway, I'm removing both and seeing if KSP works now.

Assuming both of them reference only FAR/AJE exclusive stuff, you should be able to blow both of them away with no ill effects.

Also, I'd suggest mentioning this on the thread for whatever the second mod is. FOR vs. NEEDS is... if not a common error, a common enough one that it's immediately what I thought of (even if I couldn't remember the actual keyword :V) - the mod author might appreciate the heads up.

Link to comment
Share on other sites

  • 1 year later...

Hey, absolutely loving this contract pack so far. I love tinkering with planes in ksp, and this makes that useful. I see it's been asked about before a few pages(years) ago, but I was wondering if there's any plans for making more advanced Coast Guard type missions? If it's a matter of inputting some values in some code, I would be more than happy to fly around and find some neat places for contracts to take place and get the necessary information about the location, I'm guessing it would at least be height, lat and long. Although, some of the places I have in mind might take most craft capable of VTOL more than a day to reach, but I guess the timing is modifiable too.

Link to comment
Share on other sites

  • 1 month later...

Hi,

I've used the contract pack GAP (Giving Aircraft a Purpose) to generate cargo contracts with different payloads to the Abandoned Island and a few other locations.
I would like for a contract to request a random amount of cargo to be carried by the aircraft, but instead of a random value in a given interval (that can be given by 

numPassengers = Random(1, 10)

), I would like something like this:

waterAmount = chooseRandom(1, 3, 10, 30, 100, 300, 1000)

Is there such a function ? Where can I find info about that ?

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 year later...

I am back and interested in getting this mod fully up to date as I run a KSP server now through my org, and are desperate for money making airplane contracts. I will need to check in with Contract Configurator to make sure things are functional.

Link to comment
Share on other sites

I have tested GAP in KSP 1.12.5 and so far all the contracts work as expected. No modifications to the code necessary as far as I can tell.  Only slight incompatibility is with Luna Multiplayer Server in that if you are not the oldest session on the server, you may have to ask all players to disconnect including yourself and then you rejoin alone to generate the next contract.   I'll update this thread if I run into further issues as so far I've only tested the flight science contracts and the passenger plane contracts (not yet the stunts or Coast Guard).

edit: I am using Contract Configurator 2.11 maintained by KSP-ROhttps://github.com/KSP-RO/ContractConfigurator/releases/tag/v2.11.0.0
edit: and Module Manger 4.2.3: https://ksp.sarbian.com/jenkins/job/ModuleManager/

Edited by inigma
Link to comment
Share on other sites

rUce0vp.png

The K2 rescue mission works just fine with Parallax and terrain detail high. Other missions that spawn Kerbals and vehicles work fine too. Didn't test Operation Manley Freedom yet.

Link to comment
Share on other sites

  • 5 weeks later...

I can't get GAP to be recognized properly by KSP. I pasted the GAP folder in the ContractPacks folder, and when I start the game, it asks me if I want to allow GAP to check for updates. But once the game loads, GAP isn't part of it. In the settings menu, GAP isn't listed under contract packs, but my other contract packs are. In mission control, I get contracts from all the contract packs I have installed except GAP.
I have the most up to date versions of KSP, Contract Configurator and Module Manager. I know that Contract Configurator is working fine, because the my other contract packs are working. I know module manager is working fine because it's a dependency for other mods that I have installed.
Any idea what's happening? I've tried using GAP 2.11.1 and 2.11.1b to no avail.
Really excited to play your contract pack! Thanks for the help :)

Edit:
I just looked at the F10 menu for contract configurator. It's listing the GAP contracts as 'disabled items'. I have no idea why, and it doesn't let me enable them either. If I hit regenerate contracts, it loads everything again slowly. If I hit force contract generation, it doesn't do anything.

Edited by Kerbaulnaut
More information
Link to comment
Share on other sites

In regard to my previous comment, here are the log details for one of the disabled GAP contracts:

Log Details
[INFO] ContractConfigurator.ContractType: Loading CONTRACT_TYPE: 'Airline-Flight-124'
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'Airline-Flight-124': Error parsing group
[EXCEPTION] System.ArgumentException: No contract group with name 'KSC Airlines' at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[T] (System.String key. System.String stringValue. System.Boolean allowExpression) [0x00142] in <ef0243a06f2841fe9bf57034a334902e>:0 at ContractConfigurator.ConfigNodeUtil.ParseValuel[T] (ConfigNode configNode. System.Shing key. System.Boolean allowExpression)[0x002bc] in <ef0243a06f2841fe9bf57034a334902e>:0 at ContractConfiguratocConfighkdeUtil.ParseValue[T] (ConfigNode configNode, System.String key, System.Action'1[T] setter, ContractConfigurator.IContractConfiguratorFactory obj, T defaultValue, System.Func'2[T,TResult] validation) [0x0007e] in <ef0243a06f2841fe9bf57034a334902e>:0
[WARNING] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'Airline-Flight-124'

Any idea how I can fix this? Thanks!

 

Edited by Kerbaulnaut
Link to comment
Share on other sites

  • 4 weeks later...
On 11/13/2024 at 4:57 AM, Kerbaulnaut said:

In regard to my previous comment, here are the log details for one of the disabled GAP contracts:

Log Details
[INFO] ContractConfigurator.ContractType: Loading CONTRACT_TYPE: 'Airline-Flight-124'
[ERROR] ContractConfigurator.ContractType: CONTRACT_TYPE 'Airline-Flight-124': Error parsing group
[EXCEPTION] System.ArgumentException: No contract group with name 'KSC Airlines' at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[T] (System.String key. System.String stringValue. System.Boolean allowExpression) [0x00142] in <ef0243a06f2841fe9bf57034a334902e>:0 at ContractConfigurator.ConfigNodeUtil.ParseValuel[T] (ConfigNode configNode. System.Shing key. System.Boolean allowExpression)[0x002bc] in <ef0243a06f2841fe9bf57034a334902e>:0 at ContractConfiguratocConfighkdeUtil.ParseValue[T] (ConfigNode configNode, System.String key, System.Action'1[T] setter, ContractConfigurator.IContractConfiguratorFactory obj, T defaultValue, System.Func'2[T,TResult] validation) [0x0007e] in <ef0243a06f2841fe9bf57034a334902e>:0
[WARNING] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'Airline-Flight-124'

Any idea how I can fix this? Thanks!

 

try redownloading GAP and reinstalling it. I think I fixed it in a ghost update. You may have downloaded it just prior to my ghost fix.

On 11/12/2024 at 3:06 PM, Kerbaulnaut said:

I can't get GAP to be recognized properly by KSP. I pasted the GAP folder in the ContractPacks folder, and when I start the game, it asks me if I want to allow GAP to check for updates. But once the game loads, GAP isn't part of it. In the settings menu, GAP isn't listed under contract packs, but my other contract packs are. In mission control, I get contracts from all the contract packs I have installed except GAP.
I have the most up to date versions of KSP, Contract Configurator and Module Manager. I know that Contract Configurator is working fine, because the my other contract packs are working. I know module manager is working fine because it's a dependency for other mods that I have installed.
Any idea what's happening? I've tried using GAP 2.11.1 and 2.11.1b to no avail.
Really excited to play your contract pack! Thanks for the help :)

Edit:
I just looked at the F10 menu for contract configurator. It's listing the GAP contracts as 'disabled items'. I have no idea why, and it doesn't let me enable them either. If I hit regenerate contracts, it loads everything again slowly. If I hit force contract generation, it doesn't do anything.

https://github.com/inigmatus/GAP/releases

ull notice a version b posted Oct 15. the character bugfix was related to a file path i believe.

Edited by inigma
Link to comment
Share on other sites

  • 2 weeks later...

I had this mod installed and didn't even realize it wasn't getting recognized. I'm beginning a new save and even with the latest update it still not showing up at the configurations (Contract Groups). I have other contract packs installed so I know my Contract Configurator is working as expected. Here's part of the log. I had the previous version and now I installed the Oct 15th one. Both versions have the same error.

 

ERR 16:27:06.073] ContractConfigurator.ContractType: CONTRACT_TYPE 'Airline-Flight-101': Error parsing group

[EXC 16:27:06.074] ArgumentException: No contract group with name 'KSC Airlines'
	ContractConfigurator.ConfigNodeUtil.ParseSingleValue[T] (System.String key, System.String stringValue, System.Boolean allowExpression) (at <ef0243a06f2841fe9bf57034a334902e>:0)
	ContractConfigurator.ConfigNodeUtil.ParseValue[T] (ConfigNode configNode, System.String key, System.Boolean allowExpression) (at <ef0243a06f2841fe9bf57034a334902e>:0)
	ContractConfigurator.ConfigNodeUtil.ParseValue[T] (ConfigNode configNode, System.String key, System.Action`1[T] setter, ContractConfigurator.IContractConfiguratorFactory obj, T defaultValue, System.Func`2[T,TResult] validation) (at <ef0243a06f2841fe9bf57034a334902e>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.Debug:LogException(Exception)
	ContractConfigurator.LoggingUtil:LogException(Exception)
	ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, ContractGroup, Func`2)
	ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, ContractGroup)
	ContractConfigurator.ContractType:Load(ConfigNode)
	ContractConfigurator.<LoadContractTypeConfig>d__31:MoveNext()
	ContractConfigurator.<FinalizeContractTypeLoad>d__30:MoveNext()
	UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
[WRN 16:27:06.127] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'Airline-Flight-101'
[LOG 16:27:06.130] [INFO] ContractConfigurator.ContractType: Loading CONTRACT_TYPE: 'Airline-Flight-102'
[ERR 16:27:06.130] ContractConfigurator.ContractType: CONTRACT_TYPE 'Airline-Flight-102': Error parsing group

[EXC 16:27:06.131] ArgumentException: No contract group with name 'KSC Airlines'
	ContractConfigurator.ConfigNodeUtil.ParseSingleValue[T] (System.String key, System.String stringValue, System.Boolean allowExpression) (at <ef0243a06f2841fe9bf57034a334902e>:0)
	ContractConfigurator.ConfigNodeUtil.ParseValue[T] (ConfigNode configNode, System.String key, System.Boolean allowExpression) (at <ef0243a06f2841fe9bf57034a334902e>:0)
	ContractConfigurator.ConfigNodeUtil.ParseValue[T] (ConfigNode configNode, System.String key, System.Action`1[T] setter, ContractConfigurator.IContractConfiguratorFactory obj, T defaultValue, System.Func`2[T,TResult] validation) (at <ef0243a06f2841fe9bf57034a334902e>:0)
	UnityEngine.DebugLogHandler:LogException(Exception, Object)
	ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
	UnityEngine.Debug:LogException(Exception)
	ContractConfigurator.LoggingUtil:LogException(Exception)
	ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, ContractGroup, Func`2)
	ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, ContractGroup)
	ContractConfigurator.ContractType:Load(ConfigNode)
	ContractConfigurator.<LoadContractTypeConfig>d__31:MoveNext()
	ContractConfigurator.<FinalizeContractTypeLoad>d__30:MoveNext()
	UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
[WRN 16:27:06.157] ContractConfigurator.ContractType: Errors encountered while trying to load CONTRACT_TYPE 'Airline-Flight-102'
[LOG 16:27:06.160] [INFO] ContractConfigurator.ContractType: Loading CONTRACT_TYPE: 'Airline-Flight-103'

 

Edited by lodiped
adding context, ksp LOG, cropped log, date and version
Link to comment
Share on other sites

  • 2 weeks later...

Got this error when loading into a new save after installing this contract pack. Any idea what I should do? I've uninstalled and reinstalled the pack and still got this message. Thanks!

 

Exception occured while attempt to generate contract of type 'GAP.Wright-FirstFlight':
System.NullReferenceException: Object reference not set to an instance of an object
  at ContractConfigurator.Parameters.ReachState+<>c.<BodyList>b__94_0 (CelestialBody cb) [0x00000] in <0ac19348e13c43e280580b62f08ea2eb>:0 
  at ContractConfigurator.LocalizationUtil._LocalizeList[T] (ContractConfigurator.LocalizationUtil+Conjunction conjunction, System.Collections.Generic.IEnumerable`1[T] values, System.Func`2[T,TResult] strFunc) [0x0001c] in <0ac19348e13c43e280580b62f08ea2eb>:0 
  at ContractConfigurator.LocalizationUtil.LocalizeList[T] (ContractConfigurator.LocalizationUtil+Conjunction conjunction, System.Collections.Generic.IEnumerable`1[T] values, System.Func`2[T,TResult] strFunc) [0x00005] in <0ac19348e13c43e280580b62f08ea2eb>:0 
  at ContractConfigurator.Parameters.ReachState.BodyList () [0x00007] in <0ac19348e13c43e280580b62f08ea2eb>:0 
  at ContractConfigurator.Parameters.ReachState.CreateDelegates () [0x0001f] in <0ac19348e13c43e280580b62f08ea2eb>:0 
  at ContractConfigurator.Parameters.ReachState..ctor (System.Collections.Generic.List`1[T] targetBodies, System.String biome, System.Collections.Generic.List`1[T] situation, System.Single minAltitude, System.Single maxAltitude, System.Single minTerrainAltitude, System.Single maxTerrainAltitude, System.Double minSpeed, System.Double maxSpeed, System.Nullable`1[T] speedMode, System.Double minRateOfClimb, System.Double maxRateOfClimb, System.Single minAcceleration, System.Single maxAcceleration, System.Double minDeltaVeeActual, System.Double maxDeltaVeeActual, System.Double minDeltaVeeVacuum, System.Double maxDeltaVeeVacuum, System.String title, System.Single updateFrequency) [0x0009d] in <0ac19348e13c43e280580b62f08ea2eb>:0 
  at ContractConfigurator.ReachStateFactory.Generate (Contracts.Contract contract) [0x00000] in <0ac19348e13c43e280580b62f08ea2eb>:0 
  at ContractConfigurator.ParameterFactory.Generate (ContractConfigurator.ConfiguredContract contract, Contracts.IContractParameterHost contractParamHost) [0x00016] in <0ac19348e13c43e280580b62f08ea2eb>:0 
  at ContractConfigurator.ParameterFactory.GenerateParameters (ContractConfigurator.ConfiguredContract contract, Contracts.IContractParameterHost contractParamHost, System.Collections.Generic.List`1[T] paramFactories) [0x0007e] in <0ac19348e13c43e280580b62f08ea2eb>:0 
  at ContractConfigurator.ParameterFactory.GenerateParameters (ContractConfigurator.ConfiguredContract contract, Contracts.IContractParameterHost contractParamHost, System.Collections.Generic.List`1[T] paramFactories) [0x0008c] in <0ac19348e13c43e280580b62f08ea2eb>:0 
  at ContractConfigurator.ContractType.GenerateParameters (ContractConfigurator.ConfiguredContract contract) [0x00000] in <0ac19348e13c43e280580b62f08ea2eb>:0 
  at ContractConfigurator.ConfiguredContract.Initialize (ContractConfigurator.ContractType contractType) [0x00221] in <0ac19348e13c43e280580b62f08ea2eb>:0 

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...