A downloadable extension for Windows

Buy Now$2.95 USD or more

This extension provides the ability to set system-level cursors for the game' window. Such cursors are framerate-independent and have zero lag (unlike anything that can be accomplished by drawing the cursor from "inside" the game).

Included functions:

  • window_set_cursor_sprite(sprite, subimg)
  • window_set_cursor_sprite_ext(sprite, subimg, xscale, yscale, blend, alpha)
  • window_set_cursor_surface(surface, hotpoint_x, hotpoint_y)
  • window_set_cursor_surface_part(surface, hotpoint_x, hotpoint_y)
  • window_set_cursor_normal() (reverts to cursor set via built-in functions)

Supported versions: GMS1, GMS2

Supported platforms:

  • Windows: via DLL (WndProc hook).
    Supports cursors up to 256x256px.
    Old systems may only support cursors up to 64x64px (in otherwords, make an option if you want a huge cursor)
    Likely works on UWP/Windows Store native apps, but wasn't tested yet.
  • HTML5: via JS (CSS3 cursors).
    Supports cursors up to 128x128px.
    On WebGL, cursors can only be changed in draw event, since drawing operations do not work elsewhere.
  • Given demand, Mac and Linux may be supported in future.

Package contains:

  • The extension itself.
  • Sample project (shown on the GIF).
  • Source code (GML, JS, C++).


Buy Now$2.95 USD or more

In order to download this extension you must purchase it at or above the minimum price of $2.95 USD. You will get access to the following files:

window_set_cursor.gmez 36 kB
window_set_cursor_demo.gmz 152 kB
window_set_cursor.yymp 50 kB

Download demo

window_set_cursor_demo.zip 2 MB

Development log