AVIP.Core
1.0.9
dotnet add package AVIP.Core --version 1.0.9
NuGet\Install-Package AVIP.Core -Version 1.0.9
<PackageReference Include="AVIP.Core" Version="1.0.9" />
<PackageVersion Include="AVIP.Core" Version="1.0.9" />
<PackageReference Include="AVIP.Core" />
paket add AVIP.Core --version 1.0.9
#r "nuget: AVIP.Core, 1.0.9"
#:package AVIP.Core@1.0.9
#addin nuget:?package=AVIP.Core&version=1.0.9
#tool nuget:?package=AVIP.Core&version=1.0.9
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 abstractions, contracts, helpers, and shared infrastructure.
🎯 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
📦 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.3
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.