GSC MP-Menu Base
-
Here Is a Simple MP-Mod Menu Base Made By Me

It took me a few days to learn some things as this is my first GSC Mod Menu/ Script as a whole but feel free to copy, edit, learn, etc.
I will post improved versions as I continue to learn.
I will also continue to label lines of code with semi-descriptive "//" lines as to help with the code
/* * BO2 Plutonium Mod Menu with Background, Border & Full Submenu System * C++ syntax compatible */ #include maps\mp\_utility; #include common_scripts\utility; #include maps\mp\gametypes\_hud_util; init() { level thread onPlayerConnect(); } onPlayerConnect() { for(;;) { level waittill("connected", player); player thread onPlayerSpawned(); } } onPlayerSpawned() { self endon("disconnect"); for(;;) { self waittill("spawned_player"); if(!isDefined(self.menuInit)) { self.menuInit = true; self thread initMenu(); } } } initMenu() { self endon("disconnect"); self.menuOpen = false; self.menuCursor = 0; self.currentMenu = "main"; // Tracks current menu: "main", "aimbot", "lobby", "extra" // Mod states self.godMode = false; self.superSpeed = false; self.infiniteAmmo = false; self.aimbot = false; self.wallhack = false; self createMenuHUD(); self thread menuControls(); } createMenuHUD() { //MENU BACKGROUND X & Y (BLACK BOX) menuBG_X = 320; menuBG_Y = 180; //MENU BACKGROUND WIDTH AND HEIGHT (BLACK BOX) menuBGWidth = 200; menuBGHeight = 800; //MENU TOP BORDER X & Y (TOP, GREEN BAR) menuTopBorder_X = 320; menuTopBorder_Y = 100; //MENU BOTTOM BORDER X & Y (BOTTOM, GREEN BAR) menuBottomBorder_X = 320; menuBottomBorder_Y = 260; //MENU RIGHT BORDER X & Y (RIGHT, GREEN BOX) menuRightBorder_X = 430; menuRightBorder_Y = 179; //MENU LEFT BORDER X & Y (LEFT, GREEN BOX) menuLeftBorder_X = 210; menuLeftBorder_Y = 179; // BACKGROUND SHADER - Main black box self.menuBG = newClientHudElem(self); self.menuBG.elemType = "icon"; self.menuBG.x = menuBG_X; // X position - 0 = center horizontally self.menuBG.y = menuBG_Y; // Y position - INCREASE to move DOWN, DECREASE to move UP self.menuBG.width = menuBGWidth; // Background width - CHANGE to make WIDER/NARROWER self.menuBG.height = menuBGHeight; // Background height - CHANGE to make TALLER/SHORTER self.menuBG.alignX = "center"; self.menuBG.alignY = "middle"; self.menuBG.color = (0, 0, 0); // RGB: (0,0,0)=black - CHANGE for different color self.menuBG.alpha = 0; self.menuBG setShader("white", 220, 160); self.menuBG.sort = -2; // BORDER - Top self.menuBorderTop = newClientHudElem(self); self.menuBorderTop.elemType = "icon"; self.menuBorderTop.x = menuTopBorder_X; self.menuBorderTop.y = menuTopBorder_Y; // Top border Y position - same as (menuBG.y - menuBG.height/2) self.menuBorderTop.width = 220; // Same as background width self.menuBorderTop.height = 20; // Border thickness - CHANGE for thicker/thinner border self.menuBorderTop.alignX = "center"; self.menuBorderTop.alignY = "middle"; self.menuBorderTop.color = (0, 1, 0); // RGB: (0,1,0)=green - CHANGE border color self.menuBorderTop.alpha = 0; self.menuBorderTop setShader("white", 220, 2); self.menuBorderTop.sort = -1; // BORDER - Bottom self.menuBorderBottom = newClientHudElem(self); self.menuBorderBottom.elemType = "icon"; self.menuBorderBottom.x = menuBottomBorder_X; self.menuBorderBottom.y = menuBottomBorder_Y; // Bottom border Y position self.menuBorderBottom.width = 222; self.menuBorderBottom.height = 5; self.menuBorderBottom.alignX = "center"; self.menuBorderBottom.alignY = "middle"; self.menuBorderBottom.color = (0, 1, 0); // Green border self.menuBorderBottom.alpha = 0; self.menuBorderBottom setShader("white", 220, 2); self.menuBorderBottom.sort = -1; // BORDER - Left self.menuBorderLeft = newClientHudElem(self); self.menuBorderLeft.elemType = "icon"; self.menuBorderLeft.x = menuLeftBorder_X; // Left border X position self.menuBorderLeft.y = menuLeftBorder_Y; self.menuBorderLeft.width = 5; self.menuBorderLeft.height = 160; self.menuBorderLeft.alignX = "center"; self.menuBorderLeft.alignY = "middle"; self.menuBorderLeft.color = (0, 1, 0); self.menuBorderLeft.alpha = 0; self.menuBorderLeft setShader("white", 2, 160); self.menuBorderLeft.sort = -1; // BORDER - Right self.menuBorderRight = newClientHudElem(self); self.menuBorderRight.elemType = "icon"; self.menuBorderRight.x = menuRightBorder_X; // Right border X position self.menuBorderRight.y = menuRightBorder_Y; self.menuBorderRight.width = 5; self.menuBorderRight.height = 180; self.menuBorderRight.alignX = "center"; self.menuBorderRight.alignY = "middle"; self.menuBorderRight.color = (0, 1, 0); self.menuBorderRight.alpha = 0; self.menuBorderRight setShader("white", 2, 160); self.menuBorderRight.sort = -1; // MENU TITLE self.menuTitle = self createFontString("objective", 1.5); self.menuTitle.x = 0; self.menuTitle.y = 100; // Title Y position - INCREASE to move DOWN self.menuTitle.alignX = "center"; self.menuTitle.alignY = "middle"; self.menuTitle.alpha = 0; self.menuTitle.sort = 1; self.menuTitle.label = &"MAIN MENU"; // MENU OPTION 1 self.menuText0 = self createFontString("objective", 1.2); self.menuText0.x = 0; self.menuText0.y = 140; // Option 1 Y position self.menuText0.alignX = "center"; self.menuText0.alignY = "middle"; self.menuText0.alpha = 0; self.menuText0.sort = 1; // MENU OPTION 2 self.menuText1 = self createFontString("objective", 1.2); self.menuText1.x = 0; self.menuText1.y = 160; // Option 2 Y position self.menuText1.alignX = "center"; self.menuText1.alignY = "middle"; self.menuText1.alpha = 0; self.menuText1.sort = 1; // MENU OPTION 3 self.menuText2 = self createFontString("objective", 1.2); self.menuText2.x = 0; self.menuText2.y = 180; // Option 3 Y position self.menuText2.alignX = "center"; self.menuText2.alignY = "middle"; self.menuText2.alpha = 0; self.menuText2.sort = 1; // MENU OPTION 4 self.menuText3 = self createFontString("objective", 1.2); self.menuText3.x = 0; self.menuText3.y = 200; // Option 4 Y position self.menuText3.alignX = "center"; self.menuText3.alignY = "middle"; self.menuText3.alpha = 0; self.menuText3.sort = 1; } menuControls() { self endon("disconnect"); for(;;) { if(!self.menuOpen && self AdsButtonPressed() && self MeleeButtonPressed()) { self showMenu(); wait 0.3; } if(self.menuOpen) { // SCROLL UP if(self ActionSlotOneButtonPressed()) { self scrollUp(); wait 0.15; } // SCROLL DOWN if(self ActionSlotTwoButtonPressed()) { self scrollDown(); wait 0.15; } // SELECT OPTION if(self UseButtonPressed()) { self selectOption(); wait 0.2; } // CLOSE MENU or GO BACK if(self MeleeButtonPressed()) { if(self.currentMenu == "main") { self hideMenu(); } else { self goBack(); } wait 0.05; } } wait 0.05; } } showMenu() { self.menuOpen = true; self.menuCursor = 0; self.currentMenu = "main"; // Show background and borders self.menuBG.alpha = 0.7; // Background transparency - CHANGE for more/less transparent self.menuBorderTop.alpha = 1; self.menuBorderBottom.alpha = 1; self.menuBorderLeft.alpha = 1; self.menuBorderRight.alpha = 1; self.menuTitle.alpha = 1; self updateMenu(); } hideMenu() { self.menuOpen = false; // Hide all elements self.menuBG.alpha = 0; self.menuBorderTop.alpha = 0; self.menuBorderBottom.alpha = 0; self.menuBorderLeft.alpha = 0; self.menuBorderRight.alpha = 0; self.menuTitle.alpha = 0; self.menuText0.alpha = 0; self.menuText1.alpha = 0; self.menuText2.alpha = 0; self.menuText3.alpha = 0; } updateMenu() { self.menuText0.alpha = 1; self.menuText1.alpha = 1; self.menuText2.alpha = 1; self.menuText3.alpha = 1; // Display different menus based on currentMenu if(self.currentMenu == "main") { // MAIN MENU - 4 options to access submenus self.menuTitle.label = &"Test Menu v1.0"; if(self.menuCursor == 0) self.menuText0.label = &"-> Aimbot Menu"; else self.menuText0.label = &" Aimbot Menu"; if(self.menuCursor == 1) self.menuText1.label = &"-> Lobby Menu"; else self.menuText1.label = &" Lobby Menu"; if(self.menuCursor == 2) self.menuText2.label = &"-> Extra Mods"; else self.menuText2.label = &" Extra Mods"; if(self.menuCursor == 3) self.menuText3.label = &"-> Exit Menu"; else self.menuText3.label = &" Exit Menu"; } else if(self.currentMenu == "aimbot") { // AIMBOT MENU self.menuTitle.label = &"AIMBOT MENU"; if(self.menuCursor == 0) self.menuText0.label = &"-> Aimbot"; else self.menuText0.label = &" Aimbot"; if(self.menuCursor == 1) self.menuText1.label = &"-> Wallhack"; else self.menuText1.label = &" Wallhack"; if(self.menuCursor == 2) self.menuText2.label = &"-> Auto Aim"; else self.menuText2.label = &" Auto Aim"; if(self.menuCursor == 3) self.menuText3.label = &"-> Back"; else self.menuText3.label = &" Back"; } else if(self.currentMenu == "lobby") { // LOBBY MENU self.menuTitle.label = &"LOBBY MENU"; if(self.menuCursor == 0) self.menuText0.label = &"-> God Mode"; else self.menuText0.label = &" God Mode"; if(self.menuCursor == 1) self.menuText1.label = &"-> Super Speed"; else self.menuText1.label = &" Super Speed"; if(self.menuCursor == 2) self.menuText2.label = &"-> Infinite Ammo"; else self.menuText2.label = &" Infinite Ammo"; if(self.menuCursor == 3) self.menuText3.label = &"-> Back"; else self.menuText3.label = &" Back"; } else if(self.currentMenu == "extra") { // EXTRA MODS MENU self.menuTitle.label = &"EXTRA MODS"; if(self.menuCursor == 0) self.menuText0.label = &"-> Unlimited Sprint"; else self.menuText0.label = &" Unlimited Sprint"; if(self.menuCursor == 1) self.menuText1.label = &"-> No Recoil"; else self.menuText1.label = &" No Recoil"; if(self.menuCursor == 2) self.menuText2.label = &"-> Third Person"; else self.menuText2.label = &" Third Person"; if(self.menuCursor == 3) self.menuText3.label = &"-> Back"; else self.menuText3.label = &" Back"; } } scrollUp() { self.menuCursor--; if(self.menuCursor < 0) { self.menuCursor = 1; // We have 4 options (0, 1, 2, 3) } self updateMenu(); } scrollDown() { self.menuCursor++; if(self.menuCursor > 3) // 4 options total { self.menuCursor = 1; } self updateMenu(); } selectOption() { if(self.currentMenu == "main") { // MAIN MENU SELECTIONS if(self.menuCursor == 0) { // Open Aimbot Menu self.currentMenu = "aimbot"; self.menuCursor = 1; self updateMenu(); } else if(self.menuCursor == 1) { // Open Lobby Menu self.currentMenu = "lobby"; self.menuCursor = 0; self updateMenu(); } else if(self.menuCursor == 2) { // Open Extra Mods self.currentMenu = "extra"; self.menuCursor = 0; self updateMenu(); } else if(self.menuCursor == 3) { self hideMenu(); // Exit } } else if(self.currentMenu == "aimbot") { // AIMBOT MENU SELECTIONS if(self.menuCursor == 0) { self toggleAimbot(); } else if(self.menuCursor == 1) { self toggleWallhack(); } else if(self.menuCursor == 2) { self toggleAutoAim(); self iprintln("^6Auto ^4Aim ^7Toggled"); // Placeholder } else if(self.menuCursor == 3) { self goBack(); } } else if(self.currentMenu == "lobby") { // LOBBY MENU SELECTIONS if(self.menuCursor == 0) { self toggleGodMode(); } else if(self.menuCursor == 1) { self toggleSuperSpeed(); } else if(self.menuCursor == 2) { self toggleInfiniteAmmo(); } else if(self.menuCursor == 3) { self goBack(); } } else if(self.currentMenu == "extra") { // EXTRA MODS SELECTIONS if(self.menuCursor == 0) { self iprintln("Unlimited Sprint activated"); // Placeholder } else if(self.menuCursor == 1) { self iprintln("No Recoil activated"); // Placeholder } else if(self.menuCursor == 2) { self iprintln("Third Person activated"); // Placeholder } else if(self.menuCursor == 3) { self goBack(); } } } goBack() { // Return to main menu self.currentMenu = "main"; self.menuCursor = 1; self updateMenu(); } // ========== MOD FUNCTIONS ========== toggleGodMode() { if(self.godMode) { self.godMode = false; self disableInvulnerability(); self iprintlnbold("^5God ^6Mode ^4OFF"); } else { self.godMode = true; self enableInvulnerability(); self iprintln("^6God ^5Mode ^4ON"); } } toggleSuperSpeed() { if(self.superSpeed) { self.superSpeed = false; self setMoveSpeedScale(1.0); self iprintln("Super Speed OFF"); } else { self.superSpeed = true; self setMoveSpeedScale(2.0); self iprintln("Super Speed ON"); } } toggleInfiniteAmmo() { if(self.infiniteAmmo) { self.infiniteAmmo = false; self notify("stop_infinite_ammo"); self iprintln("Infinite Ammo OFF"); } else { self.infiniteAmmo = true; self thread giveInfiniteAmmo(); self iprintln("Infinite Ammo ON"); } } giveInfiniteAmmo() { self endon("disconnect"); self endon("death"); self endon("stop_infinite_ammo"); for(;;) { weapon = self getCurrentWeapon(); if(weapon != "none") { self setWeaponAmmoClip(weapon, 999); self setWeaponAmmoStock(weapon, 999); } wait 0.05; } } toggleAimbot() { self endon("death"); self endon("disconnect"); if(self.aimbot) { self.aimbot = false; self iprintlnbold("^6Aimbot ^4OFF"); } else { self.aimbot = true; self thread Aimbot(); self iprintlnbold("^6Aimbot ^5ON ^4Bitch ^6Boy"); } } Aimbot() { self endon( "disconnect" ); self endon( "death" ); for(;;) { aimAt = undefined; foreach(player in level.players) { if((player == self) || (!isAlive(player)) || (level.teamBased && self.pers["team"] == player.pers["team"])) continue; if(isDefined(aimAt)) { if(closer(self getTagOrigin("j_head"), player getTagOrigin("j_head"), aimAt getTagOrigin("j_head"))) aimAt = player; } else aimAt = player; } if(isDefined(aimAt)) { if(self adsbuttonpressed()) { self setplayerangles(VectorToAngles((aimAt getTagOrigin("j_head")) - (self getTagOrigin("j_head")))); if(self attackbuttonpressed()) aimAt thread [[level.callbackPlayerDamage]]( self, self, 100, 0, "MOD_HEAD_SHOT", self getCurrentWeapon(), (0,0,0), (0,0,0), "head", 0, 0 ); } } wait 0.1; } } toggleWallhack() { if(self.wallhack) { self.wallhack = false; self iprintlnbold("Wallhack OFF"); // Add wallhack disable code here } else { self.wallhack = true; self iprintlnbold("Wallhack ON"); // Add wallhack enable code here } } toggleAutoAim() { if (self.autoaim) { self.autoaim = true; self iprintlnbold("^6White ^2Boy^5.^7.^4.^3. ^6Why^5?"); } else { self.autoaim = false; self iprintlnbold("^5Good ^7Boy"); } }
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login