Jujutsu Shenanigans Script – JJS Halloween Door and Pumpkin Head (ESP) - Verified script for Jujutsu Shenanigans
Key Required

Jujutsu Shenanigans Script – JJS Halloween Door and Pumpkin Head (ESP)

Jujutsu ShenanigansSketoXSketoX 588 views 577 executesUpdated Oct 25, 2026
Unrated
00
Lua Script•251 lines (7447 chars)
--!strict
local Workspace = game:GetService("Workspace")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")

local LocalPlayer = Players.LocalPlayer

-- ====================================================================
-- CONFIGURATION
-- ====================================================================
local CONFIG = {
	SCAN_INTERVAL = 1.0,                             -- Background sweep frequency (seconds)
	MAX_DISTANCE = 600,                              -- Max studs to display distance

	DOORS = {
		FOLDER_NAME = "Effects",
		PATTERN = "HalloweenDoor",
		TIMER_SECONDS = 90,                          -- 1 minute 30 seconds countdown
		FILL_COLOR = Color3.fromRGB(255, 120, 0),    -- Orange
		EXPIRED_COLOR = Color3.fromRGB(255, 60, 60), -- Red when timer finishes
		FILL_TRANSPARENCY = 0.5,
		OUTLINE_COLOR = Color3.fromRGB(255, 255, 255),
	},

	PUMPKINS = {
		FOLDER_NAME = "Characters",
		PATTERN = "Pumpkin",
		FILL_COLOR = Color3.fromRGB(50, 255, 120),   -- Bright Emerald / Green
		FILL_TRANSPARENCY = 0.4,
		OUTLINE_COLOR = Color3.fromRGB(255, 255, 255),
	},
}

-- Registry to track active cleanups: [TargetInstance] = CleanupFunction
local activeCleanups: { [Instance]: () -> () } = {}

-- Formats seconds into MM:SS
local function formatTime(seconds: number): string
	local mins = math.floor(seconds / 60)
	local secs = math.floor(seconds % 60)
	return string.format("%02d:%02d", mins, secs)
end

-- Safely resolves a BasePart for anchoring BillboardGuis
local function getAdorneePart(target: Instance): BasePart?
	if target:IsA("BasePart") then
		return target
	elseif target:IsA("Model") then
		return target.PrimaryPart or target:FindFirstChildWhichIsA("BasePart")
	elseif target:IsA("Tool") then
		local handle = target:FindFirstChild("Handle") :: BasePart?
		return handle or target:FindFirstChildWhichIsA("BasePart")
	end
	return nil
end

-- Generic tracker generator
local function createTracker(
	target: Instance,
	fillCol: Color3,
	outlineCol: Color3,
	fillTrans: number,
	tagTitle: string,
	countdownDuration: number?
)
	if activeCleanups[target] or target:FindFirstChild("ActiveESP_Highlight") then
		return
	end

	local startTime = os.clock()

	-- 1. Create Highlight
	local highlight = Instance.new("Highlight")
	highlight.Name = "ActiveESP_Highlight"
	highlight.Adornee = target
	highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
	highlight.FillColor = fillCol
	highlight.FillTransparency = fillTrans
	highlight.OutlineColor = outlineCol
	highlight.OutlineTransparency = 0
	highlight.Parent = target

	local renderConn: RBXScriptConnection? = nil

	-- 2. Create Distance & Timer Billboard
	local adorneePart = getAdorneePart(target)
	if adorneePart then
		local billboard = Instance.new("BillboardGui")
		billboard.Name = "ActiveESP_Billboard"
		billboard.Adornee = adorneePart
		billboard.Size = UDim2.fromOffset(180, 50)
		billboard.StudsOffset = Vector3.new(0, 3.5, 0)
		billboard.AlwaysOnTop = true
		billboard.MaxDistance = CONFIG.MAX_DISTANCE

		local label = Instance.new("TextLabel")
		label.Size = UDim2.fromScale(1, 1)
		label.BackgroundTransparency = 1
		label.TextColor3 = fillCol
		label.TextStrokeTransparency = 0
		label.TextStrokeColor3 = Color3.new(0, 0, 0)
		label.Font = Enum.Font.GothamBold
		label.TextSize = 13
		label.Text = tagTitle
		label.Parent = billboard

		billboard.Parent = target

		-- Live Render Loop
		renderConn = RunService.RenderStepped:Connect(function()
			local character = LocalPlayer.Character
			local rootPart = if character then character:FindFirstChild("HumanoidRootPart") :: BasePart? else nil

			if rootPart and adorneePart and adorneePart.Parent then
				local distance = math.floor((rootPart.Position - adorneePart.Position).Magnitude)

				-- Handle Timer if present
				if countdownDuration then
					local elapsed = os.clock() - startTime
					local remaining = math.max(0, countdownDuration - elapsed)

					if remaining > 0 then
						label.TextColor3 = fillCol
						highlight.FillColor = fillCol
						label.Text = string.format("%s\n[%d studs] • %s", tagTitle, distance, formatTime(remaining))
					else
						-- Timer expired state
						label.TextColor3 = CONFIG.DOORS.EXPIRED_COLOR
						highlight.FillColor = CONFIG.DOORS.EXPIRED_COLOR
						label.Text = string.format("%s\n[%d studs] • [EXPIRED]", tagTitle, distance)
					end
				else
					-- No timer (Pumpkins)
					label.Text = string.format("%s\n[%d studs]", tagTitle, distance)
				end
			end
		end)
	end

	-- Cleanup logic
	local function cleanup()
		if renderConn then
			renderConn:Disconnect()
			renderConn = nil
		end
		activeCleanups[target] = nil
	end

	activeCleanups[target] = cleanup
	target.Destroying:Once(cleanup)
end

-- ====================================================================
-- SCANNING LOGIC
-- ====================================================================

-- Check Door (with 90s countdown)
local function checkDoor(instance: Instance)
	if string.find(instance.Name, CONFIG.DOORS.PATTERN) then
		createTracker(
			instance,
			CONFIG.DOORS.FILL_COLOR,
			CONFIG.DOORS.OUTLINE_COLOR,
			CONFIG.DOORS.FILL_TRANSPARENCY,
			instance.Name,
			CONFIG.DOORS.TIMER_SECONDS -- 1 minute 30 seconds
		)
	end
end

-- Check Pumpkin inside a Character model
local function checkPumpkin(item: Instance, characterName: string)
	if string.find(item.Name, CONFIG.PUMPKINS.PATTERN) then
		local tag = string.format("%s's Pumpkin", characterName)
		createTracker(
			item,
			CONFIG.PUMPKINS.FILL_COLOR,
			CONFIG.PUMPKINS.OUTLINE_COLOR,
			CONFIG.PUMPKINS.FILL_TRANSPARENCY,
			tag,
			nil -- No timer for pumpkins
		)
	end
end

-- Observes character for pumpkins
local function hookCharacter(charModel: Instance)
	if not charModel:IsA("Model") then return end

	for _, child in charModel:GetDescendants() do
		checkPumpkin(child, charModel.Name)
	end

	charModel.DescendantAdded:Connect(function(descendant)
		checkPumpkin(descendant, charModel.Name)
	end)
end

-- ====================================================================
-- STANDBY BACKGROUND DAEMON
-- ====================================================================
task.spawn(function()
	local lastEffectsFolder: Instance? = nil
	local lastCharsFolder: Instance? = nil

	local effectsConn: RBXScriptConnection? = nil
	local charsConn: RBXScriptConnection? = nil

	while true do
		-- 1. MONITOR EFFECTS (Doors with Countdown)
		local effects = Workspace:FindFirstChild(CONFIG.DOORS.FOLDER_NAME)
		if effects ~= lastEffectsFolder then
			if effectsConn then effectsConn:Disconnect() end
			lastEffectsFolder = effects
			if effects then
				effectsConn = effects.ChildAdded:Connect(checkDoor)
			end
		end

		if effects then
			for _, child in effects:GetChildren() do
				checkDoor(child)
			end
		end

		-- 2. MONITOR CHARACTERS (Pumpkins)
		local characters = Workspace:FindFirstChild(CONFIG.PUMPKINS.FOLDER_NAME)
		if characters ~= lastCharsFolder then
			if charsConn then charsConn:Disconnect() end
			lastCharsFolder = characters
			if characters then
				charsConn = characters.ChildAdded:Connect(hookCharacter)
			end
		end

		if characters then
			for _, charModel in characters:GetChildren() do
				hookCharacter(charModel)
			end
		end

		-- 3. SANITATION (Purge dead / unparented trackers)
		for target, cleanup in activeCleanups do
			if not target.Parent then
				cleanup()
			end
		end

		task.wait(CONFIG.SCAN_INTERVAL)
	end
end)

How to Execute Jujutsu Shenanigans Script – JJS Halloween Door and Pumpkin Head (ESP)

Step 1: Copy Code: Click the Copy Code button in the viewer above to grab the clean Lua loadstring.

Step 2: Launch Executor: Open a compatible, unpatched executor. If you need one, check our Roblox Executors Directory.

Step 3: Join Experience: Launch Roblox and join Jujutsu Shenanigans.

Step 4: Attach & Run: Attach/inject your executor into the Roblox process, paste the code into the script tab, and press Execute.

Created By

SketoX
SketoX
Script User
View Author Profile

Roblox Experience

[HIRED KILLER] Jujutsu Shenanigans
Jujutsu Shenanigans
By Tze's Shenanigans
Active Players:81.6K
Play on Roblox

Features & Information

Execute Jujutsu Shenanigans Script – JJS Halloween Door and Pumpkin Head (ESP). Key system required, created by SketoX, updated Oct 25, 2026. Tested and working on supported executors.

Script Changelog (1)

@SketoXOct 25, 2026

Create script

Community Comments (0)

No comments yet for this script.

Frequently Asked Questions

How do I execute Jujutsu Shenanigans Script – JJS Halloween Door and Pumpkin Head (ESP) in Roblox?

To run Jujutsu Shenanigans Script – JJS Halloween Door and Pumpkin Head (ESP), copy the Lua loadstring from the code viewer above, launch Roblox and join Jujutsu Shenanigans, attach a working executor (such as Potassium, Solara, or Delta from our Executors directory), paste the code into your executor console, and click Execute.

Is Jujutsu Shenanigans Script – JJS Halloween Door and Pumpkin Head (ESP) keyless or does it require an access key?

Jujutsu Shenanigans Script – JJS Halloween Door and Pumpkin Head (ESP) requires an access key. You can retrieve the official key directly using the Get Script Key link provided above.

Is Jujutsu Shenanigans Script – JJS Halloween Door and Pumpkin Head (ESP) currently safe and working?

This script is active and operational. Always test scripts using a secondary (alt) Roblox account to safeguard your main profile against anti-cheat bans.