Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Blizzard

RMXP Script Database / Re: [XP] Lagless Path Finder
July 22, 2021, 05:20:20 am
I think I did this because of performance reasons. But it's been a such long time ago, I really don't remember.
RMXP Script Database / Re: [XP] Tons of Add-ons
July 22, 2021, 05:17:20 am
Uploaded a new version with KK20's fix.
Try printing just:


to see if you actually have the proper data/object inside.
The thing with playback rate is that physically it always changes the pitch (that's just how sound waves work). If you want to change the playback rate without changing the pitch, what internally happens is that the sound wave is actually resampled to maintain the same pitch while speeding up or slowing down the playback rate. It probably depends on the browser whether it supports this or not. Unless you resample the waves yourself, you really won't be able to use that feature if the browser doesn't support it.
Yeah. They technically haven't become more savvy. The thing with the hidden URL has been around for a while.
General Discussion / Re: RGSS Reverse and Refine
February 11, 2021, 05:36:39 am
Haha, I actually worked on libtheoraplayer. You can still see me being a contributer on github . The version used in in VXA integrated the older version which Kresimir started by himself initially. I only joined in on development a bit later. I actually did the majority of API refactoring for v2.x.
Kresimir used to be one of the 3 owners of Cateia Games and I worked for 10 years for Cateia until later 2018. Cateia was sold to Russian mobile giant Playrix last year and rebranded as Playrix Croatia.

But yeah, IIRC RMXP was C-only. I think they might have used C++ on VX and evidently VXA does have C++ code.
General Discussion / Re: RGSS Reverse and Refine
January 20, 2021, 04:25:45 pm
Hm, I'm pretty sure RGSS is coded in pure C and has no C++ whatsoever.
General Discussion / Re: HTML Canvas - Repeat a Tile
January 19, 2021, 06:07:10 pm
I think you need to use bind() if you want "this" to be available within the callback function call.

img.onload = this.setupBars.bind(this);

Or alternatively:

img.onload = (function() { this.setupBars(); }).bind(this);

But IDK if this second variant will work right.
New Projects / Re: [RMXP]Kingdom Hearts Rebirth 2
January 19, 2021, 06:02:43 pm
Hello, @Avdol . We are an English speaking forum so please try to post in English (even if you just use Google Translate).

Bonjour, @Avdol . Nous sommes un forum anglophone, alors essayez de publier en anglais (même si vous utilisez simplement Google Traduction).
Thank you. :)

Yes, winkio continued working on Blizz-ABS and is the one that kept it up to date later on.
General Discussion / Re: HTML Canvas - Repeat a Tile
December 22, 2020, 04:34:25 am
Here's the MOXIE one if you want. xD

		private void Fill(int x, int y)
if (!Map.ValidCoordinates(x, y)) return;
RPG.Tile oldTile = Map.GetTile(SelectedLayer, x, y);

if (AutotileSelected && oldTile == AutotileSelector.Tile) return;
if (!AutotileSelected && oldTile == TilesetSelector.Tiles[0]) return;

SortedSet<Point> tiles = new SortedSet<Point>(PointComparer.Singleton);
List<Point> newTiles = new List<Point>();
List<Point> newTilesCopy = new List<Point>();
Point start = new Point(x, y);
if (tiles.Add(start)) newTiles.Add(start);

int startTileX = x;
int startTileY = y;
if (EyedropperActive)
if (!eyedropperIsLeftCorner) startTileX -= eyedropperAreaWidth - 1;
if (!eyedropperIsTopCorner) startTileY -= eyedropperAreaHeight - 1;

while (newTiles.Count != 0)
foreach (var pos in newTilesCopy)
RPG.Tile tile = Map.GetTile(SelectedLayer, pos.X, pos.Y);
if (tile == oldTile)
if (EyedropperActive)
int dx = (pos.X - startTileX) % eyedropperAreaWidth;
int dy = (pos.Y - startTileY) % eyedropperAreaHeight;

if (dx < 0) dx += eyedropperAreaWidth;
if (dy < 0) dy += eyedropperAreaHeight;

int index = dy * eyedropperAreaWidth + dx;
var newTile = eyedropperTiles[index];

var tileChange = Map.SetTile(SelectedLayer, x, y, newTile);
if (tileChange != null)
else if (AutotileSelected)
var tileChange = map.SetTile(SelectedLayer, pos.X, pos.Y, AutotileSelector.Tile);
if (tileChange != null)
int dx = (pos.X - startTileX) % TilesetSelector.SelectionWidth;
int dy = (pos.Y - startTileY) % TilesetSelector.SelectionHeight;

if (dx < 0) dx += TilesetSelector.SelectionWidth;
if (dy < 0) dy += TilesetSelector.SelectionHeight;

int selectorIndex = dy * TilesetSelector.SelectionWidth + dx;
var newTile = TilesetSelector.Tiles[selectorIndex];
var tileChange = Map.SetTile(SelectedLayer, pos.X, pos.Y, newTile);
if (tileChange != null)

// add surrounding tiles to list
if (Map.ValidCoordinates(pos.X + 1, pos.Y))
var newPos = new Point(pos.X + 1, pos.Y);
if (tiles.Add(newPos)) newTiles.Add(newPos);
if (Map.ValidCoordinates(pos.X - 1, pos.Y))
var newPos = new Point(pos.X - 1, pos.Y);
if (tiles.Add(newPos)) newTiles.Add(newPos);
if (Map.ValidCoordinates(pos.X, pos.Y + 1))
var newPos = new Point(pos.X, pos.Y + 1);
if (tiles.Add(newPos)) newTiles.Add(newPos);
if (Map.ValidCoordinates(pos.X, pos.Y - 1))
var newPos = new Point(pos.X, pos.Y - 1);
if (tiles.Add(newPos)) newTiles.Add(newPos);


if (MouseDownTileChanges.Count != 0)
History.Add(new TileHistoryItem(Map, MouseDownTileChanges, MouseDownTileChangeDescription));


IDK how it compares to QuickFill.
Script Requests / Re: [XP]Refreshing Battle Scene Earlier
December 22, 2020, 04:31:53 am
Actually it's a quirk of how status effects are treated. The engine checks for the status effect counter when the actor does an action rather than at the end of an actual turn in battle. e.g. If your actor is poisoned and the counter is already 0, the actor will stay poisoned until their next action in battle where the status effect will then be removed and no poison damage will be applied.

I actually did some custom changes for my own game as well. If you want to change this behavior, you need to remove the "@active_battler.remove_states_auto" call from Scene_Battle#update_phase4_step1 and you should add an iteration of all battlers and call "remove_states_auto" further above before to call of "start_phase2". Something like this should do the trick:

($game_party.actors | $game_troop.enemies).each {|battler| battler.remove_states_auto}

I can't remember if you need to do any additional things.
General Discussion / Re: HTML Canvas - Repeat a Tile
November 24, 2020, 06:09:59 am
Yeah, I'm good in these trying times. Working from home for the past few weeks and so on. You take care, too. :)
General Discussion / Re: HTML Canvas - Repeat a Tile
November 23, 2020, 04:33:36 am
This is what G_G wrote for MOXIE (it's C#):

		private void UpdateEllipse()
if (MouseLeftButtonDown)

MouseRect = Extensions.RectFromPoints(new Point(MouseStart.X * RPGData.TileSize, MouseStart.Y * RPGData.TileSize),
new Point(MouseTile.X * RPGData.TileSize, MouseTile.Y * RPGData.TileSize));
Vector2 pos = ScreenToMap(Vector2.Zero);
int startTileX = MouseStart.X;
int startTileY = MouseStart.Y;
int startX = Math.Min(MouseStart.X, MouseTile.X).Clamp(0, Map.Width - 1);
int startY = Math.Min(MouseStart.Y, MouseTile.Y).Clamp(0, Map.Height - 1);
int endX = Math.Max(MouseStart.X, MouseTile.X).Clamp(0, Map.Width - 1);
int endY = Math.Max(MouseStart.Y, MouseTile.Y).Clamp(0, Map.Height - 1);

if (EyedropperActive)
if (!eyedropperIsLeftCorner) startTileX -= eyedropperAreaWidth - 1;
if (!eyedropperIsTopCorner) startTileY -= eyedropperAreaHeight - 1;

float radX = (1 + endX - startX) / 2f;
float radY = (1 + endY - startY) / 2f;
float centerX = startX + radX;
float centerY = startY + radY;
for (int x = startX; x <= endX; x++)
float xrad = (0.5f + x - centerX) / radX;
for (int y = startY; y <= endY; y++)
float yrad = (0.5f + y - centerY) / radY;
if (xrad * xrad + yrad * yrad > 1)

if (EyedropperActive)
int dx = (x - startTileX) % eyedropperAreaWidth;
int dy = (y - startTileY) % eyedropperAreaHeight;

if (dx < 0) dx += eyedropperAreaWidth;
if (dy < 0) dy += eyedropperAreaHeight;

int index = dy * eyedropperAreaWidth + dx;
var newTile = eyedropperTiles[index];

var tileChange = Map.SetTile(SelectedLayer, x, y, newTile);
if (tileChange != null)
else if (AutotileSelected)
var tileChange = Map.SetTile(SelectedLayer, x, y, AutotileSelector.Tile);
if (tileChange != null)
int dx = (x - startTileX) % TilesetSelector.SelectionWidth;
int dy = (y - startTileY) % TilesetSelector.SelectionHeight;

if (dx < 0) dx += TilesetSelector.SelectionWidth;
if (dy < 0) dy += TilesetSelector.SelectionHeight;

int selectorIndex = dy * TilesetSelector.SelectionWidth + dx;
var newTile = TilesetSelector.Tiles[selectorIndex];

var tileChange = Map.SetTile(SelectedLayer, x, y, newTile);
if (tileChange != null)



It's basically just some standard math. The code takes the area, calculates the center, then calculates an ellipse radius from that center and fills all the tiles that are within that radius.
I haven't tried MZ yet, but I can already agree with what a reddit user said:

QuoteFrankly, you listed 29 pretty valid reasons for it to have the score it currently has.

The product has to improve. No way around it.

All in all, that's the point of reviews.
Can you please double check the beginning of your post to match the topic template?,17.0.html
(I think you're missing the center tags.)
If you don't set up the beginning properly, your plugin won't show up in the database:
I just quickly fixed your Key Term and topic title. Spaces do matter for the database to pick it up properly.
IDK why I thought MZ hasn't been released yet. O_o I added the MZ database.
RMXP Script Database / Re: [XP] Blizz-ABS
July 23, 2020, 04:06:52 am
Try making sure that you aren't loading an old save game that's been created before you added Blizz-ABS.
Lexima Legends - Paths of Strife


This game is a strategic RPG inspired by the games Ogre Battle: March of the Black Queen for the SNES and Ogre Battle 64: Person of Lordly Caliber for the N64.

The core game mechanic revolves around moving and placing units on a map in semi-real-time (it's possible to pause the game). Units are comprised of several characters. When one of your units meets an enemy unit, they engage into a short and mostly automated RPG-style turn-based battle.

You can create and organize units from a wide variety of characters as you see fit. The characters themselves have RPG-style stats and grow stronger as they attain more experience.

The game is planned as a commercial release. The first release will be on Steam and possibly Android and iOS versions are planned later on as some GUI changes will be required in order to make the game work better on the small screens of mobile devices and touch interfaces.


Spoiler: ShowHide


This playable tech demo is meant to show off a majority of the features that will be present in the final game.

The game was designed to be played with mouse and keyboard.

  • You can move the map either with arrow keys, WASD or by moving the mouse cursor to the edge of the screen. You can rotate the camera by holding the middle mouse button (usually scroll wheel button).
  • In the Move unit menu where you place waypoints, you can remove the last waypoint with the right mouse click.
  • Certain menus also have hotkeys (currently only the game speed menu) and certain menus have default confirm and/or cancel actions that can be triggered using the Enter or ESC keys.

Most menus are done or require only minor changes. Some menus are bare-bones and will be redesigned entirely.

The gameplay includes the most important features such as map movement, battles, handling of units and characters, classes, etc., but there are still some finer features missing such as a day and night system, a weather system, etc.

A good deal of the graphics are also final (menus, character art, map tiles, etc.), but there are obviously still many placeholders. Please keep in mind that the placeholders are not bare-bones! That means that you are free to give feedback on any graphics you want even if it is potentially a placeholder.

Some of the music and sounds are final. Others won't be used where they are now in the game.

The demo features one simple mission on a large map with basic enemy AI in place. The mission takes 30-90 minutes to complete, depending on your playstyle and how far "off course" you want to explore the map with your units.

For simplicity's sake, there is a single Quick Save slot that can be accessed from the in-game menu in order to save. To load your game, select the Continue from the title screen.

As this tech demo does not include any tutorials whatsoever, you are encouraged to experiment and explore the menus at your own convenience. There are a lot of minor details and features that will not be explained here.


Again, as this demo has no tutorials, the most relevant gameplay mechanics are explained here.

Information about the map:

  • Units can be moved around the map via a waypoint system.
  • The map is comprised of various terrains and units will have movement speed penalties if they don't have the proper terrain affinity. Grassland and roads have no penalty.
  • The game can be paused at any time on the map. It's also possible to fast-forward time. While navigating menus on the map, the game is automatically paused separate from your game speed setting.
  • Units have a view range (which is larger in front than in the back) and enemy units are only visible if they are within view range of any of your units. (Through some playtesting it was determined that this is confusing without visual feedback so a feature similar to Fog of War is planned in the future, but it's not available in the game right now.)

Information about units:

  • Units are organized in a 3x3 grid that can be populated by characters. Positioning of characters their classes are important as they influence how battles play out (number of attacks, possible targets, etc.). It's possible to engage enemies from the side or from the back which throws their formation out of balance and gives you an advantage in battle. Though the same goes for enemies as they can flank or back-attack your units as well.
  • Terrain affinity depends on character composition of the unit. e.g. Hound-type monsters are good in forests and your unit won't get any penalty in forests if you have enough Hound-type characters in it.
  • Units have their own limited item inventories. Their size is determined by the characters in the unit. A larger number of characters and higher class characters contribute to more inventory slots.
  • Character decision making in battle is mostly automated, but it's possible to change the Unit Tactic so characters prioritize different targets in accordance to the Unit Tactic setting.

Information about characters:

  • Each character belongs to one of multiple class trees ranging from humans (male and female) over humanoid entities (mermaids, birdmen, etc.) to various types of monsters (dragons, golems, chimeras, etc.). The player can change a character's class to get access to better attacks and stat growth, but most classes have certain requirements that need to be met before a character can change into that class.
  • Characters have multiple stats and characters themselves are generally separated into physical and magical fighters. Physical fighters take less damage from other physical fighters while they take more damage from magical ones and vice versa. The same system applies to magical ones.
  • Characters have equipment. (The weapon is mandatory and cannot be removed.) Certain equipment has so-called Soul Rage abilities. Please see further below for more information.
  • Depending on their class, characters have certain attacks available. The attack they use and the number of time they will use that attack during a battle is determined by the row (front, middle, back) in the 3x3 unit grid. Keep in mind that getting attacked from the side or back does influence which actual row the character will belong to during a specific battle instance.
  • Characters have a special stat called SR percentage. When a character wears equipment with SR abilities and receives damage, their SR percentage will increase. This stat can be consumed to use special attacks during battle (accessible via the Soul Rage option in the battle interrupt menu). It's planned to allow characters to increase their SR percentage in other ways as well.

Information about battles:

  • Battles are mostly automated.
  • During the battle, actions done by the characters increase the battle score of the unit. Certain conditions and actions provide a bonus (which is already integrated into the displayed score). e.g. Normal attacks increase the battle score by a flat value, healing also incurs a penalty percentage, units under 5 characters get a bonus for every missing character, etc.
  • The player can open an interrupt menu which pauses the battle. (This menu can opened by simply clicking anywhere on the screen during battle.)


As this tech demo is intended to showcase gameplay only, I will refrain from going into detail for the planned story and keep things more on a conceptual level.

The core idea is to explore the concept of choice and consequences. I have crafted a dynamic story with multiple paths and multiple endings. Your behavior as a player and the choices you make during both missions and cutscenes will influence how the story progresses, what events take place and how it ultimately concludes. In the story I am also exploring other interesting concepts and opposing perspectives and morals between protagonists and antagonists.

There are a number of main characters (including you, the player character) that carry the story itself. But there is also a high number of recruitable side-characters (I expect at least 30) with their own backstories and side-quests that you can do during missions. IMO the original Ogre Battle games had a lackluster mechanic of this and I wanted to iterated and improve upon this.

Sounds too ambitious? Not really. As the game will have a mission-like structure, it's easy to contain individual side-stories. It's also not much of a problem to include certain characters in events or cutscenes later on. Obviously the number of paths the player can take is limited and so is the number of endings. But compositing all the player's actions, all the side-quests they did and characters they recruited into a satisfying epilogue is not that hard. A quality delivery of the story in itself is much harder.

How did it all even start?

A few years ago I realized that a game like this wouldn't require too many graphical resources and a lot less maps than my previous project, yet it could have a lot more playtime. This first realization gave me the initial idea to make a game like this. I first experimented with RPG Maker MV to see if some things were even feasible. After a few months of experimenting, I realized that I basically already started working on a new game. As time passed by, I actually decided to invest some money into custom graphics and licensing some music. From what I can personally say, I think it was a very worthwhile investment.


You can download the game from here:
Simply unzip and run Game.exe.

As the credits are a bit lengthy, they will not be posted here. You can be access them from the title screen and they will be displayed upon demo completion.


  • day and night cycle (that also affects certain characters and attacks)
  • weather (that also affects certain characters and attacks)
  • Quick Battle functionality
  • tutorials
  • optional perma-death mode for units and characters
  • adaptive enemy level scaling
  • interactive minimap
  • proper save-game system with save slots, auto-saves, manual saves, etc.
  • gamepad support
  • decision-based story progression and cutscenes
  • more hotkeys in menus (e.g. unit selection)
  • various notifications relevant to gameplay (e.g. when a unit has finished moving, when a base has been lost, etc.)
  • more useful options for gameplay flow (pausing after battle, pausing after taking a base, pausing after a unit stops moving, etc.)


  • Options menu will have sliders for audio volumes.
  • There will be more options (such as battle BGM).
  • Shop menus will be completely redesigned.
  • Characters screen in Army scene will be redesigned completely (it's very basic currently).
  • A lot more character classes will be unlocked and available.
  • The entire class menu will be improved.
  • Battle GUI is currently very basic.
  • Improvements in battle animation timings.
  • Mission screen will be completely redesigned (it will include a side-quest section as well).
  • The current title screen and title audio are placeholders.
  • Overworld mission maps will be reduced in size so that the map overview is better.
  • Improved rendering on higher resolutions than the base resolution of 1280x720.
  • The are some issues with game balance which will be fixed later (e.g. characters with level 3 classes have very high stats while level 1 classes are a lot weaker).
  • Fog of War on the map or an equivalent solution for visual view range info for the player.
  • Improvements to enemy AI.
  • Map AI can currently cause performance spikes.


  • possible issues with class change menu
  • ESC / Enter might not work as hotkeys in certain menus
  • when switching between windows, audio volume transition might get stuck (can be fixed by switching windows again)
  • some menus might appear / disappear from the wrong direction of the screen
  • possibly getting stuck in battle
  • not all menu items have icons
  • possible short stutters on the map
  • some enemy unit AI behavior on the map may be broken
  • when selecting / hovering over a menu item that's already "selected", no cursor sound is played


  • Screen remains black after battle.
  • Enemy unit map sprites sometimes disappear.

Critical feedback is much appreciated!