
Product
Introducing Tier 1 Reachability: Precision CVE Triage for Enterprise Teams
Socket’s new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.
KaboomWare is a tool for making warioware-like mini games in Kaboom.
A KaboomWare game is just a plain JavaScript object:
const squeezeGame = {
// The prompt for the game that tells player what to do. Normally it'll be just a simple verb.
prompt: "Squeeze!",
// Name of the author.
author: "tga",
// Background color hue (0.0 - 1.0).
hue: 0.46,
// Load assets for the game. The argument k is a limited version of the Kaboom context, only k.loadXXX() functions are enabled here.
onLoad: (k) => {
k.loadSound("fly", "sounds/fly.mp3")
k.loadSprite("hand", "sprites/hand.png")
},
// Main entry point of the game. This function should return a GameObject that contains the game. The argument k is a limited version of the Kaboom context, plus a set of KaboomWare-specific APIs (see below)
onStart: (k) => {
// k.add() is disabled, use k.make() to make a game object and return
const scene = k.make()
// All game objects are added as children of the scene game object
const hand = scene.add([
k.pos(420, 240),
k.sprite("hand"),
])
// KaboomWare only supports 1 action button and 4 directional buttons. Use the KaboomWare-specific API k.onButtonXXX()
k.onButtonPress("action", () => {
hand.squeeze()
if (gotIt) {
// Tell KaboomWare player has succeeded and progress to the next game
k.win()
}
})
// Return the scene game object here and it'll get mounted to KaboomWare when this game starts.
return scene
},
}
The added API in onStart()
is
type GameAPI = {
// Register an event that runs once when a button is pressed.
onButtonPress: (btn: Button, action: () => void) => EventController,
// Register an event that runs once when a button is released.
onButtonRelease: (btn: Button, action: () => void) => EventController,
// Register an event that runs every frame when a button is held down.
onButtonDown: (btn: Button, action: () => void) => EventController,
// Register an event that runs once when timer runs out.
onTimeout: (action: () => void) => EventController,
// Register an event that runs once when game ends, either succeeded, failed or timed out.
onEnd: (action: () => void) => EventController,
// Run this when player succeeded in completing the game.
win: () => void,
// Run this when player failed.
lose: () => void,
// Current difficulty.
difficulty: 0 | 1 | 2,
}
type Button =
| "action"
| "left"
| "right"
| "up"
| "down"
To run the game, use the kaboomware
pacakge
import run from "kaboomware"
run([
squeezeGame,
], {
// Dev mode disables the timer, so you can focus on working on the current game
dev: true,
// Scale of the canvas
scale: 1,
})
For real world examples, check here.
To run the examples:
$ git clone https://github.com/slmjkdbtl/kaboomware
$ cd kaboomware
$ npm install
$ npm run dev
$ open http://localhost:8000
Also try the Replit template
TODO
FAQs

We found that kaboomware demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket’s new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.
Research
/Security News
Ongoing npm supply chain attack spreads to DuckDB: multiple packages compromised with the same wallet-drainer malware.
Security News
The MCP Steering Committee has launched the official MCP Registry in preview, a central hub for discovering and publishing MCP servers.