Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics


A member registered Oct 01, 2014 · View creator page →

Creator of

Recent community posts

Hello, it will not - this is a DLL for Windows.

I don’t think you can do much more than the built-in functions allow you to on Android, but you can work with the SD card if you know the path to it (shown in file managers)

What about picking “Open” on it though? People did get this error in past.

If that’s not it, I don’t have further suggestions unless you’re willing to fiddle with the files (GMEdit runs on Electron 18.2.3) until it runs - I don’t have a well-functioning Mac at the moment.

Each room_pack_load_ function loads the provided room file/data before returning. This is by all means like instance_create_ functions, but with rooms.

You can use the Profiler in GameMaker’s debugger to figure out what’s time-consuming - perhaps you are occasionally loading more rooms than you think, or some of your rooms take longer to load than others (e.g. the bigger the room, the bigger is its tile grid).

GMEdit is not signed/notarized so you might have to mess with some things (A, B, C).

Answered in Discord, find

var _crc=buffer_crc32(_buf,_pos,_len)

and replace it with

var _crc=buffer_crc32(_buf,_pos,_len)^$FFFFFFFF

If you’re already running my fork rather than the original builder, you’ll have to debug it yourself or find someone that can - my 2015 Mac mini isn’t in a good shape so I have nothing to offer.

The game has now moved to a non-ancient GameMaker version and currently I have no suitable tools (nor the time to re-develop them) for modding games made with these.

Presume this mod to be dead until further notice.

There appear to be some issues with specific character ranges but I’m yet to figure out whether this is an issue on my end (some characters in JS are actually two “surrogate pair” characters) or a limitation of font generator library I use.

You can try opening the font in FontForge to see where did the glyphs go

The recent beta version broke JSON decoding for big integers - if you try


it’ll print


I’ll hopefully release an update sometime soon

Rooms are JSON - you can see what it has generated in the script/file and access it yourself as you may,

var _x_ini_node = 2016;
repeat (3) {
	var json_rooms = scr_room_node(); // generated from rooms starting with rt_
	// pick a random room name from the map:
	var name = ds_map_find_first(json_rooms);
	repeat (irandom_range(0, ds_map_size(json_rooms) - 1)) {
	    name = ds_map_find_next(json_rooms, name);
	// and load that:
	var _room = json_rooms[?name];
	room_pack_load_map(_room, _x_ini_node, 0, room_pack_flag_instances);
	var _roomSettings = _room[?"roomSettings"];
	_x_ini_node += _roomSettings[?"Width"];
// and when you're done:

Does this happen on a new project? And in what GameMaker version?

“Import Local Package” lets you pick a GMEZ.

Not automatically, no - the first GameMaker version where it’s possible to automatically collect built-in functions and call them by index is GMS 2.3. Older versions require making a script for every function that you want to be callable from Lua - one way or another.

See this topic on GM forums for some suggestions.

Looking back through the threads, I did make an extension for custom border+controls later on.

(1 edit)

Try copying the DLL from the 2.3 extension (you can open YYMPS as ZIP archive if you don’t have GMS2 installed) to extension directory in your project - I think the GMS1 version is a little older and requires Microsoft Visual C++ Runtime Redistributable (which I only noticed at some point).

Gamepads for non-first player are set using /gamepad2, /gamepad3, and /gamepad4, respectively.

See troubleshooting - you might be creating several instances of obj_gmlive and/or destroying/deactivating one or both.

display_measure does that - work area is the screen area without the taskbar (and/or docks, which you don’t really see anymore)

sprite_set_live is mostly just a sprite_replace call so it’s not very smart when it comes to less-common features and even less smart when it comes to things you can’t do in GML (like different times per frame).

For a workaround, could save your original sprite_get_nineslice(spr) and sprite_set_nineslice it when sprite_get_nineslice(spr).enabled == false.

Someone else reported this but I’m yet to figure out whether it’s the “enable fancy border” function that’s getting called when it shouldn’t be, or a Win11 quirk - probably have to set up the VM for this.

Unless someone on Discord has it (or is willing to rewrite it - was mostly about setting up 3d camera), that mini-mod is probably lost.

You can un-tick “export” check boxes for those in “Included Files” window (accessed using the menu in top-right of resource tree) - they are supposed to be un-ticked by default, but that doesn’t always work for some reason.

If they still export despite un-ticking the check boxes, you can remove them manually - they don’t do anything and the end user cannot get much use of them either.

You’ll want to find

function live_auto_call_1(){
	#macro live_auto_call if (live_auto_call_1()) { var lac_argc = argument_count, lac_args = array_create(lac_argc), lac_argk = 0; repeat (lac_argc) { lac_args[lac_argk] = argument[lac_argk]; lac_argk++; } if (live_auto_call_2(lac_args)) return live_result; };
	return true;

and change it to

function live_auto_call_1(){
	if(live_enabled) {
	#macro live_auto_call if (live_auto_call_1()) { var lac_argc = argument_count, lac_args = array_create(lac_argc), lac_argk = 0; repeat (lac_argc) { lac_args[lac_argk] = argument[lac_argk]; lac_argk++; } if (live_auto_call_2(lac_args)) return live_result; };
	return true;
	} else return false;

You’ll generally have to save for new variable layout to be picked up

(1 edit)

Auto-completion for structs works if

  • It’s a local variable, which is handled by the (smarter, slower) linter instead of project-wide indexer

  • It’s a new ConstructorName, inside of which you’ve set your variables

  • You’ve specified the type yourself via

    /// @hint {int} ImportantStruct:x
    /// @hint {int} ImportantStruct:y
    t = { /// @is {ImportantStruct}
        x: 1,
        y: 2

Fixed that for the next release as well (well, mostly).

If you have enabled “warn about missing fields”, you’ll get warning about typos when saving, but auto-completion is a bunch dumber since it has to quickly find what you are trying to access - it’s generally not cheap to back-track through the whole file whenever the user presses .

Added this for the next release - it’ll now show fisk(_fisk:int) with ‘Show argument types in status bar’ enabled.

Try Terrasavr+ instead - that one’s just a page that you download, not a whole app.

You’ll probably want Samuel’s xProcess for that

(1 edit)

Judging by documentation, it looks plausible, but the related functions (animcurve_channel_new, etc.) are perhaps among the least-used in GML so it’s hard to tell whether

  1. Updating a curve this way will correctly reflect changes across various ways to use it (like in sequences)
  2. Whether there will be more than a few people using the feature (it’s been almost 3 years since animation curves were introduced and I think you’re the first to ask this)

The next update will no longer complain about there being too many function arguments in built-in functions because I’m tired of fixing these.

I’m currently torn apart between multiple work projects and trying to make ScriptName.varName work without breaking 2.3.7 compatibility, but you can use live_function_add to override a function signature and live_constant_add to add a missing constant.

V2 isn’t compatible with HTML5 - you’ll want to use V1 for now if you need to target HTML5.

If your VPN includes a firewall, you may need to allow GMLive through it, or generally allow connections to localhost / The protocol used is HTTP / TCP.

  1. I have fixed it for the next version but haven’t released it yet
  2. That’s a GameMaker bug - send YoYo Games a bug report
(1 edit)

I’m in Ukraine so there’s not a whole lot of other payment processors I can use except for maybe Skrill, but you can send me an email with a short summary of what you can/cannot use anyway and we’ll see.

That sounds like a GM issue, but you can probably copy the DLL file over by hand (or add a copy to Included Files) if GM fails to.

Hm, yeah, I’m seeing that - in 2022.11.0.73 it seems to never (?) crash but calls it quits after 3 iterations. In 2023.2.1.90 it does 3 iterations most of the time. In 2023.1.1.81 it always (?) crashes. That’s pretty bad, I can’t think of why a choice of GM runtime would mess up Lua-side memory.

Set it to any other native cursor and back immediately - there is currently a bug with detecting whether there’s a need to change the cursor.

I have received your email but I have not been able to reproduce it in my test project with the code - either I accidentally fixed it since last release or this is a GameMaker bug that only exists in some runtimes.

No estimate for when the new version will be ready - there are some technical challenges (including coroutines, which work awfully weird in general) and also GM updates keep breaking my code - if you download the repository and compile it, the unit tests fail in good half of recent GM updates.

As far as I can tell,


should work because the extension will ask GM to update the cursor.