Single Quest Title ACE
by Kyonides
Introduction
A forumer once asked any of the available scripters to come up with a way to show the current quest's title on screen the same way the map name is displayed on the map.
Well, now it is possible!

The user also wanted to use some game variables that I hate a lot, but there is one that will hold the title until it gets replaced by a new one.
Here are the list of available Constants:
- HIDE_WHEN_ZERO - true or false
 
- SWITCH_ID - switch in charge or showing or hiding the quest title window
 
- VAR_ID - variable holding the quest title
 
- WINDOW_X, WINDOW_Y, WINDOW_WIDTH and WINDOW_HEIGHT constants are self evident.
 
This script has only 2 script calls, the second one is usually optional.
- Set New Title:
 new_quest_title("Quest Name")
 
- Repeat the Most Recent Title:
 repeat_quest_title!
 
The Script
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
endTerms & Conditions
Free for use in any game.
Include my nickname in your game credits.
Don't adopt stray cats nor sleeping beauties nor undead fans nor blue squirrels even if they desperately need to drink a cup of coffee!
That's it!
"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]](https://www.save-point.org/images/userbars/SP1-Scripter.png)
![[Image: SP1-Writer.png]](https://www.save-point.org/images/userbars/SP1-Writer.png)
![[Image: SP1-Poet.png]](https://www.save-point.org/images/userbars/SP1-Poet.png)
![[Image: SP1-PixelArtist.png]](https://www.save-point.org/images/userbars/SP1-PixelArtist.png)
![[Image: SP1-Reporter.png]](https://i.postimg.cc/GmxWbHyL/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!
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
	
	
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]](https://www.save-point.org/images/userbars/SP1-Scripter.png)
![[Image: SP1-Writer.png]](https://www.save-point.org/images/userbars/SP1-Writer.png)
![[Image: SP1-Poet.png]](https://www.save-point.org/images/userbars/SP1-Poet.png)
![[Image: SP1-PixelArtist.png]](https://www.save-point.org/images/userbars/SP1-PixelArtist.png)
![[Image: SP1-Reporter.png]](https://i.postimg.cc/GmxWbHyL/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!

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

 
 
 Single Quest Title ACE
 Single Quest Title ACE
 

 
 
 