-- Roblox 客户端性能优化与 FPS 提升脚本 -- 目标:降级 Lighting 渲染、强制锁定画质 Level 1,削减 GPU/CPU 负担 local Lighting = game:GetService("Lighting") local UserSettings = UserSettings():GetService("UserGameSettings") local RenderingSettings = settings().Rendering -------------------------------------------------------------------- -- 1. 强制锁死画质等级为 Level 1(忽略并覆盖用户的修改) -------------------------------------------------------------------- local function lockQualityToLevel1() pcall(function() RenderingSettings.QualityLevel = Enum.QualityLevel.Level01 UserSettings.SavedQualityLevel = Enum.SavedQualityLevel.QualityLevel1 end) end -- 立即执行一次画质重置 lockQualityToLevel1() -- 监听画质变更事件,防止玩家在设置菜单中手动修改画质 UserSettings:GetPropertyChangedSignal("SavedQualityLevel"):Connect(lockQualityToLevel1) pcall(function() RenderingSettings:GetPropertyChangedSignal("QualityLevel"):Connect(lockQualityToLevel1) end) -------------------------------------------------------------------- -- 2. Lighting 光照与风格优化 -------------------------------------------------------------------- pcall(function() -- 1) 设置光照风格为 Soft (扁平化光照,关闭高阶法线与高精度动态阴影计算) Lighting.LightingStyle = Enum.LightingStyle.Soft -- 2) 设置光照技术为 Compatibility (兼容/支持模式) local success = pcall(function() Lighting.Technology = Enum.Technology.Compatibility end) if not success then -- 若引擎或场景限制不支持 Compatibility,退回最省资源的 Voxel (体素光照) Lighting.Technology = Enum.Technology.Voxel end -- 3) 关闭全局阴影计算 Lighting.GlobalShadows = false -- 4) 禁用 Lighting 下的所有后期特效 (Bloom, Blur, DepthOfField, SunRays 等) for _, effect in ipairs(Lighting:GetChildren()) do if effect:IsA("PostEffect") then effect.Enabled = false end end end) -------------------------------------------------------------------- -- 3. 场景物体与粒子渲染削减(进一步降低 CPU/GPU 开销) -------------------------------------------------------------------- local function optimizeInstance(inst) if inst:IsA("BasePart") then inst.CastShadow = false -- 禁用场景物体的单个投影计算 elseif inst:IsA("ParticleEmitter") or inst:IsA("Trail") or inst:IsA("Smoke") or inst:IsA("Fire") then inst.Enabled = false -- 禁用粒子与尾迹渲染 end end -- 清理当前地图所有物体 for _, obj in ipairs(workspace:GetDescendants()) do optimizeInstance(obj) end -- 监听后续动态生成的物体 workspace.DescendantAdded:Connect(optimizeInstance)