Skip to content

Options

Data comes from Minecraft: Xbox One Edition latest ver.
Tables are sorted by ID

Note: This applies only for Options file version 33.

Table of contents

  1. Settings - Game Settings
  2. Skins - Chosen skins and favorite skins
  3. Actions - Game Controls
  4. Extra - Extra notes and technical stuff

Settings

Things that aren't known are under Unknown, due to my test hook not printing that value when messing around in the options.

NameTypeEnum IDOffset in OPTIONSDATASize (in bits)Default ValueNotes
Music VolumeSlider0x00x018100%
Sound VolumeSlider0x10x028100%
GammaSlider0x20x04850%
DifficultySlider0x30x06 (Bits 0-1)21 (Easy)
Game SensitivitySlider0x40x038100%
Interface SensitivitySlider0x50x508100%
View BobbingBoolean0x60x06 (Bit 2)1True
UnknownUnknown0x70x06 (Bits 4-5)2UnknownSee 0x07 and 0x0A. Also used under UIComponent_Tooltips
Invert LookBoolean0x80x06 (Bit 6)1False
SouthpawBoolean0x90x06 (Bit 7)1False
UnknownUnknown0xa0x54 (Bit 23)1UnknownSee 0x07 and 0x0A.
Vertical SplitscreenBoolean0xb0x06 (Bit 8)1False
In-Game GamertagsBoolean0xc0x06 (Bit 3)1True
Autosave TimerSlider0xd0x06 (Bits 11-14)4UnknownHaven't confirmed in-game, instead via reading code.
Splitscreen GamertagsBoolean0xe0x06 (Bit 9)1True
HintsBoolean0xf0x06 (Bit 10)1True
Interface OpacitySlider0x100x51880%
In-Game TooltipsBoolean0x110x06 (Bit 15)1True
Render CloudsBoolean0x120x54 (Bit 0)1True
UnknownUnknown0x130x54 (Bit 1)1Unknown
UnknownUnknown0x140x54 (Bit 2)1Unknown
UnknownUnknown0x150x54 (Bit 3)1Unknown
UnknownUnknown0x160x54 (Bits 4-5)2UnknownSee 0x16 and 0x25.
Display HudBoolean0x170x54 (Bit 7)1True
Display HandBoolean0x180x54 (Bit 8)1True
Custom Skin AnimationBoolean0x190x54 (Bit 9)1True
Death MessagesBoolean0x1a0x54 (Bit 10)1True
Hud SizeSlider0x1b0x54 (Bits 11-12)22
Hud Size SplitscreenSlider0x1c0x54 (Bits 13-14)23
Animated CharacterBoolean0x1d0x54 (Bit 15)1True
UnknownUnknown0x1e0x56 (Bit 0)1Unknown
UnknownUnknown0x1f0x54 (Bit 17)1Unknown
Classic CraftingBoolean0x200x54 (Bit 18)1False
Cave SoundsBoolean0x210x54 (Bit 19)1True
Game ChatBoolean0x220x54 (Bit 20)1False
Minecart SoundsBoolean0x230x54 (Bit 21)1True
UnknownUnknown0x240x57 (Bits 0-1)2Unknown
UnknownBoolean0x250x54 (Bit 27)1UnknownSee 0x16 and 0x25.
Display Game MessagesBoolean0x260x54 (Bit 28)1True
Display Save IconBoolean0x270x54 (Bit 29)1TrueUnconfirmed (as I had excluded this print due to spam)
Flying View RollingBoolean0x280x54 (Bit 30)1TrueREVERSE BOOLEAN (1 means disabled, 0 means enabled)
Show Glide GhostBoolean0x2a0x54 (Bit 22)1True
Show Glide Ghost PathBoolean0x2b0x54 (Bit 31)1True
Auto JumpBoolean0x2c0x54 (Bit 26)1False
UnknownUnknown0x2d0x57 (Bits 0-3)4UnknownNot referenced anywhere else?????

Skins

Skins are stored using their 4 byte ID.

The player's chosen skin is stored at offset 0x4c.
There's also a thing for a Player Cape at offset 0x5c, I assume this is only set when the chosen skin has a cape.

Favorite skins are stored at offset 0x60, 4 bytes for each skin, with a maximum of 10 favorite skins allowed (0x60-0x87)

Skin IDs

TODO

Actions (Controller bindings)

NameIDOffset in OPTIONSDATADefault bind
Jump00xA4A
Use10xA5LT
Action20xA6RT
Cycle Held Item Left30xA7LB
Cycle Held Item Right40xA8RB
Inventory50xA9Y
Drop60xAAB
Sneak/Dismount70xABRS
Crafting80xACX
Change Camera Mode90xADLS
Fly Left100xAED-Pad Left
Fly Right110xAFD-Pad Right
Fly Up120xB0D-Pad Up
Fly Down130xB1D-Pad Down
Sprint140xB2NONE
Pick Block150xB3NONE
Previous Player160xB4LB
Next Player170xB5RB
Spectate Noise180xB6RT
Cancel Spectating190xB7B
Confirm Ready200xB8X
Vote210xB9B
Restart Section220xBAX
Restart Race230xBBB
Look Behind240xBCY

Buttons

NameID
NONE0x00
A0x01
B0x02
X0x03
Y0x04
D-Pad Left0x05
D-Pad Right0x06
D-Pad Up0x07
D-Pad Down0x08
RB0x09
LB0x0A
RT0x0B
LT0x0C
RS0x0D
LS0x0E

Extra

0x07 and 0x0A

Setting 0x07 and 0x0A are both checked for and set in ActionGameSettings, which leads me to assume it's related to tutorial and normal in-game tooltips (due to 0x07 being used under UIComponent_Tooltips).

Here's some code (cleaned up by me) found under GameSettings::ActionGameSettings (in Wii U edition)

CPP
    // get the value of both settings
    setting7 = GetGameSettings(param_1,0x07);
    setting10 = GetGameSettings(param_1,0xa);
    if ((0 < setting7) || (setting10 != 0)) {
      // Not sure what this does yet.
      UpdateActionMapping(param_1,setting7,setting10 != 0);
      SetGameSettings(param_1,0x07,0); // Sets 0x07 to 0
      SetGameSettings(param_1,0xa,0); // Sets 0x0A to 0
    }

0x16 and 0x25

0x16 is checked to decide whether to show the new update screen ("You may not have noticed, but your Minecraft has just been updated")

The new update message shows if the value returned by 0x16 is not 0, and is set along with 0x25 when the button on the update message is pressed.

Here's some code (cleaned up by me) found under ConsoleUIController::NavigateToScene, this is what checks 0x16 (in Wii U edition)

CPP
  // DAT_10483330 seems to be some bool for if the update screen was seen before?

  // if sceneId is the ID for the create/join world screen and DAT_10483330 is 0
  if ((sceneId == 0x1b) && (DAT_10483330 == '\0')) {
    // run something? Return value seems to be used in GetGameSettings for the offset
    // should be 0 otherwise it wouldn't really be getting setting 0x16. 
    settingsOffset = (**(code **)(*DAT_105600b0 + 0xe4))();
    // get setting 0x16
    setting0x16 = GameSettings::GetGameSettings(settingsOffset,0x16);
    // if it's not 0, set the ID to the new update screen (which will show it instead of the world screen)
    if (setting0x16 != 0) {
      sceneId = 0x2d; // new update screen id
      // set that DAT to 1
      DAT_10483330 = '\x01';
    }
  }

And some more under UIScene_NewUpdateMessage::handleInput, which is what sets 0x25 and 0x16

cpp
        // get setting 0x16
        setting0x16 = GameSettings::GetGameSettings(*(int *)(param_1 + 0xa4),0x16);
        // if it's bigger than 0
        if (0 < (int)setting0x16) {
          // subtract 1
          setting0x16--; // originally setting0x16 - 1
        }
        // set 0x16 to 0x16's new value anded by 0xff
        GameSettings::SetGameSettings(*(int *)(param_1 + 0xa4),0x16,setting0x16 & 0xff);
        // set 0x25 to 1
        GameSettings::SetGameSettings(*(int *)(param_1 + 0xa4),0x25,1);
        // I believe this saves settings?
        GameSettings::CheckGameSettingsChanged(true,*(int *)(param_1 + 0xa4));
        // Navigate back (Not sure how this works exactly)
        // 0x52 makes it check a UIScene* var, and returns if the value is nullptr (0x52 actually causes it to fall into the default value of the switch statement according to the pcode)
        // Once that happens it runs some more confusing code that I cannot decipher myself.
        ConsoleUIController::NavigateBack
          (ConsoleUIController::instance,*(int *)(param_1 + 0xa4),false,0x52,8);

Contributors

The avatar of contributor named as Dexrn ZacAttack Dexrn ZacAttack

Changelog

Contributors



Documentation page was setup by DexrnZacAttack.