Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics


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

Creator of

Recent community posts

In Visual Studio. The link to source code is in the first line of the description.

Most of my personal projects are currently on hold due to war in my country.

Changing these 3 lines to be

	yal_strcat(commandLine, L"\\system32\\rundll32.exe \\"");
	yal_strcat(commandLine, dllPath);
	yal_strcat(commandLine, L"\\" frame_process");

and re-compiling the extension will probably fix that.

The extension was originally going to be more or less superseded by a better one (which you can see in action in Nova Drift) in March, but due to war breaking out in my country I’m not sure when that’s going to happen at this point.

I’ve seen this a few times on one of my projects - it seems to be a bug in JavaScript runtime itself as no JS error should straight up crash the renderer process (which Developer Tools indicate).

I’ll likely have to update the Electron version for this, but it’s usually a bumpy ride - right now GMEdit uses v11 (2021) while the latest is v18 and there are dozens breaking changes between them.

As you might understand, there is not a lot that I can guess from this description alone - need a snippet of code that fails to work at least and a minimal reproducible project at best.

Windows will not let you perform some operations while a mouse is being held on a window as this would cause a click through to a window behind it - you’ll need to wait until the mouse release event.

v9940 has HLSL loading functions (shader_create, etc. - the 3d mod uses them I think), but I do not know if they will remain available since the extension I used no longer works in current GameMaker versions and my attempts to recreate it had very partial success.

Any “interpreter” for such a thing would be unbearably slow, which is also why integrated graphics cards struggle with shaders.

The easiest would be to wrap the function’s implementation in try-catch - incognito mode can be variously cursed, from localStorage existing but doing nothing (write something, read it back, and get nothing) to exceptions being thrown when trying to access it

Preferences ➜ Navigation ➜ Global Lookup ➜ Auto-completion mode

(1 edit)

You are using the extension name instead of the function name. As to how this worked before, is beyond me.

You might need to update to a more current GMS2.3 (or, well, GMS2022) version - the optional argument in debug_get_callstack was introduced in version, which released a year ago (16 Apr 2021).

Mods like this are much harder to do for Mac games than they are for Windows games, hence why my mods are generally Windows-only.

The mod does work if you use it with a Windows copy of the game through Crossover or Parallels, but both cost money. It’s not cheap to use Mac in general.

It is not a mistake - the usual approach is that you rewind the buffer with buffer_seek, write your data (which shifts the buffer position reported by buffer_tell) and then send that exact amount of data. Using buffer_get_size means that you’re sending the whole buffer every time - however large that is.

(1 edit)

view_*view variables have been deprecated since GMS2 - trying to use them as user-defined variables can have various undefined behaviour.

Should work fine - make sure that the GMLive object exists and all (FAQ)

The extension is open-source, go ahead

You have an asset named none, which breaks an enum in GMLive (gml_thread_status) that uses none as one of the options. You’ll have to either rename your asset or edit two lines of code in GMLive script (enum gml_thread_status{none, globalvar gml_thread_status_none;gml_thread_status_none=[gml_thread_status.none];).

As you might expect, I do not have an incentive to test whether my software works with any particular methods of pirating the game.

NTT works with DRM-free builds of Nuclear Throne, in which case it’ll offer to connect by IP-port instead of through Steam.

It is not possible to guarantee compatibility with pirated copies since pirated copies of games more and more often include malware, causing the NTT patcher to fail or degrading performance.

Apparently floor(-0) is still -0 (??), but round or int64 work.

(1 edit)

This wasn’t what I thought it would be:

In GMLive, I form a ds_map for switch-cases that have a constant (number, string) expression for a value for faster lookup.

However, point_direction(0, 0, 1, 0) isn’t 0. It’s -0, which is technically a different value:

I’ll think of what to do with this, but using floor, round, or int64(dir) will indeed work for a workaround - it’s pretty hard to get a -0 outside of math functions.

If you email me a small sample project, I can take a look.

Added for the next version - since the decision was made to not accept explicit type hints, I don’t think Feather will ever process GMLive correctly.

You’ll want gml_string.API.loadFromString (as per docs)

It is something that can be implemented by scrapping parts of my other extension (Screenshot Save Dialog) in a few hours / $60 or so, but the related API (ClipboardItem) is only implemented in desktop Chromium, making it something that you can’t actively rely upon as of yet.

If you are using a recent GM version and have “use x64 runtime” enabled in Game Options - Windows, you’ll have to compile the DLL yourself to target x64.

Fixed this in the new release

GMEdit was always free

Check in the new version - I figure that on Mac Electron fullscreen is either “proper” fullscreen or only leaves the menu on top

See here

Seems fine for me, but I’ve now uploaded a 2.3 demo project for good measure.

GMEdit community · Replied to yunzl in keyword

In app.js, if you find

var path = Electron_App.getPath("userData") + "/GMEdit"

and replace it by something like

var path = "./Settings";

it will use a relative path

Auto-completion tries to figure out the context - e.g. if you have

    <cursor here>

it is clearly an expression so showing repeat is inappropriate.

Unfortunately, this logic is also not very smart, which isn’t something that is easy to fix.

Perhaps I’ll look into it when the war in Ukraine is over.

The GMZ on the itch page is the example project - you can “import” it in both GMS1 and GMS2.

Horror beam isn’t a weapon so infammo doesn’t work on it - you’ll need to either modify this mod (see code related to keeprad) or find another mod to do so.

lb_disp_time_ms is also from now-removed Steam functions - you can copy all of these from 2.3.x fnames file.

(1 edit)

A path layer isn’t much of a layer - no points are stored in the room file.

I can potentially add path reloading in future - this doesn’t sound too bad, but there currently is a lot going on with Ukraine so it might take some time.

As a workaround, you can try disabling file system sandbox, loading the path YY file from project directory with a function like this

function file_get_contents(s) {
	var b = buffer_load(s);
	if (buffer_get_size(b) == 0) return "";
	var r = buffer_read(b, buffer_string);
	return r;

and then parsing the contents with json_parse and re-populating path points using the various path_ functions.

I don’t believe GameMaker offers any access to this - sprites marked for use as tilesets are sliced up and padded during compilation (meaning that the tileset counterpart isn’t a “sprite” and can’t be sprite_replace-d), and there isn’t a function to replace tileset images at runtime. It’s hard to think of an elegant way around this.

You’d want to add a script like this

/// @description  trace(...)
/// @param ...
function trace() {
	var r = string(argument[0]);
	for (var i = 1; i < argument_count; i++) {
	    r += " " + string(argument[i]);

However, the actual deal is that a layer isn’t recognized - I thought I’ve had everything covered (including effect layers) in the most recent version, so a sample wouldn’t hurt.

That would most likely mean that the issue is being caused by a bug in GameMaker runtime rather than something in GMLive code. If you can send me a copy of the project, I can take a look at whether there are workarounds.