SCP: Classified Site Plugin API
  • Quick Start
  • DOCS
    • Folder Structure
    • Creating Plugin Project
    • Creating New Player Class
    • Creating New Item Class
    • Creating New Room Event
    • Creating Additional Networked Class
    • Creating New Admin Panel Menu
    • Abilities
    • Replacing Game Logic
    • Plugin Classes/Game Classes Limitations
  • ID's
    • Inventory Image ID
    • Material ID
    • Team ID
    • Hook ID
  • Game C# Classes
    • ACES
    • AdminPanel
    • Button
    • Config
    • CustomLogger
    • DamageHandler
    • DeadBox
    • DoorManager
    • HitBox
    • HookManager
    • IInteractable
    • InputController
    • ItemPickup
    • Lever
    • NetRoom
    • NetworkedButton
    • NetworkedEvent
    • Player
    • PlayerUtilities
    • ResourcesManager
    • ScriptHelper
    • Trigger
    • UIManager
    • Door
    • SupportManager
    • RoundManager
    • Elevator
  • Another C# Classes
    • Rooms
    • Player Classes
    • Items
    • Admin Panel
Powered by GitBook
On this page
  • Libraries
  • Creating Solution
  • Plugin Information Class
  • Testing
  1. DOCS

Creating Plugin Project

PreviousFolder StructureNextCreating New Player Class

Last updated 11 months ago

All examples created in Visual Studio 2022

Libraries

Creating Plugin require Unity Engine libraries and main game library. You can download libraries archive here:

Creating Solution

We recommend to use .NET Framework 4.7.2(because only this version tested).

  1. Create C# .NET Framework Library.

  2. Connect downloaded libraries to your project.

  3. Create Plugin Information class.

  4. You are ready to go!

Plugin Information Class

Each plugin must contain plugin information, otherwise it will not be loaded. There no rules of naming this class. Here is example of plugin information class(we named it "Info").

public class Info : Akequ.Plugins.PluginInfo
{
    public override string Name => "Test Plugin";

    public override string Id => "com.akequ.test";

    public override string Version => "0.0.1";

    public override ushort BundleVersion => 1;

    public Info() { }
}

Testing

Now we can compile this plugin and move library to server plugins folder according to Folder Structure After starting server we must see this message:

We will not Name, Id, Version, BundleVersion. We will not consider filling out these fields, since it should be clear to everyone why they are needed. We will only check "MustSpawnClasses", this property contain class names, that must spawn after successfull map generation and will also be spawned on clients, to send messages between server/client. Example Solution can be downloaded here:

Link to archive
Link to archive