It might be worth noting that if all you want to modify are the actual meshes in the blueprint or the value of a specific variable per instance, you can do so as long as the variable is marked as editable inside blueprints. Just look at the defaults panel of the actor placed in the world.
I would like to create a lot of actor Blueprint that uses the same script but are setuped differently in each of them (different static mesh, one got a light attached etc)
What would be the best way to do this if i plan on editing the blueprint a lot and do not want to keep copying the nodes from one blueprint to an another ?
Exemple: 5 differents interactive actor that all uses the exact same blueprint but one is a crate, a door, a drawer, a TV, a burning barrel.
Your options are a mix of blueprint interfaces, blueprint parenting, and function/macro libraries.
Blueprint interfaces can be used to guarantee functions exist within a blueprint but have no base functionality.
Blueprint parenting allows child blueprints to use and override functionality of their parents but you cannot alter parent component properties from a child.
Function/Macro libraries are assets that store functions/macros for calling in any blueprint.
Without knowing exactly what you want to do i would just go with this:
Start with creating a blueprint with base functionality in it but bare bones. When making your actual actors create a new blueprint based on the bare bones one. You can override functions and even call the parent (super) class’s version from within your overridden one.