@sentinel-unturned/create-integration
v1.0.0
Published
Scaffold new Sentinel integrations with interactive prompts
Maintainers
Readme
@sentinel-unturned/create-integration
Scaffold new Sentinel integrations with interactive prompts.
Usage
npx @sentinel-unturned/create-integration my-integration
# or
npm init @sentinel-unturned/integration my-integrationFeatures
- Interactive prompts for all configuration options
- Event subscription selection from all available Sentinel events
- Configuration field builder with type support
- Generated TypeScript handler with webhook router
- Complete project structure with package.json, tsconfig.json, README
Interactive Prompts
The CLI guides you through the following configuration:
- Project Name - kebab-case identifier (e.g.,
my-integration) - Display Name - Human-readable name for the marketplace
- Description - Brief description of what the integration does
- Author - Your name or organization
- Version - Semantic version (default: 1.0.0)
- Scope - Organization or Global
- Category - Notifications, Moderation, Analytics, etc.
- Events - Multi-select from 34+ available events
- Config Fields - Build configuration schema interactively
- Webhook URL - Where to deliver events
Generated Project Structure
my-integration/
├── manifest.json # Integration manifest for Sentinel
├── package.json # Node.js package with SDK dependency
├── handler.ts # Webhook handler with event router
├── README.md # Generated documentation
├── tsconfig.json # TypeScript configuration
└── .gitignore # Standard ignoresAvailable Events
The CLI provides access to all Sentinel events:
Player Events
player.connected,player.disconnectedplayer.created,player.updated,player.deletedplayer.*(wildcard)
Moderation Events
moderation.ban.created,moderation.ban.removedmoderation.kick.created,moderation.warn.createdmoderation.mute.created,moderation.mute.removedmoderation.*(wildcard)
Chat Events
chat.messagechat.*(wildcard)
Game Server Events
gameserver.connected,gameserver.disconnected,gameserver.updatedgameserver.*(wildcard)
Organization Events
organization.created,organization.updated,organization.deletedorganization.member.added,organization.member.removedorganization.*(wildcard)
Integration Events
integration.installed,integration.uninstalledintegration.enabled,integration.disabled,integration.configuredintegration.*(wildcard)
Configuration Field Types
When building configuration fields, the following types are supported:
- string - Text input
- number - Numeric input
- boolean - Toggle/checkbox
Example
$ npx @sentinel-unturned/create-integration discord-alerts
╔═══════════════════════════════════════════════╗
║ Sentinel Integration Scaffolding CLI ║
╚═══════════════════════════════════════════════╝
◆ create-sentinel-integration
│
◇ What is your integration name?
│ discord-alerts
│
◇ Display name (shown in marketplace)
│ Discord Alerts
│
◇ Description
│ Send game server alerts to Discord
│
◇ Author
│ Your Name
│
◇ Version
│ 1.0.0
│
◇ Integration scope
│ Organization
│
◇ Category (for marketplace)
│ Notifications
│
◇ Subscribe to events
│ player.connected, player.disconnected, moderation.ban.created
│
◇ Add configuration fields?
│ Yes
│
◇ Field name (camelCase)
│ webhookUrl
│
...
✓ Integration scaffolded successfully!Development
# Install dependencies
npm install
# Build
npm run build
# Build in watch mode
npm run dev
# Type check
npm run typecheckRequirements
- Node.js 18.0.0 or higher
- npm 7.0.0 or higher
Related Packages
- @sentinel-unturned/integration-sdk - SDK for building Sentinel integrations
License
MIT
