Skip to content
  • 0 Unread 0
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Donate
Collapse

Plutonium

  1. Home
  2. BO2 Modding Support & Discussion
  3. GSC MP-Menu Base

GSC MP-Menu Base

Scheduled Pinned Locked Moved BO2 Modding Support & Discussion
2 Posts 1 Posters 879 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • paco_1 Offline
    paco_1 Offline
    paco_1
    wrote on last edited by
    #1

    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");
    			
    		}
    	}
    	
    
    1 Reply Last reply
    1
    • paco_1 Offline
      paco_1 Offline
      paco_1
      wrote on last edited by
      #2

      SORRY EVERYONE! Updated UI, Mods with better explanations, and better UI Controls will be posted soon! I code random things when im drunk and/or bored so posting is dependent on my motive.

      1 Reply Last reply
      0

      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
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Unread 0
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Donate