Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics


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

Creator of

Recent community posts

I have rechecked and I do set the codepoint to U+1F451 as expected.

There's a possibility that the issue is on fonthx end, but I lack familiarity with both the codebase and TrueType format internals to even find where the codepoints are being written into the output.

Font appearing as BMP only is something about fonthx, but my attempts to figure out what is responsible for that have been similarly unsuccessful - fonts exported from FontStruct also show the same.

I have now released a new version that implements surrogate pair support. Haven't actively crossed my mind during initial development.

I have requested access from

Considering that GMLIve simply calls the actual variable_instance_get_names function, that would suggest that there is a bug in GameMaker itself.

If you can send me a sample project reproducing the issue, I can take a look at whether there are any obvious workarounds. is the default "host machine" address on AVD (ref).

1. You would want to replace "localhost" by an IP of the host machine that is visible from the virtual device.
2. You would want to set a flag to allow cleartext traffic as described in the manual (under "permissions")

Correct me if I'm wrong, but bitmap strikes are primarily intended for providing hand-drawn versions of glyphs for resolutions where automatic rasterization may not be readable. The documentation is kind enough to remark that you may run into support issues if your font contains no outlines at all, which is perhaps why the rest of the tools mentioned settle for generating outlines for exported pixels when targeting TTF/OTF (I wrote a small explanation of the algorithm used in mine).

All in all, positive reception suggests that plenty of people found the tool to be an improvement over alternatives, but perhaps we all have our own standards.

I have now uploaded a new version that fixes that - a native menu pops up on most windows when you press Alt+Space, but this one certainly isn't having a good time drawing over the game window.

The nameless 'electron' binary blob is +x and is what you would run

Is this about room reloading specifically? Does regular live reloading work? If not, does the time inside the server window keep ticking? If it does not, you have managed to deactivate or otherwise get rid of obj_gmlive.

I did make a small video on setting up room reloading:

The update with this and another translation is now live!

I am working on it, but, as this extension is using basically entirety of GML syntax, it is a little more sensitive to breaking changes, so I have to readjust some things to workaround oddities.

Don't forget to flag disable the regular border!

Hello, everything is fine - I just didn't publish an update yet

You can click on the mod list +/- button when it's open to minimize it

You can! Right-click on Extensions section in the resource tree, pick "Import Extension", and it'll let you pick the GMEZ. Or pick "Import" on home tab and pick the GMZ.

Perhaps not FontForge - not unless you want to trace a pixel outline by hand anyway (or use autotrace, which isn't really made for tracing pixels).

I do explain what makes this tool different from FontStruct/BitFontMaker in the blog post.

Haven't heard of Bits'N'Picas before - that looks pretty cool.

Whether a tool you make your assets with is compatible with your project's license is irrelevant unless you want to ship your tools with your project. I pose no restrictions on what you do with the fonts you draw and convert using the tool.

The tool itself is not open-source, though my changes to underlying font generator library are published on GitHub, and a list of libraries it uses is available on the help page.

If you want to draw symbols directly on a webpage, BitFontMaker2 is perhaps the closest in terms of workflow. As for my tool, note that you can paste an updated image into it right out of your preferred image editor. I do explain my process and motivation in the blog post.

I may look into allowing to paint in the tool in future, but there is a lot to making an adequate pixelart editor.


(1 edit)

Ah, it's simpler than that actually - your glyphs are white on transparent, and the tool expects black on white or black on transparent. I'll add auto-detection of some kind later. Invert your colors for now.

Can you post your settings JSON? Does the sample font (which is shown when opening the page) work?

Snippet support was added since then and can be used to add an auto-completion item that inserts a live_call line / live_call_ext lines

Hello! The new build with this fixed is now live - that was a bug with calculating LSB.

1. I'm not getting this on my end, except for "smart" auto-completion mode, which shows ef_ellipse and a few other options (as keywords are not currently among the auto-completion suggestions). Was this on the current beta? (which I have now also pushed onto stable channel)
2. If you mean Ctrl(Cmd?)+Shift+F, I'm not seeing that on my end, so please elaborate.
3. See if that works in regular Ace.
4. I intend to implement this, but some additional checks are required, as I do not want a side effect similar to what is seen in Inkscape and some other software (where, if you change a monitor configuration, a window may open completely off-screen)
5. This is by design - pretty much everything in GMEdit happens at the exact moment of saving, be it indexing, syntax checks, or syntax extension hooks. Rewriting this to speculatively evaluate changes in real-time is possible, but expensive.

When playing online, an "everything is unlocked" save file is loaded up by default. You can then load someone's actual save file via /loadgame and later update it via /savegame.

I guess that answers my note from earlier, ha.

I uploaded a new version that adds an option to Project Properties.

If the IP is right, the port is right, the game is allowed in Windows Firewall, and you cannot connect to the other person when they host either, I guess that's it then - the cosmic forces have determined that life has been too easy for you.

It's shown in the Hamachi UI, I think right on top of the program above your list of networks.

Unfortunately, in two years time no one agreed to pay me to write out documentation for the extension, and now I do not remember how most of it is supposed to work either, so you'll have to experiment and see how things work.

That would usually mean that you are not using a Hamachi-provided local IP address to connect or Windows Firewall blocks the connection.

See "Using snippets" on wiki

I intend to support 2.3, but it does indeed come down to

A. Adding support for new syntax to GML-side compiler and runtime.
B. Adding support for new syntax to file-watch server.
C. Supporting new and unusual ways for code to be stored.

As you mention, reported function names currently leave much to be desired, so we'll see if that improves or if I'll have to add some sort of manual tagging (like assigning a unique name into a global variable before you live_call) for functions.

For that you will have to follow the instructions on the blog post to assemble the extension yourself.

You could test this by replacing a steam application with the demo from here, but I somewhat doubt that SRPT goes as far as registering virtual keyboards/mice. A tool that I'm currently developing allows to write input adapters to map keyboards/mice to a virtual gamepad.

That's on GMS1 - if you open a resource in IDE, the IDE memorizes the contents and will overwrite the on-disk version with what it recalled upon saving the project (which happens on run). GMS2 does not share this issue.

So if you must use GMS1, I would suggest to not touch the resources that you are going to edit externally, or subsequently re-open the project in GMS1.

As for losing progress, GMEdit automatically keeps two backups for anything you edit, which you can access via right-click menu on the tab.

If it's purely about fast insertion, GMS1, GMS2, and GMEdit all have snippet support.

Snippet file location: %APPDATA%\GameMaker-Studio\snippets.txt
Keyboard shortcut: F2

Snippet file location: %PROGRAMFILES%\GameMaker Studio 2\TextEditor\snippets.txt
Keyboard shortcut: F4
Note: make a backup since the file can get overwritten on IDE updates

Snippet file location: Accessed via Preferences - Code Editor - edit snippets (wiki)
Keyboard shortcut: none - shown in auto-completion when you start typing out snippet names

Is your extension literally scanning the files for some regex of " if (live_call()) { return live_result; }"

Close enough - it looks for the pattern outside of comments/strings but it is not aware of macros.

Supporting macro expansion for live detection means that:

  1. The server needs to actually parse tokens in every single code snippet in the project, which can add up on large projects.
  2. The server needs to store code snippets in memory so that it can parse them again after entirety of codebase had been scanned and macros have been established (as you can put macros absolutely anywhere).

I intend to support this later (alongside with rewriting macro support in runtime to be more GML-like instead of "pure" macros - I write a lot of strange GML parsers these days), but for workaround I could probably add a CLI option for the server to add extra regular expression(s) for live code detection?

As we have talked on Discord, you cannot layer_tilemap_get_id on dynamically created layers.

You will have to make a small script like

/// layer_tilemap_get_id_fixed(layer)
var els = layer_get_all_elements(argument0);
var n = array_length_1d(els);
for (var i = 0; i < n; i++) {
    var el = els[i];
    if (layer_get_element_type(el) == layerelementtype_tilemap) {
        return el;
return -1;

If you can email me a sample project where things are misbehaving, I will take a look

That means that you have installed a non-beta version.