Save-Point
Super Skill Nerf VX - Printable Version

+- Save-Point (https://www.save-point.org)
+-- Forum: Material Development (https://www.save-point.org/forum-8.html)
+--- Forum: Scripts Database (https://www.save-point.org/forum-39.html)
+---- Forum: RPGMaker VX/VXAce (RGSS2/3) Engines (https://www.save-point.org/forum-117.html)
+---- Thread: Super Skill Nerf VX (/thread-12790.html)



Super Skill Nerf VX - kyonides - 09-06-2025

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!

Just add the Skill ID to the ONLY_ONCE_SKILL_IDS array and that's it!

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

VX Script

Code:
# * Super Skill Nerf VX * #
#   Scripter : Kyonides
#   v1.0.0 - 2025-09-06

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

# Mandatory Skill Note Tag: <cast_only_once>

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

module RPG
  class Skill
    ONLY_ONCE_NOTETAG = /<cast_only_once>/i
    def cast_only_once?
      @note[ONLY_ONCE_NOTETAG] != nil
    end
  end
end

class Game_Battler
  alias :kyon_ssn_gm_btlr_sk_fx :skill_effect
  def skill_effect(user, skill)
    user.used_skills[skill.id] = true 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 = {}
  end

  def skill_can_use?(skill)
    return false if skill.cast_only_once? and skill_used?(skill.id)
    kyon_ssn_gm_act_sk_cn_use?(skill)
  end

  def skill_used?(skill_id)
    @used_skills[skill_id] != nil
  end

  def clear_used_skills!
    @used_skills.clear
  end
  attr_reader :used_skills
end

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

class Scene_Battle
  alias :kyon_ssn_scn_btl_term :terminate
  def terminate
    $game_party.clear_used_skills!
    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