• Do not use Discord to host any images you post, these links expire quickly! You can learn how to add images to your posts here.
  • The Eevee Expo Game Jam has concluded! 🎉 Head on over to the game jam forum to play through the games.
    Don't forget to come back September 21st to vote for your favorites!
  • Reminder: AI-generated content is not allowed on the forums per the Rules and Regulations. Please contact us if you have any questions!

Skipping Splash screens, Title screen and New Game/Continue screen on first start

Sirius GG

Rookie
Member
Joined
Aug 4, 2024
Posts
6
Hello there, dear EeveeExpo community!

The long title pretty much says it all:
I want to throw the player instantly into my first map when there is no existing save game in Essentials v21.1.
When the player watched the opening cutscene, gets control and saves the game for the first time the original behaviour should be restored, which means the splash screens appear, the title screen appears and the new game / continue menu appears when he restarts the game.
How can I do that?
My first idea was to wrap parts of the code with a check whether a specific switch (e.g. switch 146) which i set in the opening cutscene is set, e.g. in "Data/Scripts/016_UI/001_Non-interactive UI/001_UI_SplashesAndTitleScreen.rb" i changed
Ruby:
Expand Collapse Copy
def initialize(viewport = nil)
    super(viewport)
    @pic = addImage(0, 0, "")
    @pic.setOpacity(0, 0)        # set opacity to 0 after waiting 0 frames
    @pic2 = addImage(0, 0, "")   # flashing "Press Enter" picture
    @pic2.setOpacity(0, 0)       # set opacity to 0 after waiting 0 frames
    @index = 0
    if SPLASH_IMAGES.empty?
      open_title_screen(self, nil)
    else
      open_splash(self, nil)
    end
  end

to
Ruby:
Expand Collapse Copy
def initialize(viewport = nil)
    super(viewport)
    @pic = addImage(0, 0, "")
    @pic.setOpacity(0, 0)        # set opacity to 0 after waiting 0 frames
    @pic2 = addImage(0, 0, "")   # flashing "Press Enter" picture
    @pic2.setOpacity(0, 0)       # set opacity to 0 after waiting 0 frames
    @index = 0
    if SPLASH_IMAGES.empty?
      open_title_screen(self, nil)
    else
      if $game_switches[146] == false
        open_title_screen(self, nil)
      else
        open_splash(self, nil)
      end
    end
  end

to skip the splash screens, but the $game_switches array is still nil at this point in the program flow.

How can I make the player load directly into the first map only on the first start?

I hope you all have a wonderful day.

Best regards,
Sirius GG
 
This is my code for my game:

Ruby:
Expand Collapse Copy
class Scene_Intro
  def main
    FILE_COUNT.times do |file|
      if SaveData.exists?(file)
        Graphics.transition(0)
        @eventscene = IntroEventScene.new
        @eventscene.main
        Graphics.freeze
        return
      end
    end
    Game.start_new
  end
end

Now mine does have a save file system so it's a tad more complicated on my end, but if you remove the loop and remove the (file) from if SaveData.exists?, it should check if there's existing save data. If there is, it'll go through the IntroEventScene. If not, it'll start a new game.

No need for messing with anything in initialize.
 
Last edited:
This is my code for my game:

Ruby:
Expand Collapse Copy
class Scene_Intro
  def main
    FILE_COUNT.times do |file|
      if SaveData.exists?(file)
        Graphics.transition(0)
        @eventscene = IntroEventScene.new
        @eventscene.main
        Graphics.freeze
        return
      end
    end
    Game.start_new
  end
end

Now mine does have a save file system so it's a tad more complicated on my end, but if you remove the loop and remove the (file) from if SaveData.exists?, it should check if there's existing save data. If there is, it'll go through the IntroEventScene. If not, it'll start a new game.

No need for messing with anything in initialize.
You, sir, are brillant.
For people who want to achieve the same, here is the code for vanilla Essentials v21.1 without custom multiple save slots:

Ruby:
Expand Collapse Copy
class Scene_Intro
  def main
    if SaveData.exists?
      Graphics.transition(0)
      @eventscene = IntroEventScene.new
      @eventscene.main
      Graphics.freeze
      return
    end
    Game.start_new
  end
end

Thank you! This can be closed! :)
 
Back
Top