09-06-2025, 06:07 AM
(This post was last modified: 09-07-2025, 09:42 AM by kyonides.
Edit Reason: Script Updated
)
KursedVictory XP
by Kyonides
Introduction
You will either love this scriptlet or just hate it.

Sometimes the heroes cannot simply obtain a flawless victory. That would be inconceivable!

Thus, they need some final punishment to make sure they learn their lesson!

Just add enemy ID's to the ENEMY_IDS constant to make this happen!

Screenshots
The Script
Code:
# * KursedVictory XP * #
# Scripter : Kyonides
# v1.0.0 - 2025-09-06
# Sometimes the heroes cannot simply obtain a flawless victory. Thus, they need
# some final punishment to make sure they learn their lesson!
# Just add enemy ID's to the ENEMY_IDS constant to make this happen!
module KursedVictory
BGS = "Darkness"
MESSAGE = ["Flawless Victory!", "Now choose a curse victim!"]
CURSE_CHANCE = 100
WAIT_FRAMES = 40
ENEMY_IDS = [1]
end
class Game_Enemy
def curse_victory?
KursedVictory::ENEMY_IDS.include?(@enemy_id)
end
end
class Game_Party
def dead_members
@actors.select {|actor| actor.dead? }
end
def all_dead_now?
dead_members.size == @actors.size
end
end
class Game_Troop
def curse_flawless_victory?
enemy = @enemies.find {|enemy| enemy.curse_victory? }
enemy != nil
end
end
class CursedMessageWindow < Window_Base
def initialize(wx, wy)
super(wx, wy, 280, 80)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
line1, line2 = KursedVictory::MESSAGE
font = self.contents.font
font.bold = true
font.color.set(220, 80, 0)
self.contents.draw_text(0, 0, width - 32, 24, line1, 1)
font.bold = false
font.color.set(255, 255, 255)
self.contents.draw_text(0, 24, width - 32, 24, line2, 1)
end
end
class Scene_Battle
alias :kyon_kurvic_scn_btl_st_ph5 :start_phase5
def start_phase5
process_cursed_victory
if @cursed_victory and $game_party.all_dead_now?
process_defeat
else
kyon_kurvic_scn_btl_st_ph5
end
end
def process_cursed_victory
return if KursedVictory::CURSE_CHANCE < rand(100)
return unless $game_troop.curse_flawless_victory?
return if $game_party.dead_members.size > 0
Audio.bgm_stop
@bgs = RPG::AudioFile.new(KursedVictory::BGS)
$game_system.bgs_play(@bgs)
wx = (Graphics.width - 280) / 2
@cursed_cursor = Arrow_Actor.new(nil)
@cursed_cursor.index = 0
@cursed_message = CursedMessageWindow.new(wx, 40)
@cursed_victory = true
while @cursed_victory
Graphics.update
Input.update
update_cursed_victory
end
KursedVictory::WAIT_FRAMES.times { Graphics.update }
@cursed_message.dispose
@cursed_cursor.bitmap.dispose
@cursed_cursor.dispose
Audio.bgs_stop
@cursed_victory = true
end
def update_cursed_victory
@cursed_cursor.update
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
actor = $game_party.actors[@cursed_cursor.index]
actor.add_state(1)
@status_window.refresh
@cursed_victory = nil
end
end
def process_defeat
$game_system.bgm_play($game_temp.map_bgm)
battle_end(2)
end
end
Terms & Conditions
Free as in


Include my nickname in your game credits.
That's it!

"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]](https://www.save-point.org/images/userbars/SP1-Scripter.png)
![[Image: SP1-Writer.png]](https://www.save-point.org/images/userbars/SP1-Writer.png)
![[Image: SP1-Poet.png]](https://www.save-point.org/images/userbars/SP1-Poet.png)
![[Image: SP1-PixelArtist.png]](https://www.save-point.org/images/userbars/SP1-PixelArtist.png)
![[Image: SP1-Reporter.png]](https://i.postimg.cc/GmxWbHyL/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!
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
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]](https://www.save-point.org/images/userbars/SP1-Scripter.png)
![[Image: SP1-Writer.png]](https://www.save-point.org/images/userbars/SP1-Writer.png)
![[Image: SP1-Poet.png]](https://www.save-point.org/images/userbars/SP1-Poet.png)
![[Image: SP1-PixelArtist.png]](https://www.save-point.org/images/userbars/SP1-PixelArtist.png)
![[Image: SP1-Reporter.png]](https://i.postimg.cc/GmxWbHyL/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!

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