• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[v17] Radial Menu Script (a.k.a. Ring Menu)

56
Posts
11
Years
    • Seen May 24, 2021
    Yankas' Radial Menu Script​

    P6QCqs3.png
    mVAbI8r.png]

    Examples: (Left) Top-aligned menu, using ~70% transparent icons / (Right) Right-aligned menu using 100% grey-scale icons

    BIG UPDATE TO v1.1, now includes super easy config section at beginning

    I spent the past couple of days making this script, almost every aspect of it can be configured, through an easy to use configuration section at the beginning of the file. If you like this project, and want to help, I'd really really appreciate if someone more capable than me could make proper sprites for the menu entries. Should you encounter any bugs or have any other questions or feedback, please feel free to leave a comment. This MAY work with older versions of Essentials if related utility classes weren't changed to badly, no guarantees though, use at your own risk.

    Download & Installation
    Add the script file from the pastebin to your scripts somewhere above main, but below PScreen_PauseMenu and FL's Unreal Time System (if installed).
    Download the itemPokegear.png from the attachment and place in your projects' Graphics/Icons folder.
    Alternatively, you can use an already existing icon by going to the following section and changing the ICON_POKEGEAR value in the configuration.

    Pastebin - Version 1.1

    Configuration Hints
    Spoiler:


    Changelog:
    Spoiler:


    Todo:
    Spoiler:


    Credits
    Spoiler:


    Old Versions
     

    Attachments

    • itemPokegear.png
      itemPokegear.png
      639 bytes · Views: 2,076
    Last edited:
    56
    Posts
    11
    Years
    • Seen May 24, 2021
    Don't works in v16.2 ?

    Sorry for the late response, but only supports Essentials v17.
    That said I depending on how much changed it might work with v16.2, but if any adjustments are required, you'll have to make those yourselves.
     

    Tw_raZ

    The Man at the Summit
    4
    Posts
    5
    Years
    • Seen Feb 18, 2022
    Hey so this menu works great, it's easy to add new options etc

    One problem: By having this in my game, it disables the ability to fish. I don't know why. And I know this menu is causing it, because when I remove the menu I can fish again. Any idea?
     

    CTF Studios

    NekoBomber
    11
    Posts
    7
    Years
  • Hey, great system. Just wondering, how do i remove entries to the menu like pokegear and exit game options? I tried silencing the code lines that showed the entries but it just threw up error at me.
     
    180
    Posts
    6
    Years
    • Seen Apr 15, 2024
    Hey, great system. Just wondering, how do i remove entries to the menu like pokegear and exit game options? I tried silencing the code lines that showed the entries but it just threw up error at me.

    You must delete this:
    Code:
    class MenuEntryQuit < MenuEntry
    	def initialize
    		@icon = ICON_EXITGAME
    		@name = "Exit Game"
    	end
    	def selected(menu)
    		menu.pbHideMenu(true)
            if Kernel.pbConfirmMessage(_INTL("Are you sure you want to quit the game?"))
    			scene = PokemonSave_Scene.new
    			screen = PokemonSaveScreen.new(scene)
    			if screen.pbSaveScreen
    				return false
    			end
    			$scene = nil
    			return true
            end
    		menu.pbHideMenu(false)
    	end
    end
    class MenuEntryPokegear < MenuEntry
    	def initialize
    		@icon = ICON_POKEGEAR
    		@name = "Pokégear"
    	end
    	def selected(menu)
    		pbFadeOutIn(99999){
    			scene = PokemonPokegear_Scene.new
    			screen = PokemonPokegearScreen.new(scene)
    			screen.pbStartScreen
    			return false
            }
    	end
    end
    And this:
    Code:
    		addMenuEntry(MenuEntryQuit.new)
    		addMenuEntry(MenuEntryPokegear.new) if $Trainer.pokegear
     
    Last edited:
    2
    Posts
    5
    Years
    • Seen Jan 13, 2019
    Excuse me, but for some reasons it doesn't works on my game. I've copied and pasted the script after "main", but when I open the menu nothing changes. Any suggestions?
     

    Uzagi

    the bunny
    20
    Posts
    5
    Years
  • Excuse me, but for some reasons it doesn't works on my game. I've copied and pasted the script after "main", but when I open the menu nothing changes. Any suggestions?

    I guess you misread the installation instructions ; paste it "before" main and under the other script
     
    25
    Posts
    7
    Years
    • Seen Feb 19, 2020
    Hey so this menu works great, it's easy to add new options etc

    One problem: By having this in my game, it disables the ability to fish. I don't know why. And I know this menu is causing it, because when I remove the menu I can fish again. Any idea?

    I'm having the same issue. Have you figured out how to fix it?
     
    25
    Posts
    7
    Years
    • Seen Feb 19, 2020
    I can elaborate on the issue, it seems that no item that requires the menu to be exited during its usage work. This means no fishrods, HM items, Pokeradar, Dowsing machine, bicycle, (possibly escape rope, untested though) and most likely many more. I'm trying to find a fix although considering my skills with rgss, I doubt I'll be able to figure it out.
     
    180
    Posts
    6
    Years
    • Seen Apr 15, 2024
    I can elaborate on the issue, it seems that no item that requires the menu to be exited during its usage work. This means no fishrods, HM items, Pokeradar, Dowsing machine, bicycle, (possibly escape rope, untested though) and most likely many more. I'm trying to find a fix although considering my skills with rgss, I doubt I'll be able to figure it out.
    I'm getting the same errors, happening with Sweet Scent too... How can we solve this?
     
    Last edited:
    87
    Posts
    7
    Years
    • Seen Nov 22, 2023
    I found a fix to the items glitch.
    I'm not completely sure if this is the best way to do it but this works for me:

    Replace this:
    Code:
    class MenuEntryBag < MenuEntry
        def initialize
            @icon = ICON_BAG
            @name = "Bag"
        end
        def selected(menu)
            item = 0
            pbFadeOutIn(99999){
                scene = PokemonBag_Scene.new
                screen = PokemonBagScreen.new(scene,$PokemonBag)
                item = screen.pbStartScreen
                return (item>0)
            }
            if item>0
              Kernel.pbUseKeyItemInField(item)
              return true
            end
        end
    end

    With this:
    Code:
    class MenuEntryBag < MenuEntry
        def initialize(scene)
          @scene = scene
        end
        
        def initialize
            @icon = ICON_BAG
            @name = "Bag"
          end
          
        def selected(menu)
            item = 0
            pbFadeOutIn(99999){
                scene = PokemonBag_Scene.new
                screen = PokemonBagScreen.new(scene,$PokemonBag)
                item = screen.pbStartScreen
                [COLOR="Red"]#return (item>0)[/COLOR]
            }
            if item>0
              [COLOR="red"]menu.pbHideMenu(true)[/COLOR]
              Kernel.pbUseKeyItemInField(item)
              [COLOR="red"]return (item>0)[/COLOR]
            end
          end
        end

    The only downside is that the background will remain tinted until the item in use is finished being used.
    I honestly don't mind it at all, it's a good way to signal that the player can't move.

    Or, you can always remove the tint altogether from the start menu by removing:
    @background.tone = BACKGROUND_TINT

    Similarly, here's the script to get HMs to work outside of battles:

    Replace this:
    Code:
    class MenuEntryPokemon < MenuEntry
        def initialize
            @icon = ICON_POKEMON
            @name = "Pokémon"
        end
        def selected(menu)
            hiddenmove = nil
            pbFadeOutIn(99999){
                sscene = PokemonParty_Scene.new
                sscreen = PokemonPartyScreen.new(sscene,$Trainer.party)
                hiddenmove = sscreen.pbPokemonScreen
                return (hiddenmove)
            }
            if hiddenmove
                $game_temp.in_menu = false
                Kernel.pbUseHiddenMove(hiddenmove[0],hiddenmove[1])
                return
            end
        end
    end

    With this:
    Code:
    class MenuEntryPokemon < MenuEntry
        def initialize
            @icon = ICON_POKEMON
            @name = "Pokémon"
        end
        def selected(menu)
            hiddenmove = nil
            pbFadeOutIn(99999){
                sscene = PokemonParty_Scene.new
                sscreen = PokemonPartyScreen.new(sscene,$Trainer.party)
                hiddenmove = sscreen.pbPokemonScreen
                [COLOR="red"]#return (hiddenmove)[/COLOR]
            }
            if hiddenmove
              [COLOR="red"]menu.pbHideMenu(true)[/COLOR]
              $game_temp.in_menu = false
              Kernel.pbUseHiddenMove(hiddenmove[0],hiddenmove[1])
              [COLOR="red"]return (hiddenmove)[/COLOR]
            end
        end
    end
     
    3
    Posts
    4
    Years
    • Seen Apr 22, 2021
    Does this conflict with using the HM fly at all? I can't get fly to work and am struggling with finding out why.
     
    1,805
    Posts
    7
    Years
  • apparently the "exit game" feature takes me through an infinite loop of saving the game, forcing me to close out the window
     
    Back
    Top