Skip to main content

MakerKing Game events

WIP

Support for this game is still work in progress

Please read the overwolf.games.events documentation page to learn how to use Overwolf game events.

Current game data

Upon connecting to the web socket for the game, the current game data is dumped in the following format:

{
"currentUser": { // set to null when there is no logged user (playing offline or in titlescreen)
"userId": 1,
"username": "Winter"
},
"currentScreen": "OnlineGameScreen", // Current screen of the game, possible values are OnlineGameScreen, LocalGameScreen, EditorScreen, TitleScreen, AssetLoadingScreen, TransitionScreen, ReplayScreen and OfflineMenuScreen
"currentLevel": { // set to null when there is no current level (screen may be TransitionScreen or another screen without a level)
"levelId": 23,
"levelName": "Lost the key to my house!",
"authorId": 1, // player id of author
"authorName": "Winter",
"levelType": "hub", // hub or race, the 2 types of levels
"levelState": "online", // online, offline, new, workingcopy or finished
"levelTags": ["puzzle"], // a list of level tags among exploration, puzzle, troll, kaizo, practice, auto, speed_challenge or escape_room
"music": {
"type": "external", // either builtin or external, external being for songs with link URLS
"trackName": "Air Biscuits",
"trackAuthor": "Tippermusic",
"urls": [ // this whole section is excluded from the json when type = builtin
{
"url": "https://soundcloud.com/tippermusic/1-air-biscuits?in=tippermusic/sets/insolito",
"provider": "soundcloud" // either soundcloud or bandcamp at the moment but could be more eventually (like youtube)
}
]
}
},
"currentSettings": { // dump of the current game settings for the player
"musicVolume": "0.0",
"soundVolume": "0.48999998",
"language": "en",
"replayFolder": "/home/winter/MakerKingReplays",
"screenshotFolder": "/home/winter/MakerKingScreenshots",
"invertSprint": "true",
"unlockedOffline": "true",
"vSyncEnabled": "true",
"fullscreen": "false",
"fpsMode": "DETAILED",
"msaaSamples": "2",
"fullscreenMode": "WINDOWED_BORDERLESS",
"textureQuality": "HIGH",
"screenShakeEnabled": "true",
"useParallax": "true",
"lightingEnabled": "true",
"editorLightingEnabled": "true",
"lightColorEnabled": "true",
"lightingQuality": "HIGH",
"particlesEnabled": "true",
"biomeTransitionEnabled": "true",
"iceReflectionEnabled": "true",
"hidePlayers": "false",
"editorHideLiquids": "false",
"editorAutoBack": "false",
"editorOverwriteBlocks": "false",
"disableExternalMusic": "false",
"disableOverwolf": "false",
"externalMusicReplacement": "CODEMANU_GRASSLANDS_THEME",
"editorMusic": "ORIGINAL_EDITORMUSIC",
"editorMusicInPlaytest": "true",
"disableEditorMusic": "false",
"randomizeEditorMusic": "false"
}
}

Game events

After this initial message is sent, the game is going to send additional messages for any event that happens. Those will be in the following format:

{
"eventType": "TYPE",
// ... additional data relative to event, sometimes events contain no data
}

Event list

Here is the full list of events, followed by the list of json fields it includes as its data. As you can see most of the events do not contain extra data.

loading_game
game_open
settings_changed "settings"
entered_offline_menu
logged_in "account"
logged_out
loading_level "levelid", "editing"
joined_level "level"
reached_checkpoint "position"
cleared_level
level_reset
joined_editor "level"
started_playtest
ended_playtest
opened_replay
closed_replay
joined_race
started_race
left_race

Here are one example of each event that has that extra data. You may notice things like the format of levels and settings are consistent and you can assume they will remain this way.

{
"eventType": "settings_changed",
"settings": { // same format for settings as in the current data dump
"musicVolume": "0.29999998",
"soundVolume": "0.48999998",
"language": "en",
"replayFolder": "/home/winter/MakerKingReplays",
"screenshotFolder": "/home/winter/MakerKingScreenshots",
"invertSprint": "true",
"unlockedOffline": "true",
"vSyncEnabled": "true",
"fullscreen": "false",
"fpsMode": "DETAILED",
"msaaSamples": "2",
"fullscreenMode": "WINDOWED_BORDERLESS",
"textureQuality": "HIGH",
"screenShakeEnabled": "true",
"useParallax": "true",
"lightingEnabled": "true",
"editorLightingEnabled": "true",
"lightColorEnabled": "true",
"lightingQuality": "HIGH",
"particlesEnabled": "true",
"biomeTransitionEnabled": "true",
"iceReflectionEnabled": "true",
"hidePlayers": "false",
"editorHideLiquids": "false",
"editorAutoBack": "false",
"editorOverwriteBlocks": "false",
"disableExternalMusic": "false",
"disableOverwolf": "false",
"externalMusicReplacement": "CODEMANU_GRASSLANDS_THEME",
"editorMusic": "ORIGINAL_EDITORMUSIC",
"editorMusicInPlaytest": "true",
"disableEditorMusic": "false",
"randomizeEditorMusic": "false"
}
}
{
"eventType": "loading_level",
"levelId": "23",
"editing": "false" // true or false, true meaning the editor is opening and false meaning the level is about to be played
}
{
"eventType": "joined_level",
"level": { // same format as currentLevel in the current data dump except here level is never null
"levelId": 23,
"levelName": "Lost the key to my house!",
"authorId": 1,
"authorName": "Winter",
"levelType": "hub",
"levelState": "online",
"levelTags": [],
"music": {
"type": "builtin",
"trackName": "Intro Theme",
"trackAuthor": "CodeManu"
}
}
}
{
"eventType": "reached_checkpoint",
"position": [ // this is 2D game world position
-10750, // x
-4250 // y
]
}
{
"eventType": "joined_editor",
"level": {
"levelId": -1,
"levelName": "Untitled",
"authorId": 1,
"authorName": "Winter",
"levelType": "race",
"levelState": "new",
"levelTags": [],
"music": {
"type": "builtin",
"trackName": "Intro Theme",
"trackAuthor": "CodeManu"
}
}
}