Roblox - Advanced Weed Blunt System | 2025-2026 |

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

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

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

function HighnessManager:Init(player) local highness = Instance.new("NumberValue") highness.Name = "Highness" highness.Value = 0 highness.Parent = player Roblox - Advanced Weed Blunt System

lightEvent.OnServerEvent:Connect(function(player, bluntTool) if not bluntTool or not bluntTool.Parent == player.Character then return end local blunt = getBluntData(bluntTool) if blunt:GetAttribute("IsLit") then return end blunt:SetAttribute("IsLit", true) -- optional: add fire particle effect end)

local function onHighnessUpdate(highnessValue) local intensity = highnessValue / 100 applyScreenEffect(intensity)

local passOutTag = Instance.new("BoolValue") passOutTag.Name = "PassedOut" passOutTag.Parent = char local function useBlunt() if not canHit or not

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

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

-- 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) hitsLeft - 1) HighnessManager:AddHighness(player

BluntData.CraftingRecipe = { Weed = 1, RollingPaper = 1, Lighter = 0, -- optional }

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"

-- if hitsLeft - 1 == 0, play "roach" effect end)

local Players = game:GetService("Players") local Debris = game:GetService("Debris") local HighnessManager = {}