Asset - Scripts uiZ - ultimate ui framework

Tthecreator

Your Creator!
CLICK HERE to go to the marketplace! Click here to got to GitHub!


It feels good to finally up this tread on my latest ui asset which I have been working on for years now (I think i started in 2016 somewhere). I've now made uiZ FREE and OPEN SOURCE for any non-commercial usage! Please checkout my GitHub for the source.

This framework is meant to give the developer a structured way of writing their own ui. It's also made for maximum customizability, so you can make your game feel exactly the way you want it to.

Please watch this introductory video on what uiZ holds:


Take a look at this example where I remade windows 3.1: https://forum.yoyogames.com/index.php?threads/uiz-windows-3-1-made-in-uiz-in-game-maker.12624/

Here's a list of features:

  • A load of default objects (Buttons, lists, string input boxes);
  • A complete placement and scaling system with multiple data types;
  • Animations. Also advanced animations that allows you to combine functions;
  • Templates for you to use;
  • Mouse menu system;
  • Scrollbar system;
  • Slideable bars;
  • Windows;
  • Frames;
  • Framesets (html alike);
  • Grids;
  • Other frame structures;
  • Tutorials to get beginners started;
  • Fast-lane tutorial to get pro's started;
  • Tutorials to setup and use the designer;
  • Tutorials to create your own objects and use uiZ to full potential;
  • Great documentation;
  • Many useful scripts
  • many, many ui widgets
  • Global systems for modifying objects. (e.g. systems for managing borders and backgrounds on objects, etc...)
  • Support from me if you think something is missing, something isn’t working or if you don’t understand something;
  • Support for both game maker 1.4 and 2.x.
  • the list goes on...
UiZ is dual-licensed. For use in open source or hobby projects it is free to use under GPL. For commercial cases a license is available for a small fee.

If you do have any questions before the purchase of this asset, please ask them under this post, or send me a personal message.
 
Last edited:

Tthecreator

Your Creator!
Changelog:
Version 2.0
-debugged the designer setup process and changed some other small things
-integrated "SAFEMODE" in a better way.
-fixed dll
-more advanced and automatic "SAFEMODE", preventing any designer scripts able to interact with the system and/or game maker files unusable outside the designer.
-made several improvements and fixed several bugs on uiz_gettextlines_contained
-fixed bug with disabled scrollbars, performance and containment issues.
-fixed bug in uiz_textarea_addchar where typing on the last character would move it one position back.
-fixed bug with nested windows drawing over other non nested windows.
-added gml_pragma("forceinline") to uiz_c()
-there is now a completely separate package available for gms 2.0 with the designer pre removed.
-fixed some depth bugs in gms 2.0.
-made a macromanager, that handles the uiZ macros in a better way.
-added a ton of scripts! Almost every customizable aspect of any uiZ object now has a function. These script actually only just set some variables on objects but these scripts have auto completion and are easier for find and understand.
Scripts include:
-uiz_easybutton_create
-uiz_3waybutton_setcolor
-uiz_3waybutton_settext
-uiz_3waybutton_setsprite
-uiz_button_settext
-uiz_checkbox_setcheckmarkcolor
-uiz_checkbox_setcheckmarkmargin
-uiz_checkbox_setsprite
-uiz_checkbox_setspritecolor
-uiz_checkbox_setvalue
-uiz_checkbox_togglevalue
-uiz_checkbox_getvalue
-uiz_checkbox_hasupdated
-uiz_clock_setdots
-uiz_clock_setsprite
-uiz_clock_setpointercolor
-uiz_clock_setpointersize
-uiz_clock_settime
-uiz_clock_enablepointers
-uiz_clock_setanimation
-uiz_colorbox_setcolor
-uiz_colorbox_getcolor
-uiz_colorbox_gethue
-uiz_colorbox_getsaturation
-uiz_colorbox_getvalue
-uiz_colorbox_getred
-uiz_colorbox_getgreen
-uiz_colorbox_getblue
-uiz_colorbox_updatergb
-uiz_colorbox_checkcolordump
-uiz_cover_setcolor
-uiz_cover_settings
-uiz_cover_setanimation
-uiz_drawdslist_setlist
-uiz_drawdslist_setcolor
-uiz_drawdslist_setmargin
-uiz_drawdslist_setscrollbar
-uiz_drawdslist_keepselection
-uiz_drawdslist_getselection
-uiz_drawdslist_getselected
-uiz_drawloadingcirc_setcolor
-uiz_drawloadingcirc_setprecision
-uiz_drawloadingcirc_setthickness
-uiz_drawloadingcirc_setanimation
-uiz_drawsprite_setcolor
-uiz_drawsprite_setsprite
-uiz_drawsprite_setspeed
-uiz_drawtext_setcolor
-uiz_drawtext_setfont
-uiz_drawtext_settext
-uiz_drawtext_setcenter
-uiz_drawtextlines_setcolor
-uiz_drawtextlines_settext
-uiz_drawtextlines_setfont
-uiz_drawtextlines_setcenter
-uiz_drawtextlines_setmargins
-uiz_dropdown_setbuttoncolor
-uiz_dropdown_setbuttontrianglecolor
-uiz_dropdown_setmargins
-uiz_dropdown_setlist
-uiz_dropdown_settextsettings
-uiz_dropdown_setmenusettings
-uiz_dropdown_getuselistvalue
-uiz_dropdown_getmasklistvalue
-uiz_dropdown_getselected
-uiz_dropdown_showsmenu
-uiz_dropdown_setvalue
-uiz_dropdown_setvalue_listpos
-uiz_easybutton_setcolor
-uiz_easybutton_settext
-uiz_easybutton_setsprite
-uiz_frame_mark
-uiz_frame_debugmark
-uiz_frame_setscrollable
-uiz_frame_setscrollspeed
-uiz_frame_setscrollbar
-uiz_frame_setscrollbarsettings
-uiz_frame_setscrollautoupdate
-uiz_framescrollbar_settings
-uiz_framescrollbar_setframe
-uiz_functionbar_additem
-uiz_functionbar_setitem
-uiz_functionbar_setcolor_fortext
-uiz_functionbar_setenabled_fortext
-uiz_functionbar_setmenu_fortext
-uiz_functionbar_setclicked_fortext
-uiz_functionbar_setsprite_fortext
-uiz_functionbar_settext_fortext
-uiz_functionbar_setmargins
-uiz_functionbar_setratio
-uiz_functionbar_settab
-uiz_functionbar_settings
-uiz_functionbar_setanimation
-uiz_gradientsquare_setcolor
-uiz_gradientroundrect_setoutline
-uiz_gradientroundrect_setcorners
-uiz_gradientsquare_setcolors
-uiz_gradientsquare_setoutline
-uiz_gradientsquare_settext
-uiz_gridlist_setgrid
-uiz_gridlist_autodestroy_datastructures
-uiz_gridlist_setbarsize
-uiz_gridlist_settextsettings
-uiz_gridlist_setmargin
-uiz_gridlist_setdivider
-uiz_gridlist_setcolors
-uiz_gridlist_selectionmode
-uiz_gridlist_setscrollbar
-uiz_gridlist_enablescrollbar
-uiz_huesquare_setcolor_hsv
-uiz_huesquare_getcolor
-uiz_huesquare_setpointersettings
-uiz_huesquare_setanimation
-uiz_hue_setvalues
-uiz_mousebutton_setlist
-uiz_mousebutton_settext
-uiz_mousebutton_settextsettings
-uiz_mousebutton_setmenutemplate
-uiz_mouseband_releasemouse
-uiz_mouseband_disablemousecontain
-uiz_mouseband_getmoved_x
-uiz_mouseband_getmoved_y
-uiz_radiobox_setcheckcolor
-uiz_radiobox_setoutlinecolor
-uiz_radiobox_setoutline
-uiz_radiobox_setcirclesize
-uiz_radiobox_setgroup
-uiz_radiobox_setsprite
-uiz_radiobox_getvalue
-uiz_radiobox_setvalue
-uiz_rotator_setcount
-uiz_rotator_setsprite
-uiz_rotator_setanimation
-uiz_rotator_getrotation
-uiz_scrollbar_settings
-uiz_scrollbar_setlines
-uiz_scrollbar_getscroll
-uiz_slider_setcolor
-uiz_slider_setoutline
-uiz_slider_setoutlinesettings
-uiz_slider_setbuttonsize
-uiz_slider_setbuttoncolor
-uiz_slider_setbuttonalpha
-uiz_slider_setanimation
-uiz_slider_getvalue
-uiz_slider_setvalue
-uiz_slider_select
-uiz_unselect
-uiz_select
-uiz_slider_unselect
-uiz_slider_2col_setcolor
-uiz_slickslider_setlinethickness
-uiz_slickslider_setsliderthickness
-uiz_slickslider_setmargin
-uiz_slickslider_setcolor
-uiz_slickslider_setanimation
-uiz_slickslider_getvalue
-uiz_slickslider_setvalue
-uiz_sprbutton_setcolor
-uiz_sprbutton_setsprite
-uiz_spriteanimationbutton_isinanimation
-uiz_spriteanimationbutton_getintervalue
-uiz_spriteanimationbutton_getintervalue_animation
-uiz_spriteanimationbutton_setvalue
-uiz_spriteanimationbutton_setcolor
-uiz_spriteanimationbutton_setsprite
-uiz_spriteanimationbutton_setanimation
-uiz_spriteanimationbutton_getvalue
-uiz_spritecounter_settings
-uiz_spritecounter_setvalue
-uiz_stringbox_setvalue
-uiz_stringbox_getvalue
-uiz_stringbox_setcolor
-uiz_stringbox_setfont
-uiz_stringbox_setrapidmode
-uiz_stringbox_setcursoranimation
-uiz_stringbox_setmaxlength
-uiz_stringbox_setmessage
-uiz_stringbox_getselectionstring
-uiz_stringbox_shiftleft
-uiz_stringbox_addchar
-uiz_stringbox_addtypepos
-uiz_stringbox_addchar_c
-uiz_stringbox_endtypepos
-uiz_stringbox_shiftright
-uiz_stringbox_addtypeposses
-uiz_stringbox_deletesel
-uiz_stringbox_subtypepos
-uiz_surfacecanvas_setcolor
-uiz_surfacecanvas_setsurface
-uiz_square_setcolor
-uiz_square_setoutline
-uiz_square_settext
-uiz_square_settextsettings
-uiz_squarebutton_setcolor
-uiz_squarebutton_setoutlinecolor
-uiz_squarebutton_settext
-uiz_squarebutton_settextsettings
-uiz_swipicon_setcolor
-uiz_swipicon_setsprite
-uiz_swipicon_settext
-uiz_swipicon_settextsettings
-uiz_swipicon_keepinsidemode
-uiz_swipicon_getselected
-uiz_swipicon_getdoubleclick
-uiz_switch_setvalue
-uiz_switch_getvalue
-uiz_switch_setknobsize
-uiz_switch_setanimation
-uiz_switch_setsprite
-uiz_switch_setcolor
-uiz_tabs_settablist
-uiz_tabs_settextsettings
-uiz_tabslider_setvalue
-uiz_tabslider_settablist
-uiz_tabslider_settextsettings
-uiz_tabslider_setanimation
-uiz_tabslider_setmarkersettings
-uiz_tabslider_setmousesettings
-uiz_tabslider_gettab
-uiz_treelist_setxml
-uiz_treelist_setmargin
-uiz_treelist_setboxsettings
-uiz_treelist_settextsettings
-uiz_treelist_setbackgroundsettings
-uiz_treelist_setscrollbarsettings
-uiz_treelist_settags
-uiz_treelist_getxmlpos
-uiz_text_settext
-uiz_text_setalign
-uiz_text_setfont
-uiz_text_setcolor
-uiz_textarea_setfont
-uiz_textarea_setcolor
-uiz_textarea_setvalue
-uiz_textarea_getvalue
-uiz_textarea_setscrollbarsettings
-uiz_textarea_setrapidmode
-uiz_textarea_setcursoranimation
-uiz_textarea_getselection
-uiz_textarea_deletesel
-uiz_textarea_resetpos
-uiz_textarea_resetsel_p1
-uiz_textarea_qstr
-uiz_textare_snappos_right
-uiz_textare_snappos_left
-uiz_textarea_addchar
-uiz_textarea_addchars
-uiz_textarea_addchar_c
-uiz_textarea_qstrtovalue
-uiz_textarea_resetsel
-uiz_textarea_resetsel_p2
-uiz_valuebox_setvalue
-uiz_valuebox_getvalue
-uiz_valuebox_setcolor
-uiz_valuebox_setmargin
-uiz_valuebox_setfont
-uiz_valuebox_setbuttonspeed
-uiz_valuebox_setcursoranimation
-uiz_valuebox_setcriteria
-uiz_valuebox_setmessagetext
 
Last edited:
D

deviousdaemon

Guest
This looks great! I was wondering though, can I still alter the look of the UI in GMS2 without the visual designer? Or will you be adding support for it in the future if not?
 

Tthecreator

Your Creator!
This looks great! I was wondering though, can I still alter the look of the UI in GMS2 without the visual designer? Or will you be adding support for it in the future if not?
Well, the designer actually just transfers it's data to a gml script, which of course you can alter. But it might look a bit machinelike though. Still it's perfectly changeable.

Honestly, I'm not quite sure if or when I'll actually port the designer over to GMS2. It would take a lot of rewriting. Besides that, it's not actually on top of my to-do list. Performance and bugfixing are my current priority.
 

Tthecreator

Your Creator!
@Shadowblitz16 I've got a build in "background" system, that allows the backsides of objects to be standardized.
One of these background can stitch together in image from this:
to make something like this:

If that is what you mean...
 

Tthecreator

Your Creator!
yes I'm going to get this when I get paid next
Thanks!, Well just hold onto your boats for now, because I'm currently coming up with a major update.
It will take a while since every object needs to have rules specified for when it can update/draw and it needs to be tested.
I'm currently in that process.
 

Tthecreator

Your Creator!
@Tthecreator does this support mdi forms?
Code:
Multiple-document interface (MDI) applications enable you to display multiple documents at the same time, with each document displayed in its own window. MDI applications often have a Window menu item with submenus for switching between windows or documents.
(quote from https://docs.microsoft.com/en-us/do.../multiple-document-interface-mdi-applications)
In what way were you thinking.
If you have multiple windows for example, you can put anything in there.
As seen from the windows 3.1 example, it is also possible to nest windows inside of windows.
I hope this answer suited you, if it didn't then you may ask again.
 

Tthecreator

Your Creator!
Hi all!

I've now made uiZ FREE and OPEN SOURCE for any non-commercial usage! Please checkout my GitHub for the source.

Right now the default branch is set to my development version. While this version is mostly finished, I still need to overhaul all of my documentation. This may still lead me to refactor some things.

Anyways, in my development version there has been a major performance overhaul and bug fixing effort. Now, a ui widget only updates and redraws when it needs to. First the complete UI would be redrawn every single step. This is not the case anymore. A lot of other systems have also been overhauled.

I hope some people could check it out, use it or maybe even contribute to it.

Best Regards,
TtheCreator
 
Top