Code:
#============================================================================== 
# Slip SP Damage
#============================================================================== 
#============================================================================== 
# ** Scene_Battle
#------------------------------------------------------------------------------
#==============================================================================
class Scene_Battle
  alias refresh_sp_phase refresh_phase
  def refresh_phase(battler)
    if battler.sp > 0 and battler.slip_sp_damage?
      battler.slip_sp_damage_effect
      battler.damage_pop["slip_sp"] = true
    end
    refresh_sp_phase(battler)
  end
end
#==============================================================================
# ** Game_Battler
#------------------------------------------------------------------------------
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# * Effective application of slip sp damage
#--------------------------------------------------------------------------
  def slip_sp_damage_effect
    # Setting the damage
    self.damage_sp["slip_sp"] = self.maxsp / 10
    # Dispersion
    if self.damage_sp["slip_sp"].abs > 0
      amp = [self.damage_sp["slip_sp"].abs * 15 / 100, 1].max
      self.damage_sp["slip_sp"] += rand(amp+1) + rand(amp+1) - amp
    end
    # From SP damage subtraction
    self.sp -= self.damage_sp["slip_sp"]
    # Method end
    return true
  end
#--------------------------------------------------------------------------
# * Determine [Slip Sp Damage] States
#--------------------------------------------------------------------------
  def slip_sp_damage?
    for i in @states
      if $data_states[i].id == 3#<=================== Slip state id
        return true
      end
    end
    return false
  end
 
end
 
#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
#==============================================================================
class Game_Party
  alias map_slip_sp_damage check_map_slip_damage
  #--------------------------------------------------------------------------
  # * Slip Damage Check (for map)
  #--------------------------------------------------------------------------
  def check_map_slip_damage
    for actor in @actors
      if actor.sp > 0 and actor.slip_sp_damage?
        actor.sp -= [actor.maxsp / 100, 1].max
        $game_screen.start_flash(Color.new(255,0,0,128), 4)
      end
    end
    map_slip_sp_damage
  end
end