Choose Your Language

Monday, 31 December 2018

The Adventure Continues .... 12. Another Day and Night In The Sewers. (Important Updates)

First things first: We managed to catch up on the game-play after having to restart from an earlier save, when I discovered the latest save game had been corrupted. It took around two hours to catch up, and we had another hour new play. Some player feedback also said that this had been the most flowing game for them, and the most free from any issues they had noticed. This post will only cover the gameplay points from after the point of catch up

Also note, that there are some important changes/fixes this time around, after some gameplay experiences. In particular, when relating to certain transitions. (More on that below in the Update Section.) This update also fixes the Show GUI that was accidentally broken in v2.28, and addresses a number of other minor issues, and some return fixes related to disappearing companions and gold (money pouches).

The List of Fixes

1) SHOW GUI: I managed to break this in v2.28, by basically placing it inside a check that prevented it from opening. I hastily restored it (on the night) and have left it restored in v2.29.

2) NPC NAMES (MODULE FIX): We noticed yet another NPC name that was not showing their correct name via the SHOW GUI (once fixed). This time it was "Billy" who showed as "Dwarf". This time around, I have gone through the module checking the names, and found a few more, which have now had the default reference removed, which should restore the names I have given the NPCs. Note that these fixes will only show on a freshly started game. (i.e. Campaign patching does NOT fix this.)

3) MONEY POUCH (GOLD): There was another instance where the gold was not being correctly set after transferring a gold pouch to another player. I believe I have finally fixed this issue. It works in all testing I can do, but have yet to finally test in our DM MP game. (I am hopeful though.)

4) MISSING COMPANION: A return of the "missing companion" bug on a game reload. This relates to a companion not recognising the player's entry to a game and returning to a default wait location. A faction set and check now stops them from disappearing on a player load.

5) ITEM DESCRIPTIONS: On rare occasions, some items descriptions may appear incorrect or relate to another item the PC carries. I have now added an extra line to help prevent this from occurring. If this should happen to anyone, a quick workaround is to drop the item to the floor (if possible) and pick it up again.

6) DM AREA ENTRY FEEDBACK: The DM was getting the patch info on every area entry. I have now placed a check to make sure it is only on first entering the game.

The Transitions Update (SP/MP)

The biggest change this time around is related to some types of area transitions. I made the alterations to help avoid confusion for players, especially in a MP game. Basically, some transitions, which only moved the PCs to somewhere within the same area, could be traversed independently by players and even their individual PCs.

For example, the stairs at the Bloated Buckle, and many transitions in the sewers are examples of the type of transition I am referring to. Originally with such transitions, the player had a choice NOT to have certain PCs follow their active PC if they had told them to "stand ground". Furthermore, in a MP game, every player is responsible for their own transition, rather than have the leader of the party initiate it.

However, these transitions could cause confusion or difficulty in play, especially if there was an encounter shortly after the transition, and definitely if turn-based combat would also initiate an auto-pause. E.g. Player 1 makes the transition with only some PCs, and combat starts, causing automatic pause. Thereafter, trying to bring PCs from the other side of the transition (or more importantly in a MP game, trying to bring a second player and their PCs), became quite difficult to manage - and did not really work.

Therefore, for the minor tactical difference that this type of selectional transition offered, I decided to abandon that working and simply make them the same as any normal area to area transition, which moves all PCs at once, regardless of their current follow status. In a MP game, this also means the lead player must "Gather The Party" as normal, prior to everyone transitioning.

On top of that, I have also improved the Fade To Black timing with respect to auto-pausing a combat after a transition. Previously, a check was in place to ensure the player would not be left "in the black" of a fade if an encounter paused the game. However, the latest version now allows the fade to finish before any potential encounter can perceive the party and take place. It's a subtle difference, but one that means PCs that are supposed to go into puppet mode prior pausing now do so, and there is no automatic spell casting, which was the problem experienced in the original method.

The Heroes Restock Equipment With New Found Gold
The Heroes Acquire New Armour
The Heroes Encounter A Barricade In The Sewers

The Adventure Continues ... 12. Another Day and Night In The Sewers.

I think I am getting used to the smell.

NB: Contains spoilers for Option 1 background.

"I only just got rid of the smell from last time," said Myara. The silence she received from the rest of the party was a resigned acknowledgement of knowing exactly what she meant, but there was no avoiding it if they wanted to complete their task of fixing the sewer systems. They had already found half of the ten they needed to locate, but still had the northern section of the sewers to search in the hope of finding the last five units.

As the heroes trudged on, they encountered more sewer beetles and rats, but dealt with these minor annoyances very swiftly. However, when they had retraced their steps and entered the northern section of the sewers, they discovered some ruffians had also infiltrated the region, and became a deadly threat as the heroes tried to do their work. There was no choice but to kill or be killed, as these thugs obviously had no concern for the heroes, except to try and take from them whatever they could. Maybe this was the reason that the original sewer work notice was found ripped up by the notice board: The thugs did not want anybody going through their zone?

From one of the fallen thugs, Helden retrieved a necklace, which he noticed had a two letter engraving on it, which meant they had managed to recover the necklace that had been stolen and been advertised on the Mercy Mission Board in the Sanctuary. That was one mission solved at least.

As the heroes continued to explore the northern sewers, not only did they discover another four sewer access points, which Helden and Myara alternatively calculated their calibrations, but they also came across Thomsk, the missing cat. Helden was concerned that the cat may come into trouble tagging along with them, but the heroes concluded that it was still better to have it with them now, than run the risk of not finding him again. Once they returned to the surface, they could settle another task.

During their search, they also discovered a metal ladder built into the wall, which Helden reasoned may well come up into the suspicious building they had noticed earlier: Merkes Place. The party had high suspicions that this was most likely the local thieves guild, and Myara's obvious silence on the matter suggested they were probably right.

The search for the last sewer access unit was becoming difficult, with only a few places remaining in the sewers to search. One such place they came across was a barricaded area. The heroes now had to make a decision: either they smash down the barricade and search the area behind, or they retrace their steps, and consider some other areas they had avoided, such as the area that appeared covered in webs, suggesting a rather large spider. Either choice appeared wrought with danger, as the last time they smashed their way to access another unit, they had encountered oozes. Was this area barricaded for a similar reason? Either way, if they wanted the reward, the heroes would have to make a decision.

TOTAL SESSION TIME (UNPAUSED): 3 Hours 10 Minutes.
GAME TIME SINCE START: 17 Hours 14 Minutes.
(REPLAY: 2 Hours. NEW PLAY: 1 Hour 10 Minutes.)
QUESTS ACTIVE: 13 QUESTS COMPLETE: 9 (Ignoring Rule Info)

Friday, 28 December 2018

The Adventure Continues .... 11. The Unwelcome Break! (Corrupted Save Game)

This report is two sided: First off in that we did manage to play something of a session, but, frustratingly for the second, it will have to be repeated! This is all due to a corrupted save game from the session before last. So, although this report addresses some issues I have fixed since the last session, all of tonight's storyline will have to be repeated in a catch up session. This is because while I managed to get the session up and running by using a "new" DM to replace the broken DM version, the problem turned out to be in the actual "module" section of the saved game, which contains the "state" of the module, including monsters either dead or alive. This meant that when testing a load from a newly saved game of the latest session, the DM was still broken.

I concluded that the corrupted save came after the player on WAN started to suffer lag on his broadband. I remember we had to save and reload a couple of times, and we started to experience some strange occurrences then. After checking, the last good save position was at 14 Hours 4 Minutes. Bearing in mind that our last recorded session time was 16 Hours 35 minutes, this means we will have to replay about 2.5 hours, which will probably actually equate to around 1-2 hours tops. So, hopefully, by the end of the next session, we should have caught up and done a little more than what I record here today.

The List of Fixes

1) TODD NAME FIX: Todd's name (the blacksmith) had a default value "dwarf", which displayed. This has now been removed and the MODULE has been updated. (The fix only shows when started from this module.)

2) TODD CONVERSATION LOGIC: There was an illogical flow towards the end of Todd's conversation if the heroes killed Joss and Billy prior to speaking with Todd. This has now been fixed.

3) DM BUTTON OPTIONS: Prevented the DM from clicking on some buttons not relevant to them.

4) DEATH SCREEN (MP): Stopped the "Load" prompt from keep showing in a loop when trying to reload after a MP death. (SP has to keep looping because they can re-spawn.)

5) PATCH INFO: The patch information now only gives update info if the player is updating/patching. i.e. It does not show from a fresh started game.

6) SPELL CAST AI LOGIC: Updated the AI feedback to work better with TB auto-pause function. Now only updates when character sheet closes if TB auto-pause active. Clearer feedback.

7) LOAD GAME CHECKS: Placed more stringent stop checks when a player loads a game to help prevent spurious events and feedback (inc combat auto starting, equip feedback, etc). I also added a new GUI that tells a loading DM if the DM/Game no longer recognises the DM as a DM. This is what happened to our game and gives a heads up that the host needs to load an earlier, non-corrupt, game.

8) PARTY ITEM CHECKS (MP): Expanded the "party" check for items when playing a MP game. i.e. Some items can be checked from all players rather than just one player's PCs. E.g. If player one holds an item that player 2 can make use of with a placeable, they no longer have to pass the item to that player for the player to be able to continue interaction as if they had the item too.

To reiterate, NONE of the above fixes stopped play, but all of them should clarify or make play easier.

Of Course It Was A Trap!


The Adventure Continues ... 11. The Unwelcome Break!

Is this for real or just a premonition?

NB: Contains spoilers for Option 1 background.

Exiting the inn, the heroes appreciated the fresh morning air compared to the dreadful stench of the sewers they had been exploring of late. The sewer job still waited completion, but the heroes wanted to acquire new equipment to help prepare them better for what may lay ahead in the next sewer section. After all, they had encountered oozes, which had damaged their weapons, so now they wanted to find more information about how best to tackle them. The local stores sold a book entitled, "If It Splits, So Should You!" Myara bought and read it immediately, before passing it on to Karasten to read also. In it, they read about Ooze Resistant Oil that could be applied to weapons, which sounded like a good idea and determined to acquire some if they could.

Helden then decided to visit Todd, and help the party become better equipped in both armour and weapons, especially ranged weapons. The group spent quite a large amount of gold that they had recently acquired from the lizard folk of the sewers, but believed the quality of new equipment was well worth it.

As they left the blacksmith's, Myara spied Billy (one of the two journeymen that had locked Todd's chest) and confronted him. When quizzed about Todd's combination code, the ruffian said he would meet the heroes in the boathouse, where he would give them the code. The heroes were highly suspect, and were right to be so, as when they followed Billy into the boathouse shortly after, they suddenly found themselves locked in and confronted by both Billy and Joss, and a couple of other undesirables in combat.

While not totally unexpected, the sudden onslaught was still an unwelcome morning exercise, and not the welcome break from the sewers they had first anticipated. The battle was short-lived, and it was clear the ruffians had not anticipated the strong resistance of the party. Within a few minutes, the journeymen and their partners were dead, and the heroes were picking up their possessions. Thankfully, the journeymen had noted the two digits of the code they possessed on some of their clothing, and so the heroes had a good idea of Todd's combination now. Before they left, however, they noticed a locked door, and after opening it with a key found on Joss, they discovered Kurt (the boathouse owner) who had been locked away by the band of ruffians in his own office.

Kurt was thankful for his release and gave the heroes a reward, including a Chameleon Stone he had hauled in during a fishing trip. After giving thanks, and ensuring the old man was OK, the heroes returned to Todd, whereupon they gave the news regarding their progress with the combination code. Within just a few moments, Myara had cracked the code and was handing Todd his possessions. True to his word, he rewarded the heroes, who chose a copy of the armour molds to work from.

After saying goodbye to Todd, the heroes were finally able to get back on track and head again to the sewers. As they made their way, passing from the guildhall cellar to the sewers, all of them could not help but think, as the sewer stink reached their nostrils, that it was as if the last day was repeating itself ... ;)

TOTAL SESSION TIME (UNPAUSED): 58 Minutes. (After trying to fix the broken DM.)
GAME TIME SINCE START: 16 Hours 35 Minutes.
QUESTS ACTIVE: 13 QUESTS COMPLETE: 9 (Ignoring Rule Info)

GAME RERUN REQUIRED FROM TIME STAMP: 14 Hours 4 Minutes.
GAME RERUN TIME: 2 Hours 31 Minutes. (Probably 1-2 Hours actual.)

Tuesday, 25 December 2018

The Adventure Continues .... 10. Searching The Sewers! (Minor Fixes & Updates.)

Another successful session this time around, with very few issues. In fact, the worst issue was due to the player on WAN suffering some broadband bandwidth limitations, which was quickly resolved after a computer reboot and a stop of some background activities. Here are the lists:-

The List of Fixes

1) MAP PIN DEBUG FEEDBACK: There was some debug feedback that needed commenting out relating to Map Pins. Now commented out. (Did not affect play.)

2) AREA MAP BUTTON: In a MP game the ability to jump areas to update map pins should be disabled for all players always. This briefly showed on first load. This has now been removed. (Did not affect play.)

3) CREATURE ITEMS DROP:  The chieftain lizard folk in the sewers had some creature items set as "Droppable". These have now been fixed. (This fix requires a module update.) (Did not affect play.)

The List of Updates

1) VIGOUR TWEAK: (Another slight vigour tweak, that actually took place in v2.26.

2) SEARCH DEACTIVATION: If a player uses auto-pause TB Combat, and is currently in search mode, the auto-pause will now also remove search mode from all companions (or uncontrolled PCs) when auto-pause is activated.

Helden Refills His Oil Flasks

The Heroes Encounter Lizard Folk!
... And Oozes!
But Finally Make A Rescue!
And Continue Working With The Sewer Access Units


The Adventure Continues ... 10. Searching The Sewers!

Oozes .... Should we run?

NB: Contains spoilers for Option 1 background.

Fully refreshed, the heroes lit their torches and lantern and returned to the stinking sewer tunnels. Their goal was to search for the sewer hands lost down here for the past few days, and, if possible, continue working on the sewer access units that they came across.

Retracing their steps, the heroes made their way to the larger sewer water divide they had come across the day before, and examined the body in the water that lay there. The body and the puncture wounds it sported were fresh .... and this did look like the remains of one of those that they had been looking for.

It was not long before the heroes discovered what has caused those wounds, as they suddenly found themselves under attack from lizard folk: a scaly creature who liked to make a home in water ways, and these sewers offered a natural habitat for these creatures. To the average villager, these creatures had proven a deadly threat, but to the armed party, ready for such encounters, these creatures were unable to offer any kind of real threat, even if they did score the occasional wound on the forward fighters, Helden and Flint.

It soon became obvious as the party continued to explore the sewers, that these scaly creatures had taken over the mid-section of the sewers, and the party took it upon themselves to rid the underground labyrinth of these foul monsters. Thankfully, the lair was relatively new, and the numbers encountered were few and scattered, making dealing with them a lot more manageable than if they had been encountered all at once. And even though the tribe was supported by one or two shaman, even their summoned wolves could offer no resistance to the heroes, who quickly dealt with every encounter with ease.

In fact, the more difficult encounter came when the heroes smashed their way past some crates and uncovered a pair of grey oozes. This caught the heroes by surprise, as they had not seen them as they made their way towards a sewer access unit. Then, suddenly, Threska cried out, and, not knowing what these ooze types were, Helden sounded a quick retreat for the time being. However, trying to flee from a fast slithering ooze in its natural environment was never going to succeed, and so the two fighters, Helden and Flint turned back to help the dwarf cleric, while Myara supported with bow shots.

The oozes released acid, which damaged the weapons, but thankfully, not at a rate that was able to destroy the weapons before they had been slain by the heroes themselves. It was a brief encounter and one that left the heroes with more damage to their weapons than themselves; and while the clerics applied healing to the wounds of those that needed it, it would take extra work at a repair station for the weapons when they were next able.

Eventually, the heroes broke through to the main central chambers of the sewers, where the lizard folk had set up the core residence. Here they encountered a heavy brute of a chieftain, and a larger number of defendants. Even with more support, however, these lizard folk stood little chance against the might and magic of the party. Once the battle was over, all that was left to do was to destroy the lizard folk eggs, and the last remaining evil would be eradicated.

When searching the lizard folk chambers, the heroes found a couple of caged sewer hands, including the one called Jed. Thankfully, at least these two sewer hands had survived, and the one called Jed also gave the heroes the all important Sewer Access Key that they needed to complete the sewer task they had accepted. Without further discussion, the two sewer hands made a quick exit from the sewers following the path the heroes had taken to reach this point.

With the key they needed, the heroes now went about checking over the sewer access units and began to start making calibration readings that they needed to be able to make the repairs. They had managed to locate five units so far, and with Helden leading the way, the heroes retraced their steps and used the key on the units they had discovered to date. Helden, took the initiative and after a few examinations of the units, started to recognise how each needed to be repaired. Some were further off the mark than others, but at least the heroes had now also recovered the two set of gems during their recent search of the sewers. However, Helden concluded that they should find the remaining units and learn of their calibration values before they start applying the crystals to make repairs.

It was now 1.00 am, however, and the heroes were already tired from the numerous combats throughout the night, and determined it best to leave the sewers for now, and have a good night's rest at the Bloated Buckle before continuing their search. To this end, the heroes made their way back to the sewer exit, gleaning calibrations as they went, and finally exited into the fresh clean night air! They immediately headed towards the inn, but as they made their way, Jed, who had been waiting for them after escaping the sewers, ran up to them and gave them a ring as a reward for saving him.

Grateful for his reward, the heroes bid him goodnight and finally settled down for the night at the inn. The heroes made a few quick notes of what they needed to do the following day, but everyone of them was grateful for a good clean bath and a good night's rest.

TOTAL SESSION TIME (UNPAUSED): 3 Hr 8 Minutes.
GAME TIME SINCE START: 15 Hours 37 Minutes.
QUESTS ACTIVE: 14 QUESTS COMPLETE: 8 (Ignoring Rule Info)

Thursday, 20 December 2018

The Adventure Continues .... 9. It's Dirty Work! (UPDATES: Vigour/Guard/TB Combat. TLK Addition.)

We pretty much had an error free session last night. Everything went relatively smoothly, with only a few extremely minor issues, all very easily updated in the latest v2.25 fix. And although we only had a play time recorded of 1 hour 7 minutes, this was mainly due to one player having to be called away for half an hour (combat was in TB pause mode anyway) and we did a fair share of paused TB combat, which does not record time.

As for the latest version, the important thing to note this time around is that there was an update to the TLK file. (Cure Minor Wounds heals 1-4 and not 4, which it currently states. This is the only change, but something I still wanted to fix for the latest file downloads.)

Strictly speaking, there was only one fix that needed addressing, which is explained below, and the rest of the alterations are to do with tweaking/balancing, or updates to do with the TB Combat system, all explained below.

The List of Fixes

1) JOURNAL TB PAUSE: This only affects players using the auto-pause TB Combat System. If, while paused, the player views their journal and looks at a creature entry from the bestiary, the game requires a very brief (0.1 sec) unpause to allow the GUI to update. If the game is paused, the system needed to be updated to ensure the game paused after this update, or else the round would play for the six seconds before pausing again.

2) CURE MINOR WOUNDS TLK ENTRY: The description Cure Minor Wounds spell was incorrect. I have made the cantrip now cure between 1-4 HPs and not 4, as the description said. The latest TLK file addresses the description entry.

3) OTHER (MINOR): A TYPO in the TIME WARP rule description. Target GUI auto open for the DM too.

The List of Updates

1) VIGOUR DRAIN: I have updated the speed of vigour drain according to some types of activity. Previously, the vigour drained at a steady rate, but after some player feedback, I decided to slow down/prevent decay if some sedentary activities are being carried out, like being in a conversation or playing a puzzle, etc. This is so a player's ability to read or take time in some aspects of gaming does not penalise their PCs ability to continue adventuring in a day. (See additional note on TIME below.)

2) GUARD SEARCH: Again, after some player feedback, I decided to alter the algorithm related to the guards that may try to search PCs for stolen goods. The search now depends upon if stolen goods have been reported, and a reduced random chance search roll.

3) CREATURE CR FEEDBACK: When encountering a creature, the PCs are given an indication of how tough an adversary may be (a Challenge Rating or CR) according to the heroes own levels. I have altered the algorithm, as the encounters were giving a CR feedback slightly too high for the creature encountered. i.e. A creature may have been labelled "HARD" instead of "NORMAL". The algorithm governing this may have other slight tweaks if needed, but as it is only a guide, further alterations may not be required.

4) TB PAUSE FUNCTIONS: For those that use the Althéa auto-pause TB Combat System, there has now been an additional 0.5 second "move forward" option added to the SHOW GUI (small square in the top left corner). To activate the 0.5 second forward time, the player now RIGHT-CLICKS in the box. Doing so will move combat forward by 0.5 seconds with each additional right-click. This allows the player to determine if their PCs are doing what they want to in a round, or take additional reactionary steps within the round in question. E.g. The 0.5 second is used and the player notices a creature move somewhere they had not expected, the player may then change the current action of their PC or PCs to accommodate it. This is in addition to the 0.1 second "move forward" that the player can use by simply entering the small GUI at the top left of the page. NB: In a MP game, only the leader can now do the 0.1 step, but all are still able to right-click for 0.5 sec.

CAMPAIGN NOTES ON TIME

MP RESTING MECHANICS REASONING: Because The Scroll is not based in real time, and it caters for more than one player (i.e. Multi-Player) something has to be done with respect to TIME, especially when RESTING. A key point being that the default REST function (R Button) would normally automatically pass time for everyone, regardless of their individual needs. In The Scroll, the players now have the option to pass time or not, according to the party needs (for every players' PCs). For example, if player 1 plays a wizard who uses all their spells before player 2 does (who also plays a wizard), then the following options are available, based upon the following D&D rule:-

It takes a minimum of 8 hours REST before a wizard can regain spells. Or to put it another way: Resting to regain spells is available every eight hours game time. So, if a wizard uses all their spells prior to this time frame, then eight hours must pass (in rest) to allow any to be regained. Options available are:-

A) If a wizard of player 1 uses all their spells in 4 hours of game time, but a wizard of player 2 does not, then player 1 can either play the further 4 hours game time, which means playing a further 1 hour real time before resting to recover spells (One hour game time equates to 15 minutes real time.), or ...

B) Request of other players that the party stop and rest (pass time) to allow player 1 to have enough time to recover the spells that they have lost. If agreed, then TIME must be made to pass before the final result of that REST can be applied using the REST function to recover spells and HPs.

A player, as a member of a MP party, could (of course) simply NOT seek the go ahead to PASS TIME from other players if they wish to force the rest, but as time constraints may be an important issue in some situations of play, then it is generally considered good etiquette to consult with other players before forcing the passage of time. The important point to note, however, is that if eight hours game time has passed and there is NO NEED to pass time, then a player can rest (to recover spells and/or HPs) without having any impact on another player! (In a SP game, this is not an issue as they simply pass time and then recover for their party as they see fit.)

Further reading: Here are some links to past blog posts on the topic:-

1) TIME ...
2) ... AND TIME AGAIN!
3) RESTING & THE PASSAGE OF TIME

THE VIGOUR SYSTEM: In relation to time is the need to rest and recover due to fatigue and exhaustion (and not just for spells and HPs). The rules behind these conditions are fairly varied (as a variant rule) and can appear harsh to the unaware player. However, The Scroll has implemented its own version of the variant rule, which is more generous to the PCs.

From the D20 Resource website, we know the following:-

FATIGUED: A fatigued character can neither run nor charge and takes a -2 penalty to Strength and Dexterity. Doing anything that would normally cause fatigue causes the fatigued character to become exhausted. After 8 hours of complete rest, fatigued characters are no longer fatigued. 

EXHAUSTED: An exhausted character moves at half speed and takes a -6 penalty to Strength and Dexterity. After 1 hour of complete rest, an exhausted character becomes fatigued. A fatigued character becomes exhausted by doing something else that would normally cause fatigue.

FORCED MARCH: In a day of normal walking, a character walks for 8 hours. The rest of the daylight time is spent making and breaking camp, resting, and eating. A character can walk for more than 8 hours in a day by making a forced march. For each hour of marching beyond 8 hours, a Constitution check (DC 10, +2 per extra hour) is required. If the check fails, the character takes 1d6 points of non-lethal damage. A character who takes any non-lethal damage from a forced march becomes fatigued. Eliminating the non-lethal damage also eliminates the fatigue. It’s possible for a character to march into unconsciousness by pushing himself too hard.

In The Scroll, however, a system is put in place to indicate when an adventurer has been on their feet for more than 8 hours, in that they begin to suffer from lower vigour than they had at the start of a day. The more their vigour score drops through continued adventuring (and not resting), the more they begin to suffer from fatigue and exhaustion. The most a PC can suffer in The Scroll is -3 to strength and -3 dexterity and slower movement (when famished). If they push themselves without eating beyond this, then they also suffer further penalties to attack and damage due to hunger. The PC does not need to make a constitution check, as HPs are NOT removed in this system. Furthermore, the heroes never fall unconscious as a result, no matter how sorry a state they become.

NB: It is also worth noting that just because one PC has a higher constitution than another, these detrimental effects due to fatigue and exhaustion are personal and relative. i.e. A fighter with 18 strength may drop to 15 if they go without rest and food, but this is still very strong compared to an accompanying wizard who may have started with 10 strength and has now dropped to 7.

Heroes Take On The Small ...

... And The Dangerous!

The Adventure Continues ... 9. It's Dirty Work!

Didn't we just come this way?

NB: Contains spoilers for Option 1 background.

The heroes started to feel the pressure of being on their feet all day again, and so Myara suggested they all get some rest at the Bloated Buckle Inn before tackling the sewers. The heroes were now quite competent at grabbing sleep wherever they could find it, and so even a cheap night at the inn gave them a good rest, and fully prepared them for what lay ahead.

They rose early, at 1.00 am, and headed straight for the shuttered entrance of the Guild Hall for which Grist had given them the key to be able to gain entrance when the establishment was closed. After a quick nod to Grist, the cellar keep, the heroes opened the trapdoor and descended into the sewers that lay beneath. It was completely dark, and Helden brought out his lantern so that all could see. (Although Flint and Threska could see quite well due to their natural racial ability to see in darkness.)

Myara noticed a nearby chest and grabbed some torches that were inside, as Helden spotted some nearby wall mounted torches and lit them. The small round chamber they found themselves in was almost welcoming in the new light of the torches, but the terrible stench that started to waft from a nearby passage told them quite distinctly that this job was a dirty one!

Helden had hardly started leading the band of heroes down the first passage when they encountered what was to be a fairly common encounter down here: a sewer beetle! It had been a a day or two since the party last saw any combat, and the approaching sewer beetle appeared quite menacing, even spraying acid at the heroes at its approach. However, with Helden's quick reactions, and Myara's bow shot, the oversized, acid spitting vermin was quickly taken down. It was not long before Helden was scratching around its remains, harvesting items than may be of some use, especially in alchemy.

After some minor healing from the clerics, the heroes continued to push north through the tunnels, one time with Helden losing his bearings in the maze of the sewers ... even with his otherwise immaculate mapping skills.

Eventually, the heroes came to what appeared to be a natural divide, a chamber with a bridge that covered a large run of waste water. Myara noticed a body, and took note that she wanted to investigate it, but for now, Helden, acting as the party leader chose to take the group back to map the rest of the chamber south of the divide. As the heroes made their way around, they noticed piles of junk caught up here and there, and often searched them in the hopes of finding anything useful. Apart from the odd useful herb or bullets, not much else was found though.

As the group followed the passage south again, they came across another circular chamber. This one had a few oil barrels and a large table where they could make repairs to weapons if needed. Moving further east from the chamber, the heroes followed a passage that appeared to move to another region of the sewers. As they slowly made their way, searching all the while, a strange noise began to sound ahead, and before they knew it, some of the party started to become confused by its strange influence.

"It's a Gibbering Mouther!" shouted Helden, but half the party were just standing around doing nothing, confounded by it's supernatural sound. Quickly Helden took stand to defend the group, and eventually, as the effect of the strange sound wore off, the rest of the party took up a defensive stance and joined the battle.

The battle was far from easy, and considerably more difficult than a few oversized sewer beetles they had encountered up to now. Helden even noticed that his own magikal weapon was having a minimal impact against this hideous monster and its strange pulsating "skin". More than once, Elana and Threska had to apply their healing to the two fighters that held the creature at bay, while Myara bowed it from behind the fighters. Creatures were summoned and magic missiles cast, but the emanating sound of the creature stopped the summoned creatures in their tracks, and it was obvious that it would take a lot more beating than the spells used so far.

Eventually, with Karatsen exhausted of spells, and the clerics running low on healing, the creature finally succumbed to the blows of Helden and Flint, and the arrows of Myara. Again, Helden searched the remains, and found some useful alchemical essences. However, this battle used a lot of the party's resources, and Helden was not happy about moving forward without spell backup. Although not in the least tired, he made the decision that the party should head back to the first sewer chamber and make camp there and rest to recover spells before resuming their search.

So, the adventurers slowly backtracked, and setup camp in the first chamber, putting their ability to rest in almost any environment very much to the test. The spell casters put themselves into a Trance, and used the Cocoon spell where required, and eventually the 12 hours of time required to rest and relearn spells and prayers passed. It was now around 5.00 pm, and the heroes had prepared themselves for the night shift of dirty work.

TOTAL SESSION TIME (UNPAUSED): 1 Hr 7 Minutes.
GAME TIME SINCE START: 12 Hours 29 Minutes.
QUESTS ACTIVE: 14 QUESTS COMPLETE: 8 (Ignoring Rule Info)

Tuesday, 18 December 2018

The Adventure Continues .... 8. Well Hello Betsy! (Transition & Comp Area Enter Fixes)

Apart from a few relatively minor issues (akin to those we encountered before), the latest session played well, and we managed to play a good 1 hour 29 minutes (after starting later). Here is the latest report ...

The List of Fixes

1) CONVERSATION TRANSITIONS: We were troubled by a different version of the conversation transition we experienced last time we played. Again, it was a simple quick trip to the toolset to apply the fix and reload in under five minutes. Later, I went through the module searching for any other conversations that may suffer from the same problem and found two others. These have also been fixed now.

2) COMPANION DISAPPEAR ON LOADING: A strange one this one, in that it had not manifested itself before tonight, even though circumstances appeared unchanged. Basically, the companions would disappear the moment a player entered the game. A quick search revealed the "area clean-up" code "tidied away" the companions too. The link was that it happened in a new area, and that somehow, the companions faction had changed, probably not unlike Scraps did in the last report. So, the fix was similar: I had to ensure the companions were allocated a faction (when left behind on session exit), that would allow them to be preserved when the player entered again. Sorted!

3) GRIST NAME: This required a MODULE fix, which means the fix will NOT show on just the campaign being patched. Only games starting with Module v2.23 will be fixed. (However, it is a minor fault and does not affect gameplay.) I had obviously forgotten to remove the default string for GRIST in the area designed in the module, which meant Grist's name was showing as the default ("Axle").

The Heroes Learn More About The Sewer System


The Adventure Continues ... 8. Well Hello Betsy!

So this is where Doug was put!

NB: Contains spoilers for Option 1 background.

Melissa was the woman at the front desk of the Guild Hall, and Helden wasted no time in introducing himself. Discussions were cordial, and the heroes learned that Obi Sten was dealing with the sewer problem personally, and they should speak with him with regards to that. Other than that, Melissa helped the heroes to acquire two permits: The first basic work permit required they either cough up 30 gp or carry out three tasks: Pick up some litter, some poisonous toadstools, and solve a puzzle box. The heroes chose the latter, and went straight out to complete the tasks, with Myara putting her decoding expertise to the test once again with respect to the puzzle box. For the second (Smith) permit there was no escaping paying the 30 gp price. Karasten, however, made light work of the test after payment and secured the permit for the party.

Permits stowed away, the heroes decided next to pay Obi Sten a visit and learn more about the sewer task. The task was to search for the lost sewer hands, but more urgently for Obi (or so it seemed) was for the heroes to calibrate the sewer system as best they could, which would earn them extra pay. Obi directed the heroes to go speak with Grist in the Guild Hall cellar, to learn more about the system they were to fix, which they dutifully did. Fixing the sewer system was more involved than they first realised though, and required they study a book (that was lost and they managed to find), and acquire some "calibration crystals" from the sewer hands that were now lost somewhere in the sewers.

After working out what they needed to do, Myara suggested that they look for the sword called Betsy, mentioned in Josiah's letter, before they ventured into the sewers. They knew it was located near the fireplace located in the Guild Hall, and needed to activate a timer switch from the outside. So, as Helden managed to locate and flip the switch, Myara scurried ahead and quickly located the hidden compartment and removed the sword before the compartment automatically locked again. She handed the prized sword to Karasten, because it pulsed with a magik that she could not recognise. Even the learned wizard with his skill in lore ended up having to cast an identify spell to discern the sword's powers. Once cast, the heroes soon learned that the sword was a living weapon from the bygone age, and held a number of magikal properties. Helden quickly grasped the blade and with a broad smile said, "Well, hello Betsy!"

TOTAL SESSION TIME (UNPAUSED): 1 Hr 29 Minute. 
GAME TIME SINCE START: 11 Hours 22 Minutes.
QUESTS ACTIVE: 14 QUESTS COMPLETE: 8 (Ignoring Rule Info)

Saturday, 15 December 2018

The Adventure Continues .... 7. Unearthing Lies & Treasures! (Module Scripts Removal)

The last session went relatively well, albeit still requiring some essential fixes along the way. However, the fact that I was able to quickly save the game, load the toolset to apply the fix and then reload a game so we could continue, should demonstrate how minimal these alterations were. Essential, but small.

The important thing to note with the next v2.22 release, however, is not just the fixes, which I will address below in a moment, but that I have now moved some dialogues and scripts that were once in the module folder, into the campaign folder. What this does, is allow me to continue to update the campaign folder alone, without having to add a hak for our session with each module update; as all the module fixes to date (as opposed to campaign fixes), has only required dialogue and script updates. This also speeds things up when it comes to overall fixes, as I do not keep having to check if the dialogue or script being fixed is a module one that required putting into the hak to check if the fix even worked! This should be a win-win for everybody. And now to this session fixes ...

The List of Fixes

1) ACCUSATION GUI: At the end of the quest involving a murder, the heroes are given the results of their investigation in a GUI. Unfortunately, however, the GUI (which is offered to all players), had inadvertently been left in a state where even the player who activated the GUI could not close the GUI for themselves (and others). This may sound similar to last session's bug, but differs in that the button selection was disabled even for the main player and so they did not even reach the point of closing it even for themselves. (This, in turn, would have closed it for the remaining players, which was the bug fixed last time).

2) RIPPED PUZZLE FEEDBACK: If a PC has the Expert Decoder feat, they are supposed to receive feedback in a ripped puzzle as to how many pieces were in the correct position after moving them around. Unfortunately, while the Notice Text was working, it was hidden behind the main puzzle GUI. (We missed that point while playing.) And the Chat Box feedback had only worked for the host, so I had to give feedback as they worked the puzzle. The feedback has now been fixed to display to all players.

3) GOLD MONEY BAG TRANSFER: I have a new GUI that allows players to much more easily be able to transfer items between the party members. A simple right click on an item, choose "Give To" option and a GUI presents a list of PCs to whom the item can be transferred, with weight allowances remaining. Items with inventories and money bags are transferred slightly differently to other items and I noticed that when one player transferred a single bag to another PC, that their remaining gold bag also disappeared. (It was destroyed.) This problem was caused if a player has a Target highlighted (in the box at the top of the screen), and then applies the transfer. In this case, a valid object was perceived because of the above targeting and caused the code to go awry. If the player did not have a target highlighted, all went well. To fix this, I ensured the object (even if targeted) was later set as an INVALID OBJECT when referring to items with inventories or gold money bags. (I refunded Myara the 500 gp that went missing this way.)

4) SCRAP SCRAPPING PCS: This was a faction problem. When the player temporarily dismissed Scraps from the party, Scraps turned and attacked the PC. (Abandonment problems I guess.) A quick edit of the script relating to the henchman removal ensured Scraps (and other henchmen) would not turn aggressive in future. How or why this had happened is not clear, as I had not had this experience in my own testing ... ever.

5) PLATFORM SPEECH: A very minor issue relating to player click timing. Basically, when a player clicked on the platform to give their accusation speech, they could click again before the script had finished firing and stop the action. As there is a two second delay between click and conversation, a player may think nothing is happening and try clicking again .... and so on. Now, I have made it so once clicked the first time, the player loses control of further commands until the speech is underway. As a point of interest, it was while fixing these scripts that I decided to move all the module dialogues and scripts to the campaign folder. It made it much easier to test, especially after I realised that all my alterations were for nothing because I was working with module scripts that required being placed into the hak before being able to test properly.

6) CONVERSATION TRANSITIONS: Apart from Scraps giving us aggro when leaving the party, this was probably the worst issue on the night. Whenever the heroes tried to transition via a conversation, they failed due to a check that stopped transition if anybody was in a conversation. Well, this transition was from a conversation, so that went nowhere fast! However, that was not the only issue with this path of area transition: I also discovered that the current PC rather than the Main PC was being jumped, which gave all sorts of delays and transition issues. This issue has now been fixed in both areas, and testing shows all works fine now.

The Heroes Finally Gain Entrance To The Guild Hall

The Adventure Continues ... 7. Unearthing Lies & Treasures!

And the murderer is ....

NB: Contains spoilers for Option 1 background.

The heroes found nearly 500 gold coins inside the bag that was left in the statue that stood atop Sophie's grave. It was a hefty sum, and before heading back to Kathy to break her the news, the heroes decided to take a look at some of the other nearby graves, wondering, if they too may hold some secret perhaps?

It wasn't long before Myara believed that she may well have discovered something on a nearby grave belonging to somebody by the name of Josiah Clacks. The text appeared to be some sort of cipher. The rogue sat studying it for a while, with Helden offering some advice here and there, but eventually the heroes decided they need to do some research on ciphers before continuing here.

The rest of the graveyard was otherwise quiet and as one would expect, and so Helden led the group back to Kathy's where they delivered the news of what they had been working on and what they had found for her as a legacy from Sophie. Kathy was bemused, but thankful, and even gave the heroes 200 gp from the stash they had recovered.

Back at the Bloated Buckle,  the heroes now had to push their investigation and interrogate the two suspects they had discovered from Sophie's diary. Helden and Myara wasted no time and confronted Sandy and Doug. After the interrogations, Helden confessed that he felt they both had good reasons to be guilty, but Myara said her gut feeling was that Doug Millerson was the guilty party. The heroes asked around some more, and after speaking with Karl (Kathy's wife), Myara was even more convinced that Doug was their man, as Kathy appeared to have an alibi as to her whereabouts, whereas Doug did not. After reviewing what they had discovered, Helden was finally persuaded to take to the stand and speak to the patrons of the inn about the matter.

Helden was not long into his speech when Orechin turned up with some guards, ready to support whatever the party had determined to do. And when Helden pointed the blame to Doug, the guards made a quick arrest before the miller's son had chance to make his escape. A quick search of Doug revealed a bloodied dagger and more gold than expected, and so the case was considered closed, and the party handsomely rewarded for their efforts. In a short while, the activity at the inn returned to normal, and the heroes finally had time to rest.

While the clerics studied their holy books and the wizard his spell book, Myara studied the art of deciphering code, and by the morning she felt more prepared to have another go at the strange text upon Josiah Clack's grave.

Although the heroes spent some time working on the text, it was worth the time as they learned of a treasure horde located somewhere just north of the village. Helden wasted no time, readied the shovel he had found nearby, and strode off in the direction that the decoded text suggested they would find the treasure. In only a few moments, Helden had dug up Josiah's buried treasure chest, and Myara began to put her newly acquired skills to work on the colourful and elaborate lock that sealed the chest tightly shut. In a short while, Myara had cracked the lock and had access to the horde. And what a horde! There were gems and over a 1000 gold coins! Her newly acquired feat was already paying back dividends.

Along with the treasure, there was another letter  from the long dead Josiah speaking of a sword he once carried as an adventurer: A sword he had called "Betsy", which Josiah had apparently hidden in a secret compartment within the local Guild Hall. This was a too good of an opportunity to ignore, and the heroes immediately headed for the guildhall, hoping it may now be open, having been shut two days ago.

On the way there, Helden spied another sewer entry, which reminded him of the missing workers and the job they still had to do with respect to the Guild Hall anyway. On closer inspection, the heroes noticed that this sewer entrance appeared "broken open". Metal fatigue perhaps? The hole was quite large, however, and the heroes found they could easily fit into the sewers from here, although Scraps refused to go with them. However, rather than continue the search of the sewer hands this way, Helden determined they ought to try to speak with the authorities at the Guild Hall first, and so turned back. Thankfully, when they were stopped by the Empire Guardian this time around and offered to help with the sewer problem they had discovered a couple of days ago, the guardian let them enter.

TOTAL SESSION TIME (UNPAUSED): 2 Hrs 1 Minute. 
GAME TIME SINCE START: 9 Hours 53 Minutes.
QUESTS ACTIVE: 16 QUESTS COMPLETE: 5 (Ignoring Rule Info)

Thursday, 13 December 2018

The Adventure Continues .... 6. The Heroes Go Batty! (Damaging XML Scripts)

Our group finally managed to get a session played after the week of problems with corrupted saved games. I did manage to introduce a couple of others (while trying to improve the DM code), but after recognizing the issue, we pulled the two XML files causing the leveling problems and managed to play a full 1 hour and 17 minutes. This was slightly shorter than we set out to play, but a GUI issue, followed by a computer problem by the guy on the WAN (Windows wanted to update), brought us to an early night.

So, without more intro, here follows the fixes, updates and adventure!

The List of Fixes

1) CORRUPTING XML FILES: The first problem we encountered was shortly after Graham decided to bring on board a fighter (a dwarf called Flint) to replace Aeriol, the elf wizard companion. The process went according to plan until Graham went to level the PC, to catch up with the current level of PCs. At which point the Level Up button refused to work for the PC, and when he did manage to get a little further, the PC's skill points were corrupted, preventing the player from taking the PC any further. To keep the game moving, I quickly decided to remove two potentially offending XML files (one that altered the DM Party Bar to show PC hit points and another to disable the Class Recommend button on the Level Up screens). Once removed from all computers and reloaded, the PC leveled fine. However, I can add that on later testing, it appears another roster PC has been corrupted, but thankfully, is an easy fix because we have the original BIC that can be re-imported into the game. Suffice to say, these two XML files were only added last week, and then only for cosmetic alterations, and so I decided to leave them out now.

2) TB COMBAT EQUIPPING: While not a show-stopper of a problem, it was an issue I wanted to fix, as this problem caused the Turn-Based combat system to unpause for longer than expected when using the 0.1 second advancement (using the Show Info GUI box) or when swapping the equipped weapon. Both of these very brief "unpause" options clashed with the point that you are not meant to pause again in a TB round after unpausing. Therefore, I needed to add some variable checks to allow these options during a TB paused moment in the game. They are now added and work well. On a side note, the TB Combat System now works very well in MP, as well as SP since I improved the code a couple of weeks back.

3) CHOICE GUI CLOSING: The bug that led to the session ending was due to a GUI that was presented to all players in the session. It was only "active" to the lead player who caused the GUI to be displayed. After taking action with the GUI, the GUI then closed for the player taking the action, but, unfortunately, I had not yet coded to close for a MP environment (even though I had coded it to open for a MP one). Therefore, the GUI remained in place and could not even be escaped (that was the correct nature of this GUI), and so the game had to be saved and reloaded. Unfortunately, my friend on the WAN who was presented with the GUI issue has been having his own issues with his computer not starting NWN properly sometimes. This happened tonight; and was probably due to the fact that Windows required an update and restart. So, we decided that would be it for the night.

4) MAIN PC FOLLOW ERROR (INTERCEPTED): While testing, I noted that the Main PC would NOT always listen to (hear) commands shouted by the player when possessing a created PC. I had to go back to an older build to help locate the issue. It appeared to be related to some "new" code I had added to help prevent another follow issue. Once I reinstated the older code, it fixed the new problem, but, thankfully, in testing to date, the old problem has not returned! Go figure.

5) OTHER MINOR FIXES: Other fixes included: A return to the DM Map failing to open, which I hope I have addressed this time; DM stats figures showing incorrectly fixed; a return of the double Party Bar after a toggle, which again, I hope to have addressed this time; and incorrect GAME PAUSE message for the DM.

Game Update

There was only one update this week (which could be called a fix I suppose): I changed one variable to ensure that every member of the party present was compared to when giving feedback on the PARTY CRAFT tab on the character sheet. Previously, the crafting scores only checked the values of the PCs that a player controlled, as opposed to those also controlled by another player. As the tab is entitled "PARTY" and already returned the best/highest feat in the party, it was only proper to do the same with party skills as well.

The Heroes Search Sophie's Room For Clues

The Adventure Continues ... 6. The Heroes Go Batty!

Who needs garlic!

NB: Contains spoilers for Option 1 background.

Helden felt more comfortable knowing they had the backing of another fighter in the group before they faced .... the Belfry Bats! To be fully prepared, the heroes spent what little gold they had remaining to help equip Flint, the sturdy dwarf, with better armour and weapons. Then, weapons in hand, the heroes strode boldly towards the Sanctuary.

Pausing for just one moment at the notice that warned about carrying garlic to ward off the bats, Helden pushed forward boldly, preferring his axe to defeat the creatures than the waft of an herb. No sooner had he led his party to the upper floor of the Sanctuary when the group were instantly swamped by half a dozen bats. Thankfully, both Helden and Flint made up for the lack of garlic and along with Myara and her bow, the heroes swiftly disposed of the belfry squatting creatures.

"It's bat poo!" said Myara as she examined the guano near the bell rope, which Helden decided to pull, much to Orechin's annoyance. Clearing up the remains of the bats, the heroes discovered their first Life Essence: the mystical substance they had recently learned about in the book they had recently found. Furthermore, Orechin was pleased with the heroes work and paid them with 2 healing potions each.

After discussing the picture of the woman they had found on the murder victim, Orechin asked the heroes to confirm with Kathy at the Apothecary who he believed it may be: her daughter! He also advised caution when dealing with Kathy, as it appeared that Sophie had also been murdered only a couple of weeks earlier.

A few minutes later, after confirming with Kathy that the woman in the picture was her daughter, the heroes found themselves wrapped up in a deeper mystery involving a man called Theodore Peach (the man who was recently murdered) who, according to Sophie's diary, was set to wed her in the near future. To this end, the man, affectionately called "Peachy" by Sophie had been collecting gold for their wedding and bringing it to Sophie. Sophie, it seemed, had gone to the trouble of sculpturing a statue with a secret compartment, where she hid the gold, which nobody knew about, not even "Peachy".

In the same diary, Sophie spoke of concerns regarding two people: Sandy, the local serving girl at the Bloated Buckle Inn and Doug Millerson, estranged son of Frank Millerson of the local barn, who had caught her discreetly speaking with Theodore, or the statue. Now both Sophie and Theodore are dead, and the heroes also now have two suspects to investigate. After reporting their suspicions to Orechin, the local clergyman encouraged the heroes to follow up on the suspects and try to learn the truth. He said that he would catch up with them at the tavern after informing the authorities of their discoveries.

Stepping out of the Sanctuary into the warm evening breeze, the heroes looked at each other before deciding to check a theory they had about the gold that Sophie wrote about and the secret compartment that was built into the statue. So, before heading to the tavern to confront their suspects, they decided to head to the graveyard to look for more evidence of secreted gold! The graveyard was only a few paces from the sanctuary, and the statue stood out quite prominently.

"Leave this to me," said Myara, and the halfling rogue stepped up to the statue and placed her arms in the statue's arms, as she had understood from Sophie's diary as the means of opening the secret department. There was a small click, and the statue revealed its secret: a large pouch of gold! Myara, paused for just a few moments, a moral dilemma screaming in her mind, not helped by Helden's eager look at the sight of the treasure: Do we keep the gold and say nothing, or take it to Kathy?

Thankfully, the heroes passed the test of conscience and decided to keep the gold to one side for Kathy and not for themselves.

(And this is where the GUI would not close for Graham and the session came to a close.)

TOTAL SESSION TIME (UNPAUSED): 1 Hrs 17 Minutes. 
GAME TIME SINCE START: 7 Hours 52 Minutes.
QUESTS ACTIVE: 17 QUESTS COMPLETE: 2 (Ignoring Rule Info)

Tuesday, 11 December 2018

MP Save Game Corruption Finally Resolved (v2.20 Available)

The MP save game corruption has been the bane of our gaming over the last week, preventing our group from being able to get anywhere at all. After many restarts and investigations, I finally managed to write a GUI that helped me to have some feedback when a player's PC had become "corrupted". In my search for the problem, I managed to discover that the playerlist.ifo file within the MP save game directory was beginning to show two entries for one of the players. It was this double entry that was giving us so many problems even after the initial problems had been clearly resolved.

Within the file, I could see that the WAN player had two player character entries for himself: one with both the first and the last name, and another with just a first name. At this stage, I had no idea what was causing the sudden dropping of the last name. However, after doing some more testing, we discovered that the problem occurred in a fairly standard way when my wife joined as a second player. I then checked the code to determine if there were any scripts firing (by her) that may have had something to do with the last name. Then I found it! I had indeed, only in the last couple of weeks, made one minor tweak to the code with respect to deleting the last name of (what I thought was) creatures other than the PCs. Sadly, I had forgotten all about this, and even on first checking, it obviously bypassed companions. However, there was no check in place to ensure another player PC did not have their last name deleted!

That error was, in fact, in two places; and once the check against deleting a PC's last name was put in place, the save games from that point onward were no longer corrupted. Evidence that such a small innocuous fix can have devastating consequences. Thankfully, that one now in the past!

DOWNLOAD v2.20 HERE: https://neverwintervault.org/project/nwn2/module/scroll

OTHER FIXES

I have been working in one or two other issues that have come up while testing:-

1) DM map fixed. (Was not opening.)
2) DM Examine fixed. (Was causing terrible issues with memory leaks and overflows.)
3) Companion recovery after combat (with Companion Protector feat). If a party died and the player re-spawned and went on to defeat the enemy, the companions were not recovering. They do now.
4) Turn-Based combat button is working better, and has GAME PAUSED fixed after usage.
5) Trickster Jewellery (some items) had failed to register in the database. A check was removed (which appeared to not do as expected anyway), and the database now fills correctly.
6) Ensured GetAPlayer home brew function does  return a valid object, even if it is a DM.

OTHER UPDATES

More code tightening, especially on the "On Enter" scripts with respect to areas. Some routines that duplicated work have been removed, with respect to setting up the database.

Reduced the number of weather units created to help improve performance.

Ensured newly created PCs would no longer be forced to take the default package after the player had taken time to setup as they wanted. (This is the case for 1st level PCs anyway.)

As a result of the above, I have disabled the RECOMMEND button for CLASS SELECTION when clicking on the LEVEL UP button, as it crashes the client if this is done.

Saturday, 8 December 2018

Here We (Don't) Go Again!

Unfortunately, the dreaded save game issue that I last reported reappeared again. BUT, there is some good news: This time around, although we sadly did not get any gaming in, we did manage to spend the time doing enough "debugging" to help me to be able to reliably duplicate the problem (as far as I can tell) on just the LAN to be able to allow me to continue trying to find/overcome the issue before we next play. And, from that debugging, I believe I truly have found the route of the problem!

The issue stems back to the day I tried to resolve a "minor" issue where a player (upon returning to a saved game) would have to DISMISS a companion and then have to ask them to rejoin again, because the companion had not re associated itself with the player, but thought it was part of the party. It was simple enough to dismiss/re invite to work around the problem, but somewhere around v2.14, I wrote the piece of code that would "automatically dismiss" the companion "properly" when a player returned to their saved game, so that the player only had to re-invite the companions again.

In testing, this all appeared to work well and good, but it was the process of dismissing the companion that introduced the SAVE GAME issue, because when a player would rejoin the game, their own heartbeat script fired (which is the same as the companion's), and thereby "remove" themselves from the game that they were about to load back into. At that point, the game thought it was a new PC entering the game that shared the same name (which is not allowed in the campaign) and threw up the warning refusing them entry. It also explains why if we tried to disable this warning (to allow the player in anyway), that the session then treated them as a new PC entering the game, stripping the character of their equipment, which then triggered a second warning that the PC had "Missing Equipment" for their saved PC. Allowing a player to be able to examine their character by bypassing this check as well, confirmed all their equipment had indeed been removed.

After adding the simple && oPCORCOMP != oMainPC piece of code, to ensure the player PC was not removing itself from the party/session/game, the player was then allowed to rejoin the session, which was now recognizing the PC was still in  the game. So far, I have tested this locally, and it does appear fixed. I hope to be able to confirm for sure after my friend joins and reloads via WAN. However, I reasonably confident that this has indeed resolved the problem this time around.

I am hoping that we may be able to continue from our last successful saved game (where the player can still reload), but there is a slim chance that we may have to go to one save game earlier, if the "damage" was done in the session prior to the last save. At the very worst, we will only be one session behind, which can actually be "fast played" in about five minutes, as the players will not have to reread the material they had in the session before (which had been more than the usual amount).

So, version 2.18 is now available, which contains the fix. It also includes a couple of other minor fixes that stop some debug feedback (left in from previous testing of this issue) ; stops the guard from interrupting a "Rallying Party" action; stops the targeting GUI from accidentally starting when there is no combat taking place; and lastly, fixes Wilf and Gavin's conversations to allow a player to ask a question again if it was aborted half way through. (These conversations are MODULE changes, requiring fresh start or added to the patch hak.)

Friday, 7 December 2018

All Fixes & No Play - Start Saved Game Issues

Well, I need to add another apology. From our own play testing, there was another problem with talking with STORE OWNERS to open the store when their conversation is exhausted. I thought the bug was squashed a few fixes back, but it was back on our last session, which did not last very long at all. More on that in a moment. So, the latest version 2.17 fixes the store issue, and also addresses some other issues that we experienced in our last play.

LATEST VERSION HERE: https://neverwintervault.org/project/nwn2/module/scroll

Here is what happened: Graham (on WAN) wanted to bring in another PC to replace Aeriol, because he felt that another fighter would balance the party rather than with two wizards as it currently stood. After a quick mid game fix to repair skill/feat selections Graham had made for the fighter (which is also in the latest v2.17 campaign folder fix), we continued to play. However, we only got as far as leaving the Bloated Buckle Inn and talking to a store owner when we encountered the store problem, mentioned above. No problem we thought, as we could reload the game and continue without taking the conversation path until it was fixed. However, when we went to reload, Graham (on WAN) had no end of difficulties trying to rejoin the game with the latest save.

The previous save appeared to work still, but (just to be on the safe side) we decided to make sure we could save/reload again having just restarted the session. Then, even that basic step of save and reload gave the same issues as he had experienced previously. We then spent the remaining time we had trying to establish why this had happened without any successful reload for him. In the end, it looked like even Jennifer (on LAN) could not join the session either, experiencing the same error messages.

In the end we ran out of time and I had a new issue to resolve. After checking the code, I thought there were some potential issues that needed addressing (which I did) and by the time I came to test it (the following day), the problem appeared resolved. Then, just out of interest, I went back to the previous version and tried to reload the LAN character again … and it worked!

So, although I made a number of alterations that I believed may have contributed to the issue, in the end, it may have simply been some form of corrupt server data that was cleared after a computer reboot. (I know I should have tried that first, but it’s great with hindsight.) However, those additional alterations I have made did clear up some inefficient code, and (hopefully) ensured a better establishment of variables upon a reload - so that it may help towards ensuring the loaded game did not confuse some variables, including such things as who was the host. NB: The older code still looked good to me, but I am happier with the alterations I have made to help alleviate similar problems (that may have contributed) anyway.

So, no gaming news to report other than these experiences. Hopefully, we will have a decent session tonight. I will report back as usual.

Monday, 3 December 2018

The Adventure Continues .... 5. Freewill v Predestination. (Combat TMI)

Since the last session, I have been concentrating on streamlining the code to improve performance ... again. It has come to light that what works well in a SP game does not always translate to a MP game. In particular, if a player has a GUI open that is making "Update" calls, that GUI instance may work well for one player having it open, but as soon a you have more players accessing the same GUI at the same time, the number of update calls from any such GUI requires paring back or else we end up with a Too Many Instructions (TMI) problem, railroading the server to a quick termination. We experienced this in two cases last time we played, one with the (altered) Character Sheet GUI, and the worst case with the home brew Targeting GUI, which was the last thing we tested before ending the session. Although, the TMIs with that GUI would have insisted such anyway. More on this below. On the back of this experience, I am going to look at the remaining XML scripts and try to alter/fix any remaining scripts that may cause a similar MP issue with TMIs.

Other than that, the session went reasonably smoothly for the 1 hour 37 minutes of unpaused play that we had. (We also started slightly later.) You can catch up on the heroes actions further below. Also note, there are a couple of GAME UPDATES of which to be aware.

The List of Fixes

1) CHARACTER SHEET (TMI): This was our first experience of a GUI opened by more than one player at a time causing an issue. A quick check of the characterscreen.xml showed the alteration I had made for displaying temporary hit points was the likely cause of the issue. It worked using an OnUpdate call without any restriction to that update, meaning it was making the same server call dozens, if not hundreds of time per second. Furthermore, the script it called, gui_fixtemp, had no limit set to the number of times the call would update the GUI, which meant the GUI was calling and updating many times for each player that had it open. The XML now has a limit set to a call only every 0.5 seconds. Furthermore, that call does nothing now, unless there is a need to update the GUI. This problem had escaped our attention until now, because each player was unlikely to have the same GUI open at the same time. However, the players had just leveled and so both players were now trying to look at their Character Sheets at the same time. To workaround the problem on the night, we simply did one player at a time.

2) DOOR LOCKED PCS INSIDE: This problem arose due to a door heartbeat check no longer allowing a DM presence to keep a door unlocked. However, the code was wrong in another way too, so it has now been fixed to ensure interior doors do not lock (if not locked) anyway. Workaround: As a DM was present, the DM simply unlocked the door to allow the players to exit.

3) TACTICAL GUI FEEDBACK (TMI): As the session drew to a close, I asked my players to consider performing one last action that we knew would involve combat, so that I could test that the new TARGETING GUI would work in a MP session as well as it did in SP. (I had not yet been able to test this in a MP environment.) I am glad we tried it, as the test showed there was a problem: the game stuttered and ground to a halt. At least now I could examine the issue and have it fixed before the next session. It turned out the problem was similar to the Character Sheet problem (item 1 above), but much worse. In this case, it was due to the altered noticewindow.xml that was being automatically called at the same time for all players (3 in our case) and had an OnUpdate set at maximum (no limit) to call a reasonably large script (involving multiple loops) dozens of times per second for every player. It was no wonder that the server ground to a halt and crashed. As I stated above, this kind of multiple call may work for a SP game, but it is just too much in a MP game. This is what I did to fix the problem: Firstly, as the main script call (gui_updatetargets) involved loops for all PCs anyway, there was little point calling the same script for every player (to do exactly the same thing each time), and so I restricted the called script to work from the host player only. Secondly, I limited the OnUpdate call to 0.1 seconds (meaning to call only every 0.1 seconds). The combination of these two fixes alone limited the instructions for the TARGETING GUI feedback by hundreds of times. Furthermore, I put in place some other checks that helped alleviate script execution when it was called anyway. The result: A smooth operation. (I have yet to test the system with the player on WAN, but testing locally has shown good results.)

4) MISSING HOLY BOOK: When Graham rested his PCs at the Bloated Buckle, one of his PCs (Elana the cleric) failed to learn any prayers, even though they had paid for expensive accommodation. It turned out that the cleric had "lost" her holy book. It was no longer in her inventory. My suspicion at this stage is that this was related to the COMPANION and their equipment bug on a player leaving the game. (See last blog post.) This was fixed with the last update, but Elana's missing holy book may have been collateral damage with respect to that bug and the fix at the time. Now that the companion equipment bug has been fixed (and Elana was given a new book by the DM), that problem should (hopefully) be gone. On reloading with the DM only (as a test), the cleric appeared to still have her book then. Next session we will know for sure.

5) COMPANION FOLLOW (INTERCEPTED): During some testing, I discovered there was a problem with companions following the correct player if both players controlled more than one PC. This had not been noticed prior to my own testing, as my wife (up to now) had only ever been playing a single main PC, and only Graham controlled more than one companion. The problem was due to variables NOT accommodating a MP environment. I have addressed these now and will try to locate situations where variables should also be updated to accommodate a MP environment. (My own MP testing is limited to a MP environment without a DM as host, which means I do sometimes miss MP issues depending on how I am testing at the time.)

6) OTHER MINOR STUFF: A TYPO was fixed in the Death and Raising rule. The DM calendar did not update immediately from party resting, but did on the hour. A fix has been applied but not yet tested.

Game Updates

1) AUTO-PAUSE REWORDING: The Main Menu currently has "AUTO PAUSE IF ATTACKED". This will be changed to "AUTO PAUSE IF ENEMY SENSED". This is because it more accurately describes the situation of the game pausing on enemy contact rather than any actual attack. i.e. The game can and often does pause before the player is actually aware of what the PCs have perceived. In such situations, the player may need to allow the game to be unpaused until the beginning of another round before they can target or take any action. (See next update.)

2) NO PAUSE COMBAT ROUND: If a player uses the campaign's Tactical Turn-Based Combat System, the game will now NOT allow additional pausing between combat rounds. i.e. Once the player has released the paused action, the game will not be able to be paused again until the six second round has completed, at which time the game will automatically pause itself. NB: This only applies when a player is using the Turn-Based system, which is automatically entered if they use the "AUTO-PAUSED IF ENEMY SENSED" option. (See above.)

The Heroes Return To The Bloated Buckle For A Night's Rest

The Adventure Continues ... 5. Freewill v Predestination

Did we choose to come here, or was it always meant to be?

NB: Contains spoilers for Option 1 background.

Tired as they were, the heroes were fascinated by the scriptures they found around the Sanctuary of Boran. They discovered four ancient texts that spoke of an old argument of the different religions that discussed whether one was in control of their own actions or had always been destined to carry them out. There were the Sovereignites who believed in predestination and the Kingdomites, who believed in freewill.

Shortly after musing over the topic of freewill versus predestination, Helden picked up yet more texts in a nearby bookcase. One spoke of the horrendous disease called The Scourge, which caused living beings to turn into what resembled the undead. The second book went into details about a substance called the Life Essence and discussed the nature of good and evil. It was yet another fascinating read and one that nearly caused division in the party, had not Threska decided that the rest of the party may be right after all, and determined to take on board a change of religion. A rare thing indeed to witness such a change of heart in a person. The heroes decided they would aim to be Channelers, an action that asserted goodness in nature. However, in the light of what they had just been reading regarding freewill versus predestination, there was more than one hero that paused just a moment to consider whether it really was their choice or something predestined?

It was approaching midnight by the time the heroes decided to return to the Bloated Buckle and turn in for the night. The group were already quite fatigued, and Orechin, who had already locked up the sanctuary for the night, had to unlock the door before seeing them out. (See item 2 fix above.)

As the heroes made their way to the inn, they heard a scream. It was a blood-curdling sound that sent their hearts racing, and they paused briefly deciding whether to investigate it or not. After all, they were truly tired and did not want to run the risk of falling foul of night crime while in such a state. Then a voice in their conscience alerted them to the fact that they were supposed to be the heroes, and maybe it was their place to investigate. Clearly, it sounded like somebody was in need of help. So, they made the decision to run towards the scene. They arrived just at the same time as one of the guards turned up and all witnessed that a male figure had been murdered! 

Helden was a little hesitant to get involved and wanted to get back to the inn, but Myara was curious and wanted to investigate a bit more. She examined the body and found a picture of a woman on it. The guard quizzed Myara about it, but said they could hang onto it if they would try to do a bit more investigating, and report back to Taloy or Orechin on their findings. The heroes agreed.

Eventually, the heroes did make it back to the inn, and Myara wasted no time in quizzing both Karl and Sandy about the girl in the picture. Karl had not recalled seeing her (after a little persuasion to talk about it), while Sandy was reasonably certain it was Sophie, the daughter of Kathy, the trader at the Apothecary. She said to check with Taloy, which when they did, appeared to confirm this was quite possible. However, Taloy was reluctant to speak about her due to the way she had only recently died herself under suspicious circumstances. He recommended that they speak with Orechin, as he dealt with her death.

So, as the heroes turned in for another night at the local inn, they had managed to gather more tasks under their belt. And as the heroes settled down for the night, Myara's thoughts went to solving the murder mystery, Karasten wondered more about the Arcaene Lore spells he had read about in the book that the heroes bought from Orechin, Helden considered and imagined himself taking up a little crafting, and Elana thought long and hard about whether she was making the decisions in her life ... or whether somebody else really was controlling her actions. In all, every party member had their own reason to start afresh the next day ... as long as their thoughts did not distract them from sleeping.

TOTAL SESSION TIME (UNPAUSED): 1 Hrs 37 Minutes. (Late start.)
QUESTS ACTIVE: 17 QUESTS COMPLETE: 1 (Ignoring Rule Info)

There were also a couple of questions raised about the mechanics, which I will answer for the record here too:-

1) When Do Henchmen Level? Henchmen level at a rate of a level or two behind the PC they follow.

2) What About the Level of Late Comers? If a companion or henchman is asked to leave the party: at the next time they are asked to join, they will level (gain experience) to a comparable level to the party average. The player can then level that character if required.

3) Automatic Storage of Keys: Every player in a MP game can own a key ring. The same is true of any auto-storage item. (Auto-storage items place items they carry automatically in them when acquired. E.g. If a player has one of their PCs pick up a key and any one of their PCs owns a key ring, the key will automatically be placed into the key ring item.) Note, however, items passed from player to player are NOT automatically placed into such containers and must be done so manually.

Sandy Speaks To the Heroes About Sophie, The Girl In The Picture