T3MenuAPI 1.0.0
dotnet add package T3MenuAPI --version 1.0.0
NuGet\Install-Package T3MenuAPI -Version 1.0.0
<PackageReference Include="T3MenuAPI" Version="1.0.0" />
<PackageVersion Include="T3MenuAPI" Version="1.0.0" />
<PackageReference Include="T3MenuAPI" />
paket add T3MenuAPI --version 1.0.0
#r "nuget: T3MenuAPI, 1.0.0"
#:package T3MenuAPI@1.0.0
#addin nuget:?package=T3MenuAPI&version=1.0.0
#tool nuget:?package=T3MenuAPI&version=1.0.0
T3Menu-API
T3Menu-API is a plugin created on counterstrikesharp with purpose of creating a better , refined menu controlled with player buttons.
The menu controls are fully confiugarble from config located at counterstrikesharp/configs/plugins/T3Menu-API/T3Menu-API.toml
Install
After you extract the T3Menu-API folder, Drag&Drop addons folder into game/csgo and you're good to go.
Creating Menu Tutorial
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Core.Attributes.Registration;
using CounterStrikeSharp.API.Core.Capabilities;
using CounterStrikeSharp.API.Modules.Commands;
using T3MenuSharedApi;
namespace MenuExample;
public class MenuExample : BasePlugin
{
public override string ModuleAuthor => "T3Marius";
public override string ModuleName => "T3Menu-Example";
public override string ModuleVersion => "1.0";
public int PlayerVotes;
public IT3MenuManager? MenuManager;
public IT3MenuManager? GetMenuManager() // this function is used to get the menu manager
{
if (MenuManager == null)
{
MenuManager = new PluginCapability<IT3MenuManager>("t3menu:manager").Get();
}
return MenuManager;
}
public override void Load(bool hotReload)
{
}
[ConsoleCommand("css_menutest")]
public void OnTest(CCSPlayerController? player, CommandInfo info)
{
if (player == null)
return;
var manager = GetMenuManager(); // get the manager using the function we've created.
if (manager == null)
return;
IT3Menu menu = manager.CreateMenu($"Example Menu | Votes: {PlayerVotes}", isSubMenu: false); // if this isn't a sub menu you don't even need to call this.
menu.AddOption("Normal Option", (p, o) =>
{
p.PrintToChat("This is a normal option!");
});
menu.AddOption("Vote Option", (p, o) =>
{
p.PrintToChat("You added 1 vote!");
PlayerVotes++;
menu.Title = $"Example Menu | Votes: {PlayerVotes}"; // call the title again and then refresh
manager.Refresh(); // you can also add a repeat if you use manager.Refresh(1) when press it will refresh every second.
});
menu.AddBoolOption("Bool Option", defaultValue: true, (p, o) =>
{
if (o is IT3Option boolOption)
{
bool isEnabled = boolOption.OptionDisplay!.Contains("✔"); // this is how you check if the option is enabled or not.
if (isEnabled)
{
p.PrintToChat("Bool Option is enabled!");
}
else
{
p.PrintToChat("Bool Option is disabled!");
}
}
});
// prepare a list of objects for the slider option
List<object> intList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
List<object> stringList = ["day", "week", "month", "year"];
menu.AddSliderOption("Int List", values: intList, defaultValue: 1, displayItems: 3, (player, option, index) =>
{
if (option is IT3Option sliderOption && sliderOption.DefaultValue != null)
{
int selectedValue = (int)sliderOption.DefaultValue; // convert the default value to int, this is what player pressed in the slider.
player.PrintToChat($"Selected int: {selectedValue}");
}
});
menu.AddSliderOption("String List", values: stringList, defaultValue: stringList[0], displayItems: 3, (player, option, index) =>
{
if (option is IT3Option sliderOption && sliderOption.DefaultValue != null)
{
string selectedValue = (string)sliderOption.DefaultValue; // convert the default value to string, this is what player pressed in the slider.
player.PrintToChat($"Selected string: {selectedValue}");
}
});
manager.OpenMainMenu(player, menu); // open the menu using the manager.
}
}
Current ButtonTypes:
Bool
Button
Text
Slider
Config
[Controls] # Move/Select/Back/Exit will be shown in controls info at the bottom of the menu.
Move = "[W/S]"
Select = "[E]"
Back = "[Shift]"
Exit = "[R]"
LeftArrow = "\u25C4"
RightArrow = "\u25BA"
LeftBracket = "]"
RightBracket = "["
[Buttons] # controls config
ScrollUpButton = "W"
ScrollDownButton = "S"
SelectButton = "E"
BackButton = "Shift"
SlideLeftButton = "A"
SlideRightButton = "D"
ExitButton = "R"
[Sounds] # if you wanna use these sounds you don't need to add anything.
ScrollUp = "UI.ButtonRolloverLarge"
ScrollDown = "UI.ButtonRolloverLarge"
Select = "Buttons.snd9"
SlideRight = "UI.ButtonRolloverLarge"
SlideLeft = "UI.ButtonRolloverLarge"
Volume = 0.5 # menu sounds volume
SoundEventFiles = [] # if you have custom sounds, add the soundeventfile path here.
[Settings]
ShowDeveloperInfo = true
Credits to:
@interesting , took example from him with classes
@ssypchenko, arrows ideas from him.
@KitsuneLab Developments, inspired from their menu style
Video
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
-
net8.0
- CounterStrikeSharp.API (>= 1.0.316)
- T3MenuSharedAPI (>= 1.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.0 | 76 | 6/6/2025 |