Graphics -
- Orange/brownish cave battleback and bases
- Sprites for player character Alice, an older fisherwoman. Contains trainer sprite, trainer back sprite walk sprite, run sprite, and down-facing fishing sprite.
- Sprites for unnamed Ghost-type Gym Leader. Contains trainer sprite and overworld sprite.
- Sprites for unnamed professor. (Unused) Contains overworld sprite.
- A character sheet with the gems from the default Cave tileset, to make it easier to use in events.
- Item icon for Fission Stone
- Sprites for six Fakemon, fissions of Gyarados, Aegislash, and Parasect. Front and back, shiny and regular. (No icons) Partial overworld sheet for the Parasect fission.
- Fishing license-style trainer card UI and tackle box-style bag UI. This post will be updated with the scripts used with these!
- Splash graphic for "This game should only be downloaded from Relic Castle" (+ a version without the "made for Jam 9" note)
- Load panels for the changed load UI
- Title graphics and game icon in case you wanted to steal the name from us I guess
- The PBS for the Fission forms (will update here with the Fission script and explanation on how to use!)
- The PBS for the PhoenixDex moves used (though, really, you should just check out my PhoenixDex pack)
Chapter/Alt Load UI Script
Just paste in a new script section above Main!
			
				Ruby:
			
		
		
		class Player < Trainer
  attr_accessor :chapter
  attr_accessor :chapter_number
  attr_accessor :chapter_name
end
def pbSetChapter(number,name)
  $player.chapter_number = number
  $player.chapter_name = name
end
class PokemonLoadPanel < Sprite
  def refresh
    return if @refreshing
    return if disposed?
    @refreshing = true
    if !self.bitmap || self.bitmap.disposed?
      self.bitmap = Bitmap.new(@bgbitmap.width, 160)
      pbSetSystemFont(self.bitmap)
    end
    if @refreshBitmap
      @refreshBitmap = false
      self.bitmap&.clear
      if @isContinue
        self.bitmap.blt(0, 0, @bgbitmap.bitmap, Rect.new(0, (@selected) ? 160 : 0, @bgbitmap.width, 160))
      else
        self.bitmap.blt(0, 0, @bgbitmap.bitmap, Rect.new(0, 320 + ((@selected) ? 46 : 0), @bgbitmap.width, 46))
      end
      textpos = []
      if @isContinue
        textpos.push([@title, 32, 16, :left, TEXT_COLOR, TEXT_SHADOW_COLOR])
        textpos.push([_INTL("Time:"), 32, 182, :left, TEXT_COLOR, TEXT_SHADOW_COLOR])
        hour = @totalsec / 60 / 60
        min  = @totalsec / 60 % 60
        if hour > 0
          textpos.push([_INTL("{1}h {2}m", hour, min), 206, 182, :right, TEXT_COLOR, TEXT_SHADOW_COLOR])
        else
          textpos.push([_INTL("{1}m", min), 206, 182, :right, TEXT_COLOR, TEXT_SHADOW_COLOR])
        end
        if @trainer.male?
          textpos.push([@trainer.name, 92, 70, :left, MALE_TEXT_COLOR, MALE_TEXT_SHADOW_COLOR])
        elsif @trainer.female?
          textpos.push([@trainer.name, 92, 70, :left, FEMALE_TEXT_COLOR, FEMALE_TEXT_SHADOW_COLOR])
        else
          textpos.push([@trainer.name, 92, 70, :left, TEXT_COLOR, TEXT_SHADOW_COLOR])
        end
        if @trainer.chapter_number
          textpos.push([_INTL("Chapter ") + @trainer.chapter_number + ": " + @trainer.chapter_name, 388, 70, :right, TEXT_COLOR, TEXT_SHADOW_COLOR])
        end
        mapname = pbGetMapNameFromId(@mapid)
        mapname.gsub!(/\\PN/, @trainer.name)
        textpos.push([mapname, 386, 16, :right, TEXT_COLOR, TEXT_SHADOW_COLOR])
      else
        textpos.push([@title, 32, 14, :left, TEXT_COLOR, TEXT_SHADOW_COLOR])
      end
      pbDrawTextPositions(self.bitmap, textpos)
    end
    @refreshing = false
  end
end
class PokemonLoad_Scene
 
  def pbSetParty(trainer)
    return if !trainer || !trainer.party
    meta = GameData::PlayerMetadata.get(trainer.character_ID)
    if meta
      filename = pbGetPlayerCharset(meta.walk_charset, trainer, true)
      @sprites["player"] = TrainerWalkingCharSprite.new(filename, @viewport)
      if !@sprites["player"].bitmap
        raise _INTL("Player character {1}'s walking charset was not found (filename: \"{2}\").", trainer.character_ID, filename)
      end
      charwidth  = @sprites["player"].bitmap.width
      charheight = @sprites["player"].bitmap.height
      @sprites["player"].x = 112 - (charwidth / 8)
      @sprites["player"].y = 112 - (charheight / 8)
      @sprites["player"].z = 99999
    end
    trainer.party.each_with_index do |pkmn, i|
      @sprites["party#{i}"] = PokemonIconSprite.new(pkmn, @viewport)
      @sprites["party#{i}"].setOffset(PictureOrigin::CENTER)
      @sprites["party#{i}"].x = 112 + (60 * i)
      @sprites["party#{i}"].y = 162
      @sprites["party#{i}"].z = 99999
    end
  end
 
end
class PokemonSave_Scene
  def pbStartScreen
    @viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
    @viewport.z = 99999
    @sprites = {}
    totalsec = $stats.play_time.to_i
    hour = totalsec / 60 / 60
    min = totalsec / 60 % 60
    mapname = $game_map.name
    if $player.male?
      text_tag = shadowc3tag(MALE_TEXT_BASE, MALE_TEXT_SHADOW)
    elsif $player.female?
      text_tag = shadowc3tag(FEMALE_TEXT_BASE, FEMALE_TEXT_SHADOW)
    else
      text_tag = shadowc3tag(OTHER_TEXT_BASE, OTHER_TEXT_SHADOW)
    end
    location_tag = shadowc3tag(LOCATION_TEXT_BASE, LOCATION_TEXT_SHADOW)
    loctext = location_tag + "<ac>" + mapname + "</ac></c3>"
    loctext += _INTL("Player") + "<r>" + text_tag + $player.name + "</c3><br>"
    if hour > 0
      loctext += _INTL("Time") + "<r>" + text_tag + _INTL("{1}h {2}m", hour, min) + "</c3><br>"
    else
      loctext += _INTL("Time") + "<r>" + text_tag + _INTL("{1}m", min) + "</c3><br>"
    end
    if $player.chapter_number
      loctext += "<ac> Ch " + $player.chapter_number + ": " + $player.chapter_name + "</ac></c3>"
    end
    @sprites["locwindow"] = Window_AdvancedTextPokemon.new(loctext)
    @sprites["locwindow"].viewport = @viewport
    @sprites["locwindow"].x = 0
    @sprites["locwindow"].y = 0
    @sprites["locwindow"].width = 228 if @sprites["locwindow"].width < 228
    @sprites["locwindow"].visible = true
  end
 
endThen just replace loadpanels.png in Graphics/UI/Load with the file included in this resource pack! This will make the load panel and save prompt look like this!
This is aimed for less traditional fangames - stuff where you're not keeping track of badges, dex count, etc., and just progressing through a story.
Right now, there's only one utility script -
pbSetChapter(number,name). Both are strings - for example, in this demo, I used pbSetChapter("1","Sea/Sky"). Chapter numbers are strings instead of integers so you could set something like "Ch ?", but this means that they can't be easily checked/compared, I might update this with a utility script in the future. (There's also nothing for displaying the chapter change - I just did a black screen + Show Text command - but you may be interested in Somersault's Chapters plugin)Fishing License UI
In UI_TrainerCard, find this line -
			
				Ruby:
			
		
		
		    @sprites["trainer"] = IconSprite.new(336, 112, @viewport)
			
				Ruby:
			
		
		
		    @sprites["trainer"] = IconSprite.new(336, 162, @viewport)Further down, find this section -
			
				Ruby:
			
		
		
		  def pbDrawTrainerCardFront
    overlay = @sprites["overlay"].bitmap
    overlay.clear
    baseColor   = Color.new(72, 72, 72)
    shadowColor = Color.new(160, 160, 160)
    totalsec = $stats.play_time.to_i
    hour = totalsec / 60 / 60
    min = totalsec / 60 % 60
    time = (hour > 0) ? _INTL("{1}h {2}m", hour, min) : _INTL("{1}m", min)
    $PokemonGlobal.startTime = Time.now if !$PokemonGlobal.startTime
    starttime = _INTL("{1} {2}, {3}",
                      pbGetAbbrevMonthName($PokemonGlobal.startTime.mon),
                      $PokemonGlobal.startTime.day,
                      $PokemonGlobal.startTime.year)
    textPositions = [
      [_INTL("Name"), 34, 70, :left, baseColor, shadowColor],
      [$player.name, 302, 70, :right, baseColor, shadowColor],
      [_INTL("ID No."), 332, 70, :left, baseColor, shadowColor],
      [sprintf("%05d", $player.public_ID), 468, 70, :right, baseColor, shadowColor],
      [_INTL("Money"), 34, 118, :left, baseColor, shadowColor],
      [_INTL("${1}", $player.money.to_s_formatted), 302, 118, :right, baseColor, shadowColor],
      [_INTL("Pokédex"), 34, 166, :left, baseColor, shadowColor],
      [sprintf("%d/%d", $player.pokedex.owned_count, $player.pokedex.seen_count), 302, 166, :right, baseColor, shadowColor],
      [_INTL("Time"), 34, 214, :left, baseColor, shadowColor],
      [time, 302, 214, :right, baseColor, shadowColor],
      [_INTL("Started"), 34, 262, :left, baseColor, shadowColor],
      [starttime, 302, 262, :right, baseColor, shadowColor]
    ]
    pbDrawTextPositions(overlay, textPositions)
    x = 72
    region = pbGetCurrentRegion(0) # Get the current region
    imagePositions = []
    8.times do |i|
      if $player.badges[i + (region * 8)]
        imagePositions.push(["Graphics/UI/Trainer Card/icon_badges", x, 310, i * 32, region * 32, 32, 32])
      end
      x += 48
    end
    pbDrawImagePositions(overlay, imagePositions)
  end
			
				Ruby:
			
		
		
		  def pbDrawTrainerCardFront
    overlay = @sprites["overlay"].bitmap
    overlay.clear
    baseColor   = Color.new(72, 72, 72)
    shadowColor = Color.new(160, 160, 160)
    totalsec = $stats.play_time.to_i
    hour = totalsec / 60 / 60
    min = totalsec / 60 % 60
    time = (hour > 0) ? _INTL("{1}h {2}m", hour, min) : _INTL("{1}m", min)
    $PokemonGlobal.startTime = Time.now if !$PokemonGlobal.startTime
    starttime = _INTL("{1} {2}, 20XX",
                      pbGetAbbrevMonthName($PokemonGlobal.startTime.mon),
                      $PokemonGlobal.startTime.day)
    textPositions = [
      [_INTL("Name"), 46, 168, :left, baseColor, shadowColor],
      [$player.name, 286, 168, :right, baseColor, shadowColor],
      [_INTL("ID No."), 46, 218, :left, baseColor, shadowColor],
      [sprintf("%05d", $player.public_ID), 286, 218, :right, baseColor, shadowColor],
      [_INTL("Money"), 46, 268, :left, baseColor, shadowColor],
      [_INTL("${1}", $player.money.to_s_formatted), 286, 268, :right, baseColor, shadowColor],
      [_INTL("Expires"), 46, 316, :left, baseColor, shadowColor],
      [starttime, 286, 316, :right, baseColor, shadowColor]
    ]
    pbDrawTextPositions(overlay, textPositions)
  endAnd there you have it!
For Gone Fission, I hard-coded the last name as part of the UI by adding it to the trainer name here -
			
				Ruby:
			
		
		
		      [$player.name + " Mae-Annfield", 286, 168, :right, baseColor, shadowColor],- Credits
- Unnamed professor, overworld Parasect fission, and cave battleback/bases are by TechSkylander1518. (and the gems and bubbles too, but I don't care if you credit me, you could make those edits easily)
 
 All other assets were created by Cinnature/TheGirlWhoSitsNextToYouInChurch
 
	






