Green aura with files script
Key RequiredUniversal

Green aura with files script

Universal ScriptEatkidmasterEatkidmaster 590 views 1.1K executesUpdated Sep 9, 2026
Unrated
00
Lua Script•1446 lines (17967 chars)
--========================================================--
-- GREEN AURA WITH FLIES========================================================--

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Debris = game:GetService("Debris")

local LocalPlayer = Players.LocalPlayer

--========================================================--
-- SETTINGS
--========================================================--

local GREEN = Color3.fromRGB(0, 255, 45)

local SMOKE_RATE = 40

local FLY_COUNT = 12

local FLY_MIN_DISTANCE = 1.5
local FLY_MAX_DISTANCE = 5

local FLY_MIN_HEIGHT = 0.5
local FLY_MAX_HEIGHT = 5

local RAGDOLL_DISTANCE = 10

-- Current Creator Store fly SFX
local FLY_SOUND_ID =
	"rbxassetid://9114875500"

--========================================================--
-- STATE
--========================================================--

local Character
local Root

local SmokeObjects = {}
local FlyObjects = {}

local ProcessedPlayers = {}

local FlySound
local FlySoundConnection
local FlyMovementConnection

--========================================================--
-- CHARACTER
--========================================================--

local function GetCharacter()

	Character =
		LocalPlayer.Character
		or LocalPlayer.CharacterAdded:Wait()

	Root =
		Character:FindFirstChild(
			"HumanoidRootPart"
		)

	if not Root then

		Root =
			Character:WaitForChild(
				"HumanoidRootPart",
				10
			)

	end

	return Character, Root
end

--========================================================--
-- CLEANUP
--========================================================--

local function CleanupEffects()

	for _, object in ipairs(
		SmokeObjects
	) do

		if object
			and object.Parent
		then

			object:Destroy()

		end

	end

	table.clear(
		SmokeObjects
	)

	for _, fly in ipairs(
		FlyObjects
	) do

		if fly.Part
			and fly.Part.Parent
		then

			fly.Part:Destroy()

		end

	end

	table.clear(
		FlyObjects
	)

	if FlySoundConnection then

		FlySoundConnection:Disconnect()

		FlySoundConnection =
			nil

	end

	if FlyMovementConnection then

		FlyMovementConnection:Disconnect()

		FlyMovementConnection =
			nil

	end

	if FlySound then

		FlySound:Destroy()

		FlySound =
			nil

	end
end

--========================================================--
-- SMOKE
--========================================================--

local function MakeSmoke(
	position,
	multiplier
)

	if not Root then
		return
	end

	local attachment =
		Instance.new(
			"Attachment"
		)

	attachment.Position =
		position

	attachment.Parent =
		Root

	table.insert(
		SmokeObjects,
		attachment
	)

	local smoke =
		Instance.new(
			"ParticleEmitter"
		)

	smoke.Texture =
		"rbxasset://textures/particles/smoke_main.dds"

	smoke.Color =
		ColorSequence.new({
			ColorSequenceKeypoint.new(
				0,
				GREEN
			),

			ColorSequenceKeypoint.new(
				0.5,
				Color3.fromRGB(
					0,
					180,
					25
				)
			),

			ColorSequenceKeypoint.new(
				1,
				Color3.fromRGB(
					0,
					80,
					5
				)
			)
		})

	smoke.LightEmission =
		0.25

	smoke.Rate =
		SMOKE_RATE * multiplier

	smoke.Lifetime =
		NumberRange.new(
			2,
			3.5
		)

	smoke.Speed =
		NumberRange.new(
			0.5,
			1.8
		)

	smoke.Acceleration =
		Vector3.new(
			0,
			1.5,
			0
		)

	smoke.SpreadAngle =
		Vector2.new(
			180,
			180
		)

	smoke.Rotation =
		NumberRange.new(
			0,
			360
		)

	smoke.RotSpeed =
		NumberRange.new(
			-30,
			30
		)

	smoke.Size =
		NumberSequence.new({
			NumberSequenceKeypoint.new(
				0,
				1.5 * multiplier
			),

			NumberSequenceKeypoint.new(
				0.4,
				4 * multiplier
			),

			NumberSequenceKeypoint.new(
				0.8,
				6 * multiplier
			),

			NumberSequenceKeypoint.new(
				1,
				7 * multiplier
			)
		})

	smoke.Transparency =
		NumberSequence.new({
			NumberSequenceKeypoint.new(
				0,
				0.1
			),

			NumberSequenceKeypoint.new(
				0.6,
				0.4
			),

			NumberSequenceKeypoint.new(
				1,
				1
			)
		})

	smoke.Parent =
		attachment

	table.insert(
		SmokeObjects,
		smoke
	)
end

local function CreateSmoke()

	if not Root then
		return
	end

	MakeSmoke(
		Vector3.new(
			0,
			-2,
			0
		),
		1
	)

	MakeSmoke(
		Vector3.new(
			0,
			0,
			0
		),
		0.8
	)

	MakeSmoke(
		Vector3.new(
			0,
			1.7,
			0
		),
		0.7
	)

	MakeSmoke(
		Vector3.new(
			1.3,
			0,
			0
		),
		0.6
	)

	MakeSmoke(
		Vector3.new(
			-1.3,
			0,
			0
		),
		0.6
	)

	local light =
		Instance.new(
			"PointLight"
		)

	light.Color =
		GREEN

	light.Brightness =
		2

	light.Range =
		12

	light.Parent =
		Root

	table.insert(
		SmokeObjects,
		light
	)
end

--========================================================--
-- FLY SOUND
--========================================================--

local function CreateFlySound()

	if not Root then
		return
	end

	if FlySound then
		FlySound:Destroy()
	end

	FlySound =
		Instance.new(
			"Sound"
		)

	FlySound.Name =
		"FlyBuzz"

	FlySound.SoundId =
		FLY_SOUND_ID

	FlySound.Volume =
		0.55

	FlySound.Looped =
		true

	FlySound.RollOffMode =
		Enum.RollOffMode.Inverse

	FlySound.RollOffMinDistance =
		3

	FlySound.RollOffMaxDistance =
		35

	FlySound.Parent =
		Root

	-- Don't wait for IsLoaded.
	-- Start immediately.

	pcall(function()

		FlySound:Play()

	end)

	FlySoundConnection =
		RunService.Heartbeat:Connect(
			function()

				if not FlySound then
					return
				end

				if not FlySound.Parent then
					return
				end

				if not FlySound.IsPlaying then

					pcall(function()

						FlySound:Play()

					end)

				end
			end
		)
end

--========================================================--
-- RANDOM FLY
--========================================================--

local function CreateRandomFly(index)

	local part =
		Instance.new(
			"Part"
		)

	part.Name =
		"RandomFly_" .. index

	part.Shape =
		Enum.PartType.Ball

	part.Size =
		Vector3.new(
			0.18,
			0.18,
			0.18
		)

	part.Material =
		Enum.Material.Neon

	part.Color =
		Color3.fromRGB(
			10,
			10,
			10
		)

	part.Anchored =
		true

	part.CanCollide =
		false

	part.CanTouch =
		false

	part.CanQuery =
		false

	part.CastShadow =
		false

	part.Parent =
		workspace

	local glow =
		Instance.new(
			"PointLight"
		)

	glow.Color =
		GREEN

	glow.Brightness =
		0.15

	glow.Range =
		1.5

	glow.Parent =
		part

	local random =
		Random.new(
			index * 7919
		)

	local flyData = {

		Part = part,

		Position =
			Vector3.new(
				random:NextNumber(
					-FLY_MAX_DISTANCE,
					FLY_MAX_DISTANCE
				),

				random:NextNumber(
					FLY_MIN_HEIGHT,
					FLY_MAX_HEIGHT
				),

				random:NextNumber(
					-FLY_MAX_DISTANCE,
					FLY_MAX_DISTANCE
				)
			),

		Target =
			Vector3.zero,

		Speed =
			random:NextNumber(
				2,
				5
			),

		Timer =
			random:NextNumber(
				0,
				1
			),

		Random =
			random,

	}

	table.insert(
		FlyObjects,
		flyData
	)

	return flyData
end

--========================================================--
-- CHOOSE RANDOM FLY TARGET
--========================================================--

local function ChooseNewFlyTarget(
	fly
)

	local random =
		fly.Random

	fly.Target =
		Vector3.new(

			random:NextNumber(
				-FLY_MAX_DISTANCE,
				FLY_MAX_DISTANCE
			),

			random:NextNumber(
				FLY_MIN_HEIGHT,
				FLY_MAX_HEIGHT
			),

			random:NextNumber(
				-FLY_MAX_DISTANCE,
				FLY_MAX_DISTANCE
			)

		)

	fly.Speed =
		random:NextNumber(
			1.5,
			4.5
		)

end

--========================================================--
-- CREATE RANDOM FLIES
--========================================================--

local function CreateFlies()

	table.clear(
		FlyObjects
	)

	for i = 1, FLY_COUNT do

		local fly =
			CreateRandomFly(i)

		ChooseNewFlyTarget(
			fly
		)

	end

	if FlyMovementConnection then

		FlyMovementConnection:Disconnect()

	end

	FlyMovementConnection =
		RunService.RenderStepped:Connect(
			function(deltaTime)

				if not Root
					or not Root.Parent
				then
					return
				end

				for index, fly in ipairs(
					FlyObjects
				) do

					if not fly.Part
						or not fly.Part.Parent
					then
						continue
					end

					-- Randomly change target

					fly.Timer -=
						deltaTime

					if fly.Timer <= 0 then

						ChooseNewFlyTarget(
							fly
						)

						fly.Timer =
							fly.Random:NextNumber(
								0.5,
								2
							)

					end

					-- Move toward random target

					local difference =
						fly.Target
						- fly.Position

					local distance =
						difference.Magnitude

					if distance > 0.05 then

						local direction =
							difference.Unit

						local movement =
							math.min(
								distance,
								fly.Speed
								* deltaTime
							)

						fly.Position +=
							direction
							* movement

					end

					-- Add natural buzzing movement

					local time =
						os.clock()

					local wobble =
						Vector3.new(

							math.sin(
								time * 7
								+ index
							) * 0.15,

							math.sin(
								time * 11
								+ index * 2
							) * 0.12,

							math.cos(
								time * 8
								+ index
							) * 0.15

						)

					local worldPosition =
						Root.Position
						+ fly.Position
						+ wobble

					fly.Part.Position =
						worldPosition

				end
			end
		)
end

--========================================================--
-- HIDE TARGET ONLY
--========================================================--

local function HideTarget(
	model
)

	if not model then
		return
	end

	for _, object in ipairs(
		model:GetDescendants()
	) do

		if object:IsA("BasePart") then

			object.LocalTransparencyModifier =
				1

		elseif object:IsA("Decal")
			or object:IsA("Texture")
		then

			object.Transparency =
				1

		end

	end

	local humanoid =
		model:FindFirstChildOfClass(
			"Humanoid"
		)

	if humanoid then

		humanoid.DisplayDistanceType =
			Enum.HumanoidDisplayDistanceType.None

		humanoid.HealthDisplayType =
			Enum.HumanoidHealthDisplayType.AlwaysOff

	end
end

--========================================================--
-- CLEAN DUMMY
--========================================================--

local function CleanDummy(
	dummy
)

	for _, object in ipairs(
		dummy:GetDescendants()
	) do

		if object:IsA("Script")
			or object:IsA("LocalScript")
			or object:IsA("ModuleScript")
			or object:IsA("Tool")
			or object:IsA("BillboardGui")
			or object:IsA("SurfaceGui")
			or object:IsA("Sound")
		then

			object:Destroy()

		end

	end
end

--========================================================--
-- PREPARE PART
--========================================================--

local function PreparePart(
	part
)

	if not part:IsA("BasePart") then
		return
	end

	part.Anchored =
		false

	part.CanCollide =
		true

	part.CanTouch =
		false

	part.CanQuery =
		false

	part.Massless =
		false

	part.LocalTransparencyModifier =
		0
end

--========================================================--
-- RAGDOLL
--========================================================--

local function Ragdoll(
	dummy
)

	local humanoid =
		dummy:FindFirstChildOfClass(
			"Humanoid"
		)

	if humanoid then

		humanoid.AutoRotate =
			false

		humanoid.PlatformStand =
			true

		humanoid.WalkSpeed =
			0

		humanoid.JumpPower =
			0

		humanoid.DisplayDistanceType =
			Enum.HumanoidDisplayDistanceType.None

		humanoid.HealthDisplayType =
			Enum.HumanoidHealthDisplayType.AlwaysOff

		humanoid:SetStateEnabled(
			Enum.HumanoidStateType.GettingUp,
			false
		)

		pcall(function()

			humanoid:ChangeState(
				Enum.HumanoidStateType.Physics
			)

		end)
	end

	-- Create physical joints

	for _, motor in ipairs(
		dummy:GetDescendants()
	) do

		if motor:IsA("Motor6D") then

			local part0 =
				motor.Part0

			local part1 =
				motor.Part1

			if part0
				and part1
			then

				local a0 =
					Instance.new(
						"Attachment"
					)

				local a1 =
					Instance.new(
						"Attachment"
					)

				a0.CFrame =
					motor.C0

				a1.CFrame =
					motor.C1

				a0.Parent =
					part0

				a1.Parent =
					part1

				local socket =
					Instance.new(
						"BallSocketConstraint"
					)

				socket.Attachment0 =
					a0

				socket.Attachment1 =
					a1

				socket.LimitsEnabled =
					true

				socket.UpperAngle =
					70

				socket.TwistLimitsEnabled =
					true

				socket.TwistLowerAngle =
					-50

				socket.TwistUpperAngle =
					50

				socket.Parent =
					part0

				motor.Enabled =
					false

			end

		end

	end

	-- Physical parts

	for _, object in ipairs(
		dummy:GetDescendants()
	) do

		if object:IsA("BasePart") then

			PreparePart(
				object
			)

		end

	end

	if humanoid then

		pcall(function()

			humanoid:ChangeState(
				Enum.HumanoidStateType.Physics
			)

		end)

	end
end

--========================================================--
-- CARTOON VOMIT EFFECT
--========================================================--

local function CreateVomit(
	dummy
)

	local head =
		dummy:FindFirstChild(
			"Head"
		)

	if not head then
		return
	end

	local attachment =
		Instance.new(
			"Attachment"
		)

	attachment.Name =
		"VomitAttachment"

	-- Front/lower part of head

	attachment.Position =
		Vector3.new(
			0,
			-0.15,
			-0.5
		)

	attachment.Parent =
		head

	local particles =
		Instance.new(
			"ParticleEmitter"
		)

	particles.Name =
		"CartoonVomit"

	particles.Texture =
		"rbxasset://textures/particles/smoke_main.dds"

	particles.Color =
		ColorSequence.new(
			Color3.fromRGB(
				100,
				230,
				15
			)
		)

	particles.Rate =
		0

	particles.Lifetime =
		NumberRange.new(
			0.35,
			0.8
		)

	particles.Speed =
		NumberRange.new(
			4,
			7
		)

	particles.SpreadAngle =
		Vector2.new(
			10,
			10
		)

	particles.EmissionDirection =
		Enum.NormalId.Front

	particles.Size =
		NumberSequence.new({
			NumberSequenceKeypoint.new(
				0,
				0.35
			),

			NumberSequenceKeypoint.new(
				0.5,
				0.55
			),

			NumberSequenceKeypoint.new(
				1,
				0.05
			)
		})

	particles.Transparency =
		NumberSequence.new({
			NumberSequenceKeypoint.new(
				0,
				0.05
			),

			NumberSequenceKeypoint.new(
				0.8,
				0.3
			),

			NumberSequenceKeypoint.new(
				1,
				1
			)
		})

	particles.Parent =
		attachment

	-- Instant burst

	particles:Emit(
		20
	)

	Debris:AddItem(
		attachment,
		2
	)
end

--========================================================--
-- INSTANT VOMIT SOUND
--========================================================--

local function PlayVomitSound(
	dummy
)

	local head =
		dummy:FindFirstChild(
			"Head"
		)

	if not head then
		return
	end

	local sound =
		Instance.new(
			"Sound"
		)

	sound.Name =
		"VomitSound"

	sound.SoundId =
		"rbxassetid://528349992"

	sound.Volume =
		0.8

	sound.Looped =
		false

	sound.RollOffMode =
		Enum.RollOffMode.Inverse

	sound.RollOffMinDistance =
		3

	sound.RollOffMaxDistance =
		30

	sound.Parent =
		head

	-- NO WAITING

	pcall(function()

		sound:Play()

	end)

	Debris:AddItem(
		sound,
		8
	)
end

--========================================================--
-- CREATE RAGDOLL
--========================================================--

local function CreateRagdoll(
	player
)

	if player ==
		LocalPlayer
	then
		return
	end

	if ProcessedPlayers[player] then
		return
	end

	local original =
		player.Character

	if not original then
		return
	end

	local originalRoot =
		original:FindFirstChild(
			"HumanoidRootPart"
		)

	if not originalRoot then
		return
	end

	-- Clone

	local oldArchivable =
		original.Archivable

	original.Archivable =
		true

	local dummy =
		original:Clone()

	original.Archivable =
		oldArchivable

	if not dummy then
		return
	end

	ProcessedPlayers[player] =
		true

	dummy.Name =
		player.Name
		.. "_LocalCollapse"

	CleanDummy(
		dummy
	)

	-- Put dummy in workspace

	dummy.Parent =
		workspace

	local dummyRoot =
		dummy:FindFirstChild(
			"HumanoidRootPart"
		)

	if dummyRoot then

		dummyRoot.CFrame =
			originalRoot.CFrame

	end

	-- Hide ONLY target

	HideTarget(
		original
	)

	-- Ragdoll

	Ragdoll(
		dummy
	)

	-- Vomit from head

	CreateVomit(
		dummy
	)

	-- Sound immediately

	PlayVomitSound(
		dummy
	)
end

--========================================================--
-- DETECT PLAYERS
--========================================================--

local function CheckPlayers()

	if not Root
		or not Root.Parent
	then
		return
	end

	for _, player in ipairs(
		Players:GetPlayers()
	) do

		if player ~= LocalPlayer
			and not ProcessedPlayers[player]
		then

			local character =
				player.Character

			if character then

				local targetRoot =
					character:FindFirstChild(
						"HumanoidRootPart"
					)

				if targetRoot then

					local distance =
						(
							targetRoot.Position
							- Root.Position
						).Magnitude

					if distance
						<= RAGDOLL_DISTANCE
					then

						CreateRagdoll(
							player
						)

					end
				end
			end
		end
	end
end

--========================================================--
-- RESPAWN
--========================================================--

LocalPlayer.CharacterAdded:Connect(
	function(
		newCharacter
	)

	Character =
		newCharacter

	Root =
		newCharacter:WaitForChild(
			"HumanoidRootPart",
			10
		)

	task.wait(
		0.5
	)

	CleanupEffects()

	table.clear(
		ProcessedPlayers
	)

	CreateSmoke()

	CreateFlySound()

	CreateFlies()

end)

--========================================================--
-- START
--========================================================--

GetCharacter()

task.wait(
	0.5
)

CreateSmoke()

CreateFlySound()

CreateFlies()

--========================================================--
-- DETECTION LOOP
--========================================================--

local timer = 0

RunService.Heartbeat:Connect(
	function(deltaTime)

		timer +=
			deltaTime

		if timer >= 0.1 then

			timer = 0

			CheckPlayers()

		end
	end
)

print(
	"[Green Fly] ACTIVE"
)

print(
	"[Green Fly] Random flying mode"
)

print(
	"[Green Fly] 10 stud collapse range"
)

print(
	"[Green Fly] Client-side only"
)

Features & Information

I use to have no friend and no job
#Joke

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts