sabao

Veteran
Veteran
Joined
Apr 10, 2012
Messages
832
Reaction score
299
First Language
Filipino
Primarily Uses
RMVXA
vnmenu.jpg


Visual Novel Interaction Menu

aka sabao learns to code

by Ryan (Me) & Fiona

Version 1.01 (4/27/2016)

Demo: HERE
Script: HERE
After years of saying I'd get to it, I've finally gotten off my ass and coded something. YAY ME. I decided on making this because I remember needing it for one of my older projects and realizing there still doesn't appear to be anything like it made for RPG Maker VX Ace. This script creates an interaction menu which creates a list of events present in the map that also triggers said events when selected. This script is ideal for anyone looking to build games like visual novels, text adventures, or if you just can't be assed to map stuff.

<I've added a 'Move' command as of version 1.01. I still feel there are already plenty of fully functional fast travel menus out (HERE and HERE to name a few) and those are more likely to be more feature-rich than anything I'd care to repeat here. For the sake of having it all ready to go though, I've put it on.>

Features:

  • Creates a command window that lists specified events present in the map and activates the specified event on select.
  • Events can be classified into three different actions: Move, Talk and Inspect.
  • Easy to use?
Terms of Use:
Free to use for commercial and non-commercial projects. Please credit the authors. Also, tell us about your project so we can try it out!

How to Use:

  • SceneManager.call(Scene_VNMenu) to call the menu.
  • Add the comment vn_area on any event you want listed under the Move action.
  • Add the comment vn_npc on any event you want listed under the Talk action.
  • Add the comment vn_object on any event you want listed under the Inspect action.
  • The script only checks for note tags on the active page of the event, so if you don't want the event to show up on the menu, just make a new page of that event without the note tag.
Known Bugs Features Bugs:
  • Delisted events still show up on the menu!
    Discovered that if Event A triggered a switch that made Event B go to its second page which is supposed to hide it from the NPC list, Event B will still show up on the menu. My current fix to this is adding a Wait command between Event A triggering the switch and calling the VN Menu. I believe this may be due to the fact that calling the menu suspends activity on the map, preventing Event B from refreshing itself into its non-active state before the menu compiles the event list.
Stuff Left to Do:
Advice on how to deal with these would be greatly appreciated!
  • The blurring and darkening of the screen bothers me. Still figuring out how to fix that.
  • I wanted an option on the command window that could call the main menu, but SceneManager.call causes crashing.
  • Darkening/disabling an option if no relevant event is present
  • Make it prettier
 
Last edited:

sabao

Veteran
Veteran
Joined
Apr 10, 2012
Messages
832
Reaction score
299
First Language
Filipino
Primarily Uses
RMVXA
Tiny update: Made a Move action based on the same behaviors as the other two. Again, there may be better fast travel menu options already out, but this menu having no Move option bothered me a lot so I figured this quick fix would suffice.
 

Edsephiroth

Edsephiroth
Member
Joined
Feb 10, 2014
Messages
19
Reaction score
4
First Language
Portuguese
Primarily Uses
N/A
I didn't understand what 'inspect' is used for.
 

sabao

Veteran
Veteran
Joined
Apr 10, 2012
Messages
832
Reaction score
299
First Language
Filipino
Primarily Uses
RMVXA
I didn't understand what 'inspect' is used for.



It works the same way as 'Talk' does, but think of it as a different kind of action where you interact with objects instead of talk to people. Say, maybe there's a switch in the room or your player character wants to make a witty quip about the painting on the wall.


For anyone having trouble figuring out how to work this thing, I made a demo:


http://www.rycanteras.net/projects/rgss/vnmenu.zip
 

Edsephiroth

Edsephiroth
Member
Joined
Feb 10, 2014
Messages
19
Reaction score
4
First Language
Portuguese
Primarily Uses
N/A
It's all clear!


Simple and fantastic!


Use script call is the best feature because we can use it on many ways.


Thank you for your effort.
 

GummyHelix

Villager
Member
Joined
Jun 24, 2016
Messages
10
Reaction score
3
First Language
English
Primarily Uses
Is it possible to prevent the player from hitting escape to leave the menu? But at any rate, I love it! I might use it for a project.
 

sabao

Veteran
Veteran
Joined
Apr 10, 2012
Messages
832
Reaction score
299
First Language
Filipino
Primarily Uses
RMVXA
Is it possible to prevent the player from hitting escape to leave the menu? But at any rate, I love it! I might use it for a project.



Hi! Sorry, forum didn't notify me of replies. Here's how to take off the close command!


Look for this bit in the code:

Code:
 #--------------------------------------------------------------------------
 # * Create Main Window
 #--------------------------------------------------------------------------
  def create_vnmenu_window
   @command_window = Window_VNMenu.new
   @command_window.set_handler(:do_move,   method(:do_move))
   @command_window.set_handler(:do_talk,   method(:do_talk))
   @command_window.set_handler(:do_inspect,   method(:do_inspect))
   @command_window.set_handler(:do_load,   method(:do_load))
   @command_window.set_handler(:do_save,   method(:do_save))
   @command_window.set_handler(:cancel, method(:do_cancel))
 end

Delete or comment out the line before end so the menu doesn't perform any actions when escape is pressed. If you just commented the line out, the resulting code should look like this:

Code:
 #--------------------------------------------------------------------------
 # * Create Main Window
 #--------------------------------------------------------------------------
  def create_vnmenu_window
   @command_window = Window_VNMenu.new
   @command_window.set_handler(:do_move,   method(:do_move))
   @command_window.set_handler(:do_talk,   method(:do_talk))
   @command_window.set_handler(:do_inspect,   method(:do_inspect))
   @command_window.set_handler(:do_load,   method(:do_load))
   @command_window.set_handler(:do_save,   method(:do_save))
  # @command_window.set_handler(:cancel, method(:do_cancel))
 end

I hope that helps and good luck to you and whatever you're working on! :)
 

GummyHelix

Villager
Member
Joined
Jun 24, 2016
Messages
10
Reaction score
3
First Language
English
Primarily Uses
@sabao Thank you so much! I'll definitely let you know if I release the project! :D
 

Latest Threads

Latest Profile Posts

wow, Surface Tension is really one MF of an FPS level huh
So, I got let go from my current job because my skill set didn't align with the department's goals anymore. I have some hope, because I am currently in contact with a manager from a different department, and they are desperate for more employees. We'll see what happens... :kaoswt:
Noriko_Human.png
Worked on some face-sets. Need to finish up the lot and cut some out of the game. She's looking pretty cute.
Even though I'm not going for the first time in...ten years or something...ordered my Gen Con dice!
Will be focusing on map making today and adding locked chests :LZSsmile:Screenshot 2021-09-16 095316.png

Forum statistics

Threads
115,114
Messages
1,087,334
Members
149,592
Latest member
Krazix
Top