Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eyassa

Even Yet another server-specific settings API wrapper for EXILED

🔧 Features

  • Built-in support for:
    • Buttons (ButtonOption)
    • Two Button Options (TwoButtonOption)
    • Sliders (SliderOption)
    • Dropdowns (DropdownOption)
    • Input fields (InputTextOption, TextAreaOption)
  • Easy to extend with your own options and logic

📦 Installation

  1. Download the latest release from GitHub Releases.
  2. Place the .dll into your server's Plugins/ folder.
  3. Start the server once to generate default configuration files.
  4. Create and register your own nodes to expose settings in-game.

🤓 Code Documentation

Yeah no im too lazy

🧪 Example Option: ButtonOption

public class TestButton : ButtonOption
{
    public override string GetLabel(Player player) => $"Hello {player.Nickname}";

    public override string GetButtonText(Player player) => $"Heal {player.MaxHealth - player.Health} HP";

    public override string GetHint(Player player) => "Heals you to full health";

    public override float GetHoldTime(Player player) => (player.MaxHealth - player.Health) / 10;

    public override void OnValueChanged(Player? player)
    {
        player?.Heal(player.MaxHealth - player.Health);
    }
}

📂 Creating and Registering a Node

All options must be placed inside a SettingNode, which defines a section in the in-game menu.

public class TestNode : SettingNode
{
    public override string GetHeaderName(Player player) => "Test node";
    public override string GetHeaderHintDescription(Player player) => "Is test";

    public override IOption[] Options { get; } =
    [
        new TestButton(),
        new TestSlider(),
        new TestDropdown(),
        new TestInputText(),
        new TestTextArea(),
        new TestTwoButton()
    ];
}

Nodes need to be registered using SettingNode::Register(); Example: new TestNode().Register();

📝 Credits & Acknowledgments

Some class and structural ideas in this project were inspired by Yassa, another settings system for EXILED under the Apache 2.0 License.

This project reuses or adapts class names such as SettingNode, ButtonOption, and interface design patterns introduced in Yassa.

About

Eyassa is a plugin for EXILED that allows devs to make per-player* server-specific-settings for SCP: Secret Laboratory servers.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages