UGTK cat mascotUGTKengine within an engine Request access

UGTK / README

The full repository README, rendered 1:1

UGTK (Unity Games Toolkit)

Summary

The UGTK🛠️ comprises a lot of tools designed for game development🎮 across all platforms, including mobile📱, console🎮, and PC🖥️. UGTK provides ready-to-use system🕹️ and extendable classes📚 that can be used by both designers and programmers.

It has key components in modern game design not readily available in Unity's functionalities, offering tools for UI manipulation, a state machine manipulation, singleton management, audio systems, pooling system and more. It includes a generic player controller, data saving mechanisms, an actor components system etc, providing a comprehensive solution for advanced game development needs.


Content



Features

Gameplay Systems

Gameplay Systems are comprehensive, code-free solutions designed to cover any gameplay mechanics a game developer wishes to implement in their game.

Name Description Status
Audio System Comprehensive audio management for playback control and volume adjustment. ✅ Completed
Pause System Manages the pause and resume of the game, allowing to pause the game and resume it at any time. ✅Completed
Grid System Manage gameobject placed in a 2D or 3D grid layout ✅ Completed
Loading System Manages loading screens and scene transitions, with hooks for progress feedback and events. ✅ Completed
Visual Novel System Visual novel framework with chapters, dialogues, choices, variables and conditional flows. 🛠️ In Progress
Platform 2D Framework Ready-to-use 2D platformer framework: player with stats and events, moving platforms, coins, checkpoints, enemies with vision cones, and status power-ups. ✅Completed
Dynamic Track Audio System Multi-track music system that blends and switches layers based on gameplay states. ✅ Completed
QR Multiplayer System Local multiplayer helper that generates and reads QR codes to connect player devices. ✅ Completed
Tangram System Puzzle system for building Tangram-style boards, checking tile combinations and firing events when shapes are correctly assembled. ✅ Completed
Achievement System System for defining, tracking and rewarding player achievements and progression goals. ✅ Completed
Language System Global language manager that stores available languages, syncs UI dropdowns and notifies listeners to update localized texts at runtime and in editor. ✅ Completed
Quiz System Flexible quiz framework with ScriptableObject quiz databases, controllers and UI managers to run linear or random quizzes and evaluate win/lose conditions. ✅ Completed
Tris System Tic-tac-toe in four variants — classic, matriosca, sliding and inception — with an AI opponent whose difficulty is selectable. ✅ Completed
Tournament System Tournament framework for managing brackets, users and match progression. ✅ Completed
Checkpoint System Save points that remember where the player was, and restore them after a death. ✅ Completed
First Person 3D First-person character controller: movement, look, jump and ground handling, driven from UI or keys. ✅ Completed
Interaction System Base for objects that react to a 3D collision, with the physics setup checked in the inspector. ✅ Completed
Line Chart (3D) Line chart rendered in the world rather than on a canvas. ✅ Completed




Utility Systems

Utility Systems are versatile solutions designed to streamline production in various scenarios, simplifying the development process for both programmers and designers. There are also a lot of primitive systems useful for build more complex systems

Name Description Status
Activation System The Activation System controls GameObject states, enabling activation, deactivation, and toggling for dynamic gameplay scenarios. ✅Completed
Collision System Manages 2D/3D collisions and detects mouse and touch interactions with customizable behavior. ✅Completed
Event System Flexible system for managing game events, including listener management, event invocation ✅Completed
LinkOpener System The LinkOpenerSystem opens URLs in Unity, supporting both web links and deep links to compatible apps. ✅Completed
Pooling System The Pooling System efficiently manages and reuses GameObject instances. ✅ Completed
RandomicListElements System The Randomic List Element System manages lists where each element has a unique percentage, ensuring totals equal 100%, with support for locking, syncing, and random selection. ✅Completed
Copy Paste System The Copy Paste System enhances Unity's Inspector with Copy, Paste, and Clear buttons for efficient string manipulation. ✅Completed
Image Picker Component that allow in a WebGL build to get an image from user computer ✅ Completed
Time Online System TimeOnlineSystem is a system that allows you to get the time from a server. ✅Completed
Timing System Configurable timer counting up, down or unlimited, with time components, threshold and interval events and ready-made UI prefabs. ✅Completed
Interface Founder Utility class to find all objects that implement a specific interface in the scene, inactive ones included. ✅Completed
Graph System Generic graph data-structure with nodes, edges, traversal (BFS/DFS) and pathfinding algorithms like Dijkstra and A*. ✅Completed
VFX System Pooling-based VFX spawner that plays particle and VFX Graph effects once, looping or at intervals, with auto-return and editor-friendly events. ✅ Completed
UGTK Instantiator Editor utility that adds ready-to-use UGTK prefabs to the scene via the GameObject/UGTK menu for fast system and component setup. ✅ Completed
Counter System Generic counting utility for timers, scores or any incremental values with events on thresholds. ✅Completed
Range System Counter subclass that classifies the current value into non-overlapping bands and fires the matching event. ✅Completed
Key Input Action System Maps keyboard or gamepad input to high-level actions, simplifying input handling and remapping. ✅ Completed
Effectiveness System Utility to track effectiveness metrics (e.g. success rates) over time, useful for analytics and balancing. ✅Completed
Code Wizard Editor wizard that automates generation of boilerplate UGTK code and ScriptableObjects. ✅ Completed
Codes Generator Utility for generating unique codes/keys (for coupons, invites, etc.) with customizable formats. ✅ Completed
Web Param System Reads and exposes query-string parameters (e.g. from WebGL builds) to drive in-game behaviour. ✅ Completed
UGTK Assembly Manager Centralizes references to UGTK assemblies and modules, easing setup and dependency tracking. ✅ Completed
Texture Resizer System Resizes textures at runtime or in editor, useful for optimization and dynamic thumbnails. ✅ Completed
Desktop Window Controls Quit, full-screen toggle and minimize for desktop builds. ✅ Completed
Video View System Plays local or remote video on a UI RawImage, with a WebGL prefetcher that caches the file in the browser's Cache Storage. ✅ Completed
Level Streaming System Additive async scene load/unload with events on every stage, plus a distance/visibility optimization pass on a list of target objects. ✅Completed
Input Compatibility UGTKInput: drop-in replacement for UnityEngine.Input that works with the legacy Input Manager and the new Input System alike. ✅Completed
FPS Limiter System Caps the frame rate from a component: target FPS, VSync and physics tick rate handled together. ✅Completed
Hierarchy Overwritten Editor-only Hierarchy overlays: row colours, name rules, Tag/Layer and component badges, separators, visibility and lock toggles. ✅Completed
Invisibile Mouse System Keeps the cursor permanently hidden on Editor, Standalone and WebGL (with its own .jslib for the browser canvas). ✅Completed
GameObject Editor System Editor tools for inspecting and batch-editing GameObjects in complex scenes. ✅Completed
Folder Path System Centralized management of folder paths used by other systems (saves, logs, exports, etc.). ✅Completed
Vibration System (Utility) Utility wrapper to trigger vibration/haptic feedback from non-mobile-specific contexts. ✅Completed
Replace Special Word Substitutes tokens inside a text template with values supplied at runtime. ✅ Completed




Libraries Extensions

The library extensions part provides the use of modules with static function libraries that extend classic objects such as game objects or lists. | Name | Description | Status | |-----------------|-------------------------------------------|----------------| | GameObject Extension | Extension class for GameObject providing additional functionality. | ✅Completed | | List Extension | Provides extension methods for List objects. | ✅Completed | | AnchorsLibrary | Tool for setting the anchor of a UI using predefined presets. | ✅ Completed | | Sprite Base64 Extension | Helper methods to convert sprites and textures to and from Base64 strings. | ✅Completed |




Algorithms Module

The Algorithms Module provides a set of core algorithms that enable efficient operations on data structures such as lists or graphs, including sorting, searching, and optimization techniques.

Name Description Status
ReorderSystem Utility system that allows you to reorder elements in a list ✅Completed




Ui Module

The Ui Module group offers ready-made solutions for any user interface needs.

Name Description Status
Dashboard System Modular dashboard UI for displaying tables, KPIs and widgets bound to data sources. ✅ Completed
Line Chart System Configurable line chart component for plotting values over time or categories. ✅ Completed
Text Updater System TextUpdaterSystem dynamically updates Unity UI text with TextMeshPro, reflecting real-time variable values from MonoBehaviour components. ✅Completed
TMP Line Balancer Utility for enforcing hard line breaks and balanced lines in TextMeshPro text. ✅Completed
TMP CapsLock System Components to force uppercase, lowercase or capitalized text in TextMeshPro fields. ✅Completed
TMP Partial Bold Applies bold formatting to selected parts of a TextMeshPro label via markers or segments. ✅ Completed
Mouse Over System Change mouse icon when over an UI with this system. ✅Completed
Click Effect Button UI button press feedback: hides shadow/outline and shifts RectTransform by a fixed offset on press. ✅Completed
Jelly System Continuous idle squash/stretch (jelly) animation for UI or world transforms. ✅ Completed
Slider System Manages to change the value of the slider with animation ✅Completed
Coroutine Timer Slider System Timer slider components (linear and circular) driven by coroutines with events on completion. ✅Completed
Screen Chooser System Manages switching between multiple UI screens or panels with simple API. ✅Completed
Blur System UI blur effects controller for backgrounds and panels. ✅ Completed
Camera Shake System Component to shake the camera or UI canvas for feedback effects. ✅Completed
Gradient System Multi-stop gradients on any UI Graphic (linear, radial, corner) plus a gradient overlay for images, with gamma compensation. ✅Completed
Fade Controller System Controls fade-in/out of UI elements or full-screen overlays. ✅Completed
Leaderboard System Displays a list of users and their scores, sorted in order. ✅ Completed
Layout AutoResize Auto-resizing UI layout components that manage grid/horizontal/vertical children and resize their parent while firing events on add, remove and clear operations. ✅ Completed
Auto Scroll System Automatically scrolls a ScrollRect at a constant speed with pauses at each edge (ping-pong / loop / once), on either axis, reacting to Layout AutoResize list changes. Used for leaderboards. ✅Completed
TextAnimatorUGTK Per-character TextMeshPro animation from one component: persistent/appearance/disappearance tags, 35+ built-in effects, modifiers (=,*,+,flags), per-effect stagger, typewriter with inline actions & events, accessibility. A Text Animator-class system, inspector-driven. ✅ Completed
Raw Image Preserve Aspect Ensures RawImage content keeps its aspect ratio when resized. ✅Completed
Responsive Layout System Responsive layout helpers to adapt UI to different aspect ratios and resolutions. ✅ Completed
Dropdown Extension Extra behaviours and events for standard dropdowns. ✅Completed
Element Cycler System Cycles through a list of UI elements or sprites with next/previous controls. ✅Completed
Char Limiter System Limits and visualizes the remaining characters in input fields or text areas. ✅Completed
Drawing System 2D drawing canvas system for pointer/touch drawing and saving strokes. ✅ Completed
Keyboard System Keyboard on screen that allow the mouse/touch only to type on a inputfield ✅ Completed
Area Handles System UI element that can be move and resized in Game ✅Completed
Message System Lightweight popup/message UI system with queues and callbacks. ✅ Completed
QR Generator Generates QR codes into UI images for links, invites or session IDs. ✅ Completed
Text Typer System Component that display text on screen with typing—revealing effect ✅Completed
Toggle Extension Extra events and behaviours for toggle groups. ✅Completed
Resolution System Changes the player's resolution and reports what the platform actually applied. ✅ Completed
Scene System Loads a scene from a UnityEvent, with an edit-time check that it is in the Build Settings. ✅ Completed




Data Systems

Data Systems provide implementations that enable versatile data management solutions.

Name Description Status
Database System Flexible Unity DB management ✅ Completed
Dictionary System UGTK's Dictionary System enhances serializable dictionaries with key/value operations. ✅Completed
Save System Designed to save data from the game by storing key-value to be later on saved in the main memory. ✅ Completed
Table Management System Tools for managing table-like data (e.g. CSV) and mapping it into UGTK data structures. ✅Completed




Component Module

The Component Module is a collection of various components essential for game development. A component is defined as a child GameObject of another GameObject, capable of adding additional functionality to the parent GameObject.

Name Description Status
Generic Component Provides the base classes and structure for all components. ✅Completed
Movement Component Components for controlling object movement: speed, direction, bounds, and coordinate limits. ✅Completed
Rotation Component The Rotation Component allows customizable game object rotation with animation curves, supporting continuous or timed rotations and event triggers. ✅Completed
Jump Component The Jump Component manages advanced jump mechanics, supporting multiple jumps, cooldowns, and dynamic interactions for 2D and 3D environments. ✅ Completed
Dash Component Enables a dash action for characters, temporarily boosting their movement speed. ✅ Completed
Follow System Implements follow behaviors for game objects, supporting 2D and 3D targets, as well as mouse and touch input ✅Completed
Ping Pong Movement Component Provides a flexible system for move between points ✅Completed
Resource Component Component for managing object resources such as health, energy, mana or custom values, with support for runtime updates, limits and system integrations. ✅ Completed
DragDrop System Drag and Drop System for UI uses a state machine for smooth interactions and includes drag events, state transitions, and pooling. ✅Completed
Snap Component The Snap Component System snaps the object to the last collided object upon TriggerSnap, using specific tag collisions. ✅ Completed
Damage System The Damage System manages game object damage, offering advanced functions for applying damage, healing, controlling vulnerability, and event management. ✅ Completed
Shooting System The Shooting System manages shooting mechanics, ammo handling, reloading, and projectile management using efficient pooling for performance. ✅ Completed
Level System Level system for managing player levels and experience points, with differenct type of progression. ✅ Completed
Persistent Component The Persistent component that allow a gameObject to have one or multiple component with same owner name ✅ Completed
Collider AutoResize Component Automatically resizes 2D box or capsule colliders on the owner to match the RectTransform size of a referenced UI element, both in play mode and in editor. ✅ Completed
Flip Component Component for flipping sprites or objects along axes, useful for 2D character facing or UI mirroring. ✅Completed




Design Patterns

Design Patterns are a set of pre-implemented and fully functional classes that embody the fundamental design patterns of object-oriented programming.

Name Description Status
Singleton Singleton module ensures a single Unity class instance ✅ Completed
State Machine The State Machine manages state transitions, defining states and conditions for control over state changes ✅ Completed
Command Command module encapsulates actions as objects, enabling parameterized actions, undo/redo functionality, and macro commands. ✅ Completed




Mobile

Mobile Systems are exclusively designed for use within a mobile context, adding essential functionalities that are not natively available in Unity for mobile development.

Name Description Status
GestureSystem Gesture System detects and manages mobile touch gestures in Unity, triggering events for taps, swipes, pinches, and more. ✅Completed
Motion System Accesses and normalizes device motion/accelerometer data for gameplay and UI effects. ✅ Completed




API

Name Description Status
EmailSender EmailSender is a system that allows you to send emails from your game. ✅ Completed
ImagePhpManagment ImagePhpManagment is a system that allows you to upload images to a server. ✅Completed
PhpConnectionSystem PhpConnectionSystem is a system that allows you to connect to a server and send data. ✅ Completed
Leaderboard Api System Server-side leaderboard management for submitting and fetching ranked scores. ✅ Completed
OAuth Email Api Email sending system using OAuth-based authentication flows. ✅ Completed
Tickets Api Generates and validates ticket codes, integrating with backend APIs. ✅ Completed
WebSockets System WebSocket client/host wrappers for real-time communication with servers. ✅ Completed
Connection System Detects whether the device is online and how strong the connection is (latency → 0..4 level), with bundled signal-bar icons and events. ✅ Completed

Installation

  https://github.com/MarcelloDeBonis/UGTK.git


Use of Product

Requirements for Use - Users must have Unity version 2022.3 or higher to utilize the Unity Games Toolkit (UGTK). - To request access, email [marcellodebonis.work@gmail.com](mailto:marcellodebonis.work@gmail.com) or buy it on my [**UGTK Page**](https://assetstore.unity.com/packages/slug/281266). - To request the access to the Repo-Project, and navigate for see the documentation, please [email me](mailto:marcellodebonis.work@gmail.com).
Copyright and License - Copyright © 2025 Marcello De Bonis. All rights reserved. - Licensed under the "Project-Specific License": - Licensees may use the software for any personal and commercial projects. - The software may not be redistributed, resold, or reused in separate projects not affiliated with the original purchase. - Collaborators on the project for which the software was originally acquired may use the software only for that specific project. - Use by collaborators for their own projects or replication of the software code is prohibited. - All rights not expressly granted are reserved by the copyright holder.


Contacts