Shovel Up! Goes Remixable: Best Practices for World Builders
Shovel Up! is a mobile-first world in Meta Horizon where players dig for treasures, complete quirky quests, and explore themed islands with friends. And now, after racking up 4.2K+ likes, Shovel Up! is setting the stage for a new era of community-powered worlds by officially becoming a Remixable World and open source.
Making worlds “remixable” is a new feature that lets all creators clone their worlds so others can build, expand, and create on top of them. Worlds available for creators to remix can be found on the Creation Home page of the World Desktop Editor, in the Worlds to Remix section. Creators can also mark their own worlds as remixable in the Publish window within the editor.
In this blog, we’ll aim to help you build performant and engaging remixable worlds by sharing proven best practices for areas like combining meshes, asset pooling, and minimizing dynamic spawning that we learned while making Shovel Up! remixable with BigBox Studio. By adopting the techniques we’ll cover, you can streamline world-building, save time, and reduce manual troubleshooting.
These best practices will also help you optimize performance for faster load times and smoother gameplay, simplify multiplayer logic and asset management, and make it easier to scale worlds for more players and complex interactions. By following these best practices, you’ll make your worlds easier to remix, maintain, and help the community collaborate and innovate even faster.
Mesh Combine is a feature within the Worlds Desktop Editor that allows creators to merge multiple mesh objects into a single object. This is designed to help build larger, more complex worlds and streamline the development process by reducing manual labor and technical limitations.
Key Benefits
Faster Load Times: Combining meshes reduces the number of entities, which can significantly improve world loading speeds.
Improved Performance: Fewer entities mean less overhead for the engine, resulting in smoother runtime performance.
Solved Entity Limits: By merging meshes, you can bypass entity count restrictions, avoiding tedious workarounds or asset deletions.
Asset Pooling: Asset pools help memory management and load times.
Asset Pooling in the Worlds Desktop Editor refers to the use of the Asset Pool Gizmo, a tool that automates the management, spawning, and assignment of objects (assets) to players as they join your world. This feature is designed to simplify per-player object management, making it easy to grant each player their own set of items, UI elements, effects, or stats without custom scripting or manual duplication.
With Shovel Up!, BigBox Studio leveraged Asset Pooling as a way to individualize the player experience of discovering, digging up, and collecting items. If you’ve played the game, it’s easy to imagine why having a system that generates collectible items seemingly “at random” for the individual player creates a far more engaging experience than having items statically placed for everyone in the same spot.
Asset Pooling is especially useful for multiplayer experiences where each participant needs individualized assets or states. You can learn more about the asset pool gizmo and implementation in our documentation.
Key Benefits
Automated Per-Player Asset Assignment: Each player receives their own set of objects (e.g., HUD, starting items, effects) automatically.
Simplified Multiplayer Logic: No need to write custom code for per-player asset management.
Performance Improvements: Faster level loading, as pooled assets can be pre-instantiated rather than dynamically spawned at runtime.
Flexible Design: Supports a wide range of use cases, from UI to gameplay items and effects.
Minimize Dynamic Spawning: Dynamic spawning can introduce several issues, especially in remixable contexts:
Dynamic Spawning is a feature in Worlds (including the Worlds Desktop Editor) that allows creators to programmatically create (spawn) and remove (despawn) objects during runtime, rather than having all objects statically placed in the world at design time. This is typically done via scripting (TypeScript or CodeBlocks) and is essential for interactive, procedural, or multiplayer experiences—such as spawning items for players, generating enemies, or creating effects on demand.
You can learn more about asset spawning by visiting the documentation.
Key Benefits
Flexibility: Enables procedural generation, inventory systems, dynamic events, and more.
Capacity Management: Lets you work around static entity limits by only spawning objects when needed.
Personalization: Supports per-player experiences (e.g., each player gets their own items or UI).
Why You Should Limit Dynamic Spawning in Remixable Worlds
Remixable worlds are designed to be reused, modified, and extended by other creators. Excessive or uncontrolled dynamic spawning can introduce several issues, especially in remixable contexts:
1. Performance & Stability
Resource Usage: Each dynamically spawned object consumes memory and CPU. Spawning too many objects can degrade performance, cause lag, or even crash the world—especially on lower-end devices or with many concurrent players.
Object Limits: Worlds have a maximum object/entity limit. Dynamic spawning counts against this limit, so exceeding it can break the world or cause unexpected behavior.
2. Remixability & Predictability
Remix Complexity: If a world relies heavily on dynamic spawning, remixers may struggle to understand or control what gets created at runtime, making remixing harder and less predictable.
Debugging: Excessive dynamic spawning can make it difficult to debug or optimize worlds, as issues may only appear under certain runtime conditions.
Dynamic Spawning Best Practices
Minimize Dynamic Spawning: Only spawn objects when absolutely necessary, and leverage pre-spawned or pooled assets for common use cases.
Use Asset Pooling: For per-player or frequently used objects, use asset pooling to pre-instantiate and reuse objects, reducing the need for dynamic creation.
Set Limits in Code: Always enforce a maximum number of dynamically spawned objects to avoid exceeding world limits and maintain performance.
Test with Max Players: Simulate or playtest with the maximum expected player count to ensure dynamic spawning.
The Ultimate Validation Step: Test With Maximum Players
Designing for performance, scalability, and remixability is only half the challenge. With Shovel Up!, BigBox Studio found that undergoing rigorous testing with the maximum number of concurrent players is the best way to ensure worlds perform well in a variety of multiplayer scenarios. While asset pooling, dynamic spawning, and mesh combining are powerful techniques, their real-world impact can only be confirmed under full load.
Why Max-Player Testing Is Essential:
Uncover Hidden Bugs: Many issues like asset misassignment, performance bottlenecks, or synchronization errors only appear when your world is filled to capacity.
Validate Scaling: Features that work for a handful of users may break or degrade with more. Max-player testing exposes these limits before your community does.
Prevent Crashes and Overloads: Testing at scale helps you avoid exceeding entity, memory, or network limits, ensuring stability for all players.
Ensure Remixability: Remixers may add new logic or assets. Testing with max players ensures your world remains robust and flexible, even as it evolves.
Guarantee User Experience: Simulating full lobbies is the only way to confidently confirm smooth gameplay, correct asset assignment, and reliable interactions for everyone.
Actionable Steps for Effective Max-Player Testing:
Simulate Full Lobbies: Use test accounts or automation to fill your world to its maximum player count.
Monitor Performance: Track frame rate, memory usage, and network traffic under load.
Stress Test Joins/Leaves: Rapidly add and remove players to test asset recycling and spawning logic.
Check Limits: Validate that entity, asset, and mesh limits are respected.
Remix and Retest: Remix your world and repeat max-player tests to catch new issues introduced by changes.
Ignite the Next Generation of Creators
Building remixable worlds like Shovel Up! in Meta Horizon demands a thoughtful approach to both design and testing, especially for worlds using mesh combine, asset pooling, and dynamic spawning. These features unlock powerful performance and scalability benefits, but they also introduce new challenges around resource management, multiplayer logic, and remixability.
Thoroughly testing with the maximum number of concurrent players is a best practice, but in reality, it’s essential. Only under real-world, high-load conditions can you uncover edge cases, validate scaling, prevent crashes, and ensure a smooth, reliable experience for all users and remixers. By following these best practices and rigorously stress-testing your worlds, you empower the community to build, remix, and enjoy creative experiences that are robust, performant, and truly collaborative.
The future of Worlds is community-powered. By embracing these principles, you help set the standard for remixable, scalable, and engaging worlds by paving the way for the next generation of creators.
Stay up to date with the latest features like remixable worlds by checking out our weekly release notes and following us on X and Facebook.
Get the latest updates from Meta Horizon.
Get access to highlights and announcements delivered to your inbox.
Highlights from Day 1 at GDC 2026: Hands, Agents, Performance & More
Explore GDC 2026 Day 1: hand tracking design, AI-assisted Unity workflows, and data-driven retention tips for VR developers building for Meta Horizon OS.
All, Apps, GDC, Games, Hand tracking, Quest, Unity, Unreal