@el4cteo/rbx-studio-mcp 0.4.2 → 0.4.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.
Files changed (38) hide show
  1. package/README.md +211 -211
  2. package/dist/bridge/api.js +3 -0
  3. package/dist/bridge/api.js.map +1 -1
  4. package/dist/bridge/failover.js +13 -0
  5. package/dist/bridge/failover.js.map +1 -1
  6. package/dist/bridge/remote.js +15 -1
  7. package/dist/bridge/remote.js.map +1 -1
  8. package/dist/bridge/rpc.js +35 -6
  9. package/dist/bridge/rpc.js.map +1 -1
  10. package/dist/bridge/server.js +55 -7
  11. package/dist/bridge/server.js.map +1 -1
  12. package/dist/doctor.js +160 -0
  13. package/dist/doctor.js.map +1 -0
  14. package/dist/index.js +29 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/lib/protocol.js.map +1 -1
  17. package/dist/tools/exec.js +53 -3
  18. package/dist/tools/exec.js.map +1 -1
  19. package/dist/tools/generate.js +120 -0
  20. package/dist/tools/generate.js.map +1 -0
  21. package/dist/tools/scripts.js +20 -1
  22. package/dist/tools/scripts.js.map +1 -1
  23. package/dist/tools/world.js +203 -20
  24. package/dist/tools/world.js.map +1 -1
  25. package/package.json +2 -1
  26. package/plugin/src/Config.luau +1 -1
  27. package/plugin/src/Console.luau +233 -9
  28. package/plugin/src/Transport.luau +6 -1
  29. package/plugin/src/Visuals.luau +52 -1
  30. package/plugin/src/handlers/Assets.luau +352 -145
  31. package/plugin/src/handlers/Generate.luau +386 -0
  32. package/plugin/src/handlers/Geometry.luau +170 -0
  33. package/plugin/src/handlers/Scripts.luau +79 -1
  34. package/plugin/src/handlers/Viewport.luau +416 -302
  35. package/plugin/src/handlers/World.luau +15 -5
  36. package/plugin/src/init.server.luau +725 -674
  37. package/scripts/test-bridge.mjs +56 -0
  38. package/scripts/test-failover.mjs +136 -95
@@ -16,7 +16,17 @@
16
16
  ]]
17
17
 
18
18
  local ChangeHistoryService = game:GetService("ChangeHistoryService")
19
- local PhysicsService = game:GetService("PhysicsService")
19
+
20
+ --[[
21
+ Collision groups are read and written through the Workspace, not PhysicsService.
22
+
23
+ Roblox moved collision group management onto WorldRoot in September 2026 and
24
+ deprecated the PhysicsService methods in the same announcement. Both still
25
+ work today -- checked against Studio 0.737 -- so this is a migration ahead of
26
+ a removal rather than a fix. The move also means a WorldModel gets its own
27
+ groups instead of sharing the Workspace's, which is the point of it.
28
+ ]]
29
+ local CollisionGroups = workspace
20
30
 
21
31
  local Dispatch = require(script.Parent.Parent.Dispatch)
22
32
  local Paths = require(script.Parent.Parent.Paths)
@@ -95,7 +105,7 @@ function World.collision(params: { [string]: any }): { [string]: any }
95
105
  if action == "list" then
96
106
  local groups: { { [string]: any } } = {}
97
107
  local ok, registered = pcall(function()
98
- return PhysicsService:GetRegisteredCollisionGroups()
108
+ return CollisionGroups:GetRegisteredCollisionGroups()
99
109
  end)
100
110
  if ok and typeof(registered) == "table" then
101
111
  for _, group in registered :: { any } do
@@ -112,7 +122,7 @@ function World.collision(params: { [string]: any }): { [string]: any }
112
122
 
113
123
  if action == "create" then
114
124
  local ok, err = pcall(function()
115
- PhysicsService:RegisterCollisionGroup(name)
125
+ CollisionGroups:RegisterCollisionGroup(name)
116
126
  end)
117
127
  if not ok then
118
128
  -- Already existing is the common case and is not a failure worth
@@ -158,7 +168,7 @@ function World.collision(params: { [string]: any }): { [string]: any }
158
168
  has existed the whole time; it was just never wired up.
159
169
  ]]
160
170
  local ok, err = pcall(function()
161
- PhysicsService:UnregisterCollisionGroup(name)
171
+ CollisionGroups:UnregisterCollisionGroup(name)
162
172
  end)
163
173
  if not ok then
164
174
  Dispatch.fail("COLLISION_FAILED", string.format("Could not remove %q: %s", name, tostring(err)))
@@ -173,7 +183,7 @@ function World.collision(params: { [string]: any }): { [string]: any }
173
183
  end
174
184
  local collidable = params.collidable ~= false
175
185
  local ok, err = pcall(function()
176
- PhysicsService:CollisionGroupSetCollidable(name, other, collidable)
186
+ CollisionGroups:CollisionGroupSetCollidable(name, other, collidable)
177
187
  end)
178
188
  if not ok then
179
189
  Dispatch.fail("COLLISION_FAILED", string.format("Could not set collidability: %s", tostring(err)))