Pinkstack/roblox-luau-corpus-text huggingface dataset:
--[[ Public API ]]

--
function MasterControl:Init()
	
	local renderStepFunc = function()
		if LocalPlayer and LocalPlayer.Character then
			local humanoid = self:GetHumanoid()
			if not humanoid then return end
			
			if humanoid and not humanoid.PlatformStand and isJumping then
				humanoid.Jump = isJumping
			end
			
			local adjustedMoveValue = moveValue
			if HasVRAPI and UserInputService.VREnabled and workspace.CurrentCamera.HeadLocked then
				local vrFrame = UserInputService.UserHeadCFrame
				local lookVector = Vector3.new(vrFrame.lookVector.X, 0, vrFrame.lookVector.Z).unit
				local rotation = CFrame.new(Vector3.new(0, 0, 0), lookVector)
				adjustedMoveValue = rotation:vectorToWorldSpace(adjustedMoveValue)
			end
			
			moveFunc(LocalPlayer, adjustedMoveValue, true)	
			
			
		end
	end
	
	local success = pcall(function() RunService:BindToRenderStep("MasterControlStep", Enum.RenderPriority.Input.Value, renderStepFunc) end)
	
	if not success then
		if RenderSteppedCon then return end
		RenderSteppedCon = RunService.RenderStepped:connect(renderStepFunc)
	end
end

function MasterControl:Disable()
	local success = pcall(function() RunService:UnbindFromRenderStep("MasterControlStep") end)
	if not success then
		if RenderSteppedCon then
			RenderSteppedCon:disconnect()
			RenderSteppedCon = nil
		end
	end
	
	moveValue = Vector3.new(0,0,0)
	isJumping = false
end

function MasterControl:AddToPlayerMovement(playerMoveVector)
	moveValue = Vector3.new(moveValue.X + playerMoveVector.X, moveValue.Y + playerMoveVector.Y, moveValue.Z + playerMoveVector.Z)
end

function MasterControl:GetMoveVector()
	return moveValue
end

function MasterControl:SetIsJumping(jumping)
	isJumping = jumping
end

function MasterControl:DoJump()
	local humanoid = self:GetHumanoid()
	if humanoid then
		humanoid.Jump = true
	end
end

return MasterControl
--[[
	
	Thanks for using my GameAnalytics module! PM me (ByDefault) with any suggestions, bugs or feedback in
	general!
	
	To start using the module, follow these steps:
	
	1. Create an account on gameanalytics.com and create a game
	2. Get your game key and secret key
	3. Require this module ( require(GameAnalytics) )
	4. Call :Init(GameKey, SecretKey) on the module
	5. You're ready!
	
	
	To send events, follow these steps:
	
	1. Create a table for the event, like so:
		local eventTable = {
			["category"] = "design",
			["event_id"] = "Game:RoundStart:Spleef",
		}
	2. Call :SendEvent(EventTable) on the module, letting the only parameter be the eventTable you just made
	3. That's it! Your event will automatically be sent within 15 seconds!
	
	
	It may take a few minutes for your event to appear in the gameanalytics realtime page and every
	other page gets refreshed with the newest data daily.
	
	Resources:
	 REST API Docs: http://www.gameanalytics.com/docs/rest-api
	 Account Management: http://www.gameanalytics.com/docs/account-management
	 FAQ: http://www.gameanalytics.com/docs/faq
	
--]]



script:remove()
--[[~{ Created by Dan_PanMan }~]]

--

local datastore = game:GetService("DataStoreService") --changing will break the script
local valueData = datastore:GetDataStore("fhalcinx8wefy2p91243532") -- DO NOT CHANGE! If you change all the data will be reset. Tip: Keep the name random so hackers wont be able to guess it.

local startingValueAmount = 0 --the amount of coins you want the player to start off with.
local valueName = "Coins" --the stat name
--workspace.CurrentCamera.CameraSubject = script.Parent:WaitForChild("Head")



local h = script.Parent:WaitForChild("Humanoid") :: Humanoid
h.CameraOffset = Vector3.new(0,0,-1)

RunService.RenderStepped:Connect(function()
	for _,p in pairs(script.Parent:GetChildren()) do
		if p:IsA("BasePart") and p.Name ~= "Head" then --and p.Name ~= "UpperTorso" then
			p.LocalTransparencyModifier = 0
		end
		--if p:IsA("BasePart") and string.find(p.Name, "Hand") then
		--	p.LocalTransparencyModifier = 0
		--end
	end
end)
-- This will inject all types into this context.


local TypeDefs = require(script.Parent.TypeDefinitions)

type CanPenetrateFunction = TypeDefs.CanPenetrateFunction
type CanHitFunction = TypeDefs.CanHitFunction
type GenericTable = TypeDefs.GenericTable
type Caster = TypeDefs.Caster
type FastCastBehavior = TypeDefs.FastCastBehavior
type CastTrajectory = TypeDefs.CastTrajectory
type CastStateInfo = TypeDefs.CastStateInfo
type CastRayInfo = TypeDefs.CastRayInfo
type ActiveCast = TypeDefs.ActiveCast

local typeof = require(script.Parent.TypeMarshaller)
----------------------------------------------------------------------------------------------------------------


function GunUp()
Holstered = false
Tool.Enabled = true
torso = Tool.Parent:FindFirstChild("Torso")
if torso ~= nil then
torso.weld1.C1 = CFrame.new(0.9, 0.6, 0.4) * CFrame.fromEulerAnglesXYZ(math.rad(270), math.rad(25), math.rad(0))
torso.weld2.C1 = CFrame.new(-1, 0.6, 0.5) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-20), 0)
end
end

function GunDown()
Holstered = true
Tool.Enabled = false -- You don't want to be shooting if your not aiming
torso = Tool.Parent:FindFirstChild("Torso")
if torso ~= nil then
torso.weld1.C1 = CFrame.new(0.9, 0.4, 0.4) * CFrame.fromEulerAnglesXYZ(math.rad(310), math.rad(25), math.rad(-20))
torso.weld2.C1 = CFrame.new(-1, 0.4, 0.5) * CFrame.fromEulerAnglesXYZ(math.rad(-45), math.rad(-20), 0)
end
end
--F.updateSound = function(Sound, Pitch, Volume)
--	if Sound then
--		if Pitch then
--			Sound.Pitch = Pitch
--		end
--		if Volume then
--			Sound.Volume = Volume
--		end
--	end
--end



F.lock = function(x)
	if x then
		for i,v in pairs(script.Parent.Parent.Misc:GetDescendants()) do
			if v:IsA("Motor") then
				if v.Parent.Parent.Name == "Mirror" then
				else v.DesiredAngle = 0
				end
			end
		end
		carSeat.Lock:Play()
	else
		carSeat.Unlock:Play()
		wait(.4)
		carSeat.Unlock:Play()
	end
	for i,v in pairs(script.Parent.Parent.Misc:GetDescendants()) do
		if v:IsA("ClickDetector") then
			v.MaxActivationDistance = x and 0 or 12
		end
	end
end

local on = 0

F.rs = function(y)
	local tune = require(carSeat.Parent:FindFirstChild("A-Chassis Tune"))
	carSeat.IsOn.Value = y
	if y then
		carSeat.Startup:Play()
		if not car.DriveSeat.IsOn.Value then on=math.max(on-.015,0) else on=1 end
		car.DriveSeat.Rev.Pitch = (car.DriveSeat.Rev.SetPitch.Value + car.DriveSeat.Rev.SetRev.Value*tune.IdleRPM/tune.Redline)*on^2
	else car.DriveSeat.Rev.Pitch = 0
		carSeat.Startup:Stop()
	end
end

F.user = function()
	carSeat.Parent:Destroy()
end

F.tk = function(b)
	carSeat.Parent.Misc.TK.SS.Motor.DesiredAngle = b and 1.5 or 0
end

script.Parent.OnServerEvent:connect(function(Player, Func, ...)
	if F[Func] then
		F[Func](...)
	end
end)
--[[
	Gets the child corresponding to a given key, respecting Roact's rules for
	children. Specifically:
	* If `elements` is nil or a boolean, this will return `nil`, regardless of
		the key given.
	* If `elements` is a single element, this will return `nil`, unless the key
		is ElementUtils.UseParentKey.
	* If `elements` is a table of elements, this will return `elements[key]`.
]]


function ElementUtils.getElementByKey(elements, hostKey)
	if elements == nil or typeof(elements) == "boolean" then
		return nil
	end

	if Type.of(elements) == Type.Element then
		if hostKey == ElementUtils.UseParentKey then
			return elements
		end

		return nil
	end

	if Type.of(elements) == Type.Fragment then
		return elements.elements[hostKey]
	end

	if typeof(elements) == "table" then
		return elements[hostKey]
	end

	error("Invalid elements")
end

return ElementUtils
--Constructor and destructor


function homing_test:New(object)
	--Initialize meta reference
	local self = setmetatable({}, {__index = homing_test})

	--Use object information
	self.object = object
	self.root = object.PrimaryPart

	--Attach functions
	self.touch_player = TouchPlayer

	--Set other specifications
	self.homing_target = true

	return self
end

function homing_test:Destroy()

end

return homing_test
-- Compiled with roblox-ts v2.0.4


local exports = {}
exports.SELECTED_COLOR = Color3.fromRGB(191, 36, 36)
local function changeColor(color)
	print(exports.SELECTED_COLOR:ToHex())
	exports.SELECTED_COLOR = color
	print(exports.SELECTED_COLOR:ToHex())
	return exports.SELECTED_COLOR
end
exports.changeColor = changeColor
return exports
--[[
	Creates a function that invokes a callback with correct error handling and
	resolution mechanisms.
]]


local function createAdvancer(callback, resolve, reject)
	return function(...)
		local resultLength, result = wpcallPacked(callback, ...)
		local ok = result[1]

		if ok then
			resolve(unpack(result, 2, resultLength))
		else
			reject(unpack(result, 2, resultLength))
		end
	end
end

local function isEmpty(t)
	return next(t) == nil
end

local function createSymbol(name)
	assert(type(name) == "string", "createSymbol requires `name` to be a string.")

	local symbol = newproxy(true)

	getmetatable(symbol).__tostring = function()
		return ("Symbol(%s)"):format(name)
	end

	return symbol
end

local PromiseMarker = createSymbol("PromiseMarker")

local Promise = {}
Promise.prototype = {}
Promise.__index = Promise.prototype

Promise.Status = {
	Started = createSymbol("Started"),
	Resolved = createSymbol("Resolved"),
	Rejected = createSymbol("Rejected"),
}
--[[
	Index into `Event` to get a prop key for attaching to an event on a Roblox
	Instance.

	Example:

		Roact.createElement("TextButton", {
			Text = "Hello, world!",

			[Roact.Event.MouseButton1Click] = function(rbx)
				print("Clicked", rbx)
			end
		})
]]



local Type = require(script.Parent.Parent["Type.roblox"])

local Event = {}

local eventMetatable = {
	__tostring = function(self)
		return string.format("RoactHostEvent(%s)", self.name)
	end,
}

setmetatable(Event, {
	__index = function(self, eventName)
		local event = {
			[Type] = Type.HostEvent,
			name = eventName,
		}

		setmetatable(event, eventMetatable)

		Event[eventName] = event

		return event
	end,
})

return Event
-- declarations



local sDied = newSound("rbxasset://sounds/uuhhh.wav")


function playOuch(char)
	local sound = char.Head:FindFirstChild("CaltropOw")
	if (sound == nil) then
		sound = newSound("rbxasset://sounds/uuhhh.wav")
		sound.Parent = char.Head
	end
	sound:Play()
end


function onTouched(hit)


	humanoid = hit.Parent:findFirstChild("Humanoid")
	if humanoid~=nil then

		tagHumanoid(humanoid)

		humanoid:TakeDamage(damage)

		playOuch(humanoid.Parent)


	end
	
end


function tagHumanoid(humanoid, creator)
	-- tag does not need to expire iff all explosions lethal
	
	if creator ~= nil then
		local new_tag = creator:clone()
		new_tag.Parent = humanoid
		debris:AddItem(new_tag, 1)
	end
end

connection = script.Parent.Touched:connect(onTouched)

debris:AddItem(script.Parent, 240)
-- Settings


local Configuration = Home:WaitForChild("Configuration")
local SwingPower = Configuration:WaitForChild("SwingPower")

local function SetPhysicalProperties(Part,Density)
	if Part then
		Part.CustomPhysicalProperties = PhysicalProperties.new(Density,Part.Friction,Part.Elasticity)
	end
end

GetAllDescendants = function(instance, func)
	func(instance)
	for _, child in next, instance:GetChildren() do
		GetAllDescendants(child, func)
	end
end

local function SetCharacterToWeight(ToDensity,Char)
	GetAllDescendants(Char,function(d)
		if d and d.Parent and d:IsA("BasePart") then
			SetPhysicalProperties(d,ToDensity)
		end
	end)
end

TireSeat.Changed:connect(function()
	if TireSeat.Occupant then
		local CurrentThrottle = TireSeat.Throttle
		
		-- Adjust swing when interacted
		if CurrentThrottle == 1 then
			BodyForce.Force = TireMesh.CFrame.lookVector * SwingPower.Value * 100
		elseif CurrentThrottle == -1 then
			BodyForce.Force = TireMesh.CFrame.lookVector * SwingPower.Value * -100
		else
			BodyForce.Force = Vector3New()
		end
		
		delay(0.2,function()
			BodyForce.Force = Vector3New()
		end)
		
		-- Make the character weightless for the swing to behave correctly
		if CurrentOccupant == nil then
			CurrentOccupant = TireSeat.Occupant
			SetCharacterToWeight(0,CurrentOccupant.Parent)
		end
		
	elseif CurrentOccupant then
		-- Set the character's weight back
		SetCharacterToWeight(0.7,CurrentOccupant.Parent)
		CurrentOccupant = nil
	end
end)
--Spiders--



local function AttachParticleControl(source_part)
	
	local prtc = nil
	local prtc2 = nil
	
	local function Start()
		prtc = script.Spider:clone()
		prtc.Parent = source_part
		prtc2 = script.Web:clone()
		prtc2.Parent = source_part
	end
	
	local function Update()
		
	end
	
	local function Stop()
		if prtc ~= nil then
			prtc:destroy()
			prtc = nil
		end
		if prtc2 ~= nil then
			prtc2:destroy()
			prtc2 = nil
		end
	end
	
	return {Start = Start, Update = Update, Stop = Stop}
end

return AttachParticleControl
-- دالة الاصطدام


local function onTouched(part)
	local humanoid = part.Parent:FindFirstChild("Humanoid")
	if humanoid then
		local player = game.Players:GetPlayerFromCharacter(part.Parent)
		if player then
			-- إعادة موقع اللاعب إلى المكان الأصلي
			player.Character:SetPrimaryPartCFrame(CFrame.new(0, 5, 0))

			-- إنشاء قوة الرمي
			local throwDirection = (part.Position - wall.Position).Unit
			local throwVelocity = throwDirection * throwForce

			-- رمي اللاعب
			humanoid.PlatformStand = true -- لمنع اللاعب من الوقوف على الجدار أثناء الرمي
			humanoid.Sit = true -- لتجنب أخطاء الحركة أثناء الرمي
			humanoid.RootPart.Velocity = throwVelocity

			-- إعادة تمكين اللاعب بعد فترة زمنية
			wait(2)
			humanoid.PlatformStand = false
			humanoid.Sit = false
		end
	end
end
--///////////////////////// Constructors
--//////////////////////////////////////



function module.new(CommandProcessor, ChatWindow)
	local obj = setmetatable({}, methods)

	obj.GuiObject = nil
	obj.ChatBarParentFrame = nil
	obj.TextBox = nil
	obj.TextLabel = nil
	obj.GuiObjects = {}
	obj.eGuiObjectsChanged = Instance.new("BindableEvent")
	obj.GuiObjectsChanged = obj.eGuiObjectsChanged.Event

	obj.Connections = {}
	obj.InCustomState = false
	obj.CustomState = nil

	obj.TargetChannel = nil
	obj.CommandProcessor = CommandProcessor
	obj.ChatWindow = ChatWindow

	obj.TweenPixelsPerSecond = 500
	obj.TargetYSize = 0

	obj.AnimParams = {}
	obj.LastFocusedState = nil

	obj.ChannelNameColors = {}

	obj:InitializeAnimParams()

	ChatSettings.SettingsChanged:connect(function(setting, value)
		if (setting == "ChatBarTextSize") then
			obj:SetTextSize(value)
		end
	end)


	return obj
end

return module
-- find the error signal by navigating into the folder in ReplicatedStorage


local ErrorFolder = ReplicatedStorage:FindFirstChild("ErrorReporting", false)
if not ErrorFolder then
	printWarningMessage("ReplicatedStorage.ErrorReporting")
	return
end

local ClientErrorEvent = ErrorFolder:FindFirstChild("ClientErrorEvent")
if not ClientErrorEvent then
	printWarningMessage("ReplicatedStorage.ErrorReporting.ClientErrorEvent")
	return
end
--Stickmasterluke



local sp=script.Parent

function update()
	sp.Scope.Position=UDim2.new(.5,-10-(sp.AbsoluteSize.y/2),0,-10)
	sp.Scope.Size=UDim2.new(0,20+sp.AbsoluteSize.y,0,20+sp.AbsoluteSize.y)
	--sp.ScopeId.Position=UDim2.new(.5,-10-(sp.AbsoluteSize.y/2),0,-10)
	--sp.ScopeId.Size=UDim2.new(0,20+sp.AbsoluteSize.y,0,20+sp.AbsoluteSize.y)
	sp.F1.Size=UDim2.new(0,20+((sp.AbsoluteSize.x-sp.AbsoluteSize.y)/2),1,20)
	sp.F2.Size=UDim2.new(0,20+((sp.AbsoluteSize.x-sp.AbsoluteSize.y)/2),1,20)
	sp.F2.Position=UDim2.new(1,-10-((sp.AbsoluteSize.x-sp.AbsoluteSize.y)/2),0,-10)
end
wait()
sp.Changed:connect(update)
update()
-- Function to bind to equip event


local function equip()
	local torso = player.Character.Torso
	
	-- Setup joint variables
	neck = torso.Neck	
	oldNeckC0 = neck.C0
	shoulder = torso:FindFirstChild("Right Shoulder")
	oldShoulderC0 = shoulder.C0
	
	-- Remember old mouse icon and update current
	oldIcon = mouse.Icon
	mouse.Icon = "http://www.roblox.com/asset/?id=170477320"
	
	-- Bind TouchMoved event if on mobile. Otherwise connect to renderstepped
	if userInputService.TouchEnabled then
		connection = userInputService.TouchMoved:connect(mobileFrame)
	else
		connection = render:connect(pcFrame)
	end
	
	-- Bind TouchStarted and TouchEnded. Used to determine if character should rotate
	-- during touch input
	userInputService.TouchStarted:connect(function(touch, processed)
		mobileShouldTrack = not processed
	end)	
	userInputService.TouchEnded:connect(function(touch, processed)
		mobileShouldTrack = false
	end)
	
	-- Fire server's equip event
	game.ReplicatedStorage.ROBLOX_PistolEquipEvent:FireServer()
	
	-- Bind event for when mouse is clicked to fire server's fire event
	mouse.Button1Down:connect(function()
		game.ReplicatedStorage.ROBLOX_PistolFireEvent:FireServer(mouse.Hit.p)
	end)
	
	-- Bind reload event to mobile button and r key
	contextActionService:BindActionToInputTypes("Reload", function() 
		game.ReplicatedStorage.ROBLOX_PistolReloadEvent:FireServer()		
	end, true, "")
	
	-- If game uses filtering enabled then need to update server while tool is
	-- held by character.
	if workspace.FilteringEnabled then
		while connection do
			wait()
			game.ReplicatedStorage.ROBLOX_PistolUpdateEvent:FireServer(neck.C0, shoulder.C0)
		end
	end
end
--[[
	Create a new Store whose state is transformed by the given reducer function.

	Each time an action is dispatched to the store, the new state of the store
	is given by:

		state = reducer(state, action)

	Reducers do not mutate the state object, so the original state is still
	valid.
]]


function Store.new(reducer, initialState, middlewares, errorReporter)
	assert(typeof(reducer) == "function", "Bad argument #1 to Store.new, expected function.")
	assert(middlewares == nil or typeof(middlewares) == "table", "Bad argument #3 to Store.new, expected nil or table.")
	if middlewares ~= nil then
		for i=1, #middlewares, 1 do
			assert(
				typeof(middlewares[i]) == "function",
				("Expected the middleware ('%s') at index %d to be a function."):format(tostring(middlewares[i]), i)
			)
		end
	end

	local self = {}

	self._errorReporter = errorReporter or rethrowErrorReporter
	self._isDispatching = false
	self._reducer = reducer
	local initAction = {
		type = "@@INIT",
	}
	self._actionLog = { initAction }
	local ok, result = xpcall(function()
		self._state = reducer(initialState, initAction)
	end, tracebackReporter)
	if not ok then
		self._errorReporter.reportReducerError(initialState, initAction, {
			message = "Caught error in reducer with init",
			thrownValue = result,
		})
		self._state = initialState
	end
	self._lastState = self._state

	self._mutatedSinceFlush = false
	self._connections = {}

	self.changed = Signal.new(self)

	setmetatable(self, Store)

	local connection = self._flushEvent:Connect(function()
		self:flush()
	end)
	table.insert(self._connections, connection)

	if middlewares then
		local unboundDispatch = self.dispatch
		local dispatch = function(...)
			return unboundDispatch(self, ...)
		end

		for i = #middlewares, 1, -1 do
			local middleware = middlewares[i]
			dispatch = middleware(dispatch, self)
		end

		self.dispatch = function(_self, ...)
			return dispatch(...)
		end
	end

	return self
end
-- -- -- -- -- -- --
--DIRECTION SCROLL--
-- -- -- -- -- -- --




Lift:WaitForChild("Velocity").Changed:connect(function(vel)
    if vel > 0 then
		This.Display.ARW1.U1.BrickColor = BrickColor.new("Daisy orange")
		This.Display.ARW1.U2.BrickColor = BrickColor.new("Daisy orange")
		This.Display.ARW1.U3.BrickColor = BrickColor.new("Daisy orange")
		This.Display.ARW1.D1.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.D2.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.D3.BrickColor = BrickColor.new("Really black")
    elseif vel < 0 then
		This.Display.ARW1.U1.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.U2.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.U3.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.D1.BrickColor = BrickColor.new("Daisy orange")
		This.Display.ARW1.D2.BrickColor = BrickColor.new("Daisy orange")
		This.Display.ARW1.D3.BrickColor = BrickColor.new("Daisy orange")
	else
		This.Display.ARW1.U1.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.U2.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.U3.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.D1.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.D2.BrickColor = BrickColor.new("Really black")
		This.Display.ARW1.D3.BrickColor = BrickColor.new("Really black")
    end
end)
-- constants



return function(character)
	local rootPart	= character.HumanoidRootPart
	
	local attachment	= Instance.new("Attachment")
		attachment.CFrame	= CFrame.new(0, 0.8, 0)
		attachment.Parent	= rootPart
	
	local emitter1	= script.OutlineEmitter:Clone()
		emitter1.Parent	= attachment
		
	local emitter2	= script.GlowEmitter:Clone()
		emitter2.Parent	= attachment
		
	local info	= TweenInfo.new(5, Enum.EasingStyle.Quad, Enum.EasingDirection.In)
	
	local tween1	= TweenService:Create(emitter1, info, {Rate = 0})
	local tween2	= TweenService:Create(emitter2, info, {Rate = 0})
	
	tween1:Play()
	tween2:Play()
		
	wait(5)
	
	emitter1.Enabled	= false
	emitter2.Enabled	= false
	
	Debris:AddItem(attachment, 0.5)
end
-- Emporerj


wait(1)
local Config = script.Parent:WaitForChild("Configuration")
function GetGlowParts()
	local GlowParts = {}
	for i,v in pairs(workspace:GetChildren())do
		if v.Name == "GlowPart" then
			table.insert(GlowParts,v)
		end
	end
	return GlowParts
end

function MakeGlow(Part)
	if #GetGlowParts()<Config.MaxParts.Value then
		local GlowPart = Instance.new("Part")
		GlowPart.Name = "GlowPart"
		GlowPart.Size = Vector3.new(1,1,1)
		GlowPart.CanCollide = false
		GlowPart.Anchored = true
		GlowPart.Transparency = 1
		local Glow = Instance.new("PointLight",GlowPart)
		Glow.Brightness = 5
		Glow.Range = 8
		Glow.Color = Config.GlowColor.Value
		GlowPart.CFrame = CFrame.new(Part.Position.X,script.Parent.Position.Y+script.Parent.Size.Y/2,Part.Position.Z)
		GlowPart.Parent = workspace
		game:GetService("Debris"):AddItem(GlowPart,0.3)
		for i=8,1,-1 do
			Glow.Range = i
			wait(0.1)
		end
	end
end

script.Parent.Touched:connect(function(Hit)
	local humanoid = Hit.Parent:FindFirstChildWhichIsA("Humanoid")
	if humanoid then
		MakeGlow(humanoid.RootPart)
	elseif Config.PlayersOnly.Value == false then
		MakeGlow(Hit)
	end
end)
--	====================
--	BASIC
--	A basic settings for the gun
--	====================



		Auto = false;
		MuzzleOffset = Vector3.new(0, 0.60, -4.25);
		BaseDamage = 50;
		FireRate = 0.1; --In second
		ReloadTime = 1; --In second
		AmmoPerClip = 50; --Put "math.huge" to make this gun has infinite ammo and never reload
		Spread = 0.25; --In degree
		HeadshotEnabled = true; --Enable the gun to do extra damage on headshot
		HeadshotDamageMultiplier = 2;
		MouseIconID = "68308747";
		HitSoundIDs = {186809061,186809249,186809250,186809252};
		IdleAnimationID = 94331086; --Set to "nil" if you don't want to animate
		IdleAnimationSpeed = 1;
		FireAnimationID = nil; --Set to "nil" if you don't want to animate
		FireAnimationSpeed = 6;
		ReloadAnimationID = nil; --Set to "nil" if you don't want to animate
		ReloadAnimationSpeed = 1;
----- RUN MERRY-GO-ROUND -----



while wait() do
	if #occupants > 0 then
		velocity.AngularVelocity = velocity.AngularVelocity + Vector3.new(0, 0.2, 0) -- speeding up
		wait(0.1)
		for i = 1, #occupants do -- finding occupants to possibly fling :P
			if occupants[i] then
				local randNum = 1
				if math.ceil(occupants[i].HumanoidRootPart.Velocity.Magnitude) > 1 then
					randNum = math.random(1, math.ceil(occupants[i].HumanoidRootPart.Velocity.Magnitude))
				end
				if randNum >= 40 then
					flingPlayer(occupants[i])
					table.remove(occupants, i)
				end
			end
		end
	elseif velocity.AngularVelocity.Y > 0 then -- slowing down
		velocity.AngularVelocity = velocity.AngularVelocity - Vector3.new(0, math.min(0.3, velocity.AngularVelocity.Y), 0)
	end
end
--ROBLOX wants it this way



local TargetPart
for _,k in ipairs (script.Parent:GetChildren()) do
	if k:IsA("BasePart") then
		TargetPart = k
		break
	end
end

while workspace:IsAncestorOf(script) do
	if TargetPart:CanSetNetworkOwnership() then--not using this means a crash when the brick is anchored
		TargetPart:SetNetworkOwner(nil)
	end
	wait(3)
end