Installation & System Requirements
Hardware and software requirements, platform support, and project configuration guidelines for LocalNPC.
💻 System Requirements
Development Environment
- Unity Version: Unity 6000.0 or newer. Tested on Unity 6000.0.85f2, 6000.3.10f1 and 6000.6.8f1. Other Unity 6 versions are not officially tested. On 6000.0 the package was tested in the Editor (EditMode and PlayMode), and the Windows player of the head demo scene was built and run by hand.
- Unity Inference Engine: optional. v1.0 does not use it. LocalNPC compiles without the package. If you install it, use version
2.6.1(pinned inPackages/manifest.json). - Operating System: Windows 10/11 64-bit (x86_64).
- Scripting Backend: Mono or IL2CPP (both fully supported).
- API Compatibility Level: .NET Standard 2.1 or .NET Framework.
- Render Pipeline: The three sample scenes draw in the Built-in Render Pipeline and in URP. They use their own simple shader (
SampleShaded.shader: a fixed light direction, no shadows), so a project from the 3D or the Universal 3D template shows them without changes. HDRP is not supported: the samples were not tested there and may not draw correctly. The LocalNPC scripts use no render pipeline. Conversations were run-tested in URP; in the Built-in pipeline the sample scenes were checked to start and draw.
Machines That Run the Game
- Windows 10 or 11 with a Windows voice for the NPC's language: the NPC speaks with a Windows system voice, a OneCore voice with SAPI 5 as the last fallback. Nothing is downloaded for it. For en-US, LocalNPC tries Microsoft Mark, then Microsoft Zira, then Microsoft David, then any other en-US voice, then a voice of another English region such as en-GB or en-AU. To add a voice, open Settings > Time & language > Speech and add one under Manage voices > Add voices. The Manage voices path was checked on Windows 11, not on Windows 10. The voice chosen as the default in Windows Settings does not change the NPC's voice: LocalNPC takes the first installed voice of the language profile's list (measured on one PC: with Microsoft David as the Windows default, LocalNPC used Microsoft Mark). The Windows 11 "Natural" voices of Narrator are not available to LocalNPC (checked on one PC during development), so adding one does not give the NPC a voice. Without a voice, the NPC answers in text only and logs one warning. The Setup Wizard's environment step shows the row Windows voice installed.
- Visual C++ 2015–2022 x64 Redistributable: must be installed on every machine that runs the game. LocalNPC does not include Microsoft's DLLs. Without it the native libraries do not load; see Troubleshooting.
- CPU with AVX2: the minimum for normal speed. On a CPU without AVX2 a slower library is loaded instead (5.4 and 6.4 tokens per second in two test runs with the 0.5B model of the Fast preset; with the 1.5B model of the default Balanced preset, not measured yet). Speech-to-text also loads a slower library on such a CPU (
ggml-cpu-x64.dll); its speed is not measured. See Troubleshooting.
Target Hardware Budgets
| Preset | Target Model | Min RAM | Graphics card | Disk Space |
|---|---|---|---|---|
| Fast (low-end PCs) | Qwen2.5-0.5B-Instruct Q4_K_M | not measured yet | not used (CPU only in v1.0) | 569 MB of model files |
| Balanced (Default) | Qwen2.5-1.5B-Instruct Q4_K_M | not measured yet | not used (CPU only in v1.0) | 1.20 GB of model files |
Disk space is the sum of the model file sizes in the model catalogue, in decimal units as the Setup Wizard shows them. Balanced: 1.12 GB (LLM) and 78 MB (Whisper tiny.en), 1.20 GB in all. Fast: 491 MB (LLM) and the same Whisper file, 569 MB in all.
Memory of the speech model: about 135 MB of working set and about 650 MB of private bytes while it is loaded (measured on one laptop (Intel Core i7-8750H, 15.8 GB RAM, Windows 11), tiny.en model, 4 threads, on battery, one or two runs per figure). Minimum RAM for a whole preset is still not measured.
The Balanced preset is the default; Fast is the option for low-end PCs. Balanced's 1.5B model has run in a Windows player build (Mono and IL2CPP, without a window, on one PC (Intel Core i7-8750H, 16 GB RAM, Windows 11), Unity 6000.3.10f1, one run each); the process working set with the model loaded was 1960 MB (Mono) and 1969 MB (IL2CPP). Not measured yet for Balanced: a minimum RAM, a windowed player, a CPU without AVX2, and a download through the Setup Wizard window. The Quality preset is not available in v1.0.
⚙️ Project Settings Configuration
1. Standalone Target Architecture
LocalNPC ships with eight native 64-bit Windows libraries in Plugins/x86_64. All eight together are 31.1 MB: the two LlamaLib libraries are 26.9 MB, the five whisper.cpp libraries are 4.0 MB and the voice library is 0.2 MB (file sizes on disk).
- Language model:
llamalib_win-x64_avx2.dllandllamalib_win-x64_noavx.dll. The one that fits the CPU is loaded at run time. - Speech-to-text (whisper.cpp 1.9.5):
ggml-base.dll,ggml.dll,whisper.dll, and the two CPU librariesggml-cpu-haswell.dllandggml-cpu-x64.dll. One of the two CPU libraries is loaded at run time. - Voice:
localnpc_winspeech.dll, which speaks through the Windows system voices.
All of them are loaded into the game's own process. The package contains no .exe.
Restart Unity after replacing these DLLs. Once loaded, the speech-to-text libraries and the voice library stay loaded until the Unity process ends, also after you leave Play Mode. After a package update, or after you replace a file in Plugins/x86_64 by hand, close Unity and open it again.
- Build Target: Windows Standalone (
StandaloneWindows64). - 32-bit builds (
StandaloneWindows) are not supported:BuildPreprocessorlogs one warning, and LocalNPC does nothing in such a build. - macOS, Linux, Android, iOS and WebGL are not supported in v1.0. Only Windows was built and tested. LocalNPC does nothing on other platforms: a build for another platform gets one warning from
BuildPreprocessor, and in a macOS or Linux Editor LocalNPC shows "LocalNPC v1.0 works on Windows only (Windows 10/11, 64-bit). This platform is not supported yet." and loads nothing. WebGL builds do not compile: the microphone code uses Unity'sMicrophoneclass, which WebGL does not have (found by reading the code; no WebGL build was tried). Not tested in a macOS or Linux Editor, and no build for another platform was made.
2. Managed Code Stripping (IL2CPP)
When building standalone IL2CPP executables:
- Set Managed Stripping Level to Minimal or Low.
- LocalNPC automatically includes a
link.xmlfile preserving reflection-based JSON and contract factories.
📦 Package Installation
To install LocalNPC into an existing Unity 6 project:
- Open Window → Package Manager.
- Under My Assets, find LocalNPC and click Download, then Import. (If you have an unpacked copy of the package folder instead, click + → Add package from disk... and select its
package.json.) - Leave every file selected in the import window and click Import.
- Once imported, open Tools > LocalNPC > Setup Wizard (or Tools > LocalNPC > Model Manager) to download the model files from Hugging Face (huggingface.co); each file is checked with SHA-256. The speech-to-text model comes from the model catalogue and is listed in the Model Manager.