Assistance with a Menu-Based script where options change depending on variables.

Discussion in 'RGSS3 Script Requests' started by Genqar, Jul 20, 2015.

  1. Genqar

    Genqar Warper Member

    Likes Received:
    First Language:


    I don't normally make posts on anything here really - tend to be a lurker as well as most of my questions have been solved or I have found a way to make them work - but I would love some help with this problem.

    Firstly, I'm not terribly knowledgeable on Ruby / RGSS3, but I understand it to an extent.

    Secondly, this may be fairly easy to do, but it also may be fairly difficult - I'll try to explain my issue / request as in-depth as possible. It also may require several different scripts (but would prefer as little as possible)


    So for my game I am looking to do a sort of reward system that persists throughout saves. Basically requiring permanent triggers of some form. The idea is to have players unlock character skins (basically swapping sprites / battlers) which they could then switch to at any time (from the main menu) - these being unlocked through whatever (defeating a boss, treasure, etc. doesn't really matter for the post though). This is to apply to all saves, as I am hoping for some replay-ability in my games with a more-choice based system and gives additional rewards for doing some stuff outside the "Main Storyline."

    What I am looking for:

    • Menu visible from the title/screen that displays "unlocked skins"
    • The in-game main menu one allowing you to select said skins.
    • Changing skins changes in game chat image (mainly just need to know what to write in text boxes for this one)
    • Changing skins persists through save / load (Found what I was looking for - theLEECH - previously Skul_ - had a great persistent data script, just didn't punch the right keywords)
    Bonus points if you can help me with these:

    • A tid-bit of lore about the skin (character for it) - so some base text I could either write in with the script or have on a .txt somewhere
    • Unavailable skins to be blacked our and text to be ???
    • The skins are selected via sprites / battlers as the selecting piece (preferably the latter) - rather than just text.
    Ideal Layout would probably be full 200 or so pixel wide bar that goes from top to bottom in a scroll up / down fashion with the skin name, a small window to the right of that on top of the screen for text - about 150-300 pixels high, and the remainder of the screen either a battler (preference), a sprite (face), or a mix of the two.

    This is a purely aesthetic / rewarding  script, so I'm not in a huge rush to do it right now, but any help would be spectacular. Again I have been looking around, but couldn't really find a full-meal deal on the solution, so I'd figure I would ask all the lovely people of the RPG Maker community.

    If there is anything else anyone needs / wants to know - please ask.

    P.S. This is meant to be a non-commercial game, and I am giving credit to any script creator who has helped me a lot or whose script I use.

    P.S.S. I have been working on this (again, still learning how to code) and have so far come along with the windows for the basic layout. Posting this may require this topic to be moved again however (sorry). But here is what I have for the basic outline of a window.

    #--------------------------------------------------------------------------#                The Scene and Windows#--------------------------------------------------------------------------class Scene_SkinSelection < Scene_MenuBase  def start    super()    @list_window =, 0, 200)    @message_window =, 200, 0, Graphics.width - 200, Graphics.width - 400)    @battler_window =, 200, 144, Graphics.width - 200, Graphics.width - 272)    @list_window.set_handler(:cancel,  method(:return_scene))  endend#----------------------------class Window_SkinList < Window_Selectable  def initialize(x, y, width)    super(x, y, width, Graphics.height - y)    data = []    self.index = 0    activate    refresh  end  end#----------------------------class Window_SkinLore < Window_Base  def initialize(enemy_window, x, y, width, height)    super(x, y, width, height)    refresh  end    def refresh    contents.clear  end    end#----------------------------class Window_SkinImages < Window_Base    def initialize(skindisplay_window, x, y, width, height)    super(x, y, width, height)    refresh  end    def refresh    contents.clear  end  end#-------------------------------------# Adding the Command to the Main Menu#-------------------------------------class Window_MenuCommand < Window_Command    alias Nonro_cutscene_windowmenucommand_addoriginalcommand_skins    add_original_commands  def add_original_commands    Nonro_cutscene_windowmenucommand_addoriginalcommand_skins()    add_command("Skins", :skins, true)  endend  class Scene_Menu < Scene_MenuBase  alias Nonro_cutscene_sceneemenucommand_createcommandwindow_skins   create_command_window  def create_command_window    Nonro_cutscene_sceneemenucommand_createcommandwindow_skins()   #Call Original Method    @command_window.set_handler(:skins,     method(:command_skinscene))  end    def command_skinscene  endend
    Last edited by a moderator: Jul 21, 2015
  2. Andar

    Andar Veteran Veteran

    Likes Received:
    First Language:
    Primarily Uses:
    I've moved this thread to Script Request. Please be sure to post your threads in the correct forum next time. Thank you.

    Script support is for asking questions about existing scripts (which needs to be linked then).

    From what you wrote I'm assuming you want someone else to write such a script, or check if such a script already exist (it might be, check scripts from Galv and DiamondPlatinum on the master script list, they have different visual menu scripts).

    If you want help for writing it yourself, it would probably have to be moved again, either to "Learning RGSS" or to "Scripts in Development".
  3. Genqar

    Genqar Warper Member

    Likes Received:
    First Language:
    Thank you Andar (sleep deprived me is also thankful). It's (hopefully) going to be a bit of all of that, but for now this is right.

    For clarification I will ideally at the very least understand the script code, if someone wanted to write it, that'd be cool and everything, but teach a man to fish...

    I'll continue looking around for solutions and as I start seeing if I get a cohesive script I'll post it on here.

    Basically I will want all the things of these Topics - Assistance changing it over time, someone to initially flesh it out, or show me the ropes of fleshing something like this out, and then help coding how to get it down to my desired outcome. 

    Apologies again for wrong topic!

Share This Page