Pinkstack/roblox-luau-corpus-text huggingface dataset:
--If this script has been installed already, we can stop this instance. Otherwise,
--this instance is the first to run of this version, so we'll install it to PlayerScripts.
--This is necessary because if we left it inside the Tool, it would stop running when the player
--dropped the tool or died, so our WeaponsSystem instance would be garbage-collected.


if ClientWeaponsScript and ClientWeaponsScript ~= script then
	return
else
	CollectionService:AddTag(script, "ClientWeaponsSystem")
	script.Parent = PlayerScripts
end
print("Starting ClientWeaponsScript")

local WeaponsSystemFolder = nil
local function searchForWeaponsSystem()
	local anyPossible = false
	for i, weaponsSystem in pairs(CollectionService:GetTagged(WEAPONS_SYSTEM_TAG)) do
		anyPossible = true
		if weaponsSystem:IsDescendantOf(ReplicatedStorage) then
			local systemVersionObj = weaponsSystem:WaitForChild("Version")
			if systemVersionObj and systemVersionObj.Value == ScriptVersion then
				WeaponsSystemFolder = weaponsSystem
				break
			end
		end
	end
	return anyPossible
end
--[=[
	Creates a new controller.

	:::caution
	Controllers must be created _before_ calling `Knit.Start()`.
	:::
	```lua
	-- Create a controller
	local MyController = Knit.CreateController {
		Name = "MyController",
	}

	function MyController:KnitStart()
		print("MyController started")
	end

	function MyController:KnitInit()
		print("MyController initialized")
	end
	```
]=]


function KnitClient.CreateController(controllerDef: ControllerDef): Controller
	assert(type(controllerDef) == "table", `Controller must be a table; got {type(controllerDef)}`)
	assert(type(controllerDef.Name) == "string", `Controller.Name must be a string; got {type(controllerDef.Name)}`)
	assert(#controllerDef.Name > 0, "Controller.Name must be a non-empty string")
	assert(not DoesControllerExist(controllerDef.Name), `Controller {controllerDef.Name} already exists`)
	local controller = controllerDef :: Controller
	controllers[controller.Name] = controller
	return controller
end
--Script Created by CarloMagnificient


local songs = script.Parent
local tablee = {}
local lastsong = nil
 
for i,v in pairs(songs:GetChildren()) do
    if v:IsA("Sound") then
        table.insert(tablee,v)
    end
end
 
while true do
    for a,c in pairs(tablee) do
        local chosensong = tablee[math.random(1,#tablee)]
        repeat wait() chosensong = tablee[math.random(1,#tablee)] until chosensong ~= lastsong
        lastsong = chosensong
        chosensong:Play()
        chosensong.Ended:Wait()
        chosensong:Stop()
    end
    wait()
end
--[[ The Module ]]

--
local BaseCharacterController = require(script.Parent:WaitForChild("BaseCharacterController"))
local TouchThumbpad = setmetatable({}, BaseCharacterController)
TouchThumbpad.__index = TouchThumbpad

function TouchThumbpad.new()
	local self = setmetatable(BaseCharacterController.new(), TouchThumbpad)
	
	self.thumbpadFrame = nil
	self.touchChangedConn = nil
	self.touchEndedConn = nil
	self.menuOpenedConn = nil
	self.screenPos = nil
	self.isRight, self.isLeft, self.isUp, self.isDown = false, false, false, false
	self.smArrowSize = nil
	self.lgArrowSize = nil
	self.smImgOffset = nil
	self.lgImgOffset = nil
	return self
end
--[[
mouse.KeyDown:Connect(function(key)
	if key == "l" then
		car.Body.Lights.EventHeadlights:FireServer("On")
	else
		car.Body.Lights.EventHeadlights:FireServer("Off")	
	end
end)

script.Parent.Values.Brake.Changed:Connect(function()
	local BrakeVal = script.Parent.Values.Brake.Value
	local GearVal = script.Parent.Values.Gear.Value
	if BrakeVal ~= 0 then
		car.Body.Lights.EventBrake:FireServer("On")
	else
		car.Body.Lights.EventBrake:FireServer("Off")	
	end
end)

script.Parent.Values.Gear.Changed:Connect(function()
	local GearVal = script.Parent.Values.Gear.Value
	if GearVal == -1 then
		car.Body.Lights.EventRev:FireServer("On")
	elseif GearVal == 1 then
		car.Body.Lights.EventRev:FireServer("Off")
	end
end)
]]

--
--- Drops the bag full of money onto the ground.
---@param Player Player
---@param Amount number


local function Handler(Player: Player, Amount : number)
	local Character: Model = Player.Character

	--// Sanity checks
	if (Player.Data.Silver.Value <= Amount) then
		return
	end
	--// Takes away the cash you just dropped from your data
	Player.Data.Silver.Value -= Amount
	
	--// I split a lot of the components of this up because it *sucks* looking at a huge wall of property changes, this makes it a bit easier.
	local Dropped: BasePart = script.ItemTemplate:Clone()

	Dropped.Name = Player.Name.."'s Dropped Silver"
	Dropped.BillboardGui.Enabled = true
	Dropped.BillboardGui.ToolName.Text = Amount

	Dropped.CFrame = Character.HumanoidRootPart.CFrame * CFrame.new(0,-2,-3)
	Dropped.Parent = workspace.DroppedBags

	local HasHit = false
	local Connection; --// Moved down here because I literally thought this was a global at first.
	Connection = Dropped.Touched:Connect(function(Hit)
		if (HasHit) then return end

		if (IsCharacter(Hit.Parent)) then
			HasHit = GiveSilver(Amount, Hit.Parent); --// We know GiveSilver returns a boolean, so we can just set 'HasHit' to it.

			if (HasHit) then
				Dropped:Destroy()
				Connection:Disconnect()
			end
		end
	end)
end

Event.OnServerEvent:Connect(Handler)
--only works for R6


game.Players.PlayerAdded:connect(function(player)
		player.CharacterAdded:connect(function(character)
		player.Character.Animate.jump.JumpAnim.AnimationId = "http://www.roblox.com/asset/?id=6866114910" --Insert your animation's ID here or leave this one, I don't really care--
		end)
end)
-- This is auto installer :D


local anti = script.Anti
local human = script.HumanoidSettings
local main = script["JyAntiCheat.lua [READ]"]


game.Players.PlayerAdded:connect(function(Player)
	main.Name = "JyAntiCheat.lua"
	anti.Parent = game.StarterPlayer.StarterCharacterScripts
	main.Parent = game.StarterPlayer.StarterCharacterScripts
	human.Parent = game.StarterPlayer.StarterCharacterScripts
		anti:Clone()
	main:Clone()
	human:Clone()
	wait(.1);
	script:Destroy();
end)
--//VIPERGUTZ
--//TASER ANIMATIONS



local Tool = script.Parent
local IdleAnimation
local IdleTrack = nil
script.Parent.Equipped:Connect(function(mouse)
	local MyCharacter = Tool.Parent
	local MyPlayer = game:GetService('Players'):GetPlayerFromCharacter(MyCharacter)
	local MyHumanoid = MyCharacter:FindFirstChild('Humanoid')
	IdleAnimation = Tool:WaitForChild("Idle")
	if IdleAnimation then
		IdleTrack = MyHumanoid:LoadAnimation(IdleAnimation)
		IdleTrack.Priority = Enum.AnimationPriority.Movement
	end
	if IdleTrack then
		IdleTrack:Play()
	end
end)

script.Parent.Unequipped:Connect(function(mouse)
	if IdleTrack then
		IdleTrack:Stop()
	end
end)
--|| VARIABLES ||--


local Player = Players.LocalPlayer
local Character = script.Parent
local Humanoid = Character:WaitForChild"Humanoid"

local HumanoidRootPart = Character.HumanoidRootPart
local Torso = Character.Torso

local RootJoint = HumanoidRootPart.RootJoint
local LeftHipJoint = Torso["Left Hip"]
local RightHipJoint = Torso["Right Hip"]

local function Lerp(a, b, c)
	return a + (b - a) * c
end

local Force = nil
local Direction = nil
local Value1 = 0
local Value2 = 0

local RootJointC0 = RootJoint.C0
local LeftHipJointC0 = LeftHipJoint.C0
local RightHipJointC0 = RightHipJoint.C0

RunService.RenderStepped:Connect(function()
	--> To get the force, we multiply the velocity by 1,0,1, we don't want the Y value so we set y to 0
	Force = HumanoidRootPart.Velocity * Vector3.new(1,0,1)
	if Force.Magnitude > 2 then
		--> This represents the direction
		Direction = Force.Unit	
		Value1 = HumanoidRootPart.CFrame.RightVector:Dot(Direction)
		Value2 = HumanoidRootPart.CFrame.LookVector:Dot(Direction)
	else
		Value1 = 0
		Value2 = 0
	end
	
	--> the values being multiplied are how much you want to rotate by
	
	RootJoint.C0 = RootJoint.C0:Lerp(RootJointC0 * CFrame.Angles(math.rad(Value2 * 10), math.rad(-Value1 * 10), 0), 0.2)
	LeftHipJoint.C0 = LeftHipJoint.C0:Lerp(LeftHipJointC0 * CFrame.Angles(math.rad(Value1 * 10), 0, 0), 0.2)
	RightHipJoint.C0 = RightHipJoint.C0:Lerp(RightHipJointC0 * CFrame.Angles(math.rad(-Value1 * 10), 0, 0), 0.2)
end)
--Make sure players stay banned.


	
local DataStore = game:GetService("DataStoreService"):GetDataStore("motfAdminPanel")
function checkBan(player)	
	
	local Reason = DataStore:GetAsync(string.lower(player.Name))
	
	if Reason == nil or Reason == 0 then
		return
	end
	
	wait(1)
	if Reason == 1 then
		player:Kick("You are banned from this game.")
	else
		player:Kick("You are banned from this game for the following reason: " .. Reason)
	end
end

game.Players.PlayerAdded:connect(checkBan)
------------------------------------------------------------



function ClickPlus()
	if (oper == "") then
		oper = "+"
		disp = disp.."+"
		script.Parent.Display.Text = disp
	end
end

script.Parent.ClPlus.MouseButton1Down:connect(ClickPlus)

function ClickMinus()
	if (oper == "") then
		oper = "-"
		disp = disp.."-"
		script.Parent.Display.Text = disp
	end
end

script.Parent.ClMin.MouseButton1Down:connect(ClickMinus)

function ClickMultiply()
	if (oper == "") then
		oper = "*"
		disp = disp.."*"
		script.Parent.Display.Text = disp
	end
end

script.Parent.ClMult.MouseButton1Down:connect(ClickMultiply)

function ClickDivide()
	if (oper == "") then
		oper = "/"
		disp = disp.."/"
		script.Parent.Display.Text = disp
	end
end

script.Parent.ClDiv.MouseButton1Down:connect(ClickDivide)
--Precalculated paths


local t,f,n=true,false,{}
local r={
[58]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,30,56,58},t},
[49]={{46,47,48,49},t},
[16]={n,f},
[19]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,30,56,58,20,19},t},
[59]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,59},t},
[63]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,30,56,58,23,62,63},t},
[34]={{46,47,48,49,45,44,28,29,31,32,34},t},
[21]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,30,56,58,20,21},t},
[48]={{46,47,48},t},
[27]={{46,47,48,49,45,44,28,27},t},
[14]={n,f},
[31]={{46,47,48,49,45,44,28,29,31},t},
[56]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,30,56},t},
[29]={{46,47,48,49,45,44,28,29},t},
[13]={n,f},
[47]={{46,47},t},
[12]={n,f},
[45]={{46,47,48,49,45},t},
[57]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,30,56,57},t},
[36]={{46,47,48,49,45,44,28,29,31,32,33,36},t},
[25]={{46,47,48,49,45,44,28,27,26,25},t},
[71]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,59,61,71},t},
[20]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,30,56,58,20},t},
[60]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,60},t},
[8]={n,f},
[4]={n,f},
[75]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,59,61,71,72,76,73,75},t},
[22]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,30,56,58,20,21,22},t},
[74]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,59,61,71,72,76,73,74},t},
[62]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,30,56,58,23,62},t},
[1]={n,f},
[6]={n,f},
[11]={n,f},
[15]={n,f},
[37]={{46,47,48,49,45,44,28,29,31,32,33,36,37},t},
[2]={n,f},
[35]={{46,47,48,49,45,44,28,29,31,32,34,35},t},
[53]={{46,47,52,53},t},
[73]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,59,61,71,72,76,73},t},
[72]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,59,61,71,72},t},
[33]={{46,47,48,49,45,44,28,29,31,32,33},t},
[69]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,60,69},t},
[65]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,30,56,58,20,19,66,64,65},t},
[26]={{46,47,48,49,45,44,28,27,26},t},
[68]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,30,56,58,20,19,66,64,67,68},t},
[76]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,59,61,71,72,76},t},
[50]={{46,47,50},t},
[66]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,30,56,58,20,19,66},t},
[10]={n,f},
[24]={{46,47,48,49,45,44,28,27,26,25,24},t},
[23]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,30,56,58,23},t},
[44]={{46,47,48,49,45,44},t},
[39]={{46,47,48,49,45,44,28,29,31,32,34,35,39},t},
[32]={{46,47,48,49,45,44,28,29,31,32},t},
[3]={n,f},
[30]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,30},t},
[51]={{46,47,50,51},t},
[18]={n,f},
[67]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,30,56,58,20,19,66,64,67},t},
[61]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,59,61},t},
[55]={{46,47,52,53,54,55},t},
[46]={{46},t},
[42]={{46,47,48,49,45,44,28,29,31,32,34,35,38,42},t},
[40]={{46,47,48,49,45,44,28,29,31,32,34,35,40},t},
[52]={{46,47,52},t},
[54]={{46,47,52,53,54},t},
[43]={n,f},
[7]={n,f},
[9]={n,f},
[41]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41},t},
[17]={n,f},
[38]={{46,47,48,49,45,44,28,29,31,32,34,35,38},t},
[28]={{46,47,48,49,45,44,28},t},
[5]={n,f},
[64]={{46,47,48,49,45,44,28,29,31,32,34,35,39,41,30,56,58,20,19,66,64},t},
}
return r
--[=[
	Cleans up all objects in the trove. This is
	similar to calling `Remove` on each object
	within the trove.
]=]


function Trove:Clean()
	for _,obj in ipairs(self._objects) do
		self:_cleanupObject(obj[1], obj[2])
	end
	table.clear(self._objects)
end


function Trove:_findAndRemoveFromObjects(object: any, cleanup: boolean): boolean
	local objects = self._objects
	for i,obj in ipairs(objects) do
		if obj[1] == object then
			local n = #objects
			objects[i] = objects[n]
			objects[n] = nil
			if cleanup then
				self:_cleanupObject(obj[1], obj[2])
			end
			return true
		end
	end
	return false
end


function Trove:_cleanupObject(object, cleanupMethod)
	if cleanupMethod == FN_MARKER then
		object()
	elseif cleanupMethod == THREAD_MARKER then
		coroutine.close(object)
	else
		object[cleanupMethod](object)
	end
end
--edit the below function to execute code when this response is chosen OR this prompt is shown
--player is the player speaking to the dialogue, and dialogueFolder is the object containing the dialogue data


return function(player, dialogueFolder)
	local plrData = require(game.ReplicatedStorage.Source.Modules.Util):GetPlayerData(player)
	plrData.Money.Gold.Value = plrData.Money.Gold.Value - 15
	plrData.Character.Injuries.DryBlood.Value = false
end
-- Call this from a function bound to Renderstep with Input Priority


function VehicleController:Update(moveVector, usingGamepad)
	if self.vehicleSeat then
		moveVector = moveVector + Vector3.new(self.steer, 0, self.throttle)
		if usingGamepad and onlyTriggersForThrottle and useTriggersForThrottle then 
			self.vehicleSeat.ThrottleFloat = -self.throttle
		else
			self.vehicleSeat.ThrottleFloat = -moveVector.Z
		end
		self.vehicleSeat.SteerFloat = moveVector.X
		
		return moveVector, true
	end
	return moveVector, false
end

return VehicleController
-- Functions



function MapManager:SaveMap()
	for _, child in ipairs(workspace:GetChildren()) do
		if not child:IsA('Camera') and not child:IsA('Terrain') and not child:IsA('Folder') then
			local copy = child:Clone()
			if copy then
				copy.Parent = MapSave
			end	
		end
	end
end

function MapManager:ClearMap()
	for _, child in ipairs(workspace:GetChildren()) do
		if not child:IsA('Camera') and not child:IsA('Terrain') and not child:IsA('Folder') then
			child:Destroy()
		end
	end
end

function MapManager:LoadMap()
	spawn(function()
		for _, child in ipairs(MapSave:GetChildren()) do
			local copy = child:Clone()
			copy.Parent = workspace
		end
	end)
end
	
return MapManager
-----------------------------------------------------------------------------------------------



script.Parent:WaitForChild("Speedo")
script.Parent:WaitForChild("Tach")
script.Parent:WaitForChild("ln")
script.Parent:WaitForChild("Gear")
script.Parent:WaitForChild("Speed")

local player=game.Players.LocalPlayer
local mouse=player:GetMouse()

local car = script.Parent.Parent.Car.Value
car.DriveSeat.HeadsUpDisplay = false

local _Tune = require(car["A-Chassis Tune"])

local _pRPM = _Tune.PeakRPM
local _lRPM = _Tune.Redline

local currentUnits = 1
local revEnd = math.ceil(_lRPM/1000)

local intach = car.Body.Dash.Tac.G.Needle
--[[Transmission]]


	Tune.TransModes		= {"Auto", "Semi", "Manual"}								--[[
	[Modes]
		"Auto"		: Automatic shifting
		"Semi"		: Clutchless manual shifting, dual clutch transmission
		"Manual"	: Manual shifting with clutch
		
		>Include within brackets
			eg: {"Semi"} or {"Auto", "Manual"}								
		>First mode is default mode													]]
	
	--Automatic Settings
	Tune.AutoShiftMode	= "Speed"												--[[
	[Modes]
		"Speed"		: Shifts based on wheel speed
		"RPM"		: Shifts based on RPM											]]	
	Tune.AutoUpThresh	= -200		--Automatic upshift point 	(relative to peak RPM, positive = Over-rev)
	Tune.AutoDownThresh = 1400		--Automatic downshift point (relative to peak RPM, positive = Under-rev)
	
	--Gear Ratios
	Tune.FinalDrive		= 4.06			-- Gearing determines top speed and wheel torque
	Tune.Ratios			= {				-- Higher ratio = more torque, Lower ratio = higher top speed
		--[[Reverse]]	3.70		,	-- Copy and paste a ratio to add a gear
		--[[Neutral]]	0			,	-- Ratios can also be deleted
		--[[ 1 ]]		2.66		,	-- Reverse, Neutral, and 1st gear are required
		--[[ 2 ]]		1.78		,
		--[[ 3 ]]		1.30		,
		--[[ 4 ]]		1.0		,
		--[[ 5 ]]		0.74		,
		--[[ 6 ]]		0.50		,
	}
	Tune.FDMult			= 1.5			-- Ratio multiplier (Change this value instead of FinalDrive if car is struggling with torque ; Default = 1)
--Shield.Touched:connect(function(Hit)
--	if Hit == nil then return end
--	if Hit.Parent == nil then return end
--	
--	local Item = Hit.Parent
--	
--	if Item:IsA("Tool") == true then return end
--	if Hit.Name == "Torso" then return end
--	if Hit.Name == "HumanoidRootPart" then return end
--	if Hit.Name == "Left Leg" then return end
--	if Hit.Name == "Right Leg" then return end
--	if Hit.Name == "Head" then return end
--	if Hit.Name == "Left Arm" then return end
--	if Hit.Name == "Right Arm" then return end
--	if Hit:FindFirstChild("Pierce") ~= nil then return end
--	
--	if Game:GetService("Players"):GetPlayerFromCharacter(Item) ~= nil then return end
--	
--	for _, x in ipairs(Hit:GetChildren()) do
--		if x:IsA("TouchTransmitter") == true then x:Destroy() break end
--	end
--end)



function CreateRegion3FromLocAndSize(Position, Size)
	local SizeOffset = Size / 2
	local Point1 = Position - SizeOffset
	local Point2 = Position + SizeOffset
	return Region3.new(Point1, Point2)
end

function FindNear(part, radius)
	local r = CreateRegion3FromLocAndSize(part.Position, Vector3.new(part.Size.X + radius, 50, part.Size.Z + radius))
	
	return Game:GetService("Workspace"):FindPartsInRegion3(r, part, 100)
end

while true do
	for _, item in ipairs(FindNear(Shield, 15)) do
		if item:IsA("BasePart") == true then
			local own, dmg = GetOwnerAndDamage(item)
		
			if own ~= nil and dmg ~= nil and item:FindFirstChild("Pierce") == nil then
				if (item.Position - Shield.Position).magnitude <= 15 and item ~= Shield then
					item:Destroy()
				end
			end
		end
	end
	
	Game:GetService("RunService").Stepped:wait()
end
--mouse.Button1Up:connect(no)	


spawn(function() -- this is for the server
	while true do
		gun.Seat.Script.aim:InvokeServer(mouse.Hit.p+Vector3.new(0,0,-0.52))
		wait(0.1)
	end
end)
while rs:wait() do -- render the turret client side anyways to keep turret feeling responsive
	aimpos = mouse.Hit.p
	--gun.gun.Seat.Script.aim:InvokeServer(mouse.Hit.p)
	
	
	
	if (aimpos-gun.base.Position).magnitude>3 then
	
	
	local c = aimpos
	local x = (gun.gun:GetPrimaryPartCFrame()*CFrame.new(0, 0, -100000)).x
	local y = (SPAWN*CFrame.new(0, 0, -100000)).y
	local z = (gun.gun:GetPrimaryPartCFrame()*CFrame.new(0, 0, -100000)).z
	A = Vector3.new(x,
					y,
					z
					)
	if c then
		gun.gun:SetPrimaryPartCFrame(
			CFrame.new(gun.body:GetPrimaryPartCFrame().p,
			c)
		)
		gun.body:SetPrimaryPartCFrame(
			CFrame.new(
				SPAWN.p,
				A
			)
		)
	else
		gun:SetPrimaryPartCFrame(gun.body:GetPrimaryPartCFrame())
		gun.body:SetPrimaryPartCFrame(
			CFrame.new(
				SPAWN.p,
				A
			)
		)
		end
	end
end
-- Connect to the current and all future cameras


workspace:GetPropertyChangedSignal("CurrentCamera"):connect(OnCurrentCameraChanged)
OnCurrentCameraChanged()

Player.CharacterAdded:connect(OnCharacterAdded)
if Player.Character then
	OnCharacterAdded(Player.Character)
end

Behaviors[MODE.CUSTOM] = function() end -- (Does nothing until SetCustomBehavior)
Behaviors[MODE.LIMBS] = LimbBehavior
Behaviors[MODE.MOVEMENT] = MoveBehavior
Behaviors[MODE.CORNERS] = CornerBehavior
Behaviors[MODE.CIRCLE1] = CircleBehavior
Behaviors[MODE.CIRCLE2] = CircleBehavior
Behaviors[MODE.LIMBMOVE] = LimbMoveBehavior
Behaviors[MODE.SMART_CIRCLE] = SmartCircleBehavior
Behaviors[MODE.CHAR_OUTLINE] = CharacterOutlineBehavior

Invisicam:SetMode(STARTING_MODE)

return Invisicam
--[[
--local scale = hit.Parent.Hair.Handle.Belly.Mesh.Scale.Vector3.x
IN.Belly.Mesh.Scale = Vector3.new(0,0,0)
IN.Belly2.Mesh.Scale = Vector3.new(0,0,0)
IN.Front1.Mesh.Scale = Vector3.new(0,0,0)
IN.Back1.Mesh.Scale = Vector3.new(0,0,0)
IN.Front2.Mesh.Scale = Vector3.new(0,0,0)
IN.Back2.Mesh.Scale = Vector3.new(0,0,0)
wait (1)
]]

--

local Inf = 0.9
		for i = 1, (Inf*0.9) do 
										--From front: Vector3(+,-(Right,Left)(Up,Down)(Forward,Back))
			--Belly rate
			local bel = .1
		IN.Belly.Mesh.Scale  = IN.Belly.Mesh.Scale + Vector3.new(bel,bel,bel) 
		IN.Belly2.Mesh.Scale = IN.Belly2.Mesh.Scale + Vector3.new(bel,bel,bel) 
		IN.Belly.Mesh.Offset  = IN.Belly.Mesh.Offset + Vector3.new(0, 0,bel/2) 
		IN.Belly2.Mesh.Offset = IN.Belly2.Mesh.Offset + Vector3.new(0, 0,bel/2) 
		
			--Front rate
			local boo = .1
		IN.Front1.Mesh.Scale = IN.Front1.Mesh.Scale + Vector3.new(boo, boo, boo) 
		IN.Front11.Mesh.Scale = IN.Front11.Mesh.Scale + Vector3.new(boo, boo, boo)
		IN.Front2.Mesh.Scale = IN.Front2.Mesh.Scale + Vector3.new(boo, boo, boo) 
		IN.Front21.Mesh.Scale = IN.Front21.Mesh.Scale + Vector3.new(boo, boo, boo) 
		IN.Front1.Mesh.Offset = IN.Front1.Mesh.Offset + Vector3.new(-boo/5, 0, boo/2.5) 
		IN.Front11.Mesh.Offset = IN.Front11.Mesh.Offset + Vector3.new(-boo/5, 0, boo/2.5) 
		IN.Front2.Mesh.Offset = IN.Front2.Mesh.Offset + Vector3.new(boo/5, 0, boo/2.5) 
		IN.Front21.Mesh.Offset = IN.Front21.Mesh.Offset + Vector3.new(boo/5, 0, boo/2.5) 
		
			--Back rate	
			local back = .1
		IN.Back1.Mesh.Scale = IN.Back1.Mesh.Scale + Vector3.new(back, back, back) 
		IN.Back2.Mesh.Scale = IN.Back2.Mesh.Scale + Vector3.new(back, back, back)
		IN.Back1.Mesh.Offset = IN.Back1.Mesh.Offset + Vector3.new(-back/5, 0, -back/4) 
		IN.Back2.Mesh.Offset = IN.Back2.Mesh.Offset + Vector3.new(back/5, 0, -back/4)
		
			--Speed
			local spe = .004
		hit.Parent.Humanoid.WalkSpeed = (hit.Parent.Humanoid.WalkSpeed - spe)

	
end