and I though I would update it for ghosts since it is so awesome 
public static class HElems
{
public static uint //0xb8 4 = icon, 1 = text
ELEM = 0xD87888,
FIX_ELEM = 0x335c7,
FPS = 0x36B260,
xOffset = 0x04,
yOffset = 0x08,
textOffset = 0x40,
fontOffset = 0x24,
fontSizeOffset = 0x14,
colorOffset = 0x30,
relativeOffset = 0x28,
widthOffset = 0x44,
heightOffset = 0x48,
shaderOffset = 0x4C,
GlowColor = 0x8C,
clientOffset = 0x10,
alignOffset = 0x2C;
}
public static void Enable_Cacher()
{
PS3.SetMemory(0x2100000, new byte[32]);
PS3.SetMemory(0x2106000, new byte[32]);
PS3.SetMemory(0x36B260, new byte[] { 0x3C, 0x60, 0x02, 0x10, 0x80, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x8C, 0x4B, 0xCC, 0x83, 0x11, 0x3C, 0x80, 0x02, 0x10, 0x90, 0x64, 0x60, 0x00, 0x38, 0x60, 0x00, 0x00, 0x90, 0x64, 0x00, 0x00, 0x48, 0x00, 0x00, 0x74 });
PS3.SetMemory(0x335C7, new byte[] { 0x01 });
}
public static void ActivateIndex(int index, int type)
{
byte[] Typ = BitConverter.GetBytes(type);
Array.Reverse(Typ);
PS3.SetMemory(HElems.ELEM + 0xb8 * (uint)index, Typ);
}
public static byte[] ToHexFloat(float Axis)
{
byte[] bytes = BitConverter.GetBytes(Axis);
Array.Reverse(bytes);
return bytes;
}
public static byte[] RGBA(decimal R, decimal G, decimal B, decimal A)
{
byte[] RGBA = new byte[4];
byte[] RVal = BitConverter.GetBytes(Convert.ToInt32(R));
byte[] GVal = BitConverter.GetBytes(Convert.ToInt32(G));
byte[] BVal = BitConverter.GetBytes(Convert.ToInt32(B));
byte[] AVal = BitConverter.GetBytes(Convert.ToInt32(A));
RGBA[0] = RVal[0];
RGBA[1] = GVal[0];
RGBA[2] = BVal[0];
RGBA[3] = AVal[0];
return RGBA;
}
public static void StoreIcon(uint elemIndex, decimal client, int shader, int width, int height, float x, float y, uint align, float sort, int r, int g, int b, int a)
{
uint elem = HElems.ELEM + ((elemIndex) * 0xb
;
byte[] ClientID = ReverseBytes(BitConverter.GetBytes(Convert.ToInt32(client)));
PS3.SetMemory(elem, new byte[0xB8]);
PS3.SetMemory(elem, new byte[] { 0x00, 0x00, 0x00, 0x04 });
PS3.SetMemory(elem + HElems.shaderOffset, ReverseBytes(BitConverter.GetBytes(shader)));
PS3.SetMemory(elem + HElems.heightOffset, ReverseBytes(BitConverter.GetBytes(height)));
PS3.SetMemory(elem + HElems.widthOffset, ReverseBytes(BitConverter.GetBytes(width)));
PS3.SetMemory(elem + HElems.alignOffset, ReverseBytes(BitConverter.GetBytes(0)));
PS3.SetMemory(elem + HElems.relativeOffset, ReverseBytes(BitConverter.GetBytes(0)));
PS3.SetMemory(elem + HElems.xOffset, ToHexFloat(x));
PS3.SetMemory(elem + HElems.yOffset, ToHexFloat(y));
PS3.SetMemory(elem + HElems.colorOffset, RGBA(r, g, b, a));
PS3.SetMemory(elem + HElems.clientOffset, ClientID);
}
public static byte[] CacheString(string Text)
{
PS3.SetMemory(HElems.FIX_ELEM, new byte[] { 0x01 }); //must patch this to make it work
PS3.SetMemory(0x2100000, Encoding.ASCII.GetBytes(Text + "\0"));
byte[] result = new byte[6];
Thread.Sleep(10);
PS3.GetMemory(0x2106000, result);
return result;
}
public static void StoreTextElem(uint elemIndex, int client, string Text, int font, float fontScale, int x, int y, uint align, float sort, int r, int g, int b, int a, int r1, int g1, int b1, int a1)
{
uint elem = HElems.ELEM + ((elemIndex) * 0xB
;
byte[] ClientID = ReverseBytes(BitConverter.GetBytes(client));
PS3.SetMemory(elem, new byte[0xB4]);
PS3.SetMemory(elem, new byte[] { 0x00, 0x00, 0x00, 0x01 });
PS3.SetMemory(elem + HElems.textOffset, CacheString(Text));
PS3.SetMemory(elem + HElems.fontOffset, ReverseBytes(BitConverter.GetBytes(Convert.ToInt32(font))));
PS3.SetMemory(elem + HElems.alignOffset, ReverseBytes(BitConverter.GetBytes(Convert.ToInt32(0))));
PS3.SetMemory(elem + HElems.relativeOffset, ReverseBytes(BitConverter.GetBytes(0)));
PS3.SetMemory(elem + HElems.fontSizeOffset, ToHexFloat(fontScale));
PS3.SetMemory(elem + HElems.xOffset, ToHexFloat(x));
PS3.SetMemory(elem + HElems.yOffset, ToHexFloat(y));
PS3.SetMemory(elem + HElems.colorOffset, RGBA(r, g, b, a));
PS3.SetMemory(elem + HElems.GlowColor, RGBA(r1, g1, b1, a1));
PS3.SetMemory(elem + HElems.clientOffset, ClientID);
}
public static byte[] UInt32ToBytes(uint input)
{
byte[] bytes = BitConverter.GetBytes(input);
Array.Reverse(bytes);
return bytes;
}
public static byte[] ReverseBytes(byte[] inArray)
{
Array.Reverse(inArray);
return inArray;
}
public static byte[] uintBytes(uint input)
{
byte[] data = BitConverter.GetBytes(input);
Array.Reverse(data);
return data;
}
public class Buttonz
{
public static int
DpadUp = 13617,
DpadDown = 14129,
DpadLeft = 14641,
DpadRight = 12594,
Cross = 13618,
Square = 12593,
Circle = 13106,
R2 = 53,
R1 = 49,
L2 = 55,
L1 = 13105,
L3 = 57,
R3 = 14130;
}
public static bool ButtonPressed(int client, int Button)
{
if (BitConverter.ToInt16(PS3.GetBytes(0x38AF1A52 + ((uint)client * 0x6FA00), 2), 0) == Button || BitConverter.ToInt16(PS3.GetBytes(0x39011A52 + ((uint)client * 0x6FA00), 2), 0) == Button)
return true;
else return false;
}
public static void MoveShaderXY(uint index, float X, float Y)
{
PS3.Extension.WriteFloat(0xD87888 + (index * 0xB
+ 0x04, X);
PS3.Extension.WriteFloat(0xD87888 + (index * 0xB
+ 0x08, Y);
}
public void DestroyElem(int index)
{
uint elem = 0xD87888 + ((Convert.ToUInt32(index)) * 0xB
;
PS3.SetMemory(elem, new byte[0xB8]);
}
public void ChangeHudIcon(int index, int shader)
{
uint elem = 0xD87888 + ((Convert.ToUInt32(index)) * 0xB
;
byte[] Material_ = BitConverter.GetBytes(shader);
Array.Reverse(Material_);
PS3.SetMemory(elem + 0x4C, Material_);
}
public static void iPrintLn(int client, string input)
{
SV_GameSendServerCommand(client, "c \"" + input + "\"");
}
public static void iPrintLnBold(int clientNumber, string input)
{
SV_GameSendServerCommand(clientNumber, "e \"" + input + "\"");
}
public static void SV_GameSendServerCommand(int client, string text, int type = 0)
{
CallFunction(0x590EA0, client, 0, (text));
}
public int ChangePres()
{
if (curPres == 124)
return 0;
else if (curPres == 125)
return 1;
else if (curPres == 126)
return 2;
else if (curPres == 127)
return 3;
else if (curPres == 12
return 4;
else if (curPres == 129)
return 5;
else if (curPres == 130)
return 6;
else if (curPres == 131)
return 7;
else if (curPres == 132)
return 8;
else if (curPres == 133)
return 9;
else if (curPres == 134)
return 10;
else return 0;
}
public void UpPrestige()
{
ChangePres();
if (curPres == 124)
{
curPres = 134;
ChangeHudIcon(194, curPres);
iPrintLnBold(0, "^5Prestige: " + Convert.ToString(ChangePres()));
}
else
{
curPres--;
ChangeHudIcon(194, curPres);
iPrintLnBold(0, "^5Prestige: " + Convert.ToString(ChangePres()));
}
}
public void DownPrestige()
{
ChangePres();
if (curPres == 134)
{
curPres = 124;
ChangeHudIcon(194, curPres);
iPrintLnBold(0, "^5Prestige: " + Convert.ToString(ChangePres()));
}
else
{
curPres++;
ChangeHudIcon(194, curPres);
iPrintLnBold(0, "^5Prestige: " + Convert.ToString(ChangePres()));
}
}
StoreIcon(194, 0, 124, 60, 60, 290, 180, 0, 0, 255, 255, 255, 255);
PrestigeTimer.Start();
iPrintLn(0, "^5[{+smoke}] / [{+frag}] to scroll");
iPrintLn(0, "^5[{+gostand}] to select prestige");
if (ButtonPressed(0, Buttonz.R2) && selected == false)
{
DownPrestige();
}
if (ButtonPressed(0, Buttonz.L2) && selected == false)
{
UpPrestige();
}
if (ButtonPressed(0, Buttonz.Cross) && selected == false)
{
if (ChangePres() == 0)
{
PS3.SetMemory(0x179651C, new byte[] { 0x00 });
iPrintLnBold(0, "^1Prestige Set To: 0");
}
else if (ChangePres() == 1)
{
PS3.SetMemory(0x179651C, new byte[] { 0x01 });
iPrintLnBold(0, "^1Prestige Set To: 1");
}
else if (ChangePres() == 2)
{
PS3.SetMemory(0x179651C, new byte[] { 0x02 });
iPrintLnBold(0, "^1Prestige Set To: 2");
}
else if (ChangePres() == 3)
{
PS3.SetMemory(0x179651C, new byte[] { 0x03 });
iPrintLnBold(0, "^1Prestige Set To: 3");
}
else if (ChangePres() == 4)
{
PS3.SetMemory(0x179651C, new byte[] { 0x04 });
iPrintLnBold(0, "^1Prestige Set To: 4");
}
else if (ChangePres() == 5)
{
PS3.SetMemory(0x179651C, new byte[] { 0x05 });
iPrintLnBold(0, "^1Prestige Set To: 5");
}
else if (ChangePres() == 6)
{
PS3.SetMemory(0x179651C, new byte[] { 0x06 });
iPrintLnBold(0, "^1Prestige Set To: 6");
}
else if (ChangePres() == 7)
{
PS3.SetMemory(0x179651C, new byte[] { 0x07 });
iPrintLnBold(0, "^1Prestige Set To: 7");
}
else if (ChangePres() == 
{
PS3.SetMemory(0x179651C, new byte[] { 0x08 });
iPrintLnBold(0, "^1Prestige Set To: 8");
}
else if (ChangePres() == 9)
{
PS3.SetMemory(0x179651C, new byte[] { 0x09 });
iPrintLnBold(0, "^1Prestige Set To: 9");
}
else if (ChangePres() == 10)//
{
PS3.SetMemory(0x179651C, new byte[] { 0x0A });
iPrintLnBold(0, "^1Prestige Set To: 10");
}
double scrollspeed = 40; //Scrolling Speed (You can edit it but this is a good speed)
for (double i = 290; i < 1000; )
{
i = i + scrollspeed;
MoveShaderXY(194, (int)i, 180);
}
selected = true;
PrestigeTimer.Stop();
}
public int curPres = 53;
public bool selected = false;
public static class HElems
{
public static uint //0xb8 4 = icon, 1 = text
ELEM = 0xD87888,
FIX_ELEM = 0x335c7,
FPS = 0x36B260,
xOffset = 0x04,
yOffset = 0x08,
textOffset = 0x40,
fontOffset = 0x24,
fontSizeOffset = 0x14,
colorOffset = 0x30,
relativeOffset = 0x28,
widthOffset = 0x44,
heightOffset = 0x48,
shaderOffset = 0x4C,
GlowColor = 0x8C,
clientOffset = 0x10,
alignOffset = 0x2C;
}
public static void Enable_Cacher()
{
PS3.SetMemory(0x2100000, new byte[32]);
PS3.SetMemory(0x2106000, new byte[32]);
PS3.SetMemory(0x36B260, new byte[] { 0x3C, 0x60, 0x02, 0x10, 0x80, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x8C, 0x4B, 0xCC, 0x83, 0x11, 0x3C, 0x80, 0x02, 0x10, 0x90, 0x64, 0x60, 0x00, 0x38, 0x60, 0x00, 0x00, 0x90, 0x64, 0x00, 0x00, 0x48, 0x00, 0x00, 0x74 });
PS3.SetMemory(0x335C7, new byte[] { 0x01 });
}
public static void ActivateIndex(int index, int type)
{
byte[] Typ = BitConverter.GetBytes(type);
Array.Reverse(Typ);
PS3.SetMemory(HElems.ELEM + 0xb8 * (uint)index, Typ);
}
public static byte[] ToHexFloat(float Axis)
{
byte[] bytes = BitConverter.GetBytes(Axis);
Array.Reverse(bytes);
return bytes;
}
public static byte[] RGBA(decimal R, decimal G, decimal B, decimal A)
{
byte[] RGBA = new byte[4];
byte[] RVal = BitConverter.GetBytes(Convert.ToInt32(R));
byte[] GVal = BitConverter.GetBytes(Convert.ToInt32(G));
byte[] BVal = BitConverter.GetBytes(Convert.ToInt32(B));
byte[] AVal = BitConverter.GetBytes(Convert.ToInt32(A));
RGBA[0] = RVal[0];
RGBA[1] = GVal[0];
RGBA[2] = BVal[0];
RGBA[3] = AVal[0];
return RGBA;
}
public static void StoreIcon(uint elemIndex, decimal client, int shader, int width, int height, float x, float y, uint align, float sort, int r, int g, int b, int a)
{
uint elem = HElems.ELEM + ((elemIndex) * 0xb
;
byte[] ClientID = ReverseBytes(BitConverter.GetBytes(Convert.ToInt32(client)));
PS3.SetMemory(elem, new byte[0xB8]);
PS3.SetMemory(elem, new byte[] { 0x00, 0x00, 0x00, 0x04 });
PS3.SetMemory(elem + HElems.shaderOffset, ReverseBytes(BitConverter.GetBytes(shader)));
PS3.SetMemory(elem + HElems.heightOffset, ReverseBytes(BitConverter.GetBytes(height)));
PS3.SetMemory(elem + HElems.widthOffset, ReverseBytes(BitConverter.GetBytes(width)));
PS3.SetMemory(elem + HElems.alignOffset, ReverseBytes(BitConverter.GetBytes(0)));
PS3.SetMemory(elem + HElems.relativeOffset, ReverseBytes(BitConverter.GetBytes(0)));
PS3.SetMemory(elem + HElems.xOffset, ToHexFloat(x));
PS3.SetMemory(elem + HElems.yOffset, ToHexFloat(y));
PS3.SetMemory(elem + HElems.colorOffset, RGBA(r, g, b, a));
PS3.SetMemory(elem + HElems.clientOffset, ClientID);
}
public static byte[] CacheString(string Text)
{
PS3.SetMemory(HElems.FIX_ELEM, new byte[] { 0x01 }); //must patch this to make it work
PS3.SetMemory(0x2100000, Encoding.ASCII.GetBytes(Text + "\0"));
byte[] result = new byte[6];
Thread.Sleep(10);
PS3.GetMemory(0x2106000, result);
return result;
}
public static void StoreTextElem(uint elemIndex, int client, string Text, int font, float fontScale, int x, int y, uint align, float sort, int r, int g, int b, int a, int r1, int g1, int b1, int a1)
{
uint elem = HElems.ELEM + ((elemIndex) * 0xB
;
byte[] ClientID = ReverseBytes(BitConverter.GetBytes(client));
PS3.SetMemory(elem, new byte[0xB4]);
PS3.SetMemory(elem, new byte[] { 0x00, 0x00, 0x00, 0x01 });
PS3.SetMemory(elem + HElems.textOffset, CacheString(Text));
PS3.SetMemory(elem + HElems.fontOffset, ReverseBytes(BitConverter.GetBytes(Convert.ToInt32(font))));
PS3.SetMemory(elem + HElems.alignOffset, ReverseBytes(BitConverter.GetBytes(Convert.ToInt32(0))));
PS3.SetMemory(elem + HElems.relativeOffset, ReverseBytes(BitConverter.GetBytes(0)));
PS3.SetMemory(elem + HElems.fontSizeOffset, ToHexFloat(fontScale));
PS3.SetMemory(elem + HElems.xOffset, ToHexFloat(x));
PS3.SetMemory(elem + HElems.yOffset, ToHexFloat(y));
PS3.SetMemory(elem + HElems.colorOffset, RGBA(r, g, b, a));
PS3.SetMemory(elem + HElems.GlowColor, RGBA(r1, g1, b1, a1));
PS3.SetMemory(elem + HElems.clientOffset, ClientID);
}
public static byte[] UInt32ToBytes(uint input)
{
byte[] bytes = BitConverter.GetBytes(input);
Array.Reverse(bytes);
return bytes;
}
public static byte[] ReverseBytes(byte[] inArray)
{
Array.Reverse(inArray);
return inArray;
}
public static byte[] uintBytes(uint input)
{
byte[] data = BitConverter.GetBytes(input);
Array.Reverse(data);
return data;
}
private void GiveWeapon(int client, int weapon, int ammo, int akimbo)
{
CallFunction(0x0029244C, (uint)(0xF44480 + (client * 0x3700)), weapon, akimbo);
CallFunction(0x0246BE4, (uint)(0xF44480 + (client * 0x3700)), weapon, 0, ammo, 1);
CallFunction(0x590EA0, client, 0, "a \"" + weapon + "\"");
}
//G_GivePlayerWeapon - 0x0029244C
//Add_Ammo - 0x0246BE4
//SV_SendGameServerCommand - 0x590EA0
//G_Client - 0xF44480
//Intervnal/Index - 0x3700
public class Buttonz
{
public static int
DpadUp = 13617,
DpadDown = 14129,
DpadLeft = 14641,
DpadRight = 12594,
Cross = 13618,
Square = 12593,
Circle = 13106,
R2 = 53,
R1 = 49,
L2 = 55,
L1 = 13105,
L3 = 57,
R3 = 14130;
}
public static bool ButtonPressed(int client, int Button)
{
if (BitConverter.ToInt16(PS3.GetBytes(0x38AF1A52 + ((uint)client * 0x6FA00), 2), 0) == Button || BitConverter.ToInt16(PS3.GetBytes(0x39011A52 + ((uint)client * 0x6FA00), 2), 0) == Button)
return true;
else return false;
}
public static void MoveShaderXY(uint index, float X, float Y)
{
PS3.Extension.WriteFloat(0xD87888 + (index * 0xB
+ 0x04, X);
PS3.Extension.WriteFloat(0xD87888 + (index * 0xB
+ 0x08, Y);
}
public void DestroyElem(int index)
{
uint elem = 0xD87888 + ((Convert.ToUInt32(index)) * 0xB
;
PS3.SetMemory(elem, new byte[0xB8]);
}
public void ChangeHudIcon(int index, int shader)
{
uint elem = 0xD87888 + ((Convert.ToUInt32(index)) * 0xB
;
byte[] Material_ = BitConverter.GetBytes(shader);
Array.Reverse(Material_);
PS3.SetMemory(elem + 0x4C, Material_);
}
public static void iPrintLn(int client, string input)
{
SV_GameSendServerCommand(client, "c \"" + input + "\"");
}
public static void iPrintLnBold(int clientNumber, string input)
{
SV_GameSendServerCommand(clientNumber, "e \"" + input + "\"");
}
public static void SV_GameSendServerCommand(int client, string text, int type = 0)
{
CallFunction(0x590EA0, client, 0, (text));
}
public int ChangePres()
{
if (curPres == 53)
return 0;
else if (curPres == 54)
return 1;
else if (curPres == 55)
return 2;
else if (curPres == 56)
return 3;
else if (curPres == 57)
return 4;
else if (curPres == 5
return 5;
else if (curPres == 59)
return 6;
else if (curPres == 60)
return 7;
else if (curPres == 61)
return 8;
else if (curPres == 62)
return 9;
else if (curPres == 63)
return 10;
else return 0;
}
public void UpPrestige()
{
ChangePres();
if (curPres == 53)
{
curPres = 63;
ChangeHudIcon(194, curPres);
}
else
{
curPres--;
ChangeHudIcon(194, curPres);
}
}
public void DownPrestige()
{
ChangePres();
if (curPres == 63)
{
curPres = 53;
ChangeHudIcon(194, curPres);
}
else
{
curPres++;
ChangeHudIcon(194, curPres);
}
}
if (ButtonPressed(0, Buttonz.R2) && selected == false)
{
DownPrestige();
}
if (ButtonPressed(0, Buttonz.L2) && selected == false)
{
UpPrestige();
}
if (ButtonPressed(0, Buttonz.Cross) && selected == false)
{
if (ChangePres() == 0)
{
GiveWeapon(0, 38, 999, 0);
}
else if (ChangePres() == 1)
{
GiveWeapon(0, 40, 999, 0);
}
else if (ChangePres() == 2)
{
GiveWeapon(0, 44, 999, 0);
}
else if (ChangePres() == 3)
{
GiveWeapon(0, 51, 999, 0);
}
else if (ChangePres() == 4)
{
GiveWeapon(0, 57, 999, 0);
}
else if (ChangePres() == 5)
{
GiveWeapon(0, 62, 999, 0);
}
else if (ChangePres() == 6)
{
GiveWeapon(0, 73, 999, 0);
}
else if (ChangePres() == 7)
{
GiveWeapon(0, 75, 999, 0);
}
else if (ChangePres() == 
{
GiveWeapon(0, 74, 999, 0);
}
else if (ChangePres() == 9)
{
GiveWeapon(0, 86, 999, 0);
}
else if (ChangePres() == 10)//
{
GiveWeapon(0, 73, 999, 0);
}
double scrollspeed = 40; //Scrolling Speed (You can edit it but this is a good speed)
for (double i = 290; i < 1000; )
{
i = i + scrollspeed;
MoveShaderXY(194, (int)i, 180);
}
selected = true;
PrestigeTimer.Stop();
}
StoreIcon(194, 0, 53, 150, 100, 290, 180, 0, 0, 255, 255, 255, 255);
PrestigeTimer.Start();
iPrintLn(0, "^5[{+smoke}] / [{+frag}] to scroll");
iPrintLn(0, "^5[{+gostand}] to select prestige");
AlmightySo - Original Function/Buttons/UpdatedHuds
BadLuckBrian - Original Huds
Shark - MoveShaderXY
Prime Notorious - Updating The Function
coreconfusion - Prestige Offset
Copyright © 2026, NextGenUpdate.
All Rights Reserved.