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?