| 
 Command Color VX + ACE - kyonides -  06-16-2025
 
 
 Command Color VX + ACE 
 by Kyonides Did you ever want to change your command window's currently selected command a little bit?
  Now you can do it!
  This scriptlet lets you alter its color!
  
 Just configure the SELECT_COLOR constant accordingly and that's it!
   
 VX Script
 
 Code: # * Command Color VX * ##   Scripter : Kyonides
 #   v0.5.0 - 2025-06-15
 
 # The SELECT_COLOR Constant lets you configure your custom color following
 # the usual (R,G,B) or (R,G,B,A) color format.
 
 class Window_Command
 SELECT_COLOR = Color.new(255, 255, 0)
 DISABLED_ALPHA = 100
 alias :kyon_cmd_clr_win_comm_init :initialize
 alias :kyon_cmd_clr_win_comm_set_index :index=
 alias :kyon_cmd_clr_win_comm_draw_item :draw_item
 alias :kyon_cmd_clr_win_comm_up :update
 def initialize(width, commands)
 @disabled = []
 @last_pos = -1
 kyon_cmd_clr_win_comm_init(width, commands)
 end
 
 def disable_item(index)
 @disabled << index
 @disabled = @disabled.sort.uniq
 end
 
 def draw_item(index, enabled = true)
 disable_item(index) unless enabled
 kyon_cmd_clr_win_comm_draw_item(index, enabled)
 end
 
 def draw_item_color(n, current)
 rect = item_rect(n)
 rect.x += 4
 rect.width -= 8
 b = self.contents
 b.clear_rect(rect)
 new_color = current ? SELECT_COLOR.dup : normal_color.dup
 new_color.alpha = DISABLED_ALPHA if @disabled.include?(n)
 b.font.color = new_color
 b.draw_text(rect, @commands[n])
 end
 
 def index=(new_index)
 return if @index == new_index
 if @index >= 0
 draw_item_color(@index, nil)
 @last_pos = @index
 end
 kyon_cmd_clr_win_comm_set_index(new_index)
 draw_item_color(@index, true)
 end
 
 def update_command
 return if @last_pos == @index
 draw_item_color(@last_pos, nil) if @last_pos >= 0
 draw_item_color(@index, true)
 @last_pos = @index
 end
 
 def update
 kyon_cmd_clr_win_comm_up
 update_command
 end
 end
VX ACE Script
 
 Code: # * Command Color ACE * ##   Scripter : Kyonides
 #   v0.5.1 - 2025-09-10
 
 # The SELECT_COLOR Constant lets you configure your custom color following
 # the usual (R,G,B) or (R,G,B,A) color format.
 
 class Window_Command
 SELECT_COLOR = Color.new(255, 255, 0)
 def no_commands?
 @list.empty?
 end
 
 def clear_old_item(n)
 return if @index == n
 clear_item(@index)
 draw_item(@index)
 end
 
 def draw_new_item(index)
 change_color(SELECT_COLOR, command_enabled?(index))
 draw_text(item_rect_for_text(index), command_name(index), alignment)
 end
 
 def select(n)
 if no_commands?
 self.index = n if n
 return
 end
 clear_old_item(n)
 self.index = n if n
 draw_new_item(@index) if @index == n
 end
 end
Terms & Use
 
 Free as in
  beer. Crediting me as the author is optional.
  That's it!
   
 
 RE: Command Color VX + ACE - kyonides -  09-10-2025
 
 
 Maintenance Service for VX ACE A couple of days ago, I had found a strange
  bug in the VX ACE port that prevented the script from displaying any window on the map. This caused the game to crash. 
 It took me a while to figure out the best and simplest way to deal with this issue. Once I learned that the default Window_Command script updates the index even before the window has been assigned any commands, I decided to block my script's feature from running if that command list were empty.
 
 Now the script version 0.5.1 runs smoothly!
   
 
 
 |