A comprehensive automation plugin for the HighLite client that provides a modular scripting system for various in-game activities including combat, mining, gathering, crafting, and utility tasks.
This repository comes with no in-built scripts, unfortunately. So you'll have to write your own using the examples included, build, and use! Have fun writing creative solutions to problems. If you have a need for a new method or have an improvement, please fork and make a pull request or open a github issue.
- Modular Script System: Organized script categories for different activities
- Combat Automation: Fighters, range training, and boss scripts
- Resource Gathering: Woodcutting, mining, fishing, thieving, and harvesting
- Crafting Automation: Smithing, cooking, fletching, and potion making
- Utility Scripts: Teleports, and item management
- Safety Features: Player detection and health monitoring
- TypeScript Support: Full type safety and IntelliSense support
- Node.js (v22 or higher recommended)
- Yarn package manager (v4.9.1 or compatible)
-
Clone the repository:
git clone https://github.com/YOUR_USERNAME/HighBot.git cd HighspellBotting -
Install dependencies:
yarn install
To build the plugin in development mode with file watching:
yarn devTo build the plugin for production:
yarn buildThe built plugin will be available in the dist/ directory as HighspellBotting.js.
The main distribution file HighspellBotting.js is built from the TypeScript source files. Here's how the build process works:
- Source Files: The main entry point is
src/HighspellBotting.ts - Script Modules: Individual scripts are organized in
src/scripts/by category - Build Output: The build process bundles everything into
dist/HighspellBotting.js
The plugin uses Rollup for bundling with the following features:
- TypeScript compilation - Transpiles TypeScript to JavaScript
- Static resource inlining - HTML and CSS files are bundled as strings
- Asset handling - Images and audio files are inlined (with size limits)
- ES Module output - Modern module format for compatibility
Key configuration options in rollup.config.mjs:
- Image files: Inlined up to 1MB
- Audio files: Inlined up to 5MB
- HTML/CSS: Always inlined as strings
# Development build with watching
yarn dev
# Production build
yarn build
# Clean build (remove dist folder first)
yarn clean && yarn buildHighspellBotting/
├── src/
│ ├── HighspellBotting.ts # Main plugin class
│ ├── HighspellBottingScripts.ts # Script orchestrator
│ ├── core/
│ │ └── BaseScript.ts # Base class for all scripts
│ ├── types/
│ │ ├── ScriptContext.ts # Script context interface
│ │ └── ScriptTypes.ts # Type definitions
│ ├── metadata/
│ │ └── ScriptMetadata.ts # UI metadata for scripts
│ ├── scripts/
│ │ ├── combat/ # Combat-related scripts
│ │ ├── mining/ # Mining scripts
│ │ ├── gathering/ # Gathering scripts
│ │ ├── crafting/ # Crafting scripts
│ │ └── utility/ # Utility scripts
│ └── types.d.ts # TypeScript declarations
├── resources/
│ ├── css/
│ │ └── botting-panel.css # Plugin UI styles
│ ├── html/
│ │ └── botting-panel.html # Plugin UI template
│ ├── images/ # Plugin images
│ └── sounds/ # Plugin audio files
├── dist/
│ └── HighspellBotting.js # Built plugin file
├── package.json # Project configuration
├── rollup.config.mjs # Build configuration
├── tsconfig.json # TypeScript configuration
└── README.md # This file
For detailed information on how to write scripts for this plugin, see the comprehensive guide:
This guide covers:
- Script structure and basic concepts
- Available methods and functions
- Common script patterns
- Best practices and troubleshooting
- Advanced scripting techniques
- Choose a category: Place your script in the appropriate
src/scripts/subdirectory - Extend BaseScript: All scripts should extend the
BaseScriptclass - Implement execute(): This is your main script method
- Use the context: Access game methods via
this.context - Follow patterns: Use the established patterns for your script type
Example script structure:
import { BaseScript } from '../../core/BaseScript';
export class ScriptYourScript extends BaseScript {
async execute(param1: string, param2: number): Promise<void> {
const { log, updateStatus, wait, isSkilling } = this.context;
while (this.plugin.isScriptRunning) {
if (!isSkilling()) {
// Your script logic here
updateStatus("Working...");
} else {
await wait(5000);
}
}
}
}The main plugin class extends the base Plugin class from @highlite/plugin-api:
class HighspellBotting extends Plugin {
pluginName = "HighBot";
author: string = "Your Name";
// Plugin lifecycle methods
init(): void { }
start(): void { }
stop(): void { }
}-
Clone HighLiteDesktop:
git clone https://github.com/Highl1te/HighLiteDesktop.git cd HighLiteDesktop -
Build the plugin:
cd /path/to/HighBot yarn build -
Copy the built plugin:
cp dist/HighspellBotting.js /path/to/HighLiteDesktop/src/renderer/client/plugins/
- Plugin Location: Place
HighspellBotting.jsinHighliteDesktop/src/renderer/client/plugins/ - Automatic Loading: The plugin will be automatically loaded by the client
- Hot Reloading: After making changes, rebuild and replace the file in the plugins directory
- Script Testing: Test individual scripts through the plugin's UI interface
- Make changes to your plugin code or scripts
- Run
yarn buildto create the updated plugin file - Copy the new build to the HighLite plugins directory
- Restart HighLite to load the updated plugin
- Test your plugin functionality and scripts
- Repeat as needed
The plugin only includes one example script to get you started.
- Fork the repository
- Create a feature branch
- Write your scripts following the Script Writing Guide
- Test your changes thoroughly
- Submit a pull request
This project is licensed under the terms specified in the LICENSE file.