Something that hasn't really been discussed yesteryear is the handling of mwscript changes that are not necessarily intrusive to the functionality of instructions and functions, are backwards-compatible and can actually improve existing mod compatibility - those from MCP.
While (I assume) we've now adopted the policy of "don't touch mwscript, better scripting is for Lua", there are some existing mods that rely on subjective changes from MCP and openmw on its own already introduces subjective changes, sometimes MCP feature/fix equivalents. For example, in Melchior Dahrk's "The Sanguine Rose" the script of the artifact relies on GetSpellEffects tweak from MCP which allows it to detect active enchantments, while PlaceAt commands in OpenMW inherit the calling object's scale like in the feature from MCP. Then of course there are fixes like making Drop drop stuff at the calling actor's feet and not the player and making RemoveItem not reduce encumbrance even if there weren't any items removed that are "replicated" in OpenMW. There are more features like that in MCP: GetLevel returning the lock level of locked objects, additional GetAngle/SetAngle axis, AddItem working properly with levelled lists, etc. There will probably be legacy content in future that isn't necessarily reliant on new scripting systems or instructions but still expects MCP's additions to work.
The problem with changing scripting behavior is that it doesn't really make sense to make a different behavior optional -- the scripting behavior should be consistent on any engine configuration. So it's one or another. How should non-controversial non-vanilla scripting enhancements from MCP be handled then? Are they a complete no-go, does it depend on the situation or should they be fine?
Everything about development and the OpenMW source code.
2 posts • Page 1 of 1
AFAIK, extensions to mwscript are within the realm of possibility, as long as there's precedence for them existing (MWSE, MCP), big enough mods use them, and they're not too difficult to implement. We're just not going to add anything new that doesn't already exist, and instead focus on Lua for new things like that.