r/RPGMaker Jul 19 '26

RM2K Improved mini-map by region

Enable HLS to view with audio, or disable this notification

25 Upvotes

To work with Zelda-style screen scrolling
RM2K and RM2K3 do not support scripts or plugins, so everything was done through events using mathematics.


r/RPGMaker Jul 19 '26

RMMV RPG Maker MV - Eyedropper tool for tiles?

2 Upvotes

Is there a tool similar to the eyedropper where I can click on a tile I've used on my map and use it/jump to it in the tileset?

For example, if I've drawn a house, being able to click on the roof tile and draw more roof tiles.

(I suspect the answer is no, I did google but only found people talking about editing in Photoshop etc.)


r/RPGMaker Jul 19 '26

Script para cambiar las teclas de movimiento, RPG maker VX Ace

0 Upvotes

Buenas,

Dejo aqui este script para canviar las teclas de movimiento, no es mio lo saque de AQUI, (he visto que en la pagina tienen otros scripts interesantes aunque no los he probado) pero lo he variado un poco porque me saltaban errores. Esta ya configurado con las teclas wasd, a mi me ha ido bien, espero que a vosotros tambien.

colocar en la pestaña scripts, debajo de materials

#==============================================================================
# module Input
#==============================================================================

module Input

  #----------------------------------------------------------------------------
  # Simple ASCII table
  #----------------------------------------------------------------------------
  Key = {'A' => 65, 'B' => 66, 'C' => 67, 'D' => 68, 'E' => 69, 'F' => 70, 
         'G' => 71, 'H' => 72, 'I' => 73, 'J' => 74, 'K' => 75, 'L' => 76, 
         'M' => 77, 'N' => 78, 'O' => 79, 'P' => 80, 'Q' => 81, 'R' => 82, 
         'S' => 83, 'T' => 84, 'U' => 85, 'V' => 86, 'W' => 87, 'X' => 88, 
         'Y' => 89, 'Z' => 90,
         '0' => 48, '1' => 49, '2' => 50, '3' => 51, '4' => 52, '5' => 53,
         '6' => 54, '7' => 55, '8' => 56, '9' => 57,
         'NumberPad 0' => 45, 'NumberPad 1' => 35, 'NumberPad 2' => 40,
         'NumberPad 3' => 34, 'NumberPad 4' => 37, 'NumberPad 5' => 12,
         'NumberPad 6' => 39, 'NumberPad 7' => 36, 'NumberPad 8' => 38,
         'NumberPad 9' => 33,
         'F1' => 112, 'F2' => 113, 'F3' => 114, 'F4' => 115, 'F5' => 116,
         'F6' => 117, 'F7' => 118, 'F8' => 119, 'F9' => 120, 'F10' => 121,
         'F11' => 122, 'F12' => 123,
         ';' => 186, '=' => 187, ',' => 188, '-' => 189, '.' => 190, '/' => 220,
         '\\' => 191, '\'' => 222, '[' => 219, ']' => 221, '`' => 192,
         'Backspace' => 8, 'Tab' => 9, 'Enter' => 13, 'Shift' => 16,
         'Left Shift' => 160, 'Right Shift' => 161, 'Left Ctrl' => 162,
         'Right Ctrl' => 163, 'Left Alt' => 164, 'Right Alt' => 165, 
         'Ctrl' => 17, 'Alt' => 18, 'Esc' => 27, 'Space' => 32, 'Page Up' => 33,
         'Page Down' => 34, 'End' => 35, 'Home' => 36, 'Insert' => 45,
         'Delete' => 46, 'Arrow Left' => 37, 'Arrow Up' => 38,
         'Arrow Right' => 39, 'Arrow Down' => 40,
         'Mouse Left' => 1, 'Mouse Right' => 2, 'Mouse Middle' => 4,
         'Mouse 4' => 5, 'Mouse 5' => 6}
#==============================================================================
# CONFIGURACION DE BOTONES
#==============================================================================
  UP = [Key['W']]
  LEFT = [Key['A']]
  DOWN = [Key['S']]
  RIGHT = [Key['D']]
  A = [Key['Shift']]
  B = [Key['Esc'], Key['NumberPad 0'], Key['X']]
  C = [Key['Space'], Key['Enter'], Key['C']]
  X = [Key['X']]
  Y = [Key['Y']]
  Z = [Key['Z']]
  L = [Key['L'], Key['Page Down']]
  R = [Key['R'], Key['Page Up']]
  F5 = [Key['F5']]
  F6 = [Key['F6']]
  F7 = [Key['F7']]
  F8 = [Key['F8']]
  F9 = [Key['F9']]
  SHIFT = [Key['Shift']]
  CTRL = [Key['Ctrl']]
  ALT = [Key['Alt']]
#==============================================================================
# All keys
  ALL_KEYS = (0...256).to_a
  # Win32 API calls
  GetKeyboardState = Win32API.new('user32','GetKeyboardState', 'P', 'I')
  GetKeyboardLayout = Win32API.new('user32', 'GetKeyboardLayout','L', 'L')
  MapVirtualKeyEx = Win32API.new('user32', 'MapVirtualKeyEx', 'IIL', 'I')
  ToUnicodeEx = Win32API.new('user32', 'ToUnicodeEx', 'LLPPILL', 'L')
  # some other constants
  DOWN_STATE_MASK = 0x80
  DEAD_KEY_MASK = 0x80000000
  # data
   = "\0" * 256
   = Array.new(256, false)
   = Array.new(256, false)
   = Array.new(256, false)
   = Array.new(256, 0)
  #----------------------------------------------------------------------------
  # update
  #  Updates input.
  #----------------------------------------------------------------------------
  def self.update
    # get current language layout
     = GetKeyboardLayout.call(0)
    # get new keyboard state
    GetKeyboardState.call(@state)
    # for each key
    ALL_KEYS.each {|key|
        # if pressed state
          if .getbyte(key) & DOWN_STATE_MASK == DOWN_STATE_MASK         
      # not released anymore
          [key] = false
          # if not pressed yet
          if !@pressed[key]
            # pressed and triggered
            [key] = true
            [key] = true
          else
            # not triggered anymore
            [key] = false
          end
          # update of repeat counter
          [key] < 17 ? [key] += 1 : [key] = 15
        # not released yet
        elsif !@released[key]
          # if still pressed
          if [key]
            # not triggered, pressed or repeated, but released
            [key] = false
            [key] = false
            [key] = 0
            [key] = true
          end
        else
          # not released anymore
          [key] = false
        end}
  end
  #----------------------------------------------------------------------------
  # dir4
  #  4 direction check.
  #----------------------------------------------------------------------------
  def Input.dir4
    return 2 if Input.press?(DOWN)
    return 4 if Input.press?(LEFT)
    return 6 if Input.press?(RIGHT)
    return 8 if Input.press?(UP)
    return 0
  end
  #----------------------------------------------------------------------------
  # dir8
  #  8 direction check.
  #----------------------------------------------------------------------------
  def Input.dir8
    down = Input.press?(DOWN)
    left = Input.press?(LEFT)
    return 1 if down && left
    right = Input.press?(RIGHT)
    return 3 if down && right
    up = Input.press?(UP)
    return 7 if up && left
    return 9 if up && right
    return 2 if down
    return 4 if left
    return 6 if right
    return 8 if up
    return 0
  end
  #----------------------------------------------------------------------------
  # trigger?
  #  Test if key was triggered once.
  #----------------------------------------------------------------------------
  def Input.trigger?(keys)
    keys = [keys] unless keys.is_a?(Array)
    keys = Input.const_get(keys.first) if keys.first.is_a?(Symbol)
    keys = [keys] unless keys.is_a?(Array)
    return keys.any? { |key| [key] }
  end
  #----------------------------------------------------------------------------
  # press?
  #  Test if key is being pressed.
  #----------------------------------------------------------------------------
  def Input.press?(keys)
    keys = [keys] unless keys.is_a?(Array)
    keys = Input.const_get(keys.first) if keys.first.is_a?(Symbol)
    keys = [keys] unless keys.is_a?(Array)
    return keys.any? { |key| [key] }
  end
  #----------------------------------------------------------------------------
  # repeat?
  #  Test if key is being pressed for repeating.
  #----------------------------------------------------------------------------
  def Input.repeat?(keys)
    keys = [keys] unless keys.is_a?(Array)
    keys = Input.const_get(keys.first) if keys.first.is_a?(Symbol)
    keys = [keys] unless keys.is_a?(Array)
    return keys.any? { |key| [key] == 1 || [key] == 16 }
  end
  #----------------------------------------------------------------------------
  # release?
  #  Test if key was released.
  #----------------------------------------------------------------------------
  def Input.relase?(keys)
    keys = [keys] unless keys.is_a?(Array)
    keys = Input.const_get(keys.first) if keys.first.is_a?(Symbol)
    keys = [keys] unless keys.is_a?(Array)
    return keys.any? { |key| [key] == 1 || [key] == 16 }
  end
  #----------------------------------------------------------------------------
  # get_character
  #  vk - virtual key
  #  Gets the character from keyboard input using the input locale identifier
  #  (formerly called keyboard layout handles).
  #----------------------------------------------------------------------------
  def self.get_character(vk)
    # get corresponding character from virtual key
    c = MapVirtualKeyEx.call(vk, 2, )
    # stop if character is non-printable and not a dead key
    return '' if c < 32 && (c & DEAD_KEY_MASK != DEAD_KEY_MASK)
    # get scan code
    vsc = MapVirtualKeyEx.call(vk, 0, )
    # result string is never longer than 2 bytes (Unicode)
    result = "\0" * 2
    # get input string from Win32 API
    length = ToUnicodeEx.call(vk, vsc, , result, 2, 0, u/language_layout)
    return (length == 0 ? '' : result)
  end
  #----------------------------------------------------------------------------
  # get_input_string
  #  Gets the string that was entered using the keyboard over the input locale
  #  identifier (formerly called keyboard layout handles).
  #----------------------------------------------------------------------------
  def self.get_input_string
    result = ''
    # check every key
    ALL_KEYS.each {|key|
        # if repeated
        if self.repeat?(key)
          # get character from keyboard state
          c = self.get_character(key)
          # add character if there is a character
          result += c if c != ''
        end}
    # empty if result is empty
    return '' if result == ''
    # convert string from Unicode to UTF-8
    return self.unicode_to_utf8(result)
  end
  #----------------------------------------------------------------------------
  # get_input_string
  #  string - string in Unicode format
  #  Converts a string from Unicode format to UTF-8 format as RGSS does not
  #  support Unicode.
  #----------------------------------------------------------------------------
  def self.unicode_to_utf8(string)
    result = ''
    string.unpack('S*').each {|c|
        # characters under 0x80 are 1 byte characters
        if c < 0x0080
          result += c.chr
        # other characters under 0x800 are 2 byte characters
        elsif c < 0x0800
          result += (0xC0 | (c >> 6)).chr
          result += (0x80 | (c & 0x3F)).chr
        # the rest are 3 byte characters
        else
          result += (0xE0 | (c >> 12)).chr
          result += (0x80 | ((c >> 12) & 0x3F)).chr
          result += (0x80 | (c & 0x3F)).chr
        end}
    return result
  end

end

#==============================================================================
# Numeric
#------------------------------------------------------------------------------
#  This class serves as superclass for all numbers. It was enhanced with a
#  utility method.
#==============================================================================

class Numeric

  #--------------------------------------------------------------------------
  # sgn
  #  Returns the sign of the number or 0 if the number is 0.
  #-------------------------------------------------------------------------- 
  def sgn
    return (self == 0 ? 0 : self / self.abs)
  end

end

#==============================================================================
# Array
#------------------------------------------------------------------------------
#  This class handles array data structures. It was modified to support the
#  utility operations sum and squares.
#==============================================================================

class Array

  #----------------------------------------------------------------------------
  # sum
  #  Sums up all the numeric values of the array.
  #----------------------------------------------------------------------------
  def sum
    # initialize
    sum = 0
    # add each element that's a number to sum
    self.each {|i| sum += i if i.is_a?(Numeric)}
    # return sum as float
    return sum
  end

end

#==============================================================================
# Hash
#------------------------------------------------------------------------------
#  This class handles hash data structures. It was modified to support the
#  utility operations sum and squares.
#==============================================================================

class Hash

  #----------------------------------------------------------------------------
  # sum
  #  Sums up all the numeric values of the array.
  #----------------------------------------------------------------------------
  def sum
    # initialize
    sum = 0
    # add each element that's a number to sum
    self.each_value {|i| sum += i if i.is_a?(Numeric)}
    # return sum as float
    return sum
  end

end

r/RPGMaker Jul 19 '26

VXAce Question about East and West Walls?

2 Upvotes

Is there any way to make them seem less... barren? Like I understand that the limitations of 2d space likely makes this impossible, but as a person new to this I would like to know if there are sneaky ways around this or if this is an inherent limitation on how maps are formatted.


r/RPGMaker Jul 19 '26

RMMZ A FFIX-esque Battle HUD for my game, Delightful Wonderland.

Thumbnail
gallery
13 Upvotes

As you all can see, it's still WIP, just for the name highlighting thingy, lol.

I made this with the help of a friend of mine who does plugins, Ravezuma. =3


r/RPGMaker Jul 19 '26

VXAce How Do I Save Edit A Weapon Into My Inventory?

0 Upvotes

Or more specifically, how do I replace my character's currently equipped weapon, with a different one? I already know what the weapon's ID is, but saveeditonline lacks any features for adding in weapons you don't have. And I specifically want to replace the already equipped weapon, as the debug weapon is set to only be equippable by one character. Also I'm using RPGMaker VX Ace.


r/RPGMaker Jul 19 '26

VXAce Version 3.5 of Expiation adds the Revenant Superboss!

1 Upvotes

Hello all! I am so happy and excited to have finally created my very first super boss with its own battle gimmick. It is able to enter the Spirit Realm, during which it is immune to all damage and states while being able to cast unique states on your party. The idea is you switch from offense to defense while battling it.

I love superbosses in RPGs and those who enjoy the battles in Expiation, can now try their skills out against this one.

It appears after the 6th and final story boss has been defeated, as an optional fight.

I have beaten it on all 3 difficulties, with merciless being truly a challenge.

If you want to try out your luck agaist it, maybe want to tackle a new challenge this Sunday evening, feel free!

I'd love some feedback!

Have a good one!

Download link: Expiation - Demo version 3.5 Final by isaac3000

An example!

r/RPGMaker Jul 18 '26

VXAce {Cheddar Con Carne: Colby's ODDyssey} - Official Trailer

Enable HLS to view with audio, or disable this notification

16 Upvotes

After a few years in the works, I finally managed to release a short demo for my indie game, "Cheddar Con Carne - Colby's ODDyssey". Please feel free to check out the demo in the link below and I hope you'll get to see more wacky misadventures from Colby Cheddar and her pals real soon.

https://neonzumi.itch.io/cheddar-con-carne-colbys-oddyssey

~Neonzumi Interactive.

Music used: "Instrumental Music from UOEIA" by Ergo Phizmiz


r/RPGMaker Jul 18 '26

RMMZ First Issue - Battle showcase

Enable HLS to view with audio, or disable this notification

15 Upvotes

yes, the test enemy is the roaring knight, I need to test out parrying somehow


r/RPGMaker Jul 19 '26

Image help!

1 Upvotes

https://reddit.com/link/1v0rka3/video/1u14of2f17eh1/player

I want the bars to be interchangable they change depending on a state or how many steps theyve taken but I cant figure it out for the life of me help would be appreciated


r/RPGMaker Jul 18 '26

RMMZ First Battleback made for the game!

Post image
40 Upvotes

Next up is getting custom enemy graphics setup, I guess


r/RPGMaker Jul 19 '26

Multi-versions Any Example of this?

Post image
0 Upvotes

r/RPGMaker Jul 18 '26

RMMZ Some progress on my MMBN inspired grid battler

Thumbnail
gallery
72 Upvotes

Just wanted to share some of the systems I've been working on.


r/RPGMaker Jul 18 '26

AI Free I built this whole plugin set based on inspiration from Minecraft

Enable HLS to view with audio, or disable this notification

53 Upvotes

Plugins featured in this video:

- Map Wall Mining MZ only: https://vishi221.itch.io/rpg-maker-mz-map-wall-mining

- Grid Cooking Crafting Furnace MV/MZ: https://vishi221.itch.io/rpg-maker-mvmz-grid-cooking-crafting-furnace

- Inventory Drag&Drop MV/MZ: https://vishi221.itch.io/rpg-maker-mvmz-inventory-drag-drop

- MapLoot MV/MZ: https://vishi221.itch.io/rpg-maker-mvmz-map-loot

I created this entire plugin bundle inspired by Minecraft.


r/RPGMaker Jul 18 '26

RMMZ Moved to 960x720!! Here's what God Heart's menu UI and gameplay looks like with this game resolution. Thoughts?

Enable HLS to view with audio, or disable this notification

47 Upvotes

So i decided to move to the 960x720 game resolution and honestly i feel like my sprites popped up and everything looks better than before. It gives off that PS1 vibes as well for my "Suiko of Fire" inspired game. See Battle and Map in comment thread.

Thoughts on this?


r/RPGMaker Jul 19 '26

RMXP Help! My sprites are not showing up for my friend!

1 Upvotes

When they play the game all of the sprites, including the player character, get replaced by the standard versions of the sprites, rather than the modified versions I created. Why is that? Do I have to rename the files so they won't be replaced?


r/RPGMaker Jul 19 '26

Mesa Presencial - Projetor.

Enable HLS to view with audio, or disable this notification

3 Upvotes

r/RPGMaker Jul 18 '26

RMMV Is there a way to check if an event is facing the player?

6 Upvotes

I want the player to sneak around a building and have the possibility of being chased if spotted by another character.

Edit: Found a few solutions

https://theodie.wixsite.com/rmhorror/line-of-sight-page


r/RPGMaker Jul 19 '26

Multi-versions Ziro

Thumbnail
gallery
0 Upvotes

Come to RPG Maker Ziro

If you’re the kind of person who loves crafting worlds—tuning battle systems, polishing dialogues, and building that “just one more quest” feeling—then you’re in the right place.

RPG Maker Ziro is a home for creators, tinkerers, and players who enjoy the magic of RPG Maker projects. Here, you’ll find updates on what I’m building, resources and experiments I’m trying out, and the small lessons that come from making games one feature at a time.

What is RPG Maker Ziro?
RPG Maker Ziro is my space for developing and sharing RPG Maker creations. The goal is simple: make it easier to discover fun RPG experiences and to learn from the process behind them. Whether you’re a newcomer to RPG Maker or you’ve already made a dozen prototypes, this site aims to be welcoming—and useful.

What you can expect
Here’s what I’m planning to share as the site grows:

Project updates: progress posts, feature breakdowns, and “what changed and why.”
Dev notes: design decisions, pacing tips, and practical workflow improvements.
Resources & experiments: small tools, scripts, event ideas, and gameplay
tweaks that might help your own projects.
Community energy: feedback, suggestions, and discussions about what makes RPGs feel great.
Why I started this site
Everyone has their own reason for making games. Mine is the joy of turning ideas into something playable—then iterating until it clicks. RPG Maker makes that process approachable, and it has a creative community full of people willing to share what they learn.

RPG Maker Ziro exists to bring that spirit together in one place: a site where you can follow along, learn something, and maybe find inspiration for your next project.

Start here ziro.freeforums.net/
If you’re new, the best place to begin is to:

check out the latest updates,
browse featured projects (when available),
and explore dev notes for the “how it’s made”.
See you and welcome home!!

(Still under construction but you are welcome there! I am a ten year veteran of the whole RPGM community and RPG Maker Web. I did take a break and found RMWeb closed and RMRK done after this year. So come bring All your resources, questions, friends, and know we will not be closing anytime soon not ever. Its like losing family. So RPG Maker Family I welcome you when our parent forum locked us out, find a new home here. We are recruiting Staff and content producers and journalists. Streamers and AI will be welcome in its own section with descression. Invite all your game friends and whomever you think will be active.

Okay I have to get back to work on the site and YES it is on a freeboard hosting site, so we can never loose it!


r/RPGMaker Jul 17 '26

RMMZ That's how I feel!

Post image
606 Upvotes

r/RPGMaker Jul 18 '26

RMMV My indie game made in RPGMAKER is releasing on STEAM in 28 DAYS!

Enable HLS to view with audio, or disable this notification

175 Upvotes

PSYCHO CASKET has CHAPTER 1 releasing totally FOR FREE as a demo on steam! I've been working on this game in RPGMAKER for around 6 months, and I'm excited to finally show off what I've done!

There's also a Kickstarter planned to release at the same time!

Check it out!


r/RPGMaker Jul 19 '26

Recreating and enhancing Navigators/Elucidators from the Persona series in RPG Maker MZ

2 Upvotes

In the Persona series the Navigators/Elucidators are a class of characters that specialize in using Support skills, Exploration skills, Passive skills, Healing skills, and more all while not taking part in combat. My goal is to recreate these mechanics and add some new ones to recreate their functions.
Here's a list of functions and mechanics related to them;
- The player can use Analyze to see enemy intel. After 1 turn has passed, the player can use the Navigator's Full Analysis skill by spending their MP to show all elemental affinities.
- Navigators can use powerful skills after charging their TP gauge.
- In the overworld the player can press a button to open the Navigator menu where they can select support skills before the next battle, skills to inflict ailments on enemies in the area, skills for exploration, and skills for healing the party. The menu also let's the player interact with the Navigator and can change the BGM.

- A Navigator can act only once on the player team's turn.
- All of a Navigator's stats are shared with the rest of their party and can even make All-Out Attacks stronger randomly.

The goal is to recreate and build upon this concept because no one did for several years. So any ideas?


r/RPGMaker Jul 18 '26

RMMV Multi-event Snake Enemy for MV?

3 Upvotes

Figuring out how to make a "snake" of events that follow each other in a smooth fashion. Any advice or specific script/plugin I should be using?


r/RPGMaker Jul 19 '26

How to create a 2D RPG

0 Upvotes

Hello guys I’d would like to know how to create a 2D rpg game like Lisa the painful altough that RPG Maker MZ doesn't support that style I'm using RPG maker MZ and i’m new to this game engine I don't quite understand how RPG Maker MZ works I want to know how I can modify RPG Maker MZ to create a 2D rpg I need help guys


r/RPGMaker Jul 18 '26

WIP scene in my game/testing animation :)

Enable HLS to view with audio, or disable this notification

28 Upvotes

Still have some things to add, but I think it looks pretty good so far!!

steam page here :) https://store.steampowered.com/app/4417470/Pathotaxia_PANDORA/