MV Pseudo Pixel Movement

This plugin gives the illusion of pixel movement for the player but tries to retain all normal tile-based functionality of the game otherwise.
Instead of moving from tile to tile, the player moves on 9 segments within each tile. Events still retain their normal tile-based movement and functionality.

VERSION 1.4 – RPG Maker MV
Download Plugin file
Download Demo


95 thoughts on “MV Pseudo Pixel Movement

  1. Umr says:

    Hello am using parallax mapping in my project, and yanfly region restriction to make passable and unpassable tiles.

    however unless i make transparent passable tiles manually, it does not work. If you could look into the compatibility and update it in the future.

    • Galv says:

      Thanks for the report, I will look into that one in the future

    • Galv says:

      I just spent time testing these plugins out and Yanfly’s Region Restrict plugin works fine with this plugin. Please do more tests to see if it’s not another plugin conflicting with this one that makes it not work.

      • kris says:


        Actually – it does appear to ignore the “All Allow” passibility regions with Yanfly Region Restriction plugin. This is seen in a default/new project with only the PixelMove plugin and RegionRestriction plugin and a parallax floor !image.png.

        If the region is painted with tiles containing actual passability, it works as expected – but that defeats the purpose in this case.

      • kris says:

        If you are using a parallax floor image instead of tiles, you can make this plugin work with RegionRestriction by simply turning on the passage attribute for the transparent/empty tile in your tileset. I believe this is where the conflict was occurring with the PixelMove plugin.

  2. boomyville says:

    Would be cool if this could be enabled/disabled via plugin command of some sorts. Doesn’t work too well with mouse movement either. Anyway cool stuff!

    • Galv says:

      Ahh yeah I meant to add it won’t work with mouse movement thanks for mentioning it. Unfortunately it’s not written to be easily turned on and off at this stage

  3. Umr says:

    a few issues worth mentioning;

    in the case the player has set a player touch / event touch to a tile and always want that event happening on touch, the event will repeat itself for every movement on that tile.

    It does not currently support followers.

    Otherwise great job.

    • Galv says:

      I forgot about followers, thanks for letting me know. As for event repeating – there are options to have a delay before the event would repeat itself or conditional branch code that you can set to only run event commands if the player stands on a certain part of the tile

      • Tricimir says:

        Do you plan on eventually adding follower support?
        Currently I can’t seem to find any pixel (or peudo) movement systems that support followers that actually work.

      • Galv says:

        I don’t get much support so I have very little time to do everything, but I do plan to one day, yeah

      • blacknaifu1 says:

        hi! sorry for the late comment in this thread, but i was wondering what the conditional branch would look like for the certain part of tile thing you were mentioning? ^^

      • Galv says:

        There are examples in the plugin description and I think there’s a working example in the demo, too.

  4. W.o.L says:

    Demo is neat! It looks a lot cooler then tile based movement. I was just wondering if you might be adding a restriction to an event say so the player could only walk on a certain portion like a half of it? It would be more for aesthetic than collisions. I like to use curved cliff edges and whatnot but in 48×48 the player can walk too far over the edge. Blocking the whole tile off looks very weird and it’s not always great for thin paths, so it’d be cool if you would consider this!

    • Galv says:

      Unfortunately, sorry – not at this point. I want to keep it simple and tile-based still, doing something like that would be bordering on a full pixel movement plugin

  5. Wagner says:

    Hi Galv,

    Very nice plugin there !

    However doesn’t seems to work properly with your other plugin “ActionIndicator”. In my project, only one icon at a time is displayed, and it won’t disapear until the event is deleted.

    Anyway, u rox !

    • Galv says:

      Thanks for letting me know, I’ll have to do some compatibility updates

      • Galv says:

        I just tested this and it works fine for me… what exactly is happening? My Action Indicator plugin should only show one icon at a time. I cannot see any issues… try changing the order of the plugins.

  6. Wagner says:

    As exemple :
    I have two boxes in a room. When the hero faces one boxe, an icon representing a magnifying glasse appear. When the hero turns back the icon normally disapear, and an other icon can appear if he faces the other box.

    Works fine without “pseudo pixel movement”, but if i activate it, then the first icon will never disapear and the second will never appear.

    Thanks for ur help :)

    • Galv says:

      Ahh, you are mentioning a bug that happened even without this plugin. Make sure you have the latest version of the Action Indicator plugin.

      • Wagner says:

        U were right, i had an oldest version, fixed.

        But the bug is still here… And i tried many things : load order, desactivating plugins, starting a new project…

        Thx for ur time

      • Galv says:

        Unfortunately I cannot replicate the bug in the latest version of the plugin.

        Does the bug happen for you in the demo? If no then it has something to do with your project. Make sure you overwrote the plugin with the latest version in the project you are working on.

  7. StyX92 says:

    Very nice plugin! Only one thing, that dont work as well.
    If i use moveroute core from yanfly, i know you cannot make everything compatible with everything, but it would be a nice thing, if you have a look at my demo. Maybe you can create a fix :)!7ldlSYyY!Ay9E6LRerwfJOwuZ9y9AMsMm7Uevf8YusDCfz3THB1Q

  8. Puebeck says:

    Hi there,
    I was wondering if it’s possible to have some kind of collision map using this plugin? I made some diagonal walls which feel awkward if you can’t walk on the parts where they touch the ground.

    • Galv says:

      No, sorry – this is a tile-based plugin that changes the movement a little to give the illusion of pixel movement. A collision map would require an actual pixel movement plugin.

  9. rafael says:


    Is there a way to have an option to disable pixel movement when using the move route command?

  10. Will says:

    Hi Galv,

    Great plugin! Movement looks much more natural now.

    Unfortunately, there appear to be a few bugs in how the plugin treats player-operated vehicles. For boats and ships, when the player boards them, somehow the plugin automatically moves them to the player’s location, rather than moving the player to where they are. The result is that they get beached on the land.

    Additionally, boats and ships are NEVER capable of moving through the water, even if water tiles are set as passable for the player and the player boards them while already being on the water (preventing them from getting beached due to the aforementioned bug).

    Finally, although the airship has no problems with movement, it is almost impossible to land once it’s in the air! I suspect the reason is that the game won’t allow the airship to land unless it’s in the middle of a tile, which it usually isn’t when the player is flying and your plugin is activated.

    I replicated these bugs in my game with all my other plugins turned off. I also replicated them in your demo. The plugin is definitely the source of the problem.

    Now, resourceful users might be able to work around some of these bugs. I found a simple, if somewhat ugly, fix for the airship landing bug. (I created a common event running in parallel to check if the airship is being driven and the player is pressing the OK button. If those conditions hold, the event teleports the player to the center of the tile they are current on. The problem with this solution is twofold: 1 – The player has to press the OK button twice to disembark. 2 – It is kind of ugly for the airship to teleport to the center of the tile every time the player disembarks.) But I think these are the sorts of issues that really shouldn’t exist in the base plugin.

    I hope you have time to sort this out. Either way, I appreciate all the work you do to create some amazing plugins!

  11. System Logoff says:

    Bug report as well, not sure if you’ll ever update this plugin:

    When the map is large enough that it needs to scroll sprites will end up moving off by 1px on the grid, causing them to bounce.

  12. System Logoff says:

    Note, this is only for 1 out of the 3 positions you can be on the tile.

  13. Andrew says:

    Hey Galv, I really like that this plugin, but most of the time when the player transfers from one map to another, they glitch and jump out a certain distance when you try to walk from the spot after transfer. My game has a lot of transfer events so this is a problem. The player will even sometimes teleport over a tile and end up stuck in other objects. I made a gif of the problem.

    The 1st time, I tried moving right and it made me move up first then let me move right. The 2nd time was fine and then the last event I tried moving right and up but it teleported me down and then back up which is how it makes the player get stuck in random objects. This only happens if you transfer the player to a new map. It’s fine if you do transfer events on the same map. This was made in your demo using only that plugin. All I did was make a new map and then made the transfer event to that new map

  14. aston00rick says:

    Hello Galv. First I want to say thank you for what you do. You are very appreciated. I Love this plugin. Thank you for this. I seem to have an issue, When I use this plugin and I have a door event or a fire event in a fireplace and such the events seem to kinda move and flicker. I am using the grid free doo dad plugin and the region restriction plugin. Any help would be appreciated. Again thank you friend.

    • Galv says:

      It’s likely not compatible with grid free doodads. Many of my plugins are not, sorry.
      This plugin is awaiting lots of bug fixes, too, when I get time.

  15. Galv says:

    Updated to version 1.2 with some fixes. Not all issues have been worked out yet – the major one that still exists is event sprites are 1px offset when standing on a certain part of a tile.

    v.1.2 – Made vehicles work (however their movement is currently limited to normal tile movement until I have time to fix properly). Added script that disables pixel movement to move full tiles in move routes. Fixed transfer bug. Fixed script call bug.

  16. rinarunine says:

    Hi Galv, just like an earlier person, I’m using Yanfly’s region restriction plugin for parallax mapping and using your pseudo pixel movement plugin.

    I also have the issue where they don’t seem to work together well. In my case, the character can’t move off the initial starting tile when the floor has an “All pass” region tile on.

    • Galv says:

      Can you replicate this in the demo? I have tested and it works fine for me when I test with Yanfly’s Region Restrict plugin below this one.
      The only thing I can think of is you might need to use the script call to center your player to the tile and see if that works for you.

      Other than that, you might have to test for other plugins conflicting.

      • rinarunine says:

        Hi again, and thanks for the speedy response!

        I tried using Yanfly’s plugin in the demo and it had the same results.

        I think since I’m working with parallax mapping, I don’t have any actual tiles on the map, just a parallax. With Yanfly’s plugin, the character can walk just fine even though there’s no actual tiles. So I’m assuming your plugin relies on there being tiles placed down? It’s my only guess.

      • Galv says:

        Well, you need the map to be passable. I hope it is for you.

      • rinarunine says:

        Actually I just tried the demo with tiles under the character and Yanfly’s regions underneath, and that doesn’t work either. Weird.

      • rinarunine says:

        Hi again, I managed to fix it. The passability was incorrect in the tileset. Whoops. Thank you for your patience!

      • Galv says:

        Glad you worked it out.

  17. Andrew says:

    Doesnt work with fallowers..

  18. Leen says:

    Heyo, Galv!
    First of all, thank you for this plugin, it’s really nice! Though I was wondering if it is possible to also have custom sprites when dashing in 8 directions? )got the idea since I noticed a dashing-looking sprite in your demo project when I looked into how the normal 8-dir sprite has to look)

    Best regards

  19. Janus says:

    Hello! I’ve been using this plugin and I find that player movement routes are not working properly as before

    • Galv says:

      Check the documentation to see they can be changed to tile or part-tile and let me know if that solves the issue

      • Kouta says:

        New version of plugin, blocking mouse control (im menu mouse working), and your plugin action indicators not work properly with pseudo pixel. When you step on event wits action indicator its appear, but when u step aside of it, he did not dissapear.

        I like your plugins, made a many games using them, u the best.

      • Galv says:

        Thanks for the report – I don’t know when I will get back to updating this one.

  20. Raptor says:

    I’m having a small problem where a player will be able to walk diagonally into a wall/solid object and end up getting stuck inside it. Is there any fix to this?

  21. Northnroro says:

    For the mouse issue, I suggest that you ‘_normMove = true’ for mouse instead of just disabling it.

    The below code overriding should do the work.

    // Override TouchInput.isTriggered
    var super_TouchInput_isTriggered = TouchInput.isTriggered;
    TouchInput.isTriggered = function(){
    var result = super_TouchInput_isTriggered.apply(this, arguments);
    if(result && $dataMap){;
    $gamePlayer._normMove = true; // better to read the value from $temp instead of setting it as true.
    return result;

    // Override Input.isPressed
    var super_Input_isPressed = Input.isPressed;
    Input.isPressed = function(){
    var result = super_Input_isPressed.apply(this, arguments);
    $gamePlayer._normMove = false; // better to store to some $temp before setting it to false.
    return result;

    • Northnroro says:

      The updated one.

      var prev_normMove = false;

      // Override TouchInput.isTriggered
      var super_TouchInput_isTriggered = TouchInput.isTriggered;
      TouchInput.isTriggered = function(){
      var result = super_TouchInput_isTriggered.apply(this, arguments);
      if(result && $dataMap && !$gamePlayer.isMoveRouteForcing()){;
      prev_normMove = $gamePlayer._normMove;
      $gamePlayer._normMove = true;
      return result;

      // Override Input.isPressed
      var super_Input_isPressed = Input.isPressed;
      Input.isPressed = function(){
      var result = super_Input_isPressed.apply(this, arguments);
      if(result && !$gamePlayer.isMoveRouteForcing()){
      $gamePlayer._normMove = prev_normMove;
      return result;

  22. deannomite says:

    Hey Galv! I love this plugin! However, it doesn’t seem to be compatible with your crops / tools plugins… :(

    • Galv says:

      Unfortunately that’s correct, it’s not compatible with a lot of plugins.

      • deannomite says:

        Huh… maybe I’m crazy. It seems to be working now when I tested it again. Not sure what I did wrong the first time.

        Anyways… Good stuff, Galv! This is an awesome plugin! :-)

  23. Msoulwing says:

    It seems my last comment wasn’t actually posted, but if it was, then I apologize for double posting.
    A tile that has one direction set as impassable is also somewhat impassable in the opposite direction. Moving out of the tile poses no problem, but moving onto the tile is prevented.
    Moving diagonally allows the character to move onto the tile.
    So, for example, if a tile has east set as impassable, it is also kind-of-impassable to the west.

    I’ve tested this with the demo.
    It’s the only real issue I have with the plugin, it otherwise functions very well.

  24. oates says:

    Was wondering if you were still planning on adding follower support and compatibility with your other movement plugins?

    Been trying to get a caterpillar party movement going, but can’t seem to find any pixel movement that supports diagonal sprites

  25. NoLoot Studios says:

    Will you ever make this one work with Mog-Hunters Chrono Engine (ABS) ??? Love the movement but its really hard to make it work with my ABS system.

  26. Randy Weyer says:

    If you’re having trouble with this plugin and Yanfly’s event copier, change line 532 from “if (!event.event().meta.noDelay && !$gamePlayer.tileDelayed()) $gamePlayer.setTileDelay();” to “if (event && event.event() && event.event().meta && !event.event().meta.noDelay && !$gamePlayer.tileDelayed()) $gamePlayer.setTileDelay();”

  27. Erik says:

    I know you don’t support your plugins anymore, but I’m having trouble getting this plugin to update from v1.0 to v1.2.

    I’ve tried downloading both the file and the demo to get the js file, and neither work. When I open them in notepad, they both say 1.2, but then when I open them in my project (OR the demo) they both register as v1.0 in the plugins manager.

    Any ideas?

    • Galv says:

      Oops, I forgot to change the version number in the plugin description. It will still be the updated version if you copied the file in.

      • Erik says:

        I copied it in the same way that I copy any plugins, including your other scripts, and the changes do not reflect in-game for me. It was causing a lot of trouble for Move Events so I had to deactivate it.
        In the actual plugin manager in RMMV, it only lists as 1.0, and the HELP file in it doesn’t mention 1.2 or any sort of changelog.

        Are you sure it’s still the updated version?

      • Galv says:

        Yes, unfortunately. The plugin still has a few issues it seems.

      • Erik says:

        I know you don’t support your plugins anymore, so what advice could you give me here? Is there anyone out there supporting your scripts who could help me out, or should I find a new one?

        (Thanks for getting back to me, btw. I appreciate it!)

      • Galv says:

        I tested the plugin and it seems to do what I made it do. I don’t plan to add anything to it, though, so I would recommend asking in a forum for help or to find a different plugin that does what you require.

  28. Cameron Calvert says:

    Hey Galv. I’m using your plygin as it’s the only pixel movement script that supports moghunters so well! Please could you try make it so followers work? Because I would be lost without this plugin :( Been using your plugins for years, very good work!

  29. Eliaquim says:

    Hi there Galv!
    Is there a way to make the pixel movement and diagonal to work for events too?

  30. Anna says:

    Many thanks for this plugin! This might sound strange but is there a way to disable the 8 directional movement? My JavaScript knowledge is limited and I haven’t found a way to somehow remove that feature when going through the file sadly

    • Anna says:

      I’m not exactly sure what I did after trying for a while but I think what worked was removing line 824, removing line 777-781, changed line 749 to equal false.

    • Galv says:

      You might have to edit the code to do that. It should be easy but I recommend asking in a forum if you cannot work it out

  31. Bubba says:

    Hi Galv,

    This plugin is so great, thank you for your hard work. I noticed an odd behavior with this one. Maybe it is intentional. But the 9 different x,y “zones” of a tile seem to register 16 pixels lower than where you would expect them to be. For instance position 0,0 is said to be at the center of the tile when it is actually at the center bottom of the tile. This has made positioning event triggers challenging. Is there any way to set it up to have the tile work with 0,0 being the center, thus moving the trigger up by a third? I hope that makes sense. Regardless thank you for making this plugin.

    • Galv says:

      I hadn’t noticed this – does this happen in the demo?

      • Bubba says:

        Yeah, it’s the same as in the demo. I made an event that is a 48 x48 pixel tile thats just a 3×3 grid so i could see where i am standing. And I set it up to just say the section of the tile I am standing on depending on where you touch. I can send you the altered Demo File if that helps.

      • Galv says:

        I won’t be looking at this one for a while – until I work on it for MZ.

      • Bubba says:

        That’s understandable, I know how busy you are. I found some workarounds for most things by eventing some conditional branches. I’ll check here periodically to see if you update it. But thank you for the response.

  32. Galv says:

    Fixed a tiny bug in this one – updated to v.1.4

  33. Can you do this for MZ too? I’m using another pixel movement but with your diagonal movement (just for diagonal charset)
    The first character has got the pixel movement and animations well, but the followers don’t use diagonal tileset. Can you do it, please?

    • Galv says:

      Sorry, I don’t know when I will get to this one. You might get lucky and test the MV version in MZ to see if it’s compatible.

  34. TwentyFree says:

    Hey Galv could it be possible to make your pseudo pixel movement compatible with Yed_TileD maps made with Tiled?
    I get an error once I move saying:
    “Cannot read property ‘111’ of undefined”
    at line 380:return,x,y,d);
    and line 609: var canPassTile =,x,y,d);

Leave a Reply

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

You are commenting using your 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 )

Connecting to %s