Like I said, I am aware that fire arrows can be achieved by editing xml.
This mod only added trail_particle_name to all the arrow items.
It's uncontrollable, like you can't make the enemy burns, the arrow will disapear when it hits a target due to the burning="true" flag, but without it the arrow stays with the particles on and consumes tons of GPU memery, the behaviours are all designed by native game and you have no controll over the logics.
But by implementing it myself, I can get a lot of things done. Like the point lights on the arrows are white lights if you are using the xml way, but I added the point lights myself so I can make it orange which looks more like lights from a fire.
And by implementing it myself, I can make the arrow stay where it hits instead of disapearing, and only remove the fire particles and point light so that GPU memery usage won't be too high.
The main problem is still the exposed API doesn't return the reference of the ParticleSystem generated on an agent.
I can make the hit target burns when he gets shot, but I can't mke the fire go away after a few seconds, it will always be on the agent.