"Hacking" & Multplayer Mechanics

For those who have never heard of it, the indie game Quadrilateral Cowboy has players acting as computer hackers in the 1980’s assisting on infiltration jobs and other things of the nature. The most unique aspect of the game, in my opinion, would be its hacking system. Compared to most other “hacking” in other games, in which hacking just boils down to some color-matching puzzle or a mini game, the hacking in “QC” feels more like actual programming, with the player having to type in specific codes on an in-game console in order to perform various actions (such as turning off cameras & lights, opening doors, etc.) to assist in the jobs.

Now, with that explanation out of the way, I get to the main point: How would one go about creating a “hacking” system akin to the one in Quadrilateral Cowboy in UE4? I am primarily looking for any direction/starting points that would allow for a system to function similarly (Player types in “Code #XXX1”, which opens “Door #XXX1”).

It should by noted that for the project (that is still in the planning stage) that this system would be implemented in, there are always 2 players (currently named “The Hacker” and “The Thief”) who must work in tandem to achieve a certain goal (that varies). Important to note as “The Hacker” needs to be functioning on this system while “The Thief”, who is more in-motion than “The Hacker”, needs to have a separate system (akin to Sly Cooper, I guess), while navigating through the location of each “stage”.

This in mind, how would one go about setting up a project meant for multiple players (and by multiple, I mean bare minimum 2) with each player running on their own “system” (the hacking system for “The Hacker” and the Sly Cooper-esque system for “The Thief”)? I’ve never done anything multiplayer before, so I’m really lost on this one.

Criticism/feedback of the ideas presented, despite them being based largely on Quadrilateral Cowboy, and assistance in bringing these ideas to life would be greatly appreciated.

Build controllers for each console and/or controllable actor. These should typically have an array of “code received” and “action to run” structs.
The controllers receive a “code received” event on the server, and if the code matches a particularly pre-configured action, they initiate that action.
On the client, build a GUI that allows players to enter codes (text field, rendered console with buttons, what have you) and when the player has entered a code, send the event to the server.