A downloadable asset pack for Windows

Download NowName your own price

This engine must be used with GameMaker: Studio. If you don't have GameMaker: Studio you can download it at www.yoyogames.com.

It was originally designed to help quickly prototype small platform or isometric games. Using only a few script calls, and 2 objects, you can create working and fluid platform mechanics.

I've tried my best to document this well. Inside each script you will find commented descriptions on the script itself and the arguments it takes. I also made a quick YouTube video the describes the basics of the engine:

This project is still in development. If you would like to give suggestions or if you run into a bug send me an email at heartbeast.studios@gmail.com.

Thanks for your support!

Release Notes:

  • v 0.4 - Added moving platforms
  • v 0.3 - Added slopes
StatusIn development
Rated 5.0 out of 5 stars
Made withGameMaker: Studio
Tags2D, engine, GameMaker, Isometric, movment, Physics


Download NowName your own price

Click download now to get access to the following files:

HeartBeast Movement Engine v 0.3 20 kB
HeartBeast Platform Movement Engine v 0.4 32 kB


Log in with itch.io to leave a comment.

(1 edit)

Hi there! I'm using your GM movement engine in a prototype and came across a bug in one of the scripts (caught in an infinite while loop). I think I fixed it, and maybe it'd be useful to you or a fellow dev. Cheers, and keep up the great work!


(1 edit)

Is it possible to do top down movement ( 4 directions ) with the latest version. I can't find enable_movement_run_horizontal/vertical?

I also have a suggestion. You should add ladder-climbing and swimming (realistic swimming, preferably).

This engine is great! I have a suggestion, add oneway platforms!


Are there any commercial restrictions on the usage of these scripts? I am working on my first GameMaker game, so I have some ways to go but I have to ask because I am looking to get to that point eventually.

I havent been able to download any of the versions!! );

Hey Manchadelo, are you getting some sort of error message? I'm not at my computer but shoot me an email: heartbeast.studios@gmail.com and when I get to my computer I can send you the file directly.

Awesome, your the best!!!

Oh, btw, I have something I want to implement for health, armor, status effects etc. It's very advanced, and would benefit from scripts.

I listed all scripts that I should create in a book.

I notice your scripts are purple, and have no idea why. Is it just GMS settings, or are your scripts somewhat special?

I started using scripts more after programming the engine for a while. It gets messy when you don't use scripts.

do you have any single guy friends i looking for a bf

No, and I'm likely not linked to really anyone.

I carry no info :C.

hey can someone help me solving a movement problem i'm having in my RPG. I was using the tutorial heartbeast has on his youtube channel and after i fix the problem that didn't allow me to use the dash script the character didn't move vertically anymore, I've looked through all the "how to make an RPG " videos 5 times and still can't find where its messed up , it also doesn't bring up any error messages

Hello there if you could respond to this that would be awesome. Anways heres my question how can I test to see if the player is touching a specific objects. For example a spike and then have them destroyed and respawn. I know how to make the player die just not how to check if the player is touching a specific object. If you or anyone else could help that would be awesome :D.

Use the function if (place_meeting(Desired object)){



and then re-spawn code which i don't know.

Just started using this but cant work out how to top down rpg and not a platform. I can move left and right but not up and down. How do i change this

Hi HeartBeast,

I'm following your Basic RPG series on YouTube and right now I'm at P8 - Dash State. However, I'm kinda stuck in this part because I'm running into a weird problem.

My player can dash, but can only do so in 6 directions (up, down, right, left, up + right, and down + left) and not the 2 other directions (up + left, and down + right). Can you help me with this? Also, has anyone encountered anything similar to this? If so, any comment or suggestion is greatly appreciated as well.


(1 edit)

uheartbeast can you help my i have a great game that i wanna make like wings.io but how? and thanks if you reply


How do I make this engine into the top-down version? This newer version has changed a little, and is confusing me.

If I want to slow the player down as he is going up slopes where would the best place be to add that in?

Hey man, With your movement Engine I placed in in my digging/ harvesting game and when I reach y= 1100 The player can no longer go Down, Its not my code and I cant find why it would do this anywhere in your provided movement engine.

If you add y=1200 to the create event does the player go down that far?

the player spawns at y =1200 and the player still float in mid air "with the jump animation" Same as before. I can move left and right but cannot fall down.

Thanks for the email. It seems you were clamping the y position at line 54 of your player's step event. Hope this helps!

Can you pay for it later on or will I not be able to if I just downloaded it?

I'm pretty sure you could donate later but I'm not 100% sure. If you wanted to donate later I guess you could go download one of my other free games here on itch.io and use that to donate if it won't let you here haha.

Hey thank you for this really useful tool! I was testing it a bit and i encountered this bug, i tried to understand why it happens, but i really have no clue. Any idea?

Here a clip with terrible encoding:

This may have to do with the collision masks of the sprites you are using. I'd have to check but your project to know for sure. I recommend having a separate sprite be the collision mask for the player object (You can see in the base engine I set the mask of the object to a black square). Does that make sense?

Setting a blank sprite as the mask fixed it (also setting the idle sprite as mask seems to work), i didn't tried it because the sprites have slightly different sizes so i would need a different mask for every sprite, but this are placeholders so it's really a non issue. Can you elaborate a bit why it happens? I'm curious.

Because the jump sprite and idle sprite have different collision sizes (masks) the character is switching between the idle and jump sprite. It lands on the ground so it switches to the idle sprite, but wait, the idle sprite isn't as big as the jump sprite so it switches back to the jump sprite but wait now it is on the ground again cause the jump sprite is bigger so it switches to the idle sprite again. And it goes on like this forever.

Does that makes sense?

Yes it makes sense, it's actually pretty obvious now that you pointed it out! Thank you again for the tool and the insight, really appreciated.

No problem! Glad I could help.

For example, if you replace those sprites with a single sprite of a plain black box does it still happen? If not than it is an issue with the sprite collision masks.

Hey Hbeast, there is an issue with GMS not recognizing a symbol in this engine. It's in multiple parts of the code, so I know it isn't an issue with the code. Something like "list[| i]". I don't know what this means, but it isn't working for me.

Hey Mattress,

Thanks for the comment. What version of GameMaker Studio are you using? The [| ] symbol is a ds list accessor and it was added in GMS in 2014 https://www.yoyogames.com/blog/35

Is it possible you have a version that is older than that?

how do i open this in gamemaker?

Hey! Thanks for the question.

File > Import Project

Enjoy! :)

I'd recommend you to publish this in Github so you can have more feedback from people and so people can help you to add features to it. :)


Thanks for the feedback. I currently have it published on bitbucket but it is a private repository. I'm actually considering making this open source so I can get some help with it from other experienced programmers.




(1 edit)