Skip to content
Kyle Wilcox edited this page Feb 20, 2026 · 16 revisions

Warning

As Bango is currently considered experimental, please review the issues page to see if there are any known issues with basic functionality.

 

How does Bango Scripts work?

Bango Scripts are just a slightly customized blueprint class. Each Level Script is a new blueprint which gets stored in a hidden content folder, __BangoScripts__. From a design perspective, this makes it feel like scripts are "embedded" onto actors in a level.

  • When you create a new level script, Bango automatically creates a new Bango Script Blueprint in the __BangoScripts__ folder and assigns it to the script component where you created it.

  • When you duplicate a script component, or an actor containing script components, or a level containing script components, Bango creates duplicates of any level scripts used by the objects. Bango attempts to ensure that every level script instance is unique, and only used in one place.

  • When you delete a script component, or an actor, or level, Bango will forcefully delete any level scripts it owned. Bango has limited undo support for deleted level scripts. When level scripts are deleted, Bango tries to stash the deleted blueprints and store them for a little while in the background. When running undo-redo commands to recreate deleted actors & components, Bango will try to look for the previously-deleted script and restore it back to where it was. This system isn't guaranteed; as always, you should rely more on your team's version control systems.

 

What Happens When you Run a Script?

Scripts are set as soft class pointers. When you execute Run for a script it is async-loaded, an instance of it is spawned, and then the Start Event on the new script instance is called. Because the spawn process happens asynchronously there will be a very small delay from when you call a script to when it actually starts running, usually a couple of frames.

Bango tracks if the running script contains any running latent nodes (such as Delay nodes) and keeps the script instance alive until there are no more running latent actions. The script instance will then be marked as garbage and eventually deleted. See Advanced Usage for important information about handling outside events and delegates.

 

More Links:

Create your first script. It's easy!

Bango includes several custom nodes. Have an idea for a new node that would improve a level designer's life? Submit a feature request on the issues page!

Read this page for important info on other usage, such as:

  • World Partition
  • Subscribing to external events within a running script
  • Accessing the object that is running the script
  • Passing variables into scripts
  • Customizing the script billboard
  • Preloading scripts
  • Project/editor settings

Descriptions of a few odd scenarios, and how you could use Bango to solve them.

 

Happy scripting!

Clone this wiki locally