• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Questions about level scaling and officer spawning

Bob

Landlubber
Hello
Currently playing New Horizons, latest build and version I think, that campaign from the original game. I'm trying to understand how does the game /mod work, especially in terms of the level scaling, which is usually a big turn-off for me, but Horizons seem so cool I really want to get over it. Therefore I would be very grateful for some clarifications.

I noticed there is some level scaling in the game, so far I identified that the game takes your level into account when spawning enemies, crewmember "bodyguards", officers and shop items. So, here are my questions:
1. Is anything else scaling to the player level apart from the things I identified?
2. How does shop items scaling work? Will the better items eventually replace the worse ones or are added on top of them? Will I always be able to buy i.e. a short pistol or a normal dagger?
3. Is there any way to be able to spawn low level (1-2) officers later in the game? At level 1 the "bartender" spawned officers at levels 2-5, now (lvl 4 char) it only spawns level 6 officers. Crew escort got promoted from 1(?) originally to 4 as well, even the one that I never took with me before.

I would really like to be able to be able to spawn some noob officers later in the game (e.g. to train them from the grounds up). I would be grateful for a simplest way to achieve that. May be an ingame trick, may be a console command, may be an .ini tweak, whatever works. So far I only tried tweaking FRIENDLEVEL_MULT_BASE in InternalSettings file, but changing it from 0.66 to 0.01 seemed to have no impact on officers spawned by the bartenders.
 
Is anything else scaling to the player level apart from the things I identified?
I'm not entirely sure, but I do know that at least ships encountered randomly at sea are independent from the player level.

How does shop items scaling work? Will the better items eventually replace the worse ones or are added on top of them? Will I always be able to buy i.e. a short pistol or a normal dagger?
"Bad" items do eventually start disappearing from the game.
I don't really like that so much either, but it'd be a lot of work to undo that.

Crew escort got promoted from 1(?) originally to 4 as well, even the one that I never took with me before.
Agh, I had hoped those would stay level 1 unless you actually took them ashore with you for them to gain experience.

There should be a way through console, but I need to look it up...
 
Maybe a console command like this?
Code:
CreateOfficerType(OFFIC_TYPE_BOATSWAIN, -sti(PChar.rank)+1);
That second parameter is the 'offset compared to the player rank'.
But it looks like there are some 'at least a couple of levels' and 'randomisation' elements to that code, so it might still not be 100% what you're after... :unsure
 
I'm not entirely sure, but I do know that at least ships encountered randomly at sea are independent from the player level.
Agh, I had hoped those would stay level 1 unless you actually took them ashore with you for them to gain experience.
Well, I was walking around with 2 of them for quite some time, but never with the 3rd.

Maybe a console command like this?
Code:
CreateOfficerType(OFFIC_TYPE_BOATSWAIN, -sti(PChar.rank)+1);
That second parameter is the 'offset compared to the player rank'.
But it looks like there are some 'at least a couple of levels' and 'randomisation' elements to that code, so it might still not be 100% what you're after... :unsure

Seems promising, I don't mind if it will take a few tries to get done, as long as it can be done. I will give it a go.
Soooooooooo... how do you open console in this game? :ninja

EDIT: I was thinking maybe temporarily changing PC level would do the trick for officers items. If there is such a command, I could set my level to 1 before entering town/tavern, get a noob officer, then change the level back to its original state...
 
Last edited:
I don't mind if it will take a few tries to get done, as long as it can be done.
Technically a lot is possible.
Big question is if we can find a practical solution too.
But this one does sound doable. :yes

Soooooooooo... how do you open console in this game? :ninja
This should help:
Tutorial - Modding Tips & Tricks

I was thinking maybe temporarily changing PC level would do the trick for officers items. If there is such a command, I could set my level to 1 before entering town/tavern, get a noob officer, then change the level back to its original state...
Worth a try:
Code:
if (checkattribute(pchar, "orgrank"))
{
pchar.rank = pchar.orgrank;
DeleteAttribute(pchar, "orgrank");
}
else
{
pchar.orgrank = pchar.rank;
pchar.rank = 1;
}
There will probably be all sorts of complexities along the way, but hopefully this is a start.
 
  • Like
Reactions: Bob
Hey, that level change command worked! I was able to make myself level 1, get the bartender to spawn a level 2 officer, then change my level back to level 4. Hitpoints, xp bar etc. seemed fine. Thank you!
Now, I don't plan to "train one of my lowly sailors into a real officer" NOW (as my char is still a lowly merchant himself), so I won't be able to confirm lack of any long-term issues with that trick for some time. Hopefully, there will be none.

Just FYI:
tried CreateOfficer first and these are the results
CreateOfficerType(OFFIC_TYPE_BOATSWAIN, -sti(PChar.rank)+1); - spawned level 7 officers exclusively.
CreateOfficerType(OFFIC_TYPE_BOATSWAIN, -sti(PChar.rank)-1); - did the same
CreateOfficerType(OFFIC_TYPE_BOATSWAIN, -sti(PChar.rank)-3); - still level 7
CreateOfficerType(OFFIC_TYPE_BOATSWAIN, -sti(PChar.rank)-30); - still level 7 xD
CreateOfficerType(OFFIC_TYPE_BOATSWAIN); - did nothing :rolleyes:
 
This function is what determines the officers level.
Code:
int GetRandomRank(bool isfriend, string officertype, int offset)
{
    ref pchar = GetMainCharacter();
    int pLuck = CalcCharacterSkill(PChar,SKILL_SNEAK);
    int pLead = CalcCharacterSkill(PChar,SKILL_LEADERSHIP);
    int bonus = GetOfficTypeRankBonus(officertype);
    int pRank = 1;
    //Let's get a baserank first
    if(isfriend)
    {
        //friendly encounter
        pRank = makeint(sti(PChar.rank)*0.75 + rand(sti(PChar.rank)*(1.1-(GetDifficulty()*0.2))) + offset);
        pRank = makeint(pRank * (1+((pLuck*2)+(pLead*3))/200)); //Take in account leadership and luck
        pRank = pRank + rand(bonus); //Take in account different officertypes;
        if (pRank < 5) pRank = 2 + rand(5);
    }
    else
    {
        //enemy encounter
        pRank = makeint(sti(PChar.rank)*0.90 + rand(sti(PChar.rank)*(0.2+(GetDifficulty()*0.2))) + offset);
        pRank = pRank + rand(bonus); //Take in account different officertypes;
        if (pRank < 3) pRank = 1 + rand(4);
    }
    return makeint(pRank);
}
The offset is used in this but it's not a big part. And as you see it's very uncommon for a officer to spawn under level 5 anyways.
 
I think if you want to "reset" a officer you can do something like this:
Code:
ref chr = GetCharacter(INDEXOFTHECHARACTER);
int skillrank = ResetSkillsandPerks(chr);
AddXPtoChar(chr, "", CalculateExperienceFromRank(skillrank));
If the character is in the players party it won't pick new abilities. it will still add the experience points to the most relevant skills. If you want a level 1 character just change the "skillrank" in the last line to 1.
 
I'm not entirely sure, but I do know that at least ships encountered randomly at sea are independent from the player level.
By default, yes. In "InternalSettings.h", there is START_DIFF_SHIPCAP, set by default to 0, which - according to its comment, at least - controls this.

"Bad" items do eventually start disappearing from the game.
I don't really like that so much either, but it'd be a lot of work to undo that.
There may be a setting for this in the "Options" menu. "BuildSettings.h", which these days is controlled by the "Options" menu, has a variable IT_RPG_STYLE which is supposed to control whether traders take your level into account. It's set on by default.

As for officers, regardless of what the game does to randomly generated officers in taverns, there should be a few low level officers around to be hired as a result of quests. Look for Rys Bloom wandering around Port Royale port area. Or complete the "Saga of the Blacque Family" sidequest and hire Marc Blacque as an officer. Depending on what you do with Sabine Matton, you may get her as a low level officer as well.
 
By default, yes. In "InternalSettings.h", there is START_DIFF_SHIPCAP, set by default to 0, which - according to its comment, at least - controls this.
True. But if I read @Bob's posts correctly, he definitely doesn't want that.

In fact, ever since we removed the player-level dependency from regular ship encounters, I don't remember hearing from anyone who wanted to revert back to that old system.

There may be a setting for this in the "Options" menu. "BuildSettings.h", which these days is controlled by the "Options" menu, has a variable IT_RPG_STYLE which is supposed to control whether traders take your level into account. It's set on by default.

As for officers, regardless of what the game does to randomly generated officers in taverns, there should be a few low level officers around to be hired as a result of quests. Look for Rys Bloom wandering around Port Royale port area. Or complete the "Saga of the Blacque Family" sidequest and hire Marc Blacque as an officer. Depending on what you do with Sabine Matton, you may get her as a low level officer as well.
Ah, good points! :onya
 
By default, yes. In "InternalSettings.h", there is START_DIFF_SHIPCAP, set by default to 0, which - according to its comment, at least - controls this.
There may be a setting for this in the "Options" menu. "BuildSettings.h", which these days is controlled by the "Options" menu, has a variable IT_RPG_STYLE which is supposed to control whether traders take your level into account. It's set on by default.

(...)
Yup, I left it on, because the description said that it prevents shopkeepers from having high level items early, but said nothing about them not having low level items later, or that it is essentially nothing more than trader inventory level scaling.

Thanks guys for all the advice. I now started a new game with trader scaling off and also with item quality levels off. It's much better now and somehow I see a lot more of different cheap weapons that I haven't seen before, but my inventory is still less clogged than before, due to items stacking sensibly. Damn, the UI in newer Sea Dogs suck. I remembered SD1 having a decent UI, but it seem to only go downhill from there.

BTW. Is aphotecary quest still unfinished? Stumbled upon it and it got me very interested, but later found info from 2016 that it is not finished and can eventually bug you out if you pursue it
 
Offtop here, but dammit... I just started a new game for a moment to test something and...

Did all my saves just got deleted?
 
Trader scaling: it's good that you've set the game the way you want it. :onya

Apothecary quest: as far as I know, no work has been done to fix any bugs. If you play the quest anyway and run into trouble, here's the thread to report it:
Unconfirmed Bug - Bugs in "Mysterious Plants"

Starting a new game in the same storyline will indeed delete all the saves, and you should have got a warning about it. If you want to start another game in the same storyline without wiping the original, change the "Profile" line, which by default is "Player". Note that changing almost anything else resets the "Profile" line back to "Player", so change whatever you want about the character, then change "Profile" right before starting the game.
 
Another offtop question if you don't mind: do tartanas and gunboats show up in shipyards? I've savescummed to try and find one, but to no avail, while Luggers and Hoys show up basically every time.
If not - how do I get one ingame? (not by setting one as the starter ship).

I started anew (again) due to lost saves and decided to try a literal rags-to-riches playthrough. To be precise - I started in a Dinghy, so we're scraping the bottom of the barrel hard here. Next step for me would naturally be a tartana, then maybe a gunboat, before I crawl my way to the starter ship level. So far seems very fun, as I love starting at zero and slooowly dragging my heroes up, but I started to have doubts if the game even allows for such a thing, because so far it seems that tartanas and gunboats may not be available in the shipyard. I can't find them fishing near ports either (that was a common sight in the first Sea Dogs). Maybe it's bad luck, but so far they basically seem non-existent ingame.

So, is there a way to get my hands on them during a normal playthrough somehow, early in the story? Or would I need to spawn them with console or edit them into the shipyards somehow?

EDIT: btw, gunboats (if I remember correctly) seem to be bugged, as they have about 4000 cwt of storage space
 
I started anew (again) due to lost saves and decided to try a literal rags-to-riches playthrough.
Did you try the Castaway player type?
That was the former "EVIL Stormy Start" and should make for the biggest starting challenge.

So, is there a way to get my hands on them during a normal playthrough somehow, early in the story?
Good question. They used to show up.
Not sure why they wouldn't now...

@Grey Roger, any thoughts?

btw, gunboats (if I remember correctly) seem to be bugged, as they have about 4000 cwt of storage space
I recall I did that deliberately. Not entirely certain anymore why.
Probably because of the "cannons take up cargo space" mod I once worked on.
But while the did mostly work, it also caused a lot of NPC ships to capsize.
So it's not enabled by default...
 
Did you try the Castaway player type?
That was the former "EVIL Stormy Start" and should make for the biggest starting challenge.
I heard about that option, but I don't think I found how to turn it on anywhere. Still, for RP purposes, I prefer to start with a dinghy. My 'captain' is just a fisherman who said "F**** it", took all his life savings and decided to try his luck in trading. There isn't that much to do on one island to have fun gameplay staying there for too long, and it kinda kills the immersion to have a castaway that landed broke and alone on an island for him to buy a brand new ship a month later for the money he acquired from singlehandedly killing 10.000 bandits roaming the forest on an island that is officially inhabited by like a thousand people...

Good question. They used to show up.
Not sure why they wouldn't now...

Then I hope I was just unlucky. According to this (heavily outdated) list I found: http://www.piratesahoy.net/build/Wiki/Ship Mod- edited version(3).pdf
already in 2011 there were like a dozen different ships named Lugger or Lugger something somethig, plus all the other hoys and whatnot added later. Maybe that's why the 3-4 smallest ships don't want to show up, but will eventually. Does the island/nation impact the ships available at the shipyard?
 
I heard about that option, but I don't think I found how to turn it on anywhere. Still, for RP purposes, I prefer to start with a dinghy. My 'captain' is just a fisherman who said "F**** it", took all his life savings and decided to try his luck in trading. There isn't that much to do on one island to have fun gameplay staying there for too long, and it kinda kills the immersion to have a castaway that landed broke and alone on an island for him to buy a brand new ship a month later for the money he acquired from singlehandedly killing 10.000 bandits roaming the forest on an island that is officially inhabited by like a thousand people...
You can select "Castaway" as player type at the start of the game.
You do indeed start with a Dinghy then, so it sounds to me very similar to what you describe yourself.

Then I hope I was just unlucky. According to this (heavily outdated) list I found: http://www.piratesahoy.net/build/Wiki/Ship Mod- edited version(3).pdf
already in 2011 there were like a dozen different ships named Lugger or Lugger something somethig, plus all the other hoys and whatnot added later. Maybe that's why the 3-4 smallest ships don't want to show up, but will eventually. Does the island/nation impact the ships available at the shipyard?
Indeed there are so many ships now that the chance of any one showing up is fairly small.
Also, indeed nations do affect it; some ships will never show up for certain nations, or at the very least less frequently.

You could check PROGRAM\Ships\ships_init.c with (for example) Notepad to see what are the period/nation encounter chances for those smallest ships.
I don't recall any massive restrictions on those small ships though, but I cannot check the code right now to confirm.
 
  • Like
Reactions: Bob
Found something like that for Tartane (first one):

Code:
//Period
   refShip.period.0 = 0.1; //
   refShip.period.1 = 0.2; //
   refShip.period.2 = 0.3; //
   refShip.period.3 = 0.6; //
   refShip.period.4 = 1.0; //
   refShip.period.5 = 1.0; //
   //Nation
   refShip.england = 0.1; //
   refShip.france = 0.1; //
   refShip.holland = 0.1; //
   refShip.portugal = 0.1; //
   refShip.pirate = 0.0; //
   refShip.spain = 0.1; //
   refShip.america = 0.1; //
   refShip.sweden = 0.1; //

   refShip.CanBuy       = true;
   refShip.CanEncounter   = true;

Seems like it is buyable and "encounterable", just very rarely (?)
I dunno which period is the period I play in (basic campaign with that Hawk Guy).
Does any of those numbers impact how often do tartanas show up in a shipyard?
 
Does any of those numbers impact how often do tartanas show up in a shipyard?
Yes, they do. 0.0 means never. 1.0 means they're as common as they could possibly be.
This means they show up more often in the later time periods. The one you're in (Colonial Powers) is 3.
This also means they'll never show up for pirates, as pirate design or at pirate shipyards.
 
  • Like
Reactions: Bob
False alarm, savescummed a bit and finally found an armed tartana, then a normal one some time later.
Didn't realise at first that e.g. all those ships named "lugger" with a minimally different picture were in fact different boats, and just how many boats were in the game. Otherwise I wouldn't be suprised that the shipyards can spawn like 20 luggers before they spawn anything smaller.
 
Back
Top