Save-Point
Enter Monster Message ACE - 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: Enter Monster Message ACE (/thread-13605.html)



Enter Monster Message ACE - kyonides - 06-20-2026

Enter Monster Message ACE

by Kyonides

Introduction

In the last few days of RMW, a forumer called avelanch had made a couple of requests. One of them was monster related: the engine should display a custom enter monster message before you can get access to the battle menu. This script is a very simplistic approach to the original concept.

Required Steps

  1. Create a new Constant inside the small Vocab module extension my scripts has provided you.
  2. Add a new entry to the LIST hash. Use the enemy's name as the key and any of the Vocab Constants as its specific value.

The Script(s)

Constant Version
- Because it relies on CONSTANTS to store all the custom text messages.

Code:
# * Enter Monster Message ACE * #
# * Constant Version          * #
#   Scripter : Kyonides
#   2026-06-19

module Vocab
  Bite    = "%s is ready to bite you!"
  Chewing = "%s started chewing some cheese!"
  SlipIn  = "%s slips into the battlefield!"
  Buzzing = "%s starts buzzing!"
  Bonfire = "%s lit a bonfire!"
end

module EnterMonster
  include Vocab
  LIST = {} # Leave this line alone!
  LIST.default = Emerge
  LIST["Slime"] = SlipIn
  LIST["Bat"] = Bite
  LIST["Hornet"] = Buzzing
  LIST["Spider"] = Bite
  LIST["Rat"] = Chewing
  LIST["Wisp"] = Bonfire
end

module BattleManager
  def self.find_monster_start_message(name)
    template = EnterMonster::LIST[name]
    sprintf(template, name)
  end

  def self.battle_start
    $game_system.battle_count += 1
    $game_party.on_battle_start
    $game_troop.on_battle_start
    $game_troop.all_enemy_names.each do |name|
      text = find_monster_start_message(name)
      $game_message.add(text)
    end
    if @preemptive
      $game_message.add(sprintf(Vocab::Preemptive, $game_party.name))
    elsif @surprise
      $game_message.add(sprintf(Vocab::Surprise, $game_party.name))
    end
    wait_for_message
  end
end

class Game_Troop
  def all_enemy_names
    members.map(&:original_name)
  end
end

In the future I may publish another version that relies on custom note tags placed in the enemy's notebox.

Terms & Conditions

Under MIT License.
That's it! Tongue sticking out