Jump to content


  • Posts

  • Joined

  • Last visited

Posts posted by Wisp

  1. The ICT line of actions do support IF_FILE_EXISTS, but it's not really documented.

    The error likely means that WeiDU tried to take the first element of an empty list and it's essentially a WeiDU bug that you are getting it, since it's completely unhelpful. However, I'm not able to reproduce the problem. The code in the first post compiles without errors. If it's a better error message that is needed, I can likely take care of that without a test case, but if the error shouldn't be happening, I am going to need some code sample with which I can reproduce the problem.

  2. It's been a while, but version 247 "Return of the Warlock" has now been released.


    Unfortunately, the person who has been providing binaries for macOS is no longer able to do so. Unless someone else steps up to fill the void, I have no WeiDU for our macOS users. The build instructions for macOS should still be applicable, with the caveat that WeiDU cannot be built with OCaml distributions that force immutable strings (so-called "safe strings"). I don't know if this is a version thing (likely) or an option when building OCaml, but versions around 4.07 and 4.08 have worked for me.


    Edit: A Mac build has been posted. Many thanks to everyone who submitted builds!

  3. I have a note in the code that it needs to be updated to account for IWD-style weapon proficiencies (from cdtweaks); do you happen to have that component installed? Or one of the other components that alter the proficiency system? I don't know if IWD-style proficiencies, or one of the other ones, would cause an installation failure. What is happening is that the mod reads proficiencies off the creature, and then encounters a weapon that uses numbers not found on the creature, or some other kind of mismatch between read values and assumptions made.

    A complete .debug file from one of these failed installation attempts would be helpful.

  4. On the DS/QP issue: I'll look into it, but I'm moderately certain this is a DS issue, rather than a QP issue, meaning you'll probably get it with all mods that use the relevant DS code (the DS included in QP is not modified from "main-line" in this regard). If so, you are probably getting it with QP because QP is the first DS-using mod in your stack. Maybe. As I said, I'll have a look.

  5. 2. That and TIZ stuff. IEMOD is platform-agnostic, but it seems unnecessary to demand the contents are, as well. Especially since it means legacy mods could not be repackaged without being re-coded. Archives - right, it is of no particular concern if the IEMOD contains any, and it's unlikely enough that it would.

    4. Anyway, I've updated the spec with some technical details, notably I think we need to specify that the contents should be in UTF-8, or extra-ASCII characters won't translate across locales. Seems less restrictive than requiring everything to be in ASCII. Diff.

  6. On 1/16/2020 at 7:25 PM, qwerty1234567 said:
    1. All the talking and agreeing is nice, but I do not see the actual file format definition. Not as an editable forum post, but as something versionable, like an .md doc on github, at least? The reason I'm asking is that I might want/need to add automatic packaging to Golem.

    First draft: https://github.com/WeiDUorg/zeitgeist/blob/master/iemod_spec

    Some issues remain:

    1. A tighter specification of the ZIP format and allowed/disallowed features. I need to do some boning up.

    2. I can see legitimate reasons for why a mod might want to include archive files in the mod package, and I really don't think we are at a point where we can safely exclude .bat files from mod packages, so table may-exclude may be trimmed a bit.

    3. Possibly some mention of files/directories that differ only in case, or maybe ZIP already has that covered.

  7. It's the same as the last problem. Your

    	REPLACE_TEXTUALLY ~%textToReplace%~ ~\1

    should presumably be

    	REPLACE_TEXTUALLY ~\(%textToReplace%\)~ ~\1


    The back-reference (\1) is a reference to a matched group and as your code is currently written, there is no grouping (for which you use \(foo\). Also it's not necessary to have a newline before Sarevok's trigger: it will be discarded when your DECOMPILE_AND_PATCH closes and the script is compiled. (I think it helps readability to have it on the same line in cases like this.)

  8. Thank you and season's greeting!

    Do you think you could use, say, NI, to open the area (AR2300.ARE) and check if the container ("Treasury") includes any magical rope? Likewise for the Sahuagin King (SAHKNG01.CRE)? I'm fairly certain Randomiser does not touch the guy in mode 1 unless scrolls are randomised, so not finding any rope there is doubly strange.


    If there is no rope to be found, could you zip and upload the files override/fl#randomseed.2da, override/fl#randoptions.2da and override/fl#removeditems.2da?

  9. On 12/17/2019 at 10:11 PM, Mornagest said:


    Thank you fot this funny mod ! I ran a new game just to try it and now I'm in the Underdark...

    I just wanted to report a bug that can be annoying : the rope needed to climb down from the sahuagin city to the Underdark has been moved in my game. I checked the royal treasure, where the rope normally is, but it wasn't there...

    Item Randomiser does not move the magical rope. I gather you got around the issue, but if you want to trouble-shoot, you could use WeiDU to run a change-log on the file ar2300.are, which is the area with the treasury container you checked. King Ixilthetocal also has a magical rope.

  10. On 12/8/2019 at 10:38 AM, Guest Krechas said:

    Hi guys, question - how to tell that Randomizer worked? Because I tried mode 2 and I found:

    dagger +1,

    staff +1,

    long sword +1 and

    long sword + 2 'Varscona'

    Helm of Balduran and

    Metaspell amulet

    in the beginning, the same way how I would do in vanilla game.

    Then I tried mode 1 and I found almost the same - although Helm of Balduran and metaspell amulet was gone - and there was nothing else as replacement.

    Does the mod doesn't bother about the trash, only-usable-in-the-beginnig +1 items?

    And why did mode 2 didn't do anything? It was supposed to alter even more items - and I would really like that!

    The mod does not randomise items found inside Irenicus' dungeon. IIRC, some of the items you mention are ones that can be imported from BG1, which is part of why they are not randomised (compatibility with other mods, like Dungeon-Be-Gone is another reason).

  11. 7 minutes ago, Arthas said:


    In vanilla's game, three heads are inside Nalia fortress and the other two are inside Watcher's keep if I remember well

    I was wondering if all the heads could be moved inside Nalia's fortress

    Oh, you mean the two extra ToB heads. It's only Cespenar who can forge those, so finding them in SoA would do you little good. It would also break a bit with the vanilla flavour, since there are very few +5 weapons in SoA, but very many in ToB, and the extra ToB heads were added to keep the flail competitive.

  12. On 11/14/2019 at 7:21 AM, Endarire said:

    What were these 'legendary' features that were promised or implied?  What's in the current version?  What's planned for future releases?

    May we also get a link to the current forum and download on the Gibberlings3 site and have the current page info updated for the latest release?

    The original post references this topic, which started out as a feature request for version 7. Very little has happened in these past 8 years, sadly.

    I'll check with G3 to see if the old readme can be updated. The links to the forum and download seem to work, however.

  13. On 11/9/2019 at 8:38 AM, Arthas said:

    Hello, would it be possible to move all heads of flails of age into nalia's fortress?

    I'm unsure what you mean. All the random locations for the flail pieces are located inside the de'Arnise Keep. You can find a detailed list in the document spoilers_randomiser.html, which comes with the mod.

  14. Maybe this reply is too late to do you much good, but for posterity:

    On 11/14/2019 at 7:13 AM, Endarire said:

    -Are vendor inventories randomized?  If so, how?  For example, if vendor inventories are randomized, do scrolls only randomize with other scroll slots on vendors?  Do vendors potentially start with more or fewer items?

    Mode 1 takes few items from vendor inventories, because the in-game scripting system can't add items back in. Randomisation is mostly limited to some of the more interesting items, but merchants are left with most of their inventory intact.

    On 11/14/2019 at 7:13 AM, Endarire said:

    -Are creatures' equipped items and items in creature inventories randomized?  What about If so, how?

    Mode 1 does this to a very limited extent, again, due to limitations of the in-game scripts. It is mostly limited to items the creature does not have equipped and items that are randomised back to creatures are added unequipped. When an equipped item is randomised, it's typically replaced by a generic equivalent.

    For most of the mod's whizz-bang features, creatures using their randomised items and such, mode 2 is required.

    On 11/14/2019 at 7:13 AM, Endarire said:

    -Since mod items are randomized, how does randomization ensure these mods are completable, especially if they include new areas like Balduran's Sea Tower or Sandrah's Saga?

    Mod items are not really randomised. Some vanilla items are used by mods and Randomiser either skips these entirely (if moving them would cause problems) or leaves the choice to the player (if moving them would cause cosmetic-grade issues).

    On 11/14/2019 at 7:13 AM, Endarire said:

    -How are plot items randomized, like keys or the Flail of Ages?

    Keys are not randomised, plot items are generally not randomised and the flail pieces can only show up in the de'Arnise Keep, just not necessarily in the vanilla places.

  15. 16 hours ago, Sam. said:

    On an unrelated note, why does CREATE ~ITM~ leave the Item Animation field at 0x0000 instead of initializing it to the standard "none" value of 0x2020 ("  ")?

    Largely because it's not a structurally important detail. A null value does not cause the game to crash and does not cause patches to fail or to corrupt the file. However, if you think 0x2020 is a better no-value value, I can certainly change it; it's the same deal with strrefs: -1 is a better no-value value than 0.

  16. WeiDU is printing this warning because "target" evaluates to something other than its own string literal (the variable is set in the same scope from which you are calling the function).

    There are no facilities for not having this warning under these circumstances, short of turning off the MODDER option. If "target" does not need to be set in the scope of the function, you can try to isolate it with another function or WITH_SCOPE.

  17. Could you run something like the following from your game directory:

    mkdir tmp && weidu --change-log ar1202.bcs --out tmp > tmp/log

    and zip and upload the tmp directory?

    The error is being issued by WeiDU's decompiler, so it's within the realm of possibilities that one of your other mods has done something bad, or that WeiDU has done so.

  18. 1. Looks like a copy-paste error. The doc was presumably adapted from ADD_ITEM_EFFECT. As it's unused, it's safe to remove (and I've done so).

    3. Yes, TP2 integers are signed 32-bit. It was not a good choice for every conceivable situation.

    4. SET and [ SET ] are not strictly equivalent. SET takes a syntactic type that allows EVAL and the array construct on the left-hand side, whereas [ SET ] only allows plain strings in the same position.

    On 8/9/2019 at 9:00 PM, Sam. said:

    While we're at it, what's the best way to execute on-the-fly code?  Right now I'm writing to a temporary file and then INCLUDE ing it, but I feel like there has to be something better...

    As Mike said, an inlined file is the same thing but is entirely memory-resident and does not leave anything on the file system. Using REINCLUDE on an inlined file is the closet you get to invoking eval on a string in TP2, assuming that's what you want to do.

  19. 5 hours ago, DavidW said:

    Do I need the extra EVAL even if I have AUTO_EVAL_STRINGS set? I ask partly because that bit of code is called a lot, so I don’t think it can be systematically failing or I’d have noticed.

    No, AUTO_EVAL_STRINGS is fine in this case. Sorry, I should have checked.

    (If you ever find yourself in a situation where you'd need two EVALs, AUTO_EVAL_STRINGS only counts for one of them.)

  20. Questpack's General AI improvements do not touch Kruin. The component compiles a few scripts, EXTEND_TOPs a few more and patches a few spells. But if you install SCS on top, you are probably not going to see much benefit from QP's component (so it's not like you are missing out by removing it).

    What I'm guessing is the cause of this is this code from sfo/filetype/lib_cre.tpa

          SET ~spell_level~=  ~%%spellname%_LEVEL%~

    When you want to evaluate a double variable like that, you need an extra EVAL, I'm afraid.

    Also, a small note: if you can be sure the variable is, or need the variable to be, an integer, it is safer to use IS_AN_INT instead. It will not return true if the variable is set but is not an integer, the way VARIABLE_IS_SET will.

    Also, also, another small note: you can give spell level to ADD_MEMORIZED_SPELL as a variable with the kind-of undocumented form: (variable). The form is documented under values, there's just nothing to indicate that it's valid in place of the #number notation.

  21. Are you sure you posted the crashing version of the file? I can't see anything wrong with it [1] and it loads fine into my game.

    1. Well, if I look while paying better attention: his items and inventory is all messed up, with many garbage items and the item assignment all wrong. I was just looking for structural defects, so I missed this the first time.

  22. @AL|EN In that case, I don't understand. You want to propose a second new packaging convention, only this one retains platform-specific stuff inside the mod archive? And at that, one that does not include WeiDU in the mod archive, but instead downloads a mod-specific WeiDU at run-time? It seems nonsensical. You are still including  WeiDU in the mod archive, just in a roundabout way. Or have I misunderstood? Edit: yes, I have. The WeiDU would be shared amongst mods.

    Perhaps also relevant is that the interactive-installer parts that setup-mymod.exe and equivalent solutions rely on are slated to be removed (when this happens is, of course, a fun guessing game).

  • Create New...