High-Performance ListBox (LazyListBox)

Hey everyone!

I just released a new asset that I think you’ll find pretty useful - LazyListBox for Godot 4.4+.

This plugin only renders what’s actually visible and recycles the UI elements as you scroll. You can throw like 1,000,000 items at it, but it’ll only create like 10-20 actual controls (Depends on your screen resolution). Creating the illusion that you’re scrolling through thousands of actual items without significant performance drops.

Demo GIF showing smooth scrolling through large lists

Key Features:

  • Device support - Touch screen and mouse
  • Lazy loading - Only visible items get rendered
  • Recycling - Reuses UI elements instead of creating/destroying them
  • Auto-calculation of how many items fit on screen (or set it manually)
  • Proper focus management with keyboard navigation

The whole setup takes maybe 5 minutes if you follow the README.

prototype projects I’ve used it for:

  • Inventory systems with lots of items
  • Display lines of large textfiles like 1 million Lines and more
  • Pretty much any list that gets out of hand

The current version is avaible on github, leave a :star: if this is something for you
https://github.com/spinalcord/lazy-list-box-godot/archive/24385d6bdeccc84249f85f42dcae433560b7f1ae.zip

Here is the readme:

Have fun with it.

6 Likes