You are viewing a potentially older version of this package. View all versions.
LiamGaming-OpenShot-1.1.0 icon

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-5.4.2305 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2305

README

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 .wav or .ogg files dynamically from the disk with a single method call AudioAPI.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

  1. Install BepInEx.
  2. Extract the OpenShot.dll into your BepInEx/plugins folder.
  3. 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 ObjectPoolAPI to 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 .bundle files 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 a ref bool cancel parameter, 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.