JIT
XRay script for Roblox with extended range
-- XRay Script for Roblox (Educational Purpose) -- Place this LocalScript in StarterPlayerScripts. -- This script makes buildings/parts semi-transparent to see through walls -- Press X to toggle XRay mode local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer -- Settings local XRayKey = Enum.KeyCode.X local TransparencyAmount = 0.7 -- 0 = fully visible, 1 = fully transparent local RefreshRate = 0.5 -- seconds between updates local MaxDistance = 100 -- studs from player to affect parts local ExcludedNames = {"Terrain", "BasePlate"} -- Parts to exclude from XRay -- State local xRayEnabled = false local originalTransparency = {} local lastUpdate = 0 -- Helper: check if part should be excluded local function shouldExcludePart(part) for _, name in ipairs(ExcludedNames) do if part.Name == name then return true end end return false end -- Helper: get all parts within range of player local function getPartsInRange() local parts = {} local character = LocalPlayer.Character if not character then return parts end local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return parts end local playerPosition = humanoidRootPart.Position for _, part in ipairs(Workspace:GetDescendants()) do if part:IsA("BasePart") and not shouldExcludePart(part) then local distance = (part.Position - playerPosition).Magnitude if distance <= MaxDistance then table.insert(parts, part) end end end return parts end -- Enable XRay: make parts semi-transparent local function enableXRay() local parts = getPartsInRange() for _, part in ipairs(parts) do if not originalTransparency[part] then originalTransparency[part] = part.Transparency end part.Transparency = TransparencyAmount end xRayEnabled = true print("XRay Enabled - Parts made semi-transparent") end -- Disable XRay: restore original transparency local function disableXRay() for part, transparency in pairs(originalTransparency) do if part.Parent then -- Make sure part still exists part.Transparency = transparency end end originalTransparency = {} xRayEnabled = false print("XRay Disabled - Transparency restored") end -- Toggle XRay with X key UserInputService.InputBegan:Connect(function(input, gameProcessedEvent) if gameProcessedEvent then return end if input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode == XRayKey then if xRayEnabled then disableXRay() else enableXRay() end end end) -- Periodic update to maintain XRay effect and handle moving parts RunService.Heartbeat:Connect(function(step) if not xRayEnabled then return end lastUpdate = lastUpdate + step if lastUpdate >= RefreshRate then lastUpdate = 0 -- Update transparency for existing parts local parts = getPartsInRange() for _, part in ipairs(parts) do if not originalTransparency[part] then originalTransparency[part] = part.Transparency end part.Transparency = TransparencyAmount end -- Clean up references to destroyed parts for part in pairs(originalTransparency) do if not part.Parent then originalTransparency[part] = nil end end end end) -- Clean up when script is destroyed script.Destroying:Connect(function() if xRayEnabled then disableXRay() end end) make this script better that it works from 2500 studs away, it makes the terrain the parts/buildings transparent, and it removes stuff like: grass, fog, stuff like that. this is educational purposes only
Write file
Enhanced XRay script with extended range and effects removal
v1