AVIP.Core
1.0.2
See the version list below for details.
dotnet add package AVIP.Core --version 1.0.2
NuGet\Install-Package AVIP.Core -Version 1.0.2
<PackageReference Include="AVIP.Core" Version="1.0.2" />
<PackageVersion Include="AVIP.Core" Version="1.0.2" />
<PackageReference Include="AVIP.Core" />
paket add AVIP.Core --version 1.0.2
#r "nuget: AVIP.Core, 1.0.2"
#:package AVIP.Core@1.0.2
#addin nuget:?package=AVIP.Core&version=1.0.2
#tool nuget:?package=AVIP.Core&version=1.0.2
AVIP.Core
AVIP.Core is the core API library for the AVIP system. It is distributed as a NuGet package and is intended to be used by developers when creating modular VIP features for AVIP.
AVIP.Core contains only abstractions, contracts, and shared infrastructure. It does not contain any game logic, Swiftly bindings, or feature implementations. Those belong in feature modules or the AVIP host plugin.
🎯 Purpose
AVIP.Core exists to:
- Provide a stable and well-defined API for AVIP feature development
- Enable external feature development without modifying the AVIP repository
- Centralize shared contracts, services, and utilities
- Ensure binary compatibility between the AVIP host and feature modules
- Act as the single dependency required to build AVIP features
If you are building a feature for AVIP, this is the only package you need to reference.
🧱 What AVIP.Core Provides
AVIP.Core includes:
- Feature interfaces and base abstractions
- Feature metadata & registration contracts
- Lifecycle hooks (load, unload, enable, disable)
- Logging abstractions used across all AVIP modules
- Service & dependency injection contracts
- Shared models and utility helpers
AVIP.Core is intentionally lightweight and framework-agnostic.
📦 Installation
AVIP.Core is published as a NuGet package and is consumed by feature projects.
dotnet add package AVIP.Core
You typically do not reference AVIP.Plugin or AVIP itself when authoring features — only AVIP.Core.
🏗️ Creating a Feature (Recommended Workflow)
AVIP provides an official dotnet template to simplify feature creation.
1️⃣ Install the feature template
dotnet new install avip.feature.template
2️⃣ Create a new feature project
dotnet new avip-feature \
--FeatureId my_feature \
--FeatureName "MyFeature" \
--Author "YourName" \
--Version 1.0.0 \
--CorePackageVersion 1.0.1
This will:
- Create a correctly structured feature project
- Reference AVIP.Core automatically
- Generate required metadata and boilerplate
3️⃣ (Optional) Add AVIP.Core manually
If you are not using the template:
dotnet add package AVIP.Core
🚀 Basic Feature Example
namespace FeatureName
{
using AVIP.Core.Players;
using AVIP.Core.Features;
using SwiftlyS2.Shared.GameEventDefinitions;
using System.ComponentModel;
[FeatureMetadata("FeatureId", Name = "FeatureName", Author = "AVIP_Author", Description = "AVIP_Description", Version = "AVIP_Version")]
public sealed class FeatureName : BaseFeature
{
public override void Initialize()
{
Logger.Info("Initialized {0} ({1})", Name, Id);
}
public override void Release()
{
base.Release();
Logger.Info("Released {0} ({1})", Name, Id);
}
}
}
The compiled .dll can then be placed inside:
addons/swiftly/plugins/AVIP/features
and will be discovered automatically by the AVIP host.
🤝 Contributing
Changes to AVIP.Core affect every feature in the ecosystem.
Contributions should:
- Be minimal and well-documented
- Avoid breaking public APIs
- Prefer additive changes over modifications
Open an issue before submitting large or breaking changes.
📄 License
Licensed under the license specified in the repository. See the LICENSE file for details.
🔗 Related Projects
- AVIP – Main Swiftly plugin hosting features
- AVIP.Features – Official feature modules
- avip.feature.template – Official dotnet template for feature creation
AVIP.Core is the contract. Features are the implementation.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.0)
- Microsoft.Extensions.Configuration.Json (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- SwiftlyS2.CS2 (>= 1.1.0-beta.38)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.