• 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!

Mod Release The Smart Start Mod Version 72: New starting gear for Charles! (CHEAT CODES TOO!) (dlc compatible)

I looked at the QuestsUtilite.c and at Longway.c and it seems like you might have to edit both. Longway has a section for setting the immortal flag and the other file didn't have that for any of the quest characters. I'm no expert when it comes to programming but a lot of the things I've run into like this just doesn't make much sense or has any logic behind why they did it the way they did. Like Tichingitu was all wrapped up nice and neat in 1 file. Not sure how to proceed with Longway.
 
Some quest characters get spawned multiple times and the game makes them immortal in order for them to survive the next part of the quest, for example Prosper at the start of the game during the rescue of his daughter is immortal, but during the finale of the Final lesson is not. If you want to edit a quest officer, you need to find the code that determines their stats at the time they finally join you (if they join you at all). You find it by following dialogues in the program files and watching where they lead you (make sure you use windows indexing to search the content of files themselves).

As far as Longway is concerned, his final stats are partially determined by his section in QuestUtilite.c (his skills, perks and special points) and most importantly by his section Longway_hire_1 in Longway.c (his hp, immortality etc.)

I would have an inquiry of my own:

Problem I have is that I think I failed to start Fadeys persian swords quest (its not in the quest log and the scimitar havent spawned for me yet despite raiding a lot of rank 3+ ships). I think I accidentally chosen the other dialog option which is in Fadey.c which triggered pchar.questTemp.Persian = "end"; which I assume is a permanent state - is there a way to revert it? I tried executing the pchar.questTemp.Persian = "start"; by appendig it to different line of dialog and also through benua.c cheat, but it didnt work.

Hookmod has the console and in the guide on steam is a command for fixing the bug for dropping nobility after Flying the Jolly Roger quest line -
DeleteAttribute(pchar, "questTemp.Mtraxx.CharleePrince");
I thought this could also delete the pchar.questTemp.Persian = "end"; flag, but I cant formulate the command to do so.
Its not a big deal if I miss out on it, but if anybody has some ideas, it would be appreciated.
 
I guess because Longway and others are not part of your crew right away like tichingitu, you need to make a choice which side will you pick. Even then i'm not sure they will join you permanently, just temporary at first and permanently join you in the end of the quest. To make thing simple, I gave them massive health.

As for Azthek, the Fadey sword quest are quite troublesome, the chance of spawning are kinda low so it's all depend on luck. And the quest log don't have any registry about the sword quest for Fadey (i choose to look for them for him, but no quest log for it) so I'm nut sure whether you chose to start it or not, try to remember if you choose the first or second, the first will start the hidden quest for you. And I don't know about Hookmod beside the map mod so I can't comment it it. If you have the hookmod, upload it for me so I can try it out.
 
Oh so its a hidden quest? I kinda got paranoid cause I didnt see it in the quest log. I know that they are rare, as stated in the files just 5%, I may actually up the chance to test it out.
And what do you mean you dont have hookmod? Its available here on this forum in the first topic, on the last page is the updated version by kb31.
 
I only have the mod that increase sailing speed and time flow slower when on world map. Can you give me the link or upload the zip file for me to see whether I got it or not because i'm not sure.
About the sword quest, I was rank 3 when I got it and so far I am rank 12, I haven't seem the sword, mostly because tier 3 ship are kinda hard to find. I have three problem with the quest:
1- The ship hardly ever alone so fighting it with a smaller ship is near impossible in impossible difficulty (my ship is a class 3 heavy frigate got blew up by 3 frigates and 4 barks).
2- The ship is a trade ship and surrender right away or surrender after a short boarding fight and this deny me the chance to look for the sword
3- My rank is low so high tier 3 ships are rarer.

So my suggestion is to rank up and hunt pirate, because pirate rarely have all big ship in their fleet.
 
Youre rank 12 and already running in a heavy frigate :) ? Easiest for me is to battle gentlemen of fortune, who come after you when you loot a treasure. They are set to be your rank + 5 and number of ships is equal to yours, they also never surrender. Im rank 21, still sailing in mirage (doing the caleuche quest atm) encountering only rank 3 ships - galleons or polacres, the occasional corvette, mostly without musket salvo.

The attached HookMod is the work of Larry Hookins, updated by kb31 for 1.6.0. Its the same one that is uploaded in the HookMod forum topic, the mod that slows your time on global so Im sure you already have it. The settings and the console are in the PROGRAM folder.

EDIT: You were right about Fadeys quest, I removed the random chance from spawning the scimitar and it spawned in the first ship I defeated.
 

Attachments

  • HookMod 1.6.0.zip
    7.6 MB · Views: 604
Last edited:
Not sure if I broke something in my game but as far as Fadey's sword quest goes with accepting or rejecting it. If you show up at Fadey's with any or all of the swords you should be able to turn it in. So far I haven't run into any problems.... Well besides the same problems you guys are having with ships surrendering during boarding.
 
The guide on steam said this is a long quest

Scimitar – This one can be randomly found in the main chest in the cabin of any class 3 or above ship. If you miss it by not looting the chest you are fine, but if you see it and do not loot it, you will never see it again.

The Prophet's Wrath- This is found in the cabin of the Arbutus during the main story quest “The Pirate Saga”. This is Arthur Donovan's corvette near Antigua.

Patissa Khandu- This is found in the chest of Francois Levasseur after you complete the main story quest “Turtle Soup”. It is in the governor's residence. You get the key off of Levasseur's corpse.

So if we want to complete it, we need to play The Pirate Saga and Turtle Soup so mind the ranking, but the reward for the third sword is kinda pathetic.
 
It was a struck of luck on my part. I was flying the flag of Holland to trade with Spain and forgot to change it afterward. So when I encounter a trade convoy of England, I want to ask about the price list (I always do when encounter friendly ship). Now instead of friendly conversation they fire, the trade ship sail other way while the escort head directly to my ship (consist of 1 Heavy Frigate, 4 Caravel). I was using a Snow and got around 120 crews. I lure the HF away and dismasted it, then pepper it with grapeshot until the have no more crew and board it. Thankfully I got material to repair the ship to said to the nearest port. I got a 11ooo bounty on my head for that. Still, it's a nice ship to fight pirate.

This quest is a long quest, but the reward for the first two are worth the effort. The third one is a chance for you to buy an armor. But there are better one out there and you may already have a better one.
 
Last edited:
Ran into a little problem with Tichingitu on a new game I just started. I only found in the Tichingitu.c file where to set the basics like the immortal flag. Tried adding perks, stats and skills and that failed big time. I went and looked at the rest of the file to see if there was any links/calls to other files for his stats, skills and perks. Just couldn't find anything. Does anyone have any ideas where the rest of his stats, skills and perks are?
 
Tichingitus stats are defined in reaction_functions.c, Folke Delucs are in FortFrance_Prison.c, Charlie Knippel, Longway, Hercule Tonzag, Helen McArthur and Mary Casper in QuestsUtilite.c, Hugo Avendell is in Common_Brothel.c.
The french officer you receive with the frigate griffondor is in reaction_functions.c too, search for "griffofficer".
 
Thanks Azthek, very much appreciated. I got another question and it's got me stumped. Is there anything I can do maybe with the code to speed up getting the strange amulet?
 
I have a correction to make, previously I made a guide about increasing the amount of money the usurer can hold, I made a mistake you will have to increase both numbers

first for peso change 1000 into bigger number
if ( (sti(Pchar.Quest.Deposits.(sDepositType1).Result) + sti(Pchar.QuestTemp.Deposits.(sDepositType1).Sum)) > sti(NPChar.UsurerDeposit)*1000)
{
dialog.text = "Pardon me, captain, but this sum is too huge for my provincial bank. I won't be able to bring it into here to pay you your interest. And the lack of a reliable guard... I hope that I'd understand. Anyways, the maximum sum I can accept from you is " +
FindRussianMoneyString(MakeMoneyShow(sti(NPChar.UsurerDeposit)*1000, MONEY_SIGN,MONEY_DELIVER)) + ".";
Link.l1 = "Too bad, I have to find an another banker then.";
Link.l1.go = "Exit";
}
else
{
send for doubloon change 10 to bigger number
if ( (sti(Pchar.Quest.Deposits.(sDepositType2).Result) + sti(Pchar.QuestTemp.Deposits.(sDepositType2).Sum)) > sti(NPChar.UsurerDeposit)*10)
{
dialog.text = "Pardon me, captain, but this sum is too huge for my provincial bank. I won't be able to bring it into here to pay you your interest. And the lack of a reliable guard... I hope that I'd understand. Anyways, the maximum sum I can accept from you is " +
FindRussianDublonString(MakeMoneyShow(sti(NPChar.UsurerDeposit)*10, MONEY_SIGN,MONEY_DELIVER)) + ".";
Link.l1 = "Too bad, I have to find an another banker then.";
Link.l1.go = "Exit";
}

I also recommend increasing the money and doubloon available to usurer in utils.c to make sure it work because I see it has something to do with Usurer Deposit, though i'm nut sure what is the number of Usurer Deposit.

PS: Sorry for my mistake

And Azthek, I have a question about griffofficer, how can I set his PIRATES stats??? Is it generated randomly with this SetFantomParamFromRank(sld, 10, true);?

And correct me if i am wrong about the list
Tichingitu – Recruited in Basse-Terre the first time you meet Fadey. (in reaction_functions.c)
Longway – Recruited during The Dutch Gambit for Holland (QuestsUtilite.c)
Charlie Knipple – Recruited during The Dutch Gambit for England (QuestsUtilite.c)
Hercule Tonzag – Recruited during The Dutch Gambit for The Secret Organization (QuestsUtilite.c)
Red Mary Caspar – Recruited on The Isle of Justice during The Pirate Saga (QuestsUtilite.c)
Hugo Avendell (Purser) – Recruited during Side Quest “Long way to the Gallows”. (Common_Brothel.c)
Ghislain Buchon – Given to us by De Poincy for completing Turtle Soup. (in reaction_functions.c)
Folke Deluc - First Navigator, received during the tutorial quest. (in FortFrance_Prison.c)

So how about these two, do you happen to know? I search the Saga folder but didn't come up with anything.

Helen McArthur - Recruited in Blueweld during The Pirate Saga
Raymond Backer (Doctor) – Recruited during The Pirate Saga
 
Nelson, Helen is in the QuestUtilie.c She wasn't all that far away from Mary in the code...I found Raymond in the reaction file.
 
The Caleuche quest and the strange amulet have multiple conditions. First the game checks if you completed Dutch Gambit for any of the sides (Caleuche is narratively tied to Dutch Gambit). Then there are three different timers that trigger depending on which side you chose in Dutch gambit (search the files for "Caleuche_StartTotal", change the number 120 or 180 to something else):
  1. reaction_functions.c - 120 day timer since you found a severed bodypart - English side
  2. solomon.c - 180 day timer since you returned money to Abigails father - Holland side
  3. joakim.c - 180 day timer since you gave the skull to Merryman - Secret organization side
Only one of the three timers will execute and I dont think changing them after you passed any of the triggers will change the time.
Afterwards you can get the amulet in three different ways:
  1. Random homeless guy - 50% chance for him to offer you the amulet, if you have at least 2000 pesos
  2. Random ships cabin - 33% chance
  3. Random hostile native indians body - 33% chance (his body wont disappear)
Also a note, afterwards you will be tasked to contact a lighthouse keeper about the amulet. Its 50/50 between Basse-Terre and Santiago.


As far as SetFantomParamFromRank(sld, 10, true); goes, thats acording to some of the russian notes a separate stats generator that takes into account your rank. Its supposed to be able to also generate skills, but griffofficer has them allocated separately, so I presume for him it generates only Pirates points. You can replace it with SetSPECIAL(sld, 10, 10, 10, 10, 10, 10, 10); setting the numbers to what you want (theyre in order - PIRATES).

I also forgot Clod Duran you can recruit during Final lesson DLC - hes also in reaction_functions. You can also change his alignment - from "bad" to "good".

Also another note. If you want some of the unique officers you missed out on during Dutch gambit (Knippel/Longway/Tonzag) or later during Pirate saga (Mary/Helen) or indeed any other unique character in the game (so far I have only tried quest officers), you can spawn them with the cheat Benua.c file (from this topic NewStartKit zip file, its in PROGRAM/dialogs/russian/Quest/Sharlie/).

With that file you can spawn a French officer for 75 doubloons (search for help_bespoke_bless_warrior_1a1). You just change the stats of the french guy to stats from their respective files, for example to get Longway from QuestsUtilite.c (how I got Longway anyway):

NPC_GenerateCharacter("Longway", "Longway", "man", "man", 1, HOLLAND, -1, true, "soldier") - I only changed the first six - number before nation is rank - its also set separately later so I dont know if it affects anything, the last three stats -1, true, "soldier", I left from the french guy - dont know what they do.

Then you change his name, last name and greeting (the greeting in the original Benua.c cheat file is there, just a bit lower), the you can add the SetSPECIAL(sld, 10, 10, 10, 10, 10, 10, 10); otherwise they will have randomly generated Pirate points. You can also change any of the other characteristics obviously. They will appear as your passenger.

If you want to change the cost of the cheats in benua file, its right at the top of the file. You can also do this all of this during an active game, code is executed everytime you speak to Father Benua.
 
In the iteminit.c, I saw these lines for the strange amulet fothe Caleuche quest.

makeref(itm,Items[n]); // àìóëåò ¹1
itm.id = "kaleuche_amulet1";
itm.name = "itmname_kaleuche_amulet1";
itm.describe = "itmdescr_kaleuche_amulet1";
itm.model = "";
itm.picIndex = 9;
itm.picTexture = "ITEMS_36";
itm.price = 0;
itm.Weight = 0.3;
itm.ItemType = "QUESTITEMS";
n++;
makeref(itm,Items[n]); // àìóëåò ¹2
itm.id = "kaleuche_amulet2";
itm.name = "itmname_kaleuche_amulet2";
itm.describe = "itmdescr_kaleuche_amulet2";
itm.model = "";
itm.picIndex = 10;
itm.picTexture = "ITEMS_36";
itm.price = 0;
itm.Weight = 0.3;
itm.ItemType = "QUESTITEMS";
n++;
makeref(itm,Items[n]); // àìóëåò ¹3
itm.id = "kaleuche_amulet3";
itm.name = "itmname_kaleuche_amulet3";
itm.describe = "itmdescr_kaleuche_amulet3";
itm.model = "";
itm.picIndex = 11;
itm.picTexture = "ITEMS_36";
itm.price = 0;
itm.Weight = 0.3;
itm.ItemType = "QUESTITEMS";
n++;

And I guess the following items below these are also for caleuche quest too. But i'm not sure what happen if you add them in your item inventory right at the start. I add fadey swords (since i'm not sure which ones are his, I add all the weapon at the start) and it proceed fine, simply talk to him with all three in my inventory and I got the rewards normally.

I think soldier is how the AI for the NPC behavior, like fighting instead of running.

Can we just add another officer instead of replacing the Russian and French officer in the benua.c???? I want to have a female officer too, and the number of officer I want is aat least 7 or 8 not counting the navigator guy (he want to leave later on, you can convince him to stay for awhile before he threaten to jump ship).
 
As a rule of thumb I would not recommend putting any quest items into your inventory right at the start of the game.

As far as the amulets are concerned, youll get the first one as a result of Caleuche quest starting (not the other way around - Caleuche quest wont start as a result of you owning an amulet, it will only start passing the triggers I mentioned in my previous post).
The second and third youll get later in the quest. Only the first one is a chance, although its 50% chance to get from a homeless, so once the triggers (Dutch gambit and the timer) are done, getting an amulet off a homeless guy is easy.
Also carrying them from the start can be dangerous (this may apply for other quest items as well), because:
  1. the game is fairly irregularly coded as far as quest triggers apply, sometimes dialog moves the quest forward, sometimes it checks for specific items or specific tasks or quests being completed, in this case when youll be sent to the shaman with the first amulet, hell send you on a quest to recover the remaining two, which are received in two subquests. If you would have the two amulets already with you, you could hand them over (even accidentally) and move the questline past those two subquests and you would miss out on content and loot
  2. there is a specific mechanic within the caleuche quest, that makes the Flying Dutchman (a first rate 56 gun war galleon) constantly hunt you, if you are in possesion of an amulet
The Fadeys swords are safe because that is just a simple fetch quest, which you can complete by simply having the swords in your invetory.

As far as officers are concerned, you can spawn as many of them as you like. The code in benua.c is just a spawn script. Once you talk to benua and order an officer, it will execute, spawn the character and now you can change the code (to a different character) and order the officer again to spawn a different one. I.e. you can spawn the default french officer, then change the code to longway, spawn longway, change the code to tonzag, etc. etc. I just used the french officer bit of code, cause its already there and you have to change only a few lines.

The only thing you have to be mindful of is that you cant spawn copies of the same character, if you spawn the same character again it will replace the one you already have ( same ID). This is why I wrote "Characters you miss out on" because you can for example spawn all three quest officers (from Dutch Gambit) right at the start of the game, but one of them will be replaced (and therefore have his stats reset) once you get him legitimately through the quest.
 
So I guess putting just the 2nd and 3rd will do if we are lazy to do quest and thrill to fight the Flying Dutchman (just like resident evil player get chased around by immortal mutants).

You mean I can simply add the French and Russian 1st, then change the code, go to the abbot ask him to provide another 2? I actually not sure if I can do it right. This here is my French officer code, I want to give him all 10 in his pirates stats, but don't know how, so if you know, show me. Now back to changing the code for one of the desired officer, take Longway, instead of "RandomBadass" I'll put "Longway" instead? Or I simply replace all these code with the Longway code in QuestsUtilite.c?

sld = GetCharacter(NPC_GenerateCharacter("RandomBadass", "off_fra_1", "man", "man", 1, FRANCE, -1, true, "soldier"));
SetRandomNameToCharacter(sld);
LAi_SetActorType(sld);
LAi_SetOfficerType(sld);
LAi_ActorDialog(sld, pchar, "", -1, 0);
DeleteAttribute(sld, "LifeDay");
LAi_SetImmortal(sld, true);
sld.OfficerPrice = sti(pchar.rank)*1;
sld.OfficerWantToGo.DontGo = true;
sld.CompanionDisable = false;
sld.loyality = MAX_LOYALITY;
AddPassenger(pchar, sld, false);
SetCharacterRemovable(sld, true);
sld.Payment = true;
sld.CanTakeMushket = true;
LAi_group_MoveCharacter(sld, LAI_GROUP_PLAYER);
sld.rank = 1;
SaveCurrentNpcQuestDateParam(sld, "HiredDate");
SetShipSkill(sld, 100, 100, 100, 100, 100, 100, 100, 100, 100);
SetSelfSkill(sld, 100, 100, 100, 100, 100);
LAi_SetHP(sld, 8500.0, 8500.0);
sld.dialog.FileName = "Quest\Sharlie\Goldberg.c";
sld.dialog.currentnode = "Osmanov_Officer";
sld.greeting = "patrol";
SetCharacterPerk(sld, "Ciras");
SetCharacterPerk(sld, "BasicDefense");
SetCharacterPerk(sld, "AdvancedDefense");
SetCharacterPerk(sld, "CriticalHit");
SetCharacterPerk(sld, "HPPlus");
SetCharacterPerk(sld, "Tireless");
SetCharacterPerk(sld, "EnergyPlus");
SetCharacterPerk(sld, "Sliding");
SetCharacterPerk(sld, "SwordplayProfessional");
SetCharacterPerk(sld, "HardHitter");
SetCharacterPerk(sld, "BladeDancer");
SetCharacterPerk(sld, "Gunman");
SetCharacterPerk(sld, "GunProfessional");
SetCharacterPerk(sld, "Grus");
SetCharacterPerk(sld, "ByWorker");
SetCharacterPerk(sld, "ByWorker2");
SetCharacterPerk(sld, "IronWill");
SetCharacterPerk(sld, "ShipEscape");
SetCharacterPerk(sld, "SharedExperience");
SetCharacterPerk(sld, "Medic");
SetCharacterPerk(sld, "Trustworthy");
SetCharacterPerk(sld, "HT1");
SetCharacterPerk(sld, "HT2");
SetCharacterPerk(sld, "HT3");
SetCharacterPerk(sld, "HT4");
SetCharacterPerk(sld, "Rush");
SetCharacterPerk(sld, "perkFlagPir");
SetCharacterPerk(sld, "perkFlagEng");
SetCharacterPerk(sld, "perkFlagFra");
SetCharacterPerk(sld, "perkFlagSpa");
SetCharacterPerk(sld, "perkFlagHol");
SetCharacterPerk(sld, "FastReload");
SetCharacterPerk(sld, "HullDamageUp");
SetCharacterPerk(sld, "SailsDamageUp");
SetCharacterPerk(sld, "CrewDamageUp");
SetCharacterPerk(sld, "CriticalShoot");
SetCharacterPerk(sld, "LongRangeShoot");
SetCharacterPerk(sld, "CannonProfessional");
SetCharacterPerk(sld, "ShipDefenseProfessional");
SetCharacterPerk(sld, "ShipSpeedUp");
SetCharacterPerk(sld, "ShipTurnRateUp");
SetCharacterPerk(sld, "Alchemy");
SetCharacterPerk(sld, "Brander");
SetCharacterPerk(sld, "Troopers");
SetCharacterPerk(sld, "LongRangeGrappling");
SetCharacterPerk(sld, "GrapplingProfessional");
SetCharacterPerk(sld, "MusketsShoot");
SetCharacterPerk(sld, "BasicCommerce");
SetCharacterPerk(sld, "AdvancedCommerce");
SetCharacterPerk(sld, "ProfessionalCommerce");
SetCharacterPerk(sld, "FastReload");
SetCharacterPerk(sld, "ImmediateReload");
SetCharacterPerk(sld, "Carpenter");
SetCharacterPerk(sld, "LightRepair");
SetCharacterPerk(sld, "Builder");
SetCharacterPerk(sld, "BasicBattleState");
SetCharacterPerk(sld, "AdvancedBattleState");
SetCharacterPerk(sld, "SelfRepair");
SetCharacterPerk(sld, "InstantRepair");
SetCharacterPerk(sld, "StormProfessional");
SetCharacterPerk(sld, "WindCatcher");
SetCharacterPerk(sld, "SailsMan");
SetCharacterPerk(sld, "Turn180");
SetCharacterPerk(sld, "SailingProfessional");
SetCharacterPerk(sld, "Doctor1");
SetCharacterPerk(sld, "Doctor2");
SetCharacterPerk(sld, "SeaDogProfessional");
SetCharacterPerk(sld, "Energaiser");
SetCharacterPerk(sld, "MapMaker");
RemoveAllCharacterItems(sld, true);
GiveItem2Character(sld, "blade_19");
EquipCharacterbyItem(sld, "blade_19"); // 151012
AddItems(sld, "cartridge", 25);
AddItems(sld, "Spyglass5", 3);
AddItems(sld, "pistol5", 2);
AddItems(sld, "potion2", 25);
AddItems(sld, "cirass4", 1);
EquipCharacterbyItem(sld, "pistol5"); // 151012
EquipCharacterbyItem(sld, "cirass4"); // 151012
EquipCharacterbyItem(sld, "Spyglass3");
LAi_SetCharacterUseBullet(sld, "cartridge");
ChangeCharacterAddressGroup(sld, "FortFrance_tavern_upstairs", "goto", "goto1");
DialogExit();
break;

PS: If i'll try to add another officer for recruitment from the abbot. But not sure how it will turn out. Maybe Francis Drake will be volunteered.
 
Back
Top