Item balance and the eclectic, "picaresque" style of playing modules

Over in this thread, the discussion touched upon how the experience of playing through a series of modules by different authors with the same character could be soured by having wildly inappropriate items for a given module. Poster @HidesHisEyes made such a strong case for why one might enjoy playing modules in this “picaresque” style anyway, so I started thinking about how a module builder could try to accomodate that style without entirely giving up on making a balanced or immersive experience.

First off, there are guidelines on recommended wealth by level in D&D. But many builders won’t be following those, for a variety of reasons. Yet, if you wanted to try to make a balanced experience for someone playing in this “picaresque” style, I think it’s wise to keep an eye towards these numbers. But then you would need a way to find out if their character is already way too rich or too poor in terms of resources!

Here are some utility functions I wrote to help with that:

// Returns the correct gold piece value for oItem, even if unidentified.
int GetIdentifiedGoldPieceValue(object oItem);

// Returns the total gold value of possessed gold, equipped items
// and all items in oObject's inventory.
int GetTotalGoldValue(object oObject);

int GetIdentifiedGoldPieceValue (object oItem)
{
    int nGP = GetGoldPieceValue(oItem);

    if (!GetIdentified(oItem)) {
        SetIdentified(oItem, TRUE);
        nGP = GetGoldPieceValue(oItem);
        SetIdentified(oItem, FALSE);
    }
    return nGP;
}

int GetTotalGoldValue (object oObject)
{
    object oItem = GetFirstItemInInventory(oObject);
    int nValue = GetGold(oObject), nSlot;

    for (nSlot = 0; nSlot < NUM_INVENTORY_SLOTS; nSlot++) {
        oItem = GetItemInSlot(nSlot, oObject);
        nValue += GetIdentifiedGoldPieceValue(oItem);
    }
    while (GetIsObjectValid(oItem) == TRUE) {
        nValue += GetIdentifiedGoldPieceValue(oItem);
        oItem = GetNextItemInInventory(oObject);
    }
    return nValue;
}

Put this in an include file, use GetTotalGoldValue(oPC) and compare it to some number to find out if the character wealth is way out of balance. (Loop and add up over the entire party for multiplayer, just in case they’ve distributed their ill-gotten gains very unfairly.) Then you can come up with a creative way to give them some additional gold or items if they’re too poor, or you can find a way to make them part with some items or gold if they’re too rich. Or you can just ask them to go download something like the PGC3 and use that to fix the issue. I certainly wouldn’t mind that, but it’s not very immersive.

However, item level restriction is a setting on the player’s side of things (and one that you’d probably disable if you’re playing community modules). Has anyone already made a scripted alternative that does something similar to ILR? There’s a plausible scenario where the PC’s total wealth could be entirely within range, but some individual items could still be way too powerful. Conversely, the items could be too weak in general, but their total could still add up to an acceptable level of overall wealth (e.g. no +2 weapons for a martial character at all, which your module perhaps would assume they had).

Of course, any other module they’ve played through could also have mucked up the item values by using custom 2da files. But those don’t save to the character, do they? I know that any unique items requiring custom scripts will become useless in another author’s modules, but I think players have figured that out already. Would it be fair to purge those items then, since they’re essentially clutter?

And I have no good ideas about how to solve any issues with conflicting custom appearances or item properties from assorted hakpaks. What would be the best practice for trying to handle something like that? Does this degrade gracefully by default at all? Or do players who like to play in this style avoid modules with custom content for this reason?

And I have no good ideas about how to solve any issues with conflicting custom appearances or item properties from assorted hakpaks. What would be the best practice for trying to handle something like that? Does this degrade gracefully by default at all? Or do players who like to play in this style avoid modules with custom content for this reason?

Easily avoidable with CCOH(?), which overrides crafting menu conversation to allow changing appearence of items and body parts - so it becomes just a matter of clicking and changing the appearance.

True for appearances, perhaps, but not for custom item types, properties or unique powers, which are only defined in the source module.

Strictly speaking, the only way to ensure data integrity and balance between modules that are not designed as a series is the item strip. That’s how the game is designed, for good or ill.

Not the answer some players want to hear, of course, but maybe it would be better to set the expectation that what carries forward in roleplay is not the baggage but the personality.