Code:
# * Single Quest Title ACE * # 
#  Scripter : Kyonides Arkanthes
#  2023-05-21
# This scriptlet lets you show the Current Quest Title on the map using a
# given Game Variable. The state of a certain Game Switch determines
# whether or not the window will be visible on screen.
# * Script Calls * #
# - Set New Title
# new_quest_title("Quest Name")
# - Repeat the Most Recent Title
# repeat_quest_title!
module SingleQuest
  HIDE_WHEN_ZERO = nil
  SWITCH_ID = 1
  VAR_ID = 1
  WINDOW_X = 0
  WINDOW_Y = 0
  WINDOW_WIDTH = 240
  WINDOW_HEIGHT = 56
class TitleWindow < Window_Base
  include SingleQuest
  def initialize
    super(WINDOW_X, WINDOW_Y, window_width, WINDOW_HEIGHT)
    $game_variables[VAR_ID] = "" if $game_variables[VAR_ID] == 0
    self.opacity = 0
    self.contents_opacity = 0
    @back_color1 = Color.new(0, 0, 0, 192)
    @back_color2 = Color.new(0, 0, 0, 0)
    @show_count = 0
    refresh
  end
  def window_width
    Graphics.width - WINDOW_WIDTH
  end
  def refresh
    contents.clear
    return if $game_variables[VAR_ID].empty?
    rect = contents.rect
    draw_background(rect)
    draw_text(rect, $game_variables[VAR_ID])
  end
  def draw_background(rect)
    temp_rect = rect.dup
    temp_rect.width /= 2
    contents.gradient_fill_rect(temp_rect, @back_color2, @back_color1)
    temp_rect.x = temp_rect.width
    contents.gradient_fill_rect(temp_rect, @back_color1, @back_color2)
  end
  def update_fadein
    self.contents_opacity += 16
  end
  def update_fadeout
    self.contents_opacity -= 16
  end
  def update
    super
    self.visible = $game_switches[SWITCH_ID]
    if self.visible && @show_count > 0
      update_fadein
      @show_count -= 1
    elsif HIDE_WHEN_ZERO
      update_fadeout
    end
  end
  def open
    refresh
    @show_count = 150
    self.contents_opacity = 0
    self
  end
  def close
    @show_count = 0
    self
  end
end
end
module SceneManager
  extend self
  attr_accessor :quest_window
end
class Game_Interpreter
  def new_quest_title(title)
    $game_variables[SingleQuest::VAR_ID] = title
    repeat_quest_title!
  end
  def repeat_quest_title!
    SceneManager.quest_window.open
  end
end
class Scene_Map
  alias :kyon_single_quest_scn_map_create_all_win :create_all_windows
  def create_all_windows
    kyon_single_quest_scn_map_create_all_win
    make_single_quest_window
  end
  def make_single_quest_window
    @quest_window = SingleQuest::TitleWindow.new
    SceneManager.quest_window = @quest_window
    @quest_window.open
  end
  attr_reader :quest_window
end