Jump to content

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


nightingale

Recommended Posts

  • 2 weeks later...

Hey fellow configurators of contracts,

I'm missing something simple it seems, but I can't find what it is. I've got an expression REQUIREMENT node that checks that a space station has no crew onboard but the REQUIREMENT or accompanying DATA node has an error in it somewhere. I used a DATA node to reference the station. Looking through the in-game log details, I see this:

"Cannot find method 'CrewCount' for class 'Double'." 

My DATA node specifies that it's of type 'Vessel', but is it being treated as a Double? Anyone else have this problem and has found the probable one line of code that is missing when this error comes up?

	REQUIREMENT
	{
		name = StationHasNoCrew
		type = Expression
		title = No Crew On Board
		
		expression = targetVesselKSSCore.CrewCount() == 0
		
		hideChildren = true
	}
	
	DATA
	{
		hidden = false
		
		type = Vessel
		title = Target KSS Core
		
		targetVesselKSSCore = AllVessels().Where(tvKSSCore => tvKSSCore.IsOrbiting() == true && tvKSSCore.VesselType() == Station && tvKSSCore.FreeDockingPorts() > 0 && tvKSSCore.ResourceCapacity(ElectricCharge) >= 1000 && tvKSSCore.ResourceCapacity(MonoPropellant) >= 10 && tvKSSCore.ResourceCapacity(Supplies) >= 100).SelectUnique()
		
		requiredValue = true
	}

 

Edited by Ahres
Added Code
Link to comment
Share on other sites

  On 7/11/2018 at 4:06 PM, linuxgurugamer said:

@nightingale

One of your contact packs, the FieldResearch, is generating errors (spamming the log), see this image:

PbnyFow.png

I took a look, and it appears the errors are coming from the HardScience.cfg.  When I looked into that, I saw:


        scienceSubjectsTemp1 = DifficultScienceSubjects().Where(s => s.Biome() == @biome)
        scienceSubjectsTemp2 = @scienceSubjectsTemp1.Where(s => s.Situation() == @situation)
        scienceSubjects = @scienceSubjectsTemp2.Where(s => s.CollectedScience() == 0.0 && s.Experiment() != asteroidSample).Random(3)

 

I'm wondering what the DifficultScienceSubjects() is, I can't find any documentation on it on the wiki.  I suspect that it is returning null, which would generate the displayed error.

Edit:  Got more details from the log:


ArgumentException: 'RA' is not a valid CelestialBody.
  at ContractConfigurator.ConfigNodeUtil.ParseCelestialBodyValue (System.String celestialName) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.Util.Science.GetBiome (.ScienceSubject subject) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Method`2[ScienceSubject,ContractConfigurator.Biome].Invoke (.ScienceSubject obj) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.Method`2[ScienceSubject,ContractConfigurator.Biome].Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[ScienceSubject].ParseMethod[ScienceSubject] (ContractConfigurator.ExpressionParser.Token token, .ScienceSubject obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
  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.ExpressionParser.ExpressionParser`1[T].ParseVarOrIdentifier (ContractConfigurator.ExpressionParser.Token token) [0x00000] in <filename unknown>:0 
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
  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.ExpressionParser.ExpressionParser`1[ScienceSubject].ParseMethod[ScienceSubject] (ContractConfigurator.ExpressionParser.Token token, .ScienceSubject obj, Boolean isFunction) [0x00000] in <filename unknown>:0 
Rethrow as Exception: Error parsing statement.
Error occurred near '*':
DifficultScienceSubjects().Where(s => s.Biome() == @biome)
...............................................* <-- HERE
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ExpressionParser.ExpressionParser`1[T].ExecuteExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode) [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ConfigNodeUtil.ParseSingleValue[ScienceSubject] (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 
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
  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.ConfigNodeUtil.ParseValue[List`1] (.ConfigNode configNode, System.String key, Boolean allowExpression) [0x00000] in <filename unknown>:0 
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
ContractConfigurator.LoggingUtil:LogException(Exception)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, List`1, Func`2)
ContractConfigurator.ConfigNodeUtil:ParseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, Func`2)
ContractConfigurator.DeferredLoadUtil:ExecuteLoad(DeferredLoadObject`1)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
ContractConfigurator.<UpdateNonDeterministicValuesIterator>d__30:MoveNext()
System.Linq.<CreateConcatIterator>c__Iterator1`1:MoveNext()
ContractConfigurator.<GenerateContract>d__33:MoveNext()
ContractConfigurator.<ContractEnumerator>d__32:MoveNext()
ContractConfigurator.ContractPreLoader:Update()

 

Expand  

Hey just wondering, did you ever figure out any solution for this? I just started having this issue today. Which is odd because my current career I've been playing for like a week and just started getting this issue now.

Link to comment
Share on other sites

  • 2 weeks later...

I got this exception:

[ERR 00:30:16.006] ContractConfigurator.ConfiguredContract: Error initializing contract CONTRACT_TYPE [mMunOrbit]

[EXC 00:30:17.407] NullReferenceException: Object reference not set to an instance of an object
    ContractConfigurator.Extensions.CleanDisplayName (.CelestialBody body, Boolean lower)
    ContractConfigurator.Parameters.ReachState.BodyList ()
    ContractConfigurator.Parameters.ReachState.CreateDelegates ()
    ContractConfigurator.Parameters.ReachState..ctor (System.Collections.Generic.List`1 targetBodies, System.String biome, System.Collections.Generic.List`1 situation, Single minAltitude, Single maxAltitude, Single minTerrainAltitude, Single maxTerrainAltitude, Double minSpeed, Double maxSpeed, Double minRateOfClimb, Double maxRateOfClimb, Single minAcceleration, Single maxAcceleration, Double minDeltaVeeActual, Double maxDeltaVeeActual, Double minDeltaVeeVacuum, Double maxDeltaVeeVacuum, System.String title)
    ContractConfigurator.ReachStateFactory.Generate (Contracts.Contract contract)
    ContractConfigurator.ParameterFactory.Generate (ContractConfigurator.ConfiguredContract contract, IContractParameterHost contractParamHost)
    ContractConfigurator.ParameterFactory.GenerateParameters (ContractConfigurator.ConfiguredContract contract, IContractParameterHost contractParamHost, System.Collections.Generic.List`1 paramFactories)
    ContractConfigurator.ContractType.GenerateParameters (ContractConfigurator.ConfiguredContract contract)
    ContractConfigurator.ConfiguredContract.Initialize (ContractConfigurator.ContractType contractType)
    UnityEngine.Debug:LogException(Exception)
    ContractConfigurator.LoggingUtil:LogException(Exception)
    ContractConfigurator.ConfiguredContract:Initialize(ContractType)
    ContractConfigurator.<GenerateContract>d__33:MoveNext()
    ContractConfigurator.<ContractEnumerator>d__32:MoveNext()
    ContractConfigurator.ContractPreLoader:Update()

The exception occurred just after completing the manned orbit for 72 hours contract.  Now in Mission Control it shows that all of the requirements are met for Manned Mun Orbit, but it isn't offering the contract.

I am running with the Galileo planet pack.  Could that be the problem?  Is there any way (an edit of the .cfg?) that I can make it offer the contract?

Cheers!

Later edit: hmmm... also the "Minmus and Kerbol" mission isn't even showing up in the list.

 

Edited by gleedadswell
Adding additional information
Link to comment
Share on other sites

  • 2 weeks later...
  On 4/13/2019 at 5:44 AM, CoriW said:

Hey just wondering, did you ever figure out any solution for this? I just started having this issue today. Which is odd because my current career I've been playing for like a week and just started getting this issue now.

Expand  

I have this issue as well.  I have a ton of mods installed.  GPP,/GEP KSIe, MKS/OKS and all the bells and whistles.   I looked page by page after linuxgurugamer's initial post and didn't see much further discussion on it.  Nor was I able to find anything on the forum page for Field Research or github.

Link to comment
Share on other sites

got an error window in KSP

KSP 1.7.0

Exception occured while saving ScenarioModule 'ContractPreLoader':
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
  at System.Collections.Generic.List`1+Enumerator[ContractConfigurator.ConfiguredContract].VerifyState () [0x00000] in <filename unknown>:0 
  at System.Collections.Generic.List`1+Enumerator[ContractConfigurator.ConfiguredContract].MoveNext () [0x00000] in <filename unknown>:0 
  at System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[ContractConfigurator.ConfiguredContract].MoveNext () [0x00000] in <filename unknown>:0 
  at ContractConfigurator.ContractPreLoader.OnSave (.ConfigNode node) [0x00000] in <filename unknown>:0 

log:https://yadi.sk/d/RhZgFN25KP5ZHw

Link to comment
Share on other sites

  On 5/7/2019 at 12:03 AM, Tonka Crash said:

@danielboro from looking at your log it looks like you have a contract defined without an agent. You get an exception about this 5118 times in the log you posted. Finding that needs the ModuleManager.ConfigCache

Expand  

thnaks

its 5118 because i keep the games running for days :) ill look for the file wen i get home.

Link to comment
Share on other sites

  On 5/7/2019 at 10:25 AM, danielboro said:

thnaks

its 5118 because i keep the games running for days :) ill look for the file wen i get home.

Expand  

In the future, when you have a reproducible error, please just start the game, capture the error, and quit. Upload a small file instead of one days long. I makes it much easier to figure out what's going wrong because in your file there are lots of repeated exceptions unrelated to this problem. kOS seems to be throwing a lot of exceptions, I don't use it, so can't help. Also if you do compress the file, not everyone can handle 7z. Please share it as a .zip file. Most compression applications can output .zip even if it isn't their default format.

Link to comment
Share on other sites

  On 5/7/2019 at 1:22 PM, Tonka Crash said:

In the future, when you have a reproducible error, please just start the game, capture the error, and quit. Upload a small file instead of one days long. I makes it much easier to figure out what's going wrong because in your file there are lots of repeated exceptions unrelated to this problem. kOS seems to be throwing a lot of exceptions, I don't use it, so can't help. Also if you do compress the file, not everyone can handle 7z. Please share it as a .zip file. Most compression applications can output .zip even if it isn't their default format.

Expand  

wily the errors in the log are (obviously) reproducible the window error was a (hopefully) 1 time event

https://yadi.sk/d/eU7PPNPlqxi73Q

the ModuleManager.ConfigCache as a.zip

i edited my save to add agent to the contract that didnt have one

 

most of then (all but 1) had "agentName = Field Research Team"
i looked at the files but didnt see any thing obviously different from the rest of the contract packs i have
thanks for all yuor help
Link to comment
Share on other sites

I got lot of following, hopefully useless spam in log:

  Reveal hidden contents

Probably happening when game try to generate some new contract. Haven't yet pinpointed exact contract pack that cause this. But I also found this at beggining of log:

  Quote

[WRN 00:02:46.114] Cannot create config from file 'D:\KSP_170\GameData\ContractConfigurator\Agencies\Agents.cfg'.

Expand  

So, my guess is that some of contract packs use legacy system for contract generation or something. Am I right ?

Link to comment
Share on other sites

  On 5/14/2019 at 10:58 PM, kcs123 said:
  Quote

[WRN 00:02:46.114] Cannot create config from file 'D:\KSP_170\GameData\ContractConfigurator\Agencies\Agents.cfg'.

Expand  

 

Expand  

That's an empty file that doesn't contain config data, so you get a warning. You can delete it or rename it Agents.txt to clear the warning.

For the other problem see this post.

 

Link to comment
Share on other sites

  On 5/14/2019 at 11:35 PM, Tonka Crash said:

That's an empty file that doesn't contain config data, so you get a warning. You can delete it or rename it Agents.txt to clear the warning.

For the other problem see this post.

Expand  

Thanks, I indeed have RealChutes mod, checking that first it seems to be fixed already since first report about it. Following your advice, I found in MM.ConfigCache this config that is suspisious to me:

  Reveal hidden contents

 All other contract packs found in MM cache have in second pair of UrlConfig{... config definitions} properly defined agent title. In first group it is always agent name and in second one is again definition of agent with title defined. AnomalySurveyor seems to missing that. But might be wrong about it, I'm only capable to compare two similar pieces of code and with some educated guess find what might be issue.

Are there any more convinient way to search trough MM cache with some keywords, beside "AGENT" to search all of possible places of wrong wriiten configs ? I will try to inspect folders of contract packs too, I will upload MM cache and logs if I fail to find culprit.

 

Link to comment
Share on other sites

@kcs123 @Brigadier @scottadges The missing title problem is such a recurring topic in this thread I decided that instead of sending people off on a tedious hunt for bugs, it's simpler to just have a patch to catch and fix the problem on the fly.

// Fix missing agent title string
@AGENT[*]:HAS[~title]
{
	title = #$name$	
}

This will just copy the name of the agent to the title field when an agent is missing it's title field. I've only seen a couple agents defined with different title and name fields, for most they're identical.

Instructions: Create a patch file (anyname.cfg) somewhere under GameData and include the text from the code box in the file.

Edited by Tonka Crash
Link to comment
Share on other sites

  On 5/15/2019 at 3:43 PM, Tonka Crash said:

@kcs123 @Brigadier @scottadges The missing title problem is such a recurring topic in this thread I decided that instead of sending people off on a tedious hunt for bugs, it's simpler to just have a patch to catch and fix the problem on the fly.
.....
Instructions: Create a patch file (anyname.cfg) somewhere under GameData and include the text from the code box in the file.

Expand  

Thanks a lot, that will indeed save a lot of time and will be foolproof whenever I try some ne contract pack that might have missing agent title in it.

Link to comment
Share on other sites

  On 5/15/2019 at 3:43 PM, Tonka Crash said:

Instructions: Create a patch file (anyname.cfg) somewhere under GameData and include the text from the code box in the file.

Expand  

Just out of curiosity, if I have a couple of these small config fixes (not just for CC), is it wise to place them all in one MM patch file?  Or would individual named .cfgs in a my_mods folder, for example, under GameData be better?

Link to comment
Share on other sites

  On 5/15/2019 at 7:17 PM, Brigadier said:

Just out of curiosity, if I have a couple of these small config fixes (not just for CC), is it wise to place them all in one MM patch file?  Or would individual named .cfgs in a my_mods folder, for example, under GameData be better?

Expand  

It doesn't matter. I have a whole directory tree. I started out with a patches.cfg for little things like this and once that got too big to easily find anything, I started creating individual files for each mod I was tweaking. 

Link to comment
Share on other sites

@Brigadier I thought of something else that can sometimes create problems. It is helpful to have all your person files in a directory that's alphabetically last in GameData. I use ZZZ_PersonalPatches. Alphabetic order in GameData can affect the order patches are applied to some degree. ModuleManager does several passes controlled by the directives :FIRST, :BEFORE, :AFTER,  & :FINAL. If you don't specify one of these the patch is applied between the :FIRST and :BEFORE passes with everything else that doesn't specify an ordering directive. On each pass the patches are applied in the order they are found which is alphabetic by subdirectory in GameData.

So, the patch I had above should work fine if it's alphabetically last in the GameData directory. No one should change an AGENT with one of the ordering directives, but that doesn't mean someone hasn't. It just hasn't been a problem for me yet. To be absolutely certain your patch is applied after everything else technically you also need :FINAL for the patches AND make sure it's in the alphabetically last directory, i.e:

// Fix missing agent title string
@AGENT[*]:HAS[~title]:FINAL
{
	title = #$name$	
}
Edited by Tonka Crash
Link to comment
Share on other sites

I've run into a strange problem and I'm wondering if anyone has encountered it before:

In my 1.7 career, I am running into limits on the number of contract despite having a fully upgraded mission control.  The limits are based on the significance of the contract & have varied over time.   The last time I looked, 1-star contracts are only allowed 5 active, 2-star allowed 3 active & 3-star allowed only 2.  I do have the newest version of Contract Configurator installed along with the following contract packs:

  • GAP
  • Anomaly Surveyor
  • Additional Progression Contracts
  • Sounding Rockets
  • Field Research (newly added for 1.7, but no change when I deleted it)
  • Tourism Plus (newly added for 1.7, but no change when deleted)
  • Career Evolution Contract (newly added for 1.7, no change when deleted)

When I deleted the 3 new contract packs, I also deleted & reinstalled Contract Configurator & deleted the MMConfigCache.

There is a slider in Contract Configurator settings for "Active Contract Multiplier" that I set all the way up in both 1.7 & previous versions.   I've even set up a new career, adding funds through the cheat menu to fully upgrade mission control & it is showing limits of 8, 6 & 4 for 1, 2 & 3-star contract.  I also went back and used the "regenerate current contracts" tool from the cheat menu in my main career & got the limits back to 8, 6 & 4.

I didn't remember ever running into this issue in previous versions, so I fired up my 1.6.1 copy of KSP & it does have limits also, but they are like ~50 1-star, ~40 2-star & ~30 3-star contracts allowed, which are well beyond what I would need at any time.

It almost appears that the Active Contract Multiplier isn't having any effect on 1.7

Link to comment
Share on other sites

  On 5/17/2019 at 12:10 AM, Cavscout74 said:

I've run into a strange problem and I'm wondering if anyone has encountered it before:

In my 1.7 career, I am running into limits on the number of contract despite having a fully upgraded mission control.  The limits are based on the significance of the contract & have varied over time.   The last time I looked, 1-star contracts are only allowed 5 active, 2-star allowed 3 active & 3-star allowed only 2. 

...

It almost appears that the Active Contract Multiplier isn't having any effect on 1.7

Expand  

The significance of contracts, bugs me. It's not really based on what the contract actually is. The better your reputation the more stars, but this leads being starved of new contracts, especially if you have several exceptional long duration missions going on., I've addressed the problem a couple ways:

  1. I've gone into the contract packs I have and manually set or decreased the significance of contracts. This helps populate the lower tier slots. Any satellites in Kerbin SOI are Trivial, satellites elsewhere are no more than Significant. I have Bases and Stations contract pack and in it building a new base or station is exceptional, expansion significant, everything else is trivial. I also set the maintenance contracts to automatically accept.
  2. I don't know what Active Contract Multiplier is supposed to do, but I've increased the overall number of offers by bumping up the contract system's average available from 10 to 25. You can easily get swamped with contracts with this setting. This is set in the Squad/Contracts/Contracts.cfg or with a patch:
// Increase average number of contracts
@Contracts
{
    @AverageAvailableContracts = 25
}

 

Edited by Tonka Crash
Link to comment
Share on other sites

  On 5/17/2019 at 1:20 PM, Tonka Crash said:

I don't know what Active Contract Multiplier is supposed to do, but I've increased the overall number of offers by bumping up the contract system's average available from 10 to 25. You can easily get swamped with contracts with this setting. This is set in the Squad/Contracts/Contracts.cfg or with a patch: 

Expand  

It's not the number of offers - I know about adjusting those already, I have mine at 20 I think - its the number of contracts I'm allowed to take that are ridiculously low in 1.7 vs previous versions.  I might have found my issue though:

In my 1.7 career, I accidentally smashed two loads of tourists into large objects (one into Kerbin due to a parachute staging error & the other into Mun due to not paying attention) which killed my total reputation.  I just got back into positive reputation this morning, and I'm showing I'm allowed to take like 9 one-star, 7 two-star & 5 three-star contracts compared to 8, 6 & 4 yesterday.  If the numbers continue going up, I'm going to guess that was the issue.  I'm usually pretty good at not executing tourists, so my rep usually never goes negative like that. 

When I have a chance later on, I'm going to load the cheaty second career I was using to troubleshoot, add a bunch of rep & see what happens.

Edit:   Confirmed, my issue was due to low reputation not anything wrong with Contract Configurator or any of the contract packs.

Edited by Cavscout74
Link to comment
Share on other sites

  On 5/17/2019 at 6:08 PM, Cavscout74 said:

It's not the number of offers - I know about adjusting those already, I have mine at 20 I think - its the number of contracts I'm allowed to take that are ridiculously low in 1.7 vs previous versions.  I might have found my issue though:

In my 1.7 career, I accidentally smashed two loads of tourists into large objects (one into Kerbin due to a parachute staging error & the other into Mun due to not paying attention) which killed my total reputation.  I just got back into positive reputation this morning, and I'm showing I'm allowed to take like 9 one-star, 7 two-star & 5 three-star contracts compared to 8, 6 & 4 yesterday.  If the numbers continue going up, I'm going to guess that was the issue.  I'm usually pretty good at not executing tourists, so my rep usually never goes negative like that. 

When I have a chance later on, I'm going to load the cheaty second career I was using to troubleshoot, add a bunch of rep & see what happens.

Expand  

That's it. I didn't think of reputation. Having a low or negative rep will definitely restrict the number of contracts you can take. Mine's tanked (-1000+) a couple times for reasons I still don't understand and I only noticed because of the severely reduced number of contracts.

Link to comment
Share on other sites

I'm brewing up (yet another in a series of failed attempts at) a contract pack idea but (as usual) what I want does not seem available. I don't know how hard it would be (or if it would take more work once Breaking Ground came out) but I've been told my job is to ask if something can be done, and it's he programmers job to determine if it actually can. So here goes.

I've not seen anywhere a way to determine the distance between 2 parts (or a part and - say - a position on the craft like the Root part, or the COM, or whatever). Mostly I'm thinking of science parts, like a Thermometer must be x meters away from any part with any modules on it that might generate heat. or a contract states that you need 2 gravioli detectors, y meters apart from each other, during a flyby of world z.

I searched the wiki and this thread, and I didn't see anything even suggested along these lines.

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