Jump to content

[1.10.0] Final Frontier - kerbal individual merits 1.10.0-3485


Nereid

KSP 1.1.0  

869 members have voted

  1. 1. Is FinalFrontier working in KSP 1.1.0?

    • Yes
      283
    • No
      68
    • It doesn't matter; this poll was just created to remove the outdated old one...
      547


Recommended Posts

Hi,

I´ve been playing ksp for few weeks and I´ve just installed FF. Great mod! But I´d like to know if there is a way to edit a save file (or other file) to add some achievements acomplished before installation of FF. But i can´t find a file where this data is stores (nor how it is stored).

Jebediah was the first to get to orbit, the first to get to the mun, but all this were done before installation. I´d like to be fair with him!

Thanks.

The plugin takes use of System.IO to store its data in the corresponding save-folder of a game. For example: If your game is called "MyGame", Final Frontier will store its data in <KSP-Install-Folder>/saves/MyGame/halloffame.ksp". It stores a configuration file in the GameData folder of KSP (version 0.3.5 or later). Release 0.8.x will do a scan for old save games in the saves folder and converts them upon permission by the user.
Link to comment
Share on other sites

Hi,

I´ve been playing ksp for few weeks and I´ve just installed FF. Great mod! But I´d like to know if there is a way to edit a save file (or other file) to add some achievements acomplished before installation of FF. But i can´t find a file where this data is stores (nor how it is stored).

Jebediah was the first to get to orbit, the first to get to the mun, but all this were done before installation. I´d like to be fair with him!

Thanks.

Nereid will know for sure but I seem to remember a long time ago he confirmed it wasn't possible then. However things could have changed. When he pops in I'm sure he'll answer if he sees your question.

Link to comment
Share on other sites

This is one of my favorite mods. I am a steam user and they auto updated my game. Now I am having issues getting this mod to work. I cannot do it. Please upgrade this wonderful mod. I am suffering!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Thank you!

Korogg - Retired Disabled VET/Retired Over The Road Truck Driver. :confused:

Link to comment
Share on other sites

Is this mod 1.0.4 compatible?

Maybe, maybe not. I started a new career mode, just for this. It seemed to work fine. But I loaded up today, after a couple weeks, and now ALL the medals, mission counts, mission time, etc, are GONE. I even went back with SAVE several times, and there is nothing to denote the careers, EVAs etc. Its all empty as if none of this had ever happened. I do use shipmanifest, so perhaps there is a conflict? I looked at the persistant.sfs file, in the ROSTER->KERBAL section the career log is intact. And the hall of fame section has entries in it like this:


ENTRY{
name = HallOfFameScenarioModule
scene = 7, 8, 5
ENTRY
{
time = 136.879999999996
name = Jebediah Kerman
code = EX+
data =
}
...
ENTRY
{
time = 20565.4452540327
name = Vercine Kerman
code = S+
data = 8.33333492279053
}
...
ENTRY
{
time = 111064.391683946
name = Valentina Kerman
code = QO
data =
}
}

Etc.

I do not have revocation enables - basically its still set to the defaults from install. Im only jsuty now changing the settings to log "trace", which I can throw on pastebin once I figure out which log to grab. I really dont want to start over. Anything I can do to fix this?

If not, then I'll mark this as a broken mod - its data is there, but its not reading it.

Edited by Murdabenne
added example data
Link to comment
Share on other sites

Maybe, maybe not. I started a new career mode, just for this. It seemed to work fine. But I loaded up today, after a couple weeks, and now ALL the medals, mission counts, mission time, etc, are GONE. I even went back with SAVE several times, and there is nothing to denote the careers, EVAs etc. Its all empty as if none of this had ever happened. I do use shipmanifest, so perhaps there is a conflict?

This is, alas, not new - read back for the "ribbon kraken" in 0.90. (I don't _know_ it's the same issue, but it sounds like it).

Link to comment
Share on other sites

I think I can replicate this now. I went to career mode, verified all the medals, mission time, etc. Put a ship on the pad, used the editor to throw it into orbit. then recovered it conventionally. Exit game, the reenter game and reload (from persistent.sfs). All medals are missing and all mission time/data missing from hall of fame display for that kerbal. its also missing from ALL of the kerbals "after" that one in the data file in terms of what order they are read in, prior to that kerbal's mission. Basically take Jebediah (or Jeb & Val, tested that too), contrive to give a completion without a beginning, and everyone "after" him (or him & her) loses their missions, medals, etc. Yet the data is in the file (verified).

That indicatest the data read-in is the issue, and that it depends on replaying the log for everyone successfully in order to get any kerbal's medals and history. So one of them gets messed up, all of the ones following are not displayed properly despite the data being there for them.

This may need to be refactored to get away from generating medals dynamically at the startup. It may be the design that's causing problems, mainly in the way the mod reads in and recalculates things every time. It seems that the initial structure/design has been outgown. That could be causing code that is hard to write, hard to maintain and hard to fix. It is likely that the the initial implementation was written without any indication that it would be needing to provide all the things it provides now. (doing more and more is one of the hazards of success perhaps?) So its no longer a fitting design in terms of support for all the added functionality. In all likelihood, it was not deliberately designed initially, it was just a quick solution around which the rest of this has grown du to the usefulness of this mod. I've done similar things myself, so I know its far from easy/trivial to do what I am suggesting.

  • Change how the mod tracks awards. Once a kerbal hits a medal completion state, record that to the personal data (something like kerbalstats or other per-kerbal based addon uses) and simply save the medals awarded, increment missions completed, and increment times tracked. No need to add date/time or anything related to events. This by-kerbal section would be the ONLY data read to determine what shows in the hall of fame.

  • Change how the mod tracks events. Don't write the events to the log until they are completed, and perhaps use a state machine (or a concept similar) per kerbal to track that. Save that state machine's state and use it to reload current status on startup, instead of reloading the log file and rereading all those events every time. Not only will this save time, it will pick up where it left off even if the event log is bad. But it will still need to validate the state machine as part of the initialization - and if its not valid, then simply write the completed things (single event or begin+end events but no partials) to the file, and reset the state machine - this way the only thing upon reading the logbook will be completed events, which can be used for setting the awards - this prevents ends without begins, which is the problem previously identified. I do assume there is some way of tagging a mission as "ongoing" giving it a temporary "on hold" terminal sate rather than an end, in the event of a save for missions ongoing; this would be counted as a begin/end pair for the purposes of logging, with the hold removed on the next load. If a new begin is noted (i.e. game crashed, got reloaded, and mission was ongoing but ended somehow) without the ending being recorded simply supply the end for it in the log as you start the new one (with a time equal to the last known event prior to the new start), as a way to recover proper state for this kerbal. This way mission times, etc can be updated without affecting other kerbals. Checking for an incomplete mission would be done every time a mission start is detected

I hate bringing up a problem and not giving at least a bit of a solution, so what follows is my first pass at this. I don't know your encoding system, so I'm going to invent one off the top of my head

AAAx.body.a

AAA = activity base - 3 letters is probably sufficient yet still readable to humans (no numbers to avoid optical confusion like 0 vs O I vs 1)

examples LND = Landing award - you could also do EVA = EVA award, ORB = Orbit, SPD = Speed m/s, SPM = Speed Mach, ALT=Altitude record, etc

x = Mark/Variation - 1-n, up to 10 or 16 if you want to go 0xN hex, and 26 more if you want to put single alpah characters, lower case to differentiate them from the AAA above

variation of the activity - ex: for landings would be like 0= basic, 1=splashdown, 2= ground landing, 3=crash landing survived (> x-G or y-m/s impact), 4 = soft landing (< x-G or y-m/s), etc

body = what SOI

kerbin, mun, etc - and catch-alls kerbol (Kerbol SOI > 100000Km inside the orbit of Mono), deepspace (kerbol SOI > 100000KM inside the orbit of Mono)

A = qaulifier for value - i.e. code for type.

c = count (integer), t=time total (seconds, including decimals), f= first (T/F), etc. For count, like military medals, get a roman numeral every 5, any other qualifiers you come up with

so for someone that has done 7 EVAs of all types in the Kerbin SOI, you'd end up with a code like this:

EVA0.kerbin.c = 7

so lets say Jeb is the first to land on kerbin, short flight, up then down, landed no problem, not soft but no crash either, just a good splash.

LND0.kerbin.c = 1 // landing basic on kerbin, count of 1, landed once - earned the Landing Award

LND0.kerbin.f = T // landing basic on kerbin, the first - earned the First Landing Achievement

LND1.kerbin.c=1 // landing splashdown on kerbin, count of 1, splashed down once - earned the Splashdown Award

LND1.kerbin.f=T // landing splashdown on kerbin, the first - earned the First Splashdown Achievement

MET0.kerbin.c = 32.3 // took 32.3 seconds MET = Mission elapsed time, 0 is all missions, .c is current, .t grand total, MET1=EVA, MET2=orbit, MET3=interplanetary, etc

MET0.kerbin.t = 32.3

So you send Jeb up again, but this time he misses the water, and executes a crash landing into the ground. You'd get these added to your awards

LND0.kerbin.c = 2 // landing basic on kerbin, Jeb's done this twice

LND2.kerbin.c = 1 // landing on ground on kerbin, Jebs done 1 ground landings now - Earned the Ground Landing Award

LND2.kerbin.f=t // landing on ground on kerbin, the first - earned the First Ground Landing Achievement

LND3.kerbin.c=1 // landing crash on kerbin, count of 1, done this once and survived, earned the Crash Landing Award

MET0.kerbin.c = 44.1

MET0.kerbin.t = 76.4

// survival is reward enough for breaking my spaceship, Jeb! if you wanted to award a first for this, it would be LND3.kerbin.f = T

Now lets lets say you gave Jeb the next mission off, and Val goes up, and she simply nails the landing in a new lander at KSC - so Jeb now gets his turn to try, but misses the land and splashes down, very gently.

LND0.kerbin.c = 3 // landing basic on kerbin, Jebs done this 3 times - no additional award until multiple of 5 then roman numeral added

LND1.kerbin.c = 2 // landing splashdown on kerbin, jebs done this twice - no additional award until multiple of 5 then roman numeral added

LND4.kerbin.c = 1 // landing soft on kerbin, Jeb done this once (but he's not the first) - Earns the Soft Landing Award

MET0.kerbin.c = 223.1

MET0.kerbin.t = 299.5

OK - lets say Jeb has 8 more landings, 2 splashdowns of which 1 was soft, 6 ground of which 1 was soft, 1 was hard, taking a total of 4854.4 second, the last of which was 698.2 seconds long - those are added in, and summarized below

The generation above results in awards for Kerbin SOI, 11 total landings on kerbin, 4 splashdowns, 7 ground, 2 crash landing, 3 soft landing, and Jeb was the first to land, the first to splashdown, the first to land on ground, the first to land hard, a total of 4854.4 seconds of Mission Elapsed Time (basic) in Kerbin SOI , the last mission elapsed time (basic) was 698.2 seconds long. Note that I am not tracking anything other than landings, since thats all I really developed in the example above.

So how would this look in the file?

Like this, with a chunk of the SCENARIO section shamelessly stolen from kerbalstats: note that kerbalstats does not involve the names but somehow indexes off them properly - perhaps this might be an technique/idea to borrow?


KerbalExt
{
experience
{
_current = Command
Passenger
{
_current = Kerbin
Kerbin
{
PRELAUNCH = 155.92000000338885
FLYING = 689.69999991630539
SUB_ORBITAL = 190.91999999193649
ORBITING = 13825.324062376571
SPLASHED = 23049.598573738454
}
}
EVA
{
_current = Kerbin
Kerbin
{
SUB_ORBITAL = 0.079999999987194315
ORBITING = 21.719999996523256
}
}
Command
{
_current = Kerbin
Kerbin
{
_current = LANDED
_currentUT = 116585.537622546
PRELAUNCH = 102.16000001304928
FLYING = 1812.2512062562528
SUB_ORBITAL = 1507.3424658315707
ORBITING = 37103.976092585508
LANDED = 7268.8544628816817
SPLASHED = 5183.3459385308815
}
}
Pilot
{
_current = Kerbin
Kerbin
{
ORBITING = 5072.9195663924475
}
}
}
profession
{
current = Pilot
}
[I][B] awards
{
LND0.kerbin.c = 11
LND0.kerbin.f = T
LND1.kerbin.c = 4
LND1.kerbin.f = T
LND2.kerbin.c = 7
LND2.kerbin.f = T
LND3.kerbin.c = 2
LND4.kerbin.c = 3
MET0.kerbin.c = 698.2
MET0.kerbin.t = 4854.4
}
[/B][/I] }

The added parts are in italics. This has the advantage of being human readable, and does not depend on anything other than a read & parse. Its is stateless, and does not need to be generated from events, and can readily generate the Hall Of Fame display even if the log has problems. The resulting ribbon bar would look like this (ignoring award precedence of course):

[Landing-Kerbin+'X'][Landing-Kerbin-First][Landing-Splashdown-Kerbin][Landing-Splashdown-Kerbin-First][Landing-Ground-Kerbin+'V'][Landing-Ground-Kerbin-First][Landing-Kerbin-Crash][Landing-Kerbin-Soft]

Missions 11, Mission Time 80 minutes 54 seconds.

I would suggest replacing the storage of awards as a first step. This has the advantage that the mod leaves the current reading in of logs, calculation etc in place to preserve current functionality, but puts into place a per-kerbal solution for the awards display to grow on, and no longer binds the awards display to their generation. This could help detect when your "read the log" dynamic generation has erred and not properly gotten all the awards dynamically generated from events due to missing data. As a bonus, this method of storage would allow users to manually award medals - which is a nice addition for users that newly install the mod to a game in progress. It also serves as a backstop in the event of a failure like the one that originally brought on this post and other's previously. In that case we (the users) can edit the save and add the award data into the character's award section. Even better, someone could write a plugin (or you could add such an interface) that does this with a GUI in-game. Only after that is stable, then move to take on the hard stuff: the award generation mechanisms. The benefit of this is that the generation mechanism can be done independently of the actual awards for display, which opens up a lot of room for functionality and redesign.

One last, admittedly radical, suggestion: collaborate with kerbalstats or shipmanifest (or both), since all address the same issue, tacking individual kerbal experience. Although each mod handles different aspects of individual kerbals experience, there is likely overlap and synergy (I hate that term but it is apropos here). Consider integration with or leveraging each other's work; shared format/data/methods/code would likely benefit all of the mods. It might even save time/effort for the authors in the long run due to reduction of conflicts as well as abstraction of common issues to a common module.

(ninja edit - reworded things to make my meaning clearer, without citing personal background)

Edited by Murdabenne
put walls of text into spoiler tags
Link to comment
Share on other sites

For me, it's an immersion breaking hickup.

Add an option to disable specific ribbons - yes, please. And an opt-in for funny eggs.

Just delete the corresponding ribbin graphics.

- - - Updated - - -

This is one of my favorite mods. I am a steam user and they auto updated my game. Now I am having issues getting this mod to work. I cannot do it. Please upgrade this wonderful mod. I am suffering!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Thank you!

Korogg - Retired Disabled VET/Retired Over The Road Truck Driver. :confused:

Can you give me a bit more precise information what went wrong?

Link to comment
Share on other sites

Where are the histories for the kerbals stored in? I want to migrate the data through installs.

In the save file. HallOfFame is the section - but its not single kerbals, they are all interleaved in event by order of time. And if you mess up even a single entry, it might and can cause all subsequent entries to not be read, so be careful.

Link to comment
Share on other sites

Where did the various Kerbin national flags come from? I'm curious to the source. I can figure out the RL analog for the majority of them.

I like to give my new hires some background history using FF (military, test pilot, civilian) and a nationality. It would be cool to see where this stuff came from. :)

Link to comment
Share on other sites

Where did the various Kerbin national flags come from? I'm curious to the source. I can figure out the RL analog for the majority of them.

I like to give my new hires some background history using FF (military, test pilot, civilian) and a nationality. It would be cool to see where this stuff came from. :)

What national flags? The only graphics this provides are the ribbons, or at least so I thought. The "flags" provided by the game are mission flags, which are space agencies and things like that. Some come from plugins. And those go on the spacecraft, not the kerbals. Is this perhaps in the wrong forum?

Edited by Murdabenne
Link to comment
Share on other sites

What national flags? The only graphics this provides are the ribbons, or at least so I thought. The "flags" provided by the game are mission flags, which are space agencies and things like that. Some come from plugins. And those go on the spacecraft, not the kerbals. Is this perhaps in the wrong forum?

Some of the ribbons are Kerbalised spoofs of real-world national flags.

Link to comment
Share on other sites

  • 2 weeks later...
This thread is quite old. Please consider starting a new thread rather than reviving this one.

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