Needing a CTB system similar to FFX.

● ARCHIVED · READ-ONLY
Started by Diretooth 14 posts View original ↗
  1. I've been looking for a standalone CTB battle system with a built-in order gauge, if possible.

    It needs to be simple to use, preferably a single script, with clear instructions on how to use it. That means, all of the script calls, note tags, and options are in their own areas, each one clearly explained as to what they do and how they do it.

    If there's anything like this, please share.
  2. You need to explain how the battle system works, and not just how you want the script to be presented.
  3. For now try Ao No Kiseki Battle System by Saba Kan, AFAIK that's the most similar system, if I'm not wrong.

    EDIT : Oh yeah I never use or download it, just looking at it(in a flash) XD so maybe sorry if that's not what you want.
  4. CTB works as such: An actor or enemy has a certain amount of agility, which influences the battle order. However, unlike other turn-based battles, when an actor's turn comes up, they act immediately when you chose what they do.

    Along with this, there are abilities that raise agility or lower it, thus allowing actors to have more or less turns, and abilities that delay attacks.

    Also, actors can be exchanged at will in battle, allowing for the player to switch up their strategy.
  5. Yami's PCTB + it's visual add on for seeing the turn order. That is simpler than Saba Kan's (which is really like Ao No Kiseki's battle system which involves lots of extras) and is more FFX like :)


    Though for the change actor part, you would need a combat change party member command script. I think yanfly has one.
  6. The thing is, that was the first thing I went to, but given every script they have is only obtainable through Dropbox, I cannot get it because of the stupid error that happens.
  7. Then probably just wait until you could get it.


    Though AFAIK, Yami's scripts are also now on Github. At the very least I'm sure some of it were. And you could always message Yami here :)


    EDIT: Look for it on the linked github, hopefully it's there


    https://github.com/suppayami/rmvxa-collection


    If not, maybe you could ask Yami for a copy.
  8. Here it is.

    The problem is that Yami PCTB is no longer supported, and I need help with it (it is not working with Yanfly Instant Cast and sometimes makes a crash) but that is something that I will open my own thread for, Adiktuzmiko knows I've been looking for a nice CTB haha.
     
    Anyway here you go inside spoiler:

    Spoiler
     
    Main Script
     #==============================================================================# # ▼ YSA Battle System: Predicted Charge Turn Battle# -- Last Updated: 2012.03.17# -- Level: Easy, Normal# -- Requires: n/a# #==============================================================================$imported = {} if $imported.nil?$imported["YSA-PCTB"] = true#==============================================================================# ▼ Updates# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# 2012.03.17 - Compatible Issue: YEA - Battle Engine Ace.# - Stand Alone fixed.# 2012.02.20 - Reduced lag a little.# 2012.02.19 - Fixed: Press Left/Right when choose action for actor.# - Script now can work alone, without YEA - Battle Engine Ace.# 2012.02.16 - Finished Script.# 2012.02.07 - Started Script.# #==============================================================================# ▼ Introduction# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# Battle Type: Predicted CTB.# #==============================================================================# ▼ Instructions# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# To install this script, open up your script editor and copy/paste this script# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.## To get this work with YEA - Ace Battle Engine, set the default battle system # for your game to be :pctb by either going to the Ace Battle Engine script and # setting DEFAULT_BATTLE_SYSTEM as :pctb or by using the following script call: # # $game_system:set_battle_system:)pctb)## -----------------------------------------------------------------------------# Skill and Item Database# -----------------------------------------------------------------------------# SPEED FIX# ~ When set SPEED FIX to a number larger than 0, battler's Speed will be reseted# by value, equal to SPEED_FIX * :speed_rate.# ~ When set SPEED FIX to a number smaller than 0, battler's Speed will be# reduced by value, equal to SPEED_FIX * :speed_rate. This Skill/Item will be# counted as a charging skill/item.## -----------------------------------------------------------------------------# Skill and Item Notetags# -----------------------------------------------------------------------------# <charge rate: x%># Change battler's speed rate when charging a skill or item.## <ctb cost: x%> or <ctb cost: x># Decide how much Speed will be reduced after an action.# If it's a percent, Battler's Speed will be reduced x percents of Max Threshold.# If it's a normal value, Battler's Speed will be reduced by x.# Default: CTB COST 100% in percent and 0 in value## <ctb change: +x%> or <ctb change: +x># <ctb change: -x%> or <ctb change: -x># Change target's Speed when use this skill/item.# If it's a percent, Battler's Speed will be increase or decrease x percents of # Max Threshold.# If it's a normal value, Battler's Speed will be increase or decrease by x.##==============================================================================# ▼ Compatibility# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that# it will run with RPG Maker VX without adjusting.# # This script is compatible with Yanfly Engine Ace - Ace Battle Engine v1.15+ # and the script must be placed under Ace Battle Engine in the script listing.# #==============================================================================#==============================================================================# ▼ Configuration#==============================================================================module YSAmodule PCTB#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-# - Mechanic Configuration -#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-CTB_MECHANIC = { # Start:dyn_threshold => true,# Threshold Offset. If Dynamic Threshold is set to false, this will be# threshold:threshold_offset => 400,# For Dynamic Threshold:threshold_min => 800,:threshold_rate => 4.0,# Ticks per turn:turn_ctr => 32,:wait_after_turn => 5, # Frames# Predict Type# Type 0: Show Battlers Order only.# Type 1: Show Battlers Order and Re-order when active battler chooses# an action.# Type 2: Show Battlers Order in X Turns (FFX Style).:predict => 2,:pre_turns => 22,} # Do not remove this.#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-# - Battler Configuration -#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-BATTLER_RULES = { # Start# Speed offset when reset, multiply with Skill/Item speed:speed_rate => 16.0,:speed_limit => 0.75, # Set to 0 to disable limit.# Initialize speed:initial => 0.10,:surprise => 0.75,:random_rate => 8.0, # Multiply with AGI.# Charging Term:charge_text => "%s is charging %s!",:charge_text_dur => 4,# Can't take action Term:cant_text => "%s cannot take an action!",:cant_text_dur => 4,:show_cant_text => true,} # Do not remove this.#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-# - Event Configuration -#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-CTB_COMMON_EVENT = { # Start# Set to 0 to disable this.:turn_update => 0, # Run common event whenever turn updates.:end_action => 0, # Run common event whenever an action finishes.} # Do not remove this.endend#==============================================================================# ▼ Editting anything past this point may potentially result in causing# computer damage, incontinence, explosion of user's head, coma, death, and/or# halitosis so edit at your own risk.#==============================================================================module YSAmodule REGEXPmodule USABLEITEMCHARGE_RATE = /<(?:CHARGE_RATE|charge rate):[ ](\d+)?([%%])>/iCTB_COST_PER = /<(?:CTB_COST|ctb cost):[ ](\d+)?([%%])>/iCTB_COST_VAL = /<(?:CTB_COST|ctb cost):[ ](\d+)?>/iCHANGE_CTB_PER = /<(?:CTB_CHANGE|ctb change):[ ]([\+\-]\d+)([%%])?>/iCHANGE_CTB_VAL = /<(?:CTB_CHANGE|ctb change):[ ]([\+\-]\d+)?>/iend # USABLEITEMend # REGEXPend # YSA#==============================================================================# ■ DataManager#==============================================================================module DataManager#--------------------------------------------------------------------------# alias method: load_database#--------------------------------------------------------------------------class <<self; alias load_database_pctb load_database; enddef self.load_databaseload_database_pctbload_notetags_pctbend#--------------------------------------------------------------------------# new method: load_notetags_pctb#--------------------------------------------------------------------------def self.load_notetags_pctbgroups = [$data_skills, $data_items]for group in groupsfor obj in groupnext if obj.nil?obj.load_notetags_pctbendendendend # DataManager#==============================================================================# ■ RPG::UsableItem#==============================================================================class RPG::UsableItem < RPG::BaseItem#--------------------------------------------------------------------------# public instance variables#--------------------------------------------------------------------------attr_accessor :charge_rateattr_accessor :ctb_costattr_accessor :ctb_cost_valattr_accessor :ctb_changeattr_accessor :ctb_change_val#--------------------------------------------------------------------------# common cache: load_notetags_pctb#--------------------------------------------------------------------------def load_notetags_pctb@charge_rate = 100@ctb_cost = 100@ctb_cost_val = 0@ctb_change = 0@ctb_change_val = 0#---self.note.split(/[\r\n]+/).each { |line|case line#---when YSA::REGEXP::USABLEITEM::CHARGE_RATE@charge_rate = $1.to_iwhen YSA::REGEXP::USABLEITEM::CTB_COST_PER@ctb_cost = $1.to_iwhen YSA::REGEXP::USABLEITEM::CTB_COST_VAL@ctb_cost_val = $1.to_iwhen YSA::REGEXP::USABLEITEM::CHANGE_CTB_PER@ctb_change = $1.to_iwhen YSA::REGEXP::USABLEITEM::CHANGE_CTB_VAL@ctb_change_val = $1.to_i#---end} # self.note.split#---@charge_rate = 100 if @charge_rate <= 0@ctb_cost = 100 if @ctb_cost > 100endend # RPG::UsableItem#==============================================================================# ■ BattleManager#==============================================================================module BattleManager#--------------------------------------------------------------------------# alias method:# - make_action_orders# - prior_command# - next_command# - in_turn?# - battle_start#--------------------------------------------------------------------------class <<selfalias pctb_make_action_orders make_action_ordersalias pctb_prior_command prior_commandalias pctb_next_command next_commandalias pctb_next_subject next_subjectalias pctb_battle_start battle_startalias pctb_input_start input_startalias pctb_turn_start turn_startend#--------------------------------------------------------------------------# battle_start#--------------------------------------------------------------------------def self.battle_startpctb_battle_startif btype?:)pctb)make_pctb_action_orders make_pctb_thresholdmake_pctb_first_speedendend#--------------------------------------------------------------------------# make_action_orders#--------------------------------------------------------------------------def self.make_action_ordersreturn if btype?:)pctb)pctb_make_action_orders unless btype?:)pctb)end#--------------------------------------------------------------------------# next_command#--------------------------------------------------------------------------def self.next_commandreturn false if btype?:)pctb)pctb_next_commandend#--------------------------------------------------------------------------# prior_command#--------------------------------------------------------------------------def self.prior_commandreturn false if btype?:)pctb)pctb_prior_commandend#--------------------------------------------------------------------------# new method: make_pctb_action_orders#--------------------------------------------------------------------------def self.make_pctb_action_orders@action_battlers = []end#--------------------------------------------------------------------------# new method: make_pctb_threshold#--------------------------------------------------------------------------def self.make_pctb_threshold@threshold = YSA::pCTB::CTB_MECHANIC[:threshold_offset]return unless YSA::pCTB::CTB_MECHANIC[:dyn_threshold]offset = 0battlers = $game_party.members + $game_troop.membersbattlers.each { |battler| offset += battler.agi}@threshold += offset * YSA::pCTB::CTB_MECHANIC[:threshold_rate]@threshold = @threshold >= YSA::pCTB::CTB_MECHANIC[:threshold_min] ? @threshold : YSA::pCTB::CTB_MECHANIC[:threshold_min]end#--------------------------------------------------------------------------# new method: make_pctb_first_speed#--------------------------------------------------------------------------def self.make_pctb_first_speedinit_value = YSA::pCTB::BATTLER_RULES[:initial] * pctb_thresholdsurprise_value = YSA::pCTB::BATTLER_RULES[:surprise] * pctb_thresholdbattlers = $game_party.members + $game_troop.membersbattlers.each { |battler|check = (battler.actor? && @preemptive) || (battler.enemy? && @surprise)battler.pctb_speed = init_valuebattler.pctb_speed = surprise_value if checkrandom = YSA::pCTB::BATTLER_RULES[:random_rate] * battler.agi + 1battler.pctb_speed += rand(random)}end#--------------------------------------------------------------------------# new method: pctb_threshold#--------------------------------------------------------------------------def self.pctb_thresholdreturn @thresholdend#--------------------------------------------------------------------------# new method: set_actor#--------------------------------------------------------------------------def self.set_actor(actor_index)@actor_index = actor_indexend#--------------------------------------------------------------------------# new method: action_list_ctb#--------------------------------------------------------------------------def self.action_list_ctbreturn @action_battlersend#--------------------------------------------------------------------------# alias method: next_subject#--------------------------------------------------------------------------def self.next_subjectreturn pctb_next_subject unless btype?:)pctb)loop dobattler = @action_battlers[0]return nil unless battlerunless battler.index && battler.alive?@action_battlers.shiftnextendreturn battlerendend#--------------------------------------------------------------------------# alias method: input_start#--------------------------------------------------------------------------def self.input_startreturn pctb_input_start unless btype?:)pctb)@phase = :inputreturn falseend#--------------------------------------------------------------------------# alias method: turn_start#--------------------------------------------------------------------------def self.turn_startreturn pctb_turn_start unless btype?:)pctb)@phase = :turnclear_actorend#--------------------------------------------------------------------------# alias method: turn_start#--------------------------------------------------------------------------def self.sort_battlers(cache = false)if btype?:)pctb)battlers = []for battler in ($game_party.members + $game_troop.members)next if battler.dead?battlers.push(battler)endbattlers.sort! { |a,b|if a.pctb_ctr(cache) != b.pctb_ctr(cache)a.pctb_ctr(cache) <=> b.pctb_ctr(cache)elsif a.pctb_prediction != b.pctb_predictionb.pctb_prediction <=> a.pctb_predictionelsif a.agi != b.agib.agi <=> a.agielsif a.screen_x != b.screen_xa.screen_x <=> b.screen_xelsea.name <=> b.nameend}return battlersendend#--------------------------------------------------------------------------# new method: btype?#--------------------------------------------------------------------------unless $imported["YEA-BattleEngine"]def self.btype?(btype)return true if btype == :pctbendendend # BattleManager#==============================================================================# ■ Game_System#==============================================================================class Game_Systemif $imported["YEA-BattleEngine"]#--------------------------------------------------------------------------# alias method: set_battle_system#--------------------------------------------------------------------------alias pctb_set_battle_system set_battle_systemdef set_battle_system(type)case typewhen :pctb; @battle_system = :pctbelse; pctb_set_battle_system(type)endend#--------------------------------------------------------------------------# alias method: battle_system_corrected#--------------------------------------------------------------------------alias pctb_battle_system_corrected battle_system_correcteddef battle_system_corrected(type)case typewhen :pctb; return :pctbelse; return pctb_battle_system_corrected(type)endendendend # Game_System#==============================================================================# ■ Game_Battler#==============================================================================class Game_Battler < Game_BattlerBase#--------------------------------------------------------------------------# public instance variables#--------------------------------------------------------------------------attr_accessor :pctb_speedattr_accessor :pctb_predictionattr_accessor :last_objattr_accessor :pctb_forcedattr_accessor :pctb_speed_cache#--------------------------------------------------------------------------# alias method: initialize#--------------------------------------------------------------------------alias pctb_initialize initializedef initializepctb_initialize@pctb_speed = 0@pctb_prediction = 0@pctb_speed_cache = 0end#--------------------------------------------------------------------------# new method: base_gain_pctb#--------------------------------------------------------------------------def base_gain_pctbreturn self.agiend#--------------------------------------------------------------------------# new method: real_gain_pctb#--------------------------------------------------------------------------def real_gain_pctbobj = current_action.item if current_actionvalue = base_gain_pctbvalue = value * obj.charge_rate / 100 if obj && @charging_pctbreturn valueend#--------------------------------------------------------------------------# new method: pctb_ctr#--------------------------------------------------------------------------def pctb_ctr(cache = false)@pctb_prediction = @pctb_speed unless cache@pctb_prediction = @pctb_speed_cache if cachereturn 0 if @pctb_prediction >= BattleManager.pctb_thresholdvalue = (BattleManager.pctb_threshold.to_f - @pctb_prediction.to_f) / real_gain_pctb.to_fvalue = value.ceil@pctb_prediction += value * real_gain_pctbreturn valueend#--------------------------------------------------------------------------# new method: reset_pctb_speed#--------------------------------------------------------------------------def reset_pctb_speed(cache = false)return @pctb_forced = false if @pctb_forcedif actor?obj = input ? input.item : @last_objelseobj = @last_objendreal_cache = @pctb_speedif objlimit_rate = YSA::pCTB::BATTLER_RULES[:speed_limit]limit = BattleManager.pctb_threshold * limit_ratereal_cache -= obj.ctb_cost * BattleManager.pctb_threshold / 100real_cache -= obj.ctb_cost_valvalue = YSA::pCTB::BATTLER_RULES[:speed_rate] * obj.speedvalue = [value, 0].maxvalue = [value, limit].min if limit > 0real_cache += valueelsereal_cache -= BattleManager.pctb_thresholdendreal_cache = [real_cache, 0].max@pctb_speed = real_cache if cache == false@pctb_speed_cache = real_cache if cache@charging_pctb = false unless cache@last_obj = nil unless cacheend#--------------------------------------------------------------------------# new method: charging_start#--------------------------------------------------------------------------def charging_startreturn false unless BattleManager.btype?:)pctb)return false if @charging_pctbreturn false unless current_actionobj = current_action.itemreturn false unless objreturn false if obj.speed >= 0value = obj.speed * YSA::pCTB::BATTLER_RULES[:speed_rate]@pctb_speed += value@pctb_speed = [@pctb_speed, 0].maxBattleManager.action_list_ctb.shift@charging_pctb = trueSceneManager.scene.charging_start(self)SceneManager.scene.update_pctb_speedreturn trueend#--------------------------------------------------------------------------# new method: pctb_active?#--------------------------------------------------------------------------def pctb_active?return @pctb_speed >= BattleManager.pctb_threshold && movable?end#--------------------------------------------------------------------------# new method: storage_speed#--------------------------------------------------------------------------def storage_speedreturn if @cache_speed@cache_speed = @pctb_speedend#--------------------------------------------------------------------------# new method: restore_speed#--------------------------------------------------------------------------def restore_speedreturn unless @cache_speed@pctb_speed = @cache_speed@cache_speed = nilend#--------------------------------------------------------------------------# alias method: update_state_turns#--------------------------------------------------------------------------alias pctb_update_state_turns update_state_turnsdef update_state_turnsif BattleManager.btype?:)pctb)states.each do |state|@state_turns[state.id] -= 1 if @state_turns[state.id] > 0 && state.auto_removal_timing == 2endelsepctb_update_state_turnsendend#--------------------------------------------------------------------------# new method: update_state_actions#--------------------------------------------------------------------------def update_state_actionsreturn unless BattleManager.btype?:)pctb)states.each do |state|@state_turns[state.id] -= 1 if @state_turns[state.id] > 0 && state.auto_removal_timing == 1endend#--------------------------------------------------------------------------# alias method: on_action_end#--------------------------------------------------------------------------alias pctb_on_action_end on_action_enddef on_action_endpctb_on_action_endupdate_state_actionsend#--------------------------------------------------------------------------# alias method: force_action#--------------------------------------------------------------------------alias pctb_force_action force_actiondef force_action(skill_id, target_index)if BattleManager.btype?:)pctb)action = Game_Action.new(self, true)action.set_skill(skill_id)if target_index == -2action.target_index = last_target_indexelsif target_index == -1action.decide_random_targetelseaction.target_index = target_indexend@actions = [action] + @actions@pctb_forced = trueendpctb_force_action(skill_id, target_index) unless BattleManager.btype?:)pctb)end#--------------------------------------------------------------------------# alias method: make_action_times#--------------------------------------------------------------------------alias pctb_make_action_times make_action_timesdef make_action_timesBattleManager.btype?:)pctb) ? 1 : pctb_make_action_timesendend # Game_Battler#==============================================================================# ■ Game_Actor#==============================================================================class Game_Actor < Game_Battler#--------------------------------------------------------------------------# overwrite method: input#--------------------------------------------------------------------------if $imported["YEA-BattleEngine"]def inputgame_actor_input_abeendend#--------------------------------------------------------------------------# new method: screen_x | screen_y#--------------------------------------------------------------------------unless $imported["YEA-BattleEngine"]def screen_x0enddef screen_y0endendend # Game_Actor#==============================================================================# ■ Scene_Battle#==============================================================================class Scene_Battle < Scene_Base#--------------------------------------------------------------------------# new method: battle_start#--------------------------------------------------------------------------alias pctb_battle_start battle_startdef battle_startpctb_battle_startupdate_pctb_speed if BattleManager.btype?:)pctb)end#--------------------------------------------------------------------------# new method: charging_start#--------------------------------------------------------------------------def charging_start(battler)@status_window.show@status_window.openif $imported["YEA-BattleEngine"]redraw_current_status@status_aid_window.hideelserefresh_statusend@actor_command_window.showstring = YSA::pCTB::BATTLER_RULES[:charge_text]skill = battler.current_action.itemskill_text = sprintf("\\i[%d]%s", skill.icon_index, skill.name)text = sprintf(string, battler.name, skill_text)@log_window.add_text(text)YSA::pCTB::BATTLER_RULES[:charge_text_dur].times do @log_window.wait end@log_window.back_oneend#--------------------------------------------------------------------------# new method: update_pctb_speed#--------------------------------------------------------------------------def update_pctb_speedreturn if scene_changing?@clocktick = 0 if @clocktick.nil?ctr = YSA::pCTB::CTB_MECHANIC[:turn_ctr]#---battlers = BattleManager.sort_battlersfirst_battler = battlers[0]tick = first_battler.pctb_ctr#---battlers.each { |battler|battler.pctb_speed += tick * battler.real_gain_pctb}#---@clocktick = @clocktick + tickpass_turn = @clocktick / ctrpass_turn = pass_turn.floor.to_ipass_turn.times {$game_temp.reserve_common_event(YSA::pCTB::CTB_COMMON_EVENT[:turn_update]) if YSA::pCTB::CTB_COMMON_EVENT[:turn_update] > 0 && $data_common_events[YSA::pCTB::CTB_COMMON_EVENT[:turn_update]]process_event$game_troop.increase_turnturn_endwait(YSA::pCTB::CTB_MECHANIC[:wait_after_turn])}@clocktick = @clocktick % ctr#---if first_battler.movable?BattleManager.action_list_ctb.push(first_battler)elsestring = YSA::pCTB::BATTLER_RULES[:cant_text]text = sprintf(string, first_battler.name)@log_window.add_text(text)YSA::pCTB::BATTLER_RULES[:cant_text_dur].times do @log_window.wait end@log_window.back_onefirst_battler.clear_actionsfirst_battler.reset_pctb_speedreturn update_pctb_speed && update_order_gaugeend#---update_order_gauge#---start_pctb_actionend#--------------------------------------------------------------------------# new method: start_pctb_action#--------------------------------------------------------------------------def start_pctb_actionbattler = BattleManager.action_list_ctb[0]battler.make_actions if battler.actions.size == 0return if battler.charging_start && battler.enemy?if battler.actor? && battler.input && battler.input.item.nil?BattleManager.input_startBattleManager.set_actor(battler.index) start_actor_command_selectionif $imported["YEA-BattleEngine"]redraw_current_status@status_aid_window.hideelserefresh_statusend@status_window.show@status_window.openendturn_start if battler.enemy?turn_start if battler.actor? && battler.input && battler.input.itemend#--------------------------------------------------------------------------# new method: update_order_gauge#--------------------------------------------------------------------------def update_order_gaugebattler = BattleManager.action_list_ctb[0]return unless $imported["YSA-OrderBattler"]BattleManager.make_ctb_battler_order@active_order_sprite.battler = battler if @active_order_spritefor order in @spriteset_orderorder.make_destinationendend#--------------------------------------------------------------------------# alias method: execute_action#--------------------------------------------------------------------------alias scene_battle_execute_action_pctb execute_actiondef execute_actionscene_battle_execute_action_pctbunless BattleManager.action_forced?@subject.last_obj = @subject.current_action.item unless @subject.last_obj endend#--------------------------------------------------------------------------# alias method: execute_action#--------------------------------------------------------------------------alias scene_battle_invoke_item_pctb invoke_itemdef invoke_item(target, item)scene_battle_invoke_item_pctb(target, item)#---change_per = item.ctb_change * BattleManager.pctb_threshold / 100change_val = item.ctb_change_valtarget.pctb_speed += change_pertarget.pctb_speed = 0 if target.pctb_speed < 0target.pctb_speed += change_valtarget.pctb_speed = 0 if target.pctb_speed < 0#---end#--------------------------------------------------------------------------# alias method: process_action_end#--------------------------------------------------------------------------alias scene_battle_process_action_end_pctb process_action_enddef process_action_endscene_battle_process_action_end_pctbunless BattleManager.action_forced?$game_temp.reserve_common_event(YSA::pCTB::CTB_COMMON_EVENT[:end_action]) if YSA::pCTB::CTB_COMMON_EVENT[:end_action] > 0 && $data_common_events[YSA::pCTB::CTB_COMMON_EVENT[:end_action]]process_event@subject.restore_speed@subject.reset_pctb_speedreturn start_pctb_action if @subject.pctb_active?BattleManager.action_list_ctb.shiftupdate_pctb_speedendend#--------------------------------------------------------------------------# alias method: next_command#--------------------------------------------------------------------------alias pctb_next_command next_commanddef next_commandif BattleManager.actorif BattleManager.actor != BattleManager.action_list_ctb[0]BattleManager.action_list_ctb[0].make_actionsstart_pctb_actionreturnendendreturn @subject = nil if BattleManager.actor && BattleManager.actor.charging_startpctb_next_commandend#--------------------------------------------------------------------------# alias method: create_actor_command_window#--------------------------------------------------------------------------alias yctb_create_actor_command_window create_actor_command_windowdef create_actor_command_windowyctb_create_actor_command_window@actor_command_window.set_handler:)cancel, method:)ctb_prior_actor))@actor_command_window.set_handler:)dir4, method:)ctb_prior_actor))@actor_command_window.set_handler:)dir6, method:)ctb_next_command))end#--------------------------------------------------------------------------# new method: ctb_prior_actor#--------------------------------------------------------------------------def ctb_prior_actorBattleManager.actor.make_actionslast_index = BattleManager.actor.indexprior_index = last_index - 1if prior_index < 0@actor_command_window.close@party_command_window.setupelsereturn ctb_prior_actor if !$game_party.members[prior_index].movable?$game_party.members[prior_index].make_actionsBattleManager.input_startBattleManager.set_actor(prior_index) start_actor_command_selectionif $imported["YEA-BattleEngine"]redraw_current_status@status_aid_window.hideelserefresh_statusend@status_window.show@status_window.openendend#--------------------------------------------------------------------------# new method: ctb_next_command#--------------------------------------------------------------------------def ctb_next_commandBattleManager.actor.make_actionslast_index = BattleManager.actor.indexnext_index = last_index + 1if next_index > ($game_party.members.size - 1)return start_confirm_command_selection if $imported["YEA-BattleCommandList"] && YEA::BATTLE_COMMANDS::USE_CONFIRM_WINDOWBattleManager.action_list_ctb[0].make_actionsstart_pctb_actionelsereturn ctb_next_command if !$game_party.members[next_index].movable?$game_party.members[next_index].make_actionsBattleManager.input_startBattleManager.set_actor(next_index) start_actor_command_selectionif $imported["YEA-BattleEngine"]redraw_current_status@status_aid_window.hideelserefresh_statusend@status_window.show@status_window.openendend#--------------------------------------------------------------------------# alias method: command_fight#--------------------------------------------------------------------------alias command_fight_pctb command_fightdef command_fightreturn command_fight_pctb unless BattleManager.btype?:)pctb)if BattleManager.action_list_ctb[0].nil? update_pctb_speed elseBattleManager.action_list_ctb[0].make_actionsstart_pctb_actionendend#--------------------------------------------------------------------------# alias method: turn_start#--------------------------------------------------------------------------alias pctb_turn_start turn_startdef turn_startlast_subject = @subject if BattleManager.btype?:)pctb)pctb_turn_start@subject = last_subject if BattleManager.btype?:)pctb)endend # Scene_Battle#==============================================================================# # ▼ End of File# #============================================================================== 
    Turn fix

    credit to Blackmorning89 at rpgmakervxace.net, place it under PCTB:

    class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # * Get Action Being Input #-------------------------------------------------------------------------- def input if @action_input_index != nil game_actor_input_abe end endend
    Additional notes, I highly recommend to add the Disable L/R selection and YEA Turn Fix from TheoAllen, otherwise you will run in to some problems.

    Hope it helps!
  9. Do you also have the PCTB gauges? It would be really helpful to him in order to achieve the FFX feel.


    But yeah, it causes quite a number of problems. It's better to use it if you only have a few other scripts that modify the battle scene. On mine, I only had my own custom script for command drives, and I already got a few errors before I got to make it work. XD
  10. That script he shared doesn't have the gauges? (I'm away from a computer that can actually play test, at the moment, as I'm helping a cousin with things.)
  11. I think so, I'm pretty sure the gauges (actually the list showing turn order via icons) was an add-on.

    EDIT: Wait, I have it here

    Spoiler
    Code:
    #==============================================================================# # ▼ YSA Battle Add-On: Order Battlers# -- Last Updated: 2012.02.20# -- Level: Easy# -- Requires: n/a# #==============================================================================$imported = {} if $imported.nil?$imported["YSA-OrderBattler"] = true#==============================================================================# ▼ Updates# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# 2012.02.20 - Reduced lag a little.#            - Hide Gauge when victory.# 2012.02.16 - Compatible with: Yami's PCTB.# 2012.01.01 - Bug fixed: No-skill/item issue.# 2011.12.28 - Bug fixed: Speed Fix issue.#            - Groundwork is also made to support future battle system types.#            - Can show/hide by a switch.# 2011.12.27 - Started Script and Finished.# #==============================================================================# ▼ Instructions# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# To install this script, open up your script editor and copy/paste this script# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.# # -----------------------------------------------------------------------------# Actor Notetags - These notetags go in the actor notebox in the database.# -----------------------------------------------------------------------------# <battler icon: x># Change actor's icon into x.## <icon hue: x># Change icon hue.# # -----------------------------------------------------------------------------# Enemy Notetags - These notetags go in the enemy notebox in the database.# -----------------------------------------------------------------------------# <battler icon: x># Change enemy's icon into x.## <icon hue: x># Change icon hue.##==============================================================================# ▼ Compatibility# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that# it will run with RPG Maker VX without adjusting.# #==============================================================================module YSA  module ORDER_GAUGE        # Default Icon for actor and enemy    DEFAULT_ENEMY_ICON = 1    DEFAULT_ACTOR_ICON = 128        # Order Sprite Visual. Decide Order's Background and Border.    BATTLER_ICON_BORDERS = { # Do not remove this.      # Type => [Back, Border,  ],      :actor => [ 528,    532,  ],      :enemy => [ 529,    533,  ],    } # Do not remove this.        # Turn this to true if you want to show death battlers.    # SHOW_DEATH = false        # Coordinate-X of order gauge    GAUGE_X = 32    # Coordinate-Y of order gauge    GAUGE_Y = 48        # Show Switch. Turn this switch on to show it. If you want to disable, set this    # to 0.    SHOW_SWITCH = 0      endend#==============================================================================# ▼ Editting anything past this point may potentially result in causing# computer damage, incontinence, explosion of user's head, coma, death, and/or# halitosis so edit at your own risk.#==============================================================================#==============================================================================# ■ Regular Expression#==============================================================================module YSA  module REGEXP  module ACTOR        BATTLER_ICON = /<(?:BATTLER_ICON|battler icon):[ ](\d+)?>/i    ICON_HUE = /<(?:ICON_HUE|icon hue):[ ](\d+)?>/i      end # ACTOR  module ENEMY        BATTLER_ICON = /<(?:BATTLER_ICON|battler icon):[ ](\d+)?>/i    ICON_HUE = /<(?:ICON_HUE|icon hue):[ ](\d+)?>/i      end # ENEMY  end # REGEXPend # YSA#==============================================================================# ■ DataManager#==============================================================================module DataManager    #--------------------------------------------------------------------------  # alias method: load_database  #--------------------------------------------------------------------------  class <<self; alias load_database_orbt load_database; end  def self.load_database    load_database_orbt    load_notetags_orbt  end    #--------------------------------------------------------------------------  # new method: load_notetags_orbt  #--------------------------------------------------------------------------  def self.load_notetags_orbt    groups = [$data_enemies + $data_actors]    for group in groups      for obj in group        next if obj.nil?        obj.load_notetags_orbt      end    end  end  end # DataManager#==============================================================================# ■ BattleManager#==============================================================================module BattleManager    #--------------------------------------------------------------------------  # public instance variables  #--------------------------------------------------------------------------  class <<self  attr_accessor :action_battlers  attr_accessor :performed_battlers  attr_accessor :ctb_battlers  alias order_gauge_make_action_orders make_action_orders  end  #--------------------------------------------------------------------------  # new method: make_ctb_battler_order  #--------------------------------------------------------------------------  def self.make_ctb_battler_order    @ctb_battlers = []    if $imported["YSA-PCTB"] && YSA::PCTB::CTB_MECHANIC[:predict] == 2      battlers = self.sort_battlers      battlers.each { |battler|        battler.pctb_speed_cache = battler.pctb_speed      }      number = YSA::PCTB::CTB_MECHANIC[:pre_turns]      i = 0      number.times {        add_ctb_battler_order(i)        i += 1      }      return    end    ctb_battlers_dummy = self.sort_battlers    ctb_battlers_dummy.each { |battler|      @ctb_battlers.push(battler) unless battler.dead?    }  end  #--------------------------------------------------------------------------  # new method: add_ctb_battler_order  #--------------------------------------------------------------------------  def self.add_ctb_battler_order(i)    battlers = self.sort_battlers(true)    first_battler = battlers[0]    tick = first_battler.pctb_ctr(true)    battlers.each { |battler|      battler.pctb_speed_cache += tick * battler.real_gain_pctb    }    first_battler.reset_pctb_speed(true) if i == 0    first_battler.pctb_speed_cache -= self.pctb_threshold if i != 0    @ctb_battlers.push(first_battler)  end  #--------------------------------------------------------------------------  # alias method: make_action_orders  #--------------------------------------------------------------------------  def self.make_action_orders    return if btype?(:pctb)    order_gauge_make_action_orders  end    end # BattleManager#==============================================================================# ■ RPG::Actor#==============================================================================class RPG::Actor < RPG::BaseItem    #--------------------------------------------------------------------------  # public instance variables  #--------------------------------------------------------------------------  attr_accessor :battler_icon  attr_accessor :icon_hue    #--------------------------------------------------------------------------  # common cache: load_notetags_orbt  #--------------------------------------------------------------------------  def load_notetags_orbt    @battler_icon = YSA::ORDER_GAUGE::DEFAULT_ACTOR_ICON    #---    self.note.split(/[\r\n]+/).each { |line|      case line      #---      when YSA::REGEXP::ACTOR::BATTLER_ICON        @battler_icon = $1.to_i      when YSA::REGEXP::ACTOR::ICON_HUE        @icon_hue = $1.to_i      end    } # self.note.split    #---  end  end # RPG::Actor#==============================================================================# ■ RPG::Enemy#==============================================================================class RPG::Enemy < RPG::BaseItem    #--------------------------------------------------------------------------  # public instance variables  #--------------------------------------------------------------------------  attr_accessor :battler_icon  attr_accessor :icon_hue    #--------------------------------------------------------------------------  # common cache: load_notetags_orbt  #--------------------------------------------------------------------------  def load_notetags_orbt    @battler_icon = YSA::ORDER_GAUGE::DEFAULT_ENEMY_ICON    #---    self.note.split(/[\r\n]+/).each { |line|      case line      #---      when YSA::REGEXP::ENEMY::BATTLER_ICON        @battler_icon = $1.to_i      when YSA::REGEXP::ENEMY::ICON_HUE        @icon_hue = $1.to_i      end    } # self.note.split    #---  end  end # RPG::Enemy#==============================================================================# ■ Game_Battler#==============================================================================class Game_Battler < Game_BattlerBase    #--------------------------------------------------------------------------  # new method: battler_icon  #--------------------------------------------------------------------------  def battler_icon    actor? ? actor.battler_icon : enemy.battler_icon  end    #--------------------------------------------------------------------------  # new method: battler_icon_hue  #--------------------------------------------------------------------------  def battler_icon_hue    actor? ? actor.icon_hue : enemy.icon_hue  end  end # Game_Battler  #==============================================================================# ■ Sprite_OrderBattler#==============================================================================class Sprite_OrderBattler < Sprite_Base    #--------------------------------------------------------------------------  # initialize  #--------------------------------------------------------------------------  def initialize(viewport, battler, battle = :dtb, number = 0)    super(viewport)    @battler = battler    @battle = battle    @move_rate_x = 1    @move_rate_y = 1    @move_x = nil    @move_y = nil    @first_time = true    @update_wait = 0    @show_dead = false    @number = number    if $imported["YSA-PCTB"]      type = YSA::PCTB::CTB_MECHANIC[:predict]      num = YSA::PCTB::CTB_MECHANIC[:pre_turns]    end    self.y = num * 24 + 36 if @battle == :pctb2 && type && type == 2    create_battler_bitmap  end    #--------------------------------------------------------------------------  # create_battler_bitmap  #--------------------------------------------------------------------------  def create_battler_bitmap    return unless @battler    create_dtb_style if @battle == :dtb || @battle == :pctb  end    #--------------------------------------------------------------------------  # create_dtb_style  #--------------------------------------------------------------------------  def create_dtb_style    bitmap = Bitmap.new(24, 24)    if $imported["YEA-BattleEngine"]      icon_bitmap = $game_temp.iconset     else      icon_bitmap = Cache.system("IconSet")    end    #--- Create Battler Background ---    icon_index = @battler.actor? ? YSA::ORDER_GAUGE::BATTLER_ICON_BORDERS[:actor][0] : YSA::ORDER_GAUGE::BATTLER_ICON_BORDERS[:enemy][0]    rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)    bitmap.blt(0, 0, icon_bitmap, rect)    #--- Create Battler Icon ---    icon_index = @battler.battler_icon    rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)    temp_bitmap = Bitmap.new(24, 24)    temp_bitmap.blt(0, 0, icon_bitmap, rect)    temp_bitmap.hue_change(@battler.battler_icon_hue) if @battler.battler_icon_hue    bitmap.blt(0, 0, temp_bitmap, Rect.new(0, 0, 24, 24))    temp_bitmap.dispose    #--- Create Battler Border ---    icon_index = @battler.actor? ? YSA::ORDER_GAUGE::BATTLER_ICON_BORDERS[:actor][1] : YSA::ORDER_GAUGE::BATTLER_ICON_BORDERS[:enemy][1]    rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)    bitmap.blt(0, 0, icon_bitmap, rect)    #---    self.bitmap.dispose if self.bitmap != nil    self.bitmap = bitmap    return if @created_icon    @created_icon = true    self.ox = 12; self.oy = 12    self.x = 24 if @battle != :pctb2 && @battle != :pctb3    self.y = 24    self.z = 8000  end    #--------------------------------------------------------------------------  # update  #--------------------------------------------------------------------------  def update    super    return unless SceneManager.scene_is?(Scene_Battle)    if $imported["YSA-PCTB"]      type = YSA::PCTB::CTB_MECHANIC[:predict]      num = YSA::PCTB::CTB_MECHANIC[:pre_turns]    end    self.y = BattleManager.ctb_battlers.size * 24 + 36 if BattleManager.ctb_battlers && @battle == :pctb2 && type && type == 1    return if @battle == :pctb2 || @battle == :pctb3    #---    update_dtb_style if @battle == :dtb || @battle == :pctb    self.opacity = 0 if @battle == :catb  end    #--------------------------------------------------------------------------  # battler=  #--------------------------------------------------------------------------  def battler=(battler)    @battler = battler    return unless @battler    create_dtb_style  end    #--------------------------------------------------------------------------  # update_dtb_style  #--------------------------------------------------------------------------  def update_dtb_style    #---    actor_window = SceneManager.scene.actor_window    enemy_window = SceneManager.scene.enemy_window    if actor_window.active      if $game_party.members[actor_window.index] == @battler        @move_y = 12       else        @move_y = 24       end    end    if enemy_window.active      if $game_troop.members[enemy_window.index] == @battler        @move_y = 12       else        @move_y = 24       end    end    if !actor_window.active && !enemy_window.active      @move_y = 24     end    #---    return if !@move_x && !@move_y    if @battler.hidden? || (!@show_dead && @battler.dead?)      self.opacity -= 20    end    if self.x != @move_x && @move_x      if @move_x > self.x        @move_y = 30      elsif @move_x < self.x        @move_y = 16      else        @move_y = 20      end      self.z = (@move_x < self.x) ? 7500 : 8500      if @move_x >= self.x        self.x += [@move_rate_x, @move_x - self.x].min      else        self.x -= [@move_rate_x, - @move_x + self.x].min      end    end    if self.y != @move_y && @move_y      self.y += (self.y > @move_y) ? -@move_rate_y : @move_rate_y    end    if self.x == @move_x && @move_x      @first_time = false if @first_time      @move_x = nil    end    if self.y == @move_y && @move_y      @move_y = nil    end  end    #--------------------------------------------------------------------------  # make_destination  #--------------------------------------------------------------------------  def make_destination    make_dtb_destination if @battle == :dtb    make_pctb_destination if @battle == :pctb     make_pctb2_image if @battle == :pctb3  end    #--------------------------------------------------------------------------  # make_dtb_destination  #--------------------------------------------------------------------------  def make_dtb_destination    #---    BattleManager.performed_battlers = [] if !BattleManager.performed_battlers    array = BattleManager.performed_battlers.reverse    action = BattleManager.action_battlers.reverse - BattleManager.performed_battlers.reverse    array += action    action.uniq!    array.uniq!    #---    result = []    for member in array      next if member.hidden?      result.push(member) unless member.dead?      action.delete(member) if member.dead? and !@show_dead    end    if @show_dead      for member in array        next if member.hidden?        result.push(member) if member.dead?      end    end    #---    index = result.index(@battler).to_i    @move_x = 24 + index * 24    if BattleManager.in_turn?      @move_x += 6 if action.include?(@battler)      @move_x += 6 if (index + 1 == result.size) and action.size > 1    end    den = @first_time ? 12 : 24    @move_rate_x = [((@move_x - self.x)/den).abs, 1].max  end      #--------------------------------------------------------------------------  # make_pctb_destination  #--------------------------------------------------------------------------  def make_pctb_destination    return unless BattleManager.ctb_battlers    #---    array = BattleManager.ctb_battlers.reverse    #---    result = []    for member in array      next if member.hidden?      result.push(member) unless member.dead?    end    if @show_dead      for member in array        next if member.hidden?        result.push(member) if member.dead?      end    end    #---    index = result.index(@battler).to_i    @move_x = 24 + index * 24    den = @first_time ? 12 : 24    @move_rate_x = [((@move_x - self.x)/den).abs, 1].max  end      #--------------------------------------------------------------------------  # make_pctb2_image  #--------------------------------------------------------------------------  def make_pctb2_image    return unless BattleManager.ctb_battlers    num = YSA::PCTB::CTB_MECHANIC[:pre_turns] - 1    array = BattleManager.ctb_battlers    self.battler = array[@number]    self.y = 24 + (num - @number) * 24  end  end # Sprite_OrderBattler#==============================================================================# ■ Spriteset_Battle#==============================================================================class Spriteset_Battle    #--------------------------------------------------------------------------  # public instance variables  #--------------------------------------------------------------------------  attr_accessor :viewportOrder    #--------------------------------------------------------------------------  # alias method: create_viewports  #--------------------------------------------------------------------------  alias order_gauge_create_viewports create_viewports  def create_viewports    order_gauge_create_viewports    @viewportOrder = Viewport.new    @viewportOrder.z = 1000    if YSA::ORDER_GAUGE::SHOW_SWITCH == 0 || $game_switches[YSA::ORDER_GAUGE::SHOW_SWITCH]      @viewportOrder.ox = -YSA::ORDER_GAUGE::GAUGE_X      @viewportOrder.oy = -YSA::ORDER_GAUGE::GAUGE_Y    else      @viewportOrder.ox = Graphics.width      @viewportOrder.oy = Graphics.height    end  end  end # Spriteset_Battle#==============================================================================# ■ Scene_Battle#==============================================================================class Scene_Battle < Scene_Base  #--------------------------------------------------------------------------  # public instance variables  #--------------------------------------------------------------------------  attr_accessor :actor_window  attr_accessor :enemy_window  #--------------------------------------------------------------------------  # alias method: create_all_windows  #--------------------------------------------------------------------------  alias order_gauge_create_all_windows create_all_windows  def create_all_windows    order_gauge_create_all_windows    @spriteset_order = []    if $imported["YSA-PCTB"] && YSA::PCTB::CTB_MECHANIC[:predict] == 1      @active_order_sprite = Sprite_OrderBattler.new(@spriteset.viewportOrder, nil, :pctb2)     end    if $imported["YSA-PCTB"] && YSA::PCTB::CTB_MECHANIC[:predict] == 2      num = YSA::PCTB::CTB_MECHANIC[:pre_turns]      i = 0      num.times {        order = Sprite_OrderBattler.new(@spriteset.viewportOrder, nil, :pctb3, i)         @spriteset_order.push(order)        i += 1      }      return    end    for battler in $game_party.members + $game_troop.members      battle_type = :dtb      battle_type = :pctb if BattleManager.btype?(:pctb)      battle_type = :catb if BattleManager.btype?(:catb)      order = Sprite_OrderBattler.new(@spriteset.viewportOrder, battler, battle_type)       @spriteset_order.push(order)    end  end    #--------------------------------------------------------------------------  # alias method: battle_start  #--------------------------------------------------------------------------  alias order_gauge_battle_start battle_start  def battle_start    order_gauge_battle_start    unless BattleManager.btype?(:pctb)      BattleManager.make_action_orders      for order in @spriteset_order        order.make_destination      end    end  end      #--------------------------------------------------------------------------  # alias method: dispose_spriteset  #--------------------------------------------------------------------------  alias order_gauge_dispose_spriteset dispose_spriteset  def dispose_spriteset    for order in @spriteset_order      order.bitmap.dispose      order.dispose    end    order_gauge_dispose_spriteset  end    #--------------------------------------------------------------------------  # alias method: update_basic  #--------------------------------------------------------------------------  alias order_gauge_update_basic update_basic  def update_basic    order_gauge_update_basic    for order in @spriteset_order      order.update    end    @active_order_sprite.update if @active_order_sprite    if $imported["YSA-PCTB"]      type = YSA::PCTB::CTB_MECHANIC[:predict]    end    if @update_ordergauge      if type && type == 1        BattleManager.actor.restore_speed        BattleManager.actor.storage_speed        BattleManager.actor.reset_pctb_speed      end      BattleManager.make_action_orders      BattleManager.make_ctb_battler_order if BattleManager.btype?(:pctb)       for order in @spriteset_order        order.make_destination      end      @update_ordergauge = false    end    if YSA::ORDER_GAUGE::SHOW_SWITCH == 0 || $game_switches[YSA::ORDER_GAUGE::SHOW_SWITCH]      @spriteset.viewportOrder.ox = -YSA::ORDER_GAUGE::GAUGE_X if @spriteset.viewportOrder.ox != -YSA::ORDER_GAUGE::GAUGE_X      @spriteset.viewportOrder.oy = -YSA::ORDER_GAUGE::GAUGE_Y if @spriteset.viewportOrder.oy != -YSA::ORDER_GAUGE::GAUGE_Y    else      @spriteset.viewportOrder.ox = Graphics.height if @spriteset.viewportOrder.ox != Graphics.width      @spriteset.viewportOrder.oy = Graphics.width if @spriteset.viewportOrder.oy != Graphics.height    end    if $game_party.all_dead? || $game_troop.all_dead?      @spriteset.viewportOrder.ox = Graphics.height if @spriteset.viewportOrder.ox != Graphics.width      @spriteset.viewportOrder.oy = Graphics.width if @spriteset.viewportOrder.oy != Graphics.height    end  end    #--------------------------------------------------------------------------  # alias method: update  #--------------------------------------------------------------------------  alias order_gauge_update update  def update    order_gauge_update    #return if YSA::PCTB::CTB_MECHANIC[:predict] == 2    if @actor_command_window.active      return if BattleManager.actor.input.nil?      if @actor_command_window.current_symbol == :attack && !BattleManager.actor.input.attack?        BattleManager.actor.input.set_attack if BattleManager.actor.usable?($data_skills[BattleManager.actor.attack_skill_id])        @update_ordergauge = true      end      if @actor_command_window.current_symbol == :guard && BattleManager.actor.input.item != $data_skills[BattleManager.actor.guard_skill_id]        BattleManager.actor.input.set_guard if BattleManager.actor.usable?($data_skills[BattleManager.actor.guard_skill_id])        @update_ordergauge = true      end      if $imported["YEA-BattleCommandList"]      if @actor_command_window.current_symbol == :use_skill && BattleManager.actor.input.item != $data_skills[@actor_command_window.current_ext]        BattleManager.actor.input.set_skill(@actor_command_window.current_ext) if BattleManager.actor.usable?($data_skills[@actor_command_window.current_ext])        @update_ordergauge = true      end      end          end    if @skill_window.active && BattleManager.actor && BattleManager.actor.input.item != @skill_window.item && @skill_window.current_item_enabled?      BattleManager.actor.input.set_skill(@skill_window.item.id) if BattleManager.actor.usable?(@skill_window.item)      @update_ordergauge = true    end    if @item_window.active && BattleManager.actor && BattleManager.actor.input.item != @item_window.item && @item_window.current_item_enabled?      BattleManager.actor.input.set_item(@item_window.item.id) if BattleManager.actor.usable?(@item_window.item)       @update_ordergauge = true    end  end    #--------------------------------------------------------------------------  # alias method: on_skill_cancel  #--------------------------------------------------------------------------  alias order_gauge_on_skill_cancel on_skill_cancel  def on_skill_cancel    order_gauge_on_skill_cancel    BattleManager.actor.input.clear    @update_ordergauge = true  end    #--------------------------------------------------------------------------  # alias method: on_item_cancel  #--------------------------------------------------------------------------  alias order_gauge_on_item_cancel on_item_cancel  def on_item_cancel    order_gauge_on_item_cancel    BattleManager.actor.input.clear    @update_ordergauge = true  end    #--------------------------------------------------------------------------  # alias method: turn_start  #--------------------------------------------------------------------------  alias order_gauge_turn_start turn_start  def turn_start    order_gauge_turn_start    for order in @spriteset_order      order.make_destination    end  end    #--------------------------------------------------------------------------  # alias method: process_action_end  #--------------------------------------------------------------------------  alias order_gauge_process_action_end process_action_end  def process_action_end    order_gauge_process_action_end    for order in @spriteset_order      order.make_destination    end  end  end # Scene_Battle#==============================================================================# # ▼ End of File# #==============================================================================
  12. Thanks. I'll reply with feedback when I can get to my computer at home.
  13. The PCTB script appears to do what I need it to do, though the order gauge, while useful, is a bit clunky and requires the use of icons, rather than images that represent the battlers.

    What I need for that is, at least, a gauge that shows the order of attacking creatures in a horizontal field near the top of the screen.

    It would have to show either faceset or picture to indicate which character/battler is which, with notetags (with clear instruction on how to use them) that call those faceset/images to the gauge.
  14. You could maybe request an edit of the order gauge...