Evented Image Menu

Discussion in 'RPG Maker MV Tutorials' started by ShadowDragon, Apr 23, 2019.

  1. ShadowDragon

    ShadowDragon Veteran Veteran

    Messages:
    149
    Likes Received:
    45
    Location:
    Netherlands
    First Language:
    Dutch
    Primarily Uses:
    RMMV
    I have no idea if this already exist, but this image based menu has "1" downside at the moment.

    1) This Event need to be placed in every single map, but otherwise, fully functioning.

    The good side of this event, its unique and you can style the buttons how you want it.
    You need however need some pre-require a few things before we start.

    1) 5 button images (5 button on 1 images, and which has 1 selected)
    Place those in the /img/picture/ folder
    Buttons.png
    2) the following Plugins is required
    - YEP_CoreEngine
    - YEP_ButtonCommenEvent
    - YEP_StopMovementEvents
    - Galv_ImageCache (or other Preloader)

    3) - 1x Switch (Switch is used to call the Main Menu)
    - 1x Variable (Variable is used to read the index)

    When you got all of it and setted up, than you are ready to follow along.

    Let's get started shall we.

    Step 1:
    Go to "Database -> Common Events"
    Choose an open slot and put in "Main Menu OPEN/CLOSE or anything you can refer to it.
    Explanation:
    The condition branch check if Main Menu is ON or OFF.
    When ON, Control Switches Main Menu Toggle = OFF
    Else
    When OFF, Turn Control Switch is ON
    The Variable Reads the Index, so we reset it to 0 (this way, the 1st button is always selected)
    The Plugin Command: RevertButton Cancel is there whenever you press X button.
    This refer to the plugin YEP_ButtonCommonEvent.js
    CE Setup.png

    Go to the plugin manager and double click ButtonCommonEvents and set up the X button to the
    Common Event ID number (show below)
    BCE setup parameter.png
    Your ID can be 6 if you place it there, or if its 10, put to on its value.

    Step 2:
    Next we create 2 events here, both on auto run, but slightly different.
    We start with the setup on the autorun to control Menu Access as follow
    Explanation:
    First we place Change Menu Access to disable, to disable the standard menu compleetly.
    After we use Galv_ImageCache to load the images before we use them.
    this to avoid andy flashing/flickering for the first time we use it.
    Call the button as simple like B1, B2, B3 etc) (sample)
    Than we use a Self Switch A = ON and make page 2 with A switch on, and leave black.
    Make sure its on Button Action on this page or it will freeze the game

    Autorun start up.png

    Step 3:
    The next event is set to auto run as well, but only work when Main Menu is called.
    Explanation:
    Put the Switch on Main Menu Toggle or however you call it and make sure its on Autorun.
    This has only 1 page, but the downside here at the moment is, this event need to be placed on
    every single map where you want to call this menu or it wont work, Unfortunatly,
    you cant make it a parallel process so I dont found a way to make that work at this point.
    Autorun on Map.png

    The first this we setup is calling the Button Images
    but on the top, we use StopEventMovement Plugin Command to stop movement around the map.
    and place a conditional branch to call the variable Index (depends how you name it) and put it on 0
    below End, repeat the proces for all the buttons you use, Index 1 for the 2nd button, Index 2 for the 3rd,
    Index 3 for the 4th button and so on (you can go on as many buttons you have)
    Step 1 images.png

    Next we check if the button down, up is being pressed and make it loop if it reach the 5th button.
    We check the button by a conditinal branch scrip call: Input.isTriggered('up') and Input.isTriggered('down')
    This also work with condition branch Button "button" is pressed from the drop down menu.
    If you use 8 buttons, make sure you put 7 to make it loop.
    in case you want a SE (Sound Effect), place it below Control Variable -=1 and +=1 (this is optional)
    Step 2 index.png

    Next we make sure when OK is pressed, the button go to the selected scene.
    When we make a conditional branch here, we use a script call: Input.isTriggered('ok')
    and inside we check when the button index is pressed we made with the images.

    change Text with the script calls or plugin command for the scenes:
    Example: SceneManager.push(Scene_Item); to go to the item menu
    or when SceneManager.push(Scene_Equip); to go to the equip scene

    Repeat this proces for all your buttons in the same condtional branch (above the last "End")
    Step 3 next scene.png

    Lastly, we make the Cancel so we can close the menu.
    While we use 1 image, we erase 1 image, if you have separated images more then 1, erase them all.
    but if you use 8 images, than use a scriptcall instead: for (var i = 1; i <= 100; ++i) {$gameScreen.erasePicture(i);}

    The Control Switches Main Menu Toggle = OFF and we use 2 Plugin commands
    Plugin Command: AllowEventMovement make sure the events runs again that we stopped before.
    Plugin Command: SwitchButton Cancel make sure the button X works again, if you don't use this,
    you can not call this menu again.

    Other buttons like A, B, Q might not work, but when X is the precious menu and cancel, it works best here.

    Step 4 Exit.png

    You make sure if you go into scenes or multiple choice, you need to Revert back cancel button first
    or a choice to cancel is because X wont work for cancel as long its bind to the common event.

    Plugin Commands : RevertButton Cancel and SwitchButton Cancel are needed to use the cancel button as normal.
    if you revert in the beginning, make sure to switch back to call the menu again.

    Use any shape of button and selectable and REMEMBER to put this event on EVERY MAP for it to work on the map
    where your actor/player is.

    You can download the Sample to see how it works.

    I hope you like this tutorial :)
    Got suggestions or a way to improve?
    Let me know and what you think.
     
    Last edited: Apr 24, 2019
    #1
    The Stranger likes this.
  2. bazrat

    bazrat Veteran Veteran

    Messages:
    120
    Likes Received:
    45
    Location:
    Washington State
    First Language:
    English
    Primarily Uses:
    RMMV
    Yea its a clean idea and works on most projects. One thing to know that this method doesn't pause the game in the sense that going into the menu does (it doesn't call a new scene basically). So if you use things like galvs projectiles and a projectile is mid air when you go to access menu it will still continue. The event will stop shooting (because of the Autorun) but any projectiles already in air will continue. Yes, you can have it to where accessing the menu clears all projectiles but then players would be accessing menu before you get hit xD

    Otherwise, I prefer this way for menus!
     
    #2
  3. ShadowDragon

    ShadowDragon Veteran Veteran

    Messages:
    149
    Likes Received:
    45
    Location:
    Netherlands
    First Language:
    Dutch
    Primarily Uses:
    RMMV
    @bazrat I agree on the pause part, if used in ABS you need pause command, but i didn't found any of that matter
    at the moment, because the way the normal menu is called have that make some kind of snapshot.

    If you are able to know how, let me know so I can improve it as well.
    another thing I forgot to mention and later reconized is that you cant exit the menu after you go to a scene.
    To make this work, you need to paste under the scene you go into into every button a plugin command
    of "RevertButton Cancel" to make sure yo ucan exit with the X button.

    The autorun itself doesn't stop events normally but its the plugin command that does it.
     
    #3
  4. bazrat

    bazrat Veteran Veteran

    Messages:
    120
    Likes Received:
    45
    Location:
    Washington State
    First Language:
    English
    Primarily Uses:
    RMMV
    Oh thats right autorun only stops players, so use to yeps plugin almost always intertwined xD

    I've heard before the pause/snapshot feature is in the creating of a new scene. I haven't looked into it much myself, we ended up getting a custom menu because we needed the pause feature.

     
    #4
  5. ShadowDragon

    ShadowDragon Veteran Veteran

    Messages:
    149
    Likes Received:
    45
    Location:
    Netherlands
    First Language:
    Dutch
    Primarily Uses:
    RMMV
    Nice abs system, I love it and want to use it, but kinda hard though :)
    I hope to figure out the pause part so I will update the post.
     
    #5
    bazrat likes this.

Share This Page