Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2

Author Topic: Setting a maximum for immigrants' skill levels  (Read 2019 times)

jpwrunyan

  • Bay Watcher
    • View Profile
Setting a maximum for immigrants' skill levels
« on: January 14, 2014, 03:09:10 am »

My question is:
Can I set a cap on the maximum skill level any immigrant coming to my fortress has?

I started playing Dwarf Fortress with 40d and remember the days of immigrants arriving with no skill level higher than competent. I really liked this aspect of the game. I felt that the immigrants were the dregs of society (ergo sent into the wilderness), many arriving as nothing more than peasants. I enjoyed the challenge of training them up into new professions. No marketable skills? Army for you!

But now that is no more. I frequently have immigrants with great and sometime legendary skill levels. This takes away a large part of the challenge of the game and the enjoyment I used to have. Even if it's a legendary cheese maker, I would still like to see my dwarf progress from novice cheese maker to cheese maker king of the world. And when the master weapon smith arrives, I am left wondering what the point of bringing a proficient one with me on embark was.

Anyway, I know other people may not feel the way I do about this, but I hope there is a way I might be able to configure the current version more like 40d as far as immigrants are concerned. I'd really like to find an in-game mod solution without having to use a third party program (feels too meta for me).

Thanks, and sorry if this has been covered elsewhere (I did search, though).
Logged

Meph

  • Bay Watcher
    • View Profile
    • worldbicyclist
Re: Setting a maximum for immigrants' skill levels
« Reply #1 on: January 14, 2014, 04:10:40 am »

You can add this to dwarves: [SKILL_RATES:percentage:0:0:0]. You can add any number for the percentage part, 10%, 50%, 250%, and your dwarves will learn at that rate. If you think skills level up too much, you can slow it down.

But you cant restrict it exactly the way you described. These things are done on creature level, this means they either affect no dwarf, or all dwarves.
Logged
::: ☼Meph Tileset☼☼Map Tileset☼- 32x graphic sets with TWBT :::
::: ☼MASTERWORK DF☼ - A comprehensive mod pack now on Patreon - 250.000+ downloads and counting :::
::: WorldBicyclist.com - Follow my bike tours around the world - 148 countries visited :::

Sutremaine

  • Bay Watcher
  • [ETHIC:ATROCITY: PERSONAL_MATTER]
    • View Profile
Re: Setting a maximum for immigrants' skill levels
« Reply #2 on: January 14, 2014, 11:46:42 am »

SKILL_RATES will affect everything except the initial skills of your starting seven. If you set the learning rate for a skill to 50%, any dwarves who would have turned up as Novices with 500XP will now be Dabblers with 125XP. If they mood in the skill and are not possessed, then they get 10,000XP instead of 20,000XP.

I'm not sure if you can do this on the fly by setting the skill rates to something intolerably low just before a migrant wave arrives, and then returning them to normal once the wave has arrived.

Master smiths can be rather annoying, yes. Use them to make one good set of good weapons or armour, and then kick them out of the forge and go back to what you were doing.
Logged
I am trying to make chickens lay bees as eggs. So far it only produces a single "Tame Small Creature" when a hen lays bees.
Honestly at the time, I didn't see what could go wrong with crowding 80 military Dwarves into a small room with a necromancer for the purpose of making bacon.

jpwrunyan

  • Bay Watcher
    • View Profile
Re: Setting a maximum for immigrants' skill levels
« Reply #3 on: January 14, 2014, 08:19:46 pm »

Thanks guys,

I added [SKILL_RATES:25:0:0:0] to the creature_standard.txt under the dwarf entry so hopefully no more random "great" or "legendary" immigrants. I hate to go lower than 25% simply because it will take forever to then actually train anyone. But this should be interesting because now the skills selected at embark will really have a greater impact (like the way they used to).

Anyway, I still wish there were a way to just cap immigrant skill xp... why did Toady change this in the first place???

BTW, I assume this token change is going to affect adventure mode also. So like, either I shouldn't play a dwarf adventurer or else put the same tag in all the races?

Anyway, now to try this out...
Logged

Sutremaine

  • Bay Watcher
  • [ETHIC:ATROCITY: PERSONAL_MATTER]
    • View Profile
Re: Setting a maximum for immigrants' skill levels
« Reply #4 on: January 15, 2014, 08:44:46 am »

You can play a dwarf adventurer just fine, if you change the skill rates back to what they were. No migrants in Adventure Mode. :)

I don't know why Toady changed it, but perhaps it was because of complaints about how nobody arriving at your fortress knows how to do anything...
Logged
I am trying to make chickens lay bees as eggs. So far it only produces a single "Tame Small Creature" when a hen lays bees.
Honestly at the time, I didn't see what could go wrong with crowding 80 military Dwarves into a small room with a necromancer for the purpose of making bacon.

jpwrunyan

  • Bay Watcher
    • View Profile
Re: Setting a maximum for immigrants' skill levels
« Reply #5 on: January 17, 2014, 02:12:49 am »

I have a follow-up question:

Is it possible to change the XP rewards for various tasks like mining, etc? Because if so, I think I would get everything exactly the way I want it.

Right now 25% is resulting in dwarves that were formerly Great (10000+ xp) arriving as Skilled (2500+ xp). This is *better* than it was in 40d where the highest level was competent, but my embark point allocations are still not rendered meaningless. *But* it does take forever to train... might be an issue for the army when goblins start attacking. If I can change the XP rewards for task, I can perfectly tune this.

Quote
I don't know why Toady changed it, but perhaps it was because of complaints about how nobody arriving at your fortress knows how to do anything...

In 40d it was frustrating at first, until I learned to deal with it. But having immigrants arrive more than twice as skilled than your first 7 dwarves makes your embark decisions rather meaningless. Anyway, just venting.
Logged

Roses

  • Bay Watcher
    • View Profile
Re: Setting a maximum for immigrants' skill levels
« Reply #6 on: January 17, 2014, 10:10:26 am »

You can set the skill rate for individual skills, e.g. [SKILL_RATE:MINING:50:0:0:0]
Logged

jpwrunyan

  • Bay Watcher
    • View Profile
Re: Setting a maximum for immigrants' skill levels
« Reply #7 on: January 17, 2014, 02:00:03 pm »

I was going to ask where you get this information but then finally found it in the wiki:

http://dwarffortresswiki.org/index.php/v0.31:Cheating

Still it seems their explanation of SKILL_RATE and yours are in slight conflict. So I guess I should still ask: where do you guys get this information? Google is of absolutely no use.

Anyway, if I try to merge your suggestion with what is on the wiki it looks like I should add this tag:

[SKILL_RATE:MINING:400:8:8:16]

That is for 400% bonus to the 10 xp reward for mining (resulting in 40 xp per job). When combined with [SKILL_RATES:25:0:0:0] this should result in a 10 xp going to the dwarf (the original intended value). The other 3 variables are related to skill rust apparently (which I want to leave alone).

Let me know if I am missing something here...



Logged

Roses

  • Bay Watcher
    • View Profile
Re: Setting a maximum for immigrants' skill levels
« Reply #8 on: January 17, 2014, 02:13:17 pm »

http://dwarffortresswiki.org/index.php/DF2012:Creature_token#S

I don't know if they are combined or if one overwrites the other. You may get your desired effect by having

[SKILL_RATES:25:-:-:-]
[SKILL_RATE:MINING:100:-:-:-]

(the dashes are numbers representing decay of the skill)

You can also combine the [SKILL_LEARN_RATE:skill:percentage] tokens if the SKILL_RATE ones aren't stackable.
Logged

Sutremaine

  • Bay Watcher
  • [ETHIC:ATROCITY: PERSONAL_MATTER]
    • View Profile
Re: Setting a maximum for immigrants' skill levels
« Reply #9 on: January 17, 2014, 03:48:44 pm »

That is for 400% bonus to the 10 xp reward for mining (resulting in 40 xp per job). When combined with [SKILL_RATES:25:0:0:0] this should result in a 10 xp going to the dwarf (the original intended value). The other 3 variables are related to skill rust apparently (which I want to leave alone).
Skill rates overwrite each other. If the order is

[SKILL_RATES:25:8:16:16]
[SKILL_RATE:MINING:400:8:16:16]

then the dwarf gets 25% for all skills (mining included), overwritten by 400% for mining. This results in 400% for mining, and 25% for everything else.

If the order is

[SKILL_RATE:MINING:400:8:16:16]
[SKILL_RATES:25:8:16:16]

then the dwarf gets 400% for mining, overwritten by 25% for all skills (mining included). This results in 25% for everything.
Logged
I am trying to make chickens lay bees as eggs. So far it only produces a single "Tame Small Creature" when a hen lays bees.
Honestly at the time, I didn't see what could go wrong with crowding 80 military Dwarves into a small room with a necromancer for the purpose of making bacon.

jpwrunyan

  • Bay Watcher
    • View Profile
Re: Setting a maximum for immigrants' skill levels
« Reply #10 on: January 17, 2014, 05:27:40 pm »

Thanks guys, I'm glad I checked before blindly implementing the above. I also need to go back now and change the original SKILL_RATES to allow for rust again. And thanks for the link to the tokens on the wiki. The functional difference between SKILL_RATE(S) and SKILL_LEARN_RATE(S) still isn't crystal clear but I am hoping it is to allow a combination formula like what I'm attempting.

So what I am thinking is perhaps try this:

[SKILL_RATES:25:8:16:16]
[SKILL_LEARN_RATES:400]

So now hopefully dwarves show up with less extravagant amounts of xp (and skill levels) but compensate by learning that much faster. Will give it a try now...

edit: Gave it a try and the above settings are not working quite right. I tested it on mining and confirmed that the dwarf starting from 0 xp is only getting 2 xp per mined tile (10 / 4 = 2). So the way I have it now, SKILL_LEARN_RATES doesn't appear to be taking effect. Maybe this requires a new worldgen?

edit2: Needed to run Worldgen to test this. Dwarf Therapist states that now dwarves have a 300% *bonus* to learn a skill. The actual result is a 400% bonus (reward for mining is 40 xp). So it looks like SKILL_LEARN_RATES overwrites SKILL_RATES. I guess the difference is just semantic? Still haven't tested the effect on immigrants. Immigrants also arrive with super high skills.
« Last Edit: January 17, 2014, 06:19:23 pm by jpwrunyan »
Logged

Sutremaine

  • Bay Watcher
  • [ETHIC:ATROCITY: PERSONAL_MATTER]
    • View Profile
Re: Setting a maximum for immigrants' skill levels
« Reply #11 on: January 17, 2014, 08:09:35 pm »

What happens if you swap those two lines around?
Logged
I am trying to make chickens lay bees as eggs. So far it only produces a single "Tame Small Creature" when a hen lays bees.
Honestly at the time, I didn't see what could go wrong with crowding 80 military Dwarves into a small room with a necromancer for the purpose of making bacon.

Meph

  • Bay Watcher
    • View Profile
    • worldbicyclist
Re: Setting a maximum for immigrants' skill levels
« Reply #12 on: January 17, 2014, 09:32:33 pm »

If I am not wrong it goes by order in the raws. If you set skill rate to 0, but underneath it declare skill learn rate mining 100, you can only learn mining, all the rest is still 0.
Logged
::: ☼Meph Tileset☼☼Map Tileset☼- 32x graphic sets with TWBT :::
::: ☼MASTERWORK DF☼ - A comprehensive mod pack now on Patreon - 250.000+ downloads and counting :::
::: WorldBicyclist.com - Follow my bike tours around the world - 148 countries visited :::

Roses

  • Bay Watcher
    • View Profile
Re: Setting a maximum for immigrants' skill levels
« Reply #13 on: January 17, 2014, 11:05:37 pm »

Try placing the specific skills underneath the grouped skills. It may be just that SKILL_LEARN_RATES and SKILL_RATES reference the same percentage value for their tags.
Logged

jpwrunyan

  • Bay Watcher
    • View Profile
Re: Setting a maximum for immigrants' skill levels
« Reply #14 on: January 22, 2014, 02:05:25 am »

Try placing the specific skills underneath the grouped skills. It may be just that SKILL_LEARN_RATES and SKILL_RATES reference the same percentage value for their tags.

Sorry for the delayed response. I've been playing my current game. Anyway, I haven't tried any of the above suggestions yet but will let you know when I do.

As for SKILL_LEARN_RATES and SKILL_RATES, I suspect exactly what Roses is saying, which is that they reference the same variable through two different tags*. Ergo just a semantic difference. How diligent is Toady with his scripting standards? Depending on the project/programmer, I could totally see a redundancy being possible. I can imagine that the SKILL_LEARN_RATES was implemented first but when he added the rust variables, he needed to implement SKILL_LEARN_RATES in order to set the additional parameters. But someone with more experience might be able to say whether such a thing is characteristic of Dwarf Fortress or not...

* However, it is odd that Dwarf Therapist seems to be processing them distinctly, albeit only as a displayed value that is inconsistent with actual results.

By the way, just to keep things in perspective, I really *don't* want to muck about with these learn rates. These efforts are all just to lower the experience levels of immigrants so that they don't arrive with any skill level higher than Proficient. Is there any channel for asking Toady to add modding variables or features? Like a way to set how many points immigrants get in d_init.txt?</wishful thinking>
Logged
Pages: [1] 2