From PGE Wiki
Jump to: navigation, search


Library for creating customizable Boo Buddy circles.

Includes graphics for SMW, SMB3 and SMB1 Boos.


Place the file booBuddies.lua and the folder booBuddies in either your level's custom graphics folder for use in a level, along with a lunadll.lua file, or in the same directory as your .wld file along with a lunaworld.lua file for use throughout an entire episode.

How to Use

To enable the booBuddies library for a specific level, add this line to lunadll.lua:

local booBuddies = API.load("booBuddies");

If you intend to use destructable SMB1-style Boos, copy the file effect-94.png from the folder booBuddies into your level folder. This replaces the SMB3 Boo death effect.


local myBooCircles = {};

booBuddies.diesTo = {shoe = true, starman = true};
booBuddies.canSpinjump = true;

function onStart()

	myBooCircles[1] = booBuddies.create({x = -159472, y = -160304});	
	myBooCircles[2] = booBuddies.create({x = -159760, y = -160432, preset = "SMM"});

function onEvent(eventName)
	if eventName == "delete Boo" then
	elseif eventName == "kill Boo" then

This example creates Boo buddy circles in your level which are killable and allows you to spinjump onto them. Two circles are created, one of them using the default settings (Super Mario World), and the other using the settings from the Super Mario Maker preset.

When a specific event is triggered, this code will either instantly delete a Boo buddy circle, or kill it, showing the death effects of each Boo.



These are variables you can access

Name Type Description
diesTo.shoe boolean If true, jumping onto a Boo using the Goomba's shoe will kill the Boo and bounce you back up.
diesTo.starman boolean If true, Boos die if they come in contact with a player that has starman (single player only!)
canSpinjump boolean If true, you can bounce off of Boos with: spinjumps, Yoshi, Goomba's shoe and Link's downstab

External Use Functions

These are functions you will need to use the library

create args
Creates a BooCircle object BooCircle table

See BooCircle Fields



The following fields can be both defined in booBuddies.create(args) and accessed via BooCircle.fieldName:

Name Type Is Optional? Default Value Description
x number no 0 The x-coordinate of the center of your Boo buddy circle.
y number no 0 The y-coordinate of the center of your Boo buddy circle.
preset string yes "SMW" Use a preset to load defaults for all optional properties you did not define yourself. "SMW" = Super Mario World preset, "SMM" = Super Mario Maker preset
style string yes from SMW preset The graphic style of the Boos: "SMW", "SMB3", "SMB1" or "SMM-SMW"
section number yes 0 The Boo buddy circle is only updated and drawn if the player is in this section. If your booCircle is within 1000px of a section or section boundary, you do not need to specify a section.
layer string yes "Default" The layer of the Boo buddy circle. If the layer is hidden, it will not be updated and drawn.
circleRadius number yes from SMW preset The radius of the Boo buddy circle.
angularSpeed number yes from SMW preset The speed at which the Boo buddy circle rotates.
angularDirection number yes from SMW preset The direction in which the Boo buddy circle rotates. Use "clockwise"/"CW" or "counterclockwise"/"CCW"
numberOfBoos number yes from SMW preset The number of Boos per Boo buddy circle.
booRadius number yes 10 The size of a Boo's hitbox.
frameTime number yes 8 The number of frames until the Boo animation changes
frame number yes 0 The current frame.
booSpacing number yes from SMW preset Space between individual Boos in degrees.
angle number yes calculated The current angle of the Boo buddy circle. By default, the opening in the circle starts at the bottom.


Deletes a BooCircle
Kills all boos of a BooCircle