You are viewing a potentially older version of this package.
View all versions.
OpenShot
A core library and API for Lucky Shot modding. Provides a Mod Menu, Developer Console, unified GameEvents, AudioAPI, InputAPI, and Asset Registries.
| Date uploaded | a day ago |
| Version | 1.1.0 |
| Download link | LiamGaming-OpenShot-1.1.0.zip |
| Downloads | 2 |
| Dependency string | LiamGaming-OpenShot-1.1.0 |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2305README
OpenShot Library
OpenShot is a powerful core library and API for modding Lucky Shot. It provides essential tools and global events to make modding easier, cleaner, and conflict-free.
Features for Players
- In-Game Mod Menu (F1): A unified menu to configure installed mods. Pauses the game automatically.
- Developer Console (~): A built-in command console to debug and run mod commands (e.g.,
help).
Features for Developers
- GameEvents: Subscribe to
OnTargetSpawned,OnShotFired,OnShopTryBuy,OnAmmoDisplayUpdated, and more without needing to write your own Harmony patches. - AudioAPI: Play custom
.wavor.oggfiles dynamically from the disk with a single method callAudioAPI.PlaySound(). - InputAPI: A simple way to register keybinds and callbacks without cluttering your
Update()loop. - Bullet & Asset Registry: Safely register custom bullets and prefabs with unique string IDs to avoid conflicts with other mods.
- SaveAPI: Save and load custom JSON data persistently across game sessions.
Installation
- Install BepInEx.
- Extract the
OpenShot.dllinto yourBepInEx/pluginsfolder. - Start the game!
Developer Setup
To use OpenShot in your mod, simply add OpenShot.dll as a reference in your C# project.
using OpenShot.Events;
using OpenShot.UI;
// Example: Add a button to the Mod Menu
ModMenu.RegisterTab(() => {
if (UIHelper.DrawButton("Click Me!")) {
// Do something
}
});
CHANGELOG
Changelog
1.2.0
- 3D Main Menu Injection: Added an in-world 3D "MODS" button to the game's physical main menu. Modders can use
ModMenu.Register3DButton()to add their own physical buttons. - UI Theming: Entirely overhauled the IMGUI theming to a modern, flat Cyberpunk/Dark Mode aesthetic with proper hover states.
- Object Pool API: Added
ObjectPoolAPIto allow mods to recycle GameObjects (like bullets) and save massive CPU overhead. - Update Checker: Automatically checks Thunderstore for updates asynchronously in the background.
1.1.0
- Custom Attributes Registration: Modders can now use
[ConsoleCommand]and[OpenShotMenuTab]attributes to automatically register UI tabs and commands via reflection. - AssetBundle Loader: Added
AssetLoader.GetPrefab()to automatically load and cache prefabs from.bundlefiles in the plugins folder. - Localization API: Mods can now easily support multiple languages using
LocalizationAPI.GetString()and corresponding JSON files. - GameEvents 2.0: Key events (
OnShotFired,OnShopTryBuy,OnWeaponReloaded) are now cancelable using aref bool cancelparameter, allowing mods to intercept and block game actions! - Auto-UI Generator: Added
UIHelper.DrawSettings(obj)which uses reflection to automatically generate interactive UI elements (toggles, sliders, text fields) from a given data object. - Audio & Input APIs: Added helper classes for playing custom sounds from disk and managing keyboard inputs seamlessly.