RMVXAce Workarounds

1.) My Parallel Process Event won’t run whenever I’m talking to somebody!

  • Why? The reason why this happen is because of how RMVXAce handles event processing. This is due to Fiber.yield. It’s going to be a long explanation and the only way to “Fix” this is to rewrite the game interpreter or the message system. But fret not, there’s a way to fix this!
  • Why should I be concerned?  If you like making animated events through parallel processes, they would stop whenever a message box is visible!
  • How to fix? Just put the commands of the parallel process event inside a loop or use labels. It will run normally~

2.) Shift Mapping destroys auto-tile passability!

  • Why? This is intentional and only works with ceilings but not on walls. Unconfirmed, but it might only be A4 wall tops. Someone check this out?
  • Why should I be concerned?  You can walk through autotiles for ceilings. :o
  • How to fix? Use a spare empty upper tile set the passability to x and lay it along the edges.

3.) My Sound Effect won’t play fully!

  • Why? I noticed this while working on events, and it’s usually when there’s a show message AFTER.
  • Why should I be concerned? What’s stated above.
  • How to fix? Just add a more wait frames after the sound effect. 15-60 seems to do the trick.

3.) My Picture won’t dispose even when I already added a clear picture!

  • Why? I still haven’t pinpointed this, but I noticed this happens when there’s a show message after it.
  • Why should I be concerned? What’s stated above.
  • How to fix? Just like sound effect, add more wait frames or add a clear everything after the event is done.

4.) How do I change TP?

  • How? I noticed that this has been asked way too many times on different forums, (curse you shaz for beating me to it this time :() so here’s how for reference:

Game_Battler, line 730:

self.tp = rand * 25

Change to

self.tp = any number you want

5.) A picture of mine appears above a picture that is higher than it’s number! Help!

  • Why? I couldn’t reproduce it since it’s something so random. But I noticed that it makes an extra copy of the picture.
  • Why should I be concerned? What’s stated above.
  • How to fix? Erase all the pictures and just set them again.

6.) How can I make my entire party fully healed after battles?

  • How? Go to BattleManager, Line 213. After battle_end(0) add this:

$game_party.members.each { |actor| actor.recover_all }

There are other ways to do this too for example:

$game_party.members.each { |actor| actor.hp = actor.mhp; actor.mp = actor.mmp}

Meaning this will only fully heal their hp and mp.

7.) How can I make the enemy’s priority 10 attack to be the only action he does depending on the condition.

  • How? Go to Game_Enemy, Line 257. Below rating_max = action_list.collect {|a| a.rating }.max, add this :

rating_max = 12 if rating_max == 10

There’s a very, very small chance it’ll do a priority 9 attack (in fact, haven’t nailed this one at all). It all depends on your battle conditions.

8.) There is this annoying bug in RPG Maker VXAce!

  • How? Go to Game_System lines 38 – 40:
def japanese?
$data_system.japanese
end

change that to this:

def japanese?
return false
end

After that, add these for extra measure.

Lonewolf’s Custom Font Junk Symbol Fix
Mezzolan’s Arrow Fix(Put this below Victory Aftermath if you’re using that.)

9.) Star Passabilities in VXAce.

  • Why? By default, VXAce has star flags ignore arrow passabilities.
  • Why should I be concerned? Refer to picture.
  • How to fix?

Here’s a snippet by NeonBlack
Here is the solution. It checks if the tile is a star before checking passability. If the tile is a star and it is passable, it then checks the tile UNDER it.  If not, it returns false as always. This prevents everything that is a star tile from being passable.

class Game_Map

def check_passage(x, y, bit)
all_tiles(x, y).each do |tile_id|
flag = tileset.flags[tile_id]
if flag & 0x10 != 0 # [☆]: No effect on passage
next if flag & bit == 0 # [○] : Passable but star
return false if flag & bit == bit # [×] : Impassable
else
return true if flag & bit == 0 # [○] : Passable
return false if flag & bit == bit # [×] : Impassable
end
end
return false # Impassable
end
end

10.) Frozen Graphic Transfer Bug

  • Why? The bug is mostly with frozen graphics from the previous map. Parallel process from the previous map have the particularity they start before everything else. Now this is normal and all, but if you use a Transfer with no Fade In, it also freezes every PP in the next map and the only one would load is an Autorun. The PPs will only run once the map is refreshed.
  • Why should I be concerned? Let’s say for example you have a picture from the previous map and you used a Transfer event to none because you want that picture to stay until the next map clears it off. The problem is, if the next map’s event that clears the picture is a Parallel Process, it won’t run at all.
  • How to fix?

Here’s a snippet by Kread-Ex to fix this bug! This snippet adds in a fake fadein or known as 1 frame of refreshing if you prefer.

class Scene_Map < Scene_Base
#————————————————————————–
def post_transfer
case $game_temp.fade_type
when 0
Graphics.wait(fadein_speed / 2)
fadein(fadein_speed)
when 1
Graphics.wait(fadein_speed / 2)
white_fadein(fadein_speed)
when 2
fadein(1)
end
@map_name_window.open
end
end

11.) Custom Movement Event Update

Why? Basically, when an event that uses custom move route is off screen, VXAce stops updating that event as one of the ways to prevent lag.
Why should I be concerned? This video will show you. Pay close attention to the waterfalls until the end:


How to fix?

Kread is awesome to provide us with a very simple fix :>

# Put [update] in the event’s name and the move route will always update.
#
# ~Kread

class Game_Event < Game_Character
#————————————————————————–
# * Determine if Near Visible Area of Screen
#————————————————————————–
alias_method(:krx_alfix_ge_nts?, :near_the_screen?)
def near_the_screen?(dx = 12, dy = 8)
# YEA compatibility
if $imported && $imported[“YEA-CoreEngine”]
dx = dy = nil
end # YEA compatibility
return true if @event.name.include?(‘[update]’)
return krx_alfix_ge_nts?(dx, dy)
end
end

6 thoughts on “RMVXAce Workarounds

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s