Save-Point
Kuick Leader Swap XP - Printable Version

+- Save-Point (https://www.save-point.org)
+-- Forum: Material Development (https://www.save-point.org/forum-8.html)
+--- Forum: Scripts Database (https://www.save-point.org/forum-39.html)
+---- Forum: RPGMaker XP (RGSS) Engine (https://www.save-point.org/forum-116.html)
+---- Thread: Kuick Leader Swap XP (/thread-12791.html)



Kuick Leader Swap XP - kyonides - 09-07-2025

Kuick Leader Swap XP

by Kyonides
Introduction

Once upon a gaming time, some forumer, who might have recently escaped from Minecraft for unknown reasons, wanted to easily swap the current party leader, not just by pressing the L or R button but also via direct assignment.

Happy with a sweat Well, we don't know how accurate this legend might be, but this is the final outcome of that ancient story.

Script Calls

Set a Temporary Leader:
- RememberLeaderIndex? stands for a boolean value: true or false.
- This new leader becomes permanent if RememberLeaderIndex? is false.
Code:
$game_party.temp_leader(PartyIndex, RememberLeaderIndex?)

Restore the Previous Leader (If Any):
Code:
$game_party.restore_leader

Set a Leader by Actor's ID:
Code:
$game_party.set_leader_by_id(ActorID)

L & R Button-Related Script Calls

Prevent the player from Swapping the current Leader:
Code:
$game_party.keep_leader!

Reenable the player to Swap the current Leader:
Code:
$game_party.swap_leader!


Check Current Keep Leader State - Returns either true or false:
Code:
$game_party.keep_leader


The Script

Code:
# * Kuick Leader Swap XP * #
#   Scripter : Kyonides
#   v1.1.0 - 2025-09-08

# * Script Calls * #

# - Set a Temporary Leader!
#   RememberLeaderIndex? stands for a boolean value: true or false.
#   This new leader becomes permanent if RememberLeaderIndex? is false.
# $game_party.temp_leader(PartyIndex, RememberLeaderIndex?)

# - Restore the Previous Leader! (If Any!)
# $game_party.restore_leader

# - Set a Leader by Actor's ID!
# $game_party.set_leader_by_id(ActorID)

# * L & R Button-Related Script Calls * #
# - Prevent the player from Swapping the current Leader:
# $game_party.keep_leader!

# - Reenable the player to Swap the current Leader:
# $game_party.swap_leader!

# - Check Current Keep Leader State:
# $game_party.keep_leader (Returns: true or false)

class Game_Party
  def leader
    @actors[0]
  end

  def keep_leader!
    @keep_leader = true
  end

  def swap_leader!
    @keep_leader = false
  end

  def change_leader(n)
    return if @keep_leader
    if n < 0
      @actors.unshift @actors.pop
    else
      @actors << @actors.shift
    end
  end

  def set_leader_by_id(actor_id)
    actor = $game_actors[actor_id]
    n = @actors.index(actor)
    swap_leader(n) if n and n != 0
  end

  def temp_leader(n, remember)
    @temp_leader_index = n if remember
    swap_leader(n)
  end

  def restore_leader
    swap_leader(@temp_leader_index) if @temp_leader_index
    @temp_leader_index = nil
  end
  private
  def swap_leader(n)
    @actors[0], @actors[n] = @actors[n], @actors[0]
    $game_player.refresh
  end
  attr_accessor :keep_leader
end

class Game_Player
  alias :kyon_kuick_leader_swap_gm_plyr_up :update
  def update
    kyon_kuick_leader_swap_gm_plyr_up
    if Input.trigger?(Input::L)
      $game_party.change_leader(-1)
      refresh
      return
    elsif Input.trigger?(Input::R)
      $game_party.change_leader(1)
      refresh
    end
  end
end

Terms & Conditions

Free as in Beer beer for any kind of Gamer games.
Include my nickname in your game credits.
Thank Ace_V for unwillingly inspiring me to Sculptor craft the script. (Just don't or else his PM box will get full any time soon. Confused )
That's it! Tongue sticking out


RE: Kuick Leader Swap XP - Ace_V - 09-08-2025

This really is useful and very light and easy to implement! Thanks again, kyonides! I spent the better part of a day going through all my previously-finished quest lines to implement the script call to ensure the correct character is in the lead to further enhance some cutscenes.

(I've never played Minecraft, though!)  Laughing


RE: Kuick Leader Swap XP - kyonides - 09-09-2025

Script Update

Starting from version 1.1.0, you can now make script calls that will affect the way the L & R buttons work. They will allow you to either (re-)enable or disable that feature at will. Grinning But don't worry pals! The original features remain intact and unblocked by this change. Winking


RE: Kuick Leader Swap XP - Ace_V - 09-09-2025

Nice new feature! That's very useful for scenes that rely on parallel processes (perhaps a hallway with text/effects popping up slowly as you walk through) and you need a specific leader.


RE: Kuick Leader Swap XP - kyonides - 09-09-2025

Just in case I didn't explain myself clearly enough on my previous post, I am leaving a summary here as well.

The only new feature in version 1.1.0 is the ability to disable the L & R buttons and to reenable them later on. Needing a specific leader was taken care of by the previous release, namely 1.0.2.

Grinning Rest assure that I have NOT removed any previous feature so you are free to change the leader by using any of the previous script calls. If deemed necessary.