Demo – Version 1.6 >
NOTE: This script requires images from the demo.
#------------------------------------------------------------------------------# # Galv's Menu Themes Engine #------------------------------------------------------------------------------# # For: RPGMAKER VX ACE # Version 1.6 #------------------------------------------------------------------------------# # NOTICE: This script is NOT free for commercial use. # Contact Galv via PM at one of the following forums: # http://www.rpgmakervxace.net/ # http://forums.rpgmakerweb.com/ #------------------------------------------------------------------------------# #------------------------------------------------------------------------------# # 2013-06-27 - Version 1.6 - compatibility fix for xp rate # 2013-06-11 - Version 1.5 - bug fixed with help menu text on incorrect menu # 2013-06-09 - Version 1.4 - bug missed with last fix... now fixed. I hope. # 2013-06-08 - Version 1.3 - fixed bug with hidden menu items # - made disabled buttons text transparent # 2013-04-16 - Version 1.2 - fixed a graphic object bug. Also included # - Killozappit's Cache Back script in the demo to # - help with lag on slower computers. # 2013-04-15 - Version 1.1 - fixed a bug with using items/skills on actors # 2013-04-15 - Version 1.0 - release #------------------------------------------------------------------------------# # This script replaces the default menu and thus will not be compatible with # other scripts that do the same. The new changes to the menu offer a few # things such as: # - Image controlled menu scenes (including moving backgrounds) # - 'Themes' allow you to customize the look of the menu and change it in game # - Other scenes can change with theme (eg. item, equip, custom scenes, etc.) # - Customisable menu commands (icons, visibility switches, order, vocab) # - Animated (sliding) commands # - Help window for selected command # - Information bar with gold, current location and play time # - Modified actor status to include exp and tp (for actors with preserve tp) #------------------------------------------------------------------------------# #------------------------------------------------------------------------------- # SCRIPT CALL #------------------------------------------------------------------------------- # # theme("Theme_Name") # Changes your menu theme to use the specified one. # #------------------------------------------------------------------------------- ($imported ||= {})["Galv_Menu_Themes"] = true module GMENU COMMAND_LIST = [ # don't touch #------------------------------------------------------------------------------- # # * MENU - COMMAND SETUP # #------------------------------------------------------------------------------- # Below list is your in-game menu commands. This replaces the database vocab # names and adds more control over customizing your game menu. #------------------------------------------------------------------------------- # ["Menu Text", :command_type, :Scene, switch1, switch2, help txt, icon] ["Items", :cmd, :Scene_Item, 0, 0, "View or use items from your inventory.",270], ["Skills", :sel, :Scene_Skill, 0, 0, "View or use character skills.",112], ["Equip", :sel, :Scene_Equip, 0, 0, "Equip your characters with weapons and armor.",170], ["Status", :sel, :Scene_Status, 0, 0, "View status of your characters.",117], ["Formation", :sel, :Formation, 0, 0, "Change your character order",121], ["Save", :cmd, :Scene_Save, 0, 0, "Record your game progress.",224], ["Game End", :cmd, :Scene_End, 0, 0, "End or restart the game.",6], ["Example1",:cmd, 1, 0, 0, "Example command - calls common event 1",278], ["Example2",:cmd, 1, 0, 0, "Example command - calls common event 1",278], # Here are examples of adding functionality via script. The script code for # these examples is in the "Example Script Commands" script in the list. #["Gold!", :cmd, :custom1, 0, 0, "Scripted custom symbol example",280], #["Levelup!", :sel, :custom2, 0, 0, "Scripted custom symbol on actor select example",290], #------------------------------------------------------------------------------- ] # don't touch #------------------------------------------------------------------------------- # INSTRUCTIONS #------------------------------------------------------------------------------- # "Menu Text"........ the text used for the menu item # :command_type...... :cmd - goes to the scene when menu item accessed. # :sel - select actor before going to the scene. # scene.............. name of the scene as a symbol. eg. :Scene_Item (*) # make this a number instead to call a common event. # switch1............ if switch is OFF, item is disabled. 0 to not use # switch2............ if switch is OFF, item will not appear. 0 to not use # help txt........... text that appears at the top of the menu screen # icon............... the icon id to use an icon next to your menu command #------------------------------------------------------------------------------- # (*) Scripters can use a custom symbol here to do other functions by aliasing # or overwriting methods found on #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # # * MENU SETTINGS # #------------------------------------------------------------------------------- SHOW_TP = true # Show TP if actor has 'preserve tp' feature true or false ACTORS_SHOWN = 4 # Number of actors visible in the menu before scrolling DEFAULT_THEME = "Theme_Default" # The theme your game will use to begin. #------------------------------------------------------------------------------- # THEME SETUP - DEFAULT THEME #------------------------------------------------------------------------------- module Theme_Default # Gerenal Options FONT = "Arial" # Font used throughout theme. FONT_SIZE = 21 # Font size used throughout theme. WINDOW_TONE = [22,52,72,0] # Color tone of scenes that use windowskins # Background BACK1_XY = [1,1] # X,Y movement for background1 (default stars) BACK1_OPACITY = 190 # Background opacity BACK2_XY = [0,0] # X,Y movement for background2 (default top bar) BACK2_OPACITY = 255 # Background opacity BACK3_XY = [0,0] # X,Y movement for background2 (default bottom bar) BACK3_OPACITY = 255 # Background opacity SCENE_BACK_OPACITY = 255 # Background opacity for other scene background # Command Menu MENU_FONT = "Arial" # Different font used for the menu text MENU_FONT_SIZE = 21 # Size of menu text MENU_TXT_COLOR = Color.new(255, 255, 255, 255) # Color of menu text MENU_TXT_OUT = Color.new(27, 57, 97, 255) # Color of menu text outline MENU_TXT_XY = [0,-2] # X,Y offset for text in command menu MENU_ICON_XY = [35,1] # X,Y offset for icons in command menu SLIDE_ICON = true # true or false to slide icon with menu text SLIDE_SPEED = 5 # Speed the menu buttons slide in and out SLIDE_OFF = -30 # X Position of button when cursor not on it SLIDE_ON = 0 # X Position of button when cursor is on it MENU_Y_OFFSET = 45 # Distance Y from top of screen MENU_WIDTH = 170 # Width reserved for the main menu. # Help Window HELP_XY = [44,2] # X,Y offset for help text HELP_TEXT_COLOR = Color.new(200, 235, 255, 255) # Color of help text # Game Info Window INFO_XY = [0,0] # X,Y offset for info text GAME_INFO_TXT_COLOR = Color.new(200, 235, 255, 255) # Game Info text color CURRENCY_ICON = 262 # Icon used instead of currency vocab. 0 = vocab # Actor Status STAT_COLOR = Color.new(167, 223, 248, 255) # Color used for lvl,hp,mp GAUGEB_COLOR = Color.new(20, 20, 20, 255) # Color of gauge backs HP_COLOR1 = Color.new(74, 197, 61, 255) # Color for hp gauge gradient HP_COLOR2 = Color.new(169, 206, 89, 255)# Color for hp gauge gradient MP_COLOR1 = Color.new(5, 132, 179, 255) # Color for mp gauge gradient MP_COLOR2 = Color.new(40, 197, 255, 255)# Color for mp gauge gradient XP_COLOR1 = Color.new(88, 147, 174, 255) # Color for xp gauge gradient XP_COLOR2 = Color.new(133, 181, 203, 255)# Color for xp gauge gradient TP_COLOR1 = Color.new(255, 166, 12, 255) # Color for tp gauge gradient TP_COLOR2 = Color.new(255, 126, 12, 255)# Color for tp gauge gradient GAUGE_FONT = "VL Gothic Regular" # Font used for hp/mp and amounts. end #------------------------------------------------------------------------------- # CUSTOM THEMES #------------------------------------------------------------------------------- # You can make your own custom menu themes and swap between them during the # game or make them available for others to use. Each theme has it's own folder # in your project located in /Graphics/GMenu/Theme_Name/ # For example the default theme is: # /Graphics/GMenu/Theme_Default/ # # HOW TO MAKE A THEME: # 1. Make a duplicate of the /Theme_Default/ folder and rename it. # 2. Modify the graphics how you see fit, using the default as templates # 3. (Optional) You can use the theme_settings.txt file found in the template # folder to create new settings for the theme. Copy the script from the # file and paste it a new script position below this menu script. Change # "Theme_Default" at the top to the name of your theme's folder. # 4. If you did that right, now in your game, you can use the script call: # theme("Theme_Name") # To change your menu theme during the game to any theme you have installed. # # If you do not create your own settings script (step 3) for your custom theme, # it will use the settings from Theme_Default. #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # THEME SETUP - INNER SCENES #------------------------------------------------------------------------------- # Inner scenes (such as item, equip, skills etc) can use the same Background # (using BACK1 setting) as well as windowskin used in the current theme. # List scenes below that you wish for this to occur. #------------------------------------------------------------------------------- SCENE_THEMES = [ # don't touch #------------------------------------------------------------------------------- "Scene_Item", "Scene_Skill", "Scene_Equip", "Scene_Status", "Scene_Save", "Scene_End", "Scene_Party", "Scene_System", "Scene_Load", #"Scene_File", #"Scene_Load", #"Scene_Shop", #"Scene_Name", #"Scene_Gameover", #"Scene_Title", #------------------------------------------------------------------------------- ] # don't touch #------------------------------------------------------------------------------- # In addition to this, the script will check the theme folder for any images. # with the scene name (above) followed by "_Background" and "_Background2". # For example if the following file is found in the theme folder: # Scene_Item_Background.png (or jpg) # It will use that image INSTEAD of Background.jpg for Background1. It will # also look for Scene_Item_Background2.png (or jpg) which will appear above # the first background. This background is static and does not move. #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # # * END SETTINGS # #------------------------------------------------------------------------------- end # GMENU module Check_Theme def mtheme Object.const_get("GMENU").const_get($game_system.menu_theme) rescue GMENU::Theme_Default end end # Check_Theme #----------------------# #---| GAME_INTERPERTER |---------------------------------------------------- #----------------------# class Game_Interpreter def theme(name) $game_system.menu_theme = name end end # Game_Interpreter #-----------# #---| CACHE |--------------------------------------------------------------- #-----------# module Cache def self.gmenu(filename,theme) load_bitmap("Graphics/GMenu/" + theme + "/", filename) end end # Cache #-----------------# #---| GAME_SYSTEM |--------------------------------------------------------- #-----------------# class Game_System attr_accessor :menu_theme alias gmenu_engine_gs_initialize initialize def initialize @menu_theme = GMENU::DEFAULT_THEME gmenu_engine_gs_initialize end end # Game_System #---------------# #---| GAME_TEMP |----------------------------------------------------------- #---------------# class Game_Temp attr_accessor :themed_scene attr_accessor :menuindexes alias gmenu_engine_gt_initialize initialize def initialize @themed_scene = false gmenu_engine_gt_initialize end end # Game_Temp #----------------# #---| GAME_ACTOR |---------------------------------------------------------- #----------------# class Game_Actor < Game_Battler def xp_rate a = (exp.to_f - current_level_exp.to_f) b = (next_level_exp.to_f - current_level_exp.to_f) if exp > 0 && b > 0 return a / b else return 0 end end end # Game_Actor < Game_Battler #----------------# #---| SCENE_MENU |---------------------------------------------------------- #----------------# class Scene_Menu < Scene_MenuBase attr_accessor :command_window include Check_Theme # OVERWRITE def start super create_graphics create_help_window create_new_command_window create_gameinfo_window create_status_window end #---| CREATE WINDOWS | def create_help_window @help_window = Window_MenuHelp.new end # OVERWRITE def create_status_window @status_window = Window_MainMenuStatus.new(@command_window.width, @help_window.height,Graphics.height - @help_window.height - @gameinfo_window.height) end # OVERWRITE def create_new_command_window @command_window = Window_MenuCommand.new(0,@help_window.height) @command_window.help_window = @help_window menu_array = Array.new(GMENU::COMMAND_LIST) menu_array.each { |cmd| handle = cmd[0].delete(' ').downcase.to_sym @command_window.set_handler(handle, method(cmd[1])) } @command_window.set_handler(:cancel, method(:return_scene)) end def create_gameinfo_window @gameinfo_window = Window_GameInfo.new @gameinfo_window.x = 0 @gameinfo_window.y = Graphics.height - @gameinfo_window.height end #---| CREATE GRAPHICS | def create_graphics create_background2 create_background3 end def create_background2 @background2 = Plane.new @background2.bitmap = Cache.gmenu("Background2",$game_system.menu_theme) @background2.opacity = mtheme::BACK2_OPACITY end def create_background3 @background3 = Plane.new @background3.bitmap = Cache.gmenu("Background3",$game_system.menu_theme) @background3.opacity = mtheme::BACK3_OPACITY @background3.oy = -Graphics.height end #---| UPDATING | def update super update_background2 update_background3 update_gameinfo end def update_background2 @background2.ox -= mtheme::BACK2_XY[0] @background2.oy -= mtheme::BACK2_XY[1] end def update_background3 @background3.ox -= mtheme::BACK3_XY[0] @background3.oy -= mtheme::BACK3_XY[1] end def update_gameinfo @gameinfo_window.refresh end #---| FUNCTIONALITY | alias gmenu_engine_sm_dispose_background dispose_background def dispose_background gmenu_engine_sm_dispose_background if @background2 @background2.bitmap.dispose @background2.dispose end if @background3 @background3.bitmap.dispose @background3.dispose end end def cmd cmd = $game_temp.menuindexes[@command_window.index] symbol = GMENU::COMMAND_LIST[cmd][2] if GMENU::COMMAND_LIST[cmd][2].is_a?(Integer) common_event_command(GMENU::COMMAND_LIST[cmd][2]) elsif custom_symbol(symbol) custom_on_command_ok(symbol) else SceneManager.call(GMENU::COMMAND_LIST[cmd][2]) end end def common_event_command(id) $game_temp.reserve_common_event(id) SceneManager.return end def sel command_personal end # OVERWRITE def command_personal @status_window.select_last @status_window.activate @status_window.set_handler(:ok, method(:on_personal_ok)) @status_window.set_handler(:cancel, method(:on_personal_cancel)) end # OVERWRITE def on_personal_ok cmd = $game_temp.menuindexes[@command_window.index] symbol = GMENU::COMMAND_LIST[cmd][2] if symbol == :Formation on_formation_ok elsif custom_symbol(symbol) custom_on_personal_ok(symbol) else SceneManager.call(symbol) end end def custom_symbol(symbol) # Alias/overwrite this method for custom symbols. # Make this method return true if symbol equals your custom symbol. end def custom_on_command_ok(symbol) # Alias/overwrite this method for custom symbols. (For 'ok' on command) # Add your functionality here including if symbol equals your custom symbol. end def custom_on_personal_ok(symbol) # Alias/overwrite this method for custom symbols. (For 'ok' on actor) # Add your functionality here including if symbol equals your custom symbol. end def custom_on_personal_cancel(symbol) # Alias/overwrite this method for custom symbols. (Cancelling on actor) # Add your cancel code here including if symbol equals your custom symbol. end # OVERWRITE def on_personal_cancel cmd = @command_window.index symbol = GMENU::COMMAND_LIST[cmd][2] if symbol == :Formation on_formation_cancel elsif custom_symbol(symbol) custom_on_personal_cancel(symbol) else @status_window.unselect @command_window.activate end end end # Scene_Menu < Scene_MenuBase #------------------------# #---| WINDOW_MENUCOMMAND |-------------------------------------------------- #------------------------# class Window_MenuCommand < Window_Command #OVERWRITE def initialize(x,y) @menu_buttons = [] super(x, y) select_last self.opacity = 0 end def draw_item(index) @menu_buttons << MenuBtn.new(@viewport,index) end def visible_line_number item_max end def window_width return mtheme::MENU_WIDTH end def update super @menu_buttons.each { |btn| btn.update(index) } end def dispose @menu_buttons.each { |btn| btn.dispose } super end def update_cursor if @cursor_all cursor_rect.empty self.top_row = 0 elsif @index < 0 cursor_rect.empty else ensure_cursor_visible cursor_rect.empty end end def add_new_main_commands $game_temp.menuindexes = [] menu_array = Array.new(GMENU::COMMAND_LIST) menu_array.each_with_index { |cmd,i| next if cmd[4] > 0 && !$game_switches[cmd[4]] $game_temp.menuindexes << i text = cmd[0] active = get_active(cmd[2],cmd[3]) handle = cmd[0].delete(' ').downcase.to_sym add_command(text, handle, active) } end def get_active(symbol,switch) return false if switch > 0 && !$game_switches[switch] case symbol when :Formation formation_enabled when :Scene_Save save_enabled else main_commands_enabled end end def make_command_list add_new_main_commands end end # Window_MenuCommand < Window_Command #----------------------# #---| WINDOW_MENUSTATUS |---------------------------------------------------- #----------------------# class Window_MainMenuStatus < Window_MenuStatus include Check_Theme def initialize(x, y, h = 0) @height = h super(x, y) self.opacity = 0 end def window_width Graphics.width - mtheme::MENU_WIDTH end def standard_padding return 6 end def window_height @height end def item_height (@height - 12) / GMENU::ACTORS_SHOWN end def draw_item(index) actor = $game_party.members[index] enabled = $game_party.battle_members.include?(actor) rect = item_rect(index) draw_item_background(index) draw_back_graphics(index,item_height,item_width,enabled) draw_gface(actor.face_name,actor.face_index,rect.x + 1,rect.y + 1, item_height - 2,enabled) draw_gsimple_status(actor, rect.x + 108, rect.y, item_height) end end #--------------------# #---| WINDOW_MENUHELP |------------------------------------------------------ #--------------------# class Window_MenuHelp < Window_Help include Check_Theme def initialize super(1) self.opacity = 0 end def standard_padding return 6 end def clear ind = $game_temp.menuindexes[SceneManager.scene.command_window.index] set_text(GMENU::COMMAND_LIST[ind][5]) end def refresh contents.clear draw_text_ex(mtheme::HELP_XY[0], mtheme::HELP_XY[1], @text) end def draw_text_ex(x, y, text) reset_font_settings change_color(mtheme::HELP_TEXT_COLOR) self.contents.font.name = mtheme::FONT self.contents.font.size = mtheme::FONT_SIZE text = convert_escape_characters(text) pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)} process_character(text.slice!(0, 1), text, pos) until text.empty? end end #---------------------# #---| WINDOW_GAMEINFO |----------------------------------------------------- #---------------------# class Window_GameInfo < Window_Base include Check_Theme def initialize super(0, 0, Graphics.width, fitting_height(1)) self.opacity = 0 refresh end def standard_padding return 6 end def refresh contents.clear self.contents.font.name = mtheme::FONT self.contents.font.size = mtheme::FONT_SIZE draw_gld draw_location draw_playtime end def draw_gld value = $game_party.gold if mtheme::CURRENCY_ICON > 0 i = draw_icon(mtheme::CURRENCY_ICON, contents.width / 4 - 43, -1, true) draw_currency_value(value,i,tx+4,ty,contents.width / 4 - 45) else draw_currency_value(value,Vocab::currency_unit,tx+4,ty,contents.width / 4 - 18) end end def tx mtheme::INFO_XY[0] end def ty mtheme::INFO_XY[1] end def draw_location change_color(mtheme::GAME_INFO_TXT_COLOR) draw_text(tx,ty,Graphics.width,line_height,$game_map.display_name,1) end def draw_playtime draw_text(tx,ty,Graphics.width - 20,line_height,time_text,2) end def time_text sprintf("%02d:%02d:%02d", (Graphics.frame_count / 60**2) / 60, Graphics.frame_count / 60**2 % 60, Graphics.frame_count / 60 % 60) end def draw_currency_value(value, unit, x, y, width) cx = text_size(unit).width change_color(mtheme::GAME_INFO_TXT_COLOR) draw_text(x, y, width - cx - 2, line_height, value, 2) change_color(system_color) draw_text(x, y, width, line_height, unit, 2) end def open refresh super end end #-----------------# #---| WINDOW_BASE |--------------------------------------------------------- #-----------------# class Window_Base < Window include Check_Theme alias galv_gmenu_engine_wb_initialize initialize def initialize(x, y, width, height) galv_gmenu_engine_wb_initialize(x, y, width, height) if $game_temp.themed_scene self.windowskin = Cache.gmenu("Windowskin",$game_system.menu_theme) rescue Cache.system("Window") set_theme_tone end end alias galv_gmenu_engine_wb_system_color system_color def system_color if $game_temp.themed_scene mtheme::STAT_COLOR else galv_gmenu_engine_wb_system_color end end alias galv_gmenu_engine_wb_gauge_back_color gauge_back_color def gauge_back_color if $game_temp.themed_scene mtheme::GAUGEB_COLOR else galv_gmenu_engine_wb_gauge_back_color end end def set_theme_tone a,b,c,d = mtheme::WINDOW_TONE self.tone.set(a,b,c,d) end alias galv_gmenu_engine_wb_update_tone update_tone def update_tone if $game_temp.themed_scene set_theme_tone else galv_gmenu_engine_wb_update_tone end end def draw_back_graphics(ind,height,width,enabled = true) if enabled bitmap = Cache.gmenu("ActorBackground",$game_system.menu_theme) else bitmap = Cache.gmenu("ActorBackgroundDisabled",$game_system.menu_theme) end rect = Rect.new(1,0,width - 2,bitmap.height + 2) y = (rect.y + height) * ind - (bitmap.height - height) - 2 contents.blt(rect.x, y, bitmap, rect, 255) bitmap.dispose end def draw_gsimple_status(actor, x, y, height) contents.font.name = mtheme::FONT contents.font.size = mtheme::FONT_SIZE draw_actor_name(actor, x, y + height - 30) draw_glevel(actor, x, y + height - 30 - line_height * 1) draw_gicons(actor, x - 108, y + line_height * 2 + 3) draw_gclass(actor, x, y + height - 30) contents.font.size = 20 contents.font.name = mtheme::GAUGE_FONT w = contents.width - 260 h = (height - 80) / 2 draw_ghp(actor, x + 140, y + h / 2 , w) draw_gmp(actor, x + 140, y + line_height - 4 + h,w) if actor.preserve_tp? && GMENU::SHOW_TP draw_gtp(actor, x + 75, y + line_height - 4 + h,40) end draw_gxp(actor, x + 6, y + height - 23, contents.width - 120) end def draw_gtp(actor, x, y, width = 124) draw_gauge(x, y, width, actor.tp_rate,mtheme::TP_COLOR1,mtheme::TP_COLOR1) change_color(system_color) draw_text(x - 30, y + 7, 30, line_height, Vocab::tp_a,2) change_color(tp_color(actor)) draw_text(x + width - 42, y + 3, 42, line_height, actor.tp.to_i, 2) end def draw_gxp(actor,x,y,width = 124) draw_xpgauge(x, y, width, actor.xp_rate, mtheme::XP_COLOR1, mtheme::XP_COLOR2) end def draw_xpgauge(x, y, width, rate, color1, color2) fill_w = (width * rate).to_i gauge_y = y + line_height - 8 contents.fill_rect(x, gauge_y, width, 4, gauge_back_color) contents.gradient_fill_rect(x, gauge_y, fill_w, 4, color1, color2) end def draw_ghp(actor, x, y, width = 124) draw_gauge(x, y, width, actor.hp_rate, mtheme::HP_COLOR1, mtheme::HP_COLOR2) change_color(system_color) draw_text(x - 30, y + 7, 30, line_height, Vocab::hp_a,2) draw_current_and_max_values(x, y + 3, width, actor.hp, actor.mhp, hp_color(actor), normal_color) end def draw_gmp(actor, x, y, width = 124) draw_gauge(x, y, width, actor.mp_rate, mtheme::MP_COLOR1, mtheme::MP_COLOR2) change_color(system_color) draw_text(x - 30, y + 7, 30, line_height, Vocab::mp_a,2) draw_current_and_max_values(x, y + 3, width, actor.mp, actor.mmp, mp_color(actor), normal_color) end def draw_gicons(actor, x, y, width = 96) icons = (actor.state_icons + actor.buff_icons)[0, width / 24] icons.each_with_index {|n, i| draw_icon(n, x, y - 16 * i) } end def draw_gface(face_name, face_index, x, y, height, enabled = true) bitmap = Cache.face(face_name) h = [height,96].min - 1 y_offset = GMENU::ACTORS_SHOWN > 4 ? 1.25 : 1 h2 = 96 - h * y_offset rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96 + h2, 96, h) contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha) bitmap.dispose end def draw_glevel(actor, x, y) wid = Graphics.width - 300 change_color(system_color) draw_text(x, y, wid, line_height, Vocab::level_a + " " + actor.level.to_s, 0) end def draw_gclass(actor, x, y) change_color(normal_color) draw_text(x, y, Graphics.width - 290, line_height, actor.class.name,2) end end # Window_Base < Window #-----------------# #---| SCENEMANAGER |--------------------------------------------------------- #-----------------# module SceneManager class << self alias gmenu_engine_sm_call call end def self.call(scene_class) if scene_class.is_a?(Symbol) @stack.push(@scene) @scene = Kernel.const_get(scene_class).new else gmenu_engine_sm_call(scene_class) end end def self.themed_scene array = ["Scene_Menu"] + GMENU::SCENE_THEMES return true if array.include?(@scene.name) return false end end # SceneManager class Scene_MenuBase < Scene_Base include Check_Theme alias gmenu_engine_sb_start start def start gmenu_engine_sb_start if SceneManager.themed_scene $game_temp.themed_scene = true create_theme_backgrounds end end def create_theme_backgrounds create_background1 create_themebg2 end def create_background1 @background1 = Plane.new @background1.bitmap = Cache.gmenu(name + "_Background",$game_system.menu_theme) rescue Cache.gmenu("Background",$game_system.menu_theme) @background1.opacity = mtheme::BACK1_OPACITY @background1.z = -1 @background_sprite.z = -2 end def create_themebg2 @themebg2 = Sprite.new if !SceneManager.scene_is?(Scene_Menu) @themebg2.bitmap = Cache.gmenu(name + "_Background2",$game_system.menu_theme) rescue Cache.gmenu("Scene_Generic_Background2",$game_system.menu_theme) rescue nil end @themebg2.opacity = mtheme::SCENE_BACK_OPACITY if @themebg2.bitmap @themebg2.x = [(Graphics.width - @themebg2.bitmap.width) / 2,0].max end @themebg2.z = 0 end alias gmenu_engine_sb_update update def update gmenu_engine_sb_update if @background1 @background1.ox -= mtheme::BACK1_XY[0] @background1.oy -= mtheme::BACK1_XY[1] end end alias gmenu_engine_sb_terminate terminate def terminate gmenu_engine_sb_terminate $game_temp.themed_scene = false @background1.dispose if @background1 @themebg2.dispose if @themebg2 end def name if self.to_s =~ /#<(.*):/i return $1 else return "" end end end # Scene_Base #--------------------# #---| SPRITE_MENUBTN |------------------------------------------------------ #--------------------# class MenuBtn include Check_Theme def initialize(viewport,index) @index1 = index @index = 0 create_bitmap create_text create_icon end def dispose @text.dispose @icon.dispose @btn.dispose @text.bitmap.dispose @icon.bitmap.dispose @btn.bitmap.dispose end def update(index) @index = $game_temp.menuindexes[index] update_position end def menuitem GMENU::COMMAND_LIST[$game_temp.menuindexes[@index1]] end def create_bitmap if SceneManager.scene.command_window cmd_index = SceneManager.scene.command_window.index else cmd_index = 0 end @btn = Sprite.new @btn.bitmap = Cache.gmenu("MenuButton",$game_system.menu_theme) @btn.y = mtheme::MENU_Y_OFFSET + @index1 * @btn.bitmap.height @btn.x = @index1 == cmd_index ? mtheme::SLIDE_ON : mtheme::SLIDE_OFF @btn.opacity = @index1 == cmd_index ? 255 : 160 end def create_icon @icon = Sprite.new @icon.bitmap = Bitmap.new(800,800) @tempicon = Sprite.new @tempicon.bitmap = Cache.system("Iconset") icon_index = menuitem[6] rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24) @icon.bitmap.blt(mtheme::MENU_ICON_XY[0], mtheme::MENU_ICON_XY[1], @tempicon.bitmap, rect, 255) @tempicon.bitmap.dispose if @tempicon.bitmap @tempicon.dispose @icon.x = @btn.x if mtheme::SLIDE_ICON @icon.y = @btn.y @icon.z = 100 end def create_text @text = Sprite.new @text.bitmap = Bitmap.new(180,35) @text.bitmap.font.name = mtheme::MENU_FONT @text.bitmap.font.color = mtheme::MENU_TXT_COLOR @text.bitmap.font.out_color = mtheme::MENU_TXT_OUT @text.bitmap.font.size = mtheme::MENU_FONT_SIZE text = menuitem[0] @text.bitmap.draw_text(mtheme::MENU_TXT_XY[0], mtheme::MENU_TXT_XY[1],150,35, text,2) @text.x = @btn.x @text.y = @btn.y @text.opacity = 100 if menuitem[3] > 0 && !$game_switches[menuitem[3]] end def update_position if $game_temp.menuindexes[@index1] == @index @btn.opacity = 255 return if @btn.x >= mtheme::SLIDE_ON @btn.x += mtheme::SLIDE_SPEED @text.x += mtheme::SLIDE_SPEED @icon.x += mtheme::SLIDE_SPEED if mtheme::SLIDE_ICON else @btn.opacity = 160 return if @btn.x <= mtheme::SLIDE_OFF @btn.x -= mtheme::SLIDE_SPEED @text.x -= mtheme::SLIDE_SPEED @icon.x -= mtheme::SLIDE_SPEED if mtheme::SLIDE_ICON end end end # Sprite_MenuBtn < Sprite_Base
Hey Galv, another awesome script. I need some help with it this time, when I open the menu in my game I got this error msj:
” Script ‘Galv – Custom Menu’ line: 1024:NoMethorError ocurred.
undefinied method
I go to see that line of code and find this :
text = GMENU::COMMAND_LIST[@index1][0]
Wich makes me think of an incompatibility issue with the scripts I use that modify the menu, this scripts are:
– Galv Orb Shards
– Modern Algebra Quest Journal
I tryied to configure the scenes of those 2 scripts like this:
[“Orb Shards”,:cmd, :Scene_Shards, 0, 0, “View or equip your magic shards”,3248]
And I had no luck at all, I really like this script so, what am I doing wrong? Thanks in advance :D
I thought I stopped that happening in Shards script. What you need to do is set those scripts to not display menu items and then add them manually:
[“Quests”, :cmd, :Scene_Quest, 0, 0, “View quest log.”,270],
Works perfect now! This gives games a lot more of customization and makes them look cooler, kudos to you (: ,
my only complain can be that lag issue very, I haven’t a very speedy pc, but it is not too slow either, and it takes like 5 – 7 seconds to open the menu, when I open something like Formation, it opens the scene quickly, but when going back to the Main Menu it takes again another 5 – 7 seconds, is this a problem for every pc ? Thank you very much for all of your scripts!
I downloaded your demo galv..
your exe contains a heur.advml.c virus can u plz remove it.
I’ve double checked with scans of my own and 1/58 virus scanners provided the false positive, the rest were clean.
Virus scanning software can give false positives and I cannot fix your software if that is the case. I advise researching these and if you are unsure of a download from somewhere, don’t download the file.
That’s a problem for older PC’s and a helpful script from Killozapit should fix it. (it is included in the latest demo)
Brilliant! Thank you very much :D
I don’t know if it is correct to ask you, but since I started using KilloZapit amazing cache script, I get this error sometimes at line 237:
disposed bitmap
I tryied playing with the settings on the script but had no luck at all :/
When exactly does the error happen? I might need to see it happening in order to help.
change it to this
BITMAP_MAX_AGE = nil
It happens sometimes when I enter a map with a picture showing sun beams, and some other very random times.
Sorry, not sure why that would be happening. When I get some time I will try to replicate it and see if I can work it out. by picture do you mean one that was made with the “Show Picture” event command?
Yeah, a picture that is used normally to give a more “realistic” atmosphere to the map. Well I can wait, take your time, thank you very much for your help.
Hello sir !
Awesome script, as usual. I just had one question. I already removed some things from the menu, such as lvl, hp or Skills, Equip and Formation by adding a bunch of # in the default scripts. Will this Menu Engine make them reappear, and if yes, how do I remove them again ?
I know I could figure out all of this by myself but my computer crashed and I can’t download Ace on my iPad, so…
Anyway, thank you again for this wonderful script ! Great job ^^
PS : I’m French, so sorry for grammar or spelling mistakes ><
I believe you will have to change that again, yes, as this script creates new ones for the main menu screen. Sorry, I don’t have time to personalize scripts for everyone, you will have to work it out
I wasn’t requesting a personalized script, don’t worry. I am sure I will eventually find a way to do all this stuff… At least I hope so.
Thank you for answering so quickly !
Hello, I got a problem with the script :
When I want to open the menu, i got this message : “Script Scene_Menu l.21 wrong number of arguments (0 of 2)”
What can I do, please ?
1. Make sure you put the script below Materials and above Main
2. Make sure you started a new game in your test play to test
3.You can check for compatibility. Make sure no other scripts are conflicting (copy your project and take scripts out one at a time.
Love your menu script, any insight on how to get it working with Yanfly’s Class system?
haven’t tried the scripts together but can’t think of why they wouldn’t work together. What does it do?
Hello Galv, like “Mojo”, i’m still figuring out how to bend those two scripts toghether.
The problem is that i can’t find the command to call the Class System.
I tryed:
:Scene_Class_System
:Scene_class
:Scene_Class
:class
But none of them worked.
I’ll leave the link to the script. Thanks in advance.
Any way to make this compatible with Yanfly’s Party System and System Options?
Did you try putting his scripts under this one and then there is a list in the settings you can make it work with those scenes.
I saw the settings, but I don’t what’s the name of :scene for those two. Try everything like Scene_Options, Scene_Party but no luck.
Scene_System
Scene_Party
I just tested both and they are compatible, no problems.
Works fine, strange, I’m sure it doesn’t work the first time. Thanks :D
Thanks for the themes! I have a question, is there a way it shows the description of the character instead of the hp, mp bars?
No, sorry – it’s not set up to do that. You’d have to modify the script itself.
I love the script, but there’s one thing I can’t figure out. I’m using a custom Iconset, and although I can change the menu icon for things like ‘Save’ and ‘Items’, but I can’t find anywhere to change the Icon next to the amount of Gold the party has. At the moment its some green sword that looks like a light sabre… :/
Any ideas?
It’s a complex script, please read the whole thing. You will find it in the theme setup
CURRENCY_ICON
Unbelievable…. I spent ages looking for that and it was so obvious.
Thanks for the quick reply!
I need some help with it this time, when I open the menu in my game I got this error msj:
Script ‘Galv’s Menu Themes Engine’ line 1003: NoMethodError occurred.
undefined method `[]’ for nil:NilClass
https://galvs-scripts.com/errors-using-scripts/
Hi Galv hope you are well i am creating a kickstarter project and i wonderd if i can use this and ctredit you in the credits? Thanks regards John
Hi John, please PM me on rpgmakerweb.com or rpgmakervxace.net to discuss :)
Thanks
Is there any way to remove the EXP gauge?
remove code from line 814 (which will look like below:)
draw_gxp(actor, x + 6, y + height – 23, contents.width – 120)
Then you’ll have to modify the graphic to remove the text ‘EXP’
Okay thanks a ton. One more thing, After I started a new game it loaded the map but as soon as everything appeared I got this error. Script ‘Game_Interpreter’ line 1411: NoMethod Error occured undefeined method ‘global_icon_visibility’ for #. How can I fix this?
global_icon_visibility isn’t a method from this script. It sounds like you are using that in a script call and do not have the script that recognises it installed.
Do you need a screenshot of the error? If so, how can I get it to you?
Ok I feel dumb it is from an old script I removed but I never had this pop up until I installed your script. Thanks btw this script is really nice and fits into my game perfectly. I just need to change the menu graphics some.
Hi, an awesome menu! But I would like to know how to make five characters on the screen as shown in the example image. And if possible six.
change the number in the settings at:
ACTORS_SHOWN = 4
to 6
How do I disable animated background in the menu because it takes a while to access it if it is animated
Being animated isn’t the cause of how long it takes to access. But please read the script instructions…
The Cache script in the demo is a possible solution to use for the loading time.
Hi, thanks for this wonderful script!
I was just wondering if there was a way to carry over your help window style into the sub menus? Copying and pasting the data doesn’t seem to work. Sorry for the dumb questions, I’d just like to keep the other menus looking as good as the main menu you created!
I didn’t make the style of the help menu transfer over, unfortunately. That would have been a great idea, though! Maybe one day when I am not busy I can add that
No problem! Thanks for the fast response. :)
Hi.I got a line 890 name error occurred when i try to use sphere grid script on the menu.
Thanks for the script.
I don’t know what sphere grid is. If you let me know when the error occurs as well I might be able to see why and tell you how to fix.
Script ‘Galvβs Menu Themes Engine’ line 892:NameError occured.
uninitialized constant Kernel::Scene_sphere_grid
This is the message i get when i try to open sphere grid from the menu.I use Crystal engine Sphere grid script.
Sounds like you are using the incorrect name. You need to find the exact name of the scene.
I tried some other names, the script does not seem to recognize sphere_grid from the menu.But a script call still works to open the sphere grid.
I will use that alternative.Farewell for now.
Hey Galv.
Since the Orb Shards Script Doesn’t Show up in the menu, i tried to Activate it trough an Common Event in the Menu
I’t Worked But When i leave The Orb Menu i don’t return to the Menu, instead i go back to the Map.
After a while it becomes realy annoying so………….
Can You Help Me ?
You need to add it to the menu themes command list code in order for it to show up. Try this:
[“Shards”, :sel, :Scene_Shards, 0, 0, “View a hero’s magic shards.”,112],
i’l Try it and then i tell you if it workrd
Tanks
i’t Worked, Guessed the problem was :cmd instead of :sel
LOL Silly
Tanks
I have a mission system written in my previous menu, but i don’t know how can i combine that with your menu.
Can you teach me? thankyou very much
**************************************************************************************************************************************
class Scene_Menu < Scene_MenuBase
alias yima_create_command_window create_command_window
def create_command_window
yima_create_command_window
@command_window.set_handler(:task, method(:command_task))#δ»»εη³»η΅±
end
def command_task
SceneManager.call(Scene_Task)#εΌε«δ»»εη³»η΅±δ»ι’
end
end
class Window_MenuCommand < Window_Command
alias yima_add_main_commands add_main_commands
def add_main_commands
yima_add_main_commands
add_command("\\I[371]δ»»εη³»η΅±", :task, main_commands_enabled)#\\I[371]ηι¨εζ―ι εζ什ιΈι ε δΈεζ¨θ ³ζ¬
end
end
Remove that part of the script and add the command in the Menu Theme Engine script in the ‘MENU – COMMAND SETUP’
[“Tasks”, :cmd, :Scene_Task, 0, 0, “Description here.”,270],
WOW, YOU ARE SO great !!!! Thx for your teaching!!
Normally when you only have one member it your party and select lets say the equipment command you still have to select what party member you want to look at the equipment for even though it is obvious since there is only one party member who’s equipment you want to look at is there a way to make it that when there is only one member in the party it opens up their info without having to select them
That functionality is not in the current script, sorry
When I have the Save and Formation functions disabled they still appear lit up in the menu. Is there a way to have them darkened when not available? I can make my own altered graphics if that’s needed, I just need to know how to call them under those conditions.
There is a transparent text effect when menu is disabled. Sorry, I am not currently doing any script alterations.
How would you make the hp gauges red?
Never mind i got it.
how would i use this with Nicke Attribute System?
Sorry I don’t have time to teach people how to use other scripts
where do i download the images
Up the top of the page where there’s a clickable link that says “Demo β Version 1.6 >”
Try clicking on it
Can I make a request?
Would it be possible for you to make a compatible with Yanfly’s class system
Sorry, I am too busy for requests at this time
i know it’s rude to asking like that ,but can shards playing with this menu ?
If you mean does my shard script work with this menu, yes – you just need to add the menu command via the theme engines menu command list and not through the shard script.
I get the error of: Script ” Line 268: TypeError occurred can’t convert nil into String When trying to open my menu. any help?
If you have other scripts that add menu commands for them, disable that in their scripts and add it via the menu theme script
Hey… I have couple of errors to report to:
1) line 619: NoMethodError occurred – undefined method ‘face_name’ for nil:NilClass
– This error occurs when I try to open menu with clear game.
2) line 268: TypeError: occurred. can’t convert nil into Strong
– This happens when I try to open menu in loaded game.
Anyway to fix these?
Some tests to do:
https://galvs-scripts.com/errors-using-scripts/
Main ones in there I am guessing is – start a new test game. Do not load a test game that was saved prior to adding the script.
Any other scripts you have that add menu commands usually have settings to not add them. Only add menu command via the menu script.
I actually made it work the way that I removed each script I had and replaced them once by one… Now it is working. I guess there was some miss-match-information from my previous scripts.
Thanks anyway. *smile*
PLEASE I NEED TO KNOW : WHAT LINE I HAVE TO ERASE FOR DESACTIVE THE MAIN MENU OPTION WHEN I SELECT QUIT IN MENU
I don’t know why you are typing in allcaps… or what exactly you are trying to do :/
picking up an error when i try to run it. error on line 1003. no implicit conversion from nil to integer. idk why im getting this. but other scripts im running that may mess this up are a quest log script and a menu cursor script. any advice?
In the quest log or any other script that has an option to ‘add a menu command’, change the option to make them not add the command
Would this script be free if it was used to make a free game? and I mean one that is distributed privately?
Yeah, if you don’t plan to profit from it then go right ahead :)
Hi, i was just wondering whether it would be possible to have this work with Hime’s Junction system? I have the script, but when i open the menu, the junction option is nowhere to be seen when using Themes Engine.
You need to add the option within the menu setup of the menu theme script
Forgive me if this was mentioned somewhere and I didn’t see it, but, how do I remove the example slots in the menu?
In the script settings under MENU – COMMAND SETUP
Each line is a menu command. Remove the lines that have Example in them
Thank you so much, but one question, when in the menu, the game runs slightly sluggish, it’s no glaring issue but it
is a bit annoying, is there anything I can do to improve that? I’m using Lune’s anti lag script right now.
The cache script that is included in the demo will help with loading time. If you mean during using the menu then not really. Upgrade PC maybe? :)
I see, thank you, then. :3
Hey man, I just wanna ask you something.
Is there any way of combining the Menu Layout script with this one?
It would really help me :)
Unfortunately they aren’t compatible. I dont have time to make them, sorry :(
That’s ok :) I totally get it :D
hey I keep getting an error saying ” ‘Script Galvs_Menu_Themes’ line 1333 TypeError occurred. Can’t convert nil into String
https://galvs-scripts.com/errors-using-scripts/
First I just want to thank you for creating this awsome script it’s super easy to use and very customizable. But recently I’ve been experiencing lag when opening the menu (around 6 seconds of it) but the weird thing is I’ve been using this script for over a month and have never experienced lag with it before, would changing the size of my icon set have anything to do with it?
Yes, definitely. If you have a huge iconset I have found increasing loading time dramatically. Try to keep your iconset limited to only the ones you use so it’s as small as it can be
thanks for responding to my comment so quickly I useally have to wait for days on other forums, its a bummer I’m going to have to cut my iconset but it’s worth it if I’m able to use this awsome script. Keep up the good work.
Is there any way of rearranging the texts shown? For example, I’d like to see the Map Display Name at upper right corner of the screen, the Currency Display at the lower left corner, the Game Time below the Curency Display and next to those two is the Command Help Discription?
Not without modifying the script code unfortunately
Nevermind about this… I got it… It needed a lot of tweaking, but I found a way… I just got two more things to know. It shows that the Menu Texts (“Items”,”Equipment”, etc.) is in a Right Alignment… How do I change it to Left or Center? The other question is not as important therefore I will ask it some other time… Thank you!
Unfortunately I didn’t make an option for that and I don’t have time for requests, sorry
Hello there, I was able to remove all the stats at the status menu, but I have absolutely no idea how to insert something now. I’d like to insert a detailed text about the characters, since it’s going to be a mystery game.
Even if I can’t do it with your script, can you please help me? I searched like 90% of the internet but still haven’t found anything yet. Thanks in advance :)
Sorry, that would require custom scripting and I am too busy to do that. I recommend asking in an rpgmaker forum
I was just about to say that this reminded me of the menu from RPG Maker XP, except with facesets instead of sprites.
Hello..i really like the themes.I have some trouble..how to remove from the menu the 2 example? i am using a scrit that make the coin separated in copper,silver and gold..how to make it work? or there is some one that is compatible with your themes? thanks
This script is not new user friendly, sorry. And I do not know other scripts that would be compatible for in menu stuff with this script.
ok..i managed to remove the 2 example…but i wanted the menu layout too :( why it isn’t compatible? is a your script :( i really like it but i like the theme too :(
it isn’t compatible with your menu theme script?! :(
Hey, this may be a dumb question but what color system should I be using to customize the colors in this script? I see four values, so… cmyk?
Actually – R,G,B,opacity are the values (if I remember Ace correctly haha)
Scripe “galv menu” line 268Type error ocured.
cant convert nil into string
Some tests to do:
https://galvs-scripts.com/errors-using-scripts/
Which will lead you to the problem and then I can help further.
Scripe βgalv menuβ line 268Type error ocured.
cant convert nil into string
I tried all the things you told me to do at https://galvs-scripts.com/errors-using-scripts/ so don’t lead me there. Please.
One of the suggestions in that list of things to try was test the script in a new project.
You are saying you tested this in a new project and still get the error. Unfortunately I cannot replicate this as it works in a new project, so I cannot help. Sorry.
Hey Galv. This script is awesome but I need some help. I installed Menu Theme Engine and it works. I added CSCA Quest System and successfully connected it to Menu Theme Engine but it doesn’t show a background image. Is there a way to fix it?
Did you add the scene to the SCENE_THEMES list? I had a quick look at CSCA Quest script and the scene name is:
“CSCA_Scene_Quest”,
Yes, I did. It only uses the window skin. Sorry for the late response.
Sorry, I just downloaded the script you are talking about and could not get it to run without error even without other scripts. Unfortunately I don’t have time to error trap what’s going on with it.
If it’s opening for you and you really did add the string I mentioned to the SCENE_THEMES array, then the quest script might change how default backgrounds work and would take more to change it.
Dont forget to try swapping their positions in the script list.
Thanks for the help Galv. I figured it out and it works now. Sorry I bothered you.
Hi ! Thanks so much for this script !
I was still wondering how to remove the health and power bar ? (from the menu)
There’s no option for that in this script – I recommend asking in a forum for someone to write a script to do that
Oh okay, thanks for the quick response ! :)
Hello Galv, thanks for the script.
I’m using ‘Learn Skill Engine” from Yanfly and when I into in ‘Learn Skills'(Learn Skill is inside Skill) reappears the basic ace menu interface.
I try this:
[“Learn”, :cmd, :Scene_learn_skills, 0, 0, “Change your party.”,121],
But doesn’t work.
You need to look in the script for the scene name. It’s not Scene_learn_skills. Try using:
:Scene_LearnSkill
and you probably want to use :sel instead of :cmd to select the player.
Great, it works! Thank you very much!
Hey Galv, this is an amazing script! Thank you for taking the time to create it. :)
Are there any plans on converting this into an MV Plug-in? This does exactly what I’ve been looking for (being able to change the theme through a switch/command in-game).
I haven’t thought about doing this one in MV, but maybe one day.
Hi, just wanted to share op’s request, I would be very interested in this kind of menu theme in MV. I’m sure there are others, if you find a moment to appease :)
One day I will. Currently I cannot spend enough time to get everything I want done, but I have a patreon for those who wish to support me, which would allow me to do more of the huge projects I want to do like the MV version of this.
when ever i try to open my menu it just tells me that im missing a file called graphics/Gmenu/theme_default/background please help >.<
You need to download the demo and copy the file over to your project. This is not an easy script to use, study the demo and read the documentation to learn.
thanks its all working now :3
Hi Galv! I need this script to change the graphic based on the actor’s class, does the Menu Layout has a setting for this? Or how can i acchieve this?
No, sorry – the menu script takes from the default actor’s face.
I can’t get this to work with Vlue’s Appraisal Shop. Is there an easy fix? I’m not a scripter by any means. The appraisal shop can be found here, maybe someone way smarter than me can help me out: https://pastebin.com/raw/PGxAm55F
how would i change the examples in your script to working buttons that do more than just give the player money or things like that? can you give me a demo on other things that these can be used as?
for example, if i wanted to use one of the examples to call for my vehicle? say i wanted to put in an option that says ” call airship” or “Call Car to location”?
I recommend asking in a forum on how to do those things using a common event.
hello galv ! first of all, a huge thank you for all your hard work ! ππ»π as i’m sure you know, you’re seriously the backbone of the rpgmaker community.
and secondly, unfortunately, the download link doesn’t seem to be working ! i haven’t tried out the script yet, since i can’t access the graphics first through the download link. do you mind sending an external link to the graphics somewhere else ? thank you so so much π
Thanks for letting me know, I fixed an issue with the download link – should work now.