3.7 KiB
SCP: Secret Laboratory LabAPI plugin generated from the labapi-plugin template.
Project Overview
- The plugin targets
netstandard2.1intentionally. - LabAPI runs on the game's .NET Framework 4.8 environment, but the Unity version used by SCP: Secret Laboratory supports loading plugins targeting
netstandard2.1. - The official LabAPI repository is LabApi GitHub. Use it to verify LabAPI APIs, behavior, and implementation details instead of guessing.
Rules
- Do not change
TargetFramework. - Do not add multi-targeting.
- Do not change
LangVersion. - Do not remove or broaden the existing warning handling.
- Do not replace the floating
Northwood.LabAPIversion with a pinned version unless explicitly requested. - Do not automatically synchronize
RequiredApiVersionwith the NuGet package version. - Do not add comments unless explicitly requested.
- Do not invent LabAPI APIs, namespaces, classes, methods, properties, events, or attributes.
- Do not hand-roll configuration serialization or file I/O.
- Do not make unrelated changes to project configuration.
- Do not scan or read the repository broadly at the start of a task.
- Only inspect files relevant to the current request.
- Prefer targeted searches over broad repository exploration.
Documentation
- The
docsdirectory contains project documentation and must be consulted before starting any task. - Use the relevant documentation in
docsto understand the project's architecture, conventions, design decisions, and non-obvious behavior before making changes. - Do not create documentation that merely restates what the code already makes obvious.
- Document architecture, non-obvious behavior, important design decisions, and conventions that cannot be understood easily from the code alone.
- Keep documentation concise and focused on useful context.
- Update the relevant documentation when a change affects documented behavior, architecture, conventions, or design decisions.
- Keep documentation consistent with the current state of the code.
- Do not create unnecessary documentation files.
LabAPI API Guidelines
Plugin<TConfig> requires the following members:
NameDescriptionAuthorRequiredApiVersionEnable()Disable()
Optional overridable members include:
VersionPriorityConfigFileName
Config is automatically serialized and deserialized by LabAPI using YamlDotNet.
Before using a LabAPI API that is not already present in the project, verify that it exists and confirm its signature using one of these sources:
- The restored
LabApi.dllandLabApi.xmlfrom the NuGet package. - The official LabAPI source: https://github.com/northwood-studios/LabAPI.
Never guess an API. If an API or member cannot be verified, say so.
Code Style
- Keep code simple and direct.
- Prefer existing project patterns over introducing new abstractions.
- Do not add unnecessary wrappers, helpers, interfaces, or dependencies.
- All text embedded in code must be in English.
- Identifiers do not need to be in English when a specific name has been requested.
- Avoid comments unless explicitly requested.
Project Configuration
The following settings are intentional and must not be changed unless explicitly requested:
TargetFrameworkLangVersionNorthwood.LabAPIversionNU1701warning handlingMSB3270warning handling
RequiredApiVersion is a manually maintained minimum compatible LabAPI version. Update it only after compatibility with a newer LabAPI version has been verified.
Verification
After making changes, run:
dotnet build
The expected result is:
Build succeeded. 0 Warning(s) 0 Error(s).