GameMaker (2.3)

Shampoo - Markup GUI framework

Zack Banack

You must be logged in to obtain assets


Version 0.9.4 released -- February 25, 2022

Shampoo lets you build GUIs using a markup language. It supports live-coding, so you can create and debug interfaces in real-time. Shampoo was created for rapid, lightweight interface creation and user input handling. Its development began in early 2019 and went through several major pivots and rewrites since.

[!] Shampoo is currently pre-version 1.0. Expect code cleanup, optimizations, and refactors as v1.0 approaches. These patches should not break existing integrations in unmodified ShampooMain scripts.

[!] The Shampoo framework documentation is hosted on Github. Please note that the docs are WIP. The highly in-depth demo included with the framework should be more than enough to show you a majority of features.

[!] Shampoo has only been tested and verified to work on GMS 2.3 Windows export (including YoYo Compiler) and MacOSX export.

v0.9.2 Features:

  • Live-coding development environment so you can create and debug interfaces in real-time

  • Lightweight setup: it only takes a single function call to get the framework initialized

  • File checksum verification to hinder tampering

  • A unique markup-like language to build interfaces quickly

  • Customization of colors, fonts, sprites, sizes, and more

  • Built-in easing/tween engine to give your menus juice

  • Buttons with ability to enable/disable them

  • Draggable interfaces

  • Checkboxes and toggles

  • Radio button groups

  • Text input with maxlength and numbersOnly attributes

  • Sliders with customizable min/max ranges and intervals

  • Tabbing/arrow key support for navigating elements

  • Content overflow/linebreaks

  • Custom callback functions and in-line hyperlinks

  • Sound effect (and toggling) support

  • Tooltips and hover effects

  • Hex, blue-red-green, and string color support, with a built-in palette

  • onLoad, onStep, onClose, onDraw, onDrag, onResize event listeners

  • Out-of-the-box window resizing support

  • Arrow key/tab navigation


  • Framework isolated from the included demo

  • Improved HTML5 support

  • iOS, Android, and console support

  • Dropdown menus

  • More advanced textareas and input interception

  • Paginations

  • More efficient text parsing and character escaping

  • Element padding, margins

  • Scrollviews

  • Lists, expansion of indentation logic

Terms of Purchase:

  • This framework source code is sold as-is. You will receive free updates as they release on this website.

  • The price is subject to change (e.g. limited-time promotions) or may vary based on the marketplace.

  • Support, bug fix requests, and general inquiries will be handled on a case-by-case basis at earliest possible convenience of Shampoo's sole developer.

  • No parts of your purchase may be re-distributed, re-sold, or bundled with existing assets.

  • After purchasing this source code, it can be used in both commercial and non-commercial projects indefinitely. For teams larger than 3 developers, please consider purchasing additional copies. While not necessary, it's a way to support ongoing development.

  • No credit attribution is required but appreciated (@Zack Banack).

  • Refund requests must go through this website.

End User Licence Agreement (EULA).

Age Rating: 4+


GMS2.3 - Version 0.9.41. Published February 25, 2022

Shampoo version 0.9.4 is a minor update that addresses issues in February 2021 betas of GMS2. Always remember to back up your projects (or use version control) before updating! * Fixed script_execute_ext* issue when argument array size=0 by introducing wrapper script sh_script_execute_ext * Added basic password attribute to textfields (thanks, @meseta!) * Fixed issue with instant param in function shampoo_canvas_close * Fixed order of operations in string sanitization script, shampoo_sanitize * Faster, buffer-based file reading in sh_read_file

Loading, please wait

Package contents

Loading, please wait

What is the issue?

Loading, please wait