Jump to content

[WIP] [1.12.x] Roster Manager - 0.3.0.1 KSP 1.12.x Compatibility Edition - 13 Feb 2022


Papa_Joe

Recommended Posts

With the work I've been doing on Ship Manifest, and the recent breakthrough in renaming and changing the professions of our beloved kerbals, along with the recent mods that actively manage kerbal professions via other means, I decided to breakout the Roster portion of Ship Manifest and expand it into a new Plugin. Since Ship Manifest essentially deals with Flight operations on a vessel, the Roster Feature always felt like an "afterthought". It was part of the original Crew Manifest, which I used as a basis for Ship Manifest over a year ago, but now with the way Ship Manifest has evolved, it makes more and more sense to separate and expand on this feature.

I've already got a working shell running with the base functionality of the Roster in Ship Manifest as my starting point.

However, this plugin will not end up looking like a rehash of that. My thoughts are as follows: This initial post will be updated as more info and a definition is added.

Alpha (0.3.0.0) on SpaceDock | GitHub.

For KSP-v112.3-green.svg license-CC%20BY--SA-green.svg CKAN-Indexed-brightgreen.svg

Installation:

1. Remove the RosterManager folder from your GameData folder (if it exists) before installing any new version..

2. Overwrite your GameData folder with the contents of the archive.

Roster manager is KSP-AVC aware, and will be CKAN indexed soon

License: CC BY-NC-SA 4.0.

Contributors: Papa_Joe, JPLRepo.

Source code : http://github.com/PapaJoesSoup/RosterManager

WIKI: http://github.com/PapaJoesSoup/RosterManager/wiki

Version 0.3.0.1 13 Feb 2022
 - Fixed bug with Roster Window resizing when in editor. Scrollbox resized, but window did not.
 - Changed:  Refactored loaded scene checking logic to simplify.
 - Changed:  Trimmed Installation notes. Removed version and What's new sections.  Redundant with Change Log.

Version 0.3.0.0 09 Feb 2022
 - New:  Recompiled for KSP 1.12.x
 - New:  Added window resizing to all windows
 - New:  Added kerbal suit selection
 - New:  Added Click through blocking
 - New:  Addded default window position (Persisted)  
         Sets initial window position to a default of 50px from upper left of screen. 

Version 0.2.5.1 17 Mar 2018
 - Recompiled for KSP 1.4.1
 - Fixed:  ApplicationLauncher textures no longer render correctly.  Increased image size to 128 x 128 to support Unity 2017 compression.
 - Fixed bug with creating Tourist profession kerbals.  Caused endless loop.

Version 0.2.5.0 12 Jun 2017
 - Changes to re-compile for KSP 1.3
 - Added localiztion based on KSP 1.3 localization.  English included to start.  Assistance welcome for other lanaguages.
 - Code style cleanup.  standardized strings using string interpolation.
 - Added some more tool tips where needed. Cleaned up Tooltip display code.
 - Regorganized settings window to support tabbed sections.
 - Rebuilt List management to improve performance, and revised filtering and sorting.
 - Revised Rosterlist headers to display active sort field & sort direction.

Version 0.2.4.0 30 Oct 2016  (pre-release, github only)
 - Changes to re-compile for KSP 1.2

Version 0.2.3.0 28 Jul 2016
 - Changes to re-compile for KSP 1.1.3
 - Added Items to Medical Tab:  Kerbal Type, and Roster Status. added validation and warnings to ensure user knows the impact of changing these settings.
 - Refactored tooltips to improve readability.
 - Fix bug with Tourist Kerbal Types.  Tourist Kerbal Type is now supported.

Version 0.2.2.0 21 Apr 2016
- Update mod to work under KSP 1.1.  No other changes at this time.

Version 0.2.1.0 15 Mar 2016
 - Fix issue with Loading/Saving causing errors at space centre.
 - Fix issue when Kerbals are sacked.
 - Changed DeepFreeze Integration to use new DeepFreeze wrapper API (no more hard dependency on specific versions).
 - Added Notes function. There is now one Notes area for each kerbal (2k characters max) to record whatever notes you wish, accessed by selecting a kerbal in RM and selecting the Records tab.

Version 0.2.0.0a 06 Dec 2015 
 - Compatible with new KSP 1.0.5 Kerbal Traits/naming process.
 - Up to date with DeepFreeze Mod integration.
 - Fixed Filter tab at top of GUI, and added Frozen filter (if DeepFreeze is installed)
 - Added Salaries option to Settings, also in settings you can set salaries to be paid monthly or yearly.
   - Salaries are set via Training - Experience Tab in the GUI. Default value is 10000 funds.
   - Salaries are deducted monthly or yearly, but if you do not have enough funds then the kerbals who aren't paid will go into a contract dispute mode.
     - Contract Disputes occur when kerbals are not paid their salary. Each pay period the kerbals who aren't paid will ask for a payrise (which goes up each time they aren't paid).
       All un-paid salary will accrue each time they are not paid.
       The user can accept the payrise and the kerbal will continue to work for you. However, this will only occur for 3 pay periods. At the end of the third occurrence of them not
       being paid the kerbal will go on strike (Become a tourist). Until such time as they are paid all owed money.
     - A Contracts Window is available to see all kerbals that currently are in contract dispute and allow you to accept payrise, decline (they go on strike). Or if you have
       funds available you can re-pay them all owed monies and they will go back to work for you.
     - Each month or year (salary period) funds are checked and if there are enough contract disputes are automatically resolved.     
 - Added KerbalLifeSpanInfo including Age and lifespan processing setting for each kerbal. 
   - If this setting is on all kerbals in the game will age over time and eventually die from old age.
   - If the Repawn kerbal option is on in the main game settings then they will respawn when the die (but as a new freshman again).
   - If you also have DeepFreeze Mod intalled then freezing a kerbal will stop the aging process whilst they are frozen.
   - Each Kerbals age is shown in the Attributes Tab for each kerbal and the main roster list. But the age cannot be changed. 
 - Refactored code, cleaned up code style, standardized variables and usage.

If you use DeepFreeze, you will need the latest version above to work with Roster Manager.


Version 0.1.0.0 20 Jun 2015 - Initial alpha release
- Roster interface based on Roster window from Ship Manifest, but greatly enhanced (sorting, more detail)
- In flight controls removed. These will stay in Ship Manifest. Roster Manager will not be visible in the Flight scene.
- Kerbal manager Tab buttons for various areas to manage.
- Support for DeepFreeze cryo canisters. Frozen kerbals are displayed with assigned vessel.
- Attributes Tab, contains kerbal editing found in SM. However, all kerbals can be edited.
- Training Tab contains ability to edit kerbal skill and experience
- History tab contains kerbal's flight history.
- KSP-AVC aware and CKAN listed.

Roster Manager

- Roster list - From the Roster list, you can select the kerbal to manage

- Attributes - This section allows you to change the kerbal's attributes (like in Ship manifest, but more control and no limit on which vessel. Will be affected by realism...

- Records (career file) - This is where all management functions will reside. In the personnel file we can manage:

o Salaries - Kerbals don't work for free, so some cost for each kerbal should exist. We will pay a salary to each kerbal on the roster, on a Biweekly/ Monthly/ yearly basis, (configurable). Salaries can be adjusted for realism and playablility.

o Stats Editing - Editing stats. You can change the Primary profession, name, and other properties of your kerbal.

o Notes - A simple editor that allows you to add notes to your kerbal

* Training- Training is a means to increase your kerbal's experience through training. Training can consist of time spent away from flight learning specific tasks, or via Simulations such as in HoloDeck mod.

- Cross Training (multi Profession) It will be possible to maintain multiple professions. Through training and flights, you can increase a specific profession by selecting that profession for a given flight.

o Experience - Experience is gained thru flights. With RM, experience can also be gained thru training on specific tasks and thru Simulator training using HoloDeck. Training will increase the experience level of your Kerbals in the profession for which the training occurs.

o Flight / Simulation Log - Flight history and Simulation history will be stored in your Kerbal's personnel file

-Vessel flown

-Dates of filght

-Results

-Accomplishments

o Crew Performance - Crews that stay together fly better together. It will be possible to improve the performance of a given crew through training and Simulations performed together. Kerbals with more time together will perform better on a given flight.

o Accomplishments/Achievements - using Other addons, accomplishments can be gathered and added to your Kerbal's personnel file.

o Medals - Medals for significant achievements can be earned.

o Medical / Psych - Your Kerbal's abilities can be impacted by their medical condition and sanity. While no insane kerbals are possible (yet), (no suicides, sorry), their mental state will impact their skills. Things like time in space alone, traumatic events like crash landings and such can affect their abilities for certain periods of time.

  • Kerbal Type and Status are now here.   Since medical typically approves kerbal for flight status... It made sense to include it here... ther are restrictions to flight status, so if you pick unusual settings, the Medical Team will warn you against these rash choices....

- Recruitment/Termination - It will be possible to hire/fire Kerbals. Fired Kerbals will be removed from the game permanently (Will impact the game save).

- Scheduling - It will be possible to schedule kerbal crews and crew rotations, vacations, have impacts to crew due to illness, and medical issues.

- Settings

o Reputation/Currency

o Realism

o Scheduling

o Recruitment / Termination

- Persistence - This Mod will change the game save. This allows the management of many parts of the kerbal's experience, profession, and accomplishments.

I'll be placing this in a PDF on the GITHUB site I will be creating to make it easier to read..

The Idea behind this mod is to extend the Kerbal experience, provide some control, and provide an ecosystem around them. I intend to leverage the available mods around this theme and attempt to maintain compatibility as much as possible.

At the moment I'm looking at leveraging and compatibility with CrewQueue, HoloDeck, KerbalStats and other mods.

Suggestions and comments are welcomed.  Your thoughts/suggestions are welcome.

If you can think of a better Name for the Mod, I'm certainly up for discussion on that as well...

Thanks!

Edited by Papa_Joe
New Version, 1.12.3 compatibility bug fix
Link to comment
Share on other sites

9. Show each kerbal's flight history. Allow editing of this history in God mode.

I'd love to have a means of appending notes to individual crew. Just a simple text editor to write down whatever I'm planning for that one kerbal.

What kind of realism restrictions are you thinking about?

Link to comment
Share on other sites

I'd love to have a means of appending notes to individual crew. Just a simple text editor to write down whatever I'm planning for that one kerbal.

What kind of realism restrictions are you thinking about?

Notes would be possible, like a personnel file. I could add them to the game save most likely, or a separate persist file (less intrusive of the game save)/ We could go "nuts" and generate a resume for each candidate... (RP anyone?)

Restrictions would be along the lines of not being able to change a kerbal's flight log, allowing name changes, but no profession changes, no attribute changes (once stupid, always stupid) etc. Other restrictions would be career based, such as cost to hire "experienced crew", selection of Experience just like in the application process. You get to select from a list, but can't totally customize the choices. Things like these.

But, since I like choice, god mode would of course allow these things.

"Astronaut Complex Plus"

Or something like that. I'm not great with names :D

I kind of like that. I am going for something that could have a similar look and feel, only on steroids... :D

Edited by Papa_Joe
Link to comment
Share on other sites

Most of these features, including the notes for a personnel file, are features I've wanted to code in a plugin myself. I just haven't had the time to do more than scribble some notes along the lines of "Wouldn't it be cool if...". I'm definitely subscribed to this thread - I look forward to seeing what you come up with.

Link to comment
Share on other sites

Most of these features, including the notes for a personnel file, are features I've wanted to code in a plugin myself. I just haven't had the time to do more than scribble some notes along the lines of "Wouldn't it be cool if...". I'm definitely subscribed to this thread - I look forward to seeing what you come up with.

Awesome.

If you do find yourself with some time and the desire, I'm certainly open to collaboration. As with all my efforts for this community, licensing will be CC BY-NC-SA. I'll be uploading my work to Git soon. If you get the gumption, we can communicate on ideas, division of work, etc.

What ever makes the mod better and more useful to the community I say. :D

Link to comment
Share on other sites

I wanted to post this as suggestion in Ship Manifest thread, but figured would make more sense here now.

Will you add the ability to turn off the stock crew transfer? Or at least make it respect realism mode.

Actually it makes more sense in the Ship Manifest thread, as that would be a function used while in flight. But to answer your question, I hadn't looked at that but I certainly can. Iirc, CLS disables the stock transfer behavior and makes it respect living spaces... I'll verify that. if it does not, I'll look into disabling the stock behavior when in realism mode and using CLS.

Yup, I was right. With the release of CLS 1.0.10.0, Kerbal transfers from one part to another cannot be accomplished if the living space is not connected. I just verified in the code, and confirmed in flight. I closed a hatch to a capsule, and tried to move a kerbal from the capsule to a Hitchhiker storage container. it failed and gave the proper screen message message that the destination could not be reached. So, if you desire this restriction, I suggest you install CLS if you have not already done so. This can be overridden in the CLS window by checking "Allow Unrestricted Transfers"

does this/will this allow you to set up an exact lineup so that one set of kerbals will not show up 2 times in a row (Jeb flies one mission and then, until the current lineup is exhausted, will return to him)?

Interesting. I'm thinking that could be possible. KSP already has a mechanism for dead kerbals. There may be a way to make that happen. I'll investigate that as a feature as well... makes perfect sense... crew rotations...

Edited by Papa_Joe
Link to comment
Share on other sites

Actually it makes more sense in the Ship Manifest thread, as that would be a function used while in flight. But to answer your question, I hadn't looked at that but I certainly can. Iirc, CLS disables the stock transfer behavior and makes it respect living spaces... I'll verify that. if it does not, I'll look into disabling the stock behavior when in realism mode and using CLS.

Interesting. I'm thinking that could be possible KSP already has a mechanism for dead kerbals. There may be a way to make that happen. I'll investigate that as a feature as well... makes perfect sense... crew rotations...

Yeah, because the lack of crew rotations is the one thing that truly annoys me with the game at this point!

Link to comment
Share on other sites

Yeah, because the lack of crew rotations is the one thing that truly annoys me with the game at this point!

Nice idea, if kerbals had some kind of energy bar which when empty would disable kerbals' abilities to collect science, repair things and disabled advanced SAS maneuvering. Possibly even other modded EVA functions.

EDIT: Will this be standalone or dependent on KerbalStats?

Edited by Enceos
Link to comment
Share on other sites

Nice idea, if kerbals had some kind of energy bar which when empty would disable kerbals' abilities to collect science, repair things and disabled advanced SAS maneuvering. Possibly even other modded EVA functions.

EDIT: Will this be standalone or dependent on KerbalStats?

Interesting... a fatigue bar. They do limit EVAs for that reason at NASA.

Very good question. I've not looked at KerbalStats. Sounds like I need to :D

Edited by Papa_Joe
Link to comment
Share on other sites

  • 4 weeks later...
How's the work going? )

I've been monitoring the forums for potential impacts to my addition of renaming, and this has provided me some insights as to next directions. Not much code progress yet, but much "brain storming".

Idea: hiring experienced Kerbals costs you reputation. There doesn't seem to be any other use for the resource right now.

Rather than costing reputation for hiring, how about costing reputation for "losing" kerbals, flight faliures, etc? I don't know if reputation affects contracts, but I seem to recall something in that direction mentioned. I haven't played with the career mode yet, but it appears I will have to. Likely I will use SETI when I do, as it seems to be pretty cool as a balance mod.

At the risk of being a bit impolite to the OP, I'm going to plug my own mod which implements crew rotations.

No worries. Everything we do is in an effort to improve the gaming experience for everyone :D. I can see where both mods can play together. Crew rotations is a definite need, and one you have already managed to solve it seems :)

Now based on reviewing your thread, it seems we will need to "work together" to make sure that Roster Manager and Crew Rotation continue to work together. I will be removing Roster feature from SM and moving it to Roster Manager, as it really does not belong in SM anymore with its current focus on the Vessel and flight.

Crew renaming and profession management are both features will need to be supported, and we may well can work out a framework to allow it for all.

As I mentioned in your thread, KerbalStats may be the solution, as it provides an API framework and persistence model to work from...

Edited by Papa_Joe
Link to comment
Share on other sites

Rather than costing reputation for hiring, how about costing reputation for "losing" kerbals, flight faliures, etc? I don't know if reputation affects contracts, but I seem to recall something in that direction mentioned. I haven't played with the career mode yet, but it appears I will have to. Likely I will use SETI when I do, as it seems to be pretty cool as a balance mod.

Well, both would be good tweaks. Personally, I've never lost a Kerbal. So for us meticulous players who pre-plan everything and add safety features to our rockets (ie, launch abort systems), its not much of a challenge.

Realism-wise, it would make sense for a space agency to lose credibility and respect whenever an astronaut dies (ie, NASA & Challenger)... which is what the stock game does right now. Gameplay-wise since experience, science, funds and reputation are all in essence "currencies" it would be nice to have a way to spend each of them. Funds buy building upgrades and rocket parts, experience upgrades your kerbals, and science buys new technology. But what about buying Kerbals??

Right now there is no way to spend reputation except for in converting them via strategies into other currencies, but if you are talking about hiring (experienced?) Kerbals I think it would make a good fit conceptually. Think about it - in politics, you expend "political capital" to get other politicians or leaders to follow your will. Its a trade-off, and your political capital isn't endless (president can only ask others to go so far without having to give something back in return).

Unfortunately, everyone I have talked to about this has been resistant to the idea, but I'm not sure why. Reputation is kind of a limited/broken gameplay mechanic, IMO. It only goes down through failure, but there is no balancing mechanism.

Link to comment
Share on other sites

Well, both would be good tweaks. Personally, I've never lost a Kerbal. So for us meticulous players who pre-plan everything and add safety features to our rockets (ie, launch abort systems), its not much of a challenge.

Realism-wise, it would make sense for a space agency to lose credibility and respect whenever an astronaut dies (ie, NASA & Challenger)... which is what the stock game does right now. Gameplay-wise since experience, science, funds and reputation are all in essence "currencies" it would be nice to have a way to spend each of them. Funds buy building upgrades and rocket parts, experience upgrades your kerbals, and science buys new technology. But what about buying Kerbals??

Right now there is no way to spend reputation except for in converting them via strategies into other currencies, but if you are talking about hiring (experienced?) Kerbals I think it would make a good fit conceptually. Think about it - in politics, you expend "political capital" to get other politicians or leaders to follow your will. Its a trade-off, and your political capital isn't endless (president can only ask others to go so far without having to give something back in return).

Unfortunately, everyone I have talked to about this has been resistant to the idea, but I'm not sure why. Reputation is kind of a limited/broken gameplay mechanic, IMO. It only goes down through failure, but there is no balancing mechanism.

I understand your point.

I think the reason for the "resistance" is the notion that "losing reputation" as in spending it, denotes a certain negative connotation. If you were to treat it like a currency as you say, then as long as you don't go negative it would not be considered a bad thing?

With that point of view, I can see "spending" rep.

Link to comment
Share on other sites

  • 4 weeks later...
Is this still being worked on?

Yes.

I've been in the middle of an update to Ship Manifest to add multi-part and multi-resource transfers... That is in test now. I expect to release that soon after the release of KSP 1.0. Then it is back to Roster Manager full time. (except for bug fixes for SM. :D)

Link to comment
Share on other sites

Yes.

I've been in the middle of an update to Ship Manifest to add multi-part and multi-resource transfers... That is in test now. I expect to release that soon after the release of KSP 1.0. Then it is back to Roster Manager full time. (except for bug fixes for SM. :D)

Nice - been looking for a decent crew log / manager for a while. Used FinalFrontier for a bit, but it was too buggy and didn't really fulfill my needs as afar as crew rotation.

Link to comment
Share on other sites

Nice - been looking for a decent crew log / manager for a while. Used FinalFrontier for a bit, but it was too buggy and didn't really fulfill my needs as afar as crew rotation.

Sounds good. Start posting your wish list :D

Link to comment
Share on other sites

  • 2 weeks later...

Just an update.

I've released Ship manifest 4.2.0.2 which included almost all the major features I expect to add to it. SM will of course require maintenance and there will be smaller features I'm sure, however, I'm now finishing up the wiki for SM, so RM is next.

I've noted a few mods have recently come out or have been updated for KSP 1.0 that address portions of what I had planned, so I will be going over them to ensure that I do not break compatibility with those mods as I develop mine.

The Gender feature I added to SM will be ported over to Roster Manager, so you will not lose that functionality once RM is released and i remove Roster features from SM.

Link to comment
Share on other sites

Sounds good. Start posting your wish list :D

I'm looking for something that will

- Keep a log of each Kerbals missons. Vessel name, date launched, date returne to Kerbin. Free form notes here would be awesome.

- Define a crew rotation system (round robin, flight teams, or specialist teams) and assign the appropriate Kerbals to new craft for me in VAB/SPH.

- something that kinda bothers me with the current profession system is that a pilot doesn't know how to turn a wrench and the engineer doesn't know how to read n altimeter. Would it be possible to be "cross train" Kerbals to be able to perform the other professions tasks at reduced efficiency?

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