Roblox/luau_corpus huggingface dataset:
--[[Driver Handling]]

	--Driver Sit	
	car.Body.CarName.Value.VehicleSeat.ChildAdded:connect(function(child)
		if child.Name=="SeatWeld" and child:IsA("Weld") and game.Players:GetPlayerFromCharacter(child.Part1.Parent)~=nil then
			--Distribute Client Interface
			local p=game.Players:GetPlayerFromCharacter(child.Part1.Parent)
			car.Body.CarName.Value.VehicleSeat:SetNetworkOwner(p)
			local g=script.Parent["A-Chassis Interface"]:Clone()
			g.Parent=p.PlayerGui
		end
	end)
	
	--Driver Leave
	car.Body.CarName.Value.VehicleSeat.ChildRemoved:connect(function(child)
		if child.Name=="SeatWeld" and child:IsA("Weld") then
			--Remove Flip Force
			if car.Body.CarName.Value.VehicleSeat:FindFirstChild("Flip")~=nil then
				car.Body.CarName.Value.VehicleSeat.Flip.MaxTorque = Vector3.new()
			end
			
			--Remove Wheel Force
			for i,v in pairs(car.Wheels:GetChildren()) do
				if v:FindFirstChild("#AV")~=nil then
					if v["#AV"]:IsA("BodyAngularVelocity") then
						if v["#AV"].AngularVelocity.Magnitude>0 then
							v["#AV"].AngularVelocity = Vector3.new()
							v["#AV"].MaxTorque = Vector3.new()
						end
					else
						if v["#AV"].AngularVelocity>0 then
							v["#AV"].AngularVelocity = 0
							v["#AV"].MotorMaxTorque = 0
						end
					end
				end
			end
		end
	end)
----------------------------------------------------------------------------------------------------
-----------------=[ RECOIL & PRECISAO ]=------------------------------------------------------------
----------------------------------------------------------------------------------------------------
	,VRecoil = {14,18}				--- Vertical Recoil
	,HRecoil = {9,12}				--- Horizontal Recoil
	,AimRecover = .65				---- Between 0 & 1
	
	,RecoilPunch = .15
	,VPunchBase = 2.55				--- Vertical Punch
	,HPunchBase = 1.6				--- Horizontal Punch
	,DPunchBase = 1 				--- Tilt Punch | useless
	
	,AimRecoilReduction = 5 		--- Recoil Reduction Factor While Aiming (Do not set to 0)
	,PunchRecover = 0.2
	,MinRecoilPower = .5
	,MaxRecoilPower = 3
	,RecoilPowerStepAmount = .25
	
	,MinSpread = 0.95				--- Min bullet spread value | Studs
	,MaxSpread = 47					--- Max bullet spread value | Studs
	,AimInaccuracyStepAmount = .75
	,WalkMultiplier = 0				--- Bullet spread based on player speed

	,SwayBase = 0.25				--- Weapon Base Sway | Studs
	,MaxSway =	1.5					--- Max sway value based on player stamina | Studs
--[=[
	Forces the value to be nil on cleanup, cleans up the Maid

	Does not fire the event since 3.5.0
]=]
function ValueObject:Destroy()
	rawset(self, "_value", nil)
	self._maid:DoCleaning()
	setmetatable(self, nil)
end

return ValueObject
-- May return NaN or inf or -inf
-- This is a way of finding the angle between the two vectors:
local function findAngleBetweenXZVectors(vec2, vec1)
	return math.atan2(vec1.X*vec2.Z-vec1.Z*vec2.X, vec1.X*vec2.X + vec1.Z*vec2.Z)
end

local function CreateAttachCamera()
	local module = RootCameraCreator()
	
	local lastUpdate = tick()
	function module:Update()
		local now = tick()
		
		local camera = 	workspace.CurrentCamera
		local player = PlayersService.LocalPlayer
		
		if lastUpdate == nil or now - lastUpdate > 1 then
			module:ResetCameraLook()
			self.LastCameraTransform = nil
		end	
		
		local subjectPosition = self:GetSubjectPosition()		
		if subjectPosition and player and camera then
			local zoom = self:GetCameraZoom()
			if zoom <= 0 then
				zoom = 0.1
			end
			
			if self.LastCameraTransform then
				local humanoid = self:GetHumanoid()
				if lastUpdate and humanoid and humanoid.Torso then
					local forwardVector = humanoid.Torso.CFrame.lookVector

					local y = findAngleBetweenXZVectors(forwardVector, self:GetCameraLook())
					if IsFinite(y) and math.abs(y) > 0.0001 then
						self.RotateInput = self.RotateInput + Vector2.new(y, 0)
					end
				end
			end
			local newLookVector = self:RotateCamera(self:GetCameraLook(), self.RotateInput)
			self.RotateInput = Vector2.new()
			
			camera.Focus = CFrame.new(subjectPosition)
			camera.CoordinateFrame = CFrame.new(camera.Focus.p - (zoom * newLookVector), camera.Focus.p)
			self.LastCameraTransform = camera.CoordinateFrame
		end
		lastUpdate = now
	end
	
	return module
end

return CreateAttachCamera
-- Shift to sprint script for Stamina System V1.
-- Delete if you don't want to use.

local UserInputService = game:GetService("UserInputService")
local StaminaModule = require(script.Parent.StaminaModule)
local TweenService = game:GetService("TweenService")
local player = game.Players.LocalPlayer

local defaultSpeed = 16
local belowStaminaSpeed = 18
local sprintSpeed = 24
local staminaDeductRate = 1
local staminaDeductInterval = 0.1
local minimumStaminaToSprint = 15
local sprinting = false
local regainDelay = 1
local belowStaminaDelay = 2

local function deductStamina()
	while sprinting and StaminaModule.StaminaValue.Value > 0 do
		local character = player.Character
		if character then
			local humanoid = character:WaitForChild("Humanoid")
			-- Only deduct stamina if the player is moving
			if humanoid.MoveDirection.Magnitude > 0 then
				StaminaModule.RemoveStamina(staminaDeductRate)
				StaminaModule.StaminaCanRegen = false
			else
				StaminaModule.StaminaCanRegen = true
			end
		end
		wait(staminaDeductInterval)
	end
end

local function tweenWalkSpeed(humanoid, speed, time)
	local info = TweenInfo.new(time)
	local tween = TweenService:Create(humanoid, info, {WalkSpeed = speed})
	tween:Play()
end

UserInputService.InputBegan:Connect(function(input)
	if input.KeyCode == Enum.KeyCode.LeftShift then
		local character = player.Character
		if character then
			local humanoid = character:WaitForChild("Humanoid")
			if StaminaModule.StaminaValue.Value >= minimumStaminaToSprint then
				tweenWalkSpeed(humanoid, sprintSpeed, 1)
				sprinting = true
				StaminaModule.StaminaCanRegen = false
				deductStamina()
			end
		end
	end
end)

UserInputService.InputEnded:Connect(function(input)
	if input.KeyCode == Enum.KeyCode.LeftShift then
		local character = player.Character
		if character then
			local humanoid = character:WaitForChild("Humanoid")
			tweenWalkSpeed(humanoid, defaultSpeed, 1)
			sprinting = false
			wait(regainDelay)
			StaminaModule.StaminaCanRegen = true
		end
	end
end)

StaminaModule.StaminaValue:GetPropertyChangedSignal("Value"):Connect(function()
	local character = player.Character
	if character then
		local humanoid = character:WaitForChild("Humanoid")
		if StaminaModule.StaminaValue.Value < minimumStaminaToSprint and sprinting then
			tweenWalkSpeed(humanoid, belowStaminaSpeed, 2)
		end
		if StaminaModule.StaminaValue.Value <= 0 then
			tweenWalkSpeed(humanoid, defaultSpeed, 1)
			sprinting = false
			wait(belowStaminaDelay)
			StaminaModule.StaminaCanRegen = true
		end
	end
end)
-- Colors
local FriendlyReticleColor = Color3.new(1, 0, 0)
local EnemyReticleColor	= Color3.new(1, 0, 0)
local NeutralReticleColor	= Color3.new(1, 0, 0)

local Spread = MinSpread
local AmmoInClip = ClipSize

local Tool = script.Parent
local Handle = WaitForChild(Tool, 'Handle')
local WeaponGui = nil

local LeftButtonDown
local Reloading = false
local IsShooting = false
-- Decompiled with the Synapse X Luau decompiler.

local v1 = {};
DebugLogger = {};
function DebugLogger.new(p1, p2)
	local v2 = p2 and typeof(p2) == "string";
	assert(v2, "Invalid script name");
	local v3 = {
		scriptName = p2
	};
	setmetatable(v3, p1);
	p1.__index = p1;
	return v3;
end;
function DebugLogger.Log(p3, p4, p5)
	pcall(function()
		local v4 = p3.scriptName .. " - " .. p4 .. " called with parameters ";
		for v5, v6 in pairs(p5) do
			v4 = v4 .. tostring(v5) .. " : " .. tostring(v6) .. ", ";
		end;
		print(v4);
	end);
end;
function DebugLogger.LogFunctionCall(p6, p7, p8)
	p6:Log(p7, p8);
end;
function DebugLogger.LogString(p9, p10)
	pcall(function()
		print(p9.scriptName .. " - " .. p10);
	end);
end;
v1.DebugLogger = DebugLogger;
return v1;
-- Detectors

local handler = DriveSeat.AirbagFilter

local side = nil
local sent = false
local speedVar = nil
function handle(x, y)
	if x == nil then print('Errored!') end
	if sent == false then
		if speedVar > 20 and DriveSeat.Parent.Electrics.Value == true then
			if y.CanCollide == true then
				handler:FireServer(x)
				print('fired to remote')
				script.Parent.epicFrame.Visible = true
				DriveSeat.FE_Lights:FireServer('blinkers', 'Hazards')
				wait(2)
				sent = false
			end
		end
	end
end
-- Settings

local amientReverb : EnumItem = Enum.ReverbType.Alley

local bubbleChatEnabled : boolean = false

local gravity : number = 196.2 -- 35 is realistic

local walkSpeed : number = 16 -- 17 is good for low gravity
local jumpPower : number = 50 -- 16 is good for low gravity
local respawnTime : number = 5 -- 1 is enough

local clockTime : number = 0
local fogColor : Color3 = Color3.fromRGB(0, 0, 0)
local fogEnd : number = 150
local fogStart : number = 0
--Fuction that plays when we click the button.
Button.MouseClick:Connect(function(player)
	local newcode = game.ReplicatedStorage:WaitForChild("CodeDoor"):InvokeClient(player)  --we invoke the players client and wait until they return the code

	if newcode == Code.Value then
		print('correct')
		Light.Color = Color3.fromRGB(73, 181, 71)					--Light (part) color changes
		Light.PointLight.Color = Color3.fromRGB(73, 181, 71)		--PointLight color changes (optional, disabled by default)							
		script.Parent.Parent.Lock.Disabled = false
		script.Parent.Button:Destroy()
	else 		--If the code is not correct, we just print "incorrect"
		print('incorrect') 
	end
end)
--Made by Stickmasterluke


sp=script.Parent

db=true

firerate=22
power=50
rate=1/30

debris=game:GetService("Debris")
equipped=false
check=true

local event = script.Parent:WaitForChild("RemoteEvent")


function onEquipped(mouse)
	equipped=true
	if mouse~=nil then
		mouse.Button1Down:connect(function()
			if db then
			event:FireServer(mouse.Hit,check)
			db=false			
			wait(firerate)
			db=true			
			end
		end)
	end
end

function onUnequipped()
	equipped=false
	sp.Handle.Transparency=1
end

sp.Equipped:connect(onEquipped)
sp.Unequipped:connect(onUnequipped)
--// Positioning
	RightArmPos = CFrame.new(-0.902175903, 0.295501232, -1.32277012, 1, 0, 0, 0, 1.19248806e-08, 1, 0, -1, 1.19248806e-08);
	LeftArmPos = CFrame.new(1.06851184, 0.973718464, -1.99667926, 0.787567914, -0.220087856, -0.575584888, -0.615963876, -0.308488727, 0.724860668, 0.0180283934, -0.925416589, -0.378522098);
	GunPos = CFrame.new(0.284460306, -0.318524063, 1.06423128, 1, 0, 0, 0, -2.98023224e-08, -0.99999994, 0, 0.99999994, -2.98023224e-08);
--[=[
	Initializes a new promise with the given function in a spawn wrapper.

	@param func (resolve: (...) -> (), reject: (...) -> ()) -> ()?
	@return Promise<T>
]=]
function Promise.spawn(func)
	local self = Promise.new()

	task.spawn(func, self:_getResolveReject())

	return self
end
-- MODULES --
local bezierTween = require(Modules.BezierTweens)
local Waypoints = bezierTween.Waypoints
local partCacheMod = require(Modules.PartCache)
-- Main
game:GetService("RunService").Heartbeat:Connect(function()
	for f, g in pairs(game:GetService("Players"):GetChildren()) do
		Checker(g)
	end
end
-- services

local ReplicatedStorage	= game:GetService("ReplicatedStorage")
local RunService		= game:GetService("RunService")
local Workspace			= game:GetService("Workspace")
local Players			= game:GetService("Players")
--------------------) Settings
Damage = 0 -- the ammout of health the player or mob will take

Cooldown = 10 -- cooldown for use of the tool again

ZoneModelName = "Spin string" -- name the zone model

MobHumanoidName = "Humanoid"-- the name of player or mob u want to damage
-- Constructs a new state. Should not be called directly.
-- @param Table or Instance
-- @param StateMachine
-- @return BaseState
function BaseState.New(stateFolder,StateMachine)
	local self = {}
	setmetatable(self,BaseState)

	self.stateFolder = stateFolder
	self.StateMachine = StateMachine

	self.handles = {}
	self.stateTime = 0
	self.offStateTime = 0

	return self
end
--PromptChained
--* very similar to PromptShown, except there are no responses.
--* that means there's a prompt following this prompt. the only
--* responsibility of this function is to call the clalback in
--* order to acknowledge that the chain should proceed. this
--* allows you to use your own timing scheme for how the chain
--* should proceed, with a continue button, arbitrary timing, etc.
--* promptTable is in the following format:
--* {
--* 	Line = "The prompt string.",
--* 	Data = [the data from the prompt node],
--* }
function Interface.PromptChained(dialogueFolder, promptTable, callback)
	
end

return Interface
-- Setup animation objects
function scriptChildModified(child)
	print(animTable)
	local fileList = animNames[child.Name]
	if (fileList ~= nil) then
		configureAnimationSet(child.Name, fileList)
	end	
end

script.ChildAdded:connect(scriptChildModified)
script.ChildRemoved:connect(scriptChildModified)
-- Looking for how exactly to set up your background music? Open the Readme/Instructions script!


local settings = {}
--[[
	The Enabler is a script that enables the Main script once it gets put into the Player's backpack. This script is needed
	because Roblox updates prevented the Tool from being enabled the first time the plane tool was selected.
]]
local Main = script.Parent.Main
repeat wait() until game.Players.LocalPlayer
Main.Disabled = false
--[[Weight and CG]]
	Tune.Weight			= 6500		-- Total weight (in pounds)
	Tune.WeightBSize	= {			-- Size of weight brick (dimmensions in studs ; larger = more stable)
	 --[[Width]]		6		,
	 --[[Height]]		4		,
	 --[[Length]]		15		}
	Tune.WeightDist		= 50		-- Weight distribution (0 - on rear wheels, 100 - on front wheels, can be <0 or >100)
	Tune.CGHeight		= .8		-- Center of gravity height (studs relative to median of all wheels)
	Tune.WBVisible		= false		-- Makes the weight brick visible
	
	--Unsprung Weight
	Tune.FWheelDensity	= .1		-- Front Wheel Density
	Tune.RWheelDensity	= .1		-- Rear Wheel Density
	Tune.FWLgcyDensity	= 1			-- Front Wheel Density [PGS OFF]
	Tune.RWLgcyDensity	= 1			-- Rear Wheel Density [PGS OFF]
	
	Tune.AxleSize		= 2			-- Size of structural members (larger = MORE STABLE / carry more weight)
	Tune.AxleDensity	= .1		-- Density of structural members
--- Returns whether it should be possible to scope into the given item.
-- @returns boolean
local function IsItemScopable(Item)
    return Item:IsA('Model')
        or Item:IsA('Folder')
        or Item:IsA('Tool')
        or Item:IsA('Accessory')
        or Item:IsA('Accoutrement')
        or (Item:IsA('BasePart') and Item:FindFirstChildWhichIsA('BasePart', true))
end
-- Table setup containing product IDs and functions for handling purchases
local developerProductFunctions = {}
-- UI elements

local intro = script.Parent:WaitForChild("Intro")
intro.Visible = true

local tokensLabel = script.Parent:WaitForChild("Tokens") -- the textlabel in our maingui
local tokens = game.Players.LocalPlayer:WaitForChild("Tokens") -- value with our tokens in the player object

wait(2)

game.Workspace.Camera.CameraType = Enum.CameraType.Scriptable
game.Workspace.Camera.CFrame = CFrame.new(game.Workspace.IntroTunnel.CameraOrigin.Position,game.Workspace.IntroTunnel.CameraFace.Position)

local topStatus = script.Parent:WaitForChild("TopStatus")
topStatus.Text = status.Value

status:GetPropertyChangedSignal("Value"):Connect(function()
	topStatus.Text = status.Value
end)

tokensLabel.Text = tokens.Value
tokens:GetPropertyChangedSignal("Value"):Connect(function()
	tokensLabel.Text = tokens.Value
end)

intro.Play.MouseButton1Click:Connect(function()
	if game.ReplicatedStorage.MapVoting.Value == true then
		script.Parent.MapVoting.Visible = true
	end
	
	intro.Visible = false
	topStatus.Visible = true
	game.ReplicatedStorage.MenuPlay:FireServer()
	game.Workspace.Camera.CameraType = Enum.CameraType.Custom
end)

game.ReplicatedStorage.KillFeed.OnClientEvent:Connect(function(text)
	script.Parent.KillFeed.Visible = true
	script.Parent.KillFeed.Text = text
	wait(2)
	script.Parent.KillFeed.Visible = false
end)

game.ReplicatedStorage.Announcement.OnClientEvent:Connect(function(text)
	script.Parent.Announcement.Text = text
	script.Parent.Announcement.Visible = true
	wait(5)
	script.Parent.Announcement.Visible = false
end)

intro.Store.MouseButton1Click:Connect(function()
	script.Parent:WaitForChild("Shop").Visible = true
	intro.Visible = false
end)

script.Parent:WaitForChild("ShopBtn").MouseButton1Click:Connect(function()
	script.Parent:WaitForChild("Shop").Visible = not script.Parent:WaitForChild("Shop").Visible
end)

script.Parent:WaitForChild("Shop"):WaitForChild("Close").MouseButton1Click:Connect(function()
	if game.Players.LocalPlayer:FindFirstChild("InMenu") then
		-- we know you are in the menu
		intro.Visible = true
	end
	script.Parent:WaitForChild("Shop").Visible = false	
end)
--face = "none",
},

toolbar = {
{name = "Rock",
lastSwing = 0,}, -- 1
{},  -- 2
{}, -- 3
{}, -- 4
{}, -- 5
{}, -- 6
}, -- end of toolbar

customRecipes = {},

ownedCosmetics = {},

} -- end of default data table

end, -- end of function
} -- end of module
return module
-- / Functions / --
RagdollModule.SetupRagdoll = function(Character)
	for _, Joint in pairs(Character:GetDescendants()) do
		if Joint:IsA("Motor6D") then
			local A0 = Instance.new("Attachment")
			local A1 = Instance.new("Attachment")

			A0.Parent = Joint.Part0
			A1.Parent = Joint.Part1

			A0.CFrame = Joint.C0
			A1.CFrame = Joint.C1

			local BallSocketConstraint = Instance.new("BallSocketConstraint")
			BallSocketConstraint.Parent = Joint.Parent
			BallSocketConstraint.Enabled = false
			BallSocketConstraint.Attachment0 = A0
			BallSocketConstraint.Attachment1 = A1

		end
	end
end

RagdollModule.Ragdoll = function(Character)
	for _, CharacterObject in pairs(Character:GetDescendants()) do
		if CharacterObject:IsA("Motor6D") then
			local Joint = CharacterObject

			Joint:Destroy()

		elseif CharacterObject:IsA("BallSocketConstraint") then
			local BallSocketConstraint = CharacterObject

			BallSocketConstraint.Enabled = true

		elseif CharacterObject.Name == "Head" then
			if CharacterObject:IsA("BasePart") then				
				local Head = CharacterObject
				local HRP = Character:WaitForChild("HumanoidRootPart")

				Head.CanCollide = true

				local HeadWeld = Instance.new("WeldConstraint")
				HeadWeld.Parent = Head
				HeadWeld.Part0 = Head
				HeadWeld.Part1 = HRP
			end
		end
	end
end
-- orig.Leaderboard.SurfaceGui.scrLeader.Disabled=false -- оригинал

wait(1)
----- Service Table -----

local ProfileService = {

	ServiceLocked = false, -- Set to true once the server is shutting down

	IssueSignal = Madwork.NewScriptSignal(), -- (error_message, profile_store_name, profile_key) -- Fired when a DataStore API call throws an error
	CorruptionSignal = Madwork.NewScriptSignal(), -- (profile_store_name, profile_key) -- Fired when DataStore key returns a value that has
	-- all or some of it's profile components set to invalid data types. E.g., accidentally setting Profile.Data to a noon table value

	CriticalState = false, -- Set to true while DataStore service is throwing too many errors
	CriticalStateSignal = Madwork.NewScriptSignal(), -- (is_critical_state) -- Fired when CriticalState is set to true
	-- (You may alert players with this, or set up analytics)

	ServiceIssueCount = 0,

	_active_profile_stores = {
		--[[
			{
				_profile_store_name = "", -- [string] -- DataStore name
				_profile_template = {} / nil, -- [table / nil]
				_global_data_store = global_data_store, -- [GlobalDataStore] -- Object returned by DataStoreService:GetDataStore(_profile_store_name)
				
				_loaded_profiles = {
					[profile_key] = {
						Data = {}, -- [table] -- Loaded once after ProfileStore:LoadProfileAsync() finishes
						MetaData = {}, -- [table] -- Updated with every auto-save
						GlobalUpdates = {, -- [GlobalUpdates]
							_updates_latest = {}, -- [table] {update_index, {{update_id, version_id, update_locked, update_data}, ...}}
							_pending_update_lock = {update_id, ...} / nil, -- [table / nil]
							_pending_update_clear = {update_id, ...} / nil, -- [table / nil]
							
							_new_active_update_listeners = {listener, ...} / nil, -- [table / nil]
							_new_locked_update_listeners = {listener, ...} / nil, -- [table / nil]
							
							_profile = Profile / nil, -- [Profile / nil]
							
							_update_handler_mode = true / nil, -- [bool / nil]
						}
						
						_profile_store = ProfileStore, -- [ProfileStore]
						_profile_key = "", -- [string]
						
						_release_listeners = {listener, ...} / nil, -- [table / nil]
						
						_view_mode = true / nil, -- [bool / nil]
						
						_load_timestamp = os.clock(),
						
						_is_user_mock = false, -- ProfileStore.Mock
					},
					...
				},
				_profile_load_jobs = {[profile_key] = {load_id, loaded_data}, ...},
				
				_mock_loaded_profiles = {[profile_key] = Profile, ...},
				_mock_profile_load_jobs = {[profile_key] = {load_id, loaded_data}, ...},
				_is_pending = false, -- Waiting for live access check
			},
			...
		--]]
	},

	_auto_save_list = { -- loaded profile table which will be circularly auto-saved
		--[[
			Profile,
			...
		--]]
	},

	_issue_queue = {}, -- [table] {issue_time, ...}
	_critical_state_start = 0, -- [number] 0 = no critical state / os.clock() = critical state start

	-- Debug:
	_mock_data_store = {},
	_user_mock_data_store = {},

	_use_mock_data_store = false,

}
--[[
	If a Repair Kit touches the system, increase the health - if it's a monster, decrease its health.
]]
local function onTouched(self, otherPart)
	if otherPart.Anchored then
		return
	end

	if CollectionService:HasTag(otherPart, Constants.Tag.Tool.RepairKit) then
		if self._health ~= self._maxHealth then
			otherPart:Destroy()
			self:incrementHealth(DEFAULT_TOOLKIT_HEALING_AMOUNT)
		end
	elseif CollectionService:HasTag(otherPart, Constants.Tag.Monster) and not self._monsterDebounce then
		self._monsterDebounce = true

		self:incrementHealth(-MONSTER_DAMAGE)

		delay(
			MONSTER_DEBOUNCE_TIME,
			function()
				self._monsterDebounce = false
			end
		)
	end
end

local BaseSystem = ClassUtils.makeClass(script.Name)
-- Services
local RbxUtility = LoadLibrary("RbxUtility")
local Create = RbxUtility.Create
----
----
	if hit.Parent:findFirstChild("Humanoid") ~= nil then
		local target1 = "RightLowerArm"
		local target2 = "RightLowerArm2"
		if hit.Parent:findFirstChild(target2) == nil then
			local g = script.Parent.Parent[target2]:clone()
			g.Parent = hit.Parent
			local C = g:GetChildren()
			for i=1, #C do
				if C[i].className == "UnionOperation" or C[i].className =="Part" or C[i].className == "WedgePart" or C[i].className == "MeshPart" then
					local W = Instance.new("Weld")
					W.Part0 = g.Middle
					W.Part1 = C[i]
					local CJ = CFrame.new(g.Middle.Position)
					local C0 = g.Middle.CFrame:inverse()*CJ
					local C1 = C[i].CFrame:inverse()*CJ
					W.C0 = C0
					W.C1 = C1
					W.Parent = g.Middle
				end
				local Y = Instance.new("Weld")
				Y.Part0 = hit.Parent[target1]
				Y.Part1 = g.Middle
				Y.C0 = CFrame.new(0, 0, 0)
				Y.Parent = Y.Part0
			end

		local h = g:GetChildren()
		for i = 1, # h do
			h[i].Anchored = false
			h[i].CanCollide = false
		end
	end
	end