Best practice on how to use movements inputs for multiples characters/AI?

You can have similar results with the built-in functionality. Reading your post, you already have quite a lot of it figured out. You just have to reconcile with the fact that the players are disembodied cameras that send orders to the server and the server does all the work. It won’t be fast or elegant and will go against the “philosophy” of simulating the game on both ends and just correct the clients.

As I said in the end - do whatever gets you there fastest and change your approach when you hit a wall. Make your game modular/decoupled enough so replacements are easy and you can redo parts of it. Don’t spend too much time solving for the particular implementation - the implementation will change.

Moving actors around directly and changing their “health” will get you 70% of the way and can be easily “done better” later on. (transferred to GAS for example) If it took you very little to make you won’t hesitate when you have to replace it. Get the boring thing out of the way (barely working) and focus on whatever is important, fun and unique for your game.

Always assume that everything you make will have to be re-done… because it will be… multiple times.