Contributing¶
These docs are open source. The Nova engine and the official platform are not. Contributions are welcome for the documentation and API metadata, but this repository must never contain engine, backend, client, or Studio source code, reverse-engineered internals, private endpoints, or credentials.
The official platform is https://www.novalabs.top.
The docs are split into two kinds of content:
| Path | Editable? | What it is |
|---|---|---|
docs/getting-started/, docs/migration/, docs/tutorials/, docs/index.md |
Yes | Hand-written guides and tutorials. |
docs/reference/ |
No | Generated API pages. Edit the source or data/compat.yaml instead. |
data/compat.yaml |
Yes | Curated statuses, caveats, and workarounds. |
data/*.txt, data/*.json, data/*.xml |
Usually no | API snapshots; refresh them with the sync script. |
scripts/ |
Yes | Generator and sync tooling. |
Set up¶
git clone https://github.com/novalabs-org/Nova.Docs.git
cd Nova.Docs
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python scripts/sync_sources.py
python scripts/generate_reference.py
mkdocs serve
mkdocs serve prints a local URL. The generated pages are rebuilt only when you
run the generator; restart mkdocs serve after regenerating if the navigation
looks stale.
Change a support status or add a workaround¶
Most corrections belong in data/compat.yaml:
classes:
UIListLayout:
status: missing
note: "Short explanation."
alternative: "What to use instead."
members:
Workspace.Raycast:
status: planned
note: "Use FindPartOnRayWithIgnoreList today."
datatypes:
RaycastParams:
status: missing
Then regenerate and commit both the YAML and the generated pages:
Use supported, partial, missing, planned, alias, nova-only, internal, or unknown. See the legend on the home page.
Write or edit a guide¶
- Prefer concrete, runnable Lua over pseudo-code.
- Use modern property names (
PlaybackSpeed,RollOffMinDistance, ...). - When an API is missing, show the replacement, not just the gap.
- Link to the relevant reference page with a relative path, for example
[Workspace](reference/classes/Workspace.md). - Keep code samples self-contained and free of place-specific names.
- Do not include engine, backend, client, or Studio source code. The docs repository is public and separate from the closed-source platform on purpose.
- Do not document private endpoints, credentials, bypasses, or exploit details.
Run the site locally and check the page in both light and dark mode.
Refresh the API snapshots¶
# Roblox dump + creator-docs cache
python scripts/sync_sources.py
# Also update the Nova dump (produced by the engine)
NovaPlayer --API nova-api.txt
python scripts/sync_sources.py --nova-dump nova-api.txt
python scripts/generate_reference.py
The Nova dump is generated by the engine binary, not downloaded. If you do not
have a build, leave data/nova-api.txt alone and only refresh the Roblox side.
Pull request checklist¶
-
python scripts/generate_reference.py --checkpasses. -
mkdocs build --strictpasses. - New code samples were run in NovaStudio or a local server.
- No engine/backend source code, secrets, private URLs, or exploit details are included.
- Generated pages are committed alongside their source changes.
- The change is described in plain language, with the affected class or guide linked.
Licensing and attribution¶
By contributing, you agree that:
- Original prose and code are contributed under the repository's content/code
licenses (see
LICENSE). - Roblox-derived descriptions remain attributed to Roblox Corporation and
CC BY 4.0. Do not remove the attribution in
NOTICE.mdor the site footer.
Reporting a docs bug¶
Open an issue with:
- The page URL or file path.
- The class/member/guide section.
- What you expected and what the site says.
- If possible, the API dump evidence (Nova member present/absent, Roblox member present/absent).
For platform bugs (as opposed to documentation bugs), use the official platform's support/security channel. The engine has no public issue tracker.