Source Control

Wonderland Engine projects were designed to integrate well with any source control and is most frequently used with git.

Since the project files are JSON based, they can be merged by hand. Make sure to remove trailing commas on the final elements of objects and lists!


To avoid conflicts for resources IDs of new objects, you can make the editor generate UUIDs instead of short and readible sequential ids:

Views > Project Settings > Editor > ids (set to uuid).


The following is a best practice .gitignore file.

Note that depending on your CI/CD Setup, you might want to add cache to reduce how much time is spent compressing images on less powerful build machines.

Checking in cache has the added benefit of speeding up the first project load after cloning the project.

 1# NPM dependencies
 4# Packaged project files
 7# Local editor data
10# Cached editor JS bundle
13# Local UI state
16# Blender backup files

Git LFS 

The Git Large File Storage extension can speed up Git operations on your repository, especially since WebXR usually contain large files for 3D assets, textures and audio.

Here are some recommendations to track with git lfs track <extensions>:

 1# Audio files
 2*.mp3 *.wav *.ogg *.webm
 3# Video files
 5# Binary 3D model files
 6*.glb *.fbx *.bin *.blend *.ply
 7# Image files
 8*.png *.jpeg *.webp *.bmp *.exr *.hdr *.basis
 9# Font files
10*.ttf *.otf
11# Archives
12*.zip *.tar.gz


package-lock.json stores the exact versions of dependencies currently installed with your system. When using npm install that file will be updated to the latest dependency that matches the constraints given in the package.json.

You can use npm ci to install the exact dependency versions from your package-lock.json. To have replicable builds, you will want to commit this file.