Jump to content

Rokanov

Members
  • Posts

    32
  • Joined

  • Last visited

Posts posted by Rokanov

  1. Hey nightingale,

    I keep getting this error pop up across many contracts and I'm pretty sure it's causing hangs I'm having:

    [Log]: [DEBUG] ContractConfigurator.ContractPreLoader: Contract attribute took too long (0.1254883 seconds) to generate: HM_Skylab3[targetMars]

    It's in reference to this (from a contract group)


    DATA
    {
    type = CelestialBody

    targetMars = AllBodies().Where(p => p.Name() == "Duna" || p.Name() == "Mars").Random()
    requiredValue = false
    }

    Happened with both contract configurator 1.7.0 and 1.7.1 (also have HyperEdit installed)

    Including player.log (I'm on mac) and gamedata for reference

    Thought I'd point this out to you, but going to change this code anyway as I think it's a pretty terrible way of doing what I want :)

  2. Feature request: Would it be possible to split maxSimultaneous (in CONTRACT_GROUP) to allow separate values for maximum available (offered) and maximum active (accepted)?

    For instance, I have contract1 and contract2 of the same group. maxAvailable is 2, so both show up in mission control, however maxActive is 1, so when one is accepted the other cannot be.

    This is to get around issues I'm having with contracts that have similar objectives where I would like both to be visible and offered, but make it not possible for both to be completed in one go, though perhaps this is possible if I use define (in Parameter) better?

    For now I think I'll use ActiveContract requirements. Actually that might work better anyway... :huh:

    - - - Updated - - -

    Actually I don't think that would work in this scenario:

    contract1 and contract2 offered, both define vessel in parameters.

    contract1 accepted, vessel1 launched, vessel = vessel1.

    at this stage I'd like contract2 to be available, however under both circumstances it would be locked out until contract1 is completed, right?

    So is there a way of setting a vessel in only one contract at a time (when both are active)?

    i.e contract1 and contract2 accepted, vessel1 launched, tied to contract1 but not contract2

  3. Having issues with Data node inheritance from parent contract group -> child group -> contract. As far as I understand it from the documentation, this should be possible (trimmed version of my code):


    CONTRACT_GROUP
    {
    name = HistoricMissions

    DATA
    {
    type = CelestialBody

    targetMoon = HomeWorld().Children().Random()
    }

    CONTRACT_GROUP
    {
    name = LunaMission
    }
    }

    CONTRACT_TYPE
    {
    name = Luna-1
    group = LunaMission

    targetBody = @HistoricMissions:targetMoon
    }

    However I keep getting errors:


    [COLOR=#333333][LOG 02:14:28.327] [DEBUG] ContractConfigurator.ContractConfigurator: Loading CONTRACT_TYPE: 'Luna-1'[/COLOR]
    [COLOR=#333333][ERR 02:14:28.328] ContractConfigurator.ContractType: CONTRACT_TYPE 'Luna-1': Error parsing targetBody[/COLOR]


    [COLOR=#333333][EXC 02:14:28.329] ArgumentException: Contract group 'HistoricMissions' does not exist, or is not a parent of this contract.[/COLOR]
    [COLOR=#333333]ContractConfigurator.ExpressionParser.DataNode.Nod eForKey (System.String& key)[/COLOR]
    [COLOR=#333333]ContractConfigurator.ExpressionParser.DataNode.IsI nitialized (System.String key)[/COLOR]
    [COLOR=#333333]ContractConfigurator.ExpressionParser.ExpressionPa rser`1[T].ParseSpecialIdentifier (ContractConfigurator.ExpressionParser.Token token)[/COLOR]
    [COLOR=#333333]Rethrow as Exception: Error parsing statement.[/COLOR]
    [COLOR=#333333]Error occurred near '*':[/COLOR]
    [COLOR=#333333]@HistoricMissions:targetMoon[/COLOR]
    [COLOR=#333333]............................* <-- HERE[/COLOR]
    [COLOR=#333333]ContractConfigurator.ExpressionParser.ExpressionPa rser`1[T].ParseExpression (System.String key, System.String expression, ContractConfigurator.ExpressionParser.DataNode dataNode)[/COLOR]
    [COLOR=#333333]ContractConfigurator.ConfigNodeUtil.ParseSingleVal ue[CelestialBody] (System.String key, System.String stringValue, Boolean allowExpression)[/COLOR]
    [COLOR=#333333]ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, Boolean allowExpression)[/COLOR]
    [COLOR=#333333]ContractConfigurator.ConfigNodeUtil.ParseValue[CelestialBody] (.ConfigNode configNode, System.String key, System.Action`1 setter, IContractConfiguratorFactory obj, .CelestialBody defaultValue, System.Func`2 validation)[/COLOR]
    [COLOR=#333333]UnityEngine.Debug:LogException(Exception)[/COLOR]
    [COLOR=#333333]ContractConfigurator.LoggingUtil:LogException(Exce ption)[/COLOR]
    [COLOR=#333333]ContractConfigurator.ConfigNodeUtil.P[/COLOR][COLOR=#333333]arseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, CelestialBody, Func`2)[/COLOR]
    [COLOR=#333333]ContractConfigurator.ConfigNodeUtil.P[/COLOR][COLOR=#333333]arseValue(ConfigNode, String, Action`1, IContractConfiguratorFactory, CelestialBody)[/COLOR]
    [COLOR=#333333]ContractConfigurator.ContractType:Load(ConfigNode)[/COLOR]
    [COLOR=#333333]ContractConfigurator.<LoadContractConfig>d__1e:Mov eNext()[/COLOR]
    [COLOR=#333333]ContractConfigurator.<ContractConfiguratorReload>d __13:MoveNext()[/COLOR]
    [COLOR=#333333][ERR 02:14:28.331] ContractConfigurator.ReachStateFactory: CONTRACT_TYPE 'Luna-1', PARAMETER 'ReachState' of type 'ReachState': targetBody for ContractConfigurator.ReachStateFactory must be specified.[/COLOR]

    Am I going wrong somewhere?

  4. Careful of those late edits - you edited well after I read your original post. ;)

    There isn't a better way - the contract system requires at least one parameter or it will fail. So to have "no" parameters, you need some sort of dummy parameter (and you can change the title to make it look better). Timer seems as good a choice as any.

    I can't think of a way to make a contract that doesn't reappear if declined - mainly because the contract system doesn't store declined contracts (otherwise the save file would become massive). [#298] is coming up in 1.7.0 that will allow expressions to be fired when a contract is offered. You could hypothetically use that to set a flag and then prevent the contract from being offered again if that flag is set. But what'll likely happen is that the player will never see the contract - it'll come up and be withdrawn while they're timewarping and it'll never show up again.

    Thanks for the warning, I'll be more mindful of edits in the future!

    That makes sense, I think the system I have in place works well enough (pretty sure it's not really an intended use for contracts!).

    I'll give that a try when 1.7.0 is out and see if it's better. It's for a one-time optional contract, so further generation is a bit spammy but otherwise unproblematic.

    Next question :): Is there a straightforward way to provide RSS support for specific planets? Kerbin seems easy enough, using HomeWorld(), but what about others like Duna/Mars or Eve/Venus?

    I.e. Currently I have targetBody = Duna, but want something that selects Duna or Mars depending on whether RSS is present. Think I've cracked it (see below), but I'm so new to this I prefer to ask :)


    Data
    {

    [INDENT]type = CelestialBody
    uniqueValue = true

    targetPlanet = AllBodies().Where(p => p.Name() == "Duna" || p.Name() == "Mars").Random()[/INDENT]


    }

  5. Is there a way to make a contract complete instantly after accepting? (Requiring scene change is fine, I just mean has no objectives)

    Edit: Scratch that, made it work with a timer set to 0s :)

    Edit 2: If there's a better way to do the above, I'm still interested, but now I'd like to know how you make a one-time contract that never reappears if you decline it?

  6. Sharing my Government :)

    Wanted something weighted evenly between PO and SC, plus it made sense for the USK and USSK to join forces in my current "campaign"

        Item
    {
    name = UKSA
    longName = Unified Kerbin Space Agency
    poModifier = 1
    poPenaltyModifier = 2
    scModifier = 1
    scPenaltyModifier = 2
    startingPO = 20
    startingSC = 10
    budget = 0.2
    gdp = 100000000
    description = In an alternate reality far, far away, an all-too-familiar storm was brewing. Two superpowers - the United States of Kirba (USK) and The Union of Soviet Socialist Kerbals (USSK)- were locked in an escalating political conflict (The Kold War) and began looking to the skies as the new stage for their displays of power and domination. Shortly before the launch of the first rocket, a little known Kerbal by the name of Jebediah Kerman, adrift with fledgling dreams of being the first Kerbal in space, happened to be passing by a meeting between government officials as he remarked 'how great it would be to be nice to Kerbals for a change'. Little was he aware of the gravity of his words, touching the leaders with his innocent Kerbality. A deal was made, resources were pooled, and a new site for launches was proposed at the equator, making life much easier for everyone. Thus the Unified Kerbin Space Agency was born.
    }

    (Add to 'GameData/StateFunding/data/governments.settings' if you want to use!)

  7. Great job with these missions. It's huge!

    I'm playing with Kerbal Construction Time, and my build times are quite high so I found the deadlines to be a bit on the short side. So instead of doing the sensible thing and using Contract Reward Modifier (I wasn't happy with how it worked out) I went and edited all the configs in the pack. Now all missions have a minimum deadline of 1 year (except shuttle missions, they're still 30 days) and as a consequence I completely rearranged the folder hierarchy, merging likewise missions into single config files. This should make it really easy to balance (e.g. using find and replace) if desired, though gaps in missions are obscured.

    It's just intended for my own use, but I thought I'd share the results :)

    Before I upload, wanted to check permissions. (Is it okay to go ahead? Do I need to worry about licensing?)

  8. TLDR: Set texture quality to 1/4 or 1/8, install texture replacer.

    I've had these issues on OSX and have tried a whole bunch of solutions, with moderate success, so thought I'd share what seems to have helped. The game usually runs with 1.9-2g ram usage according to activity monitor (though haven't monitored recently as it's been fairly stable).

    I'm currently running around 80 plugins with acceptable stability (crashes are hours apart). Most are small or partless but I do have EVE, Ven's Stock Revamp, Station Parts Expansion and 5 USI plugins and a couple of replacement textures. It is possible! :) I play a SETI based modpack currently, though I did try RealismOverhaul and it worked with little issue. Didn't install many extra part packs however.

    System Specs:

    2.8 GHz Intel Core i5

    4 GB 1333MHz DDR3 Ram

    ATI Radeon HD 5750 1 GB graphics card

    OSX 10.9.5

    Fixes:

    1. By far the best is reducing texture quality to 1/4 or 1/8. At 1/8 I could run the game for hours with no crashes, and only the occasional crash at 1/4

    2. Texture Replacer. I've tried Active Texture Management, but it doesn't compress DDS textures (which most now are) and I found it difficult to produce results. Texture Replacer has some similar features, mainly unloading textures from ram and compression. I don't know how much of an impact Texture Replacer is actually having, but it seems to be having a positive effect.

    3. Graphics options as low as possible:

    - Terrain Detail - Low/Default. Use settings from Astronomer's Performance Improvement to reduce ocean quality while keeping Kerbin terrain at default (or Kerbals take frequent leaps through the terrain)

    - SM3 Shaders and Terain Scatters - Off. More for FPS, but turning off terrain scatters definitely reduced crashes when flying long distances over Kerbin's surface

    - Render quality at good. Simple is okay, but any lower and you lose shadows which are pretty essential for landing

    - Texture quality - 1/4. With Ven's Revamp, parts still look nice at 1/4 quality.

    - Aerodynamic quality - Low. FPS improvement

    - Screen Resolution. I did reduce it for a while, running in windowed mode (with a black desktop) which certainly helped, but I put up with more frequent crashes to gain that extra screen space.

    - AA and V-Sync off. FPS.

    - Anything not mentioned at default setting

    4. Run pruners and remove unnecessary parts and internal spaces.

    Kind of tired, may not have included everything I have done and may not make much sense, but I hope there's something helpful here! :)

  9. Couldn't find a config for Semi-Saturatable Reaction Wheels so made this one

    Just add to DangIt/ModuleManager and it should work :)

    p.s. Pretty new to making configs, so wouldn't mind someone checking it.

    @PART
    [*]:HAS[@MODULE[RWSaturatable],!MODULE[NoFailureModules]]:NEEDS[DangIt]:AFTER[DangIt]:FOR[RWSaturatable]

    And would it be better to have it this way round (set up in Semi-Saturatable folder) or does it not really make a difference?

  10. Noticed a bug when using Semi-Saturatable Reaction Wheels: some probes have two reaction wheels. Couldn't find a fix so made a config (based off of SETI-Balance for 0.9) and thought I'd share :)

    //------\\
    //---Saturatable Reaction Wheels---\\
    //------\\


    @PART
    [*]:HAS[@MODULE[RWSaturatable]]:NEEDS[RWSaturatable]:AFTER[RWSaturatable]:BEFORE[SETIctt]
    {
    @MODULE[RWSaturatable],*
    {
    @name = ModuleReactionWheel
    }
    }
    @PART
    [*]:HAS[@MODULE[ModuleReactionWheel],!MODULE[RWSaturatable]]:NEEDS[RWSaturatable]:AFTER[SETIctt]
    {
    @MODULE[ModuleReactionWheel]
    {
    @name = RWSaturatable
    %saturationScale = 10
    !bleedRate,* {}
    bleedRate
    {
    key = 0 0.025 0 0
    key = 1 0.025 0 0
    }
    !torqueCurve,* {}
    torqueCurve
    {
    key = 0 1 -1 -1
    key = 1 0 -1 -1
    }
    }
    }

    Add to the end of SETIctt-Settings.cfg, or create a new .cfg in MM-PartModding

  11. Great explanation, thanks! I know exactly what you're talking about (have noticed lights on/off, though just considered it a 'feature') and I'll give your config a try! :D

    Edit: Gave it a try, works great! Made a couple of changes so that it only affects manned parts (AFAIK no probes in my game have any animations, so the bug doesn't matter). Did this to avoid issues when starting a new career (No DP-10 unlocked).


    //------\\
    //---160km Omni Antenna on Probe Cores and Command Pods---\\
    //------\\


    @PART
    [*]:HAS[@MODULE[ModuleCommand]]:NEEDS[RemoteTech]:AFTER[RemoteTech]:FOR[SETIctt]
    {
    !%MODULE[ModuleRTAntennaPassive] {}
    %MODULE[ModuleRTAntenna]
    {
    %IsRTActive = true
    %Mode0OmniRange = 0
    %Mode1OmniRange = 160000

    %TRANSMITTER {
    %PacketInterval = 0.3
    %PacketSize = 2
    %PacketResourceCost = 5.0
    }
    }
    }


    @PART
    [*]:HAS[@MODULE[ModuleCommand],#CrewCapacity
    [*],~CrewCapacity[0]]:NEEDS[RemoteTech]:AFTER[RemoteTech]:FOR[SETIctt]
    {
    !MODULE[ModuleRTAntenna] {}
    %MODULE[ModuleRTAntennaPassive]
    {
    %TechRequired = "None"
    %OmniRange = 160000

    %TRANSMITTER {
    %PacketInterval = 0.3
    %PacketSize = 2
    %PacketResourceCost = 5.0
    }
    }


  12. Seem to be having some issues with these contracts (on Mac). Keep getting this error:

    ContractConfigurator.ContractType: CONTRACT_TYPE 'FS_Scraps': Error parsing possibleSubjectsTemp1

    It's hard to tell, but I don't think contracts are generating properly. HardScience and Experiment seem to be fine, the rest aren't appearing (though they do in a new save, still getting the error). Thought it might be to do with my messing around with ContractRewardModifier, but I took that out and still getting the error. I do have a ton of other mods installed.

    Here's my Player.log (seem to have a lot of EVE related exceptions too. I know it's nothing to do with you but happen to know anything about those? :))

    Edit: Removed Scraps.cfg for now and the errors have disappeared. Not sure about the contract generation. I do have a lot of contract packs installed which may be fighting for space.

  13. That's a limitation of what I know about the KSP API. How can you tell if a flight gets reverted? I've been playing with no-reverts for so long I forgot you could.

    It seems to happen after loading any previous save, like quicksaving/loading. My last quarter was quite amusing as I totalled 4 kerbal accidents and a bunch of crashes because of this, leading the government to actually take money from me :D (Don't know if that's intended, but I hope so because it's hilarious. Basically they're way of saying 'you're doing so badly we're taking money from you now')

    Would be useful to have a fix, as playing with mods can require a fair few quickloads because Kraken. I think if you integrated the statefunding.conf data into save files it would fix this, but I'm just guessing as I have no clue how it works really :)

  14. If you want to reduce the rate for the secondary ones I can try to come up with something. I'm having trouble thinking of something off the top of my head at the moment :P

    Up to you but I'm perfectly happy with how I have working it now! I love how customisable it is, it's incredible! (I nicked a bunch from RP-0, so now R&D building upgrades buff research speed too)

    It's not technically a bug, since most rates are calculated only once per scene (if it happened during every Update it would create a lot of lag) and you don't typically change things frequently. Just assume that if you make changes to any rates, you'll need a scene change before they take effect.

    Cool, that's pretty much what I was guessing! It seemed a bit odd in testing, but in normal game it's barely noticable :)

    Were you recovering the vessel to storage

    That's exactly what I was doing :D Most of the time I recover to storage then scrap it, because I like having a recovery timer. I'll occasionally reuse a plane, but only if I know that nothing broke (that tends to be the main culprit). I've ran into the game breaking bug upon entering the VAB/SPH a few times, but it's never broken a save yet (just requires a game restart). For something you weren't too bothered about, it's really impressive! Even if a tad unnecessary :) Is there a way to track if there's anything broken (like rover wheels) or asymmetrically exploded (like a wing) that you could use to flag a warning or prevent recovery? That sounds like a simpler workaround that actually fixing it (I'm talking out of my rear end here, I can't code! :P)

  15. Bug Report: At 40 years in game time (probably less also) data collection stops working.

    Found this on Mac and it's easily reproducible, would be great if someone could try it on Windows as well. Tested on clean install of KSP 1.0.4 with TestFlight v1.3.1 (stock configs) and BetterTimeWarp v2.0 (Though not necessary, just makes it easier to fast forward time).

    To reproduce:

    - Start a new career.

    - Check TestFlight working as normal - Launch rocket from VAB/SPH and verify data is ticking up after launching.

    - Go back to Space Centre and a) Use BetterTimeWarp to fast forward to year 40+ or B) quit to menu and edit UT to 409470000

    - Launch a new rocket (Command pod and flea is fine)

    - If bug is present, the value for du in the TestFlight window will remain at 0.00

    Javascript is disabled. View full album

    From the debug menu, it looks like it's counting MET badly, as it stay at 0 then jumps to 32 after 30 seconds. I have no idea how the mod works though so i'll be quiet now :D

    p.s. Is this mod still in development? Haven't seen much activity lately

    Edit: Almost forgot Output Log

×
×
  • Create New...