Roblox/luau_corpus huggingface dataset:
-- COLOR SETTINGS
--[[
	COLOR PRESETS:
		
	Headlights
		- OEM White
		- Xenon
		- Pure White
		- Brilliant Blue
		- Light Green
		- Golden Yellow
		- Bubu's Purple
		- Yellow
	Indicators
		- Light Orange
		- Dark Orange
		- Yellow
		- Red
		
	For custom color use Color3.fromRGB(R, G, B). You can get your RGB code from the "Color" property.
]]--

local Low_Beam_Color = "Pure White"

local High_Beam_Color = "Pure White"

local Running_Light_Color = "Pure White"

local Interior_Light_Color = "OEM White"

local Front_Indicator_Color = "Dark Orange"

local Rear_Indicator_Color = "Dark Orange"

local Fog_Light_Color = "Pure White"

local Plate_Light_Color = "Pure White"
-- Add everything to settings
local settings = plr:WaitForChild("Settings")
for _, i in pairs(script:GetChildren()) do
	i.Parent = settings
end
--Deadzone Adjust
local _PPH = _Tune.Peripherals
for i,v in pairs(_PPH) do
	local a = Instance.new("IntValue",Controls)
	a.Name = i
	a.Value = v
	a.Changed:connect(function() 
		a.Value=math.min(100,math.max(0,a.Value))
		_PPH[i] = a.Value
	end)
end
---------------------------------------Function end here.
end


Tool.Enabled = true
function onActivated()

	if not Tool.Enabled then
		return
	end

	--Tool.Enabled = false

	local character = Tool.Parent;
	local humanoid = character.Humanoid
	if humanoid == nil then
		print("Humanoid not found")
		return 
	end

	local targetPos = humanoid.TargetPoint
	local lookAt = (targetPos - character.Head.Position).unit
	
	if (check()) then
	fire(lookAt)
	wait(0.12)
	onActivated()
	end
	return

	--Tool.Enabled = true
end


script.Parent.Activated:connect(onActivated)
--[=[
	Gets the service by name. Throws an error if the service is not found.
]=]
function KnitServer.GetService(serviceName: string): Service
	assert(started, "Cannot call GetService until Knit has been started")
	assert(type(serviceName) == "string", "ServiceName must be a string; got " .. type(serviceName))
	return assert(services[serviceName], "Could not find service \"" .. serviceName .. "\"") :: Service
end
--Create visual waypoints
local function createVisualWaypoints(waypoints)
	local visualWaypoints = {}
	for _, waypoint in ipairs(waypoints) do
		local visualWaypointClone = visualWaypoint:Clone()
		visualWaypointClone.Position = waypoint.Position
		visualWaypointClone.Parent = workspace
		visualWaypointClone.Color =
			(waypoint == waypoints[#waypoints] and Color3.fromRGB(0, 255, 0))
			or (waypoint.Action == Enum.PathWaypointAction.Jump and Color3.fromRGB(255, 0, 0))
			or Color3.fromRGB(255, 139, 0)
		table.insert(visualWaypoints, visualWaypointClone)
	end
	return visualWaypoints
end
--Left lean
XR15RightLegLeftLean = 0
YR15RightLegLeftLean = -.2
ZR15RightLegLeftLean = .3
R15RightKneeLeftLean = -.3

XR15RightArmLeftLean = .5
YR15RightArmLeftLean = -.3
ZR15RightArmLeftLean = .2
R15RightElbowLeftLean = .2

XR15LeftLegLeftLean = .5
YR15LeftLegLeftLean = .35
ZR15LeftLegLeftLean = .55
R15LeftKneeLeftLean = -.1

XR15LeftArmLeftLean = -.5
YR15LeftArmLeftLean = -.5
ZR15LeftArmLeftLean = -.72
R15LeftElbowLeftLean = -1.2

XR15LowerTorsoLeftLean = .3
YR15LowerTorsoLeftLean = -.3
ZR15LowerTorsoLeftLean = 0.1
ZR15UpperTorsoLeftLean = .2
-- Module Scripts
local ModuleScripts = ServerScriptService:FindFirstChild("ModuleScripts")
local RaceModules = ModuleScripts:FindFirstChild("RaceModules")
local ReplicatedModuleScripts = ReplicatedStorage:FindFirstChild("ModuleScripts")
local GameSettings = require(RaceModules:FindFirstChild("GameSettings"))
local LeaderboardManager = require(RaceModules:FindFirstChild("LeaderboardManager"))
local RaceManager = require(ReplicatedModuleScripts:FindFirstChild("RaceManager"))
local PlayerConverter = require(ReplicatedModuleScripts:FindFirstChild("PlayerConverter"))
--// Delcarables
local newRope = nil
local newDir = nil
local new = nil
local newAtt0 = nil
local newAtt1 = nil
local isHeld = false
local active = false

local TS = game:GetService("TweenService")
-- model  by CatLeoYT XD --

local Tool = script.Parent
local speedforsmoke = 10

local CoilSound = Tool.Handle:WaitForChild("CoilSound")

function MakeSmoke(HRP, Human)
	smoke=Instance.new("Smoke")
	smoke.Enabled=HRP.Velocity.magnitude>speedforsmoke
	smoke.RiseVelocity=2
	smoke.Opacity=.25
	smoke.Size=.5
	smoke.Parent=HRP
	Human.Running:connect(function(speed)
		if smoke and smoke~=nil then
			smoke.Enabled=speed>speedforsmoke
		end
	end)
end

Tool.Equipped:connect(function()
	local Handle = Tool:WaitForChild("Handle")
	local HRP = Tool.Parent:FindFirstChild("HumanoidRootPart")
	local Human = Tool.Parent:FindFirstChild("Humanoid")
	CoilSound:Play()
	Human.WalkSpeed = Human.WalkSpeed * Tool.SpeedBoostScript.SpeedMultiplier.Value
	MakeSmoke(HRP, Human)
end)

Tool.Unequipped:connect(function()
	local plrChar = Tool.Parent.Parent.Character
	local HRP = plrChar.HumanoidRootPart
	if HRP:FindFirstChild("Smoke") then
		HRP.Smoke:Destroy()
	end
	plrChar.Humanoid.WalkSpeed = plrChar.Humanoid.WalkSpeed / Tool.SpeedBoostScript.SpeedMultiplier.Value
end)
--Tune
OverheatSpeed = .2 --How fast the car will overheat
CoolingEfficiency = .05 --How fast the car will cool down
RunningTemp = 85 --In degrees

Fan = true --Cooling fan
FanTemp = 100 --At what temperature the cooling fan will activate
FanTempAlpha = 90 --At what temperature the cooling fan will deactivate
FanSpeed = .03 --How fast the car will cool down
FanVolume = .2 --Sound volume

BlowupTemp = 130 --At what temperature the engine will blow up

GUI = true --GUI temperature gauge
--Suspension Hinges
bike.RearSection.RearSwingArmHinge.Size = Vector3.new(_Tune.HingeSize,_Tune.HingeSize,_Tune.HingeSize)
bike.RearSection.RearSwingArmHinge.CustomPhysicalProperties = PhysicalProperties.new(_Tune.HingeDensity,0,0,100,100)
if _Tune.RBricksVisible or _Tune.Debug then bike.RearSection.RearSwingArmHinge.Transparency = .75 else bike.RearSection.RearSwingArmHinge.Transparency = 1 end

local rshinge = bike.RearSection.RearSwingArmHinge:Clone()
rshinge.Parent = bike.Body
rshinge.Name = "SwingArmHinge"

local rshingea = Instance.new("Attachment", rshinge)
local rshingeb = Instance.new("Attachment", bike.RearSection.RearSwingArmHinge)
local rshingec = Instance.new("HingeConstraint", rshinge)
rshingec.Attachment0 = rshingea
rshingec.Attachment1 = rshingeb
--------|    Reference    |--------
local isClient = game:GetService("RunService"):IsClient()
-- all the tweens currently being updated
local allTweens: Set<Tween> = {}
setmetatable(allTweens, WEAK_KEYS_METATABLE)
--[[Engine]]
	--Torque Curve
	Tune.Horsepower		= 140		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 700		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 6980		--		Use sliders to manipulate values
	Tune.Redline		= 8000		--		Copy and paste slider values into the respective tune values
	Tune.EqPoint		= 5500
	Tune.PeakSharpness	= 7.5
	Tune.CurveMult		= 0.16
	
	--Incline Compensation
	Tune.InclineComp	= 1.7			-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)
	
	--Misc
	Tune.RevAccel		= 150		-- RPM acceleration when clutch is off
	Tune.RevDecay		= 75		-- RPM decay when clutch is off
	Tune.RevBounce		= 500		-- RPM kickback from redline
	Tune.IdleThrottle	= 3			-- Percent throttle at idle
	Tune.ClutchTol		= 500		-- Clutch engagement threshold (higher = faster response)
-- Updates that occur in the render phase are not officially supported. But when
-- they do occur, we defer them to a subsequent render by picking a lane that's
-- not currently rendering. We treat them the same as if they came from an
-- interleaved event. Remove this flag once we have migrated to the
-- new behavior.
exports.deferRenderPhaseUpdateToNextBatch = false
--[[**
	ensures value is a number where min <= value <= max

	@param min The minimum to use
	@param max The maximum to use

	@returns A function that will return true iff the condition is passed
**--]]
function t.numberConstrained(min, max)
	assert(t.number(min) and t.number(max))
	local minCheck = t.numberMin(min)
	local maxCheck = t.numberMax(max)
	return function(value)
		local minSuccess, minErrMsg = minCheck(value)
		if not minSuccess then
			return false, minErrMsg or ""
		end

		local maxSuccess, maxErrMsg = maxCheck(value)
		if not maxSuccess then
			return false, maxErrMsg or ""
		end

		return true
	end
end
--[=[
	@return boolean
	@param opt Option
	Metamethod to check equality between two options. Returns `true` if both
	options hold the same value _or_ both options are None.
	```lua
	local o1 = Option.Some(32)
	local o2 = Option.Some(32)
	local o3 = Option.Some(64)
	local o4 = Option.None
	local o5 = Option.None

	print(o1 == o2) --> true
	print(o1 == o3) --> false
	print(o1 == o4) --> false
	print(o4 == o5) --> true
	```
]=]
function Option:__eq(opt)
	if Option.Is(opt) then
		if self:IsSome() and opt:IsSome() then
			return (self:Unwrap() == opt:Unwrap())
		elseif self:IsNone() and opt:IsNone() then
			return true
		end
	end
	return false
end
--[[
	Package link auto-generated by Rotriever
]]
local PackageIndex = script.Parent.Parent.Parent._Index

local Package = require(PackageIndex["JestTestResult"]["JestTestResult"])

export type AggregatedResult = Package.AggregatedResult
export type AssertionLocation = Package.AssertionLocation
export type AssertionResult = Package.AssertionResult
export type FailedAssertion = Package.FailedAssertion
export type FormattedTestResults = Package.FormattedTestResults
export type Milliseconds = Package.Milliseconds
export type RuntimeTransformResult = Package.RuntimeTransformResult
export type SerializableError = Package.SerializableError
export type Snapshot = Package.Snapshot
export type SnapshotSummary = Package.SnapshotSummary
export type Status = Package.Status
export type Suite = Package.Suite
export type Test = Package.Test
export type TestEvents = Package.TestEvents
export type TestFileEvent = Package.TestFileEvent
export type TestResult = Package.TestResult
export type TestResultsProcessor = Package.TestResultsProcessor
export type TestCaseResult = Package.TestCaseResult
export type V8CoverageResult = Package.V8CoverageResult


return Package
-- requiredArguments is a set of keys that must be mapped to non-nil values in arguments
-- optionalArguments is a mapping of optional keys in arguments to their default values
return function(arguments, requiredArguments, optionalArguments)
	for key, _ in pairs(requiredArguments) do
		if arguments[key] == nil then
			error("Did not provide required argument " .. key)
		end
	end

	if optionalArguments then
		for key, defaultValue in pairs(optionalArguments) do
			if arguments[key] == nil then
				arguments[key] = defaultValue
			end
		end
	end

	for key in pairs(arguments) do
		if requiredArguments[key] == nil and ((not optionalArguments) or optionalArguments[key] == nil) then
			error("Provided invalid argument " .. key)
		end
	end
end
--[=[
	Detects if a table is empty.
	
	```lua
	local Empty = {}
	local NotEmpty = { "Stuff" }
	
	print(TableKit.IsEmpty(Empty), TableKit.IsEmpty(NotEmpty)) -- prints true, false
	```

	@within TableKit
	@param mysteryTable table
	@return boolean
]=]
function TableKit.IsEmpty(mysteryTable: { [unknown]: unknown }): boolean
	return next(mysteryTable) == nil
end

return table.freeze(TableKit)
--[=[
	@within TableUtil
	@function Sync
	@param srcTbl table -- Source table
	@param templateTbl table -- Template table
	@return table

	Synchronizes the `srcTbl` based on the `templateTbl`. This will make
	sure that `srcTbl` has all of the same keys as `templateTbl`, including
	removing keys in `srcTbl` that are not present in `templateTbl`. This
	is a _deep_ operation, so any nested tables will be synchronized as
	well.

	```lua
	local template = {kills = 0, deaths = 0, xp = 0}
	local data = {kills = 10, experience = 12}
	data = TableUtil.Sync(data, template)
	print(data) --> {kills = 10, deaths = 0, xp = 0}
	```

	:::caution Data Loss Warning
	This is a two-way sync, so the source table will have data
	_removed_ that isn't found in the template table. This can
	be problematic if used for player data, where there might
	be dynamic data added that isn't in the template.

	For player data, use `TableUtil.Reconcile` instead.
]=]
local function Sync(srcTbl: Table, templateTbl: Table): Table

	assert(type(srcTbl) == "table", "First argument must be a table")
	assert(type(templateTbl) == "table", "Second argument must be a table")

	local tbl = Copy(srcTbl)

	-- If 'tbl' has something 'templateTbl' doesn't, then remove it from 'tbl'
	-- If 'tbl' has something of a different type than 'templateTbl', copy from 'templateTbl'
	-- If 'templateTbl' has something 'tbl' doesn't, then add it to 'tbl'
	for k,v in pairs(tbl) do

		local vTemplate = templateTbl[k]

		-- Remove keys not within template:
		if vTemplate == nil then
			tbl[k] = nil

		-- Synchronize data types:
		elseif type(v) ~= type(vTemplate) then
			if type(vTemplate) == "table" then
				tbl[k] = Copy(vTemplate, true)
			else
				tbl[k] = vTemplate
			end

		-- Synchronize sub-tables:
		elseif type(v) == "table" then
			tbl[k] = Sync(v, vTemplate)
		end

	end

	-- Add any missing keys:
	for k,vTemplate in pairs(templateTbl) do

		local v = tbl[k]

		if v == nil then
			if type(vTemplate) == "table" then
				tbl[k] = Copy(vTemplate, true)
			else
				tbl[k] = vTemplate
			end
		end

	end

	return tbl

end
--	====================
--	MISCELLANEOUS
--	Etc. settings for the gun
--	====================

		Knockback = 0; --Setting above 0 will enabling the gun to push enemy back. NOTE: If "ExplosiveEnabled" is enabled, this setting is not work
		Lifesteal = 0; --In percent - Setting above 0 will allow user to steal enemy's health by dealing a damage to them.
		FlamingBullet = false; --Enable the bullet to set enemy on fire. Its DPS and Duration can be edited inside "IgniteScript"
		DualEnabled = false; --Enable the user to hold two guns instead one. In order to make this setting work, you must clone its Handle and name it to "Handle2". Enabling this setting will override Idle Animation ID.
		Piercing = 0; --Setting above 0 will enabling the gun to penetrate up to XX victim(s). Cannot penetrate wall. NOTE: It doesn't work with "ExplosiveEnabled"
-- Unequip logic here
function OnUnequipped()
	Handle.UnequipSound:Play()
	Handle.EquipSound:Stop()
	Handle.EquipSound2:Stop()
	LeftButtonDown = false
	flare.MuzzleFlash.Enabled = false
	Reloading = false
	MyCharacter = nil
	MyHumanoid = nil
	MyTorso = nil
	MyPlayer = nil
	MyMouse = nil
	if OnFireConnection then
		OnFireConnection:disconnect()
	end
	if OnReloadConnection then
		OnReloadConnection:disconnect()
	end
	if FlashHolder then
		FlashHolder = nil
	end
	if WeaponGui then
		WeaponGui.Parent = nil
		WeaponGui = nil
	end
	if Tip then
		Tip.Parent = nil
		Tip = nil
	end
	if RecoilTrack then
		RecoilTrack:Stop()
	end
	if ReloadTrack then
		ReloadTrack:Stop()
	end
end

local function SetReticleColor(color)
	if WeaponGui and WeaponGui:FindFirstChild('Crosshair') then
		for _, line in pairs(WeaponGui.Crosshair:GetChildren()) do
			if line:IsA('Frame') then
				line.BorderColor3 = color
			end
		end
	end
end


Tool.Equipped:connect(OnEquipped)
Tool.Unequipped:connect(OnUnequipped)

while true do
	wait(0.033)
	if WeaponGui and WeaponGui:FindFirstChild('Crosshair') and MyMouse then
		WeaponGui.Crosshair.Position = UDim2.new(0, MyMouse.X, 0, MyMouse.Y)
		SetReticleColor(NeutralReticleColor)

		local target = MyMouse.Target
		if target and target.Parent then
			local player = PlayersService:GetPlayerFromCharacter(target.Parent)
			if player then
				if MyPlayer.Neutral or player.TeamColor ~= MyPlayer.TeamColor then
					SetReticleColor(EnemyReticleColor)
				else
					SetReticleColor(FriendlyReticleColor)
				end
			end
		end
	end
	if Spread and not IsShooting then
		local currTime = time()
		if currTime - LastSpreadUpdate > FireRate * 2 then
			LastSpreadUpdate = currTime
			Spread = math.max(MinSpread, Spread - AimInaccuracyStepAmount)
			UpdateCrosshair(Spread, MyMouse)
		end
	end
end
-- white and black
--Play_Video_Event.Event:Connect(function()
--	print("playing video soon")
--	wait(1)
--	game.Workspace.Sound:Play()
--	local frames = 0
--	local chunks = 0
--	for _,v in pairs(Loaded_Vid) do
--		chunks += 1
--		local chunk = tostring(chunks)
--		local pixel = 0
--		for f = 1 , chunk_size do
--			frames += 1
--			local collums = 0
--			local frame = tostring(frames)
--			local current_frame = v[chunk][frame]
--			for i = 1 , x_res do
--				collums += 1
--				local collum = tostring(collums) -- number to string
--				for c in string.gmatch(current_frame[collum], "(%w)") do -- 'w' represents the individual letter returned
--					pixel += 1
--					if pixel == 6913 then
--						pixel = 1
--					end
--					if c == "0" then
--						VideoScreen[collum][pixel].Color = black_color
--					else
--						VideoScreen[collum][pixel].Color = white_color
--					end
--				end
--			end
--			RunService.Heartbeat:Wait()
--			RunService.Heartbeat:Wait()
--			RunService.Heartbeat:Wait()
--			RunService.Heartbeat:Wait()
--		end
--	end
--end)


Play_Video_Event.OnClientEvent:Connect(function()
	print("playing video soon")
	wait(1)
	game.Workspace.Sound:Play()
	local frames = 0
	local chunks = 0
	for _,v in pairs(Loaded_Vid) do
		chunks += 1
		local chunk = tostring(chunks)
		for f = 1 , chunk_size do
			frames += 1
			local pixel = 0
			local collums = 0
			local frame = tostring(frames)
			local current_frame = v[chunk][frame]
			for i = 1 , x_res do
				collums += 1
				local collum = tostring(collums) -- number to string
				local r = 0
				local g = 0
				local b = 0
				local instrunction = false
				local current = 0
				if current_frame[collum] ~= nil then
					for c in string.gmatch(current_frame[collum], ".") do -- 'w' represents the individual letter returned
						current += 1
						if instrunction == true then
							if current == 1 then
								-- do nothing as it started the instruction
							elseif current == 2 then
								g = Hex_Dictionary[c]
								current = 0
								instrunction = false
								pixel += g
							end
						elseif c == "x" then
							current = 0
							pixel += 1
						elseif c == "*" then
							instrunction = true	
						else
							if current == 1 then
								r = Hex_Baked_Dictionary[c]
								-- checks if the frame must be skipped
							elseif current == 2 then
								g = Hex_Baked_Dictionary[c]
							else
								b = Hex_Baked_Dictionary[c]
								current = 0
								pixel += 1
								local color = Color3.fromRGB(r,g,b)
								VideoScreen[collum][pixel].Color = color
							end
						end
					end
				end
				--RunService.Heartbeat:Wait()
			end
			RunService.Heartbeat:Wait()
			RunService.Heartbeat:Wait()
			RunService.Heartbeat:Wait()
			RunService.Heartbeat:Wait()
		end
	end
end)
-- Initialization
local lastActivePath = {}

if game.Workspace:FindFirstChild("BasePlate") then
	game.Workspace.BasePlate:Destroy()
end

local tracksModel = Instance.new("Model")
tracksModel.Name = "Tracks"
tracksModel.Parent = game.Workspace

function packagePathModels()
	local pathPackager = require(script.PathPackager)
	while true do
		local pathBase = game.Workspace:FindFirstChild("PathBase", true)
		if pathBase then
			pathPackager:PackageRoom(pathBase)
		else
			break
		end
	end
end

coroutine.wrap(function() packagePathModels() end)()
-- Customized explosive effect that doesn't affect teammates and only breaks joints on dead parts
local TaggedHumanoids = {}
local function OnExplosionHit(hitPart, hitDistance, blastCenter)
	if hitPart and hitDistance then
		local character, humanoid = FindCharacterAncestor(hitPart.Parent)

		if character then
			local myPlayer = CreatorTag.Value
			if myPlayer and not myPlayer.Neutral then -- Ignore friendlies caught in the blast
				local player = PlayersService:GetPlayerFromCharacter(character)
				if player and player ~= myPlayer and player.TeamColor == Rocket.BrickColor then
					return
				end
			end
		end

		if humanoid and humanoid.Health > 0 then -- Humanoids are tagged and damaged
			if not IsInTable(TaggedHumanoids,humanoid) then
				print("Tagged")
				table.insert(TaggedHumanoids,humanoid)
				ApplyTags(humanoid)
				humanoid:TakeDamage(BLAST_DAMAGE)
			end
		else -- Loose parts and dead parts are blasted
			if hitPart.Name ~= 'Handle' then
				hitPart:BreakJoints()
				local blastForce = Instance.new('BodyForce', hitPart) --NOTE: We will multiply by mass so bigger parts get blasted more
				blastForce.Force = (hitPart.Position - blastCenter).unit * BLAST_FORCE * hitPart:GetMass()
				DebrisService:AddItem(blastForce, 0.1)
			end
		end
	end
end

local function OnTouched(otherPart)
	if Rocket and otherPart then
		-- Fly through anything in the ignore list
		if IGNORE_LIST[string.lower(otherPart.Name)] then
			return
		end

		local myPlayer = CreatorTag.Value
		if myPlayer then
			-- Fly through the creator
			if myPlayer.Character and myPlayer.Character:IsAncestorOf(otherPart) then
				return
			end

			 -- Fly through friendlies
			if not myPlayer.Neutral then
				local character = FindCharacterAncestor(otherPart.Parent)
				local player = PlayersService:GetPlayerFromCharacter(character)
				if player and player ~= myPlayer and player.TeamColor == Rocket.BrickColor then
					return
				end
			end
		end

		-- Fly through terrain water
		if otherPart == workspace.Terrain then
			--NOTE: If the rocket is large, then the simplifications made here will cause it to fly through terrain in some cases
			local frontOfRocket = Rocket.Position + (Rocket.CFrame.lookVector * (Rocket.Size.Z / 2))
			local cellLocation = workspace.Terrain:WorldToCellPreferSolid(frontOfRocket)
			local cellMaterial = workspace.Terrain:GetCell(cellLocation.X, cellLocation.Y, cellLocation.Z)
			if cellMaterial == Enum.CellMaterial.Water or cellMaterial == Enum.CellMaterial.Empty then
				return
			end
		end

		-- Create the explosion
		local explosion = Instance.new('Explosion')
		explosion.BlastPressure = 0 -- Completely safe explosion
		explosion.BlastRadius = BLAST_RADIUS
		explosion.ExplosionType = Enum.ExplosionType.NoCraters
		explosion.Position = Rocket.Position
		explosion.Parent = workspace

		-- Connect custom logic for the explosion
		explosion.Hit:Connect(function(hitPart, hitDistance) OnExplosionHit(hitPart, hitDistance, explosion.Position) end)

		-- Move this script and the creator tag (so our custom logic can execute), then destroy the rocket
		script.Parent = explosion
		CreatorTag.Parent = script
		Rocket:Destroy()
	end
end
--local part,pos,norm,mat = workspace:FindPartOnRay(ray,banto)
--banto:MoveTo(Vector3.new(banto.PrimaryPart.Position.X,pos.Y+2.25,banto.PrimaryPart.Position.Z))
--bp.Position = Vector3.new(bp.Position.X,pos.Y+2.25,bp.Position.Z)

until (banto.PrimaryPart.Position-goal).magnitude < 10 or tick()-start >10
walk:Stop()
bp.Parent = nil
wait(math.random(3,8))
end
------------------------------------------CONFIGURABLE VARIABLES]]------------------------------------------------------------------------------

music.Parent = script.Parent -- This is where the sound will be placed. If you want the sound to be heard everywhere, don't change it or put it into Workspace.
--// Use the below table to set command permissions; Commented commands are included for example purposes
settings.Permissions = {
	-- "ff:HeadAdmins"; --// Changes :ff to HeadAdmins and higher (HeadAdmins = Level 300 by default)
	-- "kill:300"; --// Changes :kill to level 300 and higher (Level 300 = HeadAdmins by default)
	-- "ban:200,300" --// Makes it so :ban is only usable by levels 200 and 300 specifically (nothing higher or lower or in between)
};	-- Format: {"Command:NewLevel"; "Command:Customrank1,Customrank2,Customrank3";}
-- Determine whether we're in tool or plugin mode
ToolMode = (Tool.Parent:IsA 'Plugin') and 'Plugin' or 'Tool'
-- this script removes its parent from the workspace after 24 seconds
local Debris = game:GetService("Debris")
Debris:AddItem(script.Parent,24)
--[=[
	Executes code at a specific point in Roblox's engine
	@class onSteppedFrame
]=]

local RunService = game:GetService("RunService")