-- DIMST :: local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") local UserInputService = game:GetService("UserInputService") local lp = Players.LocalPlayer local Settings = { NippleColor = BrickColor.new("Persimmon"), ZoomDistance = 15, TitsEnabled = true, HeadTransparencyEnabled = true, SpreadEnabled = true, BreastSize = Vector3.new(1.25, 1.25, 1.45), SpringStiffness = 42, SpringDamping = 6.5, MaxForce = 7000, MaxSquish = 0.25, SquishSpeed = 18, RecoverSpeed = 8, DetectDistance = 1.35, RestOffsetRight = CFrame.new(0.52, 0.15, -0.72), RestOffsetLeft = CFrame.new(-0.52, 0.15, -0.72), HandPushForce = 22, HandPushDistance = 1.35, SwayStrength = 1.0, } local gui = nil local headConnections = {} local squishConnections = {} local followConnections = {} local processedChars = {} -- ===== GUI ===== local function createGUI() if gui then gui:Destroy() end local screenGui = Instance.new("ScreenGui") screenGui.Name = "TitsGUI" screenGui.ResetOnSpawn = false screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screenGui.Parent = lp:WaitForChild("PlayerGui") gui = screenGui local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 310, 0, 580) frame.Position = UDim2.new(0, 15, 0, 15) frame.BackgroundColor3 = Color3.fromRGB(22, 22, 22) frame.BackgroundTransparency = 0.08 frame.BorderSizePixel = 0 frame.Active = true frame.Parent = screenGui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = frame local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 38) title.BackgroundColor3 = Color3.fromRGB(35, 35, 35) title.BackgroundTransparency = 0.3 title.Text = "DIMSTAT JELLY v3.17 (drag me)" title.TextColor3 = Color3.fromRGB(255, 130, 160) title.TextScaled = true title.Font = Enum.Font.GothamBold title.Parent = frame local titleCorner = Instance.new("UICorner") titleCorner.CornerRadius = UDim.new(0, 8) titleCorner.Parent = title local dragging, dragStart, startPos = false, nil, nil title.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = frame.Position end end) title.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end) UserInputService.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) local function makeButton(text, y, color) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.9, 0, 0, 32) btn.Position = UDim2.new(0.05, 0, 0, y) btn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) btn.Text = text btn.TextColor3 = color or Color3.new(1, 1, 1) btn.TextScaled = true btn.Font = Enum.Font.Gotham btn.Parent = frame local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 6) c.Parent = btn return btn end local function makeLabel(text, y) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(0.9, 0, 0, 18) lbl.Position = UDim2.new(0.05, 0, 0, y) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.TextColor3 = Color3.fromRGB(220, 220, 220) lbl.TextScaled = true lbl.Font = Enum.Font.Gotham lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = frame return lbl end local toggleBtn = makeButton("TITS: ON", 45, Color3.new(0, 1, 0)) toggleBtn.MouseButton1Click:Connect(function() Settings.TitsEnabled = not Settings.TitsEnabled toggleBtn.Text = Settings.TitsEnabled and "TITS: ON" or "TITS: OFF" toggleBtn.TextColor3 = Settings.TitsEnabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0) refreshAll() end) local undressBtn = makeButton("UNDRESS ALL", 82, Color3.new(1, 1, 0)) local isNude = true undressBtn.MouseButton1Click:Connect(function() isNude = not isNude undressBtn.Text = isNude and "DRESS ALL" or "UNDRESS ALL" undressBtn.TextColor3 = isNude and Color3.new(0, 1, 0) or Color3.new(1, 1, 0) refreshAll() end) local headBtn = makeButton("HEAD: TRANSPARENT", 119, Color3.new(0, 1, 0)) headBtn.MouseButton1Click:Connect(function() Settings.HeadTransparencyEnabled = not Settings.HeadTransparencyEnabled headBtn.Text = Settings.HeadTransparencyEnabled and "HEAD: TRANSPARENT" or "HEAD: VISIBLE" headBtn.TextColor3 = Settings.HeadTransparencyEnabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0) end) local spreadBtn = makeButton("SPREAD ON POLES: ON", 156, Color3.new(0, 1, 0)) spreadBtn.MouseButton1Click:Connect(function() Settings.SpreadEnabled = not Settings.SpreadEnabled spreadBtn.Text = Settings.SpreadEnabled and "SPREAD ON POLES: ON" or "SPREAD ON POLES: OFF" spreadBtn.TextColor3 = Settings.SpreadEnabled and Color3.new(0, 1, 0) or Color3.new(1, 0, 0) end) makeLabel("—— SETTINGS ——", 198) local sizeLabel = makeLabel("Size: 1.25", 220) local sizeBtn = makeButton("- Size +", 240) sizeBtn.MouseButton1Click:Connect(function() local sizes = {0.95, 1.10, 1.25, 1.40, 1.55, 1.70} local cur = Settings.BreastSize.X local idx = 3 for i, v in ipairs(sizes) do if math.abs(v - cur) < 0.02 then idx = i break end end idx = idx % #sizes + 1 local s = sizes[idx] Settings.BreastSize = Vector3.new(s, s, s + 0.2) sizeLabel.Text = "Size: " .. string.format("%.2f", s) refreshAll() end) local softLabel = makeLabel("Softness: 42", 280) local softBtn = makeButton("- Softness +", 300) softBtn.MouseButton1Click:Connect(function() local vals = {30, 42, 55, 75, 100, 140} local idx = table.find(vals, Settings.SpringStiffness) or 2 idx = idx % #vals + 1 Settings.SpringStiffness = vals[idx] softLabel.Text = "Softness: " .. Settings.SpringStiffness refreshAll() end) local swayLabel = makeLabel("Sway Strength: 1.0", 340) local swayBtn = makeButton("- Sway Strength +", 360) swayBtn.MouseButton1Click:Connect(function() local vals = {0.6, 0.8, 1.0, 1.4, 1.8, 2.4} local idx = 3 for i, v in ipairs(vals) do if math.abs(v - Settings.SwayStrength) < 0.05 then idx = i break end end idx = idx % #vals + 1 Settings.SwayStrength = vals[idx] swayLabel.Text = "Sway Strength: " .. string.format("%.1f", Settings.SwayStrength) end) local squishLabel = makeLabel("Squish Strength: 0.25", 400) local squishBtn = makeButton("- Squish Strength +", 420) squishBtn.MouseButton1Click:Connect(function() local vals = {0.15, 0.20, 0.25, 0.32, 0.40, 0.50} local idx = 3 for i, v in ipairs(vals) do if math.abs(v - Settings.MaxSquish) < 0.01 then idx = i break end end idx = idx % #vals + 1 Settings.MaxSquish = vals[idx] squishLabel.Text = "Squish Strength: " .. string.format("%.2f", Settings.MaxSquish) end) local speedLabel = makeLabel("Squish Speed: 18", 460) local speedBtn = makeButton("- Squish Speed +", 480) speedBtn.MouseButton1Click:Connect(function() local vals = {10, 14, 18, 24, 32} local idx = table.find(vals, Settings.SquishSpeed) or 3 idx = idx % #vals + 1 Settings.SquishSpeed = vals[idx] speedLabel.Text = "Squish Speed: " .. Settings.SquishSpeed end) local distLabel = makeLabel("Head Distance: 15", 520) local distBtn = makeButton("- Head Distance +", 540) distBtn.MouseButton1Click:Connect(function() local distances = {5, 10, 15, 20, 25, 30} local idx = table.find(distances, Settings.ZoomDistance) or 3 idx = idx % #distances + 1 Settings.ZoomDistance = distances[idx] distLabel.Text = "Head Distance: " .. Settings.ZoomDistance end) end local function removeClothes(char) if not char then return end for _, child in ipairs(char:GetChildren()) do pcall(function() if child:IsA("Shirt") or child:IsA("Pants") or child:IsA("ShirtGraphic") then child:Destroy() end end) end for _, part in ipairs(char:GetDescendants()) do if part:IsA("BasePart") and part.Name ~= "Head" then for _, child in ipairs(part:GetChildren()) do pcall(function() if child:IsA("Decal") or child:IsA("Texture") then child:Destroy() end end) end end end end local function getHandParts(character) local hands = {} for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") then local name = part.Name:lower() if name:find("hand") or name:find("arm") or name:find("palm") or name:find("wrist") then table.insert(hands, part) end end end return hands end local function addTits(char) if not char or not char.Parent then return end local torso = char:FindFirstChild("UpperTorso") or char:FindFirstChild("Torso") if not torso then return end local old = char:FindFirstChild("Tits") if old then old:Destroy() end if squishConnections[char] then pcall(function() squishConnections[char]:Disconnect() end) squishConnections[char] = nil end if followConnections[char] then pcall(function() followConnections[char]:Disconnect() end) followConnections[char] = nil end local model = Instance.new("Model") model.Name = "Tits" model.Parent = char local skinColor = torso.BrickColor local isLocal = (char == lp.Character) local breasts = {} local function createBreast(offsetCFrame, name) local breast = Instance.new("Part") breast.Name = name breast.Size = Settings.BreastSize breast.Shape = Enum.PartType.Ball breast.Material = Enum.Material.SmoothPlastic breast.BrickColor = skinColor breast.Anchored = false breast.Massless = true breast.CanCollide = false breast.CanQuery = false breast.CanTouch = true breast.CustomPhysicalProperties = PhysicalProperties.new(0.35, 0.5, 0.5, 1, 1) breast.Parent = model local nipple = Instance.new("Part") nipple.Name = name .. "_Nipple" nipple.Size = Vector3.new(0.26, 0.26, 0.26) nipple.Shape = Enum.PartType.Ball nipple.Material = Enum.Material.SmoothPlastic nipple.BrickColor = Settings.NippleColor nipple.Anchored = false nipple.CanCollide = false nipple.Massless = true nipple.Parent = model local weldNipple = Instance.new("Weld") weldNipple.Part0 = breast weldNipple.Part1 = nipple weldNipple.C0 = CFrame.new(0, 0, -Settings.BreastSize.Z * 0.46) weldNipple.Parent = nipple if isLocal then local att0 = Instance.new("Attachment") att0.CFrame = offsetCFrame att0.Parent = torso local att1 = Instance.new("Attachment") att1.Parent = breast local ball = Instance.new("BallSocketConstraint") ball.Attachment0 = att0 ball.Attachment1 = att1 ball.LimitsEnabled = true ball.UpperAngle = 38 ball.TwistLimitsEnabled = true ball.TwistLowerAngle = -28 ball.TwistUpperAngle = 28 ball.Parent = breast local spring = Instance.new("SpringConstraint") spring.Attachment0 = att0 spring.Attachment1 = att1 spring.Stiffness = Settings.SpringStiffness spring.Damping = Settings.SpringDamping spring.FreeLength = 0.09 spring.MaxForce = Settings.MaxForce spring.Parent = breast local attOri0 = Instance.new("Attachment") attOri0.CFrame = offsetCFrame attOri0.Parent = torso local attOri1 = Instance.new("Attachment") attOri1.Parent = breast local align = Instance.new("AlignOrientation") align.Attachment0 = attOri1 align.Attachment1 = attOri0 align.RigidityEnabled = false align.Responsiveness = 18 align.MaxTorque = 6500 align.Parent = breast end breast.CFrame = torso.CFrame * offsetCFrame table.insert(breasts, { part = breast, offset = offsetCFrame, baseSize = Settings.BreastSize, currentSquish = 1, weld = weldNipple, jiggleX = 0, jiggleY = 0, jiggleZ = 0, spread = 0 }) end createBreast(Settings.RestOffsetRight, "RightTit") createBreast(Settings.RestOffsetLeft, "LeftTit") local lastTorsoCF = torso.CFrame local lastTorsoPos = torso.Position local handParts = isLocal and getHandParts(char) or {} local followConn = RunService.RenderStepped:Connect(function(dt) if not char.Parent or not model.Parent or not torso.Parent then if followConnections[char] then pcall(function() followConnections[char]:Disconnect() end) followConnections[char] = nil end return end local currentCF = torso.CFrame local currentPos = torso.Position local deltaCF = currentCF * lastTorsoCF:Inverse() local rx, ry, rz = deltaCF:ToEulerAnglesYXZ() local moveDelta = (currentPos - lastTorsoPos) / math.max(dt, 0.001) local speed = moveDelta.Magnitude lastTorsoCF = currentCF lastTorsoPos = currentPos local strength = Settings.SwayStrength for i, data in ipairs(breasts) do if data.part and data.part.Parent then local side = (i == 1) and 1 or -1 -- Сильное шатание local targetX = math.clamp(ry * 2.2 * strength, -0.45, 0.45) local targetZ = math.clamp(ry * 1.5 * strength, -0.35, 0.35) local targetY = math.clamp(speed * 0.008 * strength, -0.22, 0.22) -- Быстрое сглаживание local smooth = math.min(1, dt * 14) data.jiggleX = data.jiggleX + (targetX - data.jiggleX) * smooth data.jiggleY = data.jiggleY + (targetY - data.jiggleY) * smooth data.jiggleZ = data.jiggleZ + (targetZ - data.jiggleZ) * smooth -- Медленное затухание (чтобы дольше качалось) data.jiggleX = data.jiggleX * (1 - dt * 2.1) data.jiggleY = data.jiggleY * (1 - dt * 2.6) data.jiggleZ = data.jiggleZ * (1 - dt * 2.1) if not isLocal then local spreadOffset = CFrame.new(data.spread * side * 0.7, 0, 0) data.part.CFrame = currentCF * data.offset * spreadOffset * CFrame.Angles(data.jiggleY, data.jiggleX * 0.5, data.jiggleZ) end end end end) followConnections[char] = followConn local params = RaycastParams.new() params.FilterType = Enum.RaycastFilterType.Exclude params.FilterDescendantsInstances = {char, model} local squishConn = RunService.Heartbeat:Connect(function(dt) if not char.Parent or not model.Parent then if squishConnections[char] then pcall(function() squishConnections[char]:Disconnect() end) squishConnections[char] = nil end return end -- Толчок руками if isLocal and #handParts > 0 then for _, data in ipairs(breasts) do local breast = data.part if breast and breast.Parent then for _, hand in ipairs(handParts) do if hand and hand.Parent then local dist = (breast.Position - hand.Position).Magnitude if dist < Settings.HandPushDistance then local dir = (breast.Position - hand.Position).Unit local force = (1 - dist / Settings.HandPushDistance) * Settings.HandPushForce breast.AssemblyLinearVelocity = breast.AssemblyLinearVelocity + dir * force end end end end end end -- ===== Улучшенный SPREAD ===== local leftB = breasts[2] and breasts[2].part local rightB = breasts[1] and breasts[1].part local spreadTarget = 0 if Settings.SpreadEnabled and leftB and rightB and leftB.Parent and rightB.Parent then local dir = rightB.Position - leftB.Position local dist = dir.Magnitude if dist > 0.15 then local ray = Workspace:Raycast(leftB.Position, dir.Unit * dist, params) if ray then spreadTarget = 0.75 end end end for i, data in ipairs(breasts) do local breast = data.part if not breast or not breast.Parent then continue end data.spread = data.spread + (spreadTarget - data.spread) * math.min(1, dt * 6) -- Сжатие от стен local origin = breast.Position local cf = breast.CFrame local directions = { cf.LookVector, (cf.LookVector + cf.RightVector * 0.35).Unit, (cf.LookVector - cf.RightVector * 0.35).Unit, (cf.LookVector + cf.UpVector * 0.2).Unit, (cf.LookVector - cf.UpVector * 0.2).Unit, } local closest = Settings.DetectDistance for _, dir in ipairs(directions) do local ray = Workspace:Raycast(origin, dir * Settings.DetectDistance, params) if ray then local d = (ray.Position - origin).Magnitude if d < closest then closest = d end end end local targetSquish = 1 if closest < Settings.DetectDistance then local factor = 1 - (closest / Settings.DetectDistance) factor = factor ^ 0.65 targetSquish = 1 - (factor * (1 - Settings.MaxSquish)) end if targetSquish < data.currentSquish then data.currentSquish = math.max(targetSquish, data.currentSquish - Settings.SquishSpeed * dt) else data.currentSquish = math.min(1, data.currentSquish + Settings.RecoverSpeed * dt) end local s = data.currentSquish breast.Size = Vector3.new( data.baseSize.X * (1 + (1 - s) * 0.30), data.baseSize.Y * (1 + (1 - s) * 0.26), data.baseSize.Z * s ) data.weld.C0 = CFrame.new(0, 0, -breast.Size.Z * 0.46) -- Spread для локального if isLocal and data.spread > 0.04 then local side = (i == 1) and 1 or -1 local push = torso.CFrame.RightVector * side * data.spread * 26 breast.AssemblyLinearVelocity = breast.AssemblyLinearVelocity + push * dt * 55 end end end) squishConnections[char] = squishConn processedChars[char] = true end local function setupHeadTransparency(char) if not char then return end local head = char:FindFirstChild("Head") if not head then return end if headConnections[char] then pcall(function() headConnections[char]:Disconnect() end) headConnections[char] = nil end local camera = Workspace.CurrentCamera local conn = RunService.RenderStepped:Connect(function() if not char.Parent or not Settings.HeadTransparencyEnabled then head.Transparency = 0 return end local dist = (head.Position - camera.CFrame.Position).Magnitude head.Transparency = dist < Settings.ZoomDistance and 1 or 0 end) headConnections[char] = conn end local function applyToCharacter(char) if not char or not char:FindFirstChildOfClass("Humanoid") then return end task.wait(0.3) removeClothes(char) if Settings.TitsEnabled then addTits(char) end setupHeadTransparency(char) end function refreshAll() for char in pairs(processedChars) do if char and char.Parent then local model = char:FindFirstChild("Tits") if model then model:Destroy() end if squishConnections[char] then pcall(function() squishConnections[char]:Disconnect() end) end if followConnections[char] then pcall(function() followConnections[char]:Disconnect() end) end end end processedChars = {} squishConnections = {} followConnections = {} for _, plr in ipairs(Players:GetPlayers()) do if plr.Character then applyToCharacter(plr.Character) end end for _, obj in ipairs(Workspace:GetDescendants()) do if obj:IsA("Model") and obj:FindFirstChildOfClass("Humanoid") and not Players:GetPlayerFromCharacter(obj) then applyToCharacter(obj) end end end createGUI() if lp.Character then applyToCharacter(lp.Character) end lp.CharacterAdded:Connect(function(char) char:WaitForChild("Humanoid", 5) applyToCharacter(char) end) Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:Connect(function(char) char:WaitForChild("Humanoid", 5) task.wait(0.4) applyToCharacter(char) end) end) task.spawn(function() while true do task.wait(1.8) for _, plr in ipairs(Players:GetPlayers()) do local char = plr.Character if char and char:FindFirstChildOfClass("Humanoid") then removeClothes(char) if Settings.TitsEnabled and not char:FindFirstChild("Tits") then addTits(char) end if not headConnections[char] then setupHeadTransparency(char) end end end for _, obj in ipairs(Workspace:GetDescendants()) do if obj:IsA("Model") and obj:FindFirstChildOfClass("Humanoid") and not Players:GetPlayerFromCharacter(obj) then if Settings.TitsEnabled and not obj:FindFirstChild("Tits") then applyToCharacter(obj) end end end end end)