Dynamically Setting Weapon Properties By Making Them Read-Write

I think it would be very useful to be able to change the weapon properties dynamically.
Properties like damage, range, projectile speed, etc, as well as ability properties such as cooldownPhaseSettings and actionBinding. Currently I believe all of these are read-only.

Use Case - Weapon Upgrades
A common use case for this is upgrading a weapon with player progression. For example, allowing a player to upgrade an existing weapon to give it more range or more damage or reducing its cooldown. If the properties were read-write, then it would be a simple matter of setting the properties to new values.

Current Alternative - Create Separate Templates
I think the only way around this currently is to create a separate template for each weapon upgrade. For example, template 1 would be weapon level 1, template 2 would be weapon level 2, etc. But that gets really cumbersome very quickly, not to mention duplicating everything when just a property or two is changed.

2 Likes

As cool downs are currently are related to abilities, they will be updated at some point. Separate templates actually isn't that bad of an idea, as it might be preferable to change more than a few settings to represent an update. The Core Weapons Pack(version 2) is a good example. As you increase in the rarity of the weapon, the visuals, sounds, ammo capacity, and other stats change. If you'd like to give an example of what you'd like to accomplish we can discuss the different ways to do it.

Thanks for the suggestion! I will check out The Core Weapons Pack.

But I do think for the most flexibility, you may want to consider making every property that is currently exposed in the Weapon properties panel to be read-write. That would allow developers complete freedom to customize weapons dynamically.

I'm fairly certain weapons are due for an update as well. In the mean time, if you also check out the advanced weapons, there are examples of custom properties, like damage ranges (instead of just flat damage) and other aspects that can be tweaked, including a damage api that would be worth looking at as well.

1 Like