Categories
blog javascript toy box

Procedural

ToyBox Procedural Plugin – v1.1 (POTATO PC & MOBILE OPTIMIZED)

Screenshot 2026 03 01 at 22.36.28
/**
 * 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();
		}
	};
})();
Categories
blog officialstupid toy box

Toy Box – update and broken but worth to share!


lots of good good updates and tools. 12-15 hours (I don’t use timer πŸ˜€ )

  • checkpoints after death easy to apply – light green color paint blocks.
  • pen tool to make blocks easily
  • rotation flip and more tools
  • fix broken keys – hold – A/alt/shift
  • better multisite
Categories
blog toy box

toy box – draft

IMG

IMG
Categories
blog threejs toy box wordpress

TOY BOX – last update!

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/

Tools for mobile for better UX. With more better buttons UI

IMG

Categories
blog toy box

Toy Box (.glb low poly support) β€” almost cried and tired.

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.”

https://pixabay.com/3d-models/

Categories
blog officialstupid threejs toy box

Toy Box – broken jump mode

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.

Categories
blog PWA toy box

Toy box – PWA support

Categories
blog toy box

Toy Box – game mode

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.

IMG

Categories
blog toy box

for toy box UI references

Categories
blog game officialstupid toy box

Toy box – wasted time.

backup video – https://www.youtube.com/watch?v=l1W-58vCqSU

Build and drop. Animated CSS objects and .glb.

I would love to use .glb in the future. Currently, it needs huge optimization and seems to take an endless amount of time.

Problem: both kill smooth gameplay β€” almost 20 FPS. I feel ashamed to share the .glb, even though it was beautiful.

Animate

what’s new.

  • Logged-in users can create their own presets, save them, and share them publicly.
  • First map shared publicly πŸ˜„ β€” posted randomly on Reddit:
  • https://toy.dharan.city/toybox_game/duck-climb/ Anyone can play.
  • Logged-out users can also create and play using local storage.
  • tiny touch support game play for mobile but really really bad.

email me at rawi.rai@com or reddit me for sign up.

working on – touch devices

IMG

My 5-year-old is doing tiny jumps to play while I’m writing this draft.

Categories
blog toy box

Toy Box

start again. 17:00

.glb support???