Skip to content

These docs were made completely by AI, so they might be right, or wrong, you'll need to test them yourself. This was made for a easier understanding of everything. So use at your own risk. If anything is wrong, please don't hurt to make a PR on the page you have a problem with. ON GITHUB

Console Enums & Structs

The Common/ directory has three files that define the core constants, enums, and data structures shared across all platforms: App_Defines.h, App_enums.h, and App_structs.h. This page is a reference for the most important definitions.

#ifdef __PSVITA__
#define MAX_LOCAL_PLAYERS 1
#else
#define MAX_LOCAL_PLAYERS 4
#endif

PS Vita is single-player only. All other platforms support up to 4 local splitscreen players.

The game supports 20 languages, each with a numeric ID:

IDLanguageIDLanguage
0English10Korean
1French11Chinese Traditional
2Italian12Chinese Simplified
3German13Finnish
4Spanish14Swedish
5Portuguese15Danish
6Russian16Norwegian
7Japanese17Polish
8Dutch18Turkish
9Portuguese (Brazil)19Greek

Version constants are used for save data migration. When the profile format changes between title updates, the version number increments and the loader knows to convert old data.

This is the largest enum file in the codebase. Here are the most important enums.

enum eGameMode
{
eGameMode_Survival,
eGameMode_Creative,
eGameMode_Adventure
};

Controls world-level settings. These are stored as a bitmask in save data. See Custom GameRules for the full list and how to add new options.

The 25 host options include:

OptionWhat it controls
eGameHostOption_DifficultyWorld difficulty
eGameHostOption_GameTypeSurvival/Creative/Adventure
eGameHostOption_StructuresGenerate structures
eGameHostOption_BonusChestBonus chest at spawn
eGameHostOption_PvPPlayer vs player
eGameHostOption_TrustPlayersPlayers can build/break
eGameHostOption_TNTTNT explosions
eGameHostOption_FireSpreadsFire spread
eGameHostOption_CheatsEnabledHost privileges
eGameHostOption_HasBeenInCreativeDisables achievements
eGameHostOption_DisableSavingPrevent world saves
eGameHostOption_AllPack all options into one bitmask

Per-player settings stored in the GAME_SETTINGS struct. These grow with each title update:

SettingWhat it controls
eGameSetting_AutoSaveAutomatic saving
eGameSetting_SplitScreenVerticalVertical vs horizontal split
eGameSetting_TooltipsShow item tooltips
eGameSetting_DeathMessagesShow death messages in chat
eGameSetting_AutoJumpAuto-jump when walking into blocks
eGameSetting_HideHandHide the hand model in first person
eGameSetting_HideGUIHide the HUD
eGameSetting_InvertYAxisInvert look controls

Classifies DLC packs by their content:

TypeWhat it is
e_DLCContentType_SkinPackPlayer skins
e_DLCContentType_TexturePackTexture replacements
e_DLCContentType_MashupPackFull mashup (textures + world + skins + music)

Tracks the download/install state of a DLC pack:

StateMeaning
e_DLCContentState_NotInstalledAvailable for purchase but not downloaded
e_DLCContentState_InstallingCurrently downloading
e_DLCContentState_InstalledReady to use
e_DLCContentState_NeedsUpdateNewer version available

Application lifecycle actions. These drive the main state machine:

ActionWhen it fires
eAppAction_ExitGamePlayer quits
eAppAction_StartGamePlayer starts a world
eAppAction_ReloadTexturePackTexture pack changed
eAppAction_SaveAndQuitSave and return to menu
eAppAction_ReturnToTitleGo back to title screen

Maps physical button presses to game actions. Split into two groups:

Menu actions: Navigate, confirm, cancel, tab left/right, scroll, etc.

Game actions: Move, look, attack, use item, jump, sneak, drop, inventory, etc.

Multiple control schemes (MAP_STYLE_0 through MAP_STYLE_2) remap these actions to different button layouts.

This is the biggest enum in the file — 500+ entries defining every color ID used in the game. Categories include:

  • Biome grass tint per biome type
  • Biome foliage tint per biome type
  • Biome water tint per biome type
  • Sky color per biome
  • Fog color per biome
  • Particle colors (nether portal, redstone dust, note block, etc.)
  • Mob-specific colors (sheep wool, cat collar, etc.)

These IDs map into the ColourTable class (in Common/Colours/). Texture packs and mashup packs can override these colors by including a custom colours.col file.

Special player IDs for well-known Minecraft accounts:

ConstantWho
eXUID_NotchNotch (Markus Persson)
eXUID_Deadmau5Deadmau5

These are checked to give special players unique capes or skins.

50+ locale codes for all supported languages and regional variants. This is separate from the 20 language IDs in App_Defines.h — the locale system is more granular with regional variants like en_US, en_GB, pt_BR, zh_CN, zh_TW, etc.

The per-player settings struct. This is 204 bytes of profile data:

FieldWhat it stores
Tutorial completionWhich tutorial states are done (64 bytes / 512 bits)
Selected skin IDCurrently equipped skin
Selected capeCurrently equipped cape
Bitmask valuesBoolean settings packed into bitmasks
FavoritesFavorited DLC packs
Control schemeWhich button layout is active
SensitivityLook sensitivity
Volume levelsMusic, sound, voice

Platform-specific DLC metadata. Uses #ifdef branches:

  • Xbox 360: Xbox content package descriptors
  • Xbox One: Content package with marketplace metadata
  • PS3/PS4/Vita: PSN entitlement data with content IDs
  • Windows 64: File path and pack metadata

In-game notification data (achievement unlocks, player joins, etc.).

Player ban tracking. BANNEDLISTDATA holds a single ban entry (player name + ID). BANNEDLIST is the full ban list container.

Network session advertising data. Contains per-player arrays sized to MINECRAFT_NET_MAX_PLAYERS. Used for LAN discovery and platform matchmaking. See Player Limit for details on how this struct varies per platform.

The eAward enum defines all achievements/trophies:

AwardWhat the player does
TakingInventoryOpen the inventory
GettingWoodPunch a tree
BenchmarkingCraft a workbench
TimeToMineCraft a wooden pickaxe
HotTopicCraft a furnace
AcquireHardwareSmelt an iron ingot
TimeToFarmCraft a wooden hoe
BakeABreadMake bread
TheLieWasTrueBake a cake
GettingAnUpgradeCraft a stone pickaxe
TimeToStrikeCraft a stone sword
CowTipperPick up leather
MonsterHunterKill a hostile mob
WhenPigsFlySaddle a pig and ride off a cliff
LeaderGet all 20 base achievements
ArcherAchievementKill a creeper with arrows
OnARailTravel 500m by minecart
DeliciousFishCatch and cook fish
InToTheNetherEnter the Nether
ReturnToSenderKill a ghast with a fireball

PS3 has additional achievements not present on other platforms:

AwardWhat the player does
snipeSkeletonKill a skeleton from 50+ blocks away
diamondsMine diamond ore
portalBuild a nether portal
ghastEarn a ghast tear
bookcaseBuild a bookshelf

Later title updates added more achievements through the _EXTENDED_ACHIEVEMENTS section, covering content like the End dimension, enchanting, potions, and animal taming.

20+ debug settings that can be toggled in debug builds:

SettingWhat it does
LoadSavesFromDiskLoad saves from files instead of memory
WriteSavesToDiskWrite saves to files
FreezePlayersStop all player movement
FreezeAnimalsStop all animal AI
FreezeMonstersStop all monster AI
DisableWeatherTurn off weather
UnlockAllSkinsMake all skins available
ShowChunkBordersRender chunk boundaries

8 debug buttons that can be bound to debug actions in development builds.

FileWhat it defines
Common/App_Defines.hPlayer limits, language codes, profile versions, bitmask helpers
Common/App_enums.hAll major enums: game modes, host options, DLC types, colors, actions
Common/App_structs.hGAME_SETTINGS, DLC_INFO, NOTIFICATION, ban lists
Common/Console_Awards_enum.hAchievement/trophy definitions
Common/Console_Debug_enum.hDebug settings and buttons