spawnpack 0.1.23 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +41 -52
- package/dist/spawnpack.js +489 -764
- package/package.json +2 -4
- package/templates/AGENTS.md +0 -51
- package/templates/filters/typegen/main.js +0 -86
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -2,25 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
Spawnpack is a Bun-powered CLI for scaffolding Minecraft Bedrock add-on projects with a guided terminal wizard.
|
|
4
4
|
|
|
5
|
-
It generates
|
|
5
|
+
It generates a paired behavior pack and resource pack, an optional TypeScript script setup built with [rgl](https://github.com/ink0rr/rgl), marketplace-ready resource pack folders, and optional AI agent instructions.
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
9
|
- Inline wizard built with `@clack/prompts`
|
|
10
|
-
- Behavior Pack and Resource Pack scaffold
|
|
11
|
-
- Scripting options: None,
|
|
12
|
-
- Optional packages:
|
|
10
|
+
- Behavior Pack and Resource Pack scaffold with paired manifests
|
|
11
|
+
- Scripting options: None, TypeScript (always built with rgl)
|
|
12
|
+
- Optional Script API packages:
|
|
13
13
|
- `@minecraft/server`
|
|
14
14
|
- `@minecraft/server-ui`
|
|
15
15
|
- `@minecraft/vanilla-data`
|
|
16
16
|
- `@minecraft/math`
|
|
17
|
-
-
|
|
18
|
-
- Optional
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
- `CLAUDE.md` for Claude
|
|
22
|
-
- `AGENTS.md` for Other
|
|
23
|
-
- `.mcp.json` with keyless MCP servers
|
|
17
|
+
- Marketplace structure that nests resource pack `textures/` and `sounds/` under `publisher_id/project_id`
|
|
18
|
+
- Optional `AGENTS.md` for AI coding agents
|
|
19
|
+
- Rockide and dprint recommendations in `.vscode/extensions.json`
|
|
20
|
+
- Generated `.gitattributes` with LF normalization and binary rules for pack assets
|
|
24
21
|
|
|
25
22
|
## Runtime Requirement
|
|
26
23
|
|
|
@@ -74,56 +71,47 @@ The wizard walks through:
|
|
|
74
71
|
1. Project name and author
|
|
75
72
|
2. Marketplace add-on structure toggle
|
|
76
73
|
3. Destination folder
|
|
77
|
-
4. Script API setup
|
|
74
|
+
4. Script API setup (`None` or `TypeScript`)
|
|
78
75
|
5. Publisher ID and Project ID when needed
|
|
79
|
-
6. Script packages
|
|
80
|
-
7. `
|
|
81
|
-
8.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
76
|
+
6. Script packages when scripting is enabled
|
|
77
|
+
7. `AGENTS.md` confirmation
|
|
78
|
+
8. Review screen with the planned file tree, then generation
|
|
79
|
+
|
|
80
|
+
## Generated project
|
|
81
|
+
|
|
82
|
+
Every project gets:
|
|
83
|
+
|
|
84
|
+
- `packs/BP/manifest.json` and `packs/RP/manifest.json` with paired UUIDs
|
|
85
|
+
- `packs/BP/texts/{en_US.lang,languages.json}` and `packs/RP/texts/{en_US.lang,languages.json}`
|
|
86
|
+
- `packs/RP/blocks.json`, `sounds.json`, `sounds/sound_definitions.json`
|
|
87
|
+
- `packs/RP/textures/{item_texture,terrain_texture,flipbook_textures}.json`
|
|
88
|
+
- Empty content folders for blocks, entities, items, loot tables, recipes, spawn rules, structures, trading, animations, particles, models, UI, and textures
|
|
89
|
+
- `.gitignore`
|
|
90
|
+
- `.gitattributes`
|
|
91
|
+
- `.vscode/extensions.json`
|
|
92
|
+
- `README.md`
|
|
93
|
+
- `AGENTS.md` when requested
|
|
86
94
|
|
|
87
|
-
|
|
95
|
+
Projects with TypeScript also get:
|
|
88
96
|
|
|
89
|
-
- `
|
|
90
|
-
- `
|
|
91
|
-
- `data/scripts/main.ts`
|
|
92
|
-
- `packs/BP/scripts/<publisher-id>/<project-id>/main.js`
|
|
93
|
-
- `package.json`
|
|
94
|
-
- `tsconfig.json`
|
|
97
|
+
- `data/scripts/main.ts` and `data/scripts/tsconfig.json`, plus empty `lib/` and `modules/` folders
|
|
98
|
+
- `package.json` with `typecheck` and `format` scripts
|
|
95
99
|
- `dprint.json`
|
|
96
|
-
- `config.json` for
|
|
97
|
-
- `
|
|
98
|
-
- `AGENTS.md`
|
|
99
|
-
- `.mcp.json`
|
|
100
|
-
|
|
101
|
-
## AI MCP setup
|
|
102
|
-
|
|
103
|
-
When AI setup is enabled, Spawnpack generates an `.mcp.json` that works out of the box without API keys.
|
|
104
|
-
|
|
105
|
-
Generated MCP servers currently include:
|
|
106
|
-
|
|
107
|
-
- Exa hosted MCP (`https://mcp.exa.ai/mcp`) for free, rate-limited web/documentation search
|
|
108
|
-
- `grep_app` for code search
|
|
109
|
-
- `context7` for library documentation context
|
|
110
|
-
|
|
111
|
-
You can add your own Exa API key later if you need higher Exa limits, but it is not required for the generated scaffold.
|
|
100
|
+
- `config.json` for rgl
|
|
101
|
+
- `filters/typegen/` and `filters/rolldown/`
|
|
112
102
|
|
|
113
103
|
## Marketplace structure mode
|
|
114
104
|
|
|
115
|
-
When enabled,
|
|
116
|
-
|
|
117
|
-
Example:
|
|
105
|
+
When enabled, resource pack assets that Minecraft resolves by bare path are grouped under the publisher and project IDs:
|
|
118
106
|
|
|
119
107
|
```text
|
|
120
|
-
packs/
|
|
121
|
-
packs/
|
|
122
|
-
packs/RP/
|
|
123
|
-
packs/RP/
|
|
108
|
+
packs/RP/textures/publisher/sample/blocks/
|
|
109
|
+
packs/RP/textures/publisher/sample/entity/
|
|
110
|
+
packs/RP/textures/publisher/sample/items/
|
|
111
|
+
packs/RP/sounds/publisher/sample/
|
|
124
112
|
```
|
|
125
113
|
|
|
126
|
-
|
|
114
|
+
Behavior pack content stays flat. Resource pack JSON still references these assets with paths relative to `packs/RP/`.
|
|
127
115
|
|
|
128
116
|
## Script dependency versions
|
|
129
117
|
|
|
@@ -134,7 +122,7 @@ Spawnpack fetches the latest stable npm versions for:
|
|
|
134
122
|
- `@minecraft/vanilla-data`
|
|
135
123
|
- `@minecraft/math`
|
|
136
124
|
|
|
137
|
-
If version lookup fails, it falls back to baked stable defaults.
|
|
125
|
+
If version lookup fails, it falls back to baked stable defaults. `min_engine_version` in both manifests follows `@minecraft/vanilla-data`.
|
|
138
126
|
|
|
139
127
|
Only runtime Script API modules, currently `@minecraft/server` and `@minecraft/server-ui`, are written to the behavior pack manifest. npm-side libraries such as `@minecraft/vanilla-data` and `@minecraft/math` stay in the generated `package.json` for imports and bundling.
|
|
140
128
|
|
|
@@ -146,13 +134,14 @@ bun run typecheck
|
|
|
146
134
|
bun run build
|
|
147
135
|
```
|
|
148
136
|
|
|
137
|
+
`templates/AGENTS.md` and `templates/filters/typegen/main.js` are embedded into `dist/spawnpack.js` at build time, so the published bundle needs no runtime template files.
|
|
138
|
+
|
|
149
139
|
## Publish notes
|
|
150
140
|
|
|
151
141
|
The npm package is configured to publish only:
|
|
152
142
|
|
|
153
143
|
- `dist/spawnpack.js`
|
|
154
144
|
- `bin/spawnpack.js`
|
|
155
|
-
- `templates/AGENTS.md`
|
|
156
145
|
- `README.md`
|
|
157
146
|
- `LICENSE`
|
|
158
147
|
- `package.json`
|