Appearance
Sharing Plugins
Distribute your plugins to other GemShell users.
Distribution Platforms
| Platform | Best For | Link |
|---|---|---|
| itch.io | Public plugins, monetization | GemShell on itch.io |
| Discord | Community sharing, feedback | GemShell Discord |
| GitHub | Open source, collaboration | GitHub |
Publishing on itch.io
1. Create a Project
- Go to itch.io/game/new
- Set Kind of project to "Tool"
- Set Classification to "Other"
2. Prepare Your Plugin
Create a ZIP file with your plugin folder:
my-plugin.zip
└── my-plugin/
├── plugin.js
├── style.css
├── template.html
├── script.js
└── README.md3. Write a Good Description
Include:
- What the plugin does
- Screenshots/GIFs
- Installation instructions
- Settings documentation
- GemShell version compatibility
Example:
markdown
# FPS Counter Plugin for GemShell
Adds a customizable FPS counter overlay to your game.
## Features
- Real-time FPS display
- Configurable position
- Memory usage (optional)
- Minimal performance impact
## Installation
1. Download the ZIP
2. Extract to ~/.gemshell/plugins/
3. Enable in GemShell > Manage Plugins
## Settings
- **Position**: Corner placement
- **Show Memory**: Toggle memory display
- **Opacity**: Overlay transparency
## Requirements
- GemShell Pro 0.6.0+4. Upload and Publish
- Upload your ZIP file
- Set a price (free or paid)
- Add tags:
gemshell,plugin,gamedev - Publish!
Sharing on Discord
Quick Share
- ZIP your plugin folder
- Post in #plugins channel
- Include a brief description
Best Practices
- Include a screenshot
- Mention GemShell version
- List any dependencies
- Be available for questions
GitHub Repository
For open source plugins:
Repository Structure
my-plugin/
├── plugin.js
├── style.css
├── template.html
├── script.js
├── README.md
├── LICENSE
└── CHANGELOG.mdREADME Template
markdown
# My Plugin
Brief description.
## Installation
```bash
cd ~/.gemshell/plugins
git clone https://github.com/user/my-plugin.gitUsage
Enable in GemShell > Manage Plugins.
Settings
| Setting | Type | Default | Description |
|---|---|---|---|
| enabled | checkbox | true | Enable plugin |
License
MIT
## Installation Instructions for Users
Tell users to:
1. Download the plugin ZIP
2. Extract to `~/.gemshell/plugins/`
3. Restart GemShell (or click Refresh in Manage Plugins)
4. Enable the plugin globally
5. Enable per-game in Game Settings
## Versioning
Use semantic versioning:
- `1.0.0` - Initial release
- `1.0.1` - Bug fixes
- `1.1.0` - New features (backwards compatible)
- `2.0.0` - Breaking changes
Update `version` in `plugin.js`:
```javascript
module.exports = {
name: 'My Plugin',
version: '1.2.0', // Keep this updated
// ...
};Compatibility
Specify minimum GemShell version:
javascript
module.exports = {
name: 'My Plugin',
version: '1.0.0',
gemshell: '>=0.6.0', // Minimum version
// ...
};Plugin Guidelines
For a good plugin:
- Clear purpose - Solve one problem well
- Good defaults - Work out of the box
- Documentation - Explain all settings
- Minimal footprint - Don't bloat game size
- Error handling - Fail gracefully
- No side effects - Don't modify unexpected files
