WecTools - A program that helps you make some RPG maker resources


Jul 4, 2021
Reaction score
First Language
Primarily Uses
WecTools is an RPG maker XP project I started back in 2014 that allows to use RPG maker as a program to apply some tools that allow the creation of resources for your RPG maker game.

Those tools are normal scripts based on a new script base. They can be included over the script Main as always or as a TXT file inside the folder Tools. You can also import "engines", which are little tool-based external codes.

In other words, WecTools is like an open-source graphics design software but made entirely in RPG maker XP and with options that specifically help you make resources for RPG maker.

You don't need to have RPG maker XP installed to use it, and some of its tools can be useful for any RPG maker version. That being said, it's mainly based on XP, and it's very useful to have XP installed, because that allows to see all the code, and also include extra features on it.

The initial idea was defining a DLL so rewrite some of the more consuming functions so it would work better, but that hasn't been done yet, so sadly the program will be a bit slow in some cases.

Its current version is 0.85b, and has some tools already integrated by default.
You are free to change it as you want and expand on it with new tools, which you can also share here. I also have a list of discarded ideas in case someone is interested on that.

English - WecTools 0.85b ENG.zip
Spanish - WecTools 0.85b ESP.zip

Tools included
  • Simple Image Editor
  • Sprite Sheet Editor
  • Palette Editor
  • Autotile Templates
  • RTP Doors
  • RTP Roofs
  • Moss Brush / Snow Brush / Lava Brush
  • Floor Switch
  • Easy Dithering
  • Animation Viewer + Animation Extended
  • Troop Positioner
  • WecTex Ultimate (BETA)

Features available

  • Eron's Default RTPs
  • Load Tile Support
  • Eron's File Window [Deactivated]
  • FPS Window
  • Run-Time Script Caller [Deactivated]
  • Recorder Console [Deactivated]

Wecoc - WecTools lead author
AWorks, Nishikawa, Yasuhiro - AWorks Library
newold - Point Class and Bézier method
Selwyn - Window Hidden Class (Base)
vgvgf - Input module
Glitchfinder - Keyboard and Mouse Support
Eron - Some Features and Tools

Thanks to Ledai and Eron for contributing with some interesting ideas.
Also, thanks to Orochii for helping me with some technical issues on the early phases.

Here's just a few



Currently, the guide is only partially available in Spanish here. Probably you won't need it at all.

Instead, I'll simply include here a list of some main things you can do with the default tools.

Simple Image Editor
- Basic image control: Flip, rotate, resize and change canvas size
- Apply some color control with the option to mantain the current palette
- Set the current transparent and translucent colors and activate/deactivate them on the image
- Load an external palette to the image
- Convert character format between XP/VX
- Convert autotile format between XP/VX/WolfRPGEditor
- Convert cliff format between XP/VX
- Convert windowskin format between XP/VX/MV format
- Generate XP-like cliff from a wall single tile (or group of tiles)
- Generate XP-like deep wall from a single wall tile
- Generate waterfall autotile from a water autotile and a wall tile
- Apply XP-like transitions to a graphic and save its frames individually
- Get the index of a specific tile from a tileset
- [Engine] Deconstruct an autotile to its 48 individual tiles (XP, VX, Ace)
- [Engine] Convert a RPG maker 2k/3 Windowskin to XP or VX format
- [Engine] Auto-convert blackness to transparent value in any image (for animations)
- [Engine] Apply a wave effect to a tile so it can be used as an animated water base

Palette Editor
- Swap manually colors of a palette without altering it
- Apply some color control with the option to mantain the current palette

Autotile Templates
- Create autotiles from singular tiles using templates
- Create new templates directly from default autotiles

RTP Doors
- Create XP-like doors from a closed door and (optionally) a background and a frame

RTP Roofs
- Create inclined tiling roofs from a single roof tile
- Apply the roof tiles to full tileset templates
- Make a dome using roof tiles

Floor Switch
- Create XP-like floor switches (178-Switch01 and 181-Switch04)

Animation Viewer
- Adjust frame size, and center each frame manually with a visualizer
- [Engine] Convert an animation from 2k to XP format

And more!

I hope you find this useful!
Last edited:


Jun 30, 2021
Reaction score
First Language
Primarily Uses
I just wanted to say I recommend you guys giving this a chance if you can.
I have been using this tool with my dev team for a while, and it helps a lot to make graphics more efficiently, specially autotiles, doors, and some tiles.
I'm attaching an example video on how to create an RTP-like waterfall in just a minute.



Jul 4, 2021
Reaction score
First Language
Primarily Uses
I'm attaching an example video on how to create an RTP-like waterfall in just a minute.

Thank you for the video, I appreciate it! :awink:

New version 0.85b available!
I basically updated it with a few new things I've been doing recently.

Here's the list of changes. If you already have the 0.85 and are not interested in any of those, you can perfectly wait until 0.9 (which I don't know when will release...)

- New option on Simple Image Editor: Generate Water
- New autotile format for the Autotile converter on Simple Image Editor: TileD
- New Engines for Simple Image Editor: MZ Alpha Bugfix, Smart Resizer
- New Engines for Autotile Templates: Autotile Corners, Autotile Sides, MGC ISO Autotiles.
- New Engine for Floor Switch: Break Floor.
- New Engine for Easy Dithering: Dithering Blur
- New default palettes for Load palette: 2k and MV
- Load palette option in Simple Image Editor now allows combining palettes
- Get Tile ID now supports the tileset formats of VX/Ace and MV/MZ
- The Engine Wave Effect now also supports MV tile size
- New MV roof template for RTP Roofs

Generate Water allows creating an animated autotile from a static one, using a different water autotile as template.

MZ Alpha Bugfix converts all the near-black shadows of MZ tiles into pure-black shadows like those in MV. More info here.

Smart Resizer uses a pattern-based algorithm to double the size of the current image. It has a lot of configuration.

Autotile Corners allows to automatically create the cross-like tile containing all four small corners. Autotile Sides uses a rounding template to do the same but with the big corners of the autotile, using only its sides.

MGC ISO Autotiles converts an RPG maker XP autotile into its MGC ISO version (MGC ISO Engine is an isometry script for XP)

Break Floor takes a tile and tries to "break" it using an algorithm. It works better with tiles that are already irregular, like cave floors.

Dithering Blur blurs the bitmap, applies the current dithering on the most changed parts, and indexates the palette back again. It's like a brute-force dithering.

Sadly I also had to discard some ideas, but remember WecTools can be extended as you want, so I'll include some of those crazy ideas here.

Particle Engine

The idea here was building animations similarly than with the tool Animation Extended but using particles and formulas like in Particle Engines, a bit like the page Explosion Generator.

RTP Roofs Extended

The tool RTP Roofs has an option to make pyramidal domes using skewed roofs, the idea here was using those skewed roofs more generally, for example for buildings with a bit of perspective like those in David Browne videos.


Autotile Brush

The idea would be converting an autotile to a template (which can already be done in Autotile Templates) and then using those two colors as a parallax brush to paint any shape with that autotile and using some algorithm so it looks good.

Last edited:


Jul 4, 2021
Reaction score
First Language
Primarily Uses
I made a new Engine for Simple Image Editor that allows creating domes. The tool RTP Roofs already has an option to create domes, but it's a bit special in some cases, so you may prefer using this instead.

Paste this as Dome Builder.txt in the Engines folder (it's already available on WecTools 0.85b)

"Simple Image Editor"

# The engine 'Dome Builder' allows to construct the round rooftops of towers
# like those in the RTP of VX, Ace, MV and MZ. It has many other options as well.
# The tool RTP Roofs also has a dome builder integrated, but it works different.

# ----------- Configuration ----------------

# Dome width (in tiles)

# Dome height (in tiles)

# Examples:
# - Normal dome         [2, 2.5]
# - Normal dome (circular)     [2, 2]
# - Big dome             [4, 5]
# - Big dome (circular)        [4, 3.5]

# Set here the dome type (by default :conic or :octogonal)
DOME_TYPE = :conic

# Slope type (by default :linear, :circular, :gothic)
DOME_SLOPE = :linear

# Proportion between depth and width (by default 0.65)
DOME_DEPTH = 0.65 # With :octogonal, 0.5 may be more appropriate

# Stretch the texture (smaller tiles on top, bigger on bottom)

# Apply a shadow on each side for a better 3D effect

# ----------- Configuration ----------------

SIMPLE_IMAGE_NIL = "You must load a image before running this engine"

def run_engine
  if @simple_window.image.nil?
  image = @simple_window.image.clone
  palette = image.get_palette
  mid_color = palette[palette.size / 2]
  dw = (image.width * DOME_WIDTH).to_i
  dh = (image.height * DOME_HEIGHT).to_i
  roof = Bitmap.new(dw, dh)
  for iy in 0...DOME_HEIGHT.ceil
    for ix in 0...DOME_WIDTH.ceil
      roof.blt(ix * image.width, iy * image.height, image, image.rect)

  p "Create texture - COMPLETE"

  bitmaps = []
  result = Bitmap.new(roof.width, roof.height)
  for iy in 0...roof.height
    dx, dy, dw, dh = *get_roof_dimensions(iy, roof)
      str = Bitmap.new(dw, 1)
      str.stretch_blt(str.rect, roof, Rect.new(0, dy, roof.width, 1))
      roof.blt_bitmap(dx, dy, str.width, str.height, str)
    result.fill_rect(dx, dy, dw, 1, mid_color)
    bitmaps << get_shape_template(dw, dh)

  p "Shape templates - COMPLETE"

  for iy in 0...roof.height
    template = bitmaps[iy]
    dx, dy, dw, dh = *get_roof_dimensions(iy, roof)
    for ix in 0...dw
      color = roof.get_pixel(dx + ix, dy).clone
      y_inc = get_y_increment(ix, template)
      new_y = (dy - (y_inc)).ceil
      target = result.get_pixel(dx + ix, new_y)
      if DOME_SHADOW
        color.lum = (color.lum - y_inc / 4 - dy / 8) + 16
      result.set_pixel(dx + ix, new_y, color)
  template = bitmaps[0]
  for iy in 0...template.height / 2
    for ix in 0...template.width
      if template.get_pixel(ix, iy).alpha == 0
        result.set_pixel(ix, result.height - iy - 1, Color.new(0, 0, 0, 0))
        result.set_pixel(ix, result.height - iy - 2, Color.new(0, 0, 0, 0))
        result.set_pixel(ix, result.height - iy - 3, Color.new(0, 0, 0, 0))

  p "Apply texture - COMPLETE"

  cloned = result.clone
  for iy in 0...result.height
    for ix in 0...result.width
      color = cloned.get_pixel(ix, iy)
      next if color.alpha == 0
      dark_color = color.clone
      dark_color.lum = color.lum - 20
      result.set_pixel(ix, iy + 1, dark_color)
      result.set_pixel(ix + 1, iy + 1, dark_color)
      result.set_pixel(ix, iy, dark_color)
      result.set_pixel(ix, iy - 1, color)

  @simple_window.image = result.clone

def get_roof_dimensions(iy, roof)
  dy = roof.height - iy - 1
  when :circular
    dx = (iy ** 3) * (roof.width / 2) / (roof.height ** 3)
  when :gothic
    dx = (iy ** 0.5) * (roof.width / 2) / (roof.height ** 0.5)
  else # :linear (default)
    dx = iy * (roof.width / 2) / roof.height
  dw = [roof.width - dx * 2, 1].max
  dh = [(dw * DOME_DEPTH).ceil, 1].max
  return [dx, dy, dw, dh]

def get_shape_template(dw, dh)
  shape = Bitmap.new(dw, dh)
  case DOME_TYPE
  when :octogonal
    for i in 0...(dw/2)
      dy = dh / 2 - i
      shape.fill_rect(i, dy, 1, dh - dy * 2, Color.new(0, 0, 0))
      shape.fill_rect(dw - i - 1, dy, 1, dh - dy * 2, Color.new(0, 0, 0))
  else # :conic (default)
    circle = Bitmap.new(dw, dw)
    circle.fill_circle(-1, -1, dw, dw, Color.new(0, 0, 0))
    shape.stretch_blt(shape.rect, circle, circle.rect)
  return shape

def get_y_increment(dx, template)
  for iy in 0...template.height
    return iy if template.get_pixel(dx, iy).alpha != 0
  return 0


As many other Engines, there's some configuration on the very start. The program allows opening the file from there and modifying those options each time you want to use it. With that you can create domes of any size from a single roof tile, and those domes can be conic, octagonal, circular, gothic...
As you can see, I did my homework :aswt:

Execute WecTools.exe and open the tool Simple Image Editor.

Go to File -> Load and search a tileset with the roof you want (using Ctrl+R will go to the RTP folders if available). Pressing Shift and clicking the image allows picking a subset of tiles from the tileset, in this case the roof. As you can see here, I defined a subtile size of 16px (it would be 24px on MV/MZ)


Then go to File -> Load engine -> Dome Builder.txt
If you click on the little icon on the right it will open the file, so you can there change its configuration.

After clicking the engine, the tile will transform into the desired dome (if you don't like it you can always press Ctrl+Z and try again with a different configuration)


Then you can simply screenshot or save that image with File -> Save and use it somewhere else. Even if you have to polish it later, I think it saves a lot of trouble, since it's not a transformation common software can do, so you would have to do it manually.

That being said, there's a little cheat you can do as well.
If you execute first the Engine called Smart Resizer, it will double the tile size first, so the resulting dome will also be double its size, the algorithm will have been applied on a greater scale. Then you can change its size back on your graphics software, and you'll get a smoother result. Bear in mind, if you do that, the Engine will take more time to execute (approximately four times more).

You can compare the results here.

Important: WecTools 0.85b has another Engine called Tower Bulder.txt which allows building the wall of the circular tower as well. All you have to do is combine both parts later.
Last edited:


Mar 23, 2012
Reaction score
First Language
Primarily Uses
Why is no one said this is AWESOME!? I said that. And again. THIS IS AWESOME.

Latest Threads

Latest Posts

Latest Profile Posts

Can't believe my code from four years ago is still working! Did some expansions, and...
In related news, I may have an update for my old Extra status window plugin ready. That is, once I manage to sit down and update the documentation... and the demo project... :kaoswt:
How does one pronounce Godot? I've heard it pronounced a couple of different ways, and I genuinely don't know the proper way.
March 2020 ...
... vs October 2021
You look like you had a rough day...Here, have a Baby Panda!

7 years of trying to plan this project... and it got an official plotline today. 7 years. I really just have no concept of order huh GHJGSJHGVGHASFH.

Forum statistics

Latest member