I'm starting this thread to put together all requests to externalize (i.e. make soft-coded) one or more aspects of the game so that they can be modded. Although this thread is especially geared toward modders for their obviously superior insight on the matter (making some aspects of the game moddable falls well within their needs and desires, after all), anyone is welcome to contribute their requests.
As per @CameronTofer
's reccomendations, please make every requests as detailed and unambiguous as possible.
For the devs' convenience, here forth is a list of externalization requests that have been made in this post.- Externalize stats (STR / DEX / CON / INT / WIS / CHA) [requested by: AndreaColombo; @Galactygon]
This way, modders could take care of this
without having to resort to hacky workarounds, as well as implement any house-ruled personalization to stat effects they may require for their mods/total conversions.- Externalize projectiles [requested by: @Avenger_teambg]
Well, my biggest request for externalization would be about projectiles. No hard coded projectiles please. I've made (in GemRB) all the bg1/bg2 (and a significant majority of the other IE games') projectiles externalized. If any dev needs the file specs for that they can see it here
I'm available for any more info and open for changes. These flags are already added to DLTCEP, but it is easy to change. - Externalize character creation [requested by: @Avenger_teambg]
Moddable character generation would be the best. Though, i'm not sure how much you want to unhardcode, later this would be useful (if you create more than 1-2 games). Also modders would be awed.-Externalize Item type / Inventory slot relation [requested by: @Avenger_teambg]
More details in this bugfix request
.- Externalize the way spells/abilities are extended [requested by: @Galactygon]
You could always open up the possibility to modders to somehow "softcode" the way spells/abilities are expended (ie. traditional one-for-one, sorcerer-style, or points system). A better alternative might be to allow modders to link spell casting conditions to external script blocks so that the points system can be mimicked via LOCALs as well as open up the possibility for material components for spells/abilities. (originally found in this thread
).- Externalize the effects and magnitudes of the weapons styles [requested by: @Boaster]
Make a 2DA file that lets modders control and/or modify the effects of weapon style specialization (e.g. Sword and Shield, Two-weapon Fighting, etc.). You may refer to this thread
for further reference.- Externalize animation slots [requested by: @Avenger_teambg]
Actually, it is possible to have entirely custom animation slots. PST had this. And GemRB also got it. We support the different animation schemes of all IE games. You just have to have a 2da that maps the animation slot id to the animation type. And for extras, you can list feet circle, blood color, etc in this 2da (or separate 2da's if you want to spare some space). This is just an externalization request: instead of hardcoding a few more slots, make the entire stuff softcoded.- Externalize gear restrictions for kits & classes [requested by: @Dazzu]
Gear restrictions to custom kits/classes/multi-classes/dual-classes should be easier to do. Say, I want to make a thief kit that can use and take points in Longbows, or even if I want to allow Dwarven Clerics and multi-Clerics to use and potentially specialize in Axes if the dwarf wishes, BUT not allow the same luxury for other races. I, from what I can find, can conclude that to be impossible.- Externalize item restrictions based on characters. [requested by: @Avenger_teambg]
1. npc refuses to unequip item (like MINSC's boo)
2. npc would unequip item only if provided with an equivalent (observed this in PST, Annah/Grace bodices, TNO's eye)
3. only npc can equip item (Xan's sword)- Externalize proficiency effects and creation [requested by: @Grammarsalad]
Related to the character creation and style effects and magnitude requests, I would like to request that there be no restriction on proficiency effects and creation. To make myself clearer let me illustrate with a few examples.
I assume--though I don't know--that as of now it is not possible for a modder to create a weapon type with a corresponding proficiency selectable on level up. I know i've seen a mod with a bola weapon type that uses the sling art, animations and proficiency. I understand that not much can be done about the first two but it would be nice if it was possible to, for example, create a proficiency tier that allowed a small chance to immobilize a foe (if they fail some save) with a bola rather then, say, bonus attacks.
Or perhaps create their own style like unarmed or.armor specialization if they so choose.
It would also be nice if it was even possible to use proficiencies to emulate a "skill", feat or nonweapon proficiency system if they are feeling ambitious. -Externalize item sounds (override default itemtype based sounds) [requested by: @Avenger_teambg]
- Externalize container icons/sound [requested by: @Avenger_teambg]
MISC72 GAM_12A GAM_12B
- Externalize banter timer value [requested by: @jcompton]
SOUND BAM CLOSE
* * *
BAG GAM_12A1 CONTSACK GAM_12A
CHEST AMB_D05A CONTCHST AMB_D05B
DRAWER AMB_D05A CONTDRWR AMB_D05B
PILE AMB_D18 CONTGRND *
TABLE AMB_D08 CONTTABL *
SHELF AMB_D07 CONTSHLF *
ALTAR AMB_D07 CONTALTR *
NONVISIBLE AMB_D18 * *
SPELLBOOK GAM_06 CONTBOOK GAM_05
BODY AMB_D08G CONTBODY *
BARREL AMB_D12 CONTBARL AMB_D13
CRATE AMB_D05A CONTCRAT AMB_D05B
Allowing the player (and/or content developer) to directly affect the wait time between banters (INTERDIA.2DA-govered intraparty DLGs) would be appreciated. Right now there is some sort of internal clock which governs how long the game waits between trying to initiate a banter, but we have no control over it except the CTRL+I key, which attempts to start one.
A UI slider control "Banters less frequently - - - - More frequently" would be nice. A GLOBAL-level control would be okay.
In core BGEE content this would allow players to control the frequency of the "mini-banters" between NPCs. Many mods add large quantities of banters and use scripting to take a stab at increasing the frequency, but a single, transparent and flexible control would give players more control over the experience.- Externalize familiars from GAM-File. [requested by: @Jarl]
There should be a 2da for each alignment, which lists a alterable number of possible familiars and then the game chooses one randomly.- Externalize NPC-specific innate abilities (e.g. Minsc's Berserk, Tiax's Summon Ghast, Yeslick's Dispel Magic, etc.). [requested by: @Miloch]
Otherwise, we have to account for them on each NPC .cre file and this is subject to error (and there are such errors in BG1), as well as getting wiped by mods that rebuild spells. We could have a simple .2da that has NPC DV and ability or abilities, if any. Mods could change this if they want, and it will be apparent they are doing so intentionally, rather than just wiping all spells. Moreover, NPC mods can extend it easily, more so than editing .cre files.- Externalize the hardcoded limit of 24 selectable HLAs. [requested by: @Grammarsalad]
I understand that there is a hard coded limit of 24 selectable high level abilities. I think this is like kits in that you can create more than 9 kits for a given class, but only 9 will be selectable at character creation.- Externalize bard song. [requested by: @Avenger_teambg, @Wisp, @CamDawg]
Base bardsong is hardcoded, but here are the effects:
1. display portrait icon 40
2. resets morale to 10
3. cure fear - removes opcode 24
4. protection from opcode 24
The current setup sounds pretty stupid and if the devs want to implement a bard song that improves with levels, I would imagine it makes a good deal more sense to use the existing SPL framework instead of writing ad-hoc hardcode for it.- Externalize the Barbarian, Monk and Sorcerer classes. [requested by: @Deis]
If that happened we could finally get some fully working kits for them (not to mention the creation of a favored soul type kit for sorcerer).- Externalize NPCs' stats, class/kit, and alignment. [requested by: @Deis]
So that changes can be permanent (unlike Shadowkeeper which is per game only in party).- Externalize projectile explosions. [requested by: @Avenger_teambg; @Galactygon]
Because they are just so much fun.- Externalize weapons' sounds. [requested by: @Jarl]
Please externalise the weapons' sounds (attack, hit), so modders could add more variety here.
This should include the possibility to add different sounds depending on the armor-class, when getting hit (like it was in NWN). So a successful hit by a longsword on a leather armor will sound different to a hit on a plate mail. - Externalize Monk's AC bonuses. [requested by: @Demivrgvs]
The current AC progression is not as per PnP, but the main problem here is that it's implemented in a way (set AC) that makes Bracers of Defense not properly work for Monks. So, the best thing to do would be to make it not hardcoded, and grant AC bonuses via spl files in the relative clab 2da file, using incremental AC bonuses to allow the use of bracers. If such thing is not done you may as well make bracers unusable by Monks, because in the current state a pair of Bracers of Defense may actually worsen a Monk's AC.- Externlize Monk's fists. [requested by: @Demivrgvs]
These are semi-hardcoded (at least we can mess a little with 'mfist#' files), but still causes a bunch of issues. For example Monks are unable to wield Staves because their off-hand slot is secretly used by his fists. For the same reason, Monk's doesn't gain any benefit from Single Weapon Style when wielding only 1 weapon in their main hand (if not fixed at least make Monk not able to spend prof points into 1W style!). - Externalize the hardcoded limit of settable traps. [requested by @CamDawg]
Traps that can be set by Thieves are currently capped at 7 and the limit is hardcoded. Please externalize this limit so that modders can alter it at their leisure.-Externalize character animation ID assignment for arbitrary stat combinations. [requested by: @Avenger_teambg; AndreaColombo]
In GemRB we have the following system:
1. a master list of parts, basically a 2da list of resource names (of 2da's).
It looks like this for most of the games:
You can notice 0x6000 - the base value, and 3 files (race, gender, class)
These four things make up a player avatar's animation ID.
For simplicity, look at the gender file:
35 is the gender stat as you can see in STAT.IDS
This system allowed us to externalize any IE game's PC animation IDs with a huge modding potential and minimal effort.- Externalize the summon cap for monsters and celestials. [requested by @CamDawg]
Please make the summon cap adjustable for all creatures, including celestials.