A downloadable asset pack

Download NowName your own price

Auto Tools is a GameMaker package of GML functions I've created over the course of my time as a game developer.  They are incredibly useful functions I make sure to include on every project I start.

It includes:

Prints a debug message or array of messages to the console with a separator

print(_debug_message, _separator=" - ")

Draws on-screen debug info showing mouse GUI coords and an optional offset marker

draw_mouse_debug_info()

Returns the length/size of a string, array or DS container

len(_obj)

Remaps a value from one range into another

remap(_value, _current_lower_bound, _current_upper_bound, _desired_lowered_bound, _desired_upper_bound)

Moves a toward b by up to acceleration without overshooting

approach(a, b, acceleration)

Checks whether a value exists in an array

in_array(_value, _array)

Concatenates all arguments into a single string

concat()

Converts a world-space X coordinate into GUI-space X

get_gui_x(_x)

Converts a world-space Y coordinate into GUI-space Y

get_gui_y(_y)

Converts a world-space (X, Y) into GUI-space coords

get_gui_from_pos(_x, _y)

Returns true if a point lies within the current view plus an optional margin

is_on_screen(_x, _y, _margin=0)

Applies an easing/tween function to a normalized progress value (includes a TweenType enum)

tween(_tween_type, _lerp_val)

Returns delta time in seconds (delta_time is in microseconds)

dt()

Returns true with the given percentage chance (0–100)

random_chance(_percent_chance)

Casts a ray from a point in a direction up to a max range, stopping on collision

raycast(_x, _y, _dir, _range, _objToCollide)

Builds an array of size _size by randomly picking unique elements from another array

create_non_repeat_array(_from_array, _size, defaultValue=undefined)

Checks if the current animation will exceed its last frame this step

is_anim_end()

Draws text with a given font and horizontal/vertical alignment, then resets alignment

draw_text_halign(_x, _y, _font, _txt, _halign=fa_left, _valign=fa_top)

Draws wrapped text with alignment, color, alpha, then resets alignment

draw_text_align_ext(_x, _y, _font, _txt, _halign, _valign, _color, _max_width=999, _separation=6, _alpha=1)

Draws wrapped, transformed text with alignment, scaling, color, alpha, then resets alignment

draw_text_align_transform_ext(_x, _y, _font, _txt, _halign, _valign, _color, _max_width, _separation, _alpha, _angle, _xscale, _yscale)

Clears every tile in the specified tilemap layer (sets to index 0)

clear_tilemap(_layer_name)

Retrieves the raw tile data (index + bits) from a tilemap cell

tile_get_data(_layer_name, _x_cell, _y_cell)

Returns only the tile index (stripped of flip/rotate bits) from a tilemap cell

tile_get_actual_index(_layer_name, _x_cell, _y_cell)

Sets the tile index at a specific cell in a tilemap layer, preserving bit flags

set_tile_to_index(_layer_name, _x_cell, _y_cell, _index)

Pauses execution for a specified duration by busy-waiting (blocks game loop)

sleep(_milliseconds)


Think of it as a lightweight standard library for GameMaker—drop in Auto Tools, import the script file, and instantly unlock dozens of small but powerful functions that handle common patterns so you can focus on your game’s unique logic.

All Auto products will include this, so no need to download it if you purchase AutoUi!

Download

Download NowName your own price

Click download now to get access to the following files:

AutoTools v1.0.0 2025-25-04.yymps 8.9 kB

Development log