If you want to build the GDExtension or a custom-module Godot Engine yourself, or to develop the plugin in parallel with SS7-SDK, follow these steps.
The flow for producing Godot binaries from this repository is as follows:
- Prepare
libssruntime— Obtain the SpriteStudio7-SDK release artifacts and place them underss_player/runtime/. - Depending on how you want to consume the plugin, run 2-A. Build the GDExtension or 2-B. Build the Custom-Module Godot Engine to link the runtime above and produce Godot binaries.
Clone this repository, and clone Godot Engine / godot-cpp depending on your build target.
git clone https://github.com/SpriteStudio/SSPlayerForGodot.git
cd SSPlayerForGodot
git clone https://github.com/godotengine/godot.git -b 4.6
git clone https://github.com/godotengine/godot-cpp.git -b masterThe godot directory is required when building a custom-module Godot Engine.
The godot-cpp directory is required when building the GDExtension.
Note
For typical builds that consume SDK release artifacts, the ss_player/SpriteStudio7-SDK/ submodule does not need to be initialized (a non-recursive clone is fine). Only when developing/building SS7-SDK itself, follow For SS7-SDK Developers below and initialize the submodule with git submodule update --init --recursive.
For build tools (compiler, Python, SCons, etc.) on each platform, follow the official Godot compilation guides:
The molten-vk package distributed via Homebrew only provides binaries for the host architecture, so linking fails when building with arch=universal. Install the universal-capable Vulkan SDK for MoltenVK instead.
Fetches and extracts the SDK package version pinned in ss_player/SDK_VERSION.txt.
macOS / Linux
./scripts/download-sdk.shWindows (PowerShell)
.\scripts\download-sdk.ps1
libssconverter(the.sspj→.ssabconverter library) is bundled only for desktop platforms. The iOS / Android / Weblibssruntimepackages do not include it.
To build libssruntime from the SS7-SDK source yourself, see For SS7-SDK Developers.
Requires godot-cpp to be cloned at the master branch.
macOS / Linux
./scripts/build-extension.shWindows (PowerShell)
$env:PYTHONUTF8=1
.\scripts\build-extension.ps1Output is placed under bin/<platform>/, and the GDExtension package (including misc/spritestudio.gdextension) is installed into the sample projects (examples/*/addons/spritestudio/).
Requires godot to be cloned at the 4.6 branch.
build.sh / build.ps1 invoke scons with custom_modules=../ss_player.
macOS / Linux
./scripts/build.shWindows (PowerShell)
$env:PYTHONUTF8=1
.\scripts\build.ps1Output is placed under godot/bin/. On macOS, godot/Godot.app is also created.
Per-platform scripts under scripts/ build editor / template_debug / template_release in one shot.
Internally they invoke build.sh / build-extension.sh repeatedly with different target values.
These scripts do not fetch or build libssruntime, so 1. Prepare libssruntime must be completed first.
| Platform | Script | Notes |
|---|---|---|
| Windows | .\scripts\release-gdextension-windows.ps1 |
arch = host |
| macOS | ./scripts/release-gdextension-macos.sh |
Fixed at arch=universal |
| Linux | ./scripts/release-gdextension-linux.sh |
arch = host |
| iOS | ./scripts/release-gdextension-ios.sh |
Only template_debug / template_release |
| Android | ./scripts/release-gdextension-android.sh |
Three architectures: arm32 / arm64 / x86_64 |
| Web | ./scripts/release-gdextension-web.sh |
wasm32 (threads=yes / threads=no) |
| Platform | Script | Notes |
|---|---|---|
| Windows | .\scripts\release-windows.ps1 |
arch = host |
| macOS | ./scripts/release-macos.sh |
Fixed at arch=universal |
| iOS | ./scripts/release-ios.sh |
arch=arm64 (device) and arch=universal (simulator) |
| Android | ./scripts/release-android.sh |
Three architectures: arm32 / arm64 / x86_64 |
No batch release script is provided for the Linux custom module. Invoke
./scripts/build.sh platform=linux target=...directly for each ofeditor/template_debug/template_release.
The sections below are required only when developing/customizing SS7-SDK itself in parallel with the Godot side. General Godot builders using the SS7-SDK release artifacts can skip them.
For setting up the environment to build libssruntime yourself (Rust toolchain, etc.), refer to the SpriteStudio7-SDK README.
If you also need to regenerate FlatBuffers headers, install flatc (the FlatBuffers compiler).
Requires the SS7-SDK submodule (ss_player/SpriteStudio7-SDK/) to be initialized. If it is not initialized yet, run:
git submodule update --init --recursiveThen run the script below to build the Rust runtime/converter; the artifacts are placed under ss_player/runtime/ automatically.
macOS / Linux
./scripts/build-runtime.sh [platform=<platform>] [arch=<arch>] [build=<build>] [ios_simulator=<yes|no>]Windows (PowerShell)
.\scripts\build-runtime.ps1 [platform=<platform>] [arch=<arch>] [build=<build>] [ios_simulator=<yes|no>]| Option | Values | Default |
|---|---|---|
platform |
windows, macos, linux, android, ios, web |
Host OS |
arch |
x86_64, arm64, universal, wasm32, etc. |
Host Arch |
build |
debug, release |
debug |
ios_simulator |
yes, no |
no |
When .fbs files in SS7-SDK have changed, regenerate the headers under ss_player/format/ (requires flatc).
macOS / Linux
./scripts/generate-runtime-code.shWindows (PowerShell)
.\scripts\generate-runtime-code.ps1Once the submodule is initialized, internal runtime specifications and porting notes are available at:
ss_player/SpriteStudio7-SDK/libs/ssruntime/docs/README.ja.md