Log in with to leave a comment.

Before I purchase this fantastic engine, I would like to make some basic questions

- Can the demo / games run on Android

- Is possible to switch the charater sprite

- Have weapon system / slots and how it works

I would pay you for such features, add  me to further discussion


It's a GameMaker:Studio source file, so you can change ALL the sprites. (Note that you need GMS1.4 or GMS2 to be able to use the source files)

If you have the Android port you should be able to run it on Android devices (I haven't tested this, but the engine mostly uses  very basic functionality - the thing I'm the most worried about is the darkness effect in the underground levels, mobile devices usually have very low VRAM so surface effects like that don't always work properly).

There's no built-in functionality for weapon slots, a quick way you could implement this would be to have more "powerup states" that fires different projectiles (the example ones has hammers and fireballs) and add two new buttons that changes your powerup between all the weapons you have unlocked, and then change the health system to use a healthbar instead of the Mario powerup system.


Thanks for the fast and good reply

1 more customer

Do you give lessons/take commissions?

Not really, I'm kinda busy and my schedule for doing indie programming stuff is very erratic. And I'm not a particularly good teacher either, for that matter :P I'd recommend just going to the GameMaker Community forum, there's plenty of tutorials and the programming questions board is still very active. (You can find me there as well, even if I'm not exactly active every day)

Do you have any plans to do a full conversion to GMS2, rather than just the autoport?

Not really. I'm not using GMS2 a lot and I don't really see the point in having two separate codebases to support and doing all development/bugfixing twice.

Hello, I just purchased this and tried to run it on GMS2 and am getting an error "index was outside the bounds of the array." Please help!

I'll check it out and see if I can narrow it down. Did you use the GMS2 source file or import the GMS1 source? I've seen a similar case for another project where import changes made the GMS2 source break but importing the GMS1 source solved the problem.

(1 edit)

I used the GMS2 source file, will try GMS1. (edit) Just tried this but I'm using a Mac and can only open GMS2 source file :/

Aw :/

Could you post the entire error message? Maybe there's some other clues in it (like WHICH array is out of bounds)

Also, did you try updating the player_score script? When investigating I found an error where it uses the wrong variables in two places, it worked in previous versions. You could try updating that and see if it solves the problem (it's a really small change)

Instead of this:

effect_spawn_textpopup(x,y,        ....

It should be this:

effect_spawn_textpopup(argument0,argument1,   ...

The error message only says "Index was outside the bounds of the array." I checked the player_score script and it was already like this:

effect_spawn_textpopup(argument0,argument1,   ...

I did some more investigations and found a thing in the GMS2 release notes: (this post). Seems to be broken in runtime, worked in runtime, and it works for me in runtime what's your GMS2 runtime version?

From what I gather there's an issue where valid GML becomes invalid C++/JavaScript code sometimes when a single GML statement becomes multiple instructions when parsed, which sounds like a nightmare to track down :/

(Since there's also an option to carry on and collect all errors that's possible before ending a compilation, it might be helpful in finding the resource that causes this to happen... perhaps?)

The issue mentioned in the GMC topic refers to an issue with for loops whose first statement isn't a variable assignment causing this error, I went through all for loops in the engine and none of them has it... only suspect thing is compatibility script __global_object_depths() having a "var i = 0" assignment, not sure if that would be a candidate with vars behaving different from ordinary variables? (The solution if this is the case would be moving the "var i" part outside the loop and then do a normal "i = 0" inside the for loop).

Geez, GMS2 still kinda feels like it's in beta sometimes :/

Tried importing the GMS2 version in GMS2.2.0.343 and it had one error, there's a mistake in player_score (Scripts-->Gameplay-->Player-->Score Lives Etc) where it uses the calling instance's x/y instead of argument0/argument1. The body of the script should look like this, then it compiled fine for me:

if(argument3 && argument2 > 8000){
    global.playerscore += argument2
(Alternatively you could use argument[2] instead of argument2 and so on for the other arguments, this might be why you get an array index error)

If this doesn't solve the problem for you, could you please copypaste the entire error message? Usually it hints at where the error occurs.

the player_score already looks identical to the one you just sent. the error message only says "GameMaker: Studio AssetCompiler encountered a problem. Index was outside of bounds of the array." Then, at the bottom of the Output log it says:

/Library/Frameworks/Mono.framework/Versions/Current/Commands/mono exited with non-zero status (82)

elapsed time 00:01:25.4687960s for command "/Library/Frameworks/Mono.framework/Versions/Current/Commands/mono" /Users/Shared/GameMakerStudio2/Cache/runtimes/runtime- -options="/var/folders/w4/215d0gjj3b7f5sql711p01jr0000gn/GameMakerStudio2/GMS2TEMP/build.bff"  -- Mac Run started at 11/03/2018 19:35:20
FAILED: Run Program Complete

p.s. let me know if you'd rather communicate via e-mail or whatever's easier

(1 edit)

"Support for multiple playable characters; just set up data and change the current character variable"

How, please? which object/script contains these? I would like to switch between two players at the start of a level, with the exact same data, just different sprites

Thanks so much in advance and great job creating all these fine assets. Keep up the good work :)

(1 edit)

Scripts-->Initialization-->init_characters, it's a tabbed script with init_character_maria as the only alternate tab at the moment. At the bottom you'll see the lines of code that initializes sprites. To fully add a new character, I guess what you should do is...

  • Make a new constant for the character's ID (must have a different value from char_MARIA)... you could use the existing constants char_LOUISE, char_PRINCE, char_FROG and char_SUNSHINE if you'd like to, of course.
  • Make a copy of init_character_maria (create a new tab and copypaste init_character_maria's code text into it) and use the search-replace feature to replace "char_MARIA" with the new character constant
  • Change the sprite assignments to the new character's sprites (they're at the bottom of the script).
  • Don't forget to call the script from init_characters, just how it calls init_character_maria.
  • To change the active character, just assign the character ID to the variable global.playerchar based on what the player selects - it's always assigned char_MARIA by default since the demo only has 1 character. You can make the menu any way you want~

I think that's all you need to do, hopefully I didn't forget anything :) Just hit me up with more comments if there's any problems~


Thanks so much for the swift and indepth reply. Awesome! Will try all of it soon, thanks again!

I got the following error msg in GMS2.  Any resolution for this?

Script: player_score at line 1 : no references to arguments 0,1 but references arguments 2,3

Good catch, I can't believe I've let this slip through. Replace x and y with argument0 and argument1 respectively (in the script) and it should work as intended. I'll get an updated version with this fixed uploaded.

Uploaded a "v1.1" version of both source files with this fix applied. Let me know if there's any more problems.


It worked properly after replacing it.  Thanks.  and love your work!

Added a new GMS2 version of the source code - the original version imported and ran just fine in GMS2 for me, but this should save you a bit of work. If you've bought MariaEngine previously, this new version should be downloadable at no additional cost.

It's still a bit experimental since GMS2 got released just a few days ago, so please report any problems with the new version here.

So from what I can tell, this is an addon / editor gui addition to GameMakerStudio?

If you manage to integrate an easy way to add busts for dialogue, it's probable I'll use this for PFC.

It's a GMS source file, so anything you see in the demo can be tweaked just by editing the code. The dialogue system basically just uses an array for text, shouldn't be too much work to add in another array for mugshots/busts to go with it.


Thanks for the info! Once I consider working seriously on PFC again I'll definitely grab this up.

Your ladders need a bit of work. Also standing on a one way block and an enemy jumps up through will damage you. I assume to hop on enemies you need to be in the air rather than just above them. There doesn't seem to be a pause or an exit out of game when you're in full screen (I guess alt + enter worked to get me into full screen, it can work to get me out.) What about controller support?


The sprite provided is dark. Do you have a brighter version of that sprite ? Thanks !



Blazes, this is better stuff than the best of what's on the GM market. o _O Genius work.

Thanks! ^__^

And yeah, the GM Marketplace is kinda clunky at the moment, so I can see why a lot of content creators don't use it... (especially the GM integration that makes just adding something to a project take ages). It's much nicer to just distribute/load a GMZ file IMO.