Touch Interface Subsystem doesn’t exist on server #
When developing a multiplayer game, be careful where you call up your functions. The Touch Interface subsystem doesn’t exist on the server, it’s not useful. All subsystem functions must be called on the client.
Check if player is local player (exist only on client) #
Each time a new player is added to game, a new subsystem instance is created and assigned to player. You should check if player is local player that exist only on client.

Use Receive Controller Changed event instead of On Possess #
if you use the On Possess event, you may run into problems because it’s only called in server. Use the Receive Controller Changed instead, it’s called on all client and has NewController input that you can use.
Example

