Actors' Custom Windowskins VX + ACE
#1
Actors' Custom Windowskins
VX + ACE

by Kyonides

Introduction

Thinking Do you need to change the look of all of your windows based on who's the current Deedlit party leader?
Then you definitely have to use this scriptlet for sure! Winking

Setup
  • This scriptlet should be placed among the very first scripts in the Materials section.
  • Go to the WinSkin module and add a new line per actor's ID like this:

Code:
SKINS[2] = "My Skin 2"

If you forgot to add a custom windowskin for a given actor, it will use VX's or ACE's skin by default.

VX Script

Code:
# * Actors' Custom Windowskins VX * #
#   Scripter : Kyonides
#   2025-04-15

# All Windowskins Need to be Placed in the Graphics/System directory!

module WinSkin
  SKINS = {} # <<== Leave it Alone!
  # Default Windowskin or Skin for Unlisted Actors
  SKINS.default = "Window"
  # Custom Windowskins
  SKINS[1] = "My Skin 1"
  SKINS[2] = "My Skin 2"
end

class Game_System
  attr_accessor :start_game
end

class Game_Party
  alias :kyon_winskin_gm_pty_stp_start_mbrs :setup_starting_members
  def setup_starting_members
    kyon_winskin_gm_pty_stp_start_mbrs
    $game_system.start_game = true
  end

  def leader_id
    @actors[0]
  end
end

class Window_Base
  alias :kyon_winskin_win_bs_up :update
  def initialize(x, y, width, height)
    super()
    update_windowskin
    place(x, y, width, height)
    default_settings
    create_contents
    @opening = @closing = false
  end

  def place(x, y, w, h)
    self.x = x
    self.y = y
    self.width = w
    self.height = h
  end

  def default_settings
    self.z = 100
    self.back_opacity = 200
    self.openness = 255
  end

  def update
    kyon_winskin_win_bs_up
    update_windowskin
  end

  def update_windowskin
    if $game_system.start_game
      set_custom_windowskin
    else
      set_default_windowskin
    end
  end

  def set_custom_windowskin
    return if $game_party.leader_id == @actor_id
    @actor_id = $game_party.leader_id
    filename = WinSkin::SKINS[@actor_id]
    self.windowskin = Cache.system(filename)
  end

  def set_default_windowskin
    return if @windowskin_name
    @windowskin_name = "Window"
    self.windowskin = Cache.system(@windowskin_name)
  end
end

VX ACE Script

Code:
# * Actors' Custom Windowskins ACE * #
#   Scripter : Kyonides
#   2025-04-15

# All Windowskins Need to be Placed in the Graphics/System directory!

module WinSkin
  SKINS = {} # <<== Leave it Alone!
  # Default Windowskin or Skin for Unlisted Actors
  SKINS.default = "Window"
  # Custom Windowskins
  SKINS[1] = "My Skin 1"
  SKINS[2] = "My Skin 2"
end

class Game_System
  attr_accessor :start_game
end

class Game_Party
  alias :kyon_winskin_gm_pty_stp_start_mbrs :setup_starting_members
  def setup_starting_members
    kyon_winskin_gm_pty_stp_start_mbrs
    $game_system.start_game = true
  end

  def leader_id
    @actors[0]
  end
end

class Window_Base
  alias :kyon_winskin_win_bs_up :update
  def initialize(x, y, width, height)
    super
    update_windowskin
    update_padding
    update_tone
    create_contents
    @opening = @closing = false
  end

  def update
    kyon_winskin_win_bs_up
    update_windowskin
  end

  def update_windowskin
    if $game_system.start_game
      set_custom_windowskin
    else
      set_default_windowskin
    end
  end

  def set_custom_windowskin
    return if $game_party.leader_id == @actor_id
    @actor_id = $game_party.leader_id
    filename = WinSkin::SKINS[@actor_id]
    self.windowskin = Cache.system(filename)
  end

  def set_default_windowskin
    return if @windowskin_name
    @windowskin_name = "Window"
    self.windowskin = Cache.system(@windowskin_name)
  end
end

Terms & Conditions

Free as in Beer beer.
Include me in your game credits.
That's it! Tongue sticking out
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9

Maranatha!

The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.

[Image: SP1-Scripter.png]
[Image: SP1-Writer.png]
[Image: SP1-Poet.png]
[Image: SP1-PixelArtist.png]
[Image: SP1-Reporter.png]

My Original Stories (available in English and Spanish)

List of Compiled Binary Executables I have published...
HiddenChest & Roole

Give me a free copy of your completed game if you include at least 3 of my scripts! Laughing + Tongue sticking out

Just some scripts I've already published on the board...
KyoGemBoost XP VX & ACE, RandomEnkounters XP, KSkillShop XP, Kolloseum States XP, KEvents XP, KScenario XP & Gosu, KyoPrizeShop XP Mangostan, Kuests XP, KyoDiscounts XP VX, ACE & MV, KChest XP VX & ACE 2016, KTelePort XP, KSkillMax XP & VX & ACE, Gem Roulette XP VX & VX Ace, KRespawnPoint XP, VX & VX Ace, GiveAway XP VX & ACE, Klearance XP VX & ACE, KUnits XP VX, ACE & Gosu 2017, KLevel XP, KRumors XP & ACE, KMonsterPals XP VX & ACE, KStatsRefill XP VX & ACE, KLotto XP VX & ACE, KItemDesc XP & VX, KPocket XP & VX, OpenChest XP VX & ACE
Reply
#2
Maintenance Update

After I had published the ACE version, I noticed it could easily be ported to VX and it didn't take long before that finally happened! Shocked
Then while working on the XP port I noticed something important: what would occur if you were just trying to load the game for the very first time? Thinking
Oops! Ooops! It would certainly crash! Bug 
That's why I had to revisit the scripts and add a mechanism to let the game set the title scene's default windowkin if no party has ever been created. Grinning
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9

Maranatha!

The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.

[Image: SP1-Scripter.png]
[Image: SP1-Writer.png]
[Image: SP1-Poet.png]
[Image: SP1-PixelArtist.png]
[Image: SP1-Reporter.png]

My Original Stories (available in English and Spanish)

List of Compiled Binary Executables I have published...
HiddenChest & Roole

Give me a free copy of your completed game if you include at least 3 of my scripts! Laughing + Tongue sticking out

Just some scripts I've already published on the board...
KyoGemBoost XP VX & ACE, RandomEnkounters XP, KSkillShop XP, Kolloseum States XP, KEvents XP, KScenario XP & Gosu, KyoPrizeShop XP Mangostan, Kuests XP, KyoDiscounts XP VX, ACE & MV, KChest XP VX & ACE 2016, KTelePort XP, KSkillMax XP & VX & ACE, Gem Roulette XP VX & VX Ace, KRespawnPoint XP, VX & VX Ace, GiveAway XP VX & ACE, Klearance XP VX & ACE, KUnits XP VX, ACE & Gosu 2017, KLevel XP, KRumors XP & ACE, KMonsterPals XP VX & ACE, KStatsRefill XP VX & ACE, KLotto XP VX & ACE, KItemDesc XP & VX, KPocket XP & VX, OpenChest XP VX & ACE
Reply
#3
Another Maintenance Update

This release includes 2 mandatory Bug bug fixes. The first bug would have caused your game to crash immediately because of the very first menu not being able to properly calculate the width or height of that first window. The other one would try to apply a custom windowskin even before you have created a single party. This was provoked by VX's and VX ACE's default behavior of creating ALL game objects, including the party way before you can even start a new game or load a saved file. Fortunately, those nasty Bug bugs have been smashed to smithereens already! Two Thumbs Up!
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9

Maranatha!

The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.

[Image: SP1-Scripter.png]
[Image: SP1-Writer.png]
[Image: SP1-Poet.png]
[Image: SP1-PixelArtist.png]
[Image: SP1-Reporter.png]

My Original Stories (available in English and Spanish)

List of Compiled Binary Executables I have published...
HiddenChest & Roole

Give me a free copy of your completed game if you include at least 3 of my scripts! Laughing + Tongue sticking out

Just some scripts I've already published on the board...
KyoGemBoost XP VX & ACE, RandomEnkounters XP, KSkillShop XP, Kolloseum States XP, KEvents XP, KScenario XP & Gosu, KyoPrizeShop XP Mangostan, Kuests XP, KyoDiscounts XP VX, ACE & MV, KChest XP VX & ACE 2016, KTelePort XP, KSkillMax XP & VX & ACE, Gem Roulette XP VX & VX Ace, KRespawnPoint XP, VX & VX Ace, GiveAway XP VX & ACE, Klearance XP VX & ACE, KUnits XP VX, ACE & Gosu 2017, KLevel XP, KRumors XP & ACE, KMonsterPals XP VX & ACE, KStatsRefill XP VX & ACE, KLotto XP VX & ACE, KItemDesc XP & VX, KPocket XP & VX, OpenChest XP VX & ACE
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
   Saving Temporary Actors Data kyonides 0 435 09-03-2024, 05:59 AM
Last Post: kyonides
   Legacy's 1-Man Custom Menu System Legacy 2 8,265 11-13-2012, 04:53 AM
Last Post: Legacy
   Victor Engine - Custom Hit Formula Victor Sant 0 5,251 08-18-2012, 06:05 AM
Last Post: Victor Sant
   Victor Engine - Custom Slip Effect Victor Sant 0 5,409 08-03-2012, 12:44 AM
Last Post: Victor Sant
   Victor Engine - Custom Basic Actions Victor Sant 0 5,167 01-12-2012, 03:41 AM
Last Post: Victor Sant
   Victor Engine - Custom Description Victor Sant 0 4,964 01-12-2012, 03:32 AM
Last Post: Victor Sant
   Victor Engine - Custom Vehicles Victor Sant 0 5,385 12-30-2011, 06:31 AM
Last Post: Victor Sant
   Victor Engine - Custom Collapse Victor Sant 0 6,151 12-28-2011, 08:37 AM
Last Post: Victor Sant
   Victor Engine - Actors Battlers Victor Sant 0 6,423 12-21-2011, 07:50 AM
Last Post: Victor Sant
   L's Simple Custom Menu #2 VX ver Landarma 0 6,367 03-03-2009, 03:54 AM
Last Post: Landarma



Users browsing this thread: 1 Guest(s)