@el4cteo/rbx-studio-mcp 0.6.0 → 0.6.5
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/README.md +4 -4
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/tools/anim.js +159 -0
- package/dist/tools/anim.js.map +1 -0
- package/dist/tools/character.js +95 -5
- package/dist/tools/character.js.map +1 -1
- package/dist/tools/data.js +173 -0
- package/dist/tools/data.js.map +1 -0
- package/dist/tools/device.js +77 -7
- package/dist/tools/device.js.map +1 -1
- package/dist/tools/discover.js +80 -4
- package/dist/tools/discover.js.map +1 -1
- package/dist/tools/exec.js +48 -1
- package/dist/tools/exec.js.map +1 -1
- package/dist/tools/input.js +35 -9
- package/dist/tools/input.js.map +1 -1
- package/dist/tools/perf.js +74 -7
- package/dist/tools/perf.js.map +1 -1
- package/dist/tools/scripts.js +51 -3
- package/dist/tools/scripts.js.map +1 -1
- package/dist/tools/world.js +317 -44
- package/dist/tools/world.js.map +1 -1
- package/package.json +74 -74
- package/plugin/src/Commands.luau +622 -562
- package/plugin/src/Config.luau +65 -65
- package/plugin/src/Console.luau +1909 -1843
- package/plugin/src/Emulation.luau +172 -0
- package/plugin/src/Phrase.luau +164 -16
- package/plugin/src/Png.luau +8 -4
- package/plugin/src/Serialize.luau +499 -327
- package/plugin/src/Undo.luau +94 -6
- package/plugin/src/handlers/Anim.luau +897 -0
- package/plugin/src/handlers/Assets.luau +587 -352
- package/plugin/src/handlers/Capture.luau +155 -20
- package/plugin/src/handlers/Character.luau +823 -361
- package/plugin/src/handlers/Data.luau +539 -0
- package/plugin/src/handlers/Device.luau +394 -139
- package/plugin/src/handlers/Discover.luau +685 -363
- package/plugin/src/handlers/Geometry.luau +127 -0
- package/plugin/src/handlers/Perf.luau +227 -0
- package/plugin/src/handlers/Scripts.luau +673 -539
- package/plugin/src/handlers/Session.luau +3 -0
- package/plugin/src/handlers/Viewport.luau +268 -0
- package/plugin/src/handlers/World.luau +89 -15
- package/plugin/src/init.server.luau +879 -832
- package/scripts/build-plugin.mjs +20 -0
- package/scripts/check-plugin.mjs +171 -124
package/dist/tools/world.js
CHANGED
|
@@ -15,28 +15,96 @@ const CATEGORIES = { model: 10, decal: 13, mesh: 40, audio: 3 };
|
|
|
15
15
|
* while a plugin making outbound HTTP needs the user to approve each domain in
|
|
16
16
|
* Plugin Management. Searching here means it works the moment the server starts.
|
|
17
17
|
*/
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Pages to pull before filtering gives up looking for more.
|
|
20
|
+
*
|
|
21
|
+
* Filtering happens here rather than at Roblox (see below), so a strict filter
|
|
22
|
+
* over one page of thirty can return nothing while the good results sit on page
|
|
23
|
+
* two. Four pages is enough to find script-free models for any ordinary search
|
|
24
|
+
* without turning one call into a crawl of the whole index.
|
|
25
|
+
*/
|
|
26
|
+
const MAX_PAGES = 4;
|
|
27
|
+
/**
|
|
28
|
+
* Searches the Creator Store from the server rather than the plugin.
|
|
29
|
+
*
|
|
30
|
+
* Node already has internet access and these endpoints answer unauthenticated,
|
|
31
|
+
* while a plugin making outbound HTTP needs the user to approve each domain in
|
|
32
|
+
* Plugin Management. Searching here means it works the moment the server starts.
|
|
33
|
+
*
|
|
34
|
+
* Filtering and ranking are done HERE, on purpose. The endpoint accepts
|
|
35
|
+
* `sortType` and `creatorFilter` and ignores both — measured, Relevance,
|
|
36
|
+
* MostTaken, Favorited and Updated returned byte-identical results for the same
|
|
37
|
+
* keyword, as did a Roblox-only creator filter. Passing them through would have
|
|
38
|
+
* looked like sorting and done nothing, which is worse than not offering it. So
|
|
39
|
+
* the only server-side lever that works is the cursor, and everything else is
|
|
40
|
+
* decided from the details each result carries.
|
|
41
|
+
*/
|
|
42
|
+
async function searchCreatorStore(keyword, category, limit, filters = {}) {
|
|
19
43
|
const categoryId = CATEGORIES[category] ?? 10;
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
44
|
+
const kept = [];
|
|
45
|
+
let cursor = "";
|
|
46
|
+
let scanned = 0;
|
|
47
|
+
let total;
|
|
48
|
+
for (let page = 0; page < MAX_PAGES && kept.length < limit; page += 1) {
|
|
49
|
+
const url = `${TOOLBOX_SEARCH}/${categoryId}?keyword=${encodeURIComponent(keyword)}` +
|
|
50
|
+
`&limit=30${cursor ? `&cursor=${encodeURIComponent(cursor)}` : ""}`;
|
|
51
|
+
const found = await fetch(url, { signal: AbortSignal.timeout(15_000) });
|
|
52
|
+
if (!found.ok) {
|
|
53
|
+
throw new Error(`Creator Store search failed (${found.status}). Roblox may be rate-limiting.`);
|
|
54
|
+
}
|
|
55
|
+
const results = (await found.json());
|
|
56
|
+
total = total ?? results.totalResults;
|
|
57
|
+
const ids = (results.data ?? []).map((entry) => entry.id);
|
|
58
|
+
if (ids.length === 0)
|
|
59
|
+
break;
|
|
60
|
+
scanned += ids.length;
|
|
61
|
+
// Search returns bare ids; everything worth showing — name, creator, script
|
|
62
|
+
// count, price — needs the second call.
|
|
63
|
+
const detailed = await fetch(`${TOOLBOX_DETAILS}?assetIds=${ids.join(",")}`, {
|
|
64
|
+
signal: AbortSignal.timeout(15_000),
|
|
65
|
+
});
|
|
66
|
+
if (!detailed.ok) {
|
|
67
|
+
throw new Error(`Could not read asset details (${detailed.status}).`);
|
|
68
|
+
}
|
|
69
|
+
const payload = (await detailed.json());
|
|
70
|
+
for (const entry of payload.data ?? []) {
|
|
71
|
+
if (filters.excludeScripts && entry.asset?.hasScripts)
|
|
72
|
+
continue;
|
|
73
|
+
if (filters.verifiedOnly && !entry.creator?.isVerifiedCreator)
|
|
74
|
+
continue;
|
|
75
|
+
if (filters.freeOnly && entry.fiatProduct?.isFree === false)
|
|
76
|
+
continue;
|
|
77
|
+
if (filters.minVotes !== undefined && (entry.voting?.voteCount ?? 0) < filters.minVotes) {
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (filters.maxTriangles !== undefined) {
|
|
81
|
+
const triangles = entry.asset?.modelTechnicalDetails?.objectMeshSummary?.triangles;
|
|
82
|
+
if (triangles !== undefined && triangles > filters.maxTriangles)
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
kept.push(entry);
|
|
86
|
+
}
|
|
87
|
+
cursor = results.nextPageCursor ?? "";
|
|
88
|
+
if (!cursor)
|
|
89
|
+
break;
|
|
37
90
|
}
|
|
38
|
-
|
|
39
|
-
|
|
91
|
+
/*
|
|
92
|
+
* Ranked by approval WEIGHTED BY how many people voted.
|
|
93
|
+
*
|
|
94
|
+
* The raw percentage is what the API gives and it is close to meaningless on
|
|
95
|
+
* its own: 82% of 5000 votes and 100% of 2 votes sort the wrong way round
|
|
96
|
+
* every time, and the second is the one nobody should be inserting into their
|
|
97
|
+
* game. Pulling the percentage toward 50 in proportion to how little evidence
|
|
98
|
+
* there is behind it costs nothing and puts the well-used models first.
|
|
99
|
+
*/
|
|
100
|
+
const score = (entry) => {
|
|
101
|
+
const percent = entry.voting?.upVotePercent ?? 50;
|
|
102
|
+
const votes = entry.voting?.voteCount ?? 0;
|
|
103
|
+
const confidence = votes / (votes + 50);
|
|
104
|
+
return 50 + (percent - 50) * confidence;
|
|
105
|
+
};
|
|
106
|
+
kept.sort((a, b) => score(b) - score(a));
|
|
107
|
+
return { items: kept.slice(0, limit), scanned, total };
|
|
40
108
|
}
|
|
41
109
|
export function registerWorldTools(context) {
|
|
42
110
|
const { bridge } = context;
|
|
@@ -70,11 +138,21 @@ export function registerWorldTools(context) {
|
|
|
70
138
|
"Roblox returns bare grey MeshParts, so a brick wall with a hole cut in " +
|
|
71
139
|
"it would otherwise come back as a grey slab - correct geometry that " +
|
|
72
140
|
"looks like a mistake.\n\n" +
|
|
141
|
+
"`mesh` reads the real triangle and vertex counts of MeshParts, which is " +
|
|
142
|
+
"the only way to tell a 40,000-triangle tree from a 400-triangle one — " +
|
|
143
|
+
"they are identical in the Explorer and in Properties, and the difference " +
|
|
144
|
+
"is whether the place runs on a phone. It also reports mesh size against " +
|
|
145
|
+
"part size: the same triangles stretched over a bigger object is the usual " +
|
|
146
|
+
"reason a model costs more than it looks like it should.\n\n" +
|
|
147
|
+
"`mesh` only works on meshes the signed-in Studio user or the experience " +
|
|
148
|
+
"owner OWNS. Roblox refuses to open anyone else's, so a model inserted " +
|
|
149
|
+
"from the Creator Store cannot be measured this way — the tool says which " +
|
|
150
|
+
"parts were skipped rather than failing the whole batch.\n\n" +
|
|
73
151
|
"`segment` runs Roblox's Cube model and takes tens of seconds; the rest " +
|
|
74
152
|
"are fast. Each call is one undo step.",
|
|
75
153
|
inputSchema: {
|
|
76
154
|
op: z
|
|
77
|
-
.enum(["union", "subtract", "intersect", "fragment", "sweep", "segment"])
|
|
155
|
+
.enum(["union", "subtract", "intersect", "fragment", "sweep", "segment", "mesh"])
|
|
78
156
|
.describe("'union' merges, 'subtract' cuts `with` out of `path`, 'intersect' " +
|
|
79
157
|
"keeps only the overlap, 'fragment' shatters into debris, 'sweep' " +
|
|
80
158
|
"builds a motion volume, 'segment' cuts a mesh into named parts."),
|
|
@@ -176,10 +254,34 @@ export function registerWorldTools(context) {
|
|
|
176
254
|
.boolean()
|
|
177
255
|
.default(false)
|
|
178
256
|
.describe("Return disconnected chunks as separate parts rather than one."),
|
|
257
|
+
paths: z
|
|
258
|
+
.array(z.string())
|
|
259
|
+
.max(50)
|
|
260
|
+
.optional()
|
|
261
|
+
.describe("mesh only: the MeshParts to read geometry from."),
|
|
179
262
|
studioId: z.string().optional().describe("Target Studio; omit for the active one."),
|
|
180
263
|
},
|
|
181
264
|
destructive: true,
|
|
182
265
|
}, async (args) => {
|
|
266
|
+
if (args.op === "mesh") {
|
|
267
|
+
const paths = args.paths ?? (args.path !== undefined ? [args.path] : []);
|
|
268
|
+
if (paths.length === 0) {
|
|
269
|
+
return text('mesh needs `paths` — the MeshParts to read, e.g. ["Workspace.Tree"].');
|
|
270
|
+
}
|
|
271
|
+
const read = await bridge.call("geometry.mesh", { paths },
|
|
272
|
+
// Each part is a separate download-and-open, so a batch of twenty is
|
|
273
|
+
// twenty round trips to Roblox's asset servers.
|
|
274
|
+
{ studioId: args.studioId, timeoutMs: 120_000 });
|
|
275
|
+
if (read.items.length === 0) {
|
|
276
|
+
return text(read.failures.length > 0
|
|
277
|
+
? `Nothing readable:\n ${read.failures.join("\n ")}`
|
|
278
|
+
: "No MeshParts in that list.");
|
|
279
|
+
}
|
|
280
|
+
const rendered = textOf(table(["name", "triangles", "vertices", "meshSize", "partSize", "renderFidelity", "collisionFidelity"], read.items, { more: `${read.totalTriangles} triangles across ${read.items.length} part(s)` }));
|
|
281
|
+
return text(read.failures.length > 0
|
|
282
|
+
? `${rendered}\n\nSkipped:\n ${read.failures.join("\n ")}`
|
|
283
|
+
: rendered);
|
|
284
|
+
}
|
|
183
285
|
// `segment` is GenerationService, not GeometryService - the same job from
|
|
184
286
|
// the caller's side, a different service underneath, and far slower.
|
|
185
287
|
if (args.op === "segment") {
|
|
@@ -261,13 +363,32 @@ export function registerWorldTools(context) {
|
|
|
261
363
|
title: "Creator Store",
|
|
262
364
|
description: "Searches Roblox's Creator Store and inserts models into the place.\n\n" +
|
|
263
365
|
"`search` looks through the same public index Studio's own asset browser " +
|
|
264
|
-
"uses
|
|
265
|
-
"
|
|
266
|
-
"into the place by id.\n\n" +
|
|
366
|
+
"uses. It reports script COUNT, triangles, whether the creator is " +
|
|
367
|
+
"verified, whether the asset is free, and what Roblox thinks it is " +
|
|
368
|
+
"(\"Door/Furniture\"). `insert` puts one into the place by id.\n\n" +
|
|
369
|
+
"Results are ranked by approval WEIGHTED BY vote count, because the raw " +
|
|
370
|
+
"percentage lies: 100% from two voters outranks 82% from five thousand " +
|
|
371
|
+
"unless the count is taken into account. The vote count is shown beside " +
|
|
372
|
+
"the percentage for the same reason.\n\n" +
|
|
373
|
+
"Filters — `excludeScripts`, `maxTriangles`, `verifiedOnly`, `freeOnly`, " +
|
|
374
|
+
"`minVotes` — are applied here, not by Roblox, and several pages are " +
|
|
375
|
+
"fetched to fill the results. Roblox's own sort and creator filters are " +
|
|
376
|
+
"accepted by the endpoint and silently ignored, so they are not offered.\n\n" +
|
|
267
377
|
"ALWAYS check `hasScripts` before inserting. Free models carrying " +
|
|
268
378
|
"scripts are the oldest hazard on the platform, and a model dropped into " +
|
|
269
379
|
"someone's game can run whatever it likes. The insert reports the script " +
|
|
270
380
|
"count again, and names them, so it can still be undone.\n\n" +
|
|
381
|
+
"`peek` is the safer half of that: it loads the asset in memory WITHOUT " +
|
|
382
|
+
"putting it in the place and tells you exactly what is inside — every " +
|
|
383
|
+
"class, every script by name. Nothing is parented, so there is nothing " +
|
|
384
|
+
"to undo. Use it whenever `hasScripts` says YES and the model still " +
|
|
385
|
+
"looks worth having.\n\n" +
|
|
386
|
+
"Audio searches take a different path from everything else here. They go " +
|
|
387
|
+
"to the engine's own audio index, so results carry duration, artist and " +
|
|
388
|
+
"whether the clip is music or a sound effect — the fields that actually " +
|
|
389
|
+
"decide which sound you want. They return SOUND EFFECTS by default; pass " +
|
|
390
|
+
'`audioType: "Music"` for tracks. Filter with `minDuration` / ' +
|
|
391
|
+
"`maxDuration` — a footstep is under a second and a music bed is minutes.\n\n" +
|
|
271
392
|
"Only public assets can be inserted. A private or deleted id fails with " +
|
|
272
393
|
"a message saying so rather than inserting nothing quietly.\n\n" +
|
|
273
394
|
"`bake` is unrelated to the Creator Store and does not upload anything. " +
|
|
@@ -284,8 +405,9 @@ export function registerWorldTools(context) {
|
|
|
284
405
|
"content, which the engine refuses to bake.",
|
|
285
406
|
inputSchema: {
|
|
286
407
|
op: z
|
|
287
|
-
.enum(["search", "insert", "bake"])
|
|
288
|
-
.describe("'search' finds assets, '
|
|
408
|
+
.enum(["search", "peek", "insert", "bake"])
|
|
409
|
+
.describe("'search' finds assets, 'peek' shows what is inside one without " +
|
|
410
|
+
"inserting it, 'insert' adds one to the place, 'bake' makes " +
|
|
289
411
|
"in-memory mesh and image data replicate."),
|
|
290
412
|
keyword: z.string().optional().describe("search only: what to look for, e.g. \"medieval door\"."),
|
|
291
413
|
category: z
|
|
@@ -293,7 +415,58 @@ export function registerWorldTools(context) {
|
|
|
293
415
|
.default("model")
|
|
294
416
|
.describe("search only: what kind of asset. Only models insert as instances."),
|
|
295
417
|
limit: z.number().int().min(1).max(20).default(8).describe("search only: how many results."),
|
|
296
|
-
|
|
418
|
+
excludeScripts: z
|
|
419
|
+
.boolean()
|
|
420
|
+
.default(false)
|
|
421
|
+
.describe("search only: drop every result that contains scripts. The single " +
|
|
422
|
+
"safest filter — a free model's scripts run with your game's full " +
|
|
423
|
+
"permissions."),
|
|
424
|
+
maxTriangles: z
|
|
425
|
+
.number()
|
|
426
|
+
.int()
|
|
427
|
+
.min(1)
|
|
428
|
+
.optional()
|
|
429
|
+
.describe("search only: drop models heavier than this. A prop you place fifty " +
|
|
430
|
+
"times wants to be in the hundreds, not the tens of thousands."),
|
|
431
|
+
verifiedOnly: z
|
|
432
|
+
.boolean()
|
|
433
|
+
.default(false)
|
|
434
|
+
.describe("search only: only results from verified creators."),
|
|
435
|
+
freeOnly: z
|
|
436
|
+
.boolean()
|
|
437
|
+
.default(false)
|
|
438
|
+
.describe("search only: drop paid assets, which cannot just be inserted."),
|
|
439
|
+
minVotes: z
|
|
440
|
+
.number()
|
|
441
|
+
.int()
|
|
442
|
+
.min(0)
|
|
443
|
+
.optional()
|
|
444
|
+
.describe("search only: require at least this many votes. Filters out models " +
|
|
445
|
+
"with a perfect score from three people."),
|
|
446
|
+
minDuration: z
|
|
447
|
+
.number()
|
|
448
|
+
.min(0)
|
|
449
|
+
.optional()
|
|
450
|
+
.describe("audio search only: shortest clip to return, in seconds."),
|
|
451
|
+
maxDuration: z
|
|
452
|
+
.number()
|
|
453
|
+
.min(0)
|
|
454
|
+
.optional()
|
|
455
|
+
.describe("audio search only: longest clip to return, in seconds. Set it to 3 " +
|
|
456
|
+
"or so for effects — otherwise full-length music dominates the results."),
|
|
457
|
+
audioType: z
|
|
458
|
+
.enum(["SoundEffect", "Music"])
|
|
459
|
+
.default("SoundEffect")
|
|
460
|
+
.describe("audio search only. Defaults to SoundEffect, which is what a noise in " +
|
|
461
|
+
'a game is. Ask for "Music" only when you want a track — the engine\'s ' +
|
|
462
|
+
'own default is Music, and it makes "footstep" return three-minute ' +
|
|
463
|
+
"ambient songs with footsteps in the title."),
|
|
464
|
+
assetId: z
|
|
465
|
+
.number()
|
|
466
|
+
.int()
|
|
467
|
+
.positive()
|
|
468
|
+
.optional()
|
|
469
|
+
.describe("insert and peek only: the asset id."),
|
|
297
470
|
parent: z.string().optional().describe("insert only: where to put it. Defaults to Workspace."),
|
|
298
471
|
position: z
|
|
299
472
|
.string()
|
|
@@ -309,28 +482,104 @@ export function registerWorldTools(context) {
|
|
|
309
482
|
},
|
|
310
483
|
destructive: false,
|
|
311
484
|
}, async (args) => {
|
|
485
|
+
if (args.op === "peek") {
|
|
486
|
+
if (!args.assetId)
|
|
487
|
+
return text("peek needs an `assetId`.");
|
|
488
|
+
const inside = await bridge.call("assets.peek", { assetId: args.assetId }, { studioId: args.studioId, timeoutMs: 60_000 });
|
|
489
|
+
const lines = [
|
|
490
|
+
`Asset ${inside.assetId}: ${inside.descendants} instances, nothing inserted.`,
|
|
491
|
+
"",
|
|
492
|
+
`Top level: ${inside.roots.join(", ")}`,
|
|
493
|
+
"",
|
|
494
|
+
textOf(table(["className", "count"], inside.classes)),
|
|
495
|
+
];
|
|
496
|
+
lines.push(inside.scriptCount === 0
|
|
497
|
+
? "\nNo scripts — safe to insert."
|
|
498
|
+
: `\n${inside.scriptCount} script(s), and inserting runs them:\n ` +
|
|
499
|
+
inside.scripts.join("\n ") +
|
|
500
|
+
"\nRead them with `script_read` after inserting, or leave this asset alone.");
|
|
501
|
+
return text(lines.join("\n"));
|
|
502
|
+
}
|
|
503
|
+
if (args.op === "search" && args.category === "audio") {
|
|
504
|
+
if (!args.keyword)
|
|
505
|
+
return text("search needs a `keyword`.");
|
|
506
|
+
const found = await bridge.call("assets.audio", {
|
|
507
|
+
keyword: args.keyword,
|
|
508
|
+
limit: args.limit,
|
|
509
|
+
minDuration: args.minDuration,
|
|
510
|
+
maxDuration: args.maxDuration,
|
|
511
|
+
audioType: args.audioType,
|
|
512
|
+
}, { studioId: args.studioId, timeoutMs: 45_000 });
|
|
513
|
+
if (found.items.length === 0) {
|
|
514
|
+
return text(`No audio matched "${args.keyword}".` +
|
|
515
|
+
(args.minDuration !== undefined || args.maxDuration !== undefined
|
|
516
|
+
? " The duration filter may be too narrow — try it without one."
|
|
517
|
+
: ""));
|
|
518
|
+
}
|
|
519
|
+
return text(textOf(table(["assetId", "title", "artist", "duration", "audioType", "endorsed"], found.items, {
|
|
520
|
+
more: `${found.audioType}s only; duration in seconds; use the assetId as a ` +
|
|
521
|
+
"Sound's SoundId" +
|
|
522
|
+
(found.audioType === "SoundEffect"
|
|
523
|
+
? '. Pass audioType="Music" for tracks.'
|
|
524
|
+
: "."),
|
|
525
|
+
})));
|
|
526
|
+
}
|
|
312
527
|
if (args.op === "search") {
|
|
313
528
|
if (!args.keyword)
|
|
314
529
|
return text("search needs a `keyword`.");
|
|
315
|
-
const found = await searchCreatorStore(args.keyword, args.category, args.limit
|
|
316
|
-
|
|
317
|
-
|
|
530
|
+
const found = await searchCreatorStore(args.keyword, args.category, args.limit, {
|
|
531
|
+
excludeScripts: args.excludeScripts,
|
|
532
|
+
maxTriangles: args.maxTriangles,
|
|
533
|
+
verifiedOnly: args.verifiedOnly,
|
|
534
|
+
freeOnly: args.freeOnly,
|
|
535
|
+
minVotes: args.minVotes,
|
|
536
|
+
});
|
|
537
|
+
if (found.items.length === 0) {
|
|
538
|
+
const filtered = args.excludeScripts || args.verifiedOnly || args.freeOnly || args.maxTriangles || args.minVotes;
|
|
539
|
+
return text(`Nothing matched "${args.keyword}" in ${args.category}s` +
|
|
540
|
+
(filtered
|
|
541
|
+
? `. ${found.scanned} result(s) were checked and every one was filtered out — loosen a filter.`
|
|
542
|
+
: "."));
|
|
318
543
|
}
|
|
319
|
-
const rows = found.map((entry) => ({
|
|
544
|
+
const rows = found.items.map((entry) => ({
|
|
320
545
|
assetId: entry.asset?.id ?? 0,
|
|
321
546
|
name: entry.asset?.name ?? "?",
|
|
322
|
-
creator: entry.creator?.name ?? "?",
|
|
323
|
-
|
|
324
|
-
|
|
547
|
+
creator: (entry.creator?.name ?? "?") + (entry.creator?.isVerifiedCreator ? " ✓" : ""),
|
|
548
|
+
/*
|
|
549
|
+
* Votes shown beside the percentage, never alone. "100%" is what two
|
|
550
|
+
* friends upvoting looks like, and it sorts above a model used by
|
|
551
|
+
* thousands unless the count is on screen next to it.
|
|
552
|
+
*/
|
|
553
|
+
approval: entry.voting?.upVotePercent !== undefined
|
|
554
|
+
? `${entry.voting.upVotePercent}% (${entry.voting.voteCount ?? 0})`
|
|
555
|
+
: "—",
|
|
556
|
+
scripts: entry.asset?.hasScripts ? (entry.asset.scriptCount ?? "yes") : "no",
|
|
325
557
|
triangles: entry.asset?.modelTechnicalDetails?.objectMeshSummary?.triangles ?? "—",
|
|
558
|
+
free: entry.fiatProduct?.isFree === false ? "PAID" : "free",
|
|
559
|
+
kind: (entry.asset?.objectTypes ?? []).join("/") || "—",
|
|
326
560
|
}));
|
|
327
|
-
const risky = rows.filter((row) => row.
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
561
|
+
const risky = rows.filter((row) => row.scripts !== "no");
|
|
562
|
+
const paid = rows.filter((row) => row.free === "PAID");
|
|
563
|
+
const notes = [];
|
|
564
|
+
notes.push(`${found.items.length} shown of ${found.scanned} checked` +
|
|
565
|
+
(found.total !== undefined ? ` (${found.total} exist)` : "") +
|
|
566
|
+
"; ranked by approval weighted by vote count.");
|
|
567
|
+
if (risky.length > 0) {
|
|
568
|
+
notes.push(`${risky.length} contain scripts (${risky.map((r) => r.name).join(", ")}). ` +
|
|
569
|
+
"Inserting one runs whatever its author put in it — use `peek` to read them " +
|
|
570
|
+
"first, or pass excludeScripts.");
|
|
571
|
+
}
|
|
572
|
+
else {
|
|
573
|
+
notes.push("None of these contain scripts.");
|
|
574
|
+
}
|
|
575
|
+
if (paid.length > 0) {
|
|
576
|
+
notes.push(`${paid.length} are PAID and cannot simply be inserted: ${paid
|
|
577
|
+
.map((r) => r.name)
|
|
578
|
+
.join(", ")}.`);
|
|
579
|
+
}
|
|
580
|
+
return text(textOf(table(["assetId", "name", "creator", "approval", "scripts", "triangles", "free", "kind"], rows)) +
|
|
581
|
+
"\n\n" +
|
|
582
|
+
notes.join("\n"));
|
|
334
583
|
}
|
|
335
584
|
if (args.op === "bake") {
|
|
336
585
|
if (!args.paths || args.paths.length === 0) {
|
|
@@ -428,7 +677,12 @@ export function registerWorldTools(context) {
|
|
|
428
677
|
"Groups are not undoable and not scoped to a session: `remove` when one " +
|
|
429
678
|
"was created to try something and is no longer wanted, rather than " +
|
|
430
679
|
"leaving it registered in the place indefinitely. The built-in " +
|
|
431
|
-
"\"Default\" group cannot be removed
|
|
680
|
+
"\"Default\" group cannot be removed.\n\n" +
|
|
681
|
+
"Groups belong to a world, not to the place. The Workspace is the " +
|
|
682
|
+
"default and is what nearly every question is about; a `WorldModel` " +
|
|
683
|
+
"inside a ViewportFrame keeps its own separate registry, so pass " +
|
|
684
|
+
"`worldModel` to reach that one. A group of the same name in each is " +
|
|
685
|
+
"two different groups.",
|
|
432
686
|
inputSchema: {
|
|
433
687
|
action: z
|
|
434
688
|
.enum(["list", "create", "assign", "collidable", "remove"])
|
|
@@ -447,6 +701,13 @@ export function registerWorldTools(context) {
|
|
|
447
701
|
.boolean()
|
|
448
702
|
.default(true)
|
|
449
703
|
.describe("collidable only: whether the two groups collide. False makes them pass through."),
|
|
704
|
+
worldModel: z
|
|
705
|
+
.string()
|
|
706
|
+
.optional()
|
|
707
|
+
.describe("Path to a WorldModel whose own collision groups this call is " +
|
|
708
|
+
"about, e.g. \"StarterGui.Preview.Viewport.WorldModel\". Omit " +
|
|
709
|
+
"for the Workspace, which is what you want unless the parts in " +
|
|
710
|
+
"question live inside a ViewportFrame."),
|
|
450
711
|
studioId: z.string().optional().describe("Target Studio; omit for the active one."),
|
|
451
712
|
},
|
|
452
713
|
destructive: false,
|
|
@@ -457,12 +718,24 @@ export function registerWorldTools(context) {
|
|
|
457
718
|
paths: args.paths,
|
|
458
719
|
with: args.with,
|
|
459
720
|
collidable: args.collidable,
|
|
721
|
+
worldModel: args.worldModel,
|
|
460
722
|
}, { studioId: args.studioId });
|
|
461
723
|
if (args.action === "list") {
|
|
462
724
|
const groups = response.groups ?? [];
|
|
725
|
+
const where = response.world ?? "Workspace";
|
|
463
726
|
if (groups.length === 0)
|
|
464
|
-
return text(
|
|
465
|
-
return text(textOf(table(["name", "mask"], groups)
|
|
727
|
+
return text(`No collision groups are registered in ${where}.`);
|
|
728
|
+
return text(textOf(table(["name", "passes through", "mask"], groups.map((group) => ({
|
|
729
|
+
name: group.name,
|
|
730
|
+
"passes through": group.passesThrough ?? "?",
|
|
731
|
+
mask: group.mask,
|
|
732
|
+
})), {
|
|
733
|
+
// The ceiling is low enough to hit, and a caller registering
|
|
734
|
+
// groups in a loop has no other way to find out where it is.
|
|
735
|
+
more: response.max === undefined
|
|
736
|
+
? where
|
|
737
|
+
: `${where}: ${groups.length} of ${response.max} groups used`,
|
|
738
|
+
})));
|
|
466
739
|
}
|
|
467
740
|
return json(response);
|
|
468
741
|
});
|
package/dist/tools/world.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world.js","sourceRoot":"","sources":["../../src/tools/world.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"world.js","sourceRoot":"","sources":["../../src/tools/world.ts"],"names":[],"mappings":"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"}
|