What do you mean it loops? Like you win, it plays the victorious battle sound, and then when you go back to the map it restarts?
To fix this, you'll need to open up the script editor, and in the script Scene_Battle, find :
#--------------------------------------------------------------------------
# * End Battle
# result : Results (0: win, 1: escape, 2:lose)
#--------------------------------------------------------------------------
def battle_end(result)
if result == 2 and not $game_troop.can_lose
call_gameover
else
$game_party.clear_actions
$game_party.remove_states_battle
$game_troop.clear
if $game_temp.battle_proc != nil
$game_temp.battle_proc.call(result)
$game_temp.battle_proc = nil
end
unless $BTEST
$game_temp.map_bgm.play
$game_temp.map_bgs.play
end
$scene = Scene_Map.new
@message_window.clear
Graphics.fadeout(30)
end
$game_temp.in_battle = false
end
See the line :
Comment it out by adding a
# in front.
Then you'll need to find the method Victory Processing and replace it with :
#--------------------------------------------------------------------------
# * Victory Processing
#--------------------------------------------------------------------------
def process_victory
@info_viewport.visible = false
@message_window.visible = true
#RPG::BGM.stop
RPG::BGM.last.volume = 0
$game_system.battle_end_me.play
unless $BTEST
#$game_temp.map_bgm.play
RPG::BGM.last.volume = 100
$game_temp.map_bgs.play
end
display_exp_and_gold
display_drop_items
display_level_up
battle_end(0)
end
Basically, I commented out the BGM's stop execution so that it won't stop; instead, I set the volume to 0 (so it doesn't interfere with the battle won sound) and once that's done, I set it back to 100. In theory, it shouldn't loop.