**Summary**

The plugin is 100% made with Unreal C++ libraries, they are not the same has the standard C++ libraries, while you can for sure use std C++ to operate the plugin this is not recommended by Unreal. If you just want the blueprint info, its still recommended to read this page then feel free to skip the C++ content.  
As of this moment the Plugin operates in 2 main ways by TCP and UDP sockets thru a api installed at your machine and the other option is by RESTAPI + Socket.IO, for heaviers applications the first approach is recommended.

**Basic Information**

**Emotion Names:** The default names you have to call the emotions inside the emotional map are as follow: channelEXCITED, channelCONFIDENT, channelHAPPY, channelDESIRE, channelTRUST, channelFEAR, channelSURPRISE, channelINATTENTION, channelSAD, channelREGRET, channelDISGUST, channelANGER and channelPAINPLEASURE Feel free to change then to whatever you like or change the array completely, like to a really simple default integer array, etc.

**Inject Emotion Function:** The default names you have to call to update the correct emotions are as follow: excite, sure, happy, desire, trust, fear, surprise, innattention, sad, regret, disgust and anger Those unfortunately aren't changeable, all the others values are strings representings numbers, for more information check the EPU section describing the wave or inject function.

**Emotional Buffer:** It will be a 256 byte stream, the trick part is that the last segment has the okay command together, basically in a string format the last part will be a random number + command like this "96CMD\_OK", take care in cause you are building your own custom method.

**RESTAPI and Socket.IO Commands:** The current list of restapi commands are follow, POST requests -

| MODE    | NAME              | INPUTS                                                                                                          |
|---------|-------------------|-----------------------------------------------------------------------------------------------------------------|
| POST    | login             | {‘epuid’: ‘’, ‘secret’: ‘’, ‘type’: ‘’}                                                                         |
| POST    | send_text         | {‘epuid’: ‘’, ‘secret’: ‘’, ‘‘message’: ’: ‘’}                                                                  |
| POST    | request_buffer    | {‘epuid’: ‘’, ‘secret’: ‘’}                                                                                     |
| GET     | get_config        | {‘secret’: ‘’}                                                                                                  |
| PUT     | logout            | {‘epuid’: ‘’, ‘secret’: ‘’}                                                                                     |
| PUT     | logout_all        | {‘secret’: ‘’}                                                                                                  |
| PUT     | auto_push         | {‘secret’: ‘’, ‘on’: ‘’}                                                                                        |
| PUT     | auto_off          | {‘secret’: ‘’, ‘on’: ‘’}                                                                                        |
| PUT     | append            | {‘secret’: ‘’, ‘on’: ‘’}                                                                                        |
| PUT     | words_per_min     | {‘secret’: ‘’, ‘value’: ‘’}                                                                                     |
| PUT     | custom_wave       | {‘epuid’: ‘’, ‘secret’: ‘’, ‘type’: ‘’, ‘level’: ‘’, ‘duration’: ‘’, ‘origin’: ‘’, ‘apex’: ‘’, ‘curve’: ‘’}     |
| PUT     | resume            | {‘epuid’: ‘’, ‘secret’: ‘’}                                                                                     |
| PUT     | pause             | {‘epuid’: ‘’, ‘secret’: ‘’}                                                                                     |
| PUT     | soft_reset        | {‘epuid’: ‘’, ‘secret’: ‘’}                                                                                     |
| PUT     | heartbeat         | {‘epuid’: ‘’, ‘secret’: ‘’}                                                                                     |

The Socket.IO commands are:

| MODE         | EVENT NAME    | NAMESPACE             | INPUTS                                       |
|--------------|---------------|-----------------------|----------------------------------------------|
| Socket.IO    | tts           | "/"                   | {‘epuid’: ‘’, ‘mdad’: ‘bool’}                |
| Socket.IO    | mdad          | "/"+&lt;EPU_ID&gt;    | {‘epuid’: ‘’, ‘mdad’: ‘list of integers’}    |


**Unreal Engine 5:** All features in the plugin are tested and working in UE5, but at the moment we aren't shipping a plugin to UE5 because there is no retro compatibility at this point. It's still very straightforward to get it working in a project running a UE5 early access version, the worse thing that can happen is the art assets to be broken as there is total rework in those areas between Unreal 4 and 5.