OptionalallowHotReload?: booleanSet to false to disable hot reload for the needle plugin.
OptionalallowMetaPlugin?: booleanset to false to prevent meta.html modifications (vite only)
OptionalbuildPipeline?: {Use to configure optimized builds
OptionalaccessToken?: stringIf defined the access token will be used to run compression on Needle Cloud
Optionalenabled?: booleanSet to false to prevent the build pipeline from running
OptionalmaxWaitDuration?: numberThe max duration the build pipeline will wait for the website bundling process to finish. After bundling has finished the pipeline will start processing the exported glTF files.
Default is 60000 (60 seconds)
OptionalprojectName?: stringSet a project name (cloud only)
Optionalverbose?: booleanEnable for verbose log output
Optionalversion?: stringSet to a specific version of the Needle Build Pipeline.
OptionalcopyIncludesFromEngine?: booleanWhen enabled the needle-engine include directory will be copied
Optionaldebug?: booleanEnable verbose debug output for needle plugins.
OptionaldebugAlias?: booleanWhen set to true a plugin will log all alias resolutions to a file in the project node_modules directory
OptionaldebugImportChains?: booleanSet to true to create an imports.log file that shows all module imports. The file is generated when stopping the server.
OptionaldebugLicense?: booleanEnable verbose logging
OptionaldisableLogging?: booleanOptionaldontInstallEditor?: booleanset to false to suppress editor-sync package installation and connection
Optionaldts?: { enabled?: boolean }Generate Typescript declaration files for references 3D assets in your project.
These will be available via context.sceneData in your code.
Optionalenabled?: booleanWhen set to false, disables the generation of TypeScript declaration files.
OptionalfacebookInstantGames?: {}Custom configuration for facebook instant games.
Optionallicense?: LicenseUse to activate a needle engine license
OptionalmakeFilesLocal?: When enabled, external CDN URLs are downloaded at build time and bundled locally. This creates fully self-contained deployments that work without internet access.
true — enable with all features (download everything)"auto" — automatically detect which features the project uses and only include those{ enabled: true } — same as true{ enabled: true, features: "auto" } — same as "auto"{ enabled: true, features: ["draco", "ktx2"] } — only include specific features{ enabled: true, excludeFeatures: ["xr"] } — include all except specific features{ enabled: true, features: "auto", excludeFeatures: ["skybox"] } — auto-detect but exclude specific featuresAvailable features:
"draco" — Draco mesh decoders"ktx2" — KTX2/Basis texture transcoders"materialx" — MaterialX WASM shader compiler"xr" — WebXR input profiles (controllers/hands)"skybox" — Skybox/environment textures"fonts" — Google Fonts CSS + font files"needle-fonts" — Needle font assets (MSDF, etc.)"needle-models" — Needle models"needle-avatars" — Needle avatars"polyhaven" — Polyhaven HDRIs/models"cdn-scripts" — Third-party scripts (QRCode.js, vConsole, HLS.js)"github-content" — GitHub raw content files"threejs-models" — three.js example models"needle-uploads" — Needle uploads assetsOptionalmodules?: needleModulesused by nextjs config to forward the webpack module
OptionalnoAlias?: booleandisable vite.alias modification
OptionalnoAsap?: booleandisable needle asap plugin and glTF / GLB preload links
OptionalnoBuildInfo?: booleanSet to true to disable generating the buildinfo.json file in your output directory
OptionalnoBuildPipeline?: booleanSet to true to disable the needle build pipeline (running compression and optimization as a postprocessing step on the exported glTF files)
OptionalnoCodegenTransform?: booleanOptionalnoCopy?: booleandisable automatic copying of files to include and output directory (dist)
OptionalnoCustomElementData?: booleanSet to true to disable the plugin that ensures VSCode workspace settings for custom-elements.json data
OptionalnoDependencyWatcher?: booleanOptionalnoFacebookInstantGames?: booleanOptionalnoPeer?: booleanset to true to prevent injecting peerjs parcelRequire global variable declaration
OptionalnoPoster?: booleanset to true to disable poster generation
OptionalnoReload?: booleanset to true to disable reload plugin
OptionalopenBrowser?: booleanWhen set to true a plugin will automatically attempt to open the browser using a network ip address when the local server has started
OptionalposterGenerationMode?: "default" | "once"Use "default" to always generate the poster after 'src' has changed Use "once" to generate the poster only once, when no poster already exists
Optionalpwa?: Record<string, unknown> | booleanPass in PWA options, true to enable with defaults, or false to disable.
Options are forwarded to vite-plugin-pwa.
OptionaluseDrop?: booleanWhen enabled the Vite drop plugin will be enabled.
OptionalusePostprocessing?: booleanSet to false to prevent postprocessing effects from loading.
NOTE: by default Needle Engine uses dynamic loading of postprocessing modules. This means that the postprocessing code is only loaded when a postprocessing effect is used in the scene.
OptionaluseRapier?: booleanSet to false to prevent the Rapier physics engine from loading.
NOTE: by default Needle Engine uses dynamic loading of the Rapier physics engine. This means that the Rapier code is only loaded when a physics component is used in the scene.
Optionalvite44Hack?: booleanrequired for
Settings for the Needle plugin