Weird journal thing in my module - is it a bug?

As my brother is currently beta testing my module he is finding all sorts of strange bugs (Sigh, sometimes I just wish there were only typos that you had to correct) and one sounded very strange. I have quite a lot of companions in my module, using andysks and colorsfade’s companion system, and you get to have 3 companions at a time, that you select when leaving camp. When controlling the main PC everything is fine (and that’s how I’ve always playtested it), but when he was controlling one of the companions he said that the journal looked different, that some quests hadn’t gotten as far as when controlling the main PC. Is this a bug? I mean, since you have different companions at different times in the module, of course all of them won’t be around when certain quests begin, but still…
Thankfully it’s not gamebreaking since when he returned to the main PC everything looked normal.

not sure but in the CampaignEditor there’s an option to “KeepJournalSynchedToLeader”

you should also take care when scripting to assign Journal updates to a/the true PC (even if the player happens to be controlling a companion/familiar).


1 Like

Ah, ok. Maybe that’s the problem then. Sometimes when updating the journal it’s from a script when the PC is entering a trigger and then I tend to use oPC = GetEnteringObject() and if(!GetIsPC(oPC)) return; and in scripts in conversations it’s sometimes GetPCSpeaker…(though mostly I just update the quests via the conversation node, but maybe that node has to be a blue one?)

I can’t seem to find KeepJournalSynchedToLeader anywhere. Maybe that’s just when you make a campaign then…

i doubt it …

remember that GetIsPC() means “get is player controlled” (not get is true pc)

yes. It’s probly the scriptin’ then /opinion

Since iirc your module is single party / single player you ought be able to assign all journal updates to GetFirstPC(TRUE)

AddJournalQuestEntry(string szPlotID,
                     int nState,
                     object oCreature,
                     int bAllPartyMembers=TRUE, // <--
                     int bAllPlayers=FALSE,
                     int bAllowOverrideHigher=FALSE);
1 Like

Hmmm…I actually found some scripts that may be the cause of this. In my item aquire scripts and item activate scripts I have only used AddJournalQuestEntry(“q_cheese”,11,oPC); for instance. And here the oPC is just object oPC = GetModuleItemAcquiredBy(); so maybe they are part of the problem. I changed those to for example AddJournalQuestEntry(“q_cheese”,11, GetFactionLeader(oPC));
Those scripts are easy to find since they are named the same with an “i” first and “ac” or “aq” at the end.

Anyway, I don’t know if I have the time or strength to go through all my scripts to check for this.

sounds like you need AgentRansack – searches files for internal strings

… it’s pretty good to have installed regardless