Super Skill Nerf VX
#1
Super Skill Nerf VX

by Kyonides

Introduction

Nerf! Nerf! Nerf your favorite super duper skills!
Yes, even up to the point where your heroes can only use them once per battle!

Mandatory Notes:
Code:
<cast_only_once>
<cast_only_twice>

Or Cool Them Down!

Mandatory Note:
Code:
<cooldown 1>
<cooldown 4>
Any positive number will be fine.

And just in case you want to clear this skill use limit once per call:
Code:
$game_party.clear_used_skills!

Or if you prefer to clear the cooldowns altogether:
Code:
$game_party.clear_skill_cooldowns!

VX Scripts


Version 1.3.x

This release includes the ability to change the color of the skill name & its cost based on how many turns are left.
This feature can be modified by editing the constants found in the SkillColor module.

Code:
# * Super Skill Nerf VX - Colored Version * #
#   Scripter : Kyonides
#   v1.3.0 - 2025-09-21

# Nerf! Nerf! Nerf your favorite super duper skills!
# Even up to the point where your heroes can only use them once per battle!
# Or Cool Them Down!
# Skill Names and Costs will be colored based on the number of turns left.

# - Note Tags - #
# Cast Only Once:  <cast_only_once>
# Cast Only Twice: <cast_only_twice>
# Cooldown: <cooldown 1> or <cooldown 4> (Any positive number is fine)

# * Optional Script Calls * #

# - Just in case you want to clear this skill use limit once per call:
# $game_party.clear_used_skills!

# - Just in case you want to clear the skill cooldowns:
# $game_party.clear_skill_cooldowns!

module SkillColor
  CD_COLORS = {} # Leave this line alone!
  # CD_COLORS[TurnsMin..TurnsMax] = [Red, Green, Blue]
  # Example: CD_COLORS[1..1] = [255, 255, 255] # For a Single Turn
  CD_COLORS[1..2] = [255, 255, 0]
  CD_COLORS[3..4] = [255, 165, 0]
  CD_COLORS[5..8] = [255, 60, 0]
  CD_COLOR_KEYS = CD_COLORS.keys.sort{|a, b| a.min <=> b.min }.reverse
end

module RPG
  class Skill
    ONLY_ONCE_NOTETAG  = /<cast_only_once>/i
    ONLY_TWICE_NOTETAG = /<cast_only_twice>/i
    SKILL_CD_NOTETAG   = /<cooldown (\d+)>/i
    def cast_once?
      @note[ONLY_ONCE_NOTETAG] != nil
    end

    def cast_twice?
      @note[ONLY_TWICE_NOTETAG] != nil
    end

    def has_cooldown?
      @note[SKILL_CD_NOTETAG] != nil
    end

    def cooldown_turns
      @note[SKILL_CD_NOTETAG]
      $1.to_i
    end

    def cooldown
      @cooldown ||= cooldown_turns
    end
  end
end

class Game_Battler
  alias :kyon_ssn_gm_btlr_sk_fx :skill_effect
  def skill_effect(user, skill)
    user.refresh_skill_data(skill) if user.actor?
    kyon_ssn_gm_btlr_sk_fx(user, skill)
  end
end

class Game_Actor
  alias :kyon_ssn_gm_act_stp :setup
  alias :kyon_ssn_gm_act_sk_cn_use? :skill_can_use?
  def setup(actor_id)
    kyon_ssn_gm_act_stp(actor_id)
    @used_skills = {}
    @skill_cd = {}
    @used_skills.default = 0
    @skill_cd.default = 0
  end

  def skill_used?(skill_id)
    @used_skills[skill_id] > 0
  end

  def skill_can_use?(skill)
    return false if skill.has_cooldown? and skill_cd?(skill_id)
    return false if @used_skills[skill_id] != 0 and skill.cast_once?
    return false if @used_skills[skill_id] == 2 and skill.cast_twice?
    kyon_ssn_gm_act_sk_cn_use?(skill)
  end

  def refresh_skill_data(skill)
    @used_skills[skill.id] += 1
    @skill_cd[skill.id] = skill.cooldown
  end

  def decrease_skill_cooldowns!
    @skill_cd.keys.each {|k| @skill_cd[k] -= 1 }
    @skill_cd.delete_if {|k, v| v < 1 }
  end

  def clear_used_skills!
    @used_skills.clear
  end

  def clear_skill_cooldowns!
    @skill_cd.clear
  end
  attr_reader :used_skills, :skill_cd
end

class Game_Party
  def decrease_skill_cooldowns!
    members.each {|actor| actor.decrease_skill_cooldowns! }
  end
   
  def clear_used_skills!
    members.each {|actor| actor.clear_used_skills! }
  end

  def clear_skill_cooldowns!
    members.each {|actor| actor.clear_skill_cooldowns! }
  end
end

class Window_Skill
  include SkillColor
  def draw_item(n)
    rect = item_rect(n)
    self.contents.clear_rect(rect)
    skill = @data[n]
    return unless skill
    rect.width -= 4
    enabled = @actor.skill_can_use?(skill)
    if skill.has_cooldown? and !enabled
      draw_item_cooldown(skill, rect)
    else
      draw_item_name(skill, rect.x, rect.y, enabled)
    end
    cost = @actor.calc_mp_cost(skill)
    self.contents.draw_text(rect, cost, 2)
  end

  def draw_item_cooldown(skill, rect)
    draw_icon(skill.icon_index, rect.x, rect.y, false)
    font = self.contents.font
    turns = @actor.skill_cd[skill.id]
    key = CD_COLOR_KEYS.find {|r| r.include?(turns) }
    if key
      color = CD_COLORS[key] + [160]
      font.color.set(*color)
    else
      font.color = normal_color
      font.color.alpha = 160
    end
    self.contents.draw_text(rect.x + 24, rect.y, 172, WLH, skill.name)
  end
end

class Scene_Battle
  alias :kyon_ssn_scn_btl_st_mn :start_main
  alias :kyon_ssn_scn_btl_term :terminate
  def start_main
    $game_party.decrease_skill_cooldowns!
    kyon_ssn_scn_btl_st_mn
  end

  def terminate
    $game_party.clear_used_skills!
    $game_party.clear_skill_cooldowns!
    kyon_ssn_scn_btl_term
  end
end

Version 1.2.0

Code:
# * Super Skill Nerf VX * #
#   Scripter : Kyonides
#   v1.2.0 - 2025-09-21

# Nerf! Nerf! Nerf your favorite super duper skills!
# Even up to the point where your heroes can only use them once per battle!
# Or Cool Them Down!

# - Note Tags - #
# Cast Only Once:  <cast_only_once>
# Cast Only Twice: <cast_only_twice>
# Cooldown: <cooldown 1> or <cooldown 4> (Any positive number is fine)

# * Optional Script Calls * #

# - Just in case you want to clear this skill use limit once per call:
# $game_party.clear_used_skills!

# - Just in case you want to clear the skill cooldowns:
# $game_party.clear_skill_cooldowns!

module RPG
  class Skill
    ONLY_ONCE_NOTETAG  = /<cast_only_once>/i
    ONLY_TWICE_NOTETAG = /<cast_only_twice>/i
    SKILL_CD_NOTETAG   = /<cooldown (\d+)>/i
    def cast_once?
      @note[ONLY_ONCE_NOTETAG] != nil
    end

    def cast_twice?
      @note[ONLY_TWICE_NOTETAG] != nil
    end

    def has_cooldown?
      @note[SKILL_CD_NOTETAG] != nil
    end

    def cooldown_turns
      @note[SKILL_CD_NOTETAG]
      $1.to_i
    end

    def cooldown
      @cooldown ||= cooldown_turns
    end
  end
end

class Game_Battler
  alias :kyon_ssn_gm_btlr_sk_fx :skill_effect
  def skill_effect(user, skill)
    user.refresh_skill_data(skill) if user.actor?
    kyon_ssn_gm_btlr_sk_fx(user, skill)
  end
end

class Game_Actor
  alias :kyon_ssn_gm_act_stp :setup
  alias :kyon_ssn_gm_act_sk_cn_use? :skill_can_use?
  def setup(actor_id)
    kyon_ssn_gm_act_stp(actor_id)
    @used_skills = {}
    @skill_cd = {}
    @used_skills.default = 0
    @skill_cd.default = 0
  end

  def skill_used?(skill_id)
    @used_skills[skill_id] > 0
  end

  def skill_can_use?(skill)
    return false if skill.has_cooldown? and skill_cd?(skill_id)
    return false if @used_skills[skill_id] != 0 and skill.cast_once?
    return false if @used_skills[skill_id] == 2 and skill.cast_twice?
    kyon_ssn_gm_act_sk_cn_use?(skill)
  end

  def refresh_skill_data(skill)
    @used_skills[skill.id] += 1
    @skill_cd[skill.id] = skill.cooldown
  end

  def decrease_skill_cooldowns!
    @skill_cd.keys.each {|k| @skill_cd[k] -= 1 }
    @skill_cd.delete_if {|k, v| v < 1 }
  end

  def clear_used_skills!
    @used_skills.clear
  end

  def clear_skill_cooldowns!
    @skill_cd.clear
  end
  attr_reader :used_skills, :skill_cd
end

class Game_Party
  def decrease_skill_cooldowns!
    members.each {|actor| actor.decrease_skill_cooldowns! }
  end
   
  def clear_used_skills!
    members.each {|actor| actor.clear_used_skills! }
  end

  def clear_skill_cooldowns!
    members.each {|actor| actor.clear_skill_cooldowns! }
  end
end

class Scene_Battle
  alias :kyon_ssn_scn_btl_st_mn :start_main
  alias :kyon_ssn_scn_btl_term :terminate
  def start_main
    $game_party.decrease_skill_cooldowns!
    kyon_ssn_scn_btl_st_mn
  end

  def terminate
    $game_party.clear_used_skills!
    $game_party.clear_skill_cooldowns!
    kyon_ssn_scn_btl_term
  end
end


Terms & Conditions

Free as in Beer beer for non commercial games. Gamer
Include my nickname in your game credits.
Thank Opozorilo for making the script request. (Optional aka a Joke)
That's it! Tongue sticking out
"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]
[Image: SP1-Writer.png]
[Image: SP1-Poet.png]
[Image: SP1-PixelArtist.png]
[Image: 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! Laughing + Tongue sticking out

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
Reply
#2
Script Update!

Starting from version 1.1.0 you can now use or abuse of its brand new feature: Slayne Ghim skill cooldowns! Shocked

NEW NOTE TAG:
Code:
<cooldown 1>
<cooldown 4>

If you want to clear the cooldowns ingame, use this:
Code:
$game_party.clear_skill_cooldowns!
"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]
[Image: SP1-Writer.png]
[Image: SP1-Poet.png]
[Image: SP1-PixelArtist.png]
[Image: 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! Laughing + Tongue sticking out

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
Reply
#3
Skill Updated Once Again!

In version 1.2.0 you can now change the color of the skill name and its SP cost at will! Shocked
At least while it is still Frozen cooling down. Laughing

Just go to the SkillColor module and edit its CD_COLORS hash. Winking

This is how the module looks like in its default state:

Code:
module SkillColor
  CD_COLORS = {} # Leave this line alone!
  # CD_COLORS[TurnsMin..TurnsMax] = [Red, Green, Blue]
  # Example: CD_COLORS[1..1] = [255, 255, 255] # For a Single Turn
  CD_COLORS[1..2] = [255, 255, 0]
  CD_COLORS[3..4] = [255, 165, 0]
  CD_COLORS[5..8] = [255, 60, 0]
  CD_COLOR_KEYS = CD_COLORS.keys.sort{|a, b| a.min <=> b.min }.reverse
end
"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]
[Image: SP1-Writer.png]
[Image: SP1-Poet.png]
[Image: SP1-PixelArtist.png]
[Image: 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! Laughing + Tongue sticking out

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
Reply
#4
Game Development is ALL About Nerfing!

Well, this time I've come back to update the normal version and its colored counterpart. Shocked

Thinking What new feature does it include now?

It now lets Slayne cast a skill twice only! Shocked

Just leave this note in the skill's note box:
Code:
<cast_only_twice>

Happy with a sweat Not really what you were expecting, is it?
Who Knows? Who cares? Somebody else might need that brand new feature at some point.
"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]
[Image: SP1-Writer.png]
[Image: SP1-Poet.png]
[Image: SP1-PixelArtist.png]
[Image: 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! Laughing + Tongue sticking out

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
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
   Ekuipment's Skill Damage ACE kyonides 1 1,792 03-15-2025, 02:32 AM
Last Post: kyonides
   Skill Roulette VX + ACE kyonides 0 1,061 10-04-2024, 06:43 AM
Last Post: kyonides
   Skill Item Kost ACE kyonides 0 2,341 01-03-2024, 12:07 AM
Last Post: kyonides
   Skill Success Fix Taylor 0 6,568 03-23-2015, 12:15 PM
Last Post: Taylor
   Vampyr's SBABS DVV Addon #1: HUD Item Counter & Skill Delay Bar DerVVulfman 1 8,320 06-19-2012, 03:15 AM
Last Post: DerVVulfman
   Custom Skill Algorithms Lowell 0 6,120 12-07-2008, 05:45 PM
Last Post: Lowell
   Skill Delay VX DerVVulfman 0 6,296 03-06-2008, 04:29 AM
Last Post: DerVVulfman



Users browsing this thread: 1 Guest(s)