# Server Developers [<-- Back to README.md](./README.md) Requests are sent after any of these events: * Nameserver response * Authentication response * Local account fetch response (has auth) ## Endpoints ### `API: GET "/api/undead/v1/emotes"` (after local account response) Expects: `List` [(to DTO)](#emoteconfigdto) Replace existing emotes in the game with these, keyed by `UniqueName`.
This is mostly a change to VR emotes. See "ContextualEmotesConfig" in the game's assets. See [the source](./Core/Content/CustomRecNet/CustomEmotes/RecNetEmotes.cs) for more information. ### `API: GET "/api/undead/v1/photon"` (after local account response) Expects: `PhotonConfigDTO` [(to DTO)](#photonconfigdto) The patch uses a Photon configuration given by the server.
When this fails, the patch will fall back to the local config, if enabled. `ConnectionProtocol` is 0 for UDP, or 1 for TCP. Use UDP if you don't know what to use.
`ServerAddress`, `ServerPort`, and `ConnectionProtocol` are ignored when `SelfHosted` is enabled. When using a self-hosted server, ideally, you should set the `AppID` *and* `VoiceAppID` to the name
of your application, e.g. Master when using the port for a default Masterserver.
Voice will go over the same gameserver port as PUN does when selfhosting. See [the source](./Core/Content/CustomRecNet/CustomPhoton/CustomPhoton.cs) for more information. ### `API: GET "/api/undead/v1/knowndlls"` (post-nameserver) Expects: `List` Add custom DLL filenames to `CheatManager.KnownDlls`. `winhttp.dll` is added by default and does not need to be specified by the server. When the server patch is enabled at the same time as the local patch (HilePatch), the local patch will be used as a fallback and will add only `winhttp.dll`. See [the source](./Core/Content/CustomRecNet/CheatManager/CustomCheatManager.cs) for more information. ## DTOs ### `EmoteConfigDTO` ```c# public class EmoteConfigDTO { public string UniqueName { get; set; } public string NewText { get; set; } public string RoomChatText { get; set; } public string FacialExpression { get; set; } public bool ForceEmoteBubble { get; set; } public bool OnlyBroadcastToTeam { get; set; } } ``` ### `PhotonConfigDTO` ```c# public class PhotonConfigDTO { public bool Logging { get; set; } public string AppID { get; set; } public string VoiceAppID { get; set; } public bool SelfHosted { get; set; } public string ServerAddress { get; set; } public int ServerPort { get; set; } public byte ConnectionProtocol { get; set; } } ```