• 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
  • Age 27
  • 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
  • Age 20
  • Seen yesterday
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
  • Age 24
  • 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
  • Age 22
  • 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
  • Age 22
  • 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
  • Age 20
  • Seen yesterday
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
  • Age 34
  • 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
  • Age 24
  • 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
  • Age 30
  • USA
  • Seen Jan 15, 2024
apparently the "exit game" feature takes me through an infinite loop of saving the game, forcing me to close out the window
 
Back
Top