SimpleLog v1.0.0 — Lightweight & Dynamic Update Log Framework

I’ve just released SimpleLog, a clean, fluent-interface UI framework designed to streamline how you build and display update logs and changelogs in your Roblox games.

Key Features

  • Fluent API: Build fully functional logs in just a few chainable lines of code.
  • Standalone Procedural Fallback: Runs completely out-of-the-box. If no custom UI templates are provided, it automatically constructs a dark-themed UI on the fly via Instance.new.
  • Custom Template Support: Easily plug in your own UI design templates by placing them inside a Data folder.
  • Multi-Instance Support: Generates unique screen instances dynamically, allowing multiple independent logs to exist simultaneously.
  • Full Memory Cleanup: Automatically cleans up UI hierarchy and internal state when destroyed.

:inbox_tray: Installation & Setup

  1. Grab the module from GitHub into ReplicatedStorage).
  2. Require it in your LocalScript and you’re good to go!

Source Code & GitHub

Check out the full documentation and source code on GitHub: GitHub - MICOO-rbx/SimpleLog · GitHub

Feel free to report bugs or request features. Feedback is always welcome!

2 Likes

I haven’t tried this yet but just a general question. Does this support of showcasing multiple update logs or just a singular log?

Starting from v1.0.0, each SimpleLog.new() instance generates its own unique ScreenGui with isolated state management. You can build and display as many independent log windows as you need showing, hiding, or destroying one won’t interfere with any others.

1 Like

Alrighty. I appreciate the reply, I’ll try this out when time is right for one of my personal projects.

1 Like

Can you show some example code on how one would use this system

1 Like
local SimpleLog = require(game.ReplicatedStorage.SimpleLog)

local changelog = SimpleLog.new("UPD LOG")
    :AddDate("July 24, 2026")
    :AddTitle("The Combat Update")
    :AddDescription("We've completely overhauled the system for a smoother experience.")
    :AddSpacer(15)
    :AddHighlight("NEW: Ranked Matchmaking!", Color3.fromRGB(45, 130, 255), Color3.fromRGB(255, 255, 255))
    :AddDivider()
    :OnBackClicked(function()
        print("Log closed!")
    end)

changelog:Show()