Dear Larian team,
I have been trying to develop some mods lately focusing on new skills. While doing so I have stumbled upon a number of limitations, which are either impossible or hard to overcome without going for scripts. Alas as I want the best possible compatibility and AI to be able to use the mods I would like to stay scriptless.
In these posts I will mark a number of suggestions of how to extend the functionality of Divinity Engine and specifically what can be done using Stats.
1. Currently there's is no easy way to check for statuses on one target and do a certain effect to another target based on those checksHere are few examples that are hard to do without going into scripts:
- I want my skill to do extra damage to TARGET if I am BURNING
- I want to steal positive statuses from my TARGET to SELF
- I want a skill to transfer SELF negative statuses to TARGET
My suggestions is to extend the syntax of IF checks to be able to do following inside Skill Properties:
TARGET:IF(SELF:IF(HasStatus:***)):BURNING,100,1
or following
SELF:IF(TARGET:IF(HasStatus:***)):BURNING,100,1
2. To make some complex skills I might want to create some post-skill effects like chain explosions or similar stuffRight now my options are limited to EXPLODE and LeaveAction of statuses but both are very flawed if you want to heavily use them.
Suggestion is to allow us to cast extra PROJECTILE (and maybe some other types) skills via SkillProperties. They should have same "SELF" as original skill and same alignment as original skill
Example:
TARGET:IF(HasStatus:SHOCKED):LightningBolt,100,3
This skill will trigger 3 extra LightningBolt projectiles with 100% probability if TARGET is SHOCKED
3. For some reason !HasStatus checks do not workSometime I want to check if my TARGET is actually missing certain status. For example if I want to protect it from extra status effects if it is already BURNING.
Unfortunately following code does not work as expected:
TARGET:IF(!HasStatus:BURNING):SLOWED,100,3
Suggestion is to enable the checks for !HasStatus in Skill Properties
4. Allow modders to enable and disable skills based on custom checksSkill currently have a field "Requirements", which AFAIK accepts values: Combat, !Combat, Immobile and !Immobile and these requirements are not met then skill is disabled. For example Adrenaline skill can only be used in combat and thus it has "Combat" in Requirements
Unfortunately we cannot do no custom checks in "Requirements" and checks like SHOCKED and HasStatus:SHOCKED simply do not work
Suggestion: please enable Engine to use status checks to determine whether skill can or cannot be used at the moment
5. Allow skills to have pre and post effects which happen BEFORE or AFTER the main activity of the scriptI have a folowing problem: I develop a series of skills with skill-chaining using stances. Stances are statuses that grant me skills corresponding to that stance. Once any of granted skills is used it advances stance to the next level. And I have following problem:
Use Stance 1 Skill
Give 3 new skills
Using any of 3 skills Grants Stance 2, Remove those 3 new skills.
Stance 2 is now active
But when I land the first hit of a skill, it removes the stance which gives the skill, thus canceling the skill
What happens is that skills like JUMP or MULTISTRIKE (and many others) are simply cancelled mid-air as the stance-status that granted them is no longer there
My suggestion is to add PreActions and PostActions to all skill types that will be done either before or after all damage and Skill Properies (and their children like EXPLODE) are comlete. PreActions and PostActions can use same syntax as "SkillProperties"
6. Unrestrict EXPLODE effectAs of now there's a strange limitation that does not allow single source to cause more than 1 EXPLODE on a single target in one combat turn.
For example I have two different skills that cause immediate EXPLODE (e.g. I want main target tto be hit for 100% damage as physical and targets around him to suffer extra FIRE damage). Unfortunately within single combat turn only first of these skills will trigger EXPLODE if I cast both on the same TARGET
Suggestion: please remove the limitation and allow us to restrict EXPLODE manually if we want to
7. Make RUSH skills affect adjacent targets with their skill propertiesI don't know if this is a limitation or a bug but if my RUSH skill has some SkillProperties and I use this skill on a target within like 1m distance then damage is done but SkillPropertioes are not triggered
Suggestion: please allow RUSH to trigger Skill Properties even on adjacent targets
ADDED on 27.11.2017
8. Better cooldowns managementAs of now there's only one command in cooldown management area - reset cooldown.
Suggestion: add following capabilities to cooldown management:
- Shared cooldowns: when one of the skills amongst a group sharing cooldowns is used - all of them go to cooldown. Useful for linking cooldowns of some very strong buffs or disabling abilities
- Reset individual cooldown: a capability to reset a cooldown of a specific skill and not all skills
- Force individual cooldown: a capability to set a specific skill of a character on cooldown
- Force all colldowns: a capability to set all skills of a character on cooldown
9. Allow SELF Skill Properties for CONE and ZONE skillsCurrently ZONE and CONE skills do not process SELF Skill Properties like SELF:WET,100,1; and simply skip them
Suggestion: allow ZONE and CONE skills to apply SELF Skill Properties
P.S. I have posted a similar topic on Steam to cove a broader range of players