Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
03acdb6
docs(feature): Iniital prefab builder text documentation
gurpreetsinghmatharoo Jul 13, 2026
1e31332
docs(feature): ADded eeamxaple for exporting code
gurpreetsinghmatharoo Jul 13, 2026
df07978
docs(feature): Prefab Builder preferences
gurpreetsinghmatharoo Jul 14, 2026
5ff7ec0
docs(feature): Finished current Prefab Builder docs
gurpreetsinghmatharoo Jul 14, 2026
bcd928d
docs(general): ds_priority_clear(), ds_queue_clear(), and ds_stack_cl…
gurpreetsinghmatharoo Aug 4, 2026
256035e
docs(general): Document that the depth range is only a safe recommend…
gurpreetsinghmatharoo Aug 4, 2026
0e75965
docs(general): Document the minimum size of a vertex buffer
gurpreetsinghmatharoo Aug 4, 2026
7a64b69
docs(general): Text fix on Sprite Editor Preferences page
gurpreetsinghmatharoo Aug 4, 2026
6aa3f2c
docs(feature): Tile maps now use pixel-centre-overlap check for colli…
gurpreetsinghmatharoo Aug 4, 2026
aed991a
docs(general): Initial draft for UI Layers section of the QS Guide
gurpreetsinghmatharoo Aug 4, 2026
b202f23
docs(general): draw_set_alpha() does not affect instances
gurpreetsinghmatharoo Aug 21, 2026
4cf8bdd
docs(general): You cannot use anon functions as constructor parent
gurpreetsinghmatharoo Aug 21, 2026
ee302e9
docs(feature): draw_sprite() subimg values wrap around the frame coun…
gurpreetsinghmatharoo Aug 21, 2026
e79a4c8
docs(general): layer_get_element_type() page is missing an entry for …
gurpreetsinghmatharoo Aug 25, 2026
d8a7b64
docs(general): improved ui layers page naming, added some images to M…
gurpreetsinghmatharoo Aug 27, 2026
175ef1b
docs(general): Making UI: place elements section
gurpreetsinghmatharoo Aug 27, 2026
4e12562
docs(general): Making UI - mouse interaction
gurpreetsinghmatharoo Aug 27, 2026
0473f1e
docs(general): Added text for Making UI examples section
gurpreetsinghmatharoo Aug 31, 2026
ce28ecc
docs(general): Making UI - finished images for Left part of example
gurpreetsinghmatharoo Aug 31, 2026
2be787c
docs(general): Finished images on Making UI page; "Further Reading" s…
gurpreetsinghmatharoo Aug 31, 2026
5413723
docs(general): Making UI - Further Reading section
gurpreetsinghmatharoo Sep 1, 2026
3b24f4a
docs(general): Making UI page finished
gurpreetsinghmatharoo Sep 1, 2026
96b1672
Merge branch 'develop.gurpreet-quickstart-ui' into develop.gurpreet
gurpreetsinghmatharoo Sep 1, 2026
b14b87a
docs(general): Fix math_set_epsilon
gurpreetsinghmatharoo Sep 1, 2026
338c1e7
docs(general): Fix surface_getpixel_ext example code
gurpreetsinghmatharoo Sep 1, 2026
4bf7e96
docs(general): Note that you cannot pause a call_later callback with …
gurpreetsinghmatharoo Sep 1, 2026
9fe29cc
docs(general): Document that single quote strings and comments are al…
gurpreetsinghmatharoo Sep 1, 2026
89d334f
Merge branch 'develop.gurpreet.prefab-builder' into develop.gurpreet
gurpreetsinghmatharoo Sep 1, 2026
4311950
docs(feature): Include Prefab Builder as a default plugin
gurpreetsinghmatharoo Sep 1, 2026
c4cbbbe
docs(feature): Move GMRT preferences under Platform Settings and rena…
gurpreetsinghmatharoo Sep 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ <h3 id="data_conversions">Data Conversions</h3>
<tr>
<td>string</td>
<td><span data-keyref="Type_String"><a href="../GameMaker_Language/GML_Overview/Data_Types.htm" target="_blank">String</a></span></td>
<td> </td>
<td>Both single quotes (&#39;) and double quotes (&quot;) are supported for strings in the JSON</td>
</tr>
<tr>
<td><span class="inline2">&quot;@@infinity$$&quot;</span>, <span class="inline2">@@-infinity$$</span></td>
Expand Down Expand Up @@ -125,6 +125,11 @@ <h3 id="data_conversions">Data Conversions</h3>
<span data-conref="../assets/snippets/Tag_note.hts"> </span> Relying on this behaviour will generally be of little use as the index will change between runs of the game.
</td>
</tr>
<tr>
<td>Comments</td>
<td> </td>
<td>The JSON may contain <span class="inline2">//</span> comments which are ignored during conversion</td>
</tr>
</tbody>
</table>
<h3 id="filter_function">Filter Function</h3>
Expand Down Expand Up @@ -262,7 +267,7 @@ <h2 id="serialisation">Serialisation</h2>
<div class="footer">
<div class="buttons">
<div class="clear">
<div>Back: <a data-xref="{title}" href="Additional_Information.htm">Additional Information</a></div>
<div>Back: <a data-xref="{title}" href="Additional_Information.htm">GameMaker Guides</a></div>
<div>Next: <a data-xref="{title}" href="Compatibility_Functions.htm">Compatibility Functions</a></div>
</div>
</div>
Expand Down
4 changes: 2 additions & 2 deletions Manual/contents/GameMaker_Language/GML_Overview/Structs.htm
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ <h2 id="constr">Constructor Functions</h2>
<p class="code">empty_vector = new Vector2();</p>
<h2>Inheritance</h2>
<p>Functions created this way will also support single <b>inheritance</b>, i.e.: you can create a constructor function that inherits data from another constructor function.</p>
<p class="note"><span data-conref="../../assets/snippets/Tag_note.hts"> </span> When working with inheritance, you cannot use method variables to define the constructor function, only script functions.</p>
<p class="note"><span data-conref="../../assets/snippets/Tag_note.hts"> </span> When working with inheritance, you cannot use method variables or anonymous functions in general to define the constructor function, only <strong>named </strong>script functions.</p>
<p>For example, we created the <span class="inline">Vector2</span> constructor function above, so we can then use that as the &quot;parent&quot; for another constructor function, which we&#39;ll call <span class="inline">Vector3</span>:</p>
<p class="code">function <strong>Vector3(_x, _y, _z) </strong><strong>:</strong><strong> Vector2(_x, _y) </strong>constructor<br />
{<br />
Expand Down Expand Up @@ -305,7 +305,7 @@ <h2>Struct Functions</h2>
<div style="float:right">Next: <a data-xref="{title}" href="Structs/Static_Structs.htm">Static Struct</a></div>
</div>
</div>
<h5><span data-keyref="Copyright Notice">© Copyright YoYo Games Ltd. 2025 All Rights Reserved</span></h5>
<h5><span data-keyref="Copyright Notice">© Copyright YoYo Games Ltd. 2026 All Rights Reserved</span></h5>
</div>
<!-- KEYWORDS
Structs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ <h1><span data-field="title" data-format="default">depth</span></h1>
<h3>Usage Notes</h3>
<ul class="colour">
<li>You <b>cannot</b> set the depth of an instance in its Draw event (all other events are fine). You can, however, set the depth at which to draw things in <a data-xref="{title}" href="../../../../../The_Asset_Editors/Object_Properties/Draw_Events.htm">Draw Events</a> using <span class="inline3_func"><a data-xref="{title}" href="../../../Drawing/GPU_Control/gpu_set_depth.htm">gpu_set_depth</a></span>.</li>
<li>There is a minimum (<span data-keyref="Const_Depth_Min">-16000</span>) and maximum (<span data-keyref="Const_Depth_Max">16000</span>) depth value outside of which instances will not be drawn, although they will still exist and process events.</li>
<li><span data-conref="../../../../../assets/snippets/Depth_range.hts"> </span></li>
<li>You can assign a floating point value as the <span data-field="title" data-format="default">depth</span>, though the decimals will have no effect as <span data-keyref="GameMaker Name">GameMaker</span> truncates the value (i.e. removes the decimal part). Depth is treated as an as integer number internally.</li>
<li>When you modify the <span class="inline2"><span data-field="title" data-format="default">depth</span></span>
<font face="menlo, consolas, monospace"><b> </b></font>variable and <span data-keyref="GameMaker Name">GameMaker</span> manages the layers, the built-in <span class="inline2"><span style="font-size:1px;"><a href="layer.htm"><span class="inline">layer</span></a></span></span> variable will hold an invalid layer handle (<span class="inline2">-1</span>) instead of a valid one, since managed layers cannot be manipulated through code.
Expand Down Expand Up @@ -52,7 +52,7 @@ <h4>Example:</h4>
<div style="float:right">Next: <a data-xref="{title}" href="layer.htm">layer</a></div>
</div>
</div>
<h5><span data-keyref="Copyright Notice">© Copyright YoYo Games Ltd. 2025 All Rights Reserved</span></h5>
<h5><span data-keyref="Copyright Notice">© Copyright YoYo Games Ltd. 2026 All Rights Reserved</span></h5>
</div>
<!-- KEYWORDS
depth
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Filter and Effect Functions</title>
<meta name="generator" content="Adobe RoboHelp 2022" />
<link rel="stylesheet" href="../../../../../assets/css/default.css" type="text/css" />
<meta name="generator" content="Adobe RoboHelp 2022"/>
<link rel="stylesheet" href="../../../../../assets/css/default.css" type="text/css"/>
<script src="../../../../../assets/scripts/main_script.js" type="module"></script>
<meta name="rh-authors" content="Gurpreet S. Matharoo" />
<meta name="topic-comment" content="Page outlining the different functions and variables associated with Filter/Effect Layers" />
<meta name="rh-index-keywords" content="Filter and Effect Functions" />
<meta name="search-keywords" content="Filter and Effect Functions" />
<meta name="rh-authors" content="Gurpreet S. Matharoo"/>
<meta name="topic-comment" content="Page outlining the different functions and variables associated with Filter/Effect Layers"/>
<meta name="rh-index-keywords" content="Filter and Effect Functions"/>
<meta name="search-keywords" content="Filter and Effect Functions"/>
</head>
<body>
<!--<div class="body-scroll" style="top: 150px;">-->
Expand All @@ -20,12 +19,12 @@ <h2>Overview</h2>
<div data-conref="../../../../../assets/snippets/FX_only_added_through_IDE.hts"> </div>
<p>The latter method (of specifying the filter/effect in your code) only works with string <a class="glossterm" data-glossterm="literal" href="#">literal</a><span class="glossextra">s</span> directly specified in the function argument, which means that if you use a variable or any logic to come up with the filter/effect name string, then the asset compiler will not detect that and the filter/effect will not be loaded.</p>
<p>Consider the following examples:</p>
<p class="code">// This will work on its own<br />
var _fxshake = fx_create(&quot;_filter_screenshake&quot;);<br />
<br />
// This will NOT work on its own<br />
var _myfilters = { screenshake: &quot;_screenshake&quot; }<br />
var _filter_to_use = &quot;_filter&quot; + _myfilters.screenshake;<br />
<p class="code">// This will work on its own<br/>
var _fxshake = fx_create(&quot;_filter_screenshake&quot;);<br/>
<br/>
// This will NOT work on its own<br/>
var _myfilters = { screenshake: &quot;_screenshake&quot; }<br/>
var _filter_to_use = &quot;_filter&quot; + _myfilters.screenshake;<br/>
var _fxshake = fx_create(_filter_to_use);
</p>
<p>To ensure that the latter method works, you can simply add the filter to at least one room in your project, or ensure that <span class="inline"><a href="fx_create.htm">fx_create()</a></span> is called anywhere in your project with the filter name as a string constant (and not a variable).</p>
Expand Down Expand Up @@ -73,17 +72,17 @@ <h2>Modify FX At Runtime</h2>
</ul>
<p>Here is example code for the workflow mentioned above:</p>
<p class="code_heading">Create Event</p>
<p class="code">// Store the FX struct, and its parameters struct, in variables<br />
pixelate_fx = layer_get_fx(&quot;Effect_1&quot;);<br />
<p class="code">// Store the FX struct, and its parameters struct, in variables<br/>
pixelate_fx = layer_get_fx(&quot;Effect_1&quot;);<br/>
pixelate_fx_params = fx_get_parameters(pixelate_fx);</p>
<p class="code_heading">Step Event</p>
<p class="code">// Change param as variable<br />
pixelate_fx_params.g_CellSize = round((mouse_x / room_width) * 64);<br />
<br />
// Or, change param as string<br />
pixelate_fx_params[$ &quot;g_CellSize&quot;] = round((mouse_x / room_width) * 64);<br />
<br />
// Apply updated parameters struct to the FX struct<br />
<p class="code">// Change param as variable<br/>
pixelate_fx_params.g_CellSize = round((mouse_x / room_width) * 64);<br/>
<br/>
// Or, change param as string<br/>
pixelate_fx_params[$ &quot;g_CellSize&quot;] = round((mouse_x / room_width) * 64);<br/>
<br/>
// Apply updated parameters struct to the FX struct<br/>
fx_set_parameters(pixelate_fx, pixelate_fx_params);
</p>
<h2>FX Runtime Parameters</h2>
Expand All @@ -102,10 +101,10 @@ <h2>Single Layer Mode</h2>
<p>By default, a filter/effect is applied to the layer that it is <a href="layer_set_fx.htm">assigned to</a> and all layers below that layer, however you can use <a href="fx_set_single_layer.htm"><span class="inline">fx_set_single_layer()</span></a> to enable <strong>Single Layer</strong> mode for a filter/effect to make sure that it&#39;s only applied to the layer that it is assigned to.</p>
<p>The following visual shows a filter being applied to multiple layers (which is the default behaviour for all FX layers), and then the same filter with Single Layer mode enabled and applied to a non-FX layer:</p>
<div class="image_columns">
<figure><img alt="Fire Jump man is woozy with the universe" class="center_shadow" src="../../../../../assets/Images/Scripting_Reference/GML/Reference/Rooms/FX_single_layer_off.png" title="Fire Jump man is woozy with the universe" />
<figure><img alt="Fire Jump man is woozy with the universe" class="center_shadow" src="../../../../../assets/Images/Scripting_Reference/GML/Reference/Rooms/FX_single_layer_off.png" title="Fire Jump man is woozy with the universe"/>
<figcaption>Single Layer Mode OFF</figcaption>
</figure>
<figure><img alt="Fire Jump man is woozy... alone" class="center_shadow" src="../../../../../assets/Images/Scripting_Reference/GML/Reference/Rooms/FX_single_layer_on.png" style="cursor: nesw-resize;" title="Fire Jump man is woozy... alone" />
<figure><img alt="Fire Jump man is woozy... alone" class="center_shadow" src="../../../../../assets/Images/Scripting_Reference/GML/Reference/Rooms/FX_single_layer_on.png" style="cursor: nesw-resize;" title="Fire Jump man is woozy... alone"/>
<figcaption>Single Layer Mode ON</figcaption>
</figure>
</div>
Expand All @@ -116,7 +115,7 @@ <h2>Single Layer Mode</h2>
<div class="buttons">
<div class="clear">
<div style="float:left">Back: <a href="../Rooms.htm">Rooms</a></div>
<div style="float:right">Next: <a data-xref="{title}" href="../UI_Layers/layer_get_flexpanel_node-copy.htm">UI Layers</a></div>
<div style="float:right">Next: <a data-xref="{title}" href="../UI_Layers/ui_layer_funcs.htm">UI Layers</a></div>
</div>
</div>
<h5><span data-keyref="Copyright Notice">© Copyright YoYo Games Ltd. 2025 All Rights Reserved</span></h5>
Expand All @@ -128,5 +127,5 @@ <h5><span data-keyref="Copyright Notice">© Copyright YoYo Games Ltd. 2025 All R
<!-- TAGS
fx_layer_functions
-->
</body>
</html>

</body></html>
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@
<!--<div class="body-scroll" style="top: 150px;">-->
<h1><span data-field="title" data-format="default">layer_depth</span></h1>
<p>This function can be used to change the <b>depth</b> of the given layer, changing the order in which its contents will be rendered to the screen.</p>
<p>You supply the layer handle (which you get when you create the layer using <span class="inline3_func"><a data-xref="{title}" href="layer_create.htm">layer_create</a></span>) or the layer name (as a string - this will have a performance impact) and then give the new depth to set it to (an integer value from <span data-keyref="Const_Depth_Min">-16000</span> to <span data-keyref="Const_Depth_Max">16000</span>). The layer depth is defined as being higher when &quot;further away&quot; from the camera and lower when &quot;closer&quot; to the camera, so if you have three layers with depths -100, 0, 100, the layers will draw in the order 100, 0, -100, so that the &quot;top&quot; layer (i.e., the closest to the camera view and so drawn over everything else) will be the layer with the -100 depth.</p>
<p>You supply the layer handle (which you get when you create the layer using <span class="inline3_func"><a data-xref="{title}" href="layer_create.htm">layer_create</a></span>) or the layer name (as a string - this will have a performance impact) and then give the new depth to set it to. The layer depth is defined as being higher when &quot;further away&quot; from the camera and lower when &quot;closer&quot; to the camera, so if you have three layers with depths -100, 0, 100, the layers will draw in the order 100, 0, -100, so that the &quot;top&quot; layer (i.e., the closest to the camera view and so drawn over everything else) will be the layer with the -100 depth.</p>
<p>The following image shows a schematic of how depth works for layers:</p>
<p><img alt="Layer depth example" class="center" src="../../../../../assets/Images/Scripting_Reference/GML/Reference/Rooms/Layer_Depths.png" />Note that you can check the depth of a layer at any time using the function <span class="inline3_func"><a data-xref="{title}" href="layer_get_depth.htm">layer_get_depth</a></span>. Also note that the minimum and maximum layer depths are <span data-keyref="Const_Depth_Min">-16000</span> to <span data-keyref="Const_Depth_Max">16000</span>, and anything outside of those depths <b>will not be rendered</b>. If you require a depth outside of that range then you will need to use the function <span class="inline3_func"><a data-xref="{title}" href="layer_force_draw_depth.htm">layer_force_draw_depth</a></span>.</p>
<p><img alt="Layer depth example" class="center" src="../../../../../assets/Images/Scripting_Reference/GML/Reference/Rooms/Layer_Depths.png" />You can check the depth of a layer at any time using the function <span class="inline3_func"><a data-xref="{title}" href="layer_get_depth.htm">layer_get_depth</a></span>.</p>
<p><span data-conref="../../../../../assets/snippets/Depth_range.hts"> </span></p>
<div data-conref="../../../../../assets/snippets/Note_Depth_Values_Are_Approximate.hts"> </div>
<p>Keep in mind that modifying the depth of a layer may change which <a data-xref="{title}" href="../../../../../The_Asset_Editors/Room_Properties/Filters_and_Effects.htm">Filters and Effects</a> are applied to it, as changing the depth to be lower than an FX layer&#39;s depth will no longer apply its effect on the layer.</p>
<p> </p>
Expand Down Expand Up @@ -62,7 +63,7 @@ <h4>Example:</h4>
<div style="float:right">Next: <a data-xref="{title}" href="layer_force_draw_depth.htm">layer_force_draw_depth</a></div>
</div>
</div>
<h5><span data-keyref="Copyright Notice">© Copyright YoYo Games Ltd. 2025 All Rights Reserved</span></h5>
<h5><span data-keyref="Copyright Notice">© Copyright YoYo Games Ltd. 2026 All Rights Reserved</span></h5>
</div>
<!-- KEYWORDS
layer_depth
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
<script src="../../../../../assets/scripts/main_script.js" type="module"></script>
<meta name="rh-authors" content="Mark Alexander" />
<meta name="topic-comment" content="Page outlining the function layer_get_element_type" />
<meta name="rh-index-keywords" content="layer_get_element_type,layerelementtype_background ,layerelementtype_instance,layerelementtype_tilemap,layerelementtype_sprite,layerelementtype_particlesystem,layerelementtype_tile,layerelementtype_sequence,layerelementtype_undefined,layerelementtype_oldtilemap" />
<meta name="search-keywords" content="layer_get_element_type,layerelementtype_background ,layerelementtype_instance,layerelementtype_tilemap,layerelementtype_sprite,layerelementtype_particlesystem,layerelementtype_tile,layerelementtype_sequence,layerelementtype_undefined,layerelementtype_oldtilemap" />
<meta name="rh-index-keywords" content="layer_get_element_type,layerelementtype_background ,layerelementtype_instance,layerelementtype_tilemap,layerelementtype_sprite,layerelementtype_particlesystem,layerelementtype_tile,layerelementtype_sequence,layerelementtype_undefined,layerelementtype_oldtilemap,layerelementtype_text" />
<meta name="search-keywords" content="layer_get_element_type,layerelementtype_background ,layerelementtype_instance,layerelementtype_tilemap,layerelementtype_sprite,layerelementtype_particlesystem,layerelementtype_tile,layerelementtype_sequence,layerelementtype_undefined,layerelementtype_oldtilemap,layerelementtype_text" />
<meta name="is_pure" content="true" />
</head>
<body>
Expand Down Expand Up @@ -62,6 +62,10 @@ <h1><span data-field="title" data-format="default">layer_get_element_type</span>
<td><span class="inline">layerelementtype_sequence</span></td>
<td>The element is a sequence.</td>
</tr>
<tr>
<td><span class="inline">layerelementtype_text</span></td>
<td>The element is text.</td>
</tr>
<tr>
<td><span class="inline">layerelementtype_undefined</span></td>
<td>The element does not exist or the ID value is erroneous.</td>
Expand Down Expand Up @@ -109,7 +113,7 @@ <h4>Example:</h4>
<div style="float:right">Next: <a data-xref="{title}" href="layer_get_x.htm">layer_get_x</a></div>
</div>
</div>
<h5><span data-keyref="Copyright Notice">© Copyright YoYo Games Ltd. 2025 All Rights Reserved</span></h5>
<h5><span data-keyref="Copyright Notice">© Copyright YoYo Games Ltd. 2026 All Rights Reserved</span></h5>
</div>
<!-- KEYWORDS
layer_get_element_type
Expand All @@ -120,6 +124,7 @@ <h5><span data-keyref="Copyright Notice">© Copyright YoYo Games Ltd. 2025 All R
layerelementtype_particlesystem
layerelementtype_tile
layerelementtype_sequence
layerelementtype_text
-->
<!-- TAGS
layer_get_element_type
Expand Down
Loading