Giter Club home page Giter Club logo

humanresources's Introduction

Preview

[JPT] Human Resources - Beta

A technology overhaul for RimWorld

>>> DOWNLOAD IT HERE <<<

So, the brainiac in your colony spent a whole week locked up in his lab and discovered solar power. Great! Now, how exactly does the builder figures out how to actually build the damn solar panels? Or else: your hunter has been using only bow and arrow for his whole life, so how the heck is he going to operate the space-age pulse charger you just gave him? How can someone grow peaches if he's never seen a peach tree before? Craft a full armor set without knowing how to smith? What if your pawns had to actually learn their stuff before putting a new technology to use?

This experimental mod with far-reaching consequences completely changes the way research plays out in the game. No longer some abstract concept, technologies become actual knowledge your pawns need to learn from methodical research, by studying the proper books (yes, you get to build a library!) or, when it comes to weapons skills, to be acquired by arduous training (yes, you get to build a dojo!). Proper knowledge of what they're doing will be mandatory for them to build and repair structures, follow recipes, grow crops and equip weapons. This will make you care a lot more for your colonists and give you a whole new perspective on recruiting. It will also raise new obstacles to developing your colony, making the game harder while adding gameplay depth. We hope you're up for the challenge!

Warning #1: Not suited to be added mid-game.

Please, start a new one.

Warning #2: This mod relies on ResearchTree (or one of its branches, ResearchPal or ResearchPal - Forked).

If you don't use one of them yet, what are you doing with your life? They're pretty much mandatory mods. Please, choose one and install it. We could have incorporated Fluffy's code into ours, but we'd rather mantain a lean mod and give you an incentive to get to know and support his work.

Warning #3: This mod was designed to kick your ass!

It's supposed to turn RimWorld into something [url=youtu.be/JVI_Mo02auo]like this[/url]. If you can't handle it, maybe it's not for you.

This is how it works:

Knowledge is power.

Tech Tab

Every pawn gets a new inspector tab: Tech. It displays everything he or she knows: technological expertise on one side and weapons proficiency on the other. Both lists are derived from the current game database, so all modded research projects and weapons are automatically included. Newly generated pawns, including NPCs, are assigned a number of techs based on his faction tech level and his background. That number depends on a pawn's age and faction level: tribals get more and cheaper techs, and the more advanced their starting level is the more specialized they tend to be. This list limits what a pawn can build, repair, grow or craft. To acquire new knowledge, he or she will need to study! That's one of the uses of the new study desk.

The weapon proficiency works similarly, limiting what weapons the pawn can equip. Any weapon that's linked to a research project will require the pawn to learn how to use it before equipping. Some simple weapons are exempted, and specially good shooters and brawlers start with better weapon knowledge, as do pawns who know how to craft their own. But all pawns will have to spend some time training at the training dummy or the target stand if they want to wield the latest weapons and stay on top of their game.

Books are mandatory.

Books and Shelf

Yes, books! This is how humanity stores and shares knowledge and this is how you're going to store and share your technology now. There's a book for every research project on the game (even modded ones), and you can only unlock a technology when you add that book to your library. Of course, this is RimWorld, so finding useful books is not so easy. You can eventually buy them from the new specialized traders, but that's expensive and they rarely visit. You can maybe get them as a quest reward too. But mostly you'll have to write them yourself, by assinging a colonist to a document technology task on the study desk. He will only be able to write about what he knows, of course! This means in order to expand your horizons you'll need to either recruit more talents or do some research!

Researching is hard.

Researching with Human Resources is a little different from the base game. When you select a technology to be researched, you'll need to task an individual colonist. They must be assigned for researching, as usual. But when they do, their work no longer outputs to the research project on the main research tab, but to their own individual expertise instead. And it takes a little longer. If the tech you're researching has any pre-requisites, your pawns will only be able to proceed if they already mastered those. On the other hand, if what they are researching is itself a pre-requisite to something they already know, their research speed is doubled.

As you can see, technology improvement for your colony will become it's own production chain:

research tech > document it into a book > add book to library > study tech > do stuff with it.
(research bench) (study bench) (book shelf) (study bench) (build/repair/grow/craft)

Full details and guide on how to use this mod here

Compatibility

We simply cannot test it with every mod out there. All we can do is design for maximum compatibility and hope for the best. If you're unsure, please give it a shot. If you stumble on any problem, let us know and we'll do what we can to fix it.

Check the full compatibility notes for various mods.

Please report issues with Combat Extended to its authors, as it is too hard to patch for.

Available Languages

EN, FR, JP, PT, PT-BR, RU, ZH. (Help translate it into yours, just drop me a line.)

Acknowledgements

Borrowed code from Fluffy's Research Tree, Jecrell's RimWriter & notfood's ThingDef injection for Psychology. Training Dummy and Target Stand originally designed by Shinzy for Practise Target. Some textures based on designs by Freepik. Code contributions by ElliottCable, Maeyanie, Mehni, MinerSebas, Reiquard and Toby222. Translations by leafzxg (ZH), Miyuri (ZH/JP), Rémi Dupouy (FR), Qux (FR), WolF8RocK (RU) and Reiquard (RU). Made possible thanks to the help of Brrains and erdelf on the Harmony Discord channel. Many thanks to all these awesome people!

humanresources's People

Contributors

elliottcable avatar jptrrs avatar leafzxg avatar maeyanie avatar minersebas avatar reiquard avatar zxfksie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

humanresources's Issues

Unable to apply techprints

So I saw this in my actual play through and, just to make sure it wasn't a mod compatibility, ran a clean game with just the mod, research tree, and hugslib. I made sure the pawn I was using had learned all of the pre-req techs, but I tested about half of the techprints and was unable to apply any techprints to start researching techs which require tech prints. The game did not kick anything over to the error log, only gave the error "cannot apply: No un-reachable, un-reserved research bench available."

Just for sanity check, here are my logs:
https://gist.github.com/HugsLibRecordKeeper/1e1e1be944869379b0abe77f59829911

Error with SimpleSidearms

Hello,

having a blast playing with your mod, its a really nice additions to Rimworld!
Beside the lagging from the LearnWeapons Class which someone already mentioned I also got this error which I mostly can not reproduce. It happens randomly with one colonist who has one range and one melee weapon equiped via the simple side arms mod Link to the Error Log Line and after its first occurrence it starts repeating every about 5 seconds.

Only way to find out which colonist is buggy is to draft all colonist until the error occures again with this error message here where you can see that my colonist "Slick" was causing the issue.
Which fixes the problem until it occures again.

I could attach a save file too if needed.

Full HugsLib Log:
https://gist.github.com/154e22f9548a30e1bd19973cd037f375

Compatibility issue with Turn it On and Off

Captain Cookie:
Bug #1: With a large modlist, I only encountered one possible incompatibliity, though it's likely minor, if it even does anything. Turn it On and Off conflicts with your new research bench, mentioning that it found a duplicate Key. You can see it here. Ignore the other errors, those were present before your mod was installed. The error starts at line 1176.
It should be noted that your research bench does properly interact with the mod, and it uses only 1W when no one is using it. Curiously, the power use goes up when someone is walking towards it, and stays up until they are done researching.

Right-click interactions with "Simple Sidearms" and "Awesome Inventory"

Captain Cookie:
Bug #3 (Unknown "incompatibliity") When loading my entire mod list that I currently use, I ran into a strange bug. While others have mentioned not being able to right click weapons a pawn has no knowledge in, my set of mods let me. The equip message was replaced, saying the pawn thinks the weapon was evil and they won't touch it. However, the pawn could then pick up (not equip) a weapon they had no proficiency or knowledge in. They could also haul it. It seems they were only unable to equip it. No other restrictions existed.
However, when the necessary research was discovered, the message that the weapon was evil now stated that a pawn was simply untrained. Upon training to use the weapon, it worked normally and they could equip, haul, or pick up the weapon. Ironically, this bug seems to fix a bug present in the mod. Without your mod, this message did not appear, so it's possible one of the mods I'm using is interacting in a positive way with yours.
Curiously, pawns incapable of violence were not able to right click these weapons, similarly to how your mod currently works.

Update to Bug #3 I mentioned: The ability to right click an unknown weapon is restored by BOTH "Simple Sidearms" and "Awesome Inventory" but only when they are loaded before Human Resources. When loaded after, I am still unable to right click unknown or untrained weapons with a pawn. "Simple Sidearms" allows hauling normally with a right click, while "Awesome Inventory" does not. Both mods also allow a pawn to place a weapon in their inventory without explicitly equipping it. Unfortunately, once in their inventory, "Simple Sidearms" will make the pawn automatically equip the weapon if they had no other weapon equipped before. "Awesome Inventory" will NOT force an auto-equip if the weapon is in a pawn's inventory, however, once a pawn has a weapon in their inventory, the player can still MANUALLY equip the weapon from the pawn's inventory. No other mods I use seems to replicate these behaviors.
Not a game breaking bug, but potentially unbalanced, particularly "Simple Sidearms" allowing pawns to easily get around weapon restrictions even by accident.

Incompatibility with RimWriter

Areskiko:
Massive incompatability with rimwriter by jecrell. Not only does the game fail to generate your pawns, it also seems to break hugslib's log publishing

Error spam

After the recent update i keep getting spammed with this error:

Exception in RimWorld.ThinkNode_ConditionalColonist TryIssueJobPackage: System.NullReferenceException: Object reference not set to an instance of an object
  at HumanResources.HarmonyPatches.CheckKnownWeapons (Verse.Pawn pawn, Verse.Thing thing) [0x00000] in <4510f464dc0c4c39a4b9543ee198e425>:0 
  at HumanResources.SimpleSidearms_Patches.equipSpecificWeapon_Prefix (Verse.Pawn pawn, Verse.ThingWithComps weapon) [0x00022] in <4510f464dc0c4c39a4b9543ee198e425>:0 
  at (wrapper dynamic-method) SimpleSidearms.utilities.WeaponAssingment.DMD<DMD<equipSpecificWeapon_Patch1>?-1154909184::equipSpecificWeapon_Patch1>(Verse.Pawn,Verse.ThingWithComps,bool,bool)
  at SimpleSidearms.utilities.WeaponAssingment.equipBestWeaponFromInventoryByPreference (Verse.Pawn pawn, SimpleSidearms.Globals+DroppingModeEnum drop, System.Nullable`1[T] modeOverride, Verse.Pawn target) [0x001c1] in <5a2ff91a1eef49959bb87409a99ac288>:0 
  at SimpleSidearms.rimworld.JobGiver_QuicklySwitchWeapons.TryGiveJobStatic (Verse.Pawn pawn, System.Boolean inCombat) [0x0005a] in <5a2ff91a1eef49959bb87409a99ac288>:0 
  at SimpleSidearms.rimworld.JobGiver_QuicklySwitchWeapons.TryGiveJob (Verse.Pawn pawn) [0x00001] in <5a2ff91a1eef49959bb87409a99ac288>:0 
  at Verse.AI.ThinkNode_JobGiver.TryIssueJobPackage (Verse.Pawn pawn, Verse.AI.JobIssueParams jobParams) [0x00000] in <0ee2c524c4be441e9b7f8bfcb20aca6f>:0 
  at Verse.AI.ThinkNode_Priority.TryIssueJobPackage (Verse.Pawn pawn, Verse.AI.JobIssueParams jobParams) [0x00022] in <0ee2c524c4be441e9b7f8bfcb20aca6f>:0 
Verse.Log:Error(String, Boolean)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.Pawn_JobTracker:DMD<DMD<DetermineNextJob_Patch5>?1749245696::DetermineNextJob_Patch5>(Pawn_JobTracker, ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:DMD<DMD<EndCurrentJob_Patch1>?646809344::EndCurrentJob_Patch1>(Pawn_JobTracker, JobCondition, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:DMD<DMD<Tick_Patch3>?1902729088::Tick_Patch3>(Pawn)
Verse.TickList:DMD<DMD<Tick_Patch2>?-586250496::Tick_Patch2>(TickList)
Verse.TickManager:DMD<DMD<DoSingleTick_Patch2>?233748992::DoSingleTick_Patch2>(TickManager)
ZombieLand.Verse_TickManager_TickManagerUpdate_Patch:TickZombies(TickManager, Int32)
Verse.TickManager:DMD<DMD<TickManagerUpdate_Patch0>?1712271104::TickManagerUpdate_Patch0>(TickManager)
Verse.Game:DMD<DMD<UpdatePlay_Patch2>?-1631931776::UpdatePlay_Patch2>(Game)
Verse.Root_Play:DMD<DMD<Update_Patch2>?2083319168::Update_Patch2>(Root_Play)
`

I can't seem to get it to stop/find the cause. I'd attach a log but I have way to many mods for it to be helpful besides showing this error.
I'll look at it some more, see if I can narrow it down and give you more/better information, but I figured I'd report it now anyway.

Incompatibility with TechBlock

The Mod in Question:
https://steamcommunity.com/sharedfiles/filedetails/?id=1970774610

Actual Problem:

  • The Understanding Techs this Mods adds, do not get a reduced Techcost for researching Techs of the same Level. (Regardless whether a Pawn has itself learned the other Techs or wrote them down)
    • The Research cost reduction should probably be by Pawn and not Global.
  • Finishing an Understanding Tech doesn't give the Research progress in other Techs.
    • Even if it would work, it would create more Problems:
      • If the added Progress adds enough to finish a Tech, it circumvents the need to write a Book.
      • If the Progress isn't enough, then the added Progress is wasted.

Solution:
The mechanics of TechBlock goes against the Intent of this Mod.
Due to this, the Mod should be officially declared incompatible in the About.xml

Pawns sometimes(?) do Document Technology before Study Technology, ignoring task order

Scenario: There is one Study Desk. Top task Study Technology assigned to particular pawn (with available, prerequisites met, unknown-by-pawn technology selected). Second task Document Technology assigned to all pawns (particular pawn knows an unrecorded technology). The particular pawn will Document Technology first, seemingly ignoring the task order in the bench's queue.

The technologies at issue in my example, if relevant, are Document (Natural Internal Organs, from Questionable Ethics Advanced) and Study (Electricity).

I can override the default by ordering the particular pawn to study or document, without issue, but commanded tasks don't last long, and the pawn quickly reverts to the behavior described above.

With the Z-Levels mod, Colonists won't research on their own anymore

The Error:
Colonists never execute the study job on their own. It has to be constantly manually forced to make them do research with both the Zlevels and HR mods active together.

Modlist was trimmed down to just Harmony/core/Hugslib/ResearchTree/HumanResourses/ZLevels. I tried different order of the last three mods but the issue never resolved.
In order to trim down 150 mods to these two, I kept generating a new world and new map and turning on god mode with dev to drop a research bench with a bill with technology assigned to it to see if any colonists would research at the bench. The mods were never loaded mid-save.

HugsLog: https://gist.github.com/HugsLibRecordKeeper/56cad93821d1fab793fe2615ff21628e

Forcing a colonist will make them actually study as intended, but they'll never do it on their own and will eventually stop after a short time making it sadly unplayable.

Z-levels mod link as asked: https://steamcommunity.com/sharedfiles/filedetails/?id=2127428910
But I will CC to the Z-levels mod author as well.

Pawns that refuse to work will still Learn

Pawns that refuse to work (usually from quests) will still perform Learn tasks. Vanilla tasks available to such pawns are solely Patient and Bed Rest.

It's presently a nice way to get free technology...

Add a way to see tech-prerequisites.

Jernfalk:
Hey man, awesome mod, using it a lot. But please, add a way to see tech-prerequisites (since later techs need an installed Multi-analyser to see the path, which doesn't exist) or maybe make the mod auto-queue the necessary research for the selected item.

Bypasses to equipping weapons restriction.

Captain Cookie:
Bug #4: Awesome Inventory's "Find and equip weapon" feature allows pawns to equip weapons they have no proficiency in. This feature can at least be turned off.

Training Weapons causes Lag Spikes

Hey again, I found another thing to look into.
I set up a Target Stand to start teaching my colonists. Shortly after I set up a bill, lag spikes of almost 10 seconds started happening. I used Performance Analyzer to get this:

Human Resources Training Lag Spike

Pretty much confirms that the Target Stand training bill is responsible.
The Bill is set to:

  • Any Worker
  • All weapons

I have a feeling the spikes are a reflection of the number of ranged weapons in my heavily modded game. I am gonna do a bit of testing to see if the issue is deeper than that.

Fast Study, with no tech chosen, repeated forever

Hello again!
So I recently befriended a pawn who crash landed in my base. Fair enough. He had a couple modern techs that I didn't have, but I didn't bother documenting them as his intellectual score was too low at the time.

So I set him to study everything, to boost that up. It worked for the rest of my pawns, who were all from tribal level backgrounds.

After an hour I noticed that whenever he was studying, he got stuck repeating an empty, no error causing study job over and over.

It turns out, that if you have a job that says study everything, as opposed to just, say, neolithic and medieval, that the pawn won't learn any of the basic techs at all, except for when you force them to a desk. When they continue at that desk for the second research, or when they decided to study on their own, they'll study nothing, with a quickly filling progress (5-ish seconds) bar over and over.

As you surmised, changing the study techs to just the first two tech ages stopped the repeating issue.

I think it has to do with a pawn trying to study a tech that's a pre-req of one of the ones they know, but that you don't actually have researched yet. I could be wrong.

List of weapons unlocked for training carries over to a loded game.

Captain Cookie:
Bug #2: When completing research, whether through your mod's methods, or simply debug unlocking research in the research tree, bills for weapon proficiency training shows up properly. However, if a different save file is loaded, the bills that show up are those from the previous save.
For example, if one file has smithing and is loaded first, a pawn can train to use maces. If a file is then loaded that does not have smithing research, a pawn can still train to use maces.
If the file without smithing was loaded first, it would correctly not have the mace training bill. If the file that does have smithing research is then loaded, it will incorrectly not have the mace training bill. Quitting to the main menu does not fix this.
Restarting the game does fix this. The first save file loaded will populate the weapon proficiency bills. Not a game breaking bug, but bad if a player does not know how to fix it.
This bug is easily reproduced. I only had the necessary mods installed, including Research Pal, no others.ain Cookie

Resrict "Study technology" by skill level?

Is it possible to restrict the "study technology" job by skill level? It would be nice, for example, to only have my crafters learning how to make advanced items or only have my science-gurus learn how to make top-tier drugs (because they're the only ones with the necessary skills to do the job once it's learned). At the moment even my menial worker (who hauls and cleans full-time) is learning all of these techs he's never going put into practise.

I'm guessing it's probably a little trickier than with most workbench jobs, since you'd have to be able to select the skill on a per-job basis instead of the skill being inextricably linked to the job, but I figured it was worth asking.

Prison Labor Incompatibility - Prisoners Learning Techs from Books

So, I've found a slight incompatibility with Prisoner Labor.

While it is completely possible to make prisoners in the Prison Labor mod document techs that they already know, there is no way to make them learn techs from books in linked bookshelves. Or any at all, really (ie, the ones you get even if you start as a 'New Tribe').

Save-file editing so that the prisoner gets the appropriate tech (Stonecutting, in this case), lets them use the workbench that they weren't able to use before. (Rock Mill from Fertile Fields, and Electric Stonecutters Bench from Vanilla Furniture Expanded - Production, both with 'Make any Stone Blocks')

Steps taken to isolate issue: Prison Labor, all labors enabled, all schedule set to anything for prisoners, full motivation and near full mood. Workbenches set up with and without prisoner-only bills, both within and outside of prison-only labor area zones. All workbenches had a book shelf linked, and prisoners failed to work with any bench to learn techs when specified tech book was in or out of book shelf. No errors, red, showed up. I believe no yellow error showed up in the console, but I closed my game at the point where I'm typing this out, so I can't be certain Nothing showed up in the post-game log file, at any rate, other than one colonist getting a hell of a lot of 10 jobs in one-tick followed up by 10 'tried to learn a null project', but that's probably due to the tests that I was running, and the prisoner-only workbench and zone authorization.

I've noticed that prisoners can't research technologies either, but this seems less important, as you wouldn't want them to do so. I did the same tests for this, btw. Also, with Intellectual scores in the 0's and 1's, it'd take a hella long while anyways.

Fun note: You can set bills to create a second tech book, which I will make use of in the future for 'job class-specific training rooms. All you need to do is drop the specific tech from a bookshelf and keep it un-allowed, and you can document it a second time. Good stuff. (The reason for the rooms and duplicate books: Everybody needs Electricity, but not everybody needs to know the GeneticRim Tech's.)

Minor note: It takes quite a bit of micro to put a specific book in a specific book shelf. Fasted I've found is to eject/drop the book from the book shelf, allow it, force a pawn to pick it up, draft them, move to the new book shelf, drop the book, undraft, and force them to haul it.

Incompatibility with Simple Search Bar [minor, non-interaction]

Simple Search Bar adds a search bar to help filter bill ingredient lists and stockpile options.

Straight up, does nothing with this mod's bills. :-D It shows up, but no filtering occurs if you type into it.

It also may be a source of the lag that occurs when I try to select a tech, if it's firing it the background all the time, but that may also be because of my 800 techs. :-p

Pawn unable to train if known weapons is also selected.

Captain Cookie:
Bug #5: When a bill to train in a melee weapon is created, a pawn is unable to do so. Only when the Club is deselected from the bill options is the pawn able to successfully train in a new melee weapon. This only happened on my heavily modded save, it is unclear what mod is causing this strange bug, and why. Presumably, when a pawn has proficiency in certain weapons, and those weapons are also selected in the bill, they will block training of new weapons until the problem weapons are deselected. As of now, it is unknown if this bug exists for other weapons. Not considered a game-breaking bug, as it is easy to work around at the moment.

Idle Manual Priorities

When assigning Learn to a higher priority (with vanilla Manual Priorities) pawns will idle, rather than doing their lower-priority jobs, whenever a Learn task is not available.

Documenting partially known techs.

Captain Cookie:
Update to Bug #6: Your fix works partially in preventing documenting of a partially researched technology. The problem still exists in a different form.
If a pawn FULLY knows one technology they have yet to document, and PARTIALLY knows another, they can document the one they PARTIALLY know as long as BOTH technologies are selected to be documented in the bill, and the PARTIAL technology just so happens to be selected first.
While playing normally, I had a pawn who had some fully and partially researched technologies. I made a bill at the study desk to document technology. I selected every possible research assuming they would just write about the ones they had fully researched and would skip over the others. However, they started writing a book on smithing, even though they did not fully research it.
To test, I made a new game with only the required mods. I had one pawn fully research beer brewing and partially research Devilstrand. I then created a bill to document technologies. When Devilstrand is the only research selected in the bill, the pawn CAN NOT document it, so that is working properly.
However, when I set the bill to allow documenting of beer brewing AND Devilstrand, the pawn will sometimes begin to write the book on Devilstrand, even though they have not fully researched it.
I am not sure how research is selected to document, if some have higher priority, or they just pick from the bill at random, but it is easy to cancel the current book the pawn is writing if it is beer brewing, and eventually they'll start writing the Devilstrand book instead.
As such, it is still relatively simple to work around fully researching a technology, and can even be done by accident, which is how I discovered this bug.

Broken Localisation in Tech Tab

When hovering above a Tech a Pawn knows, which requires something build (Hi-tech Bench / Multianalyer) it shows a Tooltip with broken Localisation.
20200614182320_1

Inside the Research Tab, that Tooltip is still correctly shown.
20200614182329_1

To replicate start either the Crahslanded or Rich Explorer Scenario, until you get a Pawn which knows a Tech that requires a Building.

While no error is thrown, this is the Log: https://gist.github.com/b151365abae8109b08400bdb74a86d05

Maybe related to #26

Mod Conflict: Android Tiers

When adding androids, there is no 'Tech' tab for the Android pawns.
Pawns cannot right click to build the study desk. They will build it as a regular task.
Regular pawns can use the study desk, androids cannot.

Adding just the prerequisite mod, Humanoid Alien Races 2.0, doesn't seem to do this.
Human pawns appear to have a tab and are able to build and use the bench.

Humanoid Alien Races 2.0
https://steamcommunity.com/sharedfiles/filedetails/?id=839005762

Android Tiers
https://steamcommunity.com/sharedfiles/filedetails/?id=1386412863

Log:
https://gist.github.com/263fc0900c6bc8739d78f97b6ca4b86d

Incompatibility with Genetic Rim

Mod: https://steamcommunity.com/workshop/filedetails/?id=1113137502

Log: https://gist.github.com/c7e6c7684ebc0ca65fe808be2d6c5820

When trying to show common Weapons on the Weapons Tab, all Weapons disappear in the Window and the Buttons.

Reproduction Steps:

  1. Start a Game with any Scenario
  2. Open the Tech Tab of any Pawn
    2.1. You can disable the display of ranged Weapons, as the bugged weapon appears to be a melee weapon.
  3. Click "Show Common Weapons"

Now no Weapon will be displayed, and the Error Log gets filled with error messages.

Incompatiblity with Ammunition mods

Omg doesn't work with ammunition at all!!
crowberry:

When I put my pawns to learn to shoot a new weapon on the target stand, the ammunition they are holding runs out just straight down to zero, without a single shot taken. I can see the numbers go down just really quick, no matter if the ammunition is in their inventory or in an ammo pack. Then they run out of ammunition and stop learning the new weapon. Endless waste of ammunition without any learning.

To counter this I have to exclude current weapons to learn from the ammunition mod options, so that they don't use ammunition, then learning works.

Also, gunplay mod animations don't run while learning a weapon.

So, mod incompatibility with LimeTreeSnake's Ammunition and AUTOMATIC's Gunplay.

Weapons practise messes up weapons assignment

When a pawn goes to practise with a weapon at either the Training Dummy or Target Stand, they drop their assigned weapon to take up the weapon they want to practise with. They then keep this weapon afterwards. This causes a couple of problems that I've noticed:

  • Because they don't go back to their previous weapon, I end up with pawns not wielding what I want them to. It's even worse if they get interrupted before they gain proficiency, because now they are wielding a weapon they can't use.

  • Even if they have a weapon already in their inventory, if they go back to train some more they will pick up another one. I had one pawn wandering around with three longswords at one point. (Not sure if this is related to Simple Sidearms though... it might be a separate issue.)

Documentation Fixes

Hi,

here is a minor bug report for your github wiki:

In example on the mod compability wiki page are some URLs wrong, in example:
* [Research Tree](steamcommunity.com/sharedfiles/filedetails/1266570759)
instead of
* [Research Tree](https://steamcommunity.com/sharedfiles/filedetails/1266570759)

which causes it to link like
github.com/jptrrs/HumanResources/blob/master/steamcommunity.com/sharedfiles/filedetails/1266570759

I would have made a pull request, but forking a repo doesn't seem to fork the wiki.

Best regards,
Shuro

Somebody started 10 jobs in one tick

I confirmed that it has nothing to do with other mods.

Reproducing method:

  1. Add "study technology" recipe and tick some technologies.
  2. Add "document technology" recipe and tick some technologies.
  3. When a colonist goes to study desk, error happens.

In short, the bug happens when both of "study technology" and "document technology" are available to one colonist.

Log uploaded on Wednesday, June 17, 2020, 5:18:50 AM
Loaded mods:
Harmony(brrainz.harmony): 0Harmony(2.0.1), HarmonyMod(1.0.2)
Core(Ludeon.RimWorld): (no assemblies)
Royalty(Ludeon.RimWorld.Royalty): (no assemblies)
HugsLib(UnlimitedHugs.HugsLib)[ov:7.2.1]: 0Harmony(av:2.0.1,fv:1.2.0.1), HugsLib(av:1.0.0,fv:7.2.1)
Research Tree(fluffy.researchtree)[mv:3.17.533]: ResearchTree(av:3.0.0,fv:3.17.534)
[JPT] Human Resources(JPT.HumanResources)[mv:0.9]: HumanResources(av:1.0.0,fv:0.9.0)

Active Harmony patches:
Bill.PawnAllowedToStartAnew: PRE: HumanResources.Bill_PawnAllowedToStartAnew.Prefix, HumanResources.Bill_PawnAllowedToStartAnew.Prefix
DebugWindowsOpener.DevToolStarterOnGUI: TRANS: HugsLib.Patches.DevToolStarterOnGUI_Patch.ExtendButtonsWindow
DebugWindowsOpener.DrawButtons: TRANS: HugsLib.Patches.DebugWindowsOpener_Patch.DrawAdditionalButtons
Dialog_BillConfig.DoWindowContents: PRE: HumanResources.Dialog_BillConfig_DoWindowContents.Prefix, HumanResources.Dialog_BillConfig_DoWindowContents.Prefix post: HumanResources.Dialog_BillConfig_DoWindowContents.Postfix, HumanResources.Dialog_BillConfig_DoWindowContents.Postfix
Dialog_Options.DoWindowContents: TRANS: HugsLib.Patches.Dialog_Options_Patch.ReplaceModOptionsButton
EditWindow_Log.DoMessagesListing: PRE: HugsLib.Patches.EditWindow_Log_Patch.ExtraLogWindowButtons
FloatMenuMakerMap.AddHumanlikeOrders: post: HumanResources.FloatMenuMakerMap_AddHumanlikeOrders.Postfix, HumanResources.FloatMenuMakerMap_AddHumanlikeOrders.Postfix
Game.DeinitAndRemoveMap: post: HugsLib.Patches.Game_DeinitAndRemoveMap_Patch.MapRemovalHook
Game.FillComponents: PRE: HugsLib.Patches.Game_FillComponents_Patch.GameInitializationHook
Game.FinalizeInit: post: HugsLib.Patches.Game_FinalizeInit_Patch.WorldLoadedHook
JobGiver_PickUpOpportunisticWeapon.ShouldEquip: PRE: HumanResources.JobGiver_PickUpOpportunisticWeapon_ShouldEquip.Prefix, HumanResources.JobGiver_PickUpOpportunisticWeapon_ShouldEquip.Prefix
LanguageDatabase.SelectLanguage: PRE: HugsLib.Patches.LanguageDatabase_Patch.ForceRestartAfterLangChange
Listing_TreeThingFilter.Visible: post: HumanResources.Listing_TreeThingFilter_Visible.Postfix, HumanResources.Listing_TreeThingFilter_Visible.Postfix
Map.ConstructComponents: post: HugsLib.Patches.Map_ConstructComponents_Patch.MapComponentsInitHook
Map.FinalizeInit: post: HugsLib.Patches.Map_FinalizeInit_Patch.MapLoadedHook
MapComponentUtility.MapGenerated: post: HugsLib.Patches.MapComponentUtility_MapGenerated_Patch.MapGeneratedHook
ModsConfig.RestartFromChangedMods: PRE: HugsLib.Patches.ModsConfig_RestartFromChangedMods_Patch.QuickRestartInDevMode
Pawn_JobTracker.TryTakeOrderedJob: PRE: HumanResources.Pawn_JobTracker_TryTakeOrderedJob.Prefix, HumanResources.Pawn_JobTracker_TryTakeOrderedJob.Prefix
PlayDataLoader.DoPlayLoad: post: HugsLib.Patches.PlayDataLoader_Patch.InitModsHook
ResearchManager.DebugSetAllProjectsFinished: post: HumanResources.ResearchManager_Patches.DebugSetAllProjectsFinished_Postfix, HumanResources.ResearchManager_Patches.DebugSetAllProjectsFinished_Postfix
ResearchManager.FinishProject: PRE: FluffyResearchTree.HarmonyPatches_Queue+DoCompletionDialog.Prefix post: HumanResources.ResearchManager_Patches.FinishProject_Postfix, HumanResources.ResearchManager_Patches.FinishProject_Postfix
ResearchManager.ResearchPerformed: PRE: FluffyResearchTree.HarmonyPatches_Queue+ResearchPerformed.Prefix post: FluffyResearchTree.HarmonyPatches_Queue+ResearchPerformed.Postfix
Root.OnGUI: post: HugsLib.Patches.Root_OnGUI_Patch.OnGUIHookUnfiltered
Root.Update: post: HugsLib.Patches.Root_Patch.UpdateHook
Root_Play.SetupForQuickTestPlay: TRANS: HugsLib.Patches.RootPlay_TestPlay_Patch.InjectCustomQuickstartSettings
ThingFilterUI.DoThingFilterConfigWindow: PRE: HumanResources.ThingFilterUI_DoThingFilterConfigWindow.Prefix, HumanResources.ThingFilterUI_DoThingFilterConfigWindow.Prefix post: HumanResources.ThingFilterUI_DoThingFilterConfigWindow.Postfix, HumanResources.ThingFilterUI_DoThingFilterConfigWindow.Postfix
ThingOwner.NotifyAdded: post: HumanResources.ThingOwner_NotifyAdded.Postfix, HumanResources.ThingOwner_NotifyAdded.Postfix
UIRoot.UIRootOnGUI: post: HugsLib.Patches.UIRoot_OnGUI_Patch.OnGUIHook
VersionControl.DrawInfoInCorner: post: HarmonyMod.VersionControl_DrawInfoInCorner_Patch.Postfix
WorkGiver_ConstructFinishFrames.JobOnThing: PRE: HumanResources.WorkGiver_ConstructFinishFrames_JobOnThing.Prefix, HumanResources.WorkGiver_ConstructFinishFrames_JobOnThing.Prefix
WorkGiver_GrowerSow.JobOnCell: post: HumanResources.WorkGiver_GrowerSow_JobOnCell.Postfix, HumanResources.WorkGiver_GrowerSow_JobOnCell.Postfix
Harmony versions present: 2.0.1.0: net.pardeike.rimworld.lib.harmony, JPT.HumanResources; 2.0.0.8: UnlimitedHugs.HugsLib, Fluffy.ResearchTree

Platform information:
CPU: Intel(R) Core(TM) i5-9600KF CPU @ 3.70GHz
OS: Windows 10 (10.0.0) 64bit
Memory: 8137 MB

Log file contents:
Mono path[0] = '[Rimworld_dir]/RimWorldWin64_Data/Managed'
Mono config path = '[Rimworld_dir]/MonoBleedingEdge/etc'
Initialize engine version: 2019.2.17f1 (8e603399ca02)
[XR] Discovering subsystems at path [Rimworld_dir]/RimWorldWin64_Data/UnitySubsystems
GfxDevice: creating device client; threaded=1
Direct3D:
Version: Direct3D 11.0 [level 11.1]
Renderer: NVIDIA GeForce GTX 1050 Ti (ID=0x1c82)
Vendor:
VRAM: 4018 MB
Driver: 26.21.14.4614
Begin MonoManager ReloadAssembly
RimWorld 1.1.2654 rev672
[HugsLib] version 7.2.1
[HumanResources] Deriving from ResearchTree.
Type ResearchTree_Assets probably needs a StaticConstructorOnStartup attribute, because it has a field Button of type Texture2D. All assets must be loaded in the main thread.
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)

[HugsLib] initializing JPT_HumanResources
[HumanResources] This is what we know: 92 technologies processed, 13 basic crops, 21 basic weapons
Loaded file (Scenario) is from version 1.0.2282 rev726, we are running version 1.1.2654 rev672.
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)

[HugsLib] Quickstarter generating map with scenario: The Rich Explorer
Unloading 5 Unused Serialized files (Serialized files now loaded: 1)

Unloading 52 unused Assets to reduce memory usage. Loaded Objects now: 10636.
Total: 68.620300 ms (FindLiveObjects: 0.703300 ms CreateObjectMapping: 0.350900 ms MarkObjects: 67.499900 ms DeleteObjects: 0.065900 ms)

Initializing new game with mods:

  • brrainz.harmony
  • Ludeon.RimWorld
  • Ludeon.RimWorld.Royalty
  • UnlimitedHugs.HugsLib
  • fluffy.researchtree
  • JPT.HumanResources
    [HumanResources] Found 1 weapons and 1 techs on the starting scenario, preparing for pawn expertise generation
    Unloading 1 Unused Serialized files (Serialized files now loaded: 1)

Unloading 0 unused Assets to reduce memory usage. Loaded Objects now: 19041.
Total: 130.155800 ms (FindLiveObjects: 1.137300 ms CreateObjectMapping: 0.984300 ms MarkObjects: 127.961400 ms DeleteObjects: 0.072300 ms)

Archer started 10 jobs in one tick. newJob=LearnTech (Job_938) A=Thing_StudyDesk43473 jobGiver=RimWorld.JobGiver_Work jobList=(LearnTech (Job_928) A=Thing_StudyDesk43473) (LearnTech (Job_929) A=Thing_StudyDesk43473) (LearnTech (Job_930) A=Thing_StudyDesk43473) (LearnTech (Job_931) A=Thing_StudyDesk43473) (LearnTech (Job_932) A=Thing_StudyDesk43473) (LearnTech (Job_933) A=Thing_StudyDesk43473) (LearnTech (Job_934) A=Thing_StudyDesk43473) (LearnTech (Job_935) A=Thing_StudyDesk43473) (LearnTech (Job_936) A=Thing_StudyDesk43473) (LearnTech (Job_937) A=Thing_StudyDesk43473) (LearnTech (Job_938) A=Thing_StudyDesk43473)
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 35)

Can't Do Any Research Requiring High Tech Research Bench

So I started a clean game with the bare mods + a Mod Manager/Royalty (those didn't affect this issue I tested this issue separately and it appeared without the Mod Manager and without Royalty) and I can't research anything that requires a high tech research bench. I tested this trying to get a pawn to research the Multi Analyzer and confirmed the pawn already knew Electricity and Microelectronics first. It did not give me any errors when I tried to force pawn to research Multi Analyzer, it just kept saying "Cannot research steel high-tech research bench: [Pawn name] has read all the books."

Logs below:
https://gist.github.com/a476b5eb8280b104fbbca63a23facd45

Medical InferSkillBias

Error with VGP Garden Medicine and ### WarCrimes Expanded 2 stem from a NRE
in InferSkillBias.
This is because r.workSkill.label.ToLower() returns medical and attempts to set medicalTag
which does not exist, rather than setting medicineTag

(Different) Error with simple sidearms

If a colonist is using simple sidearms, and they go to learn a new weapon, it causes them to forget about whatever sidearm they had been set to keep.

Unable to research tech requiring Hi-tech tech and beyond

Steps to repeat

  • New game, loading only [Harmony, Core, Royalty, Hugs, Research Tree, Human Resources] with a Rich Explorer start
  • Build a Study Bench & bookshelf [ok]
  • Study electronics from library [ok]
  • Build a Research Bench [ok]
  • Research microelectronics [ok]
  • Can't yet build hi-tech research bench
  • Go to Study bench an document microelectronics [fail with logged red errors]. Had research jobs queued above it for multi-analyzer/fabrication.
  • Moved document microelectronics bill to the top [OK]
  • Now able to build hi-tech research bench. Build this + some power generation [ok]
  • Queue up multi-analyzer research ... this is where we stall out. Research Tree suggests we need to build a Hi-tech research bench before we can research this. This is where our story ends.

HumanResourceBugSaves.zip

Training Unresearched Weapons

Hi again. :-D

So, would it be possible, at, say, a 5 or 10x penalty or so, to be able to have a pawn train in a weapon that does not have the associated tech researched yet?

I've just had a raid come in with a donation, and all I can currently do is put the weapons they brought in storage. Can't even pull the trigger, or swing the special sword. :-p

Fun side note, too:
If you accidentally have all weapons selected in the training bill when you try to force a pawn to work at a shooting target, the game freezes for a solid 5 minutes or so. Oof.

EdB Prepare Carefully compatibility request [Workaround]

There is a minor issue with EdB Prepare Carefully. If you add weapons to your equipment when you prepare carefully, those weapons will not get added to the pawns weapons, and they will have no ability to use them.

As a workaround, it's fairly straightforward to add new weapons to the pawns through save file editing. Annoying, but not game-breaking.

On the upside, I also found out that having multiple identical weapons that are known causes no identifiable issues, and dissapears from the save file on a load & new save sequence.

Mod conflict: Expanded Rims

I discovered that Expanded Rims does not play nicely with Human Resources - the "Research technologies" job on the Research Bench does not show a list of possible technologies when you go into Details.

Is there anything I can send you to make it easier for you to narrow down what might be causing the problem?

Initially known Technology Options [Feature Requests]

So, like many of us, I play a heavily modded game. This means that I have quite a number of added technologies. Just shy of 800 in my current game.

So, my thing is that when I start a new game, say, with industrial background (Where most of the tech's are), I get a random smörgåsbord of techs that the pawns know. Three each.

Well, it'd be nice if this number could be changed, at least for the original colonists. Any other pawns, I could see 3 or even 2 being best, as it's fairly easy to 'farm' them for research via the prison labor mod, but that's an unintended consequence. If it's possible to make this a chooseable value, it'd be nice if it could be separated for original vs 'new' Pawns. Lastly, maybe a modifier based on the initial Tech Level of the pawn? So maybe the player could say that Neolithic Pawns get +2 techs, Medieval get -1, Industrial stay the same, Modern +1, Spacer +2 and Glitter -1?

Here are a couple of things that I think would also be neat.

Partially known technologies. Somebody shows up, and they know a bit about something, but they don't know everything. Or maybe the know a fair bit, but it's spread out. A bit here and there, with the total amount known of all techs adding up to a specific amount as decided above. Say, if the Pawn knows a total of 2 techs, maybe 1 in Passive Cooler, .75 in Beer Brewing, and .25 in Pemmican? Maybe only make it so that all but the last whole tech gets spread out? It'd reduce the insta-gain of a whole bunch of techs for "free" from your starting pawns, as they only need to record their knowledge, rather than research it in the first place.

A range of amount known. Say, something like if you want to have an average of 3 known techs, get two random numbers from 0 to 1, sum them, then multiply them by 3? You get a nice binomial distribution, and fractions could be dealt with as above?

Somehow make the amount known weighted and/or distributed also by the Intellectual skill & passion of the pawn?

The ability to have a left-sided distribution of techs (of the Tech Level that you start with.) So if a pawn is going to start with 3 Medieval Techs, maybe have a recursive 75% re-roll if that tech also has a prerequisite that is medieval, and to take that prerequisite instead? From a progression standpoint, I think this might make sense.

A chance if you have a Natural Meditation Focus, from a tribal background, to have a chance to start with a Neolithic technology instead of one from your appropriate tech level. I can't think of a way that it would easily doable for other backgrounds, especially with other mods, but it might be possible with a check for Neolithic & Natural Focus, as that's something that other mod authors would need to fix, not you. I think this would be nice, as then you'd get some pawns that seemingly did the whole "Primitive Technology"-youtube binge before they showed up.

And last, and off topic but I didn't want to make another post, maybe an option to hide or collapse all techs of a specific tech level, if a pawn knows all of them? Maybe tie this into a code 'do I know this thing' check as well, so that it's easier to iterate over the list? Code-wise it might make more sense to break it up by mod, I don't know. That seems a bit less useful, especially since most mods spread their techs over many levels. A binary tree might work, but that'd be hellish to implement. Don't really worry about this last suggestion, as I know from experience that coding for efficiency adds tonnes of technical debt later down the line.

Pawns are trying to learn Null Projects

My pawns often stand around when they are near the bottom of their priority list when they should be researching. Looking in the logs revealed these lines:

[Human Resources] Jay tried to learn a null project.
Jay started 10 jobs in one tick (A list of 10 Human Resources LearnTech jobs, all with the same id)

These fill the log for as long as they are standing.

HugsLib F12 Log
https://gist.github.com/2f82c764b0f9b57f302d6edb89709af3

Other info:

  • I have a very big mod list, however, none of the techs that are hanging are modded. It isn't unlikely there is a research related mod that might be causing an incompatibility.

  • I have three researchers, each with their own bench. ATM, only two of the researchers bug out like this, but the other one used
    to.

  • You can actually get them to do the research they are hitching on by prioritizing it manually.

Multiple Documentation Bills on the same Workbench Bug [Minor]

So, this is a minor QoL bug(s), but it is easily repeatable, but appears as a mod-breaking bug unless you are aware of it and how to work-around it.

If you start a new tribe, with a bunch of pawns, you've got a dozen or so techs that are undocumented that it'd be nice to proliferate. Due to how I've found I need to get the pawns to work on Documentation, I need to make a separate bill for each and every tech that I want to put in a bookshelf.

Only the first bill of a type gets checked when a pawn is forced to a Study or Research Desk. So if Pawn A knows Agriculture, and Pawn B knows Devilstrand, and you have Agriculture Documentation in a Bill, and Devilstrand in a Documentation bill directly after, and then try to force Pawn B to work at that Study desk, they'll do nothing.

Furthermore, if their highest priority task is to study, and they can only do secondary Bills, they'll go into 'Standing' Mode, and do nothing at all, even if there are lower priority jobs available as well.

This type of behavior can also be shown at the research bench, by making it so that only a single pawn can work on a bill. (Say, if you don't want every pawn to work 5% on a really hard tech.) Any secondary research options after that will also not get attempted.

Another way this shows up, is that if you have a bill that's set to run two times, and you want to Document both Devilstrand and Agriculture in it, and the two pawns, A and B, don't know the other tech. I believe that one of the pawns will be unable to document, (or Research, as the case may be with pre-req techs), as the iterator going through the list to check to see if the pawn can work at that bench sees the pawn can't do the tech that it finds first (even though it can do the second), and then stops, leading the pawn to not work at the bench. Note: Both pawns usually have the option to 'Force' to do work, but one of them won't even take a step towards the bench.

I do have to wonder, a bit, why there isn't a type of 'Document Everything You Know' bill? One that checks the Pawns knowledge for completely discovered undocumented techs, rather than the player having to choose which techs to document? I mean, I get that it'd make the game a bit easier, what with less of a need to micro all of your bills, but it's only an issue either way in the first quadrum or so, after that, you've got one, maybe two pawns dedicated to research and it's not really noticeable anymore?

I say it's minor, but I feel bad, a little bit, as it's likely not going to be a straight-forward fix. :-(

*NOTE: I just realized that I may be exacerbating the issue somewhat with 'No Job Authors', a mod that lets any pawn continue work on unfinished things. So a tech book that's unfinished by pawn A can be picked up by pawn B, if both know the same tech. It's an issue that only shows up at the start, in the first quadrum, but it may be a slight part of it, for the one or two techs that multiple pawns may know at the start.

Unable to select anything on screen [OnGUI() exception]

I'll be honest this may have nothing to do directly with this mod since I am using so many. i'll try and reproduce it to see what mods caused issues but that may take a while.

Basically what happened was a horse manhunter spawned, I clicked on to jump to location, and somehow broke the GUI.I couldnt select anything on the screen. (Pawns, animals, plants, etc.) I noticed exceptions from this mod as it occurred in the log. I had manhunter events prior with no issues.
Here is the log
Line 3912 is when I started having issues (the horse spawn is right below it)

I also do notice that [HumanResources] <pawn> tried to learn a null project. shows up quite a bit.

I'll attach my save incase you want to take a look.

Feel free to add this to low priority backlog. I'll try some games with minimal mods and see how it goes.

Sorry I didnt quite exactly follow the discussion on the steam page. Enjoying this mod though!

Great Lib.zip

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.