MapMaker (for RMXP)
#1
MAPMAKER
for RPGMaker XP


This is a handy-dandy little tool that you need to have!

Does it Slice?  Does it dice?  Does it take your favorite drinks and chills it with its own flavored ice cubes?  Does it bake your favorite treats and leave no trace in its non-stick surface?  Nope.  You wish....

This is a game-development tool made to create png files of the maps within your game.  While it does not render sprites, it does render every tile in your map, generating a map which it saves within a Maps folder located within your project's root folder.


DOWNLOAD LINK:

.zip   MapMaker v5 Reupload.zip (Size: 855.82 KB / Downloads: 11)
https://app.box.com/s/ti1b93kpljx3wu7khrpzr8po94nge6ic   Optional Box.com link


INSTALLATION:

Very simple.  After downloading the .Zip file, extract it into your game's root folder.

The file package contains:
  • MapMaker.exe
  • MapMaker.ini
  • MapMaker.rxdata
  • MessageIntercept.dll
  • RGSS104E.dll
  • Read Me.txt



INSTRUCTIONS:

Merely run the MapMaker.exe file and you will see a menu, the left side being the list of all the scripts in your project, and the right the render and decision windows.  

All major control is in the left side.  Clicking on a map within the map list window chooses whichever map you want to render. And after selecting the map, you may first 'Generate' the map which will eventually appear, and then 'Save' the map as a PNG file.

More in depth descriptions of the system, how it works, the INI file and more are in the Read Me.txt file



DURATION:

Okay, it may take some time to make a map. Small maps, virtually no time at all.  Large maps of 200x200 quite a bit of time.  And when it comes to actively creating and saving the PNG file, much more time is expended.  So if you have a number of large maps to create, feel free to get a bit to eat while it is running.



REMOVAL:

Well, other than the newly created Maps folder, you merely need to remove the contents from the installation package (except perhaps the RGSS104E.DLL), and very likely the log file it creates:  MapMaker.log.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)

[Image: QrnbKlx.jpg]
[Image: sGz1ErF.png]    [Image: liM4ikn.png]    [Image: fdzKgZA.png]    [Image: sj0H81z.png]
[Image: QL7oRau.png]    [Image: uSqjY09.png]    [Image: GAA3qE9.png]    [Image: 2Hmnx1G.png]    [Image: BwtNdKw.png%5B]
  Above are clickable links
Reply }
#2
BUMP

I just updated the package, now removing the need for one of the dll files.  I fixed an issue if you are running batch map conversions while not in focus, and a very detailed read me document.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)

[Image: QrnbKlx.jpg]
[Image: sGz1ErF.png]    [Image: liM4ikn.png]    [Image: fdzKgZA.png]    [Image: sj0H81z.png]
[Image: QL7oRau.png]    [Image: uSqjY09.png]    [Image: GAA3qE9.png]    [Image: 2Hmnx1G.png]    [Image: BwtNdKw.png%5B]
  Above are clickable links
Reply }
#3
As a reviewer of the Mapmaker tool, I find it completely valuable not just to export a map file, but also as a tool to allow a map PLANNING tool for use in other engines. Being able to map out levels and visualize what your map would be with the near infinite size of tiles is awesome.

With that being said, I have a simple suggestion, if it's even possible to do. 

Can there be an end script when exporting that offers the ability to...

A. Seperate the maps by the tileset layers?
B. Pictures!

Here's my thinking behind this idea.

By seperating maps by their layering, one can already preplan parallaxes and overhangs for the maps, something that could be visually assessed. It wouldn't need to be something that just always happens, as some people would still want to cut things out, but one of the more annoying parts of creating parallax maps is the idea of cutting parts of their parallax maps back out and re-entering them as a new layer. With this addon, the work would somewhat be done FOR them. 

Secondly, PICTURES! - while having characters able to be on the map, what might be a great boon, is the ability to have any pictures also appear, as unlike characters, picture layers are set, one over another, and can easily be manipulated in the editor to create composites as characters themselves can't always stand on the same tile, and when they do, having one take a z-priority over another is sometimes problematic.

Cirrently I have the ability to add the panorama and the fog or not, the characters/events or not, and even get away from the placed tiles entirely, but... beyond those settings in the INI file, I'm curious if seperating the tilemaps by their placed layer is possible, or even feasible.



Otherwise, it's a great too!!
[Image: AVvXsEga1vIr5Rx3FkoFbGo1OoMJAqgq6TeqcbpF...L3AWg=s752]

BLOG: JayVinci.blogspot.com
FORUM COMING SOON
Currently working on:
Ambitions: RPG Developer Bakin
Heart of Vox: RPG Developer Bakin
Reply }
#4
Well, what do you know about that....

You now have the ability to export maps with just the ground layer, the lower layer or the upper layer visible, not just ON/OFF.

However, pictures in a map are governed by the show-picture event, an who knows what a person will set up for rotating pictures, huds or whatnot.

So yep, the tool has once again been upgraded.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)

[Image: QrnbKlx.jpg]
[Image: sGz1ErF.png]    [Image: liM4ikn.png]    [Image: fdzKgZA.png]    [Image: sj0H81z.png]
[Image: QL7oRau.png]    [Image: uSqjY09.png]    [Image: GAA3qE9.png]    [Image: 2Hmnx1G.png]    [Image: BwtNdKw.png%5B]
  Above are clickable links
Reply }
#5
MAINTENANCE UPGRADE
 
Currently, I do not know the cause as to why the first attached download link is broken.  Hopefully, this will be looked into. However, I have uploaded a new download link for MapMaker v5
 
There was a bit of confusion with version 5, and partly my fault.  Within the .ini file for Mapmaker, you may turn on/off different features of a map with simple true/false settings.  However, that is now how one turns the tiles (ergo the drawn map) on or off.  Sadly, the tile setting was indeed set to true , and that was a goof on my part.

Actually, you use settings of 0 to 4 to handle the tiles.   A setting of 0 turns the all the tiles off.  A setting of 1 turns on the ground layer. A setting of 2 turns on the lower layer, a setting of 3 turns on the upper layer, and a setting of 4 turns on all three layers simultaneously.

And for those unaware, the instruction manual does note that you can hit [ESC] to bring up a built-in control panel to handle map options, including a "Generate All Maps" option so you don't have to do one map after the other.

The only reason for the file size difference between the defective link and current is likely my new inclusion within the ReadMe file about the tile layer handling.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)

[Image: QrnbKlx.jpg]
[Image: sGz1ErF.png]    [Image: liM4ikn.png]    [Image: fdzKgZA.png]    [Image: sj0H81z.png]
[Image: QL7oRau.png]    [Image: uSqjY09.png]    [Image: GAA3qE9.png]    [Image: 2Hmnx1G.png]    [Image: BwtNdKw.png%5B]
  Above are clickable links
Reply }
#6
As someone who had to painstakingly screenshot and assemble those to have copies of my map, this is a really invaluable tool! However, I get this error whenever I try to export a map:


Attached Files Thumbnail(s)
   
[Image: SP1-Writer.png]
[Image: SP1-PixelArtist.png]
Reply }
#7
Easy fix. Just make sure the custom Spriteset_Map includes this line:

Code:
@preview = Bitmap.new(@width, @height)

So it might say the following:

Code:
#===============================================================================
# ** Spriteset_Map
#-------------------------------------------------------------------------------
#  This class brings together map screen sprites, tilemaps, etc.
#  It's used within the Scene_Map class.
#===============================================================================

class Spriteset_Map
  attr_accessor :use_cache
  attr_reader  :til_on
  attr_reader  :cha_on
  attr_reader  :width
  attr_reader  :height
  attr_reader  :panorama
  attr_reader  :character_sprites
  attr_reader  :fog
  attr_reader  :preview
  attr_reader  :tilesize
  #-----------------------------------------------------------------------------
  # * Object Initialization
  #-----------------------------------------------------------------------------
  def initialize
    @progress = Window_Progress.new("Collecting map data")
    @use_cache = true
    @pan_on = (Settings['pan_on'] == 'true')
    @til_on = (Settings['til_on']).to_i
    @cha_on = (Settings['cha_on'] == 'true')
    @fog_on = (Settings['fog_on'] == 'true')
    @width = $game_map.width * 32
    @height = $game_map.height * 32
    @tile_cache = {}
    init_panorama                            # Initialize Panorama
    init_tilemap                              # Initialize Tilemap
    init_characters                          # Initialize Characters
    init_fog                                  # Initialize Fog
#    init_weather                              # Initialize Weather
#    init_timer                                # Initialize Timer
    @progress.dispose
    @preview = Bitmap.new(@width, @height)
    refresh_preview
  end

Later on you will find a method called refresh_preview. Below you will find the second fix. Or is it a workaround? Thinking

Code:
def refresh_preview
    @refresh = false
    @preview.dispose unless @preview.nil?
    Graphics.update
    # Set initial attempted tilesize for resulting image
    @tilesize = Settings['start_tilesize'].to_f
    # Number of times to try at the larger size before giving up
    tries = 2
    try = 0
    loop do
      # Catch "failure to create bitmap" from large size
      begin
        zoom = @tilesize / 32
        Debug.log 'Starting to refresh preview'
        # Create bitmaps representing the tilemap and assorted layers
        @preview = Bitmap.new(self.width * zoom, self.height * zoom)
        Graphics.update # Creating a large bitmap could take a while
        Debug.log 'Created bitmap'
        # Draw panorama if enabled
        Debug.log pan_on ? 'Drawing panorama...' : 'Skipping panorama'
        if pan_on
          @preview.plane_blt(@preview.rect, @panorama, @preview.rect)
          Debug.log 'Drew panorama'
        end
        # Draw tiles and characters
        tiles = []
        tiles += @tiles0.values.flatten if til_on.to_i == 1
        tiles += @tiles1.values.flatten if til_on.to_i == 2
        tiles += @tiles2.values.flatten if til_on.to_i == 3
        tiles += @tiles.values.flatten  if til_on.to_i == 4
        tiles += @char_tiles if cha_on
        progress = Window_Progress.new("Drawing preview", tiles.size, "tiles")
        i = 0
        tiles.sort.each do |tile|
          if (i += 1) % 1000 == 0
            progress.update(1000)
            Graphics.update
          end
          if @tilesize == 32
            @preview.blt(tile.sx, tile.sy, tile.bitmap, tile.rect, tile.opacity)
          else
            drect = Rect.new(tile.sx * zoom, tile.sy * zoom,
                             tile.rect.width * zoom, tile.rect.height * zoom)
            @preview.stretch_blt(drect, tile.bitmap, tile.rect, tile.opacity)
          end
        end
        progress.dispose
        Debug.log fog_on ? 'Drawing fog...' : 'Skipping fog'
        if fog_on
          @preview.plane_blt(@preview.rect, @fog, @preview.rect, @fog_opacity)
          Debug.log 'Drew fog.'
        end
        Debug.log 'Finished refreshing preview.'
        break
      rescue Exception
        progress.dispose unless progress.nil?
        @preview.dispose unless @preview.nil?
        if (try += 1) % tries == 0
          if @tilesize == 2 # If we cannot reduce the size any more
            Debug.log "Preview draw failed twice at smallest size; aborting."
            p "Cannot create preview; system resources unavailable.",
              "If you have generated other maps, try clearing the map cache."
            @preview = nil
            return false
          end
          Debug.log "Preview draw failed twice; reducing zoom to try again."
          # Reduce the tilesize until it works
          @tilesize /= 2
        end
        Debug.log "Error while drawing preview. Trying again."
      ensure
        zoom = @tilesize / 32
        Debug.log 'Starting to refresh preview'
        @preview = Bitmap.new(self.width * zoom, self.height * zoom)
      end
      Graphics.update
    end
    true
  end

How To Implement These Fixes

  1. There's a file called MapMaker.rxdata in the game's root directory. Copy it.
  2. Create a new project.
  3. Close it. Yes, close it!
  4. Remove the Scripts.rxdata file in the new project's Data folder.
  5. Rename MapMaker.rxdata as Scripts.rxdata.
  6. Copy and paste the fixes following the examples above.
  7. Save the project but DON'T playtest it.
  8. Go back to the MapMaker's root directory and run the MapMaker.exe file.

Now you can open it. Grinning
The problem is that it will throw the error after trying to generate the map. Confused
That is why I came up with the second fix aka the workaround a couple of minutes later.
Yet, there is a chance you will come across a Tile script that makes the executable crash at line 33 thanks to a TypeError bug...

I will ignore any further questions Tongue sticking out so make sure you're reading Book the instructions carefully over and over again until you get the idea.
"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]
[Image: SP1-Writer.png]
[Image: SP1-Poet.png]
[Image: SP1-PixelArtist.png]
[Image: 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! Laughing + Tongue sticking out

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
Reply }
#8
(02-24-2025, 12:02 PM)kyonides Wrote: I will ignore any further questions Tongue sticking out so make sure you're reading Book the instructions carefully over and over again until you get the idea.

Laughing Thanks, kyonides! I got it to work (the old error message no longer pops up!) But the map it generates is an empty PNG (black thumbnail, but empty once I open it).
[Image: SP1-Writer.png]
[Image: SP1-PixelArtist.png]
Reply }
#9
This is the error I get when I try to generate a map preview.
I've also tried clearing the cache (through the ESC menu) but it results in the same error and blank generated map file.


Attached Files Thumbnail(s)
   
[Image: SP1-Writer.png]
[Image: SP1-PixelArtist.png]
Reply }
#10
(02-24-2025, 03:44 PM)Ace_V Wrote: This is the error I get when I try to generate a map preview.
I've also tried clearing the cache (through the ESC menu) but it results in the same error and blank generated map file.

Your issue is related to this:

(02-16-2025, 01:37 AM)DerVVulfman Wrote: There was a bit of confusion with version 5, and partly my fault.  Within the .ini file for Mapmaker, you may turn on/off different features of a map with simple true/false settings.  However, that is now how one turns the tiles (ergo the drawn map) on or off.  Sadly, the tile setting was indeed set to true , and that was a goof on my part.

Actually, you use settings of 0 to 4 to handle the tiles.   A setting of 0 turns the all the tiles off.  A setting of 1 turns on the ground layer. A setting of 2 turns on the lower layer, a setting of 3 turns on the upper layer, and a setting of 4 turns on all three layers simultaneously.

I just checked the download.  For some reason, the corrected Ini file and updated help file was not in the package. I don't know WHY the update did not take, but...   I just re-uploaded the fixed version... fixed insofar as just fixing the INI file and update the text file.

From the INI file:

Wrong                 Correct
start_tilesize=32     start_tilesize=32

pan_on=false          pan_on=false
til_on=true           til_on=4
cha_on=false          cha_on=false
fog_on=false          fog_on=false
maninstr_on=false     maninstr_on=false

But then again, hit the [ESC] button when you have the menu up, and you can adjust values that way.
Up is down, left is right and sideways is straight ahead. - Cord "Circle of Iron", 1978 (written by Bruce Lee and James Coburn... really...)

[Image: QrnbKlx.jpg]
[Image: sGz1ErF.png]    [Image: liM4ikn.png]    [Image: fdzKgZA.png]    [Image: sj0H81z.png]
[Image: QL7oRau.png]    [Image: uSqjY09.png]    [Image: GAA3qE9.png]    [Image: 2Hmnx1G.png]    [Image: BwtNdKw.png%5B]
  Above are clickable links
Reply }


Possibly Related Threads…
Thread Author Replies Views Last Post
   (RMXP) Autotile Expanded JayRay 1 7,647 04-12-2015, 06:12 PM
Last Post: DerVVulfman
   Neko RMXP Player for Android JayRay 2 8,534 10-05-2014, 03:46 AM
Last Post: DerVVulfman
   RMXP Pool formlesstree4 7 12,836 03-20-2010, 01:31 AM
Last Post: formlesstree4



Users browsing this thread: 3 Guest(s)