Roblox - Advanced Weed Blunt System Apr 2026

-- if hitsLeft - 1 == 0, play "roach" effect 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

function HighnessManager:Init(player) local highness = Instance.new("NumberValue") highness.Name = "Highness" highness.Value = 0 highness.Parent = player

local Players = game:GetService("Players") local Debris = game:GetService("Debris") local HighnessManager = {} Roblox - Advanced Weed Blunt System

local function onToolUnequipped() activeBlunt = nil end

-- Connect to tools via player.CharacterAdded 4.1. BluntHandler (Server Script in ServerScriptService) local Players = game:GetService("Players") local RS = game:GetService("ReplicatedStorage") local lightEvent = RS:FindFirstChild("LightBluntEvent") local hitEvent = RS:FindFirstChild("TakeHitEvent") local HighnessManager = require(script.Parent.HighnessManager) local BluntData = require(RS.Shared.BluntData)

blunt:SetAttribute("HitsLeft", hitsLeft - 1) HighnessManager:AddHighness(player, BluntData.BluntConfig.HighPerHit) -- if hitsLeft - 1 == 0, play

local passOutTag = Instance.new("BoolValue") passOutTag.Name = "PassedOut" passOutTag.Parent = char

updateHighness.OnClientEvent:Connect(onHighnessUpdate)

BluntData.CraftingRecipe = { Weed = 1, RollingPaper = 1, Lighter = 0, -- optional } hitsLeft - 1) HighnessManager:AddHighness(player

-- 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

if highness.Value >= BluntData.BluntConfig.PassOutThreshold then self:PassOut(player) end end

return HighnessManager Handles UI, input, and visual effects.