Roblox - Advanced Weed Blunt System Apr 2026
return BluntData Handles highness level and pass-out logic.
return HighnessManager Handles UI, input, and visual effects.
local Players = game:GetService("Players") local Debris = game:GetService("Debris") local HighnessManager = {}
-- Helper: Get or create blunt data from tool local function getBluntData(tool) local hitsLeft = tool:GetAttribute("HitsLeft") if not hitsLeft then tool:SetAttribute("HitsLeft", BluntData.BluntConfig.MaxHits) tool:SetAttribute("IsLit", false) end return tool end Roblox - Advanced Weed Blunt System
function HighnessManager:AddHighness(player, amount) local highness = player:FindFirstChild("Highness") if not highness then return end highness.Value = math.min(BluntData.BluntConfig.HighnessMax, highness.Value + amount) self:UpdateClient(player, highness.Value)
local function applyScreenEffect(intensity) -- intensity 0 to 1 local blur = Instance.new("BlurEffect") blur.Size = 4 + (intensity * 12) game:GetService("Lighting"):FindFirstChild("Blur") and game:GetService("Lighting").Blur:Destroy() blur.Parent = game:GetService("Lighting") blur.Name = "Blur"
function HighnessManager:Init(player) local highness = Instance.new("NumberValue") highness.Name = "Highness" highness.Value = 0 highness.Parent = player return BluntData Handles highness level and pass-out logic
-- if hitsLeft - 1 == 0, play "roach" effect end)
local humanoid = char:FindFirstChild("Humanoid") if humanoid then humanoid.PlatformStand = true -- ragdoll effect: unanchor limbs or apply velocity end
local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local lightEvent = ReplicatedStorage:FindFirstChild("LightBluntEvent") local hitEvent = ReplicatedStorage:FindFirstChild("TakeHitEvent") local updateHighness = ReplicatedStorage:FindFirstChild("UpdateHighness") highness.Value + amount) self:UpdateClient(player
local activeBlunt = nil -- current blunt tool local canHit = true
-- Camera sway if intensity > 0.1 then RunService:BindToRenderStep("WeedSway", 100, function(dt) local swayX = math.sin(tick() * 5) * intensity * 2 local swayY = math.cos(tick() * 4.3) * intensity * 1.5 workspace.CurrentCamera.CFrame *= CFrame.Angles(0, math.rad(swayX), math.rad(swayY)) end) else RunService:UnbindFromRenderStep("WeedSway") end end
local colorCorrection = Instance.new("ColorCorrectionEffect") colorCorrection.TintColor = Color3.fromRGB(255, 100, 50) colorCorrection.TintIntensity = intensity * 0.4 colorCorrection.Parent = game:GetService("Lighting") colorCorrection.Name = "WeedTint" end
local function useBlunt() if not canHit or not activeBlunt then return end canHit = false hitEvent:FireServer(activeBlunt) task.wait(BluntData.BluntConfig.HitCooldown) canHit = true end