Skip to content

Instantly share code, notes, and snippets.

@jocopa3
Last active May 9, 2022 01:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jocopa3/f9642301229a09d0ece4474f14d6bb3c to your computer and use it in GitHub Desktop.
Save jocopa3/f9642301229a09d0ece4474f14d6bb3c to your computer and use it in GitHub Desktop.
Minecraft Win10 0.16.0 Options Struct
class Options;
class String;
class GamePadRemappingLayout;
class KeyboardRemappingLayout;
class StringPtr;
enum InputMode {
Unknown = 0, // Not used
Mouse = 1,
Touch = 2,
Gamepad = 3
};
class Options
{
public:
String OPTIONS_FILE_PATH; //0x0000 Path to the Options.txt file
char pad_0x0020[0x90]; //0x0020 Mostly pointers to other classes
bool UNKNOWN_OPTION_1; //0x00B0 Affects Graphics
char pad_0x00B1[0x3]; //0x00B1
float MUSIC_VOLUME; //0x00B4
float SOUND_VOLUME; //0x00B8
float SENSITIVITY; //0x00BC Value depends on current input mode
float GAME_SENSITIVITY; //0x00C0
bool INVERT_Y_AXIS; //0x00C4 Value depends on current input mode
char pad_0x00C5[0x3]; //0x00C5
int RENDER_DIST_CHUNKS; //0x00C8
float PARTICLE_RENDER_DIST; //0x00CC
bool VIEW_BOBBING; //0x00D0
bool LIMIT_FRAMERATE; //0x00D1 (Disabled)
bool FANCY_GRAPHICS; //0x00D2
bool FANCY_LEAVES; //0x00D3
bool PREFER_POLY_TESSELATION; //0x00D4
bool USE_MOUSE_FOR_DIGGING; //0x00D5
bool LEFTY; //0x00D6
bool DESTROY_VIBRATION; //0x00D7 Value depends on current input mode
bool AUTO_JUMP; //0x00D8 Value depends on current input mode
bool FULLSCREEN; //0x00D9
char pad_0x00DA[0x6]; //0x00DA
GamePadRemappingLayout* GAMEPAD_MAPPING0; //0x00E0 Controller Type 0
GamePadRemappingLayout* GAMEPAD_MAPPING1; //0x00E8 Controller Type 1
GamePadRemappingLayout* GAMEPAD_MAPPING2; //0x00F0 Controller Type 2
KeyboardRemappingLayout* KEYBOARD_MAPPING; //0x00F8
String LANGUAGE; //0x0100
int DIFFICULTY; //0x0120
bool HIDE_GUI; //0x0124
bool HIDE_SCREENS; //0x0125
bool HIDE_ITEM_IN_HAND; //0x0126
char pad_0x0127[0x1]; //0x0127
int CAMERA_PERSPECTIVE; //0x0128
bool FORCE_USE_UNSORTED_POLYS; //0x012C
char pad_0x012D[0x3]; //0x012D
float VR_SENSITIVITY; //0x0130
float VR_GAME_SENSITIVITY; //0x0134
float VR_BRIGHTNESS; //0x0138
float VR_PARTICLE_RENDER_DIST; //0x013C
int VR_RENDER_DIST_CHUNKS; //0x0140
int VR_LIVING_ROOM_HINT_TIME; //0x0144
bool VR_HIDE_GUI; //0x0148
bool VR_AUTO_JUMP; //0x0149
bool VR_HMD_DISPLACEMENT; //0x014A
bool VR_HEAD_STEERING; //0x014B
bool VR_STUTTER_TURN; //0x014C
bool VR_STUTTER_TURN_SOUND; //0x014D
bool VR_STUTTER_TURN_CONSTANT_TIME; //0x014E
bool VR_STEREO_RENDERING; //0x014F
bool HAND_OBJECT_SORTS_WITH_TERRAIN; //0x0150
bool RESET_PLAYER_ALIGNMENT; //0x0151
bool VR_HUD_AT_TOP; //0x0152
bool VR_USES_NORMAL_HIT_FX; //0x0153
bool VR_USES_RED_FLASH_FOR_HIT_FX; //0x0154
bool VR_RSTICK_PITCH_ASSIST; //0x0155
char pad_0x0156[0x2]; //0x0156
int VR_RIGHT_STICK_PITCH_ASSIST_STEPPINGS; //0x0158
int VR_RIGHT_STICK_PICH_MAX_ANGLE; //0x015C
bool VR_RIGHT_STICK_DEAD_BAND; //0x0160
bool VR_RIGHT_STICK_GAZE_ADJUST; //0x0161
bool VR_GAZE_PITCH_BOOST; //0x0162
bool VR_HUD_DRIFTS; //0x0163
int VR_JOYSTICK_AIM; //0x0164
int VR_JOYSTICK_AIM_SENSITIVITY; //0x0168
bool VR_JOYSTICK_AIM_INVERT_Y; //0x016C
bool VR_COMFORT_CONTROLS; //0x016D
bool VR_SHOW_COMFORT_SELECT_SCREEN; //0x016E
bool VR_LINEAR_JUMP; //0x016F
bool VR_LINEAR_MOTION; //0x0170
bool VR_LIVING_ROOM_MODE; //0x0171
bool VR_STICKY_MINING; //0x0172
bool VR_TAP_TURN; //0x0173
float VR_TAP_TURN_SENSITIVITY; //0x0174
float VR_WHEEL_TURNING_SENSITIVITY; //0x0178
bool VR_WHEEL_TURNING; //0x017C
bool VR_180_TURNS; //0x017D
bool VR_LIVING_ROOM_CURSOR_CENTERED; //0x017E
bool VR_MIRROR_TEXTURE; //0x017F
float VR_MOUSE_UI_SENSITIVITY; //0x0180
int VR_MSAA; //0x0184
bool DEV_RENDER_DEBUG; //0x0188 (Disabled)
char pad_0x0189[0x3]; //0x0189
float BRIGHTNESS; //0x018C
float FIELD_OF_VIEW; //0x0190
int MSAA_LEVEL; //0x0194
bool TEXEL_ANTI_ALIASING; //0x0198
bool IS_FLYING; //0x0199 Enables No-Clipping and Flying
bool SMOOTH_CAMERA; //0x019A
bool FIXED_CAMERA; //0x019B
float FLY_SPEED; //0x019C Speed of player when IS_FLYING is on
float CAMERA_SPEED; //0x01A0
int GUI_SCALE; //0x01A4
String USERNAME; //0x01A8
String SKIN_ID; //0x01C8
String LAST_CUSTOM_SKIN_ID; //0x01E8
StringPtr RECENT_SKINS[3]; //0x0208 std::vector<std::string, std::allocator<std::string>>
bool BROADCAST_TO_LAN; //0x0220
bool SPLIT_CONTROLS; //0x0221
bool SWAP_JUMP_AND_SNEAK; //0x0222
bool USE_TOUCH_SCREEN; //0x0223
bool FANCY_SKIES; //0x0224
char pad_0x0225[0x3]; //0x0225
int LAST_MAJOR_VERSION; //0x0228
int LAST_MINOR_VERSION; //0x022C
int LAST_PATCH_VERSION; //0x0230
int LAST_BETA_VERSION; //0x0234
float DPAD_SCALE; //0x0238
float PPM_DPAD_SIZE_OLD; //0x023C
float AUTOMATION_SERVER_RETRY_TIME; //0x0240
bool HAS_LOGGED_INTO_XBL; //0x0244
bool CHOSE_NOT_TO_USE_XBL; //0x0245
bool DEV_USE_FPS_INDEPENDENT_TURNING; //0x0246
bool DEV_AUTO_LOAD_LEVEL; //0x0247
bool DEV_SHOW_CHUNK_MAP; //0x0248 (Disabled)
bool DEV_DISABLE_FILE_SYSTEM; //0x0249 (Disabled)
bool DEV_CREATE_REALM_WITHOUT_PURCHASE; //0x024A (Disabled)
bool DEV_OFFERS_UNLOCKED; //0x024B (Disabled)
bool DEV_RENDER_BOUNDING_BOXES; //0x024C (Disabled)
bool DEV_RENDER_PATHS; //0x024D (Disabled)
bool DEV_RENDER_GOAL_STATE; //0x024E (Disabled)
bool DEV_RESET_CLIENT_ID; //0x024F (Disabled)
bool DEV_LOG_FLUSH_IMMEDIATE; //0x0250 (Disabled)
bool DEV_LOG_TIMESTAMP; //0x0251 (Disabled)
bool DEV_LOG_TRACE; //0x0252 (Disabled)
bool DEV_LOG_APPEND; //0x0253 (Disabled)
int DEV_LOG_PRIORITY_FILTER; //0x0254 (Disabled)
int DEV_LOG_AREA_FILTER; //0x0258 (Disabled)
bool DEV_ENABLE_PROFILER_OUTPUT; //0x025C Saves Perf_Log.csv file in /games/com.mojang
bool DEV_ACHIEVMENTS_ALWAYS_ENABLED; //0x025D (Disabled/Unused)
bool USE_LOCAL_SERVER; //0x025E
bool USE_IPV6_ONLY; //0x025F (Disabled?)
int DEV_CONNECTION_QUALITY; //0x0260
bool USE_RETAIL_XBOX_SANDBOX; //0x0264
char pad_0x0265[0x3]; //0x0265
int REALMS_ENVIRONMENT; //0x0268
char pad_0x026C[0x4]; //0x026C
String REALMS_ENDPOINT; //0x0270
String REALMS_ENDPOINT_PAYMENT; //0x0290
String REALMS_RELYING_PARTY; //0x02B0
String REALMS_RELYING_PARTY_PAYMENT; //0x02D0
bool LIMIT_WORLD_SIZE; //0x02F0
char pad_0x02F1[0x7]; //0x02F1
String FLAT_WORLD_LAYERS; //0x02F8 (Disabled/Unused)
bool MULTIPLAYER_GAME; //0x0318
bool BROADCAST_TO_XBL; //0x0319
bool REALMS_INVITE_SHOW_FRIENDS; //0x031A
bool USE_CELLULAR_DATA; //0x031B
// Start of InputMode Specific options
float SENSITIVITY_UNKNOWN; //0x031C
float SENSITIVITY_MOUSE; //0x0320
float SENSITIVITY_TOUCH; //0x0324
float SENSITIVITY_GAMEPAD; //0x0328
bool INVERT_Y_AXIS_UNKNOWN; //0x032C
bool INVERT_Y_AXIS_MOUSE; //0x032D
bool INVERT_Y_AXIS_TOUCH; //0x032E
bool INVERT_Y_AXIS_GAMEPAD; //0x032F
bool AUTO_JUMP_UNKNOWN; //0x0330
bool AUTO_JUMP_MOUSE; //0x0331
bool AUTO_JUMP_TOUCH; //0x0332
bool AUTO_JUMP_GAMEPAD; //0x0333
bool TOGGLE_CROUCH_UNKNOWN; //0x0334 (Unused)
bool TOGGLE_CROUCH_MOUSE; //0x0335 (Unused)
bool TOGGLE_CROUCH_TOUCH; //0x0336 (Unused)
bool TOGGLE_CROUCH_GAMEPAD; //0x0337 (Unused)
bool DESTROY_VIBRATION_UNKNOWN; //0x0338
bool DESTROY_VIBRATION_MOUSE; //0x0339
bool DESTROY_VIBRATION_TOUCH; //0x033A
bool DESTROY_VIBRATION_GAMEPAD; //0x033B
InputMode INPUT_MODE; //0x033C Note: changing this doesn't won't update the input method used by the game
}; //Size=0x0340
class String
{
public:
union {
char charBuffer[16];
char* charPtr;
}; // 0x0000
size_t Length; //0x0010
size_t MaxLength; //0x0018
}; //Size=0x0020
// TODO: Reverse Engineer
class GamePadRemappingLayout
{
public:
char pad_0x0000[0x38]; //0x0000
int Controller Type; //0x0038 Can be a value in the range 0-2
char pad_0x003C[0x4]; //0x003C
}; //Size=0x0040
// TODO: Reverse Engineer
class KeyboardRemappingLayout
{
public:
char pad_0x0000[0x38]; //0x0000
}; //Size=0x0038
// Redundant Class
class StringPtr
{
public:
String* StringPointer; //0x0000
}; //Size=0x0008
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment