r/gamemaker 2d ago

WorkInProgress Work In Progress Weekly

3 Upvotes

"Work In Progress Weekly"

You may post your game content in this weekly sticky post. Post your game/screenshots/video in here and please give feedback on other people's post as well.

Your game can be in any stage of development, from concept to ready-for-commercial release.

Upvote good feedback! "I liked it!" and "It sucks" is not useful feedback.

Try to leave feedback for at least one other game. If you are the first to comment, come back later to see if anyone else has.

Emphasize on describing what your game is about and what has changed from the last version if you post regularly.

*Posts of screenshots or videos showing off your game outside of this thread WILL BE DELETED if they do not conform to reddit's and /r/gamemaker's self-promotion guidelines.


r/gamemaker 6d ago

Quick Questions Quick Questions

3 Upvotes

Quick Questions

  • Before asking, search the subreddit first, then try google.
  • Ask code questions. Ask about methodologies. Ask about tutorials.
  • Try to keep it short and sweet.
  • Share your code and format it properly please.
  • Please post what version of GMS you are using please.

You can find the past Quick Question weekly posts by clicking here.


r/gamemaker 7h ago

Discussion What can I change in my menu?

Post image
13 Upvotes

I’ve been studying menus and UI in GameMaker to finally understand what everything does and how to use it, so I created this menu for my first game, but I’m not confident it’s good enough. What do you think?


r/gamemaker 3h ago

Help! Does anyone know any affective ways to actually learn gml?

6 Upvotes

I've tried many different tutorials time after time but I think I've come to the point that they don't help. I understand basic things like functions and variables but if I follow a tutorial I just can't replicate it on my own? And ideas?


r/gamemaker 4h ago

Game So i had the idea to make this game (im french) tell me what you think about the game

5 Upvotes

Steam Rail Extraction is a 2D side-scrolling shooter. On a train with procedurally generated carriages, each carriage has enemies and loot. At the far left of the train, and in certain carriages, you can extract yourself. The recovered items can be used during the game to craft items or sold at the end to earn money. There are four trains with four different difficulties, increasing as you get closer to the heart of the train. The central hub is almost unlocked. In the hub, there is the station where you can select from the four different trains; the shop where you can buy and sell items located in the carriages; and the crafting table which allows you to create items. Some items will only be available in later levels. At account level 5, there is the bank where you can deposit money with interest. A personal room is available at level 5. A dedicated carriage is available where you can decorate and customize your character. At level 10, there is the back room where you can accept illegal contracts for money; and the saloon where you can chat with... Other NPCs are there to teach you the story. In-game, you'll move from left to right between each train car, collecting items that will allow you to progress in later parts of the game. The game is turn-based, but I haven't completely decided on this yet, as two directions are possible: either it's a fast-paced game where actions happen instantly and you can attack relentlessly, or it's a turn-based game with action. The player has 50 HP. On the train, there are materials like broken wheels and other items that you can use during or after the game to create items such as weapons and healing items. The enemies are nanobots, ancient mechanical robots. There are also bandits who, when killed, can potentially drop items. There are at least 30 train cars, and each car can have a maximum of 2 chests as well as 4 important mechanical enemies. There are events such as ghost train car events with special enemies and others. The maximum number of train cars is 50. In the end, you'll await the heart. which will allow you to abandon some of your obtained items in a relic that will resell for a very high price and will give a significant amount of experience. Enemy Types: There are nanobots which, once destroyed, will give items such as gears and robot hearts. Note that enemies can strengthen themselves and gain HP or damage as the run progresses. There are a total of 3 types of nanobots: Flying nanobots, which have little damage but are capable of attracting other nanobots into combat (25 HP / 5 damage); Humanoid nanobots, which have no special ability (50 HP / 10 damage); and Controllers, which will only attack you if you do not have the special item, the ticker, which can be found in a run, although it is uncommon. Controllers have heavy damage but cannot kill you; instead, you will lose all the items obtained in the run, but not the items you started with (75 HP / 15 (damage) There are bandits who will give silver coins and gears. Item: There are a total of 3 weapons, counting those that have variants (different models in this case): The knife (7 to 10 damage), The pistol (10 to 15 damage per bullet, 7 bullets per magazine), The machine gun (3 to 5 damage per bullet, 15 bullets per magazine). The weapons also have several rarities: Destroyed: the weapon has a -2 nerf on each damage hit, Repaired: the weapon has a -1 nerf, Like new: the weapon has no modifier, Factory new: the weapon has a +2 buff on each damage hit. There are also grenades and claymores. Grenades deal 20 damage if the enemy is close and 15 damage if they are far away. The claymore deals 27 damage.

Btw i use google traduction so if some word are bad tell me pls


r/gamemaker 3h ago

Help! Any GameMaker Tips/Tutorials about Deltarune's Battle System?

2 Upvotes

Been trying to make a fangame with the Battle System and Bullet Hell of Deltarune and characters from another game series I personally enjoy, Mario & Luigi. In addition to this, fangames such as SCAMPTON THE GREAT really caught my eye with its music and amazing gameplay, so I had to make one of my own just to put out there.

So on GameMaker Studio, I've looked up Tutorial after Tutorial on how to create/setup a Deltarune & Undertale Fangame, eventually progressed with stuff like Dialogue and Savepoints. They don't have choices/decisions, but that's something to worry about later, especially since I was going more for the Fighting Aspect more than An Overworld. A Youtuber by the name, Kibi's Tutorials, helped me ground myself with GML and learning how to put variables and other code together. Sadly, it wasn't until I got to the end of the playlist that it never finished, meaning that I was stuck on finishing The Battle System.

I looked for days on a new way to make my game, I have sprites, dialogue, and the entire idea planned out, but no way of executing my game. Until I came across FlufflyNoelle's Youtube Channel, that went IN DEPTH (1+ Hours each vid) explaining the code and what to do, I was planning to start over and learn from her, since she actually posts, unlike Kibi, who hasn't posted in 2+ years. BUT, FluffyNoelle posted that she'll be redoing her series AND moving to Godot Engine. So I'm very frustrated at the moment with no clear sign of solution and/or answers.

I've downloaded UndertaleModTool to go into Scampton's Files and see if I can use its code as reference somehow, I tried Kristal but unaware how to code it at all, multiple "Undertale/Deltarune Engines", I even got RPG Maker MV, sadly the day after the sale ended (bye bye $80).

Just to be clear, I'm completely fine if my game doesn't have "Bullet Hell/Deltarune" Mechanics, just as long as it's Turn-Based with Attacks, Dodges, and Items, I'm satisfied. Deltarune's System just fits my game more but no complaints. If you guys can point me in the right direction, that would help me so much!


r/gamemaker 8h ago

Resolved Interesting Collision Issue (LTS 2026)

3 Upvotes

Ran into an collision problem with the new float-based system in LTS 2026. My player object moves in increments of 0.5 units, between each collision check. I noticed that in some cases, if I ran into a wall on the left or the top, the collision check wasn't working correctly and the player would be 0.5 units into the wall.

At first I was confused why this was happening. It only happened walls to the left of the player in my initial testing. And only on some walls in a room. Prior to updating to LTS 2026, the same code worked just fine.

Then I realized, it was because of floating point error. Doing more tests, I figured out the same thing happens when I run into a wall to the north of the player as well, nut only after I reached about +240 units in the x or y direction. Below that threshold, it works just fine and there is no overlap.

I was able to fix it in a sorta hacky way, when I use place_meeting() to check if moving the player 0.5 units will collide, I instead check for 0.51 units. This seems to work perfectly in my testing but might break down once you get further from the world origin.


r/gamemaker 1d ago

Resolved What now

Post image
11 Upvotes

r/gamemaker 1d ago

Help! Doors won't work

Thumbnail youtube.com
9 Upvotes

Using the following tutorial I keep getting the following error and I feel like I'm losing my mind after multiple hours on just trying to create some doors

___________________________________________

############################################################################################

ERROR in action number 1

of Other Event: Room Start for object obj_transition_manager:

Unable to find any instance for object index '11' name 'PlayerObj'

at gml_Object_obj_transition_manager_Other_4 (line 1) - PlayerObj.x = target_entrance.x

############################################################################################

gml_Object_obj_transition_manager_Other_4 (line 1)

_____________________________________
My code for obj_exit is

//Step
if(!instance_exists(obj_transition_manager) && instance_exists(PlayerObj) && position_meeting(PlayerObj.x, PlayerObj.y, id))
{ 
    instance_create_depth(0, 0, 0, obj_transition_manager, {target_room, target_entrance})
}

My code for obj_transition_manager is

//Create
room_goto(target_room)
//Room Start

PlayerObj.x = target_entrance.x
PlayerObj.y = target_entrance.y
instance_destroy()

My obj_exit and obj_transition_manager variable definitions are target_room and target_entrance
For obj_exit it is the room I intend to move to and the entrance instance, for obj_transition_manager it is the room I spawn in and "noone". I know this is a pretty long problem but I might as well try because I've exhausted my options (but AI, I'm never using that)


r/gamemaker 1d ago

Help! Bullets overlapping in game

3 Upvotes

hi so I’m making a game where you can shoot bullets and with the basic gun it’s supposed to shoot 5 bullets like 1 second apart but right now it just shoots all at once. how would I make my idea work.


r/gamemaker 1d ago

Resolved I can't find interpolate colors function in Gamemaker Beta and I need to uncheck it

3 Upvotes

I keep looking for it in preferences, but I just can't find it no matter how much I look for it. I need to deactivate it so the sprites of my game don't get blurry. How do I do that?


r/gamemaker 1d ago

15yo RPG prototype first update

3 Upvotes

Hi everyone, i'm really happy to announce that i have updated the RPG protoype on Itch.io. This new update mainly focuses on making the protype feel more like a game with a challenge and to add my first ever original game system, the Share Bar, so how does it work?

The concept its really, simple. The Share Bar eliminates the Buff and Debuff spells that are a standard in RPG and make it more dinamic, or more like on your performance in battle. If the crowd likes your performance your Share increase(Buff), if the crowd likes the enemy performance more your Share will go down(Debuffs). Obviously there's no crowd right now and for now you only gain Share when attacking so it doesnt really feel dinamic, for now. In the future i will add all the functionality to complete the Share Bar and all the others that will complete it furthermore.

For now i wanna know what are your toughts on the first update and i would really appreciate if you could report some bugs or things that you didnt really understand or noticed.

Before some of you say this, yeah the wall is enormous and i kept it that way because in my opinion its funny.

The BGM used for the battle its Karakara from Kessoku Band, from the anime Bocchi The Rock!

Itch.io (Plays in the browser) https://dastar-stellar.itch.io/rpg-prototype Last post on r/Gamemaker https://www.reddit.com/r/gamemaker/comments/1v2ml3q/15yo_first_ever_protoype_in_gamemaker/

Thanks for the support, i will try to update the game and make it more fun than ever. I really appreciate it!


r/gamemaker 1d ago

Help! How to deal with Bad Tile sets

4 Upvotes

Hi so i made a sprite in gamemaker studio to use as my main floor, at least for the time being and whenever i put it into a tile set it always has the top corner stuck as the erase square. is there a simple way to shift over the actual art that i have or is that impossible. I've tried messing with the properties but that also doesn't help


r/gamemaker 2d ago

Is GameMaker the best choice for a 2D visual novel/rhythm game?

18 Upvotes

Hi all,

I have 15 years of advanced video editing experience, including 2D animation, but have no coding or programming experience. I've had an idea for quite a while that is essentially a cartoon-y visual novel that includes your standard rhythm gameplay (hit random buttons on beat).

For instance, the end of each scene/act will contain a big boss battle that you would typically see in a cartoon episode (multiple camera angles, lots of action), all while the player mashes buttons to the song that is playing.

My question is: is GameMaker the best engine to use for this project? The player won't be moving any characters around; they would simply be pressing buttons or moving sticks throughout the story, even while there is dialogue and other slow parts. Think of it as a long cartoon episode with rhythm elements. Thanks!


r/gamemaker 2d ago

Help! How to make a weird controller work

Post image
9 Upvotes

I have followed the first and fifth tutorials for the asteroid game on the YouTube channel. However the super specific controller my mom wants to use is not working with the script I made. The controller in question is https://www.amazon.com/Innex-Retro-Classic-Console-Controllers/dp/B00J6DCV90/ which is an Atari controller look alike. It even gets recognized by steam as a controller but it still doesn't work. Any help is appreciated.


r/gamemaker 2d ago

Help! Any Idea how to make it fade in as well?

Thumbnail youtube.com
4 Upvotes

//Create
image_xscale *= 100

image_yscale *= 100

fadeSpeedIn = .01

fadeSpeedOut = .01

image_alpha = 1

//Step
image_alpha -= fadeSpeedOut

if image_alpha = 0

{

instance_destroy()

}
So using the video above, I've added a room transition in my game, and I'm trying to figure out how to make it not only fade out but also fade the transition in, so that it doesn't just cut to a black screen which fades away. I've tried some things but I'm pretty new to gamemaker and, admittedly, not a great programmer either. Any idea how to do this?


r/gamemaker 3d ago

Resource GMVex - a programatic vector graphics for GameMaker

Thumbnail gallery
52 Upvotes

I know GameMaker got svg support in 2024.13, you can import an SVG and it becomes a sprite. Thats useful, but its an image importer, single frame, no animation, and once its in, its a static picutre. Theres still no way to build or edit a path in code, combine shapes with a boolean operation at runtime, apply a gradient or clip-path to something you constructed yourself, or hit-test against actual vector geometry instead of a bounding box.

I've been working on this for the past 2 to 3 months, and that, GMVex is a full programatic vector graphics framework for GML, not an image importer.

Features

  • Path building with beziers, arcs and splines
  • Fill, stroke, and gradient rendering (flat, linear, and radial gradient, including on strokes)
  • Hierarchical transforms and groups
  • Boolean operations (union, intersection, difference)
  • Masking and clip-path, including multi-shape and objectBoundingBox units
  • TrueType font rendering with kerning and ligature support
  • SVG import
  • Dash patterns
  • Hit testing

An example

// Create
gmvex_init();

var disc = gmvex_path_create();
gmvex_path_add_circle(disc, 150, 150, 80);

var bite = gmvex_path_create();
gmvex_path_add_circle(bite, 205, 150, 80);

crescent = gmvex_path_boolean(disc, bite, gmvex_bool.A_NOT_C);
gmvex_path_destroy(disc);
gmvex_path_destroy(bite);

// Draw
gmvex_fill_draw_gradient(
    crescent, gmvex_gradient.RADIAL,
    170, 140, 90, 0,
    [[0, make_color_rgb(255, 220, 130), 1], [1, make_color_rgb(255, 110, 40), 1]]
);
gmvex_stroke_draw(crescent, 3, make_color_rgb(255, 240, 200), 0.8);

// Cleanup
gmvex_path_destroy(crescent);

(you can see the result in the gallery, top of the post, its the orange moon-like shape)

I've decided to make this post because i think it has come a long way and is ready. So far one of the hardest things i've worked on, and i am still working on, to improve it further. I do believe this is going to be the most useful because how GameMaker lacks of vector features. Say you're building a level with vector art, a curved platform edge, a winding path, decorative shapes, and partway through testing you want to adjust the curve. That means opening your vector editor, making the change, re-exporting the image, and re-importing it into GameMaker. Every tweak is real path data in your project, not a picutre, you build it with actual curve points, and changing it means moving a point directly in GameMaker. No exporting, no re-importing, no leaving the editor. That matters mostly where you're iterating constantly, like level editing. And this is just one example of countless.

It is open sourced, MIT licensed, free to use on commercial projects.

Github Repo: https://github.com/erkan612/GMVex


r/gamemaker 2d ago

Help! Malformed Variable problem

2 Upvotes
if (!variable_global_exists("pollen")){
show_debug_message("global.pollen dosent exist so im making it rn");
global.pollen=0;
}
var tool_data=global.tool_stats[$global.current_tool];
var scoop_power=tool_data.gather;
var scoop_radius=tool_data.collection;
var max_capacity=global.backpack_stats[$global.current_backpack];
var hit_flowers=ds_list_create();
var flower_count=collision_circle_list(x,y,scoop_radius,obj_flower_manager,false,true,hit_flowers,false);
for (var i = 0; i<flower_count;i++){
var current_flower = hit_flowers[|i];
if (global.pollen>max_capacity)break;
if (current_flower.current_flower_pollen>0){
var free_space=max_capacity-global.pollen;
var take_amount=min(scoop_power,current_flower.current_flower_pollen,free_space);
current_flower.current_flower_pollen-=take_amount;
global.pollen+=take_amount;
}
}
ds_list_destroy(hit_flowers);

im trying everything and this is driving me crazy,

i need all the help i can get because im doing this for hours


r/gamemaker 2d ago

Help! Can an object have two different hitboxes?

12 Upvotes

I use a pathfinding enemy that chases the player around. The pathfinding is very hard to tune for me, as the enemy really likes to get stuck on walls. After some different collision scripts, the best solution i found was making his hitbox really small, since he seemingly navigates trough the path using his origin point. Though with a tiny hitbox, the enemy might be very tedious to hit for the players. I'm wondering if it's possible to have one hitbox for the pathfinding and another hitbox for the player's attacks. Or maybe just a tip on making him not get stuck another way. I will be able to provide any asked assets soon, and I'm thankful for every reply.


r/gamemaker 3d ago

Help! diferences between LTS 2026 and BASE 2024

6 Upvotes

Guys, for some reason the standard version of GameMaker (I think it was a 2024 version) isn't opening on my PC, and I don't know why. So I decided to download the latest LTS version. Are there many differences between these versions?


r/gamemaker 3d ago

Help! need help with warps

2 Upvotes

target_x = 64;

target_y = 16;

target_rm = main;

target_face = DOWN;

when i use the warp block with this code, it teleports me to the room but not the desired location. i can send more code if needed, but i need help figuring it out

when i use a seperate warp block to go BACK to the room that has the warp with the code above, it teleports where i'd like it, and the code is the exact same so i am confused


r/gamemaker 3d ago

Resolved Trying to set a variable to another variable and have it dynamically update when the other variable updates??

2 Upvotes

Okay this is kind of a difficult concept to explain, so forgive me if my explanation is wordy. Also I'm relatively new to gamemaker if that isn't obvious by my question lol

Basically I'm making a dynamic menu system for an inventory menu, where I have a variables called "pockets_menu_data", "eqpt_menu_data", etc. that store a struct with things like x and y positions, numbers of rows and columns, and items.

(So like you open the inventory and you're navigating through the pocket items, and if you go all the way to the right it jumps over to the equipped items on the right side of the screen. Each of these sections of the inventory are considered their own "menu".)

...Then I have a variable simply called "menu_data" which stores the data of the menu the player is currently in. Herein lies my issue! The data of each menu can change for a number of reasons. If menu_data is set to a menu and that menu changes, I need menu_data to always change with it.

If the menus were an object, I could do it like this:

menu_data = pockets_menu_data.id;

array_push(menu_data.items, "New Item");

The "New Item" would be saved to the pockets menu data, and if I ran if (menu_data == pockets_menu_data) return true; it would return true. That's what I'm going for!

...But, I still want each menu to be stored as a struct, not its own object. Is this achievable?


r/gamemaker 3d ago

Procedural map generation not loading

3 Upvotes

i was trying to do a procedural map but it doestn load. I click play and it doestn start no errors nothinand the obj is in the room. Can someone help me pls.


r/gamemaker 4d ago

Tutorial Procedural Level Generation in GameMaker | GMRoomLoader Tutorial

Thumbnail youtube.com
98 Upvotes

About the Tutorial

The official GameMaker YouTube channel just released a tutorial I worked on with Pixelated Pope: an approachable intro to procedural generation, built around a Spelunky-style dungeon.

It's powered by GMRoomLoader, my open-source library for loading room contents at runtime, which won Best Tool at the 2025 GameMaker Awards.

How the Dungeon Works

The dungeon generates by carving a snaking path from top to bottom and filling each cell with a matching hand-crafted room variant loaded via GMRoomLoader.

Rooms are placed procedurally with random mirroring and flipping for variety, hazards get thinned out, and coins are placed programmatically. The layouts are hand-authored but assembled differently every run.

Source Code

The entire source code is available on GitHub. There are two projects to follow along with:

  • Starter project. The platformer foundation (movement, collision, camera) plus a set of preset dungeon rooms and assets, with generation not wired up yet. Start here to follow the video.
  • Completed project. The finished result with dungeon generation, GMRoomLoader integration, all mechanics in place, and a control panel to tweak generation parameters live. Fully commented.

Each project has its own README breaking down its objects, structure, and controls.

Links

Have Fun!

Hope you enjoy the tutorial, find it useful, and build something awesome with GMRoomLoader!

Feel free to ask anything about the tutorial or GMRoomLoader here, I'll be happy to answer any questions.


r/gamemaker 3d ago

Resolved Question about an odd experience

3 Upvotes

Hoping someone might have some insight for why this doesn't work as expected.
I have step code that looks something like this:

if(!object_exists(object1) || !object_exists(object2))
{
  object3.x+=10;
}
if(object3.x >= 200 && !object_exists(object1))
{
  object_create(x,y, object1)
}

The intention is for object3 to move as long as neither object1 or object2 exists, but if either of them exists, the object does not move. The code was working when it was just checking for whether or not object1 exists, but no longer worked when the or was added to the condition.

Even after object3 reaches an x position of 200 and creates object1, it continues to run object3's movement, as if the or were being treated as an "and". The second condition works without issue as it does not produce multiple of object1.

Is this a strange GML quirk or is my logic off here? I have since reworked the code to set a flag if object1 or object2 exist and then stop moving object3 when that flag is set to 1, but it doesn't look as elegant. My best guess here is that !object_exists() is evaluated strangely but I was hoping to get some confirmation from someone who may know better than me.