Jump to content


  • Posts

  • Joined

  • Last visited

About Endurium

Recent Profile Visitors

1,797 profile views

Endurium's Achievements

  1. COPY_EXISTING_REGEXP GLOB ~.*\.SPL~ ~override~ PATCH_IF (SOURCE_SIZE > 0x113) THEN BEGIN // protects against invalid files LPF ~ALTER_EFFECT~ INT_VAR match_opcode = 174 silent = 1 STR_VAR match_resource = ~EFF_M02~ resource = ~EFFM02_#~ END END BUT_ONLY Per the WeiDU readme you can use the "silent = 1" int var to suppress messages when you know they're only happening due to spells lacking the opcode you're trying to alter.
  2. IWD2, the oft-overlooked game, has scarves, which are equipped in the amulet slot. (00AMUL31 Yeti Skin Scarf, and 00AMUL32 Winter Wolf Scarf). Misc items are limited to the Quick Item and Inventory slots.
  3. Protection from Magic scroll?
  4. Thanks for the clarification - it makes sense because all my testing was done by creating new parties/characters that spawned on the starting map, thus no populating of the current area level at that time, if I read correctly. I checked the area INI files as well, and they use labels "area_diff_1" and "area_diff_2" for the two area level fields (pertaining to Goblin Warrens and Enchanted Forest), but these are always set to zero in the non-modded game. Of course, scripts can also control what is spawned by means of INI variables, the "old fashioned" way.
  5. I did some testing. Setting the value in the config INI only has effect when creating a new game. It is ignored for currently saved game sessions. Setting the value in the config INI to zero (disable) afterward, has no effect on HoF/Nightmare saves because of the save variable being set (below) in the saved GAM file. GAM V2.2 offset 0x6C = 1 in HoF/Nightmare Mode, 0 at all other times. Setting it to zero in a HoF save will disable HoF/Nightmare and allow modification of the Difficulty slider, but creatures spawned in areas in the associated SAV file will retain their buffed stats. Using NI I deleted AR1000 from the HoF quick save, loaded it and saved it to test SAV, and the creatures were back to normal stats. Conversely, setting the HoF flag (0x6C) to 1 in a non-HoF game file enables HoF mode, and creatures in the next master area will spawn with enhanced stats. As a side note, your diff data seems to be based on BG2/EE GAM file. Offset 0x6C is only used in GAM 1.1 (PST) and GAM 2.0 but is undefined in GAM 2.2. IWD2 has the actor's saved location in its CRE (V2.2) files.
  6. Thanks for that link; My mind was so stuck in the solo character mode from the last few months that I'd forgotten the game was designed to assume a party of six. Further testing confirms average party level is compared against the requirements in ARE fields 0x54 and 0x55, then actors are (potentially) removed if either of both of those fields' requirements are not met. interestingly, this is done regardless of Difficulty, so scaling vs. party level is handled separately, apparently. Level 1 party six characters (all level 1) - Area Level requirements not met so all actors requiring those levels were deleted. Level 2 party six characters (all level 2) - Area Level 2 requirement met so only actors requiring Area Level 3 were deleted. Level 3 party six characters (all level 3) - Area Level 2 & 3 requirements met so all actors spawned. Level 30 party six characters - Area Level 2 & 3 requirements met so all actors spawned. Level 1 solo character - Area Level 2 & 3 requirements not met so all actors requiring them were deleted. Level 2 solo character - Area Level 2 requirement met so only actors requiring Area Level 3 were deleted. Level 3 solo character - Area Level 2 & 3 requirements met so all actors spawned. Level 30 solo character - Area Level 2 & 3 requirements met so all actors spawned. I was shooting myself in the foot by setting the Area Level reqs to 31 and 15 for testing. Heh. And, as Devsin confirmed 9 years ago, CheckAreaDiffLevel() does indeed only return true on a value of 1 regardless of the above. Thankfully there are only 78 instances of it in scripts (according to NI) and they mostly deal with minor things like drum count in goblin warrens, rest spawn probability, spell casting options, combat decision making, and other relatively minor adjustments.
  7. Alright, with coffee in hand I did some testing using an area script for trigger checking and trying all difficulty settings/Nightmare. I set Area 0x54 to 31, Area 0x55 to 15, and Area 0x56 to 7 just to see if anything changed. Nothing did, and the game always sets 0x56 to 1 in the saves. The trigger CheckAreaDiffLevel() always returned 1 regardless of what I tried. The trigger Difficulty() returned a value of 1 (Easiest) through 5 (Insane) indicating which difficulty I selected, and updated as I changed it in-game. Nightmare Mode is only visible in the game UI by checking the difficulty slider - the button will be solid light gray and the slider permanently set to Insane. To go along with this, both IsHeartOfFuryModeOn() and Difficulty(5,EQUAL) will be true. The only time actor stats are modified is when Nightmare Mode is active. They get Level +12, HP according to level, Attacks/Round +2, CR +10, Attributes (STR, DEX, etc.) +10 each, and the special attribute Mental Fortitude is enabled. This can be observed in the Actor records of a save game ARE. Apparently stats are recalculated on area load after actors lacking Bit 0 in Actor 0x2F are deleted
  8. I had another look at my save, and tried another without Nightmare Mode enabled. Nightmare Mode off - goblin appears unaffected by difficulty settings. Level 1, 4 HP - easy. Nightmare Mode on - goblin scary. Level 13, CR 11, 90+ HP. Maybe the devs, since they only had within a year to complete the game if I remember, left Nightmare Mode to cover extra difficulty, and disabled the other fields rather than fix/complete their functionality. Josh Sawyer commented about development in retrospect (he posted a youtube vid in 2014 about it). As it is, if you want to have max number of enemies to fight, you'll have to run a WeiDU script to ensure Bit 0 of Actor 0x2F is enabled for all actors. Imagine that + Nightmare Mode!
  9. I was looking into this after remembering someone saying somewhere that area difficulty is, due to an engine bug, always set to 1. I found some other things too. In the main structure: 0x54 looks to be the Actor Level override (or maybe adder) for Hard difficulty 0x55 looks to be the Actor Level override (or maybe adder) for Insane difficulty 0x56 is only updated at run-time and seems to always be set to 1. if this is indeed "Current Difficulty Level" or similar, then that might be the bug I was remembering. In the Actor structure: 0x2F seems to be Required Difficulty, where 0 (all bits cleared) is the run-time value apparently meaning "Requirement Met" or something similar, while the other observed values apparently are: Bit 0 = Requires Easiest/Easy/Core Difficulty, Bit 1 = Requires Hard Difficulty, and Bit 2 = Requires Insane Difficulty Observed Behaviors: - Actors that do not have Bit 0 set will always be deleted from the ARE when it is loaded, regardless of Difficulty Setting in game options. I had to set Bit 0 (Actor 0x2F) on a goblin which was only enabled for Hardest and Insane in AR1000 in order for it to remain in the save game ARE on any difficulty setting I tested. - As expected, changing difficulty while in-game does not restore deleted actors. - When I say "deleted" I mean gone, as in the Actor entry is completely non-existent in the saved ARE. - Nightmare Mode didn't seem to have any affect on these fields as far as I could see; behaviors remained the same. What does this do for game play? Well, according to my tests in AR1000, the actor count drops from 55 (observed in BIFF archive via NI) to 34 in the saved ARE, meaning 21 enemies (a mix of melee and archer goblins) are always being removed, regardless of difficulty setting. Edit: I also checked to be sure scripts weren't removing actors. Edit 2: Giving this some thought, it looks like these flags in IWD2 were supposed to make it easier/faster to control which enemies were spawned based on the player's selected difficulty. In IWD this is managed by scripts (primarily EFDELA, EFDELDEF, EFDELEAS, EFDELHRD, EFDELINS, and ELDELNOR) which are attached to selected area actors.
  10. This video popped up randomly for me this morning. Trent mentions BG3 briefly while discussing their EE challenges. Trent Oster interview
  11. Also, this doesn't require the Cheats=1 line in order to work.
  12. He's referring to Item Instance structures that can be in creatures (inventory items) and area containers, which in turn refer to master Item resources via their resref fields. They have their own flags: Cre Item Flags copy pasta: Flags bit 0: Identified bit 1: Unstealable bit 2: Stolen bit 3: Undroppable So only one write per item instance, with bits 1 and 2 being set.
  13. The only other thing I can think of, since I haven't spent much time with the sleep system, is perhaps employing scripted Sequences via SEQ.IDS which cause the character to perform various actions, including AWAKE.
  14. Updated my post - yay for posting from faulty memory.
  15. Hmmm, according to the IESDP the "cure sleep" effect doesn't remove the helpless state. If you look at cutscenes you'll get a good idea of what the game uses to mimic sleep (PlayDead, etc.), such as when our characters are "knocked out" during a scene, then get up and walk toward an actor, etc. Scenes involving Jon Irenicus do this as I recall.
  • Create New...