In this Tutorial I will show you how I made a "Tutorial" battle where the player could only use the commands he was told to use. This is a a general guild and you may have to change it to fit your own needs however all the information oh how to get one going is here.
Copy the Scene_Battle script and paste it in section for Script inserts

Rename it to Scene_Tutorial
Create Tutorial Battle Troop in the FIRST SLOT

Next Create your Instructions for the player for each turn.





Next add in event command to change a variable for each prompt given, using the FIRST VARIABLE




Lastly before we Edit the Scripts Create an Event to Launch the tutorial battle

Now we are ready to start Editing the Scripts!
in the Script Game_Interpreter use Ctrl+F to find "Battle Processing" (line 1095 in stock scripts)
change the line
SceneManager.call(Scene_Battle)to
if troop_id == 1 SceneManager.call(Scene_Tutorial)else SceneManager.call(Scene_Battle)endnext in your Scene_Tutorial
Find "def post_start"
Below "super" add
BattleManager.save_bgm_and_bgsBattleManager.play_battle_bgmFind "def pre_terminate"
Bellow "super" add
BattleManager.replay_bgm_and_bgsNow that all that's left is to Block out all actions except the one we want
**Form this point on the tutorial is based on the Images included. This is subject for you to change for your own personal needs
Find "def command_attack" and replace the whole block with
def command_attack if $game_variables[1] == 1 BattleManager.actor.input.set_attack select_enemy_selection else start_actor_command_selection endendFind "def command_skill" and replace the whole block with
def command_skill if $game_variables[1] == 3 && @actor_command_window.current_ext == 3 @skill_window.actor = BattleManager.actor @skill_window.stype_id = @actor_command_window.current_ext @skill_window.refresh @skill_window.show.activate else start_actor_command_selection end end** "@actor_command_window.current_ext == 3" can change if you are using multiple skill types and want one specific type used
Find "def command_guard" and replace the block with
def command_guard if $game_variables[1] == 4 BattleManager.actor.input.set_guard next_command else start_actor_command_selection endendFind "def command_item" and replace the block with
def command_item if $game_variables[1] == 2 @item_window.refresh @item_window.show.activate else start_actor_command_selection endendCongrats on your new Forced Inputs Tutorial Battle Scene!