



back to toybox update
- PWA and manifest.json
- export as different size and transparent image
- export presets code




back to toybox update

After the new cannon game, I moved back again to the toy box I designed for my daughter. Hope she will use it someday in the future. π
https://officialstupid.com/toybox/
export – preset code to use at https://htmx.officialstupid.com/Cannon/
ToyBox Procedural Plugin – v1.1 (POTATO PC & MOBILE OPTIMIZED)

/**
* ToyBox Procedural Plugin - v1.1 (POTATO PC & MOBILE OPTIMIZED)
* Extension for ToyBox Core.
* Style: Randomized themes on every click.
*/
const TB_GEN = (function() {
// Internal Helper: Uses Core TB.spawnVoxel
const spawn = (x, y, z, c, s, h) => {
if (typeof TB !== 'undefined') {
// We set saveHistory to false during loops to save RAM/CPU
TB.spawnVoxel(x, y, z, c, s, false, "gen_group", h);
}
};
return {
terrain: function(size = 15) { // Reduced default size for mobile safety (30x30 grid)
console.log("Generating Lite Terrain...");
// STYLE RANDOMIZER
const styles = [
{ c: 3, freq: 0.2, amp: 2 }, // Grasslands (Green)
{ c: 1, freq: 0.4, amp: 3 }, // Desert Peaks (Orange)
{ c: 10, freq: 0.1, amp: 1 }, // Snow Plains (White)
{ c: 13, freq: 0.3, amp: 4 }, // Dark Mountains (Slate)
{ c: 5, freq: 0.5, amp: 2 } // Crystal Reef (Cyan/Transparent)
];
const theme = styles[Math.floor(Math.random() * styles.length)];
const seed = Math.random() * 50;
const grid = 1.0;
for (let x = -size; x < size; x++) {
for (let z = -size; z < size; z++) {
// Optimized Math: Lower frequency noise
const y = Math.round(
Math.sin(x * theme.freq + seed) *
Math.cos(z * theme.freq + seed) * theme.amp
);
// Skip blocks below ground to save memory
if (y < -1) continue;
spawn(x * grid, y, z * grid, theme.c, grid, grid);
}
}
TB.saveGame(); // Final save
},
maze: function(size = 12) { // Small size is much faster for pathfinding/mobile
console.log("Generating Lite Maze...");
// STYLE RANDOMIZER
const wallColors = [13, 12, 0, 7]; // Slate, Blue, Red, Purple
const color = wallColors[Math.floor(Math.random() * wallColors.length)];
const wallHeight = Math.random() > 0.5 ? 2 : 1;
const density = 0.6 + (Math.random() * 0.2); // Random wall frequency
for (let x = -size; x < size; x++) {
for (let z = -size; z < size; z++) {
// Logic: Create paths by checking grid modulo
if (x % 2 === 0 || z % 2 === 0) {
if (Math.random() > density) {
spawn(x, wallHeight / 2, z, color, 1, wallHeight);
}
}
}
}
TB.saveGame();
}
};
})();
lots of good good updates and tools. 12-15 hours (I don’t use timer π )


Iβm just tired now, so everything is totally on hold. This is the last update for this journal.
https://toy.dharan.city/toybox_game/box-pig/

Toy Box β .glb support progress. from 1 shark to low poly.
1 shark eats the whole CPU/GPU, so I got the idea in the morning: βlow poly.β Already abandoned .glb, but I found new life with βlow poly.β
Trashed broken jump mode. Wasted 4 hours.
Game mode: Auto jump forward. You just need to click the mouse/press the spacebar or tap the touchscreen to pull down duck from the sky. Light-colored blocks give extra jump power.
Now Iβm taking it seriously and wasting way too many hoursβmore than I spent on themeness.com or dharan.city within six months.
Letβs finish it and ship it.









