(adsbygoogle = window.adsbygoogle || []).push({});
Hey guys, if you're here then you're probably interested in modding .menu files (like color and position of stuff)
Fair word of warning though, this is complex stuff, so don't be frustrated if you can't understand this
What are menuDefs/itemDefs:
A menuDef is a grouping of itemDefs. This holds the settings for the menu (doesn't always have to be a menu, just a display)
An itemDef describes an item member of a menu. These basically represent the different parts that make up the menu, such as text and background.
Some Definitions:
Int: an int type is an integer number, negative or not, with no fractional (decimal) portion.
Float: a float type is a floating point number, negative or not, with or without a fractional (decimal) portion. Use this tool to convert decimals to single-precision floating number points:
You must login or register to view this content.
Color: a color type is four sequential floats, indicating a RGBA value. Each float corresponds to:
Red component
Green component
Blue component
Alpha component
Locating Itemdefs:
.menu files will contain itemdefs and menudefs but they're still pretty hard to locate. They also start right after one another. The easiest way to find an itemdef is this:
1. Look for signs and text that signal the presence of a certain itemdef
2. Locate forecolor, usually 3F 80 00 00 3F 80 00 00 3F 80 00 00 3F 80 00 00, and from the start go 5C backwards. This should be the beginning. It doesn't necessarily correspond to forecolor though
The menuDefs/itemDefs:
This list was created by aerosoul94, descriptions added by me
Some of these don't always apply to their descriptions depending on the itemdef/menudef
menuDef:
0x00 name - pointer
Sets a name for the menu
0x04 rect - float4 // X Y LENGTH WIDTH
0x18 rect - float4
Define a rectangle on the screen for the menu to occupy. Menu rectangles may overlap; the last rect defined sits on top. Rect type is four sequential ints. The four numbers correspond to:
Horizontal (X) position of the rectangle's upper-left corner
Vertical (Y) position of the rectangle's upper-left corner
Width of the rectangle
Height of the rectangle
0x30 style - int
Defines a window style for the menu.
0x34 border - int
Sets a border type.
0x38 ownerDraw - int
Causes the MW2 engine to draw something within the confines of the menu rect. Primary use is in HUDs (such as showing health).
0x5C foreColor - float4
Sets menu foreground color. Used as tint color for background shaders.
0x6C backColor - float4
Sets the menu background color
0xB4 fullscreen - int
A method of setting up a rectangle on the screen for the menu to occupy that covers the entire screen and to tell the program that nothing else is being rendered underneath this menu
0xB8 numItems - int
The number of itemdefs in the menu
0xD8 blurWorld - float
The focus or "blur"
0x100 soundLoop - pointer
The given string is interpreted as a sound name (filename for the most part) to play in a loop
0x108 focusColor - float4
The highlight color of the text
itemDef:
0x04 rect 480 - float4
0x18 rect 720 - float4
0x38 ownerDraw - int
0x5C foreColor - float4
0x6C backColor - float4
0x100 type - int
0x104 type - int
Sets the type for the itemdef
0x108 align - int
Text alignment
0x10C textFont - int
The font, types include:
DAStacks
hudbig
hudsmall
smallfixed
bigfixed
objective
Values include 00 01 02 03 04 05 06 07 08 09 0A
0x110 textAlign - int
0x114 textAlignX - float
0x118 textAlignY - float
You can change these values to move the hud around the screen if you can get the itemdef
0x11C textScale - float
The size of the text
0x120 textStyle - int
Style properties of the text
Any comments or suggestions for the thread just ask 
Also tell me if I need to fix up any information if it's incorrect