I was trying to build a talent system where you can customize and improve you abilities. However, I found lost of properties are read-only. For example, I can't even change the abilities' cooldown. Is there any reason why Core is enforcing read-only of these properties?
I guess it's something to do with Performance or Security. I also built a whole progression system thinking I was going to be able to change cooldown values and then found the properties to be read-only.
What I did is, if you want an Ability to have a cooldown of 10, 8 or 6 depending on some talent tree, then leave the ability cooldown on 10. And then use a NetworkedProperty to "override" that default cooldown.
On the Cooldown Ability Event check if the Networked Property value is different than the phase duration, and if so do a Task.Wait(thatAlternativeCooldown), then after the Wait just use the ability's
Thanks for sharing your thought. I was having the same idea, but worried if Core optimizes the built-in ability system. Hopefully they can see the post and maybe allow us to change those values.