@chrrxs/robloxstudio-mcp-inspector 3.1.5 → 3.1.6

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chrrxs/robloxstudio-mcp-inspector",
3
- "version": "3.1.5",
3
+ "version": "3.1.6",
4
4
  "description": "DataModel read-only MCP server for inspecting and debugging Roblox Studio from AI coding tools",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -1942,9 +1942,9 @@ local function computeBridgeStamp()
1942
1942
  for i = 1, #combined do
1943
1943
  h = (h * 33 + (string.byte(combined, i))) % 2147483647
1944
1944
  end
1945
- -- "3.1.5" is replaced with the package version at package time
1945
+ -- "3.1.6" is replaced with the package version at package time
1946
1946
  -- (scripts/build-plugin.mjs injectVersion), so a release bump also restamps.
1947
- return `{tostring(h)}-3.1.5`
1947
+ return `{tostring(h)}-3.1.6`
1948
1948
  end
1949
1949
  local BRIDGE_STAMP = computeBridgeStamp()
1950
1950
  local function setSource(scriptInst, source)
@@ -3700,7 +3700,9 @@ local function showMarkers(captureId)
3700
3700
  local gui = Instance.new("ScreenGui")
3701
3701
  gui.Name = MARKER_GUI_NAME
3702
3702
  gui.IgnoreGuiInset = true
3703
- gui.ScreenInsets = Enum.ScreenInsets.None
3703
+ -- Camera.ViewportSize reports the device safe area, so markers must bound it too.
3704
+ gui.ScreenInsets = Enum.ScreenInsets.DeviceSafeInsets
3705
+ gui.SafeAreaCompatibility = Enum.SafeAreaCompatibility.None
3704
3706
  gui.DisplayOrder = 2147483647
3705
3707
  gui.ResetOnSpawn = false
3706
3708
  gui.ZIndexBehavior = Enum.ZIndexBehavior.Global
@@ -6596,6 +6598,7 @@ local Recording = TS.import(script, script.Parent.Parent, "Recording")
6596
6598
  local _binding = Utils
6597
6599
  local getInstanceByPath = _binding.getInstanceByPath
6598
6600
  local convertPropertyValue = _binding.convertPropertyValue
6601
+ local applyScriptSource = _binding.applyScriptSource
6599
6602
  local _binding_1 = Recording
6600
6603
  local beginRecording = _binding_1.beginRecording
6601
6604
  local finishRecording = _binding_1.finishRecording
@@ -6623,7 +6626,12 @@ local function setProperties(requestData)
6623
6626
  for propName, propValue in pairs(properties) do
6624
6627
  local success, err = pcall(function()
6625
6628
  if propName == "Parent" or propName == "PrimaryPart" then
6626
- if type(propValue) == "string" then
6629
+ if not (type(propValue) == "string") then
6630
+ error(`{propName} must be an instance path string (or an empty string to clear)`)
6631
+ end
6632
+ if propValue == "" then
6633
+ inst[propName] = nil
6634
+ else
6627
6635
  local refInstance = getInstanceByPath(propValue)
6628
6636
  if not refInstance then
6629
6637
  error(`{propName} reference not found: {propValue}`)
@@ -6633,7 +6641,17 @@ local function setProperties(requestData)
6633
6641
  elseif propName == "Name" then
6634
6642
  instance.Name = tostring(propValue)
6635
6643
  elseif propName == "Source" and instance:IsA("LuaSourceContainer") then
6636
- instance.Source = tostring(propValue)
6644
+ if not (type(propValue) == "string") then
6645
+ error("Source must be a string")
6646
+ end
6647
+ local result = applyScriptSource(instance, propValue)
6648
+ if not result.success then
6649
+ local _condition = result.error
6650
+ if _condition == nil then
6651
+ _condition = "Script source update failed"
6652
+ end
6653
+ error(_condition)
6654
+ end
6637
6655
  else
6638
6656
  local converted = convertPropertyValue(instance, propName, propValue)
6639
6657
  inst[propName] = if converted ~= nil then converted else propValue
@@ -10842,7 +10860,7 @@ return {
10842
10860
  <Properties>
10843
10861
  <string name="Name">State</string>
10844
10862
  <string name="Source"><![CDATA[-- Compiled with roblox-ts v3.0.0
10845
- local CURRENT_VERSION = "3.1.5"
10863
+ local CURRENT_VERSION = "3.1.6"
10846
10864
  local PLUGIN_VARIANT = "inspector"
10847
10865
  local BASE_PORT = 58741
10848
10866
  local SENSITIVE_DIAGNOSTIC_TERMS = { "token", "authorization", "bearer", "password", "cookie", "secret" }
@@ -13558,11 +13576,13 @@ local function convertPropertyValue(instance, propertyName, propertyValue)
13558
13576
  if propertyName == "BrickColor" then
13559
13577
  return BrickColor.new(propertyValue)
13560
13578
  end
13561
- if propertyValue == "true" then
13562
- return true
13563
- end
13564
- if propertyValue == "false" then
13565
- return false
13579
+ if success and typeof(currentVal) == "boolean" then
13580
+ if propertyValue == "true" then
13581
+ return true
13582
+ end
13583
+ if propertyValue == "false" then
13584
+ return false
13585
+ end
13566
13586
  end
13567
13587
  end
13568
13588
  return propertyValue